- 12 Oct, 2015 2 commits
-
-
Nick Stenning authored
This is deployed and toggled on everywhere, so we can simplify our code by removing this feature flag.
-
Nick Stenning authored
Let the annotation post button resize to fit its content
-
- 09 Oct, 2015 9 commits
-
-
Robert Knight authored
Remove the 'streamer' feature flag
-
Robert Knight authored
Remove the fixed width from the annotation post button and let the dropdown menu's width adjust to fit its content rather than being the same width as the button. To avoid the menu disappearing into the left edge of the sidebar, the menu has been re-aligned so that it is centered underneath the button's dropdown arrow. * Simplify the styling used to hide the dropdown menu to use just the visibility property instead of setting pointer events to none, applying a rotation transform _and_ setting opacity to 0. I'm unclear why the combination of a transform, pointer events and opacity was used originally but the dropdown menus continue to work with the simplified styling. T-112
-
Nick Stenning authored
The code that depended on this scope variable was moved into the ThreadController in 0e2bd59. It is no longer referenced anywhere.
-
-
Robert Knight authored
Visually truncate long bodies and quotes
-
Nick Stenning authored
Enable privacy dropdown even when saving an annotation is disabled
-
Jake Hartnell authored
Introduces auto-truncation of long bodies and quotes which expand when you click on a "More" link. Feature flagged as 'truncate_annotations'.
-
Robert Knight authored
* Remove the 'line-height' property from .dropdown-menu-btn that, combined with default top/bottom padding for <button> elements was causing the button label to be vertically off-center in the 'Post to' button. * Remove duplication between .primary-action-btn and .dropdown-menu-btn * Use $color- variables for palette consistency in .dropdown-menu-btn T-125
-
Robert Knight authored
* Implement design change to allow a user to change the privacy setting for an annotation even if the annotation cannot yet be published because no tags or text have been entered. * Disable the hover state for the main section of the button when it is disabled. T-125
-
- 08 Oct, 2015 5 commits
-
-
Robert Knight authored
Server-rendered login form
-
Nick Stenning authored
Replace %20 with space when displaying filenames etc
-
Sean Hammond authored
-
Nick Stenning authored
Remove special-handling of pre-groups annotations
-
Nick Stenning authored
T88 - Add ability to leave groups
-
- 07 Oct, 2015 5 commits
-
-
Robert Knight authored
Add a new cancel/leave icon next to private groups in the groups list and invoke groups.leave() when clicked. Leaving a group invokes the as-yet-unimplemented 'POST /groups/<id>/leave' endpoint on the server. T-88
-
Nick Stenning authored
Inline the H icon font
-
Robert Knight authored
Fix race for session data on startup
-
Robert Knight authored
The previous fix to use an absolute URL to the icon font did not work in the Chrome extension because the base path for assets was different. The proper solution here will involve refactoring the CSS build pipeline and possibly automatically inlining font URLs in the process. I did not just add a preprocessor to inline all URLs because that would also have affected fonts in katex.min.css and added significantly to the size of the CSS bundle. This commit reverts back to the previous solution of inlining just the icon font. See #2571
-
Nick Stenning authored
Several parts of the application require access to the session data fetched from the server when rendering. On first page load we don't have this data (something we can fix in the future by inlining the data with the viewer HTML) and this resulted in a race between the session data load triggered by `checkAuthentication` (in config/identity.js) and the query sent to the server by `WidgetController`, which needs to know the current focused group id. Fix this by ensuring that the first load of session data is complete before switching views -- achieved by adding an item to the list of dependencies passed to `$routeProvider`. This works, but results in multiple requests for session data in quick succession, because `checkAuthentication` runs while the view is loading. To resolve this problem, we add a straightforward TTL check to the `session.load()` method, and only make a new request if the data is more than 5m old. Session data will be overwritten as normal whenever session mutating methods (`session.login()`, `session.logout()`) etc. are called. Fixes #2590.
-
- 06 Oct, 2015 5 commits
-
-
Nick Stenning authored
Pulling the server-side template and rendering it with swig is bound to break if we change the way the form is rendered on the server-side (as I am in the process of doing). So, convert this from a sort-of-integrated test to a unit test.
-
Robert Knight authored
Extract the WebSocket client into its own module and add tests
-
Robert Knight authored
In preparation for adding additional push notification types, separate out the client into its own module and add tests. T-105
-
Nick Stenning authored
Do not show vendored PDF.js in language stats
-
Nick Stenning authored
Group landing pages redesign
-
- 05 Oct, 2015 1 commit
-
-
Robert Knight authored
* Implement new look for the Create, Join and Share groups pages. The forms are functional without JS but contain a small amount of JS logic for enhancements such as selecting the content of the share pane. * Merge the 'Login to join' and 'Join' pages into a single form. The only difference between the two is that when the user is not signed in, the button label changes from 'Join <Group Name>' to 'Sign in to join <Group Name>' which redirects to the login page. * Create a new site.scss file which is intended to contain only styling for the website and a site-bundle.js bundle which contains JS code used only for the site. * Extract out the button styles used by <dropdown-menu-btn> into a separate .scss file for re-use * Add additional colors used by the new group forms to variables.scss. To avoid the problems with naming that arise when trying to insert additional colors into a list with names like 'light', 'lighter' etc. I'm starting to use http://chir.ag/projects/name-that-color for memorable names. * Start to use a '$color-' prefix for colors, in preparation for extracting colors into their own file. Card 93
-
- 02 Oct, 2015 13 commits
-
-
Sean Hammond authored
Re-implement filtering of annotations based on the current selection
-
Robert Knight authored
44edb50b18f5cd1a78aae32384551c74e6c19304 removed filtering of annotations when there was a selection alongside other changes. This re-introduces the check to see whether there is a selection and if so whether an annotation is in the selected set when determining whether to show a thread. Fixes #2553
-
Robert Knight authored
Implement focus on a group
-
Sean Hammond authored
Fix icon fonts in production builds
-
Sean Hammond authored
-
Sean Hammond authored
-
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
-