summaryrefslogtreecommitdiffstats
path: root/web/widget/table/row.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/widget/table/row.js')
-rw-r--r--web/widget/table/row.js28
1 files changed, 25 insertions, 3 deletions
diff --git a/web/widget/table/row.js b/web/widget/table/row.js
index 7e617b2..2e963c7 100644
--- a/web/widget/table/row.js
+++ b/web/widget/table/row.js
@@ -4,8 +4,8 @@
*/
define(
- ["acf2/dom", "acf2/widget/abstract/fields", "jquery"],
- function(dom, Base, $) {
+ ["acf2/dom", "acf2/widget/abstract/fields", "jquery", "underscore"],
+ function(dom, Base, $, _) {
return Base.extend({
createEl: function() {
this.prevAction = null;
@@ -22,8 +22,30 @@ define(
);
},
+ 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.condition)
+ return Base.createWidget.call(
+ this, name, meta, editable, removable
+ );
+ },
+
appendWidget: function(el, label) {
- if (!el.is("td")) return null;
if (this.prevWidget) this.prevWidget.after(el);
else {
var ph = this.el.find(".placeholder");