Index: trunk/wikistats/dumps/WikiReports.pl |
— | — | @@ -11,7 +11,8 @@ |
12 | 12 |
|
13 | 13 | use lib "/home/ezachte/lib" ;
|
14 | 14 | use EzLib ;
|
15 | | - $trace_on_exit = $true ;
|
| 15 | +# $trace_on_exit = $true ;
|
| 16 | + $trace_on_exit_concise = $true ;
|
16 | 17 | ez_lib_version (14) ;
|
17 | 18 |
|
18 | 19 | # build argument list for test run in OptiPerl IDE (Erik's home test env)
|
— | — | @@ -39,7 +40,7 @@ |
40 | 41 | # push @arguments, '-c' ; # generate category trees
|
41 | 42 | # mutually exclusive with other reporting
|
42 | 43 |
|
43 | | - push @arguments, '-r india' ; # only one region per run, no region specified -> all languages
|
| 44 | + # push @arguments, '-r india' ; # only one region per run, no region specified -> all languages
|
44 | 45 | # push @arguments, '-r africa' ;
|
45 | 46 | # push @arguments, '-r america' ;
|
46 | 47 | # push @arguments, '-r asia' ;
|
— | — | @@ -100,6 +101,7 @@ |
101 | 102 | use WikiReportsOutputTables ;
|
102 | 103 | use WikiReportsOutputTimelines ;
|
103 | 104 | use WikiReportsOutputWikibooks ;
|
| 105 | + use WikiReportsProcessEditors ;
|
104 | 106 | use WikiReportsProcessReverts ;
|
105 | 107 | use WikiReportsScripts ;
|
106 | 108 |
|
— | — | @@ -142,6 +144,8 @@ |
143 | 145 |
|
144 | 146 | &UpdateLanguageTranslations ;
|
145 | 147 |
|
| 148 | + &WhiteListLanguages ;
|
| 149 | +
|
146 | 150 | if ($animation)
|
147 | 151 | {
|
148 | 152 | &ReadDumpDateAndForecastFactors ;
|
— | — | @@ -185,6 +189,9 @@ |
186 | 190 | &LogT ("\nRead Bot Statistics") ;
|
187 | 191 | &ReadBotStats ;
|
188 | 192 |
|
| 193 | + if ($region eq '')
|
| 194 | + { &ProcessEditorStats ; }
|
| 195 | +
|
189 | 196 | &LogT ("\nRead Monthly Statistics") ;
|
190 | 197 | &ReadMonthlyStats ;
|
191 | 198 |
|
— | — | @@ -254,14 +261,14 @@ |
255 | 262 | &GenerateWikibookReports ;
|
256 | 263 | }
|
257 | 264 |
|
258 | | - &LogT ("\nGenerate Comparison Tables") ;
|
| 265 | + &LogT ("\n\nGenerate Comparison Tables") ;
|
259 | 266 | &GenerateComparisonTables ;
|
260 | 267 |
|
261 | 268 | # $showplots = $false ; # for test only
|
262 | 269 |
|
263 | 270 | if ($showplots)
|
264 | 271 | {
|
265 | | - &LogT ("\nGenerate Plot Data Files") ;
|
| 272 | + &LogT ("\n\nGenerate Plot Data Files") ;
|
266 | 273 | &GeneratePlotDataFiles ;
|
267 | 274 |
|
268 | 275 | # &Log ("\nTest Ploticus output capabilities") ;
|
— | — | @@ -290,8 +297,9 @@ |
291 | 298 | &LogT ("\nGenerate Trends Report") ;
|
292 | 299 | &GenerateConsolidatedTablePlusCharts ;
|
293 | 300 |
|
294 | | - &LogT ("\nCollect File Timestamps\n") ;
|
295 | | - &CollectFileTimeStamps ;
|
| 301 | +# legacy (do in bash script, when needed)
|
| 302 | +# &LogT ("\nCollect File Timestamps\n") ;
|
| 303 | +# &CollectFileTimeStamps ;
|
296 | 304 |
|
297 | 305 | &LogT ("\n\nExecution took " . ddhhmmss (time - $timestart). ".\n") ;
|
298 | 306 | &LogT ("Ready\n") ;
|
Index: trunk/wikistats/dumps/WikiReportsOutputTables.pm |
— | — | @@ -3136,6 +3136,8 @@ |
3137 | 3137 | if (($mode_wp) ||
|
3138 | 3138 | (($f != 5) && ($f != 9) && ($f != 10)))
|
3139 | 3139 | {
|
| 3140 | + &LogT ("\nGenerateComparisonTable " . "Tables" . $report_names [$f] . ".htm") ;
|
| 3141 | +
|
3140 | 3142 | &GenerateComparisonTable ($f) ;
|
3141 | 3143 |
|
3142 | 3144 | $postfix = $report_names [$f] ;
|
— | — | @@ -3253,21 +3255,24 @@ |
3254 | 3256 | elsif ($mode_wx) { $coverage = "<font color=#000080>Other Projects, </font>" ; }
|
3255 | 3257 | else { $coverage = "<font color=#000080>$out_publication, </font>" ; }
|
3256 | 3258 |
|
3257 | | - if ($pageviews_mobile) { $coverage2 = "<font color=#000080>Mobile, </font>" ; }
|
3258 | | - elsif ($pageviews_non_mobile) { $coverage2 = "<font color=#000080>Non-Mobile, </font>" ; }
|
3259 | | - if ($pageviews_combined) { $coverage2 = "<font color=#000080>All Platforms, </font>" ; }
|
| 3259 | + #if ($pageviews_mobile) { $coverage2 = "<font color=#0000FF>Mobile, </font>" ; }
|
| 3260 | + # elsif ($pageviews_non_mobile) { $coverage2 = "<font color=#0000FF>Non-Mobile, </font>" ; }
|
| 3261 | + #if ($pageviews_combined) { $coverage2 = "<font color=#0000FF>All Platforms, </font>" ; }
|
| 3262 | + if ($pageviews_mobile) { $coverage2 = "Mobile" ; }
|
| 3263 | + elsif ($pageviews_non_mobile) { $coverage2 = "Non-Mobile" ; }
|
| 3264 | + if ($pageviews_combined) { $coverage2 = "All Platforms" ; }
|
3260 | 3265 |
|
3261 | | - ($coverage2b = $coverage) =~ s/<[^>]*>//g ;;
|
| 3266 | + ($coverage2b = $coverage) =~ s/<[^>]*>//g ;
|
3262 | 3267 |
|
3263 | 3268 | if ($normalize_days_per_month)
|
3264 | 3269 | {
|
3265 | 3270 | $out_html .= "<p>View counts on this page have been normalized to months of 30 days, for fair comparison. " ;
|
3266 | | - $raw_or_not = "Normalized, " ;
|
| 3271 | + $raw_or_not = "Normalized" ;
|
3267 | 3272 | }
|
3268 | 3273 | else
|
3269 | 3274 | {
|
3270 | 3275 | $out_html .= "<p>View counts on this page have <font color=#FF0000><b>not</b></font> been normalized to months of 30 days. " ;
|
3271 | | - $raw_or_not = "Raw Data, " ;
|
| 3276 | + $raw_or_not = "Raw Data" ;
|
3272 | 3277 | }
|
3273 | 3278 |
|
3274 | 3279 | $out_html .= "<p><a href='http://stats.wikimedia.org/EN/TablesPageViewsSitemap.htm'>Site map for all page view reports</a><p>" ;
|
— | — | @@ -3275,35 +3280,34 @@ |
3276 | 3281 |
|
3277 | 3282 | if ($normalize_days_per_month)
|
3278 | 3283 | {
|
3279 | | - $out_html .= "<p>Switch to $coverage1$coverage2<a href='$href_not_normalized'>Raw Data</a>" ;
|
| 3284 | + $out_html .= "<p>Switch to $coverage1<a href='$href_not_normalized'>${coverage2}/Raw Data</a>" ;
|
3280 | 3285 | $href_current_file = $href_normalized ;
|
3281 | 3286 | }
|
3282 | 3287 | else
|
3283 | 3288 | {
|
3284 | | - $out_html .= "<p>Switch to $coverage1$coverage2<a href='$href_normalized'>Normalized</a> (for fairer comparison of monthly trends)" ;
|
| 3289 | + $out_html .= "<p>Switch to $coverage1<a href='$href_normalized'>${coverage2}/Normalized</a> (for fairer comparison of monthly trends)" ;
|
3285 | 3290 | $href_current_file = $href_not_normalized ;
|
3286 | 3291 | }
|
3287 | 3292 |
|
3288 | 3293 | if ($mode_wp)
|
3289 | 3294 | {
|
3290 | 3295 | if ($pageviews_mobile)
|
3291 | | - { $out_html .= "<p>Switch to $coverage1$raw_or_not<a href='TablesPageViewsMonthly.htm'>Non-Mobile</a>, " .
|
3292 | | - "<a href='TablesPageViewsMonthlyCombined.htm'>All Platforms</a>" ; }
|
| 3296 | + { $out_html .= "<p>Switch to $coverage1 <a href='TablesPageViewsMonthly.htm'>Non-Mobile/$raw_or_not</a>, " .
|
| 3297 | + "<a href='TablesPageViewsMonthlyCombined.htm'>All Platforms/$raw_or_not</a>" ; }
|
3293 | 3298 | elsif ($pageviews_non_mobile)
|
3294 | | - { $out_html .= "<p>Switch to $coverage1$raw_or_not<a href='TablesPageViewsMonthlyMobile.htm'>Mobile</a>, " .
|
3295 | | - " <a href='TablesPageViewsMonthlyCombined.htm'>All Platforms</a>" ; }
|
| 3299 | + { $out_html .= "<p>Switch to $coverage1 <a href='TablesPageViewsMonthlyMobile.htm'>Mobile/$raw_or_not</a>, " .
|
| 3300 | + " <a href='TablesPageViewsMonthlyCombined.htm'>All Platforms/$raw_or_not</a>" ; }
|
3296 | 3301 | else
|
3297 | | - { $out_html .= "<p>Switch to $coverage1$raw_or_not<a href='TablesPageViewsMonthly.htm'>Non-Mobile</a>, " .
|
3298 | | - " <a href='TablesPageViewsMonthlyMobile.htm'>Mobile</a>" ; }
|
| 3302 | + { $out_html .= "<p>Switch to $coverage1 <a href='TablesPageViewsMonthly.htm'>Non-Mobile/$raw_or_not</a>, " .
|
| 3303 | + " <a href='TablesPageViewsMonthlyMobile.htm'>Mobile/$raw_or_not</a>" ; }
|
3299 | 3304 | }
|
3300 | 3305 |
|
3301 | | - $out_html .= "<p>Stay with $coverage2${raw_or_not}but ..." ;
|
3302 | 3306 | if ($mode_wp)
|
3303 | 3307 | {
|
3304 | 3308 | $root = $testmode ? ".." : "../.." ;
|
3305 | 3309 |
|
3306 | 3310 | $out_html .= "<p>Switch to Wikipedia " ;
|
3307 | | - if ($region ne '') { $out_html .= "<a href='$root/EN/$href_current_file'>All Languages</a>, " ; }
|
| 3311 | + if ($region ne '') { $out_html .= "<a href='$root/EN/$href_current_file'>All Languages</a>, or Per Region: " ; }
|
3308 | 3312 | if ($region ne 'africa') { $out_html .= "<a href='$root/EN_Africa/$href_current_file'>Africa</a>, " ; }
|
3309 | 3313 | if ($region ne 'asia') { $out_html .= "<a href='$root/EN_Asia/$href_current_file'>Asia</a>, " ; }
|
3310 | 3314 | if ($region ne 'america') { $out_html .= "<a href='$root/EN_America/$href_current_file'>America's</a>, " ; }
|
— | — | @@ -3312,6 +3316,7 @@ |
3313 | 3317 | if ($region ne 'oceania') { $out_html .= "<a href='$root/EN_Oceania/$href_current_file'>Oceania</a>, " ; }
|
3314 | 3318 | if ($region ne 'artificial') { $out_html .= "<a href='$root/EN_Artificial/$href_current_file'>Artificial Languages</a>" ; }
|
3315 | 3319 | $out_html =~ s/, $// ;
|
| 3320 | + $out_html .= " ($coverage2/${raw_or_not})" ;
|
3316 | 3321 | }
|
3317 | 3322 |
|
3318 | 3323 | # if ($pageviews_non_mobile)
|
— | — | @@ -3327,7 +3332,8 @@ |
3328 | 3333 | $mode_ws ? ($out_xref .= "Wikisource, ") : ($out_xref .= "<a href='$root/wikisource/EN/$href_current_file2'>Wikisources, </a>\n") ;
|
3329 | 3334 | $mode_wv ? ($out_xref .= "Wikiversity, ") : ($out_xref .= "<a href='$root/wikiversity/EN/$href_current_file2'>Wikiversities, </a>\n") ;
|
3330 | 3335 | $mode_wx ? ($out_xref .= "Wikispecial") : ($out_xref .= "<a href='$root/wikispecial/EN/$href_current_file2'>Wikispecial</a>\n") ;
|
3331 | | - $out_html .= "<p>Switch to All Platforms, $coverage2 " . $out_xref ;
|
| 3336 | + # $out_html .= "<p>Switch to All Platforms, $coverage2 " . $out_xref ;
|
| 3337 | + $out_html .= "<p>Switch to " . $out_xref ;
|
3332 | 3338 | # }
|
3333 | 3339 |
|
3334 | 3340 |
|
— | — | @@ -3671,27 +3677,30 @@ |
3672 | 3678 | if ($normalized)
|
3673 | 3679 | {
|
3674 | 3680 | $out_html .= "<p>View counts on this page have been normalized to months of 30 days, for fair comparison.." .
|
3675 | | - "<p>Switch to All Projects, All Platforms, <a href='$href_not_normalized'>Raw Data.</a>" ;
|
| 3681 | + "<p>Switch to All Projects <a href='$href_not_normalized'> All Platforms/Raw Data.</a>" ;
|
3676 | 3682 | $coverage3 = "Normalized, " ;
|
3677 | 3683 | }
|
3678 | 3684 | else
|
3679 | 3685 | {
|
3680 | 3686 | $out_html .= "<p>View counts on this page have <font color=#FF0000><b>not</b></font> been normalized to months of 30 days..<p>" .
|
3681 | | - "<p>Switch to All Projects, All Platforms, <a href='$href_normalized'>Normalized</a>." ;
|
| 3687 | + "<p>Switch to All Projects <a href='$href_normalized'>All Platforms/Normalized</a>." ;
|
3682 | 3688 | $coverage3 = "Raw Data, " ;
|
3683 | 3689 | }
|
3684 | 3690 |
|
3685 | 3691 | $root = $testmode ? ".." : "../.." ;
|
3686 | 3692 |
|
| 3693 | + $href_current_file2 = $href_current_file ;
|
| 3694 | + $href_current_file2 =~ s/Combined// ;
|
| 3695 | +
|
3687 | 3696 | $out_html .= "<p>Switch to All Platforms, " ;
|
3688 | | - $out_html .= "<a href='$root/wikibooks/EN/$href_current_file'>Wikibooks, </a>\n" ;
|
3689 | | - $out_html .= "<a href='$root/wiktionary/EN/$href_current_file'>Wiktionaries, </a>\n" ;
|
3690 | | - $out_html .= "<a href='$root/wikinews/EN/$href_current_file'>Wikinews, </a>\n" ;
|
| 3697 | + $out_html .= "<a href='$root/wikibooks/EN/$href_current_file2'>Wikibooks, </a>\n" ;
|
| 3698 | + $out_html .= "<a href='$root/wiktionary/EN/$href_current_file2'>Wiktionaries, </a>\n" ;
|
| 3699 | + $out_html .= "<a href='$root/wikinews/EN/$href_current_file2'>Wikinews, </a>\n" ;
|
3691 | 3700 | $out_html .= "<a href='$root/EN/$href_current_file'>Wikipedias, </a>\n" ;
|
3692 | | - $out_html .= "<a href='$root/wikiquote/EN/$href_current_file'>Wikiquotes, </a>\n" ;
|
3693 | | - $out_html .= "<a href='$root/wikisource/EN/$href_current_file'>Wikisources, </a>\n" ;
|
3694 | | - $out_html .= "<a href='$root/wikiversity/EN/$href_current_file'>Wikiversities, </a>\n" ;
|
3695 | | - $out_html .= "<a href='$root/wikispecial/EN/$href_current_file'>Wikispecial</a>\n" ;
|
| 3701 | + $out_html .= "<a href='$root/wikiquote/EN/$href_current_file2'>Wikiquotes, </a>\n" ;
|
| 3702 | + $out_html .= "<a href='$root/wikisource/EN/$href_current_file2'>Wikisources, </a>\n" ;
|
| 3703 | + $out_html .= "<a href='$root/wikiversity/EN/$href_current_file2'>Wikiversities, </a>\n" ;
|
| 3704 | + $out_html .= "<a href='$root/wikispecial/EN/$href_current_file2'>Wikispecial</a>\n" ;
|
3696 | 3705 |
|
3697 | 3706 | $out_html .= "<p><font color=#A00000>Warning: page view counts from Nov 2009 till March 2010 are 10% to 20% too low due to server overload.</font> " ;
|
3698 | 3707 | # "In July 2010 is was established that the server that collects and aggregates log data for all squids could not keep up with all incoming messages, and hence underreported page views. " .
|
— | — | @@ -3847,10 +3856,11 @@ |
3848 | 3857 | else
|
3849 | 3858 | { $line_html .= &th(" " . ucfirst($project_names {$code}). " ") ; }
|
3850 | 3859 | }
|
| 3860 | + $line_html .= &th(" Total ") ;
|
3851 | 3861 | $out_html .= &tr ($line_html) ;
|
3852 | 3862 |
|
3853 | 3863 | $line_html = &the ;
|
3854 | | - foreach $code (qw (wb wk wn wp wp.m wq ws wv wx))
|
| 3864 | + foreach $code (qw (wb wk wn wp wp.m wp.c wq ws wv wx))
|
3855 | 3865 | {
|
3856 | 3866 | if ($code eq 'wb') { $link = "$root/wikibooks/EN/PlotEditsZZ.png" ; }
|
3857 | 3867 | if ($code eq 'wk') { $link = "$root/wiktionary/EN/PlotEditsZZ.png" ; }
|
— | — | @@ -3864,9 +3874,11 @@ |
3865 | 3875 | if ($code eq 'wx') { $link = "$root/wikispecial/EN/PlotEditsZZ.png" ; }
|
3866 | 3876 | $line_html .= &tdcb ("<a href='$link'>Edit Trends</a>") ;
|
3867 | 3877 | }
|
| 3878 | + $line_html .= &tdcb ("") ;
|
3868 | 3879 | $out_html .= &tr ($line_html) ;
|
3869 | 3880 |
|
3870 | | - foreach $topic (qw (year_trend view_rates sparklines forecast forecast2))
|
| 3881 | +# foreach $topic (qw (year_trend view_rates sparklines forecast forecast2))
|
| 3882 | + foreach $topic (qw (year_trend view_rates sparklines))
|
3871 | 3883 | {
|
3872 | 3884 | $line_html = $html_pageviews_all_projects {"wp,$topic,header"} ;
|
3873 | 3885 |
|
— | — | @@ -3886,6 +3898,11 @@ |
3887 | 3899 | }
|
3888 | 3900 | $line_html .= $cell_html ;
|
3889 | 3901 | }
|
| 3902 | + if ($topic =~ /year_trend|forecast|forecast2/)
|
| 3903 | + { $cell_html = "tdg('');" ; }
|
| 3904 | + else
|
| 3905 | + { $cell_html = "<td> </td>" ; }
|
| 3906 | + $line_html .= $cell_html ;
|
3890 | 3907 |
|
3891 | 3908 | if ($topic =~ /year_trend|forecast|forecast2/)
|
3892 | 3909 | { $line_html .= "\n</script>\n" ; }
|
— | — | @@ -3893,6 +3910,7 @@ |
3894 | 3911 | $out_html .= &tr ($line_html) ;
|
3895 | 3912 | }
|
3896 | 3913 |
|
| 3914 | + # very Q&D: parse javascript macro's, extract counts, build new macro for overall total
|
3897 | 3915 | for ($m = $month_hi_pageviews ; $m >= $month_lo_pageviews ; $m--)
|
3898 | 3916 | {
|
3899 | 3917 | $line_html = $html_pageviews_all_projects {"wp,monthly,header_$m"} ;
|
— | — | @@ -3904,8 +3922,81 @@ |
3905 | 3923 | $cell_html = $html_pageviews_all_projects {"$code,monthly,data_$m"} ;
|
3906 | 3924 | if ($cell_html eq '')
|
3907 | 3925 | { $cell_html = "tdg('');" ; }
|
| 3926 | +
|
| 3927 | + next if $code eq 'wp' or $code eq 'wp.m' ;
|
| 3928 | +
|
| 3929 | + $cell_html =~ s/ //g ;
|
| 3930 | + $views = 0 ;
|
| 3931 | + if ($cell_html =~ /^tdc\(/)
|
| 3932 | + { ($views = $cell_html) =~ s/^[^']*'[^']*'[^']*'[^']*'[^']*'([^']*)'.*$/$1/ ; }
|
| 3933 | + elsif ($cell_html =~ /^tdg\(/)
|
| 3934 | + { ($views = $cell_html) =~ s/^[^']*'([^']*)'.*$/$1/ ; }
|
| 3935 | + $views =~ s/,//g ;
|
| 3936 | + if ($views =~ /M/i) { $views =~ s/M//i ; $views *= 1000000 ; }
|
| 3937 | + if ($views =~ /k/i) { $views =~ s/k//i ; $views *= 1000 ; }
|
| 3938 | + $views_tot_monthly {$m} += $views ;
|
| 3939 | + }
|
| 3940 | + }
|
| 3941 | +
|
| 3942 | + # extremely Q&D (saves a few days restructuring):
|
| 3943 | + # update javascript macro's with percentage of overall total + overall total as extra column
|
| 3944 | + for ($m = $month_hi_pageviews ; $m >= $month_lo_pageviews ; $m--)
|
| 3945 | + {
|
| 3946 | + $line_html = $html_pageviews_all_projects {"wp,monthly,header_$m"} ;
|
| 3947 | + next if $line_html eq '' ;
|
| 3948 | +
|
| 3949 | + $line_html .= "\n<script language='javascript'>\n" ;
|
| 3950 | + foreach $code (qw (wb wk wn wp wp.m wp.c wq ws wv wx))
|
| 3951 | + {
|
| 3952 | + $cell_html = $html_pageviews_all_projects {"$code,monthly,data_$m"} ;
|
| 3953 | + if ($cell_html eq '')
|
| 3954 | + { $cell_html = "tdg('');" ; }
|
| 3955 | +
|
| 3956 | + $cell_html =~ s/ //g ;
|
| 3957 | +
|
| 3958 | + if ($cell_html =~ /1st/) # commons
|
| 3959 | + {
|
| 3960 | + # print "1 $cell_html\n" ;
|
| 3961 | + $cell_html =~ s/ [0-9\.]+\%//g ;
|
| 3962 | + $cell_html =~ s/ 1st// ;
|
| 3963 | + # print "2 $cell_html\n\n" ;
|
| 3964 | + }
|
| 3965 | + else
|
| 3966 | + { $cell_html =~ s/,\s+,/,,/g ; }
|
| 3967 | +
|
| 3968 | + $views = 0 ;
|
| 3969 | + if ($cell_html =~ /^tdc\(/)
|
| 3970 | + { ($views = $cell_html) =~ s/^[^']*'[^']*'[^']*'[^']*'[^']*'([^']*)'.*$/$1/ ; }
|
| 3971 | + elsif ($cell_html =~ /^tdg\(/)
|
| 3972 | + { ($views = $cell_html) =~ s/^[^']*'([^']*)'.*$/$1/ ; }
|
| 3973 | + $views =~ s/,//g ;
|
| 3974 | + if ($views =~ /M/i) { $views =~ s/M//i ; $views *= 1000000 ; }
|
| 3975 | + if ($views =~ /k/i) { $views =~ s/k//i ; $views *= 1000 ; }
|
| 3976 | + $views_share = sprintf ("%.1f", 100 * $views / $views_tot_monthly {$m}) .'%' ;
|
| 3977 | + $cell_html =~ s/,,/, $views_share,/ ;
|
| 3978 | +
|
3908 | 3979 | $line_html .= $cell_html ;
|
3909 | 3980 | }
|
| 3981 | +
|
| 3982 | + $views_tot = sprintf ("%.0f",$views_tot_monthly {$m}/1000000) ;
|
| 3983 | + $views_tot =~ s/(\d)(\d\d\d)$/$1,$2/ ;
|
| 3984 | +
|
| 3985 | + $views_inc = '..' ;
|
| 3986 | + if (($views_tot_monthly {$m-1} > 0) && ($m < $month_hi_pageviews))
|
| 3987 | + {
|
| 3988 | + $views_inc = sprintf ("%.1f", 100 * $views_tot_monthly {$m} / $views_tot_monthly {$m-1} - 100) ;
|
| 3989 | +
|
| 3990 | + $views_col = &BgColor ('I', $views_inc) ;
|
| 3991 | + if ($views_inc >= 0)
|
| 3992 | + { $views_inc = "+$views_inc\%" ; }
|
| 3993 | + else
|
| 3994 | + { $views_inc = "-$views_inc\%" ; }
|
| 3995 | + $cell_html = "tdc('$views_col','$views_inc, 100%,.. ','${views_tot}M');" ;
|
| 3996 | + }
|
| 3997 | + else
|
| 3998 | + { $cell_html = "tdg('$views_tot M');" ; }
|
| 3999 | +
|
| 4000 | + $line_html .= $cell_html ;
|
3910 | 4001 | $line_html .= "\n</script>\n" ;
|
3911 | 4002 | $out_html .= &tr ($line_html) ;
|
3912 | 4003 | }
|
— | — | @@ -3913,6 +4004,7 @@ |
3914 | 4005 | $line_html = &the;
|
3915 | 4006 | foreach $code (qw (wb wk wn wp wp.m wp.c wq ws wv wx))
|
3916 | 4007 | { $line_html .= &th(' '. ucfirst($project_names {$code}).' ') ; }
|
| 4008 | + $line_html .= &th(" Total ") ;
|
3917 | 4009 | $out_html .= &tr ($line_html) ;
|
3918 | 4010 |
|
3919 | 4011 | # &GenerateComparisonTableEditPlots ;
|
— | — | @@ -4128,7 +4220,7 @@ |
4129 | 4221 |
|
4130 | 4222 | sub GenerateConsolidatedTablePlusCharts
|
4131 | 4223 | {
|
4132 | | - &LogT ("\nGenerateConsolidatedTablePlusCharts") ;
|
| 4224 | + &LogT ("\nGenerateConsolidatedTablePlusCharts ") ;
|
4133 | 4225 |
|
4134 | 4226 | my $md = $dumpmonth_ord ;
|
4135 | 4227 |
|
— | — | @@ -4410,7 +4502,7 @@ |
4411 | 4503 |
|
4412 | 4504 | sub GenerateComparisonTableHeaders
|
4413 | 4505 | {
|
4414 | | - &LogT ("\nGenerateComparisonTableHeaders") ;
|
| 4506 | +# &LogT ("\nGenerateComparisonTableHeaders") ;
|
4415 | 4507 |
|
4416 | 4508 | my $f = shift ;
|
4417 | 4509 | my $link = shift ;
|
— | — | @@ -4468,7 +4560,7 @@ |
4469 | 4561 |
|
4470 | 4562 | sub GenerateComparisonTableHeadersCascade
|
4471 | 4563 | {
|
4472 | | - &LogT ("\nGenerateComparisonTableHeadersCascade") ;
|
| 4564 | +# &LogT ("\nGenerateComparisonTableHeadersCascade") ;
|
4473 | 4565 |
|
4474 | 4566 | my $f = shift ;
|
4475 | 4567 | my $link = shift ;
|
— | — | @@ -4581,7 +4673,7 @@ |
4582 | 4674 |
|
4583 | 4675 | sub GenerateComparisonTableMonthlyData
|
4584 | 4676 | {
|
4585 | | - &LogT ("\nGenerateComparisonTableMonthlyData") ;
|
| 4677 | +# &LogT ("\nGenerateComparisonTableMonthlyData") ;
|
4586 | 4678 |
|
4587 | 4679 | my $m0 = shift ;
|
4588 | 4680 | my $f = shift ;
|
— | — | @@ -4949,7 +5041,7 @@ |
4950 | 5042 |
|
4951 | 5043 | sub GenerateComparisonTableMaxData
|
4952 | 5044 | {
|
4953 | | - &LogT ("\nGenerateComparisonTableMaxData") ;
|
| 5045 | +# &LogT ("\nGenerateComparisonTableMaxData") ;
|
4954 | 5046 |
|
4955 | 5047 | my $f = shift ;
|
4956 | 5048 | if ($f > 0) { return ; }
|
— | — | @@ -4983,7 +5075,7 @@ |
4984 | 5076 |
|
4985 | 5077 | sub GenerateComparisonTableSparklines
|
4986 | 5078 | {
|
4987 | | - &LogT ("\nGenerateComparisonTableSparklines") ;
|
| 5079 | +# &LogT ("\nGenerateComparisonTableSparklines") ;
|
4988 | 5080 |
|
4989 | 5081 | my $f = shift ;
|
4990 | 5082 | if ($f > 0) { return ; }
|
— | — | @@ -5028,7 +5120,7 @@ |
5029 | 5121 |
|
5030 | 5122 | sub GenerateComparisonTableSparklinesWithBars
|
5031 | 5123 | {
|
5032 | | - &LogT ("\nGenerateComparisonTableSparklinesWithBars") ;
|
| 5124 | +# &LogT ("\nGenerateComparisonTableSparklinesWithBars") ;
|
5033 | 5125 |
|
5034 | 5126 | my $f = shift ;
|
5035 | 5127 | if ($f > 0) { return ; }
|
— | — | @@ -5125,7 +5217,7 @@ |
5126 | 5218 |
|
5127 | 5219 | sub GenerateComparisonTableViewRates
|
5128 | 5220 | {
|
5129 | | - &LogT ("\nGenerateComparisonTableViewRates") ;
|
| 5221 | +# &LogT ("\nGenerateComparisonTableViewRates") ;
|
5130 | 5222 |
|
5131 | 5223 | my $f = shift ;
|
5132 | 5224 | if ($f > 0) { return ; }
|
— | — | @@ -5207,7 +5299,7 @@ |
5208 | 5300 |
|
5209 | 5301 | sub GenerateComparisonTableYearlyGrowth
|
5210 | 5302 | {
|
5211 | | - &LogT ("\nGenerateComparisonTableYearlyGrowth") ;
|
| 5303 | +# &LogT ("\nGenerateComparisonTableYearlyGrowth") ;
|
5212 | 5304 |
|
5213 | 5305 | my $f = shift ;
|
5214 | 5306 | if ($f > 0) { return ; }
|
— | — | @@ -5315,7 +5407,7 @@ |
5316 | 5408 |
|
5317 | 5409 | sub GenerateComparisonTableMonthlyTrends
|
5318 | 5410 | {
|
5319 | | - &LogT ("\nGenerateComparisonTableMonthlyTrends") ;
|
| 5411 | +# &LogT ("\nGenerateComparisonTableMonthlyTrends") ;
|
5320 | 5412 |
|
5321 | 5413 | my $f = shift ;
|
5322 | 5414 | my $line_html ;
|
— | — | @@ -5394,7 +5486,7 @@ |
5395 | 5487 |
|
5396 | 5488 | sub GenerateComparisonTableForecasts
|
5397 | 5489 | {
|
5398 | | - &LogT ("\nGenerateComparisonTableForecasts") ;
|
| 5490 | +# &LogT ("\nGenerateComparisonTableForecasts") ;
|
5399 | 5491 |
|
5400 | 5492 | my $f = shift ;
|
5401 | 5493 | my $wpmax = shift ;
|
— | — | @@ -5625,7 +5717,7 @@ |
5626 | 5718 |
|
5627 | 5719 | sub GenerateComparisonTableEditPlots
|
5628 | 5720 | {
|
5629 | | - &LogT ("\nGenerateComparisonTableEditPlots") ;
|
| 5721 | +# &LogT ("\nGenerateComparisonTableEditPlots") ;
|
5630 | 5722 |
|
5631 | 5723 | my $f = shift ;
|
5632 | 5724 | if ($f > 0) { return ; }
|