2 LuCI - Lua Configuration Interface
3 Copyright
2008 Steven Barth
<steven@midlink.org
>
4 Copyright
2008 Jo-Philipp Wich
<xm@leipzig.freifunk.net
>
6 Licensed under the Apache License, Version
2.0 (the
"License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
10 http://www.apache.org/licenses/LICENSE-
2.0
16 local bit = require
"bit"
21 return (rowcnt %
2) +
1
24 function opkg_error(code)
25 code = bit.rshift(tonumber(code),
8)
26 return translate(
"OPKG error code %i" % code)
30 <h2><a id=
"content" name=
"content"><%:System%
></a></h2>
31 <h3><%:Software%
></h3>
35 <% if install or remove or update or upgrade then %
>
36 <div class=
"code"><strong><%:Status%
>:
</strong><br />
38 <%:Package lists updated%
>: <% if update ==
0 then %
><span class=
"ok"><%:OK%
></span><% else %
><span class=
"error"><%:Error%
> (<%=opkg_error(update)%
>)
</span><% end %
><br />
41 <%:Upgrade installed packages%
>: <% if upgrade ==
0 then %
><span class=
"ok"><%:OK%
></span><% else %
><span class=
"error"><%:Error%
> (<%=opkg_error(upgrade)%
>)
</span><% end %
><br />
43 <% if install then for k,v in pairs(install) do %
>
44 <%:Install%
> '<%=k%
>': <% if v ==
0 then %
><span class=
"ok"><%:OK%
></span><% else %
><span class=
"error"><%:Error%
> (<%=opkg_error(v)%
>)
</span><% end %
><br />
46 <% if remove then for k,v in pairs(remove) do %
>
47 <%:Remove%
> '<%=k%
>': <% if v ==
0 then %
><span class=
"ok"><%:OK%
></span><% else %
><span class=
"error"><%:Error%
> (<%=opkg_error(v)%
>)
</span><% end %
><br />
53 <form method=
"post" action=
"<%=REQUEST_URI%>">
55 <fieldset class=
"cbi-section">
57 <li><a href=
"<%=REQUEST_URI%>/ipkg"><%:Edit package lists and installation targets%
></a></li>
58 <li><a href=
"<%=REQUEST_URI%>?update=1"><%:Update package lists%
></a></li>
61 <fieldset class=
"cbi-section-node">
62 <div class=
"cbi-value">
63 <label class=
"cbi-value-title"><%:Download and install package%
>:
</label>
64 <div class=
"cbi-value-field">
65 <input type=
"text" name=
"url" size=
"30" value=
"" />
66 <input class=
"cbi-input-save" type=
"submit" name=
"submit" value=
"<%:OK%>" />
70 <div class=
"cbi-value">
71 <label class=
"cbi-value-title"><%:Filter%
>:
</label>
72 <div class=
"cbi-value-field">
73 <input type=
"text" name=
"query" size=
"20" value=
"<%=query%>" />
74 <input type=
"submit" class=
"cbi-input-find" name=
"search" value=
"<%:Find package%>" />
78 <table class=
"cbi-section-table">
79 <tr class=
"cbi-section-table-titles">
80 <th class=
"cbi-section-table-cell"><%:Package name%
></th>
81 <th class=
"cbi-section-table-cell"><%:Version%
></th>
82 <th class=
"cbi-section-table-cell"><%:Install%
></th>
83 <th class=
"cbi-section-table-cell"><%:Delete%
></th>
84 <th class=
"cbi-section-table-cell"><%:Description%
></th>
86 <% for k, pkg in pairs(pkgs) do %
>
87 <tr class=
"cbi-section-table-row cbi-rowstyle-<%=rowstyle()%>">
88 <td><%=luci.util.pcdata(pkg.Package)%
></td>
89 <td><%=luci.util.pcdata(pkg.Version)%
></td>
90 <td><% if not pkg.Status or not pkg.Status.installed then %
><input type=
"checkbox" name=
"install.<%=pkg.Package%>" value=
"1" /><% else %
><%:installed%
><% end %
></td>
91 <td><% if pkg.Status and pkg.Status.installed then %
><input type=
"checkbox" name=
"remove.<%=pkg.Package%>" value=
"1" /><% else %
><%:not installed%
><% end %
></td>
92 <td><%=luci.util.pcdata(pkg.Description)%
></td>
99 <div style=
"text-align: right">
100 <input type=
"submit" class=
"cbi-input-apply" name=
"submit" value=
"<%:Perform Actions%>" />
102 </fieldset></fieldset>