X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Ffieldify.js;h=19bf23fdacc07046b0a4c372e60aaa27f634c0c0;hb=5cf7309d9937fba5b9b97c3bf0d7c6ca2db1e4df;hp=254dd0d2de399cecd05b5ac03f4bc539c17d5452;hpb=29386faba01ac22d3d47e5f467412dc63b4e22cf;p=brisk.git diff --git a/web/fieldify.js b/web/fieldify.js index 254dd0d..19bf23f 100644 --- a/web/fieldify.js +++ b/web/fieldify.js @@ -3,7 +3,7 @@ function Fieldify(ancestor, fieldsdescr) { this.ancestor = ancestor; - + this.field = new Array(); for (k in fieldsdescr) { this.field[k] = fieldsdescr[k]; @@ -13,13 +13,13 @@ function Fieldify(ancestor, fieldsdescr) Fieldify.prototype = { ancestor: null, field: null, - + visible: function(is_visible) { this.ancestor.style.visibility = (is_visible ? "visible" : "hidden" ); }, // { 'name': 'value' } - populate: function(field_values) + json2dom: function(field_values) { for (k in this.field) { if (this.field[k].type == 'value') { @@ -31,24 +31,57 @@ Fieldify.prototype = { } }, + dom2json: function() + { + var ret = {}; + for (k in this.field) { + if (this.field[k].perms == 'ro') + continue; + if (this.field[k].type == 'value') { + ret[k] = this.fld_value_get(k); + } + else if (this.field[k].type == 'radio') { + ret[k] = this.fld_radio_get(k); + } + } + return ret; + }, + fld_value_set: function(name, value) { - console.log(name + "=" + value); this.ancestor.getElementsByClassName(name + '_id')[0].innerHTML = value; }, - + + fld_value_get: function(name) + { + return this.ancestor.getElementsByClassName(name + '_id')[0].innerHTML; + }, + fld_radio_set: function(name, value) { var arr = this.ancestor.getElementsByClassName(name + '_id'); - console.log(name + "=" + value); - for (k in arr) { if (arr[k].value == value) arr[k].checked = true; - else + else arr[k].checked = false; } }, + + fld_radio_get: function(name) + { + var arr = this.ancestor.getElementsByClassName(name + '_id'); + ret = null; + + for (k in arr) { + if (arr[k].checked == true) { + ret = arr[k].value; + break; + } + } + return ret; + }, + tap: null }