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 +