1. 03 Oct, 2014 2 commits
    • Randall Leeds's avatar
      Decouple identity and authentication · 1ac5b1a8
      Randall Leeds authored
      Pull the identity service out of the auth module so that it can be
      used separately. Wrap the service in a provider with properties
      that applications can configure to adapt to different authentication
      environments. These properties provide a way to configure injected
      functions that the identity service can invoke in order to fulfill
      requests from client applications for authorization grants without
      tying the identity service itself to particular implementations of
      sessions or authentication.
      1ac5b1a8
    • Randall Leeds's avatar
      Squash session and profile; auth and account · 54dfa394
      Randall Leeds authored
      These resources are one resource on the backend. The pattern of
      preserving object identity for the session response is unnecessary.
      The identity module now listens for events on the root scope instead
      of watching the session. The auth controller publishes the session
      change directly and the auth directive is completely removed. Timeout
      is handled in the controller.
      
      Include the account and auth forms via a macro in the blocks template
      so that all the dialogs can be overridden together and get rid of the
      ``show-account`` directive.
      54dfa394
  2. 29 Sep, 2014 1 commit
  3. 28 Sep, 2014 1 commit
    • Randall Leeds's avatar
      Don't resolve the updater in the promise store · a9771176
      Randall Leeds authored
      Besides potentially delaying the websocket connection unnecessarily,
      this was causing a subtle race condition wherein the stream would
      miss a digest and appear blank. Reasons are unclear, and may hide
      dragons.
      a9771176
  4. 27 Sep, 2014 3 commits
  5. 26 Sep, 2014 5 commits
  6. 25 Sep, 2014 18 commits
  7. 24 Sep, 2014 9 commits
    • Randall Leeds's avatar
      Hide the footer for unsaved annotations · f0b5854e
      Randall Leeds authored
      f0b5854e
    • Randall Leeds's avatar
      Remove dead share code · ca68d385
      Randall Leeds authored
      @aron if those tooltip attributes are used somewhere I can't find
      them so please correct me, sorry.
      ca68d385
    • Randall Leeds's avatar
      ``form-input`` should not render inputs on change · c68b50c0
      Randall Leeds authored
      Fix #1490
      c68b50c0
    • Randall Leeds's avatar
      Move form-wide response error code to formHelpers · dab18b67
      Randall Leeds authored
      Add an (optional) third argument to the method
      `formHelpers#applyValidationErrors()` that can take an error string,
      ``reason``, to set on the form itself, rather than any particular
      field. Remove the duplicate code in the auth directive to reset
      the response errors on each field, which is handled already in the
      ``form-input`` directive.
      dab18b67
    • Aron Carroll's avatar
      9a8ffaaf
    • Aron Carroll's avatar
      Merge pull request #1524 from hypothesis/isolate-bootstrap-js · 13e5cdcd
      Aron Carroll authored
      Rework application bootstrap.
      13e5cdcd
    • Aron Carroll's avatar
      8466608e
    • Randall Leeds's avatar
      Rework application bootstrap · 9253b420
      Randall Leeds authored
      The embed code has for some time been the place where our application
      is bootstrapped. When we did the epub.js integration, we added query
      parameters to the embed.js view to control which plugins were loaded
      by each instance of the application (a widget host for the reader frame
      and a slimmer guest annotator for the chapter frames).
      
      Change the injection bundle to instead include a separate bootstrap
      script. This has the nice benefit of ensuring that while we still use
      yepnope or a similar technique for script injection that our bootstrap
      code runs in the same global context as the application dependencies
      whether or not the embed script is run in a normal context or a Chrome
      extension content script context. The need for an inline script created
      by the embed code is no longer, since it is a separate script fetched
      from the server (it's bundled in production, inside the monolithic
      hypothesis-assets.js).
      
      Instead of passing the URI of the sidebar iframe by templating the
      bootstrap script, the embed script adds a link tag to the page with
      ``rel=sidebar`` and ``type=application/annotator+html``, which the
      bootstrap script looks for. This pattern fits nicely with the existing
      role of ``rel=sidebar`` in Firefox and Opera and nicely decouples the
      embeding and the bootstrapping.
      
      Further customization that used to take place in the query parameters
      is now done through ``window.hypothesisRole``, which can specify an
      alternate constructor, and ``window.hypothesisConfig``, which can be
      a function to configure the options passed to the constructor. This
      function will be useful for Single Sign On options, too, as laid out
      in #1437.
      
      The destroy script from the Chrome extension is put alongside the new
      bootstrap script, as they complement one another and are not extension
      specific.
      9253b420
    • Aron Carroll's avatar
      Merge pull request #1479 from hypothesis/markdown · 4abf518a
      Aron Carroll authored
      Introduce zero-dependency Markdown Editor.
      4abf518a
  8. 23 Sep, 2014 1 commit