tazpkg rev 763
pkgs.cgi: show type of packages (installed/not installed/blocked) in the search; auto-search files if '/' present in query; use radio-buttons in the categories selector (may fix appearance in other browsers); tazpkg: show package sizes in the info.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri Apr 03 15:51:06 2015 +0300 (2015-04-03) |
parents | ad921c2aee59 |
children | 7a731e6f61a6 |
files | tazpanel/pkgs.cgi tazpanel/pkgs.css tazpkg |
line diff
1.1 --- a/tazpanel/pkgs.cgi Wed Apr 01 04:29:22 2015 +0300 1.2 +++ b/tazpanel/pkgs.cgi Fri Apr 03 15:51:06 2015 +0300 1.3 @@ -21,7 +21,7 @@ 1.4 _() { local T="$1"; shift; printf "$(gettext "$T")" "$@"; echo; } 1.5 _n() { local T="$1"; shift; printf "$(gettext "$T")" "$@"; } 1.6 _p() { 1.7 - local S="$1" P="$2" N="$3"; shift; shift; shift; 1.8 + local S="$1" P="$2" N="$3"; shift 3; 1.9 printf "$(ngettext "$S" "$P" "$N")" "$@"; } 1.10 1.11 1.12 @@ -74,7 +74,11 @@ 1.13 parse_packages_info() { 1.14 IFS=$'\t' 1.15 while read PACKAGE VERSION CATEGORY SHORT_DESC WEB_SITE TAGS SIZES DEPENDS; do 1.16 - class=pkg; grep -q "^$PACKAGE$'\t'" $PKGS_DB/installed.info && class=pkgi 1.17 + class='pkg' 1.18 + if grep -q "^$PACKAGE"$'\t' $PKGS_DB/installed.info; then 1.19 + class='pkgi' 1.20 + grep -q "^$PACKAGE$" $PKGS_DB/blocked-packages.list && class='pkgib' 1.21 + fi 1.22 i18n_desc $PACKAGE 1.23 cat << EOT 1.24 <tr> 1.25 @@ -136,8 +140,6 @@ 1.26 # ENTER will search but user may search for a button, so put one. 1.27 1.28 search_form() { 1.29 - [ -z "$repo" ] && repo="$(GET repo)" 1.30 - [ -z "$repo" ] && repo="Any" 1.31 cat << EOT 1.32 <form class="search"><!-- 1.33 --><input type="search" name="search" results="5" autosave="pkgsearch" autocomplete="on"><!-- 1.34 @@ -171,10 +173,22 @@ 1.35 cat << EOT 1.36 <script type="text/javascript"> 1.37 function setCookie(name) { 1.38 - document.cookie = name+"="+document.getElementById(name).value; } 1.39 + if (name=='cat') { 1.40 + var cats = document.getElementsByName('cat'); 1.41 + for (var i = 0; i < cats.length; i++) { 1.42 + if (cats[i].checked) { 1.43 + document.cookie = name + "=" + cats[i].value; 1.44 + break; 1.45 + } 1.46 + } 1.47 + } else { 1.48 + document.cookie = name+"="+document.getElementById(name).value; 1.49 + } 1.50 +} 1.51 function setValue(name, value) { 1.52 document.getElementById(name).value=value; 1.53 - setCookie(name); } 1.54 + setCookie(name); 1.55 +} 1.56 </script> 1.57 <form method="post" action="?list"> 1.58 1.59 @@ -183,32 +197,21 @@ 1.60 <option value="my">$(_ 'My packages')</option> 1.61 <option value="no">$(_ 'All packages')</option> 1.62 </select> 1.63 + <script type="text/javascript">setValue('my', "$my")</script> 1.64 1.65 <h4>$(_ 'Categories')</h4> 1.66 1.67 - <div class="select_wrap"> 1.68 - <select id="cat" size="16" onclick="setCookie('cat'); this.form.submit()"> 1.69 - <option value="base-system" >$(_ 'base-system')</option> 1.70 - <option value="x-window" >$(_ 'x-window')</option> 1.71 - <option value="utilities" >$(_ 'utilities')</option> 1.72 - <option value="network" >$(_ 'network')</option> 1.73 - <option value="games" >$(_ 'games')</option> 1.74 - <option value="graphics" >$(_ 'graphics')</option> 1.75 - <option value="office" >$(_ 'office')</option> 1.76 - <option value="multimedia" >$(_ 'multimedia')</option> 1.77 - <option value="development" >$(_ 'development')</option> 1.78 - <option value="system-tools">$(_ 'system-tools')</option> 1.79 - <option value="security" >$(_ 'security')</option> 1.80 - <option value="misc" >$(_ 'misc')</option> 1.81 - <option value="meta" >$(_ 'meta')</option> 1.82 - <option value="non-free" >$(_ 'non-free')</option> 1.83 - <option value="all" >$(_ 'all')</option> 1.84 - <option value="extra" >$(_ 'extra')</option> 1.85 - </select> 1.86 - <script type="text/javascript"> 1.87 - setValue('my', "$my") 1.88 - setValue('cat', "$cat") 1.89 - </script> 1.90 + <div class="wide zebra"> 1.91 + $(echo 'base-system x-window utilities network games graphics office 1.92 + multimedia development system-tools security misc meta non-free all 1.93 + extra' | tr ' ' '\n' | awk -vcat="$cat" -vn="1" '{ 1.94 + system("gettext " $1 | getline tr) 1.95 + printf "<input type=\"radio\" name=\"cat\" id=\"c%s\" ", n 1.96 + printf "value=\"%s\"%s ", $1, $1==cat?" checked":"" 1.97 + printf "onclick=\"setCookie('cat'); this.form.submit()\">" 1.98 + printf "<label for=\"c%s\">%s</label>\n", n, tr 1.99 + n++ 1.100 + }') 1.101 </div> 1.102 EOT 1.103 1.104 @@ -564,7 +567,7 @@ 1.105 1.106 <form id="pkglist" class="wide"> 1.107 EOT 1.108 - if [ -n "$(GET files)" ]; then 1.109 + if [ -n "$(GET files)" -o -n "$(echo $pkg | grep '/')" ]; then 1.110 cat <<EOT 1.111 <table class="wide zebra filelist"> 1.112 <thead> 1.113 @@ -578,7 +581,11 @@ 1.114 lzcat $(repo_list /files.list.lzma) | grep -Ei ": .*$(GET search)" | \ 1.115 while read PACKAGE FILE; do 1.116 PACKAGE=${PACKAGE%:} 1.117 - class=pkg; [ -d $INSTALLED/$PACKAGE ] && class=pkgi 1.118 + class='pkg' 1.119 + if [ -d $INSTALLED/$PACKAGE ]; then 1.120 + class='pkgi' 1.121 + grep -q "^$PACKAGE$" $PKGS_DB/blocked-packages.list && class='pkgib' 1.122 + fi 1.123 cat << EOT 1.124 <tr> 1.125 <td><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td>
2.1 --- a/tazpanel/pkgs.css Wed Apr 01 04:29:22 2015 +0300 2.2 +++ b/tazpanel/pkgs.css Fri Apr 03 15:51:06 2015 +0300 2.3 @@ -8,13 +8,13 @@ 2.4 */ 2.5 2.6 #content-sidebar { 2.7 - margin-right: 138px; /* sidebar width */ 2.8 - padding: 10px; 2.9 + margin-right: 140px; /* sidebar width */ 2.10 + padding: 5px; 2.11 } 2.12 2.13 -#sidebar { /* full width = width(132) + h-padding(5) + border(1) = 138px */ 2.14 +#sidebar { /* full width = width(139) + h-padding(0) + border(1) = 140px */ 2.15 position: fixed; top: 65px; bottom: 0; right: 0; 2.16 - width: 132px; padding: 5px 5px 0 0; 2.17 + width: 139px; padding: 0; 2.18 border-left: 1pt solid; 2.19 overflow-y: auto; overflow-x: hidden; /* for tiny screens */ 2.20 } 2.21 @@ -26,32 +26,14 @@ 2.22 } 2.23 2.24 2.25 - 2.26 - 2.27 - 2.28 /** 2.29 * Sidebar category selector 2.30 */ 2.31 2.32 -/* hack to remove unwanted scrollbar from multiline selector */ 2.33 - 2.34 -.select_wrap { 2.35 - display: inline-block; 2.36 - vertical-align: top; 2.37 - overflow: hidden; 2.38 -} 2.39 -.select_wrap select { 2.40 - padding: 5px; 2.41 - margin:-5px -20px -5px -5px; 2.42 - width: 162px; /* sidebar:(138px) + this h-margin:(20px+5px) */ 2.43 - font-size: small; 2.44 -} 2.45 - 2.46 -/* zebra on selector */ 2.47 -select option:nth-child(even) { 2.48 - background-color: rgba(0,0,0,0.05); 2.49 -} 2.50 - 2.51 +#sidebar input[type="radio"] { display: none; } 2.52 +#sidebar label { display: block; padding-left: 5px; } 2.53 +#sidebar input+label:nth-child(4n) { background-color: hsla(0, 0%, 50%, 0.1); } 2.54 +#sidebar input:checked+label { background-color: hsla(0, 0%, 50%, 0.5); } 2.55 2.56 /* sidebar links */ 2.57 #sidebar a { 2.58 @@ -71,17 +53,17 @@ 2.59 */ 2.60 2.61 /* not break the line */ 2.62 -.pkglist td:nth-child(1), 2.63 +.pkglist td:nth-child(1), 2.64 .filelist td:nth-child(1) { white-space: nowrap; } 2.65 2.66 -.pkglist td:nth-child(1) a, 2.67 +.pkglist td:nth-child(1) a, 2.68 .filelist td:nth-child(1) a { max-width: 12em; } 2.69 -.pkglist td:nth-child(2) { max-width: 7em; } 2.70 +.pkglist td:nth-child(2) { max-width: 7em; } 2.71 /*.filelist td:nth-child(2) { white-space: pre-wrap; }*/ 2.72 2.73 /* ellipsize content of 1st and 2nd columns */ 2.74 -.pkglist td:nth-child(1) a, 2.75 -.pkglist td:nth-child(2), 2.76 +.pkglist td:nth-child(1) a, 2.77 +.pkglist td:nth-child(2), 2.78 .filelist td:nth-child(1) a, 2.79 .filelist td:nth-child(2) { 2.80 white-space: nowrap; 2.81 @@ -104,6 +86,9 @@ 2.82 #head1h { display: none; position: fixed; } 2.83 2.84 2.85 + 2.86 + 2.87 + 2.88 /** 2.89 * Summary table 2.90 */ 2.91 @@ -111,8 +96,7 @@ 2.92 /* to have minimal width of first column */ 2.93 .summary td:nth-child(1) { width:10%; white-space: nowrap; } 2.94 2.95 -/* light blue links on summary table */ 2.96 -.summary a { color: #248; } 2.97 + 2.98 2.99 2.100 2.101 @@ -124,14 +108,17 @@ 2.102 display: inline-block; 2.103 padding: 0.5ex; 2.104 margin: 0.5ex 0; 2.105 - border: 1px solid #AAA; 2.106 + border: 1px solid hsla(0, 0%, 0%, 0.5); 2.107 width: 3ex; 2.108 text-align: center; 2.109 } 2.110 +.dark .pages { background-color: #222; } 2.111 +.light .pages { background-color: #CCC; } 2.112 .pages:hover { 2.113 - border: 1px solid #F94; 2.114 - background: #F94; 2.115 - color: black; 2.116 + //border: 1px solid #F94; 2.117 + //background: #F94; 2.118 + //color: black; 2.119 + box-shadow: 0 0 2pt 0 hsl(0, 0%, 50%); 2.120 } 2.121 .pages.current, .pages.current:hover { 2.122 font-weight: bold; 2.123 @@ -142,6 +129,8 @@ 2.124 2.125 2.126 2.127 + 2.128 + 2.129 /* 2.130 * Tags 2.131 */ 2.132 @@ -167,15 +156,7 @@ 2.133 2.134 2.135 2.136 -.button img { 2.137 - padding: 0 4px 0 0; 2.138 -} 2.139 2.140 2.141 /* Disable too much borders */ 2.142 section .hborders thead tr { border-top: none; border-bottom: 1pt solid #DDD; } 2.143 - 2.144 - 2.145 - 2.146 - 2.147 -/* •‣⁕←↑→↓↔↕↥↯↶↷↺↻⇄⇅⇈⌫⏏█▶▷▸▹►▻▪▫◯●◻◼◽◾☐☑☒♺♻⚙⚠⚡⚪⚫✉✎✏✐✓✔✕✖✗✘❖➤➜➝➛⟲⟳⧎ */
3.1 --- a/tazpkg Wed Apr 01 04:29:22 2015 +0300 3.2 +++ b/tazpkg Fri Apr 03 15:51:06 2015 +0300 3.3 @@ -1477,6 +1477,8 @@ 3.4 [ -n "$LOCDESC" ] && SHORT_DESC="$LOCDESC" 3.5 fi 3.6 done 3.7 + SIZES=$(echo $PACKED_SIZE/$UNPACKED_SIZE | sed 's|\.0||g' | sed 's|^/$||') 3.8 + 3.9 emsg "$( 3.10 { 3.11 _ 'Package : %s' "$PACKAGE" 3.12 @@ -1490,6 +1492,7 @@ 3.13 _ 'Build deps : %s' "$BUILD_DEPENDS" 3.14 _ 'Wanted src : %s' "$WANTED" 3.15 _ 'Web site : %s' "$WEB_SITE" 3.16 + _ 'Size : %s' "$SIZES" 3.17 _ 'Tags : %s' "$TAGS" 3.18 } | sed '/: $/d; s|^\([^:]*\):|<b>\1:</b>|')" 3.19 im && footer