tazpkg rev 719
Style package table (less html, more css); really quick package list in test mode (add "&awk" to "pkgs.cgi?cat=..." to check it).
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri Dec 19 17:25:08 2014 +0200 (2014-12-19) |
parents | 9081585e7446 |
children | 953cbcb0cd50 |
files | tazpanel/pkgs.cgi tazpanel/pkgs.css |
line diff
1.1 --- a/tazpanel/pkgs.cgi Thu Dec 18 03:43:49 2014 +0200 1.2 +++ b/tazpanel/pkgs.cgi Fri Dec 19 17:25:08 2014 +0200 1.3 @@ -53,9 +53,9 @@ 1.4 i18n_desc $PACKAGE 1.5 cat << EOT 1.6 <tr> 1.7 -<td class="pkg"><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 1.8 +<td><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 1.9 <td>$VERSION</td> 1.10 -<td class="desc">$SHORT_DESC</td> 1.11 +<td>$SHORT_DESC</td> 1.12 <td><a class="w" href="$WEB_SITE"></a></td> 1.13 </tr> 1.14 EOT 1.15 @@ -71,9 +71,9 @@ 1.16 i18n_desc $PACKAGE 1.17 cat << EOT 1.18 <tr> 1.19 -<td class="pkg"><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 1.20 +<td><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 1.21 <td>$VERSION</td> 1.22 -<td class="desc">$SHORT_DESC</td> 1.23 +<td>$SHORT_DESC</td> 1.24 <td><a class="w" href="$WEB_SITE"></a></td> 1.25 </tr> 1.26 EOT 1.27 @@ -296,7 +296,7 @@ 1.28 </div> 1.29 </div> 1.30 1.31 -<table class="zebra outbox"> 1.32 +<table class="zebra outbox pkglist"> 1.33 $(table_head) 1.34 <tbody> 1.35 EOT 1.36 @@ -309,9 +309,9 @@ 1.37 grep -qs "^$pkg$" $PKGS_DB/blocked-packages.list && blocked="b" 1.38 i18n_desc $pkg 1.39 cat << EOT 1.40 -<td class="pkg"><input type="checkbox" name="pkg" value="$pkg" />$(pkg_info_link $pkg pkgi$blocked)</td> 1.41 +<td><input type="checkbox" name="pkg" value="$pkg" />$(pkg_info_link $pkg pkgi$blocked)</td> 1.42 <td>$VERSION</td> 1.43 -<td class="desc">$SHORT_DESC</td> 1.44 +<td>$SHORT_DESC</td> 1.45 <td><a class="w" href="$WEB_SITE"></a></td> 1.46 </tr> 1.47 EOT 1.48 @@ -352,7 +352,7 @@ 1.49 </div> 1.50 EOT 1.51 cat << EOT 1.52 -<table class="zebra outbox"> 1.53 +<table class="zebra outbox pkglist"> 1.54 $(table_head) 1.55 <tbody> 1.56 EOT 1.57 @@ -363,9 +363,9 @@ 1.58 i18n_desc $pkg 1.59 cat << EOT 1.60 <tr> 1.61 - <td class="pkg"><input type="checkbox" name="pkg" value="$pkg" />$(pkg_info_link $pkg pkg)</td> 1.62 + <td><input type="checkbox" name="pkg" value="$pkg" />$(pkg_info_link $pkg pkg)</td> 1.63 <td>$VERSION</td> 1.64 - <td class="desc">$SHORT_DESC</td> 1.65 + <td>$SHORT_DESC</td> 1.66 <td><a class="w" href="$WEB_SITE"></a></td> 1.67 </tr> 1.68 EOT 1.69 @@ -421,7 +421,7 @@ 1.70 <h3>$(_ 'Repository: %s' $Repo_Name)</h3> 1.71 EOT 1.72 fi 1.73 - echo '<table class="zebra outbox">' 1.74 + echo '<table class="zebra outbox pkglist">' 1.75 table_head 1.76 echo '<tbody>' 1.77 1.78 @@ -431,11 +431,56 @@ 1.79 $i/extra.list | parse_packages_info 1.80 ;; 1.81 all) 1.82 + # test awk speed (sorry, no i18n_desc, no blocked now) 1.83 + # http://tazpanel:82/pkgs.cgi?cat=all&repo=Any&awk 1.84 + if [ $(GET awk) == "awk" ]; then 1.85 + sort $i/packages.info $i/installed.info | \ 1.86 + awk -F$'\t' ' 1.87 + function outrow(pkg, cls, ver, dsc, web, pkge) { 1.88 + pkge=pkg; gsub(/\+/, "%2B", pkge) 1.89 + printf "<tr><td><input type=\"checkbox\" name=\"pkg\" value=\"%s\"><a class=\"%s\" href=\"?info=%s\">%s</a></td><td>%s</td><td>%s</td><td><a class=\"w\" href=\"%s\"></a></td></tr>", pkg, cls, pkge, pkg, ver, dsc, web } 1.90 + { 1.91 + if ($1==PKG) { 1.92 + outrow($1, "pkgi", $2, $4, $5) 1.93 + INS=$1 1.94 + } else { 1.95 + if (PKG!=INS) { 1.96 + outrow(PKG, "pkg", VER, DSC, WEB) 1.97 + } 1.98 + } 1.99 + PKG=$1; VER=$2; DSC=$4; WEB=$5 1.100 + }' 1.101 + else 1.102 + # old slow method 1.103 parse_packages_info < $i/packages.info 1.104 + fi 1.105 ;; 1.106 *) 1.107 + # test awk speed (sorry, no i18n_desc, no blocked now) 1.108 + # http://tazpanel:82/pkgs.cgi?cat=base-system&repo=Any&awk 1.109 + if [ $(GET awk) == "awk" ]; then 1.110 + sort $i/packages.info $i/installed.info | \ 1.111 + awk -F$'\t' -vc="$category" ' 1.112 + function outrow(pkg, cls, ver, dsc, web, pkge) { 1.113 + pkge=pkg; gsub(/\+/, "%2B", pkge) 1.114 + printf "<tr><td><input type=\"checkbox\" name=\"pkg\" value=\"%s\"><a class=\"%s\" href=\"?info=%s\">%s</a></td><td>%s</td><td>%s</td><td><a class=\"w\" href=\"%s\"></a></td></tr>", pkg, cls, pkge, pkg, ver, dsc, web } 1.115 + { 1.116 + if ($3==c) { 1.117 + if ($1==PKG) { 1.118 + outrow($1, "pkgi", $2, $4, $5) 1.119 + INS=$1 1.120 + } else { 1.121 + if (PKG!=INS) { 1.122 + outrow(PKG, "pkg", VER, DSC, WEB) 1.123 + } 1.124 + } 1.125 + PKG=$1; VER=$2; DSC=$4; WEB=$5 1.126 + }}' 1.127 + else 1.128 + # old slow method 1.129 awk -F$'\t' -vc=$category '{if ($3 == c) print $0}' \ 1.130 $i/packages.info | parse_packages_info 1.131 + fi 1.132 ;; 1.133 esac 1.134 cat << EOT 1.135 @@ -497,7 +542,7 @@ 1.136 class=pkg; [ -d $INSTALLED/$PACKAGE ] && class=pkgi 1.137 cat << EOT 1.138 <tr> 1.139 - <td class="pkg"><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 1.140 + <td><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 1.141 <td>$FILE</td> 1.142 </tr> 1.143 EOT 1.144 @@ -586,10 +631,8 @@ 1.145 $(table_head) 1.146 <tbody> 1.147 EOT 1.148 - for pkg in `cat packages.up` 1.149 - do 1.150 - grep -hs "^$pkg |" $PKGS_DB/packages.desc \ 1.151 - $PKGS_DB/undigest/*/packages.desc | \ 1.152 + for pkg in $(cat packages.up); do 1.153 + grep -hs "^$pkg |" $PKGS_DB/packages.desc $PKGS_DB/undigest/*/packages.desc | \ 1.154 parse_packages_desc 1.155 done 1.156 cat << EOT
2.1 --- a/tazpanel/pkgs.css Thu Dec 18 03:43:49 2014 +0200 2.2 +++ b/tazpanel/pkgs.css Fri Dec 19 17:25:08 2014 +0200 2.3 @@ -26,5 +26,21 @@ 2.4 display: inline-block; } 2.5 2.6 2.7 -td.pkg { 2.8 - white-space: nowrap; } 2.9 +.pkglist td:nth-child(1) { 2.10 + white-space: nowrap; 2.11 + } 2.12 + 2.13 +.pkglist td:nth-child(1) a { 2.14 + max-width: 12em; 2.15 + } 2.16 + 2.17 +.pkglist td:nth-child(2) { 2.18 + max-width: 7em; 2.19 + } 2.20 + 2.21 +.pkglist td:nth-child(1) a, .pkglist td:nth-child(2) { 2.22 + white-space: nowrap; 2.23 + overflow: hidden; 2.24 + text-overflow: ellipsis; -o-text-overflow: ellipsis; 2.25 + } 2.26 +