* Fix code for execution.

This commit is contained in:
Yagami
2021-03-08 14:03:40 +08:00
parent 825ff044e2
commit 2ee08d06de
43 changed files with 732 additions and 773 deletions

View File

@@ -66,8 +66,8 @@ class execution extends control
if(common::hasPriv('execution', 'create')) $this->lang->TRActions = html::a($this->createLink('execution', 'create'), "<i class='icon icon-sm icon-plus'></i> " . $this->lang->execution->create, '', "class='btn btn-primary'");
$this->view->title = $this->lang->execution->index;
$this->view->position[] = $this->lang->execution->index;
$this->view->title = $this->lang->execution->index;
$this->view->position[] = $this->lang->execution->index;
$this->display();
}
@@ -132,14 +132,6 @@ class execution extends control
*/
public function task($executionID = 0, $status = 'unclosed', $param = 0, $orderBy = '', $recTotal = 0, $recPerPage = 100, $pageID = 1)
{
/* Save last PRJ. */
if($this->config->systemMode == 'new')
{
$executionID = $this->project->saveState($this->session->project, $this->project->getPairs());
if(!$executionID) $this->locate($this->createLink('program', 'PRJbrowse'));
setCookie("lastPRJ", $executionID, $this->config->cookieLife, $this->config->webRoot, '', false, true);
}
$this->loadModel('tree');
$this->loadModel('search');
$this->loadModel('task');
@@ -1211,51 +1203,42 @@ class execution extends control
}
}
$this->view->isSprint = false;
$execution = $this->execution->getById($this->session->project);
$isSprint = true;
if($this->config->systemMode == 'new')
{
if($execution->model == 'scrum' && isset($this->config->custom->sprintConcept) and $this->config->custom->sprintConcept == 1)
$project = $this->project->getById($this->session->project);
if($project->model == 'scrum')
{
$this->view->isSprint = true;
unset($this->lang->execution->endList[62]);
unset($this->lang->execution->endList[93]);
unset($this->lang->execution->endList[186]);
unset($this->lang->execution->endList[365]);
}
$this->view->isStage = $execution->model == 'waterfall' ? true : false;
$this->view->iconObject = $execution->model == 'waterfall' ? 'stage' : 'sprint';
}
else
{
$this->view->isStage = false;
}
$executionID = key($this->executions);
$this->execution->setMenu($this->executions, $executionID);
$this->view->title = $this->lang->execution->create;
$this->view->position[] = $this->view->title;
$this->view->title = $this->lang->execution->create;
$this->view->position[] = $this->view->title;
$this->view->executions = array('' => '') + $this->executions;
$this->view->groups = $this->loadModel('group')->getPairs();
$this->view->allProducts = array(0 => '') + $this->loadModel('product')->getProductPairsByProject($this->session->project);
$this->view->acl = $acl;
$this->view->plan = $plan;
$this->view->name = $name;
$this->view->code = $code;
$this->view->team = $team;
$this->view->groups = $this->loadModel('group')->getPairs();
$this->view->allProducts = array(0 => '') + $this->loadModel('product')->getProductPairsByProject($this->session->project);
$this->view->acl = $acl;
$this->view->plan = $plan;
$this->view->name = $name;
$this->view->code = $code;
$this->view->team = $team;
$this->view->executionID = $executionID;
$this->view->productID = $productID;
$this->view->products = $products;
$this->view->productPlan = array(0 => '') + $productPlan;
$this->view->productPlans = array(0 => '') + $productPlans;
$this->view->whitelist = $whitelist;
$this->view->productID = $productID;
$this->view->products = $products;
$this->view->productPlan = array(0 => '') + $productPlan;
$this->view->productPlans = array(0 => '') + $productPlans;
$this->view->whitelist = $whitelist;
$this->view->copyExecutionID = $copyExecutionID;
$this->view->branchGroups = $this->loadModel('branch')->getByProducts(array_keys($products));
$this->view->users = $this->loadModel('user')->getPairs('nodeleted|noclosed');
$this->view->branchGroups = $this->loadModel('branch')->getByProducts(array_keys($products));
$this->view->users = $this->loadModel('user')->getPairs('nodeleted|noclosed');
$this->view->isSprint = $isSprint;
$this->display();
}
@@ -1350,25 +1333,21 @@ class execution extends control
$productPlans[$product->id] = $this->productplan->getPairs($product->id);
}
$this->view->isSprint = false;
$isSprint = true;
if($this->config->systemMode == 'new')
{
$PRJData = $this->execution->getById($this->session->project);
if($PRJData->model == 'scrum' && isset($this->config->custom->sprintConcept) && $this->config->custom->sprintConcept == 1)
$project = $this->project->getById($this->session->project);
if($project->model == 'scrum')
{
$this->view->isSprint = true;
unset($this->lang->execution->endList[62]);
unset($this->lang->execution->endList[93]);
unset($this->lang->execution->endList[186]);
unset($this->lang->execution->endList[365]);
}
$this->view->isStage = $PRJData->model == 'waterfall' ? true : false;
}
else
{
$this->view->isStage = false;
else
{
$isSprint = false;
}
}
$this->loadModel('user');
@@ -1399,6 +1378,7 @@ class execution extends control
$this->view->unmodifiableProducts = $unmodifiableProducts;
$this->view->productPlans = $productPlans;
$this->view->branchGroups = $this->loadModel('branch')->getByProducts(array_keys($linkedProducts), '', $linkedBranches);
$this->view->isSprint = $isSprint;
$this->display();
}
@@ -1461,17 +1441,17 @@ class execution extends control
$rdUsers = $this->user->getPairs('noclosed|nodeleted|devfirst', $appendRdUsers, $this->config->maxCount);
if(!empty($this->config->user->moreLink)) $this->config->moreLinks["RD"] = $this->config->user->moreLink;
$PRJData = $this->execution->getById($this->session->project);
$project = $this->project->getById($this->session->project);
$this->view->title = $this->lang->execution->batchEdit;
$this->view->position[] = $this->lang->execution->batchEdit;
$this->view->title = $this->lang->execution->batchEdit;
$this->view->position[] = $this->lang->execution->batchEdit;
$this->view->executionIDList = $executionIDList;
$this->view->executions = $executions;
$this->view->pmUsers = $pmUsers;
$this->view->poUsers = $poUsers;
$this->view->qdUsers = $qdUsers;
$this->view->rdUsers = $rdUsers;
$this->view->isStage = $PRJData->model == 'waterfall' ? true : false;
$this->view->pmUsers = $pmUsers;
$this->view->poUsers = $poUsers;
$this->view->qdUsers = $qdUsers;
$this->view->rdUsers = $rdUsers;
$this->view->isStage = $project->model == 'waterfall' ? true : false;
$this->display();
}
@@ -1670,7 +1650,7 @@ class execution extends control
if(empty($execution) || strpos('stage,sprint', $execution->type) === false) die(js::error($this->lang->notFound) . js::locate('back'));
$this->app->loadLang('program');
$this->session->project = $execution->execution;
$this->session->project = $execution->project;
/* Execution not found to prevent searching for .*/
if(!isset($this->executions[$execution->id])) $this->executions = $this->execution->getPairs($execution->execution, 'all', 'nocode');
@@ -2884,7 +2864,7 @@ class execution extends control
$this->view->cases = $cases;
$this->view->story = $story;
$this->view->users = $users;
$this->view->executions = $this->loadModel('execution')->getPairs($this->session->project, 'all', 'nocode');
$this->view->executions = $this->loadModel('execution')->getPairs($this->session->project, 'all', 'nocode');
$this->view->actions = $this->loadModel('action')->getList('story', $storyID);
$this->view->modulePath = $modulePath;
$this->view->version = $version == 0 ? $story->version : $version;

View File

@@ -38,7 +38,7 @@ $(function()
var adjustMainCol = function()
{
if(!isStage) $('.main-form .col-main').css('width', Math.max(250, Math.floor(($('#productsBox').outerWidth() - 50)/3) + 10));
if(isSprint) $('.main-form .col-main').css('width', Math.max(250, Math.floor(($('#productsBox').outerWidth() - 50)/3) + 10));
};
adjustMainCol();
$(window).on('resize', adjustMainCol);

View File

@@ -62,12 +62,12 @@ class executionModel extends model
*/
public function setMenu($executions, $executionID, $buildID = 0, $extra = '')
{
$execution = $this->getByID($this->session->project);
$project = $this->getByID($this->session->project);
if(empty($executions))
{
if($execution->model == 'waterfall')
if($project->model == 'waterfall')
{
if(($this->app->moduleName == 'programplan' && $this->app->methodName != 'create') || $this->app->moduleName == 'execution') die(js::locate(helper::createLink('programplan', 'create', "executionID=$execution->id")));
if(($this->app->moduleName == 'programplan' && $this->app->methodName != 'create') || $this->app->moduleName == 'execution') die(js::locate(helper::createLink('programplan', 'create', "projectID=$project->id")));
}
else
{
@@ -75,21 +75,8 @@ class executionModel extends model
}
}
if(!$executionID and $this->session->project) $executionID = $this->session->project;
$execution = $this->getById($executionID);
$isProgram = false;
if(!empty($execution))
{
$isProgram = $execution->model;
$execution = $isProgram ? $execution : $this->getByID($execution->parent);
}
if($isProgram)
{
$executionID = $this->session->project;
if(!$executionID or !in_array($executionID, array_keys($executions))) $executionID = key($executions);
}
if(!$executionID and $this->session->execution) $executionID = $this->session->execution;
if(!$executionID or !in_array($executionID, array_keys($executions))) $executionID = key($executions);
$this->session->set('execution', $executionID);
@@ -176,9 +163,7 @@ class executionModel extends model
*/
public function select($executions, $executionID, $buildID, $currentModule, $currentMethod, $extra = '')
{
if(!$executions) return false;
if(!$executionID) return;
if(!$executions or !$executionID) return false;
$isMobile = $this->app->viewType == 'mhtml';
@@ -189,11 +174,11 @@ class executionModel extends model
{
if(isset($currentExecution->type) and $currentExecution->type == 'program') return;
if(isset($currentExecution->execution)) $execution = $this->loadModel('execution')->getByID($currentExecution->execution);
if($currentExecution->project) $project = $this->loadModel('project')->getByID($currentExecution->project);
if(isset($execution) and $execution->model == 'waterfall')
if(isset($project) and $project->model == 'waterfall')
{
$productID = $this->loadModel('product')->getProductIDByExecution($currentExecution->id);
$productID = $this->loadModel('product')->getProductIDByProject($project->id);
$productName = $this->dao->findByID($productID)->from(TABLE_PRODUCT)->fetch('name');
$currentExecution->name = $productName . '/' . $currentExecution->name;
}
@@ -290,10 +275,10 @@ class executionModel extends model
public function saveState($executionID, $executions)
{
/* When the cookie and session do not exist, get it from the database. */
if(empty($executionID) && isset($this->config->execution->lastExecution) && isset($executions[$this->config->execution->lastExecution]))
if(empty($executionID) and isset($this->config->execution->lastExecution) and isset($executions[$this->config->execution->lastExecution]))
{
$this->session->set('execution', $this->config->execution->lastExecution);
return $this->session->project;
return $this->session->execution;
}
if($executionID > 0) $this->session->set('execution', (int)$executionID);
@@ -304,13 +289,13 @@ class executionModel extends model
$executionID = in_array($executionID, array_keys($executions)) ? $executionID : key($executions);
$this->session->set('execution', $executionID);
}
if($executionID == 0 and $this->session->project == '') $this->session->set('execution', key($executions));
if(!isset($executions[$this->session->project]))
if($executionID == 0 and $this->session->execution == '') $this->session->set('execution', key($executions));
if(!isset($executions[$this->session->execution]))
{
$this->session->set('execution', key($executions));
if($executionID && strpos(",{$this->app->user->view->sprints},", ",{$this->session->project},") === false) $this->accessDenied();
if($executionID && strpos(",{$this->app->user->view->sprints},", ",{$this->session->execution},") === false) $this->accessDenied();
}
return $this->session->project;
return $this->session->execution;
}
/**
@@ -326,7 +311,7 @@ class executionModel extends model
$this->lang->execution->team = $this->lang->execution->teamname;
/* Determine whether to add a sprint or a stage according to the model of the execution. */
$execution = $this->getByID($this->session->project);
$execution = $this->getByID($this->session->project);
$sprintType = $this->config->systemMode == 'new' ? zget($this->config->execution->modelList, $execution->model, '') : 'sprint';
/* If the execution model is a stage, determine whether the product is linked. */
@@ -377,7 +362,7 @@ class executionModel extends model
/* Add the creater to the team. */
if(!dao::isError())
{
$executionID = $this->dao->lastInsertId();
$executionID = $this->dao->lastInsertId();
$today = helper::today();
$creatorExists = false;

View File

@@ -1,11 +1,11 @@
<?php
/**
* The suspend file of project module of ZenTaoPMS.
* The suspend file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang<wwccss@gmail.com>
* @package project
* @package execution
* @version $Id: suspend.html.php 935 2013-01-16 07:49:24Z wwccss@gmail.com $
* @link http://www.zentao.net
*/
@@ -17,19 +17,19 @@
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2>
<span class='prefix label-id'><strong><?php echo $project->id;?></strong></span>
<?php echo isonlybody() ? ("<span title='$project->name'>" . $project->name . '</span>') : html::a($this->createLink('project', 'view', 'project=' . $project->id), $project->name, '_blank');?>
<span class='prefix label-id'><strong><?php echo $execution->id;?></strong></span>
<?php echo isonlybody() ? ("<span title='$execution->name'>" . $execution->name . '</span>') : html::a($this->createLink('execution', 'view', 'execution=' . $execution->id), $execution->name, '_blank');?>
<?php if(!isonlybody()):?>
<small><?php echo $lang->arrow . $lang->project->activate;?></small>
<small><?php echo $lang->arrow . $lang->execution->activate;?></small>
<?php endif;?>
</h2>
</div>
<form class='load-indicator main-form' method='post' target='hiddenwin'>
<table class='table table-form'>
<tr style='height:50px;'>
<th class='w-70px'><?php echo $lang->project->beginAndEnd;?></th>
<th class='w-70px'><?php echo $lang->execution->beginAndEnd;?></th>
<td class='muted' colspan='2'>
<div id='sourceTimeBox'><?php echo $project->begin . ' ~ ' . $project->end;?></div>
<div id='sourceTimeBox'><?php echo $execution->begin . ' ~ ' . $execution->end;?></div>
<div id='readjustTimeBox' class='hide'>
<div class='input-group'>
<?php echo html::input('begin', $newBegin, "class='form-control form-date'")?>
@@ -41,19 +41,19 @@
<td colspan='3'>
<div class='clearfix row'>
<div class='col-md-6 pull-left'>
<div class="checkbox-primary"><input name="readjustTime" value="1" id="readjustTime" type="checkbox"><label for="readjustTime" class="no-margin"><?php echo $lang->project->readjustTime;?></label></div>
<div class="checkbox-primary"><input name="readjustTime" value="1" id="readjustTime" type="checkbox"><label for="readjustTime" class="no-margin"><?php echo $lang->execution->readjustTime;?></label></div>
</div>
<div class='col-md-6 pull-left'>
<div id='readjustTaskBox' class='checkbox-primary hidden'><input name="readjustTask" value="1" id="readjustTask" type="checkbox"> <label for='readjustTask' class='no-margin'><?php echo $lang->project->readjustTask?></label></div>
<div id='readjustTaskBox' class='checkbox-primary hidden'><input name="readjustTask" value="1" id="readjustTask" type="checkbox"> <label for='readjustTask' class='no-margin'><?php echo $lang->execution->readjustTask?></label></div>
</div>
</div>
</td>
</tr>
<tr class='hide'>
<th><?php echo $lang->project->status;?></th>
<th><?php echo $lang->execution->status;?></th>
<td><?php echo html::hidden('status', 'doing');?></td>
</tr>
<?php $this->printExtendFields($project, 'table', 'columns=5');?>
<?php $this->printExtendFields($execution, 'table', 'columns=5');?>
<tr>
<th><?php echo $lang->comment;?></th>
<td colspan='5'><?php echo html::textarea('comment', '', "rows='6' class='form-control kindeditor' hidefocus='true'");?></td>

View File

@@ -1,4 +1,4 @@
<?php js::set('projectID', $projectID);?>
<?php js::set('executionID', $executionID);?>
<?php js::set('module', $module);?>
<?php js::set('method', $method);?>
<?php js::set('extra', $extra);?>
@@ -6,30 +6,30 @@
$iCharges = 0;
$others = 0;
$dones = 0;
$projectNames = array();
$executionNames = array();
$myProjectsHtml = '';
$normalProjectsHtml = '';
$closedProjectsHtml = '';
foreach($projects as $project)
foreach($executions as $execution)
{
if($project->status != 'done' and $project->status != 'closed' and $project->PM == $this->app->user->account) $iCharges++;
if($project->status != 'done' and $project->status != 'closed' and !($project->PM == $this->app->user->account)) $others++;
if($project->status == 'done' or $project->status == 'closed') $dones++;
$projectNames[] = $project->name;
if($execution->status != 'done' and $execution->status != 'closed' and $execution->PM == $this->app->user->account) $iCharges++;
if($execution->status != 'done' and $execution->status != 'closed' and !($execution->PM == $this->app->user->account)) $others++;
if($execution->status == 'done' or $execution->status == 'closed') $dones++;
$executionNames[] = $execution->name;
}
$projectsPinYin = common::convert2Pinyin($projectNames);
$executionsPinYin = common::convert2Pinyin($executionNames);
foreach($projects as $project)
foreach($executions as $execution)
{
if($project->status != 'done' and $project->status != 'closed' and $project->PM == $this->app->user->account)
if($execution->status != 'done' and $execution->status != 'closed' and $execution->PM == $this->app->user->account)
{
$myProjectsHtml .= html::a(sprintf($link, $project->id), "<i class='icon icon-{$lang->icons[$project->type]}'></i> " . $project->name, '', "class='text-important' title='{$project->name}' data-key='" . zget($projectsPinYin, $project->name, '') . "'");
$myProjectsHtml .= html::a(sprintf($link, $execution->id), "<i class='icon icon-{$lang->icons[$execution->type]}'></i> " . $execution->name, '', "class='text-important' title='{$execution->name}' data-key='" . zget($executionsPinYin, $execution->name, '') . "'");
}
else if($project->status != 'done' and $project->status != 'closed' and !($project->PM == $this->app->user->account))
else if($execution->status != 'done' and $execution->status != 'closed' and !($execution->PM == $this->app->user->account))
{
$normalProjectsHtml .= html::a(sprintf($link, $project->id), "<i class='icon icon-{$lang->icons[$project->type]}'></i> " . $project->name, '', "title='{$project->name}' data-key='" . zget($projectsPinYin, $project->name, '') . "'");
$normalProjectsHtml .= html::a(sprintf($link, $execution->id), "<i class='icon icon-{$lang->icons[$execution->type]}'></i> " . $execution->name, '', "title='{$execution->name}' data-key='" . zget($executionsPinYin, $execution->name, '') . "'");
}
else if($project->status == 'done' or $project->status == 'closed') $closedProjectsHtml .= html::a(sprintf($link, $project->id), "<i class='icon icon-{$lang->icons[$project->type]}'></i> " . $project->name, '', "title='{$project->name}' data-key='" . zget($projectsPinYin, $project->name, '') . "'");
else if($execution->status == 'done' or $execution->status == 'closed') $closedProjectsHtml .= html::a(sprintf($link, $execution->id), "<i class='icon icon-{$lang->icons[$execution->type]}'></i> " . $execution->name, '', "title='{$execution->name}' data-key='" . zget($executionsPinYin, $execution->name, '') . "'");
}
?>
<div class="table-row">
@@ -38,19 +38,19 @@ foreach($projects as $project)
<?php
if(!empty($myProjectsHtml))
{
echo "<div class='heading'>{$lang->project->mine}</div>";
echo "<div class='heading'>{$lang->execution->mine}</div>";
echo $myProjectsHtml;
if(!empty($myProjectsHtml))
{
echo "<div class='heading'>{$lang->project->other}</div>";
echo "<div class='heading'>{$lang->execution->other}</div>";
}
}
echo $normalProjectsHtml;
?>
</div>
<div class="col-footer">
<?php echo html::a(helper::createLink('program', 'prjbrowse'), '<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>
<?php echo html::a(helper::createLink('program', 'prjbrowse'), '<i class="icon icon-cards-view muted"></i> ' . $lang->execution->all, '', 'class="not-list-item"'); ?>
<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">

View File

@@ -1,11 +1,11 @@
<?php
/**
* The kanban setting view file of project module of ZenTaoPMS.
* The kanban setting view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package project
* @package execution
* @version $Id$
* @link http://www.zentao.net
*/
@@ -21,19 +21,19 @@ form {padding: 30px 0 40px;}
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
<h2><?php echo $lang->project->kanbanSetting;?></h2>
<h2><?php echo $lang->execution->kanbanSetting;?></h2>
</div>
<form target='hiddenwin' method='post'>
<table class='table table-form'>
<?php if(common::hasPriv('project', 'kanbanHideCols')):?>
<?php if(common::hasPriv('execution', 'kanbanHideCols')):?>
<tr class='statusTR'>
<th class='text-right w-200px'><?php echo $lang->project->kanbanHideCols?></th>
<th class='text-right w-200px'><?php echo $lang->execution->kanbanHideCols?></th>
<td><?php echo html::radio('allCols', $lang->kanbanSetting->optionList, $setting->allCols)?></td>
</tr>
<?php endif;?>
<?php if(common::hasPriv('project', 'kanbanColsColor')):?>
<?php if(common::hasPriv('execution', 'kanbanColsColor')):?>
<tr class='statusTR'>
<th class='text-right'><?php echo $lang->project->kanbanColsColor?></th>
<th class='text-right'><?php echo $lang->execution->kanbanColsColor?></th>
<td>
<div class='row'>
<?php foreach($setting->colorList as $status => $color):?>
@@ -52,7 +52,7 @@ form {padding: 30px 0 40px;}
<td colspan='2' class='form-actions text-center'>
<?php
echo html::submitButton();
echo '&nbsp;' . html::a(inlink('ajaxResetKanban', "projectID=$projectID"), $lang->project->resetKanban, 'hiddenwin', "class='btn btn-wide'");
echo '&nbsp;' . html::a(inlink('ajaxResetKanban', "executionID=$executionID"), $lang->execution->resetKanban, 'hiddenwin', "class='btn btn-wide'");
?>
</td>
</tr>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The html template file of all method of project module of ZenTaoPMS.
* The html template file of all method of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package project
* @package execution
* @version $Id: index.html.php 5094 2013-07-10 08:46:15Z chencongzhi520@gmail.com $
*/
?>
@@ -26,24 +26,24 @@
</style>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<?php foreach($lang->project->featureBar['all'] as $key => $label):?>
<?php echo html::a(inlink("all", "status=$key&projectID=$project->id&orderBy=$orderBy&productID=$productID"), "<span class='text'>{$label}</span>", '', "class='btn btn-link' id='{$key}Tab'");?>
<?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 endforeach;?>
<div class='input-control space w-180px'>
<?php echo html::select('product', $products, $productID, "class='chosen form-control' onchange='byProduct(this.value, $projectID, \"$status\")'");?>
<?php echo html::select('product', $products, $productID, "class='chosen form-control' onchange='byProduct(this.value, $executionID, \"$status\")'");?>
</div>
</div>
<div class='btn-toolbar pull-right'>
<?php common::printLink('project', 'export', "status=$status&productID=$productID&orderBy=$orderBy", "<i class='icon-export muted'> </i>" . $lang->export, '', "class='btn btn-link export'")?>
<?php if(common::hasPriv('project', 'create')) echo html::a($this->createLink('project', 'create'), "<i class='icon icon-sm icon-plus'></i> " . $this->lang->project->create, '', "class='btn btn-primary'");?>
<?php common::printLink('execution', 'export', "status=$status&productID=$productID&orderBy=$orderBy", "<i class='icon-export muted'> </i>" . $lang->export, '', "class='btn btn-link export'")?>
<?php if(common::hasPriv('execution', 'create')) echo html::a($this->createLink('execution', 'create'), "<i class='icon icon-sm icon-plus'></i> " . $this->lang->execution->create, '', "class='btn btn-primary'");?>
</div>
</div>
<div id='mainContent'>
<?php $canOrder = (common::hasPriv('project', 'updateOrder') and strpos($orderBy, 'order') !== false)?>
<?php $canBatchEdit = common::hasPriv('project', 'batchEdit'); ?>
<form class='main-table' id='projectsForm' method='post' action='<?php echo inLink('batchEdit', "projectID=$projectID");?>' data-ride='table'>
<table class='table has-sort-head table-fixed' id='projectList'>
<?php $vars = "status=$status&projectID=$projectID&orderBy=%s&productID=$productID&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?>
<?php $canOrder = (common::hasPriv('execution', 'updateOrder') and strpos($orderBy, 'order') !== false)?>
<?php $canBatchEdit = common::hasPriv('execution', 'batchEdit'); ?>
<form class='main-table' id='executionsForm' method='post' action='<?php echo inLink('batchEdit', "executionID=$executionID");?>' data-ride='table'>
<table class='table has-sort-head table-fixed' id='executionList'>
<?php $vars = "status=$status&executionID=$executionID&orderBy=%s&productID=$productID&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?>
<thead>
<tr>
<th class='c-id'>
@@ -54,28 +54,28 @@
<?php endif;?>
<?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?>
</th>
<th><?php common::printOrderLink('name', $orderBy, $vars, $lang->project->name);?></th>
<th class='w-150px'><?php common::printOrderLink('code', $orderBy, $vars, $lang->project->code);?></th>
<th class='thWidth'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->project->PM);?></th>
<th class='w-90px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->project->end);?></th>
<th class='w-90px'><?php common::printOrderLink('status', $orderBy, $vars, $lang->project->status);?></th>
<th class='w-70px'><?php echo $lang->project->totalEstimate;?></th>
<th class='w-70px'><?php echo $lang->project->totalConsumed;?></th>
<th class='w-70px'><?php echo $lang->project->totalLeft;?></th>
<th class='w-150px'><?php echo $lang->project->progress;?></th>
<th class='w-100px'><?php echo $lang->project->burn;?></th>
<th><?php common::printOrderLink('name', $orderBy, $vars, $lang->execution->name);?></th>
<th class='w-150px'><?php common::printOrderLink('code', $orderBy, $vars, $lang->execution->code);?></th>
<th class='thWidth'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->execution->PM);?></th>
<th class='w-90px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->execution->end);?></th>
<th class='w-90px'><?php common::printOrderLink('status', $orderBy, $vars, $lang->execution->status);?></th>
<th class='w-70px'><?php echo $lang->execution->totalEstimate;?></th>
<th class='w-70px'><?php echo $lang->execution->totalConsumed;?></th>
<th class='w-70px'><?php echo $lang->execution->totalLeft;?></th>
<th class='w-150px'><?php echo $lang->execution->progress;?></th>
<th class='w-100px'><?php echo $lang->execution->burn;?></th>
<?php if($canOrder):?>
<th class='w-60px sort-default'><?php common::printOrderLink('order', $orderBy, $vars, $lang->project->orderAB);?></th>
<th class='w-60px sort-default'><?php common::printOrderLink('order', $orderBy, $vars, $lang->execution->orderAB);?></th>
<?php endif;?>
</tr>
</thead>
<tbody class='sortable' id='projectTableList'>
<tbody class='sortable' id='executionTableList'>
<?php foreach($executionStats as $execution):?>
<tr data-id='<?php echo $execution->id ?>' data-order='<?php echo $execution->order ?>'>
<td class='c-id'>
<?php if($canBatchEdit):?>
<div class="checkbox-primary">
<input type='checkbox' name='projectIDList[<?php echo $execution->id;?>]' value='<?php echo $execution->id;?>' />
<input type='checkbox' name='executionIDList[<?php echo $execution->id;?>]' value='<?php echo $execution->id;?>' />
<label></label>
</div>
<?php endif;?>
@@ -83,8 +83,8 @@
</td>
<td class='text-left <?php if(!empty($execution->children)) echo 'has-child';?>' title='<?php echo $execution->name?>'>
<?php
if(isset($execution->delay)) echo "<span class='label label-danger label-badge'>{$lang->project->delayed}</span> ";
echo !empty($execution->children) ? $execution->name : html::a($this->createLink('project', 'view', 'project=' . $execution->id), $execution->name);
if(isset($execution->delay)) echo "<span class='label label-danger label-badge'>{$lang->execution->delayed}</span> ";
echo !empty($execution->children) ? $execution->name : html::a($this->createLink('execution', 'view', 'execution=' . $execution->id), $execution->name);
?>
<?php if(!empty($execution->children)):?>
<a class="plan-toggle" data-id="<?php echo $execution->id;?>"><i class="icon icon-angle-double-right"></i></a>
@@ -93,9 +93,9 @@
<td class='text-left' title="<?php echo $execution->code;?>"><?php echo $execution->code;?></td>
<td><?php echo zget($users, $execution->PM);?></td>
<td><?php echo $execution->end;?></td>
<?php $projectStatus = $this->processStatus('project', $execution);?>
<td class='c-status' title='<?php echo $projectStatus;?>'>
<span class="status-project status-<?php echo $execution->status?>"><?php echo $projectStatus;?></span>
<?php $executionStatus = $this->processStatus('execution', $execution);?>
<td class='c-status' title='<?php echo $executionStatus;?>'>
<span class="status-execution status-<?php echo $execution->status?>"><?php echo $executionStatus;?></span>
</td>
<td><?php echo $execution->hours->totalEstimate . ' ' . $config->hourUnit;?></td>
<td><?php echo $execution->hours->totalConsumed . ' ' . $config->hourUnit;?></td>
@@ -121,7 +121,7 @@
<td class='c-id'>
<?php if($canBatchEdit):?>
<div class="checkbox-primary">
<input type='checkbox' name='projectIDList[<?php echo $child->id;?>]' value='<?php echo $child->id;?>' />
<input type='checkbox' name='executionIDList[<?php echo $child->id;?>]' value='<?php echo $child->id;?>' />
<label></label>
</div>
<?php endif;?>
@@ -129,17 +129,17 @@
</td>
<td class='text-left' title='<?php echo $child->name?>'>
<?php
if(isset($child->delay)) echo "<span class='label label-danger label-badge'>{$lang->project->delayed}</span> ";
if(isset($child->delay)) echo "<span class='label label-danger label-badge'>{$lang->execution->delayed}</span> ";
echo "<span class='label label-badge label-light' title='{$lang->programplan->children}'>{$lang->programplan->childrenAB}</span>";
echo html::a($this->createLink('project', 'view', 'project=' . $child->id), $child->name);
echo html::a($this->createLink('execution', 'view', 'execution=' . $child->id), $child->name);
?>
</td>
<td class='text-left' title="<?php echo $child->code;?>"><?php echo $child->code;?></td>
<td><?php echo zget($users, $child->PM);?></td>
<td><?php echo $child->end;?></td>
<?php $projectStatus = $this->processStatus('project', $child);?>
<td class='c-status' title='<?php echo $projectStatus;?>'>
<span class="status-project status-<?php echo $child->status?>"><?php echo $projectStatus;?></span>
<?php $executionStatus = $this->processStatus('execution', $child);?>
<td class='c-status' title='<?php echo $executionStatus;?>'>
<span class="status-execution status-<?php echo $child->status?>"><?php echo $executionStatus;?></span>
</td>
<td><?php echo $child->hours->totalEstimate;?></td>
<td><?php echo $child->hours->totalConsumed;?></td>
@@ -166,9 +166,9 @@
<div class='table-footer'>
<?php if($canBatchEdit):?>
<div class="checkbox-primary check-all"><label><?php echo $lang->selectAll?></label></div>
<div class="table-actions btn-toolbar"><?php echo html::submitButton($lang->project->batchEdit, '', 'btn');?></div>
<div class="table-actions btn-toolbar"><?php echo html::submitButton($lang->execution->batchEdit, '', 'btn');?></div>
<?php endif;?>
<?php if(!$canOrder and common::hasPriv('project', 'updateOrder')) echo html::a(inlink('all', "status=$status&projectID=$projectID&order=order_desc&productID=$productID&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"), $lang->project->updateOrder, '', "class='btn'");?>
<?php if(!$canOrder and common::hasPriv('execution', 'updateOrder')) echo html::a(inlink('all', "status=$status&executionID=$executionID&order=order_desc&productID=$productID&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"), $lang->execution->updateOrder, '', "class='btn'");?>
<?php $pager->show('right', 'pagerjs');?>
</div>
<?php endif;?>

View File

@@ -13,9 +13,9 @@
<?php include '../../common/view/datepicker.html.php';?>
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2><?php echo $lang->project->batchEdit;?></h2>
<h2><?php echo $lang->execution->batchEdit;?></h2>
<div class='btn-toolbar pull-right'>
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=project&section=custom&key=batchEditFields')?>
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=execution&section=custom&key=batchEditFields')?>
<?php include '../../common/view/customfield.html.php';?>
</div>
</div>
@@ -26,12 +26,12 @@
{
if($field)$visibleFields[$field] = '';
}
foreach(explode(',', $config->project->edit->requiredFields) as $field)
foreach(explode(',', $config->execution->edit->requiredFields) as $field)
{
if($field)
{
$requiredFields[$field] = '';
if(strpos(",{$config->project->customBatchEditFields},", ",{$field},") !== false) $visibleFields[$field] = '';
if(strpos(",{$config->execution->customBatchEditFields},", ",{$field},") !== false) $visibleFields[$field] = '';
}
}
$minWidth = (count($visibleFields) > 5) ? 'w-150px' : '';
@@ -42,68 +42,68 @@
<thead>
<tr>
<th class='w-50px'><?php echo $lang->idAB;?></th>
<th class='required <?php echo $minWidth?>'><?php echo $lang->project->name;?></th>
<th class='w-150px required'><?php echo $lang->project->code;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'PM', ' hidden') . zget($requiredFields, 'PM', '', ' required');?>'><?php echo $lang->project->PM;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'PO', ' hidden') . zget($requiredFields, 'PO', '', ' required');?>'><?php echo $lang->project->PO;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'QD', ' hidden') . zget($requiredFields, 'QD', '', ' required');?>'><?php echo $lang->project->QD;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'RD', ' hidden') . zget($requiredFields, 'RD', '', ' required');?>'><?php echo $lang->project->RD;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'type', ' hidden') . zget($requiredFields, 'type', '', ' required');?>'><?php echo $lang->project->type;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'status', ' hidden') . zget($requiredFields, 'status', '', ' required');?>'><?php echo $lang->project->status;?></th>
<th class='w-110px required'><?php echo $lang->project->begin;?></th>
<th class='w-110px required'><?php echo $lang->project->end;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'desc', ' hidden') . zget($requiredFields, 'desc', '', ' required');?>'> <?php echo $lang->project->desc;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'teamname', ' hidden') . zget($requiredFields, 'teamname', '', ' required');?>'><?php echo $lang->project->teamname;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'days', ' hidden') . zget($requiredFields, 'days', '', ' required');?>'><?php echo $lang->project->days;?></th>
<th class='w-80px'><?php echo $lang->project->order;?></th>
<th class='required <?php echo $minWidth?>'><?php echo $lang->execution->name;?></th>
<th class='w-150px required'><?php echo $lang->execution->code;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'PM', ' hidden') . zget($requiredFields, 'PM', '', ' required');?>'><?php echo $lang->execution->PM;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'PO', ' hidden') . zget($requiredFields, 'PO', '', ' required');?>'><?php echo $lang->execution->PO;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'QD', ' hidden') . zget($requiredFields, 'QD', '', ' required');?>'><?php echo $lang->execution->QD;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'RD', ' hidden') . zget($requiredFields, 'RD', '', ' required');?>'><?php echo $lang->execution->RD;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'type', ' hidden') . zget($requiredFields, 'type', '', ' required');?>'><?php echo $lang->execution->type;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'status', ' hidden') . zget($requiredFields, 'status', '', ' required');?>'><?php echo $lang->execution->status;?></th>
<th class='w-110px required'><?php echo $lang->execution->begin;?></th>
<th class='w-110px required'><?php echo $lang->execution->end;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'desc', ' hidden') . zget($requiredFields, 'desc', '', ' required');?>'> <?php echo $lang->execution->desc;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'teamname', ' hidden') . zget($requiredFields, 'teamname', '', ' required');?>'><?php echo $lang->execution->teamname;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'days', ' hidden') . zget($requiredFields, 'days', '', ' required');?>'><?php echo $lang->execution->days;?></th>
<th class='w-80px'><?php echo $lang->execution->order;?></th>
</tr>
</thead>
<tbody>
<?php foreach($projectIDList as $projectID):?>
<?php foreach($executionIDList as $executionID):?>
<?php
if(!empty($this->config->moreLinks["PM"])) $this->config->moreLinks["PMs[$projectID]"] = $this->config->moreLinks["PM"];
if(!empty($this->config->moreLinks["PO"])) $this->config->moreLinks["POs[$projectID]"] = $this->config->moreLinks["PO"];
if(!empty($this->config->moreLinks["QD"])) $this->config->moreLinks["QDs[$projectID]"] = $this->config->moreLinks["QD"];
if(!empty($this->config->moreLinks["RD"])) $this->config->moreLinks["RDs[$projectID]"] = $this->config->moreLinks["RD"];
if(!empty($this->config->moreLinks["PM"])) $this->config->moreLinks["PMs[$executionID]"] = $this->config->moreLinks["PM"];
if(!empty($this->config->moreLinks["PO"])) $this->config->moreLinks["POs[$executionID]"] = $this->config->moreLinks["PO"];
if(!empty($this->config->moreLinks["QD"])) $this->config->moreLinks["QDs[$executionID]"] = $this->config->moreLinks["QD"];
if(!empty($this->config->moreLinks["RD"])) $this->config->moreLinks["RDs[$executionID]"] = $this->config->moreLinks["RD"];
?>
<tr>
<td><?php echo sprintf('%03d', $projectID) . html::hidden("projectIDList[$projectID]", $projectID);?></td>
<td title='<?php echo $projects[$projectID]->name?>'><?php echo html::input("names[$projectID]", $projects[$projectID]->name, "class='form-control'");?></td>
<td><?php echo html::input("codes[$projectID]", $projects[$projectID]->code, "class='form-control'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'PM', ' hidden')?>' style='overflow:visible'><?php echo html::select("PMs[$projectID]", $pmUsers, $projects[$projectID]->PM, "class='form-control chosen'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'PO', ' hidden')?>' style='overflow:visible'><?php echo html::select("POs[$projectID]", $poUsers, $projects[$projectID]->PO, "class='form-control chosen'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'QD', ' hidden')?>' style='overflow:visible'><?php echo html::select("QDs[$projectID]", $qdUsers, $projects[$projectID]->QD, "class='form-control chosen'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'RD', ' hidden')?>' style='overflow:visible'><?php echo html::select("RDs[$projectID]", $rdUsers, $projects[$projectID]->RD, "class='form-control chosen'");?></td>
<td><?php echo sprintf('%03d', $executionID) . html::hidden("executionIDList[$executionID]", $executionID);?></td>
<td title='<?php echo $executions[$executionID]->name?>'><?php echo html::input("names[$executionID]", $executions[$executionID]->name, "class='form-control'");?></td>
<td><?php echo html::input("codes[$executionID]", $executions[$executionID]->code, "class='form-control'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'PM', ' hidden')?>' style='overflow:visible'><?php echo html::select("PMs[$executionID]", $pmUsers, $executions[$executionID]->PM, "class='form-control chosen'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'PO', ' hidden')?>' style='overflow:visible'><?php echo html::select("POs[$executionID]", $poUsers, $executions[$executionID]->PO, "class='form-control chosen'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'QD', ' hidden')?>' style='overflow:visible'><?php echo html::select("QDs[$executionID]", $qdUsers, $executions[$executionID]->QD, "class='form-control chosen'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'RD', ' hidden')?>' style='overflow:visible'><?php echo html::select("RDs[$executionID]", $rdUsers, $executions[$executionID]->RD, "class='form-control chosen'");?></td>
<td class='<?php echo zget($visibleFields, 'type', 'hidden')?>'>
<?php
if($isStage)
{
echo html::select("attributes[$projectID]", $lang->stage->typeList, $projects[$projectID]->attribute, 'class=form-control');
echo html::select("attributes[$executionID]", $lang->stage->typeList, $executions[$executionID]->attribute, 'class=form-control');
}
else
{
echo html::select("lifetimes[$projectID]", $lang->program->PRJLifeTimeList, $projects[$projectID]->lifetime, 'class=form-control');
echo html::select("lifetimes[$executionID]", $lang->program->PRJLifeTimeList, $executions[$executionID]->lifetime, 'class=form-control');
}
?>
</td>
<td class='<?php echo zget($visibleFields, 'status', 'hidden')?>'><?php echo html::select("statuses[$projectID]", $lang->project->statusList, $projects[$projectID]->status, 'class=form-control');?></td>
<td><?php echo html::input("begins[$projectID]", $projects[$projectID]->begin, "class='form-control form-date' onchange='computeWorkDays(this.id)'");?></td>
<td><?php echo html::input("ends[$projectID]", $projects[$projectID]->end, "class='form-control form-date' onchange='computeWorkDays(this.id)'");?></td>
<td class='<?php echo zget($visibleFields, 'desc', 'hidden')?>'> <?php echo html::textarea("descs[$projectID]", $projects[$projectID]->desc, "rows='1' class='form-control autosize'");?></td>
<td class='<?php echo zget($visibleFields, 'teamname', 'hidden')?>'><?php echo html::input("teams[$projectID]", $projects[$projectID]->team, "class='form-control'");?></td>
<td class='<?php echo zget($visibleFields, 'status', 'hidden')?>'><?php echo html::select("statuses[$executionID]", $lang->execution->statusList, $executions[$executionID]->status, 'class=form-control');?></td>
<td><?php echo html::input("begins[$executionID]", $executions[$executionID]->begin, "class='form-control form-date' onchange='computeWorkDays(this.id)'");?></td>
<td><?php echo html::input("ends[$executionID]", $executions[$executionID]->end, "class='form-control form-date' onchange='computeWorkDays(this.id)'");?></td>
<td class='<?php echo zget($visibleFields, 'desc', 'hidden')?>'> <?php echo html::textarea("descs[$executionID]", $executions[$executionID]->desc, "rows='1' class='form-control autosize'");?></td>
<td class='<?php echo zget($visibleFields, 'teamname', 'hidden')?>'><?php echo html::input("teams[$executionID]", $executions[$executionID]->team, "class='form-control'");?></td>
<td class='<?php echo zget($visibleFields, 'days', 'hidden')?>'>
<div class='input-group'>
<?php echo html::input("dayses[$projectID]", $projects[$projectID]->days, "class='form-control'");?>
<span class='input-group-addon'><?php echo $lang->project->day;?></span>
<?php echo html::input("dayses[$executionID]", $executions[$executionID]->days, "class='form-control'");?>
<span class='input-group-addon'><?php echo $lang->execution->day;?></span>
</div>
</td>
<td><?php echo html::input("orders[$projectID]", $projects[$projectID]->order, "class='form-control'")?></td>
<td><?php echo html::input("orders[$executionID]", $executions[$executionID]->order, "class='form-control'")?></td>
</tr>
<?php
if(isset($this->config->moreLinks["PMs[$projectID]"])) unset($this->config->moreLinks["PMs[$projectID]"]);
if(isset($this->config->moreLinks["POs[$projectID]"])) unset($this->config->moreLinks["POs[$projectID]"]);
if(isset($this->config->moreLinks["QDs[$projectID]"])) unset($this->config->moreLinks["QDs[$projectID]"]);
if(isset($this->config->moreLinks["RDs[$projectID]"])) unset($this->config->moreLinks["RDs[$projectID]"]);
if(isset($this->config->moreLinks["PMs[$executionID]"])) unset($this->config->moreLinks["PMs[$executionID]"]);
if(isset($this->config->moreLinks["POs[$executionID]"])) unset($this->config->moreLinks["POs[$executionID]"]);
if(isset($this->config->moreLinks["QDs[$executionID]"])) unset($this->config->moreLinks["QDs[$executionID]"]);
if(isset($this->config->moreLinks["RDs[$executionID]"])) unset($this->config->moreLinks["RDs[$executionID]"]);
?>
<?php endforeach;?>
</tbody>
@@ -114,5 +114,5 @@
</div>
</form>
</div>
<?php js::set('weekend', $config->project->weekend);?>
<?php js::set('weekend', $config->execution->weekend);?>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The bug view file of project module of ZenTaoPMS.
* The bug view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: bug.html.php 4894 2013-06-25 01:28:39Z wyd621@gmail.com $
* @link http://www.zentao.net
*/
@@ -15,32 +15,32 @@
<div class="btn-toolbar pull-left">
<?php
$buildName = $build ? " <span class='label label-danger'>Build:{$build->name}</span>" : '';
echo html::a($this->inlink('bug', "projectID={$project->id}&orderBy=status,id_desc&build=$buildID&type=all"), "<span class='text'>{$lang->bug->allBugs}</span>" . ($type == 'all' ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>$buildName" : ''), '', "id='allTab' class='btn btn-link" . ('all' == $type ? ' btn-active-text' : '') . "'");
echo html::a($this->inlink('bug', "projectID={$project->id}&orderBy=status,id_desc&build=$buildID&type=unresolved"), "<span class='text'>{$lang->bug->unResolved}</span>" . ($type == 'unresolved' ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>$buildName" : ''), '', "id='unresolvedTab' class='btn btn-link" . ('unresolved' == $type ? ' btn-active-text' : '') . "'");
echo html::a($this->inlink('bug', "executionID={$execution->id}&orderBy=status,id_desc&build=$buildID&type=all"), "<span class='text'>{$lang->bug->allBugs}</span>" . ($type == 'all' ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>$buildName" : ''), '', "id='allTab' class='btn btn-link" . ('all' == $type ? ' btn-active-text' : '') . "'");
echo html::a($this->inlink('bug', "executionID={$execution->id}&orderBy=status,id_desc&build=$buildID&type=unresolved"), "<span class='text'>{$lang->bug->unResolved}</span>" . ($type == 'unresolved' ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>$buildName" : ''), '', "id='unresolvedTab' class='btn btn-link" . ('unresolved' == $type ? ' btn-active-text' : '') . "'");
?>
<a class="btn btn-link querybox-toggle" id="bysearchTab"><i class="icon icon-search muted"></i> <?php echo $lang->bug->search;?></a>
</div>
<div class="btn-toolbar pull-right">
<?php common::printLink('bug', 'export', "productID=$productID&orderBy=$orderBy&browseType=&projectID=$project->id", "<i class='icon icon-export muted'> </i>" . $lang->bug->export, '', "class='btn btn-link export'");?>
<?php if(common::canModify('project', $project)) common::printLink('bug', 'create', "productID=$productID&branch=$branchID&extra=projectID=$project->id", "<i class='icon icon-plus'></i> " . $lang->bug->create, '', "class='btn btn-primary'");?>
<?php common::printLink('bug', 'export', "productID=$productID&orderBy=$orderBy&browseType=&executionID=$execution->id", "<i class='icon icon-export muted'> </i>" . $lang->bug->export, '', "class='btn btn-link export'");?>
<?php if(common::canModify('execution', $execution)) common::printLink('bug', 'create', "productID=$productID&branch=$branchID&extra=executionID=$execution->id", "<i class='icon icon-plus'></i> " . $lang->bug->create, '', "class='btn btn-primary'");?>
</div>
</div>
<div id="mainContent">
<div class="cell <?php if($type == 'bysearch') echo 'show';?>" id="queryBox" data-module='projectBug'></div>
<div class="cell <?php if($type == 'bysearch') echo 'show';?>" id="queryBox" data-module='executionBug'></div>
<?php if(empty($bugs)):?>
<div class="table-empty-tip">
<p>
<span class="text-muted"><?php echo $lang->bug->noBug;?></span>
<?php if(common::canModify('project', $project) and common::hasPriv('bug', 'create')):?>
<?php echo html::a($this->createLink('bug', 'create', "productID=$productID&branch=$branchID&extra=projectID=$project->id"), "<i class='icon icon-plus'></i> " . $lang->bug->create, '', "class='btn btn-info'");?>
<?php if(common::canModify('execution', $execution) and common::hasPriv('bug', 'create')):?>
<?php echo html::a($this->createLink('bug', 'create', "productID=$productID&branch=$branchID&extra=executionID=$execution->id"), "<i class='icon icon-plus'></i> " . $lang->bug->create, '', "class='btn btn-info'");?>
<?php endif;?>
</p>
</div>
<?php else:?>
<form class='main-table' method='post' id='projectBugForm' data-ride="table">
<form class='main-table' method='post' id='executionBugForm' data-ride="table">
<table class='table has-sort-head' id='bugList'>
<?php $canBatchAssignTo = common::hasPriv('bug', 'batchAssignTo');?>
<?php $vars = "projectID={$project->id}&orderBy=%s&build=$buildID&type=$type&param=$param&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
<?php $vars = "executionID={$execution->id}&orderBy=%s&build=$buildID&type=$type&param=$param&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
<thead>
<tr>
<th class='c-id'>
@@ -124,7 +124,7 @@
<button data-toggle="dropdown" type="button" class="btn"><?php echo $lang->bug->assignedTo?> <span class="caret"></span></button>
<?php
$withSearch = count($memberPairs) > 10;
$actionLink = $this->createLink('bug', 'batchAssignTo', "projectID={$project->id}&type=project");
$actionLink = $this->createLink('bug', 'batchAssignTo', "executionID={$execution->id}&type=execution");
echo html::select('assignedTo', $memberPairs, '', 'class="hidden"');
if($withSearch)

View File

@@ -1,45 +1,45 @@
<?php
/**
* The build view file of project module of ZenTaoPMS.
* The build view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: build.html.php 4262 2013-01-24 08:48:56Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php js::set('confirmDelete', $lang->build->confirmDelete)?>
<?php js::set('projectID', $projectID)?>
<?php js::set('executionID', $executionID)?>
<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')
{
$active = 'btn-active-text';
$label .= " <span class='label label-light label-badge'>{$buildsTotal}</span>";
}
echo html::a(inlink('build', "projectID={$projectID}&type=all"), $label, '', "class='btn btn-link $active' id='all'")
echo html::a(inlink('build', "executionID={$executionID}&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>
</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 class="btn-toolbar pull-right">
<?php if(common::canModify('project', $project)) common::printLink('build', 'create', "project=$project->id", "<i class='icon icon-plus'></i> " . $lang->build->create, '', "class='btn btn-primary'");?>
<?php if(common::canModify('execution', $execution)) common::printLink('build', 'create', "execution=$execution->id", "<i class='icon icon-plus'></i> " . $lang->build->create, '', "class='btn btn-primary'");?>
</div>
</div>
<div id="mainContent">
<div class="cell <?php if($type == 'bysearch') echo 'show';?>" id="queryBox" data-module='executionBuild'></div>
<?php if(empty($projectBuilds)):?>
<?php if(empty($executionBuilds)):?>
<div class="table-empty-tip">
<p>
<span class="text-muted"><?php echo $lang->build->noBuild;?></span>
<?php if(common::canModify('project', $project) and common::hasPriv('build', 'create')):?>
<?php echo html::a($this->createLink('build', 'create', "project=$project->id"), "<i class='icon icon-plus'></i> " . $lang->build->create, '', "class='btn btn-info'");?>
<?php if(common::canModify('execution', $execution) and common::hasPriv('build', 'create')):?>
<?php echo html::a($this->createLink('build', 'create', "execution=$execution->id"), "<i class='icon icon-plus'></i> " . $lang->build->create, '', "class='btn btn-info'");?>
<?php endif;?>
</p>
</div>
@@ -59,7 +59,7 @@
</tr>
</thead>
<tbody>
<?php foreach($projectBuilds as $productID => $builds):?>
<?php foreach($executionBuilds as $productID => $builds):?>
<?php foreach($builds as $index => $build):?>
<tr data-id="<?php echo $productID;?>">
<td class="c-id-sm text-muted"><?php echo html::a(helper::createLink('build', 'view', "buildID=$build->id"), sprintf('%03d', $build->id));?></td>
@@ -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=$project->id&build=$build->id", $build, 'list', 'bullhorn');
$lang->project->bug = $lang->project->viewBug;
common::printIcon('project', 'bug', "project=$project->id&orderBy=status&build=$build->id", $build, 'list');
common::printIcon('testtask', 'create', "product=$build->product&execution=$execution->id&build=$build->id", $build, 'list', 'bullhorn');
$lang->execution->bug = $lang->execution->viewBug;
common::printIcon('execution', 'bug', "execution=$execution->id&orderBy=status&build=$build->id", $build, 'list');
common::printIcon('build', 'edit', "buildID=$build->id", $build, 'list');
if(common::hasPriv('build', 'delete', $build))
{

View File

@@ -1,35 +1,35 @@
<?php
/**
* The burn view file of project module of ZenTaoPMS.
* The burn view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: burn.html.php 4164 2013-01-20 08:27:55Z wwccss $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/chart.html.php';?>
<?php js::set('projectID', $projectID);?>
<?php js::set('projectName', $project->name);?>
<?php js::set('watermark', $lang->project->watermark);?>
<?php js::set('burnXUnit', $lang->project->burnXUnit);?>
<?php js::set('burnYUnit', $lang->project->burnYUnit);?>
<?php js::set('executionID', $executionID);?>
<?php js::set('executionName', $execution->name);?>
<?php js::set('watermark', $lang->execution->watermark);?>
<?php js::set('burnXUnit', $lang->execution->burnXUnit);?>
<?php js::set('burnYUnit', $lang->execution->burnYUnit);?>
<?php js::set('type', $type);?>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<?php
$weekend = ($type == 'noweekend') ? 'withweekend' : "noweekend";
common::printLink('project', 'computeBurn', 'reload=yes', '<i class="icon icon-refresh"></i> ' . $lang->project->computeBurn, 'hiddenwin', "title='{$lang->project->computeBurn}{$lang->project->burn}' class='btn btn-primary' id='computeBurn'");
common::printLink('execution', 'computeBurn', 'reload=yes', '<i class="icon icon-refresh"></i> ' . $lang->execution->computeBurn, 'hiddenwin', "title='{$lang->execution->computeBurn}{$lang->execution->burn}' class='btn btn-primary' id='computeBurn'");
echo '<div class="space"></div>';
echo html::a($this->createLink('project', 'burn', "projectID=$projectID&type=$weekend&interval=$interval"), $lang->project->$weekend, '', "class='btn btn-link'");
if(common::canModify('project', $project)) common::printLink('project', 'fixFirst', "project=$project->id", $lang->project->fixFirst, '', "class='btn btn-link iframe' data-width='700'");
echo $lang->project->howToUpdateBurn;
echo html::a($this->createLink('execution', 'burn', "executionID=$executionID&type=$weekend&interval=$interval"), $lang->execution->$weekend, '', "class='btn btn-link'");
if(common::canModify('execution', $execution)) common::printLink('execution', 'fixFirst', "execution=$execution->id", $lang->execution->fixFirst, '', "class='btn btn-link iframe' data-width='700'");
echo $lang->execution->howToUpdateBurn;
?>
<div class='input-control w-150px'>
<?php echo html::select('burnBy', $lang->project->burnByList, $burnBy, "class='form-control chosen'");?>
<?php echo html::select('burnBy', $lang->execution->burnByList, $burnBy, "class='form-control chosen'");?>
</div>
<?php if($interval):?>
<div class='input-control thWidth'>
@@ -42,16 +42,16 @@
</div>
</div>
<div id='mainContent' class='main-content'>
<h2 class='text-center'><?php echo $projectName . ' ' . $this->lang->project->burn . '(' . zget($lang->project->burnByList, $burnBy) . ')';?></h2>
<h2 class='text-center'><?php echo $executionName . ' ' . $this->lang->execution->burn . '(' . zget($lang->execution->burnByList, $burnBy) . ')';?></h2>
<div id="burnWrapper">
<div id="burnChart">
<canvas id="burnCanvas"></canvas>
</div>
<div id="burnYUnit"><?php echo $burnBy == 'storyPoint' ? "({$lang->project->storyPoint})" : "({$lang->project->workHour})";?></div>
<div id="burnXUnit"><?php echo $lang->project->burnXUnit;?></div>
<div id="burnYUnit"><?php echo $burnBy == 'storyPoint' ? "({$lang->execution->storyPoint})" : "({$lang->execution->workHour})";?></div>
<div id="burnXUnit"><?php echo $lang->execution->burnXUnit;?></div>
<div id="burnLegend">
<div class="line-ref"><div class='barline'></div><?php echo $lang->project->charts->burn->graph->reference;?></div>
<div class="line-real"><div class='barline bg-primary'></div><?php echo $lang->project->charts->burn->graph->actuality;?></div>
<div class="line-ref"><div class='barline'></div><?php echo $lang->execution->charts->burn->graph->reference;?></div>
<div class="line-real"><div class='barline bg-primary'></div><?php echo $lang->execution->charts->burn->graph->actuality;?></div>
</div>
</div>
</div>
@@ -60,7 +60,7 @@ $('#burnBy').change(function()
{
$.cookie('burnBy', $(this).val(), {expires:config.cookieLife, path:config.webRoot});
var interval = typeof($('#interval').val()) == 'undefined' ? 0 : $('#interval').val() ;
location.href = createLink('project', 'burn', 'projectID=' + projectID + '&type=' + type + '&interval=' + interval + '&burnBy=' + $(this).val());
location.href = createLink('execution', 'burn', 'executionID=' + executionID + '&type=' + type + '&interval=' + interval + '&burnBy=' + $(this).val());
});
function initBurnChar()
@@ -71,7 +71,7 @@ function initBurnChar()
labels: <?php echo json_encode($chartData['labels'])?>,
datasets: [
{
label: "<?php echo $lang->project->charts->burn->graph->reference;?>",
label: "<?php echo $lang->execution->charts->burn->graph->reference;?>",
color: "#F1F1F1",
pointColor: '#D8D8D8',
pointStrokeColor: '#D8D8D8',
@@ -81,7 +81,7 @@ function initBurnChar()
data: <?php echo $chartData['baseLine']?>
},
{
label: "<?php echo $lang->project->charts->burn->graph->actuality;?>",
label: "<?php echo $lang->execution->charts->burn->graph->actuality;?>",
color: themePrimaryColor,
pointStrokeColor: themePrimaryColor,
pointHighlightStroke: themePrimaryColor,
@@ -105,7 +105,7 @@ function initBurnChar()
scaleFontColor: '#838A9D',
tooltipXPadding: 10,
tooltipYPadding: 10,
multiTooltipTitleTemplate: '<%= label %> <?php echo $lang->project->workHour;?> /h',
multiTooltipTitleTemplate: '<%= label %> <?php echo $lang->execution->workHour;?> /h',
multiTooltipTemplate: "<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>",
});
}

View File

@@ -1,11 +1,11 @@
<?php
/**
* The suspend file of project module of ZenTaoPMS.
* The suspend file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang<wwccss@gmail.com>
* @package project
* @package execution
* @version $Id: suspend.html.php 935 2013-01-16 07:49:24Z wwccss@gmail.com $
* @link http://www.zentao.net
*/
@@ -15,10 +15,10 @@
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2>
<span class='prefix label-id'><strong><?php echo $project->id;?></strong></span>
<?php echo isonlybody() ? ("<span title='$project->name'>" . $project->name . '</span>') : html::a($this->createLink('project', 'view', 'project=' . $project->id), $project->name, '_blank');?>
<span class='prefix label-id'><strong><?php echo $execution->id;?></strong></span>
<?php echo isonlybody() ? ("<span title='$execution->name'>" . $execution->name . '</span>') : html::a($this->createLink('execution', 'view', 'execution=' . $execution->id), $execution->name, '_blank');?>
<?php if(!isonlybody()):?>
<small> <?php echo $lang->arrow . $lang->project->close;?></small>
<small> <?php echo $lang->arrow . $lang->execution->close;?></small>
<?php endif;?>
</h2>
</div>
@@ -26,10 +26,10 @@
<table class='table table-form'>
<tbody>
<tr class='hide'>
<th class='w-50px'><?php echo $lang->project->status;?></th>
<th class='w-50px'><?php echo $lang->execution->status;?></th>
<td><?php echo html::hidden('status', 'closed');?></td>
</tr>
<?php $this->printExtendFields($project, 'table');?>
<?php $this->printExtendFields($execution, 'table');?>
<tr>
<th class='w-50px'><?php echo $lang->comment;?></th>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control kindeditor' hidefocus='true'");?></td>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The computeburn view file of project module of ZenTaoPMS.
* The computeburn view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Fu Jia <fujia@cnezsoft.com>
* @package project
* @package execution
* @version $Id: computeburn.html.php 4129 2013-01-18 01:58:14Z wwccss $
* @link http://www.zentao.net
*/
@@ -13,6 +13,6 @@
<?php
foreach($burns as $burn)
{
echo $burn->project . "\t" . $burn->projectName . "\t" . $burn->date . "\t" . $burn->left . "\n";
echo $burn->execution . "\t" . $burn->executionName . "\t" . $burn->date . "\t" . $burn->left . "\n";
}
?>

View File

@@ -35,7 +35,7 @@
<?php js::set('holders', $lang->execution->placeholder);?>
<?php js::set('errorSameProducts', $lang->execution->errorSameProducts);?>
<?php js::set('productID', empty($productID) ? 0 : $productID);?>
<?php js::set('isStage', $isStage);?>
<?php js::set('isSprint', $isSprint);?>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
@@ -79,25 +79,23 @@
<th><?php echo $lang->execution->teamname;?></th>
<td><?php echo html::input('team', $team, "class='form-control'");?></td><td></td><td></td>
</tr>
<?php if(!$isSprint):?>
<tr>
<th><?php echo $lang->execution->type;?></th>
<td>
<?php
if($isStage)
if($isSprint)
{
echo html::select('attribute', $lang->stage->typeList, '', "class='form-control'");
echo html::select('lifetime', $lang->execution->lifeTimeList, '', "class='form-control' onchange='showLifeTimeTips()'");
}
else
{
echo html::select('lifetime', $lang->execution->lifeTimeList, '', "class='form-control' onchange='showLifeTimeTips()'");
echo html::select('attribute', $lang->stage->typeList, '', "class='form-control'");
}
?>
</td>
<td class='muted' colspan='2'><div id='lifeTimeTips'><?php echo $lang->execution->typeDesc;?></div></td>
</tr>
<?php endif;?>
<?php if($isStage):?>
<?php if(!$isSprint):?>
<tr>
<th><?php echo $lang->programplan->percent;?></th>
<td>
@@ -117,7 +115,7 @@
<?php $this->printExtendFields('', 'table', 'columns=3');?>
<tr>
<th><?php echo $lang->execution->manageProducts;?></th>
<td class='text-left' id="<?php echo $isStage ? '' : 'productsBox';?>" colspan="3">
<td class='text-left' id='productsBox' colspan="3">
<div class='row'>
<?php $i = 0;?>
<?php foreach($products as $product):?>
@@ -132,7 +130,7 @@
<?php $i++;?>
<?php endforeach;?>
<div class='col-sm-4'>
<div class="input-group <?php echo $isStage ? 'required' : '';?>">
<div class="input-group">
<?php echo html::select("products[$i]", $allProducts, '', "class='form-control chosen' onchange='loadBranches(this)'");?>
<span class='input-group-addon fix-border'></span>
</div>

View File

@@ -16,10 +16,10 @@
<div>
<div id='titlebar'>
<div class='heading'>
<?php echo html::icon($lang->icons['doc']);?> <?php echo $lang->project->doc;?>
<?php echo html::icon($lang->icons['doc']);?> <?php echo $lang->execution->doc;?>
</div>
<div class='actions'>
<?php common::printIcon('doc', 'create', "libID=" . key($libs) . "&moduleID=0&productID=0&projectID=$project->id&from=project");?>
<?php common::printIcon('doc', 'create', "libID=" . key($libs) . "&moduleID=0&productID=0&executionID=$execution->id&from=execution");?>
</div>
</div>
<table class='table table-fixed tablesorter' align='center' id='docList'>

View File

@@ -22,14 +22,14 @@
$active = 'btn-active-text';
$label .= " <span class='label label-light label-badge'>{$pager->recTotal}</span>";
}
echo html::a(inlink('dynamic', "projectID=$projectID&type=$period"), $label, '', "class='btn btn-link $active' id='{$period}'")
echo html::a(inlink('dynamic', "executionID=$executionID&type=$period"), $label, '', "class='btn btn-link $active' id='{$period}'")
?>
<?php endforeach;?>
<div class="btn-group">
<?php
$withSearch = count($accountPairs) > 8;
$active = $param ? 'btn-active-text' : '';
$current = $param ? zget($accountPairs, $account, $account) : $lang->project->viewByUser;
$current = $param ? zget($accountPairs, $account, $account) : $lang->execution->viewByUser;
$current = "<span class='text'>" . $current . '</span>' . ' <span class="caret"></span>';
?>
<?php echo html::a('###', $current, '', "class='btn btn-link $active' data-toggle='dropdown'");?>
@@ -48,7 +48,7 @@
{
if(!$userID) continue;
$searchKey = $withSearch ? ('data-key="' . zget($usersPinYin, $userID, '') . '"') : '';
echo html::a($this->createLink('project', 'dynamic', "productID=$projectID&type=account&param=$userID"), $name);
echo html::a($this->createLink('execution', 'dynamic', "productID=$executionID&type=account&param=$userID"), $name);
}
?>
</div>
@@ -104,8 +104,8 @@ $firstDate = date('Y-m-d', strtotime($firstAction->originalDate) + 24 * 3600);
$lastDate = substr($action->originalDate, 0, 10);
$hasPre = $this->action->hasPreOrNext($firstDate, 'pre');
$hasNext = $this->action->hasPreOrNext($lastDate, 'next');
$preLink = $hasPre ? inlink('dynamic', "projectID=$projectID&type=$type&param=$param&recTotal={$pager->recTotal}&date=" . strtotime($firstDate) . '&direction=pre') : 'javascript:;';
$nextLink = $hasNext ? inlink('dynamic', "projectID=$projectID&type=$type&param=$param&recTotal={$pager->recTotal}&date=" . strtotime($lastDate) . '&direction=next') : 'javascript:;';
$preLink = $hasPre ? inlink('dynamic', "executionID=$executionID&type=$type&param=$param&recTotal={$pager->recTotal}&date=" . strtotime($firstDate) . '&direction=pre') : 'javascript:;';
$nextLink = $hasNext ? inlink('dynamic', "executionID=$executionID&type=$type&param=$param&recTotal={$pager->recTotal}&date=" . strtotime($lastDate) . '&direction=next') : 'javascript:;';
?>
<?php if($hasPre or $hasNext):?>
<div id="mainActions" class='main-actions'>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The edit view of project module of ZenTaoPMS.
* The edit view of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: edit.html.php 4728 2013-05-03 06:14:34Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
@@ -18,32 +18,32 @@
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='prefix label-id'><strong><?php echo $project->id;?></strong></span>
<?php echo html::a($this->createLink('project', 'view', 'project=' . $project->id), $project->name, '_blank');?>
<small><?php echo $lang->arrow . ' ' . $lang->project->edit;?></small>
<span class='prefix label-id'><strong><?php echo $execution->id;?></strong></span>
<?php echo html::a($this->createLink('execution', 'view', 'execution=' . $execution->id), $execution->name, '_blank');?>
<small><?php echo $lang->arrow . ' ' . $lang->execution->edit;?></small>
</h2>
</div>
<form class='load-indicator main-form form-ajax' method='post' target='hiddenwin' id='dataform'>
<table class='table table-form'>
<tr>
<th class='w-120px'><?php echo $lang->project->name;?></th>
<td><?php echo html::input('name', $project->name, "class='form-control' required");?></td><td></td>
<th class='w-120px'><?php echo $lang->execution->name;?></th>
<td><?php echo html::input('name', $execution->name, "class='form-control' required");?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->project->code;?></th>
<td><?php echo html::input('code', $project->code, "class='form-control' required");?></td>
<th><?php echo $lang->execution->code;?></th>
<td><?php echo html::input('code', $execution->code, "class='form-control' required");?></td>
</tr>
<tr>
<th><?php echo $lang->project->dateRange;?></th>
<th><?php echo $lang->execution->dateRange;?></th>
<td>
<div class='input-group'>
<?php echo html::input('begin', $project->begin, "class='form-control form-date' onchange='computeWorkDays()' required placeholder='" . $lang->project->begin . "'");?>
<span class='input-group-addon fix-border'><?php echo $lang->project->to;?></span>
<?php echo html::input('end', $project->end, "class='form-control form-date' onchange='computeWorkDays()' required placeholder='" . $lang->project->end . "'");?>
<?php echo html::input('begin', $execution->begin, "class='form-control form-date' onchange='computeWorkDays()' required placeholder='" . $lang->execution->begin . "'");?>
<span class='input-group-addon fix-border'><?php echo $lang->execution->to;?></span>
<?php echo html::input('end', $execution->end, "class='form-control form-date' onchange='computeWorkDays()' required placeholder='" . $lang->execution->end . "'");?>
<div class='input-group-btn'>
<button type='button' class='btn dropdown-toggle' data-toggle='dropdown'><?php echo $lang->project->byPeriod;?> <span class='caret'></span></button>
<button type='button' class='btn dropdown-toggle' data-toggle='dropdown'><?php echo $lang->execution->byPeriod;?> <span class='caret'></span></button>
<ul class='dropdown-menu'>
<?php foreach ($lang->project->endList as $key => $name):?>
<?php foreach ($lang->execution->endList as $key => $name):?>
<li><a href='javascript:computeEndDate("<?php echo $key;?>")'><?php echo $name;?></a></li>
<?php endforeach;?>
</ul>
@@ -52,83 +52,81 @@
</td>
</tr>
<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>
<?php echo html::input('days', $execution->days, "class='form-control'");?>
<span class='input-group-addon'><?php echo $lang->execution->day;?></span>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->execution->type;?></th>
<td>
<?php
if($isSprint)
{
echo html::select('lifetime', $lang->project->lifeTimeList, $execution->lifetime, "class='form-control' onchange='showLifeTimeTips()'");
}
else
{
echo html::select('attribute', $lang->stage->typeList, $execution->attribute, "class='form-control'");
}
?>
</td>
</tr>
<tr>
<th><?php echo $lang->execution->teamname;?></th>
<td><?php echo html::input('team', $execution->team, "class='form-control'");?></td>
</tr>
<tr>
<th><?php echo $lang->execution->status;?></th>
<td><?php echo html::select('status', $lang->execution->statusList, $execution->status, "class='form-control'");?></td>
</tr>
<tr>
<th rowspan='2'><?php echo $lang->execution->owner;?></th>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->execution->PO;?></span>
<?php echo html::select('PO', $poUsers, $execution->PO, "class='form-control chosen'");?>
</div>
</td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->execution->QD;?></span>
<?php echo html::select('QD', $qdUsers, $execution->QD, "class='form-control chosen'");?>
</div>
</td>
</tr>
<tr>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->execution->PM;?></span>
<?php echo html::select('PM', $pmUsers, $execution->PM, "class='form-control chosen'");?>
</div>
</td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->execution->RD;?></span>
<?php echo html::select('RD', $rdUsers, $execution->RD, "class='form-control chosen'");?>
</div>
</td>
</tr>
<?php if(!$isSprint):?>
<tr>
<th><?php echo $lang->project->type;?></th>
<td>
<?php
if($isStage)
{
echo html::select('attribute', $lang->stage->typeList, $project->attribute, "class='form-control'");
}
else
{
echo html::select('lifetime', $lang->program->PRJLifeTimeList, $project->lifetime, "class='form-control' onchange='showLifeTimeTips()'");
}
?>
</td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->project->teamname;?></th>
<td><?php echo html::input('team', $project->team, "class='form-control'");?></td>
</tr>
<tr>
<th><?php echo $lang->project->status;?></th>
<td><?php echo html::select('status', $lang->project->statusList, $project->status, "class='form-control'");?></td>
</tr>
<tr>
<th rowspan='2'><?php echo $lang->project->owner;?></th>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->project->PO;?></span>
<?php echo html::select('PO', $poUsers, $project->PO, "class='form-control chosen'");?>
</div>
</td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->project->QD;?></span>
<?php echo html::select('QD', $qdUsers, $project->QD, "class='form-control chosen'");?>
</div>
</td>
</tr>
<tr>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->project->PM;?></span>
<?php echo html::select('PM', $pmUsers, $project->PM, "class='form-control chosen'");?>
</div>
</td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->project->RD;?></span>
<?php echo html::select('RD', $rdUsers, $project->RD, "class='form-control chosen'");?>
</div>
</td>
</tr>
<?php if($isStage):?>
<tr>
<th><?php echo $lang->programplan->percent;?></th>
<td>
<div class='input-group'>
<?php echo html::input('percent', $project->percent, "class='form-control'");?>
<?php echo html::input('percent', $execution->percent, "class='form-control'");?>
<span class='input-group-addon'>%</span>
</div>
</td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->project->manageProducts;?></th>
<td class='text-left' id="<?php echo $isStage ? '' : 'productsBox';?>" colspan="2">
<?php $class = $project->grade == 2 ? "disabled='disabled'" : '';?>
<th><?php echo $lang->execution->manageProducts;?></th>
<td class='text-left' id='productsBox' colspan="2">
<?php $class = $execution->grade == 2 ? "disabled='disabled'" : '';?>
<div class='row'>
<?php $i = 0;?>
<?php foreach($linkedProducts as $product):?>
@@ -143,19 +141,17 @@
<?php if(in_array($product->id, $unmodifiableProducts)) echo html::hidden("products[$i]", $product->id);?>
<?php $i++;?>
<?php endforeach;?>
<?php if(!$isStage):?>
<div class='col-sm-4'>
<div class="input-group <?php echo $isStage ? 'required' : '';?>">
<div class="input-group">
<?php echo html::select("products[$i]", $allProducts, '', "class='form-control chosen' onchange='loadBranches(this)'");?>
<span class='input-group-addon fix-border'></span>
</div>
</div>
<?php endif;?>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->project->linkPlan;?></th>
<th><?php echo $lang->execution->linkPlan;?></th>
<td id="plansBox" colspan="2">
<div class='row'>
<?php $i = 0;?>
@@ -168,18 +164,18 @@
</td>
</tr>
<tr>
<th><?php echo $lang->project->desc;?></th>
<td colspan='2'><?php echo html::textarea('desc', htmlspecialchars($project->desc), "rows='6' class='form-control kindeditor' hidefocus='true'");?></td>
<th><?php echo $lang->execution->desc;?></th>
<td colspan='2'><?php echo html::textarea('desc', htmlspecialchars($execution->desc), "rows='6' class='form-control kindeditor' hidefocus='true'");?></td>
</tr>
<?php $this->printExtendFields($project, 'table');?>
<?php $this->printExtendFields($execution, 'table');?>
<tr>
<th><?php echo $lang->project->acl;?></th>
<?php $class = $project->grade == 2 ? "disabled='disabled'" : '';?>
<td colspan='2'><?php echo nl2br(html::radio('acl', $lang->project->aclList, $project->acl, "onclick='setWhite(this.value);' $class", 'block'));?></td>
<th><?php echo $lang->execution->acl;?></th>
<?php $class = $execution->grade == 2 ? "disabled='disabled'" : '';?>
<td colspan='2'><?php echo nl2br(html::radio('acl', $lang->execution->aclList, $execution->acl, "onclick='setWhite(this.value);' $class", 'block'));?></td>
</tr>
<tr class="<?php if($project->acl == 'open') echo 'hidden';?>" id="whitelistBox">
<tr class="<?php if($execution->acl == 'open') echo 'hidden';?>" id="whitelistBox">
<th><?php echo $lang->whitelist;?></th>
<td><?php echo html::select('whitelist[]', $users, $project->whitelist, 'class="form-control chosen" multiple');?></td>
<td><?php echo html::select('whitelist[]', $users, $execution->whitelist, 'class="form-control chosen" multiple');?></td>
<td></td>
</tr>
<tr><td colspan='3' class='text-center form-actions'><?php echo html::submitButton() . ' ' . html::backButton();?></td></tr>
@@ -187,8 +183,8 @@
</form>
</div>
</div>
<?php js::set('weekend', $config->project->weekend);?>
<?php js::set('errorSameProducts', $lang->project->errorSameProducts);?>
<?php js::set('weekend', $config->execution->weekend);?>
<?php js::set('errorSameProducts', $lang->execution->errorSameProducts);?>
<?php js::set('unmodifiableProducts',$unmodifiableProducts);?>
<?php js::set('tip', $lang->project->notAllowRemoveProducts);?>
<?php js::set('tip', $lang->execution->notAllowRemoveProducts);?>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The export view file of project module of ZenTaoPMS.
* The export view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id$
* @link http://www.zentao.net
*/

View File

@@ -1,11 +1,11 @@
<?php
/**
* The fixFirst view file of project module of ZenTaoPMS.
* The fixFirst view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package project
* @package execution
* @version $Id$
* @link http://www.zentao.net
*/
@@ -13,19 +13,19 @@
<?php include '../../common/view/header.lite.html.php';?>
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2><?php echo $lang->project->fixFirst;?></h2>
<h2><?php echo $lang->execution->fixFirst;?></h2>
</div>
<form target='hiddenwin' method='post'>
<table class='table table-form'>
<tr>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $project->begin?></span>
<?php echo html::input('estimate', !empty($firstBurn->estimate) ? $firstBurn->estimate : (!empty($firstBurn->left) ? $firstBurn->left : ''), "class='form-control' placeholder='{$lang->project->placeholder->totalLeft}'")?>
<span class='input-group-addon'><?php echo $execution->begin?></span>
<?php echo html::input('estimate', !empty($firstBurn->estimate) ? $firstBurn->estimate : (!empty($firstBurn->left) ? $firstBurn->left : ''), "class='form-control' placeholder='{$lang->execution->placeholder->totalLeft}'")?>
<span class='input-group-addon fix-border'>
<div class='checkbox-primary'>
<input id='withLeft' type='checkbox' checked name='withLeft' value='1' />
<label for='withLeft'><?php echo $lang->project->fixFirstWithLeft?></label>
<label for='withLeft'><?php echo $lang->execution->fixFirstWithLeft?></label>
</div>
</span>
<span class='input-group-btn'><?php echo html::submitButton($lang->save, '', "btn btn-primary");?></span>
@@ -34,7 +34,7 @@
</tr>
<tr>
<td>
<div class='alert alert-primary no-margin'><?php echo $lang->project->totalEstimate;?> : <code class='strong text-primary'><?php echo $project->totalEstimate;?></code> <?php echo $lang->project->workHour;?></div>
<div class='alert alert-primary no-margin'><?php echo $lang->execution->totalEstimate;?> : <code class='strong text-primary'><?php echo $execution->totalEstimate;?></code> <?php echo $lang->execution->workHour;?></div>
</td>
</tr>
</table>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The task group view file of project module of ZenTaoPMS.
* The task group view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: grouptask.html.php 4143 2013-01-18 07:01:06Z wyd621@gmail.com $
* @link http://www.zentao.net
*/
@@ -15,12 +15,12 @@
<div class="btn-toolbar pull-left">
<?php if(!empty($tasks)):?>
<div class="pull-left table-group-btns">
<button type="button" class="btn btn-link group-collapse-all"><?php echo $lang->project->treeLevel['root'];?> <i class="icon-fold-all"></i></button>
<button type="button" class="btn btn-link group-expand-all"><?php echo $lang->project->treeLevel['all'];?> <i class="icon-unfold-all"></i></button>
<button type="button" class="btn btn-link group-collapse-all"><?php echo $lang->execution->treeLevel['root'];?> <i class="icon-fold-all"></i></button>
<button type="button" class="btn btn-link group-expand-all"><?php echo $lang->execution->treeLevel['all'];?> <i class="icon-unfold-all"></i></button>
</div>
<?php endif;?>
<?php if(isset($lang->project->groupFilter[$groupBy])):?>
<?php foreach($lang->project->groupFilter[$groupBy] as $filterKey => $name):?>
<?php if(isset($lang->execution->groupFilter[$groupBy])):?>
<?php foreach($lang->execution->groupFilter[$groupBy] as $filterKey => $name):?>
<?php
$active = '';
$name = "<span class='text'>{$name}</span>";
@@ -30,17 +30,17 @@
$active = 'btn-active-text';
}
?>
<?php echo html::a(inlink('grouptask', "projectID=$projectID&groupBy=$groupBy&filter=$filterKey"), $name, '', "class='btn btn-link $active'");?>
<?php echo html::a(inlink('grouptask', "executionID=$executionID&groupBy=$groupBy&filter=$filterKey"), $name, '', "class='btn btn-link $active'");?>
<?php endforeach;?>
<?php else:?>
<?php echo html::a(inlink('grouptask', "projectID=$projectID&groupBy=$groupBy"), "<span class='text'>{$lang->project->allTasks}</span> <span class='label label-light label-badge'>{$allCount}</span>", '', "class='btn btn-link btn-active-text'");?>
<?php echo html::a(inlink('grouptask', "executionID=$executionID&groupBy=$groupBy"), "<span class='text'>{$lang->execution->allTasks}</span> <span class='label label-light label-badge'>{$allCount}</span>", '', "class='btn btn-link btn-active-text'");?>
<?php endif;?>
</div>
<div class="btn-toolbar pull-right">
<?php
if(!isset($browseType)) $browseType = '';
if(!isset($orderBy)) $orderBy = '';
common::printIcon('task', 'report', "project=$projectID&browseType=$browseType", '', 'button', 'bar-chart muted');
common::printIcon('task', 'report', "execution=$executionID&browseType=$browseType", '', 'button', 'bar-chart muted');
?>
<div class="btn-group">
<button class="btn btn-link" data-toggle="dropdown"><i class="icon icon-export muted"></i> <span class="text"><?php echo $lang->export;?></span> <span class="caret"></span></button>
@@ -48,33 +48,33 @@
<?php
$class = common::hasPriv('task', 'export') ? '' : "class=disabled";
$misc = common::hasPriv('task', 'export') ? "class='export'" : "class=disabled";
$link = common::hasPriv('task', 'export') ? $this->createLink('task', 'export', "project=$projectID&orderBy=$orderBy&type=$browseType") : '#';
$link = common::hasPriv('task', 'export') ? $this->createLink('task', 'export', "execution=$executionID&orderBy=$orderBy&type=$browseType") : '#';
echo "<li $class>" . html::a($link, $lang->story->export, '', $misc) . "</li>";
?>
</ul>
</div>
<?php if(common::canModify('project', $project)):?>
<?php if(common::canModify('execution', $execution)):?>
<div class="btn-group">
<button class="btn btn-link" data-toggle="dropdown"><i class="icon icon-import muted"></i> <span class="text"><?php echo $lang->import;?></span> <span class="caret"></span></button>
<ul class="dropdown-menu">
<?php
$class = common::hasPriv('project', 'importTask') ? '' : "class=disabled";
$misc = common::hasPriv('project', 'importTask') ? "class='import'" : "class=disabled";
$link = common::hasPriv('project', 'importTask') ? $this->createLink('project', 'importTask', "project=$project->id") : '#';
echo "<li $class>" . html::a($link, $lang->project->importTask, '', $misc) . "</li>";
$class = common::hasPriv('execution', 'importTask') ? '' : "class=disabled";
$misc = common::hasPriv('execution', 'importTask') ? "class='import'" : "class=disabled";
$link = common::hasPriv('execution', 'importTask') ? $this->createLink('execution', 'importTask', "execution=$execution->id") : '#';
echo "<li $class>" . html::a($link, $lang->execution->importTask, '', $misc) . "</li>";
$class = common::hasPriv('project', 'importBug') ? '' : "class=disabled";
$misc = common::hasPriv('project', 'importBug') ? "class='import'" : "class=disabled";
$link = common::hasPriv('project', 'importBug') ? $this->createLink('project', 'importBug', "project=$project->id") : '#';
echo "<li $class>" . html::a($link, $lang->project->importBug, '', $misc) . "</li>";
$class = common::hasPriv('execution', 'importBug') ? '' : "class=disabled";
$misc = common::hasPriv('execution', 'importBug') ? "class='import'" : "class=disabled";
$link = common::hasPriv('execution', 'importBug') ? $this->createLink('execution', 'importBug', "execution=$execution->id") : '#';
echo "<li $class>" . html::a($link, $lang->execution->importBug, '', $misc) . "</li>";
?>
</ul>
</div>
<?php endif;?>
<?php
$checkObject = new stdclass();
$checkObject->project = $projectID;
$link = $this->createLink('task', 'create', "project=$projectID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : ''));
$checkObject->execution = $executionID;
$link = $this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : ''));
if(common::hasPriv('task', 'create', $checkObject)) echo html::a($link, "<i class='icon icon-plus'></i> {$lang->task->create}", '', "class='btn btn-primary'");
?>
</div>
@@ -85,7 +85,7 @@
<p>
<span class="text-muted"><?php echo $lang->task->noTask;?></span>
<?php if(common::hasPriv('task', 'create', $checkObject)):?>
<?php echo html::a($this->createLink('task', 'create', "project=$projectID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')), "<i class='icon icon-plus'></i> " . $lang->task->create, '', "class='btn btn-info'");?>
<?php echo html::a($this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')), "<i class='icon icon-plus'></i> " . $lang->task->create, '', "class='btn btn-info'");?>
<?php endif;?>
</p>
</div>
@@ -96,16 +96,16 @@
<th class="c-side text-left has-btn group-menu">
<div class="dropdown">
<a href="" data-toggle="dropdown" class="btn text-left btn-block btn-link clearfix">
<span class='pull-left'><?php echo zget($lang->project->groups, $groupBy, null);?></span>
<span class='pull-left'><?php echo zget($lang->execution->groups, $groupBy, null);?></span>
<i class="icon icon-caret-down hl-primary text-primary pull-right"></i>
</a>
<ul class="dropdown-menu">
<?php foreach($lang->project->groups as $key => $value):?>
<?php foreach($lang->execution->groups as $key => $value):?>
<?php
if(empty($key)) continue;
if($project->type == 'ops' && $key == 'story') continue;
if($execution->type == 'ops' && $key == 'story') continue;
$active = $key == $groupBy ? "class='active'" : '';
echo "<li $active>"; common::printLink('project', 'groupTask', "project=$projectID&groupBy=$key", $value); echo '</li>';
echo "<li $active>"; common::printLink('execution', 'groupTask', "execution=$executionID&groupBy=$key", $value); echo '</li>';
?>
<?php endforeach;?>
</ul>
@@ -183,8 +183,8 @@
<?php echo html::a('###', "<i class='icon-caret-down'></i> " . $groupName, '', "class='text-primary' title='$groupName'");?>
<div class='groupSummary small'>
<?php if($groupBy == 'assignedTo' and isset($members[$task->assignedTo])) printf($lang->project->memberHoursAB, zget($users, $task->assignedTo), $members[$task->assignedTo]->totalHours);?>
<?php printf($lang->project->groupSummaryAB, $groupSum, $groupWait, $groupDoing, $groupEstimate . $lang->project->workHourUnit, $groupConsumed . $lang->project->workHourUnit, $groupLeft . $lang->project->workHourUnit);?>
<?php if($groupBy == 'assignedTo' and isset($members[$task->assignedTo])) printf($lang->execution->memberHoursAB, zget($users, $task->assignedTo), $members[$task->assignedTo]->totalHours);?>
<?php printf($lang->execution->groupSummaryAB, $groupSum, $groupWait, $groupDoing, $groupEstimate . $lang->execution->workHourUnit, $groupConsumed . $lang->execution->workHourUnit, $groupLeft . $lang->execution->workHourUnit);?>
</div>
</div>
</td>
@@ -202,17 +202,17 @@
<td class="c-status"><span class='status-task status-<?php echo $task->status;?>'> <?php echo $this->processStatus('task', $task);?></span></td>
<td class="c-assign text-left"><?php echo "<span class='$assignedToClass'>" . $task->assignedToRealName . "</span>";?></td>
<td class='c-user'><?php echo zget($users, $task->finishedBy);?></td>
<td class="c-hours em" title="<?php echo $task->estimate . ' ' . $lang->project->workHour;?>"><?php echo $task->estimate . ' ' . $lang->project->workHourUnit;?></td>
<td class="c-hours em" title="<?php echo $task->consumed . ' ' . $lang->project->workHour;?>"><?php echo $task->consumed . ' ' . $lang->project->workHourUnit;?></td>
<td class="c-hours em" title="<?php echo $task->left . ' ' . $lang->project->workHour;?>"><?php echo $task->left . ' ' . $lang->project->workHourUnit;?></td>
<td class="c-hours em" title="<?php echo $task->estimate . ' ' . $lang->execution->workHour;?>"><?php echo $task->estimate . ' ' . $lang->execution->workHourUnit;?></td>
<td class="c-hours em" title="<?php echo $task->consumed . ' ' . $lang->execution->workHour;?>"><?php echo $task->consumed . ' ' . $lang->execution->workHourUnit;?></td>
<td class="c-hours em" title="<?php echo $task->left . ' ' . $lang->execution->workHour;?>"><?php echo $task->left . ' ' . $lang->execution->workHourUnit;?></td>
<td class="c-num em"><?php echo $task->progress . '%';?></td>
<td class="c-type"><?php echo zget($lang->task->typeList, $task->type);?></td>
<td class='c-date <?php if(isset($task->delay)) echo 'delayed';?>'><?php if(substr($task->deadline, 0, 4) > 0) echo $task->deadline;?></td>
<td class="c-actions">
<?php if(common::canModify('project', $project)):?>
<?php common::printIcon('task', 'assignTo', "projectID=$task->project&taskID=$task->id", $task, 'list', '', '', 'iframe', true);?>
<?php if(common::canModify('execution', $execution)):?>
<?php common::printIcon('task', 'assignTo', "executionID=$task->execution&taskID=$task->id", $task, 'list', '', '', 'iframe', true);?>
<?php common::printIcon('task', 'edit', "taskid=$task->id", '', 'list');?>
<?php common::printIcon('task', 'delete', "projectID=$task->project&taskid=$task->id", '', 'list', 'trash', 'hiddenwin');?>
<?php common::printIcon('task', 'delete', "executionID=$task->execution&taskid=$task->id", '', 'list', 'trash', 'hiddenwin');?>
<?php endif;?>
</td>
</tr>
@@ -225,9 +225,9 @@
</td>
<td colspan='13'>
<div class="table-row segments-list">
<?php if($groupBy == 'assignedTo' and isset($members[$task->assignedTo])) printf($lang->project->memberHours, zget($users, $task->assignedTo), $members[$task->assignedTo]->totalHours);?>
<?php printf($lang->project->countSummary, $groupSum, $groupDoing, $groupWait);?>
<?php printf($lang->project->timeSummary, $groupEstimate . $lang->project->workHourUnit, $groupConsumed . $lang->project->workHourUnit, $groupLeft . $lang->project->workHourUnit);?>
<?php if($groupBy == 'assignedTo' and isset($members[$task->assignedTo])) printf($lang->execution->memberHours, zget($users, $task->assignedTo), $members[$task->assignedTo]->totalHours);?>
<?php printf($lang->execution->countSummary, $groupSum, $groupDoing, $groupWait);?>
<?php printf($lang->execution->timeSummary, $groupEstimate . $lang->execution->workHourUnit, $groupConsumed . $lang->execution->workHourUnit, $groupLeft . $lang->execution->workHourUnit);?>
</div>
</td>
</tr>

View File

@@ -19,7 +19,7 @@ var browseType = '<?php echo $browseType;?>';
</script>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<?php echo html::a(inlink('importBug', "projectID=$projectID"), "<span class='text'>{$lang->project->importBug}</span>", '', "class='btn btn-link btn-active-text'");?>
<?php echo html::a(inlink('importBug', "executionID=$executionID"), "<span class='text'>{$lang->execution->importBug}</span>", '', "class='btn btn-link btn-active-text'");?>
</div>
</div>
<div id='mainContent'>
@@ -63,7 +63,7 @@ var browseType = '<?php echo $browseType;?>';
<td style='overflow:visible'><?php echo html::select("pri[$bug->id]", $lang->task->priList, 3, "class='form-control chosen'");?></td>
<td style='overflow:visible'><?php echo html::select("assignedTo[$bug->id]", $users, zget($users, $bug->assignedTo, '', $bug->assignedTo), "class='form-control chosen'");?></td>
<td><?php echo html::input("estimate[$bug->id]", '', 'size=4 class="form-control"');?></td>
<?php $deadline = ($bug->deadline > helper::today() and $bug->deadline > $project->begin) ? $bug->deadline : '0000-00-00';?>
<?php $deadline = ($bug->deadline > helper::today() and $bug->deadline > $execution->begin) ? $bug->deadline : '0000-00-00';?>
<td><?php echo html::input("deadline[$bug->id]", $deadline, 'size=4 class="form-control form-date"');?></td>
</tr>
<?php endforeach;?>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The importtask view file of project module of ZenTaoPMS.
* The importtask view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: importtask.html.php 4669 2013-04-23 02:28:08Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
@@ -13,11 +13,11 @@
<?php include '../../common/view/header.html.php';?>
<div id='mainMenu' class='clearfix'>
<div class='pull-left btn-toolbar'>
<?php echo html::a($this->createLink('project', 'importTask', "project=$projectID"), "<span class='text'>{$lang->project->importTask}</span>", '', "class='btn btn-link btn-active-text'");?>
<?php echo html::a($this->createLink('execution', 'importTask', "execution=$executionID"), "<span class='text'>{$lang->execution->importTask}</span>", '', "class='btn btn-link btn-active-text'");?>
<div class='input-control input-group space w-150px'>
<?php $projects = array(0 => $lang->project->allProjects) + $projects;?>
<span class='input-group-addon'><?php echo $lang->project->selectProject;?></span>
<?php echo html::select('fromproject', $projects, $fromProject, "onchange='reload($projectID, this.value)' class='form-control chosen'");?>
<?php $executions = array(0 => $lang->execution->allProjects) + $executions;?>
<span class='input-group-addon'><?php echo $lang->execution->selectProject;?></span>
<?php echo html::select('fromexecution', $executions, $fromProject, "onchange='reload($executionID, this.value)' class='form-control chosen'");?>
</div>
</div>
</div>
@@ -32,7 +32,7 @@
</div>
<?php echo $lang->idAB;?>
</th>
<th class='w-150px'><?php echo $lang->project->name ?></th>
<th class='w-150px'><?php echo $lang->execution->name ?></th>
<th class='w-pri'><?php echo $lang->priAB;?></th>
<th class='w-p30'><?php echo $lang->task->name;?></th>
<th class='w-user'><?php echo $lang->task->assignedTo;?></th>
@@ -53,11 +53,11 @@
</div>
<?php printf('%03d', $task->id);?>
</td>
<td><?php echo $projects[$task->project];?></td>
<td><?php echo $executions[$task->execution];?></td>
<td><span class='label-pri label-pri-<?php echo $task->pri;?>' title='<?php echo zget($lang->task->priList, $task->pri, $task->pri);?>'><?php echo $task->pri == '0' ? '' : zget($lang->task->priList, $task->pri, $task->pri);?></span></td>
<td class='text-left nobr'><?php if(!common::printLink('task', 'view', "task=$task->id", $task->name)) echo $task->name;?></td>
<td <?php echo $class;?>><?php echo $task->assignedToRealName;?></td>
<td title="<?php echo $task->left . ' ' . $lang->project->workHour;?>"><?php echo $task->left . ' ' . $lang->project->workHourUnit;?></td>
<td title="<?php echo $task->left . ' ' . $lang->execution->workHour;?>"><?php echo $task->left . ' ' . $lang->execution->workHourUnit;?></td>
<td class=<?php if(isset($task->delay)) echo 'delayed';?>><?php if(substr($task->deadline, 0, 4) > 0) echo $task->deadline;?></td>
<td><span class='status-task status-<?php echo $task->status;?>'><?php echo $this->processStatus('task', $task);?></span></td>
<td class='text-left nobr'>
@@ -82,7 +82,7 @@
<?php if($tasks2Imported):?>
<div class='table-footer'>
<div class="checkbox-primary check-all"><label><?php echo $lang->selectAll?></label></div>
<div class="table-actions btn-toolbar show-always"><?php echo html::submitButton('<i class="icon icon-import icon-sm"></i> ' . $lang->project->importTask, '', 'btn btn-secondary btn-wide');?></div>
<div class="table-actions btn-toolbar show-always"><?php echo html::submitButton('<i class="icon icon-import icon-sm"></i> ' . $lang->execution->importTask, '', 'btn btn-secondary btn-wide');?></div>
</div>
<?php endif;?>
</form>

View File

@@ -10,11 +10,11 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php if(empty($projects)):?>
<?php if(empty($executions)):?>
<div class="table-empty-tip">
<p><span class="text-muted"><?php echo $lang->project->noProject;?></span> <?php common::printLink('project', 'create', '', "<i class='icon icon-plus'></i> " . $lang->project->create, '', "class='btn btn-info'");?></p>
<p><span class="text-muted"><?php echo $lang->execution->noProject;?></span> <?php common::printLink('execution', 'create', '', "<i class='icon icon-plus'></i> " . $lang->execution->create, '', "class='btn btn-info'");?></p>
</div>
<?php else:?>
<?php echo $this->fetch('block', 'dashboard', 'module=project');?>
<?php echo $this->fetch('block', 'dashboard', 'module=execution');?>
<?php endif;?>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,10 +1,10 @@
<?php
/**
* The kanban view file of project module of ZenTaoPMS.
* The kanban view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2012 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @author Wang Yidong, Zhu Jinyong
* @package project
* @package execution
* @version $Id: kanban.html.php $
*/
?>
@@ -12,10 +12,10 @@
<?php js::set('statusMap', $statusMap);?>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-right'>
<?php echo html::a($this->createLink('project', 'ajaxKanbanSetting', "projectID=$projectID"), "<i class='icon-cog muted'></i> " . $lang->project->kanbanSetting, '', "class='iframe btn btn-link'");?>
<?php if(common::hasPriv('project', 'printKanban')) echo html::a($this->createLink('project', 'printKanban', "projectID=$projectID"), "<i class='icon-printer muted'></i> " . $lang->project->printKanban, '', "class='iframe btn btn-link' id='printKanban' title='{$lang->project->printKanban}' data-width='500'");?>
<?php echo html::a($this->createLink('execution', 'ajaxKanbanSetting', "executionID=$executionID"), "<i class='icon-cog muted'></i> " . $lang->execution->kanbanSetting, '', "class='iframe btn btn-link'");?>
<?php if(common::hasPriv('execution', 'printKanban')) echo html::a($this->createLink('execution', 'printKanban', "executionID=$executionID"), "<i class='icon-printer muted'></i> " . $lang->execution->printKanban, '', "class='iframe btn btn-link' id='printKanban' title='{$lang->execution->printKanban}' data-width='500'");?>
<?php
$link = $this->createLink('task', 'export', "project=$projectID&orderBy=$orderBy&type=kanban");
$link = $this->createLink('task', 'export', "execution=$executionID&orderBy=$orderBy&type=kanban");
if(common::hasPriv('task', 'export')) echo html::a($link, "<i class='icon-export muted'></i> " . $lang->task->export, '', "class='btn btn-link iframe export' data-width='700'");
?>
<?php if($canBeChanged):?>
@@ -26,21 +26,21 @@
</button>
<ul class='dropdown-menu' id='importActionMenu'>
<?php
$misc = common::hasPriv('project', 'importTask') ? '' : "class=disabled";
$link = common::hasPriv('project', 'importTask') ? $this->createLink('project', 'importTask', "project=$project->id") : '#';
echo "<li $misc>" . html::a($link, $lang->project->importTask, '', $misc) . "</li>";
$misc = common::hasPriv('execution', 'importTask') ? '' : "class=disabled";
$link = common::hasPriv('execution', 'importTask') ? $this->createLink('execution', 'importTask', "execution=$execution->id") : '#';
echo "<li $misc>" . html::a($link, $lang->execution->importTask, '', $misc) . "</li>";
$misc = common::hasPriv('project', 'importBug') ? '' : "class=disabled";
$link = common::hasPriv('project', 'importBug') ? $this->createLink('project', 'importBug', "project=$project->id") : '#';
echo "<li $misc>" . html::a($link, $lang->project->importBug, '', $misc) . "</li>";
$misc = common::hasPriv('execution', 'importBug') ? '' : "class=disabled";
$link = common::hasPriv('execution', 'importBug') ? $this->createLink('execution', 'importBug', "execution=$execution->id") : '#';
echo "<li $misc>" . html::a($link, $lang->execution->importBug, '', $misc) . "</li>";
?>
</ul>
</div>
<?php
$checkObject = new stdclass();
$checkObject->project = $projectID;
$checkObject->execution = $executionID;
$misc = common::hasPriv('task', 'create', $checkObject) ? "class='btn btn-primary iframe' data-width='1200px'" : "class='btn btn-primary disabled'";
$link = common::hasPriv('task', 'create', $checkObject) ? $this->createLink('task', 'create', "project=$projectID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : ''), '', true) : '#';
$link = common::hasPriv('task', 'create', $checkObject) ? $this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : ''), '', true) : '#';
echo html::a($link, "<i class='icon icon-plus'></i>" . $lang->task->create, '', $misc);
?>
<?php endif;?>
@@ -68,7 +68,7 @@
<p>
<span class="text-muted"><?php echo $lang->task->noTask;?></span>
<?php if($canBeChanged and common::hasPriv('task', 'create', $checkObject)):?>
<?php echo html::a($this->createLink('task', 'create', "project=$projectID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')), "<i class='icon icon-plus'></i> " . $lang->task->create, '', "class='btn btn-info'");?>
<?php echo html::a($this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')), "<i class='icon icon-plus'></i> " . $lang->task->create, '', "class='btn btn-info'");?>
<?php endif;?>
</p>
</div>
@@ -78,16 +78,16 @@
<tr>
<th class="c-board c-side has-btn">
<div class="dropdown">
<?php $dropTitle = $type == 'story' ? $lang->project->orderList[$storyOrder] : $lang->task->$type;?>
<?php $dropTitle = $type == 'story' ? $lang->execution->orderList[$storyOrder] : $lang->task->$type;?>
<button type="button" data-toggle="dropdown" class="btn btn-block btn-link"><?php echo $dropTitle;?> <span class="caret"></span></button>
<ul class='dropdown-menu text-left'>
<?php foreach($lang->project->orderList as $key => $value):?>
<?php foreach($lang->execution->orderList as $key => $value):?>
<li <?php echo ($type == 'story' and $storyOrder == $key) ? " class='active'" : '' ?>>
<?php echo html::a($this->createLink('project', 'kanban', "projectID=$projectID&type=story&orderBy=$key"), $value);?>
<?php echo html::a($this->createLink('execution', 'kanban', "executionID=$executionID&type=story&orderBy=$key"), $value);?>
</li>
<?php endforeach;?>
<?php echo "<li" . ($type == 'assignedTo' ? " class='active'" : '') . ">" . html::a(inlink('kanban', "project=$projectID&type=assignedTo"), $lang->project->groups['assignedTo']) . "</li>";?>
<?php echo "<li" . ($type == 'finishedBy' ? " class='active'" : '') . ">" . html::a(inlink('kanban', "project=$projectID&type=finishedBy"), $lang->project->groups['finishedBy']) . "</li>";?>
<?php echo "<li" . ($type == 'assignedTo' ? " class='active'" : '') . ">" . html::a(inlink('kanban', "execution=$executionID&type=assignedTo"), $lang->execution->groups['assignedTo']) . "</li>";?>
<?php echo "<li" . ($type == 'finishedBy' ? " class='active'" : '') . ">" . html::a(inlink('kanban', "execution=$executionID&type=finishedBy"), $lang->execution->groups['finishedBy']) . "</li>";?>
</ul>
</div>
</th>
@@ -124,9 +124,9 @@
<ul class='dropdown-menu pull-right'>
<?php
$misc = "data-toggle='modal' data-type='iframe' data-width='95%'";
echo (common::hasPriv('task', 'create')) ? '<li>' . html::a($this->createLink('task', 'create', "projectID=$story->project&storyID=$story->id&moduleID=$story->module", '', true), $lang->project->wbs, '', $misc) : '' . '</li>';
echo (common::hasPriv('task', 'batchCreate')) ? '<li>' . html::a($this->createLink('task', 'batchCreate', "projectID=$story->project&storyID=$story->id&moduleID=0&taskID=0&iframe=true", '', true), $lang->project->batchWBS, '', $misc) : '' . '</li>';
echo (common::hasPriv('project', 'unlinkStory')) ? '<li>' . html::a($this->createLink('project', 'unlinkStory', "projectID=$story->project&storyID=$story->story&confirm=no", '', true), $lang->project->unlinkStory, 'hiddenwin') : '' . '</li>';
echo (common::hasPriv('task', 'create')) ? '<li>' . html::a($this->createLink('task', 'create', "executionID=$story->execution&storyID=$story->id&moduleID=$story->module", '', true), $lang->execution->wbs, '', $misc) : '' . '</li>';
echo (common::hasPriv('task', 'batchCreate')) ? '<li>' . html::a($this->createLink('task', 'batchCreate', "executionID=$story->execution&storyID=$story->id&moduleID=0&taskID=0&iframe=true", '', true), $lang->execution->batchWBS, '', $misc) : '' . '</li>';
echo (common::hasPriv('execution', 'unlinkStory')) ? '<li>' . html::a($this->createLink('execution', 'unlinkStory', "executionID=$story->execution&storyID=$story->story&confirm=no", '', true), $lang->execution->unlinkStory, 'hiddenwin') : '' . '</li>';
$misc = "data-toggle='modal' data-type='iframe'";
echo (common::hasPriv('story', 'close')) ? '<li>' . html::a($this->createLink('story', 'close', "storyID=$story->id", '', true), $lang->story->close, '', $misc) : '' . '</li>';
?>
@@ -173,7 +173,7 @@
if(empty($task->assignedTo)) $assignedToRealName = "<span class='text-primary'>{$lang->task->noAssigned}</span>";
if(common::hasPriv('task', 'assignTo', $task))
{
echo html::a($this->createLink('task', 'assignTo', "projectID={$task->project}&taskID={$task->id}", '', true), '<i class="icon icon-hand-right"></i> ' . $assignedToRealName, '', 'class="btn btn-icon-left kanbaniframe task-assignedTo"');
echo html::a($this->createLink('task', 'assignTo', "executionID={$task->execution}&taskID={$task->id}", '', true), '<i class="icon icon-hand-right"></i> ' . $assignedToRealName, '', 'class="btn btn-icon-left kanbaniframe task-assignedTo"');
}
else
{
@@ -230,5 +230,5 @@
</table>
<?php endif;?>
</div>
<?php echo js::set('projectID', $projectID);?>
<?php echo js::set('executionID', $executionID);?>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The link story view of project module of ZenTaoPMS.
* The link story view of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: linkstory.html.php 4129 2013-01-18 01:58:14Z wwccss $
* @link http://www.zentao.net
*/
@@ -17,11 +17,11 @@
</style>
<div id="mainMenu" class="clearfix">
<div class="btn-toolbar pull-left">
<span class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->project->linkStory;?></span></span>
<?php if($executionStories and ($this->app->rawModule == 'project')):?>
<span class='btn btn-link'><span class='text'><?php echo $lang->project->linkPRJStoryTip;?></span></span>
<?php elseif($this->app->rawModule == 'project'):?>
<span class='btn btn-link'><span class='text'><?php echo $lang->project->linkAllStoryTip;?></span></span>
<span class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->execution->linkStory;?></span></span>
<?php if($executionStories and ($this->app->rawModule == 'execution')):?>
<span class='btn btn-link'><span class='text'><?php echo $lang->execution->linkPRJStoryTip;?></span></span>
<?php elseif($this->app->rawModule == 'execution'):?>
<span class='btn btn-link'><span class='text'><?php echo $lang->execution->linkAllStoryTip;?></span></span>
<?php endif;?>
</div>
<div class='btn-toolbar pull-right'>
@@ -97,7 +97,7 @@
</div>
<?php else:?>
<div class="table-empty-tip">
<p><span class="text-muted"><?php echo $lang->project->whyNoStories;?></p>
<p><span class="text-muted"><?php echo $lang->execution->whyNoStories;?></p>
</div>
<?php endif;?>
</form>

View File

@@ -1,30 +1,30 @@
<?php
/**
* The link user view of project module of ZenTaoPMS.
* The link user view of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: managemembers.html.php 4662 2013-04-18 02:34:33Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php js::set('projectID', $project->id);?>
<?php js::set('executionID', $execution->id);?>
<?php js::set('team2Import', $team2Import);?>
<?php js::set('roles', $roles);?>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<span class='btn btn-link btn-active-text'>
<?php echo html::a($this->createLink('project', 'managemembers', "projectID={$project->id}"), "<span class='text'> {$lang->project->manageMembers}</span>");?>
<?php echo html::a($this->createLink('execution', 'managemembers', "executionID={$execution->id}"), "<span class='text'> {$lang->execution->manageMembers}</span>");?>
</span>
<div class='input-group space w-200px'>
<span class='input-group-addon'><?php echo $lang->project->selectDept?></span>
<?php echo html::select('dept', $depts, $dept, "class='form-control chosen' onchange='setDeptUsers(this)' data-placeholder='{$lang->project->selectDeptTitle}'");?>
<span class='input-group-addon'><?php echo $lang->execution->selectDept?></span>
<?php echo html::select('dept', $depts, $dept, "class='form-control chosen' onchange='setDeptUsers(this)' data-placeholder='{$lang->execution->selectDeptTitle}'");?>
<?php if(count($teams2Import) != 1):?>
<span class='input-group-addon'><?php echo $lang->project->copyTeam?></span>
<?php echo html::select('project', $teams2Import, $team2Import, "class='form-control chosen' onchange='choseTeam2Copy(this)' data-placeholder='{$lang->project->copyTeamTitle}'");?>
<span class='input-group-addon'><?php echo $lang->execution->copyTeam?></span>
<?php echo html::select('execution', $teams2Import, $team2Import, "class='form-control chosen' onchange='choseTeam2Copy(this)' data-placeholder='{$lang->execution->copyTeamTitle}'");?>
<?php endif;?>
</div>
</div>
@@ -68,7 +68,7 @@
<tr class='addedItem'>
<td><?php echo html::select("accounts[]", $users, $member2Import->account, "class='form-control chosen' onchange='setRole(this.value, $i)'");?></td>
<td><input type='text' name='roles[]' id='role<?php echo $i;?>' class='form-control' value='<?php echo $member2Import->role;?>' /></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='days[]' id='days<?php echo $i;?>' class='form-control' value='<?php echo $execution->days?>'/></td>
<td>
<input type='text' name='hours[]' id='hours<?php echo $i;?>' class='form-control' value='<?php echo $member2Import->hours;?>' />
</td>
@@ -86,9 +86,9 @@
<tr class='addedItem'>
<td><?php echo html::select("accounts[]", $users, $deptAccount, "class='form-control chosen' onchange='setRole(this.value, $i)'");?></td>
<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='days[]' id='days<?php echo $i;?>' class='form-control' value='<?php echo $execution->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'>
@@ -104,9 +104,9 @@
<tr class='addedItem'>
<td><?php echo html::select("accounts[]", $users, '', "class='form-control chosen' onchange='setRole(this.value, $i)'");?></td>
<td><input type='text' name='roles[]' id='role<?php echo ($i);?>' class='form-control' /></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='days[]' id='days<?php echo ($i);?>' class='form-control' value='<?php echo $execution->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'>
@@ -128,9 +128,9 @@
<tr id='addItem' class='hidden'>
<td><?php echo html::select("accounts[]", $users, '', "class='form-control' onchange='setRole(this.value, $i)'");?></td>
<td><input type='text' name='roles[]' id='role<?php echo ($i);?>' class='form-control' /></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='days[]' id='days<?php echo ($i);?>' class='form-control' value='<?php echo $execution->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'>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The manage product view of project module of ZenTaoPMS.
* The manage product view of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: manageproducts.html.php 4129 2013-01-18 01:58:14Z wwccss $
* @link http://www.zentao.net
*/
@@ -13,20 +13,20 @@
<?php include '../../common/view/header.html.php';?>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<span class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->project->manageProducts;?></span></span>
<span class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->execution->manageProducts;?></span></span>
</div>
</div>
<div id='mainContent'>
<div class='cell'>
<form id='productsBox' method='post'>
<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 $class = $project->grade == 2 ? "disabled='disabled'" : '';?>
<?php $class = $execution->grade == 2 ? "disabled='disabled'" : '';?>
<?php foreach($allProducts as $productID => $productName):?>
<?php if(isset($linkedProducts[$productID])):?>
<?php $isDisabled = in_array($productID, $unmodifiableProducts) ? "disabled='disabled'" : '';?>
<?php $title = in_array($productID, $unmodifiableProducts) ? $lang->project->notAllowRemoveProducts : $productName;?>
<?php $title = in_array($productID, $unmodifiableProducts) ? $lang->execution->notAllowRemoveProducts : $productName;?>
<?php $checked = 'checked';?>
<div class='col-sm-4'>
<div class='product <?php echo $checked . (isset($branchGroups[$productID]) ? ' has-branch' : '')?>'>
@@ -43,9 +43,9 @@
<?php endforeach;?>
</div>
</div>
<?php if($this->config->systemMode == 'classic' or $project->grade == 1):?>
<?php if($this->config->systemMode == 'classic' or $execution->grade == 1):?>
<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'>
@@ -62,7 +62,7 @@
</div>
<div class="detail text-center form-actions">
<?php echo html::hidden("post", 'post');?>
<?php if(common::canModify('project', $project)) echo html::submitButton();?>
<?php if(common::canModify('execution', $execution)) echo html::submitButton();?>
</div>
<?php endif;?>
</form>

View File

@@ -128,7 +128,7 @@ $dataType = '';
</tr>
<tr>
<td align='center'><?php echo $lang->task->leftThisTime?></td>
<td align='center'><?php if($content->left) echo $content->left . $lang->project->workHourUnit;?></td>
<td align='center'><?php if($content->left) echo $content->left . $lang->execution->workHourUnit;?></td>
<td></td>
<td></td>
<td></td>
@@ -236,14 +236,14 @@ function initBurnChar()
labels: <?php echo json_encode($chartData['labels'])?>,
datasets: [
{
label: "<?php echo $lang->project->charts->burn->graph->reference;?>",
label: "<?php echo $lang->execution->charts->burn->graph->reference;?>",
color: "#CCC",
fillColor: "rgba(0,0,0,0)",
showTooltips: false,
data: <?php echo $chartData['baseLine']?>
},
{
label: "<?php echo $lang->project->charts->burn->graph->actuality;?>",
label: "<?php echo $lang->execution->charts->burn->graph->actuality;?>",
color: "#0033CC",
data: <?php echo $chartData['burnLine']?>
}]

View File

@@ -1,10 +1,10 @@
<?php
/**
* The kanban view file of project module of ZenTaoPMS.
* The kanban view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2012 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @author Wang Yidong, Zhu Jinyong
* @package project
* @package execution
* @version $Id: kanban.html.php $
*/
?>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The delay file of project module of ZenTaoPMS.
* The delay file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang<wwccss@gmail.com>
* @package project
* @package execution
* @version $Id: delay.html.php 935 2013-01-16 07:49:24Z wwccss@gmail.com $
* @link http://www.zentao.net
*/
@@ -16,10 +16,10 @@
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2>
<span class='prefix label-id'><strong><?php echo $project->id;?></strong></span>
<?php echo isonlybody() ? ("<span title='$project->name'>" . $project->name . '</span>') : html::a($this->createLink('project', 'view', 'project=' . $project->id), $project->name, '_blank');?>
<span class='prefix label-id'><strong><?php echo $execution->id;?></strong></span>
<?php echo isonlybody() ? ("<span title='$execution->name'>" . $execution->name . '</span>') : html::a($this->createLink('execution', 'view', 'execution=' . $execution->id), $execution->name, '_blank');?>
<?php if(!isonlybody()):?>
<small><?php echo $lang->arrow . $lang->project->putoff;?></small>
<small><?php echo $lang->arrow . $lang->execution->putoff;?></small>
<?php endif;?>
</h2>
</div>
@@ -27,16 +27,16 @@
<table class='table table-form'>
<tbody>
<tr>
<th class='w-80px'><?php echo $lang->project->dateRange;?></th>
<th class='w-80px'><?php echo $lang->execution->dateRange;?></th>
<td colspan='2'>
<div class='input-group'>
<?php echo html::input('begin', $project->begin, "class='form-control form-date' onchange='computeWorkDays()' placeholder='" . $lang->project->begin . "'");?>
<span class='input-group-addon'><?php echo $lang->project->to;?></span>
<?php echo html::input('end', $project->end, "class='form-control form-date' onchange='computeWorkDays()' placeholder='" . $lang->project->end . "'");?>
<?php echo html::input('begin', $execution->begin, "class='form-control form-date' onchange='computeWorkDays()' placeholder='" . $lang->execution->begin . "'");?>
<span class='input-group-addon'><?php echo $lang->execution->to;?></span>
<?php echo html::input('end', $execution->end, "class='form-control form-date' onchange='computeWorkDays()' placeholder='" . $lang->execution->end . "'");?>
<div class='input-group-btn'>
<button type='button' class='btn dropdown-toggle' data-toggle='dropdown'><?php echo $lang->project->byPeriod;?> <span class='caret'></span></button>
<button type='button' class='btn dropdown-toggle' data-toggle='dropdown'><?php echo $lang->execution->byPeriod;?> <span class='caret'></span></button>
<ul class='dropdown-menu'>
<?php foreach ($lang->project->endList as $key => $name):?>
<?php foreach ($lang->execution->endList as $key => $name):?>
<li><a href='javascript:computeEndDate("<?php echo $key;?>")'><?php echo $name;?></a></li>
<?php endforeach;?>
</ul>
@@ -46,20 +46,20 @@
<td class='w-100px'></td>
</tr>
<tr>
<th><?php echo $lang->project->days;?></th>
<th><?php echo $lang->execution->days;?></th>
<td colspan='2'>
<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>
<?php echo html::input('days', $execution->days, "class='form-control'");?>
<span class='input-group-addon'><?php echo $lang->execution->day;?></span>
</div>
</td>
<td></td>
</tr>
<tr class='hide'>
<th><?php echo $lang->project->status;?></th>
<td><?php echo html::hidden('status', $project->status);?></td>
<th><?php echo $lang->execution->status;?></th>
<td><?php echo html::hidden('status', $execution->status);?></td>
</tr>
<?php $this->printExtendFields($project, 'table', 'columns=3');?>
<?php $this->printExtendFields($execution, 'table', 'columns=3');?>
<tr>
<th><?php echo $lang->comment;?></th>
<td colspan='3'><?php echo html::textarea('comment', '', "rows='6' class='form-control kindeditor' hidefocus='true'");?></td>
@@ -73,5 +73,5 @@
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
<?php js::set('weekend', $config->project->weekend);?>
<?php js::set('weekend', $config->execution->weekend);?>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The start file of project module of ZenTaoPMS.
* The start file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang<wwccss@gmail.com>
* @package project
* @package execution
* @version $Id: start.html.php 935 2013-01-16 07:49:24Z wwccss@gmail.com $
* @link http://www.zentao.net
*/
@@ -15,23 +15,23 @@
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2>
<span class='prefix label-id'><strong><?php echo $project->id;?></strong></span>
<?php echo isonlybody() ? ("<span title='$project->name'>" . $project->name . '</span>') : html::a($this->createLink('project', 'view', 'project=' . $project->id), $project->name, '_blank');?>
<span class='prefix label-id'><strong><?php echo $execution->id;?></strong></span>
<?php echo isonlybody() ? ("<span title='$execution->name'>" . $execution->name . '</span>') : html::a($this->createLink('execution', 'view', 'execution=' . $execution->id), $execution->name, '_blank');?>
<?php if(!isonlybody()):?>
<small><?php echo $lang->arrow . $lang->project->start;?></small>
<small><?php echo $lang->arrow . $lang->execution->start;?></small>
<?php endif;?>
</h2>
</div>
<form class='load-indicator main-form' method='post' target='hiddenwin'>
<table class='table table-form'>
<tbody>
<?php $this->printExtendFields($project, 'table', 'columns=2');?>
<?php $this->printExtendFields($execution, 'table', 'columns=2');?>
<tr>
<th class='w-40px'><?php echo $lang->comment;?></th>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control kindeditor' hidefocus='true'");?></td>
</tr>
<tr>
<td colspan='2' class='text-center form-actions'><?php echo html::submitButton($lang->project->start) . ' ' . html::linkButton($lang->goback, $this->session->taskList, 'self', '', 'btn btn-wide'); ?></td>
<td colspan='2' class='text-center form-actions'><?php echo html::submitButton($lang->execution->start) . ' ' . html::linkButton($lang->goback, $this->session->taskList, 'self', '', 'btn btn-wide'); ?></td>
</tr>
</tbody>
</table>

View File

@@ -1,22 +1,22 @@
<?php
/**
* The story view file of project module of ZenTaoPMS.
* The story view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: story.html.php 5117 2013-07-12 07:03:14Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
?>
<?php $canOrder = common::hasPriv('project', 'storySort');?>
<?php $canOrder = common::hasPriv('execution', 'storySort');?>
<?php include '../../common/view/header.html.php';?>
<?php if($canOrder) include '../../common/view/sortable.html.php';?>
<?php js::set('moduleID', $this->cookie->storyModuleParam);?>
<?php js::set('productID', $this->cookie->storyProductParam);?>
<?php js::set('branchID', str_replace(',', '_', $this->cookie->storyBranchParam));?>
<?php js::set('confirmUnlinkStory', $lang->project->confirmUnlinkStory)?>
<?php js::set('confirmUnlinkStory', $lang->execution->confirmUnlinkStory)?>
<?php js::set('typeError', sprintf($this->lang->error->notempty, $this->lang->task->type))?>
<?php js::set('workingHourError', sprintf($this->lang->error->notempty, $this->lang->workingHour))?>
<div id="mainMenu" class="clearfix">
@@ -25,7 +25,7 @@
<?php
$sidebarName = isset($product) ? $product->name : (isset($branch) ? $branch : $module->name);
$removeType = isset($product) ? 'byproduct' : (isset($branch) ? 'bybranch' : 'bymodule');
$removeLink = inlink('story', "projectID=$project->id&orderBy=$orderBy&type=$removeType&param=0&recTotal=0&recPerPage={$pager->recPerPage}");
$removeLink = inlink('story', "executionID=$execution->id&orderBy=$orderBy&type=$removeType&param=0&recTotal=0&recPerPage={$pager->recPerPage}");
?>
<div class="title" title='<?php echo $sidebarName;?>'>
<?php echo $sidebarName;?>
@@ -35,22 +35,22 @@
<?php endif;?>
<div class="btn-toolbar pull-left">
<?php
if(common::hasPriv('project', 'story'))
if(common::hasPriv('execution', 'story'))
{
echo html::a($this->createLink('project', 'story', "projectID=$project->id&orderBy=order_desc&type=all"), "<span class='text'>{$lang->story->allStories}</span>" . ($type == 'all' ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>" : ''), '', "class='btn btn-link" . ($type == 'all' ? " btn-active-text" : '') . "'");
echo html::a($this->createLink('project', 'story', "projectID=$project->id&orderBy=order_desc&type=unclosed"), "<span class='text'>{$lang->story->unclosed}</span>" . ($type == 'unclosed' ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>" : ''), '', "class='btn btn-link" . ($type == 'unclosed' ? " btn-active-text" : '') . "'");
echo html::a($this->createLink('execution', 'story', "executionID=$execution->id&orderBy=order_desc&type=all"), "<span class='text'>{$lang->story->allStories}</span>" . ($type == 'all' ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>" : ''), '', "class='btn btn-link" . ($type == 'all' ? " btn-active-text" : '') . "'");
echo html::a($this->createLink('execution', 'story', "executionID=$execution->id&orderBy=order_desc&type=unclosed"), "<span class='text'>{$lang->story->unclosed}</span>" . ($type == 'unclosed' ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>" : ''), '', "class='btn btn-link" . ($type == 'unclosed' ? " btn-active-text" : '') . "'");
}
if(common::hasPriv('project', 'storykanban')) echo html::a($this->createLink('project', 'storykanban', "projectID=$project->id"), "<span class='text'>{$lang->project->kanban}</span>", '', "class='btn btn-link'");
if(common::hasPriv('execution', 'storykanban')) echo html::a($this->createLink('execution', 'storykanban', "executionID=$execution->id"), "<span class='text'>{$lang->execution->kanban}</span>", '', "class='btn btn-link'");
?>
<a class="btn btn-link querybox-toggle" id='bysearchTab'><i class="icon icon-search muted"></i> <?php echo $lang->product->searchStory;?></a>
</div>
<div class="btn-toolbar pull-right">
<?php
common::printLink('story', 'export', "productID=$productID&orderBy=id_desc&projectID=$project->id", "<i class='icon icon-export muted'></i> " . $lang->story->export, '', "class='btn btn-link export' data-group='project'");
common::printLink('story', 'export', "productID=$productID&orderBy=id_desc&executionID=$execution->id", "<i class='icon icon-export muted'></i> " . $lang->story->export, '', "class='btn btn-link export' data-group='execution'");
if(common::canModify('project', $project))
if(common::canModify('execution', $execution))
{
$this->lang->story->create = $this->lang->project->createStory;
$this->lang->story->create = $this->lang->execution->createStory;
if($productID and !$this->loadModel('story')->checkForceReview())
{
echo "<div class='btn-group dropdown-hover'>";
@@ -59,26 +59,26 @@
echo '</button>';
echo "<ul class='dropdown-menu pull-right' id='createActionMenu'>";
$storyModuleID = (int)$this->cookie->storyModuleParam;
if(common::hasPriv('story', 'create')) echo '<li>' . html::a($this->createLink('story', 'create', "productID=$productID&branch=0&moduleID={$storyModuleID}&story=0&project=$project->id"), $lang->story->create, '', "data-group='project'") . '</li>';
if(common::hasPriv('story', 'batchCreate')) echo '<li>' . html::a($this->createLink('story', 'batchCreate', "productID=$productID&branch=0&moduleID={$storyModuleID}&story=0&project=$project->id"), $lang->story->batchCreate, '', "data-group='project'") . '</li>';
if(common::hasPriv('story', 'create')) echo '<li>' . html::a($this->createLink('story', 'create', "productID=$productID&branch=0&moduleID={$storyModuleID}&story=0&execution=$execution->id"), $lang->story->create, '', "data-group='execution'") . '</li>';
if(common::hasPriv('story', 'batchCreate')) echo '<li>' . html::a($this->createLink('story', 'batchCreate', "productID=$productID&branch=0&moduleID={$storyModuleID}&story=0&execution=$execution->id"), $lang->story->batchCreate, '', "data-group='execution'") . '</li>';
echo '</ul>';
echo '</div>';
}
if(commonModel::isTutorialMode())
{
$wizardParams = helper::safe64Encode("project=$project->id");
echo html::a($this->createLink('tutorial', 'wizard', "module=project&method=linkStory&params=$wizardParams"), "<i class='icon-link'></i> {$lang->project->linkStory}",'', "class='btn btn-link link-story-btn'");
$wizardParams = helper::safe64Encode("execution=$execution->id");
echo html::a($this->createLink('tutorial', 'wizard', "module=execution&method=linkStory&params=$wizardParams"), "<i class='icon-link'></i> {$lang->execution->linkStory}",'', "class='btn btn-link link-story-btn'");
}
else
{
echo "<div class='btn-group dropdown-hover'>";
echo "<button type='button' class='btn btn-primary' id='linkButton'>";
echo "<i class='icon-link'></i> {$lang->project->linkStory} <span class='caret'></span>";
echo "<i class='icon-link'></i> {$lang->execution->linkStory} <span class='caret'></span>";
echo '</button>';
echo "<ul class='dropdown-menu pull-right' id='linkActionMenu'>";
if(common::hasPriv('project', 'linkStory')) echo '<li>' . html::a(inlink('linkStory', "project=$project->id"), $lang->project->linkStory). "</li>";
if(common::hasPriv('project', 'importPlanStories')) echo '<li>' . html::a('#linkStoryByPlan', $lang->project->linkStoryByPlan, '', 'data-toggle="modal"') . "</li>";
if(common::hasPriv('execution', 'linkStory')) echo '<li>' . html::a(inlink('linkStory', "execution=$execution->id"), $lang->execution->linkStory). "</li>";
if(common::hasPriv('execution', 'importPlanStories')) echo '<li>' . html::a('#linkStoryByPlan', $lang->execution->linkStoryByPlan, '', 'data-toggle="modal"') . "</li>";
echo '</ul>';
echo '</div>';
}
@@ -95,18 +95,18 @@
</div>
</div>
<div class="main-col">
<div id='queryBox' data-module='projectStory' class='cell <?php if($type =='bysearch') echo 'show';?>'></div>
<div id='queryBox' data-module='executionStory' class='cell <?php if($type =='bysearch') echo 'show';?>'></div>
<?php if(empty($stories)):?>
<div class="table-empty-tip">
<p>
<span class="text-muted"><?php echo $lang->story->noStory;?></span>
<?php if(common::canModify('project', $project) and common::hasPriv('project', 'linkStory')):?>
<?php echo html::a($this->createLink('project', 'linkStory', "project=$project->id"), "<i class='icon icon-link'></i> " . $lang->project->linkStory, '', "class='btn btn-info'");?>
<?php if(common::canModify('execution', $execution) and common::hasPriv('execution', 'linkStory')):?>
<?php echo html::a($this->createLink('execution', 'linkStory', "execution=$execution->id"), "<i class='icon icon-link'></i> " . $lang->execution->linkStory, '', "class='btn btn-info'");?>
<?php endif;?>
</p>
</div>
<?php else:?>
<form class='main-table table-story skip-iframe-modal' method='post' id='projectStoryForm'>
<form class='main-table table-story skip-iframe-modal' method='post' id='executionStoryForm'>
<div class="table-header fixed-right">
<nav class="btn-toolbar pull-right"></nav>
</div>
@@ -118,12 +118,12 @@
$canBatchEdit = common::hasPriv('story', 'batchEdit');
$canBatchClose = common::hasPriv('story', 'batchClose');
$canBatchChangeStage = common::hasPriv('story', 'batchChangeStage');
$canBatchUnlink = common::hasPriv('project', 'batchUnlinkStory');
$canBatchUnlink = common::hasPriv('execution', 'batchUnlinkStory');
$canBatchToTask = common::hasPriv('story', 'batchToTask');
$canBatchAction = ($canBeChanged and ($canBatchEdit or $canBatchClose or $canBatchChangeStage or $canBatchUnlink or $canBatchToTask));
?>
<?php $vars = "projectID={$project->id}&orderBy=%s&type=$type&param=$param&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
<?php $vars = "executionID={$execution->id}&orderBy=%s&type=$type&param=$param&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
<th class='c-id {sorter:false}'>
<?php if($canBatchAction):?>
<div class="checkbox-primary check-all" title="<?php echo $lang->selectAll?>">
@@ -133,10 +133,10 @@
<?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?>
</th>
<?php if($canOrder):?>
<th class='w-60px c-sort {sorter:false}'> <?php common::printOrderLink('order', $orderBy, $vars, $lang->project->orderAB);?></th>
<th class='w-60px c-sort {sorter:false}'> <?php common::printOrderLink('order', $orderBy, $vars, $lang->execution->orderAB);?></th>
<?php endif;?>
<th class='c-pri {sorter:false}'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
<th class='c-name {sorter:false}'> <?php common::printOrderLink('title', $orderBy, $vars, $lang->project->storyTitle);?></th>
<th class='c-name {sorter:false}'> <?php common::printOrderLink('title', $orderBy, $vars, $lang->execution->storyTitle);?></th>
<th class='c-user {sorter:false}'> <?php common::printOrderLink('openedBy', $orderBy, $vars, $lang->openedByAB);?></th>
<th class='c-user {sorter:false}'> <?php common::printOrderLink('assignedTo', $orderBy, $vars, $lang->assignedToAB);?></th>
<th class='c-estimate w-80px {sorter:false}'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
@@ -151,13 +151,13 @@
<tbody id='storyTableList' class='sortable'>
<?php foreach($stories as $key => $story):?>
<?php
$storyLink = $this->createLink('story', 'view', "storyID=$story->id&version=$story->version&param=$project->id");
$storyLink = $this->createLink('story', 'view', "storyID=$story->id&version=$story->version&param=$execution->id");
$totalEstimate += $story->estimate;
?>
<tr id="story<?php echo $story->id;?>" data-id='<?php echo $story->id;?>' data-order='<?php echo $story->order ?>' data-estimate='<?php echo $story->estimate?>' data-cases='<?php echo zget($storyCases, $story->id, 0)?>'>
<td class='cell-id'>
<?php if($canBatchAction):?>
<?php echo html::checkbox('storyIdList', array($story->id => '')) . html::a(helper::createLink('story', 'view', "storyID=$story->id&version=$story->version&from=project&param=$project->id"), sprintf('%03d', $story->id), null, "data-group='project'");?>
<?php echo html::checkbox('storyIdList', array($story->id => '')) . html::a(helper::createLink('story', 'view', "storyID=$story->id&version=$story->version&from=execution&param=$execution->id"), sprintf('%03d', $story->id), null, "data-group='execution'");?>
<?php else:?>
<?php printf('%03d', $story->id);?>
<?php endif;?>
@@ -169,7 +169,7 @@
<td class='c-name' title="<?php echo $story->title?>">
<?php if(isset($branchGroups[$story->product][$story->branch])) echo "<span class='label label-outline label-badge'>" . $branchGroups[$story->product][$story->branch] . '</span>';?>
<?php if($story->parent > 0) echo "<span class='label'>{$lang->story->childrenAB}</span>";?>
<?php echo html::a($storyLink,$story->title, null, "style='color: $story->color' data-group='project'");?>
<?php echo html::a($storyLink,$story->title, null, "style='color: $story->color' data-group='execution'");?>
</td>
<td class='c-user' title='<?php echo zget($users, $story->openedBy);?>'><?php echo zget($users, $story->openedBy);?></td>
<td class='c-user' title='<?php echo zget($users, $story->assignedTo);?>'><?php echo zget($users, $story->assignedTo);?></td>
@@ -181,48 +181,48 @@
<td class='c-stage'><?php echo $lang->story->stageList[$story->stage];?></td>
<td class='linkbox'>
<?php
$tasksLink = $this->createLink('story', 'tasks', "storyID=$story->id&projectID=$project->id");
$tasksLink = $this->createLink('story', 'tasks', "storyID=$story->id&executionID=$execution->id");
$storyTasks[$story->id] > 0 ? print(html::a($tasksLink, $storyTasks[$story->id], '', 'class="iframe"')) : print(0);
?>
<td>
<?php
$bugsLink = $this->createLink('story', 'bugs', "storyID=$story->id&projectID=$project->id");
$bugsLink = $this->createLink('story', 'bugs', "storyID=$story->id&executionID=$execution->id");
$storyBugs[$story->id] > 0 ? print(html::a($bugsLink, $storyBugs[$story->id], '', 'class="iframe"')) : print(0);
?>
</td>
<td>
<?php
$casesLink = $this->createLink('story', 'cases', "storyID=$story->id&projectID=$project->id");
$casesLink = $this->createLink('story', 'cases', "storyID=$story->id&executionID=$execution->id");
$storyCases[$story->id] > 0 ? print(html::a($casesLink, $storyCases[$story->id], '', 'class="iframe"')) : print(0);
?>
</td>
<td class='c-actions'>
<?php
$hasDBPriv = common::hasDBPriv($project, 'project');
$hasDBPriv = common::hasDBPriv($execution, 'execution');
if($canBeChanged)
{
$param = "projectID={$project->id}&story={$story->id}&moduleID={$story->module}";
$param = "executionID={$execution->id}&story={$story->id}&moduleID={$story->module}";
$lang->task->create = $lang->project->wbs;
$lang->task->create = $lang->execution->wbs;
if(commonModel::isTutorialMode())
{
$wizardParams = helper::safe64Encode($param);
echo html::a($this->createLink('tutorial', 'wizard', "module=task&method=create&params=$wizardParams"), "<i class='icon-plus'></i>",'', "class='btn btn-task-create' title='{$lang->project->wbs}'");
echo html::a($this->createLink('tutorial', 'wizard', "module=task&method=create&params=$wizardParams"), "<i class='icon-plus'></i>",'', "class='btn btn-task-create' title='{$lang->execution->wbs}'");
}
else
{
if($hasDBPriv) common::printIcon('task', 'create', $param, '', 'list', 'plus', '', 'btn-task-create');
}
$lang->task->batchCreate = $lang->project->batchWBS;
if($hasDBPriv) common::printIcon('task', 'batchCreate', "projectID={$project->id}&story={$story->id}", '', 'list', 'pluses');
$lang->task->batchCreate = $lang->execution->batchWBS;
if($hasDBPriv) common::printIcon('task', 'batchCreate', "executionID={$execution->id}&story={$story->id}", '', 'list', 'pluses');
$lang->testcase->batchCreate = $lang->testcase->create;
if($productID && $hasDBPriv) common::printIcon('testcase', 'batchCreate', "productID=$story->product&branch=$story->branch&moduleID=$story->module&storyID=$story->id", '', 'list', 'sitemap');
if($canBeChanged and common::hasPriv('project', 'unlinkStory', $project))
if($canBeChanged and common::hasPriv('execution', 'unlinkStory', $execution))
{
common::printIcon('project', 'unlinkStory', "projectID=$project->id&storyID=$story->id&confirm=no", '', 'list', 'unlink', 'hiddenwin');
common::printIcon('execution', 'unlinkStory', "executionID=$execution->id&storyID=$story->id&confirm=no", '', 'list', 'unlink', 'hiddenwin');
}
}
?>
@@ -239,7 +239,7 @@
<div class='btn-group dropup'>
<?php
$disabled = $canBatchEdit ? '' : "disabled='disabled'";
$actionLink = $this->createLink('story', 'batchEdit', "productID=0&projectID=$project->id");
$actionLink = $this->createLink('story', 'batchEdit', "productID=0&executionID=$execution->id");
echo html::commonButton($lang->edit, "data-form-action='$actionLink' $disabled");
?>
<button type='button' class='btn dropdown-toggle' data-toggle='dropdown'><span class='caret'></span></button>
@@ -253,7 +253,7 @@
<?php
if($canBatchClose)
{
$actionLink = $this->createLink('story', 'batchClose', "productID=0&projectID=$project->id");
$actionLink = $this->createLink('story', 'batchClose', "productID=0&executionID=$execution->id");
echo html::commonButton($lang->close, "data-form-action='$actionLink'");
}
?>
@@ -266,7 +266,7 @@
foreach($lang->story->stageList as $key => $stage)
{
if(empty($key)) continue;
if(strpos('wait|planned|projected', $key) !== false) continue;
if(strpos('wait|planned|executioned', $key) !== false) continue;
$actionLink = $this->createLink('story', 'batchChangeStage', "stage=$key");
echo "<li>" . html::a('#', $stage, '', "onclick=\"setFormAction('$actionLink', 'hiddenwin')\"") . "</li>";
}
@@ -275,10 +275,10 @@
</div>
<?php endif;?>
<?php
if(common::hasPriv('project', 'batchUnlinkStory'))
if(common::hasPriv('execution', 'batchUnlinkStory'))
{
$actionLink = $this->createLink('project', 'batchUnlinkStory', "projectID=$project->id");
echo html::commonButton($lang->project->unlinkStoryAB, "data-form-action='$actionLink'");
$actionLink = $this->createLink('execution', 'batchUnlinkStory', "executionID=$execution->id");
echo html::commonButton($lang->execution->unlinkStoryAB, "data-form-action='$actionLink'");
}
?>
</div>
@@ -295,12 +295,12 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="icon icon-close"></i></button>
<h4 class="modal-title"><?php echo $lang->project->linkStoryByPlan;?></h4><?php echo '(' . $lang->project->linkStoryByPlanTips . ')';?>
<h4 class="modal-title"><?php echo $lang->execution->linkStoryByPlan;?></h4><?php echo '(' . $lang->execution->linkStoryByPlanTips . ')';?>
</div>
<div class="modal-body">
<div class='input-group'>
<?php echo html::select('plan', $allPlans, '', "class='form-control chosen' id='plan'");?>
<span class='input-group-btn'><?php echo html::commonButton($lang->project->linkStory, "id='toTaskButton'", 'btn btn-primary');?></span>
<span class='input-group-btn'><?php echo html::commonButton($lang->execution->linkStory, "id='toTaskButton'", 'btn btn-primary');?></span>
</div>
</div>
</div>
@@ -315,7 +315,7 @@
<h4 class="modal-title"><?php echo $lang->story->batchToTask;?></h4>
</div>
<div class="modal-body">
<form method='post' class='form-ajax' action='<?php echo $this->createLink('story', 'batchToTask', "projectID=$project->id");?>'>
<form method='post' class='form-ajax' action='<?php echo $this->createLink('story', 'batchToTask', "executionID=$execution->id");?>'>
<table class='table table-form'>
<tr>
<th class="<?php echo strpos($this->app->getClientLang(), 'zh') === false ? 'w-140px' : 'w-80px';?>"><?php echo $lang->task->type?></th>
@@ -349,7 +349,7 @@
</div>
</div>
<?php js::set('checkedSummary', $lang->product->checkedSummary);?>
<?php js::set('projectID', $project->id);?>
<?php js::set('executionID', $execution->id);?>
<?php js::set('orderBy', $orderBy)?>
<script>
$(function()
@@ -357,7 +357,7 @@ $(function()
// Update table summary text
<?php $storyCommon = $lang->SRCommon;?>
var checkedSummary = '<?php echo str_replace('%storyCommon%', $storyCommon, $lang->product->checkedSummary)?>';
$('#projectStoryForm').table(
$('#executionStoryForm').table(
{
statisticCreator: function(table)
{

View File

@@ -1,47 +1,47 @@
<?php
/**
* The kanban view file of project module of ZenTaoPMS.
* The kanban view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2012 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @author Wang Yidong, Zhu Jinyong
* @package project
* @package execution
* @version $Id: kanban.html.php $
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php js::set('confirmUnlinkStory', $lang->project->confirmUnlinkStory)?>
<?php js::set('confirmUnlinkStory', $lang->execution->confirmUnlinkStory)?>
<?php js::set('canBeChanged', $canBeChanged)?>
<div id="mainMenu" class="clearfix">
<div class="btn-toolbar pull-left">
<?php $total = 0;?>
<?php foreach($stories as $colStories) $total += count($colStories);?>
<?php if(common::hasPriv('project', 'story')) echo html::a($this->createLink('project', 'story', "projectID=$project->id"), "<span class='text'>{$lang->story->allStories}</span>", '', "class='btn btn-link'");?>
<?php if(common::hasPriv('project', 'storykanban')) echo html::a($this->createLink('project', 'storykanban', "projectID=$project->id"), "<span class='text'>{$lang->project->kanban}</span> <span class='label label-light label-badge'>{$total}</span>", '', "class='btn btn-link btn-active-text'");?>
<?php if(common::hasPriv('execution', 'story')) echo html::a($this->createLink('execution', 'story', "executionID=$execution->id"), "<span class='text'>{$lang->story->allStories}</span>", '', "class='btn btn-link'");?>
<?php if(common::hasPriv('execution', 'storykanban')) echo html::a($this->createLink('execution', 'storykanban', "executionID=$execution->id"), "<span class='text'>{$lang->execution->kanban}</span> <span class='label label-light label-badge'>{$total}</span>", '', "class='btn btn-link btn-active-text'");?>
</div>
<div class="btn-toolbar pull-right">
<div class='btn-group'>
<?php
common::printIcon('story', 'export', "productID=$productID&orderBy=id_desc", '', 'button', '', '', 'export', '', "data-group='project'");
common::printIcon('story', 'export', "productID=$productID&orderBy=id_desc", '', 'button', '', '', 'export', '', "data-group='execution'");
if($canBeChanged)
{
if(commonModel::isTutorialMode())
{
$wizardParams = helper::safe64Encode("project=$project->id");
echo html::a($this->createLink('tutorial', 'wizard', "module=project&method=linkStory&params=$wizardParams"), "<i class='icon-link'></i> {$lang->project->linkStory}",'', "class='btn btn-link link-story-btn'");
$wizardParams = helper::safe64Encode("execution=$execution->id");
echo html::a($this->createLink('tutorial', 'wizard', "module=execution&method=linkStory&params=$wizardParams"), "<i class='icon-link'></i> {$lang->execution->linkStory}",'', "class='btn btn-link link-story-btn'");
}
else
{
common::printIcon('project', 'linkStory', "project=$project->id", '', 'button', 'link', '', 'btn-link link-story-btn');
common::printIcon('execution', 'linkStory', "execution=$execution->id", '', 'button', 'link', '', 'btn-link link-story-btn');
}
}
?>
</div>
<?php if($canBeChanged and $productID and !$this->loadModel('story')->checkForceReview()) common::printLink('story', 'create', "productID=$productID&branch=&moduleID=0&story=0&project=$project->id", "<i class='icon icon-plus'></i> " . $lang->project->createStory, '', "class='btn btn-primary' class='btn btn-link export' data-group='project'");?>
<?php if($canBeChanged and $productID and !$this->loadModel('story')->checkForceReview()) common::printLink('story', 'create', "productID=$productID&branch=&moduleID=0&story=0&execution=$execution->id", "<i class='icon icon-plus'></i> " . $lang->execution->createStory, '', "class='btn btn-primary' class='btn btn-link export' data-group='execution'");?>
</div>
</div>
<?php
$cols = array('projected', 'developing', 'developed', 'testing', 'tested', 'verified', 'released');
$cols = array('executioned', 'developing', 'developed', 'testing', 'tested', 'verified', 'released');
$account = $this->app->user->account;
?>
<div id="kanban" class="main-table" data-ride="table" data-checkable="false" data-group="true">
@@ -49,8 +49,8 @@ $account = $this->app->user->account;
<div class="table-empty-tip">
<p>
<span class="text-muted"><?php echo $lang->story->noStory;?></span>
<?php if($canBeChanged and common::hasPriv('project', 'linkStory')):?>
<?php echo html::a($this->createLink('project', 'linkStory', "project=$project->id"), "<i class='icon icon-link'></i> " . $lang->project->linkStory, '', "class='btn btn-info'");?>
<?php if($canBeChanged and common::hasPriv('execution', 'linkStory')):?>
<?php echo html::a($this->createLink('execution', 'linkStory', "execution=$execution->id"), "<i class='icon icon-link'></i> " . $lang->execution->linkStory, '', "class='btn btn-info'");?>
<?php endif;?>
</p>
</div>
@@ -77,8 +77,8 @@ $account = $this->app->user->account;
<div class='info'>
<span class='label-pri label-pri-<?php echo $story->pri?>' title='<?php echo $lang->story->pri?>'><?php echo zget($lang->story->priList, $story->pri);?></span>
<span class='status status-story status-<?php echo $story->status;?>' title='<?php echo $lang->story->status?>'><span class="label label-dot"></span> <?php echo $lang->story->statusList[$story->status];?></span>
<?php if($canBeChanged and common::hasPriv('project', 'unlinkStory')):?>
<div class='pull-right'><?php echo html::a($this->createLink('project', 'unlinkStory', "projectID=$projectID&story=$story->id"), "<i class='icon icon-unlink icon-sm'></i>", 'hiddenwin', "title='{$lang->project->unlinkStory}'");?></div>
<?php if($canBeChanged and common::hasPriv('execution', 'unlinkStory')):?>
<div class='pull-right'><?php echo html::a($this->createLink('execution', 'unlinkStory', "executionID=$executionID&story=$story->id"), "<i class='icon icon-unlink icon-sm'></i>", 'hiddenwin', "title='{$lang->execution->unlinkStory}'");?></div>
<?php endif;?>
<div class='pull-right text-muted story-estimate' title='<?php echo $lang->story->estimate?>'><?php echo $story->estimate . "$config->hourUnit ";?></div>
</div>
@@ -95,5 +95,5 @@ $account = $this->app->user->account;
</table>
<?php endif;?>
</div>
<?php js::set('projectID', $projectID);?>
<?php js::set('executionID', $executionID);?>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The suspend file of project module of ZenTaoPMS.
* The suspend file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang<wwccss@gmail.com>
* @package project
* @package execution
* @version $Id: suspend.html.php 935 2013-01-16 07:49:24Z wwccss@gmail.com $
* @link http://www.zentao.net
*/
@@ -15,20 +15,20 @@
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2>
<span class='prefix label-id'><strong><?php echo $project->id;?></strong></span>
<?php echo isonlybody() ? ("<span title='$project->name'>" . $project->name . '</span>') : html::a($this->createLink('project', 'view', 'project=' . $project->id), $project->name, '_blank');?>
<span class='prefix label-id'><strong><?php echo $execution->id;?></strong></span>
<?php echo isonlybody() ? ("<span title='$execution->name'>" . $execution->name . '</span>') : html::a($this->createLink('execution', 'view', 'execution=' . $execution->id), $execution->name, '_blank');?>
<?php if(!isonlybody()):?>
<small><?php echo $lang->arrow . $lang->project->suspend;?></small>
<small><?php echo $lang->arrow . $lang->execution->suspend;?></small>
<?php endif;?>
</h2>
</div>
<form class='load-indicator main-form' method='post' target='hiddenwin'>
<table class='table table-form'>
<tr class='hide'>
<th><?php echo $lang->project->status;?></th>
<th><?php echo $lang->execution->status;?></th>
<td><?php echo html::hidden('status', 'suspended');?></td>
</tr>
<?php $this->printExtendFields($project, 'table');?>
<?php $this->printExtendFields($execution, 'table');?>
<tr>
<th class='w-50px'><?php echo $lang->comment;?></th>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control kindeditor' hidefocus='true'");?></td>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The task view file of project module of ZenTaoPMS.
* The task view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: task.html.php 4894 2013-06-25 01:28:39Z wyd621@gmail.com $
* @link http://www.zentao.net
*/
@@ -21,11 +21,11 @@ js::set('executionID', $executionID);
js::set('browseType', $browseType);
/* Set unfold parent taskID. */
$unfoldTasks = isset($config->project->task->unfoldTasks) ? json_decode($config->project->task->unfoldTasks, true) : array();
$unfoldTasks = isset($config->execution->task->unfoldTasks) ? json_decode($config->execution->task->unfoldTasks, true) : array();
$unfoldTasks = zget($unfoldTasks, $executionID, array());
js::set('unfoldTasks', $unfoldTasks);
js::set('unfoldAll', $lang->project->treeLevel['all']);
js::set('foldAll', $lang->project->treeLevel['root']);
js::set('unfoldAll', $lang->execution->treeLevel['all']);
js::set('foldAll', $lang->execution->treeLevel['root']);
?>
<div id="mainMenu" class="clearfix">
<div id="sidebarHeader">
@@ -55,14 +55,14 @@ js::set('foldAll', $lang->project->treeLevel['root']);
</div>
<div class="btn-toolbar pull-left">
<?php
foreach(customModel::getFeatureMenu('project', 'task') as $menuItem)
foreach(customModel::getFeatureMenu('execution', 'task') as $menuItem)
{
if($execution->type == 'ops' && $menuItem->name == 'needconfirm') continue;
if(isset($menuItem->hidden)) continue;
$menuType = $menuItem->name;
if($menuType == 'QUERY')
{
$searchBrowseLink = $this->createLink('project', 'task', "project=$executionID&type=bySearch&param=%s");
$searchBrowseLink = $this->createLink('execution', 'task', "execution=$executionID&type=bySearch&param=%s");
$isBySearch = $this->session->taskBrowseType == 'bysearch';
include '../../common/view/querymenu.html.php';
}
@@ -72,7 +72,7 @@ js::set('foldAll', $lang->project->treeLevel['root']);
$label .= $menuType == $this->session->taskBrowseType ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>" : '';
$active = $menuType == $this->session->taskBrowseType ? 'btn-active-text' : '';
$title = $menuType == 'needconfirm' ? "title='{$lang->task->storyChange}'" : '';
echo html::a(inlink('task', "project=$executionID&type=$menuType"), $label, '', "id='{$menuType}' class='btn btn-link $active' $title");
echo html::a(inlink('task', "execution=$executionID&type=$menuType"), $label, '', "id='{$menuType}' class='btn btn-link $active' $title");
}
elseif($menuType == 'status')
{
@@ -80,18 +80,18 @@ js::set('foldAll', $lang->project->treeLevel['root']);
$taskBrowseType = isset($status) ? $this->session->taskBrowseType : '';
$current = $menuItem->text;
$active = '';
if(isset($lang->project->statusSelects[$taskBrowseType]))
if(isset($lang->execution->statusSelects[$taskBrowseType]))
{
$current = "<span class='text'>{$lang->project->statusSelects[$taskBrowseType]}</span> <span class='label label-light label-badge'>{$pager->recTotal}</span>";
$current = "<span class='text'>{$lang->execution->statusSelects[$taskBrowseType]}</span> <span class='label label-light label-badge'>{$pager->recTotal}</span>";
$active = 'btn-active-text';
}
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown' class='btn btn-link $active'");
echo "<ul class='dropdown-menu'>";
foreach($lang->project->statusSelects as $key => $value)
foreach($lang->execution->statusSelects as $key => $value)
{
if($key == '') continue;
echo '<li' . ($key == $taskBrowseType ? " class='active'" : '') . '>';
echo html::a($this->createLink('project', 'task', "project=$executionID&type=$key"), $value);
echo html::a($this->createLink('execution', 'task', "execution=$executionID&type=$key"), $value);
}
echo '</ul></div>';
}
@@ -103,7 +103,7 @@ js::set('foldAll', $lang->project->treeLevel['root']);
<?php
if(!isset($browseType)) $browseType = '';
if(!isset($orderBy)) $orderBy = '';
common::printIcon('task', 'report', "project=$executionID&browseType=$browseType", '', 'button', 'bar-chart muted');
common::printIcon('task', 'report', "execution=$executionID&browseType=$browseType", '', 'button', 'bar-chart muted');
?>
<div class="btn-group dropdown-hover">
@@ -112,53 +112,53 @@ js::set('foldAll', $lang->project->treeLevel['root']);
<?php
$class = common::hasPriv('task', 'export') ? '' : "class=disabled";
$misc = common::hasPriv('task', 'export') ? "class='export'" : "class=disabled";
$link = common::hasPriv('task', 'export') ? $this->createLink('task', 'export', "project=$executionID&orderBy=$orderBy&type=$browseType") : '#';
$link = common::hasPriv('task', 'export') ? $this->createLink('task', 'export', "execution=$executionID&orderBy=$orderBy&type=$browseType") : '#';
echo "<li $class>" . html::a($link, $lang->task->export, '', $misc) . "</li>";
?>
</ul>
</div>
<?php if(common::canModify('project', $execution)):?>
<?php if(common::canModify('execution', $execution)):?>
<div class="btn-group dropdown-hover">
<button class="btn btn-link" data-toggle="dropdown"><i class="icon icon-import muted"></i> <span class="text"><?php echo $lang->import;?></span> <span class="caret"></span></button>
<ul class="dropdown-menu pull-right" id='importActionMenu'>
<?php
$class = common::hasPriv('project', 'importTask') ? '' : "class=disabled";
$misc = common::hasPriv('project', 'importTask') ? "class='import'" : "class=disabled";
$link = common::hasPriv('project', 'importTask') ? $this->createLink('project', 'importTask', "project=$execution->id") : '#';
echo "<li $class>" . html::a($link, $lang->project->importTask, '', $misc) . "</li>";
$class = common::hasPriv('execution', 'importTask') ? '' : "class=disabled";
$misc = common::hasPriv('execution', 'importTask') ? "class='import'" : "class=disabled";
$link = common::hasPriv('execution', 'importTask') ? $this->createLink('execution', 'importTask', "execution=$execution->id") : '#';
echo "<li $class>" . html::a($link, $lang->execution->importTask, '', $misc) . "</li>";
$class = common::hasPriv('project', 'importBug') ? '' : "class=disabled";
$misc = common::hasPriv('project', 'importBug') ? "class='import'" : "class=disabled";
$link = common::hasPriv('project', 'importBug') ? $this->createLink('project', 'importBug', "project=$execution->id") : '#';
echo "<li $class>" . html::a($link, $lang->project->importBug, '', $misc) . "</li>";
$class = common::hasPriv('execution', 'importBug') ? '' : "class=disabled";
$misc = common::hasPriv('execution', 'importBug') ? "class='import'" : "class=disabled";
$link = common::hasPriv('execution', 'importBug') ? $this->createLink('execution', 'importBug', "execution=$execution->id") : '#';
echo "<li $class>" . html::a($link, $lang->execution->importBug, '', $misc) . "</li>";
?>
</ul>
</div>
<?php endif;?>
<?php
$checkObject = new stdclass();
$checkObject->project = $executionID;
$checkObject->execution = $executionID;
?>
<?php if(!common::checkNotCN()):?>
<?php
$link = $this->createLink('task', 'batchCreate', "project=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : ''));
$link = $this->createLink('task', 'batchCreate', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : ''));
if($canBeChanged and common::hasPriv('task', 'batchCreate', $checkObject)) echo html::a($link, "<i class='icon icon-plus'></i> {$lang->task->batchCreate}", '', "class='btn btn btn-secondary'");
$link = $this->createLink('task', 'create', "project=$executionID" . (isset($moduleID) ? "&storyID=0&moduleID=$moduleID" : ""));
$link = $this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=0&moduleID=$moduleID" : ""));
if($canBeChanged and common::hasPriv('task', 'create', $checkObject)) echo html::a($link, "<i class='icon icon-plus'></i> {$lang->task->create}", '', "class='btn btn-primary'");
?>
<?php else:?>
<?php
echo "<div class='btn-group dropdown-hover'>";
$link = $this->createLink('task', 'create', "project=$executionID" . (isset($moduleID) ? "&storyID=0&moduleID=$moduleID" : ""));
$link = $this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=0&moduleID=$moduleID" : ""));
if($canBeChanged and common::hasPriv('task', 'create', $checkObject)) echo html::a($link, "<i class='icon icon-plus'></i> {$lang->task->create} </span><span class='caret'>", '', "class='btn btn-primary'");
?>
<ul class='dropdown-menu'>
<?php $disabled = common::hasPriv('task', 'batchCreate') ? '' : "class='disabled'";?>
<li <?php echo $disabled?>>
<?php
$batchLink = $this->createLink('task', 'batchCreate', "project=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : ''));
$batchLink = $this->createLink('task', 'batchCreate', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : ''));
echo "<li>" . html::a($batchLink, "<i class='icon icon-plus'></i>" . $lang->task->batchCreate) . "</li>";
?>
</li>
@@ -185,12 +185,12 @@ js::set('foldAll', $lang->project->treeLevel['root']);
<p>
<span class="text-muted"><?php echo $lang->task->noTask;?></span>
<?php if($canBeChanged and common::hasPriv('task', 'create')):?>
<?php echo html::a($this->createLink('task', 'create', "project=$executionID" . (isset($moduleID) ? "&storyID=0&moduleID=$moduleID" : "")), "<i class='icon icon-plus'></i> " . $lang->task->create, '', "class='btn btn-info'");?>
<?php echo html::a($this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=0&moduleID=$moduleID" : "")), "<i class='icon icon-plus'></i> " . $lang->task->create, '', "class='btn btn-info'");?>
<?php endif;?>
</p>
</div>
<?php else:?>
<form class="main-table table-task skip-iframe-modal" method="post" id='projectTaskForm'>
<form class="main-table table-task skip-iframe-modal" method="post" id='executionTaskForm'>
<div class="table-header fixed-right">
<nav class="btn-toolbar pull-right"></nav>
</div>
@@ -201,7 +201,7 @@ js::set('foldAll', $lang->project->treeLevel['root']);
if($useDatatable) include '../../common/view/datatable.html.php';
$customFields = $this->datatable->getSetting('project');
$customFields = $this->datatable->getSetting('execution');
if($execution->type == 'ops')
{
foreach($customFields as $id => $customField)
@@ -358,9 +358,9 @@ js::set('foldAll', $lang->project->treeLevel['root']);
$(function()
{
// Update table summary text
var checkedSummary = '<?php echo $lang->project->checkedSummary?>';
var pageSummary = '<?php echo $lang->project->pageSummary?>';
$('#projectTaskForm').table(
var checkedSummary = '<?php echo $lang->execution->checkedSummary?>';
var pageSummary = '<?php echo $lang->execution->pageSummary?>';
$('#executionTaskForm').table(
{
statisticCreator: function(table)
{

View File

@@ -6,7 +6,7 @@
{
echo '<div class="label-angle with-close">';
$product = $this->product->getById($productID);
$removeLink = $browseType == 'byproduct' ? inlink('task', "projectID=$projectID&browseType=$status&param=0&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("productBrowseParam")';
$removeLink = $browseType == 'byproduct' ? inlink('task', "executionID=$executionID&browseType=$status&param=0&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("productBrowseParam")';
echo '<i class="icon icon-cube"></i> ' . $product->name;
echo html::a($removeLink, "<span class='close'><i class='icon icon-close'></i></span>", '', "class='text-muted'");
}
@@ -14,7 +14,7 @@
{
echo '<div class="label-angle with-close">';
$module = $this->tree->getById($moduleID);
$removeLink = $browseType == 'bymodule' ? inlink('task', "projectID=$projectID&browseType=$status&param=0&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("moduleBrowseParam")';
$removeLink = $browseType == 'bymodule' ? inlink('task', "executionID=$executionID&browseType=$status&param=0&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("moduleBrowseParam")';
echo $module->name;
echo html::a($removeLink, "<span class='close'><i class='icon icon-close'></i></span>", '', "class='text-muted'");
}
@@ -26,60 +26,60 @@
}
echo "</div></li>";
foreach(customModel::getFeatureMenu('project', 'task') as $menuItem)
foreach(customModel::getFeatureMenu('execution', 'task') as $menuItem)
{
if($project->type == 'ops' && $menuItem->name == 'needconfirm') continue;
if($execution->type == 'ops' && $menuItem->name == 'needconfirm') continue;
if(isset($menuItem->hidden)) continue;
$menuType = $menuItem->name;
if(strpos($menuType, 'QUERY') === 0)
{
$queryID = (int)substr($menuType, 5);
echo "<li id='{$menuType}Tab'>" . html::a(inlink('task', "project=$projectID&type=bySearch&param=$queryID"), $menuItem->text) . '</li>' ;
echo "<li id='{$menuType}Tab'>" . html::a(inlink('task', "execution=$executionID&type=bySearch&param=$queryID"), $menuItem->text) . '</li>' ;
}
elseif($menuType != 'status')
{
echo "<li id='{$menuType}Tab'>" . html::a(inlink('task', "project=$projectID&type=$menuType"), $menuItem->text) . '</li>' ;
echo "<li id='{$menuType}Tab'>" . html::a(inlink('task', "execution=$executionID&type=$menuType"), $menuItem->text) . '</li>' ;
}
elseif($menuType == 'status')
{
echo "<li id='statusTab' class='dropdown'>";
$taskBrowseType = isset($status) ? $this->session->taskBrowseType : '';
$current = zget($lang->project->statusSelects, $taskBrowseType, '');
$current = zget($lang->execution->statusSelects, $taskBrowseType, '');
if(empty($current)) $current = $menuItem->text;
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown'");
echo "<ul class='dropdown-menu'>";
foreach ($lang->project->statusSelects as $key => $value)
foreach ($lang->execution->statusSelects as $key => $value)
{
if($key == '') continue;
echo '<li' . ($key == $taskBrowseType ? " class='active'" : '') . '>';
echo html::a($this->createLink('project', 'task', "project=$projectID&type=$key"), $value);
echo html::a($this->createLink('execution', 'task', "execution=$executionID&type=$key"), $value);
}
echo '</ul></li>';
}
}
echo "<li id='kanbanTab'>"; common::printLink('project', 'kanban', "projectID=$projectID", $lang->project->kanban); echo '</li>';
if($project->type == 'sprint' or $project->type == 'waterfall')
echo "<li id='kanbanTab'>"; common::printLink('execution', 'kanban', "executionID=$executionID", $lang->execution->kanban); echo '</li>';
if($execution->type == 'sprint' or $execution->type == 'waterfall')
{
echo "<li id='burnTab'>";
common::printLink('project', 'burn', "project=$projectID", $lang->project->burn);
common::printLink('execution', 'burn', "execution=$executionID", $lang->execution->burn);
echo '</li>';
}
echo "<li id='treeTab'>"; common::printLink('project', 'tree', "projectID=$projectID", $lang->project->tree); echo '</li>';
echo "<li id='treeTab'>"; common::printLink('execution', 'tree', "executionID=$executionID", $lang->execution->tree); echo '</li>';
echo "<li id='groupTab' class='dropdown'>";
$groupBy = isset($groupBy) ? $groupBy : '';
$current = zget($lang->project->groups, isset($groupBy) ? $groupBy : '', '');
$current = zget($lang->execution->groups, isset($groupBy) ? $groupBy : '', '');
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown'");
echo "<ul class='dropdown-menu'>";
foreach ($lang->project->groups as $key => $value)
foreach ($lang->execution->groups as $key => $value)
{
if($key == '') continue;
if($project->type == 'ops' && $key == 'story') continue;
if($execution->type == 'ops' && $key == 'story') continue;
echo '<li' . ($key == $groupBy ? " class='active'" : '') . '>';
common::printLink('project', 'groupTask', "project=$projectID&groupBy=$key", $value);
common::printLink('execution', 'groupTask', "execution=$executionID&groupBy=$key", $value);
}
echo '</ul></li>';
if($this->methodName === 'task') echo "<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i>&nbsp;{$lang->project->byQuery}</a></li> ";
if($this->methodName === 'task') echo "<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i>&nbsp;{$lang->execution->byQuery}</a></li> ";
?>
</ul>
<div class='actions'>
@@ -87,7 +87,7 @@
<?php
if(!isset($browseType)) $browseType = '';
if(!isset($orderBy)) $orderBy = '';
common::printIcon('task', 'report', "project=$projectID&browseType=$browseType");
common::printIcon('task', 'report', "execution=$executionID&browseType=$browseType");
?>
<div class='btn-group'>
@@ -98,7 +98,7 @@
<ul class='dropdown-menu' id='exportActionMenu'>
<?php
$misc = common::hasPriv('task', 'export') ? "class='export'" : "class=disabled";
$link = common::hasPriv('task', 'export') ? $this->createLink('task', 'export', "project=$projectID&orderBy=$orderBy&type=$browseType") : '#';
$link = common::hasPriv('task', 'export') ? $this->createLink('task', 'export', "execution=$executionID&orderBy=$orderBy&type=$browseType") : '#';
echo "<li>" . html::a($link, $lang->task->export, '', $misc) . "</li>";
?>
</ul>
@@ -111,13 +111,13 @@
</button>
<ul class='dropdown-menu' id='importActionMenu'>
<?php
$misc = common::hasPriv('project', 'importTask') ? '' : "class=disabled";
$link = common::hasPriv('project', 'importTask') ? $this->createLink('project', 'importTask', "project=$project->id") : '#';
echo "<li>" . html::a($link, $lang->project->importTask, '', $misc) . "</li>";
$misc = common::hasPriv('execution', 'importTask') ? '' : "class=disabled";
$link = common::hasPriv('execution', 'importTask') ? $this->createLink('execution', 'importTask', "execution=$execution->id") : '#';
echo "<li>" . html::a($link, $lang->execution->importTask, '', $misc) . "</li>";
$misc = common::hasPriv('project', 'importBug') ? '' : "class=disabled";
$link = common::hasPriv('project', 'importBug') ? $this->createLink('project', 'importBug', "project=$project->id") : '#';
echo "<li>" . html::a($link, $lang->project->importBug, '', $misc) . "</li>";
$misc = common::hasPriv('execution', 'importBug') ? '' : "class=disabled";
$link = common::hasPriv('execution', 'importBug') ? $this->createLink('execution', 'importBug', "execution=$execution->id") : '#';
echo "<li>" . html::a($link, $lang->execution->importBug, '', $misc) . "</li>";
?>
</ul>
</div>
@@ -126,13 +126,13 @@
<div class='btn-group' id='createActionMenu'>
<?php
$checkObject = new stdclass();
$checkObject->project = $projectID;
$checkObject->execution = $executionID;
$misc = common::hasPriv('task', 'create', $checkObject) ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
$link = common::hasPriv('task', 'create', $checkObject) ? $this->createLink('task', 'create', "project=$projectID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')) : '#';
$link = common::hasPriv('task', 'create', $checkObject) ? $this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')) : '#';
echo html::a($link, "<i class='icon icon-plus'></i>" . $lang->task->create, '', $misc);
$misc = common::hasPriv('task', 'batchCreate', $checkObject) ? '' : "disabled";
$link = common::hasPriv('task', 'batchCreate', $checkObject) ? $this->createLink('task', 'batchCreate', "project=$projectID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')) : '#';
$link = common::hasPriv('task', 'batchCreate', $checkObject) ? $this->createLink('task', 'batchCreate', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')) : '#';
?>
<button type='button' class='btn btn-primary dropdown-toggle <?php echo $misc?>' data-toggle='dropdown'><span class='caret'></span></button>
<ul class='dropdown-menu pull-right'>

View File

@@ -1,20 +1,20 @@
<?php
/**
* The team view file of project module of ZenTaoPMS.
* The team view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: team.html.php 4143 2013-01-18 07:01:06Z wyd621@gmail.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php js::set('confirmUnlinkMember', $lang->project->confirmUnlinkMember)?>
<?php js::set('confirmUnlinkMember', $lang->execution->confirmUnlinkMember)?>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<span class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->project->team;?></span></span>
<span class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->execution->team;?></span></span>
</div>
<div class='btn-toolbar pull-right'>
<?php
@@ -22,12 +22,12 @@
{
if(commonModel::isTutorialMode())
{
$wizardParams = helper::safe64Encode("projectID=$project->id");
echo html::a($this->createLink('tutorial', 'wizard', "module=project&method=manageMembers&params=$wizardParams"), "<i class='icon icon-persons'></i> " . $lang->project->manageMembers, '', "class='btn btn-primary manage-team-btn'");
$wizardParams = helper::safe64Encode("executionID=$execution->id");
echo html::a($this->createLink('tutorial', 'wizard', "module=execution&method=manageMembers&params=$wizardParams"), "<i class='icon icon-persons'></i> " . $lang->execution->manageMembers, '', "class='btn btn-primary manage-team-btn'");
}
else
{
if(!empty($app->user->admin) or empty($app->user->rights['rights']['my']['limited'])) common::printLink('project', 'manageMembers', "projectID=$project->id", "<i class='icon icon-persons'></i> " . $lang->project->manageMembers, '', "class='btn btn-primary manage-team-btn'");
if(!empty($app->user->admin) or empty($app->user->rights['rights']['my']['limited'])) common::printLink('execution', 'manageMembers', "executionID=$execution->id", "<i class='icon icon-persons'></i> " . $lang->execution->manageMembers, '', "class='btn btn-primary manage-team-btn'");
}
}
?>
@@ -37,9 +37,9 @@
<?php if(empty($teamMembers)):?>
<div class="table-empty-tip">
<p>
<span class="text-muted"><?php echo $lang->project->noMembers;?></span>
<?php if((!empty($app->user->admin) or empty($app->user->rights['rights']['my']['limited'])) && common::hasPriv('project', 'manageMembers')):?>
<?php echo html::a($this->createLink('project', 'manageMembers', "projectID=$project->id"), "<i class='icon icon-persons'></i> " . $lang->project->manageMembers, '', "class='btn btn-info'");?>
<span class="text-muted"><?php echo $lang->execution->noMembers;?></span>
<?php if((!empty($app->user->admin) or empty($app->user->rights['rights']['my']['limited'])) && common::hasPriv('execution', 'manageMembers')):?>
<?php echo html::a($this->createLink('execution', 'manageMembers', "executionID=$execution->id"), "<i class='icon icon-persons'></i> " . $lang->execution->manageMembers, '', "class='btn btn-info'");?>
<?php endif;?>
</p>
</div>
@@ -73,17 +73,17 @@
</td>
<td title='<?php echo $member->role;?>'><?php echo $member->role;?></td>
<td><?php echo $member->join;?></td>
<td><?php echo $member->days . $lang->project->day;?></td>
<td><?php echo $member->hours . $lang->project->workHour;?></td>
<td><?php echo $memberHours . $lang->project->workHour;?></td>
<td><?php echo $member->days . $lang->execution->day;?></td>
<td><?php echo $member->hours . $lang->execution->workHour;?></td>
<td><?php echo $memberHours . $lang->execution->workHour;?></td>
<td class="text-center"><?php echo $lang->team->limitedList[$member->limited];?></td>
<?php if($canBeChanged):?>
<td class='c-actions text-center'>
<?php
if (common::hasPriv('project', 'unlinkMember', $member))
if (common::hasPriv('execution', 'unlinkMember', $member))
{
$unlinkURL = $this->createLink('project', 'unlinkMember', "projectID=$project->id&userID=$member->userID&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\", \"mainContent\", confirmUnlinkMember)", '<i class="icon-green-project-unlinkMember icon-unlink"></i>', '', "class='btn' title='{$lang->project->unlinkMember}'");
$unlinkURL = $this->createLink('execution', 'unlinkMember', "executionID=$execution->id&userID=$member->userID&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\", \"mainContent\", confirmUnlinkMember)", '<i class="icon-green-execution-unlinkMember icon-unlink"></i>', '', "class='btn' title='{$lang->execution->unlinkMember}'");
}
?>
</td>
@@ -93,7 +93,7 @@
</tbody>
</table>
<div class='table-footer'>
<div class='table-statistic'><?php echo $lang->team->totalHours . '' . "<strong>$totalHours{$lang->project->workHour}</strong>";?></div>
<div class='table-statistic'><?php echo $lang->team->totalHours . '' . "<strong>$totalHours{$lang->execution->workHour}</strong>";?></div>
</div>
</form>
<?php endif;?>

View File

@@ -28,9 +28,9 @@
</a>
</div>
<div class="btn-toolbar pull-right">
<?php if(common::canModify('project', $project)):?>
<?php common::printIcon('testreport', 'browse', "objectID=$projectID&objectType=project", '', 'button','flag muted');?>
<?php common::printLink('testtask', 'create', "product=0&project=$projectID", "<i class='icon icon-plus'></i> " . $lang->testtask->create, '', "class='btn btn-primary'");?>
<?php if(common::canModify('execution', $execution)):?>
<?php common::printIcon('testreport', 'browse', "objectID=$executionID&objectType=execution", '', 'button','flag muted');?>
<?php common::printLink('testtask', 'create', "product=0&execution=$executionID", "<i class='icon icon-plus'></i> " . $lang->testtask->create, '', "class='btn btn-primary'");?>
<?php endif;?>
</div>
</div>
@@ -39,8 +39,8 @@
<div class="table-empty-tip">
<p>
<span class="text-muted"><?php echo $lang->testtask->noTesttask;?></span>
<?php if(common::canModify('project', $project) and common::hasPriv('testtask', 'create')):?>
<?php echo html::a($this->createLink('testtask', 'create', "product=0&project=$projectID"), "<i class='icon icon-plus'></i> " . $lang->testtask->create, '', "class='btn btn-info'");?>
<?php if(common::canModify('execution', $execution) and common::hasPriv('testtask', 'create')):?>
<?php echo html::a($this->createLink('testtask', 'create', "product=0&execution=$executionID"), "<i class='icon icon-plus'></i> " . $lang->testtask->create, '', "class='btn btn-info'");?>
<?php endif;?>
</p>
</div>
@@ -48,7 +48,7 @@
<form class="main-table table-testtask" data-ride="table" data-group="true" method="post" target='hiddenwin' id='testtaskForm'>
<table class="table table-grouped has-sort-head" id='taskList'>
<thead>
<?php $vars = "projectID=$projectID&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?>
<?php $vars = "executionID=$executionID&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?>
<?php $canTestReport = ($canBeChanged and common::hasPriv('testreport', 'browse'));?>
<tr class='<?php if($total) echo 'divider'; ?>'>
<th class='c-side text-center'><?php common::printOrderLink('product', $orderBy, $vars, $lang->testtask->product);?></th>
@@ -132,7 +132,7 @@
<div class="checkbox-primary check-all"><label><?php echo $lang->selectAll?></label></div>
<div class="table-actions btn-toolbar">
<?php
$actionLink = $this->createLink('testreport', 'browse', "objectID=$projectID&objctType=project");
$actionLink = $this->createLink('testreport', 'browse', "objectID=$executionID&objctType=execution");
$misc = common::hasPriv('testreport', 'browse') ? "onclick=\"setFormAction('$actionLink', '', '#testtaskForm')\"" : "disabled='disabled'";
echo html::commonButton($lang->testreport->common, $misc);
?>

View File

@@ -1,9 +1,9 @@
<div style='margin: 0 auto; max-width: 400px'>
<p><strong><?php echo $lang->project->afterInfo;?></strong></p>
<p><strong><?php echo $lang->execution->afterInfo;?></strong></p>
<div>
<?php echo html::a($this->createLink('project', 'team', "projectID=$projectID"), $lang->project->setTeam, '', "class='btn'");?>
<?php if($project->type != 'ops') echo html::a($this->createLink('project', 'linkstory', "projectID=$projectID"), $lang->project->linkStory, '', "class='btn'");?>
<?php echo html::a($this->createLink('task', 'create', "project=$projectID"), $lang->project->createTask, '', "class='btn'");?>
<?php echo html::a($this->createLink('project', 'task', "projectID=$projectID"), $lang->project->goback, '', "class='btn'");?>
<?php echo html::a($this->createLink('execution', 'team', "executionID=$executionID"), $lang->execution->setTeam, '', "class='btn'");?>
<?php if($execution->type != 'ops') echo html::a($this->createLink('execution', 'linkstory', "executionID=$executionID"), $lang->execution->linkStory, '', "class='btn'");?>
<?php echo html::a($this->createLink('task', 'create', "execution=$executionID"), $lang->execution->createTask, '', "class='btn'");?>
<?php echo html::a($this->createLink('execution', 'task', "executionID=$executionID"), $lang->execution->goback, '', "class='btn'");?>
</div>
</div>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The project tree view file of project module of ZenTaoPMS.
* The execution tree view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Hao Sun <sunhao@cnezsoft.com>
* @package project
* @package execution
* @version $Id: tree.html.php 4894 2013-06-25 01:28:39Z wyd621@gmail.com $
* @link http://www.zentao.net
*/
@@ -15,7 +15,7 @@
<div id="mainMenu" class="clearfix">
<div class="btn-toolbar pull-left">
<?php
foreach($lang->project->treeLevel as $name => $btnLevel)
foreach($lang->execution->treeLevel as $name => $btnLevel)
{
if(empty($tree) && ($name == 'root' or $name == 'all')) continue;
$icon = '';
@@ -29,34 +29,34 @@
<?php
if(!isset($browseType)) $browseType = '';
if(!isset($orderBy)) $orderBy = '';
$link = common::hasPriv('task', 'report', $project) ? $this->createLink('task', 'report', "project=$projectID&browseType=$browseType") : '#';
$link = common::hasPriv('task', 'report', $execution) ? $this->createLink('task', 'report', "execution=$executionID&browseType=$browseType") : '#';
echo html::a($link, "<i class='icon icon-bar-chart muted'></i> <span class='text'>{$lang->task->reportChart}</span>", '', 'class="btn btn-link"');
?>
<?php if(common::canModify('project', $project)):?>
<?php if(common::canModify('execution', $execution)):?>
<div class="btn-group">
<button class="btn btn-link" data-toggle="dropdown"><i class="icon icon-import muted"></i> <span class="text"><?php echo $lang->import ?></span> <span class="caret"></span></button>
<ul class="dropdown-menu">
<?php
$misc = common::hasPriv('project', 'importTask') ? '' : "class=disabled";
$link = common::hasPriv('project', 'importTask') ? $this->createLink('project', 'importTask', "project=$project->id") : '#';
echo "<li $misc>" . html::a($link, $lang->project->importTask, '', $misc) . "</li>";
$misc = common::hasPriv('execution', 'importTask') ? '' : "class=disabled";
$link = common::hasPriv('execution', 'importTask') ? $this->createLink('execution', 'importTask', "execution=$execution->id") : '#';
echo "<li $misc>" . html::a($link, $lang->execution->importTask, '', $misc) . "</li>";
$misc = common::hasPriv('project', 'importBug') ? '' : "class=disabled";
$link = common::hasPriv('project', 'importBug') ? $this->createLink('project', 'importBug', "project=$project->id") : '#';
echo "<li $misc>" . html::a($link, $lang->project->importBug, '', $misc) . "</li>";
$misc = common::hasPriv('execution', 'importBug') ? '' : "class=disabled";
$link = common::hasPriv('execution', 'importBug') ? $this->createLink('execution', 'importBug', "execution=$execution->id") : '#';
echo "<li $misc>" . html::a($link, $lang->execution->importBug, '', $misc) . "</li>";
?>
</ul>
</div>
<?php endif;?>
<?php
$misc = "class='btn btn-link iframe" . (common::hasPriv('task', 'export', $project) ? '' : ' disabled') . "' data-width='700'";
$link = common::hasPriv('task', 'export') ? $this->createLink('task', 'export', "project=$projectID&orderBy=$orderBy&type=tree") : '#';
$misc = "class='btn btn-link iframe" . (common::hasPriv('task', 'export', $execution) ? '' : ' disabled') . "' data-width='700'";
$link = common::hasPriv('task', 'export') ? $this->createLink('task', 'export', "execution=$executionID&orderBy=$orderBy&type=tree") : '#';
echo html::a($link, "<i class='icon icon-export muted'></i> <span class='text'>{$lang->export}</span>", '', $misc);
$checkObject = new stdclass();
$checkObject->project = $projectID;
$checkObject->execution = $executionID;
$misc = common::hasPriv('task', 'create', $checkObject) ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
$link = common::hasPriv('task', 'create', $checkObject) ? $this->createLink('task', 'create', "project=$projectID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')) : '#';
$link = common::hasPriv('task', 'create', $checkObject) ? $this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')) : '#';
echo html::a($link, "<i class='icon icon-plus'></i>" . $lang->task->create, '', $misc);
?>
</div>
@@ -68,7 +68,7 @@
<p>
<span class="text-muted"><?php echo $lang->task->noTask;?></span>
<?php if(common::hasPriv('task', 'create', $checkObject)):?>
<?php echo html::a($this->createLink('task', 'create', "project=$projectID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')), "<i class='icon icon-plus'></i> " . $lang->task->create, '', "class='btn btn-info'");?>
<?php echo html::a($this->createLink('task', 'create', "execution=$executionID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')), "<i class='icon icon-plus'></i> " . $lang->task->create, '', "class='btn btn-info'");?>
<?php endif;?>
</p>
</div>

View File

@@ -170,21 +170,21 @@
<div class="detail-content">
<ul class="list-unstyled">
<?php
foreach($story->tasks as $projectTasks)
foreach($story->tasks as $executionTasks)
{
foreach($projectTasks as $task)
foreach($executionTasks as $task)
{
if(!isset($projects[$task->project])) continue;
$projectName = $projects[$task->project];
if(!isset($executions[$task->execution])) continue;
$executionName = $executions[$task->execution];
echo "<li title='$task->name'>" . html::a($this->createLink('task', 'view', "taskID=$task->id", '', true), "#$task->id $task->name", '', "class='iframe' data-width='80%'");
echo html::a($this->createLink('project', 'browse', "projectID=$task->project"), $projectName, '', "class='text-muted'") . '</li>';
echo html::a($this->createLink('execution', 'browse', "executionID=$task->execution"), $executionName, '', "class='text-muted'") . '</li>';
}
}
if(count($story->tasks) == 0)
{
foreach($story->projects as $projectID => $project)
foreach($story->executions as $executionID => $execution)
{
echo "<li title='$project->name'>" . html::a($this->createLink('project', 'browse', "projectID=$projectID"), $project->name, '', "class='text-muted'") . '</li>';
echo "<li title='$execution->name'>" . html::a($this->createLink('execution', 'browse', "executionID=$executionID"), $execution->name, '', "class='text-muted'") . '</li>';
}
}
?>

View File

@@ -32,7 +32,7 @@
common::printIcon('task', 'edit', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon');
if(empty($task->team) or empty($task->children))
{
common::printIcon('task', 'batchCreate', "project=$task->project&storyID=$task->story&moduleID=$task->module&taskID=$task->id&ifame=0", $task, 'list', 'plus', '', 'btn btn-info btn-icon', '', '', $lang->task->children);
common::printIcon('task', 'batchCreate', "execution=$task->execution&storyID=$task->story&moduleID=$task->module&taskID=$task->id&ifame=0", $task, 'list', 'plus', '', 'btn btn-info btn-icon', '', '', $lang->task->children);
}
?>
</div>
@@ -44,7 +44,7 @@
<?php echo !empty($task->desc) ? $task->desc : "<div class='text-center text-muted'>" . $lang->noData . '</div>';?>
</div>
</div>
<?php if($project->type != 'ops'):?>
<?php if($execution->type != 'ops'):?>
<?php if($task->fromBug != 0):?>
<div class="detail" open>
<div class="detail-title"><?php echo $lang->bug->steps;?></div>

View File

@@ -1,11 +1,11 @@
<?php
/**
* The view method view file of project module of ZenTaoPMS.
* The view method view file of execution module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @package execution
* @version $Id: view.html.php 4594 2013-03-13 06:16:02Z wyd621@gmail.com $
* @link http://www.zentao.net
*/
@@ -19,21 +19,21 @@
<div class="col-sm-6">
<div class="panel block-burn" style="height: 280px">
<div class="panel-heading">
<div class="panel-title"><?php echo $execution->name . $lang->project->burn;?></div>
<div class="panel-title"><?php echo $execution->name . $lang->execution->burn;?></div>
<nav class="panel-actions nav nav-default">
<li><?php common::printLink('project', 'burn', "projectID=$execution->id", '<i class="icon icon-more icon-sm"></i>', '', "title=$lang->more");?></li>
<li><?php common::printLink('execution', 'burn', "executionID=$execution->id", '<i class="icon icon-more icon-sm"></i>', '', "title=$lang->more");?></li>
</nav>
</div>
<div class="panel-body">
<?php if(common::hasPriv('project', 'burn')):?>
<?php if(common::hasPriv('execution', 'burn')):?>
<div id="burnWrapper">
<div id="burnChart">
<canvas id="burnCanvas"></canvas>
</div>
<div id="burnYUnit">(<?php echo $lang->project->workHour;?>)</div>
<div id="burnYUnit">(<?php echo $lang->execution->workHour;?>)</div>
<div id="burnLegend">
<div class="line-ref"><?php echo $lang->project->charts->burn->graph->reference;?></div>
<div class="line-real"><?php echo $lang->project->charts->burn->graph->actuality;?></div>
<div class="line-ref"><?php echo $lang->execution->charts->burn->graph->reference;?></div>
<div class="line-real"><?php echo $lang->execution->charts->burn->graph->actuality;?></div>
</div>
</div>
<?php endif;?>
@@ -43,9 +43,9 @@
<div class="col-sm-6">
<div class="panel block-dynamic" style="height: 280px">
<div class="panel-heading">
<div class="panel-title"><?php echo $lang->project->latestDynamic;?></div>
<div class="panel-title"><?php echo $lang->execution->latestDynamic;?></div>
<nav class="panel-actions nav nav-default">
<li><?php common::printLink('project', 'dynamic', "projectID=$execution->id&type=all", '<i class="icon icon-more icon-sm"></i>', '', "title=$lang->more");?></li>
<li><?php common::printLink('execution', 'dynamic', "executionID=$execution->id&type=all", '<i class="icon icon-more icon-sm"></i>', '', "title=$lang->more");?></li>
</nav>
</div>
<div class="panel-body scrollbar-hover">
@@ -65,9 +65,9 @@
<div class="col-sm-6">
<div class="panel block-team" style="height: 240px">
<div class="panel-heading">
<div class="panel-title"><?php echo $lang->project->relatedMember;?></div>
<div class="panel-title"><?php echo $lang->execution->relatedMember;?></div>
<nav class="panel-actions nav nav-default">
<li><?php common::printLink('project', 'team', "projectID=$execution->id", '<i class="icon icon-more icon-sm"></i>', '', "title=$lang->more");?></li>
<li><?php common::printLink('execution', 'team', "executionID=$execution->id", '<i class="icon icon-more icon-sm"></i>', '', "title=$lang->more");?></li>
</nav>
</div>
<div class="panel-body">
@@ -76,32 +76,32 @@
<?php if($execution->PM):?>
<?php $i--;?>
<?php unset($teamMembers[$execution->PM]);?>
<div class="col-xs-6"><i class="icon icon-person icon-sm text-muted"></i> <?php echo zget($users, $execution->PM);?> <span class="text-muted"><?php echo $lang->project->PM;?></span></div>
<div class="col-xs-6"><i class="icon icon-person icon-sm text-muted"></i> <?php echo zget($users, $execution->PM);?> <span class="text-muted"><?php echo $lang->execution->PM;?></span></div>
<?php endif;?>
<?php if($execution->PO):?>
<?php $i--;?>
<?php unset($teamMembers[$execution->PO]);?>
<div class="col-xs-6"><i class="icon icon-person icon-sm text-muted"></i> <?php echo zget($users, $execution->PO);?> <span class="text-muted"><?php echo $lang->project->PO;?></span></div>
<div class="col-xs-6"><i class="icon icon-person icon-sm text-muted"></i> <?php echo zget($users, $execution->PO);?> <span class="text-muted"><?php echo $lang->execution->PO;?></span></div>
<?php endif;?>
<?php if($execution->QD):?>
<?php $i--;?>
<?php unset($teamMembers[$execution->QD]);?>
<div class="col-xs-6"><i class="icon icon-person icon-sm text-muted"></i> <?php echo zget($users, $execution->QD);?> <span class="text-muted"><?php echo $lang->project->QD;?></span></div>
<div class="col-xs-6"><i class="icon icon-person icon-sm text-muted"></i> <?php echo zget($users, $execution->QD);?> <span class="text-muted"><?php echo $lang->execution->QD;?></span></div>
<?php endif;?>
<?php if($execution->RD):?>
<?php $i--;?>
<?php unset($teamMembers[$execution->RD]);?>
<div class="col-xs-6"><i class="icon icon-person icon-sm text-muted"></i> <?php echo zget($users, $execution->RD);?> <span class="text-muted"><?php echo $lang->project->RD;?></span></div>
<div class="col-xs-6"><i class="icon icon-person icon-sm text-muted"></i> <?php echo zget($users, $execution->RD);?> <span class="text-muted"><?php echo $lang->execution->RD;?></span></div>
<?php endif;?>
<?php if(common::hasPriv('project', 'team')):?>
<?php if(common::hasPriv('execution', 'team')):?>
<?php foreach($teamMembers as $teamMember):?>
<?php if($j > $i) break;?>
<div class="col-xs-6"><i class="icon icon-person icon-sm text-muted"></i> <?php echo zget($users, $teamMember->account);?></div>
<?php $j++;?>
<?php endforeach;?>
<div class="col-xs-6">
<?php if($canBeChanged) common::printLink('project', 'manageMembers', "projectID=$execution->id", "<i class='icon icon-plus hl-primary text-primary'></i> &nbsp;" . $lang->project->manageMembers, '', "class='text-muted'");?>
<?php if($canBeChanged) common::printLink('execution', 'manageMembers', "executionID=$execution->id", "<i class='icon icon-plus hl-primary text-primary'></i> &nbsp;" . $lang->execution->manageMembers, '', "class='text-muted'");?>
</div>
<?php endif;?>
</div>
@@ -111,9 +111,9 @@
<div class="col-sm-6">
<div class="panel block-docs" style="height: 240px">
<div class="panel-heading">
<div class="panel-title"><?php echo $lang->project->doclib;?></div>
<div class="panel-title"><?php echo $lang->execution->doclib;?></div>
<nav class="panel-actions nav nav-default">
<li><?php common::printLink('doc', 'objectLibs', "type=project&projectID=$execution->id&from=project", '<i class="icon icon-more icon-sm"></i>', '', "title=$lang->more");?></li>
<li><?php common::printLink('doc', 'objectLibs', "type=execution&executionID=$execution->id&from=execution", '<i class="icon icon-more icon-sm"></i>', '', "title=$lang->more");?></li>
</nav>
</div>
<div class="panel-body">
@@ -124,15 +124,15 @@
<?php if($i > 8) break;?>
<div class="col-xs-6">
<?php if($libID == 'files'):?>
<?php echo html::a($this->createLink('doc', 'showFiles', "type=project&objectID=$execution->id"), "<i class='icon icon-folder text-yellow'></i> " . $docLib->name);?>
<?php echo html::a($this->createLink('doc', 'showFiles', "type=execution&objectID=$execution->id"), "<i class='icon icon-folder text-yellow'></i> " . $docLib->name);?>
<?php else:?>
<?php echo html::a($this->createLink('doc', 'browse', "libID=$libID&browseType=all&param=0&orderBy=id_desc&from=project"), "<i class='icon icon-folder text-yellow'></i> " . $docLib->name);?>
<?php echo html::a($this->createLink('doc', 'browse', "libID=$libID&browseType=all&param=0&orderBy=id_desc&from=execution"), "<i class='icon icon-folder text-yellow'></i> " . $docLib->name);?>
<?php endif;?>
</div>
<?php $i++;?>
<?php endforeach;?>
<div class="col-xs-6">
<?php if($canBeChanged) common::printLink('doc', 'createLib', "type=project&objectID=$execution->id", "<i class='icon icon-plus hl-primary text-primary'></i> &nbsp;" . $lang->doc->createlib, '', "class='text-muted iframe' data-width='1000px'");?>
<?php if($canBeChanged) common::printLink('doc', 'createLib', "type=execution&objectID=$execution->id", "<i class='icon icon-plus hl-primary text-primary'></i> &nbsp;" . $lang->doc->createlib, '', "class='text-muted iframe' data-width='1000px'");?>
</div>
<?php endif;?>
</div>
@@ -149,23 +149,23 @@
<div class='main-actions'>
<div class="btn-toolbar">
<?php
$params = "project=$execution->id";
$browseLink = $this->session->projectList ? $this->session->projectList : inlink('browse', "projectID=$execution->id");
$params = "execution=$execution->id";
$browseLink = $this->session->executionList ? $this->session->executionList : inlink('browse', "executionID=$execution->id");
common::printBack($browseLink);
if(!$execution->deleted)
{
echo "<div class='divider'></div>";
common::printIcon('project', 'start', "projectID=$execution->id", $execution, 'button', '', '', 'iframe', true);
common::printIcon('project', 'activate', "projectID=$execution->id", $execution, 'button', '', '', 'iframe', true);
common::printIcon('project', 'putoff', "projectID=$execution->id", $execution, 'button', '', '', 'iframe', true);
common::printIcon('project', 'suspend', "projectID=$execution->id", $execution, 'button', '', '', 'iframe', true);
common::printIcon('project', 'close', "projectID=$execution->id", $execution, 'button', '', '', 'iframe', true);
common::printIcon('execution', 'start', "executionID=$execution->id", $execution, 'button', '', '', 'iframe', true);
common::printIcon('execution', 'activate', "executionID=$execution->id", $execution, 'button', '', '', 'iframe', true);
common::printIcon('execution', 'putoff', "executionID=$execution->id", $execution, 'button', '', '', 'iframe', true);
common::printIcon('execution', 'suspend', "executionID=$execution->id", $execution, 'button', '', '', 'iframe', true);
common::printIcon('execution', 'close', "executionID=$execution->id", $execution, 'button', '', '', 'iframe', true);
echo $this->buildOperateMenu($execution, 'view');
echo "<div class='divider'></div>";
common::printIcon('project', 'edit', $params, $execution);
common::printIcon('project', 'delete', $params, $execution, 'button', 'trash', 'hiddenwin');
common::printIcon('execution', 'edit', $params, $execution);
common::printIcon('execution', 'delete', $params, $execution, 'button', 'trash', 'hiddenwin');
}
?>
</div>
@@ -181,21 +181,21 @@
<p><span class="text-limit" data-limit-size="40"><?php echo $execution->desc;?></span><a class="text-primary text-limit-toggle small" data-text-expand="<?php echo $lang->expand;?>" data-text-collapse="<?php echo $lang->collapse;?>"></a></p>
<p>
<?php if($execution->deleted):?>
<span class='label label-danger label-outline'><?php echo $lang->project->deleted;?></span>
<span class='label label-danger label-outline'><?php echo $lang->execution->deleted;?></span>
<?php endif; ?>
<span class="label label-primary label-outline"><?php echo zget($lang->program->PRJLifeTimeList, $execution->lifetime);?></span>
<?php if(isset($execution->delay)):?>
<span class="label label-danger label-outline"><?php echo $lang->project->delayed;?></span>
<span class="label label-danger label-outline"><?php echo $lang->execution->delayed;?></span>
<?php else:?>
<span class="label label-success label-outline"><?php echo $this->processStatus('project', $execution);?></span>
<span class="label label-success label-outline"><?php echo $this->processStatus('execution', $execution);?></span>
<?php endif;?>
</p>
</div>
</div>
<div class="detail">
<div class="detail-title">
<strong><?php echo $lang->project->manageProducts;?></strong>
<?php common::printLink('project', 'manageproducts', "projectID=$execution->id", '<i class="icon icon-more icon-sm"></i>', '', "class='btn btn-link pull-right muted'");?>
<strong><?php echo $lang->execution->manageProducts;?></strong>
<?php common::printLink('execution', 'manageproducts', "executionID=$execution->id", '<i class="icon icon-more icon-sm"></i>', '', "class='btn btn-link pull-right muted'");?>
</div>
<div class="detail-content">
<div class="row row-grid">
@@ -209,7 +209,7 @@
</div>
</div>
<div class="detail">
<div class="detail-title"><strong><?php echo $lang->project->linkPlan;?></strong></div>
<div class="detail-title"><strong><?php echo $lang->execution->linkPlan;?></strong></div>
<div class="detail-content">
<div class="row row-grid">
<?php foreach($products as $productID => $product):?>
@@ -221,7 +221,7 @@
</div>
</div>
<div class='detail'>
<div class='detail-title'><strong><?php echo $lang->project->lblStats;?></strong></div>
<div class='detail-title'><strong><?php echo $lang->execution->lblStats;?></strong></div>
<div class="detail-content">
<table class='table table-data data-stats'>
<tbody>
@@ -229,40 +229,40 @@
<tr>
<td colspan="4">
<?php $progress = ($execution->totalConsumed + $execution->totalLeft) ? floor($execution->totalConsumed / ($execution->totalConsumed + $execution->totalLeft) * 1000) / 1000 * 100 : 0;?>
<?php echo $lang->project->progress;?> <em><?php echo $progress . $lang->percent;?></em> &nbsp;
<?php echo $lang->execution->progress;?> <em><?php echo $progress . $lang->percent;?></em> &nbsp;
<div class="progress inline-block">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="<?php echo $progress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $progress . $lang->percent;?>"></div>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->project->begin;?></th>
<th><?php echo $lang->execution->begin;?></th>
<td><?php echo $execution->begin;?></td>
<th><?php echo $lang->project->totalEstimate;?></th>
<td><em><?php echo (float)$execution->totalEstimate . $lang->project->workHour;?></em></td>
<th><?php echo $lang->execution->totalEstimate;?></th>
<td><em><?php echo (float)$execution->totalEstimate . $lang->execution->workHour;?></em></td>
</tr>
<tr>
<th><?php echo $lang->project->end;?></th>
<th><?php echo $lang->execution->end;?></th>
<td><?php echo $execution->end;?></td>
<th><?php echo $lang->project->totalConsumed;?></th>
<td><em><?php echo (float)$execution->totalConsumed . $lang->project->workHour;?></em></td>
<th><?php echo $lang->execution->totalConsumed;?></th>
<td><em><?php echo (float)$execution->totalConsumed . $lang->execution->workHour;?></em></td>
</tr>
<tr>
<th><?php echo $lang->project->totalDays;?></th>
<th><?php echo $lang->execution->totalDays;?></th>
<td><?php echo $execution->days;?></td>
<th><?php echo $lang->project->totalLeft;?></th>
<td><em><?php echo (float)$execution->totalLeft . $lang->project->workHour;?></em></td>
<th><?php echo $lang->execution->totalLeft;?></th>
<td><em><?php echo (float)$execution->totalLeft . $lang->execution->workHour;?></em></td>
</tr>
<tr>
<th><?php echo $lang->project->totalHours;?></th>
<td><em><?php echo (float)$execution->totalHours . $lang->project->workHour;?></em></td>
<th><?php echo $lang->execution->totalHours;?></th>
<td><em><?php echo (float)$execution->totalHours . $lang->execution->workHour;?></em></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="detail">
<div class="detail-title"><strong><?php echo $lang->project->basicInfo;?></strong></div>
<div class="detail-title"><strong><?php echo $lang->execution->basicInfo;?></strong></div>
<div class="detail-content">
<table class="table table-data data-basic">
<tbody>
@@ -279,9 +279,9 @@
</div>
</div>
<div class="detail">
<div class="detail-title"><strong><?php echo $lang->project->acl;?></strong></div>
<div class="detail-title"><strong><?php echo $lang->execution->acl;?></strong></div>
<div class="detail-content">
<p><?php echo $lang->project->aclList[$execution->acl];?></p>
<p><?php echo $lang->execution->aclList[$execution->acl];?></p>
</div>
</div>
<?php $this->printExtendFields($execution, 'div', "position=right&inForm=0&inCell=1");?>
@@ -302,7 +302,7 @@ $(function()
labels: <?php echo json_encode($chartData['labels'])?>,
datasets: [
{
label: "<?php echo $lang->project->charts->burn->graph->reference;?>",
label: "<?php echo $lang->execution->charts->burn->graph->reference;?>",
color: "#F1F1F1",
pointColor: '#D8D8D8',
pointStrokeColor: '#D8D8D8',
@@ -312,7 +312,7 @@ $(function()
data: <?php echo $chartData['baseLine']?>
},
{
label: "<?php echo $lang->project->charts->burn->graph->actuality;?>",
label: "<?php echo $lang->execution->charts->burn->graph->actuality;?>",
color: "#006AF1",
pointStrokeColor: '#006AF1',
pointHighlightStroke: '#006AF1',
@@ -336,7 +336,7 @@ $(function()
scaleFontColor: '#838A9D',
tooltipXPadding: 10,
tooltipYPadding: 10,
multiTooltipTitleTemplate: '<%= label %> <?php echo $lang->project->workHour;?> /h',
multiTooltipTitleTemplate: '<%= label %> <?php echo $lang->execution->workHour;?> /h',
multiTooltipTemplate: "<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>",
});
});