Merge branch '15.0.beta3' of http://gitlab.zcorp.cc/easycorp/zentaopms into 15.0.beta3

This commit is contained in:
holan20180123
2021-03-24 16:19:51 +08:00
20 changed files with 113 additions and 104 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ class action extends control
$this->session->set('productList', $uri, 'product');
$this->session->set('productPlanList', $uri, 'product');
$this->session->set('storyList', $uri, 'product');
$this->session->set('releaseList', $uri, 'execution');
$this->session->set('releaseList', $uri, 'product');
$this->session->set('programList', $uri, 'program');
$this->session->set('projectList', $uri, 'project');
$this->session->set('executionList', $uri, 'execution');
+36 -28
View File
@@ -562,10 +562,12 @@ class block extends control
$limit = $this->viewType == 'json' ? 0 : (int)$this->params->count;
$todos = $this->loadModel('todo')->getList('all', $this->app->user->account, 'wait, doing', $limit, $pager = null, $orderBy = 'date, begin');
$uri = $this->app->getURI(true);
$this->session->set('todoList', $uri);
$this->session->set('bugList', $uri);
$this->session->set('taskList', $uri);
$this->session->set('riskList', $uri);
$this->session->set('todoList', $uri, 'my');
$this->session->set('bugList', $uri, 'qa');
$this->session->set('taskList', $uri, 'execution');
$this->session->set('storyList', $uri, 'product');
$this->session->set('testtaskList', $uri, 'qa');
foreach($todos as $key => $todo)
{
@@ -583,13 +585,13 @@ class block extends control
*/
public function printTaskBlock()
{
$uri = $this->app->getURI(true);
$this->session->set('taskList', $uri);
$this->session->set('storyList', $uri);
$this->session->set('taskList', $this->app->getURI(true), 'execution');
if(preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) die();
$projectID = $this->view->block->module == 'my' ? 0 : (int)$this->session->project;
$this->view->tasks = $this->loadModel('task')->getUserTasks($this->app->user->account, $this->params->type, $this->viewType == 'json' ? 0 : (int)$this->params->count, null, $this->params->orderBy, $projectID);
$account = $this->app->user->account;
$type = $this->params->type;
$this->view->tasks = $this->loadModel('task')->getUserTasks($account, $type, $this->viewType == 'json' ? 0 : (int)$this->params->count, null, $this->params->orderBy);
}
/**
@@ -600,7 +602,7 @@ class block extends control
*/
public function printBugBlock()
{
$this->session->set('bugList', $this->app->getURI(true));
$this->session->set('bugList', $this->app->getURI(true), 'qa');
if(preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) die();
$projectID = $this->lang->navGroup->qa == 'project' ? $this->session->project : 0;
@@ -616,7 +618,7 @@ class block extends control
*/
public function printCaseBlock()
{
$this->session->set('caseList', $this->app->getURI(true));
$this->session->set('caseList', $this->app->getURI(true), 'qa');
$this->app->loadLang('testcase');
$this->app->loadLang('testtask');
@@ -661,19 +663,17 @@ class block extends control
{
$this->app->loadLang('testtask');
$this->session->set('testtaskList', $this->app->getURI(true));
$this->session->set('productList', $this->app->getURI(true), 'product');
$this->session->set('testtaskList', $this->app->getURI(true), 'qa');
$this->session->set('buildList', $this->app->getURI(true), 'execution');
if(preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) die();
$projectID = $this->lang->navGroup->qa == 'project' ? $this->session->project : 0;
$projectID = $this->view->block->module == 'my' ? 0 : $projectID;
$this->view->testtasks = $this->dao->select('t1.*,t2.name as productName,t3.name as buildName,t4.name as projectName')->from(TABLE_TESTTASK)->alias('t1')
->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product=t2.id')
->leftJoin(TABLE_BUILD)->alias('t3')->on('t1.build=t3.id')
->leftJoin(TABLE_PROJECT)->alias('t4')->on('t1.project=t4.id')
->leftJoin(TABLE_PROJECTPRODUCT)->alias('t5')->on('t1.project=t5.project')
->leftJoin(TABLE_PROJECT)->alias('t4')->on('t1.execution=t4.id')
->leftJoin(TABLE_PROJECTPRODUCT)->alias('t5')->on('t1.execution=t5.project')
->where('t1.deleted')->eq('0')
->beginIF($projectID)->andWhere('t1.project')->eq($projectID)->fi()
->beginIF(!$this->app->user->admin)->andWhere('t1.product')->in($this->app->user->view->products)->fi()
->andWhere('t1.product = t5.product')
->beginIF($this->params->type != 'all')->andWhere('t1.status')->eq($this->params->type)->fi()
@@ -690,15 +690,16 @@ class block extends control
*/
public function printStoryBlock()
{
$this->session->set('storyList', $this->app->getURI(true));
$this->session->set('storyList', $this->app->getURI(true), 'product');
if(preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) die();
$this->app->loadClass('pager', $static = true);
$count = isset($this->params->count) ? (int)$this->params->count : 0;
$pager = pager::init(0, $count , 1);
$type = isset($this->params->type) ? $this->params->type : 'assignedTo';
$orderBy = isset($this->params->type) ? $this->params->orderBy : 'id_asc';
$this->view->stories = $this->loadModel('story')->getUserStories($this->app->user->account, $type, $orderBy, $this->viewType != 'json' ? $pager : '', 'story');
$this->view->stories = $this->loadModel('story')->getUserStories($this->app->user->account, $type, $orderBy, $this->viewType != 'json' ? $pager : '', 'story');
}
/**
@@ -709,7 +710,9 @@ class block extends control
*/
public function printPlanBlock()
{
$this->session->set('productPlanList', $this->app->getURI(true));
$this->session->set('productList', $this->app->getURI(true), 'product');
$this->session->set('productPlanList', $this->app->getURI(true), 'product');
$this->app->loadLang('productplan');
$this->view->plans = $this->dao->select('t1.*,t2.name as productName')->from(TABLE_PRODUCTPLAN)->alias('t1')
->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product=t2.id')
@@ -728,7 +731,9 @@ class block extends control
*/
public function printReleaseBlock()
{
$this->session->set('releaseList', $this->app->getURI(true));
$this->session->set('releaseList', $this->app->getURI(true), 'product');
$this->session->set('buildList', $this->app->getURI(true), 'execution');
$this->app->loadLang('release');
$this->view->releases = $this->dao->select('t1.*,t2.name as productName,t3.name as buildName')->from(TABLE_RELEASE)->alias('t1')
->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product=t2.id')
@@ -749,7 +754,7 @@ class block extends control
*/
public function printBuildBlock()
{
$this->session->set('buildList', $this->app->getURI(true));
$this->session->set('buildList', $this->app->getURI(true), 'execution');
$this->app->loadLang('build');
$builds = $this->dao->select('t1.*, t2.name as productName')->from(TABLE_BUILD)->alias('t1')
@@ -1215,7 +1220,7 @@ class block extends control
public function printWaterfallIssueBlock()
{
$uri = $this->app->getURI(true);
$this->session->set('issueList', $uri);
$this->session->set('issueList', $uri, 'project');
if(preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) die();
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->issues = $this->loadModel('issue')->getBlockIssues($this->session->project, $this->params->type, $this->viewType == 'json' ? 0 : (int)$this->params->count, $this->params->orderBy);
@@ -1230,7 +1235,7 @@ class block extends control
public function printWaterfallRiskBlock()
{
$uri = $this->app->getURI(true);
$this->session->set('riskList', $uri);
$this->session->set('riskList', $uri, 'project');
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->risks = $this->loadModel('risk')->getBlockRisks($this->session->project, $this->params->type, $this->viewType == 'json' ? 0 : (int)$this->params->count, $this->params->orderBy);
}
@@ -1422,8 +1427,8 @@ class block extends control
*/
public function printScrumRoadMapBlock($productID = 0, $roadMapID = 0)
{
$this->session->set('releaseList', $this->app->getURI(true));
$this->session->set('productPlanList', $this->app->getURI(true));
$this->session->set('releaseList', $this->app->getURI(true), 'product');
$this->session->set('productPlanList', $this->app->getURI(true), 'product');
$products = $this->loadModel('product')->getPairs('', $this->session->project);
if(!is_numeric($productID)) $productID = key($products);
@@ -1449,7 +1454,10 @@ class block extends control
*/
public function printScrumTestBlock()
{
$this->session->set('testtaskList', $this->app->getURI(true));
$this->session->set('testtaskList', $this->app->getURI(true), 'qa');
$this->session->set('productList', $this->app->getURI(true), 'product');
$this->session->set('projectList', $this->app->getURI(true), 'project');
$this->session->set('buildList', $this->app->getURI(true), 'execution');
$this->app->loadLang('testtask');
$count = zget($this->params, 'count', 10);
+6 -5
View File
@@ -28,15 +28,16 @@
<tbody>
<?php foreach($builds as $build):?>
<?php
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$viewLink = $this->createLink('build', 'view', "buildID={$build->id}");
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$buildViewLink = $this->createLink('build', 'view', "buildID={$build->id}");
$productViewLink = $this->createLink('product', 'browse', "productID={$build->product}");
?>
<tr data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<tr <?php echo $appid?>>
<td class='text-center'><?php echo sprintf('%03d', $build->id);?></td>
<?php if($longBlock):?>
<td title='<?php echo $build->productName?>'><?php echo $build->productName?></td>
<td title='<?php echo $build->productName?>'><?php echo html::a($productViewLink, $build->productName);?></td>
<?php endif;?>
<td title='<?php echo $build->name?>'><?php echo $build->name?></td>
<td title='<?php echo $build->name?>'><?php echo html::a($buildViewLink, $build->name);?></td>
<td><?php echo $build->date?></td>
</tr>
<?php endforeach;?>
+3 -7
View File
@@ -25,16 +25,14 @@
<table class='table table-borderless table-hover table-fixed table-fixed-head tablesorter block-cases <?php if(!$longBlock) echo 'block-sm';?>'>
<thead>
<tr class='text-center'>
<?php if($longBlock):?>
<th class='c-id-xs'><?php echo $lang->idAB?></th>
<?php endif;?>
<th class='c-pri'><?php echo $lang->priAB?></th>
<th class='c-title text-left'><?php echo $lang->case->title;?></th>
<?php if($longBlock):?>
<th class='c-runtime'><?php echo $lang->testtask->lastRunTime;?></th>
<th class='c-result'><?php echo $lang->testtask->lastRunResult;?></th>
<?php endif;?>
<th class='c-status'><?php echo $lang->statusAB;?></th>
<?php endif;?>
</tr>
</thead>
<tbody>
@@ -43,22 +41,20 @@
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$viewLink = $this->createLink('testcase', 'view', "caseID={$case->id}");
?>
<tr class='text-center' data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<?php if($longBlock):?>
<tr class='text-center' <?php echo $appid?>>
<td class='c-id-xs'><?php echo sprintf('%03d', $case->id);?></td>
<?php endif;?>
<td class='c-pri'><span class='label-pri label-pri-<?php echo $case->pri?>' title='<?php echo zget($lang->case->priList, $case->pri, $case->pri);?>'><?php echo zget($lang->case->priList, $case->pri, $case->pri)?></span></td>
<td class='c-title text-left' style='color: <?php echo $case->color?>' title='<?php echo $case->title?>'><?php echo $case->title?></td>
<?php if($longBlock):?>
<td class='c-runtime'><?php if(!helper::isZeroDate($case->lastRunDate)) echo date(DT_MONTHTIME1, strtotime($case->lastRunDate));?></td>
<td class='c-result'><?php if($case->lastRunResult) echo $lang->testcase->resultList[$case->lastRunResult];?></td>
<?php endif;?>
<?php $status = $this->processStatus('testcase', $case);?>
<td class='c-status' title='<?php echo $status;?>'>
<span class="case-status-<?php echo $case->status?>">
<span class='status-text'><?php echo $status;?></span>
</span>
</td>
<?php endif;?>
</tr>
<?php endforeach;?>
</tbody>
+2 -2
View File
@@ -39,8 +39,8 @@
$appid = isset($_GET['entry']) ? "class='app-btn text-center' data-id='{$this->get->entry}'" : "class='text-center'";
$viewLink = $this->createLink('execution', 'task', 'executionID=' . $execution->id);
?>
<tr data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<td class='c-name text-left' title='<?php echo $execution->name;?>'><nobr><?php echo html::a($this->createLink('execution', 'task', 'executionID=' . $execution->id), $execution->name, '', "title='$execution->name'");?></nobr></td>
<tr <?php echo $appid?>>
<td class='c-name text-left' title='<?php echo $execution->name;?>'><nobr><?php echo html::a($viewLink, $execution->name, '', "title='$execution->name'");?></nobr></td>
<td class="c-date"><?php echo $execution->end;?></td>
<?php if($longBlock):?>
<td class="w-70px">
+5 -4
View File
@@ -30,14 +30,15 @@
<?php foreach($plans as $plan):?>
<?php
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$viewLink = $this->createLink('productplan', 'view', "planID={$plan->id}");
$planViewLink = $this->createLink('productplan', 'view', "planID={$plan->id}");
$productViewLink = $this->createLink('product', 'view', "productID={$plan->product}");
?>
<tr data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<tr <?php echo $appid?>>
<?php if($longBlock):?>
<td class='text-center'><?php echo $plan->id;?></td>
<td title='<?php echo $plan->productName?>'><?php echo $plan->productName?></td>
<td title='<?php echo $plan->productName?>'><?php echo html::a($productViewLink, $plan->productName);?></td>
<?php endif;?>
<td title='<?php echo $plan->title?>'><?php echo $plan->title?></td>
<td title='<?php echo $plan->title?>'><?php echo html::a($planViewLink, $plan->title);?></td>
<td class='text-center'><?php echo $plan->begin?></td>
<td class='text-center'><?php echo $plan->end?></td>
</tr>
+6 -6
View File
@@ -14,7 +14,7 @@
<div class='empty-tip'><?php common::printLink('product', 'create', '', "<i class='icon-plus'></i> " . $lang->product->create, '', "class='btn btn-primary'") ?></div>
<?php else:?>
<style>
.block-products.block-sm .c-project {display: none;}
.block-products.block-sm .c-execution {display: none;}
</style>
<div class="panel-body has-table scrollbar-hover block-products">
<table class='table table-borderless table-hover table-fixed table-fixed-head tablesorter table-fixed'>
@@ -22,7 +22,7 @@
<tr>
<th class='c-name'><?php echo $lang->product->name;?></th>
<?php if($longBlock):?>
<th class='c-name c-project'><?php echo $lang->product->currentExecution;?></th>
<th class='c-name c-execution'><?php echo $lang->product->currentExecution;?></th>
<?php endif;?>
<th title='<?php echo $lang->product->plans?>' class='c-num w-120px'><?php echo $lang->product->plans;?></th>
<th title='<?php echo $lang->product->releases?>' class='c-num w-100px'><?php echo $lang->product->releases;?></th>
@@ -36,11 +36,11 @@
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : "";
$viewLink = $this->createLink('product', 'browse', 'productID=' . $product->id);
?>
<tr class='text-center' data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<td class='c-name text-left' title='<?php echo $product->name?>'><?php echo $product->name?></td>
<tr class='text-center' <?php echo $appid?>>
<td class='c-name text-left' title='<?php echo $product->name?>'><?php echo html::a($viewLink, $product->name);?></td>
<?php if($longBlock):?>
<?php $projectName = zget($executions, $product->id, '');?>
<td class='c-name c-project text-left' title='<?php echo $projectName;?>'><?php echo $projectName;?></td>
<?php $executionName = zget($executions, $product->id, '');?>
<td class='c-name c-execution text-left' title='<?php echo $executionName;?>'><?php echo $executionName;?></td>
<?php endif;?>
<td class="c-num"><?php echo $product->plans?></td>
<td class="c-num"><?php echo $product->releases?></td>
+5 -5
View File
@@ -10,12 +10,12 @@
<thead>
<tr>
<th class='c-name w-100px'><?php echo $lang->project->name;?></th>
<th class='w-80px'><?php echo $lang->program->PM;?></th>
<th class='w-60px'><?php echo $lang->program->status;?></th>
<th class='w-80px'><?php echo $lang->project->PM;?></th>
<th class='w-60px'><?php echo $lang->project->status;?></th>
<?php if($longBlock):?>
<th class='w-90px'><?php echo $lang->program->teamCount;?></th>
<th class='w-90px'><?php echo $lang->project->teamCount;?></th>
<th class='w-90px text-right'><?php echo $lang->task->consumed;?></th>
<th class='w-80px text-right'><?php echo $lang->program->budget;?></th>
<th class='w-80px text-right'><?php echo $lang->project->budget;?></th>
<th class='w-80px'><?php echo $lang->project->leftStories;?></th>
<th class='w-80px'><?php echo $lang->project->leftTasks;?></th>
<th class='w-80px'><?php echo $lang->project->leftBugs;?></th>
@@ -34,7 +34,7 @@
<?php if($longBlock):?>
<td class='text-center'><?php echo $project->teamCount;?></td>
<td class='text-right' title="<?php echo $project->consumed . ' ' . $lang->execution->workHour;?>"><?php echo $project->consumed . ' ' . $lang->execution->workHourUnit;?></td>
<?php $programBudget = in_array($this->app->getClientLang(), ['zh-cn','zh-tw']) && $project->budget >= 10000 ? number_format($project->budget / 10000, 1) . $this->lang->program->tenThousand : number_format((float)$project->budget, 1);?>
<?php $programBudget = in_array($this->app->getClientLang(), ['zh-cn','zh-tw']) && $project->budget >= 10000 ? number_format($project->budget / 10000, 1) . $this->lang->project->tenThousand : number_format((float)$project->budget, 1);?>
<td class='text-right'><?php echo $project->budget != 0 ? zget($lang->project->currencySymbol, $project->budgetUnit) . ' ' . $programBudget : $lang->project->future;?></td>
<td class='text-center'><?php echo $project->leftStories;?></td>
<td class='text-center'><?php echo $project->leftTasks;?></td>
@@ -6,8 +6,8 @@
#cards {margin: 0; padding: 0 10px 10px 10px;}
#cards > .col {width: 33.33%;}
.col-side #cards > .col {width: 100%;}
#cards .panel {margin: 10px 0; border: 1px solid #DCDCDC; border-radius: 2px; box-shadow: none; height: 146px; cursor: pointer;}
#cards .panel:hover {border-color: #006AF1; box-shadow: 0 0 10px 0 rgba(0,0,100,.25);}
#cards .panel-content {margin: 10px 0; border: 1px solid #DCDCDC; border-radius: 2px; box-shadow: none; height: 146px; cursor: pointer;}
#cards .panel-content:hover {border-color: #006AF1; box-shadow: 0 0 10px 0 rgba(0,0,100,.25);}
#cards .panel-heading {padding: 12px 24px 10px 16px;}
#cards .panel-body {padding: 0 16px 16px;}
#cards .panel-actions {padding: 7px 0; z-index: 0}
@@ -36,10 +36,11 @@
<div class="panel-body">
<div class='row' id='cards'>
<?php foreach ($projects as $projectID => $project):?>
<div class='col' data-id='<?php echo $projectID?>'>
<div class='panel' data-url='<?php echo $this->createLink('project', 'index', "projectID=$project->id");?>'>
<?php $viewLink = $this->createLink('project', 'index', "projectID=$project->id");?>
<div class='col'>
<div class='panel-content'>
<div class='panel-heading not-move-handler'>
<strong class='project-name' title='<?php echo $project->name;?>'> <?php echo html::a($this->createLink('project', 'index', "projectID=$project->id", '', '', $project->id), $project->name);?> </strong>
<strong class='project-name' title='<?php echo $project->name;?>'> <?php echo html::a($viewLink, $project->name);?> </strong>
<?php if($project->model === 'waterfall'): ?>
<span class='project-type-label label label-warning label-outline'><?php echo $lang->project->waterfall; ?></span>
<?php else: ?>
+8 -6
View File
@@ -32,17 +32,19 @@
<tbody>
<?php foreach($releases as $release):?>
<?php
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$viewLink = $this->createLink('release', 'view', "releaseID={$release->id}");
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$productViewLink = $this->createLink('product', 'browse', "productID={$release->product}");
$buildViewLink = $this->createLink('build', 'view', "buildID={$release->build}");
$releaseViewLink = $this->createLink('release', 'view', "releaseID={$release->id}");
?>
<tr data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<tr <?php echo $appid?>>
<?php if($longBlock):?>
<td class='text-center'><?php echo sprintf('%03d', $release->id);?></td>
<td title='<?php echo $release->productName?>'><?php echo $release->productName?></td>
<td title='<?php echo $release->productName?>'><?php echo html::a($productViewLink, $release->productName);?></td>
<?php endif;?>
<td title='<?php echo $release->name?>'><?php echo $release->name?></td>
<td title='<?php echo $release->name?>'><?php echo html::a($releaseViewLink, $release->name);?></td>
<?php if($longBlock):?>
<td title='<?php echo $release->buildName?>'><?php echo $release->buildName?></td>
<td title='<?php echo $release->buildName?>'><?php echo html::a($buildViewLink, $release->buildName);?></td>
<?php endif;?>
<td class='text-center'><?php echo $release->date?></td>
<td class='c-status' title='<?php echo zget($lang->release->statusList, $release->status);?>'>
+1 -1
View File
@@ -39,7 +39,7 @@
$appid = isset($_GET['entry']) ? "class='app-btn text-center' data-id='{$this->get->entry}'" : "class='text-center'";
$viewLink = $this->createLink('execution', 'task', 'executionID=' . $execution->id);
?>
<tr data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<tr <?php echo $appid?>>
<td class='c-name text-left' title='<?php echo $execution->name;?>'><nobr><?php echo html::a($viewLink, $execution->name, '', "title='$execution->name'");?></nobr></td>
<td class="c-date"><?php echo $execution->end;?></td>
<?php if($longBlock):?>
+2 -2
View File
@@ -30,8 +30,8 @@
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : "";
$viewLink = $this->createLink('product', 'browse', 'productID=' . $id);
?>
<tr class='text-center' data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<td class="c-num text-ellipsis" title="<?php echo $name;?>"><?php echo $name;?></td>
<tr class='text-center' <?php echo $appid?>>
<td class="c-num text-ellipsis" title="<?php echo $name;?>"><?php echo html::a($viewLink, $name);?></td>
<td class="c-num"><?php echo empty($stories[$id]) ? 0: $stories[$id];?></td>
<td class="c-num"><?php echo empty($bugs[$id]) ? 0: $bugs[$id];?></td>
<td class="c-num"><?php echo empty($releases[$id]) ? 0: $releases[$id];?></td>
+10 -7
View File
@@ -31,18 +31,21 @@
<tbody>
<?php foreach($testtasks as $testtask):?>
<?php
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$viewLink = $this->createLink('testtask', 'view', "testtaskID={$testtask->id}");
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$productViewLink = $this->createLink('product', 'browse', "productID={$testtask->product}");
$projectViewLink = $this->createLink('project', 'view', "projectID={$testtask->project}");
$testtaskViewLink = $this->createLink('testtask', 'view', "testtaskID={$testtask->id}");
$buildViewLink = $this->createLink('build', 'view', "buildID={$testtask->build}");
?>
<tr class='text-center' data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<td class='text-left text-ellipsis' title='<?php echo $testtask->name?>'><?php echo $testtask->name?></td>
<tr class='text-center' <?php echo $appid?>>
<td class='text-left text-ellipsis' title='<?php echo $testtask->name?>'><?php echo html::a($testtaskViewLink, $testtask->name);?></td>
<?php if($longBlock):?>
<td class='text-left text-ellipsis' title='<?php echo $testtask->productName?>'><?php echo $testtask->productName?></td>
<td class='text-left text-ellipsis' title='<?php echo $testtask->productName?>'><?php echo html::a($productViewLink, $testtask->productName);?></td>
<?php endif;?>
<?php if($longBlock):?>
<td class='text-left text-ellipsis' title='<?php echo $testtask->projectName?>'><?php echo $testtask->projectName?></td>
<td class='text-left text-ellipsis' title='<?php echo $testtask->projectName?>'><?php echo html::a($projectViewLink, $testtask->projectName);?></td>
<?php endif;?>
<td class='text-left text-ellipsis' title='<?php echo $testtask->buildName?>'><?php echo $testtask->buildName?></td>
<td class='text-left text-ellipsis' title='<?php echo $testtask->buildName?>'><?php echo html::a($buildViewLink, $testtask->buildName);?></td>
<td><?php echo zget($lang->testtask->statusList, $testtask->status)?></td>
</tr>
<?php endforeach;?>
+2 -10
View File
@@ -27,16 +27,12 @@
<table class='table table-borderless table-hover table-fixed table-fixed-head tablesorter block-stories <?php if(!$longBlock) echo 'block-sm'?>'>
<thead>
<tr>
<?php if($longBlock):?>
<th class="c-id"><?php echo $lang->idAB?></th>
<?php endif;?>
<th class="c-pri"><?php echo $lang->priAB?></th>
<th class="c-name"><?php echo $lang->SRCommon;?></th>
<?php if($longBlock):?>
<th class='c-estimate'><?php echo $lang->story->estimateAB;?></th>
<?php endif;?>
<th class="c-status"><?php echo $lang->statusAB;?></th>
<?php if($longBlock):?>
<th class='c-stage'><?php echo $lang->story->stageAB;?></th>
<?php endif;?>
</tr>
@@ -47,20 +43,16 @@
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$viewLink = $this->createLink('story', 'view', "storyID={$story->id}");
?>
<tr data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<?php if($longBlock):?>
<tr <?php echo $appid?>>
<td class="c-id-xs"><?php echo sprintf('%03d', $story->id);?></td>
<?php endif;?>
<td class="c-pri"><span class="label-pri label-pri-<?php echo $story->pri?>" title="<?php echo zget($lang->story->priList, $story->pri, $story->pri);?>"><?php echo zget($lang->story->priList, $story->pri, $story->pri)?></span></td>
<td class="c-name" style='color: <?php echo $story->color?>' title='<?php echo $story->title?>'><?php echo $story->title?></td>
<td class="c-name" style='color: <?php echo $story->color?>' title='<?php echo $story->title?>'><?php echo html::a($viewLink, $story->title);?></td>
<?php if($longBlock):?>
<td class='c-estimate text-center' title="<?php echo $story->estimate . ' ' . $lang->hourCommon;?>"><?php echo $story->estimate . ' ' . $config->hourUnit?></td>
<?php endif;?>
<?php $status = $this->processStatus('story', $story);?>
<td class='c-status' title='<?php echo $status;?>'>
<span class="status-story status-<?php echo $story->status?>"><?php echo $status;?></span>
</td>
<?php if($longBlock):?>
<td class='c-stage'>
<span class='story-stage-<?php echo $story->stage?>'>
<?php echo zget($lang->story->stageList, $story->stage, $story->stage);?>
+8 -6
View File
@@ -32,17 +32,19 @@
<tbody>
<?php foreach($testtasks as $testtask):?>
<?php
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$viewLink = $this->createLink('testtask', 'view', "testtaskID={$testtask->id}");
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$productViewLink = $this->createLink('product', 'browse', "productID={$testtask->product}");
$buildViewLink = $this->createLink('build', 'view', "buildID={$testtask->execution}");
$testtaskViewLink = $this->createLink('testtask', 'view', "testtaskID={$testtask->id}");
?>
<tr class='text-center' data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<tr class='text-center' <?php echo $appid?>>
<?php if($longBlock):?>
<td><?php echo sprintf('%03d', $testtask->id);?></td>
<td class='text-left' title='<?php echo $testtask->productName?>'><?php echo $testtask->productName?></td>
<td class='text-left' title='<?php echo $testtask->productName?>'><?php echo html::a($productViewLink, $testtask->productName);?></td>
<?php endif;?>
<td class='text-left' title='<?php echo $testtask->name?>'><?php echo $testtask->name?></td>
<td class='text-left' title='<?php echo $testtask->name?>'><?php echo html::a($testtaskViewLink, $testtask->name);?></td>
<?php if($longBlock):?>
<td class='text-left' title='<?php echo $testtask->projectName . '/' . $testtask->buildName?>'><?php echo $testtask->projectName . '/' . $testtask->buildName?></td>
<td class='text-left' title='<?php echo $testtask->projectName . '/' . $testtask->buildName?>'><?php echo html::a($buildViewLink, $testtask->projectName . '/' . $testtask->buildName);?></td>
<?php endif;?>
<td><?php echo $testtask->begin?></td>
<td><?php echo $testtask->end?></td>
+3 -3
View File
@@ -28,10 +28,10 @@
<tbody>
<?php foreach($todos as $todo):?>
<?php
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$appid = isset($_GET['entry']) ? "class='app-btn' data-id='{$this->get->entry}'" : '';
$viewLink = $this->createLink('todo', 'view', "todo={$todo->id}");
?>
<tr data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<tr <?php echo $appid?>>
<td class='c-date'>
<?php if ($todo->date == '2030-01-01') :?>
<?php echo $lang->todo->periods['future'];?>
@@ -40,7 +40,7 @@
<?php endif;?>
</td>
<td class="c-pri"><span class="todo-pri label-pri label-pri-<?php echo $todo->pri?>" title="<?php echo zget($lang->todo->priList, $todo->pri);?>"><?php echo zget($lang->todo->priList, $todo->pri);?></span></td>
<td class="c-name" title='<?php echo $todo->name;?>'><?php echo $todo->name;?></td>
<td class="c-name" title='<?php echo $todo->name;?>'><?php echo html::a($viewLink, $todo->name);?></td>
<td class='c-status'><?php echo zget($lang->todo->statusList, $todo->status);?></td>
</tr>
<?php endforeach;?>
+1 -1
View File
@@ -213,8 +213,8 @@ class productplan extends control
/* Append id for secend sort. */
$sort = $this->loadModel('common')->appendOrder($orderBy);
$this->session->set('productPlanList', $this->app->getURI(true), 'product');
$this->commonAction($productID, $branch);
$products = $this->product->getPairs();
$this->view->title = $products[$productID] . $this->lang->colon . $this->lang->productplan->browse;
+3 -3
View File
@@ -79,7 +79,7 @@
</div>
<?php endif;?>
<?php common::printIcon('program', 'edit', "programID=$program->id", '', 'list', 'edit');?>
<?php common::printIcon('program', 'create', "programID=$program->id", '', 'list', 'split', '', '', '', '', $this->lang->program->children);?>
<?php common::printIcon('program', 'create', "programID=$program->id", '', 'list', 'split', '', '', '', $program->status == 'closed' ? 'disabled' : '', $this->lang->program->children);?>
<?php if(common::hasPriv('program', 'delete')) echo html::a($this->createLink("program", "delete", "programID=$program->id"), "<i class='icon-trash'></i>", 'hiddenwin', "class='btn' title='{$this->lang->program->delete}'");?>
<?php else:?>
@@ -103,8 +103,8 @@
<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('project', 'manageProducts', "projectID=$program->id&programID=$program->parent&from=browse", $program, 'list', 'link', '', '', '', "data-group='program'", '', $program->id);?>
<?php common::printIcon('project', 'whitelist', "projectID=$program->id&programID=$program->parent&module=program&from=browse", $program, 'list', 'shield-check', '', '', '', "data-group='program'", '', $program->id);?>
<?php common::printIcon('project', 'manageProducts', "projectID=$program->id&programID=$program->parent&from=browse", $program, 'list', 'link', '', '', '', "data-app='project'", '', $program->id);?>
<?php common::printIcon('project', 'whitelist', "projectID=$program->id&programID=$program->parent&module=program&from=browse", $program, 'list', 'shield-check', '', '', '', "data-app='project'", '', $program->id);?>
<?php if(common::hasPriv('project','delete')) echo html::a($this->createLink("project", "delete", "projectID=$program->id"), "<i class='icon-trash'></i>", 'hiddenwin', "class='btn' title='{$this->lang->delete}' data-group='program'");?>
</ul>
</div>
+4 -1
View File
@@ -530,6 +530,7 @@ class project extends control
*/
public function group($projectID = 0, $programID = 0)
{
$this->loadModel('group');
$this->project->setMenu($projectID);
$title = $this->lang->company->orgView . $this->lang->colon . $this->lang->group->browse;
@@ -559,6 +560,8 @@ class project extends control
*/
public function createGroup($projectID = 0)
{
$this->loadModel('group');
if(!empty($_POST))
{
$_POST['project'] = $projectID;
@@ -1293,7 +1296,7 @@ class project extends control
$this->user->updateUserView($projectID, 'project');
/* Delete the execution under the project. */
$executionIdList = $this->execution->getByProject($projectID);
$executionIdList = $this->loadModel('execution')->getByProject($projectID);
if(empty($executionIdList)) die(js::reload('parent'));
$this->dao->update(TABLE_EXECUTION)->set('deleted')->eq(1)->where('id')->in(array_keys($executionIdList))->exec();
+1 -1
View File
@@ -54,7 +54,7 @@
<td><input type='text' name='roles[]' id='role<?php echo $i;?>' class='form-control' value='<?php echo $roles[$deptAccount]?>'/></td>
<td><input type='text' name='days[]' id='days<?php echo $i;?>' class='form-control' value='<?php echo $project->days?>'/></td>
<td>
<input type='text' name='hours[]' id='hours<?php echo $i;?>' class='form-control' value='<?php echo $config->project->defaultWorkhours?>' />
<input type='text' name='hours[]' id='hours<?php echo $i;?>' class='form-control' value='<?php echo $config->execution->defaultWorkhours?>' />
</td>
<td><?php echo html::radio("limited[$i]", $lang->team->limitedList, 'no');?></td>
<td class='c-actions text-center'>