diff options
author | Aleksander Machniak <machniak@kolabsys.com> | 2014-04-15 10:24:36 (GMT) |
---|---|---|
committer | Aleksander Machniak <machniak@kolabsys.com> | 2014-04-15 10:24:36 (GMT) |
commit | de9b0981f42fce13e15d9030d6358a8916a2cf14 (patch) | |
tree | b36f6fea00ee943ac0e898ef7be7438d80714962 | |
parent | 1c98d2b8d2c1169705c4056dec0e49aa07534c0d (diff) | |
download | kolab-wap-de9b0981f42fce13e15d9030d6358a8916a2cf14.tar.gz |
Fix checkboxes handling - fixes e.g. Hosted and Optional checkboxes in object type form
-rw-r--r-- | public_html/js/kolab_admin.js | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/public_html/js/kolab_admin.js b/public_html/js/kolab_admin.js index 1a192e5..7178c97 100644 --- a/public_html/js/kolab_admin.js +++ b/public_html/js/kolab_admin.js @@ -799,8 +799,8 @@ function kolab_admin() delete data.json[this.name + '-unit']; }); - // checkbox inputs - $('input[type="checkbox"]', form).each(function() { + // "boolean" checkbox inputs + $('input[type="checkbox"][value="TRUE"]', form).each(function() { data.json[this.name] = this.checked ? 'TRUE' : 'FALSE'; }); @@ -2128,18 +2128,17 @@ function kolab_admin() this.serialize_form = function(id) { - var i, v, json = {}, - form = $(id), - query = form.serializeArray(), - extra = this.env.extra_fields || []; + var json = {}, form = $(id), query = form.serializeArray(); - for (i in query) - json[query[i].name] = query[i].value; + // convert to name-value object + $.each(query, function() { json[this.name] = this.value; }); // read extra (disabled) fields - for (i=0; i<extra.length; i++) - if (v = $('[name="'+extra[i]+'"]', form).val()) - json[extra[i]] = v; + $.each(this.env.extra_fields || [], function() { + var value = $('[name="' + this + '"]', form).val(); + if (value) + json[this] = value; + }); // serializeArray() doesn't work properly for multi-select $('select[multiple="multiple"]', form).each(function() { @@ -2860,7 +2859,7 @@ function kolab_admin() $('select[name="attr_value"]').val(attr ? data.valtype : 'normal'); $('select[name="attr_validate"]').val(data.validate || ''); $('input[name="attr_default"]').val(data['default'] || ''); - $('input[name="attr_optional"]').attr('checked', attr ? data.optional : false); + $('input[name="attr_optional"]').prop('checked', attr ? data.optional : false); $('input[name="attr_data"]').val(data.data || ''); $('input[name="attr_maxcount"]').val(data.maxcount || ''); $('textarea[name="attr_options"]').val(data.values ? data.values.join("\n") : ''); |