-
Tim van Dijen authoredc9975fa1
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
<?php
$this->data['header'] = 'SimpleSAMLphp Statistics';
$this->data['jquery'] = ['core' => true, 'ui' => true, 'css' => true];
$this->data['head'] = '<link rel="stylesheet" type="text/css" href="'.
SimpleSAML\Module::getModuleURL("statistics/assets/css/statistics.css").'" />'."\n";
$this->data['head'] .= '<script type="text/javascript" src="'.
SimpleSAML\Module::getModuleURL("statistics/assets/js/statistics.js").'"></script>'."\n";
$this->includeAtTemplateBase('includes/header.php');
echo '<h1>'.$this->data['available.rules'][$this->data['selected.rule']]['name'].'</h1>';
echo '<p>'.$this->data['available.rules'][$this->data['selected.rule']]['descr'].'</p>';
// Report settings
echo '<table class="selecttime">';
echo '<tr><td class="selecttime_icon"><img src="'.SimpleSAML\Utils\HTTP::getBaseURL().
'resources/icons/crystal_project/kchart.32x32.png" alt="Report settings" /></td>';
// Select report
echo '<td>';
echo '<form action="#">';
foreach ($this->data['post_rule'] as $k => $v) {
echo '<input type="hidden" name="'.$k.'" value="'.htmlspecialchars($v).'" />'."\n";
}
if (!empty($this->data['available_rules'])) {
echo '<select onchange="submit();" name="rule">';
foreach ($this->data['available_rules'] as $key => $rule) {
if ($key === $this->data['selected_rule']) {
echo '<option selected="selected" value="'.$key.'">'.$rule['name'].'</option>';
} else {
echo '<option value="'.$key.'">'.$rule['name'].'</option>';
}
}
echo '</select>';
}
echo '</form></td>';
// Select delimiter
echo '<td class="td_right">';
echo '<form action="#">';
foreach ($this->data['post_d'] as $k => $v) {
echo '<input type="hidden" name="'.$k.'" value="'.htmlspecialchars($v).'" />'."\n";
}
if (!empty($this->data['availdelimiters'])) {
echo '<select onchange="submit();" name="d">';
foreach ($this->data['availdelimiters'] as $key => $delim) {
$delimName = $delim;
if (array_key_exists($delim, $this->data['delimiterPresentation'])) {
$delimName = $this->data['delimiterPresentation'][$delim];
}
if ($key == '_') {
echo '<option value="_">Total</option>';
} elseif (isset($_REQUEST['d']) && $delim == $_REQUEST['d']) {
echo '<option selected="selected" value="'.htmlspecialchars($delim).'">'.
htmlspecialchars($delimName).'</option>';
} else {
echo '<option value="'.htmlspecialchars($delim).'">'.htmlspecialchars($delimName).'</option>';
}
}
echo '</select>';
}
echo '</form></td></tr>';
echo '</table>';
// End report settings
// Select time and date
echo '<table class="selecttime">';
echo '<tr><td class="selecttime_icon"><img src="'.SimpleSAML\Utils\HTTP::getBaseURL().
'resources/icons/crystal_project/date.32x32.png" alt="Select date and time" /></td>';
if (isset($this->data['available_times_prev'])) {
echo '<td><a href="'.$this->data['get_times_prev'].'">« Previous</a></td>';
} else {
echo '<td class="selecttime_link_grey">« Previous</td>';
}
echo '<td class="td_right">';
echo '<form action="#">';
foreach ($this->data['post_res'] as $k => $v) {
echo '<input type="hidden" name="'.$k.'" value="'.htmlspecialchars($v).'" />'."\n";
}
if (!empty($this->data['available_timeres'])) {
echo '<select onchange="submit();" name="res">';
foreach ($this->data['available_timeres'] as $key => $timeresname) {
if ($key == $this->data['selected_timeres']) {
echo '<option selected="selected" value="'.$key.'">'.$timeresname.'</option>';
} else {
echo '<option value="'.$key.'">'.$timeresname.'</option>';
}
}
echo '</select>';
}
echo '</form></td>';
echo '<td class="td_left">';
echo '<form action="#">';
foreach ($this->data['post_time'] as $k => $v) {
echo '<input type="hidden" name="'.$k.'" value="'.htmlspecialchars($v).'" />'."\n";
}
if (!empty($this->data['available_times'])) {
echo '<select onchange="submit();" name="time">';
foreach ($this->data['available_times'] as $key => $timedescr) {
if ($key == $this->data['selected_time']) {
echo '<option selected="selected" value="'.$key.'">'.$timedescr.'</option>';
} else {
echo '<option value="'.$key.'">'.$timedescr.'</option>';
}
}
echo '</select>';
}
echo '</form></td>';
if (isset($this->data['available_times_next'])) {
echo '<td class="td_right td_next_right"><a href="'.$this->data['get_times_next'].'">Next »</a></td>';
} else {
echo '<td class="td_right selecttime_link_grey td_next_right">Next »</td>';
}
echo '</tr></table>';
echo '<div id="tabdiv">';
if (!empty($this->data['results'])) {
echo '<ul class="tabset_tabs">
<li><a href="#graph">Graph</a></li>
<li><a href="#table">Summary table</a></li>
<li><a href="#debug">Time serie</a></li>
</ul>';
echo '
<div id="graph" class="tabset_content">';
echo '<img src="'.htmlspecialchars($this->data['imgurl']).'" alt="Graph" />';
echo '<form action="#">';
echo '<p class="p_right">Compare with total from this dataset ';
foreach ($this->data['post_rule2'] as $k => $v) {
echo '<input type="hidden" name="'.$k.'" value="'.htmlspecialchars($v).'" />'."\n";
}
echo '<select onchange="submit();" name="rule2">';
echo ' <option value="_">None</option>';
foreach ($this->data['available_rules'] as $key => $rule) {
if ($key === $this->data['selected_rule2']) {
echo '<option selected="selected" value="'.$key.'">'.$rule['name'].'</option>';
} else {
echo '<option value="'.$key.'">'.$rule['name'].'</option>';
}
}
echo '</select></p></form>';
echo '</div>'; // end graph content.
/**
* Handle table view - - - - - -
*/
$classint = ['odd', 'even'];
$i = 0;
echo '<div id="table" class="tabset_content">';
if (isset($this->data['pieimgurl'])) {
echo '<img src="'.$this->data['pieimgurl'].'" alt="Pie chart" />';
}
echo '<table class="tableview"><tr><th class="value">Value</th><th class="category">Data range</th></tr>';
foreach ($this->data['summaryDataset'] as $key => $value) {
$clint = $classint[$i++ % 2];
$keyName = $key;
if (array_key_exists($key, $this->data['delimiterPresentation'])) {
$keyName = $this->data['delimiterPresentation'][$key];
}
if ($key === '_') {
echo '<tr class="total '.$clint.'"><td class="value">'.
$value.'</td><td class="category">'.$keyName.'</td></tr>';
} else {
echo '<tr class="'.$clint.'"><td class="value">'.$value.
'</td><td class="category">'.$keyName.'</td></tr>';
}
}
echo '</table></div>';
// - - - - - - - End table view - - - - - - -
echo '<div id="debug" >';
echo '<table class="timeseries">';
echo '<tr><th>Time</th><th>Total</th>';
foreach ($this->data['topdelimiters'] as $key) {
$keyName = $key;
if (array_key_exists($key, $this->data['delimiterPresentation'])) {
$keyName = $this->data['delimiterPresentation'][$key];
}
echo'<th>'.$keyName.'</th>';
}
echo '</tr>';
$i = 0;
foreach ($this->data['debugdata'] as $slot => $dd) {
echo '<tr class="'.((++$i % 2) == 0 ? 'odd' : 'even').'">';
echo '<td>'.$dd[0].'</td>';
echo '<td class="datacontent">'.$dd[1].'</td>';
foreach ($this->data['topdelimiters'] as $key) {
echo '<td class="datacontent">'.(array_key_exists($key, $this->data['results'][$slot]) ?
$this->data['results'][$slot][$key] : ' ').'</td>';
}
echo '</tr>';
}
echo '</table>';
echo '</div>'; // End debug tab content
} else {
echo '<h4 align="center">'.$this->data['error'].'</h4>';
echo '<p align="center"><a href="showstats.php">Clear selection</a></p>';
}
echo '</div>'; // End tab div
$this->includeAtTemplateBase('includes/footer.php');