Commit graph

606 commits

Author SHA1 Message Date
rmzelle
c5a40d503b Add prompt for Remove Item(s) from Collection 2015-03-09 21:45:39 -04:00
Dan Stillman
ba2a16531b Add "Show Item in Library" button to note-too-long window
TODO: other too-long errors
2015-02-19 17:44:35 -05:00
Dan Stillman
b0e37a38a2 Merge branch '4.0'
Conflicts:
	chrome/content/zotero/xpcom/schema.js
	chrome/content/zotero/xpcom/translation/translate.js
	chrome/content/zotero/xpcom/zotero.js
	install.rdf
	update.rdf
2015-01-29 19:59:47 -05:00
Philipp Zumstein
d5b4c31575 Right pane (item-pane) can be collapsed
This belongs to issue #509 and was asked several times in the forum.

 * Add attribute `collapse="after"` to the splitter and add a grippy element.
 * To remember its state after restart I copied `zotero-persist="state"`.
 * Handle zotero-items-splitter the same as zotero-collections-splitter in zotero-platform/mac/overlay.css
 * Change min-width to 250px for #zotero-item-pane in zotero/overlay.css.
 * Update the function `updateToolbarPosition` in zotero/zoteroPane.js:
   * The width of the items-toolbar is corrected if the left pane is collapsed (and the icons are grouped on the left margin together).
   * If the right pane is collapsed, then the items-toolbar is made flexible while making the item-toolbar unflexible. As a result the search box and locate icon are flushed right to the other icons.
2015-01-07 10:41:18 +01:00
MTD
849803473a Address silent failure of unrecognized URIs in Attach Link to URI
Generated files for a more robust attached-link-dialog and localized strings
* AttachLink.js
* AttachLink.xul

zotero/xpcom/attachments.js
* created function cleanAttachmentURI
* in function linkFromURL, removed the regex constraints and the comment list of valid protocols
* removed outdated function declaration from beginning of script
* Improved automatic title generation mechanism
2014-12-16 11:20:55 -05:00
Aurimas Vinckevicius
0e31e7ca01 Wait for the item pane to initialize before focusing first field 2014-11-14 01:50:02 -06:00
Dan Stillman
5bfc1e4199 Fix comment - force-delete on Win/Linux is Shift, not Ctrl 2014-10-28 13:45:55 -04:00
Dan Stillman
aab3276276 Use old-style searchbox in Yosemite pre-Fx34
Yosemite introduces a new search textbox shape, but Firefox still uses
the old focus ring shape until 34, so we fake the old searchbox shape
for earlier versions.
2014-10-14 02:22:44 -04:00
Dan Stillman
5c94119c70 Fixes duplicates view for async DB
It's way too slow, though, since the whole list is regenerated after
merging.

Fixes #519

Also:

- The arguments to Zotero.Item.prototype.clone() have changed, and it no
  longer takes an existing item or copies primary data. To create an
  in-memory copy of an item, use the new Zotero.Item.prototype.copy().

- Zotero.Item.prototype.getUsedFields() now gets in-memory fields rather
  than the fields in the database
2014-10-10 04:49:39 -04:00
Dan Stillman
e2d3cc3f0d Update zotero://select to use new URLs and wait for items list load
Closes #541
2014-09-23 01:13:38 -04:00
Dan Stillman
755ead2119 Update zotero:// extensions (report, timeline, etc.) for async DB, and more
- Protocol handler extensions can now handle promises and can also make
  data available as it's ready instead of all at once (e.g., reports now
  output one entry at a time)
- zotero:// URL syntaxes are now more consistent and closer to the web
  API (old URLs should work, but some may currently be broken)

Also:

- Code to generate server API, currently available for testing via
  zotero://data URLs but eventually moving to HTTP -- zotero://data URLs match
  web API URLs, with a different prefix for the personal library (/library vs.
  /users/12345)
- Miscellaneous fixes to data objects

Under the hood:

- Extensions now return an AsyncChannel, which is an nsIChannel implementation
  that takes a promise-yielding generator that returns a string,
  nsIAsyncInputStream, or file that will be used for the channel's data
- New function Zotero.Utilities.Internal.getAsyncInputStream() takes a
  generator that yields either promises or strings and returns an async input
  stream filled with the yielded strings
- Zotero.Router parsers URLs and extract parameters
- Zotero.Item.toResponseJSON()
2014-09-09 00:36:29 -04:00
Dan Stillman
a67521e9dd Closes #500, Remove DOM_VK_ENTER 2014-08-12 19:18:29 -04:00
Dan Stillman
ae8f871f20 Fix flash of "No items in this view" when switching collections 2014-08-11 00:40:43 -04:00
Dan Stillman
40f111832c Fix error double-clicking on unopened regular items 2014-08-11 00:40:35 -04:00
Dan Stillman
f5896dbb8d Remove synchronous database methods
This required doing additional caching at startup (e.g., item types and fields)
so that various methods can remain synchronous.

This lets us switch back to using the current Sqlite.jsm. Previously we were
bundling the Fx24 version, which avoided freezes with locking_mode=EXCLUSIVE
with both sync and async queries.

Known broken things:

  - Autocomplete
  - Database backup
  - UDFs (e.g., REGEXP function used in Zotero.DB.getNextName())
2014-08-09 18:10:32 -04:00
Dan Stillman
380668cc60 Changes to item and file retrieval methods
- Zotero.Item.prototype.getFilePath() is now synchronous, with a separate async getFilePathAsync()

- getFile() no longer takes a skipExistsCheck parameter, since that shouldn't happen synchronously

- Zotero.Items.getByLibraryAndKey() is now synchronous again, with a
  separate Zotero.Items.getByLibraryAndKeyAsync() - I haven't fully
  tested this, so I'm not sure if there will need to be any async
  calls.

- Some of the full-text indexing functions now take file paths instead of nsIFile objects

- Zotero.File.getContentsAsync() can now take a string path as well
2014-08-08 17:43:26 -04:00
Dan Stillman
db0fa3c33e Async DB megacommit
Promise-based rewrite of most of the codebase, with asynchronous database and file access -- see https://github.com/zotero/zotero/issues/518 for details.

WARNING: This includes backwards-incompatible schema changes.

An incomplete list of other changes:

- Schema overhaul
  - Replace main tables with new versions with updated schema
  - Enable real foreign key support and remove previous triggers
  - Don't use NULLs for local libraryID, which broke the UNIQUE index
    preventing object key duplication. All code (Zotero and third-party)
    using NULL for the local library will need to be updated to use 0
    instead (already done for Zotero code)
  - Add 'compatibility' DB version that can be incremented manually to break DB
    compatibility with previous versions. 'userdata' upgrades will no longer
    automatically break compatibility.
  - Demote creators and tags from first-class objects to item properties
- New API syncing properties
  - 'synced'/'version' properties to data objects
  - 'etag' to groups
  - 'version' to libraries
- Create Zotero.DataObject that other objects inherit from
- Consolidate data object loading into Zotero.DataObjects
- Change object reloading so that only the loaded and changed parts of objects are reloaded, instead of reloading all data from the database (with some exceptions, including item primary data)
- Items and collections now have .parentItem and .parentKey properties, replacing item.getSource() and item.getSourceKey()
- New function Zotero.serial(fn), to wrap an async function such that all calls are run serially
- New function Zotero.Utilities.Internal.forEachChunkAsync(arr, chunkSize, func)
- Add tag selector loading message
- Various API and name changes, since everything was breaking anyway

Known broken things:

- Syncing (will be completely rewritten for API syncing)
- Translation architecture (needs promise-based rewrite)
- Duplicates view
- DB integrity check (from schema changes)
- Dragging (may be difficult to fix)

Lots of other big and little things are certainly broken, particularly with the UI, which can be affected by async code in all sorts of subtle ways.
2014-08-06 22:59:37 -04:00
Dan Stillman
4ea5e2d426 Update code to use 0 instead of NULL for libraryID 2014-08-06 22:14:59 -04:00
Dan Stillman
7c958f4bd3 Show "Loading items list..." in middle pane on window load
Otherwise with async loading the pane appears blank before the message appears
2014-08-06 22:14:58 -04:00
Dan Stillman
84882c8ecf Include actual error in "There was an error starting Zotero." dialog
And use a proper title
2014-08-06 22:14:58 -04:00
Dan Stillman
36c5dceff4 Merge branch '4.0'
Conflicts:
	chrome/content/zotero/browser.js
	chrome/content/zotero/longTagFixer.js
	chrome/content/zotero/xpcom/schema.js
	chrome/content/zotero/xpcom/utilities.js
	chrome/content/zotero/xpcom/zotero.js
	install.rdf
	update.rdf
2014-07-15 22:17:27 -04:00
Dan Stillman
1b6dc5d681 Restore minimize/maximize buttons in note windows on Windows
From db6ec2b160
2014-06-05 00:54:22 -04:00
Dan Stillman
db6ec2b160 Persist single position/size for all note windows
Previously, position/size was persisted for each item's note
individually, but that meant that there was no default position/size for
the note window and an entry was created in localstore.rdf for
every note opened in a new window. There's also a good chance people had
no idea what was going on.
2014-05-28 14:35:05 -04:00
Dan Stillman
59f534d56f Error report improvements
- Always allow "Report Errors...", even when no errors

- Show submitted diagnostic info in report

- Use white background and unitalicized text for report

- Make window larger by default
2014-05-26 20:07:41 -04:00
Dan Stillman
6f06b39cb3 Merge branch '4.0' 2014-05-19 03:38:35 -04:00
Dan Stillman
9f91d240b0 Library switcher in advanced search window
When opening the advanced search window, the current library is
selected, and a different library can be selected to change the search
scope. If a library is read-only, the saved search button is disabled.
For saved searches, the appropriate library is selected and the
drop-down is disabled.

Also:

- Close the advanced search window after a search is saved
- The default name for saved searches ("Untitled 2", etc.) was based on
  collections rather than searches
- Once an initial search has been performed, the drop-downs and
  checkboxes now update the results
- More consistent spacing in advanced search window
- (dev) Zotero.DB.getNextName() now takes a libraryID as its first
  parameter instead of always using My Library; the old parameters are
  deprecated but still work
2014-05-15 21:41:22 -04:00
Dan Stillman
57116fa892 Merge branch '4.0'
Conflicts:
	chrome/content/zotero/xpcom/collectionTreeView.js
	chrome/content/zotero/xpcom/libraryTreeView.js
	chrome/content/zotero/xpcom/zotero.js
	install.rdf
	update.rdf
2014-05-08 15:52:31 -04:00
Dan Stillman
dd477e15b8 Configurable secondary sorting and other improvements
- Each column in the middle pane can now have its own persistent
  secondary sort column, configurable from a new submenu in the column
  picker menu (top right of items list). The settings are stored in
  extensions.zotero.secondarySort.[primaryField]. The submenu title
  includes the current primary field (e.g., "Secondary Sort (Creator)"),
  which is pretty weird, and I'm not sure I want to keep it, but it does
  convey that the setting is specific to the selected column.

- The fallback sort fields (firstCreator, date, title, dateAdded) are
  now configurable via the extensions.zotero.fallbackSort. Setting that
  pref to an empty string avoids all fallback sorts, which
  allows reverse-order clicking to set the order, as requested by
  @aurimasv in #275.

- The previous behavior of sorting based on the exact Creator string
  (rather than the actual creators) can now be restored with the
  extensions.zotero.sortCreatorAsString pref. (It simply circumvents all
  the newer code, so it's pretty safe.) This setting should result in
  faster sorting in large libraries that have many items with the same
  Creator string.

- Some of the lesser fields in the column picker menu are now in the
  More Columns submenu (which is now alphabetical)

- The "Type" column is now the less-ambiguous "Item Type".

- This uses a different method to modify the column picker menu that is
  simultaneously less and more hacky. (It no longer has to duplicate
  Mozilla code in a custom XBL binding that wouldn't reflect future
  upstream changes, and instead it bushwhacks its way through various
  boxObject properties to get to the underlying menupopup.)
2014-05-07 05:15:07 -04:00
Dan Stillman
3d9853acaa Redo instead of toggling Z pane in text fields (except search bar) on OS X
Previously Cmd-Shift-Z worked for redo in text areas (Abstract, Extra)
but would toggle the Zotero pane in regular text fields. This change
allows Redo to work as expected.

The search bar gets focus when you first open the Zotero pane, though,
so we don't redo there, since it would be annoying if you couldn't close
the pane immediately with the same shortcut.
2014-04-30 14:29:59 -04:00
Simon Kornblith
26ea06524e Merge pull request #328 from aurimasv/pdfdrop
Add callback to importFromURL for drag-dropped PDFs instead of setTimeout
2014-04-27 21:32:27 -04:00
Dan Stillman
60e5ab8124 Merge branch '4.0'
Conflicts:
	chrome/content/zotero/xpcom/db.js
	chrome/content/zotero/xpcom/fulltext.js
	chrome/content/zotero/xpcom/zotero.js
	chrome/content/zotero/zoteroPane.js
	components/zotero-service.js
	install.rdf
	update.rdf
2014-04-08 18:47:32 -04:00
Dan Stillman
fe1bedcb8d Fix hang navigating by keyboard in Add Citation after switching views
https://forums.zotero.org/discussion/35658/
2014-03-24 16:31:53 -04:00
Simon Kornblith
6fa04103c2 Fix a bug where the Zotero pane would not close when opening Standalone
If Zotero Standalone was opened before Firefox, closed, and opened
again, the user would see a message stating Zotero Standalone was open,
but the pane would not have closed. This was purely cosmetic.
2013-12-14 02:07:36 -05:00
Dan Stillman
5d32fb90ea Merge branch '4.0'
Conflicts:
	chrome/content/zotero/fileInterface.js
	chrome/content/zotero/overlay.js
	chrome/content/zotero/xpcom/schema.js
	chrome/content/zotero/xpcom/zotero.js
	chrome/content/zotero/zoteroPane.js
	install.rdf
	update.rdf
2013-11-24 16:08:46 -05:00
Dan Stillman
1e0674cf7c Fix some bugs adding items to various views
- Refresh Unfiled Items view when items are added
- Fix brief freeze ("too much recursion") adding an item to a search
  where the new item doesn't appear. Now, select the library root
  instead if a manually added item doesn't appear in the current view.
- Fix immediate closing of title field when adding an item to a
  collection rather than the library root
2013-11-21 19:52:13 -05:00
Simon Kornblith
0b92ad0037 Modify behavior on Zotero Standalone launch to account for failure
- Close Zotero pane before database is closed prior to reload, instead
  of waiting until reload is complete
- Show an error message if Zotero Standalone is not accessible when it
  should be
2013-11-05 15:52:40 -05:00
Dan Stillman
9f24dcdb44 Use async DB query for collections-containing-an-item 2013-08-12 16:31:28 -04:00
Dan Stillman
5787b230f7 Use asynchronous DB and file access for schema checks/updates
This change should improve Firefox startup time. If the Zotero pane is
opened before Zotero has initialized, the pane will be blocked with a
progress bar until it's done. Standalone currently does the same, but it
should be changed to just delay opening the window if possible.

The upgrade wizard has been disabled for schema upgrades, in the hope
that upgrades can be done in a way that won't break compatibility with
earlier versions (or that can at least be done in a way such that we can
put out point releases of the last major version that provide
compatibility during beta/post-upgrade periods).

This patch likely breaks many things, and definitely breaks connector
mode.

This change also removes upgrade steps for databases from Zotero 2.1b2
and earlier. Users with such databases will need to upgrade via Zotero
4.0.x first or delete their data directories and start anew. This should
only affect users who haven't opened Zotero since Nov. 2010.
2013-08-11 21:53:41 -04:00
Dan Stillman
8bdac7015b Focus title on shortcut key new item even if item type isn't changed 2013-08-07 20:28:17 -04:00
Dan Stillman
39e92bacb3 Focus title field when creating new item via menu or shortcut key 2013-08-07 13:17:25 -04:00
Dan Stillman
84d9963e14 File sync optimizations 2013-08-02 01:13:27 -04:00
Dan Stillman
e177e3e718 Optimize local file modification checks during file syncs
- On manual sync or the first auto-sync of a session, check all files
- During other auto-syncs, check only files previously modified or
  opened externally via Zotero (including Show File) within the last 3
  hours
- Every 3 hours, do a full check of all files even if it's an auto-sync
- Spin event loop during synchronous file checks to avoid hanging the UI
- Zotero.Sync.Runner.sync() now takes an options object (e.g.,
  options.background)

Todo:

- Provide feedback on last full check in sync icon tooltip?
- Auto-sync on app focus, if this speeds up syncs enough?
2013-08-02 00:45:26 -04:00
Dan Stillman
2736e7e6d1 Use Ctrl-Shift for all shortcuts on Windows/Linux instead of Ctrl-Alt
https://forums.zotero.org/discussion/25927/#Item_5
2013-07-28 20:18:24 -04:00
Dan Stillman
375f0774c0 Merge pull request #327 from aurimasv/dup-right-click
Allow right-click on multiple items in duplicate view. Closes #53
2013-07-16 00:32:15 -07:00
Dan Stillman
8e8bc15071 Closes #291, Default to last-used item type when creating item via
keyboard
2013-07-02 16:48:53 -04:00
Dan Stillman
30a0bbcca2 Fix conflict with Cmd-Shift-A, and probably other third-party shortcuts
The Zotero shortcut keys, and their event.preventDefault(), were bound
to keydown, so shortcuts bound to keypress were still be called. This
moves most of the shortcut handling code into the keypress handler.

Fixes #344
2013-07-02 02:43:53 -04:00
Aurimas Vinckevicius
cf5d3a08bf Add callback to importFromURL for drag-dropped PDFs instead of setTimeout 2013-05-21 21:55:49 -05:00
aurimasv
fdb35e2e92 Allow right-click on multiple items in duplicate view. Closes #53 2013-05-20 04:39:19 -05:00
Dan Stillman
311e6f2fa7 Merge pull request #326 from aurimasv/dup-click
Tweak duplicate view click behavior
2013-05-19 20:21:49 -07:00
Aurimas Vinckevicius
4546089672 Tweak duplicate view click behavior
Allow ctrl/alt/shift click actions in duplicate view. (closes #324)
Allow right-click behavior on single item/attachment selection. (closes #325)
2013-05-19 22:20:28 -05:00
Dan Stillman
d3ec8fcdcf Ignore standalone-no-display class when building attachment button menu 2013-05-19 00:14:13 -04:00
Dan Stillman
e09295ee76 Fix compatibility with authenticated proxies
It's not clear when this became an issue, but our usual background HTTP
requests (set that way to avoid triggering auth prompts when saving from
websites) weren't triggering proxy authentication dialogs, which was breaking
most network activity in Standalone. To fix this, we now make a foreground
request at startup to a file on S3 and resolve the Zotero.proxyAuthComplete
promise when we're done. Any network requests that want to wait for proxy
authentication can wait for that promise.

This behavior can be disabled via the triggerProxyAuthentication hidden pref.
2013-05-01 06:29:31 -04:00
Simon Kornblith
ce2828773b Fix saving PDFs open in pdf.js 2013-04-20 21:48:53 -04:00
Dan Stillman
41c9a4a433 Fix relative path support to sync properly
Dual boot and VM setups worked, but only absolute paths were synced,
because syncing uses attachmentPath, which was resolving relative paths
itself (#51). attachmentPath now returns what's in the database (as it
did originally), and getFile() does the resolving instead.

This means that anything relying on attachmentPath directly needs to be
aware that it might get a placeholder-prefixed relative path.
2013-04-19 01:33:23 -04:00
Aurimas Vinckevicius
33fedc306c Add icons to context menus 2013-04-13 01:53:02 -05:00
Dan Stillman
2236bab130 Better handle some file sync file access errors
- Catch additional errors on Windows (too-long paths, maybe aliases)
- Fix "Show File" button (which didn't show in some cases, at least on
  Windows)
- Clarify error message
2013-04-11 04:28:38 -04:00
Dan Stillman
e85790541b Remove per-library sync error indicators, at least for now
The hidden column caused collection names to be cut off unnecessarily,
and the extra icons were overly distracting. For now, just show the
first error that comes in in the main sync error panel, along with the
library name.
2013-03-20 22:41:15 -04:00
Dan Stillman
1647f28135 Fix error selecting separator above Group Libraries
This is super annoying, but I can't seem to stop the separator row from
being selected in seltype="single" mode (where isSelectable() isn't
called). Until we have a better solution, at least clear the items list
and avoid an error.
2013-03-19 06:53:48 -04:00
Dan Stillman
5a863d97c8 Context-menu string cleanup
- Remove all "Selected" from "Selected Item", because that's how a context menu works
- Change "Remove Selected Item" to "Remove Item from Collection" (fixes #122)
- Change "Delete Selected Item from Library" to "Move Item to Trash")
- Change "Remove" on Duplicate/Unfiled Items to "Hide" (fixes #122)
- Change "Create Parent Item from Selected Item" to "Create Parent Item"
2013-03-17 01:22:47 -04:00
Dan Stillman
022ee4481b Add "Delete Collection and Items..." context-menu option
Also update collection/search deletion dialogs with better button text and no more "[JavaScript Application]"
2013-03-16 22:55:50 -04:00
Dan Stillman
d5bfed1c96 Missed changed from 0cd3a34e14 2013-03-12 21:10:11 -04:00
Dan Stillman
8333c68f77 Fix trailing whitespace from #264 2013-03-05 03:43:50 -05:00
Dan Stillman
30f5679ec8 Merge remote-tracking branch 'gracile/3.1-l10n' into 3.1-l10n 2013-03-05 03:06:43 -05:00
Dan Stillman
4b46f252fd Fix error on column header click 2013-03-04 18:25:44 -05:00
gracile-fr
eb7b301073 Localizes most of the strings marked "todo: localize" 2013-03-04 03:44:37 +01:00
Dan Stillman
937c0a3a3a Fix error in in Error Conosle when clicking on some items 2013-02-22 18:41:49 -05:00
Dan Stillman
27a2a9c1f7 More relative path changes
- If attachment exists at same relative path in new base directory,
  leave it alone so that it continues to work.
- If attachment doesn't exist in new base directory, revert it to an
  absolute path.
- If new base directory is an ancestor or descendant of the previous
  base directory, adjust relative paths below the new directory so that
  they keep working.
- More dialog changes
- Select current base directory in file picker when changing directory
- Always use .persistentDescriptor instead of initWithPath(), though it
  probably doesn't matter, and wrap in try/catch in case the old setting
  is broken in some way.
- New function Zotero.File.directoryContains(dir, file), since
  nsIFile.contains() isn't recursive
- Don't use a private Zotero.Item property from outside to force path changes.
2013-02-21 06:24:46 -05:00
Dan Stillman
d4771c5f0d Focus preferences window if already showing
Previously, if the prefwindow was behind another window, nothing would
happen when opening the preferences.
2013-02-19 16:27:16 -05:00
Simon Kornblith
6b2bbf80e1 Fix things so that they (hopefully) don't break under latest Q 2013-02-18 16:06:31 -05:00
Dan Stillman
0061ff3ca5 Merge branch '3.0'
Conflicts:
	chrome/content/zotero/preferences/preferences.xul
	chrome/content/zotero/xpcom/data/item.js
	chrome/content/zotero/xpcom/utilities_translate.js
2013-02-04 07:02:38 -05:00
Dan Stillman
13a2bb99e1 Tweak patch from 41de387 to keep file style consistent 2013-01-31 17:45:55 -05:00
Aurimas Vinckevicius
41de3876d8 Fall back to link attachments for opening item 2013-01-31 16:17:53 -06:00
Simon Kornblith
6de5cb4ab1 Merge branch '3.0'
Conflicts:
	chrome/content/zotero/recognizePDF.js
	chrome/content/zotero/zoteroPane.js
2013-01-31 01:51:54 -05:00
Dan Stillman
56bb5b17ad Better MIME type detection of Office files
For at least one Windows user, a .docx file was being interpreted as
text/plain. Instead of relying entirely on the system, hard-code some
extensions we know. (More can be added.)

Also:

- Determine MIME type when opening files instead of using stored type,
  since we might have gotten smarter
2013-01-28 22:44:02 -05:00
Simon Kornblith
39e8b226cb Revert "Don't refresh item list upon tag selector actions unless the action changes the item list."
This reverts commit 7f732f56df.
2013-01-22 17:25:50 -05:00
Simon Kornblith
91c3374d6b Merge branch '3.0' and modify recognizePDF.js to use promises
Conflicts:
	chrome/content/zotero/recognizePDF.js
	install.rdf
	update.rdf
2013-01-21 01:04:05 -05:00
Dan Stillman
596c6da3ee Remove Commons code, which contains E4X
Some items pane code is still in place, since it's a decent example of
dynamic items pane loading.
2013-01-15 03:23:37 -05:00
Dan Stillman
7a8e06cac2 Context-menu item delete from library root didn't show a prompt 2013-01-05 16:35:33 -05:00
Dan Stillman
bb93f019dc File sync overhaul
- New promise-based architecture
- Library-specific file sync queues, allowing other libraries to
  continue if there's an error in one library
- Library-specific sync errors, with error icons next to each library
- Changed file uploading in on-demand download mode, which had been missing
- On-demand download progress indicator in middle pane
- More accurate progress indicator
- Various tweaks and bug fixes
- Various future tweaks and bug fixes
2012-12-11 15:16:40 -05:00
Dan Stillman
4caae896cf Merge branch '3.0'
Conflicts:
	chrome/content/zotero/xpcom/attachments.js
	chrome/content/zotero/xpcom/translation/translate_item.js
	install.rdf
	update.rdf
2012-11-23 01:49:32 -05:00
Dan Stillman
1208aea99b Fix double-click on attachments/notes when viewOnDoubleClick is false 2012-11-20 05:34:38 -05:00
Dan Stillman
61c36b0523 Add ZoteroPaneOpen command line argument to open Zotero automatically 2012-11-10 19:38:22 -05:00
Simon Kornblith
b3237ae5e5 Merge branch '3.0'
Conflicts:
	chrome/content/zotero/xpcom/http.js
	chrome/content/zotero/xpcom/translation/translate_firefox.js
2012-11-06 00:50:11 -05:00
Dan Stillman
dfd0a7ad83 Add option to skip tags when copying items between libraries 2012-11-02 05:45:26 -04:00
Dan Stillman
3a9483070e Merge branch '3.0'
Conflicts:
	chrome/content/zotero/tinymce/plugins/paste/editor_plugin.js
	chrome/content/zotero/xpcom/translation/translate_firefox.js
	chrome/content/zotero/zoteroPane.js
	install.rdf
	update.rdf
2012-11-01 22:14:08 -04:00
Dan Stillman
9d7cc849cd Fixes #151, Allow Tab and Shift-Tab into and out of notes 2012-11-01 03:32:07 -04:00
Dan Stillman
cdbb4c28f6 Closes #49, Open attachments with Return/Enter
Standard Firefox modifier keys also work
2012-11-01 01:53:31 -04:00
Dan Stillman
81bfb5c327 Keep New Collection button enabled on Trash if library is editable
Fixes #28
2012-10-31 05:22:58 -04:00
Simon Kornblith
ab4c2f247d Merge branch '3.0' 2012-08-05 19:44:57 -04:00
Dan Stillman
bacd25633b Fix error updating types menu after installation of NSF item type 2012-08-02 16:59:28 -04:00
Simon Kornblith
7f732f56df Don't refresh item list upon tag selector actions unless the action changes the item list.
This speeds up adding/deleting tags a little bit, but unfortunately updating the tag selector itself is still quite slow.
2012-07-22 15:55:40 -04:00
Dan Stillman
f1f4044018 Merge branch '3.0' 2012-06-10 21:50:14 -04:00
Dan Stillman
1a76318538 Just focus libraries pane on shortcut key
Closes #133
2012-05-25 14:24:08 -04:00
Dan Stillman
d456117ebe Merge branch '3.0' 2012-05-03 17:56:32 -04:00
gracile-fr
4ba9b6a4c0 Localization of strings previously hardcoded. All these strings are related to duplicate detection.
(cherry picked from commit d6ae1c544d)
2012-05-03 17:45:15 -04:00
gracile-fr
d6ae1c544d Localization of strings previously hardcoded. All these strings are related to duplicate detection. 2012-05-03 22:38:14 +02:00
Dan Stillman
5275dafbc9 Clear undo history when switching notes
This prevents notes from being overwritten with each other's contents.
This used to work right, but it was broken with the switch to rich-text
notes.
2012-04-17 15:42:15 -04:00
Dan Stillman
1c7ac1a9a0 Make "New Note" shortcut key context sensitive
- If a regular item is selected, use that as the parent.
- If a child item is selected, use its parent as the parent.
- Otherwise create a standalone note.
2012-04-16 04:22:42 -04:00
Simon Kornblith
a22da78f18 Merge branch '3.0' 2012-04-08 15:25:18 -04:00
Dan Stillman
68073b8b32 Properly rename attachments when filenames differ only in case
This might have been limited to case-insensitive filesystems.

Also fix renaming when the previous filename didn't include an
extension. Before, a file named "test" would be renamed from parent with
".test" as the extension.
2012-04-04 04:44:04 -04:00
Dan Stillman
b298e7acbd Fix brokenness (from 3.0 merge in 947be813) 2012-03-21 14:22:21 -04:00
Simon Kornblith
947be813ec Merge branch '3.0' 2012-03-20 02:16:43 -04:00
Dan Stillman
954c2f6de0 Fix for manual new item not going into collection
Broken by 0d34e34a (since 3.0.3)
2012-03-17 03:12:49 -04:00
gracile-fr
0430e7def5 Update chrome/content/zotero/zoteroPane.js 2012-03-13 20:21:07 +01:00
Dan Stillman
ba8bf4910f Some tweaks to auto/idle-syncing
- Don't run idle sync if manual sync is required or Zotero is locked
- Don't clear sync error icon when opening pane
- Better debug message on pane open for syncing not being enabled
2012-03-12 16:25:35 -04:00
Simon Kornblith
ea7094821a Don't block when calling fallbackLauncher 2012-03-11 19:37:45 -04:00
Dan Stillman
5e19020437 Auto-empty items from trash on idle rather than at pane open
Deleting is currently very slow (which will be fixed on master), which
can cause long delays when auto-emptying items older at pane open.
Instead, empty 10 items after 5 minutes of idle, and then another 10
every 5 seconds until there are no more items to empty or the user is back.
2012-03-11 18:54:46 -04:00
Simon Kornblith
b3f9f5102b Merge branch '3.0'
Conflicts:
	chrome/content/zotero/overlay.js
	chrome/content/zotero/xpcom/schema.js
2012-02-28 17:22:34 -05:00
Dan Stillman
0d34e34a3a Don't add 'Web Page" to new item menu by accident
And ignore it if it's there
2012-02-20 03:31:22 -05:00
Dan Stillman
17e9c466d0 Merge branch '3.0' 2012-02-17 04:26:58 -05:00
Simon Kornblith
645bbf92b8 More hacks for pdf.js 2012-02-15 02:43:08 -05:00
Simon Kornblith
ac5d833117 Remove antiquated code 2012-02-10 01:38:01 -05:00
Dan Stillman
3a4401a995 Merge branch '3.0'
Conflicts:
	chrome/content/zotero/xpcom/integration.js
	chrome/content/zotero/xpcom/storage/webdav.js
	chrome/content/zotero/xpcom/storage/zfs.js
	install.rdf
	update.rdf
2012-02-09 02:13:02 -05:00
Dan Stillman
84fe2728da Replace setAttribute("oncommand", ...) with addEventListener()
For AMO validator
2012-02-06 02:38:53 -05:00
Dan Stillman
8d96cf35bb Fix global assignment 2012-02-03 22:10:58 -05:00
Dan Stillman
f4804b66b5 Merge branch '3.0' 2012-01-27 00:24:50 -05:00
Dan Stillman
f272fc6861 Tweak read-only save error message 2012-01-20 17:51:00 -05:00
Dan Stillman
79b1fe30dc Workaround for broken file/URL launching in Standalone on Linux
Falls back to /usr/bin/xdg-open by default, configurable via
extensions.zotero.fallbackLauncher.unix (or .windows, though that
should be much rarer). Also used for file revealing.

If xdg-open fails, files launch via the external helper app dialog and
URLs just don't work.
2012-01-20 15:23:06 -05:00
Dan Stillman
6b58d3e2af Fix erroneously disabled "Empty Trash" (recent regression) 2012-01-19 02:40:46 -05:00
Dan Stillman
35efd798de Save real target URLs from Google search results
"Save Link as Zotero Item" previously saved Google's tracking page
instead of the real destination. This can be extended to other sites
if necessary.
2012-01-17 04:52:53 -05:00
Dan Stillman
7c4a69b9e1 Merge branch '3.0' 2012-01-17 01:16:47 -05:00
Dan Stillman
4966a55a1b Disable "New Saved Search" menu option in read-only libraries 2012-01-11 18:23:36 -05:00
Dan Stillman
d63d24c636 Show access error for translator save attempt to read-only library
Not sure how this works for connector saves
2012-01-11 18:12:21 -05:00
Dan Stillman
de696d32e8 Don't show access error removing Duplicates view from read-only library 2012-01-11 18:08:11 -05:00
Simon Kornblith
fb14976499 Merge branch '3.0' 2012-01-03 15:26:52 -05:00
Dan Stillman
4161341d2d Fix error switching options in download dialog before Z pane was opened 2011-12-30 12:44:19 -05:00
Dan Stillman
059460a5d2 Merge branch '3.0'
Conflicts:
	chrome/content/zotero/xpcom/storage/webdav.js
	chrome/content/zotero/zoteroPane.js
	chrome/skin/default/zotero/preferences.css
2011-12-17 16:25:58 -05:00
Dan Stillman
b4512ac91d Remove unused third parameter to ZoteroPane.loadURI() 2011-12-14 17:49:14 -05:00
Dan Stillman
f87bee9f7c Fix blank window/tab when file.launch() fails
Use nsIExternalProtocolService.loadUrl() as a fallback rather than window.loadURI()

If "Remember my choice for file links" is selected, there's currently
no way to change that in Standalone short of deleting mimeTypes.rdf.
2011-12-14 17:46:21 -05:00
Dan Stillman
758216638f On-demand download support
Can choose to download files "at sync time" or "as needed"

On-demand defaults to on, but remains off for existing users

To-do:

- Handling of local and remote file changes on on-demand download
  (currently if a file exists it isn't downloaded, which means a
  remotely modified file won't be redownloaded in on-demand mode)
- Additional control over file downloading and retention

Other changes:

- Overhauled entire file syncing architecture
- Replaced numAttachments column with Note and Attachment columns with
  dynamic icons to indicate status
- Double-clicking a parent with a missing best attachment and on-demand
  downloading off no longer loads the parent URL
- Bugs
2011-11-26 03:45:55 -05:00
Dan Stillman
d5e9ca11f3 Restore Locate button on missing files (since 10/15) 2011-11-16 17:55:18 -05:00
Dan Stillman
40ec344218 Fix a number of problems related to newlines in filenames
- Properly strip newlines and tabs in filenames (broken since May 2011)
- If view isn't editable, don't show Locate button, since the updated path couldn't be sent back up
- Fix access error if a synced file needs to be renamed to be valid but user doesn't have group editing access
- Don't allow newlines in item titles (e.g., via copy/paste)
2011-10-15 05:50:30 +00:00
Dan Stillman
8ad3b513a1 - Allow twisty clicks (in collections and items panes) to work in duplicates view
- Move collection selection down if a collection above is opened (since r9950)
2011-10-12 18:41:23 +00:00
Dan Stillman
8a5f12680d Use collectionTreeView's getSelectedLibraryID() in zoteroPane.js 2011-10-05 17:46:23 +00:00
Simon Kornblith
223bfe74db Disable toolbar buttons in collections that cannot be edited 2011-10-02 23:28:38 +00:00
Simon Kornblith
3364a533c5 Add "Restore to Library" context menu option 2011-10-02 15:50:54 +00:00
Simon Kornblith
0a33f1fde7 Fix saving to group libraries 2011-09-28 04:01:39 +00:00
Simon Kornblith
b1275032f5 Fix dragging links to Z standalone 2011-09-27 14:51:15 +00:00
Simon Kornblith
c45198c90b Fix for certain situations where Zotero pane display settings could be reset 2011-09-06 01:26:13 +00:00
Dan Stillman
09e934128f Add Trash to group libraries
Also:

- Update trash icon properly when adding items to trash or emptying trash
- (dev) Zotero.Items.getDeleted() and Zotero.Items.emptyTrash() parameter order changed
- (dev) Zotero.Items.getDeleted() now returns an empty array rather than FALSE on no results

Group trash does not yet auto-empty
2011-08-30 23:35:12 +00:00
Dan Stillman
2e5b87b9e7 Fix error when saving via browser context menu when Zotero pane/tab hasn't been opened 2011-08-28 22:15:39 +00:00
Simon Kornblith
1e90528937 Don't build item type menu twice 2011-08-25 21:24:51 +00:00
Simon Kornblith
2a968e7696 Don't throw if collectionsView not registered, and no need to pass false to removeObserver 2011-08-24 22:08:27 +00:00
Simon Kornblith
59cff2ad1a Fix timeline creation, and potentially other functionality 2011-08-16 02:37:16 +00:00
Simon Kornblith
748790bf46 Fix Create Item from Current Page context menu option in Firefox
- when the Zotero Pane has not yet been opened
	- when operating in connector mode
2011-08-13 04:51:40 +00:00
Simon Kornblith
c1057e2587 Remove uses of "Firefox" and fix version 2011-08-10 07:07:26 +00:00
Dan Stillman
2db050290d Clear tag selector when switching between views 2011-08-05 22:04:48 +00:00
Dan Stillman
ee01b2cbc3 Allow "Create Parent Item from Selected Item" for PDFs for multiple selection 2011-08-04 06:31:14 +00:00
Dan Stillman
c1af72fcd2 Allow "Create Parent Item from Selected Item" for PDFs, at least until failed metadata retrieval does something more helpful 2011-08-04 06:00:57 +00:00
Dan Stillman
455eb68c20 Persist open/close state of source list (libraries, collections, etc.) 2011-07-25 21:27:32 +00:00
Simon Kornblith
32399b35ed Hide "Remove Selected Item" when in My Library (previously was shown with no label, leading to a blank menu item with ~2px height) 2011-07-24 21:43:02 +00:00
Dan Stillman
56c7afc47e Duplicate detection:
- Adds a per-library "Duplicate Items" virtual search to the source list -- shows up by default for "My Library" but can be added to and removed from all libraries
- Current matching algorithm is very basic: finds exact title matches (after normalizing case/diacritics/punctuation/spacing) and DOI/ISBN matches (untested)
- In duplicates view, sets are selected automatically; in other views, duplicate items can be selected manually and the merge interface can be brought up with "Merge Items" in the context menu
- Can select a master item and individual fields to merge from other versions
- Word processor integration code will automatically find mapped replacements and update documents with new item keys

Possible future improvements:

- Improved detection algorithms
- UI tweaks
- Currently if any items differ, all available versions will be shown as master item options, even if only one item is different; probably the earliest equivalent item should be shown for each distinct version
- Caching of results for performance
- Confidence scale
- Creator version selection (currently the creators from the chosen master item are kept)
- Merging of matching child items
- Better sorting of duplicates if not clustered together by the selected sort column
- Relation path compression when merging items that are already mapped to previously removed duplicates

Other changes in this commit:

- Don't show Trash in word processor integration windows
- Consider items in trash to be missing in word processor documents
- Selection of special views (Trash, Unfiled, Duplicates) is now restored properly in new windows
- Disabled field transform context menu when item isn't editable
- Left/right arrow now expands/collapses all selected items instead of just the last-selected row
- Relation deletions are now synced
- The same items row is now reselected after item deletion
- (dev) Zotero.Item.getNotes(), Zotero.Item.getAttachments(), and Zotero.Item.getTags() now return empty arrays rather than FALSE if no matches -- tests on those return values in third-party code will need to be changed
- (dev) New function Zotero.Utilities.removeDiacritics(str, lowercaseOnly) -- could be used to generate ASCII BibTeX keys
- (dev) New 'tempTable' search condition can take a table to join against -- useful for implementing virtual source lists
- (dev) Significant UI code cleanup
- (dev) Moved all item pane content into itemPane.xul
- Probably various other things


Needless to say, this needs testing.
2011-07-22 21:24:38 +00:00
Simon Kornblith
ec6f894e1a Addresses #1805, Add "Create Item from Current Page" contextual menu item and/or browser button
Adds "Create New Item from Current Page" context menu option. We can add a toolbar button too if we can come up with an icon for it.
2011-07-12 01:38:17 +00:00
Simon Kornblith
4783051f4e - Properly handle multiple item selection in context/locate menu
- Don't show context menu options when >20 items selected
2011-07-11 22:19:10 +00:00
Simon Kornblith
e58a682107 Fix Zotero Commons bucket creation 2011-07-10 23:28:12 +00:00
Simon Kornblith
0a197f308e - Open https://www.zotero.org/start_standalone (which doesn't yet exist) in default browser on Standalone first start. This will provide a place to download connectors and create an account.
- Don't copy quickstart setting during prefs migration
- Register zotero-reloaded nsIObserver properly
2011-07-03 04:33:37 +00:00
Simon Kornblith
a8631f760a Change quickstart URL to https so that it doesn't display a security warning 2011-07-02 17:06:02 +00:00
Simon Kornblith
dd29d18b93 Open quickstart window on first run in Standalone 2011-07-02 16:52:34 +00:00
Simon Kornblith
56eed344f5 Fixes #1826, Quick Copy does not work in Standalone 2011-07-02 04:00:12 +00:00
Dan Stillman
b2dda2ec23 Replace all setTimeout(string, ms) calls with setTimeout(func, ms) for AMO 2011-06-20 20:02:14 +00:00
Dan Stillman
c10fe8606c Closes #1563, add ability to add links by URI and edit existing link attachment URIs
Thanks to ajlyon for the patch
2011-06-16 18:17:06 +00:00
Simon Kornblith
8268d1b01c Zotero Everywhere megacommit
- Implement connector for Firefox (should switch in/out of connector mode automatically when Standalone is launched or closed, although this has only been tested extensively on OS X)
- Share core translation code between Zotero and connectors

Still to be done:

- Run translators in non-Fx connectors (this works in theory, but it's not currently enabled for any translators)
- Show translation results in non-Fx connectors
- Ability to translate to server when Zotero Standalone is not running
2011-06-14 00:36:21 +00:00
Dan Stillman
09e22e1e5d - Revert async notifier change in r9341
- Better fix for excessive item saving activity
- Fix for erroneous switch to library after adding an item to a collection (since r9341)
2011-06-01 14:28:59 +00:00
Simon Kornblith
c7a44a6f37 Workaround for Firefox bar that was causing a white bar to appear on Win x64 when Firefox was started maximized 2011-06-01 09:10:33 +00:00
Dan Stillman
1e73421522 Closes #909, Have New Item drop-down display the most recently used item types 2011-06-01 04:22:45 +00:00
Simon Kornblith
fbead5600b refine toolbar behavior 2011-05-31 06:53:13 +00:00
Simon Kornblith
e96a185e8e Fix toolbar positioning on non-Mac 2011-05-31 06:46:28 +00:00
Simon Kornblith
1b1af48be0 add Help menu items and About dialog 2011-05-31 06:34:21 +00:00
Simon Kornblith
46c5014c28 - show appropriate error message when attempting to use quick copy on a non-reference
- eliminate use of window.loadURI
2011-05-31 04:13:46 +00:00
Simon Kornblith
bc354b1435 Fix "win.ZoteroPane.document is undefined" when Zotero is set to start in tab mode and the Zotero tab has not yet been selected (missed code in last commit) 2011-05-19 23:00:01 +00:00
Dan Stillman
51f8c11ea0 Switch client code license to Affero GPL version 3 2011-05-18 18:34:22 +00:00
Dan Stillman
f60f3aa930 - Show quicksearch drop-down in integration windows
- Remove dir="reverse" on quicksearch bar, which I don't think is still necessary
2011-04-26 17:43:00 +00:00
Dan Stillman
fdc6e1b6d3 Include tags and note content in "All Fields", and make that the default 2011-04-26 14:52:18 +00:00
Dan Stillman
3856885e6d Closes #1004, Add menu to quicksearch bar to change search modes
Initial version -- needs additional refinement

Not yet tested on Windows/Linux, and won't look right in Fx3.6
2011-04-25 15:27:49 +00:00
Dan Stillman
85235da6b3 - Set sync icon to spinning or not at pane/tab open
- Update file sync progress bar in tab
2011-03-30 12:17:30 +00:00
Dan Stillman
c51290641d Prevent auto-sync attempt when switching pane/tab mode shortly after pane/tab open if a sync is already running 2011-03-28 00:05:29 +00:00
Simon Kornblith
8616e7e193 make sure notes get saved when switching quickly to another item (I think this is only a problem if the new item is a note) 2011-03-26 22:39:24 +00:00
Simon Kornblith
5f9afeb623 unserialize persist before updating tag selector 2011-03-26 04:37:12 +00:00
Simon Kornblith
87bf3f21e4 preserve collection when switching between pane and tab 2011-03-25 03:38:42 +00:00
Simon Kornblith
7aea4fabf9 Debug code for library selection issues 2011-03-22 02:24:58 +00:00
Dan Stillman
e30e3065ba Add debug line for loadURI() fallback after failed file.launch() 2011-03-11 03:58:23 +00:00
Simon Kornblith
11fc88973c use ZoteroPane_Local to refer to local ZoteroPane, if there are multiple ZoteroPanes running in the
same window. this fixes tabbing behavior in the Zotero Tab, and likely also a bunch of issues we
haven't found yet.
2011-03-08 23:46:01 +00:00
Simon Kornblith
e312fc0bb6 - fix restoration selection when switching between tab and pane
- don't serialize persistent data from Zotero Pane on window close unless pane was showing
2011-03-08 23:14:19 +00:00
Simon Kornblith
942275a0ae - put view context menu options at top of context menu
- tweak locate menu items to appear under more appropriate circumstances
2011-03-01 22:40:56 +00:00
Simon Kornblith
57a38e19cb serialize data when tree is modified` 2011-02-22 18:43:05 +00:00
Simon Kornblith
4bfbaf5747 closes #1791, add locate options to context menu 2011-02-22 00:02:05 +00:00
Dan Stillman
2324992ac3 Don't do anything on double-click of Unfiled Items 2011-02-14 07:44:22 +00:00
Dan Stillman
1e60f8947a Closes #745, Add Unfiled search condition
Adds "Show Unfiled Items" context menu to libraries, which adds a virtual saved search for unfiled items. Right-click, Remove to hide. Per-library visibility is saved in prefs and persists across restarts.

Implemented as 'unfiled' search condition, but not accessible via search UI

Should probably use a different color icon to differentiate from real saved searches
2011-02-14 03:59:32 +00:00
Dan Stillman
eb5711c87c Fix some deprecated calls 2011-02-13 18:46:34 +00:00
Simon Kornblith
39cd0264cd run another resize operation on a timeout to fix standalone issues 2011-02-13 03:56:33 +00:00
Simon Kornblith
fd9e25fa29 - Put all Zotero buttons in one contiguous toolbar. This seems to be the only way to get a unified window on OS X. It also means that if the window is too small, the search box pushes over the metadata pane buttons, instead of getting truncated.
- Firefox 3.6 fixes
2011-02-13 03:51:24 +00:00
Simon Kornblith
9312300420 ignore active attribute on Firefox 3.6 in Zotero Tab 2011-02-13 02:35:57 +00:00
Simon Kornblith
6c7c8a66c0 - don't try to open non-native attachments using Fx
- don't try to get non-existent strings for non-existent buttons
2011-02-12 20:40:46 +00:00
Simon Kornblith
e5a4d4a1ee fix activated/deactivated appearance in Fx 4 2011-02-12 19:56:13 +00:00
Simon Kornblith
7448e2ac6a maintain selection across tab/pane switch 2011-02-11 22:39:13 +00:00
Simon Kornblith
47f57509e5 make column and position information persist between tab and overlay 2011-02-11 22:16:32 +00:00
Simon Kornblith
e30890711a - locate menu tweaks (needs more testing)
- add missing modifications for DB error when selecting tab in Fx 4
2011-02-11 08:07:20 +00:00
Simon Kornblith
7984bb195c better startup error handling 2011-02-10 01:53:15 +00:00
Simon Kornblith
c20863e8fa don't call non-existent onLoad function, take 2 2011-02-10 01:08:52 +00:00
Simon Kornblith
328769ca09 revert last commit 2011-02-10 01:07:52 +00:00
Simon Kornblith
c589cd11e7 don't try to call non-existent onLoad function 2011-02-10 01:06:28 +00:00
Simon Kornblith
1486132626 Add flexible locate menu, based on a (very heavily modified) copy of the pubget patch. Documentation is forthcoming. 2011-02-09 03:22:06 +00:00
Simon Kornblith
0578c01899 fix some cases where multiple Zotero tabs could be open 2011-02-03 20:22:56 +00:00
Simon Kornblith
9d50ee9317 closes #1750: Show determinate progress bars for import/export 2011-02-03 07:04:14 +00:00
Simon Kornblith
c722bbff56 ditch ZoteroPane.getActiveZoteroPane() and just make window.ZoteroPane refer to either tab or pane, depending on which is active 2011-02-03 05:00:08 +00:00
Simon Kornblith
ecf0f3397c Zotero as a tab. This may need to be backed out for 2.1 depending on the amount of trouble it generates. 2011-01-30 09:44:01 +00:00