1. 14 Jul, 2015 2 commits
    • Randall Leeds's avatar
      Make the anchoring integration asynchronous · e1b2a3b0
      Randall Leeds authored
      The core of anchoring in the guest code is now asynchronous.
      
      - Anchoring annotations happens asynchronously in the setup function.
      
      - Creating an annotation is asynchronous, and depends upon the resolution
        of the targets, which may depend on the resolution of the document metadata.
        The first events fire only after this happens.
      
      - The Anchor API can now optionally return Promises when converting ranges
        and selectors, though all the present implementations are synchronous.
      e1b2a3b0
    • Randall Leeds's avatar
      Anchoring rewrite · 9368bfc6
      Randall Leeds authored
      It went down something like this:
      
      :city_sunset::sparkles::alien::sweat_drops::pray::boom::city_sunrise:
      9368bfc6
  2. 09 Jul, 2015 5 commits
  3. 07 Jul, 2015 1 commit
  4. 06 Jul, 2015 3 commits
  5. 03 Jul, 2015 4 commits
  6. 02 Jul, 2015 7 commits
  7. 30 Jun, 2015 1 commit
    • Jake Hartnell's avatar
      Improve thread collapsing UX. · 92ccabad
      Jake Hartnell authored
      - Threads collapse to single lines.
      - Use iconograpy consistent with collapsing / expanding UI in other
      applications
      - Threads are fully expanded when you click replies on a top level annotation.
      - Delete old test and add new tests.
      92ccabad
  8. 27 Jun, 2015 1 commit
  9. 26 Jun, 2015 2 commits
  10. 19 Jun, 2015 6 commits
  11. 18 Jun, 2015 1 commit
  12. 06 Jun, 2015 1 commit
  13. 05 Jun, 2015 5 commits
    • Nick Stenning's avatar
      Support reporting top-level form validation errors · e13040b9
      Nick Stenning authored
      When we call `form.validate()` and the validation fails, the raised
      exception is a `deform.ValidationFailure`. This object has an `error`
      attribute which represents the underlying validation error object for
      the entire form.
      
      Previously, if the validation failure were a result of top-level
      validation errors (such as the fact that an unactivated user is trying
      to log in), this error would be lost, because we only reported errors
      for the forms fields, or "children".
      
      This commit changes `h.accounts.views.validate_form` so that it converts
      the entire `colander.Invalid` object into a dictionary using its
      `asdict()` instance method. By doing this, we get two immediate
      benefits:
      
      - top-level validation errors are reported in the '' (empty string)
        field
      - we avoid the need to aggregate form field errors by hand in ajax_form
      
      In addition, we need to deal with this case on the frontend, so this
      commit also changes the formRespond directive so that if no overall
      "reason" is provided for failure, then an empty-string member of the
      "errors" object can set the overall validation status (and error
      message) for the form.
      e13040b9
    • Nick Stenning's avatar
      Merge pull request #2282 from hypothesis/refactor_search · 3b988248
      Nick Stenning authored
      Refactor search
      3b988248
    • Nick Stenning's avatar
      Merge pull request #2288 from hypothesis/username-or-email-address · 119c46ed
      Nick Stenning authored
      Ask for "Username or email address" when logging in
      119c46ed
    • Sean Hammond's avatar
      Correct an error message · b1c8b878
      Sean Hammond authored
      b1c8b878
    • Sean Hammond's avatar
      d0c85c62
  14. 04 Jun, 2015 1 commit