/* * Copyright (c) 2012-2014 Kaarle Ritvanen * See LICENSE file for license details */ define( ["aconf/dom", "aconf/widget/abstract/fields", "jquery", "underscore"], function(dom, Base, $, _) { return Base.extend({ createEl: function() { this.prevAction = null; this.prevWidget = null; return $("").html($("").addClass("placeholder")); }, setStatus: function(status) { this.wrapped.trigger("statusChanged", [status]); }, showHeading: false, addActionButton: function(label, action) { (this.prevAction ? this.prevAction : this.el.find(".placeholder")).after( $("").html(dom.href().text(label).click(action)) ); }, createModelWidgets: function(fields, editable) { Base.createModelWidgets.call(this, fields, editable); var self = this; var tdFields = []; _.each(fields, function(field) { if (field.name in self.widgets && self.widgets[field.name].is("td")) tdFields.push(field); }); if (_.size(tdFields) == _.size(fields)) return; Base.createModelWidgets.call(this, tdFields, false); this.wrapped.trigger("hasDetails", [this.path]); }, createWidget: function(name, meta, editable, removable) { if (!(meta.detail || meta.condition)) return Base.createWidget.call( this, name, meta, editable, removable ); }, appendWidget: function(el, label) { if (this.prevWidget) this.prevWidget.after(el); else { var ph = this.el.find(".placeholder"); ph.after(el); ph.remove(); } this.prevWidget = el; return el; } }); } );