- 24 Jun, 2016 5 commits
-
-
Sean Hammond authored
Don't momentarily show a "You do not have permission to see this annotation" card before showing the annotation when loading a direct-linked annotation. Fixes #3167. When following direct links to annotations on certain documents, for example large PDF files that take a while to load, a "You do not have permission to see this annotation" card was being displayed briefly in place of the annotation card, before quickly being replaced by the correct annotation card. Previously the logic of the WidgetController.isLoading() function was to return true if we are currently waiting for the response to an annotation search request that we've sent. The theory is that this was happening: 1. Client loads, but PDF has not yet loaded, so URL is unknown. 2. Since the URL is unknown, the sidebar does not start fetching annotations and isLoading() returns false. 3. Since the client a) Has a selection but b) Is not in a loading state - it thinks that it failed to fetch the annotation and displays the "You do not have permission to see this annotation" message, 4. Once the PDF finishes loading, the URL is updated and that is reported to the sidebar which then performs a search query and isLoading() starts to return true until the search query response arrives then it returns false again. The fix is to make isLoading() return true if _either_ we've sent an annotation search request and are waiting on the response _or_ we're still waiting for the document to finish loading and haven't sent the search request yet. So instead of returning false, then true, then false again isLoading() will just keep returning true until both the document has loaded and the search response has been received, then it will start returning false.
-
Robert Knight authored
Tailor API response to client
-
Robert Knight authored
This function failed to account for the case where the node was contained by, but not equal to, the range's startContainer. In new browsers we could just use `Range.isPointInRange()`. Since that is not available in IE 10/11, add an implementation adapted from Blink's `Range::isPointInRange()` C++ impl, minus support for the `offset` parameter. This fixes an issue where the adder could fail to show up when making certain selections because `getTextBoundingBoxes()` could incorrectly fail to find the text nodes within certan ranges. Fixes #3521
-
chdorner authored
The `annotation.uri` now always is a linkable URI if we got that data when the annotation got created. There is no need anymore to try and find another linkable URI from the document data. This also removes the type check of `annotation.document.title` since the presentation layer on the backend always returns an array of strings (or the `title` property is missing).
-
Sean Hammond authored
Fix adder breaking after making a selection containing no text
-
- 23 Jun, 2016 3 commits
-
-
Sean Hammond authored
Use request-scoped rather than thread-local session
-
Robert Knight authored
Fix missing PDF highlights
-
Nick Stenning authored
fda63b4 unfortunately broke highlighting in PDFs, because the PDF anchoring code first finds the text in the document, and then uses a TextPositionSelector and the HTML anchoring code to select a range in the rendered page for highlighting. This commit fixes that issue by moving the TextQuoteSelector check up a level into `Guest#anchor`. I've added two tests for this in `guest-test.coffee` -- one tests that annotations where the target contains no TextQuoteSelector are marked as orphans, and the second tests that the low-level anchoring code is never called in this case. I have also removed the integration test, on the basis that I don't think integration testing failure cases is a good habit to get into. Fixes #3530.
-
- 22 Jun, 2016 5 commits
-
-
Robert Knight authored
Update PDF fingerprint searching / handling
-
chdorner authored
Which will then be used as the `target.source` when creating an annotation.
-
chdorner authored
This will allow us to switch back to using the URL for the `target.source` when creating annotations, which will then allow us to link back to the exact document where the annotation was created.
-
Robert Knight authored
Ignore the selection change if the new selection does not contain any text. - Add missing check for rangeUtil.selectionFocusRect() returning null, which happens if the selection contains no text - Add tests for selection change handling - Create the `Guest` instance with dependencies stubbed out afresh for each test case in guest-test.js Fixes #3523
-
Robert Knight authored
Follow JSDoc conventions to refer to instance and static members of objects in tests by using `describe('#instanceMethod')` for method tests.
-
- 21 Jun, 2016 7 commits
-
-
Sean Hammond authored
Move test factories into tests/common/
-
Christof Dorner authored
Fix unhelpful username error message when registering a new account
-
Christof Dorner authored
Allow multiple 'uri' parameters to the search query
-
Nick Stenning authored
Clean up the welcome page
-
Robert Knight authored
Increase the strictness of the heuristic for whether the selection is a URL or not in the "Convert selection to link" editor toolbar command. Require the selection to contain something that looks like a scheme followed by an authority, rather than just a scheme. Fixes #3513
-
Robert Knight authored
Fix escaped HTML in login error message
-
Robert Knight authored
Fix size of sidebar tutorial header
-
- 20 Jun, 2016 9 commits
-
-
Sean Hammond authored
Fix the font size of the sidebar tutorial header. This used to be smaller, was accidentally made larger. Fixes #3325.
-
Robert Knight authored
- Fix incorrect reference to `onShowHelpPanel` property in <top-bar> template - Do not show URL entry in metadata display if there is no annotation guest connected to the sidebar, as is the case in the stream and permalink pages.
-
Sean Hammond authored
If you try to login to an unactivated account the error message that the server returns contains HTML: You haven't activated your account yet. <strong>Please check your email and open the link to activate your account</strong>. Render this client-side as HTML rather than escaping the tags. Fixes #3501.
-
Robert Knight authored
In Safari a trailing '#' is appended to URIs extracted from web documents and PDFs. For URLs this makes no difference as the Hypothesis search API ignores the fragment identifier. However a URN with a trailing '#' is considered different from a URN without a trailing '#'. Since the URI for PDFs is now a URN of the form 'urn:x-pdf:...', when viewing a PDF in Safari annotations made in other browsers were not fetched and vice-versa. The trailing '#' is caused by a bug in the `URL.hash` setter in Safari. According to section 6.3 of the URL spec [1], setting URL.hash to an empty string should _remove_ the fragment identifier. In Safari however, it sets the fragment identifier to an empty string. The result is that when the URL is serialized, the output is eg. 'urn:x-pdf:aabb#' instead of 'urn:x-pdf:aabb'. Upstream bug: https://bugs.webkit.org/show_bug.cgi?id=158869 Fixes #3471 [1] https://url.spec.whatwg.org/#urlutils-members
-
Nick Stenning authored
Fix document_uri unique constraint
-
Robert Knight authored
Rearrange groups views to take advantage of GroupsService
-
Sean Hammond authored
Auto-expand replies for direct-linked annotations
-
Robert Knight authored
Add a service to manage group creation and membership
-
Sean Hammond authored
Remove unnecessary code for checking type of `annotation.references` field
-
- 17 Jun, 2016 9 commits
-
-
Robert Knight authored
When direct-linking to an annotation or a reply to one, auto-expand the annotation thread to make it easier for the user to follow the whole conversation around it.
-
Robert Knight authored
- Convert <simple-search> from CoffeeScript to JS - Implement a new set of tests using the createDirective() helper
-
Robert Knight authored
- Convert the <simple-search> directive to a modern component-style directive which uses one-way bindings and events rather than two-way bindings. This makes it consistent with other components in the app. - Avoid duplicating the search filter state in multiple places but store it only in the Redux store and update it via an action. The tests for `simple-search` have not been updated in this commit because they are going to be replaced with a new set using the `createDirective()` helper in the next commit.
-
Robert Knight authored
Bugfix: whole page annotation highlights
-
Alice Wyan authored
-
Robert Knight authored
We now have much more control over how fields are rendered to JSON on the server and as a result, this field is always either unset or an array of strings.
-
Robert Knight authored
Repurposed About panel for Help
-
Robert Knight authored
Underline links in the Help panel text to make them standout and make the `/docs/help` URL work when the app is served from browser extensions extension by prefixing it with the service URL. Also remove extraneous spaces from around the 'Send us a message' text.
-
Nick Stenning authored
Highlight the specific reply on standalone annotation pages for replies
-
- 16 Jun, 2016 2 commits
-
-
Lena Gunn authored
-
Sean Hammond authored
Reimplement NIPSA operations using NipsaService
-