- 01 Jun, 2016 1 commit
-
-
Nick Stenning authored
The timestamp wasn't originally specified to be switched to the "in-context" link, so this commit makes sure that it always points to the "HTML" representation of the annotation, if that link is available.
-
- 30 May, 2016 11 commits
-
-
Robert Knight authored
Prepare the direct_linking feature flag for removal
-
Robert Knight authored
-
Christof Dorner authored
Show adder when the selection changes
-
Christof Dorner authored
Fix client on pages that define a variable called `global`
-
Robert Knight authored
Modules which assume the existence of a global variable called "global" (which exists in Node) are wrapped by Browserify during the build which normally results in "global" being aliased to "self" or "window" in a browser environment. If code on the page into which H is loaded defines a global variable called "global" however, that gets used instead and this can break such modules. In the case of https://www.civilsprep.com, "global" is a reference to a DOM node for example. This commit fixes the issue by only aliasing "global" (as seen by the module using it) to either "window" or "self" and not to any existing variable called "global". Fixes #2723
-
Nick Stenning authored
This is now deployed and enabled for everyone so we can remove the flag.
-
Robert Knight authored
Make "/app" endpoints relative to serviceUrl
-
Nick Stenning authored
As reported by Donny Donovan from EJP, requests to "/app*" related endpoints weren't correctly being constructed relative to the configured "serviceUrl", which makes the client less portable. This change removes a leading slash from the path supplied to the URL constructor, ensuring that if "serviceUrl" is not at the root of a domain, the "/app*" paths will still be correctly constructed.
-
Robert Knight authored
Extract functions for generating and manipulating observable streams which are not text-selection-specific out of `selections.js` into a separate utility module.
-
Robert Knight authored
When using touch input to manipulate the selection there are no mousedown/mouseup events that we can listen to and the touchstart/touchend events are not triggered when manipulating the OS-provided selection handles in the browser. Instead listen for selectionchange events and show the adder in response. To avoid showing the adder every time the selection handle moves which would be distracting, we instead buffer selectionchange events and only show them after a pause. When the user is using mouse input to make a selection, we ignore selectionchange events so that the adder does not appear until the user finishes making their selection.
-
Robert Knight authored
In preparation for some more complex handling of document events in order to show the adder when the selection changes on mobile, refactor the processing of events to use observables. The zen-observable package is used as a lightweight implementation of the proposed ES2017 [Observable](https://github.com/zenparsing/es-observable) API.
-
- 27 May, 2016 1 commit
-
-
Christof Dorner authored
devserver: Extend ALLOWED_ORIGINS instead of overriding it
-
- 26 May, 2016 8 commits
-
-
Robert Knight authored
Add padding, fix hover state colours, tweak shadow
-
Conor Delahunty authored
Making this change to increase the visibility of the adder.
-
Nick Stenning authored
Legacy API cleanup
-
Nick Stenning authored
Restructure the documentation
-
Sheetal Umesh Kumar authored
If a selected annotation is unavailable to a user, prompt user to sign in if they are not signed in. If a selected annotation is unavailable to a user and they are already signed in, display a message. See: https://trello.com/c/scNGUMBk/330-improve-copy-to-clarify-direct-linking-functionality
-
Nick Stenning authored
Use human friendly pylint names
-
Nick Stenning authored
Add enter/exit animation when adder is shown
-
Nick Stenning authored
Remove legacy ES code
-
- 25 May, 2016 15 commits
-
-
Robert Knight authored
Usage of this was removed by ba02aee28
-
Robert Knight authored
The previous logic contained several errors and omissions which could result in the card not appearing at the top of the viewport after scrolling. 1. If the set of visible threads changed multiple times before the timeout that triggered re-measuring of visible thread heights changed, then a measured height could be replaced with 0. Add checks to catch this. 2. Account for the target scroll offset changing as a result of the document height increasing after the actual heights of cards become known and consequently the maximum possible scroll offset changes. 3. Correct calculation of the position that we need to scroll the window to in order to have a card positioned at the top of the window. For the first card in the list, the position should be 0 (as returned by visibleThreads.yOffsetOf(...)), and for the Nth card it should be the total height of the N-1 previous cards.
-
Robert Knight authored
The previous delay made the adder feel laggy. A shorter delay gives a snappier feel.
-
Robert Knight authored
Add an entry animation for the adder which makes it 'pop up' or 'pop down', depending on which direction the arrow is pointing. Additionally, animate the color transitions when hovering over the toolbar buttons to soften the changes.
-
Robert Knight authored
This was missed in 6c0e21a5df.
-
Robert Knight authored
Fix several missing 'var' declarations in streamer.js
-
Nick Stenning authored
New threading 4/N - Virtualize the thread list
-
Sean Hammond authored
-
Robert Knight authored
Re-implement the behavior to scroll newly created annotations into view in the sidebar so that the user can start editing them immediately. A complication with doing this given that the annotation list is virtualized is that if we want to scroll to the Nth visible annotation, we may not know the actual heights of the N-1 annotations above it. As a result of scrolling the list, some of the heights of those N-1 annotations may be updated from an estimate to an actual measured height, changing the Y offset that we want to scroll to in order to make the Nth annotation visible. There are a few strategies that we could use for dealing with this: 1. Forcibly render all N-1 annotations and measure their height. This is prohibitively expensive for long annotation lists. 2. Use a cheaper method to calculate the exact height of an annotation. Unfortunately we don't have a way to do this at the moment. 3. Use an iterative approach: a. Estimate the target position based on current known/guessed heights. b. Scroll to the estimated position, which will trigger re-rendering and possibly alter the known thread heights. c. Re-estimate the target position and if it changed, go to step b. This commit implements the third method.
-
Robert Knight authored
These elements are used purely to reserve space for offscreen threads which are not actually present in the DOM, so they should not occupy any space beyond that assigned to their 'height' inline style properties.
-
Robert Knight authored
Annotation cards have a small (~8px) margin at the bottom which needs to be taken into account when computing the height of each thread in order to accurately size the spacer element which reserves space for off-screen threads.
-
Robert Knight authored
Expand the class description to better explain how virtualization improves UI performance.
-
Robert Knight authored
Prior to this unsaved changes were lost when an annotation being edited was scrolled off-screen and the annotation component was destroyed. There was already a mechanism in place for persisting unsaved changes to a temporary store when switching accounts and when switching groups but this was only triggered when the signed in user changed or the focused group changed. This commit unifies the handling of all three cases by listening for the '$destroy' event which is fired whenever an <annotation> is about to be destroyed.
-
Robert Knight authored
Use transform3d() to force the top bar onto a new compositor layer so that it does not judder around when scrolling the window. The better fix here will be to make the body scroll rather than the whole window.
-
Robert Knight authored
Make the sidebar handle "large" (ie. 50+) numbers of annotation threads much better by virtualizing the thread list. Virtualizing means that we only instantiate <annotation-thread> components for threads which are either in or 'near' (above/below) the viewport. For the remaining offscreen threads space is reserved by a couple of <li> elements above and below the visible threads.
-
- 23 May, 2016 2 commits
-
-
Robert Knight authored
Following the introduction of the <annotation-thread> component this is now unused. This also removes the JWZ threading implementation since the functionality this provided is now implemented by `build-thread.js`
-
Nick Stenning authored
New threading 3/N - Render annotation threads using new threading infrastructure
-
- 13 May, 2016 2 commits
-
-
Robert Knight authored
Make the behavior of the new threading implementation consistent with that of the previous threading implementation by displaying the total number of visible annotations (+ replies) as the search result count.
-
Christof Dorner authored
Fix "Set changed size ..." error in websocket server
-