You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.1 KiB
JavaScript

8 years ago
'use strict';
define('settings/select', function () {
var Settings = null;
var SettingsSelect;
function addOptions(element, options) {
for (var i = 0; i < options.length; i += 1) {
var optionData = options[i];
var value = optionData.text || optionData.value;
delete optionData.text;
element.append($(Settings.helper.createElement('option', optionData)).text(value));
}
}
SettingsSelect = {
types: ['select'],
use: function () {
Settings = this;
},
create: function (ignore, ignored, data) {
var element = $(Settings.helper.createElement('select'));
// prevent data-options from being attached to DOM
addOptions(element, data['data-options']);
delete data['data-options'];
return element;
},
init: function (element) {
var options = element.data('options');
if (options != null) {
addOptions(element, options);
}
},
set: function (element, value) {
element.val(value || '');
},
get: function (element, ignored, empty) {
var value = element.val();
if (empty || value) {
return value;
}
},
};
return SettingsSelect;
});