Add message if there are no results to show

Also add more annotations.

SPR-317, GitHub Issue #22
This commit is contained in:
Michael Große
2016-02-18 15:45:02 +01:00
parent 76e2c9ad77
commit f87e1c10e6
2 changed files with 51 additions and 35 deletions

View File

@ -28,6 +28,8 @@ $lang['sort'] = 'Sort by this column';
$lang['next'] = 'Next page'; $lang['next'] = 'Next page';
$lang['prev'] = 'Previous page'; $lang['prev'] = 'Previous page';
$lang['none'] = 'Nothing found';
$lang['tablefilteredby'] = 'Filtered by %s'; $lang['tablefilteredby'] = 'Filtered by %s';
$lang['tableresetfilter'] = 'Show all (remove filter/sort)'; $lang['tableresetfilter'] = 'Show all (remove filter/sort)';

View File

@ -83,8 +83,6 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
if($mode != 'xhtml') return false; if($mode != 'xhtml') return false;
if(!$data) return false; if(!$data) return false;
$clist = $data['cols'];
//reset counters //reset counters
$this->sums = array(); $this->sums = array();
@ -92,14 +90,14 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
$search = new SearchConfig($data); $search = new SearchConfig($data);
$data = $search->getConf(); $data = $search->getConf();
$rows = $search->execute(); $rows = $search->execute();
$cnt = count($rows); $cnt = $search->getCount();
if ($cnt === 0) { if ($cnt === 0) {
//$this->nullList($data, $clist, $R); $this->nullList($data, $mode, $renderer);
//return true; return true;
} }
$this->renderPreTable($mode, $renderer, $clist, $data); $this->renderPreTable($mode, $renderer, $data);
$this->renderRows($mode, $renderer, $data, $rows); $this->renderRows($mode, $renderer, $data, $rows);
$this->renderPostTable($mode, $renderer, $data, $cnt); $this->renderPostTable($mode, $renderer, $data, $cnt);
} catch (StructException $e) { } catch (StructException $e) {
@ -114,15 +112,14 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
* *
* @param $mode * @param $mode
* @param Doku_Renderer $renderer * @param Doku_Renderer $renderer
* @param $clist
* @param $data * @param $data
*/ */
protected function renderPreTable($mode, Doku_Renderer $renderer, $clist, $data) { protected function renderPreTable($mode, Doku_Renderer $renderer, $data) {
$this->startScope($mode, $renderer); $this->startScope($mode, $renderer);
$this->showActiveFilters($mode, $renderer); $this->showActiveFilters($mode, $renderer);
$this->startTable($mode, $renderer); $this->startTable($mode, $renderer);
$renderer->tablethead_open(); $renderer->tablethead_open();
$this->buildColumnHeaders($mode, $renderer, $clist, $data); $this->buildColumnHeaders($mode, $renderer, $data);
$this->addDynamicFilters($mode, $renderer, $data); $this->addDynamicFilters($mode, $renderer, $data);
$renderer->tablethead_close(); $renderer->tablethead_close();
} }
@ -142,9 +139,9 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
/** /**
* if limit was set, add control * if limit was set, add control
* *
* @param $mode * @param string $mode the mode of the renderer
* @param Doku_Renderer $renderer * @param Doku_Renderer $renderer the renderer
* @param $data * @param array $data the configuration of the table/search
* @param $rowcnt * @param $rowcnt
*/ */
protected function addLimitControls($mode, Doku_Renderer $renderer, $data, $rowcnt) { protected function addLimitControls($mode, Doku_Renderer $renderer, $data, $rowcnt) {
@ -180,8 +177,8 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
} }
/** /**
* @param $mode * @param string $mode the mode of the renderer
* @param Doku_Renderer $renderer * @param Doku_Renderer $renderer the renderer
*/ */
protected function showActiveFilters($mode, Doku_Renderer $renderer) { protected function showActiveFilters($mode, Doku_Renderer $renderer) {
global $ID; global $ID;
@ -214,9 +211,9 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
} }
/** /**
* @param $mode * @param string $mode the mode of the renderer
* @param Doku_Renderer $renderer * @param Doku_Renderer $renderer the renderer
* @param $data * @param array $data the configuration of the table/search
*/ */
protected function addDynamicFilters($mode, Doku_Renderer $renderer, $data) { protected function addDynamicFilters($mode, Doku_Renderer $renderer, $data) {
if ($mode != 'xhtml') return; if ($mode != 'xhtml') return;
@ -266,21 +263,20 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
} }
/** /**
* @param $mode * @param string $mode the mode of the renderer
* @param Doku_Renderer $renderer * @param Doku_Renderer $renderer the renderer
*/ */
private function startTable($mode, Doku_Renderer $renderer) { private function startTable($mode, Doku_Renderer $renderer) {
$renderer->table_open(); $renderer->table_open();
} }
/** /**
* @param $mode * @param string $mode the mode of the renderer
* @param Doku_Renderer $renderer * @param Doku_Renderer $renderer the renderer
* @param $clist * @param array $data the configuration of the table/search
* @param $data
* *
*/ */
protected function buildColumnHeaders($mode, Doku_Renderer $renderer, $clist, $data) { protected function buildColumnHeaders($mode, Doku_Renderer $renderer, $data) {
global $ID; global $ID;
$renderer->tablerow_open(); $renderer->tablerow_open();
@ -292,7 +288,7 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
} }
foreach($data['headers'] as $num => $head) { foreach($data['headers'] as $num => $head) {
$ckey = $clist[$num]; $ckey = $data['cols'][$num];
$width = ''; $width = '';
if(isset($data['widths'][$num]) AND $data['widths'][$num] != '-') { if(isset($data['widths'][$num]) AND $data['widths'][$num] != '-') {
@ -321,7 +317,10 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
$renderer->tablerow_close(); $renderer->tablerow_close();
} }
/**
* @param string $mode the mode of the renderer
* @param Doku_Renderer $renderer the renderer
*/
protected function startScope($mode, \Doku_Renderer $renderer) { protected function startScope($mode, \Doku_Renderer $renderer) {
if ($mode == 'xhtml') { if ($mode == 'xhtml') {
$renderer->doc .= '<div class="table structaggegation">'; $renderer->doc .= '<div class="table structaggegation">';
@ -331,10 +330,10 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
/** /**
* if summarize was set, add sums * if summarize was set, add sums
* *
* @param $mode * @param string $mode the mode of the renderer
* @param Doku_Renderer $renderer * @param Doku_Renderer $renderer the renderer
* @param $data * @param array $data the configuration of the table/search
* @param $sums * @param array $sums the summarized output of the numerical fields
*/ */
private function summarize($mode, \Doku_Renderer $renderer, $data, $sums) { private function summarize($mode, \Doku_Renderer $renderer, $data, $sums) {
if($data['summarize']) { if($data['summarize']) {
@ -362,8 +361,8 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
} }
/** /**
* @param $mode * @param string $mode the mode of the renderer
* @param Doku_Renderer $renderer * @param Doku_Renderer $renderer the renderer
* *
*/ */
private function finishTableAndScope($mode, Doku_Renderer $renderer) { private function finishTableAndScope($mode, Doku_Renderer $renderer) {
@ -374,9 +373,9 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
} }
/** /**
* @param $mode * @param string $mode the mode of the renderer
* @param Doku_Renderer $renderer * @param Doku_Renderer $renderer the renderer
* @param $data * @param array $data the configuration of the table/search
* @param $rows * @param $rows
* *
*/ */
@ -409,6 +408,21 @@ class syntax_plugin_struct_table extends DokuWiki_Syntax_Plugin {
} }
$renderer->tabletbody_close(); $renderer->tabletbody_close();
} }
/**
* @param array $data the configuration of the table/search
* @param string $mode the mode of the renderer
* @param Doku_Renderer $renderer the renderer
*/
private function nullList($data, $mode, Doku_Renderer $renderer) {
$this->renderPreTable($mode, $renderer, $data);
$renderer->tablerow_open();
$renderer->tablecell_open(count($data['cols']) + $data['rownumbers'], 'center');
$renderer->cdata($this->getLang('none'));
$renderer->tablecell_close();
$renderer->tablerow_close();
$renderer->table_close();
}
} }
// vim:ts=4:sw=4:et: // vim:ts=4:sw=4:et: