• Randall Leeds's avatar
    Refactor drafting and authentication interactions · 6c64bd65
    Randall Leeds authored
    Make changes to allow multiple top-level drafts, drafting before
    authenticating, keeping drafts while performing page searches,
    and replying to search results.
    
    - Factor out the userAuthorize option passed to the Permissions
      plugin into a local function in controllers.coffee.
    
    - Only load the Permissions plugin when logged in so that the
      plugin options do not leak information about the last logged in
      user and unattributed drafts have no user or permissions field.
    
    - When switching to highlight mode, show the sidebar and flash an
      info message informing the user that they will need to log in
      before annotations are saved, but don't prohibit highlighting.
    
    - Simplify the logic in the guest for highlight mode by offloading
      work to the annotation controller. The "inject" property is no
      longer needed. The annotation controller saves drafts of highlights
      if they have no user and persists them to the server as soon as
      the user is set.
    
    - When logging in, the app controller simply loops through all the
      drafts are publishes 'beforeAnnotationUpdated' to give the
      Permissions plugin a chance to fire.
    
    - When initializing the Store plugin, don't perform any search at
      all when not logged in. This change makes "single player" mode
      work even before logging in.
    
    - Allow hiding the sidebar when editing. Simplify the guest code
      that no longer needs to track the sidebar state by listening for
      'annotationEditorHide' and 'annotationEditorSubmit' and the
      corresponding sidebar code that fired these. They're nonsensical
      now because there isn't exactly one "editor".
    
    - Remove the concept of an 'ongoing edit' entirely, simplifying the
      sidebar code even further. Any number of edits are allowed and
      top level ones are not treated specially.
    6c64bd65
thread-test.coffee 3.55 KB