- 18 Mar, 2016 1 commit
-
-
Robert Knight authored
Architecture decision records!
-
- 16 Mar, 2016 6 commits
-
-
Nick Stenning authored
(1/3) Open sidebar and set selection when '#annotations' URL fragment is present
-
Robert Knight authored
When the sidebar loads in a page with a '#annotations' URL fragment, the 'annotations' setting will be passed through to the client as `settings.annotations`. Use this to initialize the selection so that the annotation specified by '#annotations:<ID>' is selected when the client loads.
-
Robert Knight authored
If the host page's URL contains a '#annotations:' fragment, open the sidebar automatically when the client loads. * Move code for reading Hypothesis configuration from the environment into config.js and add tests * Read the '#annotations' fragment from the URL and pass it to app.html along with any other options as query string parameters.
-
Nick Stenning authored
Postgres read support for storage.expand_uri
-
Nick Stenning authored
Enable Chrome extension to detect when H is already present on page
-
Robert Knight authored
This reworks the way that Hypothesis detects whether it is already present on the page in embed.js, in a way that enables it to report back the app.html URL for the existing instance to the Chrome extension. The Chrome extension can then update its state for that tab to reflect the fact that it is not injected. In this PR, that is done by simply setting the tab state to inactive. We could in future add an indicator that the user tried to activate H but that another instance is already active, or have the extension override the instance of H on the page. * Detect the <link> element added to the page by embed.js, rather than window.annotator. This enables detection to work when embed.js is run in an isolated world that shares the DOM but not the JS environment, as is the case for content scripts in Chrome and Firefox. * Change unloading to operate by firing an event at the <link> element. This enables a content script to trigger unloading of H from an isolated JS environment. * Change injection of embed.js in the Chrome extension to execute embed.js as a content script, rather than by adding it as a `<script>` tag. This enables embed.js to access extension APIs and also report its result back to the extension via the return value of the script. A side benefit is that it also avoids a bug in Firefox current WebExtensions implementation where `<script>` tags added to the page by a content script are not executed.
-
- 15 Mar, 2016 3 commits
-
-
Nick Stenning authored
Simplify API authentication in the client and fix #3083, #2924
-
Nick Stenning authored
Merge pull request #3078 from hypothesis/sheetaluk/281-update-the-toolbar-s-note-icon-tooltip-and-update-the-adder-design changing adder icons and note icon in toolbar.
-
Sheetal Umesh Kumar authored
Addressing some PR comments. Changed styling of the adder a bit. Changed annotatoin icon click on the toolbar to create a new annotation instead of a new page note, when text has been selected. Added a for attr for icon labels in the adder. getting scripts/update-icon-font from branch: annotation-card-design-refresh comitting new woff and icomoon css showing adder in the middle top of selection rather than mousePosition. Revert "showing adder in the middle top of selection rather than mousePosition." This reverts commit 99491e42eb4103953f0cfa87afdd37e5ac8ece4d. showing adder a little above the mouse position check for end of text selection after current event loop tick only show tooltip for toolbar and not adder cursor pointer for adder labels some styling cleaning up css nesting. more styling :/ Eliminate deadzone in adder buttons * Remove the margin between the adder buttons and the edge of the toolbar, and apply padding to the buttons instead. This removes the deadzone between the edge of the visible toolbar and the clickable area. * Add pointer cursor for the buttons * Use flexbox for laying out the toolbar for consistency with how the Adder is laid out * Use a transparent background for the individual buttons, so that their background does not obscure the rounded borders of the toolbar. removing console.log
-
- 14 Mar, 2016 2 commits
-
-
Nick Stenning authored
Add direct linking feature flag
-
Robert Knight authored
Add a feature flag for direct linking and use the link provided by the API to a view of the annotation in context when this flag is enabled.
-
- 11 Mar, 2016 1 commit
-
-
Robert Knight authored
The Promise import is no longer needed because Promise and Object.assign() are polyfilled globally in polyfills.js
-
- 10 Mar, 2016 3 commits
-
-
Robert Knight authored
In order to make API requests, the client needs to fetch a JWT token and then configure 'angular-jwt' to provide it on subsequent HTTP requests to API endpoints. This fairly simple task was complicated by the inclusion of an emulation of the deprecated Mozilla IdentityManager API - see https://developer.mozilla.org/en-US/docs/Web/API/IdentityManager This commit replaces the identity module with a much simpler implementation that only does what we actually need at present: 1. Enable the 'angular-jwt' interceptor which adds 'Authorization: Bearer <Token>' headers to API HTTP requests. 2. Provide the JWT interceptor with a function which fetches JWT tokens and caches them. The new implementation fixes two bugs in the previous implementation: 1. Cached API tokens were not invalidated properly when signing out (#3083). (In the old code, 'authPromise' was set to a rejected promise after signing out, but 'checkAuthentication()' checked for 'authPromise' being _null_ when deciding whether to retrieve a new token. Consequently API requests made immediately after signing in could end up being unauthenticated). 2. The value of $scope.auth.username and session.state.userid could get out of sync (#2924). In the new implementation, $scope.auth.username is always updated whenever the USER_CHANGED event is emitted and that event is always emitted when session.state.userid changes. Fixes #3083 Fixes #2924
-
Nick Stenning authored
Add a utility script to assist with CoffeeScript -> JS conversion
-
Nick Stenning authored
Convert 'annotation-ui' from CoffeeScript to JS
-
- 09 Mar, 2016 4 commits
-
-
Nick Stenning authored
Remove the MathJax math rendering fallback
-
Robert Knight authored
-
Robert Knight authored
It accepts a list of CoffeeScript file paths on stdin and for each <path>.coffee file in the input, it writes a <path>.js output file containing the converted, reformatted source. The result is ES2015 source so will require some fixups as long as we're using ES5 in the main app codebase. The current transformation process involves: 1. Performing an initial CoffeeScript -> JS conversion with 'decaffeinate' 2. Applying some fixups for common issues, currently done with dumb string modifications. In future I might look at writing a Babel transformer. 3. Parsing the source with Babylon to check that it is valid ES2015 If not, the user is prompted to go and simplify the CoffeeScript so that decaffeinate can process it correctly. 4. Reformatting the source with typescript-formatter, which takes care of indentation and high-level formatting. 5. Running the source through JSCS' fix mode which deals with smaller details.
-
Robert Knight authored
Since this is a very simple module with no Angular dependencies, I've also de-Angularized the unit test.
-
- 08 Mar, 2016 3 commits
-
-
Nick Stenning authored
Fix installation of URL polyfill with js-polyfills v0.1.16
-
Robert Knight authored
js-polyfills v0.1.15 used to install the polyfill on `this.URL`, where `this` was set to module.exports in the context of a Browserify bundle. Consequently the result was available as `require('js-polyfills/url').URL`. As of v0.1.16 however, it installs the polyfill on `self`, which is the Window object in the context of the browser and so `require('js-polyfills/url').URL` is undefined. Fixes #3064
-
Robert Knight authored
The MathJax fallback was inadvertently broken during recent refactoring of the <markdown> component and has long been untested. This removes the fallback for the moment and in doing so provides a clearer definition of what math we support - the subset supported by KaTeX. Looking at our public annotations, there is very little use of complex math currently. When we find a clear use case for it, we can revisit supporting additional math beyond what KaTeX supports. See https://trello.com/c/9KkjsO6v/66-remove-the-mathjax-fallback for more background.
-
- 07 Mar, 2016 5 commits
-
-
Nick Stenning authored
Add extra context to sentry logging
-
Robert Knight authored
Merge pull request #3057 from hypothesis/sheetaluk/280-when-a-user-replies-focus-on-and-expand-that-reply Sheetaluk/280 when a user replies focus on and expand that reply
-
Sheetal Umesh Kumar authored
added missing new line. don't attempt toggleCollapsed if no parent available adding a test and a comment simplifying assert
-
Nick Stenning authored
Convert {app, app-controller, widget-controller}.coffee to JS
-
Nick Stenning authored
Adds an issue template
-
- 05 Mar, 2016 2 commits
-
-
Robert Knight authored
- Extract the logic computing a numeric key for sorting annotations by location into a separate module to make testing easier and add tests.
-
Robert Knight authored
In preparation for upcoming changes as part of direct linking, convert the entry point and top-level controllers for the app to JS. * Use a CommonJS require to bring in the 'vendor/jwz' dependency.
-
- 04 Mar, 2016 8 commits
-
-
Robert Knight authored
Travis Sentry sourcemaps
-
Robert Knight authored
Throwing an exception in the context of a Promise catch handler inside through.obj() just results in the exception being silently swallowed. Pass it to the through2 callback so that Gulp exits with the correct status.
-
Nick Stenning authored
This commit reworks scripts/gulp/upload-to-sentry.js to allow for uploading to multiple Sentry projects at once. This allow us to build the assets once, and upload them to multiple Sentry projects within the same gulp invocation.
-
Nick Stenning authored
-
Christof Dorner authored
Run search results through AnnotationJSONPresenter
-
Nick Stenning authored
Fix JS error checking via Hound
-
Robert Knight authored
Since enabling JSCS, Hound CI reviews for PRs which contain JS code changes have been failing to complete. ThoughtBot have advised us that the JSCS checker is in beta and that we should simply disable it. They noted that ESLint has received a better response from other testers so we might want to look at that instead.
-
Robert Knight authored
- Use the legacy 'esnext' option only instead of both 'esnext' and 'esversion' for compatibility with JSHint v2.8.x on Hound and developers who have the current stable version installed locally. - Remove the 'maxErrors' option from the JSCS config, as this prevents use of the '-x' option to autofix files which is a little annoying.
-
- 03 Mar, 2016 2 commits
-
-
Nick Stenning authored
Fix ubuntu dev install docs
-
Sean Hammond authored
Focus input field after creating a new annotation
-