* Added simple text editor
authorSteven Barth <steven@midlink.org>
Sat, 29 Mar 2008 21:17:54 +0000 (21:17 +0000)
committerSteven Barth <steven@midlink.org>
Sat, 29 Mar 2008 21:17:54 +0000 (21:17 +0000)
contrib/media/cascade.css
src/ffluci/controller/admin/system.lua
src/ffluci/fs.lua
src/ffluci/view/admin_system/editor.htm [new file with mode: 0644]

index 8555e3f829140018e888ab1d052695c478c2944e..8fc11994e6843586f76be78a164af0118e87f6f7 100644 (file)
@@ -236,4 +236,9 @@ code {
 
 .cbi-optionals option {
        font-size: 0.8em;
+}
+
+.error {
+       color: red;
+       font-weight: bold;
 }
\ No newline at end of file
index be2d9b6eb68f4d8f0ae13ded2f36dbaa5e371abd..5e32041538af2bfc428e7c5971045f99343d6498 100644 (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")
index 1896122798a15aa082c385c66e239583c9cc2bf8..e262caa3c3fd3bc4d9bf39a86c1d704577cd1a0c 100644 (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
\ No newline at end of file
+mkdir = posix.mkdir
\ No newline at end of file
diff --git a/src/ffluci/view/admin_system/editor.htm b/src/ffluci/view/admin_system/editor.htm
new file mode 100644 (file)
index 0000000..d4b3302
--- /dev/null
@@ -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%>
\ No newline at end of file