tazpkg diff tazpanel/pkgs.cgi @ rev 747
Add and use icons from Faenza icon theme (new light look and feel); fix last recharge date (pay respect to timezone time offset); add few comments; stylize search toolbar; fix "up" command; admin: select mirror as standard way to select item from list; open external links in the new tab (or new window); and a ton of other small changes.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Wed Jan 21 17:53:26 2015 +0200 (2015-01-21) |
parents | c4c2d523a719 |
children | f2975370bd27 |
line diff
1.1 --- a/tazpanel/pkgs.cgi Sun Jan 11 11:51:31 2015 +0200 1.2 +++ b/tazpanel/pkgs.cgi Wed Jan 21 17:53:26 2015 +0200 1.3 @@ -91,68 +91,39 @@ 1.4 } 1.5 1.6 1.7 -# Parse mirrors list to be able to have an icon and remove link 1.8 - 1.9 -list_mirrors() { 1.10 - while read line 1.11 - do 1.12 - cat << EOT 1.13 -<li> 1.14 - <a href="?admin=rm-mirror=$line&file=$(httpd -e $1)"> 1.15 - <img src="$IMAGES/clear.png" title="$(_ 'Delete')" /> 1.16 - </a> 1.17 - <a href="?admin=select-mirror&mirror=$line"> 1.18 - <img src="$IMAGES/start.png" title="$(_ 'Use as default')" /> 1.19 - </a> 1.20 - <a href="$line">$line</a> 1.21 -</li> 1.22 -EOT 1.23 - done < $1 1.24 -} 1.25 - 1.26 - 1.27 -# Parse repositories list to be able to have an icon and remove link 1.28 - 1.29 -list_repos() { 1.30 - ls $PKGS_DB/undigest 2> /dev/null | while read repo ; do 1.31 - cat <<EOT 1.32 - <li><a href="?admin=rm-repo=$repo"> 1.33 - <img src="$IMAGES/clear.png">$repo</a></li> 1.34 -EOT 1.35 - done 1.36 -} 1.37 - 1.38 - 1.39 # Show button 1.40 show_button() { 1.41 - case $1 in 1.42 - recharge) img='recharge'; label="$(_ 'Recharge list')" ;; 1.43 - up) img='update'; label="$(_ 'Check upgrades')" ;; 1.44 - list) img='tazpkg'; label="$(_ 'My packages')" ;; 1.45 - tag=) img=''; label="$(_ 'Tags')" ;; 1.46 - linkable) img='tazpkg'; label="$(_ 'Linkable packages')" ;; 1.47 - admin) img='edit'; label="$(_ 'Administration')" ;; 1.48 - *Install*nf*) img='tazpkg-installed'; label="$(_ 'Install (Non Free)')" ;; 1.49 - *Install*) img='tazpkg-installed'; label="$(_ 'Install')" ;; 1.50 - *Remove*) img='stop'; label="$(_ 'Remove')" ;; 1.51 - *Link*) img='tazpkg'; label="$(_ 'Link')" ;; 1.52 - *Block*) img='tazpkg'; label="$(_ 'Block')" ;; 1.53 - *Unblock*) img='tazpkg'; label="$(_ 'Unblock')" ;; 1.54 - *Repack*) img='tazpkg'; label="$(_ 'Repack')" ;; 1.55 - *saveconf*) img='tazpkg'; label="$(_ 'Save configuration')" ;; 1.56 - *listconf*) img='edit'; label="$(_ 'List configuration files')" ;; 1.57 - *quickcheck*) img='recharge'; label="$(_ 'Quick check')" ;; 1.58 - *fullcheck*) img='recharge'; label="$(_ 'Full check')" ;; 1.59 - *clean*) img='stop'; label="$(_ 'Clean')" ;; 1.60 - *setlink*) img='harddisk'; label="$(_ 'Set link')" ;; 1.61 - *removelink*) img='stop'; label="$(_ 'Remove link')" ;; 1.62 - esac 1.63 - cat << EOT 1.64 - <button class="button" type="submit" name="${1%%=*}" value="${1#*=}"> 1.65 + for button in $@; do 1.66 + case $button in 1.67 + recharge) img='tp-recharge'; label="$(_ 'Recharge list')" ;; 1.68 + up) img='tp-up'; label="$(_ 'Check upgrades')" ;; 1.69 + list) img='tp-list'; label="$(_ 'My packages')" ;; 1.70 + tags) img='tp-tag'; label="$(_ 'Tags')" ;; 1.71 + linkable) img='tp-link'; label="$(_ 'Linkable packages')" ;; 1.72 + admin) img='tp-admin'; label="$(_ 'Administration')" ;; 1.73 + *Install*nf*) img='tp-pkg-ins'; label="$(_ 'Install (Non Free)')" ;; 1.74 + *Install*) img='tp-pkg-ins'; label="$(_ 'Install')" ;; 1.75 + *Remove*) img='tp-pkg-rem'; label="$(_ 'Remove')" ;; 1.76 + *Link*) img='tp-link'; label="$(_ 'Link')" ;; 1.77 + *Block*) img='tp-block'; label="$(_ 'Block')" ;; 1.78 + *Unblock*) img='tp-unblock'; label="$(_ 'Unblock')" ;; 1.79 + *Repack*) img='tp-repack'; label="$(_ 'Repack')" ;; 1.80 + *saveconf*) img='tp-save'; label="$(_ 'Save configuration')" ;; 1.81 + *listconf*) img='tp-list'; label="$(_ 'List configuration files')" ;; 1.82 + *quickcheck*) img='tp-check'; label="$(_ 'Quick check')" ;; 1.83 + *fullcheck*) img='tp-check'; label="$(_ 'Full check')" ;; 1.84 + *clean*) img='tp-remove'; label="$(_ 'Clean')" ;; 1.85 + *setlink*) img='tp-link'; label="$(_ 'Set link')" ;; 1.86 + *removelink*) img='tp-remove'; label="$(_ 'Remove link')" ;; 1.87 + *add-mirror) img='tp-add'; label="$(_n 'Add mirror')" ;; 1.88 + *add-repo) img='tp-add'; label="$(_n 'Add repository')" ;; 1.89 + esac 1.90 + cat << EOT 1.91 + <button class="button" type="submit" name="${button%%=*}" value="${button#*=}"> 1.92 <img src="$IMAGES/$img.png"/>$label 1.93 </button> 1.94 EOT 1.95 - 1.96 + done 1.97 } 1.98 1.99 1.100 @@ -168,15 +139,13 @@ 1.101 [ -z "$repo" ] && repo="$(GET repo)" 1.102 [ -z "$repo" ] && repo="Any" 1.103 cat << EOT 1.104 -<div class="search"> 1.105 - <form method="get" action=""> 1.106 - <p> 1.107 - <input type="text" name="search" size="20"> 1.108 - <input type="submit" value="$(gettext 'Search')"> 1.109 - <input class="radius" type="submit" name="files" value="$(_n 'Files')"> 1.110 - </p> 1.111 - </form> 1.112 -</div> 1.113 +<form method="get" action=""> 1.114 + <div class="search"><input 1.115 + type="search" name="search" results="5" autosave="pkgsearch" autocomplete="on"><input 1.116 + type="submit" value="$(_n 'Search')"><input 1.117 + type="submit" value="$(_n 'Files')" name="files"> 1.118 + </div> 1.119 +</form> 1.120 EOT 1.121 } 1.122 1.123 @@ -306,23 +275,25 @@ 1.124 # Print links to the pages 1.125 1.126 pager() { 1.127 - awk -F'"' -vpage="$page" -vnum_lines="$(wc -l < $1)" -vtext="$(_ 'Pages:') " -vurl="?list&page=" ' 1.128 + PAGE_SIZE=${PAGE_SIZE:-100} 1.129 + [ "$PAGE_SIZE" != "0" ] && \ 1.130 + awk -F'"' -vpage="$page" -vsize="$PAGE_SIZE" -vnum_lines="$(wc -l < $1)" -vtext="$(_ 'Pages:') " -vurl="?list&page=" ' 1.131 BEGIN{ 1.132 - num_pages = int(num_lines / 100) + (num_lines % 100 != 0) 1.133 + num_pages = int(num_lines / size) + (num_lines % size != 0) 1.134 if (num_pages != 1) printf "<p>%s", text 1.135 } 1.136 { 1.137 if (num_pages == 1) exit 1.138 - r = NR % 100 1.139 + r = NR % size 1.140 if (r == 1) { 1.141 - p = int(NR / 100) + 1 1.142 + p = int(NR / size) + 1 1.143 printf "<a class=\"pages%s\" href=\"%s%s\" title=\"%s\n···\n", p==page?" current":"", url, p, $6 1.144 } else if (r == 0) 1.145 - printf "%s\">%s</a> ", $6, int(NR / 100) 1.146 + printf "%s\">%s</a> ", $6, int(NR / size) 1.147 } 1.148 END{ 1.149 if (num_pages == 1) exit 1.150 - if (r != 0) printf "%s\">%s</a>", $6, int(NR / 100) + 1 1.151 + if (r != 0) printf "%s\">%s</a>", $6, int(NR / size) + 1 1.152 print "</p>" 1.153 }' $1 1.154 } 1.155 @@ -331,6 +302,8 @@ 1.156 # Show packages list by category or tag 1.157 1.158 show_list() { 1.159 + PAGE_SIZE=${PAGE_SIZE:-100} 1.160 + page=$(GET page); page=${page:-1} 1.161 cached=$(mktemp) 1.162 [ -n "$tag" ] && cat='' 1.163 { 1.164 @@ -362,12 +335,14 @@ 1.165 if (! INS) { VER = $2; DSC = $4; WEB = $5 } 1.166 } 1.167 }' > $cached 1.168 - page=$(GET page); [ -z "$page" ] && page=1 1.169 1.170 pager="$(pager $cached)" 1.171 - list="$(tail -n+$((($page-1)*100+1)) $cached | head -n100)" 1.172 - list1=${list:1:1} 1.173 - if [ "$pager" != "<p>$(_ 'Pages:') </p>" ] && [ -n "$list1" ]; then 1.174 + case $PAGE_SIZE in 1.175 + 0) list="$(cat $cached)";; 1.176 + *) list="$(tail -n+$((($page-1)*$PAGE_SIZE+1)) $cached | head -n$PAGE_SIZE)";; 1.177 + esac 1.178 + 1.179 + if [ "$pager" != "<p>$(_ 'Pages:') </p>" ] && [ -n "${list:1:1}" ]; then 1.180 cat << EOT 1.181 $(header_repo_name $i) 1.182 $pager 1.183 @@ -387,7 +362,7 @@ 1.184 if [ -n "$1" ]; then 1.185 echo -n "<tr><td><b>$2</b></td><td>" 1.186 echo $1 | tr ' ' $'\n' | awk -vt="$3" '{ 1.187 - printf "<a href=\"?%s=%s\">%s</a> ", t, gensub(/\+/, "%2B", "g", $1), $1 1.188 + printf "<a href=\"?%s=%s\">%s</a> ", t, gensub(/\+/, "%2B", "g", $1), $1 1.189 }' 1.190 echo "</td></tr>" 1.191 fi 1.192 @@ -416,7 +391,7 @@ 1.193 <form method="get" action=""> 1.194 <div id="actions"> 1.195 <div class="float-left">$(_ 'Selection:') $(show_button do=Link)</div> 1.196 - <div class="float-right">$(show_button recharge) $(show_button up)</div> 1.197 + <div class="float-right">$(show_button recharge up)</div> 1.198 </div> 1.199 EOT 1.200 table_head 1.201 @@ -457,8 +432,8 @@ 1.202 <thead> 1.203 <tr> 1.204 <td>$(_ 'Category')</td> 1.205 - <td>$(_ 'Repository')</td> 1.206 - <td>$(_ 'Installed')</td> 1.207 + <td>$(_ 'Available packages')</td> 1.208 + <td>$(_ 'Installed packages')</td> 1.209 </tr> 1.210 </thead> 1.211 <tbody> 1.212 @@ -512,7 +487,7 @@ 1.213 $([ "$my" != 'my' ] && show_button do=Install) 1.214 $(show_button do=Remove) 1.215 </div> 1.216 - <div class="float-right">$(show_button recharge; show_button up)</div> 1.217 + <div class="float-right">$(show_button recharge up)</div> 1.218 </div> 1.219 EOT 1.220 for i in $(repo_list ""); do 1.221 @@ -538,9 +513,9 @@ 1.222 1.223 <form method="get" action=""> 1.224 <div id="actions"> 1.225 - <div class="float-left">$(_ 'Selection:'; show_button do=Install; show_button do=Remove) 1.226 + <div class="float-left">$(_ 'Selection:'; show_button do=Install do=Remove) 1.227 <a href="$(cat $PANEL/lib/checkbox.js)">$(_ 'Toogle all')</a></div> 1.228 - <div class="float-right">$(show_button recharge; show_button up)</div> 1.229 + <div class="float-right">$(show_button recharge up)</div> 1.230 </div> 1.231 EOT 1.232 if [ -n "$(GET files)" ]; then 1.233 @@ -620,22 +595,20 @@ 1.234 1.235 <form method="get" action=""> 1.236 <div id="actions"> 1.237 - <div class="float-left">$(_ 'Selection:'; show_button do=Install; show_button do=Remove) 1.238 - <a href="$(cat $PANEL/lib/checkbox.js)">$(_ 'Toogle all')</a></div> 1.239 + <div class="float-left">$(_ 'Selection:'; show_button do=Install do=Remove) 1.240 + <button class="button" onclick="$(cat $PANEL/lib/checkbox.js)">$(_ 'Toogle all')</button></div> 1.241 <div class="float-right">$(show_button recharge)</div> 1.242 </div> 1.243 EOT 1.244 + # Ask tazpkg to make "packages.up" file 1.245 tazpkg up --check >/dev/null 1.246 table_head 1.247 - for pkg in $(cat packages.up); do 1.248 - grep -hs "^$pkg |" $PKGS_DB/packages.desc $PKGS_DB/undigest/*/packages.desc | \ 1.249 - parse_packages_desc 1.250 + 1.251 + for pkg in $(cat $PKGS_DB/packages.up); do 1.252 + grep -hs "^$pkg " $PKGS_DB/packages.info $PKGS_DB/undigest/*/packages.info | parse_packages_info 1.253 done 1.254 - cat << EOT 1.255 -</tbody> 1.256 -</table> 1.257 -</form> 1.258 -EOT 1.259 + 1.260 + echo "</tbody></table></form>" 1.261 ;; 1.262 1.263 1.264 @@ -644,13 +617,17 @@ 1.265 # Do an action on one or some packages 1.266 # 1.267 search_form; sidebar 1.268 - LOADING_MSG="$(_ 'Please wait')"; loading_msg 1.269 + loading_msg 1.270 1.271 - opt="" 1.272 + # Find the command 1.273 cmd=$(echo $(GET do) | tr [:upper:] [:lower:]) 1.274 + 1.275 + # Find the packages list 1.276 pkgs=$(echo $QUERY_STRING | awk 'BEGIN{RS="&";FS="="}{if($1=="pkg")print $2}') 1.277 pkgs=$(httpd -d "$pkgs") 1.278 - bpkgs="<b>$pkgs</b>" 1.279 + 1.280 + # Describe the command 1.281 + bpkgs="<b>$pkgs</b>"; opt='' 1.282 case $cmd in 1.283 install) MSG="$(_ 'Installing: %s' "$bpkgs")"; opt=--forced; cmd=get-install ;; 1.284 remove) MSG="$(_ 'Removing: %s' "$bpkgs")" ;; 1.285 @@ -659,14 +636,15 @@ 1.286 unblock) MSG="$(_ 'Unblocking: %s' "$bpkgs")" ;; 1.287 repack) MSG="$(_ 'Repacking: %s' "$bpkgs")" ;; 1.288 esac 1.289 + 1.290 cat << EOT 1.291 <h2>TazPkg: $(GET do)</h2> 1.292 - 1.293 -<div class="box">$MSG</div> 1.294 +<p>$MSG</p> 1.295 EOT 1.296 + # Do the command for all asked packages 1.297 for pkg in $pkgs; do 1.298 echo '<pre>' 1.299 - echo $(_n 'y') | tazpkg $cmd $pkg $opt 2>/dev/null | filter_taztools_msgs 1.300 + echo $(_n 'y') | tazpkg $cmd $pkg $opt 2>/dev/null | filter_taztools_msgs 1.301 echo '</pre>' 1.302 done ;; 1.303 1.304 @@ -679,11 +657,19 @@ 1.305 search_form; sidebar 1.306 LOADING_MSG=$(_ 'Getting package info...'); loading_msg 1.307 1.308 - temp="${pkg#get-}" 1.309 + cat << EOT 1.310 +<h2>$(_ 'Package %s' $pkg)</h2> 1.311 + 1.312 +<form method="get" action=""> 1.313 +<input type="hidden" name="pkg" value="${pkg#get-}"/> 1.314 +<div id="actions"> 1.315 +EOT 1.316 + 1.317 + # Get receipt variables, show Install/Remove buttons 1.318 if [ -d $INSTALLED/$pkg ]; then 1.319 . $INSTALLED/$pkg/receipt 1.320 files=$(wc -l < $INSTALLED/$pkg/files.list) 1.321 - action="Remove" 1.322 + show_button do=Remove 1.323 else 1.324 cd $PKGS_DB 1.325 eval "$(awk -F$'\t' -vp=$pkg ' 1.326 @@ -694,22 +680,14 @@ 1.327 }' packages.info undigest/*/packages.info)" 1.328 PACKED_SIZE=${SIZES% *} 1.329 UNPACKED_SIZE=${SIZES#* } 1.330 - 1.331 - action="Install" 1.332 - fi 1.333 - cat << EOT 1.334 -<h2>$(_ 'Package %s' $PACKAGE)</h2> 1.335 - 1.336 -<form method="get" action=""> 1.337 -<input type="hidden" name="pkg" value="$temp"/> 1.338 -<div id="actions"> 1.339 -EOT 1.340 - if [ "$temp" != "$pkg" -a "$action" == "Install" ]; then 1.341 - show_button "do=Install&nf" 1.342 - else 1.343 - show_button "do=$action" 1.344 + if [ "${pkg#get-}" != "$pkg" ]; then 1.345 + show_button "do=Install&nf" 1.346 + else 1.347 + show_button do=Install 1.348 + fi 1.349 fi 1.350 1.351 + # Show Block/Unblock, and Repack buttons 1.352 if [ -d $INSTALLED/$pkg ]; then 1.353 if grep -qs "^$pkg$" $PKGS_DB/blocked-packages.list; then 1.354 show_button do=Unblock 1.355 @@ -718,10 +696,14 @@ 1.356 fi 1.357 show_button do=Repack 1.358 fi 1.359 + 1.360 + # Translate short description 1.361 i18n_desc $pkg 1.362 + 1.363 + # Show info table 1.364 cat << EOT 1.365 </div> 1.366 -<table class="zebra outbox"> 1.367 +<table class="zebra summary outbox"> 1.368 <tbody> 1.369 <tr><td><b>$(_ 'Name')</b></td><td>$PACKAGE</td></tr> 1.370 <tr><td><b>$(_ 'Version')</b></td><td>$VERSION</td></tr> 1.371 @@ -729,7 +711,7 @@ 1.372 <tr><td><b>$(_ 'Description')</b></td><td>$SHORT_DESC</td></tr> 1.373 $([ -n "$MAINTAINER" ] && echo "<tr><td><b>$(_ 'Maintainer')</b></td><td>$MAINTAINER</td></tr>") 1.374 $([ -n "$LICENSE" ] && echo "<tr><td><b>$(_ 'License')</b></td><td><a href=\"?license=$pkg\">$LICENSE</a></td></tr>") 1.375 - <tr><td><b>$(_ 'Website')</b></td><td><a href="$WEB_SITE">$WEB_SITE</a></td></tr> 1.376 + <tr><td><b>$(_ 'Website')</b></td><td><a href="$WEB_SITE" target="_blank">$WEB_SITE</a></td></tr> 1.377 $(show_info_links "$TAGS" "$(_ 'Tags')" 'tag') 1.378 <tr><td><b>$(_ 'Sizes')</b></td><td>$PACKED_SIZE/$UNPACKED_SIZE</td></tr> 1.379 $(show_info_links "$DEPENDS" "$(_ 'Depends')" 'info') 1.380 @@ -737,9 +719,16 @@ 1.381 </tbody> 1.382 </table> 1.383 EOT 1.384 + 1.385 + # Show description 1.386 DESC="$(tazpkg desc $pkg)" 1.387 [ -n "$DESC" ] && echo "<pre>$DESC</pre>" 1.388 1.389 + # Show configuration files list 1.390 + CONFIGS="$(tazpkg list-config $pkg | sed 's|\(.*\)|\1 \1|')" 1.391 + [ -n "$CONFIGS" ] && echo "<p>$(_ 'Configuration files')</p><pre>$(printf '<a href="index.cgi?file=%s">%s</a>\n' $CONFIGS)</pre>" 1.392 + 1.393 + # Show installed files list 1.394 if [ -d $INSTALLED/$pkg ]; then 1.395 cat << EOT 1.396 <p>$(_ 'Installed files: %s' $(wc -l < $INSTALLED/$pkg/files.list))</p> 1.397 @@ -763,157 +752,187 @@ 1.398 # TazPkg configuration page 1.399 # 1.400 cmd=$(GET admin) 1.401 + pager="$(GET pager)"; pager=${pager:-$PAGE_SIZE}; pager=${pager:-100} 1.402 + mirror="$(GET mirror)"; mirror="${mirror%/}/" 1.403 + repository="$PKGS_DB/undigest/$(GET repository)" 1.404 + link="$(GET link)"; link=${link%/} 1.405 search_form; sidebar 1.406 + loading_msg 1.407 1.408 case "$cmd" in 1.409 clean) 1.410 rm -rf $CACHE_DIR/* ;; 1.411 add-mirror) 1.412 - # Decode url 1.413 - mirror=$(GET mirror) 1.414 - case "$mirror" in 1.415 - http://*|ftp://*) 1.416 - echo "$mirror" >> $(GET file) ;; 1.417 - esac ;; 1.418 - rm-mirror=http://*|rm-mirror=ftp://*) 1.419 - mirror=${cmd#rm-mirror=} 1.420 - sed -i -e "s@$mirror@@" -e '/^$/d' $(GET file) ;; 1.421 - select-mirror*) 1.422 - release=$(cat /etc/slitaz-release) 1.423 - mirror="$(GET mirror)packages/$release/" 1.424 - tazpkg setup-mirror $mirror | log 1.425 - ;; 1.426 + echo "$mirror" >> $(GET file) ;; 1.427 + rm-mirror) 1.428 + sed -i "/^"$(echo $mirror | sed 's|/|\\/|g')"$/d" $(GET file) ;; 1.429 + select-mirror) 1.430 + tazpkg setup-mirror "${mirror}packages/$(cat /etc/slitaz-release)/" | log ;; 1.431 add-repo) 1.432 - # Decode url 1.433 - mirror=$(GET mirror) 1.434 - repository=$PKGS_DB/undigest/$(GET repository) 1.435 - case "$mirror" in 1.436 - http://*|ftp://*) 1.437 - mkdir -p $repository 1.438 - echo "$mirror" > $repository/mirror 1.439 - echo "$mirror" > $repository/mirrors ;; 1.440 - esac ;; 1.441 - rm-repo=*) 1.442 - repository=${cmd#rm-repo=} 1.443 - rm -rf $PKGS_DB/undigest/$repository ;; 1.444 + mkdir -p $repository 1.445 + echo "$mirror" > $repository/mirror 1.446 + echo "$mirror" > $repository/mirrors ;; 1.447 + rm-repo) 1.448 + rm -rf $repository ;; 1.449 setlink) 1.450 - [ -d "$(GET link)/$INSTALLED" ] && ln -fs $(GET link) $PKGS_DB/fslink ;; 1.451 + [ -d "$link/$INSTALLED" ] && ln -fs $link $PKGS_DB/fslink ;; 1.452 removelink) 1.453 rm -f $PKGS_DB/fslink ;; 1.454 + pager) 1.455 + TP_CONF=/etc/slitaz/tazpanel.conf 1.456 + if [ -z "$PAGE_SIZE" ]; then 1.457 + echo -e "\n# Size of packages list page\nPAGE_SIZE=\"$pager\"" >> $TP_CONF 1.458 + else 1.459 + sed -i "s|PAGE_SIZE=.*|PAGE_SIZE=\"$pager\"|" $TP_CONF 1.460 + fi ;; 1.461 esac 1.462 1.463 cat << EOT 1.464 <h2>$(_ 'Administration')</h2> 1.465 1.466 +<p>$(_ 'TazPkg administration and settings')</p> 1.467 + 1.468 <form method="get" action=""> 1.469 <input type="hidden" name="admin" /> 1.470 1.471 -<div> 1.472 - <p>$(_ 'TazPkg administration and settings')</p> 1.473 -</div> 1.474 <div id="actions"> 1.475 - $(show_button action=saveconf) 1.476 - $(show_button action=listconf) 1.477 - $(show_button action=quickcheck) 1.478 - $(show_button action=fullcheck) 1.479 + $(show_button action=saveconf action=listconf action=quickcheck action=fullcheck) 1.480 </div> 1.481 </form> 1.482 EOT 1.483 case "$(GET action)" in 1.484 - saveconf) 1.485 - LOADING_MSG=$(_ 'Creating the package...'); loading_msg 1.486 + saveconf) 1.487 + LOADING_MSG=$(_ 'Creating the package...'); loading_msg 1.488 + echo "<pre>" 1.489 + cd /tmp 1.490 + tazpkg repack-config | filter_taztools_msgs 1.491 + echo -n "$(_ 'Path:') "; ls /tmp/config-*.tazpkg 1.492 + echo "</pre>" ;; 1.493 + listconf) 1.494 + echo "<h4>$(_ 'Configuration files')</h4>" 1.495 + echo "<ul>" 1.496 + tazpkg list-config | while read file; do 1.497 + if [ -e $file ]; then 1.498 + echo "<li><a href=\"index.cgi?file=$file\">$file</a></li>" 1.499 + else 1.500 + echo "<li>$file</li>" 1.501 + fi 1.502 + done 1.503 + echo "</ul>" ;; 1.504 + quickcheck) 1.505 + LOADING_MSG=$(_ 'Checking packages consistency...'); loading_msg 1.506 + echo "<pre>" 1.507 + tazpkg check 1.508 + echo "</pre>" ;; 1.509 + fullcheck) 1.510 + LOADING_MSG=$(_ 'Full packages check...'); loading_msg 1.511 + echo "<pre>" 1.512 + tazpkg check --full 1.513 + echo "</pre>" ;; 1.514 + dvdimage) 1.515 + dev=$(POST dvdimage) 1.516 + mkdir -p /mnt/packages 2> /dev/null 1.517 + echo "<pre>" 1.518 + mount -t iso9660 -o loop,ro $dev /mnt/packages && 1.519 + /mnt/packages/install.sh && 1.520 + _ '%s is installed on /mnt/packages' $dev 1.521 + echo "</pre>" ;; 1.522 + dvdusbkey) 1.523 + mkdir -p /mnt/packages 2> /dev/null 1.524 + for tag in "LABEL=\"packages-$version\" TYPE=\"iso9660\"" \ 1.525 + "LABEL=\"sources-$version\" TYPE=\"iso9660\"" ; do 1.526 + dev=$(blkid | grep "$tag" | cut -d: -f1) 1.527 + [ -n "$dev" ] || continue 1.528 echo "<pre>" 1.529 - cd $HOME 1.530 - tazpkg repack-config | filter_taztools_msgs 1.531 - echo -n "$(_ 'Path:') "; ls $HOME/config-*.tazpkg 1.532 - echo "</pre>" ;; 1.533 - listconf) 1.534 - echo "<h4>$(_ 'Configuration files')</h4>" 1.535 - echo "<ul>" 1.536 - tazpkg list-config | while read file; do 1.537 - if [ -e $file ]; then 1.538 - echo "<li><a href=\"index.cgi?file=$file\">$file</a></li>" 1.539 - else 1.540 - echo "<li>$file</li>" 1.541 - fi 1.542 - done 1.543 - echo "</ul>" 1.544 - ;; 1.545 - quickcheck) 1.546 - LOADING_MSG=$(_ 'Checking packages consistency...'); loading_msg 1.547 - echo "<pre>" 1.548 - tazpkg check 1.549 - echo "</pre>" ;; 1.550 - fullcheck) 1.551 - LOADING_MSG=$(_ 'Full packages check...'); loading_msg 1.552 - echo "<pre>" 1.553 - tazpkg check --full 1.554 - echo "</pre>" ;; 1.555 - esac 1.556 + mount -t iso9660 -o ro $dev /mnt/packages && 1.557 + /mnt/packages/install.sh && 1.558 + _ '%s is installed on /mnt/packages' $dev 1.559 + echo "</pre>" 1.560 + break 1.561 + done ;; 1.562 + esac 1.563 1.564 - cache_files=$(find $CACHE_DIR -name *.tazpkg | wc -l) 1.565 + cache_files=$(find $CACHE_DIR -name '*.tazpkg' | wc -l) 1.566 cache_size=$(du -sh $CACHE_DIR | cut -f1 | sed 's|\.0||') 1.567 [ "$cache_files" == 0 ] && cache_size="0K" 1.568 + mirror=$(cat $PKGS_DB/mirror) 1.569 + default_mirror=${mirror%/packages/*} 1.570 cat << EOT 1.571 +<article> 1.572 <h3>$(_ 'Packages cache')</h3> 1.573 1.574 -<div> 1.575 - <form method="get" action=""> 1.576 - <p>$(_ 'Packages in the cache: %s (%s)' $cache_files $cache_size) 1.577 - $(show_button admin=clean) 1.578 - <!--input type="hidden" name="admin" value="clean" /> 1.579 - <input type="submit" value="$(_n 'Clean')" /--> 1.580 - </p> 1.581 - </form> 1.582 -</div> 1.583 +<form method="get" action=""> 1.584 + <p>$(_ 'Packages in the cache: %s (%s)' $cache_files $cache_size) 1.585 + $(show_button admin=clean) 1.586 + </p> 1.587 +</form> 1.588 +</article> 1.589 1.590 -<h3>$(_ 'Default mirror')</h3> 1.591 1.592 -<pre>$(cat $PKGS_DB/mirror)</pre> 1.593 - 1.594 +<article> 1.595 <h3>$(_ 'Current mirror list')</h3> 1.596 EOT 1.597 + 1.598 + # List mirrors 1.599 + version=$(cat /etc/slitaz-release) 1.600 for i in $PKGS_DB/mirrors $PKGS_DB/undigest/*/mirrors; do 1.601 [ -s $i ] || continue 1.602 - echo '<div class="box">' 1.603 if [ $i != $PKGS_DB/mirrors ]; then 1.604 - Repo_Name="$(repo_name $(dirname $i))" 1.605 - echo "<h4>$(_ 'Repository: %s' $Repo_Name)</h4>" 1.606 + echo "<h4>$(_ 'Repository: %s' "$(repo_name $(dirname $i))")</h4>" 1.607 fi 1.608 - echo "<ul>" 1.609 - list_mirrors $i 1.610 - echo "</ul>" 1.611 cat << EOT 1.612 -</div> 1.613 +<form method="get" action=""> 1.614 +<input type="hidden" name="admin" value="select-mirror"/> 1.615 +<table class="zebra"> 1.616 +EOT 1.617 + while read line; do 1.618 + cat << EOT 1.619 +<tr> 1.620 + <td> 1.621 + <input type="radio" name="mirror" id="$line" value="$line" onchange="this.form.submit()" 1.622 + $([ "$line" == "$default_mirror/" ] && echo -n 'checked="checked"')> 1.623 + <label for="$line"><code>$line</code></label></td> 1.624 + <td><a class="w" href="$line" target="_blank"></a></td> 1.625 + <td><a href="?admin=rm-mirror&mirror=$line&file=$i"> 1.626 + <img src="$IMAGES/tp-remove.png" title="$(_ 'Delete')"/></a></td> 1.627 +</tr> 1.628 +EOT 1.629 + done < $i 1.630 + cat << EOT 1.631 +</table> 1.632 +</form> 1.633 + 1.634 <form method="get" action=""> 1.635 <p> 1.636 - <input type="hidden" name="admin" value="add-mirror" /> 1.637 <input type="hidden" name="file" value="$i" /> 1.638 - <input type="text" name="mirror" size="60"> 1.639 - <input type="submit" value="$(_n 'Add mirror')" /> 1.640 + <input type="text" name="mirror" size="40" /> 1.641 + $(show_button admin=add-mirror) 1.642 </p> 1.643 </form> 1.644 EOT 1.645 done 1.646 + echo "</article><article>" 1.647 echo "<h3>$(_ 'Private repositories')</h3>" 1.648 - [ -n "$(ls $PKGS_DB/undigest 2> /dev/null)" ] && cat << EOT 1.649 -<div class="box"> 1.650 - <ul> 1.651 - $(list_repos) 1.652 - </ul> 1.653 -</div> 1.654 + if [ -n "$(ls $PKGS_DB/undigest 2> /dev/null)" ]; then 1.655 + echo '<table class="zebra">' 1.656 + ls $PKGS_DB/undigest 2> /dev/null | while read repo ; do 1.657 + cat <<EOT 1.658 + <tr><td><a href="?admin=rm-repo&repository=$repo"><img src="$IMAGES/tp-remove.png" title="$(_ 'Delete')"></a>$repo</td></tr> 1.659 EOT 1.660 + done 1.661 + echo '</table>' 1.662 + fi 1.663 + 1.664 cat << EOT 1.665 <form method="get" action=""> 1.666 - <p> 1.667 - <input type="hidden" name="admin" value="add-repo" /> 1.668 - $(_ 'Name') <input type="text" name="repository" size="10"> 1.669 - $(_ 'mirror') 1.670 - <input type="text" name="mirror" value="http://" size="50"> 1.671 - <input type="submit" value="$(_n 'Add repository')" /> 1.672 - </p> 1.673 + <p>$(_ 'Name') <input type="text" name="repository" size="10"/> 1.674 + $(_ 'URL:') <input type="text" name="mirror" value="http://"> 1.675 + $(show_button admin=add-repo)</p> 1.676 </form> 1.677 +</article> 1.678 1.679 + 1.680 +<article> 1.681 <h3>$(_ 'Link to another SliTaz installation')</h3> 1.682 1.683 <p>$(_ "This link points to the root of another SliTaz installation. \ 1.684 @@ -921,15 +940,14 @@ 1.685 1.686 <form method="get" action=""> 1.687 <p> 1.688 - <input type="text" name="link" value="$(readlink $PKGS_DB/fslink 2> /dev/null)" size="50"> 1.689 - $(show_button admin=setlink) 1.690 - $(show_button admin=removelink) 1.691 + <input type="text" name="link" value="$(readlink $PKGS_DB/fslink 2> /dev/null)"/> 1.692 + $(show_button admin=setlink admin=removelink) 1.693 </p> 1.694 </form> 1.695 -EOT 1.696 - version=$(cat /etc/slitaz-release) 1.697 - cat << EOT 1.698 +</article> 1.699 1.700 + 1.701 +<article> 1.702 <h3 id="dvd">$(_ 'SliTaz packages DVD')</h3> 1.703 1.704 <p>$(_ "A bootable DVD image of all available packages for the %s version is \ 1.705 @@ -937,45 +955,30 @@ 1.706 without an internet connection. This image can be installed on a DVD or a USB \ 1.707 key." $version)</p> 1.708 1.709 -<div> 1.710 - <form method="post" action='?admin&action=dvdimage#dvd'> 1.711 - <p> 1.712 - <a class="button" 1.713 - href='http://mirror.slitaz.org/iso/$version/packages-$version.iso'> 1.714 - <img src="$IMAGES/tazpkg.png" />$(_ 'Download DVD image')</a> 1.715 - <a class="button" href='?admin&action=dvdusbkey#dvd'> 1.716 - <img src="$IMAGES/tazpkg.png" />$(_ 'Install from DVD/USB key')</a> 1.717 - </p> 1.718 - <div class="box"> 1.719 - $(_ 'Install from ISO image:') 1.720 - <input type="text" name="dvdimage" size="40" value="/root/packages-$version.iso"> 1.721 - </div> 1.722 - </form> 1.723 +<button class="button" onclick='http://mirror.slitaz.org/iso/$version/packages-$version.iso'> 1.724 + <img src="$IMAGES/tp-dl-dvd.png" />$(_ 'Download DVD image')</button> 1.725 +<button class="button" onclick='?admin&action=dvdusbkey'> 1.726 + <img src="$IMAGES/tp-link.png" />$(_ 'Install from DVD/USB key')</button> 1.727 +<div class="box"> 1.728 + <form method="post" action='?admin&action=dvdimage'> 1.729 + $(_ 'Install from ISO image:') 1.730 + <input type="text" name="dvdimage" size="40" value="/root/packages-$version.iso" /> 1.731 </div> 1.732 +</form> 1.733 +</article> 1.734 + 1.735 + 1.736 +<article> 1.737 +<h3>$(_ 'Packages list')</h3> 1.738 + 1.739 +<p>$(_ 'Long list of packages is paginated. Here you can set the page size (default: 100, turning off the pager: 0).')</p> 1.740 +<form method="get" action=""> 1.741 + <input type="hidden" name="admin" value="pager" /> 1.742 + <input type="number" name="pager" value="$pager" min="0" step="10" size="4" /> 1.743 + <button class="button" type="submit">$(_ 'Set')</button> 1.744 +</form> 1.745 +</article> 1.746 EOT 1.747 - if [ "$(GET action)" == "dvdimage" ]; then 1.748 - dev=$(POST dvdimage) 1.749 - mkdir -p /mnt/packages 2> /dev/null 1.750 - echo "<pre>" 1.751 - mount -t iso9660 -o loop,ro $dev /mnt/packages && 1.752 - /mnt/packages/install.sh && 1.753 - _ '%s is installed on /mnt/packages' $dev 1.754 - echo "</pre>" 1.755 - fi 1.756 - if [ "$(GET action)" == "dvdusbkey" ]; then 1.757 - mkdir -p /mnt/packages 2> /dev/null 1.758 - for tag in "LABEL=\"packages-$version\" TYPE=\"iso9660\"" \ 1.759 - "LABEL=\"sources-$version\" TYPE=\"iso9660\"" ; do 1.760 - dev=$(blkid | grep "$tag" | cut -d: -f1) 1.761 - [ -n "$dev" ] || continue 1.762 - echo "<pre>" 1.763 - mount -t iso9660 -o ro $dev /mnt/packages && 1.764 - /mnt/packages/install.sh && 1.765 - _ '%s is installed on /mnt/packages' $dev 1.766 - echo "</pre>" 1.767 - break 1.768 - done 1.769 - fi 1.770 ;; 1.771 1.772 1.773 @@ -987,79 +990,71 @@ 1.774 1.775 pkg=$(GET license) 1.776 case $pkg in 1.777 - /*) 1.778 - [ -e $pkg ] && { 1.779 + /*) [ -e $pkg ] && { 1.780 echo "<h2>${pkg#/usr/share/licenses/}</h2>" 1.781 case $pkg in 1.782 - *.htm*) 1.783 - cat $pkg ;; 1.784 - *) 1.785 - echo "<pre style=\"white-space: pre-wrap\">" 1.786 + *.htm*) cat $pkg ;; 1.787 + *) echo "<pre style=\"white-space: pre-wrap\">" 1.788 cat $pkg | htmlize | sed 's|\([hf]t*t*ps*://[a-zA-Z0-9./_-]*[a-zA-Z0-9/_-]\)|<a href="\1">\1</a>|' 1.789 echo "</pre>" 1.790 ;; 1.791 esac 1.792 } ;; 1.793 - *) 1.794 - echo "<h2>$(_ 'Licenses for package %s' $pkg)</h2>" 1.795 - ONLINE=''; OFFLINE='' 1.796 - 1.797 + *) echo "<h2>$(_ 'Licenses for package %s' $pkg)</h2>" 1.798 + OFFLINE='' 1.799 if [ -e "$PKGS_DB/installed/$pkg" ]; then 1.800 - for license in $(. $PKGS_DB/installed/$pkg/receipt; echo "$LICENSE"); do 1.801 - OSL=''; GNU=''; USR=''; LIC='' 1.802 - case $license in 1.803 - Apache) OSL='Apache-2.0'; URL='http://www.apache.org/licenses/' ;; 1.804 - Artistic) OSL='Artistic-2.0' ;; 1.805 - BSD) OSL='BSD-2-Clause' ;; 1.806 - BSD3) OSL='BSD-3-Clause' ;; 1.807 - 1.808 - CC-BY-SA*|CC-SA*) CCO='by-sa/4.0/' ;; 1.809 - CC-BY-ND*) CCO='by-nd/4.0/' ;; 1.810 - CC-BY-NC-SA*) CCO='by-nc-sa/4.0/' ;; 1.811 - CC-BY-NC-ND*) CCO='by-nc-nd/4.0/' ;; 1.812 - CC-BY-NC*) CCO='by-nc/4.0/' ;; 1.813 - CC-BY*) CCO='by/4.0/' ;; 1.814 - 1.815 - cc-pd) URL='http://creativecommons.org/publicdomain/' ;; 1.816 - CCPL) ;; 1.817 - CDDL*) OSL='CDDL-1.0' ;; 1.818 - CECILL*) OSL='CECILL-2.1' ;; 1.819 - Eclipse|EPL*) OSL='EPL-1.0' ;; 1.820 - FDL) GNU='fdl' ;; 1.821 - GPL) GNU='gpl'; OSL='gpl-license'; LIC='gpl.txt' ;; 1.822 - GPL2) GNU='old-licenses/gpl-2.0'; OSL='GPL-2.0' ;; 1.823 - GPL3) GNU='gpl'; OSL='GPL-3.0'; LIC='gpl.txt' ;; 1.824 - ISC) OSL='ISC' ;; 1.825 - LGPL) GNU='lgpl'; OSL='lgpl-license' ;; 1.826 - LGPL2) GNU='old-licenses/lgpl-2.0' ;; 1.827 - LGPL2.1) GNU='old-licenses/lgpl-2.1'; OSL='LGPL-2.1'; LIC='lgpl.txt' ;; 1.828 - LGPL3) GNU='lgpl'; OSL='LGPL-3.0' ;; 1.829 - LPPL*) OSL='LPPL-1.3c' ;; 1.830 - MIT) OSL='MIT'; LIC='mit.txt' ;; 1.831 - MPL) OSL='MPL-2.0'; LIC='mozilla.txt' ;; 1.832 - MPL2) OSL='MPL-2.0' ;; 1.833 - FL) OSL='Fair' ;; # ? 1.834 - PSL) ;; 1.835 - PublicDomain) ;; 1.836 - QPL*) OSL='QPL-1.0' ;; 1.837 - SIL_OFL*) OSL='OFL-1.1' ;; 1.838 - zlib/libpng) OSL='Zlib' ;; 1.839 - esac 1.840 - 1.841 - [ -n "$OSL" ] && ONLINE="$ONLINE <li><a href=\"http://opensource.org/licenses/$OSL\">$(_ '%s license on %s website' "<b>$OSL</b>" "OSL")</a></li>\n" 1.842 - [ -n "$GNU" ] && ONLINE="$ONLINE <li><a href=\"https://www.gnu.org/licenses/$GNU.html\">$(_ '%s license on %s website' "<b>${GNU#*/}</b>" "GNU")</a></li>\n" 1.843 - [ -n "$CCO" ] && ONLINE="$ONLINE <li><a href=\"http://creativecommons.org/licenses/$CCO\">$(_ '%s license on %s website' "<b>${CCO%%/*}</b>" "Creative Commons")</a></li>\n" 1.844 - [ -n "$URL" ] && ONLINE="$ONLINE <li><a href=\"$URL\">$URL</a></li>\n" 1.845 - [ -n "$LIC" ] && OFFLINE="$OFFLINE <li><a href=\"?license=/usr/share/licenses/$LIC\">licenses/<b>$LIC</b></a></li>\n" 1.846 - done 1.847 - 1.848 for lic in $(grep /usr/share/licenses/ $PKGS_DB/installed/$pkg/files.list); do 1.849 OFFLINE="$OFFLINE <li><a href=\"?license=$lic\">licenses/<b>${lic#/usr/share/licenses/}</b></a></li>\n" 1.850 done 1.851 - fi 1.852 - [ -n "$ONLINE" ] && echo -e "<p>$(_ 'Read online:')</p>\n<ul>\n$ONLINE</ul>\n" 1.853 - [ -n "$OFFLINE" ] && echo -e "<p>$(_ 'Read local:')</p>\n<ul>\n$OFFLINE</ul>\n" 1.854 - ;; 1.855 + echo "\ 1.856 +Apache|Apache-2.0||||http://www.apache.org/licenses/#Artistic|Artistic-2.0||||#\ 1.857 +BSD|BSD-2-Clause||||#BSD3|BSD-3-Clause||||#CC-BY-SA||by-sa/4.0/|||#\ 1.858 +CC-SA||by-sa/4.0/|||#CC-BY-ND||by-nd/4.0/|||#CC-BY-NC-SA||by-nc-sa/4.0/|||#\ 1.859 +CC-BY-NC-ND||by-nc-nd/4.0/|||#CC-BY-NC||by-nc/4.0/|||#CC-BY||by/4.0/|||#\ 1.860 +cc-pd|||||http://creativecommons.org/publicdomain/#CDDL|CDDL-1.0||||#\ 1.861 +CECILL|CECILL-2.1||||#Eclipse|EPL-1.0||||#EPL|EPL-1.0||||#FDL|||fdl||#\ 1.862 +GPL|gpl-license||gpl|gpl.txt|#GPL2|GPL-2.0||old-licenses/gpl-2.0||#\ 1.863 +GPL3|GPL-3.0||gpl|gpl.txt|#ISC|ISC||||#LGPL|lgpl-license||lgpl||#\ 1.864 +LGPL2|||old-licenses/lgpl-2.0||#\ 1.865 +LGPL2.1|LGPL-2.1||old-licenses/lgpl-2.1|lgpl.txt|#LGPL3|LGPL-3.0||lgpl||#\ 1.866 +LPPL|LPPL-1.3c||||#MIT|MIT|||mit.txt|#MPL|MPL-2.0|||mozilla.txt|#\ 1.867 +MPL2|MPL-2.0||||#PublicDomain|||||http://creativecommons.org/publicdomain/#\ 1.868 +QPL|QPL-1.0||||#SIL_OFL|OFL-1.1||||#OFL|OFL-1.1||||#zlib/libpng|Zlib||||" | \ 1.869 +awk -vlicenses="$(. $PKGS_DB/installed/$pkg/receipt; echo "$LICENSE")" \ 1.870 + -vtext="$(_ '%s license on %s website' %s %s)" \ 1.871 + -vro="$(_ 'Read online:')" -vrl="$(_ 'Read local:')" \ 1.872 + -vofflic="$OFFLINE" ' 1.873 +BEGIN{ FS="|"; RS="#"; split(licenses, lic, " "); if (offlic) OFFLINE[0]=offlic } 1.874 +function link1(u, l, ll, w) { 1.875 + return sprintf("\t<li><a href=\"%s%s\">" text "</a></li>", u, l, "<b>" ll "</b>", w) } 1.876 +function link2(u, l, ll) { 1.877 + return sprintf("\t<li><a href=\"%s%s\">%s</b></a></li>", u, l, ll) } 1.878 +function link_osl(n) { 1.879 + return link1("http://opensource.org/licenses/", n, n, "OSL") } 1.880 +function link_cc(n) { 1.881 + split(n, ll, "/") 1.882 + return link1("http://creativecommons.org/licenses/", n, ll[1], "Creative Commons") } 1.883 +function link_gnu(n) { 1.884 + split(n, ll, "/") 1.885 + return link1("https://www.gnu.org/licenses/", n ".html", ll[2] ? ll[2] : ll[1], "GNU") } 1.886 +function link_loc(n) { 1.887 + return link2("?license=/usr/share/licenses/", n, "licenses/<b>" n "</b>") } 1.888 +function link_url(n) { 1.889 + return link2(n, "", n) } 1.890 +{ 1.891 + if ($1 == lic[1] || $1 == lic[2] || $1 == lic[3] || $1 == lic[4]) { 1.892 + if ($2) ONLINE[$2]=link_osl($2) 1.893 + if ($3) ONLINE[$3]=link_cc($3) 1.894 + if ($4) ONLINE[$4]=link_gnu($4) 1.895 + if ($5) OFFLINE[$5]=link_loc($5) 1.896 + if ($6) OFFLINE[$6]=link_url($6) 1.897 + } 1.898 +} 1.899 +END{ 1.900 + if (length(ONLINE) > 0) { print "<p>" ro "</p>\n<ul>"; for (o in ONLINE) print ONLINE[o]; print "</ul>" } 1.901 + if (length(OFFLINE) > 0) { print "<p>" rl "</p>\n<ul>"; for (o in OFFLINE) print OFFLINE[o]; print "</ul>" } 1.902 +}' 1.903 + fi ;; 1.904 esac 1.905 ;; 1.906 1.907 @@ -1076,11 +1071,14 @@ 1.908 Any) title="$(_ 'List of tags in all repositories')" ;; 1.909 *) title="$(_ 'List of tags in repository "%s"' "$brepo")" ;; 1.910 esac 1.911 - echo "<p>$title</p><p>" 1.912 + echo "<p>$title</p><p id=\"tags\">" 1.913 to_read="" 1.914 for i in $(repo_list ""); do 1.915 - if [ ! -e $i/packages.info ] && [ $repo == 'Public' ]; then 1.916 - list=installed; else list=packages; fi 1.917 + if [ ! -e $i/packages.info ]; then 1.918 + list=installed 1.919 + else 1.920 + list=packages 1.921 + fi 1.922 to_read="$to_read $i/$list.info" 1.923 done 1.924 TAGS="$(awk -F$'\t' '{if($6){print $6}}' $to_read | tr ' ' $'\n' | sort | uniq -c)" 1.925 @@ -1105,9 +1103,10 @@ 1.926 <form method="get" action=""> 1.927 <div id="actions"> 1.928 <div class="float-left"> 1.929 - $(_ 'Selection:') 1.930 - <input type="submit" name="do" value="Install" /> 1.931 - <input type="submit" name="do" value="Remove" /> 1.932 + $(_ 'Selection:'; show_button do=Install do=Remove) 1.933 + </div> 1.934 + <div class="float-right"> 1.935 + $(show_button tags) 1.936 </div> 1.937 </div> 1.938 EOT 1.939 @@ -1150,8 +1149,6 @@ 1.940 # 1.941 search_form; sidebar 1.942 1.943 - [ -n "$(GET block)" ] && tazpkg block $(GET block) 1.944 - [ -n "$(GET unblock)" ] && tazpkg unblock $(GET unblock) 1.945 cat << EOT 1.946 <h2>$(_ 'Summary')</h2> 1.947 1.948 @@ -1160,19 +1157,23 @@ 1.949 EOT 1.950 fslink=$(readlink $PKGS_DB/fslink) 1.951 [ -n "$fslink" -a -d "$fslink/$INSTALLED" ] && show_button linkable 1.952 - show_button recharge 1.953 - show_button up 1.954 - show_button admin 1.955 + show_button recharge up admin 1.956 cat << EOT 1.957 </div> 1.958 1.959 +<article> 1.960 +<h3>$(_ 'Summary')</h3> 1.961 <table class="zebra summary"> 1.962 <tbody> 1.963 <tr> 1.964 <td>$(_ 'Last recharge:')</td> 1.965 - <td>$(list=$PKGS_DB/packages.info 1.966 + <td>$(list=$PKGS_DB/ID 1.967 if [ -e $list ]; then 1.968 - $((days=$(date +%s)/86400-$(date -r $list +%s)/86400)) 1.969 + ohhmm="$(date +%z)" # '+0200' for EET (+2 hours) 1.970 + offset=$(( 60 * (60 * ${ohhmm:0:3} + ${ohhmm:3:2}) )) # in the seconds 1.971 + daynow=$(( ($(date +%s) + $offset) / 86400 )) 1.972 + dayupd=$(( ($(date -r $list +%s) + $offset) / 86400 )) 1.973 + days=$(( $daynow - $dayupd )) 1.974 time=$(date -r $list +%R) 1.975 ago="$(_p '%d day ago.' '%d days ago.' $days $days)" 1.976 case $days in 1.977 @@ -1190,31 +1191,38 @@ 1.978 fi)</td></tr> 1.979 <tr> 1.980 <td>$(_ 'Installed packages:')</td> 1.981 - <td><b>$(cat $PKGS_DB/installed.info | wc -l)</a></b> 1.982 - <a href="?list&my=my&cat=all&repo=Any">$(_ '(show)')</a></td></tr> 1.983 + <td><a href="?list&my=my&cat=all&repo=Any"> 1.984 + <b>$(cat $PKGS_DB/installed.info | wc -l)</b> 1.985 + </a></td></tr> 1.986 <tr> 1.987 <td>$(_ 'Mirrored packages:')</td> 1.988 - <td><b>$(cat $PKGS_DB/packages.list | wc -l)</b></td></tr> 1.989 + <td><a href="?list&my=no&cat=all&repo=Any"> 1.990 + <b>$(cat $PKGS_DB/packages.list | wc -l)</b> 1.991 + </a></td></tr> 1.992 <tr> 1.993 <td>$(_ 'Upgradeable packages:')</td> 1.994 - <td><b>$(cat $PKGS_DB/packages.up | wc -l)</b> 1.995 - <a href="?up">$(_ '(show)')</a></td></tr> 1.996 + <td><a href="?up"> 1.997 + <b>$(cat $PKGS_DB/packages.up | wc -l)</b> 1.998 + </a></td></tr> 1.999 <tr> 1.1000 <td>$(_ 'Installed files:')</td> 1.1001 <td><b>$(cat $INSTALLED/*/files.list | wc -l)</b></td></tr> 1.1002 <tr> 1.1003 <td>$(_ 'Blocked packages:')</td> 1.1004 - <td><b>$(cat $PKGS_DB/blocked-packages.list | wc -l)</b> 1.1005 - <a href="?blocked">$(_ '(show)')</a></td></tr> 1.1006 + <td><a href="?blocked"> 1.1007 + <b>$(cat $PKGS_DB/blocked-packages.list | wc -l)</b> 1.1008 + </a></td></tr> 1.1009 </tbody> 1.1010 -</table> 1.1011 +</table></article> 1.1012 1.1013 +<article> 1.1014 <h3>$(_ 'Latest log entries')</h3> 1.1015 1.1016 <pre> 1.1017 -$(tail -n 5 $LOG | fgrep "-" | awk '{print $1, $2, $3, $4, $5, $6, $7}') 1.1018 +$(tail -n 5 $LOG | fgrep "-" | awk '{print $1, $2, $3, $4, $5, "<a href=\"?info=" $6 "\">" $6 "</a>", $7}') 1.1019 <a href="index.cgi?file=$LOG">$(_ 'more...')</a> 1.1020 </pre> 1.1021 +</article> 1.1022 EOT 1.1023 ;; 1.1024 esac