tazpkg rev 762
tazpkg: re-make block and unblock, add chblock to change blocking of package; pkgs.cgi: remove website link from packages list, show selected packages count, add '(Un)block' button for bulk operation; pkgs.css: clean old code.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Wed Apr 01 04:29:22 2015 +0300 (2015-04-01) |
parents | 98c62c676216 |
children | 5a6155d9197a |
files | tazpanel/pkgs.cgi tazpanel/pkgs.css tazpkg |
line diff
1.1 --- a/tazpanel/pkgs.cgi Mon Mar 30 11:52:49 2015 +0300 1.2 +++ b/tazpanel/pkgs.cgi Wed Apr 01 04:29:22 2015 +0300 1.3 @@ -55,7 +55,7 @@ 1.4 1.5 parse_packages_desc() { 1.6 IFS="|" 1.7 - cut -f 1,2,3,5 -d "|" | while read PACKAGE VERSION SHORT_DESC WEB_SITE 1.8 + cut -f 1,2,3 -d "|" | while read PACKAGE VERSION SHORT_DESC 1.9 do 1.10 class=pkg; [ -d $INSTALLED/${PACKAGE% } ] && class=pkgi 1.11 i18n_desc $PACKAGE 1.12 @@ -64,7 +64,6 @@ 1.13 <td><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 1.14 <td>$VERSION</td> 1.15 <td>$SHORT_DESC</td> 1.16 - <td><a data-img="web" href="$WEB_SITE"></a></td> 1.17 </tr> 1.18 EOT 1.19 done 1.20 @@ -82,7 +81,6 @@ 1.21 <td><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 1.22 <td>$VERSION</td> 1.23 <td>$SHORT_DESC</td> 1.24 - <td><a data-img="web" href="$WEB_SITE"></a></td> 1.25 </tr> 1.26 EOT 1.27 done 1.28 @@ -107,6 +105,7 @@ 1.29 *Link*) class='link'; label="$(_ 'Link')" ;; 1.30 *Block*) class='lock'; label="$(_ 'Block')" ;; 1.31 *Unblock*) class='unlock'; label="$(_ 'Unblock')" ;; 1.32 + *Chblock*) class='chlock'; label="$(_ '(Un)block')" ;; 1.33 *Repack*) class='repack'; label="$(_ 'Repack')" ;; 1.34 *saveconf*) class='save'; label="$(_ 'Save configuration')" ;; 1.35 *listconf*) class='list'; label="$(_ 'List configuration files')" ;; 1.36 @@ -117,11 +116,12 @@ 1.37 *removelink*) class='unlink'; label="$(_ 'Remove link')" ;; 1.38 *add-mirror) class='add'; label="$(_n 'Add mirror')" ;; 1.39 *add-repo) class='add'; label="$(_n 'Add repository')" ;; 1.40 + toggle) class='toggle'; label="$(_n 'Toggle all')" ;; 1.41 esac 1.42 - if [ -n "$class" ]; then 1.43 + if [ "$button" == 'toggle' ]; then 1.44 + echo -n "<span class=\"float-right\"><button data-icon=\"$class\" onclick=\"checkBoxes()\">$label</button></span>" 1.45 + else 1.46 echo -n "<button data-icon=\"$class\" name=\"${button%%=*}\" value=\"${button#*=}\">$label</button>" 1.47 - else 1.48 - echo -n "<button name=\"${button%%=*}\" value=\"${button#*=}\"><img src=\"$IMAGES/$img.png\"/>$label</button>" 1.49 fi 1.50 done 1.51 } 1.52 @@ -156,7 +156,6 @@ 1.53 <td>$(_ 'Name')</td> 1.54 <td>$(_ 'Version')</td> 1.55 <td>$(_ 'Description')</td> 1.56 - <td>$(_ 'Web')</td> 1.57 </tr> 1.58 </thead> 1.59 <tbody> 1.60 @@ -383,6 +382,7 @@ 1.61 theForm.appendChild(hInput); 1.62 } 1.63 } 1.64 +document.getElementById('countSelected').innerText = pkgs.length; 1.65 </script> 1.66 EOT 1.67 fi 1.68 @@ -516,13 +516,16 @@ 1.69 <h2>$(_ 'Packages list')</h2> 1.70 <p>$title</p> 1.71 1.72 -<div>$(_ 'Selection:'; 1.73 - { 1.74 - [ "$my" != 'my' ] && show_button do=Install 1.75 - show_button do=Remove 1.76 - } | sed 's|button |button form="pkglist" |g') 1.77 - <button data-icon="toggle" onclick="checkBoxes(window)">$(_ 'Toggle all')</button> 1.78 -</div> 1.79 +<section> 1.80 + <div>$(_ 'Selected packages:') <span id="countSelected"></span></div> 1.81 + <footer> 1.82 + $({ 1.83 + [ "$my" != 'my' ] && show_button do=Install 1.84 + show_button do=Chblock do=Remove 1.85 + } | sed 's|button |button form="pkglist" |g') 1.86 + $(show_button toggle) 1.87 + </footer> 1.88 +</section> 1.89 1.90 <form id="pkglist" class="wide"> 1.91 EOT 1.92 @@ -531,7 +534,7 @@ 1.93 done 1.94 cat << EOT 1.95 </form> 1.96 -<script type="text/javascript">window.onscroll = scrollHandler;</script> 1.97 +<script type="text/javascript">window.onscroll = scrollHandler; setCountSelPkgs();</script> 1.98 EOT 1.99 ;; 1.100 1.101 @@ -551,10 +554,13 @@ 1.102 cat << EOT 1.103 <h2>$(_ 'Search packages')</h2> 1.104 1.105 -<div>$(_ 'Selection:'; 1.106 - show_button do=Install do=Remove | sed 's|button |button form="pkglist" |g') 1.107 - <button data-icon="toggle" onclick="checkBoxes(window)">$(_ 'Toggle all')</button> 1.108 -</div> 1.109 +<section> 1.110 + <div>$(_ 'Selected packages:') <span id="countSelected"></span></div> 1.111 + <footer> 1.112 + $(show_button do=Install do=Chblock do=Remove | sed 's|button |button form="pkglist" |g') 1.113 + $(show_button toggle) 1.114 + </footer> 1.115 +</section> 1.116 1.117 <form id="pkglist" class="wide"> 1.118 EOT 1.119 @@ -589,6 +595,7 @@ 1.120 </tbody> 1.121 </table> 1.122 </form> 1.123 +<script type="text/javascript">window.onscroll = scrollHandler; setCountSelPkgs();</script> 1.124 EOT 1.125 ;; 1.126 1.127 @@ -631,11 +638,13 @@ 1.128 cat << EOT 1.129 <h2>$(_ 'Up packages')</h2> 1.130 1.131 -<div>$(_ 'Selection:'; 1.132 - show_button do=Install do=Remove | sed 's|button |button form="pkglist" |g') 1.133 - <button data-icon="toggle" onclick="checkBoxes(window)">$(_ 'Toggle all')</button> 1.134 - <div class="float-right">$(show_button recharge)</div> 1.135 -</div> 1.136 +<section> 1.137 + <div>$(_ 'Selected packages:') <span id="countSelected"></span></div> 1.138 + <footer> 1.139 + $(show_button do=Install do=Chblock do=Remove | sed 's|button |button form="pkglist" |g') 1.140 + $(show_button toggle) 1.141 + </footer> 1.142 +</section> 1.143 1.144 <form id="pkglist" class="wide"> 1.145 EOT 1.146 @@ -647,7 +656,12 @@ 1.147 grep -hs "^$pkg " $PKGS_DB/packages.info $PKGS_DB/undigest/*/packages.info | parse_packages_info 1.148 done 1.149 1.150 - echo "</tbody></table></form>" 1.151 + cat << EOT 1.152 + </tbody> 1.153 + </table> 1.154 +</form> 1.155 +<script type="text/javascript">window.onscroll = scrollHandler; setCountSelPkgs();</script> 1.156 +EOT 1.157 ;; 1.158 1.159 1.160 @@ -668,12 +682,13 @@ 1.161 # Describe the command 1.162 bpkgs="<b>$pkgs</b>"; opt='' 1.163 case $cmd in 1.164 - install) MSG="$(_ 'Installing: %s' "$bpkgs")"; opt=--forced; cmd=get-install ;; 1.165 - remove) MSG="$(_ 'Removing: %s' "$bpkgs")" ;; 1.166 - link) MSG="$(_ 'Linking: %s' "$bpkgs")"; opt=$(readlink $PKGS_DB/fslink) ;; 1.167 - block) MSG="$(_ 'Blocking: %s' "$bpkgs")" ;; 1.168 - unblock) MSG="$(_ 'Unblocking: %s' "$bpkgs")" ;; 1.169 - repack) MSG="$(_ 'Repacking: %s' "$bpkgs")" ;; 1.170 + install) MSG="$(_ 'Installing: %s' "$bpkgs")"; opt=--forced; cmd=get-install ;; 1.171 + remove) MSG="$(_ 'Removing: %s' "$bpkgs")" ;; 1.172 + link) MSG="$(_ 'Linking: %s' "$bpkgs")"; opt=$(readlink $PKGS_DB/fslink) ;; 1.173 + block) MSG="$(_ 'Blocking: %s' "$bpkgs")" ;; 1.174 + unblock) MSG="$(_ 'Unblocking: %s' "$bpkgs")" ;; 1.175 + chblock) MSG="$(_ '(Un)blocking: %s' "$bpkgs")" ;; 1.176 + repack) MSG="$(_ 'Repacking: %s' "$bpkgs")" ;; 1.177 esac 1.178 1.179 cat << EOT 1.180 @@ -1159,18 +1174,23 @@ 1.181 cat << EOT 1.182 <h2 data-icon="tag">$(_ 'Tag "%s"' $tag)</h2> 1.183 1.184 -<div>$(_ 'Selection:'; 1.185 - show_button do=Install do=Remove | sed 's|button |button form="pkglist" |g') 1.186 - <button data-icon="toggle" onclick="checkBoxes(window)">$(_ 'Toggle all')</button> 1.187 - <div class="float-right">$(show_button tags)</div> 1.188 -</div> 1.189 +<section> 1.190 + <div>$(_ 'Selected packages:') <span id="countSelected"></span></div> 1.191 + <footer> 1.192 + $(show_button do=Install do=Chblock do=Remove | sed 's|button |button form="pkglist" |g') 1.193 + $(show_button toggle) 1.194 + </footer> 1.195 +</section> 1.196 1.197 <form id="pkglist" class="wide"> 1.198 EOT 1.199 for i in $(repo_list ""); do 1.200 show_list all 1.201 done 1.202 - echo '</form>' 1.203 + cat << EOT 1.204 +</form> 1.205 +<script type="text/javascript">window.onscroll = scrollHandler; setCountSelPkgs();</script> 1.206 +EOT 1.207 ;; 1.208 1.209 1.210 @@ -1183,10 +1203,15 @@ 1.211 cat << EOT 1.212 <h2>$(_ 'Blocked packages list')</h2> 1.213 1.214 -<form> 1.215 -<div id="actions"> 1.216 - $(_ 'Selection:'; show_button do=Unblock) 1.217 -</div> 1.218 +<section> 1.219 + <div>$(_ 'Selected packages:') <span id="countSelected"></span></div> 1.220 + <footer> 1.221 + $(show_button do=Unblock | sed 's|button |button form="pkglist" |g') 1.222 + $(show_button toggle) 1.223 + </footer> 1.224 +</section> 1.225 + 1.226 +<form id="pkglist" class="wide"> 1.227 EOT 1.228 table_head 1.229 for i in $(cat $PKGS_DB/blocked-packages.list); do 1.230 @@ -1195,7 +1220,12 @@ 1.231 printf "<tr><td><input type=\"checkbox\" name=\"pkg\" value=\"%s\"><a data-icon=\"pkgib\" href=\"?info=%s\">%s</a></td><td>%s</td><td>%s</td><td><a href=\"%s\"></a></td></tr>\n", $1, gensub(/\+/, "%2B", "g", $1), $1, $2, $4, $5 1.232 }' $PKGS_DB/installed.info 1.233 done 1.234 - echo '</tbody></table></form>' 1.235 + cat << EOT 1.236 + </tbody> 1.237 + </table> 1.238 +</form> 1.239 +<script type="text/javascript">window.onscroll = scrollHandler; setCountSelPkgs();</script> 1.240 +EOT 1.241 ;; 1.242 1.243
2.1 --- a/tazpanel/pkgs.css Mon Mar 30 11:52:49 2015 +0300 2.2 +++ b/tazpanel/pkgs.css Wed Apr 01 04:29:22 2015 +0300 2.3 @@ -1,4 +1,7 @@ 2.4 -/*body { -webkit-appearance: window; }*/ 2.5 +/** 2.6 + * CSS style for TazPkg/TazPanel - (C) 2011-2015 SliTaz GNU/Linux 2.7 + */ 2.8 + 2.9 2.10 /** 2.11 * Sidebar menus 2.12 @@ -22,7 +25,16 @@ 2.13 text-align: center; 2.14 } 2.15 2.16 + 2.17 + 2.18 + 2.19 + 2.20 +/** 2.21 + * Sidebar category selector 2.22 + */ 2.23 + 2.24 /* hack to remove unwanted scrollbar from multiline selector */ 2.25 + 2.26 .select_wrap { 2.27 display: inline-block; 2.28 vertical-align: top; 2.29 @@ -45,65 +57,19 @@ 2.30 #sidebar a { 2.31 display: inline-block; 2.32 padding: 0 0 0 0.5em; margin: 0; 2.33 - color: #000; 2.34 + color: CaptionText; 2.35 font-size: small; 2.36 width: 100%; 2.37 } 2.38 2.39 2.40 + 2.41 + 2.42 + 2.43 /** 2.44 * List of packages 2.45 */ 2.46 2.47 -/* links classes: 2.48 - * pkg - package (not installed); 2.49 - * pkgi - package (installed); 2.50 - * pkgib - package (installed and blocked); 2.51 - * w - web site 2.52 - * 2.53 - * you can style links using icons and/or color 2.54 - */ 2.55 - 2.56 -a.pkg { background: url(images/tp-new.png) no-repeat left; } 2.57 -a.pkgi { background: url(images/tp-pkgi.png) no-repeat left; } 2.58 -a.pkgib { background: url(images/tp-pkgib.png) no-repeat left; color: red; } 2.59 -a.w::before, .pkglist td:nth-child(4) a::before { 2.60 - font-family: TazPanel; content: 'web'; 2.61 - 2.62 - vertical-align: baseline; 2.63 - padding: 0 0.2rem 0 0; 2.64 - font-size: 1rem; 2.65 - 2.66 - font-style: normal; 2.67 - font-weight: normal; 2.68 - font-variant: normal; 2.69 - text-transform: none; 2.70 - line-height: 1; 2.71 - display: inline-block; 2.72 - text-decoration: none; 2.73 - width: 1rem; text-align: center; 2.74 - 2.75 - -webkit-text-rendering: optimizeLegibility; 2.76 - -moz-text-rendering: optimizeLegibility; 2.77 - -ms-text-rendering: optimizeLegibility; 2.78 - -o-text-rendering: optimizeLegibility; 2.79 - text-rendering: optimizeLegibility; 2.80 - 2.81 - -webkit-font-smoothing: antialiased; 2.82 - -moz-font-smoothing: antialiased; 2.83 - -ms-font-smoothing: antialiased; 2.84 - -o-font-smoothing: antialiased; 2.85 - font-smoothing: antialiased; 2.86 -} 2.87 - 2.88 -a.pkg, a.pkgi, a.pkgib, a.w, .pkglist td:nth-child(4) a { 2.89 - margin: 0; padding: 0 0 0 17px; 2.90 - min-height: 16px; min-width: 16px; 2.91 - display: inline-block; 2.92 -} 2.93 - 2.94 - 2.95 - 2.96 /* not break the line */ 2.97 .pkglist td:nth-child(1), 2.98 .filelist td:nth-child(1) { white-space: nowrap; } 2.99 @@ -167,7 +133,7 @@ 2.100 background: #F94; 2.101 color: black; 2.102 } 2.103 -.pages.current, a.pages.current:hover { 2.104 +.pages.current, .pages.current:hover { 2.105 font-weight: bold; 2.106 border: 1px solid #07F; 2.107 background: #07F;
3.1 --- a/tazpkg Mon Mar 30 11:52:49 2015 +0300 3.2 +++ b/tazpkg Wed Apr 01 04:29:22 2015 +0300 3.3 @@ -2532,15 +2532,16 @@ 3.4 check_root $@ 3.5 check_for_package_on_cmdline 3.6 newline 3.7 + if [ ! -d $INSTALLED/$PACKAGE ]; then 3.8 + _ 'Package "%s" is not installed.' $PACKAGE; exit 3.9 + fi 3.10 if grep -qs "^$PACKAGE" $BLOCKED; then 3.11 - _ 'Package "%s" is already in the blocked packages list.' $PACKAGE 3.12 + _ 'Package "%s" is already blocked.' $PACKAGE 3.13 else 3.14 - action 'Add package "%s" to: %s...' $PACKAGE $BLOCKED 3.15 echo $PACKAGE >> $BLOCKED 3.16 - status 3.17 # Log this activity 3.18 - . $INSTALLED/$PACKAGE/receipt 3.19 - log_pkg Blocked 3.20 + . $INSTALLED/$PACKAGE/receipt; log_pkg Blocked 3.21 + _ 'Package "%s" blocked.' $PACKAGE 3.22 fi 3.23 newline ;; 3.24 3.25 @@ -2550,16 +2551,38 @@ 3.26 check_root $@ 3.27 check_for_package_on_cmdline 3.28 newline 3.29 + if [ ! -d $INSTALLED/$PACKAGE ]; then 3.30 + _ 'Package "%s" is not installed.' $PACKAGE; exit 3.31 + fi 3.32 if grep -qs "^$PACKAGE" $BLOCKED; then 3.33 - action 'Removing package "%s" from: %s...' $PACKAGE $BLOCKED 3.34 - sed -i s/$PACKAGE/''/ $BLOCKED 3.35 - sed -i '/^$/d' $BLOCKED 3.36 - status 3.37 + sed -i "/^$PACKAGE\$/d" $BLOCKED 3.38 # Log this activity 3.39 - . $INSTALLED/$PACKAGE/receipt 3.40 - log_pkg Unblocked 3.41 + . $INSTALLED/$PACKAGE/receipt; log_pkg Unblocked 3.42 + _ 'Package "%s" unblocked.' $PACKAGE 3.43 else 3.44 - _ 'Package "%s" is not in the blocked packages list.' $PACKAGE 3.45 + _ 'Package "%s" is not blocked.' $PACKAGE 3.46 + fi 3.47 + newline ;; 3.48 + 3.49 + 3.50 + chblock) 3.51 + # Change package's blocked status. 3.52 + check_root $@ 3.53 + check_for_package_on_cmdline 3.54 + newline 3.55 + if [ ! -d $INSTALLED/$PACKAGE ]; then 3.56 + _ 'Package "%s" is not installed.' $PACKAGE; exit 3.57 + fi 3.58 + if grep -qs "^$PACKAGE" $BLOCKED; then 3.59 + sed -i "/^$PACKAGE\$/d" $BLOCKED 3.60 + # Log this activity 3.61 + . $INSTALLED/$PACKAGE/receipt; log_pkg Unblocked 3.62 + _ 'Package "%s" unblocked.' $PACKAGE 3.63 + else 3.64 + echo $PACKAGE >> $BLOCKED 3.65 + # Log this activity 3.66 + . $INSTALLED/$PACKAGE/receipt; log_pkg Blocked 3.67 + _ 'Package "%s" blocked.' $PACKAGE 3.68 fi 3.69 newline ;; 3.70