or valid and 1
or -1
- self.dorender = self:handle(state)
+ self.dorender = self:handle(state, self.data)
end
function SimpleForm.render(self, ...)
<span class="cbi-value-helpicon"><img src="<%=resource%>/cbi/help.gif" alt="<%:help%>" /></span>
<div class="cbi-value-description"><%=self.description%></div>
<%- end %>
+ <%- if self.title and #self.title > 0 then -%>
</div>
+ <%- end -%>
<% if self.tag_invalid[section] then -%>
<div class="cbi-error"><%:cbi_invalid%></div>
-%>
<div class="cbi-value" id="cbi-<%=self.config.."-"..section.."-"..self.option%>">
+ <%- if self.title and #self.title > 0 then -%>
<label class="cbi-value-title"<%= attr("for", cbid) %>>
<%- if self.titleref then -%><a title="<%=self.titledesc or translate('cbi_gorel')%>" class="cbi-title-ref" href="<%=self.titleref%>"><%- end -%>
<%-=self.title-%>
<%- if self.titleref then -%></a><%- end -%>
</label>
<div class="cbi-value-field">
+ <%- end -%>
<div>
<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<input type="hidden" name="cbi.submit" value="1" />
- <input type="submit" value="<%:save%>" class="hidden" />
</div>
<div class="cbi-map" id="cbi-<%=self.config%>">
<h1><%=self.title%></h1>
</div>
<div>
<%- if self.submit ~= false then %>
- <input type="submit" value="
+ <input class="cbi-button-save" type="submit" value="
<%- if not self.submit then -%><%-:submit-%><%-else-%><%=self.submit%><%end%>
" />
<% end %>
<%- if self.reset ~= false then %>
- <input type="reset" value="
+ <input class="cbi-button-reset" type="reset" value="
<%- if not self.reset then -%><%-:reset-%><%-else-%><%=self.reset%><%end%>
" />
<% end %>
-%>
<%+cbi/valueheader%>
- <textarea onchange="cbi_d_update(this.id)"<%= attr("name", cbid) .. attr("id", cbid) .. ifattr(self.size, "cols") .. ifattr(self.rows, "rows") .. ifattr(self.wrap, "wrap") %>>
+ <textarea<% if not self.size then %> style="width: 100%"<% else %> cols="<%=self.size%>"<% end %> onchange="cbi_d_update(this.id)"<%= attr("name", cbid) .. attr("id", cbid) .. ifattr(self.rows, "rows") .. ifattr(self.wrap, "wrap") %>>
<%-=luci.util.pcdata(self:cfgvalue(section))-%>
</textarea>
<%+cbi/valuefooter%>
-%>
<%+header%>
<% luci.i18n.loadc("sysauth") %>
-<h1><%:sysauth_head%></h1>
-<p><%:sysauth_prompt%></p>
-<% if fuser then %>
-<div class="error"><%:sysauth_failed%></div>
-<br />
-<% end %>
+
<form method="post" action="<%=REQUEST_URI%>">
- <div class="cbi-section-node">
+ <div class="cbi-map">
+ <h1><%:sysauth_head%></h1>
+ <div class="cbi-map-descr">
+ <%:sysauth_prompt%>
+ <%- if fuser then %>
+ <div class="error"><%:sysauth_failed%></div>
+ <br />
+ <% end -%>
+ </div>
+ <fieldset class="cbi-section"><fieldset class="cbi-section-node">
<div class="cbi-value">
- <div class="cbi-value-title"><%:username%></div>
- <div class="cbi-value-field"><input class="cbi-input-user" type="text" name="username" value="<%=duser%>" /></div>
+ <label class="cbi-value-title"><%:username%></label>
+ <div class="cbi-value-field">
+ <input class="cbi-input-user" type="text" name="username" value="<%=duser%>" />
+ </div>
</div>
<div class="cbi-value">
- <div class="cbi-value-title"><%:password%></div>
- <div class="cbi-value-field"><input class="cbi-input-key" type="password" name="password" /></div>
+ <label class="cbi-value-title"><%:password%></label>
+ <div class="cbi-value-field">
+ <input class="cbi-input-key" type="password" name="password" />
+ </div>
</div>
- <br />
- <div>
- <input type="submit" class="cbi-button cbi-button-apply" value="<%:login%>" />
- <input type="reset" class="cbi-button cbi-button-reset" value="<%:reset%>" />
- </div>
- </div>
+ </fieldset></fieldset>
+ </div>
+
+ <div>
+ <input type="submit" value="<%:login%>" class="cbi-button cbi-button-apply" />
+ <input type="reset" value="<%:reset%>" class="cbi-button cbi-button-reset" />
+ </div>
</form>
<%+footer%>
\ No newline at end of file
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", "passwd"}, call("action_passwd"), i18n("a_s_changepw"), 20)
- entry({"admin", "system", "sshkeys"}, call("action_sshkeys"), i18n("a_s_sshkeys"), 30)
+ entry({"admin", "system", "sshkeys"}, form("admin_system/sshkeys"), i18n("a_s_sshkeys"), 30)
entry({"admin", "system", "system"}, cbi("admin_system/system"), i18n("system"), 40)
entry({"admin", "system", "fstab"}, cbi("admin_system/fstab"), i18n("a_s_fstab"), 50)
entry({"admin", "system", "leds"}, cbi("admin_system/leds"), i18n("leds", "LEDs"), 60)
end
end
-function action_sshkeys()
- local file = "/etc/dropbear/authorized_keys"
- 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/sshkeys", {cnt=cnt, msg=err})
-end
-
function action_upgrade()
require("luci.model.uci")
--- /dev/null
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+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 keyfile = "/etc/dropbear/authorized_keys"
+
+f = SimpleForm("sshkeys", translate("a_s_sshkeys"), translate("a_s_sshkeys1"))
+
+t = f:field(TextValue, "keys")
+t.rows = 10
+function t.cfgvalue()
+ return luci.fs.readfile(keyfile) or ""
+end
+
+function f.handle(self, state, data)
+ if state == FORM_VALID then
+ if (luci.fs.readfile(keyfile) or "") ~= data.keys then
+ luci.fs.writefile(keyfile, data.keys)
+ end
+ end
+ return true
+end
+
+return f
\ No newline at end of file
+++ /dev/null
-<%#
-LuCI - Lua Configuration Interface
-Copyright 2008 Steven Barth <steven@midlink.org>
-Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
-
-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%>
-
-<form method="post" action="<%=controller%>/admin/system/sshkeys">
- <div class="cbi-map">
- <h1><%:a_s_sshkeys%></h1>
- <div class="cbi-map-descr">
- <%:a_s_sshkeys1%>
- </div>
- <fieldset class="cbi-section">
- <legend><%:a_s_sshkeys%></legend>
- <textarea style="width: 100%" rows="10" name="data" wrap="off"><%=cnt%></textarea>
- <% if msg then -%>
- <div class="cbi-error"><%:error%>: <%=msg%></div>
- <% end %>
- </fieldset>
- </div>
-
- <div>
- <input type="submit" value="<%:save%>" class="cbi-button cbi-button-save" />
- <input type="reset" value="<%:reset%>" class="cbi-button cbi-button-reset" />
- </div>
-</form>
-
-<%+footer%>