diff --git a/module/project/control.php b/module/project/control.php index 0f5d33580b..99701e3352 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -37,18 +37,26 @@ class project extends control * @access public * @return void */ - public function index($locate = 'yes', $status = 'undone', $projectID = 0) + public function index($locate = 'yes', $status = 'undone', $projectID = 0, $orderBy = 'code_asc', $recTotal = 0, $recPerPage = 10, $pageID = 1) { if($locate == 'yes') $this->locate($this->createLink('project', 'task')); if($this->projects) $this->commonAction($projectID); $this->session->set('projectList', $this->app->getURI(true)); + /* Load pager and get tasks. */ + $this->app->loadClass('pager', $static = true); + $pager = new pager($recTotal, $recPerPage, $pageID); + $this->app->loadLang('my'); $this->view->title = $this->lang->project->allProject; $this->view->position[] = $this->lang->project->allProject; - $this->view->projectStats = $this->project->getProjectStats($status); + $this->view->projectStats = $this->project->getProjectStats($status, 0, 30, $orderBy, $pager); $this->view->projectID = $projectID; + $this->view->pager = $pager; + $this->view->recTotal = $pager->recTotal; + $this->view->recPerPage = $pager->recPerPage; + $this->view->orderBy = $orderBy; $this->view->users = $this->loadModel('user')->getPairs('noletter'); $this->view->status = $status; diff --git a/module/project/model.php b/module/project/model.php index e6d83ecac8..f6758fb51b 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -610,13 +610,27 @@ class projectModel extends model * Get project stats. * * @param string $status + * @param int $productID + * @param int $itemCounts + * @param string $orderBy + * @param int $pager * @access public - * @return array + * @return void */ - public function getProjectStats($status = 'undone', $productID = 0, $itemCounts = 30) + public function getProjectStats($status = 'undone', $productID = 0, $itemCounts = 30, $orderBy = 'code', $pager = null) { /* Init vars. */ $projects = $this->getList($status, 0, $productID); + foreach($projects as $projectID => $project) + { + if(!$this->checkPriv($project)) unset($projects[$projectID]); + } + $projects = $this->dao->select('*')->from(TABLE_PROJECT) + ->where('id')->in(array_keys($projects)) + ->orderBy($orderBy) + ->page($pager) + ->fetchAll('id'); + $projectKeys = array_keys($projects); $stats = array(); $hours = array(); @@ -681,12 +695,6 @@ class projectModel extends model /* Process projects. */ foreach($projects as $key => $project) { - if(!$this->checkPriv($project)) - { - unset($projects[$key]); - continue; - } - // Process the end time. $project->end = date("Y-m-d", strtotime($project->end)); diff --git a/module/project/view/index.html.php b/module/project/view/index.html.php index 1ff40f6a0a..8c93619c33 100644 --- a/module/project/view/index.html.php +++ b/module/project/view/index.html.php @@ -11,7 +11,6 @@ ?> -
createLink('project', 'create'), " " . $lang->project->create,'', "class='btn'") ?> @@ -26,15 +25,16 @@
'> - +
+ recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?> - - - - - - + + + + + + @@ -74,6 +74,7 @@ " . html::selectButton() . '';?> project->batchEdit);?> +
show();?>
idAB;?>project->name;?>project->code;?>project->PM;?>project->end;?>project->status;?>idAB);?>project->name);?>project->code);?>project->PM);?>project->end);?>project->status);?> project->totalEstimate;?> project->totalConsumed;?> project->totalLeft;?>