1. 26 Jan, 2016 2 commits
    • Nick Stenning's avatar
      Merge pull request #2887 from hypothesis/optimistic-save · 644e5daa
      Nick Stenning authored
      Prevent double-posting of new annotations
      644e5daa
    • Robert Knight's avatar
      Prevent double-posting of new annotations · f407141a
      Robert Knight authored
      When the user clicks the 'Post' button to create an annotation,
      optimistically switch the card back to View mode but display
      a 'Saving...' indicator in place of the Reply/Edit/Delete links.
      
      This makes the UI appear more responsive when the user clicks
      the Post button and also prevents an issue where the user could
      click 'Post' multiple times during the save and create multiple
      annotations.
      
       * Fix a possible inconsistency between the 'Post' button's enabled
         state and whether or not the save() function can succeed.
      
         The hasContent() and isShared() methods also already have tests,
         so this lets us remove several redundant tests.
      
       * Fix inconsistency in the return type of the save() function -
         always return a promise.
      
       * Treat negative status values as network errors as well as 0.
         If the server is unreachable, the real status value may be -1.
      
      Fixes #2864
      f407141a
  2. 25 Jan, 2016 2 commits
  3. 22 Jan, 2016 12 commits
  4. 21 Jan, 2016 8 commits
  5. 20 Jan, 2016 1 commit
  6. 14 Jan, 2016 5 commits
  7. 13 Jan, 2016 10 commits
    • Robert Knight's avatar
      Use raven-js for client-side error capture and reporting · 27e3c96c
      Robert Knight authored
      Capture exceptions reported via Angular's $exceptionHandler
      service and window.onerror and report them via Raven.
      
      The client currently uses the same Sentry DSN as the main
      application, which gets the DSN from the SENTRY_DSN
      environment variable.
      
       * Add a <script> tag to all pages on the site which
         defines a window.RAVEN_CONFIG variable which provides the DSN
         and release string needed to configure Raven JS on the client
      
       * Configure and setup RavenJS in the main site JS, Chrome
         extension and the sidebar.
      
         For the sidebar, Angular integration is configured
         using Raven's Angular plugin.
      
       * Configure the user ID associated with Sentry reports
         when the session state is received
      
       * Extract the code which builds the sidebar/extension
         config dictionary out of the template into
         its own module for easier sharing between the Chrome
         extension and the sidebar's code.
      27e3c96c
    • Nick Stenning's avatar
      Merge pull request #2859 from hypothesis/excerpt-hysteresis · 07bc28fd
      Nick Stenning authored
      Implement a hysteresis threshold in excerpts
      07bc28fd
    • Robert Knight's avatar
      Implement a hysteresis threshold in excerpts · ba672e41
      Robert Knight authored
      Allow the excerpt's contents to exceed the collapsed
      height by a threshold set with the 'overflow-hystersis' attribute
      before the excerpt's contents are truncated.
      
      This fixes a problem where the contents of an annotation
      body could exceed the threshold by only a couple of pixels,
      resulting in a 'More' link which resulted in only half a line
      of extra text being revealed.
      ba672e41
    • Nick Stenning's avatar
      Merge pull request #2855 from hypothesis/2823-fix-annotation-thread-collapsing · ce51f53e
      Nick Stenning authored
      Fix annotation thread collapsing
      ce51f53e
    • Sean Hammond's avatar
      Improve some comments · 9582d31e
      Sean Hammond authored
      9582d31e
    • Sean Hammond's avatar
    • Sean Hammond's avatar
      Export the annotation directive's link function · 69bd26c5
      Sean Hammond authored
      This makes it possible to unit test it easily
      69bd26c5
    • Sean Hammond's avatar
      Remove an unnecessary $watch() · cc1aa32a
      Sean Hammond authored
      As far as I can tell this $watch() doesn't do anything. Its purpose
      appears to be to uncollapse a thread if that thread contains an
      annotation that's being edited. But after deleting it, that uncollapsing
      still seems to happen (for example: edit an annotation but don't save or
      cancel it yet, change to another group, change back to the first group -
      the thread containing the annotation you were editing is uncollapsed).
      
      This code was added before the groups feature existed, so I don't know
      what use-case it was intended for.
      cc1aa32a
    • Sean Hammond's avatar
      Fix annotation thread collapsing · 0ad00a30
      Sean Hammond authored
      This was broken by all the recent annotation directive refactoring:
      annotation threads are now shown uncollapsed by default (should be
      collapsed) and the buttons to collapse/uncollapse them do nothing.
      
      vm/ctrl.editing became a method vm/ctrl.editing() but some code in the
      link function wasn't updated.
      
      This fixes them to be collapsed by default and gets the
      collapse/uncollapse buttons working but I'm not sure if the collapse
      behaviour is correct with nested threads.
      
      Fixes #2823.
      0ad00a30
    • Nick Stenning's avatar
      Merge pull request #2840 from hypothesis/refactor-chrome-badge-client · 1555c931
      Nick Stenning authored
      Refactor badge count fetching in Chrome extension
      1555c931