Commit graph

25 commits

Author SHA1 Message Date
Dan Stillman
89992665cd Inherit ESLint config 2019-03-31 21:12:43 -04:00
Dan Stillman
d9cee322cd Tag selector performance overhaul
- Use react-virtualized to render tags on demand, reducing the number
  of DOM elements from potentially tens of thousands to <100. This
  requires tags to be absolutely positioned, so sizing and
  positioning need to be precomputed rather than relying on CSS.
- Avoid unnecessary refreshes, speed up tag retrieval, and optimize
  sorting
- Debounce reflowing when resizing tag selector

Also:

- Scroll to top when changing collections
- Allow tags to take up full width of tag selector without truncation

Closes #1649
Closes #281
2019-03-28 06:28:34 -04:00
Dan Stillman
c52589f96b Upgrade to Babel 7 2019-03-28 04:57:31 -04:00
Dan Stillman
f596a203f7 Update React to 16.8.4 and chokidar to 2.1.2 2019-03-21 05:08:04 -04:00
Dan Stillman
c26c85a262 Add babel-eslint for class field syntax in JSX 2019-03-18 18:22:28 -04:00
Dan Stillman
0cdbae8353 Update eslint-plugin-react 2019-02-26 05:55:51 -05:00
Dan Stillman
9b55884693 Add eslint to package.json 2019-02-26 01:57:22 -05:00
Adomas Venčkauskas
a24cada451 React Tag Selector polish, i18n and tests
- Added icon-button UI code for the menubutton
- Upgrade to React 16 to allow non-standard attrs, such as `tooltiptext`
to support XUL tooltips
- Add i18n support for React UI elements
- Update tests for reactified tag selector
2019-01-21 11:01:27 +02:00
Tom Najdek
897e74c7f1 Reactify the Tag Selector 2019-01-07 15:33:45 +02:00
Dan Stillman
ce5be0bc75 Automatically download open-access PDFs when saving via the connector
If there's no translated PDF or the translated PDF fails and the item
has a DOI, check Zotero's Unpaywall mirror for possible sources and try
to download one of those.

Unlike with "Add Item by Identifier" and "Find Available PDF" in the
item context menu, this does not try the DOI/URL page, since it would
result in more data leakage and most of the time you'd be saving from
the DOI page already. We could consider offering it as an option, but
for it to be useful, you'd have to have an institutional subscription,
be on-campus or connected via VPN (for now), and be saving from
somewhere other than the main page.

A new connector endpoint, sessionProgress, takes the place of
attachmentProgress. Unlike attachmentProgress, sessionProgress can show
new attachments that have been added to the save, and with a little more
work should also be able to show when a parent item has been recognized
for a directly saved PDF.

This also adds support for custom PDF resolvers, available to all PDF
retrieval methods. I'll document those separately.

Closes #1542
2018-08-16 00:57:22 -04:00
Dan Stillman
da5db4cb38 Update node-sass to fix build breakage 2018-06-11 09:01:32 -04:00
Dan Stillman
b4244f8a25 Update to Sinon 4.5.0 2018-04-07 17:01:46 -04:00
Dan Stillman
c17695939c Update Node packages 2017-12-10 03:45:07 -05:00
Dan Stillman
241df13954 Update chai-as-promised after chai update
(Though we should mostly just use async/await)
2017-10-27 01:35:12 -04:00
Dan Stillman
7f8699b937 Update chai to 4.1.2 2017-10-27 01:08:38 -04:00
Dan Stillman
e14b8f94bd Remove babel-plugin-transform-async-to-module-method
Everything we support supports async/await now, so stop converting to
Bluebird coroutine().
2017-10-05 17:18:43 -04:00
Tom Najdek
b53fabbb58 Better build process (#1248)
* Remove gulp, replace with custom scripts
* Symlink entire dirs where possible (fixes #1232)
* Significantly speed up subsequent builds (fixes #1238)
* Watch process now observes new/removed files, not only changed
* Add ignoreMask, exclude all files with names starting with a #
* Better logging during builds
* Update travis.yml to use new, non-gulp-based build
2017-06-20 19:18:46 -04:00
Dan Stillman
7dd9cee0d4 Update package.json and package-lock.json 2017-06-13 18:04:10 -04:00
Tom Najdek
c335099465 Add support for glob in babel-worker ignored paths
* Also fixes an issue with handling paths on Windows
2017-06-06 00:35:59 -04:00
Tom Najdek
f98ccdee46 Ensure build process exits with non-zero result on failure
* During build, error is printed out with stack and process exits
* During development, initial build behaves as above, however when
  watching files, errors are displayed but watch process does not
  exit allowing fixes without a complete rebuild.
2017-06-05 11:41:10 +01:00
Dan Stillman
201af23484 Remove sinon-as-promised from package.json 2017-06-01 15:44:25 -04:00
Tom Najdek
289b049377 Support generators in tests via coMocha, instead of custom code
* coMocha offers better error stack trace
2017-06-01 11:36:17 -04:00
Tom Najdek
14bf3184bb Fixes and tweaks to make tests work with babelized code
* Use mocha, chai & sinon from the npm. As of sinon 2.0
  sinon-as-promised is no longer required so it is removed
* Tweak code to re-use the same loader with the same environment
  throghout the code
* Introduce browserify step for testing tools that only provide
  node-compatible libraries (sinon, chai-as-promised)
* Introduce copy step for test data to resolve multiple issues with
  tests depending on files not being symlinks
* Re-introduce custom implementation of setTimeout to resolve issues
  with few tests
* Re-introduce custom Bluebird Promises config & monkey patch
2017-06-01 11:36:16 -04:00
Dan Stillman
748c30206f Run tests from build dir 2017-06-01 11:36:16 -04:00
Tom Najdek
9aa057edee Introduce a build system
* Add a multi-process, gulp-based build system to support es6 features,
  async/await, jsx and scss
* Add a package.json to support dependency management and allow starting
  the build process via npm
* Replace embedded Bluebird library with npm-installed one
* Add react, react-dom and web-library
* Introduce a custom require() loader in include.js as well as a minimal
  local require() implementation in various other places
2017-05-23 17:02:50 +01:00