forked from hummypkg/webif
328ca16b5c
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1201 2a923420-c742-0410-a762-8d5b09965624
164 lines
3.3 KiB
Plaintext
Executable File
164 lines
3.3 KiB
Plaintext
Executable File
#!/mod/bin/jimsh
|
|
|
|
package require cgi
|
|
source /mod/webif/lib/setup
|
|
require settings.class pkg.class
|
|
|
|
if {[[settings] pkgdev]} { set filter 0 } else { set filter 1 }
|
|
|
|
pkg loadmeta
|
|
|
|
proc nav {active} {
|
|
set q "<div data-role=navbar data-id=pkg_navbar>\n <ul>\n"
|
|
foreach f {installed available upgrades} {
|
|
append q " <li><a"
|
|
if {$f eq $active} {
|
|
append q { class="ui-btn-active ui-state-persist"}
|
|
}
|
|
append q " href=pkg[string range $f 0 0]_b.jim>"
|
|
append q "[string totitle $f]</a></li>\n"
|
|
}
|
|
append q " </ul>\n</div>\n"
|
|
return $q
|
|
}
|
|
|
|
proc pkgtop {type} {
|
|
puts "
|
|
<div data-role=page id=pkga>
|
|
<div data-role=header data-theme=b>
|
|
[_header]
|
|
[nav $type]
|
|
</div>
|
|
<div data-role=content>
|
|
"
|
|
}
|
|
|
|
proc pkgrow {type pkg} {
|
|
set name [$pkg get name]
|
|
puts "<li class=\"pkg_$name\"><h3>$name</h3>"
|
|
|
|
if {$type eq "avail"} {
|
|
puts "<p class=ui-li-aside>[$pkg get latest]</p>"
|
|
} else {
|
|
puts "<p class=ui-li-aside>[$pkg get installed]</p>"
|
|
}
|
|
|
|
if {$type eq "upgr"} {
|
|
puts "<p>Latest: [$pkg get latest]</p>"
|
|
}
|
|
|
|
if {[dict exists $::pkgmeta $name]} {
|
|
puts "<p class=wsn>$::pkgmeta($name)</p>"
|
|
} else {
|
|
puts "<p class=wsn>[$pkg get descr]</p>"
|
|
}
|
|
|
|
if {![$pkg is installed]} {
|
|
set btype Install
|
|
} elseif {$type eq "upgr" && [$pkg is upgradable]} {
|
|
set btype Upgrade
|
|
} else {
|
|
set btype Remove
|
|
}
|
|
|
|
puts "
|
|
<p>
|
|
<a data-inline=true data-role=button data-mini=true data-theme=e
|
|
href=#
|
|
action=[string tolower $btype] pkg=\"$name\"
|
|
class=[string tolower $btype]>$btype</a>
|
|
</p>
|
|
"
|
|
|
|
puts "</li>"
|
|
}
|
|
|
|
proc pkglist {type} {
|
|
set pkgs [pkg $type]
|
|
|
|
puts "<ul data-role=listview>"
|
|
|
|
if {[llength $pkgs] <= 0} {
|
|
puts "<li><i>No packages "
|
|
switch $type {
|
|
inst { puts "are installed." }
|
|
upgr { puts "are available for upgrade; try updating the package list from the Internet using the button above." }
|
|
avail { puts "are available for installation." }
|
|
}
|
|
puts "</i></li></ul>"
|
|
return
|
|
}
|
|
|
|
foreach pkg $pkgs {
|
|
if {$type ne "upgr" && $::filter && \
|
|
![dict exists $::pkgmeta $pkg]} { continue }
|
|
pkgrow $type [pkg load $pkg]
|
|
}
|
|
if {$::filter} {
|
|
puts "<li data-role=list-divider>This is a filtered package list. To show all packages, enable the <i>Show development and advanced packages</i> in the settings screen.</li>"
|
|
}
|
|
puts "</ul>"
|
|
}
|
|
|
|
mheader
|
|
|
|
switch $pageid {
|
|
pkgi_b {
|
|
set type installed
|
|
set qtype inst
|
|
}
|
|
pkga_b {
|
|
set type available
|
|
set qtype avail
|
|
}
|
|
default {
|
|
set type upgrades
|
|
set qtype upgr
|
|
}
|
|
}
|
|
|
|
pkgtop $type
|
|
|
|
puts {
|
|
<ul data-role=listview>
|
|
<li>
|
|
<button data-theme=e class=opkg_update>
|
|
Update package list from Internet
|
|
</button>
|
|
}
|
|
|
|
if {$pageid eq "pkgu_b"} {
|
|
puts {
|
|
<button data-theme=e class=opkg_upgrade>
|
|
Upgrade all packages
|
|
</button>
|
|
}
|
|
}
|
|
|
|
puts {
|
|
</li>
|
|
</ul>
|
|
}
|
|
|
|
pkglist $qtype
|
|
|
|
puts {
|
|
<div data-role=popup class="opkg_popup ui-corner-all" data-theme=e>
|
|
<div data-role=header data-theme=a class=ui-corner-top>
|
|
<h1>Results</h1>
|
|
</div>
|
|
<div data-role=content data-theme=d class="ui-corner-bottom ui-content">
|
|
<p class="pre opkg_popup_text" data-theme=d></p>
|
|
</div>
|
|
<center><div class="hidden opkg_op_complete">
|
|
<img border=0 src=/images/167_2_00_Check_W2_SUB.png>
|
|
Operation complete.
|
|
<a href=# data-role=button data-inline=true data-rel=back
|
|
data-mini=true data-theme=b>Close</a>
|
|
</div></center>
|
|
</div>
|
|
}
|
|
|
|
mfooter
|
|
|