diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-01-31 10:14:15 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-02-01 01:43:45 +0200 |
commit | 33de0e7eba4962744a1c93556d0b6d5b4c50221b (patch) | |
tree | caa778752440edc6b918d16de46fb12ae6336af0 /web | |
parent | 34ad0e78940d915d9875001f2b396b2c99221a8b (diff) | |
download | aconf-33de0e7eba4962744a1c93556d0b6d5b4c50221b.tar.bz2 aconf-33de0e7eba4962744a1c93556d0b6d5b4c50221b.tar.xz |
web client: extract private non-exclusive deletion function
Diffstat (limited to 'web')
-rw-r--r-- | web/client.js | 86 |
1 files changed, 45 insertions, 41 deletions
diff --git a/web/client.js b/web/client.js index 255bc01..5dfe9ef 100644 --- a/web/client.js +++ b/web/client.js @@ -352,51 +352,55 @@ $(function() { return data.set(name, name); }; - data.delete = function(name) { - return exclusive(function() { - var def = $.Deferred(); - var length = data.data.length; - - data.set(name, null).done(function(txnValid) { - if (isTreeNode(data.meta) && - data.meta.type != "set") { - - delete changed[join(path, name)]; - 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]; - } - }); - } - ); - } - } - def.resolve(txnValid); + function _delete(name) { + var def = $.Deferred(); + var length = data.data.length; + + data.set(name, null).done(function(txnValid) { + if (isTreeNode(data.meta) && + data.meta.type != "set") { + + delete changed[join(path, name)]; + 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]; + } + }); + } + ); + } + } + def.resolve(txnValid); - }).fail(function() { def.reject(); }); + }).fail(function() { def.reject(); }); - return def; - }); + return def; } + data.delete = function(name) { + return exclusive(function() { + return _delete(name); + }); + }; + data.invoke = function(name) { return objRequest(join(path, name), {type: "POST"}); }; |