Item box: Add DOI menu listeners once, disable when DOI is invalid (#3237)
Fixes #3221 Co-authored-by: Dan Stillman <dstillman@zotero.org>
This commit is contained in:
parent
02198b12fe
commit
8a7f3645bc
1 changed files with 22 additions and 6 deletions
|
@ -204,6 +204,21 @@
|
||||||
this._id('creator-transform-capitalize').addEventListener('command',
|
this._id('creator-transform-capitalize').addEventListener('command',
|
||||||
event => this.capitalizeCreatorName(event));
|
event => this.capitalizeCreatorName(event));
|
||||||
|
|
||||||
|
this._doiMenu.addEventListener('popupshowing', () => {
|
||||||
|
let disabled = !this._doiMenu.dataset.doi;
|
||||||
|
this._id('zotero-doi-menu-view-online').disabled = disabled;
|
||||||
|
this._id('zotero-doi-menu-copy').disabled = disabled;
|
||||||
|
});
|
||||||
|
|
||||||
|
this._id('zotero-doi-menu-view-online').addEventListener(
|
||||||
|
'command',
|
||||||
|
event => ZoteroPane_Local.loadURI(this._doiMenu.dataset.doi, event)
|
||||||
|
);
|
||||||
|
this._id('zotero-doi-menu-copy').addEventListener(
|
||||||
|
'command',
|
||||||
|
() => Zotero.Utilities.Internal.copyTextToClipboard(this._doiMenu.dataset.doi)
|
||||||
|
);
|
||||||
|
|
||||||
this._notifierID = Zotero.Notifier.registerObserver(this, ['item'], 'itemBox');
|
this._notifierID = Zotero.Notifier.registerObserver(this, ['item'], 'itemBox');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,6 +429,10 @@
|
||||||
return '(' + Zotero.getString('pane.item.defaultFullName') + ')';
|
return '(' + Zotero.getString('pane.item.defaultFullName') + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get _doiMenu() {
|
||||||
|
return this._id('zotero-doi-menu');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Methods
|
// Methods
|
||||||
|
@ -457,6 +476,8 @@
|
||||||
this.itemTypeMenu.parentNode.parentNode.style.display = 'none';
|
this.itemTypeMenu.parentNode.parentNode.style.display = 'none';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete this._doiMenu.dataset.doi;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Clear and rebuild metadata fields
|
// Clear and rebuild metadata fields
|
||||||
//
|
//
|
||||||
|
@ -593,12 +614,7 @@
|
||||||
th.classList.add("pointer");
|
th.classList.add("pointer");
|
||||||
th.addEventListener('click', event => ZoteroPane_Local.loadURI(doi, event));
|
th.addEventListener('click', event => ZoteroPane_Local.loadURI(doi, event));
|
||||||
th.setAttribute('title', Zotero.getString('pane.item.viewOnline.tooltip'));
|
th.setAttribute('title', Zotero.getString('pane.item.viewOnline.tooltip'));
|
||||||
|
this._doiMenu.dataset.doi = doi;
|
||||||
var openURLMenuItem = this._id('zotero-doi-menu-view-online');
|
|
||||||
openURLMenuItem.addEventListener('command', event => ZoteroPane_Local.loadURI(doi, event));
|
|
||||||
|
|
||||||
var copyMenuItem = this._id('zotero-doi-menu-copy');
|
|
||||||
copyMenuItem.addEventListener('command', () => Zotero.Utilities.Internal.copyTextToClipboard(doi));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (fieldName == 'abstractNote') {
|
else if (fieldName == 'abstractNote') {
|
||||||
|
|
Loading…
Add table
Reference in a new issue