summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2008-10-30 15:42:33 +0000
committerTed Trask <ttrask01@yahoo.com>2008-10-30 15:42:33 +0000
commit579d59adef6ffdacb911419e0e63c599cd393530 (patch)
tree2da48a381f55b732fe65774bf1c785849fa5badb
parent6a39723b4bad30de3eaf7069653987f5344a5c8a (diff)
downloadacf-alpine-baselayout-579d59adef6ffdacb911419e0e63c599cd393530.tar.bz2
acf-alpine-baselayout-579d59adef6ffdacb911419e0e63c599cd393530.tar.xz
Added modules controller.
git-svn-id: svn://svn.alpinelinux.org/acf/alpine-baselayout/trunk@1570 ab2d0c66-481e-0410-8bed-d214d4d58bed
-rw-r--r--Makefile1
-rw-r--r--alpine-baselayout.roles4
-rw-r--r--modules-controller.lua14
-rw-r--r--modules-edit-html.lsp43
-rw-r--r--modules-model.lua18
-rw-r--r--modules.menu2
6 files changed, 80 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 3f8d9e6..a6317e2 100644
--- a/Makefile
+++ b/Makefile
@@ -13,6 +13,7 @@ APP_DIST=\
skins* \
rc* \
password* \
+ modules* \
EXTRA_DIST=README Makefile config.mk
diff --git a/alpine-baselayout.roles b/alpine-baselayout.roles
index c9b2a07..f241ca8 100644
--- a/alpine-baselayout.roles
+++ b/alpine-baselayout.roles
@@ -1,5 +1,5 @@
GUEST=health:system,hostname:read
USER=health:storage,health:proc,health:network,health:modules,health:networkstats,interfaces:status,interfaces:read,interfaces:restart,logfiles:status,logfiles:view,logfiles:download,logfiles:tail,skins:update,skins:read,syslog:status,syslog:loginfo,syslog:startstop,rc:status
EDITOR=hostname:edit,interfaces:delete,interfaces:create,interfaces:update,interfaces:ifup,interfaces:ifdown,logfiles:delete,syslog:config,rc:edit
-EXPERT=syslog:expert,interfaces:editintfile
-ADMIN=health:system,hostname:read,health:storage,health:proc,health:network,health:modules,health:networkstats,interfaces:status,interfaces:read,interfaces:restart,logfiles:status,logfiles:view,logfiles:download,logfiles:tail,skins:update,skins:read,syslog:status,syslog:loginfo,syslog:startstop,rc:status,hostname:edit,interfaces:delete,interfaces:create,interfaces:update,interfaces:ifup,interfaces:ifdown,logfiles:delete,syslog:config,rc:edit,syslog:expert,interfaces:editintfile,password:edit
+EXPERT=syslog:expert,interfaces:editintfile,modules:edit,modules:reload
+ADMIN=health:system,hostname:read,health:storage,health:proc,health:network,health:modules,health:networkstats,interfaces:status,interfaces:read,interfaces:restart,logfiles:status,logfiles:view,logfiles:download,logfiles:tail,skins:update,skins:read,syslog:status,syslog:loginfo,syslog:startstop,rc:status,hostname:edit,interfaces:delete,interfaces:create,interfaces:update,interfaces:ifup,interfaces:ifdown,logfiles:delete,syslog:config,rc:edit,syslog:expert,interfaces:editintfile,modules:edit,modules:reload,password:edit
diff --git a/modules-controller.lua b/modules-controller.lua
new file mode 100644
index 0000000..f1da11c
--- /dev/null
+++ b/modules-controller.lua
@@ -0,0 +1,14 @@
+-- the interfaces controller
+require("controllerfunctions")
+
+module (..., package.seeall)
+
+default_action = "edit"
+
+edit = function(self)
+ return controllerfunctions.handle_form(self, self.model.read_file, self.model.write_file, self.clientdata, "Save", "Edit Modules file", "File saved")
+end
+
+reload = function(self)
+ return self:redirect_to_referrer(self.model.reloadmodules())
+end
diff --git a/modules-edit-html.lsp b/modules-edit-html.lsp
new file mode 100644
index 0000000..75c360f
--- /dev/null
+++ b/modules-edit-html.lsp
@@ -0,0 +1,43 @@
+<% local form, viewlibrary, page_info, session = ... %>
+<% require("viewfunctions") %>
+
+<% displaycommandresults({"reload"}, session) %>
+
+<% if form.type == "form" then %>
+<H1>Configuration</H1>
+<H2>Expert Configuration</H2>
+<% else %>
+<H1>View File</H1>
+<% end %>
+<H3>File Details</H3>
+<DL>
+<%
+displayitem(form.value.filename)
+displayitem(form.value.filesize)
+displayitem(form.value.mtime)
+%>
+</DL>
+
+<H3>File Content</H3>
+<% if form.type == "form" then %>
+<% form.action = page_info.script .. page_info.prefix .. page_info.controller .. "/" .. page_info.action %>
+<% displayformstart(form) %>
+<input type="hidden" name="filename" value="<%= form.value.filename.value %>">
+<% end %>
+<textarea name="filecontent">
+<%= html.html_escape(form.value.filecontent.value) %>
+</textarea>
+<% if form.value.filecontent.errtxt then %><P CLASS='error'><%= string.gsub(form.value.filecontent.errtxt, "\n", "<BR>") %></P><% end %>
+<% if form.value.filecontent.descr then %><P CLASS='descr'><%= string.gsub(form.value.filecontent.descr, "\n", "<BR>") %></P><% end %>
+
+<% if form.type == "form" then %>
+<H3>Save</H3>
+<% displayformend(form) %>
+<% end %>
+</form>
+
+<H1>Reload Modules</H1>
+<DL>
+<DT>Reload Modules</DT>
+<DD><form action="<%= page_info.script .. page_info.prefix .. page_info.controller .. "/reload" %>"><input class="submit" type="submit" value="Reload"></form></DD>
+</DL>
diff --git a/modules-model.lua b/modules-model.lua
new file mode 100644
index 0000000..751aa3d
--- /dev/null
+++ b/modules-model.lua
@@ -0,0 +1,18 @@
+module (..., package.seeall)
+
+require("modelfunctions")
+require("fs")
+
+local configfile = "/etc/modules"
+
+function read_file()
+ return modelfunctions.getfiledetails(configfile)
+end
+
+function write_file(filedetails)
+ return modelfunctions.setfiledetails(filedetails, {configfile})
+end
+
+function reloadmodules()
+ return modelfunctions.startstop_service("modutils", "start")
+end
diff --git a/modules.menu b/modules.menu
new file mode 100644
index 0000000..4f96581
--- /dev/null
+++ b/modules.menu
@@ -0,0 +1,2 @@
+# Cat Group Tab Action
+System 20Modules Status edit