1 function __fieldify_find_ancestors(objarr, name)
5 for (var i = 0 ; i < objarr.length ; i++) {
7 var item = obj.getElementsByClassName(name + '_id');
15 // fieldsdescr = { name: { type: 'typename' }, ... }
16 function Fieldify(ancestors, fieldsdescr)
20 this.ancestors = ancestors;
21 this.field = new Array();
22 for (k in fieldsdescr) {
23 this.field[k] = fieldsdescr[k];
24 if (this.field[k].type == 'fields') {
25 if (item = __fieldify_find_ancestors(this.ancestors, k)) {
26 this.field[k].obj = new Fieldify(item, this.field[k].fields);
32 Fieldify.prototype = {
36 visible: function(is_visible) {
37 this.ancestors[0].style.visibility = (is_visible ? "visible" : "hidden" );
40 // { 'name': 'value' }
41 json2dom: function(field_values)
43 for (k in this.field) {
44 if (this.field[k].type == 'value') {
45 this.fld_value_set(k, field_values[k]);
47 else if (this.field[k].type == 'radio') {
48 this.fld_radio_set(k, field_values[k]);
50 else if (this.field[k].type == 'fields') {
51 this.field[k].obj.json2dom(field_values[k]);
59 for (k in this.field) {
60 if (this.field[k].perms == 'ro')
62 if (this.field[k].type == 'value') {
63 ret[k] = this.fld_value_get(k);
65 else if (this.field[k].type == 'radio') {
66 ret[k] = this.fld_radio_get(k);
68 else if (this.field[k].type == 'fields') {
69 ret[k] = this.field[k].obj.dom2json();
75 fld_value_set: function(name, value)
77 var item = __fieldify_find_ancestors(this.ancestors, name);
79 item[0].innerHTML = value;
83 fld_value_get: function(name)
85 var item = __fieldify_find_ancestors(this.ancestors, name);
87 return (item[0].innerHTML);
92 fld_radio_set: function(name, value)
94 var arr = __fieldify_find_ancestors(this.ancestors, name);
97 if (arr[k].value == value)
98 arr[k].checked = true;
100 arr[k].checked = false;
105 fld_radio_get: function(name)
108 var arr = __fieldify_find_ancestors(this.ancestors, name);
111 if (arr[k].checked == true) {