diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-04-06 14:07:32 +0300 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-04-06 21:33:15 +0300 |
commit | 61223f79ea6aaaae435c22b111b957312dc6e091 (patch) | |
tree | bf27f22b1ed5d5952c5c062aba28f435c7f6f4f8 /web/widget/inline.js | |
parent | 30df278de3d120224f70ac801fa722ac07cffc79 (diff) | |
download | aconf-61223f79ea6aaaae435c22b111b957312dc6e091.tar.bz2 aconf-61223f79ea6aaaae435c22b111b957312dc6e091.tar.xz |
web client: hide 'Insert' button until new value it entered
Diffstat (limited to 'web/widget/inline.js')
-rw-r--r-- | web/widget/inline.js | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/web/widget/inline.js b/web/widget/inline.js index 86e9128..d016088 100644 --- a/web/widget/inline.js +++ b/web/widget/inline.js @@ -42,22 +42,34 @@ define( return; } - data.set( - name, type.isTreeNode(meta.members) ? {} : null - ).done(function(txnValid) { - self.renderCollectionMember(name, meta); - if (row) row.remove(); - button.prop("class", null); + function render(txnValid) { statusBar.validationReady(txnValid); - }).fail(function(xhr) { - statusBar.setError( - self.formatValidationError(xhr) - ); - data.delete(name); + if (row) row.remove(); + return self.renderCollectionMember(name, meta); + } + + if (type.isTreeNode(meta.members)) + data.set(name, {}).done(function(txnValid) { + render(txnValid); + button.show(); + }).fail(function(xhr) { + statusBar.setError( + self.formatValidationError(xhr) + ); + data.delete(name); + }); + + else data.set(name, null).always(function() { + var widget = render(false); + function handler(event) { + button.show(); + widget.off("validated", handler); + } + widget.on("validated", handler); }); } - button.prop("class", "hidden"); + button.hide(); if (meta.type == "collection") { var field = $("<input>").attr({type: "text"}) |