* Fix project code details.

This commit is contained in:
Yagami
2021-03-09 13:44:42 +08:00
parent 52bcf357ec
commit 9098e727a5
16 changed files with 58 additions and 47 deletions
+3 -3
View File
@@ -648,7 +648,6 @@ $lang->navGroup->pssp = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
$lang->navGroup->build = 'project';
$lang->navGroup->projectrelease = 'project';
$lang->navGroup->projectbuild = 'project';
$lang->navGroup->repo = 'project';
@@ -659,7 +658,8 @@ $lang->navGroup->report = 'project';
$lang->navGroup->measrecord = 'project';
$lang->navGroup->execution = 'execution';
$lang->navGroup->task = 'project';
$lang->navGroup->task = 'execution';
$lang->navGroup->build = 'execution';
$lang->navGroup->sqlbuilder = 'system';
$lang->navGroup->auditcl = 'system';
@@ -963,6 +963,6 @@ $lang->stakeholder->menu->list = array('link' => 'Stakeholder List|stakeholder|
$lang->stakeholder->menu->issue = array('link' => 'Issue|stakeholder|issue|');
$lang->nc->menu = $lang->auditplan->menu;
$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'execution', 'task', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'execution', 'task', 'build', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
include (dirname(__FILE__) . '/menuOrder.php');
+3 -3
View File
@@ -647,7 +647,6 @@ $lang->navGroup->pssp = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
$lang->navGroup->build = 'project';
$lang->navGroup->projectrelease = 'project';
$lang->navGroup->projectbuild = 'project';
$lang->navGroup->repo = 'project';
@@ -658,7 +657,8 @@ $lang->navGroup->report = 'project';
$lang->navGroup->measrecord = 'project';
$lang->navGroup->execution = 'execution';
$lang->navGroup->task = 'project';
$lang->navGroup->task = 'execution';
$lang->navGroup->build = 'execution';
$lang->navGroup->sqlbuilder = 'system';
$lang->navGroup->auditcl = 'system';
@@ -962,6 +962,6 @@ $lang->stakeholder->menu->list = array('link' => 'Stakeholder List|stakeholder|
$lang->stakeholder->menu->issue = array('link' => 'Issue|stakeholder|issue|');
$lang->nc->menu = $lang->auditplan->menu;
$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'execution', 'task', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'execution', 'task', 'build', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
include (dirname(__FILE__) . '/menuOrder.php');
+2 -2
View File
@@ -647,7 +647,6 @@ $lang->navGroup->pssp = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
$lang->navGroup->build = 'project';
$lang->navGroup->projectrelease = 'project';
$lang->navGroup->projectbuild = 'project';
$lang->navGroup->repo = 'project';
@@ -659,6 +658,7 @@ $lang->navGroup->measrecord = 'project';
$lang->navGroup->execution = 'execution';
$lang->navGroup->task = 'execution';
$lang->navGroup->build = 'execution';
$lang->navGroup->sqlbuilder = 'system';
$lang->navGroup->auditcl = 'system';
@@ -962,6 +962,6 @@ $lang->stakeholder->menu->list = array('link' => 'Stakeholder List|stakeholder|
$lang->stakeholder->menu->issue = array('link' => 'Issue|stakeholder|issue|');
$lang->nc->menu = $lang->auditplan->menu;
$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'execution', 'task', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'execution', 'task', 'build', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
include (dirname(__FILE__) . '/menuOrder.php');
+2 -2
View File
@@ -30,8 +30,8 @@ $lang->waterfall->menuOrder[65] = 'other';
$lang->waterfall->menuOrder[70] = 'projectsetting';
/* Sort of main menu. */
$lang->scrum->menuOrder[5] = 'programindex';
$lang->scrum->menuOrder[10] = 'project';
$lang->scrum->menuOrder[5] = 'index';
$lang->scrum->menuOrder[10] = 'execution';
$lang->scrum->menuOrder[15] = 'projectstory';
$lang->scrum->menuOrder[20] = 'qa';
$lang->scrum->menuOrder[25] = 'ci';
+2 -2
View File
@@ -647,7 +647,6 @@ $lang->navGroup->pssp = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
$lang->navGroup->build = 'project';
$lang->navGroup->projectrelease = 'project';
$lang->navGroup->projectbuild = 'project';
$lang->navGroup->repo = 'project';
@@ -659,6 +658,7 @@ $lang->navGroup->measrecord = 'project';
$lang->navGroup->execution = 'execution';
$lang->navGroup->task = 'execution';
$lang->navGroup->build = 'execution';
$lang->navGroup->sqlbuilder = 'system';
$lang->navGroup->auditcl = 'system';
@@ -962,6 +962,6 @@ $lang->stakeholder->menu->list = array('link' => 'Stakeholder List|stakeholder|
$lang->stakeholder->menu->issue = array('link' => 'Issue|stakeholder|issue|');
$lang->nc->menu = $lang->auditplan->menu;
$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'execution', 'task', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'execution', 'task', 'build', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
include (dirname(__FILE__) . '/menuOrder.php');
+7 -5
View File
@@ -171,6 +171,8 @@ else
$lang->project->menu->browse = array('link' => "$lang->executionCommon|project|browse|");
}
$lang->project->dividerMenu = ',execution,programplan,doc,other,';
$lang->program->viewMenu = new stdclass();
$lang->program->viewMenu->product = array('link' => '产品|program|product|program=%s', 'alias' => 'view');
$lang->program->viewMenu->project = array('link' => "项目|program|project|program=%s");
@@ -365,7 +367,7 @@ $lang->execution->subMenu->more->whitelist = array('link' => '白名单|executio
$lang->execution->subMenu->more->action = array('link' => '动态|execution|dynamic|executionID=%s');
$lang->execution->subMenu->more->view = array('link' => '概况|execution|view|executionID=%s', 'subModule' => 'view', 'alias' => 'edit,start,suspend,putoff,close');
$lang->execution->dividerMenu = ',execution,programplan,executionbuild,story,doc,other,';
$lang->execution->dividerMenu = ',story,doc,';
$lang->task = new stdclass();
$lang->build = new stdclass();
@@ -647,7 +649,6 @@ $lang->navGroup->pssp = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
$lang->navGroup->build = 'project';
$lang->navGroup->projectrelease = 'project';
$lang->navGroup->projectbuild = 'project';
$lang->navGroup->repo = 'project';
@@ -659,6 +660,7 @@ $lang->navGroup->measrecord = 'project';
$lang->navGroup->execution = 'execution';
$lang->navGroup->task = 'execution';
$lang->navGroup->build = 'execution';
$lang->navGroup->sqlbuilder = 'system';
$lang->navGroup->auditcl = 'system';
@@ -886,8 +888,8 @@ $lang->icons['score'] = 'tint';
/* Scrum menu. */
$lang->menu = new stdclass();
$lang->menu->scrum = new stdclass();
$lang->menu->scrum->index = '仪表盘|program|index|project={PROJECT}';
$lang->menu->scrum->project = "$lang->executionCommon|project|index|locate=no";
$lang->menu->scrum->index = '仪表盘|project|index|project={PROJECT}';
$lang->menu->scrum->execution = "$lang->executionCommon|execution|all|status=all&executionID=0&from=project";
$lang->menu->scrum->projectstory = array('link' => $lang->SRCommon . '|projectstory|story', 'alias' => 'story,track');
$lang->menu->scrum->doc = '文档|doc|index|';
$lang->menu->scrum->qa = '测试|qa|index';
@@ -962,6 +964,6 @@ $lang->stakeholder->menu->list = array('link' => '干系人列表|stakeholder|b
$lang->stakeholder->menu->issue = array('link' => '问题管理|stakeholder|issue|');
$lang->nc->menu = $lang->auditplan->menu;
$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'execution', 'task', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'execution', 'task', 'build', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
include (dirname(__FILE__) . '/menuOrder.php');
+1 -1
View File
@@ -2369,7 +2369,7 @@ EOD;
}
if($group == 'project')
{
if($config->systemMode == 'classic' or $methodName == 'browse')
if($config->systemMode == 'classic' or ($moduleName == 'project' and $methodName == 'browse'))
{
$lang->menu = $lang->project->menu;
}
+18 -10
View File
@@ -2579,28 +2579,36 @@ class execution extends control
* @access public
* @return void
*/
public function all($status = 'all', $executionID = 0, $orderBy = 'id_desc', $productID = 0, $recTotal = 0, $recPerPage = 10, $pageID = 1)
public function all($status = 'all', $executionID = 0, $from = 'execution', $orderBy = 'id_desc', $productID = 0, $recTotal = 0, $recPerPage = 10, $pageID = 1)
{
$this->app->loadLang('my');
$this->app->loadLang('product');
$this->app->loadLang('programplan');
if($this->executions)
if($from == 'execution')
{
$execution = $this->commonAction($executionID);
$executionID = $execution->id;
if($this->executions)
{
$execution = $this->commonAction($executionID);
$executionID = $execution->id;
}
$this->session->set('executionList', $this->app->getURI(true));
}
elseif($from == 'project')
{
$this->lang->navGroup->execution = 'project';
}
$this->session->set('executionList', $this->app->getURI(true));
/* Load pager and get tasks. */
$this->app->loadClass('pager', $static = true);
$pager = new pager($recTotal, $recPerPage, $pageID);
$this->view->title = $this->lang->execution->allExecution;
$this->view->position[] = $this->lang->execution->allExecution;
$this->view->title = $this->lang->execution->allExecutions;
$this->view->position[] = $this->lang->execution->allExecutions;
$this->view->executionStats = $this->execution->getStats($this->session->project, $status, $productID, 0, 30, $orderBy, $pager);
$this->view->products = array(0 => $this->lang->product->select) + $this->loadModel('product')->getProductPairsByExecution($this->session->project);
$this->view->executionStats = $this->project->getStats($this->session->project, $status, $productID, 0, 30, $orderBy, $pager);
$this->view->products = array(0 => $this->lang->product->select) + $this->loadModel('product')->getProductPairsByProject($this->session->project);
$this->view->productID = $productID;
$this->view->executionID = $executionID;
$this->view->executionID = $executionID;
$this->view->pager = $pager;
$this->view->orderBy = $orderBy;
$this->view->users = $this->loadModel('user')->getPairs('noletter');
+1 -1
View File
@@ -27,7 +27,7 @@
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<?php foreach($lang->execution->featureBar['all'] as $key => $label):?>
<?php echo html::a(inlink("all", "status=$key&executionID=$execution->id&orderBy=$orderBy&productID=$productID"), "<span class='text'>{$label}</span>", '', "class='btn btn-link' id='{$key}Tab'");?>
<?php echo html::a(inlink("all", "status=$key&executionID=$executionID&orderBy=$orderBy&productID=$productID"), "<span class='text'>{$label}</span>", '', "class='btn btn-link' id='{$key}Tab'");?>
<?php endforeach;?>
<div class='input-control space w-180px'>
<?php echo html::select('product', $products, $productID, "class='chosen form-control' onchange='byProduct(this.value, $executionID, \"$status\")'");?>
+1 -1
View File
@@ -139,7 +139,7 @@ class programModel extends model
{
$program = $this->getByID($programID);
$path = $program->path;
}
}
$projectList = $this->dao->select('*')->from(TABLE_PROJECT)
->where('deleted')->eq('0')
+3 -2
View File
@@ -167,7 +167,7 @@ class project extends control
*/
public function index($projectID = 0)
{
$this->lang->navGroup->project = 'project';
$this->lang->noMenuModule[] = 'project';
$projectID = $this->project->saveState($projectID, $this->project->getPairsByProgram());
$project = $this->project->getByID($projectID);
@@ -426,6 +426,7 @@ class project extends control
$this->view->URSRPairs = $this->loadModel('custom')->getURSRPairs();
$this->view->from = $from;
$this->view->parentProject = $parentProject;
$this->view->parentProgram = $this->loadModel('program')->getByID($project->parent);
$this->view->availableBudget = $this->program->getBudgetLeft($parentProject) + (float)$project->budget;
$this->view->budgetUnitList = $this->project->getBudgetUnitList();
@@ -1146,7 +1147,7 @@ class project extends control
$project = $this->project->getById($projectID);
$allProducts = $this->program->getProductPairs($project->parent, 'assign', 'noclosed');
$linkedProducts = $this->program->getProducts($project->id);
$linkedProducts = $this->product->getProducts($project->id);
$linkedBranches = array();
/* If the story of the product which linked the project, you don't allow to remove the product. */
+2 -2
View File
@@ -634,8 +634,8 @@ class projectModel extends model
*/
public function createManageLink($project)
{
$link = $project->type == 'project' ? helper::createLink('project', 'browse', "projectID={$project->id}&status=all") : helper::createLink('project', 'index', "projectID={$project->id}", '', '', $project->id);
$icon = $project->type == 'project' ? "<i class='icon icon-program'></i> " : "<i class='icon icon-project'></i> ";
$link = $project->type == 'program' ? helper::createLink('project', 'browse', "projectID={$project->id}&status=all") : helper::createLink('project', 'index', "projectID={$project->id}", '', '', $project->id);
$icon = $project->type == 'program' ? "<i class='icon icon-program'></i> " : "<i class='icon icon-project'></i> ";
return html::a($link, $icon . $project->name, '_self', "id=project{$project->id} title='{$project->name}' class='text-ellipsis'");
}
+1 -1
View File
@@ -8,7 +8,7 @@
</div>
<div class="col-footer">
<?php echo html::a(helper::createLink('project', 'browse', 'projectID=0&status=all'), '<i class="icon icon-cards-view muted"></i> ' . $lang->project->all, '', 'class="not-list-item"'); ?>
<a class='pull-right toggle-right-col not-list-item'><?php echo $lang->project->doneProjects;?><i class='icon icon-angle-right'></i></a>
<a class='pull-right toggle-right-col not-list-item'><?php echo $lang->execution->doneProjects;?><i class='icon icon-angle-right'></i></a>
</div>
</div>
<div class="table-col col-right">
+5 -5
View File
@@ -13,7 +13,7 @@
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<?php js::import($jsRoot . 'misc/date.js');?>
<?php js::set('weekend', $config->project->weekend);?>
<?php js::set('weekend', $config->execution->weekend);?>
<?php js::set('errorSameProducts', $lang->project->errorSameProducts);?>
<?php js::set('oldParent', $project->parent);?>
<?php js::set('projectID', $project->id);?>
@@ -49,7 +49,7 @@
<th><?php echo $lang->project->budget;?></th>
<td>
<div class='input-group'>
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->program->parentBudget . zget($lang->project->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->project->parentBudget . zget($lang->project->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
<?php echo html::input('budget', $project->budget != 0 ? $project->budget : '', "class='form-control' " . (strpos($requiredFields, 'budget') !== false ? 'required ' : '') . ($project->budget == 0 ? 'disabled ' : '') . $placeholder);?>
<?php if($parentProgram):?>
<span class='input-group-addon'><?php echo zget($budgetUnitList, $parentProgram->budgetUnit);?></span>
@@ -84,11 +84,11 @@
</tr>
<?php if($project->model == 'scrum'):?>
<tr>
<th><?php echo $lang->project->days;?></th>
<th><?php echo $lang->execution->days;?></th>
<td>
<div class='input-group'>
<?php echo html::input('days', $project->days, "class='form-control'");?>
<span class='input-group-addon'><?php echo $lang->project->day;?></span>
<span class='input-group-addon'><?php echo $lang->execution->day;?></span>
</div>
</td>
<td></td>
@@ -122,7 +122,7 @@
</td>
</tr>
<tr>
<th><?php echo $lang->project->linkPlan;?></th>
<th><?php echo $lang->execution->linkPlan;?></th>
<td id="plansBox" colspan="3">
<div class='row'>
<?php $i = 0;?>
+2 -2
View File
@@ -20,7 +20,7 @@
<div class='cell'>
<form class='main-form form-ajax' method='post' id='productsBox' enctype='multipart/form-data'>
<div class='detail'>
<div class='detail-title'><?php echo $lang->project->linkedProducts;?></div>
<div class='detail-title'><?php echo $lang->execution->linkedProducts;?></div>
<div class='detail-content row'>
<?php foreach($allProducts as $productID => $productName):?>
<?php if(isset($linkedProducts[$productID])):?>
@@ -43,7 +43,7 @@
</div>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->project->unlinkedProducts;?></div>
<div class='detail-title'><?php echo $lang->execution->unlinkedProducts;?></div>
<div class='detail-content row'>
<?php foreach($allProducts as $productID => $productName):?>
<div class='col-sm-4'>
+5 -5
View File
@@ -17,7 +17,7 @@
<div id="mainMenu" class="clearfix table-row">
<div class="btn-toolbar pull-left">
<?php
$label = "<span class='text'>{$lang->project->build}</span>";
$label = "<span class='text'>{$lang->execution->build}</span>";
$active = '';
if($type == 'all')
{
@@ -27,7 +27,7 @@
echo html::a(inlink('browse', "projectID={$projectID}&type=all"), $label, '', "class='btn btn-link $active' id='all'")
?>
<div class="input-control space w-150px"><?php echo html::select('product', $products, $product, "onchange='changeProduct(this.value)' class='form-control chosen' data-placeholder='{$lang->productCommon}'");?></div>
<a class="btn btn-link querybox-toggle" id="bysearchTab"><i class="icon icon-search muted"></i> <?php echo $lang->project->byQuery;?></a>
<a class="btn btn-link querybox-toggle" id="bysearchTab"><i class="icon icon-search muted"></i> <?php echo $lang->execution->byQuery;?></a>
</div>
</div>
<div id="mainContent">
@@ -78,9 +78,9 @@
{
echo html::a($this->createLink('build', 'view', "buildID=$build->id&type=story&link=true"), "<i class='icon icon-link'></i>", '', "class='btn' title='{$lang->build->linkStory}'");
}
common::printIcon('testtask', 'create', "product=$build->product&project={$build->executionID}&build=$build->id", $build, 'list', 'bullhorn');
$lang->project->bug = $lang->project->viewBug;
common::printIcon('project', 'bug', "project={$build->executionID}&orderBy=status&build=$build->id", $build, 'list');
common::printIcon('testtask', 'create', "product=$build->product&project={$build->execution}&build=$build->id", $build, 'list', 'bullhorn');
$lang->project->bug = $lang->execution->viewBug;
common::printIcon('project', 'bug', "project={$build->execution}&orderBy=status&build=$build->id", $build, 'list');
common::printIcon('build', 'edit', "buildID=$build->id", $build, 'list');
if(common::hasPriv('build', 'delete', $build))
{