diff options
author | Daniel F. Dickinson <cshored@thecshore.com> | 2018-08-03 12:36:51 -0400 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2018-09-19 20:08:19 +0200 |
commit | 58d97b5e271bc0d7507eab5b9bd2902181864e02 (patch) | |
tree | 80e250346ad33c79b3f821daf7b7d9be90d99240 /modules/luci-mod-system/luasrc/view/admin_system/packages.htm | |
parent | 6ec0353201435e0d0d7d32820d8ba600b4ca7b5b (diff) |
modules: Split luci-mod-full
Move some common elements to luci-base, and otherwise make three
packages out of status, system, and network. They were mostly
separated already, but there were some shared elements between
status and network that are now in luci-base.
Signed-off-by: Daniel F. Dickinson <cshored@thecshore.com>
Diffstat (limited to 'modules/luci-mod-system/luasrc/view/admin_system/packages.htm')
-rw-r--r-- | modules/luci-mod-system/luasrc/view/admin_system/packages.htm | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/modules/luci-mod-system/luasrc/view/admin_system/packages.htm b/modules/luci-mod-system/luasrc/view/admin_system/packages.htm new file mode 100644 index 000000000..280eabb8e --- /dev/null +++ b/modules/luci-mod-system/luasrc/view/admin_system/packages.htm @@ -0,0 +1,213 @@ +<%# + Copyright 2008 Steven Barth <steven@midlink.org> + Copyright 2008-2010 Jo-Philipp Wich <jow@openwrt.org> + Licensed to the public under the Apache License 2.0. +-%> + +<%- +local opkg = require "luci.model.ipkg" +local fs = require "nixio.fs" +local wa = require "luci.tools.webadmin" +local rowcnt = 1 + +function rowstyle() + rowcnt = rowcnt + 1 + return (rowcnt % 2) + 1 +end + +local fstat = fs.statvfs(opkg.overlay_root()) +local space_total = fstat and fstat.blocks or 0 +local space_free = fstat and fstat.bfree or 0 +local space_used = space_total - space_free + +local used_perc = math.floor(0.5 + ((space_total > 0) and ((100 / space_total) * space_used) or 100)) +local free_byte = space_free * fstat.frsize + +local filter = { } + + +local opkg_list = luci.model.ipkg.list_all +local querypat +if query and #query > 0 then + querypat = '*%s*' % query + opkg_list = luci.model.ipkg.find +end + +local letterpat +if letter == 35 then + letterpat = "[^a-z]*" +else + letterpat = string.char(letter, 42) -- 'A' '*' +end + +-%> + +<%+header%> + + +<h2 name="content"><%:Software%></h2> + +<div class="cbi-map"> + + <ul class="cbi-tabmenu"> + <li class="cbi-tab"><a href="#"><%:Actions%></a></li> + <li class="cbi-tab-disabled"><a href="<%=REQUEST_URI%>/ipkg"><%:Configuration%></a></li> + </ul> + + <form method="post" action="<%=REQUEST_URI%>"> + <input type="hidden" name="exec" value="1" /> + <input type="hidden" name="token" value="<%=token%>" /> + + <div class="cbi-section"> + <div class="cbi-section-node"> + <% if (install and next(install)) or (remove and next(remove)) or update or upgrade then %> + <div class="cbi-value"> + <% if #stdout > 0 then %><pre><%=pcdata(stdout)%></pre><% end %> + <% if #stderr > 0 then %><pre class="error"><%=pcdata(stderr)%></pre><% end %> + </div> + <% end %> + + <% if querypat then %> + <div class="cbi-value"> + <%:Displaying only packages containing%> <strong>"<%=pcdata(query)%>"</strong> + <input type="button" onclick="location.href='?display=<%=luci.http.urlencode(display)%>'" href="#" class="cbi-button cbi-button-reset" style="margin-left:1em" value="<%:Reset%>" /> + <br style="clear:both" /> + </div> + <% end %> + + <% if no_lists or old_lists then %> + <div class="cbi-value"> + <% if old_lists then %> + <%:Package lists are older than 24 hours%> + <% else %> + <%:No package lists available%> + <% end %> + <input type="submit" name="update" href="#" class="cbi-button cbi-button-apply" style="margin-left:3em" value="<%:Update lists%>" /> + </div> + <% end %> + + <div class="cbi-value cbi-value-last"> + <%:Free space%>: <strong><%=(100-used_perc)%>%</strong> (<strong><%=wa.byte_format(free_byte)%></strong>) + <div style="margin:3px 0; width:300px; height:10px; border:1px solid #000000; background-color:#80C080"> + <div style="background-color:#F08080; border-right:1px solid #000000; height:100%; width:<%=used_perc%>%"> </div> + </div> + </div> + </div> + + <br /> + + <div class="cbi-section-node"> + <input type="hidden" name="display" value="<%=pcdata(display)%>" /> + + <div class="cbi-value"> + <label class="cbi-value-title"><%:Download and install package%>:</label> + <div class="cbi-value-field"> + <span><input type="text" name="url" size="30" value="" /></span> + <input class="cbi-button cbi-button-save" type="submit" name="go" value="<%:OK%>" /> + </div> + </div> + + <div class="cbi-value cbi-value-last"> + <label class="cbi-value-title"><%:Filter%>:</label> + <div class="cbi-value-field"> + <span><input type="text" name="query" size="20" value="<%=pcdata(query)%>" /></span> + <input type="submit" class="cbi-button cbi-button-action" name="search" value="<%:Find package%>" /> + </div> + </div> + </div> + </div> + </form> + + + <h3><%:Status%></h3> + + + <ul class="cbi-tabmenu"> + <li class="cbi-tab<% if display ~= "available" then %>-disabled<% end %>"><a href="?display=available&query=<%=pcdata(query)%>"><%:Available packages%><% if query then %> (<%=pcdata(query)%>)<% end %></a></li> + <li class="cbi-tab<% if display ~= "installed" then %>-disabled<% end %>"><a href="?display=installed&query=<%=pcdata(query)%>"><%:Installed packages%><% if query then %> (<%=pcdata(query)%>)<% end %></a></li> + </ul> + + <% if display ~= "available" then %> + <div class="cbi-section"> + <div class="cbi-section-node"> + <div class="table"> + <div class="tr cbi-section-table-titles"> + <div class="th left"><%:Package name%></div> + <div class="th left"><%:Version%></div> + <div class="th cbi-section-actions"> </div> + </div> + <% local empty = true; luci.model.ipkg.list_installed(querypat, function(n, v, s, d) empty = false; filter[n] = true %> + <div class="tr cbi-rowstyle-<%=rowstyle()%>"> + <div class="td left"><%=luci.util.pcdata(n)%></div> + <div class="td left"><%=luci.util.pcdata(v)%></div> + <div class="td cbi-section-actions"> + <form method="post" class="inline" action="<%=REQUEST_URI%>"> + <input type="hidden" name="exec" value="1" /> + <input type="hidden" name="token" value="<%=token%>" /> + <input type="hidden" name="remove" value="<%=pcdata(n)%>" /> + <input class="cbi-button cbi-button-remove" type="submit" onclick="window.confirm('<%:Remove%> "<%=luci.util.pcdata(n)%>" ?') && this.parentNode.submit(); return false" value="<%:Remove%>" /> + </form> + </div> + </div> + <% end) %> + <% if empty then %> + <div class="tr cbi-section-table-row"> + <div class="td left"> </div> + <div class="td left"><em><%:none%></em></div> + <div class="td left"><em><%:none%></em></div> + </div> + <% end %> + </div> + </div> + </div> + <% else %> + <div class="cbi-section"> + <% if not querypat then %> + <ul class="cbi-tabmenu" style="flex-wrap:wrap"> + <% local i; for i = 65, 90 do %> + <li class="cbi-tab<% if letter ~= i then %>-disabled<% end %>"><a href="?display=available&letter=<%=string.char(i)%>"><%=string.char(i)%></a></li> + <% end %> + <li class="cbi-tab<% if letter ~= 35 then %>-disabled<% end %>"><a href="?display=available&letter=%23">#</a></li> + </ul> + <% end %> + <div class="cbi-section-node cbi-section-node-tabbed"> + <div class="table"> + <div class="tr cbi-section-table-titles"> + <div class="th col-2 left"><%:Package name%></div> + <div class="th col-2 left"><%:Version%></div> + <div class="th col-1 center"><%:Size (.ipk)%></div> + <div class="th col-10 left"><%:Description%></div> + <div class="th cbi-section-actions"> </div> + </div> + <% local empty = true; opkg_list(querypat or letterpat, function(n, v, s, d) if filter[n] then return end; empty = false %> + <div class="tr cbi-rowstyle-<%=rowstyle()%>"> + <div class="td col-2 left"><%=luci.util.pcdata(n)%></div> + <div class="td col-2 left"><%=luci.util.pcdata(v)%></div> + <div class="td col-1 center"><%=luci.util.pcdata(s)%></div> + <div class="td col-10 left"><%=luci.util.pcdata(d)%></div> + <div class="td cbi-section-actions"> + <form method="post" class="inline" action="<%=REQUEST_URI%>"> + <input type="hidden" name="exec" value="1" /> + <input type="hidden" name="token" value="<%=token%>" /> + <input type="hidden" name="install" value="<%=pcdata(n)%>" /> + <input class="cbi-button cbi-button-apply" type="submit" onclick="window.confirm('<%:Install%> "<%=luci.util.pcdata(n)%>" ?') && this.parentNode.submit(); return false" value="<%:Install%>" /> + </form> + </div> + </div> + <% end) %> + <% if empty then %> + <div class="tr"> + <div class="td left"> </div> + <div class="td left"><em><%:none%></em></div> + <div class="td left"><em><%:none%></em></div> + <div class="td right"><em><%:none%></em></div> + <div class="td left"><em><%:none%></em></div> + </div> + <% end %> + </div> + </div> + </div> + <% end %> +</div> + +<%+footer%> |