diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-02-21 11:09:57 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-02-21 13:13:26 +0200 |
commit | c90ff48c00b0fcd27284c30625b66350e1731739 (patch) | |
tree | 04c42de07e583c3b06bbcbfd2dac011857131265 /web/widget/inline.js | |
parent | 870d9c2e141d9fd494657f36c8c8e162eb446dff (diff) | |
download | aconf-c90ff48c00b0fcd27284c30625b66350e1731739.tar.bz2 aconf-c90ff48c00b0fcd27284c30625b66350e1731739.tar.xz |
web client: show error message when collection member insertion fails
Diffstat (limited to 'web/widget/inline.js')
-rw-r--r-- | web/widget/inline.js | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/web/widget/inline.js b/web/widget/inline.js index 4326ba0..8a81854 100644 --- a/web/widget/inline.js +++ b/web/widget/inline.js @@ -42,18 +42,18 @@ define( var self = this; var keys = _.clone(_.keys(data.data)); - + var button = $("<input>").attr( {type: "submit", value: "Insert"} ).click(function() { - var getter; + var getter, row; function insert() { var name = getter(); if (_.contains(keys, name)) { - button.prop("class", null); + statusBar.setError("Already exists: " + name); return; } keys.push(name); @@ -66,8 +66,14 @@ define( meta.removable.push(name); self.renderCollectionMember(name, meta); + if (row) row.remove(); button.prop("class", null); statusBar.validationReady(txnValid); + }).fail(function(xhr) { + statusBar.setError( + self.formatValidationError(xhr) + ); + data.delete(name); }); } @@ -75,12 +81,8 @@ define( if (meta.type == "collection") { var field = $("<input>").attr({type: "text"}); - var row = $("<tr>").html($("<td>").html(field)); - getter = function() { - var res = field.val(); - row.remove(); - return res; - } + row = $("<tr>").html($("<td>").html(field)); + getter = function() { return field.val(); } field.change(insert); self.appendRow(row); } |