1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
/*
* Copyright (c) 2012-2014 Kaarle Ritvanen
* See LICENSE file for license details
*/
define(
["acf2/dom", "acf2/widget/abstract/fields", "jquery", "underscore"],
function(dom, Base, $, _) {
return Base.extend({
createEl: function() {
this.prevAction = null;
this.prevWidget = null;
return $("<tr>").html($("<td>").prop("class", "placeholder"));
},
setStatus: function(status) {
this.wrapped.trigger("statusChanged", [status]);
},
showHeading: false,
addActionButton: function(label, action) {
(this.prevAction ?
this.prevAction : this.el.find(".placeholder")).after(
$("<td>").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;
}
});
}
);
|