diff options
Diffstat (limited to 'src/ffluci/controller/admin')
-rw-r--r-- | src/ffluci/controller/admin/index.lua | 9 | ||||
-rw-r--r-- | src/ffluci/controller/admin/network.lua | 10 | ||||
-rw-r--r-- | src/ffluci/controller/admin/uci.lua | 57 |
3 files changed, 76 insertions, 0 deletions
diff --git a/src/ffluci/controller/admin/index.lua b/src/ffluci/controller/admin/index.lua new file mode 100644 index 0000000000..3ee564f640 --- /dev/null +++ b/src/ffluci/controller/admin/index.lua @@ -0,0 +1,9 @@ +module(..., package.seeall) + +menu = { + descr = "Übersicht", + order = 10, + entries = { + {action = "contact", descr = "Kontakt"} + } +}
\ No newline at end of file diff --git a/src/ffluci/controller/admin/network.lua b/src/ffluci/controller/admin/network.lua new file mode 100644 index 0000000000..f76dce5555 --- /dev/null +++ b/src/ffluci/controller/admin/network.lua @@ -0,0 +1,10 @@ +module(..., package.seeall) + +menu = { + descr = "Netzwerk", + order = 20, + entries = { + {action = "vlan", descr = "VLAN"}, + {action = "ifaces", descr = "Schnittstellen"} + } +}
\ No newline at end of file diff --git a/src/ffluci/controller/admin/uci.lua b/src/ffluci/controller/admin/uci.lua new file mode 100644 index 0000000000..db70eb6a63 --- /dev/null +++ b/src/ffluci/controller/admin/uci.lua @@ -0,0 +1,57 @@ +module("ffluci.controller.admin.uci", package.seeall) + +-- This function has a higher priority than the admin_uci/apply template +function action_apply() + local changes = ffluci.model.uci.changes() + local output = "" + + if changes then + local apply = {} + + -- Collect files to be applied + for i, line in ipairs(ffluci.util.split(changes)) do + local r = line:match("^[^.]+") + if r then + apply[r] = true + end + end + + -- Commit changes + ffluci.model.uci.commit() + + -- Search for post-commit commands + if ffluci.config.uci_oncommit then + for k, v in pairs(apply) do + local cmd = ffluci.config.uci_oncommit[k] + if cmd then + output = output .. ffluci.util.exec(cmd) + end + end + end + end + + ffluci.template.render("admin_uci/apply", {changes=changes, output=output}) +end + + +function action_revert() + local changes = ffluci.model.uci.changes() + if changes then + local revert = {} + + -- Collect files to be reverted + for i, line in ipairs(ffluci.util.split(changes)) do + local r = line:match("^[^.]+") + if r then + revert[r] = true + end + end + + -- Revert them + for k, v in pairs(revert) do + ffluci.model.uci.revert(k) + end + end + + ffluci.template.render("admin_uci/revert", {changes=changes}) +end
\ No newline at end of file |