Skip to content

Commit

Permalink
Small bugfixes and rearrangements
Browse files Browse the repository at this point in the history
  • Loading branch information
fbennett committed Feb 20, 2017
1 parent 6174f91 commit a1b47fc
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 59 deletions.
4 changes: 1 addition & 3 deletions chrome/content/zotero/xpcom/data/dataObject.js
Expand Up @@ -819,15 +819,14 @@ Zotero.DataObject.prototype.save = Zotero.Promise.coroutine(function* (options =
'skipClientDateModifiedUpdate',
'skipSyncedUpdate',
'skipEditCheck',
'skipNotifier',
'skipSelect'
].forEach(x => env.options[x] = true);
}

try {
if (Zotero.DataObject.prototype._finalizeSave == this._finalizeSave) {
throw new Error("_finalizeSave not implemented for Zotero." + this._ObjectType);
}

env.notifierData = {};
// Pass along any 'notifierData' values
if (env.options.notifierData) {
Expand All @@ -839,7 +838,6 @@ Zotero.DataObject.prototype.save = Zotero.Promise.coroutine(function* (options =
if (!env.isNew) {
env.changed = this._previousData;
}

// Create transaction
let result
if (env.options.tx) {
Expand Down
71 changes: 38 additions & 33 deletions chrome/content/zotero/xpcom/data/dataObjectUtilities.js
Expand Up @@ -900,8 +900,9 @@ Zotero.DataObjectUtilities = {
_keys: {}
}
// Extract extradata
var noteMatch = null;
if (newjson.extra) {
var noteMatch = newjson.extra.match(/mlzsync1:([0-9][0-9][0-9][0-9])(.*)/);
noteMatch = newjson.extra.match(/mlzsync1:([0-9][0-9][0-9][0-9])(.*)/);
if (noteMatch) {
var offset = parseInt(noteMatch[1], 10);
var extradata = JSON.parse(noteMatch[2].slice(0, offset))
Expand Down Expand Up @@ -947,35 +948,37 @@ Zotero.DataObjectUtilities = {
newjson.creators.push(extraCreator);
}
}
for (var pos in newjson.creators) {
}
}
for (var pos in newjson.creators) {
var creator = newjson.creators[pos];
creator.multi = {
main: false,
_key: {}
}
}
if (noteMatch) {
if (extradata.multicreators) {
for (var pos in extradata.multicreators) {
var creator = newjson.creators[pos];
creator.multi = {
main: false,
_key: {}
var multiObj = extradata.multicreators[pos];
if (multiObj.main) {
creator.multi.main = multiObj.main;
}
}
if (extradata.multicreators) {
for (var pos in extradata.multicreators) {
var creator = newjson.creators[pos];
var multiObj = extradata.multicreators[pos];
if (multiObj.main) {
creator.multi.main = multiObj.main;
}
if (multiObj._key) {
for (var langTag in multiObj._key) {
var nameObj = multiObj._key[langTag];
creator.multi._key[langTag] = {};
if (nameObj.name) {
creator.multi._key[langTag].name = nameObj.name;
} else if (creator.name) {
creator.multi._key[langTag].name = nameObj.lastName;
} else {
if (nameObj.firstName) {
creator.multi._key[langTag].firstName = nameObj.firstName;
}
if (nameObj.lastName) {
creator.multi._key[langTag].lastName = nameObj.lastName;
}
if (multiObj._key) {
for (var langTag in multiObj._key) {
var nameObj = multiObj._key[langTag];
creator.multi._key[langTag] = {};
if (nameObj.name) {
creator.multi._key[langTag].name = nameObj.name;
} else if (creator.name) {
creator.multi._key[langTag].name = nameObj.lastName;
} else {
if (nameObj.firstName) {
creator.multi._key[langTag].firstName = nameObj.firstName;
}
if (nameObj.lastName) {
creator.multi._key[langTag].lastName = nameObj.lastName;
}
}
}
Expand Down Expand Up @@ -1036,13 +1039,15 @@ Zotero.DataObjectUtilities = {
// multicreators
for (var pos in newjson.creators) {
var creator = newjson.creators[pos];
if (creator.multi.main || Object.keys(creator.multi._key).length > 0) {
if (!extradata.multicreators) {
extradata.multicreators = {};
if (creator.multi) {
if (creator.multi.main || Object.keys(creator.multi._key).length > 0) {
if (!extradata.multicreators) {
extradata.multicreators = {};
}
extradata.multicreators[pos] = creator.multi;
}
extradata.multicreators[pos] = creator.multi;
delete creator.multi;
}
delete creator.multi;
}

// extracreators [2]
Expand Down
43 changes: 24 additions & 19 deletions chrome/content/zotero/xpcom/data/item.js
Expand Up @@ -1150,6 +1150,17 @@ Zotero.Item.prototype.updateDisplayTitle = function () {
title = '[' + strParts.join(', ') + ']';
}
}
else if (itemTypeID === 18) {
if (!title) {
var myTitle = this.getField('committee', true);
if (!myTitle) {
myTitle = this.getField('legislativeBody', true);
}
if (myTitle) {
title = '[' + myTitle + ']';
}
}
}

this._displayTitle = title;
};
Expand Down Expand Up @@ -1619,7 +1630,19 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
// ItemData
//
if (this._changed.itemData) {
let del = [];

let valueSQL = "SELECT valueID FROM itemDataValues WHERE value=?";
let insertValueSQL = "INSERT INTO itemDataValues VALUES (?,?)";
let replaceSQL = "REPLACE INTO itemData VALUES (?,?,?)";

let multiDeleteSQL = "DELETE from itemDataAlt WHERE itemID=? AND fieldID=? and languageTag=?";
let mainReplaceSQL = "REPLACE INTO itemDataMain VALUES(?,?,?)";
let mainDeleteSQL = "DELETE FROM itemDataMain WHERE itemID=? AND fieldID=?";
let multiReplaceSQL = "REPLACE INTO itemDataAlt VALUES (?,?,?,?)";
// Update jurisdiction/court cache
yield Zotero.CachedJurisdictionData.load(this);

// XXX Okay, fields!
// XXX
// XXX Need to sequence the updates to avoid foreign key
Expand All @@ -1633,24 +1656,6 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
// XXX (4) Process variant add and edit
// XXX (5) Process field deletes (with main language)

// Update jurisdiction/court cache
yield Zotero.CachedJurisdictionData.load(this);

let del = [];

let multiDeleteSQL = "DELETE from itemDataAlt WHERE itemID=? AND fieldID=? and languageTag=?";

let valueSQL = "SELECT valueID FROM itemDataValues WHERE value=?";
let insertValueSQL = "INSERT INTO itemDataValues VALUES (?,?)";

let fieldReplaceSQL = "REPLACE INTO itemData VALUES (?,?,?)";

let mainReplaceSQL = "REPLACE INTO itemDataMain VALUES(?,?,?)";
let mainDeleteSQL = "DELETE FROM itemDataMain WHERE itemID=? AND fieldID=?";

let multiReplaceSQL = "REPLACE INTO itemDataAlt VALUES (?,?,?,?)";

// zzz
for (let fieldID in this._changed.itemData) {
fieldID = parseInt(fieldID);

Expand Down Expand Up @@ -1686,7 +1691,7 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
yield Zotero.DB.queryAsync(insertValueSQL, [valueID, value], { debug: false });
}

yield Zotero.DB.queryAsync(fieldReplaceSQL, [itemID, fieldID, valueID], { debug: false });
yield Zotero.DB.queryAsync(replaceSQL, [itemID, fieldID, valueID], { debug: false });
}

// XXX (3) Process main language add, edit or delete
Expand Down
2 changes: 1 addition & 1 deletion chrome/content/zotero/xpcom/multilingual/field.js
Expand Up @@ -260,7 +260,7 @@ Zotero.MultiField.prototype.merge = function (otherItem, shy) {
if (this._keys[fieldID][langTag] != otherItem.multi._keys[fieldID][langTag]) {
this._keys[fieldID][langTag] = otherItem.multi._keys[fieldID][langTag];
this.setAltChange(fieldID, langTag);
this.parent._changed = true;
//this.parent._changed = true;
}
}
}
Expand Down
8 changes: 5 additions & 3 deletions chrome/content/zotero/xpcom/multilingual/ui.js
Expand Up @@ -48,7 +48,7 @@ Zotero.EXTENDED_FIELDS = {
"volumeTitle":"volume-title"
},
"standard": {
"version":"version",
"versionNumber":"version",
"number":"number"
},
"conferencePaper": {
Expand Down Expand Up @@ -151,6 +151,8 @@ Zotero.EXTENDED_FIELDS = {
},
"gazette": {
"jurisdiction":"jurisdiction",
"reign": "genre",
"regnalYear":"collection-number",
"publisher":"publisher",
"publicationDate":"publication-date"
},
Expand All @@ -170,15 +172,15 @@ Zotero.EXTENDED_FIELDS = {
"openingDate":"available-date",
"adoptionDate":"original-date",
"signingDate":"event-date",
"version":"version", // MISSING IN system.sql!
"versionNumber":"version", // MISSING IN system.sql!
"parentTreaty":"collection-title",
"supplementName":"genre"
},
"classic":{
"volume":"volume"
},
"document":{
"version":"version"
"versionNumber":"version"
}
}

Expand Down

0 comments on commit a1b47fc

Please sign in to comment.