Return a 500 for read-only libraries for all save modes. Read-only views
within editable libraries will save to the library root.
Addresses #185, RIS/BibTeX interception to read-only view behaves
differently from save button
This is (hopefully) a better fix for selection issues than 2901174ba3. A
reference to the collectionTreeView is stored in a `view` property on
the collectionTreeRow, and when an itemTreeView is initialized and
passed a collectionTreeRow it assigns itself to an `itemTreeView`
property on the row's view.
Asyncify, make JSON load failures not fatal, and simplify icon download
code (which also fixes download of CrossRef icon, which was failing for
some reason).
Shows a progress meter, which allows for larger chunks and fewer
refreshes, avoids unnecessary updating of parent items that are
being deleted anyway, and skip re-sorting of modified items in the
trash.
Closes#1292, Emptying trash is slow
When migrating prefs from Zotero for Firefox, the prefs specified a
custom data dir, and that directory was missing, the "Previous
directory:" line was blank.
Can be an absolute path or 'profile' to use 'zotero' subdirectory of
profile directory as in earlier versions (but which won't be treated as
a legacy location eligible for migration)
Closes#1305
This should give better feedback when some identifiers fail, but for now
restore 4.0 behavior.
Also add items by identifier in order, not reverse order
If responseType isn't set and the response doesn't include a
Content-Type header, Firefox tries to parse the file as XML, and if the
file isn't XML it logs an "XML Parsing Error", which includes the
username and password.
Previously, if someone was upgrading from Zotero for Firefox to 5.0 but
at some point had installed Zotero Standalone and told it not to share
the data directory, 5.0 would use the data directory from the Zotero
profile directory, and people would end up with an empty database with a
Zotero Quick Start Guide from years ago.
This checks for the database with the most recent mtime and uses that
data directory instead. In the Firefox profile, that can be either the
default 'zotero' subdirectory or a custom data directory. If one of the
Firefox locations is used, Zotero prefs are read from Firefox, because
it means that Zotero for Firefox was being used (because if Zotero
Standalone had been in use it would've needed a custom data dir setting
pointing at the Firefox database).
With the new system, it wasn't possible through the UI to generate debug
output for another action that happened after a restart, since it just
restarted immediately. This adds a prompt after selecting the menu
option that allows for restarting now, restarting later, or cancelling.
Better instructions and behavior if the data directory is inaccessible
or missing, including automatically detecting a directory at the default
location if the configured directory is missing and offering to use the
default instead. Together, this means that if, say, security software
prevents Zotero from accessing the data directory within the Firefox
profile, it will suggest that the user move it to ~/Zotero and then
prompt to use that directory.
Keep the application open with limited menus, including a Window ->
Zotero option bound to (Cmd-0) that can be used to reopen the main
window.
This allows Zotero to use almost no CPU (instead of a few percentage
points when the window is open, even when hidden with Cmd-H, though it'd
be nice to fix that) and still allow saves from the connector.
There might be some things that aren't being destroyed properly when the
window is closed or other bugginess, but it seems to work pretty well.
This also adds a mechanism for indicating that DB userdata upgrades
after a certain version are minor and shouldn't show "Upgrading
database…" or create a pre-upgrade backup.
This causes any item with just a year to show up at the start of the
year (instead of just not showing up, which I think was the case
before). Unfortunately they can then go out of view, and it's not
possible to scroll to view more, though that could probably be fixed.
And try all, since it doesn't do any of this unless there's a PAC file,
it's not actually a network request unless the site should be proxied,
and it should only make a single HEAD request unless a previous one
fails.
There's a possibility some proxies are limited to HTTP, in which case
changing these to HTTPS might stop this from working. If so, we'd need
to add back HTTP addresses.
Closes#1273
Show "Copy Citation" and "Copy Bibliography" when a bib format is
selected and "Copy as BibTeX", etc., when an export is selected. If a
site-specific setting is in effect from the last active URL, use that
instead.
If no regular items are selected in bib mode, the menu options are
disabled.
This also now filters non-regular items out when in bib mode -- before
if you selected a combination it would include a bunch of 'n.d.' lines.
Closes#1155, Disable Copy Citation menu option when a translator is
selected for Quick Copy
The items will still match full-text word searches, but they won't match
phrase searches (because those require cache files for non-text
attachments) and the full-text won't sync to other computers, so they
should really be reindexed.
Adds a submenu for quickly generating and submitting debug output, with
a button to copy the Debug ID to the clipboard and a one-click option to
restart with logging enabled. Debug output can also now be viewed in
real-time using the new debug output viewer window (previously available
only via a command-line flag).
The locale switcher has moved to the top of the Advanced prefpane (where
Debug Output Logging used to go) in a Miscellaneous section, and there's
a new "Advanced Configuration" section (mirroring Thunderbird) at the
bottom for "Config Editor".
Closes#1108
- If an error occurred while moving the database file, the data
directory could end up pointing to the new, empty directory after a
restart
- The error message for a full failure was missing the second half that
actually explained that you were supposed to move the data directory
- The check for different-drive migrations didn't work if the new
directory didn't exist (at least on macOS), swallowed some errors, and
interfered with manual migrations from the prefs
- The manual migration button would say that the new directory wasn't
empty even if it just contained .DS_Store
- Don't show "Database migration in progress" after not restarting after
a migration failure
Additionally, after a full failure the migration is now attempted on
every restart and displays a warning each time, since otherwise people
will never move their directories out of the Firefox profile (which is
when it's going to fail the most, due to security software).
2addf6b27b fixed the date order used when automatic locale detection was
enabled, but this fixes the format (e.g., dots instead of slashes). It
should now match the item pane. I'm not sure why we weren't doing this
before, but hopefully we didn't have a good reason.
- Move csledit and cslpreview to a Tools section of the Cite pane as
Style Editor and Style Preview
- Rename "Open about:config" to "Config Editor"
- Hide about:memory unless devtools.errorconsole.enabled is enabled,
which isn't particularly appropriate and maybe we can find something
better, but about:memory doesn't really need to be visible by default
Closes#1264
It was previously set from general.useragent.locale, but that's not used
by default, meaning that date interpretation and some other things might
have been incorrect for everyone who didn't set a locale explicitly and
toggle matchOS...
This restores the 4.0 behavior. It's not ideal, but neither is having to
tab through thousands of items to get to the items pane (unless you
toggle the tag selector closed first). Hopefully we can come up with a
better solution to make the tags accessible.
Closes#1022
Could try to explain site-specific settings, but it's somewhat
complicated (requires the Zotero Connector, uses the last active tab
regardless of drag destination), so maybe enough to explain on the
linked documentation page.
If this works out I think we'll want to use this approach for
all data layer changes.
Previously, an unsaved change on an object would update its state
immediately, which was fine for synchronous code but breaks down if a
save involves multiple asynchronous calls, because modifying state after
the relevant data has been saved to the DB but before the `_changed`
object has been cleared would mean that new changes would be lost. Now,
changes are written to _changedData, and a get for the data first checks
_changedData before checking the state property (e.g., _tags) directly.
The changedData property is cleared as it's written, and once the object
is saved, the reload updates the state property with the new data.
It was stopping after the first translator, which meant that some ISBN
lookups failed if the ISBN wasn't in Library of Congress.
Regression from 6da0845f4b, which hopefully didn't have a good reason
for this