Skip to content
Snippets Groups Projects
Commit dd0a0af3 authored by Tim van Dijen's avatar Tim van Dijen
Browse files

Show proper error message when no data available

parent 0d1599a2
No related branches found
No related tags found
No related merge requests found
...@@ -19,38 +19,42 @@ echo '<tr><td class="selecttime_icon"><img src="' . SimpleSAML\Utils\HTTP::getBa ...@@ -19,38 +19,42 @@ echo '<tr><td class="selecttime_icon"><img src="' . SimpleSAML\Utils\HTTP::getBa
echo '<td>'; echo '<td>';
echo '<form action="#">'; echo '<form action="#">';
echo $this->data['post_rule']; echo $this->data['post_rule'];
echo '<select onchange="submit();" name="rule">'; if (!empty($this->data['available.rules'])) {
foreach ($this->data['available.rules'] as $key => $rule) { echo '<select onchange="submit();" name="rule">';
if ($key === $this->data['selected.rule']) { foreach ($this->data['available.rules'] as $key => $rule) {
echo '<option selected="selected" value="' . $key . '">' . $rule['name'] . '</option>'; if ($key === $this->data['selected.rule']) {
} else { echo '<option selected="selected" value="' . $key . '">' . $rule['name'] . '</option>';
echo '<option value="' . $key . '">' . $rule['name'] . '</option>'; } else {
echo '<option value="' . $key . '">' . $rule['name'] . '</option>';
}
} }
echo '</select>';
} }
echo '</select></form>'; echo '</form></td>';
echo '</td>';
// Select delimiter // Select delimiter
echo '<td class="td_right">'; echo '<td class="td_right">';
echo '<form action="#">'; echo '<form action="#">';
echo $this->data['post_d']; echo $this->data['post_d'];
echo '<select onchange="submit();" name="d">'; if(!empty($this->data['availdelimiters'])) {
foreach ($this->data['availdelimiters'] as $key => $delim) { echo '<select onchange="submit();" name="d">';
$delimName = $delim; foreach ($this->data['availdelimiters'] as $key => $delim) {
if (array_key_exists($delim, $this->data['delimiterPresentation'])) { $delimName = $delim;
$delimName = $this->data['delimiterPresentation'][$delim]; if (array_key_exists($delim, $this->data['delimiterPresentation'])) {
} $delimName = $this->data['delimiterPresentation'][$delim];
}
if ($key == '_') {
echo '<option value="_">Total</option>'; if ($key == '_') {
} elseif (isset($_REQUEST['d']) && $delim == $_REQUEST['d']) { echo '<option value="_">Total</option>';
echo '<option selected="selected" value="' . htmlspecialchars($delim) . '">' . htmlspecialchars($delimName) . '</option>'; } elseif (isset($_REQUEST['d']) && $delim == $_REQUEST['d']) {
} else { echo '<option selected="selected" value="' . htmlspecialchars($delim) . '">' . htmlspecialchars($delimName) . '</option>';
echo '<option value="' . htmlspecialchars($delim) . '">' . htmlspecialchars($delimName) . '</option>'; } else {
echo '<option value="' . htmlspecialchars($delim) . '">' . htmlspecialchars($delimName) . '</option>';
}
} }
echo '</select>';
} }
echo '</select></form>'; echo '</form></td></tr>';
echo '</td></tr>';
echo '</table>'; echo '</table>';
...@@ -70,30 +74,34 @@ if (isset($this->data['available.times.prev'])) { ...@@ -70,30 +74,34 @@ if (isset($this->data['available.times.prev'])) {
echo '<td class="td_right">'; echo '<td class="td_right">';
echo '<form action="#">'; echo '<form action="#">';
echo $this->data['post_res']; echo $this->data['post_res'];
echo '<select onchange="submit();" name="res">'; if (!empty($this->data['available.timeres'])) {
foreach ($this->data['available.timeres'] as $key => $timeresname) { echo '<select onchange="submit();" name="res">';
if ($key == $this->data['selected.timeres']) { foreach ($this->data['available.timeres'] as $key => $timeresname) {
echo '<option selected="selected" value="' . $key . '">' . $timeresname . '</option>'; if ($key == $this->data['selected.timeres']) {
} else { echo '<option selected="selected" value="' . $key . '">' . $timeresname . '</option>';
echo '<option value="' . $key . '">' . $timeresname . '</option>'; } else {
echo '<option value="' . $key . '">' . $timeresname . '</option>';
}
} }
echo '</select>';
} }
echo '</select></form>'; echo '</form></td>';
echo '</td>';
echo '<td class="td_left">'; echo '<td class="td_left">';
echo '<form action="#">'; echo '<form action="#">';
echo $this->data['post_time']; echo $this->data['post_time'];
echo '<select onchange="submit();" name="time">'; if (!empty($this->data['available.times'])) {
foreach ($this->data['available.times'] as $key => $timedescr) { echo '<select onchange="submit();" name="time">';
if ($key == $this->data['selected.time']) { foreach ($this->data['available.times'] as $key => $timedescr) {
echo '<option selected="selected" value="' . $key . '">' . $timedescr . '</option>'; if ($key == $this->data['selected.time']) {
} else { echo '<option selected="selected" value="' . $key . '">' . $timedescr . '</option>';
echo '<option value="' . $key . '">' . $timedescr . '</option>'; } else {
echo '<option value="' . $key . '">' . $timedescr . '</option>';
}
} }
echo '</select>';
} }
echo '</select></form>'; echo '</form></td>';
echo '</td>';
if (isset($this->data['available.times.next'])) { 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>'; echo '<td class="td_right td_next_right"><a href="' . $this->data['get_times_next'] . '">Next »</a></td>';
...@@ -102,94 +110,96 @@ if (isset($this->data['available.times.next'])) { ...@@ -102,94 +110,96 @@ if (isset($this->data['available.times.next'])) {
} }
echo '</tr></table>'; echo '</tr></table>';
echo '<div id="tabdiv">';
if (!empty($this->data['results'])){
echo '<div id="tabdiv"><ul class="tabset_tabs"> echo '<ul class="tabset_tabs">
<li><a href="#graph">Graph</a></li> <li><a href="#graph">Graph</a></li>
<li><a href="#table">Summary table</a></li> <li><a href="#table">Summary table</a></li>
<li><a href="#debug">Time serie</a></li> <li><a href="#debug">Time serie</a></li>
</ul>'; </ul>';
echo ' echo '
<div id="graph" class="tabset_content">'; <div id="graph" class="tabset_content">';
echo '<img src="' . htmlspecialchars($this->data['imgurl']) . '" alt="Graph" />'; echo '<img src="' . htmlspecialchars($this->data['imgurl']) . '" alt="Graph" />';
echo '<form action="#">'; echo '<form action="#">';
echo '<p class="p_right">Compare with total from this dataset '; echo '<p class="p_right">Compare with total from this dataset ';
echo $this->data['post_rule2']; echo $this->data['post_rule2'];
echo '<select onchange="submit();" name="rule2">'; echo '<select onchange="submit();" name="rule2">';
echo ' <option value="_">None</option>'; echo ' <option value="_">None</option>';
foreach ($this->data['available.rules'] as $key => $rule) { foreach ($this->data['available.rules'] as $key => $rule) {
if ($key === $this->data['selected.rule2']) { if ($key === $this->data['selected.rule2']) {
echo '<option selected="selected" value="' . $key . '">' . $rule['name'] . '</option>'; echo '<option selected="selected" value="' . $key . '">' . $rule['name'] . '</option>';
} else { } else {
echo '<option value="' . $key . '">' . $rule['name'] . '</option>'; echo '<option value="' . $key . '">' . $rule['name'] . '</option>';
}
} }
} echo '</select></p></form>';
echo '</select></p></form>';
echo '</div>'; // end graph content. echo '</div>'; // end graph content.
/**
* Handle table view - - - - - -
*/
$classint = array('odd', 'even'); $i = 0;
echo '<div id="table" class="tabset_content">';
/** if (isset($this->data['pieimgurl'])) {
* Handle table view - - - - - - echo '<img src="' . $this->data['pieimgurl'] . '" alt="Pie chart" />';
*/
$classint = array('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];
} }
echo '<table class="tableview"><tr><th class="value">Value</th><th class="category">Data range</th></tr>';
if ($key === '_') { foreach ($this->data['summaryDataset'] as $key => $value) {
echo '<tr class="total ' . $clint . '"><td class="value">' . $value . '</td><td class="category">' . $keyName . '</td></tr>'; $clint = $classint[$i++ % 2];
} else {
echo '<tr class="' . $clint . '"><td class="value">' . $value . '</td><td class="category">' . $keyName . '</td></tr>';
}
}
echo '</table></div>'; $keyName = $key;
// - - - - - - - End table view - - - - - - - if (array_key_exists($key, $this->data['delimiterPresentation'])) {
$keyName = $this->data['delimiterPresentation'][$key];
}
echo '<div id="debug" >'; if ($key === '_') {
echo '<table class="timeseries">'; echo '<tr class="total ' . $clint . '"><td class="value">' . $value . '</td><td class="category">' . $keyName . '</td></tr>';
echo '<tr><th>Time</th><th>Total</th>'; } else {
foreach ($this->data['topdelimiters'] as $key) { echo '<tr class="' . $clint . '"><td class="value">' . $value . '</td><td class="category">' . $keyName . '</td></tr>';
$keyName = $key; }
if (array_key_exists($key, $this->data['delimiterPresentation'])) {
$keyName = $this->data['delimiterPresentation'][$key];
} }
echo'<th>' . $keyName . '</th>';
}
echo '</tr>';
$i = 0; echo '</table></div>';
foreach ($this->data['debugdata'] as $slot => $dd) { // - - - - - - - End table view - - - - - - -
echo '<tr class="' . ((++$i % 2) == 0 ? 'odd' : 'even') . '">';
echo '<td>' . $dd[0] . '</td>';
echo '<td class="datacontent">' . $dd[1] . '</td>';
echo '<div id="debug" >';
echo '<table class="timeseries">';
echo '<tr><th>Time</th><th>Total</th>';
foreach ($this->data['topdelimiters'] as $key) { foreach ($this->data['topdelimiters'] as $key) {
echo '<td class="datacontent">' . (array_key_exists($key, $this->data['results'][$slot]) ? $keyName = $key;
$this->data['results'][$slot][$key] : '&nbsp;') . '</td>'; if (array_key_exists($key, $this->data['delimiterPresentation'])) {
$keyName = $this->data['delimiterPresentation'][$key];
}
echo'<th>' . $keyName . '</th>';
} }
echo '</tr>'; echo '</tr>';
}
echo '</table>'; $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] : '&nbsp;') . '</td>';
}
echo '</tr>';
}
echo '</table>';
echo '</div>'; // End debug tab content 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 echo '</div>'; // End tab div
$this->includeAtTemplateBase('includes/footer.php'); $this->includeAtTemplateBase('includes/footer.php');
...@@ -42,8 +42,35 @@ $ruleset = new sspmod_statistics_Ruleset($statconfig); ...@@ -42,8 +42,35 @@ $ruleset = new sspmod_statistics_Ruleset($statconfig);
$statrule = $ruleset->getRule($preferRule); $statrule = $ruleset->getRule($preferRule);
$rule = $statrule->getRuleID(); $rule = $statrule->getRuleID();
$dataset = $statrule->getDataset($preferTimeRes, $preferTime); $t = new SimpleSAML_XHTML_Template($config, 'statistics:statistics.tpl.php');
$dataset->setDelimiter($delimiter); $t->data['pageid'] = 'statistics';
$t->data['header'] = 'stat';
$t->data['available.rules'] = $ruleset->availableRulesNames();
$t->data['selected.rule']= $rule;
$t->data['selected.rule2']= $preferRule2;
try {
$dataset = $statrule->getDataset($preferTimeRes, $preferTime);
$dataset->setDelimiter($delimiter);
$dataset->aggregateSummary();
$dataset->calculateMax();
if (array_key_exists('output', $_REQUEST) && $_REQUEST['output'] === 'csv') {
header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="simplesamlphp-data.csv"');
$data = $dataset->getDebugData();
foreach ($data as $de) {
if (isset($de[1])) {
echo '"' . $de[0] . '",' . $de[1] . "\n";
}
}
exit;
}
} catch (Exception $e) {
$t->data['error'] = "No data available";
$t->show();
exit;
}
$delimiter = $dataset->getDelimiter(); $delimiter = $dataset->getDelimiter();
...@@ -53,9 +80,6 @@ $availableFileSlots = $statrule->availableFileSlots($timeres); ...@@ -53,9 +80,6 @@ $availableFileSlots = $statrule->availableFileSlots($timeres);
$timeNavigation = $statrule->getTimeNavigation($timeres, $preferTime); $timeNavigation = $statrule->getTimeNavigation($timeres, $preferTime);
$dataset->aggregateSummary();
$dataset->calculateMax();
$piedata = $dataset->getPieData(); $piedata = $dataset->getPieData();
$datasets = array(); $datasets = array();
...@@ -69,45 +93,33 @@ $maxes[] = $dataset->getMax(); ...@@ -69,45 +93,33 @@ $maxes[] = $dataset->getMax();
if (isset($preferRule2)) { if (isset($preferRule2)) {
$statrule = $ruleset->getRule($preferRule2); $statrule = $ruleset->getRule($preferRule2);
$dataset2 = $statrule->getDataset($preferTimeRes, $preferTime); try {
$dataset2->aggregateSummary(); $dataset2 = $statrule->getDataset($preferTimeRes, $preferTime);
$dataset2->calculateMax(); $dataset2->aggregateSummary();
$dataset2->calculateMax();
$datasets[] = $dataset2->getPercentValues();
$maxes[] = $dataset2->getMax(); $datasets[] = $dataset2->getPercentValues();
$maxes[] = $dataset2->getMax();
} catch (Exception $e) {
$t->data['error'] = "No data available to compare";
$t->show();
exit;
}
} }
$dimx = $statconfig->getValue('dimension.x', 800); $dimx = $statconfig->getValue('dimension.x', 800);
$dimy = $statconfig->getValue('dimension.y', 350); $dimy = $statconfig->getValue('dimension.y', 350);
$grapher = new sspmod_statistics_Graph_GoogleCharts($dimx, $dimy); $grapher = new sspmod_statistics_Graph_GoogleCharts($dimx, $dimy);
if (array_key_exists('output', $_REQUEST) && $_REQUEST['output'] === 'csv') {
header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="simplesamlphp-data.csv"');
$data = $dataset->getDebugData();
foreach ($data as $de) {
if (isset($de[1])) {
echo '"' . $de[0] . '",' . $de[1] . "\n";
}
}
exit;
}
$t = new SimpleSAML_XHTML_Template($config, 'statistics:statistics.tpl.php');
$t->data['pageid'] = 'statistics';
$t->data['header'] = 'stat';
$t->data['imgurl'] = $grapher->show($axis['axis'], $axis['axispos'], $datasets, $maxes); $t->data['imgurl'] = $grapher->show($axis['axis'], $axis['axispos'], $datasets, $maxes);
if (isset($piedata)) { if (isset($piedata)) {
$t->data['pieimgurl'] = $grapher->showPie( $dataset->getDelimiterPresentationPie(), $piedata); $t->data['pieimgurl'] = $grapher->showPie( $dataset->getDelimiterPresentationPie(), $piedata);
} }
$t->data['available.rules'] = $ruleset->availableRulesNames();
$t->data['available.times'] = $statrule->availableFileSlots($timeres); $t->data['available.times'] = $statrule->availableFileSlots($timeres);
$t->data['available.timeres'] = $statrule->availableTimeRes(); $t->data['available.timeres'] = $statrule->availableTimeRes();
$t->data['available.times.prev'] = $timeNavigation['prev']; $t->data['available.times.prev'] = $timeNavigation['prev'];
$t->data['available.times.next'] = $timeNavigation['next']; $t->data['available.times.next'] = $timeNavigation['next'];
$t->data['selected.rule']= $rule;
$t->data['selected.rule2']= $preferRule2;
$t->data['selected.time'] = $fileslot; $t->data['selected.time'] = $fileslot;
$t->data['selected.timeres'] = $timeres; $t->data['selected.timeres'] = $timeres;
$t->data['selected.delimiter'] = $delimiter; $t->data['selected.delimiter'] = $delimiter;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment