From 38ac196b2f00c1e13a0928cd892384bc296c8a98 Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Thu, 6 Feb 2014 23:09:13 +0200 Subject: web client: extract each widget to a dedicated file --- web/widget/reference.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 web/widget/reference.js (limited to 'web/widget/reference.js') 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 $("").html(dom.objectRef(value).text(value)); + }, + + statusEl: function() { return this.el.find("select"); }, + + createEl: function() { return $("
"); }, + + render: function(value, meta) { + this.super(Class, "render", value, meta); + + this.el.html(this.field); + this.el.append(" "); + + var link = $("
"); + var update = _.bind(function() { + link.html(dom.objectRef(this.get())); + }, this); + this.el.append(link); + + this.field.change(update); + update(); + } + }); + + return Class; + } +); -- cgit v1.2.3