From 5816e586fe7e8bf265f5e1d5c6c9f7bac0fca52d Mon Sep 17 00:00:00 2001 From: aurimasv Date: Thu, 8 Mar 2012 02:34:38 -0600 Subject: [PATCH 1/3] Sort arrays before comparing them. Tag order does not matter and authors will not be sorted. --- chrome/content/zotero/tools/testTranslators/translatorTester.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/chrome/content/zotero/tools/testTranslators/translatorTester.js b/chrome/content/zotero/tools/testTranslators/translatorTester.js index c987bc120..29a7a0814 100644 --- a/chrome/content/zotero/tools/testTranslators/translatorTester.js +++ b/chrome/content/zotero/tools/testTranslators/translatorTester.js @@ -574,6 +574,8 @@ Zotero_TranslatorTester.prototype._compare = function(i, j) { var match = false; if (Object.prototype.toString.apply(i) === '[object Array]') { if (Object.prototype.toString.apply(j) === '[object Array]') { + i.sort(); + j.sort(); do { match = this._compare(i.pop(), j.pop()); } while (match && i.length && j.length); From 828d10a3967ccfaf5298137d86d26097a0601d6c Mon Sep 17 00:00:00 2001 From: aurimasv Date: Fri, 9 Mar 2012 20:00:21 -0600 Subject: [PATCH 2/3] Sort in _sanitizeItem instead of _compare --- .../zotero/tools/testTranslators/translatorTester.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/chrome/content/zotero/tools/testTranslators/translatorTester.js b/chrome/content/zotero/tools/testTranslators/translatorTester.js index 29a7a0814..ff0919873 100644 --- a/chrome/content/zotero/tools/testTranslators/translatorTester.js +++ b/chrome/content/zotero/tools/testTranslators/translatorTester.js @@ -220,7 +220,12 @@ Zotero_TranslatorTester._sanitizeItem = function(item, forSave) { const skipFields = ["note", "notes", "itemID", "attachments", "tags", "seeAlso", "itemType", "complete", "creators"]; for(var field in item) { - if(skipFields.indexOf(field) !== -1) continue; + if(skipFields.indexOf(field) !== -1) { + if(field == 'tags') { + item[field].sort(); + } + continue; + } if(!item[field] || !(fieldID = Zotero.ItemFields.getID(field))) { delete item[field]; @@ -574,8 +579,6 @@ Zotero_TranslatorTester.prototype._compare = function(i, j) { var match = false; if (Object.prototype.toString.apply(i) === '[object Array]') { if (Object.prototype.toString.apply(j) === '[object Array]') { - i.sort(); - j.sort(); do { match = this._compare(i.pop(), j.pop()); } while (match && i.length && j.length); From 67dac4ec0d3c8377ae527e5db971c8820a713769 Mon Sep 17 00:00:00 2001 From: aurimasv Date: Sat, 10 Mar 2012 03:07:45 -0600 Subject: [PATCH 3/3] Moved tag sorting to a later point. --- .../zotero/tools/testTranslators/translatorTester.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/chrome/content/zotero/tools/testTranslators/translatorTester.js b/chrome/content/zotero/tools/testTranslators/translatorTester.js index ff0919873..1a05d837b 100644 --- a/chrome/content/zotero/tools/testTranslators/translatorTester.js +++ b/chrome/content/zotero/tools/testTranslators/translatorTester.js @@ -221,9 +221,6 @@ Zotero_TranslatorTester._sanitizeItem = function(item, forSave) { "itemType", "complete", "creators"]; for(var field in item) { if(skipFields.indexOf(field) !== -1) { - if(field == 'tags') { - item[field].sort(); - } continue; } @@ -246,6 +243,9 @@ Zotero_TranslatorTester._sanitizeItem = function(item, forSave) { // remove fields to be ignored if("accessDate" in item) delete item.accessDate; + + //sort tags, if they're still there + if(item.tags) item.tags.sort(); return item; };