summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/htdocs/luci-static/resources/uci.js
diff options
context:
space:
mode:
Diffstat (limited to 'modules/luci-base/htdocs/luci-static/resources/uci.js')
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/uci.js25
1 files changed, 13 insertions, 12 deletions
diff --git a/modules/luci-base/htdocs/luci-static/resources/uci.js b/modules/luci-base/htdocs/luci-static/resources/uci.js
index e6582b3e2..640661f0f 100644
--- a/modules/luci-base/htdocs/luci-static/resources/uci.js
+++ b/modules/luci-base/htdocs/luci-static/resources/uci.js
@@ -301,7 +301,8 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ {
* The ID of the section to remove.
*/
remove: function(conf, sid) {
- var n = this.state.creates,
+ var v = this.state.values,
+ n = this.state.creates,
c = this.state.changes,
d = this.state.deletes;
@@ -309,7 +310,7 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ {
if (n[conf] && n[conf][sid]) {
delete n[conf][sid];
}
- else {
+ else if (v[conf] && v[conf][sid]) {
if (c[conf])
delete c[conf][sid];
@@ -791,6 +792,16 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ {
pkgs = { },
tasks = [];
+ if (d)
+ for (var conf in d) {
+ for (var sid in d[conf]) {
+ var o = d[conf][sid];
+ tasks.push(self.callDelete(conf, sid, (o === true) ? null : o));
+ }
+
+ pkgs[conf] = true;
+ }
+
if (n)
for (var conf in n) {
for (var sid in n[conf]) {
@@ -823,16 +834,6 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ {
pkgs[conf] = true;
}
- if (d)
- for (var conf in d) {
- for (var sid in d[conf]) {
- var o = d[conf][sid];
- tasks.push(self.callDelete(conf, sid, (o === true) ? null : o));
- }
-
- pkgs[conf] = true;
- }
-
if (r)
for (var conf in r)
pkgs[conf] = true;