Fix error modifying existing saved search with more than 1 condition
Closes #1056, which wasn't actually the problem
This commit is contained in:
parent
18cf6088b0
commit
c1f7a188e2
3 changed files with 4 additions and 2 deletions
|
@ -440,7 +440,7 @@ Zotero.Search.prototype.removeCondition = function (searchConditionID) {
|
||||||
this._requireData('conditions');
|
this._requireData('conditions');
|
||||||
|
|
||||||
if (typeof this._conditions[searchConditionID] == 'undefined'){
|
if (typeof this._conditions[searchConditionID] == 'undefined'){
|
||||||
throw ('Invalid searchConditionID ' + searchConditionID + ' in removeCondition()');
|
throw new Error('Invalid searchConditionID ' + searchConditionID + ' in removeCondition()');
|
||||||
}
|
}
|
||||||
|
|
||||||
delete this._conditions[searchConditionID];
|
delete this._conditions[searchConditionID];
|
||||||
|
@ -825,7 +825,7 @@ Zotero.Search.prototype.fromJSON = function (json) {
|
||||||
}
|
}
|
||||||
this.name = json.name;
|
this.name = json.name;
|
||||||
|
|
||||||
Object.keys(this.getConditions()).forEach(id => this.removeCondition(0));
|
Object.keys(this.getConditions()).forEach(id => this.removeCondition(id));
|
||||||
for (let i = 0; i < json.conditions.length; i++) {
|
for (let i = 0; i < json.conditions.length; i++) {
|
||||||
let condition = json.conditions[i];
|
let condition = json.conditions[i];
|
||||||
this.addCondition(
|
this.addCondition(
|
||||||
|
|
|
@ -386,6 +386,7 @@ function createUnsavedDataObject(objectType, params = {}) {
|
||||||
|
|
||||||
if (objectType == 'search') {
|
if (objectType == 'search') {
|
||||||
obj.addCondition('title', 'contains', Zotero.Utilities.randomString());
|
obj.addCondition('title', 'contains', Zotero.Utilities.randomString());
|
||||||
|
obj.addCondition('title', 'isNot', Zotero.Utilities.randomString());
|
||||||
}
|
}
|
||||||
|
|
||||||
Zotero.Utilities.assignProps(obj, params, allowedParams);
|
Zotero.Utilities.assignProps(obj, params, allowedParams);
|
||||||
|
|
|
@ -221,6 +221,7 @@ describe("Zotero.Search", function() {
|
||||||
let s = new Zotero.Search();
|
let s = new Zotero.Search();
|
||||||
s.name = "Test";
|
s.name = "Test";
|
||||||
s.addCondition('joinMode', 'any');
|
s.addCondition('joinMode', 'any');
|
||||||
|
s.addCondition('title', 'isNot', 'foo');
|
||||||
let json = s.toJSON();
|
let json = s.toJSON();
|
||||||
json.name = "Test 2";
|
json.name = "Test 2";
|
||||||
json.conditions = [
|
json.conditions = [
|
||||||
|
|
Loading…
Reference in a new issue