tazpkg diff tazpanel/pkgs.cgi @ rev 778
pkgs.cgi: show packages icons on package info page using AJAX.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri Apr 10 03:37:16 2015 +0300 (2015-04-10) |
parents | c62e153dab37 |
children | 2a300f362918 |
line diff
1.1 --- a/tazpanel/pkgs.cgi Fri Apr 10 00:12:46 2015 +0300 1.2 +++ b/tazpanel/pkgs.cgi Fri Apr 10 03:37:16 2015 +0300 1.3 @@ -85,11 +85,12 @@ 1.4 pkg=$(GET pkg) 1.5 class='pkg' 1.6 1.7 - if grep -q "^$PACKAGE"$'\t' $PKGS_DB/installed.info; then 1.8 + if grep -q "^$pkg"$'\t' $PKGS_DB/installed.info; then 1.9 class='pkgi' 1.10 - grep -q "^$PACKAGE$" $PKGS_DB/blocked-packages.list && class='pkgib' 1.11 + grep -q "^$pkg$" $PKGS_DB/blocked-packages.list && class='pkgib' 1.12 fi 1.13 1.14 + echo -n "<a data-icon=\"$class\" href=\"?info=\"${pkg//+/%2B}\">$pkg</a>" 1.15 exit 0 ;; 1.16 1.17 esac 1.18 @@ -465,9 +466,11 @@ 1.19 1.20 show_info_links() { 1.21 if [ -n "$1" ]; then 1.22 + if [ "$3" == 'tag' ]; then icon='tag'; else icon='clock'; fi 1.23 echo -n "<tr><td><b>$2</b></td><td>" 1.24 - echo $1 | tr ' ' $'\n' | awk -vt="$3" '{ 1.25 - printf "<a href=\"?%s=%s\">%s</a> ", t, gensub(/\+/, "%2B", "g", $1), $1 1.26 + echo $1 | tr ' ' $'\n' | awk -vt="$3" -vi="$icon" '{ 1.27 + printf "<span><a data-icon=\"%s\" ", i; 1.28 + printf "href=\"?%s=%s\">%s</a></span> ", t, gensub(/\+/, "%2B", "g", $1), $1 1.29 }' 1.30 echo "</td></tr>" 1.31 fi 1.32 @@ -843,7 +846,7 @@ 1.33 </form> 1.34 </header> 1.35 1.36 -<table class="wide zebra summary"> 1.37 +<table class="wide zebra summary" id="infoTable"> 1.38 <tbody> 1.39 <tr><td><b>$(_ 'Name')</b></td><td>$PACKAGE</td></tr> 1.40 <tr><td><b>$(_ 'Version')</b></td><td>$VERSION</td></tr> 1.41 @@ -859,11 +862,25 @@ 1.42 </tbody> 1.43 </table> 1.44 </section> 1.45 +<span id="ajaxStatus" style="display:none"></span> 1.46 + 1.47 +<script type="text/javascript"> 1.48 + var links = document.getElementById('infoTable').getElementsByTagName('a'); 1.49 + for (var i = 0; i < links.length; i++) { 1.50 + console.log('i=%s, icon=%s.', i, links[i].dataset.icon); 1.51 + if (links[i].dataset.icon == 'clock') { 1.52 + links[i].parentNode.id = 'link' + i; 1.53 + pkg = links[i].innerText.replace(/\+/g, '%2B'); 1.54 + ajax('pkgs.cgi?status&pkg=' + pkg, '1', 'link' + i); 1.55 + } 1.56 + } 1.57 + 1.58 +</script> 1.59 EOT 1.60 1.61 # Show description 1.62 DESC="$(tazpkg desc $pkg)" 1.63 - [ -n "$DESC" ] && echo "<section><pre>$DESC</pre></section>" 1.64 + [ -n "$DESC" ] && echo "<section><pre class="pre-wrap">$DESC</pre></section>" 1.65 1.66 # Show configuration files list 1.67 CONFIGS="$(tazpkg list-config $pkg | sed 's|\(.*\)|\1 \1|')"