Fixes #1077, Add tag to note dialog broken
The manual Add Tag popup isn't popping up for me when I drag a note to the tag selector. If you're still getting that, please open a new ticket.
This commit is contained in:
parent
b139882df1
commit
0fb1d5866f
|
@ -459,7 +459,7 @@
|
|||
<xul:popup id="tagsPopup" ignorekeys="true"
|
||||
onpopupshown="if (!document.commandDispatcher.focusedElement || document.commandDispatcher.focusedElement.tagName=='xul:label'){ /* DEBUG: it would be nice to make this work -- if (this.firstChild.count==0){ this.firstChild.new(); } */ this.setAttribute('showing', 'true'); }"
|
||||
onpopuphidden="if (!document.commandDispatcher.focusedElement || document.commandDispatcher.focusedElement.tagName=='xul:label'){ this.setAttribute('showing', 'false'); }">
|
||||
<xul:tagsbox id="tags" flex="1"/>
|
||||
<xul:tagsbox id="tags" flex="1" mode="edit"/>
|
||||
</xul:popup>
|
||||
</xul:popupset>
|
||||
</xul:vbox>
|
||||
|
|
|
@ -94,7 +94,13 @@
|
|||
</getter>
|
||||
</property>
|
||||
|
||||
|
||||
<constructor>
|
||||
<![CDATA[
|
||||
if (this.hasAttribute('mode')) {
|
||||
this.mode = this.getAttribute('mode');
|
||||
}
|
||||
]]>
|
||||
</constructor>
|
||||
|
||||
<method name="reload">
|
||||
<body>
|
||||
|
@ -114,7 +120,7 @@
|
|||
}
|
||||
this.updateCount(tags.length);
|
||||
|
||||
this.fixPopup();
|
||||
//this.fixPopup();
|
||||
|
||||
return tags.length;
|
||||
}
|
||||
|
@ -174,7 +180,7 @@
|
|||
if (tagID)
|
||||
{
|
||||
remove.setAttribute('ztabindex', -1);
|
||||
remove.setAttribute('onclick',"this.parentNode.parentNode.parentNode.parentNode.parentNode.remove('"+ tagID +"');");
|
||||
remove.setAttribute('onclick',"document.getBindingParent(this).remove('"+ tagID +"');");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -321,6 +327,7 @@
|
|||
this._tabDirection = 1;
|
||||
var lastTag = true;
|
||||
}
|
||||
|
||||
focused.blur();
|
||||
|
||||
// Return focus to items pane
|
||||
|
@ -355,8 +362,6 @@
|
|||
|
||||
case event.DOM_VK_TAB:
|
||||
this._tabDirection = event.shiftKey ? -1 : 1;
|
||||
// Blur the old manually -- not sure why this is necessary,
|
||||
// but it prevents an immediate blur() on the next tag
|
||||
focused.blur();
|
||||
return false;
|
||||
}
|
||||
|
@ -428,23 +433,21 @@
|
|||
}
|
||||
// New tag
|
||||
else {
|
||||
// If this is an existing automatic tag, it's going to be
|
||||
// deleted and the number of rows will stay the same,
|
||||
// so we have to compensate
|
||||
var existingTypes = Zotero.Tags.getTypes(value);
|
||||
if (existingTypes && existingTypes.indexOf(1) != -1) {
|
||||
var id = tagsbox.add(value);
|
||||
if (!id) {
|
||||
this._lastTabIndex--;
|
||||
}
|
||||
var id = tagsbox.add(value);
|
||||
}
|
||||
}
|
||||
|
||||
if (id) {
|
||||
elem = this.createValueElement(
|
||||
value,
|
||||
'tag',
|
||||
tabindex
|
||||
);
|
||||
|
||||
var box = textbox.parentNode;
|
||||
box.replaceChild(elem, textbox);
|
||||
}
|
||||
else {
|
||||
// Just remove the row
|
||||
|
@ -454,19 +457,11 @@
|
|||
var row = rows.removeChild(row);
|
||||
}
|
||||
catch (e) {}
|
||||
tagsbox.fixPopup();
|
||||
tagsbox.closePopup();
|
||||
|
||||
this._tabDirection = false;
|
||||
return;
|
||||
}
|
||||
|
||||
var focusMode = 'tags';
|
||||
var focusBox = tagsbox;
|
||||
|
||||
var box = textbox.parentNode;
|
||||
box.replaceChild(elem,textbox);
|
||||
|
||||
if (this._tabDirection) {
|
||||
this._focusNextField(focusBox, this._lastTabIndex, this._tabDirection == -1);
|
||||
}
|
||||
|
@ -560,6 +555,7 @@
|
|||
</method>
|
||||
|
||||
|
||||
<!-- No longer used -->
|
||||
<method name="fixPopup">
|
||||
<body>
|
||||
<![CDATA[
|
||||
|
|
|
@ -2571,9 +2571,8 @@ Zotero.Item.prototype.addTag = function(name, type) {
|
|||
if (type == 0 && existingTypes.indexOf(1) != -1) {
|
||||
this.removeTag(Zotero.Tags.getID(name, 1));
|
||||
}
|
||||
// If existing user and adding automatic, skip
|
||||
else if (type == 1 && existingTypes.indexOf(0) != -1) {
|
||||
Zotero.debug('Identical user tag already exists -- skipping automatic tag add');
|
||||
else {
|
||||
Zotero.debug('Identical tag already exists -- not adding tag');
|
||||
Zotero.DB.commitTransaction();
|
||||
return false;
|
||||
}
|
||||
|
@ -2588,15 +2587,14 @@ Zotero.Item.prototype.addTag = function(name, type) {
|
|||
}
|
||||
|
||||
try {
|
||||
var result = this.addTagByID(tagID);
|
||||
this.addTagByID(tagID);
|
||||
Zotero.DB.commitTransaction();
|
||||
return tagID;
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.DB.rollbackTransaction();
|
||||
throw (e);
|
||||
}
|
||||
|
||||
return result ? tagID : false;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -249,7 +249,7 @@ Zotero.Tag.prototype.save = function () {
|
|||
|
||||
Zotero.DB.query("UPDATE tags SET key=? WHERE tagID=?", [row.key, this.id]);
|
||||
|
||||
Zotero.Tags.unload([{ oldID: { name: row.name, type: row.type } }]);
|
||||
Zotero.Tags.unload(oldID);
|
||||
Zotero.Notifier.trigger('id-change', 'tag', oldID + '-' + this.id);
|
||||
|
||||
// update caches
|
||||
|
|
Loading…
Reference in New Issue
Block a user