summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--loleaflet/src/control/Control.JSDialogBuilder.js7
-rw-r--r--loleaflet/src/control/Control.MobileWizardBuilder.js33
2 files changed, 37 insertions, 3 deletions
diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js b/loleaflet/src/control/Control.JSDialogBuilder.js
index 938045cdc0..7869e4473e 100644
--- a/loleaflet/src/control/Control.JSDialogBuilder.js
+++ b/loleaflet/src/control/Control.JSDialogBuilder.js
@@ -902,10 +902,11 @@ L.Control.JSDialogBuilder = L.Control.extend({
},
_radiobuttonControl: function(parentContainer, data, builder) {
- var container = L.DomUtil.createWithId('div', data.id + '-container', parentContainer);
+ var container = L.DomUtil.createWithId('div', data.id, parentContainer);
L.DomUtil.addClass(container, 'radiobutton');
+ L.DomUtil.addClass(container, builder.options.cssClass);
- var radiobutton = L.DomUtil.createWithId('input', data.id, container);
+ var radiobutton = L.DomUtil.create('input', '', container);
radiobutton.type = 'radio';
if (data.group)
@@ -922,7 +923,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
$(radiobutton).prop('checked', true);
radiobutton.addEventListener('change', function() {
- builder.callback('radiobutton', 'change', radiobutton, this.checked, builder);
+ builder.callback('radiobutton', 'change', container, this.checked, builder);
});
if (data.hidden)
diff --git a/loleaflet/src/control/Control.MobileWizardBuilder.js b/loleaflet/src/control/Control.MobileWizardBuilder.js
index c3509bb894..186f48396e 100644
--- a/loleaflet/src/control/Control.MobileWizardBuilder.js
+++ b/loleaflet/src/control/Control.MobileWizardBuilder.js
@@ -19,6 +19,7 @@ L.Control.MobileWizardBuilder = L.Control.JSDialogBuilder.extend({
this._controlHandlers['listbox'] = this._listboxControl;
this._controlHandlers['checkbox'] = this._checkboxControl;
this._controlHandlers['basespinfield'] = this.baseSpinField;
+ this._controlHandlers['radiobutton'] = this._radiobuttonControl;
},
baseSpinField: function(parentContainer, data, builder, customCallback) {
@@ -237,6 +238,38 @@ L.Control.MobileWizardBuilder = L.Control.JSDialogBuilder.extend({
return false;
},
+ // TODO: use the same handler as desktop one
+ _radiobuttonControl: function(parentContainer, data, builder) {
+ var container = L.DomUtil.createWithId('div', data.id + '-container', parentContainer);
+ L.DomUtil.addClass(container, 'radiobutton');
+ L.DomUtil.addClass(container, builder.options.cssClass);
+
+ var radiobutton = L.DomUtil.createWithId('input', data.id, container);
+ radiobutton.type = 'radio';
+
+ if (data.group)
+ radiobutton.name = data.group;
+
+ var radiobuttonLabel = L.DomUtil.create('label', '', container);
+ radiobuttonLabel.innerHTML = builder._cleanText(data.text);
+ radiobuttonLabel.for = data.id;
+
+ if (data.enabled === 'false' || data.enabled === false)
+ $(radiobutton).attr('disabled', 'disabled');
+
+ if (data.checked === 'true' || data.checked === true)
+ $(radiobutton).prop('checked', true);
+
+ radiobutton.addEventListener('change', function() {
+ builder.callback('radiobutton', 'change', radiobutton, this.checked, builder);
+ });
+
+ if (data.hidden)
+ $(radiobutton).hide();
+
+ return false;
+ },
+
build: function(parent, data) {
this._amendJSDialogData(data);
for (var childIndex in data) {