summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/client.js52
1 files changed, 29 insertions, 23 deletions
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);