summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-04-05 19:14:58 +0300
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-04-06 10:32:14 +0300
commitc2122faa6c795fde62c6be67e820f9f47d7bedc2 (patch)
tree416762af22a61d2f43a3b8b92e8d1e153f0d902e /web
parent61f11eae595d454c8e21262a770dc56ab0754bbb (diff)
downloadaconf-c2122faa6c795fde62c6be67e820f9f47d7bedc2.tar.bz2
aconf-c2122faa6c795fde62c6be67e820f9f47d7bedc2.tar.xz
web client: preserve removability of invalid members on reload
Diffstat (limited to 'web')
-rw-r--r--web/transaction.js5
-rw-r--r--web/widget/inline.js4
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);