# HG changeset patch # User Aleksej Bobylev # Date 1418867029 -7200 # Node ID 9081585e74461430eb2c08c97e5e4cd260de7235 # Parent 1dea2235808cef3526760e5243ccaf47735229a5 pkgs.cgi: new package' links (less HTML, more CSS); add pkgs.css; transition to packages.info. diff -r 1dea2235808c -r 9081585e7446 Makefile --- a/Makefile Wed Dec 17 01:59:31 2014 +0200 +++ b/Makefile Thu Dec 18 03:43:49 2014 +0200 @@ -71,6 +71,8 @@ install -m 0755 -d $(DESTDIR)/var/www/tazpanel/menu.d cp -a tazpanel/pkgs.cgi $(DESTDIR)/var/www/tazpanel cp -a tazpanel/pkgs $(DESTDIR)/var/www/tazpanel/menu.d + install -m 0755 -d $(DESTDIR)/var/www/tazpanel/styles/default + cp -a tazpanel/pkgs.css $(DESTDIR)/var/www/tazpanel/styles/default # The i18n files install -m 0755 -d $(DESTDIR)$(PREFIX)/share/locale diff -r 1dea2235808c -r 9081585e7446 tazpanel/pkgs.cgi --- a/tazpanel/pkgs.cgi Wed Dec 17 01:59:31 2014 +0200 +++ b/tazpanel/pkgs.cgi Thu Dec 18 03:43:49 2014 +0200 @@ -24,15 +24,16 @@ pkg_info_link() { - echo "$SCRIPT_NAME?info=$1" | sed 's/+/%2B/g' + echo "$1" | sed 's| class=""||' } +# Display localized short description + i18n_desc() { - # Display localized short description for L in $LANG ${LANG%%_*}; do if [ -e "$PKGS_DB/packages-desc.$L" ]; then - LOCDESC=$(awk -F$'\t' -vp=$pkg '{if ($1 == p) print $2}' $PKGS_DB/packages-desc.$L) + LOCDESC=$(awk -F$'\t' -vp=$1 '{if ($1 == p) print $2}' $PKGS_DB/packages-desc.$L) if [ -n "$LOCDESC" ]; then SHORT_DESC="$LOCDESC" break @@ -48,17 +49,32 @@ IFS="|" cut -f 1,2,3,5 -d "|" | while read PACKAGE VERSION SHORT_DESC WEB_SITE do - image=tazpkg-installed.png - [ -d $INSTALLED/${PACKAGE% } ] || image=tazpkg.png - i18n_desc + class=pkg; [ -d $INSTALLED/${PACKAGE% } ] && class=pkgi + i18n_desc $PACKAGE cat << EOT - - $PACKAGE +$(pkg_info_link $PACKAGE $class) $VERSION $SHORT_DESC - + + +EOT + done + unset IFS +} + + +parse_packages_info() { + IFS=$'\t' + while read PACKAGE VERSION CATEGORY SHORT_DESC WEB_SITE TAGS SIZES DEPENDS; do + class=pkg; [ -d $INSTALLED/${PACKAGE% } ] && class=pkgi + i18n_desc $PACKAGE + cat << EOT + +$(pkg_info_link $PACKAGE $class) +$VERSION +$SHORT_DESC + EOT done @@ -279,8 +295,7 @@ $(_ 'Check upgrades') -EOT - cat << EOT + $(table_head) @@ -290,18 +305,14 @@ echo '' # Use default tazpkg icon since all packages displayed are # installed - colorpkg=$pkg - grep -qs "^$pkg$" $PKGS_DB/blocked-packages.list && - colorpkg="$pkg" - i18n_desc + blocked= + grep -qs "^$pkg$" $PKGS_DB/blocked-packages.list && blocked="b" + i18n_desc $pkg cat << EOT - + - + EOT done @@ -349,17 +360,13 @@ for pkg in $(ls $target/$INSTALLED); do [ -s $pkg/receipt ] && continue . $target/$INSTALLED/$pkg/receipt - i18n_desc + i18n_desc $pkg cat << EOT - + - + EOT done @@ -380,8 +387,8 @@ repo=$(GET repo) category=$(GET cat) [ "$category" == "cat" ] && category="base-system" - grep_category=$category - [ "$grep_category" == "all" ] && grep_category=".*" + #grep_category=$category + #[ "$grep_category" == "all" ] && grep_category="*" search_form sidebar | sed "s/active_$category/active/;s/repo_$repo/active/" LOADING_MSG="$(_ 'Listing packages...')" @@ -414,16 +421,23 @@

$(_ 'Repository: %s' $Repo_Name)

EOT fi - cat << EOT -
- - $colorpkg$(pkg_info_link $pkg pkgi$blocked) $VERSION $SHORT_DESC
- - $pkg - $(pkg_info_link $pkg pkg) $VERSION $SHORT_DESC
-$(table_head) - -EOT - if [ "$category" == "extra" ]; then - sed 's,.*,&|--|--|--|http://mirror.slitaz.org/packages/get/&,' $i/extra.list - else - grep "| $grep_category |" $i/packages.desc - fi | parse_packages_desc + echo '
' + table_head + echo '' + + case $category in + extra) + sed 's|.*|& -- - -- http://mirror.slitaz.org/packages/get/& - - -|' \ + $i/extra.list | parse_packages_info + ;; + all) + parse_packages_info < $i/packages.info + ;; + *) + awk -F$'\t' -vc=$category '{if ($3 == c) print $0}' \ + $i/packages.info | parse_packages_info + ;; + esac cat << EOT
@@ -439,7 +453,7 @@ # pkg=$(GET search) repo=$(GET repo) - cd $PKGS_DB + cd $PKGS_DB search_form sidebar | sed "s/repo_$repo/active/" LOADING_MSG="$(_ 'Searching packages...')" @@ -477,27 +491,22 @@ EOT - unlzma -c $(repo_list /files.list.lzma) \ - | grep -Ei ": .*$(GET search)" | \ - while read PACKAGE FILE; do - PACKAGE=${PACKAGE%:} - image=tazpkg-installed.png - [ -d $INSTALLED/$PACKAGE ] || image=tazpkg.png - cat << EOT + lzcat $(repo_list /files.list.lzma) | grep -Ei ": .*$(GET search)" | \ + while read PACKAGE FILE; do + PACKAGE=${PACKAGE%:} + class=pkg; [ -d $INSTALLED/$PACKAGE ] && class=pkgi + cat << EOT - - $PACKAGE + $(pkg_info_link $PACKAGE $class) $FILE EOT - done + done else - cat << EOT -$(table_head) - -EOT - grep -ih $pkg $(repo_list /packages.desc) | \ - parse_packages_desc + table_head + echo " " + awk -F$'\t' 'BEGIN{IGNORECASE = 1} + $1 $4 ~ /'$pkg'/{print $0}' $(repo_list /packages.info) | parse_packages_info fi cat << EOT @@ -651,11 +660,11 @@ sidebar if [ -d $INSTALLED/$pkg ]; then . $INSTALLED/$pkg/receipt - files=$(cat $INSTALLED/$pkg/files.list | wc -l) + files=$(wc -l < $INSTALLED/$pkg/files.list) action="Remove" action_i18n=$(_ 'Remove') else - cd $PKGS_DB + cd $PKGS_DB LOADING_MSG=$(_ 'Getting package info...') loading_msg IFS='|' @@ -668,7 +677,7 @@ WEB_SITE="$(echo $5)" action="Install" action_i18n=$(_ 'Install') - temp="$(echo $pkg | sed 's/get-//g')" + temp="${pkg#get-}" fi cat << EOT

$(_ 'Package %s' $PACKAGE)

@@ -698,7 +707,7 @@ $(_ 'Repack') EOT fi - i18n_desc + i18n_desc $pkg cat << EOT

@@ -725,14 +734,14 @@ if [ -n "$DEPENDS" ]; then echo "$(_ 'Depends')" for i in $DEPENDS; do - echo -n "$i " + pkg_info_link $i done echo "" fi if [ -n "$SUGGESTED" ]; then echo "$(_ 'Suggested')" for i in $SUGGESTED; do - echo -n "$i " + pkg_info_link $i done echo "" fi diff -r 1dea2235808c -r 9081585e7446 tazpanel/pkgs.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tazpanel/pkgs.css Thu Dec 18 03:43:49 2014 +0200 @@ -0,0 +1,30 @@ +/* links classes: + * pkg - package (not installed); + * pkgi - package (installed); + * pkgib - package (installed and blocked); + * w - web site + * + * you can style links using icons and/or color + */ + +a.pkg { + background: url(images/tazpkg.png) no-repeat left; } +a.pkgi, a.pkgib { + background: url(images/tazpkg-installed.png) no-repeat left; } +/* +a.pkgi { + color: green; } +*/ +a.pkgib { + color: red; } +a.w { + background: url(images/browser.png) no-repeat left; } + +a.pkg, a.pkgi, a.pkgib, a.w { + margin: 0; padding: 0 0 0 17px; + min-height: 16px; min-width: 16px; + display: inline-block; } + + +td.pkg { + white-space: nowrap; }