Allow setting multiple values for ButtonGroup #360

Merged
j merged 1 commit from qsniyg/oxjs:buttongroup-values into master 2023-10-07 09:20:17 +00:00
Showing only changes of commit 3d7c0d5671 - Show all commits

View file

@ -31,18 +31,29 @@ Ox.ButtonGroup = function(options, self) {
.options(options || {})
.update({
value: function() {
// fixme: this doesn't work in cases where
// multiple buttons can be selected
var values = Ox.makeArray(self.options.value);
var positions = [];
Ox.forEach(values, function(value) {
var position = Ox.getIndexById(
self.options.buttons, self.options.value
self.options.buttons, value
);
if (position > -1) {
self.$buttons[position].trigger('click');
} else if (self.options.min == 0) {
self.$buttons.forEach(function($button, i) {
$button.options('value') && $button.trigger('click');
});
positions.push(position);
}
});
if (positions.length < self.options.min) {
return;
}
Ox.forEach(self.$buttons, function(button, pos) {
var enabled = positions.indexOf(pos) > -1;
if (enabled !== button.value()) {
button.trigger('click');
}
});
}
})
.addClass(