From 6a93c44c9a9130626aba9a581ca333065e0dedfa Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Fri, 31 Jan 2014 10:19:51 +0200 Subject: web client: extract list index adjustment functions --- web/client.js | 52 +++++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 23 deletions(-) (limited to 'web') diff --git a/web/client.js b/web/client.js index 5dfe9ef..63680a6 100644 --- a/web/client.js +++ b/web/client.js @@ -352,6 +352,34 @@ $(function() { return data.set(name, name); }; + function adjustListIndex(oldIndex, newIndex) { + var opath = join(path, oldIndex); + var npath = join(path, newIndex); + _.each( + [changed, invalid], + function(map) { + _.each( + _.keys(map), + function(p) { + if (isSubordinate( + p, opath + )) { + map[npath + + p.substring( + opath.length + )] = map[p]; + delete map[p]; + } + }); + } + ); + } + + function adjustListIndices(start, end) { + for (var i = start; i < end; i++) + adjustListIndex(i + 1, i); + } + function _delete(name) { var def = $.Deferred(); var length = data.data.length; @@ -364,29 +392,7 @@ $(function() { changed[path] = path; if (data.meta.type == "list") - for (var i = name; i < length; i++) { - var opath = join(path, i + 1); - var npath = join(path, i); - - _.each( - [changed, invalid], - function(map) { - _.each( - _.keys(map), - function(p) { - if (isSubordinate( - p, opath - )) { - map[npath + - p.substring( - opath.length - )] = map[p]; - delete map[p]; - } - }); - } - ); - } + adjustListIndices(name, length); } def.resolve(txnValid); -- cgit v1.2.3