(no commit message)
[project/luci.git] / module / admin-core / src / controller / admin / uci.lua
index 2d19db1b29a34d0dd476f066ddc2ae62b7b1a00b..cb4a95ba5c2c930fc8746a19813895fc6201789b 100644 (file)
@@ -8,26 +8,29 @@ function action_apply()
        local output  = ""
        
        if changes then
-               local apply = {}
+               local com = {}
+               local run = {}
                
-               -- Collect files to be applied
+               -- Collect files to be applied and commit changes
                for i, line in ipairs(ffluci.util.split(changes)) do
                        local r = line:match("^-?([^.]+)")
                        if r then
-                               table.insert(apply, ffluci.config.uci_oncommit[r])
+                               com[r] = true
+                               
+                               if ffluci.config.uci_oncommit and ffluci.config.uci_oncommit[r] then
+                                       run[ffluci.config.uci_oncommit[r]] = true
+                               end
                        end
                end
                
-               -- Commit changes
-               ffluci.model.uci.commit()
+               -- Apply
+               for config, i in pairs(com) do
+                       ffluci.model.uci.commit(config)
+               end 
                
                -- Search for post-commit commands
-               if ffluci.config.uci_oncommit then
-                       for i, cmd in ipairs(apply) do
-                               if cmd then
-                                       output = output .. cmd .. ":" .. ffluci.sys.exec(cmd)
-                               end
-                       end
+               for cmd, i in pairs(run) do
+                       output = output .. cmd .. ":" .. ffluci.sys.exec(cmd) .. "\n"
                end
        end