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&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; }