Commit graph

4429 commits

Author SHA1 Message Date
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
Aurimas Vinckevicius
e530c3a001 Remove unnecessary newline in TranslatorTester log output 2014-12-29 05:28:44 -06:00
Aurimas Vinckevicius
08c3effe6e Allow meta redirects when running tests and account for new document 2014-12-29 05:28:01 -06:00
Aurimas Vinckevicius
8d7db5a63e Remove safeDebug 2014-12-27 01:43:33 -06:00
Aurimas Vinckevicius
20a50d1aaa Refactor Zotero.Utilities.varDump. Add handling for Error and XPCOM objects 2014-12-27 01:43:33 -06:00
Dan Stillman
0b3b296e28 Keep active item pane editing field open when window loses focus
Closes #153
2014-12-26 14:16:41 -05:00
Dan Stillman
3024162bfe Merge pull request #510 from mtd91429/linkURI
Link URI re: issue #486
2014-12-16 12:01:22 -05: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
Dan Stillman
950302d8ee Merge pull request #507 from f-mb/quick-search-for-civil-law-case
Allow QuickSearch to search for civil law cases
2014-12-15 19:43:58 -05:00
Aurimas Vinckevicius
bb53e7beb2 Fix regression from 0cd183613f
Was breaking connectors
2014-12-11 15:00:50 -06:00
Aurimas Vinckevicius
2f79cb221f Fix duplicate matching when ISBN is non-sensical
Re https://forums.zotero.org/discussion/43046/items-mistakenly-identified-as-duplicates/
2014-12-10 15:59:26 -06:00
Dan Stillman
ee389f106e Merge pull request #593 from rmzelle/update-csl-preview
Update cslpreview.xul
2014-12-10 14:30:02 -05:00
rmzelle
e2f1f354f3 Update Zotero Preview pane
* Remove splitter
* Add explanation of how Zotero Preview pane works
* Limit filtering to citation format
  Also add support for “citation-format” attribute of CSL 1.0
* Remove redundant warning
  (already happens on this.refresh)
* Use "items" instead of "references"
* Clean up HTML a little
* Fix some JSHint warnings
2014-12-10 07:42:05 -05:00
Dan Stillman
09638cbd2c Merge pull request #585 from aurimasv/nfc
Normalize all user and translator input to NFC
2014-12-09 19:21:04 -05:00
Dan Stillman
20dd8c89d8 Remove "CSL" column in Cite -> Styles preferences 2014-12-09 19:19:40 -05:00
Dan Stillman
3a058c68ed Use config URL for all repo requests, and move config to separate file 2014-12-09 18:53:53 -05:00
Dan Stillman
c28ef6f2d6 Use HTTPS for proxy auth check 2014-12-09 18:36:06 -05:00
Dan Stillman
2a27cd506d Remove DB_REBUILD config option
I don't think anyone has used this in many years.
2014-12-09 18:35:03 -05:00
Dan Stillman
4f7e5446e8 Remove unused block 2014-12-09 17:49:15 -05:00
Aurimas Vinckevicius
9ee67ca291 Disable ZSA ping from bookmarklet in non-IE browsers
This means that bookmarklet will only save to server.
2014-12-09 13:12:05 -06:00
Dan Stillman
e3d7101923 Update version 2014-12-02 00:26:41 -05:00
Dan Stillman
d894fdb1d4 Fix citation list generation via right-click and quick copy
Broken by 523724185

Not sure if cslEngine.opt.class is a safe way to get the class. @fbennett?
2014-12-01 17:12:07 -05:00
Dan Stillman
0fd0da2903 Fix "getItemAtRow(...) is undefined" error for some item modifications
Since 67c63a29
2014-12-01 16:51:11 -05:00
Simon Kornblith
01c80610b4 Maybe fix for Firefox 31
Still need to test more comprehensively
2014-12-01 03:17:03 -05:00
Simon Kornblith
0cd183613f Fix for Firefox 34
Passing sandboxes between translators became difficult. This change
loads all translators in the same sandbox, using the same ugly hack as
in the connectors to get us close enough to being able to load
translators into separate scopes for things to work.

Conflicts:
	chrome/content/zotero/xpcom/translation/translate.js
2014-12-01 02:48:53 -05:00
Dan Stillman
524a71cfe8 Fix sync error with missing base directory set
Fixes #376
2014-12-01 02:32:44 -05:00
Dan Stillman
43c03c6aca Update another version 2014-12-01 02:18:04 -05:00
Dan Stillman
d7d542a79c Update version, submodules, and repotime 2014-12-01 02:17:09 -05:00
Dan Stillman
67c63a2968 Remove child items from view when removing parent
https://forums.zotero.org/discussion/42218/
2014-11-28 16:37:40 -05:00
Dan Stillman
55068a0059 Use the whole firstCreator string in sortCreatorAsString mode
And in the default mode, use the whole string up through 'and' or 'et al.'
before falling back to full creator sorting, which could speed things up
slightly.
2014-11-26 20:12:07 -05:00
Aurimas Vinckevicius
bd87bd3f56 Normalize all user and translator input to NFC
This includes storing values into DB and performing searches. Note that export/display of existing data is not normalized. We can try to capture all access points to the database and normalize on output, but that seems like a lot of unnecessary normalization happening all the time. Would probably be best to just normalize existing data.
2014-11-23 13:55:01 -06:00
Aurimas Vinckevicius
ff28b24389 Don't use let inside translate.js. Breaks connectors 2014-11-20 08:42:27 -06:00
Aurimas Vinckevicius
325f0618d6 Resolve protocol-relative URLs outside of document context
by defaulting to HTTP
2014-11-20 06:55:22 -06:00
Dan Stillman
6e43942385 Fix UI issues with Cyrillic mime types, hopefully 2014-11-17 23:20:11 -05:00
Aurimas Vinckevicius
aca15c0d2d Fix deleting saved searches 2014-11-14 01:50:02 -06: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
828bcd9a11 Merge pull request #577 from fbennett/csl-once-on-drag
Instantate CSL processor once on drag, changing output mode on the fly
2014-11-13 17:15:55 -05:00
Dan Stillman
7ac1ba5242 Fix file sync error with Hola extension enabled
With Hola enabled, uploads were failing with NS_BASE_STREAM CLOSED -- it
seems to do something that causes the stream to be read more than once.
Adding REOPEN_ON_REWIND fixes this.
2014-11-12 20:09:39 -05:00
Simon Kornblith
9017aa69db Fix typo 2014-11-12 14:45:15 -05:00
Dan Stillman
cefab23888 Add tooltip to Zotero toolbar button 2014-11-10 18:06:17 -05:00
Frank Bennett
523724185c Instantate CSL processor once on drag, changing output mode on the fly 2014-11-09 06:46:37 +09:00
Dan Stillman
e4451d9002 Merge pull request #575 from aurimasv/async_db-av
Async DB tweaks (attempt 2)
2014-10-30 01:47:49 -04:00
Dan Stillman
efa8346d37 Create user library row in libraries table when initializing DB 2014-10-30 01:22:58 -04:00
Aurimas Vinckevicius
3f85ee73b3 Don't count on 0 being the user libraryID in Zotero.Libraries
Some other minor tweaks
2014-10-29 23:52:21 -05:00
Aurimas Vinckevicius
bc8a340c30 Virtualize data objects 2014-10-29 23:51:43 -05:00
Aurimas Vinckevicius
5ee40f6601 Add ZU.dom2text and Zotero.Utilities.Internal.getDOMDocument
* getDomDocument: returns a detached DOMDocument object
* dom2text (TODO): Currently just returns Node.textContent, but is intended to return Zotero-formatted string based on text formatting in the DOM and the Zotero.Item field that the text is meant for
2014-10-29 22:16:21 -05:00
Dan Stillman
5bfc1e4199 Fix comment - force-delete on Win/Linux is Shift, not Ctrl 2014-10-28 13:45:55 -04:00
Aurimas Vinckevicius
3b4c502ca9 [RecognizePDF] Attempt to search by ISBN even if we found a DOI
(but only if DOI search failed)
2014-10-24 14:18:26 -05:00
Aurimas Vinckevicius
15722e5022 Allow calling Zotero.Translate.*.translate without setting translator first.
This simply means that detection code will be run first.
Attempting this with Export translators will fail, because trying to detect a translator does not make sense in this case.
2014-10-24 14:18:26 -05:00
Dan Stillman
f635d82ea6 Merge pull request #553 from aurimasv/async_db_if_exists
To be safe, DROP things only IF EXISTS for database upgrade.
2014-10-23 19:38:35 -04:00
Aurimas Vinckevicius
20564dd13a To be safe, DROP INDEX only _IF EXISTS_ for database upgrade.
Triggered by DROP INDEX fulltextItems_version, which apparently doesn't always exist.
2014-10-23 13:18:00 -05:00
Aurimas Vinckevicius
151e95075a Allow dependent styles to override parent style locale
Re https://forums.zotero.org/discussion/36595/defaultlocale-of-dependent-doesnt-override-that-of-its-parent/
2014-10-23 13:00:36 -05:00
Dan Stillman
a737f2c2aa Treat 260-character paths as too long on Windows
I understood the path limit to mean >260, but a user is seeing the error
with a 260-character path [1], so let's try this.

[1] https://forums.zotero.org/discussion/41410
2014-10-21 13:03:52 -04:00
Dan Stillman
226928f1e9 Debugging for "types[i] is undefined" error 2014-10-21 00:45:48 -04:00
Dan Stillman
6c814e2fa2 Update version 2014-10-14 22:55:07 -04:00
Simon Kornblith
4984e87ade Reinstate __exposedProps__
This is ignored in Firefox 33, but seemingly still necessary in
Firefox 32
2014-10-14 22:44:04 -04:00
Dan Stillman
12619273b5 Update submodules and repotime 2014-10-14 03:26:15 -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
Simon Kornblith
1f41253256 Update citeproc-js to 1.0.543 2014-10-13 23:25:24 -04:00
Dan Stillman
94060e113f Remove debugging for download overlay issue 2014-10-10 19:23:52 -04:00
Dan Stillman
39b01b80e0 Additional debugging for download overlay issue 2014-10-10 19:18:09 -04:00
Simon Kornblith
d3a69be997 Fix translation under Firefox 33
Our strategy: put arguments into a property of the function, and then
get them out unwrapped. This avoids security checks on arguments passed
to the function.
2014-10-10 18:31:10 -04:00
Dan Stillman
fc0f541ad8 Additional debugging for saving from download overlay 2014-10-10 18:03:13 -04:00
Dan Stillman
8359db1426 Better debugging for saving from download overlay 2014-10-10 17:36:49 -04:00
Dan Stillman
9c9b8b835d Fix crash when dragging items to collections from advanced search window
(Dragging to the items list is still disabled.)
2014-10-10 16:01:09 -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
15d28014ed Fix creator type assignment in item box 2014-10-10 04:46:10 -04:00
Dan Stillman
7fa931425a Rename Zotero.Item.prototype.getCreatorsAPIData() to getCreatorsJSON
And add Zotero.Item.prototype.setCreators()
2014-10-10 04:46:09 -04:00
Dan Stillman
3c81067961 Use DB libraryID for check in Zotero.Libraries.getType()
Before, 'user' wouldn't be returned if the real libraryID was given for
the personal library.
2014-10-10 04:44:16 -04:00
Dan Stillman
7541106641 Update Bluebird to 2.3.5
Our modifications no longer include a custom yield handler to
automatically call all() on yielded arrays (which maintained Bluebird
1.x behavior). It's now necessary to call all() or similar explicitly.

Also fixed a few incorrect yields hidden by that behavior.
2014-10-09 14:21:10 -04:00
Dan Stillman
e34c0db060 Make 'https' the default in WebDAV prefs drop-down 2014-10-08 13:49:41 -04:00
Dan Stillman
eba296a45f Closes #554, Sync settings pane should point to new TOS 2014-10-08 13:11:30 -04:00
Dan Stillman
497939bb28 Fix "Open Account Settings" button in quota dialog in Standalone
(Untested, but this should work.)
2014-10-08 13:04:56 -04:00
Dan Stillman
71bd1a7f99 Fix state check errors (middle-pane restart messages) during syncing
The state check errors were caused by 4812ab6f, which was a fix for
"Q.async(...)(...) is undefined" errors caused by ad8b81f4c, which was a
fix for "too much recursion" errors related to Task.spawn() on Windows
with JIT enabled.
2014-10-05 12:03:50 -04:00
Dan Stillman
72bb8acfd1 Fix previous commit 2014-10-03 16:06:01 -04:00
Dan Stillman
0f2e24dc5c Log state check errors (and other logError calls) to debug output 2014-10-03 16:05:14 -04:00
Dan Stillman
27804bb47c Fix database backup on userdata upgrade
Also uncomment standard backup age tests
2014-09-30 23:15:34 -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
cb707a55c8 Fix breakage from 10ba5e31d 2014-09-20 16:34:36 -04:00
Dan Stillman
b0550273ae Update another version 2014-09-19 20:43:50 -04:00
Dan Stillman
f09871a1ee Convert additional for..in loops to for loops in getDisplayTitle() 2014-09-19 20:39:23 -04:00
Dan Stillman
10ba5e31d6 Fix error from letter items with more than 10 recipients
https://forums.zotero.org/discussion/40218/
2014-09-19 20:37:59 -04:00
Dan Stillman
ce6cba7974 Don't log stack trace for getString() failure unless unexpected 2014-09-19 15:52:53 -04:00
Dan Stillman
fd31e41e2f Add localization todos 2014-09-18 17:41:46 -04:00
Dan Stillman
57ec10dfd4 Remove unnecessary var 2014-09-18 17:35:25 -04:00
Dan Stillman
48955c8983 Check ext length explicitly in createShortened when checking path length 2014-09-18 17:34:10 -04:00
Dan Stillman
2a986c8635 Don't match extension in createShortened() for dot-files (.hidden) 2014-09-18 17:23:57 -04:00
Dan Stillman
5a8de7054c Ignore case when extracting extension in Zotero.File.createShortened() 2014-09-18 16:54:05 -04:00
Dan Stillman
f5b5617885 Improve long-filename handling during syncing
This will hopefully fix some remaining issues with long filenames during
syncing, particularly on Linux with encrypted filenames (which have a
filename length of 143).

(This may have reintroduced some edge case bugs, so it needs some
testing.)
2014-09-18 16:23:49 -04:00
Dan Stillman
4464e8ed9e Additional debugging for formatStringFromName error 2014-09-16 15:46:13 -04:00
Dan Stillman
61d7bd852b Debugging for strange Zotero.getString() error 2014-09-11 21:07:19 -04:00
Dan Stillman
c917d9e30e Use only keys for collections and saved searches in search conditions
Previously, 'collection' and 'savedSearch' conditions used
"[libraryID]_[key]" format. Now, the condition should contain only a
key, and the libraryID will be drawn from either the search itself or a
libraryID search condition. Old-style conditions are still parsed if
provided.
2014-09-09 02:50:56 -04:00
Dan Stillman
985a5db0da Throw error if NULL libraryID is passed to DataObjects.getByLibraryAndKey() 2014-09-09 02:31:17 -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
ff5007fdea Fix error fetching empty file via File.getContentsAsync() 2014-09-09 00:35:35 -04:00
Dan Stillman
490d24f43b Merge branch 'master' into async_db 2014-09-09 00:34:18 -04:00
Dan Stillman
3d7a35addc Merge branch '4.0'
Conflicts:
	chrome/content/zotero/xpcom/zotero.js
	install.rdf
	update.rdf
2014-09-08 20:24:44 -04:00
Simon Kornblith
55f86f4295 Fix error handling for saveItems 2014-09-05 00:28:34 -04:00
Dan Stillman
9cd7423dd7 Change cert error message URL to https:// 2014-09-02 23:28:20 -04:00
Simon Kornblith
431185cc3a Merge pull request #531 from aurimasv/high-contrast
Use Mozilla's colors for itembox and tagbox background
2014-09-01 23:30:35 -04:00
Simon Kornblith
57da88ac3d Fix == use 2014-09-01 23:19:12 -04:00
Simon Kornblith
9146fb03d9 Merge pull request #536 from adam3smith/coinsfix
test for presence of author's firstName before using it
2014-09-01 23:18:39 -04:00
adam3smith
17c0f44e66 fix indenting 2014-09-01 19:25:10 -05:00
Simon Kornblith
9c3ec6f0be Fix DataCite under Fx 32 2014-09-01 20:00:31 -04:00
Simon Kornblith
79ed7e503e Fix MODS under Fx 32 2014-09-01 19:29:45 -04:00
Simon Kornblith
a09ff9c9ec Don't unwrap objects passed to chrome
Unwrapping objects also waives the Xray wrappers for contained objects,
which we need.
2014-09-01 18:42:24 -04:00
adam3smith
f973897d76 test for presence of author's firstName before using it 2014-09-01 14:31:51 -05:00
Simon Kornblith
5857368131 Update citeproc-js to 1.0.539 2014-09-01 15:04:52 -04:00
Dan Stillman
14a5643f38 Update submodules, repotime, versions 2014-09-01 14:56:01 -04:00
Simon Kornblith
ee35f7df41 Small fix to copyObject 2014-09-01 12:26:36 -04:00
Aurimas Vinckevicius
dc5ccffe43 Use Mozilla's colors for itembox and tagbox background
This way, the colors play nicely with Windows themes (e.g. high contrast)
Re https://forums.zotero.org/discussion/38870/make-zotero-fully-recognize-windowsff-high-contrast-themes/ and https://twitter.com/stuffilike2know/status/504167872567189504
2014-08-26 03:11:24 -05:00
Dan Stillman
9db4927f78 Scroll to new collections, and stay on same row when deleting collections 2014-08-12 22:19:59 -04:00
Dan Stillman
6dbcdb95f4 Fix variable name 2014-08-12 22:16:53 -04:00
Dan Stillman
38531ab172 Fix "Copy as HTML" checkbox disabling in Quick Copy site editor window 2014-08-12 21:49:38 -04:00
Dan Stillman
c729dc8a54 Fixes #522, [Async DB] Quick Copy is broken
Export depends on #520 (but still with a synchronous interface, somehow)
2014-08-12 21:49:30 -04:00
Dan Stillman
a67521e9dd Closes #500, Remove DOM_VK_ENTER 2014-08-12 19:18:29 -04:00
Dan Stillman
df67de125e Remove (non-async-compatible) REGEXP UDF in Zotero.DB.getNextName()
And remove UDF setup code

Duplicates view also used REGEXP, so we'll need to figure out another approach
for the async rewrite of that (#519). There are no other current UDF consumers,
so this closes #528.
2014-08-12 03:13:00 -04:00
Dan Stillman
2856b71f0b Remove some remaining synchronous queries in data objects
Fixes collection and search saving
2014-08-12 03:11:49 -04:00
Dan Stillman
78a8e6b622 Fix breakage from 278e06e58 - Zotero.DataObject signature changed 2014-08-12 02:09:45 -04:00
Aurimas Vinckevicius
278e06e588 Document Zotero.DataObject. Minor tweaks. 2014-08-12 00:26:27 -05:00
Aurimas Vinckevicius
dcd65d087c Add object key/ID validation. Centralize key generation/checking. 2014-08-12 00:26:26 -05:00
Aurimas Vinckevicius
e1f59482c4 Add Zotero.Utilities.defineProperty convenience method
Use this to create enumerable properties in object prototypes.
2014-08-12 00:24:02 -05:00
Aurimas Vinckevicius
c5a532c789 Add option to print stack with debug messages 2014-08-12 00:24:01 -05:00
Dan Stillman
15d10d18a7 Use async DB queries for schema integrity check
Addresses #521
2014-08-11 02:23:00 -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
f358975153 Closes #526, Asyncify database backup
When a database backup is in progress, all other DB operations are paused until
it's done.
2014-08-10 20:21:40 -04:00
Dan Stillman
f1ed5f1f03 Remove obsolete file (Zotero.Tag no longer exists) 2014-08-10 15:00:08 -04:00
Dan Stillman
9441627e74 Allow StopIteration in queryAsync() to cancel query
And catch other errors and throw StopIteration so that they stop the
search. (Non-StopIteration errors in onRow don't stop Sqlite.jsm
queries. We were logging them but then re-throwing them, which didn't do
anything.)
2014-08-10 14:15:46 -04:00
Dan Stillman
31502de08f Zotero.DB updates
- Fix ES5 generator in executeFile()
- Remove deferred in executeAsyncStatement()
- Remove obsolete properties and wait level check
2014-08-10 02:10:03 -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
86bc20c4e9 Remove unnecessary conditionals in Zotero.DataObject constructor 2014-08-08 17:44:19 -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
e33dc815a0 Log the error for file launch() failure, in case it's relevant 2014-08-07 18:29:32 -04:00
Dan Stillman
cb6fae694c Fix attachment file mtime in right pane 2014-08-07 16:03:17 -04:00
Dan Stillman
ab36dda6e7 Restore loading of renamed styles
Didn't end up on this branch somehow
2014-08-07 15:01:59 -04:00
Dan Stillman
1ca2100cf0 Add timing to tag selector 2014-08-07 15:01:32 -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
368e568fe1 Don't load saved search list for every collection row 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
b20a2e153b Fix Services.wm call 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
fe83d4db72 Document options.headers property for Zotero.HTTP.promise() 2014-08-06 22:14:58 -04:00
Dan Stillman
16e4aa0516 Remove Zotero.join() 2014-08-06 22:14:58 -04:00
Dan Stillman
3a7042e527 Zotero.Utilities.forEachChunk(arr, chunkSize, func)
Run a function on chunks of a given size of an array's elements and
return an array with the return values from the successive runs.
2014-08-06 22:14:58 -04:00
Dan Stillman
feb47caa6b Merge branch '4.0'
Conflicts:
	chrome/content/zotero/xpcom/translation/translate.js
2014-08-06 22:13:05 -04:00
Aurimas Vinckevicius
0998b15fac Improved cookie handling when translating from connectors
* Accept detailed cookie information (including host, path, secureOnly, and hostOnly) from connectors so we can send correct cookies when fetching pages from different hosts. This way we also don't have to worry about exposing cookies to different hosts.
* Don't drop cookies that we receive from other hosts. Some pages (e.g. PDF URLs) result in redirects to other hosts (and even domains) that then set cookies, which are required to retrieve the PDF. (e.g. Cell Press stores PDFs on ScienceDirect, but their PDF links initially point to cell.com).
* Send detailed cookies where possible. Currently that's only for Chrome/Opera and Firefox in Connector mode. Does not seem to be possible in Safari.
2014-07-28 15:39:07 -05:00
Simon Kornblith
9219100901 Another Fx 32 translation fix 2014-07-23 18:05:56 -04:00
Aurimas Vinckevicius
638d29972c Don't ignore initial punctuation when sorting
Also, change sorting sensitivity to "base"
Closes #514
2014-07-23 00:18:48 -05:00
Dan Stillman
15108eea3f Fix intermittent source file deletion when dragging files in on Windows
(at least, if this is caused by what I think it was caused by)

https://forums.zotero.org/discussion/38486/
2014-07-20 15:56:55 -04:00
Dan Stillman
3b5bd45433 Further Windows drag-and-drop comment rewriting 2014-07-20 13:16:56 -04:00
Dan Stillman
717a440156 Clarify comment for Windows drag-and-drop mess 2014-07-20 02:50:00 -04:00
Dan Stillman
b8f69d6281 Fix Quick Copy drag to Chrome textareas on Windows
Possibly to other places as well (but not Notepad, which doesn't work
from Firefox or Chrome either)

Unfortunately this requires going back to 'copy' cursor feedback when
dragging, even when Shift is used. We can only choose one on Windows (as
far as I can tell), and we were previously using the unadorned 'move'.
2014-07-20 02:16:25 -04:00
Dan Stillman
7d74344b7d Restore highlighting of collection row during drag on Windows 2014-07-20 02:16:20 -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
813f55d024 Natural sorting of numbers ("1" < "2" < "10")
This needs testing to see if it has any other unwanted effects.

Closes Trac ticket 1031
2014-07-08 09:47:03 -04:00
Simon Kornblith
87a0df43d8 Fix some more Fx 32 issues
Ref https://forums.zotero.org/discussion/37885/
2014-07-06 14:07:00 -04:00
Simon Kornblith
d9720f18a9 Update to citeproc-js 1.0.536 2014-07-06 08:50:13 -04:00
Dan Stillman
532ebc5239 Fix for startup error w/weird locale language tags ("de-CH@currency=EUR")
https://forums.zotero.org/discussion/37901

And just return a noop sorter on failure instead of breaking
2014-06-27 09:36:11 -04:00
Dan Stillman
4a677240d3 Don't use Intl until Fx30, since it's missing in Iceweasel 29
And nsICollation isn't broken on OS X until 30
2014-06-27 01:12:25 -04:00
Dan Stillman
d66a6f6680 Ignore punctuation when sorting
This sorts "St. A" before "St B". I don't know if we want this.
2014-06-25 12:24:31 -04:00
Dan Stillman
979e62714c Fix startup errors in some non-English locales in Fx30 on OS X
nsICollation broke for some locales. (Testing requires changing the
language setting in Language & Region and then restarting the computer.
The change seems to not fully go into effect until then, even though the
UI changes.) This is fixed in Nightly, but we can work around it by
using the new Intl.Collator.
2014-06-25 12:22:04 -04:00
Florian Martin-Bariteau
dbe7640f18 Allow QuickSearch to search for civil law cases 2014-06-24 22:55:56 -04:00
Dan Stillman
be49010783 Use 11 instead of 6 on invalid note font size
Also don't validate font size until after pref field is blurred, to allow
numbers to be typed in properly
2014-06-23 23:36:36 -04:00
Simon Kornblith
bcc7a4ae86 Missing word in comment from 8cb081a4e1 2014-06-23 22:56:08 -04:00
Simon Kornblith
8cb081a4e1 Disable argument unwrapping on Fx < 32
This apparently breaks on Fx 24
2014-06-23 22:55:02 -04:00
Simon Kornblith
dd5160cc73 Partially revert 76e8ea835f
Apparently this doesn't work on Firefox 24. Sigh.
2014-06-23 22:29:32 -04:00
Dan Stillman
f45b219792 Fix inline collection editing when clicking to another collection
https://forums.zotero.org/discussion/37739
2014-06-21 13:37:55 -04:00
Simon Kornblith
41e50ef669 Fix check from fc91deb69e 2014-06-21 13:27:49 -04:00
Simon Kornblith
fc91deb69e Fix more Firefox 32 issues 2014-06-21 13:25:33 -04:00
Simon Kornblith
76e8ea835f Slightly cleaner fix for #504 2014-06-21 13:16:39 -04:00
Simon Kornblith
a71f3bbdd8 Fix #504
Determine whether to copy objects by their constructor names, since the
prototypes do not necessarily match
2014-06-21 12:51:41 -04:00
Dan Stillman
4812ab6f93 Fixes (cosmetic) "Q.async(...)(...) is undefined" sync error
Yield immediately so that a generator is always passed to Q.async()
2014-06-20 03:47:04 -04:00
Dan Stillman
09e53d85d5 Revert "Revert "Use Q instead of Task.spawn to run processUpdatedXML()""
This reverts commit 4334260865.
2014-06-20 03:47:01 -04:00
Dan Stillman
4334260865 Revert "Use Q instead of Task.spawn to run processUpdatedXML()"
Fixes "Q.async(...)(...) is undefined" sync error

This reverts commit ad8b81f4c7 (which
tried to fix Fx32+ compatibility).
2014-06-20 03:17:03 -04:00
Simon Kornblith
3a8c77e983 Fix search translation bug from 7950d3a7e2 2014-06-19 21:31:17 -04:00
Simon Kornblith
37f4e61ef2 Remove debug line 2014-06-19 20:11:46 -04:00
Simon Kornblith
7950d3a7e2 Attempt to fix #502, translation broken on Firefox 32 2014-06-19 20:07:31 -04:00
Simon Kornblith
f6dfeee210 Remove more uses of charsetDTD 2014-06-19 19:03:58 -04:00
Simon Kornblith
014c7b5b46 Fix tab mode in Aurora
Ref https://forums.zotero.org/discussion/37608/
2014-06-19 19:02:52 -04:00
Dan Stillman
75bdf08131 Fix event handling (e.g., Undo) in notes in Fx32
Addresses #503
2014-06-19 17:54:21 -04:00
Dan Stillman
c32144ddfd Fixes #503, Notes broken on Firefox 32
Unwrap the editor object if it's wrapped
2014-06-19 17:47:56 -04:00
Simon Kornblith
954f8bd001 Fix #496, Remove uses of nsICharsetConverterManager
We should confirm that the manually added charsets still work on
Firefox 32 once we #502
2014-06-19 17:31:27 -04:00
Simon Kornblith
e576416831 Remove old isFxN constants 2014-06-19 16:36:37 -04:00
Dan Stillman
b441e2cf9e Update submodules and repotime 2014-06-18 21:12:25 -04:00
Dan Stillman
ad8b81f4c7 Use Q instead of Task.spawn to run processUpdatedXML()
With Task.spawn, regular expressions in Zotero.DB were causing "too much
recursion" errors on Windows with JIT enabled.

This requires a change to Q to allow async() to take a generator instead
of a generator-maker (which is the reason it was using Task.spawn to
begin with).
2014-06-18 05:03:06 -04:00
Dan Stillman
fad6174e39 Fix download retrying
Follow-up from 238a972a
2014-06-10 03:50:41 -04:00
Dan Stillman
238a972ace Retry failed ZFS uploads and downloads automatically
S3 upload timeouts were retried already with an exponential backoff, but
this adds retrying for other kinds of upload failures as well as failed
downloads.  If 5 consecutive failures occur a file sync error is
thrown.

Failed file sync requests to the Zotero API are not currently retried,
but S3 accounts for the majority.

The download portion of this still needs further testing.
2014-06-09 06:47:07 -04:00
Dan Stillman
1b6dc5d681 Restore minimize/maximize buttons in note windows on Windows
From db6ec2b160
2014-06-05 00:54:22 -04:00
Simon Kornblith
7b7b4e6e9e Merge pull request #495 from aurimasv/Fx-connector
Fix race condition when starting in Connector mode
2014-06-04 17:02:28 +02:00
Aurimas Vinckevicius
e4dd38fc84 Fix race condition when starting in Connector mode
When starting in Connector mode (i.e. Standalone is open), Zotero first starts in Full mode, looks for Standalone, then "shuts down" and restarts in Connector mode. `Zotero.shutdown()` returns a promise which is then followed up by a `Zotero.init` call. Thus, when starting in Connector mode, Zotero initialization is asynchronous and makes it possible for `Zotero_Browser.init()` to be called before `Zotero.initialized` is true, which prevents `Zotero_Browser` from initializing. Additionally, even if `Zotero_Browser.init()` is called after Zotero is initialized in Connector mode, it is possible that `Zotero_Browser.init()` will be called _after_ the "load" event for browser.xul has already fired, so `chromeLoad` is never called. This patch ensures that both of these race conditions are taken into account.
2014-06-04 03:16:29 -05:00
Aurimas Vinckevicius
59fe54da01 Release server port when shutting down (e.g. switching to Connector mode) 2014-06-04 03:14:01 -05:00
Dan Stillman
a59f3c50ed Hack to fix "Numéro" search condition in French locale
https://forums.zotero.org/discussion/14942/
2014-06-03 14:17:54 -04:00
Dan Stillman
cbdc75df9a Fix search condition handling when two conditions have same translation
This prevented one "Numéro" from working in the French locale.

Also do a proper collation sort
2014-06-03 14:17:54 -04:00
Aurimas Vinckevicius
85c5c614ea Fix CSL-JSON date import 2014-06-02 17:25:16 -05:00
Dan Stillman
ba89dbf0ae Link translator errors to troubleshooting page instead of known issues 2014-06-02 17:00:57 -04:00
Dan Stillman
c0d6648b9e Allow inline editing of collection names
Can be triggered by double-clicking or Return and also by F2 on
Windows/Linux

This does mean double-clicking no longer toggles the collection open and
closed. If we wanted to preserve that we could probably capture the
double-click.

Closes Trac ticket 231, only 8 years later
2014-05-31 14:24:52 -04:00
Dan Stillman
326d2bc1e3 Enforce minimum note font size of 6px
https://forums.zotero.org/discussion/37147/
2014-05-31 01:42:31 -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