* Re: [Powertop] [PATCH] embed self-contained javascript
@ 2013-09-18 8:06 Sergey Senozhatsky
0 siblings, 0 replies; 9+ messages in thread
From: Sergey Senozhatsky @ 2013-09-18 8:06 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 1172 bytes --]
On (09/17/13 16:44), Jose Luis Rivas wrote:
> On 09/17/2013 03:11 PM, Sergey Senozhatsky wrote:
>
>
>
> BTW, trying to apply this patch I saw the src/Makefile.am makes a call
> to `src/csstoh.sh` which does not exists in the codebase. So it throws
> errors applying this patch to Debian.
hm, src/csstoh.sh exists in the codebase. where did you get source
code from?
> ```
> make[3]: Entering directory `/tmp/buildd/powertop-2.4/src'
> /bin/bash ./csstoh.sh powertop.css css.h
> /bin/bash: ./csstoh.sh: No such file or directory
> make[3]: *** [css.h] Error 127
> make[3]: Leaving directory `/tmp/buildd/powertop-2.4/src'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/tmp/buildd/powertop-2.4'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `/tmp/buildd/powertop-2.4'
> dh_auto_build: make -j1 returned exit code 2
> make: *** [build] Error 2
> dpkg-buildpackage: error: debian/rules build gave error exit status 2
> ```
>
> I guess it comes because of the change in the CSS so it needs to
> update the `src/css.h`.
css.h is generated from css file
$(SHELL) ./csstoh.sh powertop.css css.h
-ss
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Powertop] [PATCH] embed self-contained javascript
@ 2013-09-18 9:01 Sergey Senozhatsky
0 siblings, 0 replies; 9+ messages in thread
From: Sergey Senozhatsky @ 2013-09-18 9:01 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 4425 bytes --]
On (09/18/13 03:51), Jose Luis Rivas wrote:
> On 09/18/2013 03:36 AM, Sergey Senozhatsky wrote:
> > On (09/17/13 16:44), Jose Luis Rivas wrote:
> >> On 09/17/2013 03:11 PM, Sergey Senozhatsky wrote:
> >>
> >>
> >>
> >> BTW, trying to apply this patch I saw the src/Makefile.am makes a call
> >> to `src/csstoh.sh` which does not exists in the codebase. So it throws
> >> errors applying this patch to Debian.
> >
> > hm, src/csstoh.sh exists in the codebase. where did you get source
> > code from?
> >
> >> ```
> >> make[3]: Entering directory `/tmp/buildd/powertop-2.4/src'
> >> /bin/bash ./csstoh.sh powertop.css css.h
> >> /bin/bash: ./csstoh.sh: No such file or directory
> >> make[3]: *** [css.h] Error 127
> >> make[3]: Leaving directory `/tmp/buildd/powertop-2.4/src'
> >> make[2]: *** [all-recursive] Error 1
> >> make[2]: Leaving directory `/tmp/buildd/powertop-2.4'
> >> make[1]: *** [all] Error 2
> >> make[1]: Leaving directory `/tmp/buildd/powertop-2.4'
> >> dh_auto_build: make -j1 returned exit code 2
> >> make: *** [build] Error 2
> >> dpkg-buildpackage: error: debian/rules build gave error exit status 2
> >> ```
> >>
> >> I guess it comes because of the change in the CSS so it needs to
> >> update the `src/css.h`.
> >
> > css.h is generated from css file
> >
> > $(SHELL) ./csstoh.sh powertop.css css.h
> >
> > -ss
> >
>
> This is what we use in conjuction with uscan to get the sources (from
> debian/watch[0]):
> ```
> version=3
> https://01.org/powertop/downloads
> https://01.org/powertop/sites/default/files/downloads/powertop-([\d\.]*).tar.gz
> ```
>
> I downloaded the tar.gz from the source site and made an ls into src,
> this is the result:
Cc Arjan and Kristen
yes, indeed... powertop-2.4.tar.gz package does not compile.
make[2]: Leaving directory `/media/dev/__test/powertop-2.4/traceevent'
Making all in src
make[2]: Entering directory `/media/dev/__test/powertop-2.4/src'
/bin/sh ./csstoh.sh powertop.css css.h
/bin/sh: ./csstoh.sh: No such file or directory
make[2]: *** [css.h] Error 127
make[2]: Leaving directory `/media/dev/__test/powertop-2.4/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/media/dev/__test/powertop-2.4'
make: *** [all] Error 2
Jose, I can suggest (as a temp fix) to pull from git. Sorry for
inconvenience.
Arjan, Kristen,
besides missing csstoh script, current powertop-2.4.tar.gz package
contains files and dirs we don't really need (e.g. host specific m4
files). it would be better to generate it from `clean' git clone:
$ git clone git(a)github.com [...] powertop.git .
$ rm -fr .git*
./autogen and ./configure will do the rest of the job.
could you please take care of powertop-2.4.tar.gz?
-ss
> 8<---
> ghostbar ⋯ powertop wget
> https://01.org/powertop/sites/default/files/downloads/powertop-2.4.tar.gz
> --2013-09-18 03:48:50--
> https://01.org/powertop/sites/default/files/downloads/powertop-2.4.tar.gz
> Resolving 01.org (01.org)... 198.145.11.105, 2001:19d0:3:5::105
> Connecting to 01.org (01.org)|198.145.11.105|:443... connected.
> HTTP request sent, awaiting response... 200 OK
> Length: 632390 (618K) [application/x-gzip]
> Saving to: ‘powertop-2.4.tar.gz’
>
> 100%[================================================================================================================================>]
> 632,390 174KB/s in 3.6s
>
> 2013-09-18 03:48:55 (174 KB/s) - ‘powertop-2.4.tar.gz’ saved [632390/632390]
>
> ghostbar ⋯ powertop tar -zxf powertop-2.4.tar.gz
> ghostbar ⋯ powertop ls powertop-2.4/src
> calibrate css.h devlist.cpp display.cpp lib.cpp main.cpp
> Makefile.in parameters powertop.css report
> cpu devices devlist.h display.h lib.h Makefile.am
> measurement perf process tuning
> ghostbar ⋯ powertop ls powertop-2.4/src | grep csstoh
> ghostbar ⋯ powertop
>
> --->8
>
> Kind regards.
>
> [0] https://github.com/ghostbar/powertop.deb/blob/master/debian/watch
>
> --
> The Debian Project - http://debian.org/
> Jose Luis Rivas - http://joseluisrivas.net/#ghostbar
> _______________________________________________
> PowerTop mailing list
> PowerTop(a)lists.01.org
> https://lists.01.org/mailman/listinfo/powertop
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Powertop] [PATCH] embed self-contained javascript
@ 2013-09-18 8:21 Jose Luis Rivas
0 siblings, 0 replies; 9+ messages in thread
From: Jose Luis Rivas @ 2013-09-18 8:21 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 2989 bytes --]
On 09/18/2013 03:36 AM, Sergey Senozhatsky wrote:
> On (09/17/13 16:44), Jose Luis Rivas wrote:
>> On 09/17/2013 03:11 PM, Sergey Senozhatsky wrote:
>>
>>
>>
>> BTW, trying to apply this patch I saw the src/Makefile.am makes a call
>> to `src/csstoh.sh` which does not exists in the codebase. So it throws
>> errors applying this patch to Debian.
>
> hm, src/csstoh.sh exists in the codebase. where did you get source
> code from?
>
>> ```
>> make[3]: Entering directory `/tmp/buildd/powertop-2.4/src'
>> /bin/bash ./csstoh.sh powertop.css css.h
>> /bin/bash: ./csstoh.sh: No such file or directory
>> make[3]: *** [css.h] Error 127
>> make[3]: Leaving directory `/tmp/buildd/powertop-2.4/src'
>> make[2]: *** [all-recursive] Error 1
>> make[2]: Leaving directory `/tmp/buildd/powertop-2.4'
>> make[1]: *** [all] Error 2
>> make[1]: Leaving directory `/tmp/buildd/powertop-2.4'
>> dh_auto_build: make -j1 returned exit code 2
>> make: *** [build] Error 2
>> dpkg-buildpackage: error: debian/rules build gave error exit status 2
>> ```
>>
>> I guess it comes because of the change in the CSS so it needs to
>> update the `src/css.h`.
>
> css.h is generated from css file
>
> $(SHELL) ./csstoh.sh powertop.css css.h
>
> -ss
>
This is what we use in conjuction with uscan to get the sources (from
debian/watch[0]):
```
version=3
https://01.org/powertop/downloads
https://01.org/powertop/sites/default/files/downloads/powertop-([\d\.]*).tar.gz
```
I downloaded the tar.gz from the source site and made an ls into src,
this is the result:
8<---
ghostbar ⋯ powertop wget
https://01.org/powertop/sites/default/files/downloads/powertop-2.4.tar.gz
--2013-09-18 03:48:50--
https://01.org/powertop/sites/default/files/downloads/powertop-2.4.tar.gz
Resolving 01.org (01.org)... 198.145.11.105, 2001:19d0:3:5::105
Connecting to 01.org (01.org)|198.145.11.105|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 632390 (618K) [application/x-gzip]
Saving to: ‘powertop-2.4.tar.gz’
100%[================================================================================================================================>]
632,390 174KB/s in 3.6s
2013-09-18 03:48:55 (174 KB/s) - ‘powertop-2.4.tar.gz’ saved [632390/632390]
ghostbar ⋯ powertop tar -zxf powertop-2.4.tar.gz
ghostbar ⋯ powertop ls powertop-2.4/src
calibrate css.h devlist.cpp display.cpp lib.cpp main.cpp
Makefile.in parameters powertop.css report
cpu devices devlist.h display.h lib.h Makefile.am
measurement perf process tuning
ghostbar ⋯ powertop ls powertop-2.4/src | grep csstoh
ghostbar ⋯ powertop
--->8
Kind regards.
[0] https://github.com/ghostbar/powertop.deb/blob/master/debian/watch
--
The Debian Project - http://debian.org/
Jose Luis Rivas - http://joseluisrivas.net/#ghostbar
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Powertop] [PATCH] embed self-contained javascript
@ 2013-09-17 21:14 Jose Luis Rivas
0 siblings, 0 replies; 9+ messages in thread
From: Jose Luis Rivas @ 2013-09-17 21:14 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 1013 bytes --]
On 09/17/2013 03:11 PM, Sergey Senozhatsky wrote:
BTW, trying to apply this patch I saw the src/Makefile.am makes a call
to `src/csstoh.sh` which does not exists in the codebase. So it throws
errors applying this patch to Debian.
```
make[3]: Entering directory `/tmp/buildd/powertop-2.4/src'
/bin/bash ./csstoh.sh powertop.css css.h
/bin/bash: ./csstoh.sh: No such file or directory
make[3]: *** [css.h] Error 127
make[3]: Leaving directory `/tmp/buildd/powertop-2.4/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/buildd/powertop-2.4'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tmp/buildd/powertop-2.4'
dh_auto_build: make -j1 returned exit code 2
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
```
I guess it comes because of the change in the CSS so it needs to
update the `src/css.h`.
--
The Debian Project - http://debian.org/
Jose Luis Rivas - http://joseluisrivas.net/#ghostbar
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Powertop] [PATCH] embed self-contained javascript
@ 2013-09-17 19:41 Sergey Senozhatsky
0 siblings, 0 replies; 9+ messages in thread
From: Sergey Senozhatsky @ 2013-09-17 19:41 UTC (permalink / raw)
To: powertop
[-- 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'> </a></h1>
> </div>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Powertop] [PATCH] embed self-contained javascript
@ 2013-09-17 19:27 Daniel Kahn Gillmor
0 siblings, 0 replies; 9+ messages in thread
From: Daniel Kahn Gillmor @ 2013-09-17 19:27 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 731 bytes --]
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.
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.
thanks for your consideration.
Regards,
--dkg
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: embedded-js.patch --]
[-- Type: text/x-patch, Size: 17125 bytes --]
commit b332a57a43d79b030a4de1dbd2f235c808d71c31
Author: Daniel Kahn Gillmor <dkg@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'> </a></h1>
</div>
[-- Attachment #3: signature.asc --]
[-- Type: application/pgp-signature, Size: 1027 bytes --]
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Powertop] [PATCH] embed self-contained javascript
@ 2013-09-17 19:02 Sergey Senozhatsky
0 siblings, 0 replies; 9+ messages in thread
From: Sergey Senozhatsky @ 2013-09-17 19:02 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 19248 bytes --]
On (09/07/13 15:49), Daniel Kahn Gillmor wrote:
> 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.
> ---
> src/powertop.css | 400 ++++++++++---------------------------------------------
> 1 file changed, 72 insertions(+), 328 deletions(-)
>
> diff --git a/src/powertop.css b/src/powertop.css
> index c73d3e2..35f6571 100644
> --- a/src/powertop.css
> +++ b/src/powertop.css
> @@ -3,276 +3,70 @@
> <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');
^^^^
there is a number of trailing whitespaces, could you please fix that?
.git/rebase-apply/patch:237: trailing whitespace.
tuning: 'Tuning'
.git/rebase-apply/patch:239: trailing whitespace.
cadd: function(idx, c){
.git/rebase-apply/patch:243: trailing whitespace.
crm: function(id, c){
.git/rebase-apply/patch:271: trailing whitespace.
powertop.crm(b, 'hide');
.git/rebase-apply/patch:286: trailing whitespace.
}
can we also use one coding style in js code?
if (a)
a-foo;
if (b) {
b-foo;
b-bar;
}
the rest loog good to me.
-ss
> + }
> + 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 +248,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 +273,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'> </a></h1>
> </div>
>
> --
> 1.8.4.rc3
>
> _______________________________________________
> PowerTop mailing list
> PowerTop(a)lists.01.org
> https://lists.01.org/mailman/listinfo/powertop
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Powertop] [PATCH] embed self-contained javascript
@ 2013-09-10 18:32 Sergey Senozhatsky
0 siblings, 0 replies; 9+ messages in thread
From: Sergey Senozhatsky @ 2013-09-10 18:32 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 18684 bytes --]
On (09/07/13 15:49), Daniel Kahn Gillmor wrote:
> 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.
Hello,
thank you for your patch. I'll take a look.
-ss
> ---
> src/powertop.css | 400 ++++++++++---------------------------------------------
> 1 file changed, 72 insertions(+), 328 deletions(-)
>
> diff --git a/src/powertop.css b/src/powertop.css
> index c73d3e2..35f6571 100644
> --- a/src/powertop.css
> +++ b/src/powertop.css
> @@ -3,276 +3,70 @@
> <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 +248,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 +273,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'> </a></h1>
> </div>
>
> --
> 1.8.4.rc3
>
> _______________________________________________
> PowerTop mailing list
> PowerTop(a)lists.01.org
> https://lists.01.org/mailman/listinfo/powertop
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Powertop] [PATCH] embed self-contained javascript
@ 2013-09-07 19:49 Daniel Kahn Gillmor
0 siblings, 0 replies; 9+ messages in thread
From: Daniel Kahn Gillmor @ 2013-09-07 19:49 UTC (permalink / raw)
To: powertop
[-- Attachment #1: Type: text/plain, Size: 17505 bytes --]
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.
---
src/powertop.css | 400 ++++++++++---------------------------------------------
1 file changed, 72 insertions(+), 328 deletions(-)
diff --git a/src/powertop.css b/src/powertop.css
index c73d3e2..35f6571 100644
--- a/src/powertop.css
+++ b/src/powertop.css
@@ -3,276 +3,70 @@
<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 +248,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 +273,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'> </a></h1>
</div>
--
1.8.4.rc3
^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-09-18 9:01 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-18 8:06 [Powertop] [PATCH] embed self-contained javascript Sergey Senozhatsky
-- strict thread matches above, loose matches on Subject: below --
2013-09-18 9:01 Sergey Senozhatsky
2013-09-18 8:21 Jose Luis Rivas
2013-09-17 21:14 Jose Luis Rivas
2013-09-17 19:41 Sergey Senozhatsky
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
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.