- Run long tag fixer on first sync error, and then check locally for tags > 255 characters to avoid repeated sync attempts
- Don't run long tag fixer on background sync
This commit is contained in:
parent
93703c68d1
commit
2eb5416620
2 changed files with 30 additions and 23 deletions
|
@ -1,6 +1,6 @@
|
|||
var Zotero_Long_Tag_Fixer = new function () {
|
||||
var _oldTag = window.arguments[0];
|
||||
var _callback = window.arguments[1];
|
||||
var _dataOut = window.arguments[1];
|
||||
|
||||
this.init = function () {
|
||||
document.getElementById('zotero-old-tag').value = _oldTag;
|
||||
|
@ -103,9 +103,7 @@ var Zotero_Long_Tag_Fixer = new function () {
|
|||
|
||||
|
||||
this.cancel = function () {
|
||||
if (_callback) {
|
||||
_callback(false);
|
||||
}
|
||||
_dataOut.result = false;
|
||||
}
|
||||
|
||||
|
||||
|
@ -172,9 +170,7 @@ var Zotero_Long_Tag_Fixer = new function () {
|
|||
break;
|
||||
}
|
||||
|
||||
if (_callback) {
|
||||
_callback(true);
|
||||
}
|
||||
_dataOut.result = true;
|
||||
|
||||
}
|
||||
catch (e) {
|
||||
|
|
|
@ -1480,23 +1480,34 @@ Zotero.Sync.Server = new function () {
|
|||
break;
|
||||
|
||||
case 'TAG_TOO_LONG':
|
||||
var tag = xmlhttp.responseXML.firstChild.getElementsByTagName('tag');
|
||||
if (tag.length) {
|
||||
Zotero.DB.rollbackAllTransactions();
|
||||
|
||||
var tag = tag[0].firstChild.nodeValue;
|
||||
setTimeout(function () {
|
||||
var callback = function (success) {
|
||||
if (success) {
|
||||
Zotero.Sync.Runner.sync();
|
||||
}
|
||||
};
|
||||
if (!Zotero.Sync.Runner.background) {
|
||||
var tag = xmlhttp.responseXML.firstChild.getElementsByTagName('tag');
|
||||
if (tag.length) {
|
||||
Zotero.DB.rollbackAllTransactions();
|
||||
|
||||
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
|
||||
.getService(Components.interfaces.nsIWindowMediator);
|
||||
var lastWin = wm.getMostRecentWindow("navigator:browser");
|
||||
lastWin.openDialog('chrome://zotero/content/longTagFixer.xul', '', 'chrome,modal,centerscreen', tag, callback);
|
||||
}, 1);
|
||||
var tag = tag[0].firstChild.nodeValue;
|
||||
setTimeout(function () {
|
||||
var callback = function () {
|
||||
var sql = "SELECT DISTINCT name FROM itemTags NATURAL JOIN tags WHERE LENGTH(name)>255 LIMIT 1";
|
||||
var tag = Zotero.DB.valueQuery(sql);
|
||||
if (tag) {
|
||||
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
|
||||
.getService(Components.interfaces.nsIWindowMediator);
|
||||
var lastWin = wm.getMostRecentWindow("navigator:browser");
|
||||
var dataOut = { result: null };
|
||||
lastWin.openDialog('chrome://zotero/content/longTagFixer.xul', '', 'chrome,modal,centerscreen', tag, dataOut);
|
||||
if (dataOut.result) {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
else {
|
||||
Zotero.Sync.Runner.sync();
|
||||
}
|
||||
};
|
||||
|
||||
callback();
|
||||
}, 1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue