Commit graph

195 commits

Author SHA1 Message Date
Abe Jellinek
1eb9718b6b Style editor: Light theme, leave selection if unchanged
Since onStyleModified() is called when a style is loaded.
2022-06-28 15:12:57 -04:00
Abe Jellinek
9c837b3361 Improve Monaco integration and use in csledit
And remove timedtextarea.xml. Fixes #2665.
2022-06-28 15:05:16 -04:00
Abe Jellinek
89587e6b76 fx-compat: native="true" on more checkboxes/menulists 2022-06-24 09:11:38 -04:00
Dan Stillman
9bf61f9914 fx-compat: Update CSL Edit window 2022-05-18 23:45:51 -04:00
Abe Jellinek
5196ba379b
Update typeSchemaData and builder script (#2576) 2022-04-28 02:12:29 -04:00
Dan Stillman
17d9f06b65 Update more try-wrapped calls to getString 2022-03-27 02:37:49 -04:00
Dan Stillman
f3a71a2c09 Log timing info for copying bibliography to clipboard and CSL Preview 2021-12-26 23:19:35 -05:00
Adomas Ven
44b6cd0525
citeproc-rs support (#2220)
Disabled under zotero.cite.useCiteprocRs by default
2021-12-15 17:28:41 -05:00
Dan Stillman
55e8f7914b Handle style errors in CSL Preview window
Keep going, and log the error
2021-12-15 17:21:26 -05:00
Adomas Venčkauskas
b5dc0e7630 Add a comment for how to open the data generator 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
af597d943b Move js-tree files out from /containers subfolder 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
5a97f2bdd8 ReactDom -> ReactDOM 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
cbbff600a6 XUL -> JS tree megacommit
- Just a single huge commit. This has been developed over too long a
time, required many tiny changes across too many files and has seen too
many iterations to be separated into separate commits.
The original branch with all the messy commits will be kept around for
posterity
bb220ad0f2...adomasven:feature/react-item-tree
- Replaces XUL <tree> element across the whole zotero client codebase
with a custom supermegafast virtualized-table inspired by
react-virtualized yet mimicking old XUL treeview API. The
virtualized-table sits on top on a raw-to-the-metal,
interpreted-at-runtime JS based windowing solution inspired by
react-window. React-based solutions could not be used because they were
slow and Zotero UI needs to be responsive and be able to
display thousands of rows in a treeview without any slowdowns.
- Attempts were made at making this screen-reader friendly, but yet to
be tested with something like JAWS
- RTL-friendly
- Styling and behaviour across all platforms was copied as closely as
possible to the original XUL tree
- Instead of row-based scroll snapping this has smooth-scrolling. If
you're using arrow keys to browse through the tree then it effectively
snap-scrolls. Current CSS snap scroll attributes do not seem to work in
the way we would require even on up-to-date browsers, yet alone the ESR
version of FX that Zotero is on. JS solutions are either terrible for
performance or produce inexcusable jitter.
- When dragging-and-dropping items the initial drag freezes the UI for
a fairly jarring amount of time. Does not seem to be fixable due to
the synchronous code that needs to be run in the dragstart handler.
Used to be possible to run that code async with the XUL tree.
- Item tree column picker no longer has a dedicated button. Just
right-click the columns. The column preferences (width, order, etc) are
no longer handled by XUL, which required a custom serialization and
storage solution that throws warnings in the developer console due to
the amount of data being stored. Might cause temporary freezing on HDDs
upon column resize/reorder/visibility toggling.
- Context menu handling code basically unchanged, but any UI changes
that plugins may have wanted to do (including adding new columns) will
have to be redone by them. No serious thought has gone into how plugin
developers would achieve that yet.
- Opens up the possibility for awesome alternative ways to render the
tree items, including things like multiple-row view for the item tree,
which has been requested for a long while especially by users switching
from other referencing software
2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
4d497afea0 Use Translator Tester code from shared repo for Scaffold 2021-07-28 15:46:07 +03:00
Adomas Venčkauskas
7814efcfe2 Use zotero/translate and zotero/utilities for shared code 2021-07-28 15:46:07 +03:00
Dan Stillman
558ad20ce6 Scaffold: Improve cookie handling
- Use cookies from browser pane when running detectWeb or doWeb
- Use cookies from document when running or updating tests

This should fix various cases where translators can't be properly
developed or tested in Scaffold (e.g., [1]).

[1] https://github.com/zotero/translators/pull/2296#issuecomment-739116620
2020-12-06 03:09:13 -05:00
Dan Stillman
ab3a5ddbd8 Scaffold: Include mimeType: text/html for attachments in test output
The connector includes this, so the new CI translator test runner in
zotero/translators was showing erroneous mismatches.
2020-07-16 17:40:48 -04:00
Adomas Venčkauskas
8e4ac40174 Decrease translator test timeout 2020-07-07 13:14:20 +03:00
Adomas Venčkauskas
19880e4ded Translator tester updates for running in CI 2020-07-07 12:21:10 +03:00
Dan Stillman
a086507167 Obey Cmd/Ctrl-W in Scaffold, Style Editor, and Run JavaScript windows 2020-05-17 04:08:43 -04:00
Dan Stillman
2e50d37ebb Translator tester: reduce defer delay from 20s to 5s
This seems like it would be sufficient for most tests that need to wait
for a page to load and is much less annoying in Scaffold. We could
adjust for automated runs if those end up using a browser again.
2020-05-15 19:21:40 -04:00
Dan Stillman
4068dffc0f Scaffold: Use loadDocuments() for tests and honor defer: true
Previously, while updating a test used loadDocuments() (for a real
browser load) and honored `defer: true`, running a test did not.

This updates Zotero_TranslatorTester to use loadDocuments() when run in
Zotero. In other environments (translation-server, connector), it will
continue to use processDocuments(), which is based on XHR.

Fixes zotero/scaffold#96
2020-05-15 19:21:40 -04:00
Dan Stillman
6f965251ed Add FilePicker module to replace nsIFilePicker
`nsIFilePicker::show()` is removed in Firefox 60 in favor of `open()`,
which takes a callback (and apparently has been preferred for a long
time).

There's no point switching to that, so this module is a version of
nsIFilePicker with an async `show()` that returns a promise and some
XPCOM-isms replaced (e.g., string paths instead of nsIFile).
2019-08-27 00:47:39 -04:00
Dan Stillman
7d7afc2b46 Add Style Editor to Developer menu 2019-08-05 05:05:57 -04:00
Dan Stillman
9b82373f70 Add ability for Scaffold to provide alternative translators
Zotero.Translate::setTranslatorProviderMethods(methods) can be used to
provide custom 'get' and 'getAllForType' methods that override the
default Zotero.Translators methods.
2019-07-24 04:31:11 -04:00
Adomas Venčkauskas
dd8ceb93aa Add data generator customization fields and add collection generation 2019-05-14 16:46:34 +03:00
Dan Stillman
a6fb0b35c3 Update processDocuments() signature for allow passing headers
Also:

- Actually use the cookie sandbox passed to processDocuments()

For zotero/translation-server#16, we want to include Accept-Language
(and maybe other headers) from the client request in upstream requests,
which requires passing it to both non-translate processDocuments().
translation-server's non-translate processDocuments() is defined in that
repo, but it's called by the cross-repo translate processDocuments() in
utilities_translate.js, so the signature needs to be changed in both
repos.

We also apparently weren't using the cookieSandbox in client
processDocuments() calls, though I think that only would've affected
translator testing.
2018-12-04 01:42:56 -07:00
Adomas Venčkauskas
b1e3195b5a Adds translatorTester nodejs compatibility code that doesn't break Scaffold 2018-11-13 13:25:01 +02:00
Dan Stillman
b80c405da4 Revert "Changes for translator tester compatibility with translation server"
This reverts commit e526a8fa89.

This is a repeat of a0ca67d879. The reverted changes break Scaffold.
This will need to be fixed in a way that allows Scaffold to continue to
work.
2018-11-12 00:40:30 -05:00
Adomas Venčkauskas
e526a8fa89 Changes for translator tester compatibility with translation server 2018-10-31 11:32:33 +02:00
Adomas Venčkauskas
8d61e30a93 Update translatorTester for use in translation server 2018-10-26 16:30:08 +03:00
Dan Stillman
a0ca67d879 Revert part of 5b3b1f0f1 to fix Scaffold breakage
I didn't look into the details, but `this` isn't defined when this file
is loaded within Scaffold, so this line caused an error and the
translator tester was broken.
2018-10-21 05:37:03 -04:00
Adomas Venčkauskas
5b3b1f0f1b Update translatorTester for translation server support 2018-10-19 13:47:44 +03:00
Dan Stillman
05843bb093 Fix base fields in connectorTypeSchemaData.js 2018-05-10 02:26:44 -04:00
Dan Stillman
7d14da3a8c Fix translator test mismatches due to 5.0 tag format 2017-10-05 17:18:43 -04:00
Dan Stillman
9209edd081 Use object for translate() in translator tests 2017-10-05 17:18:42 -04:00
Dan Stillman
23cf6bd007 Use new HTTP.processDocuments() in translatorTester 2017-10-05 17:18:42 -04:00
Dan Stillman
d5261841be Allow substrings when filtering translator tests 2017-10-05 17:18:42 -04:00
Dan Stillman
819be60796 Switch to XMLHttpRequest for processDocuments()
processDocuments() now uses an XHR 'document' request, wrapped to
provide a 'location' property, and uses promises for a simpler call
signature (though the old one will continue to work, for existing
translators). 'done' and 'exception' can now be handled via promises,
and in the translator sandbox an optional noCompleteOnError argument
instructs it not to automatically cancel the translation process with an
error (e.g., for supplementary materials).

Since we do need a hidden browser in some situations (e.g., for saving
snapshots), the old hidden-browser-based processDocuments() is still
available as Zotero.HTTP.loadDocuments().

This hopefully also fixes various problems with document property access
in translation-server.
2017-10-05 17:18:42 -04:00
Frank Bennett
b0c0cd6e0c Expose styleEngine in csledit.js, for Abbreviation Filter 2017-08-24 23:26:03 +09:00
Dan Stillman
b60fdacd3f Fix whitespace and description in build_typeSchemaData.html 2017-05-08 18:51:50 -04:00
Adomas Venčkauskas
e1f09d4655 Remove unneeded connector files, update connectorTypeSchemaData.js
Addresses zotero/zotero-connectors#121
2017-05-08 14:38:03 +03:00
Dan Stillman
f4eb8ed3bb Pass chunk size to data generator
TODO: Add text fields for controlling number of items and chunk size

(Chunk size should be small for testing UI interactions and performance
but large for generating lots of data.)
2017-03-21 05:06:37 -04:00
Dan Stillman
d9b5fd78c9 Fix error from empty strings in data generator 2017-03-21 04:58:38 -04:00
Dan Stillman
b732a82d55 Script to generate random item data
For building up a big library and testing UI interaction during writes

To use, load chrome://zotero/content/tools/data_generator.html in
Firefox (for now).

Could be improved a bit to add other kinds of data (collections,
child items, relations)
2017-03-09 04:02:09 -05:00
Dan Stillman
a57ea28d42 Fix csledit
Closes #1149

(There's an additional change in #1149, but as far as I can tell it's
not necessary for csledit.xul.)
2017-02-03 00:53:43 -05:00
Dan Stillman
23f84d796f Fix CSL Preview pane
CSL Editor is being fixed in #1149
2017-01-15 02:46:03 -05:00
Tom Najdek
269e2f8bff Replace legacy syntax for each...in with for...of 2016-12-21 08:04:09 -05:00
Adomas Venčkauskas
3ca5526f29 Fix translator tester on xul extension 2016-09-23 17:37:47 +03:00
Adomas Venčkauskas
e83bbbad4e Fix getTranslatorCode bugs
- /connector/getTranslatorCode used to respond with empty content
- CodeGetter froze connectors by issuing hundreds of simultanious XHR
  requests
2016-09-20 15:55:58 +03:00