tazpkg rev 832

pkgs.cgi: info page: show more info; show suggested list with descriptions (handy for packages like "gvfs")
author Aleksej Bobylev <al.bobylev@gmail.com>
date Fri Aug 14 03:07:11 2015 +0300 (2015-08-14)
parents 47b3b13dbf6b
children 56df537ccd1b
files modules/list po/ru.po tazpanel/pkgs.cgi tazpanel/pkgs.css
line diff
     1.1 --- a/modules/list	Thu Aug 13 00:42:38 2015 +0300
     1.2 +++ b/modules/list	Fri Aug 14 03:07:11 2015 +0300
     1.3 @@ -40,13 +40,13 @@
     1.4  # Translate category names (must be last in line)
     1.5  
     1.6  translate_category() {
     1.7 -	sed "s|base-system$|$(_ base-system)|g; s|x-window$|$(_ x-window)|g;
     1.8 -		s|utilities$|$(_ utilities)|g; s|network$|$(_ network)|g;
     1.9 -		s|graphics$|$(_ graphics)|g; s|multimedia$|$(_ multimedia)|g;
    1.10 -		s|office$|$(_ office)|g; s|development$|$(_ development)|g;
    1.11 -		s|system-tools$|$(_ system-tools)|g; s|security$|$(_ security)|g;
    1.12 -		s|games$|$(_ games)|g; s|misc$|$(_ misc)|g; s|meta$|$(_ meta)|g;
    1.13 -		s|non-free$|$(_ non-free)|g"
    1.14 +	sed "s|base-system$|$(_ base-system)|; s|x-window$|$(_ x-window)|;
    1.15 +		s|utilities$|$(_ utilities)|; s|network$|$(_ network)|;
    1.16 +		s|graphics$|$(_ graphics)|; s|multimedia$|$(_ multimedia)|;
    1.17 +		s|office$|$(_ office)|; s|development$|$(_ development)|;
    1.18 +		s|system-tools$|$(_ system-tools)|; s|security$|$(_ security)|;
    1.19 +		s|games$|$(_ games)|; s|misc$|$(_ misc)|; s|meta$|$(_ meta)|;
    1.20 +		s|non-free$|$(_ non-free)|; s|all$|$(_ all)|; s|extra$|$(_ extra)|"
    1.21  }
    1.22  
    1.23  
     2.1 --- a/po/ru.po	Thu Aug 13 00:42:38 2015 +0300
     2.2 +++ b/po/ru.po	Fri Aug 14 03:07:11 2015 +0300
     2.3 @@ -2031,6 +2031,18 @@
     2.4  msgid "Show"
     2.5  msgstr "Показать"
     2.6  
     2.7 +msgid "all"
     2.8 +msgstr "все"
     2.9 +
    2.10 +msgid "extra"
    2.11 +msgstr "экстра"
    2.12 +
    2.13 +msgid "Provide"
    2.14 +msgstr "Заменяет"
    2.15 +
    2.16 +msgid "Packages suggested by %s"
    2.17 +msgstr "Пакеты, предложенные пакетом %s"
    2.18 +
    2.19  #~ msgid "Unknown option \"%s\"."
    2.20  #~ msgstr "Неизвестный параметр «%s»."
    2.21  
     3.1 --- a/tazpanel/pkgs.cgi	Thu Aug 13 00:42:38 2015 +0300
     3.2 +++ b/tazpanel/pkgs.cgi	Fri Aug 14 03:07:11 2015 +0300
     3.3 @@ -82,7 +82,7 @@
     3.4  
     3.5  	*\ status\ * )
     3.6  		# Show package status
     3.7 -		pkg=$(GET pkg)
     3.8 +		pkg=$(GET pkg | tr -d ' ')
     3.9  		orig_pkg=''
    3.10  
    3.11  		if grep -q "^$pkg"$'\t' $PKGS_DB/installed.info; then
    3.12 @@ -92,7 +92,7 @@
    3.13  			# Package not installed
    3.14  			class='pkg'
    3.15  			equivs=$(grep "^$pkg=" $PKGS_DB/packages.equiv)
    3.16 -			if [ -n "$equivs" ]; then
    3.17 +			if [ "$(GET pkg)" == "$pkg" -a -n "$equivs" ]; then
    3.18  				for equiv in ${equivs#*=}; do
    3.19  					case $equiv in
    3.20  						*:*)
    3.21 @@ -362,7 +362,6 @@
    3.22  		}')
    3.23  	</div>
    3.24  EOT
    3.25 -#reminder; gettext 'all'; gettext 'extra'
    3.26  
    3.27  	if [ -d $PKGS_DB/undigest ]; then
    3.28  		cat <<EOT
    3.29 @@ -546,10 +545,15 @@
    3.30  show_info_links() {
    3.31  	if [ -n "$1" ]; then
    3.32  		if [ "$3" == 'tag' ]; then icon='tag'; else icon='clock'; fi
    3.33 -		echo -n "<tr><td><b>$2</b></td><td>"
    3.34 -		echo $1 | tr ' ' $'\n' | awk -vt="$3" -vi="$icon" '{
    3.35 +		case "$4" in
    3.36 +			provide) echo -n "<tr><td><b>$2</b></td><td>"; noeq=' ';;
    3.37 +			'')      echo -n "<tr><td><b>$2</b></td><td>"; noeq='';;
    3.38 +			*)       echo -n "<tr><td><b><a href=\"?suggested=${4//+/%2B}\">$2</a></b></td><td>";;
    3.39 +		esac
    3.40 +
    3.41 +		echo $1 | tr ' ' $'\n' | awk -vt="$3" -vi="$icon" -vnoeq="$noeq" '{
    3.42  			printf "<span><a data-icon=\"%s\" ", i;
    3.43 -			printf "href=\"?%s=%s\">%s</a></span>   ", t, gensub(/\+/, "%2B", "g", $1), $1
    3.44 +			printf "href=\"?%s=%s\">%s%s</a></span>", t, gensub(/\+/, "%2B", "g", $1), $1, noeq
    3.45  		}'
    3.46  		echo "</td></tr>"
    3.47  	fi
    3.48 @@ -710,6 +714,48 @@
    3.49  		;;
    3.50  
    3.51  
    3.52 +	*\ suggested\ *)
    3.53 +		#
    3.54 +		# List all suggested packages
    3.55 +		#
    3.56 +		tazpanel_header "$(_ 'Packages list')"
    3.57 +		loading_msg "$(_ 'Listing packages...')"
    3.58 +
    3.59 +		pkg=$(GET suggested)
    3.60 +		suggested_pkgs=$(. $INSTALLED/$pkg/receipt; echo $SUGGESTED)
    3.61 +		[ -z "$suggested_pkgs" ] && xhtml_footer && exit
    3.62 +
    3.63 +		cat <<EOT
    3.64 +<p>$(_ 'Packages suggested by %s' "<b>$pkg</b>")</p>
    3.65 +EOT
    3.66 +
    3.67 +		[ "$REMOTE_USER" == "root" ] && cat <<EOT
    3.68 +<section>
    3.69 +	<div>$(_ 'Selected packages:') <span id="countSelected"></span></div>
    3.70 +	<footer>
    3.71 +		$({
    3.72 +			show_button do=Install do=Chblock do=Remove
    3.73 +		} | sed 's|button |button form="pkglist" |g')
    3.74 +		$(show_button toggle)
    3.75 +	</footer>
    3.76 +</section>
    3.77 +EOT
    3.78 +
    3.79 +		cat <<EOT
    3.80 +<form id="pkglist" class="wide">
    3.81 +EOT
    3.82 +	table_head
    3.83 +	for pkg in $suggested_pkgs; do
    3.84 +		grep "^$pkg"$'\t' "$PKGS_DB/packages.info" | parse_packages_info
    3.85 +	done
    3.86 +		cat <<EOT
    3.87 +	</tbody></table>
    3.88 +</form>
    3.89 +<script type="text/javascript">window.onscroll = scrollHandler; setCountSelPkgs();</script>
    3.90 +EOT
    3.91 +		;;
    3.92 +
    3.93 +
    3.94  	*\ search\ *)
    3.95  		#
    3.96  		# Search for packages. Here default is to search in packages.desc
    3.97 @@ -881,6 +927,17 @@
    3.98  
    3.99  		pkg="$(GET info)"
   3.100  
   3.101 +		# Package state
   3.102 +		if [ -d "$INSTALLED/$pkg" ]; then
   3.103 +			STATE="$(_ 'installed package')"
   3.104 +		elif [ -e "$PKGS_DB/packages.info" -a \
   3.105 +			-n "$(awk -F$'\t' -vp="$pkg" '$1==p{print $1}' "$PKGS_DB/packages.info")" ]; then
   3.106 +			STATE="$(_ 'mirrored package')"
   3.107 +		else
   3.108 +			msg err "$(_ 'Package "%s" not available.' "$pkg")"
   3.109 +			xhtml_footer; exit 0
   3.110 +		fi
   3.111 +
   3.112  		# Symbolic icon
   3.113  		if [ -d "$INSTALLED/$pkg" ]; then
   3.114  			if grep -q "^$pkg$" "$PKGS_DB/blocked-packages.list"
   3.115 @@ -953,16 +1010,30 @@
   3.116  	<tr><td><b>$(_ 'Name')</b></td><td>$PACKAGE
   3.117  	<div id="appImg"><img src="pkgs.cgi?app_img=$PACKAGE"/></div>
   3.118  	</td></tr>
   3.119 +
   3.120 +	<tr><td><b>$(_ 'State')</b></td><td>$STATE</td></tr>
   3.121 +
   3.122  	$([ -n "$VERSION" ] && echo "<tr><td><b>$(_ 'Version')</b></td><td>$VERSION</td></tr>")
   3.123 +
   3.124  	<tr><td><b>$(_ 'Category')</b></td><td><a href="?list&amp;cat=$CATEGORY">$CATEGORY</a></td></tr>
   3.125 +
   3.126  	<tr><td><b>$(_ 'Description')</b></td><td>$SHORT_DESC</td></tr>
   3.127 +
   3.128  	$([ -n "$MAINTAINER" ] && echo "<tr><td><b>$(_ 'Maintainer')</b></td><td>$MAINTAINER</td></tr>")
   3.129 +
   3.130  	$([ -n "$LICENSE" ] && echo "<tr><td><b>$(_ 'License')</b></td><td><a href=\"?license=$pkg\">$LICENSE</a></td></tr>")
   3.131 +
   3.132  	<tr><td><b>$(_ 'Website')</b></td><td><a href="$WEB_SITE" target="_blank">$WEB_SITE</a></td></tr>
   3.133 +
   3.134  	$(show_info_links "$TAGS" "$(_ 'Tags')" 'tag')
   3.135 +
   3.136  	$([ -n "$PACKED_SIZE" ] && echo "<tr><td><b>$(_ 'Sizes')</b></td><td>${PACKED_SIZE/.0/}/${UNPACKED_SIZE/.0/}</td></tr>")
   3.137 +
   3.138  	$(show_info_links "$DEPENDS" "$(_ 'Depends')" 'info')
   3.139 -	$(show_info_links "$SUGGESTED" "$(_ 'Suggested')" 'info')
   3.140 +
   3.141 +	$(show_info_links "$PROVIDE" "$(_ 'Provide')" 'info' 'provide')
   3.142 +
   3.143 +	$(show_info_links "$SUGGESTED" "$(_ 'Suggested')" 'info' "$PACKAGE")
   3.144  </tbody>
   3.145  </table>
   3.146  
   3.147 @@ -1005,7 +1076,7 @@
   3.148  		if (links[i].dataset.icon == 'clock') {
   3.149  			links[i].parentNode.id = 'link' + i;
   3.150  			pkg = links[i].innerText.replace(/\+/g, '%2B');
   3.151 -			ajax('pkgs.cgi?status&pkg=' + pkg, '1', 'link' + i);
   3.152 +			ajax('?status&pkg=' + pkg, '1', 'link' + i);
   3.153  		}
   3.154  	}
   3.155  
   3.156 @@ -1669,6 +1740,5 @@
   3.157  esac
   3.158  
   3.159  # xHTML 5 footer
   3.160 -export TEXTDOMAIN='tazpkg'
   3.161  xhtml_footer
   3.162  exit 0
     4.1 --- a/tazpanel/pkgs.css	Thu Aug 13 00:42:38 2015 +0300
     4.2 +++ b/tazpanel/pkgs.css	Fri Aug 14 03:07:11 2015 +0300
     4.3 @@ -180,3 +180,9 @@
     4.4  	padding: 0; margin: 0;
     4.5  	vertical-align: bottom;
     4.6  }
     4.7 +
     4.8 +
     4.9 +
    4.10 +
    4.11 +/* infoTable: space between icons */
    4.12 +#infoTable span a { margin-right: 1em; }