Commit graph

6004 commits

Author SHA1 Message Date
Adomas Venčkauskas
bf1c52a5fd Get a better last name if current guess starts with weird symbols 2017-02-18 18:12:24 +01:00
Dan Stillman
058a4b1593 On 404 from ZFS upload, mark attachment item for upload
This shouldn't happen, but reported here:

https://forums.zotero.org/discussion/64386/5-0-beta-persistent-sync-errors

Possibly the same cause as this:

https://forums.zotero.org/discussion/64438/5-0-beta-persistent-sync-error
2017-02-16 20:11:05 -05:00
Dan Stillman
34c90fd156 If parent item is missing remotely, mark as unsynced and add to queue
This shouldn't happen, but there've been some reports of it.
2017-02-16 18:05:48 -05:00
Dan Stillman
cbed716424 Fix format of object data added back to upload queue after failure 2017-02-16 18:00:13 -05:00
Dan Stillman
ddb7d3107d Include 'skipNotifier' in 'skipAll' when saving objects 2017-02-16 17:58:52 -05:00
Dan Stillman
bb665a56b6 Fix firstCreator for unsaved items
Necessary when editing embedded citations that don't exist in library
2017-02-15 23:15:00 -05:00
Dan Stillman
3830aa1125 Mark trashed items as unsynced and update parents (including note list)
Regression from 3a0e0cb088
2017-02-15 14:22:34 -05:00
Dan Stillman
469d689f37 Fix emptying from trash (broken in 7ede52355d)
Zotero.Items.eraseTx() doesn't exist -- use Zotero.Items.erase() instead
2017-02-10 14:11:10 -05:00
Dan Stillman
3a0e0cb088 Drastically speed up moving items to the trash
E.g., moving 3,600 items to the trash now takes 4 seconds instead of 62

Instead of saving each item, update internal state and database directly
(which is more brittle but worth it). Also avoid unnecessary sorting
after removing an item from the items tree.
2017-02-08 23:42:55 -05:00
Dan Stillman
58edb3143e Update ProgressWindow constructor call after c00db272f 2017-02-08 21:23:36 -05:00
Dan Stillman
ed047f06df Don't select items added via import 2017-02-08 21:19:32 -05:00
Dan Stillman
a4572c9442 Make sure 'collections' passed to Translate is an array 2017-02-08 14:58:03 -05:00
Dan Stillman
27cb099c82 Allow asynchronous item saving in import translators
This allows for imported items to be saved individually instead of being
saved in a batch after processing the entire imported file (which for
large imports would hang the UI, even if the actual saving was
asynchronous). This also fixes the progress meter during asynchronous
saves.

To take advantage of this, import translators will need to return a
promise when available (using the native Promise object) from doImport()
and wait for optional promises from item.complete().

The logic here can probably be streamlined further. (E.g., we might be
able to say that item.complete() always returns a promise.) It's
complicated by the fact that, at the moment, Promise isn't available in
child sandboxes, though this can probably be fixed.

Tests forthcoming, but they require a translator that supports this,
which needs to be committed separately.

View with -w for a cleaner diff.
2017-02-08 14:56:44 -05:00
Dan Stillman
3e35764405 Allow altering text in a ProgressWindow line in OO mode
And fix progress meter display
2017-02-08 14:32:07 -05:00
Dan Stillman
12ad749087 Fix additional file sync error with no remote stored hash
Follow-up to c9694e93b0
2017-02-08 14:12:16 -05:00
Dan Stillman
55e9a0ee35 Update empty state of parent collection when deleting subcollection 2017-02-03 01:18:00 -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
3a2fb2938d Remove temporary debugging buttons in prefs 2017-02-03 00:07:16 -05:00
Dan Stillman
1a49018bdc Fix moving items between collections
`mozSourceNode` seems to no longer be set in `dataTransfer` objects
during drags, so we now store it in `Zotero.DragDrop`.
2017-02-03 00:07:16 -05:00
Dan Stillman
76bc61e882 Don't unload object on save error if not new 2017-02-03 00:07:16 -05:00
Dan Stillman
79a07cad9e Return array copy in ItemFields.getItemTypeFields()/getTypeFieldsFromBase() 2017-02-03 00:07:16 -05:00
Dan Stillman
7ede52355d Require DB transaction in Zotero.Collection.prototype.removeItems()
For consistency with Zotero.Collection.prototype.addItems()
2017-02-03 00:07:16 -05:00
Dan Stillman
f98de97e4d Don't select last item in list when item is removed from collection 2017-02-03 00:07:16 -05:00
Adomas Venčkauskas
9ecfc31fd4 Fix translation error reporting in connectors
Closes zotero/zotero-connectors#101
2017-02-02 16:16:22 -03:00
Dan Stillman
0b9b758029 Don't localize "OpenURL" 2017-02-02 02:01:06 -05:00
Adomas Venčkauskas
ef0d9afe8e Address debug reporting in connector (zotero/zotero-connectors#97) 2017-01-31 19:46:20 -03:00
Adomas Venčkauskas
21a7a49a1b Fix broken date class (regression 38b0fb2) 2017-01-31 19:02:30 -03:00
Adomas Venčkauskas
38b0fb2650 Zotero.Promise.coroutine not supported in connector shared code (broken ef1ff8b) 2017-01-31 19:00:15 -03:00
Adomas Venčkauskas
c4d39ba79f Update translate error report with promisified info (broken c3dcaf9) 2017-01-31 18:23:19 -03:00
Dan Stillman
26eebcfc44 More report note fixes
Restore handling of plaintext notes from before 835003dd6d, and search
for a wider set of HTML indicators to avoid showing markup when no <p>
tags.
2017-01-31 13:56:45 -05:00
Dan Stillman
4871374673 Don't modify options object passed to DataObject.save() 2017-01-31 01:25:51 -05:00
Dan Stillman
835003dd6d Parse note content in reports as HTML instead of XML
And remove raw-markup fallback when not XML
2017-01-31 01:25:51 -05:00
Dan Stillman
ae47ae28bd Fix #1163, Unable to open zotero urls from tinymce 2017-01-30 14:01:04 -05:00
Dan Stillman
b073c3e680 Fix mangled output from Zotero.Utilities.getAsyncInputStream()
Proper fix (as opposed to 5236d01791) for
https://forums.zotero.org/discussion/64022/5-0-beta-generate-report-is-often-garbled
2017-01-30 13:33:23 -05:00
Dan Stillman
10111dbd98 Ensure modified item stays visible
There seems to be a bug here where, if the item is off-screen when
modified, it doesn't become visible, but it now does stay visible when
it's on-screen to begin with.
2017-01-29 09:18:16 -05:00
Dan Stillman
48a81e3b46 Fix 412 after choosing local file on file conflict 2017-01-29 07:50:46 -05:00
Dan Stillman
c00db272fa Add option to Zotero.ProgressWindow to not close on click
ProgressWindow now takes an options object instead of a window (which is now an
available option, along with 'closeOnClick')
2017-01-27 21:05:41 -05:00
Dan Stillman
4d56191f0c Fix importing of files using relative paths 2017-01-27 20:51:12 -05:00
Dan Stillman
22d460312c Make ZFS file syncing always enabled for publications library for now
At least until we have a better interface for setting library-specific
sync settings

Previously, if My Library file syncing was disabled or set to WebDAV, My
Publications files wouldn't be uploaded.
2017-01-27 14:14:33 -05:00
Dan Stillman
27974791b0 Fix error in recursiveCollections mode with huge number of subcollections 2017-01-27 12:00:28 -05:00
Dan Stillman
31ed9bd70b Fix misplaced line in e23452363b 2017-01-26 18:30:18 -05:00
Dan Stillman
aec9b2a531 Automatically use remote version when two items in trash are in conflict 2017-01-26 18:07:01 -05:00
Dan Stillman
e23452363b Handle auto-hyphenated ISBN during item conflict
Always keep the hyphenated version, and don't consider it a visible conflict
2017-01-26 15:08:34 -05:00
Dan Stillman
3a1bec1ab3 Fix "Show in Library" in item context menu 2017-01-26 02:57:14 -05:00
Dan Stillman
3415aae908 Fix error generating reports
9b247ebba7 follow-up
2017-01-24 15:42:28 -05:00
Dan Stillman
50b7dd39a0 Don't show incorrect instructions for adding Locate engines
Not currently possible in 5.0

https://github.com/zotero/zotero-connectors/issues/92
2017-01-24 03:54:30 -05:00
Dan Stillman
cfa15a3e3c Rename "Full Sync" to "Reset Data Sync History", and don't start sync
This allows generating debug output for full sync of a single library.

Also clarify some dialog text
2017-01-24 03:38:21 -05:00
Dan Stillman
c3ba7340c6 Update submodules 2017-01-24 02:51:18 -05:00
Dan Stillman
edb08e179c Fix item key search (broken by a01f2765e4) 2017-01-23 08:46:42 -05:00
Dan Stillman
a01f2765e4 Fix quick search and quick format bar (broken in 9b247ebba7)
As evidenced by majorly failing tests
2017-01-23 08:40:18 -05:00
Dan Stillman
249f9c6495 Temporary prefs buttons to debug slow DB issue 2017-01-23 07:20:36 -05:00
Dan Stillman
41413b1ab2 Fix push sync for group libraries 2017-01-23 07:01:41 -05:00
Dan Stillman
cddc84ffe3 Make sure translator file ends with newline when saving
Fixes https://github.com/zotero/scaffold/issues/37
2017-01-23 05:57:18 -05:00
Dan Stillman
c9694e93b0 Fix file upload error when remote attachment has no stored hash 2017-01-22 15:30:18 -05:00
Dan Stillman
b3c28dc79e Fix item keys in report ids 2017-01-21 06:36:28 -05:00
Dan Stillman
9b247ebba7 Fix error trying to generate report for many items
When adding many search conditions (e.g., when matching many items with the
`key` condition), the query can fail due to either the bound parameter limit or
the expression tree size limit.

To avoid this, add support for an 'inlineFilter' property on search conditions
when using the 'is' or 'isNot' operator. 'inlineFilter' is a function that
returns a quoted value suitable for direct embedding in the SQL statement, or
false if not valid. Multiple consecutive conditions for the same 'inlineFilter'
field are combined into an `IN (x, y, z)` condition.
2017-01-21 03:38:36 -05:00
Dan Stillman
cc516005c0 "Import"/"Import from Clipboard" shortcut key changes
- Add Cmd/Ctrl-Shift-I for "Import…"
- Cmd/Ctrl-Shift-V apparently pastes without formatting, so don't override it.
  Instead, add a shortcut key to the menu option, defaulting to
  Cmd-Option-Shift-I/Ctrl-Alt-Shift-I
- The I in both is now localizable
2017-01-19 15:28:27 -05:00
Dan Stillman
362e18c747 Fix attachment content search
And always convert ids from GROUP_CONCAT() to integers in search code.
2017-01-19 13:32:29 -05:00
Dan Stillman
c95e42240f Fix #1157, Note content lost when typing during sync
Someday, I will say this is fixed and it actually will be fixed.
2017-01-19 12:27:18 -05:00
Dan Stillman
e0d92ecd94 Update submodules 2017-01-19 05:48:46 -05:00
Dan Stillman
318f6656f4 Skip a case of item selection during syncing 2017-01-19 03:47:56 -05:00
Dan Stillman
57b44287f8 Don't allow deleting libraries other than feeds with Cmd/Ctrl-Delete 2017-01-17 21:48:56 -05:00
Dan Stillman
b62139ed0a Fix a couple issues with bundled file timestamps 2017-01-17 21:48:56 -05:00
Dan Stillman
2237c71dcb Fix test for invalid id passed to DataObjects.getAsync() 2017-01-17 04:18:39 -05:00
Dan Stillman
33deefbf74 Limit depth to 1 when outputting data objects
This prevents descending into the global object cache that's accessible
from every data object.
2017-01-17 02:58:47 -05:00
Dan Stillman
1cf2585b41 Add Zotero.isClient
To replace Zotero.isStandalone
2017-01-17 02:58:22 -05:00
Dan Stillman
786f5efa30 Add maxDepth as the third argument to Zotero.debug()
varDump(), which is used by Zotero.debug(), defaults to 5
2017-01-17 02:31:10 -05:00
Dan Stillman
a017fe6666 Fix Zotero.Date methods within translator sandbox
Only a few methods are imported, so some of the changes in 7bdcc17ed
have to be reverted.
2017-01-17 02:23:15 -05:00
Dan Stillman
b00d1366b0 Fix more info link in update prompt 2017-01-17 01:35:03 -05:00
Dan Stillman
aa783878de Fix error refreshing document with item replaced by merge 2017-01-15 16:47:01 -05:00
Dan Stillman
e5ba7612bc About pane updates
- Make version copyable
- Include "What's new" link to changelog
- Update some links and descriptions

To-do:

- Replace dev credits with a nice statement like in the Firefox About pane
2017-01-15 15:29:02 -05:00
Dan Stillman
23f84d796f Fix CSL Preview pane
CSL Editor is being fixed in #1149
2017-01-15 02:46:03 -05:00
Dan Stillman
008bcff8a0 Fix debug output logging (broken by f44264cd4) 2017-01-14 18:39:04 -05:00
Dan Stillman
3d569f1173 Compatibility fixes for Bluebird >=3.4.2
Before 3.4.2, `yield` in a Bluebird `coroutine()` released Zalgo if an
already-resolved promise (e.g., from `Promise.resolve()`) was yielded,
continuing immediately instead of on the next turn of the event loop. We
apparently relied on that broken behavior in a few places, particularly from
`Zotero.DB.waitForTransaction()`. All the transaction-queueing stuff probably
needs to be reevaluated in general, but for now, mirror the previous possibly
ill-advised behavior by checking explicitly for a transaction before yielding
on `waitForTransaction()` (as well as the result of a 'load' event from
`libraryTreeView`).
2017-01-14 18:01:51 -05:00
Dan Stillman
7e30afb2a5 Use coroutine() for Zotero.Schema::_updateSchema() 2017-01-14 17:20:48 -05:00
Dan Stillman
56d9372146 Throw clearer error if invalid type is passed to File.getContentsAsync() 2017-01-14 17:20:48 -05:00
Dan Stillman
f2440eb826 Fix passing file: URI to Zotero.File.getContentsAsync() 2017-01-14 17:20:39 -05:00
Dan Stillman
f44264cd4d Add HTML-based console viewer for easier real-time debug output
Since 1) debug output logging via the prefs isn't necessarily possible
for startup errors in Standalone, 2) real-time output is prohibitively
slow and has a miniscule scrollback buffer on Windows unless you use a
Cygwin or Git terminal, and 3) copying/pasting/emailing was annoying
anyway, make -ZoteroDebug open a popup window that shows errors and
debug output and allows submitting straight to the server with a Debug
ID.

This should replace the existing debug output viewer as well, but that's
less of a priority.

-ZoteroDebugText or the debug.log pref can still be used to dump to the
terminal.
2017-01-14 17:20:12 -05:00
Dan Stillman
12de04607b Don't connect to streaming server until UI is ready 2017-01-13 02:47:47 -05:00
Dan Stillman
bc034089a6 Fix startup error loading Zotero service
https://forums.zotero.org/discussion/63869/5-0-beta-standalone-blank-ui-upon-restart
https://forums.zotero.org/discussion/63865/5-0-beta-library-wont-load

Adding include.js to hiddenWindow.xul in 66549f9e6d seems to have
created a race condition in which the Zotero service would fail on the
third startup after the JS cache was cleared (e.g., on a new version,
-purgecaches, or other changes in the profile). So, don't do that.

Hopefully this isn't caused by other uses (e.g., in plugins) of
include.js and was only happening because the hidden window is launched
concurrently with standalone.xul on macOS.
2017-01-13 02:47:42 -05:00
Dan Stillman
2011a61223 Don't focus note editor when pressing Shift-Tab on note in middle pane
Reverts redundant code from 7e39e4608 (#1136) and fixes the much earlier
9d7cc849 (#151)
2017-01-12 02:41:21 -05:00
Dan Stillman
740795f249 Expand draggable area of splitters on macOS while preserving 1px width
(Borrowing a technique from Thunderbird.)

This only affects the splitters in standard view. The splitter between the top
and bottom panes in stacked view still has a 1px draggable area.

We can probably do a similar thing to slim down splitters on Windows, as
planned in #367.
2017-01-12 02:22:33 -05:00
Dan Stillman
66549f9e6d Fix opening preferences (broken in cbcfb6b92) 2017-01-11 06:24:17 -05:00
Dan Stillman
cf2318ec5a Move feeds below groups 2017-01-10 23:53:04 -05:00
Dan Stillman
cbcfb6b92e Fix missing Options menu on Windows/Linux 2017-01-10 21:44:03 -05:00
Dan Stillman
c631bc4257 Default to creatorType: "author" if missing
Apparently in 4.0 we defaulted to 'author' if a creatorType wasn't
passed. To avoid lots of errors like the one fixed in
dd0094893a,
add a similar fallback for 5.0 and log a warning (though not with the
translator name, unfortunately).
2017-01-10 18:04:54 -05:00
Dan Stillman
ef1ff8bc42 Fix #64, Non-English month parsing doesn't work in Standalone
Month values from the Firefox language packs are included in a
JSON file used by `Zotero.Date.getMonths()`. `getMonths(true)` includes
English months as well.

The JSON file should be bundled with the connectors as well, and
Zotero.Date.init() should be updated to populate the month data from
that.
2017-01-09 04:47:23 -05:00
Dan Stillman
7bdcc17ed0 Convert some private Zotero.Date methods to privileged 2017-01-09 04:20:10 -05:00
Dan Stillman
5dbe677f25 Fix localization of Edit menu 2017-01-09 03:08:37 -05:00
Adomas Venčkauskas
74d358bd19 Remove tmp-* directories when attachment download fails. Closes #1128 2017-01-09 00:10:55 -05:00
Dan Stillman
43dad62150 Only set browser.dom.window.dump.enabled in client 2017-01-07 17:42:19 -05:00
Tom Najdek
abd3054308 Fix non-standard syntax 2017-01-07 13:51:45 -05:00
Dan Stillman
1b3dfe1aea Update submodules 2017-01-06 03:44:40 -05:00
Adomas Venčkauskas
2682d01016 Remove use of deprecated Date.toLocaleFormat 2017-01-06 09:58:30 +02:00
fbennett
4d8d4bcdbc Preserve formatting on Hide/Show editor 2017-01-04 23:39:35 -05:00
fbennett
2538e258b6 Accept variations in spacing, and single-quoted XML serialization 2017-01-04 23:39:35 -05:00
fbennett
2a2e5e4e39 Preserve format tags and entities in bibliography editor
- Fixes errors in previous commits 55bfe54a and 9431e0de, to wit ...
- Apply unescapeHTML after RTF tag and entity conversions
- Remove high-bit character escape from entity converter,
  and apply separately after remaining HTML entities are
  decoded by unescapeHTML
2017-01-04 23:39:35 -05:00
Dan Stillman
53d2aa43d6 Allow showing the Tools -> Error Console menu option via a pref
If devtools.errorconsole.enabled is true, the option will be shown.
2017-01-04 19:14:07 -05:00
Dan Stillman
56b6a0d021 Set browser.dom.window.dump.enabled to true if debug output enabled
dump() works regardless within XPCOM (which is how Zotero.debug()
works), but not on window objects without this pref
2017-01-04 17:28:46 -05:00
Dan Stillman
612066d749 Allow setting global prefs from Zotero.Prefs.set()
Pass true as third argument
2017-01-04 17:28:18 -05:00
Dan Stillman
42a72fe8aa Don't leave document corrupted if error in doc prefs window
And recover by showing the doc prefs window if it is corrupted (at least
with an empty fieldType, which is what was happening previously)
2017-01-04 01:46:00 -05:00
Dan Stillman
4ff5323acd Increase DB timeout to 30 seconds
Though it would be real nice to avoid situations where this might be necessary
2017-01-03 15:50:33 -05:00
Adomas Venčkauskas
1756b8d242 Make itemPane white on linux 2017-01-03 13:48:28 -05:00
Adomas Venčkauskas
ac959dd6b5 Fix black tab borders on Standalone (regression 53d1bca36)
It appears we do not have ThreeDHighlight in Standalone.
Relevant bug https://bugzilla.mozilla.org/show_bug.cgi?id=1261068
2017-01-03 19:13:40 +02:00
Adomas Venčkauskas
53d1bca36f Fixes a few UI styling issues for Ubuntu 16.10 (GTK 3.20)
- Tabs missing styling
- Preferences: Notes font menulist dropmarker missing (left border still
  missing, could not find any CSS to help that out)
- Preferences: Numberbox background gray

For the tabs styling issue see
https://bugzilla.mozilla.org/show_bug.cgi?id=1306425
2017-01-03 17:54:16 +02:00
Dan Stillman
6096d1ea62 Fix hang on sync restart 2017-01-03 04:40:18 -05:00
Dan Stillman
5d67656ea8 Use Zotero.DBConnection instance everywhere instead of Zotero.DB
Fixes #1141
2017-01-03 04:21:11 -05:00
Dan Stillman
5523dd5c37 Fix pressing "-" and "+" buttons in Styles pane from keyboard 2016-12-30 01:22:58 -05:00
Dan Stillman
0757109c16 Allow direct install from styles page in viewer
When "Get Additional Styles…" is clicked, open a stripped-down version
of the Zotero styles page in a window. When a style is clicked on,
install it and close the window.

I'm going to say that this closes #767, but as Aurimas notes there, if
you know the style you're looking for, being able to just type the name
in a dialog would be faster, so further improvements could be made. But
as it stands, this is much better than clicking through to a browser
(and hoping that it's one with the new connector with style installation
support).
2016-12-30 01:11:06 -05:00
Dan Stillman
c21d6c9700 Allow Cmd-R/Ctrl-R to reload page in basic viewer 2016-12-30 00:58:28 -05:00
Dan Stillman
fb7f9698d3 Move ZoteroStandalone.openInViewer() to Zotero.openInViewer() 2016-12-30 00:56:28 -05:00
Dan Stillman
a076edc836 Update some deprecated function calls 2016-12-29 21:50:33 -05:00
Dan Stillman
2beb2c514c Push-based sync triggering
Immediate sync triggering on remote library change using WebSocket API.
Currently kicks off a normal sync process for the modified library --
actual object data isn't pushed.

(This might not stay enabled for 5.0 Final.)
2016-12-29 21:50:32 -05:00
Dan Stillman
7fd3a8c5d1 Fix New Item MRU list, which apparently has only ever updated on startup 2016-12-29 07:04:12 -05:00
Dan Stillman
8a9986da47 Reduce initial visible creators to 5-7 (from 10-15) 2016-12-29 04:01:00 -05:00
Dan Stillman
9ffab20a09 Add option to Zotero.Utilities.ellipsize() to truncate at word boundary 2016-12-29 04:01:00 -05:00
Dan Stillman
516fedc2fe Fix right alignment of search bar 2016-12-29 04:01:00 -05:00
Dan Stillman
c0f40fac81 Item pane tweaks
- Remove colons after labels
- Non-bold labels
- More padding at top of pane
- Increase space between label and field
2016-12-29 04:01:00 -05:00
Dan Stillman
82292eef77 Hide Actions menu in Standalone
Leave it in place in Firefox for now for development
2016-12-29 04:01:00 -05:00
Dan Stillman
e282a5643f Fix dragging external files onto library root 2016-12-29 04:01:00 -05:00
Adomas Venčkauskas
b01487dccc Make Zotero.Translator shareable with connector 2016-12-28 17:25:38 +02:00
Dan Stillman
4a765aacfa Fix selecting item and scrolling into view when editing a citation 2016-12-26 18:50:08 -05:00
Dan Stillman
5100cd31ed Add collectionTreeView::selectItem()
This moves most selection logic from ZoteroPane.selectItem() into
collectionTreeView::selectItem() so that it can be used in the
edit-citation dialog.

Unlike itemTreeView::selectItem(), which only selects within a given
items tree, this function automatically switches to a library root if
necessary. ZoteroPane.selectItem() remains and does a little bit extra
(unminimizing Zotero, focusing the items pane) in addition to calling
collectionTreeView::selectItem().
2016-12-26 18:44:39 -05:00
Dan Stillman
437c55b286 Object.values() polyfill for <Fx47 after 269e2f8b
Zotero for Windows is still built with Fx45, so we need a polyfill for
Object.values().
2016-12-26 15:26:21 -05:00
Dan Stillman
6d1946ee0a Prevent data loss if objects change locally during sync upload
If an object was uploaded but was changed locally during the upload (e.g., the
user typing in a note), the local changes would be lost when the remotely saved
version was applied. Instead, watch for modifications to objects during the
upload and don't apply the remote versions of those objects or mark them as
synced.
2016-12-26 03:18:13 -05:00
Dan Stillman
6c260bc9c9 Localize TinyMCE
Automatically use a language pack for the current locale if one is
available
2016-12-26 03:17:48 -05:00
Dan Stillman
8af73f9983 Add a notifier event for sync start 2016-12-25 23:20:19 -05:00
Dan Stillman
0a2330b79f Fix error adding top-level attachments in collections 2016-12-25 23:20:19 -05:00
Dan Stillman
653f26d4fb Fix alignment of "Format" in export dialog 2016-12-25 23:20:19 -05:00
Dan Stillman
dc04a1231c Upgrade to TinyMCE 4.5.1
- New flat theme (with padding tightened a bit from the default to fit
  in right-hand pane)
- Adds search/replace within notes
- Adds URL autolinking
- Image pasting/dragging is now properly disallowed (though TinyMCE 4
  has hooks that may allow us to actually support this by automatically
  creating attachments)
- New blockquote style with color bar
- Replaces custom context menu on link click with built-in version

 To-do:

- Fix display of pop-ups, which are now modal dialogs within the note
  frame instead of pop-up windows, to stay fully within the frame
- Localize (more important now that there are tooltips)
- Support image dragging
- Update elements list for HTML5, for better drag-and-drop?
- Move directionality control to context menu instead of taking up
  toolbar space?
- Evaluate other plugins for potential inclusion
- Show additional controls in separate note window?
- Fix opacity of text in tooltips

Closes #451, closes #421
2016-12-25 23:19:49 -05:00
Dan Stillman
ab959cd858 Fix "Reset File Sync History" 2016-12-22 10:00:40 -05:00
Dan Stillman
cf686c520a Don't start auto-sync until UI is ready 2016-12-22 06:58:24 -05:00
Dan Stillman
bd9501218e Apply UI font size change immediately
And change "Changes take effect in new windows" to "Changes take effect
after restart"

(The note font size still requires a restart, as do the shortcut keys in
the Advaned pane.)
2016-12-22 06:58:02 -05:00
Adomas Venčkauskas
bd943ffe85 Add a friendlier GET request message for /connector/ping 2016-12-22 13:14:04 +02:00
Dan Stillman
455f23df4b Show stack for more startup errors 2016-12-21 08:30:06 -05:00
Tom Najdek
d4dc86c975 Remove use of syntax where curly brackets are omitted in function defs 2016-12-21 08:06:17 -05:00
Tom Najdek
39bc5398c9 Remove use of non-standard list comprehension syntax 2016-12-21 08:04:57 -05:00
Tom Najdek
03b1b75bfb Fix non-strict syntax for octal number literals 2016-12-21 08:04:55 -05:00
Tom Najdek
269e2f8bff Replace legacy syntax for each...in with for...of 2016-12-21 08:04:09 -05:00
Dan Stillman
b445283f4e Closes #974, Unreachable code after return statement 2016-12-21 07:48:39 -05:00
Dan Stillman
7e39e46085 Focus note editor when pressing Tab is pressed on note in middle pane
Closes #1136
2016-12-21 06:15:05 -05:00
Dan Stillman
084f5a72df Make API server configurable with extensions.zotero.api.url
Needless to say, use of this pref is unsupported.

Closes #901
2016-12-21 05:52:55 -05:00
Dan Stillman
3b6b6aa36b Remove tab mode
Closes #1135
2016-12-21 05:11:21 -05:00
Dan Stillman
405f41f4c2 Disable connector switching
And so it begins...

Closes #1134
2016-12-21 05:11:21 -05:00
Adomas Venčkauskas
8e083c688a Fix connector translator caching from repo and standalone 2016-12-20 17:05:38 +02:00
Dan Stillman
2f65c7d29c Better error logging for https://forums.zotero.org/discussion/63029/ 2016-12-20 03:33:04 -05:00
Dan Stillman
c1035958d4 Fix for child attachments being saved if prefs off (from 8c2c097c6) 2016-12-19 04:19:18 -05:00
Dan Stillman
8c2c097c6b Fix attachment handling during translation
Synchronously determine whether attachment saving should be attempted and only
start attachment progress if it can
2016-12-18 09:07:57 -05:00
Dan Stillman
6994c63a0e Tweak recognizePDF fix, add test coverage, and enable manual tests
Still disabled in Travis until we mock the remote services
2016-12-17 08:05:33 -05:00
Dan Stillman
e34bf4d5cb Prompt to try manual data dir migration again if Firefox is open 2016-12-17 07:42:03 -05:00
Dan Stillman
6b0e3ac2d2 Fix PDF metadata retrieval after 78b1d2ee35 2016-12-17 06:17:37 -05:00
Dan Stillman
b7daef6bf4 Update submodules 2016-12-16 03:31:06 -05:00
Dan Stillman
5950bfd963 Add menu option for opening Error Console in Standalone, commented out
Not sure we want to expose this, particularly since there are tons of
spurious warnings in current builds due to a chrome registration issue,
but it can be handy for debugging some issues.
2016-12-16 03:23:12 -05:00
Dan Stillman
04941f23db Fix switching out of full mode when started in connector mode
Previously, if Standalone was open and Firefox was opened in connector
mode, ZoteroOverlay.onLoad() was never run, which meant that, among
other things, the before-reload handler that closed the Zotero pane when
switching out of full mode was never added.
2016-12-16 03:16:48 -05:00
Dan Stillman
3d117c4135 Fix upgrade prompt after incompatible DB in Standalone
Since 693c0286e, probably
2016-12-15 05:44:52 -05:00
Dan Stillman
50df62a0e7 Remove debug line and tweak whitespace/style 2016-12-15 00:30:37 -05:00
Adomas Venčkauskas
cff74484be Pass failure response to Connector.callMethod callbacks 2016-12-14 16:02:37 +02:00
Adomas Venčkauskas
deb8503863 Remove coroutine from translate.js not supported in connector
From 7fc352b9
2016-12-14 15:28:06 +02:00
Adomas Venčkauskas
a853bb0661 Fix removed translator handling in connectors 2016-12-14 14:18:20 +02:00
Dan Stillman
c5527a82fb Generate new saved search names within libraries, not globally 2016-12-14 03:37:56 -05:00
Dan Stillman
2c9c057360 Fix related items box after 8a4c8d2be0 2016-12-14 03:36:18 -05:00
Dan Stillman
0be67dbda5 Don't allow data dir migration via prefs if directory exists
And treat an existing non-empty directory as a failure during the
migration, since it should now never happen

Also suggest manually moving on Windows if more than 100 attachments
2016-12-14 02:14:56 -05:00
Dan Stillman
58f554a930 Throw if invalid object id passed to Zotero.DataObjects::getAsync() 2016-12-14 02:02:35 -05:00
Dan Stillman
8a4c8d2be0 Classic citation dialog fixes
- Fix loading for libraries that haven't yet been loaded (including if
  the Zotero pane hasn't yet been opened)
- Show a loading message over the items tree
- Fix item selection when editing citation (except if library data
  hasn't yet been loaded, but that doesn't happen in Standalone)
2016-12-14 02:02:21 -05:00
Adomas Venčkauskas
ead9eaf1a0 Align advanced feed settings dropmarker on OSX 2016-12-13 18:16:38 +02:00
Dan Stillman
5862aa5ea5 Don't bother deleting from sync cache when deleting feed items 2016-12-13 09:46:15 -05:00
Adomas Ven
d6d4e4b33e Saner feed database management (#1131)
* Mark feedItems read in a single batch SQL update
* Automatically remove old feed items
* User-facing preference globally and per-feed for feed item expiration
2016-12-13 09:07:43 -05:00
Dan Stillman
7fc352b9b7 Fix "Add Item by Identifier" (broken by 78b1d2ee3)
And make lookup tests run when not on Travis, though we should still mock the
HTTP requests.
2016-12-13 05:23:21 -05:00
Dan Stillman
69430d74b2 Maybe fix race condition when updating translators manually at startup
If you got the timing just right, you could wipe out all your
translators (though standard ones would be reinstalled on restart).
Hopefully that's fixed?
2016-12-13 02:15:53 -05:00
Adomas Ven
747c11c917 Improves proxy support (#1129)
Improves proxy support

- Automatically detect and dehyphenise https proxies which use EZProxy
  HttpsHyphens
- Web translators now pass around Zotero.Proxy instances which can
  proxify/deproxify urls passed to `translate.setLocation()` before calling
  `translate.getTranslators()`/ translate.detect()`. The proxy passing is
  done within connector background/injected processes and between
  standalone and connectors.
- Proxy protocol unified with connectors. Connectors can now pass
  proxies to `/connector/save_items`. The proxies will be used to resolve
  true item and attachment urls when saving.

Closes zotero/zotero#578, zotero/zotero#721

Relevant zotero/zotero#34, zotero/zotero#556
2016-12-12 14:29:59 +02:00
Dan Stillman
c2ebcc9dbc Fix failures on Travis due to broken isDir 2016-12-12 06:57:42 -05:00
Dan Stillman
80f888f374 Fix replacement of existing item storage directories
- Make Zotero.Attachments.createDirectoryForItem() delete existing
  directory instead of moving it to orphaned-files; also now returns a
  string path instead of an nsIFile
- Use above function during file sync instead of
  _deleteExistingAttachmentFiles(), which was partly broken
- Fix throwing on errors when saving some attachment types
2016-12-12 04:06:01 -05:00
Dan Stillman
60ed6d447e Show "Loading…" in Quick Copy drop-down before list is loaded
Styles and translators have to be loaded before the list is displayed,
so there can be a delay if the prefs are opened right at startup.
2016-12-12 02:05:17 -05:00
Dan Stillman
425838e2ec Fix potential translator initialization problem after 04516af552 2016-12-12 02:04:18 -05:00
Dan Stillman
2ead95b39a Don't include child items in imported-item count 2016-12-11 03:00:10 -05:00
Dan Stillman
4d77977a29 Select items after importing from clipboard
And wait for async switch to My Library if in a non-editable view
2016-12-11 02:30:34 -05:00
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
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