From: Steven Barth Date: Sat, 29 Mar 2008 21:17:54 +0000 (+0000) Subject: * Added simple text editor X-Git-Tag: 0.8.0~1185 X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=eee28047913d9bc159ebc49e72807db413ec73c7;p=project%2Fluci.git * Added simple text editor --- diff --git a/contrib/media/cascade.css b/contrib/media/cascade.css index 8555e3f829..8fc11994e6 100644 --- a/contrib/media/cascade.css +++ b/contrib/media/cascade.css @@ -236,4 +236,9 @@ code { .cbi-optionals option { font-size: 0.8em; +} + +.error { + color: red; + font-weight: bold; } \ No newline at end of file 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") diff --git a/src/ffluci/fs.lua b/src/ffluci/fs.lua index 1896122798..e262caa3c3 100644 --- a/src/ffluci/fs.lua +++ b/src/ffluci/fs.lua @@ -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 index 0000000000..d4b3302efa --- /dev/null +++ b/src/ffluci/view/admin_system/editor.htm @@ -0,0 +1,14 @@ +<%+header%> +

<%:texteditor Texteditor%>

+
+
<%:file Datei%>: +<% if msg then %><%:error Fehler%>: <%=msg%><% end %>
+
+
+
+
+ + +
+
+<%+footer%> \ No newline at end of file