Ticket #2701: stats.patch

File stats.patch, 13.8 KB (added by Rob Smith, 13 years ago)
  • skins/default/stats.css

     
    11#content_wrapper {
    2     width:  80%;
    3     margin: auto;
     2    padding-left:       1em;
     3    padding-right:      1em;
     4    padding-bottom:     1em;
     5    margin:             auto;
    46}
    57
    68h2 {
    7     text-align: center;
     9    text-align:         center;
    810}
    911
    1012#count_div {
    11     float: left;
     13    float:              left;
     14    padding-left:       5em;
     15    padding-top:        1em;
    1216}
    1317#query_time_div {
    14     float: right;
     18    float:              right;
     19    padding-right:      5em;
     20    padding-top:        1em;
    1521}
    1622
    1723/* The general stats box */
    1824#general_stats dl {
    19     font-size:  9pt;
    20     max-width:  35em;
    21     margin:     1em auto;
    22     padding:    .2em .5em .5em .5em;
    23     border:     1px dotted #9090B0;
     25    font-size:          9pt;
     26    max-width:          35em;
     27    margin:             1em auto;
     28    padding:            .2em .5em .5em .5em;
     29    border:             1px dotted #9090B0;
    2430}
     31
    2532#general_stats dt {
    26     clear:       left;
    27     float:       left;
    28     width:       15em;
    29     padding-top: 3px;
    30     text-align:  right;
     33    clear:              left;
     34    float:              left;
     35    width:              15em;
     36    padding-top:        3px;
     37    text-align:         right;
    3138}
     39
    3240#general_stats dd {
    33     padding-top: 3px;
    34     margin-left: 15.5em;
     41    padding-top:        3px;
     42    margin-left:        15.5em;
    3543}
    3644
    37 #top_ten_shows {
    38     float:              left;
     45#stats {
    3946    border:             1px solid #9090B0;
    4047    border-collapse:    collapse;
     48    margin:             auto;
    4149}
    42 #top_ten_shows col.count, #top_ten_shows td+td+td, #top_ten_shows th+th+th {
    43     text-align: center;
    44 }
    45 #top_ten_shows caption {
     50
     51.caption {
    4652    border:             1px dotted #9090B0;
    4753    font-weight:        bold;
     54    text-align:         center;
    4855}
    49 #top_ten_shows td {
    50     border:             1px dotted #9090B0;
    51     padding:            0px .5em;
    52 }
    53 #top_ten_shows th {
    54     border:             1px solid  #9090B0;
    55     border-right:       1px dotted #9090B0;
    56     border-left:        1px dotted #9090B0;
    57     padding:            0px .5em;
    58 }
    5956
    60 #top_ten_chan {
    61     float:              right;
    62     border:             1px solid #9090B0;
    63     border-collapse:    collapse;
     57.center {
     58    text-align:         center;
    6459}
    65 #top_ten_chan col.count, #top_ten_chan td+td+td, #top_ten_chan th+th+th {
    66     text-align: center;
    67 }
    68 #top_ten_chan caption {
     60
     61#stats td {
    6962    border:             1px dotted #9090B0;
    70     font-weight:        bold;
    71 }
    72 #top_ten_chan td {
    73     border:             1px dotted #9090B0;
    7463    padding:            0px .5em;
    7564}
    76 #top_ten_chan th {
     65
     66#stats th {
    7767    border:             1px solid  #9090B0;
    7868    border-right:       1px dotted #9090B0;
    7969    border-left:        1px dotted #9090B0;
  • skins/grey/stats.css

     
    11#content_wrapper {
    2     width:  80%;
    3     margin: auto;
     2    padding-left:       1em;
     3    padding-right:      1em;
     4    padding-bottom:     1em;
     5    margin:             auto;
    46}
    57
    68h2 {
    7     text-align: center;
     9    text-align:         center;
    810}
    911
    1012#count_div {
    11     float: left;
     13    float:              left;
     14    padding-left:       5em;
     15    padding-top:        1em;
    1216}
    1317#query_time_div {
    14     float: right;
     18    float:              right;
     19    padding-right:      5em;
     20    padding-top:        1em;
    1521}
    1622
    1723/* The general stats box */
    1824#general_stats dl {
    19     font-size:  9pt;
    20     max-width:  35em;
    21     margin:     1em auto;
    22     padding:    .2em .5em .5em .5em;
    23     border:     1px dotted #9090B0;
     25    font-size:          9pt;
     26    max-width:          35em;
     27    margin:             1em auto;
     28    padding:            .2em .5em .5em .5em;
     29    border:             1px dotted #9090B0;
    2430}
     31
    2532#general_stats dt {
    26     clear:       left;
    27     float:       left;
    28     width:       15em;
    29     padding-top: 3px;
    30     text-align:  right;
     33    clear:              left;
     34    float:              left;
     35    width:              15em;
     36    padding-top:        3px;
     37    text-align:         right;
    3138}
     39
    3240#general_stats dd {
    33     padding-top: 3px;
    34     margin-left: 15.5em;
     41    padding-top:        3px;
     42    margin-left:        15.5em;
    3543}
    3644
    37 #top_ten_shows {
    38     float:              left;
     45#stats {
    3946    border:             1px solid #9090B0;
    4047    border-collapse:    collapse;
     48    margin:             auto;
    4149}
    42 #top_ten_shows col.count, #top_ten_shows td+td+td, #top_ten_shows th+th+th {
    43     text-align: center;
    44 }
    45 #top_ten_shows caption {
     50
     51.caption {
    4652    border:             1px dotted #9090B0;
    4753    font-weight:        bold;
     54    text-align:         center;
    4855}
    49 #top_ten_shows td {
    50     border:             1px dotted #9090B0;
    51     padding:            0px .5em;
    52 }
    53 #top_ten_shows th {
    54     border:             1px solid  #9090B0;
    55     border-right:       1px dotted #9090B0;
    56     border-left:        1px dotted #9090B0;
    57     padding:            0px .5em;
    58 }
    5956
    60 #top_ten_chan {
    61     float:              right;
    62     border:             1px solid #9090B0;
    63     border-collapse:    collapse;
     57.center {
     58    text-align:         center;
    6459}
    65 #top_ten_chan col.count, #top_ten_chan td+td+td, #top_ten_chan th+th+th {
    66     text-align: center;
    67 }
    68 #top_ten_chan caption {
     60
     61#stats td {
    6962    border:             1px dotted #9090B0;
    70     font-weight:        bold;
    71 }
    72 #top_ten_chan td {
    73     border:             1px dotted #9090B0;
    7463    padding:            0px .5em;
    7564}
    76 #top_ten_chan th {
     65
     66#stats th {
    7767    border:             1px solid  #9090B0;
    7868    border-right:       1px dotted #9090B0;
    7969    border-left:        1px dotted #9090B0;
  • modules/_shared/lang/English.lang

     
    611611"year"
    612612"Yes"
    613613"Yesterday"
     614"Shows"
     615"Channels"
     616"Total Running Time"
     617"Total Recorded"
     618"$1 month"
     619"$1 months"
     620"$1 year"
     621"$1 years"
     622"Percent of time spent recording"
  • modules/stats/handler.php

     
    6868                         .$where.' AND endtime > starttime');
    6969
    7070// Get the top ten recorded shows
    71     $sh = $db->query('SELECT title, COUNT(programid) AS count, MAX(UNIX_TIMESTAMP(starttime)) AS last_recorded
     71    $sh = $db->query('SELECT title,
     72                      COUNT(programid)               AS recorded,
     73                      MAX(UNIX_TIMESTAMP(starttime)) AS last_recorded
    7274                        FROM oldrecorded '.$where
    7375                 .' GROUP BY title
    74                     ORDER BY count DESC, last_recorded, title '
     76                    ORDER BY recorded DESC, last_recorded, title '
    7577                    .$limit);
    7678    while($row = $sh->fetch_assoc())
    77         $top_ten_shows[] = $row;
     79        $shows[] = $row;
    7880    $sh->finish();
    7981
    80 // Get the top ten recorded shows
    81     $sh = $db->query('SELECT COUNT(oldrecorded.chanid) as count,
     82// Get the top recorded channels
     83    $sh = $db->query('SELECT COUNT(oldrecorded.chanid) as recorded,
    8284                             channel.name,
    8385                             channel.channum,
    8486                             MAX(UNIX_TIMESTAMP(oldrecorded.starttime)) as last_recorded
     
    8890                    '.$where.'
    8991                             AND channel.channum IS NOT NULL
    9092                    GROUP BY oldrecorded.chanid
    91                     ORDER BY count DESC, last_recorded, name '
     93                    ORDER BY recorded DESC, last_recorded, name '
    9294                    .$limit);
    9395    while($row = $sh->fetch_assoc())
    94         $top_ten_chans[] = $row;
     96        $channels[] = $row;
    9597    $sh->finish();
    9698
    9799// Print the stats page template
  • modules/stats/tmpl/default/stats.php

     
    3131        <form id="stats_form" name="stats_form" action="<?php echo root ?>stats">
    3232
    3333        <div id="query_time_div">
     34            Time Span&nbsp;
    3435            <select name="query_time" onchange="submit_form(null, null, 'stats_form');">
    3536                <option <?php if($_GET['query_time']=='All_time') echo 'selected' ?> value="All_time"><?php echo t('All') ?></option>
    3637                <option <?php if($_GET['query_time']=='year')     echo 'selected' ?> value="year"><?php  echo t('Past Year') ?></option>
     
    4142        </div>
    4243
    4344        <div id="count_div">
     45            Show&nbsp;
    4446            <select name="count_dropdown" onchange="submit_form(null, null, 'stats_form');">
    4547                <option <?php if($_GET['count_dropdown']=='10')  echo 'selected' ?> value="10"><?php  echo t('Top $1', 10) ?></option>
    4648                <option <?php if($_GET['count_dropdown']=='25')  echo 'selected' ?> value="25"><?php  echo t('Top $1', 25) ?></option>
     
    5658
    5759    <div id="general_stats" class="clearfix">
    5860        <dl>
    59             <dt><?php echo t('Number of shows') ?>:
    60             <dd><?php echo $title_count ?></dd>
    61             <dt><?php echo t('Number of episodes') ?>:</dt>
    62             <dd><?php echo $show_count ?></dd>
    63             <dt><?php echo t('First recording') ?>:</dt>
    64             <dd><?php echo date('l F jS, Y', $first) ?></dd>
    65             <dt><?php echo t('Last recording') ?>:</dt>
    66             <dd><?php echo date('l F jS, Y', $last) ?></dd>
    67             <dt><?php echo t('Total Time') ?>:</dt>
    68             <dd><?php echo t('$1 wasted', nice_length($time)) ?></dd>
     61            <dt><?php echo t('Number of shows'); ?>:
     62            <dd><?php echo $title_count; ?></dd>
     63            <dt><?php echo t('Number of episodes'); ?>:</dt>
     64            <dd><?php echo $show_count; ?></dd>
     65            <dt><?php echo t('First recording'); ?>:</dt>
     66            <dd><?php echo date('l F jS, Y', $first); ?></dd>
     67            <dt><?php echo t('Last recording'); ?>:</dt>
     68            <dd><?php echo date('l F jS, Y', $last); ?></dd>
     69            <dt><?php echo t('Total Running Time'); ?>:</dt>
     70            <dd><?php echo nice_length($last - $first); ?></dd>
     71            <dt><?php echo t('Total Recorded'); ?>:</dt>
     72            <dd><?php echo nice_length($time); ?></dd>
     73            <dt><?php echo t('Percent of time spent recording'); ?>:</dt>
     74            <dd><?php echo intval(($time / ($last - $first)) * 100); ?>%</dd>
    6975        </dl>
    7076    </div>
    7177
    72     <table id="top_ten_shows" style="text-align: left;">
    73     <caption>Top <?php echo $_REQUEST['count_dropdown'] ?> recorded shows</caption>
    74     <colgroup>
    75         <col class="num"></col>
    76         <col class="title"></col>
    77         <col class="count"></col>
    78         <col class="last_recorded"></col>
    79     </colgroup>
     78    <table id="stats" style="text-align: left;">
     79    <tr class="caption">
     80     <td colspan="4"><?php echo t('Shows'); ?></td>
     81     <td></td>
     82     <td colspan="4"><?php echo t('Channels'); ?></td>
     83    </tr>
    8084    <tr>
    81         <th>#</th>
    82         <th><?php echo t('Title') ?></th>
    83         <th><?php echo t('Count') ?></th>
    84         <th><?php echo t('Last Recorded') ?></th>
    85     </tr><?php
    86         foreach($top_ten_shows as $num => $row) {
    87             echo "<tr>\n",
    88                  "        <td>", ($num + 1), "</td>\n",
    89                  "        <td>", html_entities($row['title']), "</td>\n",
    90                  "        <td>", $row['count'], "</td>\n",
    91                  "        <td>".date('F j Y', $row['last_recorded'])."</td>\n",
    92                  "    </tr>\n";
    93         }
     85     <th><?php echo t('Title'); ?></th>
     86     <th><?php echo t('Recorded'); ?></th>
     87     <th><?php echo t('Last Recorded'); ?></th>
     88     <th class="center">#</th>
     89     <th><?php echo t('Title'); ?></th>
     90     <th><?php echo t('Recorded'); ?></th>
     91     <th><?php echo t('Last Recorded'); ?></th>
     92    </tr>
     93    <?php
     94     $maxcount = count($shows);
     95     if (count($channels) > $maxcount)
     96      $maxcount = count($channels);
     97     $padded = false;
     98     for ($i=0; $i<$maxcount; $i++) {
     99     ?>
     100     <tr>
     101     <?php
     102      if (isset($shows[$i])) {
     103      ?>
     104       <td><?php echo html_entities($shows[$i]['title']); ?></td>
     105       <td class="center"><?php echo $shows[$i]['recorded']; ?></td>
     106       <td><?php echo date('F j Y', $shows[$i]['last_recorded']); ?></td>
     107      <?php
     108      }
     109      elseif ($padded == false) {
     110       $padded = true;
     111      ?>
     112       <td colspan="5" rowspan="<?php echo count($shows)-$i; ?>"></td>
     113      <?php
     114      }
     115      ?>
     116       <td class="center" style="font-weight: bold;"><?php echo $i+1; ?></td>
     117      <?php
     118      if (isset($channels[$i])) {
     119      ?>
     120       <td><?php echo html_entities($channels[$i]['name']); ?></td>
     121       <td class="center"><?php echo $channels[$i]['recorded']; ?></td>
     122       <td><?php echo date('F j Y', $channels[$i]['last_recorded']); ?></td>
     123      <?php
     124      }
     125      elseif ($padded == false) {
     126       $padded = true;
     127      ?>
     128       <td colspan="5" rowspan="<?php echo count($channels)-$i; ?>"></td>
     129      <?php
     130      }
     131      ?>
     132     </tr>
     133     <?php
     134     }
    94135    ?>
    95136    </table>
    96 
    97     <table id="top_ten_chan" style="text-align: left;">
    98     <caption>Top <?php echo $_REQUEST['count_dropdown'] ?> recorded channels</caption>
    99     <colgroup>
    100         <col class="num"></col>
    101         <col class="title"></col>
    102         <col class="count"></col>
    103         <col class="last_recorded"></col>
    104     </colgroup>
    105     <tr>
    106         <th>#</th>
    107         <th><?php echo t('Name') ?></th>
    108         <th><?php echo t('Count') ?></th>
    109         <th><?php echo t('Last Recorded') ?></th>
    110     </tr><?php
    111         foreach($top_ten_chans as $num => $row) {
    112             echo "<tr>\n",
    113                  "        <td>", ($num + 1), "</td>\n",
    114                  "        <td>", html_entities($row['name']), "</td>\n",
    115                  "        <td>", $row['count'], "</td>\n",
    116                  "        <td>".date('F j Y', $row['last_recorded'])."</td>\n",
    117                  "    </tr>\n";
    118         }
    119     ?>
    120     </table>
    121 
    122137</div>
    123138<?php
    124139// Print the page footer