tazpkg diff tazpanel/pkgs.cgi @ rev 718

pkgs.cgi: new package' links (less HTML, more CSS); add pkgs.css; transition to packages.info.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Thu Dec 18 03:43:49 2014 +0200 (2014-12-18)
parents 1dea2235808c
children 474681a166a8
line diff
     1.1 --- a/tazpanel/pkgs.cgi	Wed Dec 17 01:59:31 2014 +0200
     1.2 +++ b/tazpanel/pkgs.cgi	Thu Dec 18 03:43:49 2014 +0200
     1.3 @@ -24,15 +24,16 @@
     1.4  
     1.5  pkg_info_link()
     1.6  {
     1.7 -	echo "$SCRIPT_NAME?info=$1" | sed 's/+/%2B/g'
     1.8 +	echo "<a class=\"$2\" href=\"?info=${1//+/%2B}\">$1</a>" | sed 's| class=""||'
     1.9  }
    1.10  
    1.11  
    1.12 +# Display localized short description
    1.13 +
    1.14  i18n_desc() {
    1.15 -	# Display localized short description
    1.16  	for L in $LANG ${LANG%%_*}; do
    1.17  		if [ -e "$PKGS_DB/packages-desc.$L" ]; then
    1.18 -			LOCDESC=$(awk -F$'\t' -vp=$pkg '{if ($1 == p) print $2}' $PKGS_DB/packages-desc.$L)
    1.19 +			LOCDESC=$(awk -F$'\t' -vp=$1 '{if ($1 == p) print $2}' $PKGS_DB/packages-desc.$L)
    1.20  			if [ -n "$LOCDESC" ]; then
    1.21  				SHORT_DESC="$LOCDESC"
    1.22  				break
    1.23 @@ -48,17 +49,32 @@
    1.24  	IFS="|"
    1.25  	cut -f 1,2,3,5 -d "|" | while read PACKAGE VERSION SHORT_DESC WEB_SITE
    1.26  	do
    1.27 -		image=tazpkg-installed.png
    1.28 -		[ -d $INSTALLED/${PACKAGE% } ] || image=tazpkg.png
    1.29 -		i18n_desc
    1.30 +		class=pkg; [ -d $INSTALLED/${PACKAGE% } ] && class=pkgi
    1.31 +		i18n_desc $PACKAGE
    1.32  		cat << EOT
    1.33  <tr>
    1.34 -<td><input type="checkbox" name="pkg" value="$PACKAGE">
    1.35 -	<a href="$(pkg_info_link $PACKAGE)"><img
    1.36 -		src="$IMAGES/$image"/>$PACKAGE</a></td>
    1.37 +<td class="pkg"><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td>
    1.38  <td>$VERSION</td>
    1.39  <td class="desc">$SHORT_DESC</td>
    1.40 -<td><a href="$WEB_SITE"><img src="$IMAGES/browser.png"/></a></td>
    1.41 +<td><a class="w" href="$WEB_SITE"></a></td>
    1.42 +</tr>
    1.43 +EOT
    1.44 +	done
    1.45 +	unset IFS
    1.46 +}
    1.47 +
    1.48 +
    1.49 +parse_packages_info() {
    1.50 +	IFS=$'\t'
    1.51 +	while read PACKAGE VERSION CATEGORY SHORT_DESC WEB_SITE TAGS SIZES DEPENDS; do
    1.52 +		class=pkg; [ -d $INSTALLED/${PACKAGE% } ] && class=pkgi
    1.53 +		i18n_desc $PACKAGE
    1.54 +		cat << EOT
    1.55 +<tr>
    1.56 +<td class="pkg"><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td>
    1.57 +<td>$VERSION</td>
    1.58 +<td class="desc">$SHORT_DESC</td>
    1.59 +<td><a class="w" href="$WEB_SITE"></a></td>
    1.60  </tr>
    1.61  EOT
    1.62  	done
    1.63 @@ -279,8 +295,7 @@
    1.64  			<img src="$IMAGES/update.png" />$(_ 'Check upgrades')</a>
    1.65  	</div>
    1.66  </div>
    1.67 -EOT
    1.68 -		cat << EOT
    1.69 +
    1.70  <table class="zebra outbox">
    1.71  $(table_head)
    1.72  <tbody>
    1.73 @@ -290,18 +305,14 @@
    1.74  			echo '<tr>'
    1.75  			# Use default tazpkg icon since all packages displayed are
    1.76  			# installed
    1.77 -			colorpkg=$pkg
    1.78 -			grep -qs "^$pkg$" $PKGS_DB/blocked-packages.list &&
    1.79 -				colorpkg="<span style='color: red;'>$pkg</span>"
    1.80 -			i18n_desc
    1.81 +			blocked=
    1.82 +			grep -qs "^$pkg$" $PKGS_DB/blocked-packages.list && blocked="b"
    1.83 +			i18n_desc $pkg
    1.84  			cat << EOT
    1.85 -<td class="pkg">
    1.86 -	<input type="checkbox" name="pkg" value="$pkg" />
    1.87 -		<a href="$(pkg_info_link $pkg)"><img
    1.88 -			src="$IMAGES/tazpkg-installed.png"/>$colorpkg</a></td>
    1.89 +<td class="pkg"><input type="checkbox" name="pkg" value="$pkg" />$(pkg_info_link $pkg pkgi$blocked)</td>
    1.90  <td>$VERSION</td>
    1.91  <td class="desc">$SHORT_DESC</td>
    1.92 -<td><a href="$WEB_SITE"><img src="$IMAGES/browser.png"/></a></td>
    1.93 +<td><a class="w" href="$WEB_SITE"></a></td>
    1.94  </tr>
    1.95  EOT
    1.96  		done
    1.97 @@ -349,17 +360,13 @@
    1.98  		for pkg in $(ls $target/$INSTALLED); do
    1.99  			[ -s $pkg/receipt ] && continue
   1.100  			. $target/$INSTALLED/$pkg/receipt
   1.101 -			i18n_desc
   1.102 +			i18n_desc $pkg
   1.103  			cat << EOT
   1.104  <tr>
   1.105 -	<td class="pkg">
   1.106 -		<input type="checkbox" name="pkg" value="$pkg" />
   1.107 -			<a href="$(pkg_info_link $pkg)"><img
   1.108 -				src="$IMAGES/tazpkg.png"/>$pkg</a>
   1.109 -	</td>
   1.110 +	<td class="pkg"><input type="checkbox" name="pkg" value="$pkg" />$(pkg_info_link $pkg pkg)</td>
   1.111  	<td>$VERSION</td>
   1.112  	<td class="desc">$SHORT_DESC</td>
   1.113 -	<td><a href="$WEB_SITE"><img src="$IMAGES/browser.png"/></a></td>
   1.114 +	<td><a class="w" href="$WEB_SITE"></a></td>
   1.115  </tr>
   1.116  EOT
   1.117  		done
   1.118 @@ -380,8 +387,8 @@
   1.119  		repo=$(GET repo)
   1.120  		category=$(GET cat)
   1.121  		[ "$category" == "cat" ] && category="base-system"
   1.122 -		grep_category=$category
   1.123 -		[ "$grep_category" == "all" ] && grep_category=".*"
   1.124 +		#grep_category=$category
   1.125 +		#[ "$grep_category" == "all" ] && grep_category="*"
   1.126  		search_form
   1.127  		sidebar | sed "s/active_$category/active/;s/repo_$repo/active/"
   1.128  		LOADING_MSG="$(_ 'Listing packages...')"
   1.129 @@ -414,16 +421,23 @@
   1.130  <h3>$(_ 'Repository: %s' $Repo_Name)</h3>
   1.131  EOT
   1.132  			fi
   1.133 -			cat << EOT
   1.134 -<table class="zebra outbox">
   1.135 -$(table_head)
   1.136 -<tbody>
   1.137 -EOT
   1.138 -			if [ "$category" == "extra" ]; then
   1.139 -				sed 's,.*,&|--|--|--|http://mirror.slitaz.org/packages/get/&,' $i/extra.list
   1.140 -			else
   1.141 -				grep "| $grep_category |" $i/packages.desc
   1.142 -			fi | parse_packages_desc
   1.143 +			echo '<table class="zebra outbox">'
   1.144 +			table_head
   1.145 +			echo '<tbody>'
   1.146 +
   1.147 +			case $category in
   1.148 +				extra)
   1.149 +					sed 's|.*|&	--	-	--	http://mirror.slitaz.org/packages/get/&	-	-	-|' \
   1.150 +					$i/extra.list | parse_packages_info
   1.151 +					;;
   1.152 +				all)
   1.153 +					parse_packages_info < $i/packages.info
   1.154 +					;;
   1.155 +				*)
   1.156 +					awk -F$'\t' -vc=$category '{if ($3 == c) print $0}' \
   1.157 +					$i/packages.info | parse_packages_info
   1.158 +					;;
   1.159 +			esac
   1.160  			cat << EOT
   1.161  </tbody>
   1.162  </table>
   1.163 @@ -439,7 +453,7 @@
   1.164  		#
   1.165  		pkg=$(GET search)
   1.166  		repo=$(GET repo)
   1.167 -		cd  $PKGS_DB
   1.168 +		cd $PKGS_DB
   1.169  		search_form
   1.170  		sidebar | sed "s/repo_$repo/active/"
   1.171  		LOADING_MSG="$(_ 'Searching packages...')"
   1.172 @@ -477,27 +491,22 @@
   1.173  	<thead>
   1.174  	<tbody>
   1.175  EOT
   1.176 -			unlzma -c $(repo_list /files.list.lzma) \
   1.177 -				| grep -Ei ": .*$(GET search)" | \
   1.178 -				while read PACKAGE FILE; do
   1.179 -					PACKAGE=${PACKAGE%:}
   1.180 -					image=tazpkg-installed.png
   1.181 -					[ -d $INSTALLED/$PACKAGE ] || image=tazpkg.png
   1.182 -					cat << EOT
   1.183 +			lzcat $(repo_list /files.list.lzma) | grep -Ei ": .*$(GET search)" | \
   1.184 +			while read PACKAGE FILE; do
   1.185 +				PACKAGE=${PACKAGE%:}
   1.186 +				class=pkg; [ -d $INSTALLED/$PACKAGE ] && class=pkgi
   1.187 +				cat << EOT
   1.188  <tr>
   1.189 -	<td><input type="checkbox" name="pkg" value="$PACKAGE">
   1.190 -		<a href="$(pkg_info_link $PACKAGE)"><img src="$IMAGES/$image" />$PACKAGE</a></td>
   1.191 +	<td class="pkg"><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td>
   1.192  	<td>$FILE</td>
   1.193  </tr>
   1.194  EOT
   1.195 -				done
   1.196 +			done
   1.197  		else
   1.198 -			cat << EOT
   1.199 -$(table_head)
   1.200 -	<tbody>
   1.201 -EOT
   1.202 -			grep -ih $pkg $(repo_list /packages.desc) | \
   1.203 -				parse_packages_desc
   1.204 +			table_head
   1.205 +			echo "	<tbody>"
   1.206 +			awk -F$'\t' 'BEGIN{IGNORECASE = 1}
   1.207 +			$1 $4 ~ /'$pkg'/{print $0}' $(repo_list /packages.info) | parse_packages_info
   1.208  		fi
   1.209  		cat << EOT
   1.210  	</tbody>
   1.211 @@ -651,11 +660,11 @@
   1.212  		sidebar
   1.213  		if [ -d $INSTALLED/$pkg ]; then
   1.214  			. $INSTALLED/$pkg/receipt
   1.215 -			files=$(cat $INSTALLED/$pkg/files.list | wc -l)
   1.216 +			files=$(wc -l < $INSTALLED/$pkg/files.list)
   1.217  			action="Remove"
   1.218  			action_i18n=$(_ 'Remove')
   1.219  		else
   1.220 -			cd  $PKGS_DB
   1.221 +			cd $PKGS_DB
   1.222  			LOADING_MSG=$(_ 'Getting package info...')
   1.223  			loading_msg
   1.224  			IFS='|'
   1.225 @@ -668,7 +677,7 @@
   1.226  			WEB_SITE="$(echo $5)"
   1.227  			action="Install"
   1.228  			action_i18n=$(_ 'Install')
   1.229 -			temp="$(echo $pkg | sed 's/get-//g')"
   1.230 +			temp="${pkg#get-}"
   1.231  		fi
   1.232  		cat << EOT
   1.233  <h2>$(_ 'Package %s' $PACKAGE)</h2>
   1.234 @@ -698,7 +707,7 @@
   1.235  			<a class="button" href='$SCRIPT_NAME?do=Repack&$pkg'>$(_ 'Repack')</a>
   1.236  EOT
   1.237  		fi
   1.238 -		i18n_desc
   1.239 +		i18n_desc $pkg
   1.240  		cat << EOT
   1.241  		</p>
   1.242  	</div>
   1.243 @@ -725,14 +734,14 @@
   1.244  			if [ -n "$DEPENDS" ]; then
   1.245  				echo "<tr><td><b>$(_ 'Depends')</b></td><td>"
   1.246  				for i in $DEPENDS; do
   1.247 -					echo -n "<a href="$(pkg_info_link $i)">$i</a> "
   1.248 +					pkg_info_link $i
   1.249  				done
   1.250  				echo "</td></tr>"
   1.251  			fi
   1.252  			if [ -n "$SUGGESTED" ]; then
   1.253  				echo "<tr><td><b>$(_ 'Suggested')</b></td><td>"
   1.254  				for i in $SUGGESTED; do
   1.255 -					echo -n "<a href="$(pkg_info_link $i)">$i</a> "
   1.256 +					pkg_info_link $i
   1.257  				done
   1.258  				echo "</td></tr>"
   1.259  			fi