Martynas Bagdonas
76e77d4422
Improve PDF import/export
2021-03-02 17:40:24 -05:00
Dan Stillman
e99f76b40c
Tab bar: Update styling on macOS
2021-03-02 17:40:24 -05:00
Dan Stillman
b5f7255da2
Tab bar: Close current tab with Cmd/Ctrl-w
...
And use keydown, not keypress, for moving between tabs
2021-03-02 17:40:24 -05:00
Dan Stillman
9afd509704
Tab bar: Rename _tabsBar.scss to _tabBar.scss
2021-03-02 17:40:23 -05:00
Dan Stillman
5b947a3896
Tab bar: Add comment for tab navigation in keypress handler
2021-03-02 17:39:39 -05:00
Dan Stillman
ead8c6bb45
Fix Everything search after annotations
...
And replace ancient 'annotation' search condition with
'annotationText'/'annotationComment'
2021-03-02 17:39:39 -05:00
Dan Stillman
3bd5a96560
Tab bar: Highlight current tab
2021-03-02 17:39:39 -05:00
Dan Stillman
2ca1618627
Tab bar: Change tab with Ctrl-Page-Up/Page-Down
2021-03-02 17:39:39 -05:00
Dan Stillman
a47d7e4d9c
Fix possible selection bug after closing tab
2021-03-02 17:39:39 -05:00
Martynas Bagdonas
a89f7e8ec7
Improve PDF reader
2021-03-02 17:39:39 -05:00
Dan Stillman
875e9f674f
Initial tab bar implementation
2021-03-02 17:39:37 -05:00
Dan Stillman
199619f40e
Remove .noteSchemaVersion
...
This leaves item.note in place, rather than reverting all the
`getNote()` → `.note` changes. We can consider which we want to keep.
2021-03-02 17:36:05 -05:00
Dan Stillman
602e4c1e1f
More annotation 'position' fixes
2021-03-02 17:36:05 -05:00
Dan Stillman
2536edb6ab
Fix annotation 'position' handling and update additional sortIndex tests
...
Item.position has to be a string. It still gets passed to/from the PDF
reader as an object.
2021-03-02 17:36:05 -05:00
Dan Stillman
151a14c0a8
Update test for shortened annotation sortIndex
2021-03-02 17:36:05 -05:00
Dan Stillman
a0fb7a8583
Ignore remote noteSchemaVersion: 0 for items with no local note
...
E.g., embedded attachment notes with no note don't have an itemNotes row
and don't output noteSchemaVersion in their JSON, but they shouldn't
trigger a conflict
2021-03-02 17:36:05 -05:00
Dan Stillman
b2aee30410
Fix fromJSON() not importing parentItem for annotations
2021-03-02 17:36:05 -05:00
Dan Stillman
7ea14aa34e
Add Zotero.Item::isStoredFileAttachment()
...
And replace most uses of isImportedAttachment(), which doesn't include
embedded-image attachments
There might not be much reason to keep isImportedAttachment() around.
2021-03-02 17:36:05 -05:00
Dan Stillman
bdec99f103
Update DB compatibility for annotations and noteSchemaVersion
2021-03-02 17:36:05 -05:00
Dan Stillman
b8eeb3abaa
Drop decimal places from annotation sortIndex
2021-03-02 17:36:05 -05:00
Dan Stillman
acc3a70083
Remove SQL sort by parentItemID in Zotero.Sync.Data.Local.getUnsynced()
...
Now handled by Zotero.DataObjects.sortByParent()
2021-03-02 17:36:05 -05:00
Dan Stillman
8f5662ee6a
Better error logging on sync engine upload failure
2021-03-02 17:36:05 -05:00
Dan Stillman
99b959285e
Send Zotero-Schema-Version header with API requests
...
Set to the current global schema version
2021-03-02 17:36:05 -05:00
Dan Stillman
e133aab530
Annotation support in Item::fromJSON()/toJSON()
...
And clean up embedded-image handling
2021-03-02 17:36:05 -05:00
Dan Stillman
3c6ae0e656
Throw on missing parentItemID in Attachments.importEmbeddedImage()
2021-03-02 17:36:05 -05:00
Dan Stillman
a94323fc15
Sort multiple levels of items when generating API JSON
...
Added Zotero.DataObjects.sortByParent() to sort child items immediately
after their parent items. Zotero.DataObjects.sortByLevel(), which is
used for collections, sorts each level together, but that's less
appropriate for items where, e.g., an embedded-image attachment should
immediately follow the note that depends on it.
2021-03-02 17:36:05 -05:00
Dan Stillman
f662b58331
Update tests after sortIndex length change
2021-03-02 17:36:05 -05:00
Dan Stillman
427a227370
Rename 'area' annotations to 'image' annotations
2021-03-02 17:36:05 -05:00
Martynas Bagdonas
05318b3021
Improve note editor and backups
2021-03-02 17:36:05 -05:00
Martynas Bagdonas
bce50e8e9c
Add old note backup and preview
2021-03-02 17:36:05 -05:00
Martynas Bagdonas
4d8a9ed753
Replace all note local URIs at the first sync time
2021-03-02 17:36:05 -05:00
Martynas Bagdonas
af57565acf
Reorganize and improve notes
2021-03-02 17:36:05 -05:00
Dan Stillman
078a18f7c0
Shorten sortIndex to 22 characters
2021-03-02 17:36:05 -05:00
Dan Stillman
63a416db40
Fix display of note titles on startup (regression from noteSchemaVersion)
2021-03-02 17:36:05 -05:00
Dan Stillman
4142f4b316
Replace occurrences of .getNote()
with .note
2021-03-02 17:36:05 -05:00
Dan Stillman
ebc53a2bbc
Add noteSchemaVersion, and replace item.getNote() with .note
...
```
var noteContents = item.note; // was item.getNote()
var schemaVersion = item.noteSchemaVersion;
item.setNote(contents) // default to Zotero.Notes.schemaVersion
item.setNote(contents, schemaVersion) - explicit version
```
2021-03-02 17:36:05 -05:00
Martynas Bagdonas
2543a695e8
Introduce PDF reader and note editor
2021-03-02 17:36:05 -05:00
Dan Stillman
c3ff6eb66e
Protocol handler extension to proxy PDF.js and PDFs
2021-03-02 17:36:05 -05:00
Dan Stillman
8e1a15f6d0
Restore zotero://attachment protocol handler for area annotation images
2021-03-02 17:36:05 -05:00
Dan Stillman
007bc315cc
Fix deprecation warning when using AsyncChannel in protocol handler
2021-03-02 17:36:05 -05:00
Dan Stillman
cbeb5881e9
Hide annotations from items list
2021-03-02 17:36:05 -05:00
Dan Stillman
1c366de546
Initial annotation support
2021-03-02 17:36:05 -05:00
Dan Stillman
92ba393488
Don't clear item type set in constructor when loading primary data
...
Generally, don't clear the change state for primaryData when calling
loadPrimaryData() on an item that doesn't exist. Specifically, this
fixes an issue where calling loadPrimaryData() on a nonexistent item
after setting a libraryID and key would also clear any item type set in
the constructor. The same would apply for props set in the
Collection/Search constructors.
2021-03-02 17:36:05 -05:00
Dan Stillman
8026f744c5
Remove old HTML snapshot annotation support
...
Any data trapped in these tables hasn't been accessible in many years.
2021-03-02 17:36:04 -05:00
Dan Stillman
b54d4e78b7
Save createdByUserID and lastModifiedByUserID for group items
2021-03-02 17:36:04 -05:00
Dan Stillman
bb0a1dab13
Don't normalize primary data values in Item.setField()
...
Just enforce proper data types
2021-03-02 17:36:04 -05:00
Dan Stillman
cca5dc0314
Don't send unnecessary format=json
in sync download requests
2021-03-02 17:36:04 -05:00
Dan Stillman
0941a14a65
Remove 'lastsync' assignment from Zotero.Collection constructor
2021-03-02 17:36:04 -05:00
Dan Stillman
b4522535e8
Add _hasFieldChanged()/_getChangedField/_getLatestField() to DataObject
...
Make it easier to use the new `_changedData` approach to object
modifications (currently used only for `tags` and `deleted`) where
changed data is stored in a separate object rather than in the primary
variables. _getLatestField() can be used to return either the new
unsaved value or the current saved value.
2021-03-02 17:36:04 -05:00
Dan Stillman
d086a7f846
Update version
2021-03-02 07:04:56 -05:00