diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-02-22 00:40:03 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-02-24 13:01:56 +0200 |
commit | f6c04ff1d0395210f595e16cfc8757bb8f7ee706 (patch) | |
tree | 4239cc4b5a8bde4f731031887faa4fab601fa047 /web/widget/abstract/node.js | |
parent | 5df988bd8cad043d9195c2554a3978ffe1c031f0 (diff) | |
download | aconf-f6c04ff1d0395210f595e16cfc8757bb8f7ee706.tar.bz2 aconf-f6c04ff1d0395210f595e16cfc8757bb8f7ee706.tar.xz |
web client: split abstract/inline widget into two
Diffstat (limited to 'web/widget/abstract/node.js')
-rw-r--r-- | web/widget/abstract/node.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/web/widget/abstract/node.js b/web/widget/abstract/node.js new file mode 100644 index 0000000..6d42345 --- /dev/null +++ b/web/widget/abstract/node.js @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2012-2014 Kaarle Ritvanen + * See LICENSE file for license details + */ + +define( + ["acf2/statusbar", "acf2/widget/abstract/inline", "jquery", "underscore"], + function(statusBar, Base, $, _) { + return Base.extend({ + init: function( + data, name, meta, level, editable, removable + ) { + return Base.init.call( + this, + data, + name, + meta, + Math.min(6, level + 1), + editable, + removable + ); + }, + + showStatus: false, + + _requestData: function(value, meta) { return this.refreshData(); }, + + showHeading: true, + + render: function(data, meta) { + if (this.showHeading) + this.el.html( + $("<h" + this.level + ">").text(meta["ui-name"]) + ); + }, + + wrap: function() { return this.el; }, + + validate: function(data) { + Base.validate.call(this, data); + + if (this.data.match(this.meta.condition)) { + var valid = data.validate(); + this.setStatus(data.status()); + statusBar.validationReady(valid); + } + + if (this.fields) + _.each(this.fields, function(field) { + field.trigger("updated"); + }); + } + }); + } +); |