This commit is contained in:
hufangzhou
2021-01-20 16:12:27 +08:00
17 changed files with 112 additions and 74 deletions
@@ -24,14 +24,14 @@
<canvas width="100" height="100" style="width: 100px; height: 100px;"></canvas>
<div class="progress-info">
<small><?php echo $lang->product->all;?></small>
<strong><?php echo empty($total) ? 0 : html::a($this->createLink('product', 'all', "program=0&browseType=all"), $total);?></strong>
<strong><?php echo empty($total) ? 0 : html::a($this->createLink('product', 'all', "browseType=all"), $total);?></strong>
</div>
</div>
</div>
<div class="col-6 text-middle">
<ul class="list-unstyled status-list">
<li><span class="status-product status-unclosed"><?php echo $lang->product->statusList['normal'];?></span> &nbsp; <strong><?php echo empty($normal) ? 0 : html::a($this->createLink('product', 'all', "program=0&browseType=noclosed"), $normal);?></strong></li>
<li><span class="status-product status-closed"><?php echo $lang->product->statusList['closed'];?></span> &nbsp; <strong><?php echo empty($closed) ? 0 : html::a($this->createLink('product', 'all', "program=0&browseType=closed"), $closed);?></strong></li>
<li><span class="status-product status-unclosed"><?php echo $lang->product->statusList['normal'];?></span> &nbsp; <strong><?php echo empty($normal) ? 0 : html::a($this->createLink('product', 'all', "browseType=noclosed"), $normal);?></strong></li>
<li><span class="status-product status-closed"><?php echo $lang->product->statusList['closed'];?></span> &nbsp; <strong><?php echo empty($closed) ? 0 : html::a($this->createLink('product', 'all', "browseType=closed"), $closed);?></strong></li>
</ul>
</div>
</div>
+1 -1
View File
@@ -35,7 +35,7 @@
</td>
<?php if($longBlock):?>
<td><?php echo $project->teamCount;?></td>
<td><?php echo $project->consumed . ' ' . $config->hourUnit;?></td>
<td><?php echo $project->consumed;?></td>
<td><?php echo $project->budget . ' ' . zget($lang->program->unitList, $project->budgetUnit);?></td>
<td><?php echo $project->leftStories;?></td>
<td><?php echo $project->leftTasks;?></td>
@@ -49,10 +49,10 @@
<li class='dropdown'>
<a href='javascript:;' data-toggle='context-dropdown' class='panel-action'><i class='icon icon-ellipsis-v'></i></a>
<ul class='dropdown-menu pull-right cards-menu'>
<li><?php common::printIcon('program', 'PRJGroup', "projectID=$project->id", $project, 'button', 'group');?></li>
<li><?php common::printIcon('program', 'PRJManageMembers', "projectID=$project->id", $project, 'button', 'persons');?></li>
<li><?php common::printIcon('program', 'PRJGroup', "projectID=$project->id", $project, 'button', 'group', '', '', '', '', '', $project->id);?></li>
<li><?php common::printIcon('program', 'PRJManageMembers', "projectID=$project->id", $project, 'button', 'persons', '', '', '', '', '', $project->id);?></li>
<li><?php common::printicon('program', 'PRJActivate', "projectid=$project->id", $project, 'button', '', '', 'iframe', true);?></li>
<li><?php common::printIcon('program', 'PRJEdit', "projectID=$project->id", $project, 'button', ' icon-edit');?></li>
<li><?php common::printIcon('program', 'PRJEdit', "projectID=$project->id", $project, 'button', ' icon-edit', '', '', '', '', '', $project->id);?></li>
<li><?php common::printIcon('program', 'PRJStart', "projectID=$project->id", $project, 'button', ' icon-play', '', 'iframe', true);?></li>
<li><?php common::printIcon('program', 'PRJSuspend', "projectID=$project->id", $project, 'button', ' icon-pause', '', 'iframe', true);?></li>
<li><?php common::printIcon('program', 'PRJClose', "projectID=$project->id", $project, 'button', ' icon-off', '', 'iframe', true);?></li>
+3 -3
View File
@@ -51,9 +51,9 @@
<span class="status-project status-<?php echo $execution->status?>" title='<?php echo $statusName;?>'><?php echo $statusName;?></span>
<?php endif;?>
</td>
<td class="c-hours"><?php echo $execution->hours->totalEstimate . ' ' . $config->hourUnit;?></td>
<td class="c-hours"><?php echo $execution->hours->totalConsumed . ' ' . $config->hourUnit;?></td>
<td class="c-hours"><?php echo $execution->hours->totalLeft . ' ' . $config->hourUnit;?></td>
<td class="c-hours"><?php echo $execution->hours->totalEstimate;?></td>
<td class="c-hours"><?php echo $execution->hours->totalConsumed;?></td>
<td class="c-hours"><?php echo $execution->hours->totalLeft;?></td>
<?php endif;?>
<td class="c-progress">
<div class="progress progress-text-left">
+1 -1
View File
@@ -46,7 +46,7 @@
<td class='c-pri <?php if($longBlock) echo "c-pri-long"?>'><span class='label-pri label-pri-<?php echo $task->pri;?>' title='<?php echo zget($lang->task->priList, $task->pri, $task->pri)?>'><?php echo zget($lang->task->priList, $task->pri, $task->pri)?></span></td>
<td class='c-name' style='color: <?php echo $task->color?>' title='<?php echo $task->name?>'><?php echo html::a($this->createLink('task', 'view', "taskID=$task->id", '', '', $task->PRJ), $task->name)?></td>
<?php if($longBlock):?>
<td class='c-estimate text-center'><?php echo $task->estimate . ' ' . $config->hourUnit;?></td>
<td class='c-estimate text-center'><?php echo $task->estimate;?></td>
<td class='c-deadline'><?php if(substr($task->deadline, 0, 4) > 0) echo $task->deadline;?></td>
<?php endif;?>
<?php $status = $this->processStatus('task', $task);?>
+3 -3
View File
@@ -46,7 +46,7 @@
<div class="row tiles">
<div class="col tile">
<div class="tile-title"><?php echo $lang->block->myTask?></div>
<div class="tile-amount"><?php echo empty($tasks) ? 0 : html::a($this->createLink('my', 'task', 'type=assignedTo'), (int)$tasks);?></div>
<div class="tile-amount"><?php echo empty($tasks) ? 0 : html::a($this->createLink('my', 'work', 'mode=task'), (int)$tasks);?></div>
<?php if(!empty($delay['task'])):?>
<div class="tile-info">
<span class="label label-danger label-outline"><?php echo $lang->block->delayed . ' ' . $delay['task']?></span>
@@ -55,7 +55,7 @@
</div>
<div class="col tile">
<div class="tile-title"><?php echo $lang->block->myBug?></div>
<div class="tile-amount"><?php echo empty($bugs) ? 0 : html::a($this->createLink('my', 'bug', 'type=assignedTo'), (int)$bugs);?></div>
<div class="tile-amount"><?php echo empty($bugs) ? 0 : html::a($this->createLink('my', 'work', 'mode=bug'), (int)$bugs);?></div>
<?php if(!empty($delay['bug'])):?>
<div class="tile-info">
<span class="label label-danger label-outline"><?php echo $lang->block->delayed . ' ' . $delay['bug']?></span>
@@ -64,7 +64,7 @@
</div>
<div class="col tile">
<div class="tile-title"><?php echo $lang->block->myStory?></div>
<div class="tile-amount"><?php echo empty($stories) ? 0 : html::a($this->createLink('my', 'story', 'type=assignedTo'), (int)$stories);?></div>
<div class="tile-amount"><?php echo empty($stories) ? 0 : html::a($this->createLink('my', 'work', 'mode=story'), (int)$stories);?></div>
</div>
</div>
</div>
+11 -7
View File
@@ -924,7 +924,7 @@ $lang->menu->scrum->ci = '代码|repo|browse';
$lang->menu->scrum->projectbuild = array('link' => '版本|projectbuild|browse|project={PROJECT}');
$lang->menu->scrum->projectrelease = array('link' => '发布|projectrelease|browse');
$lang->menu->scrum->other = array('link' => '其他|project|other', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'issue,risk,stakeholder');
$lang->menu->scrum->projectsetting = array('link' => '设置|program|prjview|project={PROJECT}');
$lang->menu->scrum->projectsetting = array('link' => '设置|program|prjview|project={PROJECT}', 'subModule' => 'workestimation,durationestimation,budget,pssp', 'alias' => 'prjedit,prjmanageproducts,prjgroup,prjmanagemembers,prjmanageview,prjmanagepriv');
$lang->scrum = new stdclass();
$lang->scrum->subMenu = new stdclass();
@@ -934,7 +934,14 @@ $lang->scrum->subMenu->other->risk = array('link' => '风险|risk|browse|
$lang->scrum->subMenu->other->stakeholder = array('link' => '干系人|stakeholder|browse|', 'subModule' => 'stakeholder');
$lang->scrum->setMenu = new stdclass();
$lang->scrum->setMenu->view = array('link' => '概况|program|prjview|project={PROJECT}');
$lang->scrum->setMenu->view = array('link' => '概况|program|prjview|project={PROJECT}', 'alias' => 'prjedit');
$lang->scrum->setMenu->products = array('link' => '产品|program|PRJManageProducts|project={PROJECT}', 'alias' => 'prjmanageproducts');
$lang->scrum->setMenu->group = array('link' => '权限|program|PRJGroup|project={PROJECT}', 'alias' => 'prjgroup,prjmanageview,prjmanagepriv');
$lang->scrum->setMenu->members = array('link' => '团队|program|PRJManageMembers|project={PROJECT}', 'alias' => 'prjmanagemembers');
$lang->scrum->setMenu->whitelist = array('link' => '白名单|program|PRJWhitelist|project={PROJECT}', 'subModule' => 'personnel');
$lang->scrum->setMenu->workestimation = '工作量估算|workestimation|index|project={PROJECT}';
$lang->scrum->setMenu->duration = array('link' => '工期估算|durationestimation|index|project={PROJECT}', 'subModule' => 'durationestimation');
$lang->scrum->setMenu->budget = array('link' => '费用估算|budget|summary|', 'subModule' => 'budget');
/* Waterfall menu. */
$lang->menu->waterfall = new stdclass();
@@ -950,7 +957,7 @@ $lang->menu->waterfall->qa = '测试|qa|index';
$lang->menu->waterfall->projectrelease = array('link' => '发布|projectrelease|browse');
$lang->menu->waterfall->projectbuild = array('link' => '版本|projectbuild|browse|project={PROJECT}');
$lang->menu->waterfall->other = array('link' => '其他|project|other', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'issue,risk,stakeholder,nc');
$lang->menu->waterfall->projectsetting = array('link' => '设置|program|prjview|project={PROJECT}', 'subModule' => 'workestimation,durationestimation,budget,pssp');
$lang->menu->waterfall->projectsetting = array('link' => '设置|program|prjview|project={PROJECT}', 'subModule' => 'workestimation,durationestimation,budget,pssp', 'alias' => 'prjedit,prjmanageproducts,prjgroup,prjmanagemembers,prjmanageview,prjmanagepriv');
$lang->waterfall = new stdclass();
$lang->waterfall->subMenu = new stdclass();
@@ -960,10 +967,7 @@ $lang->waterfall->subMenu->other->risk = array('link' => '风险|risk|browse|',
$lang->waterfall->subMenu->other->stakeholder = array('link' => '干系人|stakeholder|browse|', 'subModule' => 'stakeholder');
$lang->waterfall->setMenu = new stdclass();
$lang->waterfall->setMenu->view = array('link' => '概况|program|prjview|project={PROJECT}');
$lang->waterfall->setMenu->workestimation = '工作量估算|workestimation|index|project={PROJECT}';
$lang->waterfall->setMenu->duration = array('link' => '工期估算|durationestimation|index|project={PROJECT}', 'subModule' => 'durationestimation');
$lang->waterfall->setMenu->budget = array('link' => '费用估算|budget|summary|', 'subModule' => 'budget');
$lang->waterfall->setMenu = $lang->scrum->setMenu;
$lang->waterfallproduct = new stdclass();
$lang->workestimation = new stdclass();
+1 -11
View File
@@ -629,14 +629,6 @@ class commonModel extends model
{
global $app, $lang, $config;
/* If program, return.*/
if($moduleName == 'program' and strpos($methodName, 'prj') !== false) $lang->program->menu = $lang->PRJ->menu;
if($moduleName == 'program' and $methodName == 'prjview')
{
$moduleIndex = array_search('program', $lang->noMenuModule);
if($moduleIndex !== false) unset($lang->noMenuModule[$moduleIndex]);
$lang->navGroup->program = 'project';
}
if($moduleName == 'product' and $methodName == 'create') return;
/* Set the main main menu. */
@@ -767,7 +759,6 @@ class commonModel extends model
$moduleName = $app->rawModule;
$methodName = $app->rawMethod;
$mainMenu = $moduleName;
if($moduleName == 'program' and $methodName != 'prjview') return;
if(isset($lang->menugroup->$moduleName)) $mainMenu = $lang->menugroup->$moduleName;
/* Set main menu by group. */
@@ -2418,12 +2409,11 @@ EOD;
if(empty($program)) return;
if($program->model == 'waterfall')
{
if($moduleName == 'program' and $methodName == 'prjview') $lang->program->menu = $lang->waterfall->setMenu;
$lang->$moduleName->menu = self::processMenuVars($lang->$moduleName->menu);
}
if($program->model == 'scrum')
{
if($moduleName == 'program' and $methodName == 'prjview') $lang->program->menu = $lang->scrum->setMenu;
$lang->$moduleName->menu = self::processMenuVars($lang->$moduleName->menu);
unset($lang->stakeholder->menu->issue);
unset($lang->stakeholder->menu->plan);
unset($lang->stakeholder->menu->expectation);
+3 -3
View File
@@ -99,9 +99,9 @@
<?php if($type != 'finishedBy'): ?>
<td class='c-user'><?php echo zget($users, $task->finishedBy);?></td>
<?php endif;?>
<td class='c-hours'><?php echo round($task->estimate, 1) . ' ' . $config->hourUnit;?></td>
<td class='c-hours'><?php echo round($task->consumed, 1) . ' ' . $config->hourUnit;?></td>
<td class='c-hours'><?php echo round($task->left, 1) . ' ' . $config->hourUnit;?></td>
<td class='c-hours'><?php echo round($task->estimate, 1);?></td>
<td class='c-hours'><?php echo round($task->consumed, 1);?></td>
<td class='c-hours'><?php echo round($task->left, 1);?></td>
<td class='c-status'>
<?php $storyChanged = (!empty($task->storyStatus) and $task->storyStatus == 'active' and $task->latestStoryVersion > $task->storyVersion and !in_array($task->status, array('cancel', 'closed')));?>
<?php !empty($storyChanged) ? print("<span class='status-story status-changed'>{$this->lang->my->storyChanged}</span>") : print("<span class='status-task status-{$task->status}'> " . $this->processStatus('task', $task) . "</span>");?>
+2 -2
View File
@@ -94,13 +94,13 @@ $config->program->datatable->fieldList['teamCount']['sort'] = 'no';
$config->program->datatable->fieldList['PRJEstimate']['title'] = 'PRJEstimate';
$config->program->datatable->fieldList['PRJEstimate']['fixed'] = 'no';
$config->program->datatable->fieldList['PRJEstimate']['width'] = '70';
$config->program->datatable->fieldList['PRJEstimate']['width'] = '60';
$config->program->datatable->fieldList['PRJEstimate']['required'] = 'no';
$config->program->datatable->fieldList['PRJEstimate']['sort'] = 'no';
$config->program->datatable->fieldList['PRJConsume']['title'] = 'PRJConsume';
$config->program->datatable->fieldList['PRJConsume']['fixed'] = 'no';
$config->program->datatable->fieldList['PRJConsume']['width'] = '70';
$config->program->datatable->fieldList['PRJConsume']['width'] = '60';
$config->program->datatable->fieldList['PRJConsume']['required'] = 'no';
$config->program->datatable->fieldList['PRJConsume']['sort'] = 'no';
+61 -10
View File
@@ -155,7 +155,6 @@ class program extends control
public function PGMCreate($parentProgramID = 0)
{
$this->lang->navGroup->program = 'program';
$parentProgram = $this->program->getPGMByID($parentProgramID);
if($_POST)
@@ -795,6 +794,7 @@ class program extends control
*/
public function PRJBrowse($programID = 0, $browseType = 'doing', $param = 0, $orderBy = 'order_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1)
{
$this->lang->program->menu = $this->lang->PRJ->menu;
$this->lang->program->mainMenuAction = html::a('javascript:history.go(-1);', '<i class="icon icon-back"></i> ' . $this->lang->goback, '', "class='btn btn-link'");
$this->app->session->set('PRJBrowse', $this->app->getURI(true));
$this->app->session->set('whitelist', $this->app->getURI(true));
@@ -859,7 +859,7 @@ class program extends control
*/
public function PRJCreate($model = 'waterfall', $programID = 0, $from = 'PRJ', $copyProjectID = '')
{
if($from == 'PGM') $this->lang->PRJ->menu = $this->lang->program->menu;
if($from == 'PRJ') $this->lang->program->menu = $this->lang->PRJ->menu;
if($_POST)
{
@@ -962,7 +962,17 @@ class program extends control
$this->loadModel('productplan');
/* Navigation stay in program when enter from program list. */
if($from == 'pgmbrowse') $this->lang->PRJ->menu = $this->lang->program->menu;
if($from == 'PRJ')
{
$this->lang->program->menu = $this->lang->waterfall->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
$this->lang->navGroup->program = 'project';
}
if($from == 'pgmbrowse')
{
$this->lang->navGroup->program = 'program';
}
if($from == 'pgmproject')
{
$this->app->rawMethod = 'pgmproject';
@@ -1036,8 +1046,11 @@ class program extends control
*/
public function PRJView($projectID = 0)
{
$this->lang->navGroup->program = 'project';
$this->app->loadLang('bug');
$this->lang->navGroup->program = 'project';
$this->lang->program->menu = $this->lang->waterfall->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
$products = $this->loadModel('product')->getProductsByProject($projectID);;
$linkedBranches = array();
@@ -1071,6 +1084,11 @@ class program extends control
*/
public function PRJGroup($projectID = 0, $programID = 0)
{
$this->lang->navGroup->program = 'project';
$this->lang->program->menu = $this->lang->waterfall->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
$title = $this->lang->company->orgView . $this->lang->colon . $this->lang->group->browse;
$position[] = $this->lang->group->browse;
@@ -1123,6 +1141,11 @@ class program extends control
*/
public function PRJManageView($groupID, $projectID, $programID)
{
$this->lang->navGroup->program = 'project';
$this->lang->program->menu = $this->lang->waterfall->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
if($_POST)
{
$this->group->updateView($groupID);
@@ -1156,6 +1179,11 @@ class program extends control
*/
public function PRJManagePriv($type = 'byGroup', $param = 0, $menu = '', $version = '')
{
$this->lang->navGroup->program = 'project';
$this->lang->program->menu = $this->lang->waterfall->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
if($type == 'byGroup')
{
$groupID = $param;
@@ -1221,6 +1249,11 @@ class program extends control
*/
public function PRJManageMembers($projectID, $dept = '')
{
$this->lang->navGroup->program = 'project';
$this->lang->program->menu = $this->lang->waterfall->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
if(!empty($_POST))
{
$this->project->manageMembers($projectID);
@@ -1565,13 +1598,19 @@ class program extends control
* @access public
* @return void
*/
public function PRJWhitelist($projectID = 0, $programID = 0, $module='program', $from = '', $objectType = 'project', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
public function PRJWhitelist($projectID = 0, $programID = 0, $module = 'program', $from = 'PRJ', $objectType = 'project', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
{
if($from == 'pgmbrowse') $this->lang->PRJ->menu = $this->lang->program->menu;
if($from == 'PRJ')
{
$this->lang->navGroup->program = 'project';
$this->lang->program->menu = $this->lang->waterfall->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
}
if($from == 'pgmproject')
{
$this->app->rawMethod = 'pgmproject';
$this->lang->navGroup->program = 'program';
$this->lang->navGroup->program = 'program';
$this->lang->program->switcherMenu = $this->program->getPGMSwitcher($programID, true);
$this->program->setPGMViewMenu($programID);
}
@@ -1589,10 +1628,16 @@ class program extends control
* @access public
* @return void
*/
public function PRJAddWhitelist($projectID = 0, $deptID = 0, $programID = 0, $from = '')
public function PRJAddWhitelist($projectID = 0, $deptID = 0, $programID = 0, $from = 'PRJ')
{
/* Navigation stay in program when enter from program list. */
if($from == 'pgmbrowse') $this->lang->PRJ->menu = $this->lang->program->menu;
if($from == 'PRJ')
{
$this->lang->navGroup->program = 'project';
$this->lang->program->menu = $this->lang->waterfall->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
}
if($from == 'pgmproject')
{
$this->app->rawMethod = 'pgmproject';
@@ -1628,7 +1673,13 @@ class program extends control
public function PRJManageProducts($projectID, $programID = 0, $from = 'PRJ')
{
/* Navigation stay in program when enter from program list. */
if($from == 'pgmbrowse') $this->lang->PRJ->menu = $this->lang->program->menu;
if($from == 'PRJ')
{
$this->lang->navGroup->program = 'project';
$this->lang->program->menu = $this->lang->waterfall->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
}
if($from == 'pgmproject')
{
$this->app->rawMethod = 'pgmproject';
+7 -13
View File
@@ -810,8 +810,6 @@ class programModel extends model
*/
public function getPRJSwitcher($projectID, $currentModule, $currentMethod)
{
if($currentModule == 'program' && ($currentMethod != 'index' && $currentMethod != 'prjview')) return;
$this->loadModel('project');
$currentProjectName = $this->lang->program->common;
if($projectID)
@@ -838,7 +836,6 @@ class programModel extends model
*/
public function getPRJMainAction($module, $method)
{
if($module == 'program' and ($method != 'index' and $method != 'prjview')) return '';
return common::hasPriv('program', 'prjbrowse') ? html::a(helper::createLink('program', 'prjbrowse'), $this->lang->moreLink, '', "class='btn btn-link'") : '';
}
@@ -1732,9 +1729,6 @@ class programModel extends model
$title = "title='{$PRJProgram}'";
}
if($id == 'PRJEstimate') $title = "title={$project->hours->totalEstimate}{$this->config->hourUnit}";
if($id == 'PRJConsume') $title = "title={$project->hours->totalConsumed}{$this->config->hourUnit}";
echo "<td class='c-name " . $class . "' $title>";
switch($id)
{
@@ -1772,10 +1766,10 @@ class programModel extends model
echo $project->teamCount;
break;
case 'PRJEstimate':
echo $project->hours->totalEstimate . ' ' . $this->config->hourUnit;
echo $project->hours->totalEstimate;
break;
case 'PRJConsume':
echo $project->hours->totalConsumed . ' ' . $this->config->hourUnit;
echo $project->hours->totalConsumed;
break;
case 'PRJSurplus':
echo $project->hours->totalLeft;
@@ -1799,15 +1793,15 @@ class programModel extends model
$from = $project->from == 'PRJ' ? 'PRJ' : 'pgmproject';
$openModule = $project->from == 'PRJ' ? 'project' : 'program';
common::printIcon('program', 'PRJEdit', "projectID=$project->id&programID=$project->parent&from=$from", $project, 'list', 'edit', '', '', '', "data-group=$openModule");
common::printIcon('program', 'PRJManageMembers', "projectID=$project->id", $project, 'list', 'group');
common::printIcon('program', 'PRJGroup', "projectID=$project->id&programID=$programID", $project, 'list', 'lock');
common::printIcon('program', 'PRJEdit', "projectID=$project->id&programID=$project->parent&from=$from", $project, 'list', 'edit', '', '', '', "data-group=$openModule", '', $project->id);
common::printIcon('program', 'PRJManageMembers', "projectID=$project->id", $project, 'list', 'group', '', '', '', '', '', $project->id);
common::printIcon('program', 'PRJGroup', "projectID=$project->id&programID=$programID", $project, 'list', 'lock', '', '', '', '', '', $project->id);
echo "<div class='btn-group'>";
echo "<button type='button' class='btn dropdown-toggle' data-toggle='context-dropdown' title='{$this->lang->more}'><i class='icon-more-alt'></i></button>";
echo "<ul class='dropdown-menu pull-right text-center' role='menu'>";
common::printIcon('program', 'PRJManageProducts', "projectID=$project->id&programID=$programID&from=$from", $project, 'list', 'link', '', 'btn-action', '', "data-group=$openModule");
common::printIcon('program', 'PRJWhitelist', "projectID=$project->id&programID=$programID&module=program&from=$from", $project, 'list', 'shield-check', '', 'btn-action', '', "data-group=$openModule");
common::printIcon('program', 'PRJManageProducts', "projectID=$project->id&programID=$programID&from=$from", $project, 'list', 'link', '', 'btn-action', '', "data-group=$openModule", '', $project->id);
common::printIcon('program', 'PRJWhitelist', "projectID=$project->id&programID=$programID&module=program&from=$from", $project, 'list', 'shield-check', '', 'btn-action', '', "data-group=$openModule", '', $project->id);
if(common::hasPriv('program','PRJDelete')) echo html::a(inLink("PRJDelete", "projectID=$project->id"), "<i class='icon-trash'></i>", 'hiddenwin', "class='btn btn-action' title='{$this->lang->program->PRJDelete}'");
echo "</ul>";
echo "</div>";
+5 -5
View File
@@ -89,14 +89,14 @@
<?php if($program->status != 'closed') common::printIcon('program', 'PRJActivate', "projectID=$program->id", $program, 'list', 'magic', '', 'iframe', true);?>
</ul>
</div>
<?php common::printIcon('program', 'PRJEdit', "projectID=$program->id&programID=$program->parent&from=pgmbrowse", $program, 'list', 'edit', '', '', '', "data-group='program'");?>
<?php common::printIcon('program', 'PRJManageMembers', "projectID=$program->id", $program, 'list', 'group', '', '', '', 'data-group="program"');?>
<?php common::printIcon('program', 'PRJGroup', "projectID=$program->id", $program, 'list', 'lock', '', '', '', 'data-group="program"');?>
<?php common::printIcon('program', 'PRJEdit', "projectID=$program->id&programID=$program->parent&from=pgmbrowse", $program, 'list', 'edit', '', '', '', "data-group='program'", '', $program->id);?>
<?php common::printIcon('program', 'PRJManageMembers', "projectID=$program->id", $program, 'list', 'group', '', '', '', 'data-group="program"', '', $program->id);?>
<?php common::printIcon('program', 'PRJGroup', "projectID=$program->id", $program, 'list', 'lock', '', '', '', 'data-group="program"', '', $program->id);?>
<div class='btn-group'>
<button type='button' class='btn dropdown-toggle' data-toggle='dropdown' title="<?php echo $this->lang->more;?>"><i class='icon-more-alt'></i></button>
<ul class='dropdown-menu pull-right text-center' role='menu'>
<?php common::printIcon('program', 'PRJManageProducts', "projectID=$program->id&programID=0&from=pgmbrowse", $program, 'list', 'link', '', '', '', "data-group='program'");?>
<?php common::printIcon('program', 'PRJWhitelist', "projectID=$program->id&programID=0&module=program&from=pgmbrowse", $program, 'list', 'shield-check', '', '', '', "data-group='program'");?>
<?php common::printIcon('program', 'PRJManageProducts', "projectID=$program->id&programID=0&from=pgmbrowse", $program, 'list', 'link', '', '', '', "data-group='program'", '', $program->id);?>
<?php common::printIcon('program', 'PRJWhitelist', "projectID=$program->id&programID=0&module=program&from=pgmbrowse", $program, 'list', 'shield-check', '', '', '', "data-group='program'", '', $program->id);?>
<?php if(common::hasPriv('program','PRJDelete')) echo html::a($this->createLink("program", "PRJDelete", "projectID=$program->id"), "<i class='icon-trash'></i>", 'hiddenwin', "class='btn' title='{$this->lang->program->PRJDelete}'");?>
</ul>
</div>
-2
View File
@@ -144,8 +144,6 @@
{
echo "<div class='divider'></div>";
common::printIcon('program', 'PRJStart', "projectID=$project->id", $project, 'button', 'play', '', 'iframe', true);
common::printIcon('program', 'PRJManageMembers', "projectID=$project->id", $project, 'button', 'group', '', 'iframe', true);
common::printIcon('program', 'PRJGroup', "projectID=$project->id", $project, 'button', 'lock');
common::printIcon('program', 'PRJActivate', "projectID=$project->id", $project, 'button', 'magic', '', 'iframe', true);
common::printIcon('program', 'PRJSuspend', "projectID=$project->id", $project, 'button', 'pause', '', 'iframe', true);
common::printIcon('program', 'PRJClose', "projectID=$project->id", $project, 'button', 'off', '', 'iframe', true);
+2 -1
View File
@@ -171,7 +171,8 @@ class releaseModel extends model
$this->dao->insert(TABLE_RELEASE)->data($release)
->autoCheck()
->batchCheck($this->config->release->create->requiredFields, 'notempty')
->check('name', 'unique', "product = {$release->product} AND branch = {$release->branch} AND deleted = '0'");
->check('name', 'unique', "product = {$release->product} AND branch = {$release->branch} AND deleted = '0'")
->exec();
if(dao::isError())
{
+3 -3
View File
@@ -77,17 +77,17 @@ $config->task->datatable->fieldList['status']['required'] = 'no';
$config->task->datatable->fieldList['estimate']['title'] = 'estimateAB';
$config->task->datatable->fieldList['estimate']['fixed'] = 'no';
$config->task->datatable->fieldList['estimate']['width'] = '80';
$config->task->datatable->fieldList['estimate']['width'] = '60';
$config->task->datatable->fieldList['estimate']['required'] = 'no';
$config->task->datatable->fieldList['consumed']['title'] = 'consumedAB';
$config->task->datatable->fieldList['consumed']['fixed'] = 'no';
$config->task->datatable->fieldList['consumed']['width'] = '80';
$config->task->datatable->fieldList['consumed']['width'] = '60';
$config->task->datatable->fieldList['consumed']['required'] = 'no';
$config->task->datatable->fieldList['left']['title'] = 'leftAB';
$config->task->datatable->fieldList['left']['fixed'] = 'no';
$config->task->datatable->fieldList['left']['width'] = '80';
$config->task->datatable->fieldList['left']['width'] = '60';
$config->task->datatable->fieldList['left']['required'] = 'no';
$config->task->datatable->fieldList['progress']['title'] = 'progressAB';
+3 -3
View File
@@ -2963,13 +2963,13 @@ class taskModel extends model
$storyChanged ? print("<span class='status-story status-changed'>{$this->lang->story->changed}</span>") : print("<span class='status-task status-{$task->status}'> " . $this->processStatus('task', $task) . "</span>");
break;
case 'estimate':
echo round($task->estimate, 1) . ' ' . $this->config->hourUnit;
echo round($task->estimate, 1);
break;
case 'consumed':
echo round($task->consumed, 1) . ' ' . $this->config->hourUnit;
echo round($task->consumed, 1);
break;
case 'left':
echo round($task->left, 1) . ' ' . $this->config->hourUnit;
echo round($task->left, 1);
break;
case 'progress':
echo "{$task->progress}%";