* Added simple text editor

This commit is contained in:
Steven Barth 2008-03-29 21:17:54 +00:00
parent 1c6c6d62ca
commit eee2804791
4 changed files with 50 additions and 9 deletions

View file

@ -236,4 +236,9 @@ code {
.cbi-optionals option {
font-size: 0.8em;
}
.error {
color: red;
font-weight: bold;
}

View file

@ -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")

View file

@ -84,14 +84,10 @@ function mtime(path)
end
-- basename wrapper
function basename(path)
return posix.basename(path)
end
basename = posix.basename
-- dirname wrapper
function dirname(path)
return posix.dirname(path)
end
dirname = posix.dirname
-- Diriterator - alias for lfs.dir - filter . and ..
function dir(path)
@ -102,6 +98,4 @@ function dir(path)
end
-- Alias for lfs.mkdir
function mkdir(...)
return posix.mkdir(...)
end
mkdir = posix.mkdir

View file

@ -0,0 +1,14 @@
<%+header%>
<h1><%:texteditor Texteditor%></h1>
<form method="post" action="<%=controller%>/admin/system/editor">
<div><%:file Datei%>: <input type="text" name="file" size="30" value="<%=fn%>" />
<% if msg then %><span class="error"><%:error Fehler%>: <%=msg%></span><% end %></div>
<br />
<div><textarea style="width: 100%" rows="20" name="data"><%=(cnt or '')%></textarea></div>
<br />
<div>
<input type="submit" value="<%:save Speichern%>" />
<input type="reset" value="<%:reset Zurücksetzen%>" />
</div>
</form>
<%+footer%>