Signed-off-by: Richard Yu <yurichard3839@gmail.com> [fix duplicate upload errors, remove temporary file, tweak style] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
147 lines
3.4 KiB
HTML
147 lines
3.4 KiB
HTML
<%#
|
|
Copyright 2018 Jo-Philipp Wich <jo@mein.io>
|
|
Licensed to the public under the Apache License 2.0.
|
|
-%>
|
|
|
|
<%+header%>
|
|
|
|
<style type="text/css">
|
|
.controls {
|
|
display: flex;
|
|
margin: .5em 0 1em 0;
|
|
flex-wrap: wrap;
|
|
justify-content: space-around;
|
|
}
|
|
|
|
.controls > * {
|
|
padding: .25em;
|
|
white-space: nowrap;
|
|
flex: 1 1 33%;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.controls > *:first-child,
|
|
.controls > * > label {
|
|
flex-basis: 100%;
|
|
min-width: 250px;
|
|
}
|
|
|
|
.controls > *:nth-child(2),
|
|
.controls > *:nth-child(3) {
|
|
flex-basis: 20%;
|
|
}
|
|
|
|
.controls > * > .btn {
|
|
flex-basis: 20px;
|
|
text-align: center;
|
|
}
|
|
|
|
.controls > * > * {
|
|
flex-grow: 1;
|
|
align-self: center;
|
|
}
|
|
|
|
.controls > div > input {
|
|
width: auto;
|
|
}
|
|
|
|
.td.version,
|
|
.td.size {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
ul.deps, ul.deps ul, ul.errors {
|
|
margin-left: 1em;
|
|
}
|
|
|
|
ul.deps li, ul.errors li {
|
|
list-style: none;
|
|
}
|
|
|
|
ul.deps li:before {
|
|
content: "↳";
|
|
display: inline-block;
|
|
width: 1em;
|
|
margin-left: -1em;
|
|
}
|
|
|
|
ul.deps li > span {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
ul.errors li {
|
|
color: #c44;
|
|
font-size: 90%;
|
|
font-weight: bold;
|
|
padding-left: 1.5em;
|
|
}
|
|
|
|
ul.errors li:before {
|
|
content: "⚠";
|
|
display: inline-block;
|
|
width: 1.5em;
|
|
margin-left: -1.5em;
|
|
}
|
|
</style>
|
|
|
|
<h2><%:Software%></h2>
|
|
|
|
<div class="controls">
|
|
<div>
|
|
<label><%:Free space%>:</label>
|
|
<div class="cbi-progressbar" title="<%:unknown%>">
|
|
<div> </div>
|
|
</div>
|
|
</div>
|
|
|
|
<div>
|
|
<label><%:Filter%>:</label>
|
|
<input type="text" name="filter" placeholder="<%:Type to filter…%>"<%=attr("value", luci.http.formvalue("query") or "")%> /><!--
|
|
--><button class="btn cbi-button" onclick="handleReset(event)"><%:Clear%></button>
|
|
</div>
|
|
|
|
<div>
|
|
<label><%:Download and install package%>:</label>
|
|
<input type="text" name="install" placeholder="<%:Package name or URL…%>" onkeydown="if (event.keyCode === 13) handleManualInstall(event)" /><!--
|
|
--><button class="btn cbi-button cbi-button-action" onclick="handleManualInstall(event)"><%:OK%></button>
|
|
</div>
|
|
|
|
<div>
|
|
<label><%:Actions%>:</label>
|
|
<button class="btn cbi-button-positive" data-command="update" onclick="handleOpkg(event)"><%:Update lists…%></button>
|
|
 
|
|
<button class="btn cbi-button-action" onclick="handleUpload(event)"><%:Upload Package…%></button>
|
|
 
|
|
<button class="btn cbi-button-neutral" onclick="handleConfig(event)"><%:Configure opkg…%></button>
|
|
</div>
|
|
</div>
|
|
|
|
<ul class="cbi-tabmenu mode">
|
|
<li data-mode="available" class="available cbi-tab"><a href="#"><%:Available%></a></li>
|
|
<li data-mode="installed" class="installed cbi-tab-disabled"><a href="#"><%:Installed%></a></li>
|
|
<li data-mode="updates" class="installed cbi-tab-disabled"><a href="#"><%:Updates%></a></li>
|
|
</ul>
|
|
|
|
<div class="controls" style="display:none">
|
|
<div id="pager" class="center">
|
|
<button class="btn cbi-button-neutral prev" aria-label="<%:Previous page%>">«</button>
|
|
<div class="text">dummy</div>
|
|
<button class="btn cbi-button-neutral next" aria-label="<%:Next page%>">»</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="table" id="packages">
|
|
<div class="tr cbi-section-table-titles">
|
|
<div class="th col-2 left"><%:Package name%></div>
|
|
<div class="th col-2 left version"><%:Version%></div>
|
|
<div class="th col-1 center size"><%:Size (.ipk)%></div>
|
|
<div class="th col-10 left"><%:Description%></div>
|
|
<div class="th right"> </div>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="text/javascript" src="<%=resource%>/view/opkg.js"></script>
|
|
|
|
<%+footer%>
|