# HG changeset patch # User Aleksej Bobylev # Date 1439510831 -10800 # Node ID 48496086d8c91a148242421c7f79a528d2e8e4ce # Parent 47b3b13dbf6bec2a6488c9613a3208d93362e47d pkgs.cgi: info page: show more info; show suggested list with descriptions (handy for packages like "gvfs") diff -r 47b3b13dbf6b -r 48496086d8c9 modules/list --- a/modules/list Thu Aug 13 00:42:38 2015 +0300 +++ b/modules/list Fri Aug 14 03:07:11 2015 +0300 @@ -40,13 +40,13 @@ # Translate category names (must be last in line) translate_category() { - sed "s|base-system$|$(_ base-system)|g; s|x-window$|$(_ x-window)|g; - s|utilities$|$(_ utilities)|g; s|network$|$(_ network)|g; - s|graphics$|$(_ graphics)|g; s|multimedia$|$(_ multimedia)|g; - s|office$|$(_ office)|g; s|development$|$(_ development)|g; - s|system-tools$|$(_ system-tools)|g; s|security$|$(_ security)|g; - s|games$|$(_ games)|g; s|misc$|$(_ misc)|g; s|meta$|$(_ meta)|g; - s|non-free$|$(_ non-free)|g" + sed "s|base-system$|$(_ base-system)|; s|x-window$|$(_ x-window)|; + s|utilities$|$(_ utilities)|; s|network$|$(_ network)|; + s|graphics$|$(_ graphics)|; s|multimedia$|$(_ multimedia)|; + s|office$|$(_ office)|; s|development$|$(_ development)|; + s|system-tools$|$(_ system-tools)|; s|security$|$(_ security)|; + s|games$|$(_ games)|; s|misc$|$(_ misc)|; s|meta$|$(_ meta)|; + s|non-free$|$(_ non-free)|; s|all$|$(_ all)|; s|extra$|$(_ extra)|" } diff -r 47b3b13dbf6b -r 48496086d8c9 po/ru.po --- a/po/ru.po Thu Aug 13 00:42:38 2015 +0300 +++ b/po/ru.po Fri Aug 14 03:07:11 2015 +0300 @@ -2031,6 +2031,18 @@ msgid "Show" msgstr "Показать" +msgid "all" +msgstr "все" + +msgid "extra" +msgstr "экстра" + +msgid "Provide" +msgstr "Заменяет" + +msgid "Packages suggested by %s" +msgstr "Пакеты, предложенные пакетом %s" + #~ msgid "Unknown option \"%s\"." #~ msgstr "Неизвестный параметр «%s»." diff -r 47b3b13dbf6b -r 48496086d8c9 tazpanel/pkgs.cgi --- a/tazpanel/pkgs.cgi Thu Aug 13 00:42:38 2015 +0300 +++ b/tazpanel/pkgs.cgi Fri Aug 14 03:07:11 2015 +0300 @@ -82,7 +82,7 @@ *\ status\ * ) # Show package status - pkg=$(GET pkg) + pkg=$(GET pkg | tr -d ' ') orig_pkg='' if grep -q "^$pkg"$'\t' $PKGS_DB/installed.info; then @@ -92,7 +92,7 @@ # Package not installed class='pkg' equivs=$(grep "^$pkg=" $PKGS_DB/packages.equiv) - if [ -n "$equivs" ]; then + if [ "$(GET pkg)" == "$pkg" -a -n "$equivs" ]; then for equiv in ${equivs#*=}; do case $equiv in *:*) @@ -362,7 +362,6 @@ }') EOT -#reminder; gettext 'all'; gettext 'extra' if [ -d $PKGS_DB/undigest ]; then cat <$2" - echo $1 | tr ' ' $'\n' | awk -vt="$3" -vi="$icon" '{ + case "$4" in + provide) echo -n "$2"; noeq=' ';; + '') echo -n "$2"; noeq='';; + *) echo -n "$2";; + esac + + echo $1 | tr ' ' $'\n' | awk -vt="$3" -vi="$icon" -vnoeq="$noeq" '{ printf "%s   ", t, gensub(/\+/, "%2B", "g", $1), $1 + printf "href=\"?%s=%s\">%s%s", t, gensub(/\+/, "%2B", "g", $1), $1, noeq }' echo "" fi @@ -710,6 +714,48 @@ ;; + *\ suggested\ *) + # + # List all suggested packages + # + tazpanel_header "$(_ 'Packages list')" + loading_msg "$(_ 'Listing packages...')" + + pkg=$(GET suggested) + suggested_pkgs=$(. $INSTALLED/$pkg/receipt; echo $SUGGESTED) + [ -z "$suggested_pkgs" ] && xhtml_footer && exit + + cat <$(_ 'Packages suggested by %s' "$pkg")

+EOT + + [ "$REMOTE_USER" == "root" ] && cat < +
$(_ 'Selected packages:')
+
+ $({ + show_button do=Install do=Chblock do=Remove + } | sed 's|button |button form="pkglist" |g') + $(show_button toggle) +
+ +EOT + + cat < +EOT + table_head + for pkg in $suggested_pkgs; do + grep "^$pkg"$'\t' "$PKGS_DB/packages.info" | parse_packages_info + done + cat < + + +EOT + ;; + + *\ search\ *) # # Search for packages. Here default is to search in packages.desc @@ -881,6 +927,17 @@ pkg="$(GET info)" + # Package state + if [ -d "$INSTALLED/$pkg" ]; then + STATE="$(_ 'installed package')" + elif [ -e "$PKGS_DB/packages.info" -a \ + -n "$(awk -F$'\t' -vp="$pkg" '$1==p{print $1}' "$PKGS_DB/packages.info")" ]; then + STATE="$(_ 'mirrored package')" + else + msg err "$(_ 'Package "%s" not available.' "$pkg")" + xhtml_footer; exit 0 + fi + # Symbolic icon if [ -d "$INSTALLED/$pkg" ]; then if grep -q "^$pkg$" "$PKGS_DB/blocked-packages.list" @@ -953,16 +1010,30 @@ $(_ 'Name')$PACKAGE
+ + $(_ 'State')$STATE + $([ -n "$VERSION" ] && echo "$(_ 'Version')$VERSION") + $(_ 'Category')$CATEGORY + $(_ 'Description')$SHORT_DESC + $([ -n "$MAINTAINER" ] && echo "$(_ 'Maintainer')$MAINTAINER") + $([ -n "$LICENSE" ] && echo "$(_ 'License')$LICENSE") + $(_ 'Website')$WEB_SITE + $(show_info_links "$TAGS" "$(_ 'Tags')" 'tag') + $([ -n "$PACKED_SIZE" ] && echo "$(_ 'Sizes')${PACKED_SIZE/.0/}/${UNPACKED_SIZE/.0/}") + $(show_info_links "$DEPENDS" "$(_ 'Depends')" 'info') - $(show_info_links "$SUGGESTED" "$(_ 'Suggested')" 'info') + + $(show_info_links "$PROVIDE" "$(_ 'Provide')" 'info' 'provide') + + $(show_info_links "$SUGGESTED" "$(_ 'Suggested')" 'info' "$PACKAGE") @@ -1005,7 +1076,7 @@ if (links[i].dataset.icon == 'clock') { links[i].parentNode.id = 'link' + i; pkg = links[i].innerText.replace(/\+/g, '%2B'); - ajax('pkgs.cgi?status&pkg=' + pkg, '1', 'link' + i); + ajax('?status&pkg=' + pkg, '1', 'link' + i); } } @@ -1669,6 +1740,5 @@ esac # xHTML 5 footer -export TEXTDOMAIN='tazpkg' xhtml_footer exit 0 diff -r 47b3b13dbf6b -r 48496086d8c9 tazpanel/pkgs.css --- a/tazpanel/pkgs.css Thu Aug 13 00:42:38 2015 +0300 +++ b/tazpanel/pkgs.css Fri Aug 14 03:07:11 2015 +0300 @@ -180,3 +180,9 @@ padding: 0; margin: 0; vertical-align: bottom; } + + + + +/* infoTable: space between icons */ +#infoTable span a { margin-right: 1em; }