mirror of
https://github.com/zotero/zotero.git
synced 2026-09-19 00:01:31 +00:00
Make pdf-reader read-only when item is in trash or read-only group
This commit is contained in:
parent
b8ad18e96d
commit
425daa3622
3 changed files with 25 additions and 3 deletions
|
|
@ -238,7 +238,10 @@ var ZoteroContextPane = new function () {
|
|||
var reader = Zotero.Reader.getByTabID(Zotero_Tabs.selectedID);
|
||||
if (reader) {
|
||||
var editor = _getActiveEditor();
|
||||
reader.enableAddToNote(!!editor);
|
||||
var libraryReadOnly = editor && editor.item && !_isLibraryEditable(editor.item.libraryID);
|
||||
var noteReadOnly = editor && editor.item
|
||||
&& (editor.item.deleted || editor.item.parentItem && editor.item.parentItem.deleted);
|
||||
reader.enableAddToNote(!!editor && !libraryReadOnly && !noteReadOnly);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@ class ReaderInstance {
|
|||
state,
|
||||
location,
|
||||
promptImport: false,
|
||||
readOnly: this._isReadOnly(),
|
||||
showItemPaneToggle: this._showItemPaneToggle,
|
||||
sidebarWidth: this._sidebarWidth,
|
||||
sidebarOpen: this._sidebarOpen,
|
||||
|
|
@ -254,6 +255,21 @@ class ReaderInstance {
|
|||
return null;
|
||||
}
|
||||
|
||||
_isReadOnly() {
|
||||
let item = Zotero.Items.get(this._itemID);
|
||||
if (item.deleted || item.parentItem && item.parentItem.deleted) {
|
||||
return true;
|
||||
}
|
||||
let { libraryID } = item;
|
||||
var type = Zotero.Libraries.get(libraryID).libraryType;
|
||||
if (type === 'group') {
|
||||
var groupID = Zotero.Groups.getGroupIDFromLibraryID(libraryID);
|
||||
var group = Zotero.Groups.get(groupID);
|
||||
return !group.editable;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
_dataURLtoBlob(dataurl) {
|
||||
let parts = dataurl.split(',');
|
||||
let mime = parts[0].match(/:(.*?);/)[1];
|
||||
|
|
@ -876,7 +892,10 @@ class Reader {
|
|||
// Ignore other notifications if the attachment no longer exists
|
||||
let item = Zotero.Items.get(reader._itemID);
|
||||
if (item) {
|
||||
if (event === 'delete') {
|
||||
if (event === 'trash' && (ids.includes(item.id) || ids.includes(item.parentItemID))) {
|
||||
reader.close();
|
||||
}
|
||||
else if (event === 'delete') {
|
||||
let disappearedIDs = reader.annotationItemIDs.filter(x => ids.includes(x));
|
||||
if (disappearedIDs.length) {
|
||||
let keys = disappearedIDs.map(id => extraData[id].key);
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit abf50dfce6450f3d1776da872934077be653fca7
|
||||
Subproject commit 65bb0ea542694d8a88a6c1aacb8488274ad96c03
|
||||
Loading…
Add table
Reference in a new issue