|
|
|
@ -18,7 +18,7 @@ BI.MultiSelectLoader = BI.inherit(BI.Widget, {
|
|
|
|
|
valueFormatter: BI.emptyFn, |
|
|
|
|
itemsCreator: BI.emptyFn, |
|
|
|
|
onLoaded: BI.emptyFn, |
|
|
|
|
itemHeight: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT, |
|
|
|
|
itemHeight: BI.SIZE_CONSANTS.LIST_ITEM_HEIGHT |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
@ -64,23 +64,22 @@ BI.MultiSelectLoader = BI.inherit(BI.Widget, {
|
|
|
|
|
}, opts.el), |
|
|
|
|
itemsCreator: function (op, callback) { |
|
|
|
|
var startValue = self._startValue; |
|
|
|
|
var firstItems = []; |
|
|
|
|
self.storeValue && (op = BI.extend(op || {}, { |
|
|
|
|
selectedValues: BI.isKey(startValue) && self.storeValue.type === BI.Selection.Multi |
|
|
|
|
? self.storeValue.value.concat(startValue) : self.storeValue.value |
|
|
|
|
})); |
|
|
|
|
opts.itemsCreator(op, function (ob) { |
|
|
|
|
hasNext = ob.hasNext; |
|
|
|
|
var firstItems = []; |
|
|
|
|
if (op.times === 1 && self.storeValue) { |
|
|
|
|
var json = BI.map(self.storeValue.value, function (i, v) { |
|
|
|
|
var txt = opts.valueFormatter(v) || v; |
|
|
|
|
return { |
|
|
|
|
text: txt, |
|
|
|
|
value: v, |
|
|
|
|
title: txt, |
|
|
|
|
selected: self.storeValue.type === BI.Selection.Multi |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
if (self.storeValue) { |
|
|
|
|
var json = BI.map(self.storeValue.value.slice((op.times - 1) * 10, op.times * 10), function (i, v) { |
|
|
|
|
var txt = opts.valueFormatter(v) || v; |
|
|
|
|
return { |
|
|
|
|
text: txt, |
|
|
|
|
value: v, |
|
|
|
|
title: txt, |
|
|
|
|
selected: self.storeValue.type === BI.Selection.Multi |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
if (op.times === 1) { |
|
|
|
|
if (BI.isKey(self._startValue) && !BI.contains(self.storeValue.value, self._startValue)) { |
|
|
|
|
var txt = opts.valueFormatter(startValue) || startValue; |
|
|
|
|
json.unshift({ |
|
|
|
@ -90,10 +89,22 @@ BI.MultiSelectLoader = BI.inherit(BI.Widget, {
|
|
|
|
|
selected: true |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
firstItems = self._createItems(json); |
|
|
|
|
} |
|
|
|
|
if (op.times < Math.floor((self.storeValue.value.length - 1) / 10)) { |
|
|
|
|
hasNext = true; |
|
|
|
|
callback(self._createItems(json), op.keyword || ""); |
|
|
|
|
(op.times === 1) && self._scrollToTop(); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
firstItems = self._createItems(json); |
|
|
|
|
} |
|
|
|
|
var times = op.times - Math.max(0, Math.floor((self.storeValue.value.length - 1) / 10)); |
|
|
|
|
opts.itemsCreator(BI.extend({}, op, { |
|
|
|
|
times: times |
|
|
|
|
}), function (ob) { |
|
|
|
|
hasNext = ob.hasNext; |
|
|
|
|
callback(firstItems.concat(self._createItems(ob.items)), ob.keyword || ""); |
|
|
|
|
if (op.times === 1 && self.storeValue) { |
|
|
|
|
if (times === 1 && self.storeValue) { |
|
|
|
|
BI.isKey(startValue) && (self.storeValue.type === BI.Selection.All ? BI.remove(self.storeValue.value, startValue) : BI.pushDistinct(self.storeValue.value, startValue)); |
|
|
|
|
self.setValue(self.storeValue); |
|
|
|
|
} |
|
|
|
@ -190,4 +201,4 @@ BI.MultiSelectLoader = BI.inherit(BI.Widget, {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
BI.MultiSelectLoader.EVENT_CHANGE = "EVENT_CHANGE"; |
|
|
|
|
BI.shortcut("bi.multi_select_loader", BI.MultiSelectLoader); |
|
|
|
|
BI.shortcut("bi.multi_select_loader", BI.MultiSelectLoader); |
|
|
|
|