diff options
Diffstat (limited to 'web/widget/abstract/base.js')
-rw-r--r-- | web/widget/abstract/base.js | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/web/widget/abstract/base.js b/web/widget/abstract/base.js index 4b2fc37..5dd49a6 100644 --- a/web/widget/abstract/base.js +++ b/web/widget/abstract/base.js @@ -25,11 +25,28 @@ define( this.meta = meta; this.level = level; + function appendRemoveButton(el) { + if (removable) { + var link = dom.href().click(function() { + data.delete(name).done(function(txnValid) { + $("#content").trigger("reload", [txnValid]); + }) + }).text("Delete"); + el = dom.makeRow(el); + if (el.is("tr")) link = $("<td>").html(link); + el.append(link); + } + + return el; + } + var value = data.get(name); - if (!removable && (!editable || !meta.editable)) { + if (!editable || !meta.editable) { var el = this.staticRender(value, meta); if (el) { + el = appendRemoveButton(el); + _.each(["start", "updated"], function(event) { el.on(event, function(event) { event.stopPropagation(); @@ -42,21 +59,9 @@ define( this.makeEl(); this.dynamic = meta.dynamic; - - this.wrapped = this.wrap(); this.visible = true; - if (removable) { - var link = dom.href().click(function() { - data.delete(name).done(function(txnValid) { - $("#content").trigger("reload", [txnValid]); - }) - }).text("Delete"); - this.wrapped = dom.makeRow(this.wrapped); - if (this.wrapped.is("tr")) link = $("<td>").html(link); - this.wrapped.append(link); - } - + this.wrapped = appendRemoveButton(this.wrap()); this.wrapped.data("description", meta.description); this.handleResponse(this.requestData(value, meta)); |