- 20 Apr, 2016 10 commits
-
-
Robert Knight authored
KaTeX escapes its own input and we trust it to generate safe HTML as output. Passing HTML generated by KaTeX through ngSanitize can mangle the result. eg. The formatting of the infinity symbol is corrupted when using this test block for example: $$\lim_{x \to \infty} \exp(-x) = 0$$ This commit rewrites the rendering logic to only sanitize the markdown output from Showdown. This additionally fixes an issue where text that _happened_ to also be valid markdown in the rendered math would be rendered as markdown, which is not what we want.
-
Robert Knight authored
-
Robert Knight authored
-
Robert Knight authored
Create a single instance on the first call and cache it afterwards.
-
Robert Knight authored
- Add a test that input markdown is sanitized with ngSanitize - Add a test that verifies that malformed HTML is tolerated. Angular 1.5.x no longer throws an exception when the input HTML is malformed. This adds a test to catch any potential changes in future and document the expected behavior. Fixes #2970 Fixes #2935
-
Robert Knight authored
Make it easier to verify that rendered content is sanitized correctly by feeding the final HTML string to $sanitize once, instead of trying to sanitize pieces individually.
-
Robert Knight authored
In the process, this fixes a bug with the previous implementation where inline math was rendered if it started or ended with either '\(' or '\)'. The new implementation requires that inline math blocks start with only '\(' and must have a matching '\)'
-
Robert Knight authored
-
Robert Knight authored
This logic has now been moved to render-markdown.js
-
Robert Knight authored
Extract markdown and math rendering out of the editor component into a separate module and add tests.
-
- 19 Apr, 2016 18 commits
-
-
Nick Stenning authored
CSP Violation: old homepage
-
Lena authored
Changes the space between items in the group members list. Reduces the space between documents a little, to make them a bit more balanced.
-
Nick Stenning authored
Dev install docs corrections
-
Nick Stenning authored
Scroll share dialog into view when created
-
Robert Knight authored
These dialogs appear at the top of the annotation list, scroll them into view if necessary. The 'scroll-into-view' library is used rather than Element.scrollIntoView() in order to get smooth animations that are consistent with how the document is scrolled to selected annotations. - Only write to the dialog visibility state in one place in AppController. - Scroll share and login dialogs into view when corresponding link is selected in top bar. Fixes #3043
-
Robert Knight authored
Convert the dialog to JS and modernize the style to follow current component conventions.
-
Sean Hammond authored
Remove empty annotations when a new annotation is created
-
Robert Knight authored
When a new annotation is created, remove any empty annotation cards that currently exist. This fixes an issue where it was easy to accidentally create a large number of blank annotations or empty replies. Any annotations which are not new (ie. have an ID assigned) or have tags or text entered by the user are kept. This logic applies to both annotations and replies.
-
Robert Knight authored
Merge pull request #3197 from hypothesis/sheetaluk/299-add-a-copy-to-clipboard-button-to-the-share-menu Add copy to clipboard functionality.
-
Sheetal Umesh Kumar authored
Add basic copy to clipboard functionality so user can use a button click to copy a direct link to his clipboard, when supported by the browser. * Refactor annotation share dialog into a component. * Add tests for annotation share dialog.
-
Robert Knight authored
Merge pull request #3216 from hypothesis/sheetaluk/298-add-product-version-and-environment-info-to-the-tool Show product version and environment info.
-
Sheetal Umesh Kumar authored
Show a dismissable card to the the top of the sidebar containing information about the version of the tool they have installed as well as environment information so that we have more information while troubleshooting errors.
-
chdorner authored
-
chdorner authored
-
chdorner authored
`legacy-site.js` is only loaded on the old home page, so we can safely add it to that existing JS file.
-
chdorner authored
It lives in it's own CSS file (`styles/old-home.css`) to make it easier to delete once we remove the old homepage.
-
Christof Dorner authored
Add a helper function for writing parameterized JS tests
-
Christof Dorner authored
Fix error in session.js when an /app request fails
-
- 18 Apr, 2016 4 commits
-
-
Sean Hammond authored
Retry requests to /api endpoint
-
Robert Knight authored
Mocha lacks built-in support [1] for writing parameterized tests and the suggested solution [2] involves a bunch of boilerplate* which has IMO resulted in different styles of parameterized tests in our codebase and not having parameterized tests when they would be useful to attain more complete coverage. This adds a helper inspired by [3] for writing parameterized tests and switches several existing places in our code to use it. * Though less with ES2015 syntax. [1] https://github.com/mochajs/mocha/issues/1454 [2] https://mochajs.org/#dynamically-generating-tests [3] https://github.com/lawrencec/Unroll
-
Robert Knight authored
Do not expect to be able to parse valid session data out of responses with 5xx status codes - eg. gateway errors, internal server errors.
-
Christof Dorner authored
Convert admin to package
-
- 15 Apr, 2016 1 commit
-
-
Sean Hammond authored
Fix KaTeX font urls
-
- 14 Apr, 2016 7 commits
-
-
Nick Stenning authored
Dispatch markdown editor input changes from $apply() block
-
Robert Knight authored
The input event handler's callback was not invoked inside an $apply() block, so the $digest function was never called to propagate the changes in vm.setEditText() in annotation.js. This happened to work previously because ngModel's $setViewValue() was called to apply input changes, which internally uses $scope.$apply(). This commit wraps the input events from the markdown editor with $apply but debounces them. Since $apply() triggers every single watcher in the application, running it on every keystroke causes noticeable lag otherwise. Fixes #3212
-
Christof Dorner authored
Replace homebrew background workers with Celery
-
Robert Knight authored
Handle requests to the /api endpoint that fail with network errors in the same way as failed requests to the /app endpoint by retrying the request with exponential backoff until it succeeds. Otherwise, if the request fails then `store.(Annotation|Search)Resource` are not populated and code that tries to make API requests fails.
-
Robert Knight authored
When a request to the session endpoint fails with a network error, avoid trying to parse the response in process()
-
Robert Knight authored
Tidy up the 'resolve' object to use `// @ngInject` and add a comment to clarify what it is for.
-
Robert Knight authored
Update package.json with the version as-formatted by npm
-