wizard.lua 835 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. local wizard_dir = "/lib/gluon/config-mode/wizard/"
  2. local i18n = luci.i18n
  3. local uci = luci.model.uci.cursor()
  4. local fs = require "nixio.fs"
  5. local util = require "nixio.util"
  6. local f, s
  7. local wizard = {}
  8. local files = {}
  9. if fs.access(wizard_dir) then
  10. files = util.consume(fs.dir(wizard_dir))
  11. table.sort(files)
  12. end
  13. for _, entry in ipairs(files) do
  14. if entry:sub(1, 1) ~= '.' then
  15. table.insert(wizard, dofile(wizard_dir .. '/' .. entry))
  16. end
  17. end
  18. f = SimpleForm("wizard")
  19. f.reset = false
  20. f.template = "gluon/cbi/config-mode"
  21. for _, s in ipairs(wizard) do
  22. s.section(f)
  23. end
  24. function f.handle(self, state, data)
  25. if state == FORM_VALID then
  26. for _, s in ipairs(wizard) do
  27. s.handle(data)
  28. end
  29. luci.http.redirect(luci.dispatcher.build_url("gluon-config-mode", "reboot"))
  30. end
  31. return true
  32. end
  33. return f