summaryrefslogtreecommitdiffstats
path: root/web/widget/reference.js
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-02-06 23:09:13 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-02-14 22:35:56 +0200
commit38ac196b2f00c1e13a0928cd892384bc296c8a98 (patch)
tree473663650b5b4fd898bd9bab4c666dca6b900dd4 /web/widget/reference.js
parent7d434464a843a8ca8acc903367492186a0ae13e8 (diff)
downloadaconf-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.js53
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;
+ }
+);