- 23 Feb, 2016 11 commits
-
-
Robert Knight authored
As per the comment in karma-phantom-polyfills.js, it is preferable that the tests use only a minimal set of polyfills which match those used in the app. Since we now have a script which requires all of the polyfills used in the app for IE 10/11, we can just include that in karma-phantomjs-polyfill.js. This also removes the need to keep two separate Promise polyfill packages.
-
Robert Knight authored
* Explicitly require the polyfills bundle from the sidebar and injector. In future we'll want to avoid including these polyfills for newer browsers but requiring it explicitly makes it obvious if the bundle is missing in the meantime. * Simplify the configuration specifying the modules to skip parsing for, since there are only two. * Reduce duplicated logic for creating app bundle configuration * Add additional comments and documentation to explain what various parts of the config do * Rename createBundle.js -> create-bundle.js for consistency with the rest of the codebase and move vendor-bundles.js to scripts/gulp to avoid cluttering the top of the source tree.
-
Robert Knight authored
* Unset the doNotParse flag on Bootstrap, since the npm package _does_ use CommonJS modules.
-
Robert Knight authored
ES2015 polyfills have now been centralized in the polyfills.js script.
-
Robert Knight authored
By default the app bundle included the large polyfills for Node's buffer and crypto modules due to them being required by node-uuid. Fix this by making Buffer undefined in the browser and explicitly whitelisting the set of modules that Browserify should polyfill.
-
Robert Knight authored
In particular, explain why noParse is useful and may even be required.
-
Robert Knight authored
-
Robert Knight authored
As explained at https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient#History_of_the_syntax the direction syntax was changed a long time ago from '<starting point>' to 'to <destination point>'. This fixes a warning from autoprefixer.
-
Robert Knight authored
This removes several dependencies from the tests that were unused and fixes an issue where Angular was loaded multiple times, once as a global script and once on the first use of "require('angular')" inside a module included in the tests.
-
Robert Knight authored
Use the correct import format for global imports of ES2015 polyfills, as per the core-js documentation.
-
Robert Knight authored
This replaces the webassets build for the front-end JavaScript and CSS with Gulp + Browserify. webassets continues to be used but only to serve the assets, not to generate them or keep track of dependencies. * Use CommonJS for all JS dependency imports rather than relying on Window globals. This makes dependencies more explicit and avoids the need to specify dependencies explicitly in the build tool, since they can be statically analyzed via the require graph. * Remove the webassets custom filters for Browserify and CleanCSS. * Put all generated JS/CSS/font/image assets in build/{images,fonts,styles,scripts} * Replace compass with node-sass + compass-mixins for building the SCSS files. We were not relying heavily on compass functions, many of them were used only for vendor prefixing which is now handled by autoprefixer, so we can remove the Ruby/compass dependency and substitute node-sass quite easily.
-
- 22 Feb, 2016 4 commits
-
-
Robert Knight authored
Add a first pass at a releaser script
-
Christof Dorner authored
Decouple transaction manager from database session
-
Nick Stenning authored
Fix annotation tag links
-
Robert Knight authored
The ng-href directive does not treat its contents as an Angular expression. Fixes a regression introduced in e334fea0241282
-
- 19 Feb, 2016 4 commits
-
-
Robert Knight authored
Randomize websocket reconnects
-
Nick Stenning authored
Currently, if the websocket connection fails, then we will always immediately attempt a reconnect. This can easily contribute to a thundering herd problem if all WebSocket clients (or even a large portion of them) are disconnected simultaneously. This commit ensures that an aborted connection always results in at least a 1s-2s (randomized) delay.
-
Nick Stenning authored
The client websocket code will automatically attempt to reconnect on error or disconnection. This commit: - Randomises the delay before reconnection - Wait two seconds before attempting to reconnect (meaning the real delay will be between 2 and 4 seconds) -- this is an attempt to spread out reconnections over a longer period. - Makes it stop retrying after 10 attempts (i.e. roughly 30 minutes)
-
Nick Stenning authored
Copy changes to Toggle or Resize Sidebar
-
- 18 Feb, 2016 19 commits
-
-
Lena Gunn authored
-
Sean Hammond authored
Simplify routing
-
Nick Stenning authored
Fix styling of heading on 404, 5xx and Unsubscribe pages
-
Robert Knight authored
This is a partial revert of 47bf5e8b5a123a9a5f1822e2bc84e5477aed6293 These pages use elements with both styled-text and page classes applied and the result is currently source-order dependent. Pending a refactoring of these styles, this reverts the @import order change.
-
Nick Stenning authored
Annotation card & groups list style cleanup
-
Sean Hammond authored
Move /api/token endpoint into application
-
Robert Knight authored
Using @extend with a class declared in a different source file prevents local reasoning about the final set of rules that will apply for a class because that depends on what order the components are included. See http://csswizardry.com/2014/11/when-to-use-extend-when-to-use-a-mixin/ for additional reasons to avoid @extend in most cases.
-
Robert Knight authored
-
Robert Knight authored
* Make the .scss file names consistent with the names of their components for <annotation>, <thread> and <markdown>. * Sort component includes alphabetically and use relative paths. Although SASS technically doesn't care about relative paths, it makes the code style more consistent and also provides consistency with the JS code. * Move app-specific component style includes out of common.scss into app.scss
-
Robert Knight authored
Rename style to signin-control-menu to match the name of the associated component.
-
Robert Knight authored
Move styles for the <group-list> and <signin-control> components out of app.scss and into the appropriate SCSS files.
-
Nick Stenning authored
Do not clear selection and reset search when creating a reply
-
Robert Knight authored
Don't open "welcome page" when installed by admin policy
-
Robert Knight authored
The purpose of clearing the selection was to ensure that the new annotation was immediately visible. Clearing the selection when creating a reply to a selected annotation is not necessary because the reply is part of an already-visible thread.
-
Robert Knight authored
The logic for clearing the selection and search in the sidebar when creating a new annotation was incorrectly being triggered: a) On the stream, where creating new annotations is not possible except for replies and b) For replies. The selection should only be cleared in the sidebar when creating a new annotation with a location on the page. This commit addresses the first issue by moving the logic for clearing the selection to the sidebar's controller.
-
Nick Stenning authored
Upgrade to Angular 1.5.0
-
Robert Knight authored
Angular 1.5 introduces '<' as a way of specifying that an isolate scope property is an input (one-way) binding. Note that this is different from '::' (one-time) bindings from ng 1.3. See http://angularjs.blogspot.co.uk/2016/02/angular-150-ennoblement-facilitation.html for details. The principle benefit is making it obvious when looking at the definition of a component whether a property is an input or whether it is a binding that the component might write to.
-
Robert Knight authored
The only change required was to fix an issue in <excerpt> where the optional 'animate' and 'collapse' properties were not correctly marked as optional, triggering an internal error.
-
Nick Stenning authored
Annotation test cleanup
-
- 17 Feb, 2016 2 commits
-
-
Robert Knight authored
Scrollable groups list
-
Nick Stenning authored
This commit ensures that the groups list is scrollable when it is forced to be smaller than the viewport due to the number of groups in it. It's not an ideal solution, as in some contexts there isn't much of a hint to the user that the widget is scrollable. It probably beats the existing behaviour, though. Fixes #2971.
-