Add Item by Identifier dialog fixes

- Revert to single-line mode after closing
- Don't add newline if Shift-Enter is pressed in an empty textbox
- Hide progress meter in multi-line mode until beginning search
This commit is contained in:
Dan Stillman 2019-04-28 23:24:56 -04:00
parent 96d6114c71
commit f5404bc7ee
3 changed files with 15 additions and 20 deletions

View file

@ -108,6 +108,13 @@ var Zotero_Lookup = new function () {
document.getElementById("zotero-lookup-panel").style.padding = "10px";
this.getActivePanel().getElementsByTagName('textbox')[0].focus();
// Resize arrow box to fit content
if (Zotero.isMac) {
let panel = document.getElementById("zotero-lookup-panel");
let box = panel.firstChild;
panel.sizeTo(box.scrollWidth, box.scrollHeight);
}
}
@ -121,6 +128,9 @@ var Zotero_Lookup = new function () {
document.getElementById("zotero-lookup-textbox").value = "";
document.getElementById("zotero-lookup-multiline-textbox").value = "";
Zotero_Lookup.toggleProgress(false);
// Revert to single-line when closing
this.toggleMultiline(false);
}
@ -145,7 +155,7 @@ var Zotero_Lookup = new function () {
event.stopImmediatePropagation();
} else if(!multiline) { //switch to multiline
var mlTextbox = Zotero_Lookup.toggleMultiline(true);
mlTextbox.value = mlTextbox.value + '\n';
mlTextbox.value = mlTextbox.value.trim() !== '' ? mlTextbox.value + '\n' : '';
}
} else if(keyCode == event.DOM_VK_ESCAPE) {
document.getElementById("zotero-lookup-panel").hidePopup();
@ -185,8 +195,6 @@ var Zotero_Lookup = new function () {
var source = on ? slTxtBox : mlTxtBox;
var dest = on ? mlTxtBox : slTxtBox;
if((mlPanel.collapsed && !on) || (!mlPanel.collapsed && on)) return dest;
//copy over the value
dest.value = source.value;
@ -194,13 +202,13 @@ var Zotero_Lookup = new function () {
mlPanel.setAttribute("collapsed", !on);
slPanel.setAttribute("collapsed", !!on);
// Resize arrow box to fit content
// Resize arrow box to fit content -- also done in onShowing()
if(Zotero.isMac) {
var panel = document.getElementById("zotero-lookup-panel");
var box = panel.firstChild;
panel.sizeTo(box.scrollWidth, box.scrollHeight);
}
dest.focus();
return dest;
}
@ -221,5 +229,6 @@ var Zotero_Lookup = new function () {
document.getElementById("zotero-lookup-multiline-textbox").disabled = !!on;
var p2 = document.getElementById("zotero-lookup-multiline-progress");
p2.mode = mode;
p2.hidden = !on;
}
}

View file

@ -1061,20 +1061,6 @@ var ZoteroPane = new function()
});
this.openLookupWindow = Zotero.Promise.coroutine(function* () {
if (Zotero.DB.inTransaction()) {
yield Zotero.DB.waitForTransaction();
}
if (!this.canEdit()) {
this.displayCannotEditLibraryMessage();
return;
}
window.openDialog('chrome://zotero/content/lookup.xul', 'zotero-lookup', 'chrome,modal');
});
this.openAdvancedSearchWindow = function () {
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);

View file

@ -128,7 +128,7 @@
<textbox id="zotero-lookup-multiline-textbox" onkeypress="return Zotero_Lookup.onKeyPress(event, this)" multiline="true" rows="5" wrap="off" flex="1"/>
<hbox align="start" id="zotero-lookup-buttons" class="zotero-button-clear-image">
<button label="&zotero.lookup.button.search;" align="start" oncommand="Zotero_Lookup.accept(document.getElementById('zotero-lookup-multiline-textbox'))"/>
<progressmeter id="zotero-lookup-multiline-progress" mode="determined" flex="1"/>
<progressmeter id="zotero-lookup-multiline-progress" mode="determined" flex="1" hidden="true"/>
</hbox>
</vbox>
</vbox>