57 lines
1.8 KiB
JavaScript
Executable File
57 lines
1.8 KiB
JavaScript
Executable File
!(function ($) {
|
|
"use strict";
|
|
wp.customize.controlConstructor["bloglo-select"] =
|
|
wp.customize.Control.extend({
|
|
ready: function () {
|
|
var control = this;
|
|
control.params.is_select2 &&
|
|
(control.container.find(".bloglo-select-control").select2({
|
|
placeholder: bloglo_customizer_localized.strings.selectCategory,
|
|
allowClear: !0,
|
|
}),
|
|
control.container.on(
|
|
"select2:opening",
|
|
".bloglo-select-control",
|
|
function () {
|
|
control.populate_select2(),
|
|
control.container.off(
|
|
"select2:opening",
|
|
".bloglo-select-control"
|
|
);
|
|
}
|
|
),
|
|
control.container.on(
|
|
"select2:select select2:unselect select2:clear",
|
|
".bloglo-select-control",
|
|
function () {
|
|
$(this).val() || control.setting.set([]);
|
|
}
|
|
));
|
|
},
|
|
populate_select2: function (e) {
|
|
var self = this,
|
|
options = "",
|
|
selected = "",
|
|
setting = self.setting.get();
|
|
"" === setting["font-family"] && (selected = ' selected="selected"'),
|
|
$.each(self.params.choices, function (id, name) {
|
|
(selected = ""),
|
|
((setting &&
|
|
self.params.multiple &&
|
|
-1 !== setting.indexOf(id)) ||
|
|
(!self.params.multiple && id === setting)) &&
|
|
(selected = ' selected="selected"'),
|
|
(options +=
|
|
'<option value="' +
|
|
id +
|
|
'"' +
|
|
selected +
|
|
">" +
|
|
name +
|
|
"</option>");
|
|
}),
|
|
self.container.find(".bloglo-select-control").html(options);
|
|
},
|
|
});
|
|
})(jQuery);
|