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|')"