parent
d2f27a0a8a
commit
598773258e
74
select2.js
74
select2.js
@ -1592,7 +1592,6 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
};
|
||||
|
||||
var width = resolveContainerWidth.call(this);
|
||||
console.log("width: ",width);
|
||||
if (width !== null) {
|
||||
this.container.css("width", width);
|
||||
}
|
||||
@ -1959,7 +1958,8 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
|
||||
// single
|
||||
onSelect: function (data, options) {
|
||||
var old = this.opts.element.val();
|
||||
var old = this.opts.element.val(),
|
||||
oldData = this.data();
|
||||
|
||||
this.opts.element.val(this.id(data));
|
||||
this.updateSelection(data);
|
||||
@ -1971,7 +1971,7 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
if (!options || !options.noFocus)
|
||||
this.selection.focus();
|
||||
|
||||
if (!equal(old, this.id(data))) { this.triggerChange(); }
|
||||
if (!equal(old, this.id(data))) { this.triggerChange({added:data,removed:oldData}); }
|
||||
},
|
||||
|
||||
// single
|
||||
@ -1996,7 +1996,11 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
|
||||
// single
|
||||
val: function () {
|
||||
var val, triggerChange = false, data = null, self = this;
|
||||
var val,
|
||||
triggerChange = false,
|
||||
data = null,
|
||||
self = this,
|
||||
oldData = this.data();
|
||||
|
||||
if (arguments.length === 0) {
|
||||
return this.opts.element.val();
|
||||
@ -2018,7 +2022,7 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
this.updateSelection(data);
|
||||
this.setPlaceholder();
|
||||
if (triggerChange) {
|
||||
this.triggerChange();
|
||||
this.triggerChange({added: data, removed:oldData});
|
||||
}
|
||||
} else {
|
||||
if (this.opts.initSelection === undefined) {
|
||||
@ -2027,9 +2031,6 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
// val is an id. !val is true for [undefined,null,'',0] - 0 is legal
|
||||
if (!val && val !== 0) {
|
||||
this.clear(triggerChange);
|
||||
if (triggerChange) {
|
||||
this.triggerChange();
|
||||
}
|
||||
return;
|
||||
}
|
||||
this.opts.element.val(val);
|
||||
@ -2038,7 +2039,7 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
self.updateSelection(data);
|
||||
self.setPlaceholder();
|
||||
if (triggerChange) {
|
||||
self.triggerChange();
|
||||
self.triggerChange({added: data, removed:oldData});
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -2051,7 +2052,7 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
},
|
||||
|
||||
// single
|
||||
data: function(value) {
|
||||
data: function(value, triggerChange) {
|
||||
var data;
|
||||
|
||||
if (arguments.length === 0) {
|
||||
@ -2060,10 +2061,14 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
return data;
|
||||
} else {
|
||||
if (!value || value === "") {
|
||||
this.clear();
|
||||
this.clear(triggerChange);
|
||||
} else {
|
||||
data = this.data();
|
||||
this.opts.element.val(!value ? "" : this.id(value));
|
||||
this.updateSelection(value);
|
||||
if (triggerChange) {
|
||||
this.triggerChange({added: value, removed:data});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2596,18 +2601,37 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
},
|
||||
|
||||
// multi
|
||||
val: function () {
|
||||
var val, triggerChange = false, data = [], self=this;
|
||||
buildChangeDetails: function (old, current) {
|
||||
console.log("current", current, "old", old);
|
||||
var current = current.slice(0),
|
||||
old = old.slice(0);
|
||||
|
||||
// remove intersection from each array
|
||||
for (var i = 0; i < current.length; i++) {
|
||||
for (var j = 0; j < old.length; j++) {
|
||||
if (equal(this.opts.id(current[i]), this.opts.id(old[j]))) {
|
||||
current.splice(i, 1);
|
||||
i--;
|
||||
old.splice(j, 1);
|
||||
j--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {added: current, removed: old};
|
||||
},
|
||||
|
||||
|
||||
// multi
|
||||
val: function (val, triggerChange) {
|
||||
var oldData, self=this, changeDetails;
|
||||
|
||||
if (arguments.length === 0) {
|
||||
return this.getVal();
|
||||
}
|
||||
|
||||
val = arguments[0];
|
||||
|
||||
if (arguments.length > 1) {
|
||||
triggerChange = arguments[1];
|
||||
}
|
||||
oldData=this.data();
|
||||
if (!oldData.length) oldData=[];
|
||||
|
||||
// val is an id. !val is true for [undefined,null,'',0] - 0 is legal
|
||||
if (!val && val !== 0) {
|
||||
@ -2615,7 +2639,7 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
this.updateSelection([]);
|
||||
this.clearSearch();
|
||||
if (triggerChange) {
|
||||
this.triggerChange();
|
||||
this.triggerChange({added: this.data(), removed: oldData});
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -2626,7 +2650,7 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
if (this.select) {
|
||||
this.opts.initSelection(this.select, this.bind(this.updateSelection));
|
||||
if (triggerChange) {
|
||||
this.triggerChange();
|
||||
this.triggerChange(this.buildChangeDetails(oldData, this.data()));
|
||||
}
|
||||
} else {
|
||||
if (this.opts.initSelection === undefined) {
|
||||
@ -2639,7 +2663,7 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
self.updateSelection(data);
|
||||
self.clearSearch();
|
||||
if (triggerChange) {
|
||||
self.triggerChange();
|
||||
self.triggerChange(this.buildChangeDetails(oldData, this.data()));
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -2680,19 +2704,23 @@ the specific language governing permissions and limitations under the Apache Lic
|
||||
},
|
||||
|
||||
// multi
|
||||
data: function(values) {
|
||||
var self=this, ids;
|
||||
data: function(values, triggerChange) {
|
||||
var self=this, ids, old;
|
||||
if (arguments.length === 0) {
|
||||
return this.selection
|
||||
.find(".select2-search-choice")
|
||||
.map(function() { return $(this).data("select2-data"); })
|
||||
.get();
|
||||
} else {
|
||||
old = this.data();
|
||||
if (!values) { values = []; }
|
||||
ids = $.map(values, function(e) { return self.opts.id(e); });
|
||||
this.setVal(ids);
|
||||
this.updateSelection(values);
|
||||
this.clearSearch();
|
||||
if (triggerChange) {
|
||||
this.triggerChange(this.buildChangeDetails(old, this.data()));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user