diff options
Diffstat (limited to 'src/ffluci/controller/admin/system.lua')
-rw-r--r-- | src/ffluci/controller/admin/system.lua | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/ffluci/controller/admin/system.lua b/src/ffluci/controller/admin/system.lua index be2d9b6eb6..5e32041538 100644 --- a/src/ffluci/controller/admin/system.lua +++ b/src/ffluci/controller/admin/system.lua @@ -2,6 +2,8 @@ module("ffluci.controller.admin.system", package.seeall) require("ffluci.sys") require("ffluci.http") +require("ffluci.util") +require("ffluci.fs") menu = { descr = "System", @@ -11,6 +13,32 @@ menu = { } } +function action_editor() + local file = ffluci.http.formvalue("file") + local data = ffluci.http.formvalue("data") + local err = nil + local msg = nil + local stat = nil + + if file and data then + stat, err = pcall(ffluci.fs.writefile, file, data) + end + + if not stat then + err = ffluci.util.split(err, " ") + table.remove(err, 1) + msg = table.concat(err, " ") + end + + local stat, cnt = pcall(ffluci.fs.readfile, fname) + if stat and cnt then + cnt = ffluci.util.pcdata(cnt) + else + cnt = nil + end + ffluci.template.render("admin_system/editor", {fn=file, cnt=cnt, msg=msg}) +end + function action_passwd() local p1 = ffluci.http.formvalue("pwd1") local p2 = ffluci.http.formvalue("pwd2") |