slitaz-forge diff pkgs/search.sh @ rev 605
mirror, pkgs: synchronize current changes
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Mon Nov 30 01:03:59 2015 +0200 (2015-11-30) |
parents | d50b1e11ce39 |
children | 1d250e4f3640 |
line diff
1.1 --- a/pkgs/search.sh Sun Oct 25 06:47:13 2015 +0200 1.2 +++ b/pkgs/search.sh Mon Nov 30 01:03:59 2015 +0200 1.3 @@ -38,8 +38,9 @@ 1.4 de) LANG='de_DE';; 1.5 en) LANG='en_US';; 1.6 es) LANG='es_ES';; 1.7 + fa) LANG='fa_IR';; 1.8 fr) LANG='fr_FR';; 1.9 - it) LANG='it_IT';; 1.10 + #it) LANG='it_IT';; # We haven't Italian translations 1.11 pl) LANG='pl_PL';; 1.12 pt) LANG='pt_BR';; 1.13 ru) LANG='ru_RU';; 1.14 @@ -152,6 +153,7 @@ 1.15 1.16 # Cache icons to fast search 1.17 # Find the latest update in the "icons" folder 1.18 +unset ICONS_CACHE_REBUILDED 1.19 iconslast="$cache/icons.$(date -u +%s -r /var/www/pkgs/icons/$(ls -t /var/www/pkgs/icons | head -n1))" 1.20 1.21 if [ ! -f "$iconslast" ]; then 1.22 @@ -163,8 +165,12 @@ 1.23 awk '{printf "%s\tfont\n",$1}' icons/packages-font.icons 1.24 awk '{printf "%s\ti18n\n",$1}' icons/packages-i18n.icons 1.25 awk '{printf "%s\tthm\n",$1}' icons/packages-thm.icons 1.26 + awk '{printf "%s\tlib\n",$1}' icons/packages-lib.icons 1.27 + awk '{printf "%s\tpy\n",$1}' icons/packages-py.icons 1.28 + awk '{printf "%s\tperl\n",$1}' icons/packages-perl.icons 1.29 ls icons/*.png | awk -F/ '{sub(/\.png/,"",$2);printf "%s\t%s\n", $2, $2}' 1.30 ) | sort > "$iconslast" 1.31 + ICONS_CACHE_REBUILDED='yes' 1.32 fi 1.33 1.34 1.35 @@ -202,6 +208,7 @@ 1.36 esac 1.37 done 1.38 [ -z "$SLITAZ_VERSION" ] && SLITAZ_VERSION='cooking' 1.39 +addver=''; [ "$SLITAZ_VERSION" != 'cooking' ] && addver="&version=$SLITAZ_VERSION" 1.40 SEARCH="${SEARCH//%20/ }" 1.41 1.42 # 1.43 @@ -233,6 +240,16 @@ 1.44 equiv="$pkgsrepo/packages.equiv" 1.45 pinfo="$pkgsrepo/packages.info" 1.46 1.47 +# Date of the last modification (both packages DB or icons DB) 1.48 +if [ -f "$pkgsrepo/ID" ]; then 1.49 + if [ "$iconslast" -nt "$pkgsrepo/ID" ]; then 1.50 + lastmod="$(date -Rur "$iconslast")" 1.51 + else 1.52 + lastmod="$(date -Rur "$pkgsrepo/ID")" 1.53 + fi 1.54 + lastmod="${lastmod/UTC/GMT}" 1.55 +fi 1.56 + 1.57 1.58 1.59 1.60 @@ -249,20 +266,20 @@ 1.61 <form id="s_form" name="s_form" method="post" action="$(ifdebug '?')"> 1.62 <span class="small"> 1.63 <select name="object"> 1.64 - <option value="Package">$( _ 'Package name')</option> 1.65 - <option $sel_desc value="Desc">$( _ 'Description')</option> 1.66 - <option $sel_tags value="Tags">$( _ 'Tag')</option> 1.67 - <option $sel_arch value="Arch">$( _ 'Architecture')</option> 1.68 - <option $sel_bugs value="Bugs">$( _ 'Bugs')</option> 1.69 - <option $sel_rcpt value="Receipt">$( _ 'Receipt')</option> 1.70 - <option $sel_deps value="Depends">$( _ 'Dependencies')</option> 1.71 - <option $sel_bdps value="BuildDepends">$( _ 'Build dependencies')</option> 1.72 - <option $sel_file value="File">$( _ 'File')</option> 1.73 - <option $sel_flst value="File_list">$( _ 'File list')</option> 1.74 - <option $sel_over value="FileOverlap">$( _ 'Common files')</option> 1.75 - <option $sel_catg value="Category">$( _ 'Category')</option> 1.76 - <option $sel_mtnr value="Maintainer">$( _ 'Maintainer')</option> 1.77 - <option $sel_lcns value="License">$( _ 'License')</option> 1.78 + <option value="Package" class="pkg">$(_ 'Package name')</option> 1.79 + <option $sel_desc value="Desc" class="description">$(_ 'Description')</option> 1.80 + <option $sel_tags value="Tags" class="tag">$(_ 'Tag')</option> 1.81 + <option $sel_arch value="Arch" class="arch">$(_ 'Architecture')</option> 1.82 + <option $sel_bugs value="Bugs" class="bugs">$(_ 'Bugs')</option> 1.83 + <option $sel_rcpt value="Receipt" class="receipt">$(_ 'Receipt')</option> 1.84 + <option $sel_deps value="Depends" class="dep">$(_ 'Dependencies')</option> 1.85 + <option $sel_bdps value="BuildDepends" class="dep">$(_ 'Build dependencies')</option> 1.86 + <option $sel_file value="File" class="file">$(_ 'File')</option> 1.87 + <option $sel_flst value="File_list" class="files-list">$(_ 'File list')</option> 1.88 + <option $sel_over value="FileOverlap" class="common">$(_ 'Common files')</option> 1.89 + <option $sel_catg value="Category" class="category">$(_ 'Category')</option> 1.90 + <option $sel_mtnr value="Maintainer" class="avatar">$(_ 'Maintainer')</option> 1.91 + <option $sel_lcns value="License" class="license">$(_ 'License')</option> 1.92 </select> 1.93 </span> 1.94 <span class="stretch"> 1.95 @@ -338,22 +355,38 @@ 1.96 1.97 PKGS=$( cat "$cache/stat.p.$SLITAZ_VERSION.$repoid") 1.98 FILES=$(cat "$cache/stat.f.$SLITAZ_VERSION.$repoid") 1.99 - echo -n '<div class="summary">' 1.100 + echo -en '\n<div class="summary">' 1.101 _p '%s package' '%s packages' "$PKGS" \ 1.102 "$PKGS" 1.103 _p ' and %s file in %s database' ' and %s files in %s database' "$FILES" \ 1.104 "$FILES" "$SLITAZ_VERSION" 1.105 + 1.106 + # Date of the last update... 1.107 + echo -n ' (' 1.108 + if [ -e "$pkgsrepo/IDs" ]; then 1.109 + # ...based on the value inside IDs 1.110 + date +"%c" -d@$(cut -d' ' -f2 "$pkgsrepo/IDs") | tr -d '\n' 1.111 + elif [ -e "$pkgsrepo/ID" ]; then 1.112 + # ...based on the date of ID 1.113 + date +"%c" -r "$pkgsrepo/ID" | tr -d '\n' 1.114 + else 1.115 + # ...based on the date of the newest file 1.116 + date +"%c" -r "$pkgsrepo/$(ls -Lt "$pkgsrepo" | head -n1)" | tr -d '\n' 1.117 + fi 1.118 + echo -n ')' 1.119 + 1.120 cat <<EOT 1.121 </div> 1.122 </main> 1.123 1.124 -<footer> 1.125 EOT 1.126 1.127 local lang="${LANG%_*}" 1.128 if [ -e "lib/footer.$lang.sh" ]; then 1.129 + echo '<footer>' 1.130 . lib/footer.$lang.sh 1.131 else 1.132 + echo '<footer dir="ltr">' 1.133 . lib/footer.sh 1.134 fi 1.135 1.136 @@ -390,7 +423,7 @@ 1.137 </body> 1.138 </html> 1.139 EOT 1.140 - 1.141 + exit 0 1.142 } 1.143 1.144 1.145 @@ -437,24 +470,26 @@ 1.146 echo '<tr>' 1.147 fi 1.148 1.149 - PACKAGE_URL="$MIRROR_URL/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRA_VERSION.tazpkg" 1.150 + PACKAGE_URL="$MIRROR_URL/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg" 1.151 1.152 case "$SLITAZ_VERSION" in 1.153 cooking) 1.154 - COOKER="<a href=\"http://cook.slitaz.org/cooker.cgi?pkg=$PACKAGE\" class=\"co\" title=\"$a_co\">$a_co</a>";; 1.155 + COOKER="<a href=\"http://cook.slitaz.org/cooker.cgi?pkg=$PACKAGE\" class=\"co\" title=\"$a_co\">$a_co</a>" 1.156 + ;; 1.157 stable|undigest|backports) 1.158 - COOKER="<a href=\"http://cook.slitaz.org/$SLITAZ_VERSION/cooker.cgi?pkg=$PACKAGE\" class=\"co\" title=\"$a_co\">$a_co</a>";; 1.159 + COOKER="<a href=\"http://cook.slitaz.org/$SLITAZ_VERSION/cooker.cgi?pkg=$PACKAGE\" class=\"co\" title=\"$a_co\">$a_co</a>" 1.160 + ;; 1.161 *) 1.162 - COOKER='';; 1.163 + COOKER='' 1.164 + ;; 1.165 esac 1.166 1.167 cat <<EOT 1.168 - <td class="first"><a href="?info=$PACKAGE&version=$SLITAZ_VERSION"><img 1.169 - src="$(package_icon $PACKAGE)"/></a></td> 1.170 + <td class="first"><a href="?info=$PACKAGE$addver"><img src="$(package_icon $PACKAGE)" alt="$PACKAGE icon"/></a></td> 1.171 <td><b>$PACKAGE</b><br/>$SHORT_DESC</td> 1.172 <td class="last"> 1.173 <a class="dl" href="$PACKAGE_URL" title="$a_dl">$a_dl</a> 1.174 - <a class="rc" href="?receipt=$PACKAGE&version=$SLITAZ_VERSION" title="$a_rc">$a_rc</a> 1.175 + <a class="rc" href="?receipt=$PACKAGE$addver" title="$a_rc">$a_rc</a> 1.176 $COOKER 1.177 </td> 1.178 </tr> 1.179 @@ -467,10 +502,12 @@ 1.180 # $2 = query 1.181 1.182 awk -F$'\t' -vtype="$1" -vquery="$2" -vmurl="$MIRROR_URL" -vver="$SLITAZ_VERSION" \ 1.183 - -vaco="$a_co" -vadl="$a_dl" -varc="$a_rc" -viconslast="$iconslast" ' 1.184 + -vaco="$a_co" -vadl="$a_dl" -varc="$a_rc" -viconslast="$iconslast" \ 1.185 + -vnf="$(_ 'Nothing found')" -vaddver="$addver" ' 1.186 BEGIN { 1.187 IGNORECASE = 1; 1.188 print "<table class=\"list\">"; 1.189 + notfound = "y"; 1.190 } 1.191 1.192 function cooker() { 1.193 @@ -491,22 +528,17 @@ 1.194 return "pkg"; 1.195 } 1.196 1.197 -function addver() { 1.198 - if (ver=="c" || ver=="cooking") return ""; 1.199 - return ("&version=" ver); 1.200 -} 1.201 - 1.202 function tabline() { 1.203 markname = $1; if (type=="name") gsub(query, "<mark>&</mark>", markname); 1.204 markdesc = $4; if (type=="desc") gsub(query, "<mark>&</mark>", markdesc); 1.205 printf "<tr>\n\t<td class=\"first\">" 1.206 - printf "<a href=\"?info=%s%s\">", $1, addver(); 1.207 - printf "<img src=\"icons/%s.png\"/></a></td>\n", icon($1); 1.208 + printf "<a href=\"?info=%s%s\">", gensub(/\+/, "%2B", "g", $1), addver; 1.209 + printf "<img src=\"icons/%s.png\" alt=\"%s icon\"/></a></td>\n", icon($1), $1; 1.210 printf "\t<td><b>%s</b><br/>%s</td>\n", markname, markdesc; 1.211 printf "\t<td class=\"last\">\n"; 1.212 printf "\t<a class=\"dl\" href=\"%s\" ", murl "/packages/" ver "/" $1 "-" $2 ".tazpkg"; 1.213 printf "title=\"%s\">%s</a>\n", adl, adl; 1.214 - printf "\t<a class=\"rc\" href=\"?receipt=%s%s\" ", $1, addver(); 1.215 + printf "\t<a class=\"rc\" href=\"?receipt=%s%s\" ", $1, addver; 1.216 printf "title=\"%s\">%s</a>\n", arc, arc; 1.217 cooker(); 1.218 printf "</td>\n</tr>\n" 1.219 @@ -514,13 +546,16 @@ 1.220 1.221 1.222 { 1.223 - if (type=="name" && match($1, query)) tabline(); 1.224 - if (type=="category" && $3==query) tabline(); 1.225 - if (type=="desc" && match($4, query)) tabline(); 1.226 - if (type=="tags" && match(" "$6" ", " "query" ")) tabline(); 1.227 + if (type=="name" && match($1, query)) { tabline(); notfound = ""; } 1.228 + if (type=="category" && $3==query) { tabline(); notfound = ""; } 1.229 + if (type=="desc" && match($4, query)) { tabline(); notfound = ""; } 1.230 + if (type=="tags" && match(" "$6" ", " "query" ")) { tabline(); notfound = ""; } 1.231 } 1.232 1.233 -END { print "</table>"; } 1.234 +END { 1.235 + if (notfound) printf "<tr><td class=\"first\"><img src=\"icons/notfound.png\" alt="Not found"/></td><td><b>%s</b></td></tr>", nf; 1.236 + print "</table>"; 1.237 +} 1.238 ' "$pinfo"; 1.239 } 1.240 1.241 @@ -689,7 +724,7 @@ 1.242 1.243 if [ ! -f "$WOK/$1/receipt" ]; then 1.244 cat <<EOT 1.245 -<div class="err">$(_ 'Package "%s" was not found' "$SEARCH")</div> 1.246 +<div class="err">$(_ 'Package "%s" was not found' "$1")</div> 1.247 <p> <br/> </p> 1.248 EOT 1.249 return 1 1.250 @@ -855,11 +890,6 @@ 1.251 1.252 display_cloud() { 1.253 arg=$1 1.254 - if [ "$SLITAZ_VERSION" == 'c' -o "$SLITAZ_VERSION" == 'cooking' ]; then 1.255 - addver='' 1.256 - else 1.257 - addver="&version=$SLITAZ_VERSION" 1.258 - fi 1.259 awk ' 1.260 { 1.261 for (i = 1; $i != ""; i++) 1.262 @@ -887,7 +917,7 @@ 1.263 pct=$(((10000 - ((100 - $pct)**2))/100)) 1.264 pct=$(((10000 - ((100 - $pct)**2))/100)) 1.265 cat <<EOT 1.266 -<span class="tagn">$cnt</span><a href="?$arg=$tag$addver" class="taga tag$(($pct/10))">$tag</a> 1.267 +<span class="tagn">$cnt</span><a href="?$arg=$tag$addver" class="tag$(($pct/10))">$tag</a> 1.268 EOT 1.269 done 1.270 echo -n '<hr/><p class="lang">' 1.271 @@ -907,12 +937,22 @@ 1.272 # page begins 1.273 # 1.274 1.275 -header "HTTP/1.1 200 OK" "Content-type: text/html; charset=UTF-8" 1.276 +if [ -n "$HTTP_IF_MODIFIED_SINCE" -a "$HTTP_IF_MODIFIED_SINCE" == "$lastmod" ]; then 1.277 + # When user agent asks if content modified since last seen and it is not modified 1.278 + header "HTTP/1.1 304 Not Modified" 1.279 + exit 0 1.280 +fi 1.281 +if [ -z "$lastmod" ]; then 1.282 + # We don't know last modification date 1.283 + header "HTTP/1.1 200 OK" "Content-type: text/html; charset=UTF-8" 1.284 +else 1.285 + header "HTTP/1.1 200 OK" "Content-type: text/html; charset=UTF-8" "Last-Modified: $lastmod" 1.286 +fi 1.287 xhtml_header 1.288 1.289 1.290 # 1.291 -# language selector, if needed 1.292 +# Language selector 1.293 # 1.294 1.295 cat <<EOT 1.296 @@ -921,11 +961,12 @@ 1.297 target="_blank"></a><select form="s_form" name="lang" onchange="this.form.submit();"> 1.298 EOT 1.299 1.300 -for i in en de es fr it pl pt ru sv uk zh; do 1.301 +for i in en de es fa fr pl pt ru sv uk zh; do 1.302 case $i in 1.303 en) c='us'; l='English';; 1.304 de) c='de'; l='Deutsch';; 1.305 es) c='es'; l='Español';; 1.306 + fa) c='ir'; l='فارسی';; 1.307 fr) c='fr'; l='Français';; 1.308 it) c='it'; l='Italiano';; 1.309 pl) c='pl'; l='Polski';; 1.310 @@ -959,12 +1000,17 @@ 1.311 1.312 <pre>$(httpinfo)</pre> 1.313 1.314 -<pre>LANG=$LANG; 1.315 -OBJECT=$OBJECT; 1.316 -SEARCH=$SEARCH; 1.317 -SLITAZ_VERSION=$SLITAZ_VERSION; 1.318 -WOK=$WOK; 1.319 -GET=$(GET); 1.320 +<pre>$(env)</pre> 1.321 + 1.322 +<pre>LANG="$LANG" 1.323 +OBJECT="$OBJECT" 1.324 +SEARCH="$SEARCH" 1.325 +SLITAZ_VERSION="$SLITAZ_VERSION" 1.326 +WOK="$WOK" 1.327 +GET="$(GET)" 1.328 + 1.329 +HTTP_IF_MODIFIED_SINCE="$HTTP_IF_MODIFIED_SINCE" 1.330 +lastmod ="$lastmod" 1.331 </pre> 1.332 EOT 1.333 ;; 1.334 @@ -976,7 +1022,7 @@ 1.335 # Display search form and result if requested. 1.336 1.337 cat <<EOT 1.338 -<div id="ticker"><!-- progress/ --><img src="loader.gif" alt="."/></div> 1.339 +<div id="ticker"><img src="loader.gif" alt="."/></div> 1.340 EOT 1.341 search_form 1.342 1.343 @@ -987,12 +1033,29 @@ 1.344 1.345 show_info_links() { 1.346 if [ -n "$1" ]; then 1.347 - echo -n "<tr><td class=\"first\"><b>$2</b></td><td>" 1.348 + echo -n "<tr><td class=\"first\"><b>$2</b></td><td class=\"spkg\">" 1.349 1.350 - echo $1 | tr ' ' $'\n' | awk -vt="$3" -vv="$SLITAZ_VERSION" '{ 1.351 - printf "<a href=\"?%s=%s", t, gensub(/\+/, "%2B", "g", $1); 1.352 - printf "&version=%s\">%s</a> ", v, $1; 1.353 - }' 1.354 + echo $1 | tr ' ' $'\n' | awk -vt="$3" -vv="$addver" -viconslast="$iconslast" ' 1.355 +function icon(pkg) { 1.356 + i=""; 1.357 + if (pkg ~ /-dev$/) { return "dev"; } 1.358 + if (pkg ~ /^linux(64)?-/) { return "linux"; } 1.359 + if (pkg ~ /^xorg-/) { return "xorg"; } 1.360 + "awk -vp=\"" pkg "\" \"BEGIN{FS=\\\"\t\\\"}\\\$1==p{print \\\$2;exit}\" " iconslast | getline i; 1.361 + if (i) { return i; } 1.362 + return "pkg"; 1.363 +} 1.364 +function link(pkg) { 1.365 + printf "<a href=\"?%s=%s%s\">", t, gensub(/\+/, "%2B", "g", pkg), v; 1.366 + if (t!="tags") printf "<img src=\"icons-s/%s.png\" alt=\"%s icon\"/>", icon(pkg), pkg; 1.367 + printf "%s</a>", pkg; 1.368 +} 1.369 +{ 1.370 + split($1, line, ":"); 1.371 + link(line[1]); 1.372 + if (line[2]) { printf ":"; link(line[2]); } 1.373 + printf " "; 1.374 +}' 1.375 echo "</td></tr>" 1.376 fi 1.377 } 1.378 @@ -1007,12 +1070,13 @@ 1.379 1.380 case " $(GET) " in 1.381 *\ info\ *) 1.382 + package_exist $(GET info) || xhtml_footer 1.383 . "$WOK/$(GET info)/receipt" 1.384 1.385 cat <<EOT 1.386 <table class="info"> 1.387 <tr> 1.388 - <td class="first"><b>$(_ 'Name')</b></td> 1.389 + <td class="first"><b>$(gettext 'Name')</b></td> 1.390 <td>$PACKAGE 1.391 <div class="appImg" style="background: url($(package_icon $PACKAGE 2))"></div> 1.392 </td> 1.393 @@ -1020,39 +1084,40 @@ 1.394 EOT 1.395 [ -n "$VERSION" ] && cat <<EOT 1.396 <tr> 1.397 - <td class="first"><b>$(_ 'Version')</b></td> 1.398 + <td class="first"><b>$(gettext 'Version')</b></td> 1.399 <td>$VERSION</td> 1.400 </tr> 1.401 EOT 1.402 cat <<EOT 1.403 <tr> 1.404 - <td class="first"><b>$(_ 'Category')</b></td> 1.405 - <td><a href="?category=$CATEGORY&version=$SLITAZ_VERSION">$(_n "$CATEGORY")</a></td> 1.406 + <td class="first"><b>$(gettext 'Category')</b></td> 1.407 + <td><a href="?category=$CATEGORY$addver">$(gettext "$CATEGORY")</a></td> 1.408 </tr> 1.409 1.410 <tr> 1.411 - <td class="first"><b>$(_ 'Description')</b></td> 1.412 + <td class="first"><b>$(gettext 'Description')</b></td> 1.413 <td>$(echo "$SHORT_DESC" | htmlize)</td> 1.414 </tr> 1.415 EOT 1.416 [ -n "$MAINTAINER" ] && cat <<EOT 1.417 <tr> 1.418 - <td class="first"><b>$(_ 'Maintainer')</b></td> 1.419 - <td><a href="?maintainer=$MAINTAINER&version=$SLITAZ_VERSION">$MAINTAINER</a></td> 1.420 + <td class="first"><b>$(gettext 'Maintainer')</b></td> 1.421 + <td><a href="?maintainer=$MAINTAINER$addver">${MAINTAINER/@/​@​}</a></td> 1.422 </tr> 1.423 EOT 1.424 [ -n "$LICENSE" ] && cat <<EOT 1.425 <tr> 1.426 - <td class="first"><b>$(_ 'License')</b></td> 1.427 + <td class="first"><b>$(gettext 'License')</b></td> 1.428 <td>$(for license in $LICENSE; do 1.429 - echo "<a href=\"?license=$license&version=$SLITAZ_VERSION\">$license</a> " 1.430 + echo "<a href=\"?license=$license$addver\">$license</a> " 1.431 done)</td> 1.432 </tr> 1.433 EOT 1.434 + web_site="${WEB_SITE#http://}" 1.435 cat <<EOT 1.436 <tr> 1.437 - <td class="first"><b>$(_ 'Website')</b></td> 1.438 - <td><a href="$WEB_SITE" target="_blank">$WEB_SITE</a></td> 1.439 + <td class="first"><b>$(gettext 'Website')</b></td> 1.440 + <td><a href="$WEB_SITE" target="_blank">${web_site%/}</a></td> 1.441 </tr> 1.442 EOT 1.443 show_info_links "$TAGS" "$(_ 'Tags')" 'tags' 1.444 @@ -1060,24 +1125,24 @@ 1.445 if [ -n "$PACKED_SIZE" ]; then 1.446 cat <<EOT 1.447 <tr> 1.448 - <td class="first"><b>$(_ 'Sizes')</b></td> 1.449 - <td>${PACKED_SIZE/.0/}/${UNPACKED_SIZE/.0/}</td> 1.450 + <td class="first"><b>$(gettext 'Sizes')</b></td> 1.451 + <td>${PACKED_SIZE/.0/} / ${UNPACKED_SIZE/.0/}</td> 1.452 </tr> 1.453 EOT 1.454 elif [ -f "$pinfo" ]; then 1.455 cat <<EOT 1.456 <tr> 1.457 - <td class="first"><b>$(_ 'Sizes')</b></td> 1.458 - <td>$(awk -F$'\t' -vp=$PACKAGE '$1==p{print $7}' "$pinfo" | tr ' ' '/')</td> 1.459 + <td class="first"><b>$(gettext 'Sizes')</b></td> 1.460 + <td>$(awk -F$'\t' -vp=$PACKAGE '$1==p{print $7}' "$pinfo" | sed 's| | / |')</td> 1.461 </tr> 1.462 EOT 1.463 fi 1.464 1.465 - show_info_links "$DEPENDS" "$(_ 'Depends')" 'info' 1.466 + show_info_links "$DEPENDS" "$(gettext 'Depends on')" 'info' 1.467 1.468 - show_info_links "$PROVIDE" "$(_ 'Provide')" 'info' 1.469 + show_info_links "$PROVIDE" "$(gettext 'Provides')" 'info' 1.470 1.471 - show_info_links "$SUGGESTED" "$(_ 'Suggested')" 'info' 1.472 + show_info_links "$SUGGESTED" "$(gettext 'Suggested')" 'info' 1.473 cat <<EOT 1.474 </table> 1.475 1.476 @@ -1088,55 +1153,70 @@ 1.477 pkg_url="$MIRROR_URL/packages/$SLITAZ_VERSION/$pkg-$VERSION$EXTRA_VERSION.tazpkg" 1.478 case "$SLITAZ_VERSION" in 1.479 cooking) 1.480 - COOKER="<a href=\"http://cook.slitaz.org/cooker.cgi?pkg=$PACKAGE\">$(_ 'Show cooking log')</a>";; 1.481 + COOKER="<a class=\"cooker\" href=\"http://cook.slitaz.org/cooker.cgi?pkg=$PACKAGE\">$(gettext 'Show cooking log')</a>";; 1.482 stable|undigest|backports) 1.483 - COOKER="<a href=\"http://cook.slitaz.org/$SLITAZ_VERSION/cooker.cgi?pkg=$PACKAGE\">$(_ 'Show cooking log')</a>";; 1.484 + COOKER="<a class=\"cooker\" href=\"http://cook.slitaz.org/$SLITAZ_VERSION/cooker.cgi?pkg=$PACKAGE\">$(gettext 'Show cooking log')</a>";; 1.485 *) 1.486 - COOKER="$(_ 'N/A')";; 1.487 + COOKER="<span class=\"cooker\">$(gettext 'N/A')</span>";; 1.488 esac 1.489 cat <<EOT 1.490 +<div class="sssb desc center"> 1.491 + <a href="http://screenshots.debian.net/package/$pkg" target="_blank"><img 1.492 + src="http://screenshots.debian.net/thumbnail/$pkg" alt="$PACKAGE screenshot"/></a> 1.493 +</div> 1.494 + 1.495 <table class="info"> 1.496 - <tr> 1.497 - <td> 1.498 - <span class="dl"></span> 1.499 - <a href="$pkg_url">$(_ 'Download package')</a> 1.500 + <tr><td><span class="download"></span> 1.501 + <a href="$pkg_url">$(gettext 'Download package')</a> 1.502 </td> 1.503 - <td rowspan="5" class="first"> 1.504 + <td rowspan="5" class="first hssc"> 1.505 <a href="http://screenshots.debian.net/package/$pkg" target="_blank"><img 1.506 - src="http://screenshots.debian.net/thumbnail/$pkg"/></a> 1.507 + src="http://screenshots.debian.net/thumbnail/$pkg" alt="$PACKAGE screenshot"/></a> 1.508 </td> 1.509 </tr> 1.510 - <tr> 1.511 + <tr><td><a class="receipt" href="?receipt=$pkg$addver">$(gettext 'Show receipt')</a></td></tr> 1.512 + <tr><td><a class="files-list" href="?filelist=$pkg$addver">$(gettext 'Show files list')</a></td></tr> 1.513 + <tr><td>$COOKER</td></tr> 1.514 + <tr id="tazpanelButtons" class="hidden"> 1.515 <td> 1.516 - <span class="rc"></span> 1.517 - <a href="?receipt=$pkg&version=$SLITAZ_VERSION">$(_ 'Show receipt')</a> 1.518 - </td> 1.519 - </tr> 1.520 - <tr> 1.521 - <td> 1.522 - <span class="co"></span> 1.523 - $COOKER 1.524 - </td> 1.525 - </tr> 1.526 - <tr> 1.527 - <td> 1.528 - <span class="dl"></span> 1.529 - <a href="http://127.0.0.1:82/user/pkgs.cgi?do=Install&pkg=$pkg" target="_blank">$(_ 'Install package')</a> 1.530 - </td> 1.531 - </tr> 1.532 - <tr> 1.533 - <td> 1.534 - <span class="dl"></span> 1.535 - <a href="${pkg_url/http/tazpkg}">$(_ 'Download and open (experimental)')</a> 1.536 + <span id="tazpaneli" class="hidden"> 1.537 + <a class="pkgi" href="http://127.0.0.1:82/user/pkgs.cgi?do=Install&pkg=$pkg" target="_blank">$(gettext 'Install package')</a> 1.538 + </span> 1.539 + <span id="tazpanelr" class="hidden"> 1.540 + <a class="pkgr" href="http://127.0.0.1:82/user/pkgs.cgi?do=Remove&pkg=$pkg" target="_blank">$(gettext 'Remove package')</a> 1.541 + </span> 1.542 </td> 1.543 </tr> 1.544 </table> 1.545 + 1.546 +<script> 1.547 +function ajaxTazPanel(pkg) { 1.548 + var req = new XMLHttpRequest(); 1.549 + req.onreadystatechange = function() { 1.550 + if (req.readyState == XMLHttpRequest.DONE) { 1.551 + if (req.status == 200) { 1.552 + if (req.responseText == 'i') { 1.553 + // Package installed, allow to remove 1.554 + document.getElementById('tazpanelr').className=''; 1.555 + } else { 1.556 + // Package not installed, allow to install 1.557 + document.getElementById('tazpaneli').className=''; 1.558 + } 1.559 + document.getElementById('tazpanelButtons').className=''; 1.560 + } 1.561 + } 1.562 + } 1.563 + req.open('GET', 'http://tazpanel:82/pkgs.cgi?status&web=y&pkg=' + pkg, true); 1.564 + req.send(); 1.565 +} 1.566 +ajaxTazPanel('$pkg'); 1.567 +</script> 1.568 EOT 1.569 1.570 # Description 1.571 if [ -f "$WOK/$PACKAGE/description.txt" ]; then 1.572 cat <<EOT 1.573 -<h3>$(_ 'Description')</h3> 1.574 +<h3>$(gettext 'Description')</h3> 1.575 <table><tr><td>$(./sundown < "$WOK/$PACKAGE/description.txt")</td></tr></table> 1.576 EOT 1.577 fi 1.578 @@ -1145,8 +1225,8 @@ 1.579 if [ -n "$CONFIG_FILES" ]; then 1.580 cat <<EOT 1.581 <div class="conf"> 1.582 - <h3>$(_ 'Configuration files')</h3> 1.583 - <ul> 1.584 + <h3>$(gettext 'Configuration files')</h3> 1.585 + <table><tr><td><ul> 1.586 EOT 1.587 for file in $CONFIG_FILES; do 1.588 cat <<EOT 1.589 @@ -1154,7 +1234,7 @@ 1.590 EOT 1.591 done 1.592 cat <<EOT 1.593 - </ul> 1.594 + </ul></td></tr></table> 1.595 </div> 1.596 EOT 1.597 fi 1.598 @@ -1172,7 +1252,7 @@ 1.599 Depends) 1.600 if [ -z "$SEARCH" ]; then 1.601 cat <<EOT 1.602 -<h3>$(_ 'Loop dependence')</h3> 1.603 +<h3>$(_ 'Loop dependency')</h3> 1.604 <pre class="hard"> 1.605 EOT 1.606 for i in $WOK/*/receipt; do 1.607 @@ -1196,7 +1276,7 @@ 1.608 1.609 if [ -n "$SUGGESTED" ]; then 1.610 cat <<EOT 1.611 -<h3>$(_ 'Dependency tree for package "%" (SUGGESTED)' "$SEARCH")</h3> 1.612 +<h3>$(_ 'Dependency tree for packages suggested by package "%s"' "$SEARCH")</h3> 1.613 <pre class="hard"> 1.614 EOT 1.615 unset ALL_DEPS 1.616 @@ -1222,7 +1302,7 @@ 1.617 BuildDepends) 1.618 if [ -z "$SEARCH" ]; then 1.619 cat <<EOT 1.620 -<h3>$(_ 'Loop dependence of build')</h3> 1.621 +<h3>$(_ 'Loop dependency of build')</h3> 1.622 <pre class="hard"> 1.623 EOT 1.624 for i in $WOK/*/receipt; do 1.625 @@ -1244,7 +1324,7 @@ 1.626 echo '</pre>' 1.627 1.628 cat <<EOT 1.629 -<h3>$(_ 'Next packages requires package "%s" to be built' "$SEARCH")</h3> 1.630 +<h3>$(_ 'Next packages require package "%s" to be built' "$SEARCH")</h3> 1.631 <pre class="hard"> 1.632 EOT 1.633 unset ALL_DEPS 1.634 @@ -1291,7 +1371,7 @@ 1.635 if [ -n "$SEARCH" ]; then 1.636 cat <<EOT 1.637 1.638 -<h3>$(_ 'File names matching the "%s"' "$SEARCH")</h3> 1.639 +<h3>$(_ 'File names matching "%s"' "$SEARCH")</h3> 1.640 <table class="list"> 1.641 EOT 1.642 unset last 1.643 @@ -1366,7 +1446,7 @@ 1.644 fi 1.645 1.646 cat <<EOT 1.647 -<h3>$(_ 'Descriptions matching the "%s"' "$SEARCH")</h3> 1.648 +<h3>$(_ 'Descriptions matching "%s"' "$SEARCH")</h3> 1.649 EOT 1.650 if [ -f "$pinfo" ]; then 1.651 package_entries desc "$SEARCH" 1.652 @@ -1523,12 +1603,12 @@ 1.653 else 1.654 # Display category cloud 1.655 if [ -f "$pinfo" ]; then 1.656 - TAGS="$(awk -F$'\t' '{if($3){print $3}}' "$pinfo" | tr ' ' $'\n' | sort | uniq -c)" 1.657 - MAX="$(echo "$TAGS" | awk '{if ($1 > MAX) MAX = $1} END{print MAX}')" 1.658 - echo "$TAGS" | awk -vMAX="$MAX" -vv="$SLITAZ_VERSION" '{ 1.659 + tags="$(awk -F$'\t' '{if($3){print $3}}' "$pinfo" | tr ' ' $'\n' | sort | uniq -c)" 1.660 + max="$(echo "$tags" | awk '{if ($1 > MAX) MAX = $1} END{print MAX}')" 1.661 + echo "$tags" | awk -vMAX="$max" -vaddver="$addver" '{ 1.662 printf "<span class=\"tagn\">%s</span>", $1; 1.663 - printf "<a class=\"taga tag%s\" ", int($1 * 10 / MAX + 1); 1.664 - printf "href=\"?category=%s&version=%s\">%s</a> ", $2, v, $2; 1.665 + printf "<a class=\"tag%s\" ", int($1 * 10 / MAX + 1); 1.666 + printf "href=\"?category=%s%s\">%s</a> ", $2, addver, $2; 1.667 }' 1.668 else 1.669 grep -l ^CATEGORY= $WOK/*/receipt | \ 1.670 @@ -1568,10 +1648,10 @@ 1.671 if [ -f "$pinfo" ]; then 1.672 TAGS="$(awk -F$'\t' '{if($6){print $6}}' "$pinfo" | tr ' ' $'\n' | sort | uniq -c)" 1.673 MAX="$(echo "$TAGS" | awk '{if ($1 > MAX) MAX = $1} END{print MAX}')" 1.674 - echo "$TAGS" | awk -vMAX="$MAX" -vv="$SLITAZ_VERSION" '{ 1.675 + echo "$TAGS" | awk -vMAX="$MAX" -vv="$addver" '{ 1.676 printf "<span class=\"tagn\">%s</span>", $1; 1.677 - printf "<a class=\"taga tag%s\" ", int($1 * 10 / MAX + 1); 1.678 - printf "href=\"?tags=%s&version=%s\">%s</a> ", $2, v, $2; 1.679 + printf "<a class=\"tag%s\" ", int($1 * 10 / MAX + 1); 1.680 + printf "href=\"?tags=%s%s\">%s</a> ", $2, v, $2; 1.681 }' 1.682 else 1.683 grep -l ^TAGS= $WOK/*/receipt | \ 1.684 @@ -1613,7 +1693,7 @@ 1.685 Package) 1.686 if check_n "$SEARCH"; then 1.687 cat <<EOT 1.688 -<h3>$(_ 'Package names matching the "%s"' "$SEARCH")</h3> 1.689 +<h3>$(_ 'Package names matching "%s"' "$SEARCH")</h3> 1.690 EOT 1.691 1.692 if [ -f "$pinfo" ]; then 1.693 @@ -1627,7 +1707,7 @@ 1.694 echo '</table>' 1.695 fi 1.696 1.697 - vpkgs="$(cut -d= -f1 < $equiv | grep -i $SEARCH)" 1.698 + vpkgs="$(cut -d= -f1 < $equiv | grep -i "$SEARCH")" 1.699 for vpkg in $vpkgs; do 1.700 cat <<EOT 1.701 1.702 @@ -1636,8 +1716,11 @@ 1.703 <table class="list"> 1.704 EOT 1.705 for pkg in $(grep $vpkg= $equiv | sed "s|$vpkg=||"); do 1.706 - . $WOK/${pkg#*:}/receipt 1.707 - package_entry 1.708 + echo " <!-- '$pkg' - '${pkg#*:}' -->" 1.709 + if [ -e "$WOK/${pkg#*:}/receipt" ]; then 1.710 + . $WOK/${pkg#*:}/receipt 1.711 + package_entry 1.712 + fi 1.713 done 1.714 echo '</table>' 1.715 done