diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-04-05 19:14:58 +0300 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-04-06 10:32:14 +0300 |
commit | c2122faa6c795fde62c6be67e820f9f47d7bedc2 (patch) | |
tree | 416762af22a61d2f43a3b8b92e8d1e153f0d902e | |
parent | 61f11eae595d454c8e21262a770dc56ab0754bbb (diff) | |
download | aconf-c2122faa6c795fde62c6be67e820f9f47d7bedc2.tar.bz2 aconf-c2122faa6c795fde62c6be67e820f9f47d7bedc2.tar.xz |
web client: preserve removability of invalid members on reload
-rw-r--r-- | web/transaction.js | 5 | ||||
-rw-r--r-- | web/widget/inline.js | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/web/transaction.js b/web/transaction.js index 26a8c35..8c91ff6 100644 --- a/web/transaction.js +++ b/web/transaction.js @@ -69,6 +69,9 @@ define( if (type.isTreeNode(data.meta) && !_.size(data.data)) data.data = type.isList(data.meta) ? [] : {}; + if (!_.isArray(data.meta.removable)) + data.meta.removable = []; + function index(name) { return _.isArray(data.data) ? name - 1 : name; } @@ -76,6 +79,8 @@ define( function ensureKeyPresence(name) { var key = index(name); if (!(key in data.data)) data.data[key] = null; + if (data.data[key] == null) + data.meta.removable.push(name); } function findSubordinateKeys(objmap, path) { diff --git a/web/widget/inline.js b/web/widget/inline.js index 57d492a..86e9128 100644 --- a/web/widget/inline.js +++ b/web/widget/inline.js @@ -45,10 +45,6 @@ define( data.set( name, type.isTreeNode(meta.members) ? {} : null ).done(function(txnValid) { - if (_.isObject(meta.removable)) - meta.removable = []; - meta.removable.push(name); - self.renderCollectionMember(name, meta); if (row) row.remove(); button.prop("class", null); |