projects
/
roojs1
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
compile for changes to combboxarray
[roojs1]
/
Roo
/
form
/
ComboBoxArray.js
diff --git
a/Roo/form/ComboBoxArray.js
b/Roo/form/ComboBoxArray.js
index
e2482d6
..
ff0ab8c
100644
(file)
--- a/
Roo/form/ComboBoxArray.js
+++ b/
Roo/form/ComboBoxArray.js
@@
-94,7
+94,10
@@
Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
* @cfg {String} hiddenName The hidden name of the field, often contains an comma seperated list of names
*/
hiddenName : false,
* @cfg {String} hiddenName The hidden name of the field, often contains an comma seperated list of names
*/
hiddenName : false,
-
+ /**
+ * @cfg {String} seperator The value seperator normally ','
+ */
+ seperator : ',',
// private the array of items that are displayed..
items : false,
// private the array of items that are displayed..
items : false,
@@
-115,7
+118,7
@@
Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
// give fake names to child combo;
this.combo.hiddenName = this.hiddenName ? (this.hiddenName+'-subcombo') : this.hiddenName;
// give fake names to child combo;
this.combo.hiddenName = this.hiddenName ? (this.hiddenName+'-subcombo') : this.hiddenName;
- this.combo.name = this.name? (this.name+'-subcombo') : this.name;
+ this.combo.name = this.name
? (this.name+'-subcombo') : this.name;
this.combo = Roo.factory(this.combo, Roo.form);
this.combo.onRender(ct, position);
this.combo = Roo.factory(this.combo, Roo.form);
this.combo.onRender(ct, position);
@@
-236,6
+239,7
@@
Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
{
var valueField = this.combo.valueField;
var displayField = this.combo.displayField;
{
var valueField = this.combo.valueField;
var displayField = this.combo.displayField;
+
if (this.items.indexOfKey(rec[valueField]) > -1) {
//console.log("GOT " + rec.data.id);
return;
if (this.items.indexOfKey(rec[valueField]) > -1) {
//console.log("GOT " + rec.data.id);
return;
@@
-267,18
+271,19
@@
Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
this.items.each(function(f) {
ar.push(f.data[idField]);
this.items.each(function(f) {
ar.push(f.data[idField]);
-
});
});
- this.hiddenEl.dom.value = ar.join(
','
);
+ this.hiddenEl.dom.value = ar.join(
this.seperator
);
this.validate();
},
reset : function()
{
this.validate();
},
reset : function()
{
- //Roo.form.ComboBoxArray.superclass.reset.call(this);
- this.items.each(function(f) {
- f.remove();
+ this.items.clear();
+
+ Roo.each(this.outerWrap.select('.x-cbarray-item', true).elements, function(el){
+ el.remove();
});
});
+
this.el.dom.value = '';
if (this.hiddenEl) {
this.hiddenEl.dom.value = '';
this.el.dom.value = '';
if (this.hiddenEl) {
this.hiddenEl.dom.value = '';
@@
-291,17
+296,15
@@
Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
},
setValue: function(v) // not a valid action - must use addItems..
{
},
setValue: function(v) // not a valid action - must use addItems..
{
-
- this.reset();
-
-
+ this.reset();
+
if (this.store.isLocal && (typeof(v) == 'string')) {
// then we can use the store to find the values..
// comma seperated at present.. this needs to allow JSON based encoding..
this.hiddenEl.value = v;
var v_ar = [];
if (this.store.isLocal && (typeof(v) == 'string')) {
// then we can use the store to find the values..
// comma seperated at present.. this needs to allow JSON based encoding..
this.hiddenEl.value = v;
var v_ar = [];
- Roo.each(v.split(
','
), function(k) {
+ Roo.each(v.split(
this.seperator
), function(k) {
Roo.log("CHECK " + this.valueField + ',' + k);
var li = this.store.query(this.valueField, k);
if (!li.length) {
Roo.log("CHECK " + this.valueField + ',' + k);
var li = this.store.query(this.valueField, k);
if (!li.length) {
@@
-318,7
+321,13
@@
Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
if (typeof(v) == 'object' ) {
// then let's assume it's an array of objects..
Roo.each(v, function(l) {
if (typeof(v) == 'object' ) {
// then let's assume it's an array of objects..
Roo.each(v, function(l) {
- this.addItem(l);
+ var add = l;
+ if (typeof(l) == 'string') {
+ add = {};
+ add[this.valueField] = l;
+ add[this.displayField] = l
+ }
+ this.addItem(add);
}, this);
}
}, this);
}
@@
-340,10
+349,9
@@
Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
dv = typeof(dv) != 'string' ? '' : dv;
dv = typeof(dv) != 'string' ? '' : dv;
- var keys = kv.split(
','
);
- var display = dv.split(
','
);
+ var keys = kv.split(
this.seperator
);
+ var display = dv.split(
this.seperator
);
for (var i = 0 ; i < keys.length; i++) {
for (var i = 0 ; i < keys.length; i++) {
-
add = {};
add[this.valueField] = keys[i];
add[this.displayField] = display[i];
add = {};
add[this.valueField] = keys[i];
add[this.displayField] = display[i];
@@
-391,7
+399,7
@@
Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
originalValue.push(d[i][this.valueField]);
}
originalValue.push(d[i][this.valueField]);
}
- return String(this.getValue()) !== String(originalValue.join(
','
));
+ return String(this.getValue()) !== String(originalValue.join(
this.seperator
));
}
}
@@
-469,7
+477,7
@@
Roo.extend(Roo.form.ComboBoxArray.Item, Roo.BoxComponent, {
return;
}
return;
}
- if(false !== this.cb.fireEvent('remove', this.cb, this)){
+ if(false !== this.cb.fireEvent('
before
remove', this.cb, this)){
this.cb.items.remove(this);
this.el.child('img').un('click', this.remove, this);
this.el.remove();
this.cb.items.remove(this);
this.el.child('img').un('click', this.remove, this);
this.el.remove();