diff options
Diffstat (limited to 'web/widget/table')
-rw-r--r-- | web/widget/table/header.js | 37 | ||||
-rw-r--r-- | web/widget/table/row.js | 27 |
2 files changed, 64 insertions, 0 deletions
diff --git a/web/widget/table/header.js b/web/widget/table/header.js new file mode 100644 index 0000000..0dce26e --- /dev/null +++ b/web/widget/table/header.js @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2012-2014 Kaarle Ritvanen + * See LICENSE file for license details + */ + +define(["acf2/widget/table/row", "jquery"], function(Base, $) { + var Class = Base.extend({ + init: function( + data, name, meta, level, editable, removable + ) { + this.header = $("<tr>"); + var table = $("<table>"); + table.append($("<thead>").html(this.header)); + table.append($("<tbody>").html( + this.super( + Class, + "init", + data, + name, + meta, + level, + editable, + removable + ) + )); + return table; + }, + + appendWidget: function(el, label) { + el = this.super(Class, "appendWidget", el, label); + if (el) this.header.append($("<th>").text(label)); + return el; + } + }); + + return Class; +}); diff --git a/web/widget/table/row.js b/web/widget/table/row.js new file mode 100644 index 0000000..23aadc3 --- /dev/null +++ b/web/widget/table/row.js @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2012-2014 Kaarle Ritvanen + * See LICENSE file for license details + */ + +define(["acf2/widget/abstract/fields", "jquery"], function(Base, $) { + return Base.extend({ + createEl: function() { + this.previous = null; + return $("<tr>").html($("<td>").prop("class", "placeholder")); + }, + + showHeading: false, + + appendWidget: function(el, label) { + if (!el.is("td")) return null; + if (this.previous) this.previous.after(el); + else { + var ph = this.el.find(".placeholder"); + ph.after(el); + ph.remove(); + } + this.previous = el; + return el; + } + }); +}); |