* Finish task#53653
This commit is contained in:
@@ -26,13 +26,16 @@ class program extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function browse($status = 'all', $orderBy = 'order_asc')
|
||||
public function browse($status = 'all', $orderBy = 'order_asc', $recTotal = 0, $recPerPage = 10, $pageID = 1)
|
||||
{
|
||||
if(common::hasPriv('program', 'create')) $this->lang->pageActions = html::a($this->createLink('program', 'create'), "<i class='icon icon-plus'></i> " . $this->lang->program->create, '', "class='btn btn-primary create-program-btn'");
|
||||
|
||||
$this->session->set('programList', $this->app->getURI(true), 'program');
|
||||
$this->session->set('projectList', $this->app->getURI(true), 'program');
|
||||
|
||||
$this->app->loadClass('pager', $static = true);
|
||||
$pager = new pager($recTotal, $recPerPage, $pageID);
|
||||
|
||||
$programType = $this->cookie->programType ? $this->cookie->programType : 'bylist';
|
||||
|
||||
if($programType === 'bygrid')
|
||||
@@ -41,7 +44,10 @@ class program extends control
|
||||
}
|
||||
else
|
||||
{
|
||||
$programs = $this->program->getList($status, $orderBy, null, true);
|
||||
$topPrograms = $this->program->getList($status, $orderBy, $pager, 'topProgram');
|
||||
$programIDs = array();
|
||||
foreach($topPrograms as $programID => $program) $programIDs[] = $programID;
|
||||
$programs = $this->program->getList($status, $orderBy, null, 'byTopIDs', $programIDs);
|
||||
}
|
||||
|
||||
/* Get PM id list. */
|
||||
@@ -58,6 +64,7 @@ class program extends control
|
||||
$this->view->programs = $programs;
|
||||
$this->view->status = $status;
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->pager = $pager;
|
||||
$this->view->users = $this->user->getPairs('noletter');
|
||||
$this->view->userIdPairs = $this->user->getPairs('noletter|showid');
|
||||
$this->view->usersAvatar = $this->user->getAvatarPairs('');
|
||||
|
||||
@@ -43,6 +43,10 @@ $(function()
|
||||
$('#programForm').removeClass('has-row-checked');
|
||||
}
|
||||
});
|
||||
|
||||
var myPager = $('.pager').data('zui.pager');
|
||||
myPager.lang.pageSize = pageSize;
|
||||
myPager.set();
|
||||
});
|
||||
|
||||
function showEditCheckbox(show)
|
||||
|
||||
@@ -71,6 +71,7 @@ $lang->program->moreProgram = 'More program';
|
||||
$lang->program->stakeholderType = 'Stakeholder type';
|
||||
$lang->program->parentBudget = 'Parent program surplus budget:';
|
||||
$lang->program->isStakeholderKey = 'Key stakeholder';
|
||||
$lang->program->pageSize = '<strong>{recPerPage}</strong> Top Programs per page';
|
||||
|
||||
$lang->program->stakeholderTypeList['inside'] = 'Inside';
|
||||
$lang->program->stakeholderTypeList['outside'] = 'Outside';
|
||||
|
||||
@@ -71,6 +71,7 @@ $lang->program->moreProgram = '更多项目集';
|
||||
$lang->program->stakeholderType = '干系人类型';
|
||||
$lang->program->parentBudget = '所属项目集剩余预算:';
|
||||
$lang->program->isStakeholderKey = '关键干系人';
|
||||
$lang->program->pageSize = '每页 <strong>{recPerPage}</strong> 项顶级项目集';
|
||||
|
||||
$lang->program->stakeholderTypeList['inside'] = '内部';
|
||||
$lang->program->stakeholderTypeList['outside'] = '外部';
|
||||
|
||||
@@ -133,8 +133,15 @@ class programModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getList($status = 'all', $orderBy = 'id_asc', $pager = NULL)
|
||||
public function getList($status = 'all', $orderBy = 'id_asc', $pager = NULL, $filter = '', $filterParams = '')
|
||||
{
|
||||
$filterSql = '';
|
||||
if($filter === 'byTopIDs')
|
||||
{
|
||||
foreach($filterParams as $topID) $filterSql .= "path like ',{$topID},%' or ";
|
||||
if($filterSql) $filterSql = '(' . substr($filterSql, 0, -3) . ')'; // Remove last or.
|
||||
}
|
||||
|
||||
return $this->dao->select('*')->from(TABLE_PROGRAM)
|
||||
->where('deleted')->eq(0)
|
||||
->andWhere('vision')->eq($this->config->vision)
|
||||
@@ -146,6 +153,8 @@ class programModel extends model
|
||||
->markRight(2)
|
||||
->beginIF($status != 'all')->andWhere('status')->eq($status)->fi()
|
||||
->beginIF(!$this->cookie->showClosed)->andWhere('status')->ne('closed')->fi()
|
||||
->beginIF($filter === 'topProgram')->andWhere('parent')->eq(0)->fi()
|
||||
->beginIF(!empty($filterSql))->andWhere($filterSql)->fi()
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
->fetchAll('id');
|
||||
@@ -240,15 +249,15 @@ class programModel extends model
|
||||
foreach($products as $product)
|
||||
{
|
||||
$product->plans = zget($plans, $product->id, array());
|
||||
|
||||
|
||||
/* Convert predefined HTML entities to characters. */
|
||||
!empty($product->plans) && array_map(function($planVal)
|
||||
{
|
||||
return $planVal->title = htmlspecialchars_decode($planVal->title, ENT_QUOTES);
|
||||
},
|
||||
},
|
||||
$product->plans);
|
||||
$product->name = htmlspecialchars_decode($product->name, ENT_QUOTES);
|
||||
|
||||
|
||||
$product->releases = zget($releases, $product->id, array());
|
||||
$projects = zget($projectGroup, $product->id, array());
|
||||
foreach($projects as $project)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
<?php js::set('orderBy', $orderBy);?>
|
||||
<?php js::set('edit', $lang->edit);?>
|
||||
<?php js::set('selectAll', $lang->selectAll);?>
|
||||
<?php js::set('pageSize', $lang->program->pageSize);?>
|
||||
<?php if($programType == 'bygrid'):?>
|
||||
<style> #mainMenu{padding-left: 10px; padding-right: 10px;} </style>
|
||||
<?php endif;?>
|
||||
|
||||
@@ -138,6 +138,7 @@
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class='table-footer'><?php $pager->show('right', 'pagerjs');?></div>
|
||||
</form>
|
||||
<style>
|
||||
#programTableList.sortable-sorting > tr {opacity: 0.7}
|
||||
|
||||
Reference in New Issue
Block a user