Commit graph

606 commits

Author SHA1 Message Date
Dan Stillman
7f4f2770ba Add notification banner when retracted items are found
And other retraction tweaks
2019-06-07 01:15:17 -04:00
Dan Stillman
787e57f6a2 Reopen collapsed collections pane on restart, for now
Same as item pane

Closes #825
2019-05-05 23:34:23 -04:00
Dan Stillman
f5404bc7ee Add Item by Identifier dialog fixes
- Revert to single-line mode after closing
- Don't add newline if Shift-Enter is pressed in an empty textbox
- Hide progress meter in multi-line mode until beginning search
2019-04-28 23:24:56 -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
67febb2f45 Clarify debug lines for tag selector updating 2019-03-18 04:52:48 -04:00
Dan Stillman
b2d5b9a2f3 Fix incorrect call in 3463e3b5ab 2019-03-17 19:15:34 -04:00
Dan Stillman
3463e3b5ab Don't initialize tag selector if closed at startup (React regression)
Even after cdf9d7ff32, the tag selector was still being initialized if
it was closed at startup, which meant that keeping it closed didn't fix
performance problems in large libraries. This hopefully finally brings
the tag selector in line with pre-Reactification behavior.

This also moves initIntlStrings() logic to Zotero.Intl so that strings
are accessible from React components in separate windows, and it moves
container initialization to ZoteroPane since most of what it does will
need to interact with ZoteroPane anyway.
2019-03-17 05:11:07 -04:00
Dan Stillman
cdf9d7ff32 Unregister tag selector when closed
This restores the pre-Reactification behavior.
2019-03-15 15:42:22 -04:00
Dan Stillman
d0f7fd6df7 Add separate "Rename linked files" pref for auto-renaming
Defaulting to false

People who've been relying on auto-renaming of linked files for the last
year will have to turn this back on.
2019-02-26 22:23:43 -05:00
Adomas Venčkauskas
891524b4ed Fix selected tags not clearing when switching collections. Closes #1646 2019-02-25 12:20:35 +02:00
Dan Stillman
945c413c42 Closes #1644, Allow selecting multiple items with zotero://select
This adds selectItems() to ZoteroPane and collectionTreeView and removes
the ancient, unused 'expand' argument to selectItem(), which didn't
really make sense there. It also includes a new
itemTreeView::ensureRowsAreVisible() that tries to scroll to an
appropriate place (or, better yet, not scroll at all) given the
specified rows and page size.
2019-02-23 17:35:09 -05:00
Adomas Venčkauskas
8bd35ee0d4 Fixes tag selector toggling via hotkey leaving gray area. Closes #1629 2019-01-28 16:35:20 +02: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
7575cd8b29 Don't accept keyboard input before new-collection prompt appears
Fixes #1613
2018-12-27 07:11:15 -05:00
Dan Stillman
6125d65bc2 Support duplicating saved searches
Closes #1431
2018-12-16 02:24:21 -05:00
Dan Stillman
2d38a0102c Show "Find Available PDFs" even if non-regular items are selected 2018-10-10 21:38:10 -04:00
Dan Stillman
18f79f9796 Use progress dialog for PDF retrieval 2018-10-06 00:22:57 -04:00
Martynas Bagdonas
ae7ef109b7 Add universal progress queues (#1573) 2018-10-05 01:56:46 -04:00
Dan Stillman
d899134e7c Automatically delay between PDF retrieval requests to the same domain
Delay requests to the same domain by 1 second, respect a Retry-After
header if present for 429 and 503, and delay for 10 seconds on 429 or
5xx otherwise.
2018-09-22 04:03:25 -04:00
Dan Stillman
4eb4490723 Don't limit PDF retrieval to dev builds 2018-08-25 17:00:53 -04:00
Dan Stillman
c9e80319bb Support "Show File" on evicted iCloud Drive files 2018-08-19 02:41:45 -04:00
Dan Stillman
ec76575645 Trigger downloading and opening of evicted iCloud Drive files 2018-08-19 01:44:49 -04:00
Dan Stillman
e48a1a2abb Remove lots of old Zotero for Firefox code
We still run tests in Firefox, so not everything can be removed.
2018-08-17 03:17:08 -04:00
Dan Stillman
c2ca70055c Merge branch 'electron' 2018-08-16 19:16:46 -04:00
Adomas Venčkauskas
50a4bae945 Remove unused ZP.addItemFromPage() 2018-08-16 11:48:48 +03:00
Adomas Venčkauskas
2cf940763f Remove usage of HTTP.loadDocuments() in electron shared code 2018-08-16 11:48:48 +03: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
e38725cf65 Localize new PDF retrieval strings
Closes #1541
2018-08-15 21:32:12 -04:00
Martynas Bagdonas
51996b537d Force description when submitting a recognizer report (#1547) 2018-08-13 11:14:18 -04:00
Dan Stillman
ff8df06c75 Improve error messages on certificate and connection errors
- Show a clearer message on a certificate error that includes the
  underlying error, which should make debugging much simpler. (No more
  checking in a browser and hoping it's the same connection.)
- Mention proxy server in message on startup proxy-check failure
- Include link to connection-error KB page on sync connection failure

Closes #1191
Closes #1513
2018-08-12 02:38:44 -04:00
Dan Stillman
a97abed533 Extra logging for restart error 2018-08-11 06:29:09 -04:00
Dan Stillman
7cf6634764 Fix progress window hang if Find Available PDF fails 2018-08-10 17:36:04 -04:00
Dan Stillman
168bc78f1a Show error icon at startup if proxy check fails
If a proxy is required and we can't connect to S3, show the (sync) error
icon. For SSL certificate errors, which are the most common cause of
this, the panel includes a link to the SSL cert troubleshooting page.
2018-08-09 15:45:15 -04:00
Dan Stillman
2b6d24bc75 Only show "Find Available PDF" in dev builds 2018-08-09 04:39:28 -04:00
Dan Stillman
8d8109dbac Rename/move some of the PDF retrieval functions 2018-08-07 15:40:52 -04:00
Dan Stillman
679a6d5cc7 PDF retrieval improvements
- Add the ability to extract a PDF URL from a given webpage using the
  translation framework
- Add the ability to get open-access PDFs from landing pages from
  Unpaywall data in addition to direct PDF URLs
- Use the above functionality to improve PDF retrieval for "Add Item by
  Identifier"
- Add "Find Available PDFs" option to the item context menu to retrieve
  PDFs for existing items from the DOI or URL page or using Unpaywall
  data. The option appears for single items with a DOI or URL and no PDF,
  and it always appears when selecting multiple top-level items (but
  skips ineligible items).

PDF extraction from DOI/URL pages will currently only work with
unauthenticated access (i.e., on-campus or VPN, but not via a web-based
proxy).

Supersedes and closes #948
2018-08-07 04:58:15 -04:00
Dan Stillman
72481b072e Clean up extra files from Mendeley imports
Follow-up to cdee741a6
2018-06-16 03:07:46 -04:00
Martynas Bagdonas
00efd01aaf Ask for description when reporting metadata (#1488) 2018-04-19 04:35:03 -04:00
Dan Stillman
0e3071576b Show "Export Collection…" if there are items in subcollections
And generate collection context menu asynchronously

Closes #1482
2018-04-14 11:33:16 -04:00
Dan Stillman
6745ea9868 Fix multiple-item context menu (broken by 7e3bad7390) 2018-03-09 06:58:46 -05:00
Dan Stillman
7e3bad7390 "Undo Retrieve Metadata" and "Report Inaccurate Metadata"
New context menu options for items that were recognized in the last day
and that haven't been modified
2018-03-08 03:53:39 -05:00
Dan Stillman
c4a64216ce Reduce idle CPU use to ~0%
Various animated things (search spinner, progress meters) were using CPU
even when hidden, either because they weren't properly hidden
(equivalent of `display: none` rather than `visibility: hidden`) or
because of bizarre Firefox bugs with progress meters on Linux.

Addresses #1455
2018-03-06 04:19:01 -05:00
Dan Stillman
da09a3bb96 Allow custom handler for PDF files
Configurable via extensions.zotero.fileHandler.pdf hidden pref for now,
though we'll probably make it a visible pref.

We also appear to have been doing blocking launches when launch()
failed, which may have been causing UI hangs when opening files on some
Linux installations. (I'm not sure if that's an issue with recent
Firefox builds. launch() works on Ubuntu 17.10.) All launches are now
async.

This is a rewritten version of PR #1450 by @ehhc.

Closes #1450
2018-03-05 19:36:50 -05:00
Dan Stillman
e1e5178869 Shorten auto-renaming pref
So we now have autoRecognizeFiles and autoRenameFiles.
2018-03-01 04:09:17 -05:00
Dan Stillman
97661539dc Automatically retrieve metadata when saving PDFs
Applies to dragging to the collections pane or the items pane, adding
via New Item menu, or saving via the connector server

If the renaming pref is enabled, the PDF is renamed after recognition.

Can be disabled in the preferences

Closes #917
2018-03-01 01:28:28 -05:00
Dan Stillman
1d367f0165 Fix await->yield in f8b41c971 2018-02-27 19:24:28 -05:00
Dan Stillman
f8b41c971c Automatic attachment file renaming changes
Automatic renaming is now done for dragging of an external file onto an
item (as added in 7cb95f41) as well as dragging as a linked file,
dragging a non-native (not text or HTML) URL, "Attach Link to File…",
"Attach Stored Copy of File…", and "Retrieve Metadata for PDF". It only
applies if a single file is being added and if the parent item has no
non-HTML attachments. By default, the renaming only applies to PDFs, but
this can be changed with the renameAttachmentFiles.automatic.fileTypes
hidden pref.

A new General pref, "Automatically rename attachment files using parent
metadata", controls whether the renaming happens.

Files saved via web translators are renamed regardless of this pref,
because they would often be gibberish otherwise.

Closes #113
2018-02-27 18:45:03 -05:00
Dan Stillman
68879a0ffc Replace some nsIWindowMediator getService() calls with Services.wm 2018-02-27 18:44:51 -05:00
Martynas Bagdonas
991a50d090 New PDF recognizer 2018-02-20 09:32:06 +02:00
Martynas Bagdonas
0d5ea8520a Use the bundled PDF tools 2018-01-17 13:33:18 +02:00
Dan Stillman
dcfaa5521e Don't show note in right-hand pane when editing in separate window
- When a child note is opened in a separate window, the parent window is
  selected. (This used to work but was broken in 5.0.)
- When a top-level note is opened (via double-click), the right-hand pane
  changes to show "Editing in separate window".
- If a note that's currently open in a separate window is clicked on,
  the right-hand pane shows "Editing in a separate window".
- If a note window is closed and the item is selected, the note editor
  reappears in the right-hand pane after the note is saved.

This will avoid unnecessary UI updates and data loss bugs from the two
notes getting out of sync (and is just generally cleaner).

Also:

- General cleanup of note display code
2017-12-11 02:25:05 -05:00
Dan Stillman
10a5d8d02e Check for Firefox profile access at startup and show warning
f40b7ae6ac didn't help with people who've already upgraded, so check at
startup and show a warning if the profile is inaccessible until 1) the
profile has been accessed once or 2) the user checks "Don't show again"
in the warning dialog.

Also fix Zotero.Profile.getDefaultInProfilesDir() to properly throw an
error if it can't access the default directory.
2017-11-17 22:49:57 -05:00
Dan Stillman
f40b7ae6ac Show warning on Firefox profile access error after installation
https://www.zotero.org/support/kb/data_missing_after_zotero_5_upgrade
2017-11-17 09:36:35 -05:00
Dan Stillman
a3e711b7b5 Fix feed item read shortcut, and delay 1 second before marking as read
This allows keyboard navigation without marking all items in between as
read.
2017-11-03 04:36:42 -04:00
Dan Stillman
0f743e55c7 Fix "Rename File from Parent Metadata" if target filename exists
Add a unique numeric suffix to the filename, before any extension
2017-11-01 01:06:20 -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
Dan Stillman
531170353b Fix bidirectional relations on Duplicate Item 2017-10-01 22:04:11 -04:00
Dan Stillman
c7639f328f Fix editing in classic citation window (broken by 2901174ba3)
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.
2017-09-20 03:36:16 -04:00
Dan Stillman
3872e646ac Speed up emptying trash
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
2017-09-15 20:23:01 -04:00
Dan Stillman
2901174ba3 Fix intermittent item selection failure 2017-09-10 03:18:59 -04:00
Dan Stillman
1100015d2c Don't purge data tables until after schema update
It's no longer necessary to do this before syncing, since tags and
creators aren't first-class objects.
2017-09-02 01:13:34 -04:00
Dan Stillman
9202ab8b3c Download missing attachments as needed even in at-sync-time mode 2017-08-11 16:06:06 +02:00
Dan Stillman
3a2f0e6929 Fix URL opening in some places (since 21cc9f16bf) 2017-08-11 11:51:02 +02:00
Dan Stillman
21cc9f16bf Move ZoteroPane.launchURL() to Zotero.launchURL()
And add deprecation warning to ZoteroPane.launchURL()
2017-08-10 04:49:57 +02:00
Dan Stillman
d252a09cd3 Update Quick Copy menu options based on current settings and URL
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
2017-07-28 19:11:39 -04:00
Dan Stillman
72fbee5523 Fix crash switching from Notes tab to feed item 2017-07-27 00:11:13 -04:00
Dan Stillman
6d2c72fb54 Fix revealing parent directory of missing file
Updates Zotero.File.getClosestDirectory() to take a path rather than an
nsIFile
2017-07-21 18:33:36 -04:00
Dan Stillman
6d265f448f Restore site-specific Quick Copy settings
Using the last URL passed by a connector

Closes https://github.com/zotero/zotero-connectors/issues/145
2017-07-19 03:39:27 -04:00
Dan Stillman
0f965b0de6 Fix collection context-menu options broken in 02774ac6f
E.g., selective sync
2017-07-14 01:06:57 -04:00
Dan Stillman
57881ff587 Fix restoring after closing from full-screen mode on macOS 2017-07-13 18:27:06 -04:00
Dan Stillman
df24917c2f Fix #1260, Windows Application (menu) key doesn't work in items pane 2017-07-13 03:26:28 -04:00
Dan Stillman
dd5d3a8668 Fix blank window when opening ZotFile's zotero://open-pdf links
Fixes https://github.com/jlegewie/zotfile/issues/272
2017-07-12 18:25:49 -04:00
Dan Stillman
02774ac6fe Fix collection-menu selection via right-click->drag->release or keyboard 2017-07-12 15:43:20 -04:00
Dan Stillman
55b2dc39bf Fix Firefox 55 breakage (and remove unnecessary locale lookups)
We were manually looking up the current locale in various places and
passing it to nsIStringBundleService::createBundle(), but that hasn't
even been a supported argument for years. (I assume it was a long time
ago?)
2017-07-09 06:59:50 -04:00
Dan Stillman
b07fdc6335 Add intro text to middle pane when My Library is empty
This replaces the Quick Start Guide item in earlier versions.

Also increases size of My Publications intro text when the window is
wider.
2017-07-07 03:41:50 -04:00
Dan Stillman
e89778c1ab Remove some code that's unnecessary now that we're Fx52+ everywhere 2017-06-23 05:03:11 -04:00
Adomas Venčkauskas
dcfddac519 Refactor Connector.callMethod calls to use the promisified form 2017-06-19 14:58:59 +03:00
Dan Stillman
97bac9fadc Move start page URL to config 2017-06-15 02:39:34 -04:00
Dan Stillman
98544edde5 Better logging when revealing attachment in filesystem 2017-06-08 14:13:24 -04:00
Dan Stillman
b5424b4a71 Fix context menu options for multi-item selection (broken in 5d16352f57) 2017-06-07 11:50:06 -04:00
Dan Stillman
5d16352f57 Don't show "Remove Item from Collection" for child items
Test forthcoming once tests are working again
2017-05-27 18:38:28 -04:00
Dan Stillman
d5a8a3420d Additional locale service updates for Firefox 54 compatibility
Follow-up to 0ac37ab65a
2017-05-26 01:37:54 -04:00
Dan Stillman
7fc188b172 Fix crashing for some actions in duplicate items
Necessary after more strict error handling in c4411e1ad3
2017-05-24 18:24:26 -04:00
Dan Stillman
05dcc11a8d Update localized string name
Most localizations still say "Firefox" for this string, so this will
clear those.
2017-05-17 21:41:40 -04:00
Dan Stillman
c4411e1ad3 Crash app if there's an error selecting an item 2017-05-17 21:41:39 -04:00
Dan Stillman
9de6a55bce Better approach to opening files after on-demand downloads
Follow-up to 44507ce20b
2017-05-11 01:26:46 -04:00
Dan Stillman
44507ce20b Prevent conflicting file downloads on double double-click 2017-05-11 01:05:55 -04:00
Dan Stillman
a207e388db Fix attachment download progress pies 2017-05-10 23:27:28 -04:00
Dan Stillman
d715197b2f Don't show Show/Hide button in My Publications for linked files 2017-04-27 04:52:50 -04:00
Dan Stillman
d472752101 Collapse My Publications when first opened
Child items marked as visible are technically search matches, so we have
to take extra steps to keep the parents from being auto-expanded.
2017-04-19 21:56:38 -04:00
Dan Stillman
ed3b18ba8c NodeList doesn't have forEach in Firefox 45 2017-04-13 01:21:36 -04:00
Dan Stillman
5ff2a59f87 Move My Publications into My Library
Instead of My Publications being a separate library, have it be a
special collection inside My Library. Top-level items can be dragged
into it as before, and child items can be toggled off and on with a
button in the item pane. Newly added child items won't be shown by
default.

For upgraders, items in the My Publications library will be moved into
My Library, which might result in their being duplicated if the items
weren't removed from My Library. The client will then upload those new
items into My Library.

The API endpoint will continue to show items in the separate My
Publications library until My Publications items are added to My
Library, so the profile page will continue to show them.
2017-04-12 19:26:58 -04:00
Dan Stillman
6c1ba0aeee Don't wait for transaction when selecting item 2017-04-12 05:37:15 -04:00
Dan Stillman
edb53c31df Fix updating of tag selector after filtering the middle pane
Adds a 'refresh' event to libraryTreeView
2017-03-24 05:37:41 -04:00
Dan Stillman
820755e152 Rework libraryTreeView event handling
Changes `libraryTreeView::addEventListener('load')` and similar to
`libraryTreeView::onLoad.addListener(listener, once)`, etc. `once` is an
optional boolean that, when true, causes the listener to fire once and
then be removed. This is implicit for 'load'.

'load' maintains its special behavior of running immediately if the
treeview has already been loaded.

Also adds `waitForLoad()` and `waitForSelect()` functions that return
promises on event completion, since most uses of those events were just
resolving deferreds.
2017-03-24 05:23:56 -04:00
Dan Stillman
2fe756c1c9 Add collections pane context-menu option to remove archived libraries 2017-02-24 02:36:18 -05:00
Dan Stillman
e465cf058e Allow opening multiple URLs via View Online 2017-02-20 18:49:35 -05:00
Dan Stillman
58edb3143e Update ProgressWindow constructor call after c00db272f 2017-02-08 21:23:36 -05:00
Dan Stillman
ae47ae28bd Fix #1163, Unable to open zotero urls from tinymce 2017-01-30 14:01:04 -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
57b44287f8 Don't allow deleting libraries other than feeds with Cmd/Ctrl-Delete 2017-01-17 21:48:56 -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
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
fb7f9698d3 Move ZoteroStandalone.openInViewer() to Zotero.openInViewer() 2016-12-30 00:56:28 -05:00
Dan Stillman
516fedc2fe Fix right alignment of search bar 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
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
0a2330b79f Fix error adding top-level attachments in collections 2016-12-25 23:20:19 -05:00
Dan Stillman
cf686c520a Don't start auto-sync until UI is ready 2016-12-22 06:58:24 -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
Dan Stillman
3b6b6aa36b Remove tab mode
Closes #1135
2016-12-21 05:11:21 -05:00
Dan Stillman
c5527a82fb Generate new saved search names within libraries, not globally 2016-12-14 03:37:56 -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
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
f3fd7e7a10 Don't load bundled files in Standalone until UI is ready 2016-12-02 17:28:39 -05:00
Dan Stillman
ef3e098586 Migrate data directory automatically on macOS and Linux
If data directory is within the profile directory and we can move the
subdirectories instantaneously with /bin/mv, just do it silently at startup.
2016-11-22 02:33:05 -05:00
Dan Stillman
e8d8f4a0a3 Use spinner instead of items pane message for search
Fixes #1116, and is generally more pleasant
2016-11-21 02:59:31 -05:00
Dan Stillman
da7da74986 Update some deprecated function calls 2016-10-26 02:27:31 -04:00
Dan Stillman
79baac3158 Fix relinking of imported attachment with external file 2016-10-22 15:11:12 -04:00
Dan Stillman
0016c5ecf8 Fix editing of saved search in a group 2016-10-20 22:55:42 -04:00
Adomas Venčkauskas
40abd18895 Add a zoteroPane progress window and use for feed translation 2016-10-16 00:26:07 +03:00
Dan Stillman
c3dcaf9fe0 Fix error calling ZoteroPane.getCollectionTreeRow() if collection view 2016-10-08 19:59:06 -04:00
Dan Stillman
3bf82a4d4d Hide items pane at startup to avoid showing column lines
Column groups aren't processed until after startup progress meter closes, so
otherwise lines show behind the progress meter for all possible columns.
2016-10-08 18:59:20 -04:00
Dan Stillman
0769a84a00 Fix low-res icons after switching out of Fx connector mode 2016-10-04 03:12:20 -04:00
Dan Stillman
1adb8d74f0 Properly save search when using "New Saved Search…" menu option 2016-09-23 21:03:00 -04:00
Dan Stillman
a3a9cb9c1e Fix for too-wide item pane after 4.0 upgrade or prefs reset
Regression from stacked layout mode (6bff554976)
2016-09-23 20:15:00 -04:00
Dan Stillman
0828d4d5e9 openPreferences() updates
- Move openPreferences() to Zotero.Utilities.Internal
- Add support for opening windows when there's no active browser window
- Allow selecting prefpane tab by id via 'tab' property
- openPreferences() now takes an object as its second argument with a
  'tab', 'tabIndex', or 'action' property
2016-09-06 19:13:50 -04:00
Dan Stillman
e3a9c6779b Restore connector mode functionality in Firefox
Non-Zotero for Firefox connector code will probably need to be updated
to handle these changes.
2016-09-05 23:08:08 -04:00
Dan Stillman
b7507b03a8 Generate citation cluster via Create Bibliography dialog
Instead of generating individual citations

This matches Quick Copy behavior and is almost certainly what people
want.
2016-08-26 02:42:56 -04:00
Dan Stillman
9077b2f495 Fix display of some icons in Standalone 2016-07-22 11:59:55 -04:00
Dan Stillman
ab10d1617e Replace deprecated Zotero.Libraries.isEditable() call on note save 2016-07-17 15:14:06 -04:00
Dan Stillman
fc857dc496 Close #1053, Manual sync option in library context menu
This also reworks how the collection context menu is built to do more in
JS instead of XUL, though it can't do it all in JS because some
localized strings are in zotero.dtd and are used in standalone.xul too.
2016-07-02 03:15:37 -04:00
Dan Stillman
893b9ae1fc Show "Duplicate Items" and "Unfiled Items" for all libraries by default
Previously they only showed for My Library by default, which I suspect
meant that most people didn't know you could get them for other
libraries...

This hides "Duplicate Items" and "Unfiled Items" from the context menu
when they're active, which may or may not be desirable (but we don't
show, say, "Trash" in the context menu).

Also tweaks selection behavior after hide to select next appropriate row
instead of the parent library.
2016-07-02 03:15:37 -04:00
Adomas Ven
2cce099928 Add custom view groups for different library types (#1042)
I originally attempted this with zotero-persist and column attributes,
but there is no good way to make it succinct paramswise and the code was
painful to look at too. Thus different group settings are stored in
preferences.

Currently there are two view groups: "feed" and "default". Items view
columns have two new attributes:
`default-in` - a space separated list of views in which a column is
visible by default
`disabled-in` - a space separated list of views in which a column is
disabled by default (invisible + not possible to enable)

Fields not parsed for feeds are now disabled.
2016-06-28 20:12:54 -04:00
Dan Stillman
622530e889 Fix #1054, UI breakage after unsubscribing from feed 2016-06-28 14:29:15 -04:00
Adomas Ven
11e7cef057 Show hard warning dialog when unlinking or linking to a different account (#1047)
And give option to delete local data when unlinking

This removes the old behavior of merging accounts when syncing with a different username.
2016-06-27 12:40:38 -04:00
Adomas Ven
f9449b1749 Fixes hidden columns showing on restart. Closes #1030 (#1031) 2016-06-13 04:56:39 -04:00
Dan Stillman
0b75b75b96 When merging items, add master item to all collections
Also changes Zotero.Item.prototype.clone() to take an `options` object for its
second parameter instead of a boolean `skipTags`. The object includes
`skipTags` as well as a new `includeCollections` property to add the new item
to the same collections.
2016-06-10 23:26:32 -04:00
Dan Stillman
8be22b84d1 Merge pull request #1012 from adomasven/fix/hide-list-cols-for-feeds
Closes #1008. Omit certain item list columns in feed views
2016-06-06 15:48:59 -04:00
Adomas Venčkauskas
60c4262d1e Closes #1008. Omit certain item list columns in feed views 2016-06-03 15:48:46 +01:00
Dan Stillman
fcb6e0c068 Save snapshots via nsIWebBrowserPersist instead of WebPageDump
WPD code hasn't been updated in many years, and there was an issue with
document permissions in 5.0. We'll need to replace nsIWBP in Electron,
but this will do for now.

Attachments are opened using file:// URIs instead of
zotero://attachment, which is what Standalone does anyway. Ancient HTML
annotations and highlights won't be displayed anymore, but I'm not sure
they worked anyway, and it hasn't been possible to create them in years.
We might be able to write out existing annotations to notes.

iframes are skipped during saving, in an attempt to reduce the number of
junk ad files. JS can still cause problems with viewing, so we might
still want to either disable scripts or force the viewed page offline
(if such a thing is possible).

There might be issues with auxiliary filename length/characters during
cross-platform file syncing. (We modified the WPD code to shorten/clean
them.)
2016-06-02 16:14:29 -04:00
LinuxMercedes
6bff554976 Add a second horizontal layout to Zotero for small screens (#1010) 2016-05-27 20:57:29 -04:00
Dan Stillman
56dcd6da26 Add file sync info/link to File Not Found dialog 2016-05-15 04:24:00 -04:00
Dan Stillman
427234917d Properly test whether file syncing is enabled for a library 2016-05-15 04:22:24 -04:00
Dan Stillman
8bbde63284 Update menu for non-collections when right-clicking on unselected row
Previously, item-dependent menu options in the context menu of
collectionsTreeRow types other than 'collection' weren't updated after
the asynchronous loading of the items. The menu is now updated for all
types, so, e.g., "Empty Trash" is now updated properly after items in
the trash have been loaded.
2016-05-12 02:12:22 -04:00
Dan Stillman
315100e5ef Remove obsolete style code 2016-05-03 12:06:29 -04:00
Dan Stillman
186561f320 Merge pull request #950 from adomasven/feature/import-feeds-from-opml
Close adomasven/zotero#11. Add support for feed imports from OPML files
2016-04-28 01:09:47 -04:00
Adomas Venčkauskas
3b758e562b Close adomasven/zotero#11. Add support for feed imports from OPML files 2016-04-27 20:32:20 +01:00
Adomas Venčkauskas
98a3c4aeaa Closes #961. Fixes feed dialogue remove read articles value not saving 2016-04-27 16:38:28 +01:00
Dan Stillman
9c7663979e Fix dragging of URLs into items list 2016-04-22 22:48:58 -04:00
Dan Stillman
aee214ed44 Update collection context menu once items have loaded
Otherwise, when right-clicking on a collection that's not currently
selected, some of the menu items appear gray at first, and a second
right-click is necessary after the items have loaded. This way the menu
items turn black once the items have loaded.
2016-04-11 02:52:09 -04:00
Dan Stillman
bb4db297c4 Fix "this.selection is undefined" switching away from loading collection 2016-04-11 02:29:25 -04:00
Dan Stillman
7c3a134107 Show loading message in middle pane if items loaded after startup 2016-04-11 02:29:08 -04:00
Dan Stillman
0469d6506a Show toolbar icon and collections pane while items are loading
Items in a library are now loaded only when a library is clicked on and
at sync time. There might be some other areas where they need to be
loaded or where this causes problems (e.g., drag and drop, word
processor integration).
2016-04-10 19:01:36 -04:00
Dan Stillman
23e01fcefd Fix saving to My Library if Zotero pane hasn't been opened 2016-04-09 18:34:54 -04:00
Dan Stillman
b650263d66 "Sync with Zotero Server" -> "Sync with zotero.org" 2016-04-08 17:03:29 -04:00
Dan Stillman
cf212e2b70 Initialize feed button only when necessary
And without extra init() call

This fixes the button being initialized before Zotero.hiDPI is set, resulting
in a low-res icon until the target is changed.
2016-04-04 23:18:29 -04:00
Adomas Venčkauskas
5b8d3c178f Add a menu option to add feeds found on a page
Closes #adomasven/zotero/10
2016-04-04 17:36:51 -04:00
Dan Stillman
0f7d1c7061 Fix various connector-mode issues for 5.0
Still more to fix
2016-04-04 06:33:15 -04:00
Adomas Venčkauskas
3dc0ad3745 Add feed menu buttons. Close adomasven/zotero#9. 2016-04-01 12:25:37 +03:00
Dan Stillman
514547ab3b Reinstate auto-sync, and remove lots of old sync code
The on-change auto-sync now syncs only the modified library, and does so
quite efficiently (and should be able to be made more efficient), so we
might be able to reduce the timeout below 15 seconds.
2016-04-01 02:30:17 -04:00
Dan Stillman
9b231169b2 Return the new item from ZoteroPane.duplicateSelectedItem() 2016-04-01 02:00:30 -04:00
Dan Stillman
b5adb084f2 Don't reload last folder on items pane crash, in case it's the problem
Otherwise you have to edit the prefs to continue using Zotero if, say, a saved
search causes a crash.
2016-03-26 04:16:23 -04:00
Dan Stillman
b7b246e741 Saved search fixes
- Fix saved search editing
- Refresh items list on search change
- Generate correct conditions array for search JSON
2016-03-26 04:14:56 -04:00
Dan Stillman
234127e65a Update toolbar icons on group editability change
And trigger 'group' 'modify' notifier event for inherited Zotero.Library
properties
2016-03-25 16:49:26 -04:00
Dan Stillman
fc6c113f25 Show intro text for My Publications in middle pane when no items
ZoteroPane.setItemsPaneMessage() and setItemPaneMessage() can now
optionally take a DOM node instead of a string.

Closes #705
2016-03-24 09:03:59 -04:00
Dan Stillman
002dd66e03 Restore proper error for Show File on missing file 2016-03-23 04:29:38 -04:00
Dan Stillman
6c43e75d26 Merge pull request #902 from adomasven/feature/feed-reader-UI
Feed Reader UI

(I squashed a bunch of commits from the PR.)
2016-03-22 07:31:03 -04:00
Adomas Venčkauskas
12fc6cfbe8 Various feeds changes
- Hide notes, tags and related for feed items in itembox
- Add feed support for <enclosure> elements
- Add feed syncing methods for synced settings (additional work is
  needed on the sync architecture to download synced settings from the
  server)
- Change feed item clear policy to be less aggressive
- Adjust for deasyncification
- Disable translate-on-select
- Close adomasven/zotero#7, Remove context menu items from feeds
2016-03-22 06:56:36 -04:00
Adomas Venčkauskas
0d4025e9fb Add preferences for feed sorting and toggle read hotkey 2016-03-22 06:56:36 -04:00
Adomas Venčkauskas
39aca505e0 Add right-click menu read state choices for feeds 2016-03-22 06:56:35 -04:00
Adomas Venčkauskas
e206b0af5e Various feeds changes
- Change sort order for feed items to natural order
- Remove display of dates in itembox
- Trim html tags from creators in FeedReader parser
2016-03-22 06:56:33 -04:00
Adomas Venčkauskas
5e706c31ad Translate and add items to library on drag 2016-03-22 06:56:33 -04:00
Adomas Venčkauskas
6da0845f4b Add feedItem translation 2016-03-22 06:56:32 -04:00
Adomas Venčkauskas
e6ede4b36f Various feeds changes
And move Z.Attachments.cleanAttachmentURI() to Z.Utilities.cleanURL()
2016-03-22 06:56:30 -04:00
Aurimas Vinckevicius
2d46e3d59b Various feeds changes 2016-03-22 06:55:48 -04:00
Aurimas Vinckevicius
e7f568d56c Automatically start feed update when adding new feed 2016-03-22 06:14:16 -04:00
Aurimas Vinckevicius
2c3eb205ab Implement read/unread functionality in feeds 2016-03-22 06:14:16 -04:00
Aurimas Vinckevicius
9686758c7d Add feeds to collections tree view and items tree view 2016-03-22 06:14:15 -04:00
Aurimas Vinckevicius
2e56e2f659 Add feed button and Add Feed dialog 2016-03-22 06:14:15 -04:00
Dan Stillman
20ece48a57 Fix saving of single files to library root via save button 2016-03-21 01:30:16 -04:00
Dan Stillman
6b509820b3 Fixes #918, Enabling "Show Unfiled Items" or "Show Duplicates" breaks UI 2016-03-13 20:31:15 -04:00
Dan Stillman
f795240bbf Fix display of Duplicate/Unfiled Items rows 2016-03-11 09:25:33 -05:00
Dan Stillman
edcd2a16d2 Replace obsolete collectionTreeView::getLastViewedRow() call 2016-03-11 07:48:24 -05:00
Dan Stillman
daf4a8fe4d Deasyncification 🔙 😢
While trying to get translation and citing working with asynchronously
generated data, we realized that drag-and-drop support was going to
be...problematic. Firefox only supports synchronous methods for
providing drag data (unlike, it seems, the DataTransferItem interface
supported by Chrome), which means that we'd need to preload all relevant
data on item selection (bounded by export.quickCopy.dragLimit) and keep
the translate/cite methods synchronous (or maintain two separate
versions).

What we're trying instead is doing what I said in #518 we weren't going
to do: loading most object data on startup and leaving many more
functions synchronous. Essentially, this takes the various load*()
methods described in #518, moves them to startup, and makes them operate
on entire libraries rather than individual objects.

The obvious downside here (other than undoing much of the work of the
last many months) is that it increases startup time, potentially quite a
lot for larger libraries. On my laptop, with a 3,000-item library, this
adds about 3 seconds to startup time. I haven't yet tested with larger
libraries. But I'm hoping that we can optimize this further to reduce
that delay. Among other things, this is loading data for all libraries,
when it should be able to load data only for the library being viewed.
But this is also fundamentally just doing some SELECT queries and
storing the results, so it really shouldn't need to be that slow (though
performance may be bounded a bit here by XPCOM overhead).

If we can make this fast enough, it means that third-party plugins
should be able to remain much closer to their current designs. (Some
things, including saving, will still need to be made asynchronous.)
2016-03-07 17:03:58 -05:00
Dan Stillman
64e7738bd3 Fix switching into tab mode 2016-02-08 01:37:48 -05:00
Dan Stillman
bbdfebf8f6 Avoid repeated search when clearing quick search bar 2016-02-06 15:20:02 -05:00
Dan Stillman
27de351615 Fix middle pane status messages while using quick search 2016-02-06 03:26:31 -05:00
Dan Stillman
c5a9987f37 WebDAV file sync overhaul for 5.0
Also:

- Remove last-sync-time mechanism for both WebDAV and ZFS, since it can
  be determined by storage properties (mtime/md5) in data sync
- Add option to include synced storage properties in item toJSON()
  instead of local file properties
- Set "Fake-Server-Match" header in setHTTPResponse() test support
  function, which can be used for request count assertions -- see
  resetRequestCount() and assertRequestCount() in webdavTest.js
- Allow string (e.g., 'to_download') instead of constant in
  Zotero.Sync.Data.Local.setSyncState()
- Misc storage tweaks
2015-12-30 05:14:50 -05:00
Dan Stillman
177dac3fd2 Closes #805, Translation shouldn't create new item in My Publications
And in download overlay, save and switch to My Library if My
Publications is selected.
2015-12-10 01:11:41 -05:00
Dan Stillman
08cb63f66d Fix various cases of saving items to selected collection
This changes Zotero.Translate.Base.translate() to take an options object (in
order to take a 'collections' parameter, which is passed to the
Zotero.Translate.ItemSaver constructor). The old parameters are still supported
with a deprecation warning, and there may be other places that still need to be
updated.
2015-11-15 17:49:31 -05:00
Dan Stillman
b52cfae225 Show "Delete Permanently..." button in right-hand pane in trash 2015-11-03 17:08:54 -05:00
Dan Stillman
f2bef5998c Disable actions in My Publications and clean up trash item menu
Disallow everything other than adding a child note in My Publications,
since the wizard only shows on drag (currently, at least). Need to
disable translation separately.

Also show "Delete Item[s]..." in the trash context menu, and hide rather
than disable various menu options.

Addresses #703 -- still need to disable saved search saving
2015-11-03 17:08:10 -05:00
Dan Stillman
7f43ca9503 Merge branch '4.0' 2015-11-01 21:22:13 -05:00
Dan Stillman
e0b5111442 Update some outdated Zotero.Libraries.getType()/getName() calls 2015-11-01 18:29:02 -05:00
Dan Stillman
6ccfed2488 Don't show item context menu until it's ready
With async generation, an incorrect menu was showing first before the
correct version appeared.
2015-10-31 03:46:47 -04:00
Dan Stillman
37b6a14f17 Fix attachment pane loading 2015-10-31 01:36:49 -04:00
Dan Stillman
73f4d28ab2 ZFS file sync overhaul for API syncing
This mostly gets ZFS file syncing and file conflict resolution working
with the API sync process. WebDAV will need to be updated separately.

Known issues:

- File sync progress is temporarily gone
- File uploads can result in an unnecessary 412 loop on the next data
  sync
- This causes Firefox to crash on one of my computers during tests,
  which would be easier to debug if it produced a crash log.

Also:

- Adds httpd.js for use in tests when FakeXMLHttpRequest can't be used
  (e.g., saveURI()).
- Adds some additional test data files for attachment tests
2015-10-29 04:38:27 -04:00
Dan Stillman
488c4eb72b Fix menubar/titlebar-less Standalone window issue in El Capitan
If Standalone is closed in full-screen mode in 10.11, 'sizemode' on the main
window is persisted as 'fullscreen'. On reopen, the window doesn't go into
full-screen mode, but it still lacks menubar or titlebar. This patch forces the
window into 'normal' mode if it was left in 'fullscreen'.

(Firefox appears to ignore 'fullscreen' without actually changing the value,
but I didn't find the code that handles that.)
2015-10-02 16:46:34 -04:00