diff --git a/module/dataview/js/browse.js b/module/dataview/js/browse.js index a89fc596c6..f6e43e3af5 100644 --- a/module/dataview/js/browse.js +++ b/module/dataview/js/browse.js @@ -96,7 +96,7 @@ function buildTable(resp) for(var field in resp.fields) { var fieldName = field; - if(dataview && checkObjProp(dataview, fieldSettings)) fieldName = dataview.fieldSettings[field].name || field; + if(dataview && checkObjProp(dataview, 'fieldSettings')) fieldName = dataview.fieldSettings[field].name || field; if(dataview && checkObjProp(dataview, langs) && dataview.langs != '') { var langs = JSON.parse(dataview.langs); diff --git a/module/pivot/config.php b/module/pivot/config.php index 97af3a134f..885c72c3d8 100644 --- a/module/pivot/config.php +++ b/module/pivot/config.php @@ -3,6 +3,7 @@ $config->pivot = new stdclass(); $config->pivot->widthInput = 128; $config->pivot->widthDate = 248; $config->pivot->recPerPage = 50; +$config->pivot->recPerPageList = array(1,5,10,15,20,25,30,35,40,45,50,100,200,500,1000,2000); $config->pivot->fileType = array('xlsx' => 'xlsx', 'xls' => 'xls', 'html' => 'html', 'mht' => 'mht'); diff --git a/module/pivot/control.php b/module/pivot/control.php index f770dddc36..4090ece2e2 100644 --- a/module/pivot/control.php +++ b/module/pivot/control.php @@ -318,4 +318,19 @@ class pivot extends control $this->pivot->buildPivotTable($data, $configs, $page); } + /** + * Set pager param to this->view. + * + * @access public + * @return void + */ + public function setPagerParam2View($pager) + { + $this->view->recTotal = $pager->recTotal; + $this->view->recPerPage = $pager->recPerPage; + $this->view->page = $pager->pageID; + $this->view->leftPage = $pager->pageID - 1; + $this->view->rightPage = $pager->pageID + 1; + $this->view->pageTotal = ceil($pager->recTotal / $pager->recPerPage); + } } diff --git a/module/pivot/lang/de.php b/module/pivot/lang/de.php index 7aebca99fa..5083b02e48 100644 --- a/module/pivot/lang/de.php +++ b/module/pivot/lang/de.php @@ -77,6 +77,7 @@ $lang->pivot->showOrigin = 'Show Origin Data'; $lang->pivot->showOriginItem = 'Show origin item'; $lang->pivot->recTotalTip = ' %s items in total'; +$lang->pivot->recPerPageTip = " %s per page"; $lang->pivot->showOriginPlaceholder = new stdclass(); $lang->pivot->showOriginPlaceholder->slice = 'No need to configure'; diff --git a/module/pivot/lang/en.php b/module/pivot/lang/en.php index 078de8afd5..cf85a8187e 100644 --- a/module/pivot/lang/en.php +++ b/module/pivot/lang/en.php @@ -77,6 +77,7 @@ $lang->pivot->showOrigin = 'Show Origin Data'; $lang->pivot->showOriginItem = 'Show origin item'; $lang->pivot->recTotalTip = ' %s items in total'; +$lang->pivot->recPerPageTip = " %s per page"; $lang->pivot->showOriginPlaceholder = new stdclass(); $lang->pivot->showOriginPlaceholder->slice = 'No need to configure'; diff --git a/module/pivot/lang/fr.php b/module/pivot/lang/fr.php index 35da922554..7ec1d431e3 100644 --- a/module/pivot/lang/fr.php +++ b/module/pivot/lang/fr.php @@ -77,6 +77,7 @@ $lang->pivot->showOrigin = 'Show Origin Data'; $lang->pivot->showOriginItem = 'Show origin item'; $lang->pivot->recTotalTip = ' %s items in total'; +$lang->pivot->recPerPageTip = " %s per page"; $lang->pivot->showOriginPlaceholder = new stdclass(); $lang->pivot->showOriginPlaceholder->slice = 'No need to configure'; diff --git a/module/pivot/lang/zh-cn.php b/module/pivot/lang/zh-cn.php index f155eddd2f..820e6890fb 100644 --- a/module/pivot/lang/zh-cn.php +++ b/module/pivot/lang/zh-cn.php @@ -77,6 +77,7 @@ $lang->pivot->showOrigin = '查看原始数据'; $lang->pivot->showOriginItem = '展示原始条目'; $lang->pivot->recTotalTip = '共 %s 项'; +$lang->pivot->recPerPageTip = "每页 %s 项"; $lang->pivot->showOriginPlaceholder = new stdclass(); $lang->pivot->showOriginPlaceholder->slice = '展示原始条目后无需配置切片'; diff --git a/module/pivot/model.php b/module/pivot/model.php index 761ce2303e..bc2dc4618b 100644 --- a/module/pivot/model.php +++ b/module/pivot/model.php @@ -2406,37 +2406,90 @@ class pivotModel extends model if($page) { - $recTotal = $end - $start + 1; - $itemCountTip = sprintf($this->lang->pivot->recTotalTip, $itemCount); - + $recTotal = $end - $start + 1; $leftPage = $page - 1; $rightPage = $page + 1; - $leftPageClass = $page == 1 ? 'disabled' : ''; - $rightPageClass = $page == $pageTotal ? 'disabled' : ''; - if($recTotal) $table .= ""; + if($recTotal) $table .= $this->getTablePager($itemCount, $leftPage, $rightPage, $page, $pageTotal); } echo $table; } + public function getTablePager($itemCount, $leftPage, $rightPage, $page, $pageTotal) + { + $itemCountTip = sprintf($this->lang->pivot->recTotalTip, $itemCount); + $leftPageClass = $page == 1 ? 'disabled' : ''; + $rightPageClass = $page == $pageTotal ? 'disabled' : ''; + + $pager = " + "; + + return $pager; + } + + public function getFullTablePager($recTotal, $recPerPage, $page, $leftPage, $rightPage, $pageTotal, $onclick = 'queryPivotByPager(this)') + { + $recTotalTip = sprintf($this->lang->pivot->recTotalTip, $recTotal); + $recPerPageTip = sprintf($this->lang->pivot->recPerPageTip, $recPerPage); + $leftPageClass = $page == 1 ? 'disabled' : ''; + $rightPageClass = $page == $pageTotal ? 'disabled' : ''; + + $dropdownMenu = ''; + foreach($this->config->pivot->recPerPageList as $perPage) + { + $active = $perPage == $recPerPage ? 'active' : ''; + $dropdownMenu .= "
  • {$perPage}
  • "; + } + + $pager = " + "; + + return $pager; + } + /** * replace defined table names. *