summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-09-18 22:00:22 +0300
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-09-18 22:00:22 +0300
commit77ab8a015a882de281492924687bd462ac01616b (patch)
tree7e6dc28ea6aba34afa2ee549ca4f29109ab6c6d2 /web
parent561ce9075457cda0253d32874b5989afd051ff7a (diff)
downloadaconf-77ab8a015a882de281492924687bd462ac01616b.tar.bz2
aconf-77ab8a015a882de281492924687bd462ac01616b.tar.xz
web client: use ComboBox as prototype for Reference
Diffstat (limited to 'web')
-rw-r--r--web/client.js29
1 files changed, 19 insertions, 10 deletions
diff --git a/web/client.js b/web/client.js
index b864997..403089f 100644
--- a/web/client.js
+++ b/web/client.js
@@ -394,7 +394,11 @@ $(function() {
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;
},
@@ -412,7 +416,7 @@ $(function() {
this.setElStatus(this.el, status);
},
- get: function() { return this.el.val() || null; }
+ get: function() { return this.field.val() || null; }
}
var ComboBox = Object.create(Field);
@@ -479,31 +483,36 @@ $(function() {
};
Inline.setStatus = function(status) {};
- var Reference = Object.create(Link);
+ var Reference = Object.create(ComboBox);
Reference.staticRender = function(value, level) {
return Link.staticRender(value, level).text(value);
};
Reference.setElStatus = function(el, status) {
ComboBox.setElStatus(el.find("select"), status);
};
+ Reference.init = function(
+ value, meta, update, remove, label, level
+ ) {
+ this.field = ComboBox.render(value, meta, level);
+ return _.bind(ComboBox.init, this)(
+ value, meta, update, remove, label, level
+ );
+ }
Reference.render = function(value, meta, level) {
+ var el = $("<div>").html(this.field);
+ el.append(" ");
+
var link = $("<div>");
var update = _.bind(function() {
link.html(Link.staticRender(this.get(), level));
- }, this);
-
- this.cbox = Object.create(ComboBox);
-
- var el = $("<div>");
- el.append(this.cbox.init(value, meta, update));
- el.append(" ");
+ }, this);
el.append(link);
+ this.field.change(update);
update();
return el;
};
- Reference.get = function() { return this.cbox.get(); };
var widgets = {