# 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:')
+
+
+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; }