All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergey Senozhatsky <sergey.senozhatsky at gmail.com>
To: powertop@lists.01.org
Subject: Re: [Powertop] [PATCH] embed self-contained javascript
Date: Tue, 17 Sep 2013 22:41:29 +0300	[thread overview]
Message-ID: <20130917194129.GD2289@swordfish> (raw)
In-Reply-To: 5238AD14.5060200@fifthhorseman.net

[-- Attachment #1: Type: text/plain, Size: 19456 bytes --]

On (09/17/13 15:27), Daniel Kahn Gillmor wrote:
> On 09/17/2013 03:02 PM, Sergey Senozhatsky wrote:
> > there is a number of trailing whitespaces, could you please fix that?
> 
> sure, see the attached patch.
> 
> > can we also use one coding style in js code?
> > 
> > 	if (a)
> > 		a-foo;
> > 
> > 	if (b) {
> > 		b-foo;
> > 		b-bar;
> > 	}
> 
> It's not clear to me if you're suggesting only that the then clause
> needs to be on a separate line (instead of one-liners), or if you're
> suggesting that single-line if statements should also have curly brackets.

sorry, the first one: then clause needs to be on a separate line.

> The attached patch assumes that the former was your intent; if you want
> curly-brackets on single-line if statements, let me know and i'll send
> you v3 with that adjustment.

looks good. applied to -next, thanks.

	-ss

> thanks for your consideration.
> 
> Regards,
> 
> 	--dkg

> commit b332a57a43d79b030a4de1dbd2f235c808d71c31
> Author: Daniel Kahn Gillmor <dkg(a)fifthhorseman.net>
> Date:   Sat Sep 7 15:42:57 2013 -0400
> 
>     embed self-contained javascript
>     
>     using self-contained javascript offers several improvements:
>     
>      * powertop html report can be viewed offline
>      * less overall javascript code is loaded when online
>      * no opportunity for report leakage or modification by third parties
>     
>     These changes also make it simpler to update the html report when a
>     new section is added: just add a new entry to powertop.blocks
>     dictionary, with the section's human-readable string as its value.
> 
> diff --git a/src/powertop.css b/src/powertop.css
> index c73d3e2..6d43e07 100644
> --- a/src/powertop.css
> +++ b/src/powertop.css
> @@ -3,276 +3,73 @@
>  <head>
>  <title>PowerTOP report</title>
>  <meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">
> -<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\"></script>
> -<script type=\"text/javascript\">
> -$(document).ready(function(){
> -
> -	$('#system h2').addClass('hide');
> -	$('#system table').addClass('hide');
> -	$('#cpuidle h2').addClass('hide');
> -	$('#cpuidle table').addClass('hide');
> -	$('#cpufreq h2').addClass('hide');
> -	$('#cpufreq table').addClass('hide');
> -	$('#software h2').addClass('hide');
> -	$('#software table').addClass('hide');
> -	$('#device h2').addClass('hide');
> -	$('#device table').addClass('hide');
> -	$('#device p').addClass('hide');
> -	$('#tuning h2').addClass('hide');
> -	$('#tuning table').addClass('hide');
> -
> -	$('#top').append('<div class=\"SystemButton\"   onclick=\"toggleSystem()\">System Info</div>');
> -	$('#top').append('<div class=\"SummaryButton\"  onclick=\"toggleSummary()\">Summary</div>');
> -	$('#top').append('<div class=\"CpuidleButton\"  onclick=\"toggleCpuidle()\">CPU Idle</div>');
> -	$('#top').append('<div class=\"CpufreqButton\"  onclick=\"toggleCpufreq()\">CPU Frequency</div>');
> -	$('#top').append('<div class=\"SoftwareButton\" onclick=\"toggleSoftware()\">Software info</div>');
> -	$('#top').append('<div class=\"DeviceButton\"   onclick=\"toggleDevice()\">Device Info</div>');
> -	$('#top').append('<div class=\"TuningButton\"   onclick=\"toggleTuning()\">Tuning</div>');
> -	$('#top').append('<div class=\"AllButton\"      onclick=\"toggleAll()\">All</div>');
> -	$('#top .SummaryButton').toggleClass('pressed');
> -
> -    }
> -	);
> -function toggleDummy() {
> -		$('#system table').toggleClass('hide', true);
> -		$('#system h2').toggleClass('hide', true);
> -		$('#summary table').toggleClass('hide', true);
> -		$('#summary h2').toggleClass('hide', true);
> -		$('#summary p').toggleClass('hide', true);
> -		$('#cpuidle table').toggleClass('hide', true);
> -		$('#cpuidle h2').toggleClass('hide', true);
> -		$('#cpufreq table').toggleClass('hide', true);
> -		$('#cpufreq h2').toggleClass('hide', true);
> -		$('#software table').toggleClass('hide', true);
> -		$('#software h2').toggleClass('hide', true);
> -		$('#device table').toggleClass('hide', true);
> -		$('#device h2').toggleClass('hide', true);
> -		$('#device p').toggleClass('hide', true);
> -		$('#tuning table').toggleClass('hide', true);
> -		$('#tuning h2').toggleClass('hide', true);
> -		$('#top .SystemButton').toggleClass('pressed', false);
> -		$('#top .SummaryButton').toggleClass('pressed', false);
> -		$('#top .CpuidleButton').toggleClass('pressed', false);
> -		$('#top .CpufreqButton').toggleClass('pressed', false);
> -		$('#top .SoftwareButton').toggleClass('pressed', false);
> -		$('#top .DeviceButton').toggleClass('pressed', false);
> -		$('#top .TuningButton').toggleClass('pressed', false);
> -		$('#top .AllButton').toggleClass('pressed', false);
> -}
> -function toggleSystem() {
> -		$('#system table').toggleClass('hide', false);
> -		$('#system h2').toggleClass('hide', false);
> -		$('#summary table').toggleClass('hide', true);
> -		$('#summary h2').toggleClass('hide', true);
> -		$('#summary p').toggleClass('hide', true);
> -		$('#cpuidle table').toggleClass('hide', true);
> -		$('#cpuidle h2').toggleClass('hide', true);
> -		$('#cpufreq table').toggleClass('hide', true);
> -		$('#cpufreq h2').toggleClass('hide', true);
> -		$('#software table').toggleClass('hide', true);
> -		$('#software h2').toggleClass('hide', true);
> -		$('#device table').toggleClass('hide', true);
> -		$('#device h2').toggleClass('hide', true);
> -		$('#device p').toggleClass('hide', true);
> -		$('#tuning table').toggleClass('hide', true);
> -		$('#tuning h2').toggleClass('hide', true);
> -		$('#top .SystemButton').toggleClass('pressed', true);
> -		$('#top .SummaryButton').toggleClass('pressed', false);
> -		$('#top .CpuidleButton').toggleClass('pressed', false);
> -		$('#top .CpufreqButton').toggleClass('pressed', false);
> -		$('#top .SoftwareButton').toggleClass('pressed', false);
> -		$('#top .DeviceButton').toggleClass('pressed', false);
> -		$('#top .TuningButton').toggleClass('pressed', false);
> -		$('#top .AllButton').toggleClass('pressed', false);
> -}
> -function toggleSummary() {
> -		$('#system table').toggleClass('hide', true);
> -		$('#system h2').toggleClass('hide', true);
> -		$('#summary table').toggleClass('hide', false);
> -		$('#summary h2').toggleClass('hide', false);
> -		$('#summary p').toggleClass('hide', false);
> -		$('#cpuidle table').toggleClass('hide', true);
> -		$('#cpuidle h2').toggleClass('hide', true);
> -		$('#cpufreq table').toggleClass('hide', true);
> -		$('#cpufreq h2').toggleClass('hide', true);
> -		$('#software table').toggleClass('hide', true);
> -		$('#software h2').toggleClass('hide', true);
> -		$('#device table').toggleClass('hide', true);
> -		$('#device h2').toggleClass('hide', true);
> -		$('#device p').toggleClass('hide', true);
> -		$('#tuning table').toggleClass('hide', true);
> -		$('#tuning h2').toggleClass('hide', true);
> -		$('#top .SystemButton').toggleClass('pressed', false);
> -		$('#top .SummaryButton').toggleClass('pressed', true);
> -		$('#top .CpuidleButton').toggleClass('pressed', false);
> -		$('#top .CpufreqButton').toggleClass('pressed', false);
> -		$('#top .SoftwareButton').toggleClass('pressed', false);
> -		$('#top .DeviceButton').toggleClass('pressed', false);
> -		$('#top .TuningButton').toggleClass('pressed', false);
> -		$('#top .AllButton').toggleClass('pressed', false);
> -}
> -function toggleCpuidle() {
> -		$('#system table').toggleClass('hide', true);
> -		$('#system h2').toggleClass('hide', true);
> -		$('#summary table').toggleClass('hide', true);
> -		$('#summary h2').toggleClass('hide', true);
> -		$('#summary p').toggleClass('hide', true);
> -		$('#cpuidle table').toggleClass('hide', false);
> -		$('#cpuidle h2').toggleClass('hide', false);
> -		$('#cpufreq table').toggleClass('hide', true);
> -		$('#cpufreq h2').toggleClass('hide', true);
> -		$('#software table').toggleClass('hide', true);
> -		$('#software h2').toggleClass('hide', true);
> -		$('#device table').toggleClass('hide', true);
> -		$('#device h2').toggleClass('hide', true);
> -		$('#device p').toggleClass('hide', true);
> -		$('#tuning table').toggleClass('hide', true);
> -		$('#tuning h2').toggleClass('hide', true);
> -		$('#top .SystemButton').toggleClass('pressed', false);
> -		$('#top .SummaryButton').toggleClass('pressed', false);
> -		$('#top .CpuidleButton').toggleClass('pressed', true);
> -		$('#top .CpufreqButton').toggleClass('pressed', false);
> -		$('#top .SoftwareButton').toggleClass('pressed', false);
> -		$('#top .DeviceButton').toggleClass('pressed', false);
> -		$('#top .TuningButton').toggleClass('pressed', false);
> -		$('#top .AllButton').toggleClass('pressed', false);
> -
> -}
> -function toggleCpufreq() {
> -		$('#system table').toggleClass('hide', true);
> -		$('#system h2').toggleClass('hide', true);
> -		$('#summary table').toggleClass('hide', true);
> -		$('#summary h2').toggleClass('hide', true);
> -		$('#summary p').toggleClass('hide', true);
> -		$('#cpuidle table').toggleClass('hide', true);
> -		$('#cpuidle h2').toggleClass('hide', true);
> -		$('#cpufreq table').toggleClass('hide', false);
> -		$('#cpufreq h2').toggleClass('hide', false);
> -		$('#software table').toggleClass('hide', true);
> -		$('#software h2').toggleClass('hide', true);
> -		$('#device table').toggleClass('hide', true);
> -		$('#device h2').toggleClass('hide', true);
> -		$('#device p').toggleClass('hide', true);
> -		$('#tuning table').toggleClass('hide', true);
> -		$('#tuning h2').toggleClass('hide', true);
> -		$('#top .SystemButton').toggleClass('pressed', false);
> -		$('#top .SummaryButton').toggleClass('pressed', false);
> -		$('#top .CpuidleButton').toggleClass('pressed', false);
> -		$('#top .CpufreqButton').toggleClass('pressed', true);
> -		$('#top .SoftwareButton').toggleClass('pressed', false);
> -		$('#top .DeviceButton').toggleClass('pressed', false);
> -		$('#top .TuningButton').toggleClass('pressed', false);
> -		$('#top .AllButton').toggleClass('pressed', false);
> -}
> -
> -function toggleSoftware() {
> -		$('#system table').toggleClass('hide', true);
> -		$('#system h2').toggleClass('hide', true);
> -		$('#summary table').toggleClass('hide', true);
> -		$('#summary h2').toggleClass('hide', true);
> -		$('#summary p').toggleClass('hide', true);
> -		$('#cpuidle table').toggleClass('hide', true);
> -		$('#cpuidle h2').toggleClass('hide', true);
> -		$('#cpufreq table').toggleClass('hide', true);
> -		$('#cpufreq h2').toggleClass('hide', true);
> -		$('#software table').toggleClass('hide', false);
> -		$('#software h2').toggleClass('hide', false);
> -		$('#device table').toggleClass('hide', true);
> -		$('#device h2').toggleClass('hide', true);
> -		$('#device p').toggleClass('hide', true);
> -		$('#tuning table').toggleClass('hide', true);
> -		$('#tuning h2').toggleClass('hide', true);
> -		$('#top .SystemButton').toggleClass('pressed', false);
> -		$('#top .SummaryButton').toggleClass('pressed', false);
> -		$('#top .CpuidleButton').toggleClass('pressed', false);
> -		$('#top .CpufreqButton').toggleClass('pressed', false);
> -		$('#top .SoftwareButton').toggleClass('pressed', true);
> -		$('#top .DeviceButton').toggleClass('pressed', false);
> -		$('#top .TuningButton').toggleClass('pressed', false);
> -		$('#top .AllButton').toggleClass('pressed', false);
> -}
> -
> -function toggleDevice() {
> -		$('#system table').toggleClass('hide', true);
> -		$('#system h2').toggleClass('hide', true);
> -		$('#summary table').toggleClass('hide', true);
> -		$('#summary h2').toggleClass('hide', true);
> -		$('#summary p').toggleClass('hide', true);
> -		$('#cpuidle table').toggleClass('hide', true);
> -		$('#cpuidle h2').toggleClass('hide', true);
> -		$('#cpufreq table').toggleClass('hide', true);
> -		$('#cpufreq h2').toggleClass('hide', true);
> -		$('#software table').toggleClass('hide', true);
> -		$('#software h2').toggleClass('hide', true);
> -		$('#device table').toggleClass('hide', false);
> -		$('#device h2').toggleClass('hide', false);
> -		$('#device p').toggleClass('hide', false);
> -		$('#tuning table').toggleClass('hide', true);
> -		$('#tuning h2').toggleClass('hide', true);
> -		$('#top .SystemButton').toggleClass('pressed', false);
> -		$('#top .SummaryButton').toggleClass('pressed', false);
> -		$('#top .CpuidleButton').toggleClass('pressed', false);
> -		$('#top .CpufreqButton').toggleClass('pressed', false);
> -		$('#top .SoftwareButton').toggleClass('pressed', false);
> -		$('#top .DeviceButton').toggleClass('pressed', true);
> -		$('#top .TuningButton').toggleClass('pressed', false);
> -		$('#top .AllButton').toggleClass('pressed', false);
> +<script type='text/javascript'>
> +
> +var powertop = {
> + blocks: {
> +  system: 'System Info',
> +  summary: 'Summary',
> +  cpuidle: 'CPU Idle',
> +  cpufreq: 'CPU Frequency',
> +  software: 'Software Info',
> +  device: 'Device Info',
> +  tuning: 'Tuning'
> + },
> + cadd: function(idx, c){
> +   var el = document.getElementById(idx);
> +   if (el)
> +     el.classList.add(c);
> +
> + },
> + crm: function(id, c){
> +   var el = document.getElementById(id);
> +   if (el)
> +     el.classList.remove(c);
> + },
> + newbutton: function(id, txt) {
> +  var x = document.createElement('div');
> +  x.id = id + '_button';
> +  x.className = 'nav_button';
> +  x.textContent = txt;
> +  x.onclick = function() { powertop.toggle(id); };
> +  return x;
> + },
> + setupbuttons: function() {
> +   var t = document.getElementById('top');
> +   if (t) {
> +     for (var b in powertop.blocks) {
> +       t.appendChild(powertop.newbutton(b, powertop.blocks[b]));
> +     }
> +    t.appendChild(powertop.newbutton('all', 'All'));
> +   }
> + },
> + toggle: function(b) {
> +   powertop.baseall();
> +   if (b == 'all') {
> +      for (var c in powertop.blocks) {
> +        powertop.crm(c, 'hide');
> +      }
> +   } else {
> +      powertop.crm(b, 'hide');
> +   }
> +   powertop.cadd(b + '_button', 'pressed');
> + },
> + baseall: function() {
> +   for (var b in powertop.blocks) {
> +     powertop.cadd(b, 'hide');
> +     powertop.crm(b + '_button', 'pressed');
> +   }
> +   powertop.cadd('all', 'hide');
> +   powertop.crm('all_button', 'pressed');
> + },
> + onload: function() {
> +   powertop.setupbuttons();
> +   powertop.toggle('summary');
> + }
>  }
>  
> -function toggleTuning() {
> -		$('#system table').toggleClass('hide', true);
> -		$('#system h2').toggleClass('hide', true);
> -		$('#summary table').toggleClass('hide', true);
> -		$('#summary h2').toggleClass('hide', true);
> -		$('#summary p').toggleClass('hide', true);
> -		$('#cpuidle table').toggleClass('hide', true);
> -		$('#cpuidle h2').toggleClass('hide', true);
> -		$('#cpufreq table').toggleClass('hide', true);
> -		$('#cpufreq h2').toggleClass('hide', true);
> -		$('#software table').toggleClass('hide', true);
> -		$('#software h2').toggleClass('hide', true);
> -		$('#device table').toggleClass('hide', true);
> -		$('#device h2').toggleClass('hide', true);
> -		$('#device p').toggleClass('hide', true);
> -		$('#tuning table').toggleClass('hide', false);
> -		$('#tuning h2').toggleClass('hide', false);
> -		$('#top .SystemButton').toggleClass('pressed', false);
> -		$('#top .SummaryButton').toggleClass('pressed', false);
> -		$('#top .CpuidleButton').toggleClass('pressed', false);
> -		$('#top .CpufreqButton').toggleClass('pressed', false);
> -		$('#top .SoftwareButton').toggleClass('pressed', false);
> -		$('#top .DeviceButton').toggleClass('pressed', false);
> -		$('#top .TuningButton').toggleClass('pressed', true);
> -		$('#top .AllButton').toggleClass('pressed', false);
> -}
> -function toggleAll() {
> -		$('#system table').toggleClass('hide', false);
> -		$('#system h2').toggleClass('hide', false);
> -		$('#summary table').toggleClass('hide', false);
> -		$('#summary h2').toggleClass('hide', false);
> -		$('#summary p').toggleClass('hide', false);
> -		$('#cpuidle table').toggleClass('hide', false);
> -		$('#cpuidle h2').toggleClass('hide', false);
> -		$('#cpufreq table').toggleClass('hide', false);
> -		$('#cpufreq h2').toggleClass('hide', false);
> -		$('#software table').toggleClass('hide', false);
> -		$('#software h2').toggleClass('hide', false);
> -		$('#device table').toggleClass('hide', false);
> -		$('#device h2').toggleClass('hide', false);
> -		$('#device p').toggleClass('hide', false);
> -		$('#tuning table').toggleClass('hide', false);
> -		$('#tuning h2').toggleClass('hide', false);
> -		$('#top .SystemButton').toggleClass('pressed', false);
> -		$('#top .SummaryButton').toggleClass('pressed', false);
> -		$('#top .CpuidleButton').toggleClass('pressed', false);
> -		$('#top .CpufreqButton').toggleClass('pressed', false);
> -		$('#top .SoftwareButton').toggleClass('pressed', false);
> -		$('#top .DeviceButton').toggleClass('pressed', false);
> -		$('#top .TuningButton').toggleClass('pressed', false);
> -		$('#top .AllButton').toggleClass('pressed', true);
> -}
>  </script>
> -<style type=\"text/css\">
> +<style type='text/css'>
>  table
>  {
>  	background-color: #F8F8F8;
> @@ -454,11 +251,7 @@ body {
>  	padding: 0;             /* Amount of negative space around the
>                                     inside of the body */
>  }
> -#top h1 {
> -	margin: 0;
> -	padding: 0;
> -}
> -#top h1 a {
> +#top {
>  	background-color: #ccc;
>  	border-bottom: 1px solid #666;
>  	color: #222;
> @@ -483,72 +276,26 @@ body {
>  	line-height: 28px;
>  	border-width:0px 8px 0px 8px;
>  }
> -#top div.SystemButton {
> -	position: absolute;
> -	top: 7px;
> -	left: 6px;
> -}
> -#top div.SummaryButton {
> -	position: absolute;
> -	top: 7px;
> -	left: 160px;
> -}
> -#top div.CpuidleButton {
> -	position: absolute;
> -	top: 7px;
> -	left: 320px;
> -}
> -#top div.CpufreqButton {
> -	position: absolute;
> -	top: 7px;
> -	left: 480px;
> -}
> -#top div.SoftwareButton {
> -	position: absolute;
> -	top: 7px;
> -	left: 640px;
> -}
> -#top div.DeviceButton {
> -	position: absolute;
> -	top: 7px;
> -	left: 800px;
> -}
> -#top div.TuningButton {
> -	position: absolute;
> -	top: 7px;
> -	left: 960px;
> -}
> -#top div.AllButton {
> -	position: absolute;
> -	top: 7px;
> -	left: 1120px;
> +#top div.nav_button {
> + display: inline;
> + cursor: pointer;
> + padding: 0.3em 0.5em;
> + margin: 0 0.2em;
>  }
> +
>  div.pressed {
>  	background-color: #000000;
>  	border: 1px solid #000000;
>  	color: #000000;
> -	display: block;
> -	border-width:0px 8px 0px 8px;
> -	-webkit-border-top-left-radius: 8px;
> -	-webkit-border-top-right-radius: 8px;
> -	-webkit-border-bottom-left-radius: 8px;
> -	-webkit-border-bottom-right-radius: 8px;
> -}
> -table.hide {
> -	display: none;
> +	border-radius: 8px;
>  }
> -h2.hide {
> -	display: none;
> -}
> -p.hide {
> -	display: none
> +div.hide {
> + display: none;
>  }
>  </style>
>  </head>
>  
> -<body>
> -
> +<body onload='powertop.onload();'>
>  <div id='top'>
> -<h1><a href='#top'>&nbsp;</a></h1>
>  </div>
>  




             reply	other threads:[~2013-09-17 19:41 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-17 19:41 Sergey Senozhatsky [this message]
  -- strict thread matches above, loose matches on Subject: below --
2013-09-18  9:01 [Powertop] [PATCH] embed self-contained javascript Sergey Senozhatsky
2013-09-18  8:21 Jose Luis Rivas
2013-09-18  8:06 Sergey Senozhatsky
2013-09-17 21:14 Jose Luis Rivas
2013-09-17 19:27 Daniel Kahn Gillmor
2013-09-17 19:02 Sergey Senozhatsky
2013-09-10 18:32 Sergey Senozhatsky
2013-09-07 19:49 Daniel Kahn Gillmor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130917194129.GD2289@swordfish \
    --to=powertop@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.