diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-09-18 22:40:19 +0300 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-09-18 23:21:16 +0300 |
commit | 7cc381a85885571f7bc1d7c2ccd532b70cdb47ce (patch) | |
tree | e6b18d948d4b858ed79e0fb181d1425bec182faa /web | |
parent | 2c34e2d512973ad3882aa32bb201fe4efa634ef8 (diff) | |
download | aconf-7cc381a85885571f7bc1d7c2ccd532b70cdb47ce.tar.bz2 aconf-7cc381a85885571f7bc1d7c2ccd532b70cdb47ce.tar.xz |
web client: combine format, init methods of widgets
Diffstat (limited to 'web')
-rw-r--r-- | web/client.js | 57 |
1 files changed, 26 insertions, 31 deletions
diff --git a/web/client.js b/web/client.js index bca5595..dd30575 100644 --- a/web/client.js +++ b/web/client.js @@ -358,11 +358,21 @@ $(function() { } var Field = { - format: function(value, status, label, level) { - var el = this.staticRender(value, level); - this.setElStatus(el, status); - if (label) return this.wrap(el, label).row; - return el; + init: function(value, meta, label, level, update, remove) { + if (!update) { + var el = this.staticRender(value, level); + this.setElStatus(el, status); + if (label) return this.wrap(el, label).row; + return el; + } + + this.el = this.render(value, meta, level); + this.el.change(update); + + if (!this.field) this.field = this.el; + + this.els = this.wrap(this.el, label, remove); + return this.els.row; }, staticRender: function(value, level) { @@ -391,18 +401,6 @@ $(function() { return {row: row, msg: msg}; }, - init: function(value, meta, update, remove, label, level) { - this.el = this.render(value, meta, level); - this.el.change(update); - - if (!this.field) this.field = this.el; - - if (!label) return this.el; - - this.els = this.wrap(this.el, label, remove); - return this.els.row; - }, - render: function(value, meta, level) { return $("<input>").attr({type: "text", value: value}); }, @@ -491,11 +489,11 @@ $(function() { ComboBox.setElStatus(el.find("select"), status); }; Reference.init = function( - value, meta, update, remove, label, level + value, meta, label, level, update, remove ) { this.field = ComboBox.render(value, meta, level); return _.bind(ComboBox.init, this)( - value, meta, update, remove, label, level + value, meta, label, level, update, remove ); } Reference.render = function(value, meta, level) { @@ -562,11 +560,7 @@ $(function() { if (!(meta.widget in widgets)) return $("<tr>").html($("<td>").text(value)); - var widget = widgets[meta.widget]; - if (!editable) - return widget.format(value, status, label, level); - - widget = Object.create(widget); + var widget = Object.create(widgets[meta.widget]); function change() { if (isTreeNode(meta)) return; @@ -606,20 +600,21 @@ $(function() { var el = widget.init( value, meta, - change, + label, + level, + editable ? change : null, removable ? function() { data.delete(name).done(function(txnValid) { statusBar.validationReady(txnValid) fetchAndRender(path); }); - } : null, - label, - level + } : null ); - if (status == "invalid") change(); - - widget.setStatus(status); + if (editable) { + if (status == "invalid") change(); + widget.setStatus(status); + } if (el.is("tr")) appendRow(el); else { |