diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-02-06 23:09:13 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-02-14 22:35:56 +0200 |
commit | 38ac196b2f00c1e13a0928cd892384bc296c8a98 (patch) | |
tree | 473663650b5b4fd898bd9bab4c666dca6b900dd4 /web/widget/reference.js | |
parent | 7d434464a843a8ca8acc903367492186a0ae13e8 (diff) | |
download | aconf-38ac196b2f00c1e13a0928cd892384bc296c8a98.tar.bz2 aconf-38ac196b2f00c1e13a0928cd892384bc296c8a98.tar.xz |
web client: extract each widget to a dedicated file
Diffstat (limited to 'web/widget/reference.js')
-rw-r--r-- | web/widget/reference.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/web/widget/reference.js b/web/widget/reference.js new file mode 100644 index 0000000..4413cc9 --- /dev/null +++ b/web/widget/reference.js @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2012-2014 Kaarle Ritvanen + * See LICENSE file for license details + */ + +define( + ["acf2/dom", "acf2/widget/combobox", "jquery", "underscore"], + function(dom, Base, $, _) { + var Class = Base.extend({ + init: function( + data, name, meta, level, editable, removable + ) { + this.field = Base.createEl(); + return this.super( + Class, + "init", + data, + name, + meta, + level, + editable, + removable + ); + }, + + staticRender: function(value, meta) { + return $("<td>").html(dom.objectRef(value).text(value)); + }, + + statusEl: function() { return this.el.find("select"); }, + + createEl: function() { return $("<div>"); }, + + render: function(value, meta) { + this.super(Class, "render", value, meta); + + this.el.html(this.field); + this.el.append(" "); + + var link = $("<div>"); + var update = _.bind(function() { + link.html(dom.objectRef(this.get())); + }, this); + this.el.append(link); + + this.field.change(update); + update(); + } + }); + + return Class; + } +); |