Make pdf-reader read-only when item is in trash or read-only group

This commit is contained in:
Martynas Bagdonas 2021-06-25 19:03:47 +03:00
parent b8ad18e96d
commit 425daa3622
3 changed files with 25 additions and 3 deletions

View file

@ -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);
}
}

View file

@ -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