Closes #896, Legacy array/generator comprehension is removed in Firefox 46
Possible there are some bugs here (and it also may fix a couple existing bugs).
This commit is contained in:
parent
9fb42b6788
commit
7d404e8d4a
23 changed files with 86 additions and 55 deletions
|
@ -1729,7 +1729,7 @@
|
||||||
this._addCreatorRow = false;
|
this._addCreatorRow = false;
|
||||||
|
|
||||||
//Filter out bad names
|
//Filter out bad names
|
||||||
var nameArray = [tempName for each(tempName in rawNameArray) if(tempName)];
|
var nameArray = rawNameArray.filter(name => name);
|
||||||
|
|
||||||
//If not adding names at the end of the creator list, make new creator
|
//If not adding names at the end of the creator list, make new creator
|
||||||
//entries and then shift down existing creators.
|
//entries and then shift down existing creators.
|
||||||
|
|
|
@ -328,7 +328,7 @@ var Zotero_File_Interface = new function() {
|
||||||
translation.setHandler("done", function(obj, worked) {
|
translation.setHandler("done", function(obj, worked) {
|
||||||
// add items to import collection
|
// add items to import collection
|
||||||
if(importCollection) {
|
if(importCollection) {
|
||||||
importCollection.addItems([item.id for each(item in obj.newItems)]);
|
importCollection.addItems(obj.newItems.map(item => item.id));
|
||||||
}
|
}
|
||||||
|
|
||||||
Zotero.DB.commitTransaction();
|
Zotero.DB.commitTransaction();
|
||||||
|
@ -467,7 +467,10 @@ var Zotero_File_Interface = new function() {
|
||||||
getService(Components.interfaces.nsIClipboard);
|
getService(Components.interfaces.nsIClipboard);
|
||||||
|
|
||||||
var style = Zotero.Styles.get(style).getCiteProc(locale);
|
var style = Zotero.Styles.get(style).getCiteProc(locale);
|
||||||
var citation = {"citationItems":[{id:item.id} for each(item in items)], properties:{}};
|
var citation = {
|
||||||
|
citationItems: items.map(item => ({ id: item.id })),
|
||||||
|
properties: {}
|
||||||
|
};
|
||||||
|
|
||||||
// add HTML
|
// add HTML
|
||||||
var bibliography = style.previewCitationCluster(citation, [], [], "html");
|
var bibliography = style.previewCitationCluster(citation, [], [], "html");
|
||||||
|
|
|
@ -99,7 +99,7 @@ var Zotero_Bibliography_Dialog = new function () {
|
||||||
_addButton.disabled = true;
|
_addButton.disabled = true;
|
||||||
_removeButton.disabled = false;
|
_removeButton.disabled = false;
|
||||||
_updateRevertButtonStatus();
|
_updateRevertButtonStatus();
|
||||||
[_itemList.toggleItemSelection(item) for each(item in itemsToSelect)];
|
itemsToSelect.forEach(item => _itemList.toggleItemSelection(item));
|
||||||
_itemList.ensureIndexIsVisible(itemsToSelect[0]);
|
_itemList.ensureIndexIsVisible(itemsToSelect[0]);
|
||||||
}
|
}
|
||||||
_suppressAllSelectEvents = false;
|
_suppressAllSelectEvents = false;
|
||||||
|
|
|
@ -303,9 +303,13 @@ var Zotero_QuickFormat = new function () {
|
||||||
citedItemsMatchingSearch = [];
|
citedItemsMatchingSearch = [];
|
||||||
for(var i=0, iCount=citedItems.length; i<iCount; i++) {
|
for(var i=0, iCount=citedItems.length; i<iCount; i++) {
|
||||||
// Generate a string to search for each item
|
// Generate a string to search for each item
|
||||||
var item = citedItems[i],
|
let item = citedItems[i];
|
||||||
itemStr = [creator.ref.firstName+" "+creator.ref.lastName for (creator of item.getCreators())];
|
let itemStr = item.getCreators()
|
||||||
itemStr = itemStr.concat([item.getField("title"), item.getField("date", true, true).substr(0, 4)]).join(" ");
|
.map(creator => {
|
||||||
|
creator.ref.firstName + " " + creator.ref.lastName
|
||||||
|
})
|
||||||
|
.concat([item.getField("title"), item.getField("date", true, true).substr(0, 4)])
|
||||||
|
.join(" ");
|
||||||
|
|
||||||
// See if words match
|
// See if words match
|
||||||
for(var j=0, jCount=splits.length; j<jCount; j++) {
|
for(var j=0, jCount=splits.length; j<jCount; j++) {
|
||||||
|
|
|
@ -231,7 +231,7 @@ To add a new preference:
|
||||||
hidden = false;
|
hidden = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
[engine.hidden = hidden for each(engine in Zotero.LocateManager.getEngines())];
|
Zotero.LocateManager.getEngines().forEach(engine => engine.hidden = hidden);
|
||||||
|
|
||||||
refreshLocateEnginesList();
|
refreshLocateEnginesList();
|
||||||
}
|
}
|
||||||
|
|
|
@ -528,7 +528,7 @@ var Zotero_RTFScan = new function() {
|
||||||
}
|
}
|
||||||
Zotero.debug(cslCitations);
|
Zotero.debug(cslCitations);
|
||||||
|
|
||||||
itemIDs = [itemID for(itemID in itemIDs)];
|
itemIDs = Object.keys(itemIDs);
|
||||||
Zotero.debug(itemIDs);
|
Zotero.debug(itemIDs);
|
||||||
|
|
||||||
// prepare the list of rendered citations
|
// prepare the list of rendered citations
|
||||||
|
|
|
@ -95,13 +95,17 @@ var Zotero_CSL_Preview = new function() {
|
||||||
|
|
||||||
// Generate multiple citations
|
// Generate multiple citations
|
||||||
var citations = styleEngine.previewCitationCluster(
|
var citations = styleEngine.previewCitationCluster(
|
||||||
{"citationItems":[{"id":item.id} for each(item in items)], "properties":{}},
|
{
|
||||||
[], [], "html");
|
citationItems: items.map(item => ({ id: item.id })),
|
||||||
|
properties: {}
|
||||||
|
},
|
||||||
|
[], [], "html"
|
||||||
|
);
|
||||||
|
|
||||||
// Generate bibliography
|
// Generate bibliography
|
||||||
var bibliography = '';
|
var bibliography = '';
|
||||||
if(style.hasBibliography) {
|
if(style.hasBibliography) {
|
||||||
styleEngine.updateItems([item.id for each(item in items)]);
|
styleEngine.updateItems(items.map(item => item.id));
|
||||||
bibliography = Zotero.Cite.makeFormattedBibliography(styleEngine, "html");
|
bibliography = Zotero.Cite.makeFormattedBibliography(styleEngine, "html");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -73,7 +73,7 @@ Zotero.Cite = {
|
||||||
*/
|
*/
|
||||||
"makeFormattedBibliographyOrCitationList":function(cslEngine, items, format, asCitationList) {
|
"makeFormattedBibliographyOrCitationList":function(cslEngine, items, format, asCitationList) {
|
||||||
cslEngine.setOutputFormat(format);
|
cslEngine.setOutputFormat(format);
|
||||||
cslEngine.updateItems([item.id for each(item in items)]);
|
cslEngine.updateItems(items.map(item => item.id));
|
||||||
|
|
||||||
if(!asCitationList) {
|
if(!asCitationList) {
|
||||||
var bibliography = Zotero.Cite.makeFormattedBibliography(cslEngine, format);
|
var bibliography = Zotero.Cite.makeFormattedBibliography(cslEngine, format);
|
||||||
|
@ -297,7 +297,7 @@ Zotero.Cite = {
|
||||||
var slashIndex;
|
var slashIndex;
|
||||||
|
|
||||||
if(id instanceof Array) {
|
if(id instanceof Array) {
|
||||||
return [Zotero.Cite.getItem(anId) for each(anId in id)];
|
return id.map(anId => Zotero.Cite.getItem(anId));
|
||||||
} else if(typeof id === "string" && (slashIndex = id.indexOf("/")) !== -1) {
|
} else if(typeof id === "string" && (slashIndex = id.indexOf("/")) !== -1) {
|
||||||
var sessionID = id.substr(0, slashIndex),
|
var sessionID = id.substr(0, slashIndex),
|
||||||
session = Zotero.Integration.sessions[sessionID],
|
session = Zotero.Integration.sessions[sessionID],
|
||||||
|
|
|
@ -224,7 +224,7 @@ Zotero.Tag.prototype.getLinkedItems = function (asIDs) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return Zotero.Item objects
|
// Return Zotero.Item objects
|
||||||
return [item for each(item in this._linkedItems)];
|
return Object.keys(this._linkedItems).map(id => this._linkedItems[id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -446,7 +446,7 @@ Zotero.Fulltext = new function(){
|
||||||
Zotero.DB.query("DELETE FROM indexing.fulltextWords");
|
Zotero.DB.query("DELETE FROM indexing.fulltextWords");
|
||||||
while (words.length > 0) {
|
while (words.length > 0) {
|
||||||
chunk = words.splice(0, 100);
|
chunk = words.splice(0, 100);
|
||||||
Zotero.DB.query('INSERT INTO indexing.fulltextWords (word) ' + ['SELECT ?' for (word of chunk)].join(' UNION '), chunk);
|
Zotero.DB.query('INSERT INTO indexing.fulltextWords (word) ' + chunk.map(x => 'SELECT ?').join(' UNION '), chunk);
|
||||||
}
|
}
|
||||||
Zotero.DB.query('INSERT OR IGNORE INTO fulltextWords (word) SELECT word FROM indexing.fulltextWords');
|
Zotero.DB.query('INSERT OR IGNORE INTO fulltextWords (word) SELECT word FROM indexing.fulltextWords');
|
||||||
Zotero.DB.query('DELETE FROM fulltextItemWords WHERE itemID = ?', [itemID]);
|
Zotero.DB.query('DELETE FROM fulltextItemWords WHERE itemID = ?', [itemID]);
|
||||||
|
|
|
@ -1554,7 +1554,7 @@ Zotero.Integration.Fields.prototype.updateDocument = function(forceCitations, fo
|
||||||
Zotero.Integration.Fields.prototype._updateDocument = function(forceCitations, forceBibliography,
|
Zotero.Integration.Fields.prototype._updateDocument = function(forceCitations, forceBibliography,
|
||||||
ignoreCitationChanges) {
|
ignoreCitationChanges) {
|
||||||
if(this.progressCallback) {
|
if(this.progressCallback) {
|
||||||
var nFieldUpdates = [i for(i in this._session.updateIndices)].length;
|
var nFieldUpdates = Object.keys(this._session.updateIndices).length;
|
||||||
if(this._session.bibliographyHasChanged || forceBibliography) {
|
if(this._session.bibliographyHasChanged || forceBibliography) {
|
||||||
nFieldUpdates += this._bibliographyFields.length*5;
|
nFieldUpdates += this._bibliographyFields.length*5;
|
||||||
}
|
}
|
||||||
|
@ -1989,11 +1989,13 @@ Zotero.Integration.CitationEditInterface.prototype = {
|
||||||
*/
|
*/
|
||||||
"_getItems":function() {
|
"_getItems":function() {
|
||||||
var citationsByItemID = this._session.citationsByItemID;
|
var citationsByItemID = this._session.citationsByItemID;
|
||||||
var ids = [itemID for(itemID in citationsByItemID)
|
var ids = Object.keys(citationsByItemID).filter(itemID => {
|
||||||
if(citationsByItemID[itemID] && citationsByItemID[itemID].length
|
return citationsByItemID[itemID]
|
||||||
|
&& citationsByItemID[itemID].length
|
||||||
// Exclude the present item
|
// Exclude the present item
|
||||||
&& (citationsByItemID[itemID].length > 1
|
&& (citationsByItemID[itemID].length > 1
|
||||||
|| citationsByItemID[itemID][0].properties.zoteroIndex !== this._fieldIndex))];
|
|| citationsByItemID[itemID][0].properties.zoteroIndex !== this._fieldIndex);
|
||||||
|
});
|
||||||
|
|
||||||
// Sort all previously cited items at top, and all items cited later at bottom
|
// Sort all previously cited items at top, and all items cited later at bottom
|
||||||
var fieldIndex = this._fieldIndex;
|
var fieldIndex = this._fieldIndex;
|
||||||
|
@ -2565,7 +2567,7 @@ Zotero.Integration.Session.prototype.getBibliography = function() {
|
||||||
Zotero.Integration.Session.prototype.updateUncitedItems = function() {
|
Zotero.Integration.Session.prototype.updateUncitedItems = function() {
|
||||||
// There appears to be a bug somewhere here.
|
// There appears to be a bug somewhere here.
|
||||||
if(Zotero.Debug.enabled) Zotero.debug("Integration: style.updateUncitedItems("+this.uncitedItems.toSource()+")");
|
if(Zotero.Debug.enabled) Zotero.debug("Integration: style.updateUncitedItems("+this.uncitedItems.toSource()+")");
|
||||||
this.style.updateUncitedItems([parseInt(i) for(i in this.uncitedItems)]);
|
this.style.updateUncitedItems(Object.keys(this.uncitedItems).map(i => parseInt(i)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2662,9 +2664,9 @@ Zotero.Integration.Session.prototype._updateCitations = function() {
|
||||||
|
|
||||||
if(Zotero.Debug.enabled) {
|
if(Zotero.Debug.enabled) {
|
||||||
Zotero.debug("Integration: Indices of new citations");
|
Zotero.debug("Integration: Indices of new citations");
|
||||||
Zotero.debug([key for(key in this.newIndices)]);
|
Zotero.debug(Object.keys(this.newIndices));
|
||||||
Zotero.debug("Integration: Indices of updated citations");
|
Zotero.debug("Integration: Indices of updated citations");
|
||||||
Zotero.debug([key for(key in this.updateIndices)]);
|
Zotero.debug(Object.keys(this.updateIndices));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2818,8 +2820,9 @@ Zotero.Integration.Session.prototype.getBibliographyData = function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// look for custom bibliography entries
|
// look for custom bibliography entries
|
||||||
bibliographyData.custom = [[this.uriMap.getURIsForItemID(id), this.customBibliographyText[id]]
|
bibliographyData.custom = Object.keys(this.customBibliographyText)
|
||||||
for(id in this.customBibliographyText)];
|
.map(id => [this.uriMap.getURIsForItemID(id), this.customBibliographyText[id]]);
|
||||||
|
|
||||||
|
|
||||||
if(bibliographyData.uncited || bibliographyData.custom) {
|
if(bibliographyData.uncited || bibliographyData.custom) {
|
||||||
return JSON.stringify(bibliographyData);
|
return JSON.stringify(bibliographyData);
|
||||||
|
|
|
@ -2428,7 +2428,7 @@ Zotero.ItemTreeView.prototype.onColumnPickerShowing = function (event) {
|
||||||
moreMenuPopup.setAttribute('anonid', id + '-popup');
|
moreMenuPopup.setAttribute('anonid', id + '-popup');
|
||||||
|
|
||||||
let treecols = menupopup.parentNode.parentNode;
|
let treecols = menupopup.parentNode.parentNode;
|
||||||
let subs = [x.getAttribute('label') for (x of treecols.getElementsByAttribute('submenu', 'true'))];
|
let subs = treecols.getElementsByAttribute('submenu', 'true').map(x => x.getAttribute('label'));
|
||||||
|
|
||||||
var moreItems = [];
|
var moreItems = [];
|
||||||
|
|
||||||
|
|
|
@ -42,8 +42,8 @@ Zotero.LocateManager = new function() {
|
||||||
_jsonFile = _getLocateFile();
|
_jsonFile = _getLocateFile();
|
||||||
|
|
||||||
if(_jsonFile.exists()) {
|
if(_jsonFile.exists()) {
|
||||||
_locateEngines = [new LocateEngine(engine)
|
_locateEngines = JSON.parse(Zotero.File.getContents(_jsonFile))
|
||||||
for each(engine in JSON.parse(Zotero.File.getContents(_jsonFile)))];
|
.map(engine => new LocateEngine(engine));
|
||||||
} else {
|
} else {
|
||||||
this.restoreDefaultEngines();
|
this.restoreDefaultEngines();
|
||||||
}
|
}
|
||||||
|
@ -67,8 +67,10 @@ Zotero.LocateManager = new function() {
|
||||||
/**
|
/**
|
||||||
* Gets all default search engines (not currently used)
|
* Gets all default search engines (not currently used)
|
||||||
*/
|
*/
|
||||||
this.getDefaultEngines = function() [new LocateEngine(engine)
|
this.getDefaultEngines = function () {
|
||||||
for each(engine in JSON.parse(Zotero.File.getContentsFromURL(_getDefaultFile())))];
|
return JSON.parse(Zotero.File.getContentsFromURL(_getDefaultFile()))
|
||||||
|
.map(engine => new LocateEngine(engine));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an array of all search engines
|
* Returns an array of all search engines
|
||||||
|
@ -78,7 +80,9 @@ Zotero.LocateManager = new function() {
|
||||||
/**
|
/**
|
||||||
* Returns an array of all search engines visible that should be visible in the dropdown
|
* Returns an array of all search engines visible that should be visible in the dropdown
|
||||||
*/
|
*/
|
||||||
this.getVisibleEngines = function() [engine for each(engine in _locateEngines) if(!engine.hidden)];
|
this.getVisibleEngines = function () {
|
||||||
|
return _locateEngines.filter(engine => !engine.hidden);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an engine with a specific name
|
* Returns an engine with a specific name
|
||||||
|
@ -285,12 +289,12 @@ Zotero.LocateManager = new function() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return [encodeURIComponent(val) for each(val in itemOpenURL["rft."+param])];
|
return itemOpenURL["rft."+param].map(val => encodeURIComponent(val));
|
||||||
} else if(ns === "info:ofi/fmt:kev:mtx:ctx") {
|
} else if(ns === "info:ofi/fmt:kev:mtx:ctx") {
|
||||||
if(!OPENURL_CONTEXT_MAPPINGS[param] || !itemOpenURL[OPENURL_CONTEXT_MAPPINGS[param]]) {
|
if(!OPENURL_CONTEXT_MAPPINGS[param] || !itemOpenURL[OPENURL_CONTEXT_MAPPINGS[param]]) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return [encodeURIComponent(val) for each(val in itemOpenURL[OPENURL_CONTEXT_MAPPINGS[param]])];
|
return itemOpenURL[OPENURL_CONTEXT_MAPPINGS[param]].map(val => encodeURIComponent(val));
|
||||||
} else if(ns === "http://www.zotero.org/namespaces/openSearch#") {
|
} else if(ns === "http://www.zotero.org/namespaces/openSearch#") {
|
||||||
if(param === "openURL") {
|
if(param === "openURL") {
|
||||||
var ctx = Zotero.OpenURL.createContextObject(item, "1.0");
|
var ctx = Zotero.OpenURL.createContextObject(item, "1.0");
|
||||||
|
@ -457,7 +461,10 @@ Zotero.LocateManager = new function() {
|
||||||
} else {
|
} else {
|
||||||
var result = _lookupParam(item, itemAsOpenURL, me, m[1], m[2]);
|
var result = _lookupParam(item, itemAsOpenURL, me, m[1], m[2]);
|
||||||
if(result) {
|
if(result) {
|
||||||
paramsToAdd = paramsToAdd.concat([encodeURIComponent(param)+"="+encodeURIComponent(val) for(val in result)]);
|
paramsToAdd = paramsToAdd.concat(
|
||||||
|
result.map(val =>
|
||||||
|
encodeURIComponent(param) + "=" + encodeURIComponent(val))
|
||||||
|
);
|
||||||
} else if(m[3]) { // if no param and it wasn't optional, return
|
} else if(m[3]) { // if no param and it wasn't optional, return
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,8 +50,8 @@ Zotero.Proxies = new function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
Zotero.MIMETypeHandler.addObserver(function(ch) { me.observe(ch) });
|
Zotero.MIMETypeHandler.addObserver(function(ch) { me.observe(ch) });
|
||||||
|
|
||||||
var rows = Zotero.DB.query("SELECT * FROM proxies");
|
var rows = Zotero.DB.query("SELECT * FROM proxies") || [];
|
||||||
Zotero.Proxies.proxies = [new Zotero.Proxy(row) for each(row in rows)];
|
Zotero.Proxies.proxies = rows.map(row => new Zotero.Proxy(row));
|
||||||
|
|
||||||
for each(var proxy in Zotero.Proxies.proxies) {
|
for each(var proxy in Zotero.Proxies.proxies) {
|
||||||
for each(var host in proxy.hosts) {
|
for each(var host in proxy.hosts) {
|
||||||
|
|
|
@ -367,8 +367,11 @@ Zotero.QuickCopy = new function() {
|
||||||
// Copy citations if shift key pressed
|
// Copy citations if shift key pressed
|
||||||
if (modified) {
|
if (modified) {
|
||||||
var csl = Zotero.Styles.get(format.id).getCiteProc(locale);
|
var csl = Zotero.Styles.get(format.id).getCiteProc(locale);
|
||||||
csl.updateItems([item.id for each(item in items)]);
|
csl.updateItems(items.map(item => item.id));
|
||||||
var citation = {citationItems:[{id:item.id} for each(item in items)], properties:{}};
|
var citation = {
|
||||||
|
citationItems: items.map(item => item.id),
|
||||||
|
properties: {}
|
||||||
|
};
|
||||||
var html = csl.previewCitationCluster(citation, [], [], "html");
|
var html = csl.previewCitationCluster(citation, [], [], "html");
|
||||||
var text = csl.previewCitationCluster(citation, [], [], "text");
|
var text = csl.previewCitationCluster(citation, [], [], "text");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -509,7 +509,7 @@ Zotero.Server.Connector.Progress.prototype = {
|
||||||
*/
|
*/
|
||||||
"init":function(data, sendResponseCallback) {
|
"init":function(data, sendResponseCallback) {
|
||||||
sendResponseCallback(200, "application/json",
|
sendResponseCallback(200, "application/json",
|
||||||
JSON.stringify([Zotero.Server.Connector.AttachmentProgressManager.getProgressForID(id) for each(id in data)]));
|
JSON.stringify(data.map(id => Zotero.Server.Connector.AttachmentProgressManager.getProgressForID(id))));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1840,8 +1840,9 @@ Zotero.Sync.Storage = new function () {
|
||||||
var itemIDs = Zotero.DB.columnQuery(sql, params) || [];
|
var itemIDs = Zotero.DB.columnQuery(sql, params) || [];
|
||||||
|
|
||||||
// Get files by open time
|
// Get files by open time
|
||||||
_uploadCheckFiles.filter(function (x) x.timestamp >= minTime);
|
itemIDs = itemIDs.concat(
|
||||||
itemIDs = itemIDs.concat([x.itemID for each(x in _uploadCheckFiles)])
|
_uploadCheckFiles.filter(item => item.timestamp >= minTime).map(item => item.id)
|
||||||
|
);
|
||||||
|
|
||||||
return Zotero.Utilities.arrayUnique(itemIDs);
|
return Zotero.Utilities.arrayUnique(itemIDs);
|
||||||
}
|
}
|
||||||
|
|
|
@ -199,7 +199,7 @@ Zotero.Sync.Storage.Request.prototype.start = function () {
|
||||||
//
|
//
|
||||||
// The main sync logic is triggered here.
|
// The main sync logic is triggered here.
|
||||||
|
|
||||||
Q.all([f(this) for each(f in this._onStart)])
|
Q.all(this._onStart.map(f => f(this)))
|
||||||
.then(function (results) {
|
.then(function (results) {
|
||||||
return {
|
return {
|
||||||
localChanges: results.some(function (val) val && val.localChanges == true),
|
localChanges: results.some(function (val) val && val.localChanges == true),
|
||||||
|
|
|
@ -581,10 +581,10 @@ Zotero.Style = function(arg) {
|
||||||
|
|
||||||
//In CSL 0.8.1, the "term" attribute on cs:category stored both
|
//In CSL 0.8.1, the "term" attribute on cs:category stored both
|
||||||
//citation formats and fields.
|
//citation formats and fields.
|
||||||
this.categories = [category.getAttribute("term")
|
this.categories = Zotero.Utilities.xpath(
|
||||||
for each(category in Zotero.Utilities.xpath(doc,
|
doc, '/csl:style/csl:info[1]/csl:category', Zotero.Styles.ns)
|
||||||
'/csl:style/csl:info[1]/csl:category', Zotero.Styles.ns))
|
.filter(category => category.hasAttribute("term"))
|
||||||
if(category.hasAttribute("term"))];
|
.map(category => category.getAttribute("term"));
|
||||||
} else {
|
} else {
|
||||||
//CSL 1.0 introduced a dedicated "citation-format" attribute on cs:category
|
//CSL 1.0 introduced a dedicated "citation-format" attribute on cs:category
|
||||||
this.categories = Zotero.Utilities.xpathText(doc,
|
this.categories = Zotero.Utilities.xpathText(doc,
|
||||||
|
|
|
@ -753,7 +753,7 @@ Zotero.Sync.Runner = new function () {
|
||||||
errors = [];
|
errors = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
errors = [this.parseSyncError(e) for each(e in errors)];
|
errors = errors.map(e => this.parseSyncError(e));
|
||||||
_errorsByLibrary = {};
|
_errorsByLibrary = {};
|
||||||
|
|
||||||
var primaryError = this.getPrimaryError(errors);
|
var primaryError = this.getPrimaryError(errors);
|
||||||
|
@ -787,7 +787,7 @@ Zotero.Sync.Runner = new function () {
|
||||||
|
|
||||||
|
|
||||||
this.getPrimaryError = function (errors) {
|
this.getPrimaryError = function (errors) {
|
||||||
errors = [this.parseSyncError(e) for each(e in errors)];
|
errors = errors.map(e => this.parseSyncError(e));
|
||||||
|
|
||||||
// Set highest priority error as the primary (sync error icon)
|
// Set highest priority error as the primary (sync error icon)
|
||||||
var errorModes = {
|
var errorModes = {
|
||||||
|
|
|
@ -188,7 +188,7 @@ Zotero.Translators = new function() {
|
||||||
*/
|
*/
|
||||||
this.getAll = function() {
|
this.getAll = function() {
|
||||||
if(!_initialized) this.init();
|
if(!_initialized) this.init();
|
||||||
return [translator for each(translator in _translators)];
|
return Object.keys(_translators).map(i => _translators[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -96,7 +96,11 @@ Zotero.Utilities.Internal = {
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert the binary hash data to a hex string.
|
// convert the binary hash data to a hex string.
|
||||||
return [toHexString(hash.charCodeAt(i)) for (i in hash)].join("");
|
var hexStr;
|
||||||
|
for (let i = 0; i < hash.length; i++) {
|
||||||
|
hexStr += toHexString(hash.charCodeAt(i));
|
||||||
|
}
|
||||||
|
return hexStr;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
@ -138,10 +142,11 @@ Zotero.Utilities.Internal = {
|
||||||
}
|
}
|
||||||
// Hex string
|
// Hex string
|
||||||
else {
|
else {
|
||||||
deferred.resolve(
|
let hexStr;
|
||||||
[toHexString(hash.charCodeAt(i))
|
for (let i = 0; i < hash.length; i++) {
|
||||||
for (i in hash)].join("")
|
hexStr += toHexString(hash.charCodeAt(i));
|
||||||
);
|
}
|
||||||
|
deferred.resolve(hexStr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -434,7 +434,8 @@ Components.utils.import("resource://gre/modules/Services.jsm");
|
||||||
try {
|
try {
|
||||||
var messages = {};
|
var messages = {};
|
||||||
cs.getMessageArray(messages, {});
|
cs.getMessageArray(messages, {});
|
||||||
_startupErrors = [msg for each(msg in messages.value) if(_shouldKeepError(msg))];
|
_startupErrors = Object.keys(messages.value).map(i => messages[i])
|
||||||
|
.filter(msg => _shouldKeepError(msg));
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
Zotero.logError(e);
|
Zotero.logError(e);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue