- 12 Aug, 2015 3 commits
-
-
Randall Leeds authored
This causes unnecessary network traffic and momentarily blanks the ephemeral properties of the annotation set on the client.
-
Randall Leeds authored
Make setupAnnotation into a tiny compatibility wrapper around a new method #anchor() method that returns a promise of the anchors. This is cleaner than trying to store the anchors on the annotation itself, which creates circular references, and it means there's no need to strip these properties when serializes annotations across the frame boundary. Sort annotations by TextPositionSelector in the widget display. This provides greater visual stability -- cards don't change positions after anchoring -- at the cost of potentially out of order cards when anchors have moved.
-
Randall Leeds authored
We're not displaying time in any timezones other than the browser local one. Therefore, we don't need to parse and convert time zone names. Moment will pull the timezone offset itself from the current browser by using Date.prototype.getTimezoneOffset(). This eliminates 251kB (43kB gzipped) of minified code from our application bundle. Wow!
-
- 11 Aug, 2015 1 commit
-
-
Randall Leeds authored
The new choice is simpler. It does not deal with scrollable elements below the window. On the other hand, this also makes it less liable to choke on edge cases when scrolling the window would be just fine.
-
- 10 Aug, 2015 7 commits
-
-
Randall Leeds authored
This becomes necessary as a result of the change introduced by mozilla/pdf.js@b1c4b85d4fb7faba2b454d02d279644244bf282b This method has existed for a long time so hopefully this won't cause breakage for anyone on a slightly older FF.
-
Randall Leeds authored
It is included just fine by the require statements.
-
Randall Leeds authored
-
Randall Leeds authored
-
Randall Leeds authored
-
Randall Leeds authored
Nothing has relied upon this since the Store plugin was replaced with an angular service.
-
Randall Leeds authored
This change requires us to introduce proxyquire for stubbing modules that have a single function as their default export, such as the scroll-into-view module.
-
- 07 Aug, 2015 2 commits
-
-
Randall Leeds authored
The scroll-into-view library has no dependency on jQuery, is a proper CommonJS module (no need for browserify-shim), handles nesting better, and scrolls elements into the middle of the screen. Overal, a better experience as a developer and a user.
-
Randall Leeds authored
We work on IE10+ but not IE9. Other major browsers all support it for a while.
-
- 06 Aug, 2015 2 commits
-
-
Randall Leeds authored
URI normalisation
-
Nick Stenning authored
Share a group
-
- 05 Aug, 2015 4 commits
-
-
Sean Hammond authored
Group pages show a "Login to join group" link (opens in a new tab) if you're not logged in. If you're logged in they show a "Click to join group" button, posts to new join() callable that adds the user to the group. If you're already a member they show a "Share this link to invite people" link. The groups dropdown list has new share icon links to the group's page, for each group.
-
Randall Leeds authored
This ensures that after logging in the token getter resolves properly.
-
Randall Leeds authored
The auth dialog waits for the background authentication check to fail, but it shouldn't replace that promise with its own. It is perfectly fine for the application to proceed while the user is entering credentials. In particular, this makes sure that a search without any authorization can be performed even when the firstrun flag causes the login dialog to show.
-
Randall Leeds authored
It turns out IE10 doesn't have the URL constructor and somehow I misinterpreted the MDN docs. The bind polyfill still isn't needed, except by PhantomJS. It also seems silly not to just include wgxpath without npm. Save the browserify-ing step.
-
- 04 Aug, 2015 2 commits
-
-
-
Randall Leeds authored
Function.prototype.bind is supported in every browser for a long time. It's only needed because, oddly, PhantomJS 1.8 doesn't support it. The window.URL constructor is supported in IE10+ and every other major browser for a while now. It's also not supported in PhantomJS 1.8, though. The application currently doesn't work on IE < 10 anyway so let's just remove this for now.
-
- 03 Aug, 2015 11 commits
-
-
Randall Leeds authored
-
Randall Leeds authored
-
Randall Leeds authored
-
Randall Leeds authored
-
Randall Leeds authored
-
Randall Leeds authored
This should make sure that baseURI works completely even in IE.
-
Randall Leeds authored
-
Randall Leeds authored
I had started to implement the JWT Authorization Grant here but forgot to back out those changes before I committed to just refactoring the existing method. This was premature and also plain wrong in the sense that the parameters were not being passed ('params' is the key for sending GET parameters, not 'data' -- 'data' would be a separate argument for POST).
-
Nick Stenning authored
Switch out jschannel for frame-rpc
-
Nick Stenning authored
Simplify handling of admin permissions
-
Nick Stenning authored
Refactor auth in the client
-
- 31 Jul, 2015 8 commits
-
-
Randall Leeds authored
-
Randall Leeds authored
Start to take better control over the authentication and authorization systems of the front end. - Remove dependency on Annotator Auth plugin. With this change, Annotator is completely gone from the Angular application. - Use angular-jwt and its http interceptor to ensure that auth tokens are up-to-date and auth token requests block store requests. - With the interceptor in place, it's no longer necessary to resolve auth before the ng-view controllers. - Use the session directly for getting the current user. This is in line with what is likely to happen for groups, too, soon.
-
Randall Leeds authored
The frame-rpc module is a proper CommonJS module and it's footprint is really tiny. Its protocol is simpler. It doesn't handle connection and buffering, but with our onConnect callback we don't need buffering. The connection handshake that jschannel did was so trivial it's been re-implemented here (each side tries to connect to the other once). We have to handle timeouts ourselves, but that's all hidden in the bridge code. In exchange, we get a simpler API, we get rid of the call/notify distinction in favor of just passing a callback or not and we avoid the excess overhead of the recursion guard in the serialization code that was giving us false positive issues with the document title. This is one step toward removing all the browserify-shim requiring libraries from the injected bundle, which will eventually fix #2397.
-
Randall Leeds authored
Remove vendored assets: install from NPM
-
Nick Stenning authored
Replaces our vendored dependencies with dependencies on packages installed from NPM. This makes it substantially easier to find out what versions of 3rd-party packages are installed, and substantially easier to upgrade them as and when necessary. Libraries have been installed pinned at the version available on NPM nearest that installed in the repository. This means: - angular remains v1.2.28 - angular-animate was upgraded from v1.2.25 -> v1.2.28 - angular-resource was upgraded from v1.2.25 -> v1.2.28 - angular-route was upgraded from v1.2.25 -> v1.2.28 - angulartics remains v0.17.2 - bootstrap remains v3.3.5 - jquery remains v1.11.1 - jstimezonedetect remains v1.0.5 - moment remains v2.5.0 - moment-timezone remains v0.0.1 - ng-tags-input remains v2.2.0 Unfortunately, the following modules don't appear to be available on NPM and so remain in the repository: - angular-bootstrap - angular-sanitize - angular-toastr (at a version early enough)
-
Randall Leeds authored
Enable users to create groups
-
Nick Stenning authored
This commit adds a list of groups to the "topbar" when the groups feature flag is enabled.
-
Randall Leeds authored
Limit what admins can do
-