From c2122faa6c795fde62c6be67e820f9f47d7bedc2 Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Sat, 5 Apr 2014 19:14:58 +0300 Subject: web client: preserve removability of invalid members on reload --- web/transaction.js | 5 +++++ 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); -- cgit v1.2.3