- 02 Oct, 2015 8 commits
-
-
Sean Hammond authored
The stream page was broken - showing only annotations from the group that was focused the last time the user was using the sidebar. Fix it to show annotations from all groups.
-
Nick Stenning authored
When switching between groups (and reloading the angular view more generally) drafts are persisted. But we don't want to display drafts for groups other than the one currently focused, because otherwise we'll end up in a position where we can see annotations published to another group. This commit adds an additional condition to `ThreadController#shouldShow`: if the thread root annotation has a group set, and that group doesn't match the focused group id, then the thread will be hidden.
-
Sean Hammond authored
Always focus the Public / __world__ group if the groups feature is toggled off. When the groups feature was off a group other than Public might have been retrieved from the browser's localStorage (this could only happen if the groups feature had previously been on for the user) and the wrong annotations would be shown in the sidebar.
-
Sean Hammond authored
Replace `isSidebar`, `isEmbedded`, `annotation-embedded`, `annotationEmbedded` and `embedded` with a single `isSidebar` variable. - Rename `isEmbedded` in AppController to `isSidebar`. - Rename `embedded` in AnnotationController to `isSidebar`, it just passes the value of `AppController`'s `isSidebar` into `annotation.html`. - Rename the `annotation-embedded`/`annotationEmbedded` variable that is used to pass `isSidebar` (was `isEmbedded`) into `AnnotationController`, rename it to `is-sidebar` / `isSidebar`. - Delete the duplicate `isSidebar` variable from `WidgetController`'s scope, `WidgetController`'s templates can simply access `AppController`'s `isSidebar` from the scope. Note that there's another variable, `isStream`, that's actually true when we're either in the sidebar or on the stream page, but not when we're on individual annotation pages. This is used to show/hide the "Sorted by newest, oldest, location" menu which appears in the sidebar or stream but not on individual annotation pages (the "location" option in this menu only appears when in the sidebar not on the stream). This commit leaves the `isStream` variable alone. So the `isSidebar` variable is now used to show/hide the following elements: - The share dialog (share this page on twitter etc) is shown in the top bar, only when in the sidebar (and not on the `/stream` page or on individual annotation pages). - The group list dropdown menu, shown in the top bar only when in the sidebar. - The "location" entry in the sort menu (sorted by newest, oldest, location) shown only when in the sidebar. - The "citation" on annotations that says which page was annotated (the 'on "Example Document" (example.com)' in the annotation's title), is shown only when _not_ in the sidebar.
-
Sean Hammond authored
-
Nick Stenning authored
When a user clicks on a group name in the "scope selector" dropdown menu, we want to filter the visible annotations by group. This commit implements a rather inefficient but functional approach to this, simply reloading the angular view. In addition, we make sure that the initial annotation load includes a filter on the currently-focused group, and we discard non-focused-group annotations coming in over the websocket.
-
Sean Hammond authored
Avoid String.prototype.startsWith() for compatibility Safari and IE
-
Robert Knight authored
Links to source document URIs were broken under Safari <= 8 and other browsers as well due to reliance on the String.prototype.startsWith() API This issue went unnoticed in Karma/PhantomJS tests because Karma was primed with the complete set of polyfills from the js-polyfills library, including many (all?) ES6 polyfills. This same set of polyfills was_not_ used in the browser build however. This commit fixes the original issue by using 'indexOf()' instead of 'startsWith()' and reduces the likelihood of such problems going unnoticed during testing by using a much more minimal set of polyfills under PhantomJS. The alternative approach would be to go in the opposite direction and polyfill any ES6 APIs in the browser. However, we need to be careful about code bloat, so the approach taken here is the more conservative option. Fixes #2568
-
- 01 Oct, 2015 5 commits
-
-
Robert Knight authored
Show filenames of local documents with titles
-
Sean Hammond authored
When the annotated document is a local (file://) document and it has a title, then show the filename in place of the domain on the annotation card. For example: seanh on "Document Title" (filename.pdf) In cases where the document has no title then the filename would already have been used in place of "Document Title" so don't repeat it in (...)'s. For remote documents the domain name is shown in (...)'s instead and the document title is hyperlinked so the people can see the full URL by hovering over the link.
-
Sean Hammond authored
Consolidate thread show/hide logic into ThreadController
-
Nick Stenning authored
This template conditional is notorious for accumulating extra terms, so this commit rolls it into ThreadController where it can be more easily tested.
-
Nick Stenning authored
T89 combined scope save btn
-
- 30 Sep, 2015 7 commits
-
-
Robert Knight authored
When changing permissions via the dropdown menu, the changed permissions were applied to the _domain model_ representing the saved annotation instead of the _view model_ representing the current annotation being edited. The change to the domain model triggered a reset of the view model via AnnotationController.render(), losing any unsaved edits. This commit makes AnnotationController.setPrivacy() apply permissions changes to the view model in the same way as other edits in the annotation view. These then only take effect when the 'Post to' button is clicked. Fixes #2567
-
Robert Knight authored
Instead of patching the upstream UI Bootstrap build, add a wrapper around it which stubs the $templateRequest service and wraps the Angular 1.2x implementation of $animate.(add|remove)Class with one which returns a Promise as UI Bootstrap expects. When the app is upgraded to Angular 1.3x+, the 'ui-bootstrap-custom' module can just be removed. Card 89
-
Sean Hammond authored
When transforming old-style comments, handle null targets
-
Sean Hammond authored
Make activation created_by/valid_until fields nullable
-
Nick Stenning authored
Fix a bug where canceling changes did not reset the text
-
Robert Knight authored
AnnotationController.revert() reverted changes to the annotation in the editor by copying across properties from the saved annotation to the draft. Any properties which were _added_ in the draft but not set in the saved version, such as the text when the text is empty, were not reverted. Fixes #2561
-
Robert Knight authored
Add the updated group icon and update the icomoon font. Also simplify the instructions for updating the icomoon font. Card 89
-
- 29 Sep, 2015 7 commits
-
-
Robert Knight authored
In Chrome, clicks on elements inside a disabled <button> will not invoke the <button>'s "click" event listeners but they will propagate through the button and invoke parent element's click handlers. In Firefox however, the click event is not propagated. The fix here is to install the click handler for the main part of a dropdown button on the <button> itself, rather than the container <div> which holds the main button and the dropdown arrow. Card 89
-
Robert Knight authored
The spacing was lost when the cancel button was moved into the <publish-annotation-btn> directive. Card 89
-
Sean Hammond authored
Fix email notifications
-
Nick Stenning authored
Add guidelines for writing model code and db migrations
-
Sean Hammond authored
Update instructions for running front-end tests.
-
Sean Hammond authored
Make auth.effective_principals do what it says
-
Robert Knight authored
* Use cancel button with a thin circle outline * Change normal and hover colors to light/dark grey as per discussion on the card. Card 89
-
- 28 Sep, 2015 4 commits
-
-
Jake Hartnell authored
Automatically convert URLs in annotation text to links
-
Robert Knight authored
Add a cancel button with a thin circle outline which matches the design. Card 89
-
Robert Knight authored
Card 89
-
Robert Knight authored
This text has been obsoleted by the new 'Post to XXX' design which makes it clearer who new annotations will be visible to. Card 89
-
- 26 Sep, 2015 9 commits
-
-
Robert Knight authored
Card 89
-
Robert Knight authored
Only URLs with a scheme or beginning with 'www.' are processed. Fixes #2505
-
Robert Knight authored
Instead of passing a full object of attributes to util.createDirective() at the start of each test, render a default instance in beforeEach() and then just relink the element with the changes for a specific test. Card 89
-
Robert Knight authored
Card 89
-
Robert Knight authored
Card 89
-
Robert Knight authored
Card 89
-
Robert Knight authored
When false, both the dropdown menu and the post button are disabled. Card 89
-
Robert Knight authored
The <privacy> drop-down has been replaced by the new combined Post / privacy button. Card 89
-
Robert Knight authored
Card 89
-