• Robert Knight's avatar
    Avoid reloading whole view when groups list changes · aacc0b3a
    Robert Knight authored
    When the client receives a notification that the
    list of groups changes, update just the groups list
    and, if necessary, focused group rather than reloading
    the whole view.
    
    This is done by splitting the SESSION_CHANGED event
    into finer-grained GROUPS_CHANGED and USER_CHANGED
    events. The <groups-list> directive now listens for
    GROUPS_CHANGED and updates itself in response.
    
    This fixes an issue where joining or leaving a group
    would always result in unsaved changes to annotation text
    being lost.
    
    If the user leaves a group which is currently focused and
    which has an unsaved changes to an annotation, that will still
    result in changes to the annotation being lost.
    
     * Add finer-grained GROUPS_CHANGED and USER_CHANGED
       events which components can react to.
    
     * Avoid directly exposing the groups service to the
       <group-list> template and instead only expose
       the required methods. This makes it easier to
       track what is going on in the template.
    
    Fixes #2641
    aacc0b3a
groups.js 2.81 KB