Commit graph

6607 commits

Author SHA1 Message Date
Dan Stillman
bb246e5514 Scroll first selected row into view in itemTreeView::selectItems()
Separate out the enhanced ensureRowIsVisible() logic from selectItem()
and call it from selectItems() as well on the first item in the set.
2016-12-11 02:30:34 -05:00
Dan Stillman
142694ca0f Fix opacity of lines in progress popup when using addLines()
Lines default to 50%, but addLines() doesn't provide a mechanism for
updating the opacity, so all the callers that used addLines() showed as
gray. Instead, just default to 100% when using addLines().
2016-12-11 02:30:34 -05:00
Dan Stillman
78b1d2ee35 Import translation improvements
- Don't block the UI with a progress meter during imports. Instead, show
  a popup in the bottom right when the import is done that shows how
  many items were saved.
- Fix hang when importing some files
- Fix various problems with asynchronous operations/transactions
    - Use the save queue for imports instead of creating concurrent
      transactions that can time out
    - Wait for the save to finish before returning from the translate()
      promise. All save modes now use the save queue, so code that
      handled the non-save-queue process can probably be removed.
    - Serialize child attachments instead of running them concurrently.
      This might make multi-attachment saves a little slower, since they
      can't download at the same time, but it avoids problems with
      concurrent transactions. We might be able to improve this to allow
      concurrent downloads, or allow concurrent saves for a limited
      number of items (e.g., from web saving) if not for larger imports.
- Change collection handling during import, since UI is now active
  - Select the root collection at the beginning of the import
  - Assign items and collections to the root during the import instead
    of at the end
  - Don't select other collections
- Change a few ItemSaver functions to use promises and remove
  unnecessary callbacks. (This includes some connector code that needs
  to be tested.)
- Change some `parentID` variables in ItemSaver to `parentItemID` for
  clarity, since collections are now handled in more places

To-do:

- Save items in smaller batches instead of doing all in the same
  transaction
- Show progress meter in a bottom-right popup during the import
2016-12-11 02:30:34 -05:00
Dan Stillman
c61a9dc5f3 Localized plural form support for Zotero.getString()
Zotero.getString() now takes a third parameter, `num` (which should also
appear in `params`) to use when determining which plural form of the
string to use. Localized strings should include all forms in the order
specified in [1], separated by semicolons.

[1] https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Localization_and_Plurals
2016-12-11 02:30:34 -05:00
Dan Stillman
9836f33d41 Add .collections support to Zotero.Attachments.linkFromURL() 2016-12-09 06:30:39 -05:00
Dan Stillman
0e72ee3305 Sort translators in import filepicker drop-down 2016-12-09 06:30:38 -05:00
Dan Stillman
04516af552 Stop using Zotero.lazy() for Zotero.Translators.init()
It makes things too complicated with some of the logic necessary for bundled
file updating.
2016-12-09 06:30:38 -05:00
Dan Stillman
98720462fe Fix multi-tag insert mode 2016-12-08 06:57:05 -05:00
Adomas Venčkauskas
eaa758870e Octal literals invalid in strict mode, replacing with hexadecimal
Relevant in connectors
2016-12-08 13:28:33 +02:00
Dan Stillman
fbd21bae16 Don't update feeds after syncs during tests
This reverts commit 60befe52e4 and adds a
better fix that leaves the notifier event in place. Feeds just don't
need to update after syncs during tests.
2016-12-08 05:58:46 -05:00
Dan Stillman
2b9ef26c61 Fix renaming linked attachment files 2016-12-08 03:57:49 -05:00
Dan Stillman
021f8e1476 Bypass cache when requesting .prop file from WebDAV
This might not be necessary, but it's an attempt to troubleshoot
https://forums.zotero.org/discussion/63439/attachments-not-syncing,
which might be a caching issue.
2016-12-06 08:40:19 -05:00
Dan Stillman
73e1fd07b0 Fix error exporting standalone notes 2016-12-06 08:17:45 -05:00
Dan Stillman
99cd11e793 Exclude feeds from Quick Format searches
Addresses #1126
2016-12-06 07:14:16 -05:00
Dan Stillman
5866a76312 Fix reading settings from other-app profile 2016-12-06 05:20:55 -05:00
Dan Stillman
c08354eced Don't show migration message in a popup in Standalone
Apparently this was happening sometimes, though I'm not sure how.
2016-12-06 05:10:48 -05:00
Dan Stillman
abff9e39ad Remove "do not interrupt" from migration message
It would be good for people not to kill the process indiscriminately, but the
migration will theoretically pick up where it left off, so it shouldn't be too
big a deal.
2016-12-06 05:02:59 -05:00
Dan Stillman
88096ac76a Fix context menu auto-selection bug
A context-menu entry was being selected automatically when the click
target was near the bottom of the screen.
2016-12-05 21:34:36 -05:00
Dan Stillman
c54af7a5ae Remove redundant _addToolbarIcon() calls at startup 2016-12-05 05:17:03 -05:00
Dan Stillman
d19732ba5f Fix item-not-loaded error resetting data in unloaded library 2016-12-05 05:05:09 -05:00
Dan Stillman
302efb0854 Fix User-Agent header handling for endpoints updated in b5bc18c7ed 2016-12-05 03:05:11 -05:00
Dan Stillman
b5bc18c7ed Add new init(options) signature for server endpoints
An endpoint can now take a single object containing 'method', 'pathname',
'query', 'headers', and 'data' and return an integer, an array containing
[statusCode, contentType, body], or a promise for either. This allows the
handlers to use the HTTP method and headers and removes the need for callbacks
when some handlers already use coroutine().

If init() returns a promise, it now has to use the new single-parameter
signature (because the check is done with Function.length, and combining
promises and callbacks doesn't make sense anyway).
2016-12-05 02:55:32 -05:00
Dan Stillman
57603427e3 Fix clicking Choose to select custom data dir when already set 2016-12-04 14:18:43 -05:00
Dan Stillman
ee798dde16 Fix Firefox connector breakage after 69ab4b0b1
This also makes a few changes to `callMethod`:

- Removes the deprecation warning when a string is passed and removes the
  `httpMethod` `options` property. Any call that passes a string and includes
  `data` can just remain as a POST. If `data` is null or undefined, a `GET`
  will be sent. (If we find ourselves needing other methods, we can reevaluate.)
- Renames `httpHeaders` to `headers` for consistency with other code (and in the
  absence of `httpMethod`)
2016-12-03 05:01:10 -05:00
Dan Stillman
44e06eec08 Update deprecated URL to Console.jsm 2016-12-02 17:32:17 -05:00
Dan Stillman
cbcf9cb3de Color long time intervals red in debug output to terminal
Defaults to 250 ms. The threshold can be changed with
extensions.zotero.debug.slowTime. Set to 0 to disable.
2016-12-02 17:28:39 -05:00
Dan Stillman
f55c2f51ee Remove extensions.zotero.debug.time and always show interval in output 2016-12-02 17:28:39 -05:00
Dan Stillman
f3fd7e7a10 Don't load bundled files in Standalone until UI is ready 2016-12-02 17:28:39 -05:00
Dan Stillman
8c48b2f806 Additional debugging for https://forums.zotero.org/discussion/63363/ 2016-12-01 16:01:35 -05:00
Dan Stillman
6900a5ccf8 Removed unnecessary localized string for style installation error
Would only be used for an external request that didn't pass along a
filename or origin, so "null" (or whatever it shows up as) is fine
2016-11-30 21:23:09 -05:00
Dan Stillman
1472781ce4 Debugging for https://forums.zotero.org/discussion/63363/ 2016-11-30 21:18:31 -05:00
Adomas Venčkauskas
45c944e731 Fix server_connector tests broken in 69ab4b0b
Don't display error prompt in standalone when style install fails.
Fixes an import bug when import input is invalid.
2016-11-30 14:58:43 +02:00
Dan Stillman
1b67ed071e Skip auto data dir migration if target dir exists and is non-empty 2016-11-30 02:09:07 -05:00
Dan Stillman
cba2c0c58b Fix display of extended character in file sync debug output 2016-11-30 02:09:07 -05:00
Adomas Ven
69ab4b0b1d Add server_connector endpoint to import styles and import translatable resources (#1120) 2016-11-29 14:59:58 -05:00
Adomas Venčkauskas
117ce8408b Fix connector saving via standalone 2016-11-29 13:40:12 +02:00
Dan Stillman
8f0ed56ae2 Test fixes after 5bceebf56c 2016-11-29 03:52:07 -05:00
Dan Stillman
c7bbde3c4f Add default pref for quicksearch mode to avoid recreating during tests 2016-11-29 03:28:49 -05:00
Dan Stillman
30d0858ebf Travis debugging 2016-11-29 01:42:15 -05:00
Dan Stillman
66f6ce715b Another Travis isDir workaround 2016-11-28 16:16:54 -05:00
Dan Stillman
a735d5dd41 Remove Travis debugging 2016-11-27 20:02:53 -05:00
Dan Stillman
45a8178fe0 Add another DirectoryIterator entry.isDir workaround for Travis 2016-11-27 20:00:10 -05:00
Dan Stillman
837ae0444d Travis debugging 2016-11-27 19:51:48 -05:00
Dan Stillman
a6cfe6cd9a Remove export charset checkbox in prefs
Instead, just always show the (greatly shortened, after 0609b62a) menu
on export when the translator supports it (which probably fewer
translators actually need to do).

This leaves the pref in place, but it can be removed eventually (and
changing the default for a while I believe will cause the existing pref
line to be removed for anyone who has it set to true already).
2016-11-27 17:11:05 -05:00
Dan Stillman
0ad4598128 Fix DB backup (broken by 5a6f1eef6) 2016-11-27 15:42:07 -05:00
Dan Stillman
0609b62a39 Show only UTF-8, UTF-8 w/o BOM, and Western for export charsets
See https://forums.zotero.org/discussion/comment/263644/#Comment_263644

We might want to consider removing the export charset checkbox in the
prefs and either always showing the charset option for translators or
always showing it for BibTeX (where "Western" really means "ASCII") but
nothing else.

Fixes #1124
2016-11-27 15:41:13 -05:00
Dan Stillman
5a6f1eef63 Update deprecated uses of Zotero.getZoteroDirectory()/getZoteroDatabase()
The Zotero.DataDirectory equivalents return string paths instead of nsIFile
instances, so some of these calls now just use Zotero.File.pathToFile(), which
can be removed when the surrounding code is updated to OS.File,
2016-11-27 00:17:56 -05:00
Dan Stillman
4c0abb6816 Point other profiles to new data dir after migration (+ code reorg)
Look for other profiles, from both apps (Firefox and Standalone), that
point to the data directory being migrated and update prefs.js in those
profiles to point to the new location.

Also reorganize code into Zotero.Profile and Zotero.DataDirectory
namespaces
2016-11-27 00:17:56 -05:00
Dan Stillman
412a7990b1 Don't perform automatic migration if there's an existing pipe
This prevents us from moving the data directory if the other app
(Firefox or Standalone) is running from the same directory.

Also clean up stub code in migration tests
2016-11-26 23:09:24 -05:00
Dan Stillman
678fe77fbb Move auto-migration checks into checkForDataDirectoryMigration() 2016-11-24 01:18:25 -05:00