tazpkg rev 718
pkgs.cgi: new package' links (less HTML, more CSS); add pkgs.css; transition to packages.info.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Thu Dec 18 03:43:49 2014 +0200 (2014-12-18) |
parents | 1dea2235808c |
children | 474681a166a8 |
files | Makefile tazpanel/pkgs.cgi tazpanel/pkgs.css |
line diff
1.1 --- a/Makefile Wed Dec 17 01:59:31 2014 +0200 1.2 +++ b/Makefile Thu Dec 18 03:43:49 2014 +0200 1.3 @@ -71,6 +71,8 @@ 1.4 install -m 0755 -d $(DESTDIR)/var/www/tazpanel/menu.d 1.5 cp -a tazpanel/pkgs.cgi $(DESTDIR)/var/www/tazpanel 1.6 cp -a tazpanel/pkgs $(DESTDIR)/var/www/tazpanel/menu.d 1.7 + install -m 0755 -d $(DESTDIR)/var/www/tazpanel/styles/default 1.8 + cp -a tazpanel/pkgs.css $(DESTDIR)/var/www/tazpanel/styles/default 1.9 1.10 # The i18n files 1.11 install -m 0755 -d $(DESTDIR)$(PREFIX)/share/locale
2.1 --- a/tazpanel/pkgs.cgi Wed Dec 17 01:59:31 2014 +0200 2.2 +++ b/tazpanel/pkgs.cgi Thu Dec 18 03:43:49 2014 +0200 2.3 @@ -24,15 +24,16 @@ 2.4 2.5 pkg_info_link() 2.6 { 2.7 - echo "$SCRIPT_NAME?info=$1" | sed 's/+/%2B/g' 2.8 + echo "<a class=\"$2\" href=\"?info=${1//+/%2B}\">$1</a>" | sed 's| class=""||' 2.9 } 2.10 2.11 2.12 +# Display localized short description 2.13 + 2.14 i18n_desc() { 2.15 - # Display localized short description 2.16 for L in $LANG ${LANG%%_*}; do 2.17 if [ -e "$PKGS_DB/packages-desc.$L" ]; then 2.18 - LOCDESC=$(awk -F$'\t' -vp=$pkg '{if ($1 == p) print $2}' $PKGS_DB/packages-desc.$L) 2.19 + LOCDESC=$(awk -F$'\t' -vp=$1 '{if ($1 == p) print $2}' $PKGS_DB/packages-desc.$L) 2.20 if [ -n "$LOCDESC" ]; then 2.21 SHORT_DESC="$LOCDESC" 2.22 break 2.23 @@ -48,17 +49,32 @@ 2.24 IFS="|" 2.25 cut -f 1,2,3,5 -d "|" | while read PACKAGE VERSION SHORT_DESC WEB_SITE 2.26 do 2.27 - image=tazpkg-installed.png 2.28 - [ -d $INSTALLED/${PACKAGE% } ] || image=tazpkg.png 2.29 - i18n_desc 2.30 + class=pkg; [ -d $INSTALLED/${PACKAGE% } ] && class=pkgi 2.31 + i18n_desc $PACKAGE 2.32 cat << EOT 2.33 <tr> 2.34 -<td><input type="checkbox" name="pkg" value="$PACKAGE"> 2.35 - <a href="$(pkg_info_link $PACKAGE)"><img 2.36 - src="$IMAGES/$image"/>$PACKAGE</a></td> 2.37 +<td class="pkg"><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 2.38 <td>$VERSION</td> 2.39 <td class="desc">$SHORT_DESC</td> 2.40 -<td><a href="$WEB_SITE"><img src="$IMAGES/browser.png"/></a></td> 2.41 +<td><a class="w" href="$WEB_SITE"></a></td> 2.42 +</tr> 2.43 +EOT 2.44 + done 2.45 + unset IFS 2.46 +} 2.47 + 2.48 + 2.49 +parse_packages_info() { 2.50 + IFS=$'\t' 2.51 + while read PACKAGE VERSION CATEGORY SHORT_DESC WEB_SITE TAGS SIZES DEPENDS; do 2.52 + class=pkg; [ -d $INSTALLED/${PACKAGE% } ] && class=pkgi 2.53 + i18n_desc $PACKAGE 2.54 + cat << EOT 2.55 +<tr> 2.56 +<td class="pkg"><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 2.57 +<td>$VERSION</td> 2.58 +<td class="desc">$SHORT_DESC</td> 2.59 +<td><a class="w" href="$WEB_SITE"></a></td> 2.60 </tr> 2.61 EOT 2.62 done 2.63 @@ -279,8 +295,7 @@ 2.64 <img src="$IMAGES/update.png" />$(_ 'Check upgrades')</a> 2.65 </div> 2.66 </div> 2.67 -EOT 2.68 - cat << EOT 2.69 + 2.70 <table class="zebra outbox"> 2.71 $(table_head) 2.72 <tbody> 2.73 @@ -290,18 +305,14 @@ 2.74 echo '<tr>' 2.75 # Use default tazpkg icon since all packages displayed are 2.76 # installed 2.77 - colorpkg=$pkg 2.78 - grep -qs "^$pkg$" $PKGS_DB/blocked-packages.list && 2.79 - colorpkg="<span style='color: red;'>$pkg</span>" 2.80 - i18n_desc 2.81 + blocked= 2.82 + grep -qs "^$pkg$" $PKGS_DB/blocked-packages.list && blocked="b" 2.83 + i18n_desc $pkg 2.84 cat << EOT 2.85 -<td class="pkg"> 2.86 - <input type="checkbox" name="pkg" value="$pkg" /> 2.87 - <a href="$(pkg_info_link $pkg)"><img 2.88 - src="$IMAGES/tazpkg-installed.png"/>$colorpkg</a></td> 2.89 +<td class="pkg"><input type="checkbox" name="pkg" value="$pkg" />$(pkg_info_link $pkg pkgi$blocked)</td> 2.90 <td>$VERSION</td> 2.91 <td class="desc">$SHORT_DESC</td> 2.92 -<td><a href="$WEB_SITE"><img src="$IMAGES/browser.png"/></a></td> 2.93 +<td><a class="w" href="$WEB_SITE"></a></td> 2.94 </tr> 2.95 EOT 2.96 done 2.97 @@ -349,17 +360,13 @@ 2.98 for pkg in $(ls $target/$INSTALLED); do 2.99 [ -s $pkg/receipt ] && continue 2.100 . $target/$INSTALLED/$pkg/receipt 2.101 - i18n_desc 2.102 + i18n_desc $pkg 2.103 cat << EOT 2.104 <tr> 2.105 - <td class="pkg"> 2.106 - <input type="checkbox" name="pkg" value="$pkg" /> 2.107 - <a href="$(pkg_info_link $pkg)"><img 2.108 - src="$IMAGES/tazpkg.png"/>$pkg</a> 2.109 - </td> 2.110 + <td class="pkg"><input type="checkbox" name="pkg" value="$pkg" />$(pkg_info_link $pkg pkg)</td> 2.111 <td>$VERSION</td> 2.112 <td class="desc">$SHORT_DESC</td> 2.113 - <td><a href="$WEB_SITE"><img src="$IMAGES/browser.png"/></a></td> 2.114 + <td><a class="w" href="$WEB_SITE"></a></td> 2.115 </tr> 2.116 EOT 2.117 done 2.118 @@ -380,8 +387,8 @@ 2.119 repo=$(GET repo) 2.120 category=$(GET cat) 2.121 [ "$category" == "cat" ] && category="base-system" 2.122 - grep_category=$category 2.123 - [ "$grep_category" == "all" ] && grep_category=".*" 2.124 + #grep_category=$category 2.125 + #[ "$grep_category" == "all" ] && grep_category="*" 2.126 search_form 2.127 sidebar | sed "s/active_$category/active/;s/repo_$repo/active/" 2.128 LOADING_MSG="$(_ 'Listing packages...')" 2.129 @@ -414,16 +421,23 @@ 2.130 <h3>$(_ 'Repository: %s' $Repo_Name)</h3> 2.131 EOT 2.132 fi 2.133 - cat << EOT 2.134 -<table class="zebra outbox"> 2.135 -$(table_head) 2.136 -<tbody> 2.137 -EOT 2.138 - if [ "$category" == "extra" ]; then 2.139 - sed 's,.*,&|--|--|--|http://mirror.slitaz.org/packages/get/&,' $i/extra.list 2.140 - else 2.141 - grep "| $grep_category |" $i/packages.desc 2.142 - fi | parse_packages_desc 2.143 + echo '<table class="zebra outbox">' 2.144 + table_head 2.145 + echo '<tbody>' 2.146 + 2.147 + case $category in 2.148 + extra) 2.149 + sed 's|.*|& -- - -- http://mirror.slitaz.org/packages/get/& - - -|' \ 2.150 + $i/extra.list | parse_packages_info 2.151 + ;; 2.152 + all) 2.153 + parse_packages_info < $i/packages.info 2.154 + ;; 2.155 + *) 2.156 + awk -F$'\t' -vc=$category '{if ($3 == c) print $0}' \ 2.157 + $i/packages.info | parse_packages_info 2.158 + ;; 2.159 + esac 2.160 cat << EOT 2.161 </tbody> 2.162 </table> 2.163 @@ -439,7 +453,7 @@ 2.164 # 2.165 pkg=$(GET search) 2.166 repo=$(GET repo) 2.167 - cd $PKGS_DB 2.168 + cd $PKGS_DB 2.169 search_form 2.170 sidebar | sed "s/repo_$repo/active/" 2.171 LOADING_MSG="$(_ 'Searching packages...')" 2.172 @@ -477,27 +491,22 @@ 2.173 <thead> 2.174 <tbody> 2.175 EOT 2.176 - unlzma -c $(repo_list /files.list.lzma) \ 2.177 - | grep -Ei ": .*$(GET search)" | \ 2.178 - while read PACKAGE FILE; do 2.179 - PACKAGE=${PACKAGE%:} 2.180 - image=tazpkg-installed.png 2.181 - [ -d $INSTALLED/$PACKAGE ] || image=tazpkg.png 2.182 - cat << EOT 2.183 + lzcat $(repo_list /files.list.lzma) | grep -Ei ": .*$(GET search)" | \ 2.184 + while read PACKAGE FILE; do 2.185 + PACKAGE=${PACKAGE%:} 2.186 + class=pkg; [ -d $INSTALLED/$PACKAGE ] && class=pkgi 2.187 + cat << EOT 2.188 <tr> 2.189 - <td><input type="checkbox" name="pkg" value="$PACKAGE"> 2.190 - <a href="$(pkg_info_link $PACKAGE)"><img src="$IMAGES/$image" />$PACKAGE</a></td> 2.191 + <td class="pkg"><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 2.192 <td>$FILE</td> 2.193 </tr> 2.194 EOT 2.195 - done 2.196 + done 2.197 else 2.198 - cat << EOT 2.199 -$(table_head) 2.200 - <tbody> 2.201 -EOT 2.202 - grep -ih $pkg $(repo_list /packages.desc) | \ 2.203 - parse_packages_desc 2.204 + table_head 2.205 + echo " <tbody>" 2.206 + awk -F$'\t' 'BEGIN{IGNORECASE = 1} 2.207 + $1 $4 ~ /'$pkg'/{print $0}' $(repo_list /packages.info) | parse_packages_info 2.208 fi 2.209 cat << EOT 2.210 </tbody> 2.211 @@ -651,11 +660,11 @@ 2.212 sidebar 2.213 if [ -d $INSTALLED/$pkg ]; then 2.214 . $INSTALLED/$pkg/receipt 2.215 - files=$(cat $INSTALLED/$pkg/files.list | wc -l) 2.216 + files=$(wc -l < $INSTALLED/$pkg/files.list) 2.217 action="Remove" 2.218 action_i18n=$(_ 'Remove') 2.219 else 2.220 - cd $PKGS_DB 2.221 + cd $PKGS_DB 2.222 LOADING_MSG=$(_ 'Getting package info...') 2.223 loading_msg 2.224 IFS='|' 2.225 @@ -668,7 +677,7 @@ 2.226 WEB_SITE="$(echo $5)" 2.227 action="Install" 2.228 action_i18n=$(_ 'Install') 2.229 - temp="$(echo $pkg | sed 's/get-//g')" 2.230 + temp="${pkg#get-}" 2.231 fi 2.232 cat << EOT 2.233 <h2>$(_ 'Package %s' $PACKAGE)</h2> 2.234 @@ -698,7 +707,7 @@ 2.235 <a class="button" href='$SCRIPT_NAME?do=Repack&$pkg'>$(_ 'Repack')</a> 2.236 EOT 2.237 fi 2.238 - i18n_desc 2.239 + i18n_desc $pkg 2.240 cat << EOT 2.241 </p> 2.242 </div> 2.243 @@ -725,14 +734,14 @@ 2.244 if [ -n "$DEPENDS" ]; then 2.245 echo "<tr><td><b>$(_ 'Depends')</b></td><td>" 2.246 for i in $DEPENDS; do 2.247 - echo -n "<a href="$(pkg_info_link $i)">$i</a> " 2.248 + pkg_info_link $i 2.249 done 2.250 echo "</td></tr>" 2.251 fi 2.252 if [ -n "$SUGGESTED" ]; then 2.253 echo "<tr><td><b>$(_ 'Suggested')</b></td><td>" 2.254 for i in $SUGGESTED; do 2.255 - echo -n "<a href="$(pkg_info_link $i)">$i</a> " 2.256 + pkg_info_link $i 2.257 done 2.258 echo "</td></tr>" 2.259 fi
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/tazpanel/pkgs.css Thu Dec 18 03:43:49 2014 +0200 3.3 @@ -0,0 +1,30 @@ 3.4 +/* links classes: 3.5 + * pkg - package (not installed); 3.6 + * pkgi - package (installed); 3.7 + * pkgib - package (installed and blocked); 3.8 + * w - web site 3.9 + * 3.10 + * you can style links using icons and/or color 3.11 + */ 3.12 + 3.13 +a.pkg { 3.14 + background: url(images/tazpkg.png) no-repeat left; } 3.15 +a.pkgi, a.pkgib { 3.16 + background: url(images/tazpkg-installed.png) no-repeat left; } 3.17 +/* 3.18 +a.pkgi { 3.19 + color: green; } 3.20 +*/ 3.21 +a.pkgib { 3.22 + color: red; } 3.23 +a.w { 3.24 + background: url(images/browser.png) no-repeat left; } 3.25 + 3.26 +a.pkg, a.pkgi, a.pkgib, a.w { 3.27 + margin: 0; padding: 0 0 0 17px; 3.28 + min-height: 16px; min-width: 16px; 3.29 + display: inline-block; } 3.30 + 3.31 + 3.32 +td.pkg { 3.33 + white-space: nowrap; }