From d915e6e1d7421f366ca61bf081b6ca0d29945ec1 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Thu, 14 Aug 2008 17:16:56 +0000 Subject: [PATCH] Converted IPKG configuration to CBI model Removed abandoned code --- libs/cbi/luasrc/cbi.lua | 8 +++- .../admin-full/luasrc/controller/admin/system.lua | 44 +--------------------- .../luasrc/model/cbi/admin_system/ipkg.lua | 36 ++++++++++++++++++ .../admin-full/luasrc/view/admin_system/editor.htm | 28 -------------- .../admin-full/luasrc/view/admin_system/ipkg.htm | 30 ++------------- 5 files changed, 48 insertions(+), 98 deletions(-) create mode 100644 modules/admin-full/luasrc/model/cbi/admin_system/ipkg.lua delete mode 100644 modules/admin-full/luasrc/view/admin_system/editor.htm diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index 399f48675..8816b11b7 100644 --- a/libs/cbi/luasrc/cbi.lua +++ b/libs/cbi/luasrc/cbi.lua @@ -140,6 +140,10 @@ function Template.__init__(self, template) self.template = template end +function Template.render(self) + luci.template.render(self.template, {self=self}) +end + --[[ Map - A map describing a configuration file @@ -260,7 +264,9 @@ function SimpleForm.parse(self, ...) local valid = true for i, v in ipairs(self.children) do - valid = valid and not v.tag_missing[1] and not v.tag_invalid[1] + valid = valid + and (not v.tag_missing or not v.tag_missing[1]) + and (not v.tag_invalid or not v.tag_invalid[1]) end local state = diff --git a/modules/admin-full/luasrc/controller/admin/system.lua b/modules/admin-full/luasrc/controller/admin/system.lua index cf39483cf..a381803bb 100644 --- a/modules/admin-full/luasrc/controller/admin/system.lua +++ b/modules/admin-full/luasrc/controller/admin/system.lua @@ -19,7 +19,7 @@ function index() entry({"admin", "system"}, template("admin_system/index"), i18n("system"), 30) entry({"admin", "system", "packages"}, call("action_packages"), i18n("a_s_packages"), 10) - entry({"admin", "system", "packages", "ipkg"}, call("action_ipkg"), i18n("a_s_p_ipkg")) + entry({"admin", "system", "packages", "ipkg"}, form("admin_system/ipkg"), i18n("a_s_p_ipkg")) entry({"admin", "system", "passwd"}, call("action_passwd"), i18n("a_s_changepw"), 20) entry({"admin", "system", "sshkeys"}, form("admin_system/sshkeys"), i18n("a_s_sshkeys"), 30) entry({"admin", "system", "system"}, cbi("admin_system/system"), i18n("system"), 40) @@ -30,48 +30,6 @@ function index() entry({"admin", "system", "reboot"}, call("action_reboot"), i18n("reboot"), 90) end -function action_editor() - local file = luci.http.formvalue("file", "") - local data = luci.http.formvalue("data") - local err = nil - local msg = nil - local stat = true - - if file and data then - stat, err = luci.fs.writefile(file, data) - end - - if not stat then - err = luci.util.split(err, " ") - table.remove(err, 1) - msg = table.concat(err, " ") - end - - local cnt, err = luci.fs.readfile(file) - if cnt then - cnt = luci.util.pcdata(cnt) - end - luci.template.render("admin_system/editor", {fn=file, cnt=cnt, msg=msg}) -end - -function action_ipkg() - local file = "/etc/ipkg.conf" - local data = luci.http.formvalue("data") - local stat = nil - local err = nil - - if data then - stat, err = luci.fs.writefile(file, data) - end - - local cnt = luci.fs.readfile(file) - if cnt then - cnt = luci.util.pcdata(cnt) - end - - luci.template.render("admin_system/ipkg", {cnt=cnt, msg=err}) -end - function action_packages() local ipkg = require("luci.model.ipkg") local void = nil diff --git a/modules/admin-full/luasrc/model/cbi/admin_system/ipkg.lua b/modules/admin-full/luasrc/model/cbi/admin_system/ipkg.lua new file mode 100644 index 000000000..4e864df28 --- /dev/null +++ b/modules/admin-full/luasrc/model/cbi/admin_system/ipkg.lua @@ -0,0 +1,36 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth +Copyright 2008 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- +local ipkgfile = "/etc/ipkg.conf" + +f = SimpleForm("ipkgconf", translate("a_s_p_ipkg")) + +t = f:field(TextValue, "lines") +t.rows = 10 +function t.cfgvalue() + return luci.fs.readfile(ipkgfile) or "" +end + +f:append(Template("admin_system/ipkg")) + +function f.handle(self, state, data) + if state == FORM_VALID then + if (luci.fs.readfile(ipkgfile) or "") ~= data.lines then + luci.fs.writefile(ipkgfile, data.keys) + end + end + return true +end + +return f diff --git a/modules/admin-full/luasrc/view/admin_system/editor.htm b/modules/admin-full/luasrc/view/admin_system/editor.htm deleted file mode 100644 index bac1729d0..000000000 --- a/modules/admin-full/luasrc/view/admin_system/editor.htm +++ /dev/null @@ -1,28 +0,0 @@ -<%# -LuCI - Lua Configuration Interface -Copyright 2008 Steven Barth -Copyright 2008 Jo-Philipp Wich - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ - --%> -<%+header%> -

<%:texteditor%>

-
-
<%:file%>: -<% if msg then %><%:error%>: <%=msg%><% end %>
-
-
-
-
- - -
-
-<%+footer%> \ No newline at end of file diff --git a/modules/admin-full/luasrc/view/admin_system/ipkg.htm b/modules/admin-full/luasrc/view/admin_system/ipkg.htm index 0cd87d990..7f6c0fb89 100644 --- a/modules/admin-full/luasrc/view/admin_system/ipkg.htm +++ b/modules/admin-full/luasrc/view/admin_system/ipkg.htm @@ -12,29 +12,7 @@ You may obtain a copy of the License at $Id$ -%> -<%+header%> -

<%:system%>

-

<%:a_s_p_ipkg%>

- -
- -
<%:a_s_p_ipkg_pkglists%>:src Name URL
-
<%:a_s_p_ipkg_targets%>:dest Name Pfad
- -
- -
-
-
-
- -
-
-
-
- - -
- <% if msg then %>
<%:error%>: <%=msg%>
<% end %> -
-<%+footer%> \ No newline at end of file +
    +
  • <%:a_s_p_ipkg_pkglists%>: src Name URL
  • +
  • <%:a_s_p_ipkg_targets%>: dest Name Pfad
  • +
-- 2.11.0