This commit is contained in:
daitingting
2018-05-02 15:16:13 +08:00
41 changed files with 983 additions and 939 deletions
+1 -1
View File
@@ -21,7 +21,7 @@
</div>
</div>
<div id='mainContent'>
<div id='mainContent' class='main-content'>
<div class='main-table'>
<table class='table has-sort-head'>
<?php $vars = "type=$type&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
+1
View File
@@ -1 +1,2 @@
body{padding-bottom:0px;background-color:#fff;}
#api p{margin: 5px 0 2px 0;}
+46 -37
View File
@@ -1,42 +1,51 @@
<?php include '../../common/view/header.lite.html.php';?>
<?php include '../../common/view/form.html.php';?>
<div class='panel panel-sm' id='api'>
<div class='panel-heading'><i class='icon-terminal'></i> &nbsp;<strong><?php echo $method->post ? 'GET/POST ' . $filePath : 'GET ' . $filePath?></strong></div>
<div class='panel-body'>
<?php echo "<h5>{$lang->api->position}</h5>"?>
<?php echo '<code>' . sprintf($lang->api->startLine, $method->fileName, $method->startLine) . '</code>'?>
<hr>
<?php echo "<h5>{$lang->api->desc}</h5>"?>
<?php echo '<pre>' . str_replace("\n", "<Br/>", $method->comment) . '</pre>'?>
<hr>
<?php echo "<h5>{$lang->api->debug}</h5>"?>
<form method='post' id='apiForm' class='form-condensed'>
<?php if($method->parameters):?>
<table class='table table-form'>
<?php foreach($method->parameters as $param):?>
<tr>
<th class='w-80px'><?php echo $param->name?></th>
<td><?php echo html::input("$param->name", $param->isOptional() ? $param->getDefaultValue() : '', "class='form-control' autocomplete='off'")?></td>
</tr>
<?php endforeach;?>
<tr>
<td align='center' colspan="2">
<?php echo html::submitButton($lang->api->submit)?>
</td>
</tr>
</table>
<?php else:?>
<?php echo html::hidden('noparam', '0') . $lang->api->noParam . html::submitButton($lang->api->submit);?>
<?php endif;?>
</form>
<?php if($method->post) echo "<p>{$lang->api->post}</p>"?>
<div id="result" class="hidden">
<hr>
<h5><?php echo $lang->api->url?>:</h5>
<div class="url"></div>
<h5><?php echo $lang->api->result?>:</h5>
<p><?php echo $lang->api->status?>: <code class="status"></code></p>
<p><?php echo $lang->api->data?>: <pre class="data"></pre></p>
<div class='main-header'>
<div class='heading'><i class='icon-terminal'></i> &nbsp;<strong><?php echo $method->post ? 'GET/POST ' . $filePath : 'GET ' . $filePath?></strong></div>
</div>
<div class='main-content'>
<div class='cell'>
<div class='detail'>
<div class='detail-title'><?php echo $lang->api->position;?></div>
<div class='detail-content'><code><?php printf($lang->api->startLine, $method->fileName, $method->startLine);?></code></div>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->api->desc;?></div>
<div class='detail-content'><pre><?php echo str_replace("\n", "<br />", $method->comment);?></pre></div>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->api->debug;?></div>
<div class='detail-content'>
<form method='post' id='apiForm' class='form-condensed'>
<?php if($method->parameters):?>
<table class='table table-form'>
<?php foreach($method->parameters as $param):?>
<tr>
<th class='w-80px'><?php echo $param->name?></th>
<td><?php echo html::input("$param->name", $param->isOptional() ? $param->getDefaultValue() : '', "class='form-control' autocomplete='off'")?></td>
</tr>
<?php endforeach;?>
<tr>
<td align='center' colspan="2">
<?php echo html::submitButton($lang->api->submit)?>
</td>
</tr>
</table>
<?php else:?>
<?php echo html::hidden('noparam', '0') . $lang->api->noParam . html::submitButton($lang->api->submit);?>
<?php endif;?>
<?php if($method->post) echo "<p>{$lang->api->post}</p>"?>
</form>
</div>
</div>
<div id="result" class="detail hidden">
<div class='detail-title'><?php echo $lang->api->url?>:</div>
<div class='detail-content'>
<div class="url"></div>
<h5><?php echo $lang->api->result?>:</h5>
<p><?php echo $lang->api->status?>: <code class="status"></code></p>
<p><?php echo $lang->api->data?>: <pre class="data"></pre></p>
</div>
</div>
</div>
</div>
+3 -2
View File
@@ -240,9 +240,9 @@ class block extends control
}
$block->actionLink = '';
if($block->block == 'overview' && common::hasPriv('product', 'create'))
if($block->block == 'overview')
{
if($module == 'product' && common::hasPriv('product', 'create')) $block->actionLink = html::a($this->createLink('product', 'create'), "<i class='icon icon-plus'> </i>" . $this->lang->product->create, '', "class='btn'");
if($module == 'product' && common::hasPriv('product', 'create')) $block->actionLink = html::a($this->createLink('product', 'create'), "<i class='icon icon-sm icon-plus'> </i>" . $this->lang->product->create, '', "class='btn btn-sm'");
if($module == 'project' && common::hasPriv('project', 'create')) $block->actionLink = html::a($this->createLink('project', 'create'), "<i class='icon icon-sm icon-plus'> </i>" . $this->lang->project->create, '', "class='btn btn-sm'");
}
@@ -875,6 +875,7 @@ class block extends control
->orderBy($orderBy)
->beginIF($this->viewType != 'json')->limit($num)->fi()
->fetchAll('id');
$projectIDList = array_keys($projects);
/* Get tasks. */
+3
View File
@@ -0,0 +1,3 @@
.nav > li > a.btn {color: #3c4353; margin-top: 4px;}
.nav > li > a.btn-sm {padding: 2px 8px; font-size: 12px; line-height: 1.5; border-radius: 4px;}
.block-statistic .nav-stacked {overflow: auto; max-height: 220px;}
@@ -10,6 +10,9 @@
* @link http://www.zentao.net
*/
?>
<style>
.block-overview .tile-amount {font-size: 48px; margin-bottom: 10px;}
</style>
<div class="panel-body table-row">
<div class="col-6 text-middle text-center">
<div class="tile">
@@ -30,9 +33,3 @@
</ul>
</div>
</div>
<style>
.block-overview .tile-amount {font-size: 48px; margin-bottom: 10px;}
.nav > li > a.btn{color: #3c4353;}
.nav > li > a.btn-sm{padding: 2px 8px; font-size: 12px; line-height: 1.5; border-radius: 4px;}
</style>
@@ -1,3 +1,32 @@
<style>
.types-line {display: table; padding: 0; margin: 0 auto;}
.types-line > li {display: table-cell;}
.types-line > li > div {position: relative; padding: 18px 5px 5px; text-align: center;}
.types-line > li > div:before {content: ''; display: block; background: #eee; width: 100%; height: 2px; position: absolute; left: 50%; top: 4px;}
.types-line > li:last-child > div:before {display: none;}
.types-line > li > div:after {content: ''; display: block; background: #FFFFFF; box-shadow: 0 2px 4px 0 rgba(170,170,170,0.50), 0 0 5px 0 rgba(0,0,0,0.1); width: 10px; height: 10px; position: absolute; border-radius: 50%; top: 0; left: 50%; margin-left: -2px;}
.types-line > li > div > small {display: block; color: #A6AAB8;}
.types-line > li > div > span {display: block; color: #CBD0DB; font-size: 16px;}
.product-info {position: relative; padding: 10px 10px 10px 200px;}
.product-info + .product-info {margin-top: 10px;}
.product-info .progress {position: absolute; left: 10px; top: 33px; width: 180px;}
.product-info .progress-info {position: absolute; left: 8px; top: 8px; width: 180px; font-size: 12px;}
.product-info .type-info {color: #A6AAB8; text-align: center;}
.product-info .type-label {font-size: 12px;}
.product-info .type-value {font-size: 14px;}
.product-info .type-value > strong {font-size: 20px; color: #3C4353;}
.product-info .actions {position: absolute; left: 10px; top: 14px;}
.block-statistic .tile {margin-bottom: 30px;}
.block-statistic .tile-title {font-size: 18px; color: #A6AAB8;}
.block-statistic .tile-amount {font-size: 48px; margin-bottom: 10px;}
.block-statistic .col-nav {border-left: 1px solid #EBF2FB; width: 260px; padding-left: 0;}
.block-statistic .nav-secondary > li > a {font-size: 16px; color: #838A9D; position: relative; box-shadow: none; padding-left: 20px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; transition: all .2s;}
.block-statistic .nav-secondary > li.active > a {font-size: 20px; color: #3C4353; background: transparent; box-shadow: none;}
.block-statistic .nav-secondary > li.active > a:hover,
.block-statistic .nav-secondary > li.active > a:focus,
.block-statistic .nav-secondary > li > a:hover {box-shadow: none;}
.block-statistic .nav-secondary > li.active > a:before {content: ' '; display: block; left: -1px; top: 10px; bottom: 10px; width: 4px; background: #006af1; position: absolute;}
</style>
<div class="panel-body">
<div class="table-row">
<div class="col tab-content">
@@ -88,34 +117,3 @@
</div>
</div>
</div>
<style>
.types-line {display: table; padding: 0; margin: 0 auto;}
.types-line > li {display: table-cell;}
.types-line > li > div {position: relative; padding: 18px 5px 5px; text-align: center;}
.types-line > li > div:before {content: ''; display: block; background: #eee; width: 100%; height: 2px; position: absolute; left: 50%; top: 4px;}
.types-line > li:last-child > div:before {display: none;}
.types-line > li > div:after {content: ''; display: block; background: #FFFFFF; box-shadow: 0 2px 4px 0 rgba(170,170,170,0.50), 0 0 5px 0 rgba(0,0,0,0.1); width: 10px; height: 10px; position: absolute; border-radius: 50%; top: 0; left: 50%; margin-left: -2px;}
.types-line > li > div > small {display: block; color: #A6AAB8;}
.types-line > li > div > span {display: block; color: #CBD0DB; font-size: 16px;}
.product-info {position: relative; padding: 10px 10px 10px 200px;}
.product-info + .product-info {margin-top: 10px;}
.product-info .progress {position: absolute; left: 10px; top: 33px; width: 180px;}
.product-info .progress-info {position: absolute; left: 8px; top: 8px; width: 180px; font-size: 12px;}
.product-info .type-info {color: #A6AAB8; text-align: center;}
.product-info .type-label {font-size: 12px;}
.product-info .type-value {font-size: 14px;}
.product-info .type-value > strong {font-size: 20px; color: #3C4353;}
.product-info .actions {position: absolute; left: 10px; top: 14px;}
.block-statistic .tile {margin-bottom: 30px;}
.block-statistic .tile-title {font-size: 18px; color: #A6AAB8;}
.block-statistic .tile-amount {font-size: 48px; margin-bottom: 10px;}
.block-statistic .col-nav {border-left: 1px solid #EBF2FB; width: 260px; padding-left: 0;}
.block-statistic .nav-secondary > li > a {font-size: 16px; color: #838A9D; position: relative; box-shadow: none; padding-left: 20px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; transition: all .2s;}
.block-statistic .nav-secondary > li.active > a {font-size: 20px; color: #3C4353; background: transparent; box-shadow: none;}
.block-statistic .nav-secondary > li.active > a:hover,
.block-statistic .nav-secondary > li.active > a:focus,
.block-statistic .nav-secondary > li > a:hover {box-shadow: none;}
.block-statistic .nav-secondary > li.active > a:before {content: ' '; display: block; left: -1px; top: 10px; bottom: 10px; width: 4px; background: #006af1; position: absolute;}
.block-statistic .nav-stacked {overflow: auto; max-height: 220px;}
</style>
+1 -1
View File
@@ -179,7 +179,7 @@ $config->bug->datatable->fieldList['severity']['required'] = 'no';
$config->bug->datatable->fieldList['pri']['title'] = 'P';
$config->bug->datatable->fieldList['pri']['fixed'] = 'left';
$config->bug->datatable->fieldList['pri']['width'] = '40';
$config->bug->datatable->fieldList['pri']['width'] = '50';
$config->bug->datatable->fieldList['pri']['required'] = 'no';
$config->bug->datatable->fieldList['title']['title'] = 'title';
+30 -31
View File
@@ -307,38 +307,37 @@
</div>
</div>
</div>
div>
php
arams = "bugID=$bug->id";
opyParams = "productID=$productID&branch=$bug->branch&extras=bugID=$bug->id";
onvertParams = "productID=$productID&branch=$bug->branch&moduleID=0&from=bug&bugID=$bug->id";
iv id="mainActions">
<?php common::printPreAndNext($preAndNext);?>
<div class="btn-toolbar">
<?php if(!$bug->deleted):?>
<?php
common::printIcon('bug', 'confirmBug', $params, $bug, 'button', 'search', '', 'iframe', true);
common::printIcon('bug', 'assignTo', $params, $bug, 'button', '', '', 'iframe', true);
common::printIcon('bug', 'resolve', $params, $bug, 'button', '', '', 'iframe showinonlybody', true);
common::printIcon('bug', 'close', $params, $bug, 'button', '', '', 'text-danger iframe showinonlybody', true);
common::printIcon('bug', 'activate', $params, $bug, 'button', '', '', 'text-success iframe showinonlybody', true);
if($this->config->global->flow != 'onlyTest') common::printIcon('bug', 'toStory', "product=$bug->product&branch=$bug->branch&module=0&story=0&project=0&bugID=$bug->id", $bug, 'button', $lang->icons['story']);
common::printIcon('bug', 'createCase', $convertParams, $bug, 'button', 'sitemap');
echo "<div class='divider'></div>";
common::printIcon('bug', 'edit', $params, $bug);
common::printIcon('bug', 'create', $copyParams, $bug, 'button', 'copy');
common::printIcon('bug', 'delete', $params, $bug, 'button', '', 'hiddenwin');
echo "<div class='divider'></div>";
common::printBack($browseLink);
?>
<?php else:?>
<?php common::printBack($browseLink);?>
<?php endif;?>
<?php
$params = "bugID=$bug->id";
$copyParams = "productID=$productID&branch=$bug->branch&extras=bugID=$bug->id";
$convertParams = "productID=$productID&branch=$bug->branch&moduleID=0&from=bug&bugID=$bug->id";
?>
<div id="mainActions">
<?php common::printPreAndNext($preAndNext);?>
<div class="btn-toolbar">
<?php common::printBack($browseLink);?>
<?php if(!$bug->deleted):?>
<div class='divider'></div>
<?php
common::printIcon('bug', 'confirmBug', $params, $bug, 'button', 'search', '', 'iframe', true);
common::printIcon('bug', 'assignTo', $params, $bug, 'button', '', '', 'iframe', true);
common::printIcon('bug', 'resolve', $params, $bug, 'button', '', '', 'iframe showinonlybody', true);
common::printIcon('bug', 'close', $params, $bug, 'button', '', '', 'text-danger iframe showinonlybody', true);
common::printIcon('bug', 'activate', $params, $bug, 'button', '', '', 'text-success iframe showinonlybody', true);
if($this->config->global->flow != 'onlyTest') common::printIcon('bug', 'toStory', "product=$bug->product&branch=$bug->branch&module=0&story=0&project=0&bugID=$bug->id", $bug, 'button', $lang->icons['story']);
common::printIcon('bug', 'createCase', $convertParams, $bug, 'button', 'sitemap');
echo "<div class='divider'></div>";
common::printIcon('bug', 'edit', $params, $bug);
common::printIcon('bug', 'create', $copyParams, $bug, 'button', 'copy');
common::printIcon('bug', 'delete', $params, $bug, 'button', '', 'hiddenwin');
?>
<?php else:?>
<?php common::printBack($browseLink);?>
<?php endif;?>
</div>
</div>
<?php include '../../common/view/syntaxhighlighter.html.php';?>
<?php include '../../common/view/footer.html.php';?>
+5 -9
View File
@@ -78,8 +78,8 @@
<div class="detail-content article-content">
<p><span class="text-limit" data-limit-size="40"><?php echo $product->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>
<span class="label label-primary label-outline"><?php echo zget($lang->product->typeList, $product->type);?></span>
<span class="label label-success label-outline"><?php echo zget($lang->product->statusList, $product->status);?></span>
<span class="label label-primary label-outline" title='<?php echo $lang->product->type;?>'><?php echo zget($lang->product->typeList, $product->type);?></span>
<span class="label label-success label-outline" title='<?php echo $lang->product->status;?>'><?php echo zget($lang->product->statusList, $product->status);?></span>
<?php if($product->deleted):?>
<span class='label label-danger label-outline'><?php echo $lang->product->deleted;?></span>
<?php endif; ?>
@@ -210,9 +210,10 @@
<?php
$params = "product=$product->id";
$browseLink = $this->session->productList ? $this->session->productList : inlink('browse', "productID=$product->id");
common::printBack($browseLink);
if(!$product->deleted)
{
ob_start();
echo "<div class='divider'></div>";
if($product->status != 'closed')
{
common::printIcon('product', 'close', "productID=$product->id", $product, 'button', '', '', 'iframe text-danger', true);
@@ -221,15 +222,10 @@
common::printIcon('product', 'edit', $params, $product);
common::printIcon('product', 'delete', $params, $product, 'button', '', 'hiddenwin');
common::printRPN($browseLink);
$actionLinks = ob_get_contents();
ob_end_clean();
echo $actionLinks;
}
else
{
common::printRPN($browseLink);
common::printBack($browseLink);
}
?>
</div>
+5 -5
View File
@@ -189,12 +189,12 @@ $lang->project->aboveAllProject = "以上所有{$lang->projectCommon}";
$lang->project->selectProject = "请选择{$lang->projectCommon}";
$lang->project->beginAndEnd = '起止时间';
$lang->project->lblStats = '工时统计';
$lang->project->stats = '可用工时<strong>%s</strong>工时,总共预计<strong>%s</strong>工时,已经消耗<strong>%s</strong>工时,预计剩余<strong>%s</strong>工时';
$lang->project->taskSummary = "本页共 <strong>%s</strong> 个任务,未开始 <strong>%s</strong>,进行中 <strong>%s</strong>,总预计<strong>%s</strong>工时,已消耗<strong>%s</strong>工时,剩余<strong>%s</strong>工时。";
$lang->project->checkedSummary = "选中 <strong>%total%</strong> 个任务,未开始 <strong>%wait%</strong>,进行中 <strong>%doing%</strong>,总预计<strong>%estimate%</strong>工时,已消耗<strong>%consumed%</strong>工时,剩余<strong>%left%</strong>工时。";
$lang->project->stats = '可用工时 <strong>%s</strong> 工时,总共预计 <strong>%s</strong> 工时,已经消耗 <strong>%s</strong> 工时,预计剩余 <strong>%s</strong> 工时';
$lang->project->taskSummary = "本页共 <strong>%s</strong> 个任务,未开始 <strong>%s</strong>,进行中 <strong>%s</strong>,总预计 <strong>%s</strong> 工时,已消耗 <strong>%s</strong> 工时,剩余 <strong>%s</strong> 工时。";
$lang->project->checkedSummary = "选中 <strong>%total%</strong> 个任务,未开始 <strong>%wait%</strong>,进行中 <strong>%doing%</strong>,总预计 <strong>%estimate%</strong> 工时,已消耗 <strong>%consumed%</strong> 工时,剩余 <strong>%left%</strong> 工时。";
$lang->project->memberHours = "%s共有 <strong>%s</strong> 个可用工时,";
$lang->project->groupSummary = "本组共 <strong>%s</strong> 个任务,未开始 <strong>%s</strong>,进行中 <strong>%s</strong>,总预计<strong>%s</strong>工时,已消耗<strong>%s</strong>工时,剩余<strong>%s</strong>工时。";
$lang->project->groupSummaryAB = "总任务<strong>%s</strong> ,未开始<strong>%s</strong>,进行中<strong>%s</strong>。<br />总预计<strong>%s</strong>,已消耗<strong>%s</strong>,剩余<strong>%s</strong>。";
$lang->project->groupSummary = "本组共 <strong>%s</strong> 个任务,未开始 <strong>%s</strong>,进行中 <strong>%s</strong>,总预计 <strong>%s</strong> 工时,已消耗 <strong>%s</strong> 工时,剩余 <strong>%s</strong> 工时。";
$lang->project->groupSummaryAB = "总任务 <strong>%s</strong>,未开始 <strong>%s</strong>,进行中 <strong>%s</strong>。<br />总预计 <strong>%s</strong>,已消耗 <strong>%s</strong>,剩余 <strong>%s</strong>。";
$lang->project->noTimeSummary = "本组共 <strong>%s</strong> 个任务,未开始 <strong>%s</strong>,进行中 <strong>%s</strong>";
$lang->project->wbs = "分解任务";
$lang->project->batchWBS = "批量分解";
+5 -5
View File
@@ -189,12 +189,12 @@ $lang->project->aboveAllProject = "以上所有{$lang->projectCommon}";
$lang->project->selectProject = "請選擇{$lang->projectCommon}";
$lang->project->beginAndEnd = '起止時間';
$lang->project->lblStats = '工時統計';
$lang->project->stats = '可用工時<strong>%s</strong>工時,總共預計<strong>%s</strong>工時,已經消耗<strong>%s</strong>工時,預計剩餘<strong>%s</strong>工時';
$lang->project->taskSummary = "本頁共 <strong>%s</strong> 個任務,未開始 <strong>%s</strong>,進行中 <strong>%s</strong>,總預計<strong>%s</strong>工時,已消耗<strong>%s</strong>工時,剩餘<strong>%s</strong>工時。";
$lang->project->checkedSummary = "選中 <strong>%total%</strong> 個任務,未開始 <strong>%wait%</strong>,進行中 <strong>%doing%</strong>,總預計<strong>%estimate%</strong>工時,已消耗<strong>%consumed%</strong>工時,剩餘<strong>%left%</strong>工時。";
$lang->project->stats = '可用工時 <strong>%s</strong> 工時,總共預計 <strong>%s</strong> 工時,已經消耗 <strong>%s</strong> 工時,預計剩餘 <strong>%s</strong> 工時';
$lang->project->taskSummary = "本頁共 <strong>%s</strong> 個任務,未開始 <strong>%s</strong>,進行中 <strong>%s</strong>,總預計 <strong>%s</strong> 工時,已消耗 <strong>%s</strong> 工時,剩餘 <strong>%s</strong> 工時。";
$lang->project->checkedSummary = "選中 <strong>%total%</strong> 個任務,未開始 <strong>%wait%</strong>,進行中 <strong>%doing%</strong>,總預計 <strong>%estimate%</strong> 工時,已消耗 <strong>%consumed%</strong> 工時,剩餘 <strong>%left%</strong> 工時。";
$lang->project->memberHours = "%s共有 <strong>%s</strong> 個可用工時,";
$lang->project->groupSummary = "本組共 <strong>%s</strong> 個任務,未開始 <strong>%s</strong>,進行中 <strong>%s</strong>,總預計<strong>%s</strong>工時,已消耗<strong>%s</strong>工時,剩餘<strong>%s</strong>工時。";
$lang->project->groupSummaryAB = "總任務<strong>%s</strong> ,未開始<strong>%s</strong>,進行中<strong>%s</strong>。<br />總預計<strong>%s</strong>,已消耗<strong>%s</strong>,剩餘<strong>%s</strong>。";
$lang->project->groupSummary = "本組共 <strong>%s</strong> 個任務,未開始 <strong>%s</strong>,進行中 <strong>%s</strong>,總預計 <strong>%s</strong> 工時,已消耗 <strong>%s</strong> 工時,剩餘 <strong>%s</strong> 工時。";
$lang->project->groupSummaryAB = "總任務 <strong>%s</strong>,未開始 <strong>%s</strong>,進行中 <strong>%s</strong>。<br />總預計 <strong>%s</strong>,已消耗 <strong>%s</strong>,剩餘 <strong>%s</strong>。";
$lang->project->noTimeSummary = "本組共 <strong>%s</strong> 個任務,未開始 <strong>%s</strong>,進行中 <strong>%s</strong>";
$lang->project->wbs = "分解任務";
$lang->project->batchWBS = "批量分解";
+4 -11
View File
@@ -203,30 +203,23 @@
<?php
$params = "project=$project->id";
$browseLink = $this->session->projectList ? $this->session->projectList : inlink('browse', "projectID=$project->id");
common::printBack($browseLink);
if(!$project->deleted)
{
ob_start();
echo "<div class='btn-group'>";
echo "<div class='divider'></div>";
common::printIcon('project', 'start', "projectID=$project->id", $project, 'button', '', '', 'iframe', true);
common::printIcon('project', 'activate', "projectID=$project->id", $project, 'button', '', '', 'iframe', true);
common::printIcon('project', 'putoff', "projectID=$project->id", $project, 'button', '', '', 'iframe', true);
common::printIcon('project', 'suspend', "projectID=$project->id", $project, 'button', '', '', 'iframe', true);
common::printIcon('project', 'close', "projectID=$project->id", $project, 'button', '', '', 'iframe', true);
echo '</div>';
echo "<div class='btn-group'>";
echo "<div class='divider'></div>";
common::printIcon('project', 'edit', $params, $project);
common::printIcon('project', 'delete', $params, $project, 'button', '', 'hiddenwin');
echo '</div>';
common::printRPN($browseLink);
$actionLinks = ob_get_contents();
ob_end_clean();
echo $actionLinks;
}
else
{
common::printRPN($browseLink);
common::printBack($browseLink);
}
?>
</div>
+1 -1
View File
@@ -56,7 +56,7 @@ $config->story->datatable->fieldList['id']['required'] = 'yes';
$config->story->datatable->fieldList['pri']['title'] = 'priAB';
$config->story->datatable->fieldList['pri']['fixed'] = 'left';
$config->story->datatable->fieldList['pri']['width'] = '40';
$config->story->datatable->fieldList['pri']['width'] = '50';
$config->story->datatable->fieldList['pri']['required'] = 'no';
$config->story->datatable->fieldList['title']['title'] = 'title';
+2 -2
View File
@@ -15,8 +15,8 @@
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='prefix'><strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<span class='label label-id'><?php echo $story->id;?></span>
<?php echo isonlybody() ? $story->title : html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?>
<small><?php echo $lang->arrow . $lang->story->activate;?></small>
</h2>
</div>
+4 -4
View File
@@ -15,7 +15,7 @@
<div class='main-content' id='mainContent'>
<div class='main-header'>
<h2>
<strong><?php echo $lang->story->common . $lang->colon . $lang->story->batchEdit;?></strong>
<?php echo $lang->story->common . $lang->colon . $lang->story->batchEdit;?>
<?php if($productName):?>
<small class='text-muted'><?php echo html::icon($lang->icons['product']) . ' ' . $lang->story->product . $lang->colon . ' ' . $productName;?></small>
<?php endif;?>
@@ -38,14 +38,14 @@ foreach(explode(',', $showFields) as $field)
<form method='post' target='hiddenwin' action="<?php echo inLink('batchEdit', "from=storyBatchEdit")?>">
<table class='table table-form table-fixed with-border'>
<thead>
<tr class='text-center'>
<tr>
<th class='w-40px'> <?php echo $lang->idAB;?></th>
<?php if($branchProduct):?>
<th class='w-150px<?php echo zget($visibleFields, 'branch', ' hidden')?>'><?php echo $lang->story->branch;?></th>
<?php endif;?>
<th class='w-150px'><?php echo $lang->story->module;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'plan', ' hidden')?>'><?php echo $lang->story->planAB;?></th>
<th class='w-150px'><?php echo $lang->story->title;?> <span class='required'></span></th>
<th class='w-150px required'><?php echo $lang->story->title;?></th>
<th class='w-50px<?php echo zget($visibleFields, 'estimate', ' hidden')?>'> <?php echo $lang->story->estimateAB;?></th>
<th class='w-70px<?php echo zget($visibleFields, 'pri', ' hidden')?>'> <?php echo $lang->priAB;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>'> <?php echo $lang->story->assignedTo;?></th>
@@ -79,7 +79,7 @@ foreach(explode(',', $showFields) as $field)
$productPlans = array('' => '', 'ditto' => $this->lang->story->ditto) + $productPlans;
}
?>
<tr class='text-center'>
<tr>
<td><?php echo $storyID . html::hidden("storyIDList[$storyID]", $storyID);?></td>
<?php if($branchProduct):?>
<td class='text-left<?php echo zget($visibleFields, 'branch', ' hidden')?>' style='overflow:visible'>
+2 -2
View File
@@ -15,8 +15,8 @@
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='prefix'><strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<span class='label label-id'><?php echo $story->id;?></span>
<?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?>
<small><?php echo $lang->arrow . ' ' . $lang->story->change;?></small>
</h2>
</div>
+37 -37
View File
@@ -12,43 +12,43 @@
?>
<?php include './header.html.php';?>
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2>
<span class='prefix'><?php echo html::icon($lang->icons['story']);?> <strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<small><?php echo $lang->arrow . $lang->story->close;?></small>
</h2>
</div>
<form method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->story->closedReason;?></th>
<td class='w-p25-f'><?php echo html::select('closedReason', $lang->story->reasonList, '', 'class=form-control onchange="setStory(this.value)"');?></td><td></td>
</tr>
<tr id='duplicateStoryBox' style='display:none'>
<th><?php echo $lang->story->duplicateStory;?></th>
<td><?php echo html::input('duplicateStory', '', "class='form-control' autocomplete='off'");?></td><td></td>
</tr>
<tr id='childStoriesBox' style='display:none'>
<th><?php echo $lang->story->childStories;?></th>
<td><?php echo html::input('childStories', '', "class='form-control' autocomplete='off'");?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->story->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='8' class='form-control'");?></td>
</tr>
<tr>
<td></td>
<td colspan='2'>
<?php echo html::submitButton();?>
<?php echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"));?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'>
<?php include '../../common/view/action.html.php';?>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='label label-id'><?php echo $story->id;?></span>
<?php echo isonlybody() ? $story->title : html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?>
<small><?php echo $lang->arrow . $lang->story->close;?></small>
</h2>
</div>
<form method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->story->closedReason;?></th>
<td class='w-p25-f'><?php echo html::select('closedReason', $lang->story->reasonList, '', 'class=form-control onchange="setStory(this.value)"');?></td><td></td>
</tr>
<tr id='duplicateStoryBox' style='display:none'>
<th><?php echo $lang->story->duplicateStory;?></th>
<td><?php echo html::input('duplicateStory', '', "class='form-control' autocomplete='off'");?></td><td></td>
</tr>
<tr id='childStoriesBox' style='display:none'>
<th><?php echo $lang->story->childStories;?></th>
<td><?php echo html::input('childStories', '', "class='form-control' autocomplete='off'");?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->story->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='8' class='form-control'");?></td>
</tr>
<tr>
<td></td>
<td colspan='2'>
<?php echo html::submitButton();?>
<?php echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"));?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>
+1 -1
View File
@@ -15,7 +15,7 @@
<form method='post' enctype='multipart/form-data' target='hiddenwin' id='dataform'>
<div class='main-header'>
<h2>
<span><?php echo html::icon($lang->icons['story']);?> <?php echo $story->id;?></span>
<span class='label label-id'><?php echo $story->id;?></span>
<?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title, '', 'class="story-title"');?>
<small><?php echo $lang->arrow . ' ' . $lang->story->edit;?></small>
</h2>
+2 -2
View File
@@ -14,8 +14,8 @@
<div class='main-content' id='mainContent'>
<div class='main-header'>
<h2>
<span class='prefix'><?php echo html::icon($lang->icons['story']);?> <strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<span class='label label-id'><?php echo $story->id;?></span>
<?php echo isonlybody() ? $story->title : html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?>
<small><?php echo $lang->arrow . $lang->story->linkStory;?></small>
</h2>
</div>
+2 -2
View File
@@ -19,8 +19,8 @@ var assignedTo = '<?php $story->lastEditedBy ? print($story->lastEditedBy) : pri
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='prefix'><strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<span class='label label-id'><?php echo $story->id;?></span>
<?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?>
<small><?php echo $lang->arrow . $lang->story->review;?></small>
</h2>
</div>
+1 -1
View File
@@ -12,7 +12,7 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../testcase/view/caseheader.html.php';?>
<div class='mainContent'>
<div id='mainContent' class='main-control'>
<form method='post' id='productStoryForm' class='main-table table-story' data-ride='table'>
<table class='table has-sort-head table-fixed' id='storyList'>
<thead>
+1 -1
View File
@@ -79,7 +79,7 @@ $config->task->datatable->fieldList['type']['required'] = 'no';
$config->task->datatable->fieldList['status']['title'] = 'statusAB';
$config->task->datatable->fieldList['status']['fixed'] = 'no';
$config->task->datatable->fieldList['status']['width'] = '70';
$config->task->datatable->fieldList['status']['width'] = '80';
$config->task->datatable->fieldList['status']['required'] = 'no';
$config->task->datatable->fieldList['estimate']['title'] = 'estimateAB';
+9 -5
View File
@@ -4,11 +4,15 @@
.outer .chosen-container-single + .input-group-btn > .btn {border-left: 0}
.outer .input-group > span {display: block; padding-right: 29px; max-width: 100%;}
.outer .input-group-btn > a {display: block; position: absolute; right: 0; width: 29px; top: 0}
.chosen-container[id^="story"] {width: 200px;}
.chosen-container[id^="story"] .chosen-drop {min-width: 450px;!important}
.chosen-container[id^="module"] .chosen-drop {min-width: 400px;!important}
.chosen-container[id^="story"] {width: 200px; max-width: 150px;}
.chosen-container[id^="story"] .chosen-drop {min-width: 450px !important;}
.chosen-container[id^="module"] .chosen-drop {min-width: 400px !important;}
[id^=name] {min-width: 165px;}
#zeroTaskStory{background-color: #fafafa; color: #808080; padding: 5px 8px; text-align: center; margin-left: 10px; border: 1px solid #ddd; }
#zeroTaskStory{background-color: #fafafa; color: #808080; padding: 5px 8px; text-align: center; margin-left: 10px; border: 1px solid #ddd;}
#zeroTaskStory .icon{display:none;}
#zeroTaskStory.zeroTask {background-color: #114f8e; color: #fff; border-color: #114f8e; }
#zeroTaskStory.zeroTask {background-color: #006af1; color: #fff; border-color: #006af1;}
#zeroTaskStory.zeroTask .icon{display:inline;}
#batchCreateForm .input-group .colorpicker {z-index: 2;}
#batchCreateForm .input-group .colorpicker.open {z-index: 5;}
-5
View File
@@ -1,5 +0,0 @@
.col-side .chosen-container .chosen-drop {width: 216px!important}
.col-side .chosen-container {width: 218px!important}
#finishedDate.form-control.form-date {width: 218px!important}
#canceledDate.form-control.form-date {width: 218px!important}
#closedDate.form-control.form-date {width: 218px!important}
+1 -1
View File
@@ -2094,7 +2094,7 @@ class taskModel extends model
if($id == 'deadline' and isset($task->delay)) $class .= ' delayed';
if($id == 'assignedTo')
{
$class .= ' c-actions';
$class .= ' c-actions text-left';
if($task->assignedTo == $account) $class .= ' red';
}
+42 -38
View File
@@ -12,44 +12,48 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['task']);?> <strong><?php echo $task->id;?></strong></span>
<strong><?php echo html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?></strong>
<small class='text-success'> <?php echo $lang->task->activate;?> <?php echo html::icon($lang->icons['activate']);?></small>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='label label-id'><?php echo $task->id;?></span>
<?php echo isonlybody() ? $task->name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?>
<small> <?php echo $lang->arrow . $lang->task->activate;?></small>
</h2>
</div>
<form method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-70px'><?php echo $lang->task->assignedTo;?></th>
<td class='w-p25-f'><?php echo html::select('assignedTo', $members, $task->finishedBy, "class='form-control chosen'");?></td>
<td></td>
</tr>
<tr>
<th><?php echo $lang->task->left;?></th>
<td>
<div class='input-group'>
<?php echo html::input('left', '', "class='form-control' autocomplete='off'");?>
<span class='input-group-addon'><?php echo $lang->task->hour;?></span>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='6' class='w-p98'");?></td>
</tr>
<tr>
<td colspan='3' class='text-center'>
<?php
echo html::submitButton($lang->task->activate);
echo html::linkButton($lang->goback, $this->session->taskList);
?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
</div>
<form class='form-condensed' method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-70px'><?php echo $lang->task->assignedTo;?></th>
<td class='w-p25-f'><?php echo html::select('assignedTo', $members, $task->finishedBy, "class='form-control chosen'");?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->task->left;?></th>
<td>
<div class='input-group'>
<?php echo html::input('left', '', "class='form-control' autocomplete='off'");?>
<span class='input-group-addon'><?php echo $lang->task->hour;?></span>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='6' class='w-p98'");?></td>
</tr>
<tr>
<td colspan='3' class='text-center'>
<?php
echo html::submitButton($lang->task->activate);
echo html::linkButton($lang->goback, $this->session->taskList);
?>
</td>
</tr>
</table>
</form>
<div class='main'>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>
+34 -27
View File
@@ -12,33 +12,40 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['task']);?> <strong><?php echo $task->id;?></strong></span>
<strong><?php echo html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?></strong>
<small class='text-muted'> <?php echo empty($task->team) ? $lang->task->assign : $lang->task->transfer;?></small>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='label label-id'><?php echo $task->id;?></span>
<?php echo isonlybody() ? $task->name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?>
<small> <?php echo $lang->arrow . (empty($task->team) ? $lang->task->assign : $lang->task->transfer);?></small>
</h2>
</div>
<form method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo empty($task->team) ? $lang->task->assign : $lang->task->transferTo;?></th>
<td class='w-p25-f'><?php echo html::select('assignedTo', $members, $task->assignedTo, "class='form-control chosen'");?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->task->left;?></th>
<td><div class='input-group'><?php echo html::input('left', $task->left, "class='form-control' autocomplete='off'");?> <span class='input-group-addon'><?php echo $lang->task->hour;?></span></div></td><td></td>
</tr>
<tr>
<th><?php echo $lang->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='6' class='form-control w-p98'");?></td>
</tr>
<tr>
<th></th>
<td colspan='2'>
<?php echo html::submitButton();?>
<?php echo html::linkButton($lang->goback, $this->session->taskList);?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
</div>
<form class='form-condensed' method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo empty($task->team) ? $lang->task->assign : $lang->task->transferTo;?></th>
<td class='w-p25-f'><?php echo html::select('assignedTo', $members, $task->assignedTo, "class='form-control chosen'");?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->task->left;?></th>
<td><div class='input-group'><?php echo html::input('left', $task->left, "class='form-control' autocomplete='off'");?> <span class='input-group-addon'><?php echo $lang->task->hour;?></span></div></td><td></td>
</tr>
<tr>
<th><?php echo $lang->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='6' class='form-control w-p98'");?></td>
</tr>
<tr>
<th></th><td colspan='2'><?php echo html::submitButton();?></td>
</tr>
</table>
</form>
<div class='main'>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>
+115 -95
View File
@@ -12,102 +12,124 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['task']);?></span>
<strong><small class='text-muted'><?php echo html::icon($lang->icons['batchCreate']);?></small> <?php echo $lang->task->batchCreate;?></strong>
<?php if($project->type != 'ops'):?><span><small><a href='javascript:toggleZeroTaskStory();' id='zeroTaskStory'><?php echo $lang->story->zeroTask;?><i class='icon icon-remove'></i></a></small></span><?php endif;?>
<div class='actions'>
<?php echo html::commonButton($lang->pasteText, "data-toggle='myModal'", 'btn btn-primary')?>
<button type="button" class="btn btn-default" data-toggle="customModal"><i class='icon icon-cog'></i> </button>
<div id="mainContent" class="main-content">
<div class="main-header">
<h2>
<?php echo $lang->task->batchCreate;?>
<?php if($project->type != 'ops'):?>
<span><small><a href='javascript:toggleZeroTaskStory();' id='zeroTaskStory'><?php echo $lang->story->zeroTask;?><i class='icon icon-sm icon-close'></i></a></small></span>
<?php endif;?>
</h2>
<div class="pull-right btn-toolbar">
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=task&section=custom&key=batchCreateFields')?>
<?php include '../../common/view/customfield.html.php';?>
</div>
</div>
<?php
$visibleFields = array();
foreach(explode(',', $showFields) as $field)
{
if($field)$visibleFields[$field] = '';
}
$colspan = count($visibleFields) + 3;
$hiddenStory = ((isonlybody() and $storyID) || $this->config->global->flow == 'onlyTask') ? ' hidden' : '';
if($hiddenStory and isset($visibleFields['story'])) $colspan -= 1;
?>
<form method='post' class='load-indicator main-form' enctype='multipart/form-data' target='hiddenwin' id="batchCreateForm">
<table class="table table-form" id="tableBody">
<thead>
<tr>
<th class='w-30px'><?php echo $lang->idAB;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'module', ' hidden')?>'><?php echo $lang->task->module?></th>
<?php if($project->type != 'ops'):?>
<th class='w-200px<?php echo zget($visibleFields, 'story', ' hidden'); echo $hiddenStory;?>'><?php echo $lang->task->story;?></th>
<?php endif;?>
<th class='required has-btn'>
<?php echo $lang->task->name;?></span>
<button type='button' data-toggle="importLinesModal" class="btn btn-info"><?php echo $lang->pasteText;?></button>
</th>
<th class='w-80px required'><?php echo $lang->typeAB;?></span></th>
<th class='w-150px<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>'><?php echo $lang->task->assignedTo;?></th>
<th class='w-50px<?php echo zget($visibleFields, 'estimate', ' hidden')?>'><?php echo $lang->task->estimateAB;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'estStarted', ' hidden')?>'><?php echo $lang->task->estStarted;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'deadline', ' hidden')?>'><?php echo $lang->task->deadline;?></th>
<th class='<?php echo zget($visibleFields, 'desc', ' hidden')?>'><?php echo $lang->task->desc;?></th>
<th class='w-70px<?php echo zget($visibleFields, 'pri', ' hidden')?>'><?php echo $lang->task->pri;?></th>
</tr>
</thead>
<tbody>
<?php
$stories['ditto'] = $lang->task->ditto;
$lang->task->typeList['ditto'] = $lang->task->ditto;
$members['ditto'] = $lang->task->ditto;
$modules['ditto'] = $lang->task->ditto;
if($project->type == 'ops') $colspan = $colspan - 1;
?>
<?php for($i = 0; $i < $config->task->batchCreate; $i++):?>
<?php
if($i == 0)
{
$currentStory = $storyID;
$type = '';
$member = '';
$module = $story ? $story->module : '';
}
else
{
$currentStory = $type = $member = $module = 'ditto';
}
?>
<?php $pri = 3;?>
<tr>
<td class='text-center'><?php echo $i + 1;?></td>
<td <?php echo zget($visibleFields, 'module', "class='hidden'")?> style='overflow:visible'>
<?php echo html::select("module[$i]", $modules, $module, "class='form-control chosen' onchange='setStories(this.value, $project->id, $i)'")?>
<?php echo html::hidden("parent[$i]", $parent);?>
</td>
<?php if($project->type != 'ops'):?>
<td <?php echo zget($visibleFields, 'story', "class='hidden'"); echo $hiddenStory;?> style='overflow: visible'>
<div class='input-group'>
<?php echo html::select("story[$i]", $stories, $currentStory, "class='form-control chosen' onchange='setStoryRelated($i)'");?>
<span class='input-group-btn'>
<a href='javascript:copyStoryTitle(<?php echo $i;?>)' class='btn' title='<?php echo $lang->task->copyStoryTitle; ?>'><i class='icon-angle-right'></i></a>
<?php echo html::hidden("storyEstimate$i") . html::hidden("storyDesc$i") . html::hidden("storyPri$i");?>
</span>
</div>
</td>
<?php endif;?>
<td style='overflow:visible'>
<div class='input-group'>
<div class="input-control has-icon-right">
<?php echo html::input("name[$i]", '', "class='form-control' autocomplete='off'");?>
<div class="colorpicker">
<button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown"><span class="cp-title"></span><span class="color-bar"></span><i class="ic"></i></button>
<ul class="dropdown-menu clearfix">
<li class="heading"><?php echo $lang->story->colorTag;?><i class="icon icon-close"></i></li>
</ul>
<?php echo html::hidden("color[$i]", '', "data-provide='colorpicker' data-icon='color' data-wrapper='input-control-icon-right' data-update-color='#name\\[$i\\]'");?>
</div>
</div>
</div>
</td>
<td><?php echo html::select("type[$i]", $lang->task->typeList, $type, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'assignedTo', "class='hidden'")?> style='overflow:visible'><?php echo html::select("assignedTo[$i]", $members, $member, "class='form-control chosen'");?></td>
<td <?php echo zget($visibleFields, 'estimate', "class='hidden'")?>><?php echo html::input("estimate[$i]", '', "class='form-control text-center' autocomplete='off'");?></td>
<td <?php echo zget($visibleFields, 'estStarted', "class='hidden'")?>><?php echo html::input("estStarted[$i]", '', "class='form-control text-center form-date'");?></td>
<td <?php echo zget($visibleFields, 'deadline', "class='hidden'")?>><?php echo html::input("deadline[$i]", '', "class='form-control text-center form-date'");?></td>
<td <?php echo zget($visibleFields, 'desc', "class='hidden'")?>><?php echo html::textarea("desc[$i]", '', "rows='1' class='form-control autosize'");?></td>
<td <?php echo zget($visibleFields, 'pri', "class='hidden'")?>><?php echo html::select("pri[$i]", (array)$lang->task->priList, $pri, 'class=form-control');?></td>
</tr>
<?php endfor;?>
<tr>
<td colspan='<?php echo $colspan?>' class='text-center'>
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
<?php echo html::backButton('', '', 'btn btn-wide btn-gray');?>
</td>
</tr>
</tbody>
</table>
</form>
</div>
<?php
$visibleFields = array();
foreach(explode(',', $showFields) as $field)
{
if($field)$visibleFields[$field] = '';
}
$colspan = count($visibleFields) + 3;
$hiddenStory = ((isonlybody() and $storyID) || $this->config->global->flow == 'onlyTask') ? ' hidden' : '';
if($hiddenStory and isset($visibleFields['story'])) $colspan -= 1;
?>
<form class='form-condensed' method='post' target='hiddenwin'>
<table class='table table-form table-fixed with-border' id="tableBody">
<thead>
<tr class='text-center'>
<th class='w-30px'><?php echo $lang->idAB;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'module', ' hidden')?>'><?php echo $lang->task->module?></th>
<?php if($project->type != 'ops'):?><th class='w-200px<?php echo zget($visibleFields, 'story', ' hidden'); echo $hiddenStory;?>'><?php echo $lang->task->story;?></th><?php endif;?>
<th><?php echo $lang->task->name;?> <span class='required'></span></th>
<th class='w-80px'><?php echo $lang->typeAB;?> <span class='required'></span></th>
<th class='w-150px<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>'><?php echo $lang->task->assignedTo;?></th>
<th class='w-50px<?php echo zget($visibleFields, 'estimate', ' hidden')?>'><?php echo $lang->task->estimateAB;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'estStarted', ' hidden')?>'><?php echo $lang->task->estStarted;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'deadline', ' hidden')?>'><?php echo $lang->task->deadline;?></th>
<th class='w-p20<?php echo zget($visibleFields, 'desc', ' hidden')?>'><?php echo $lang->task->desc;?></th>
<th class='w-70px<?php echo zget($visibleFields, 'pri', ' hidden')?>'><?php echo $lang->task->pri;?></th>
</tr>
</thead>
<?php
$stories['ditto'] = $lang->task->ditto;
$lang->task->typeList['ditto'] = $lang->task->ditto;
$members['ditto'] = $lang->task->ditto;
$modules['ditto'] = $lang->task->ditto;
if($project->type == 'ops') $colspan = $colspan - 1;
?>
<?php for($i = 0; $i < $config->task->batchCreate; $i++):?>
<?php
if($i == 0)
{
$currentStory = $storyID;
$type = '';
$member = '';
$module = $story ? $story->module : '';
}
else
{
$currentStory = $type = $member = $module = 'ditto';
}
?>
<?php $pri = 3;?>
<tr>
<td class='text-center'><?php echo $i + 1;?></td>
<td <?php echo zget($visibleFields, 'module', "class='hidden'")?> style='overflow:visible'>
<?php echo html::select("module[$i]", $modules, $module, "class='form-control chosen' onchange='setStories(this.value, $project->id, $i)'")?>
<?php echo html::hidden("parent[$i]", $parent);?>
</td>
<?php if($project->type != 'ops'):?>
<td <?php echo zget($visibleFields, 'story', "class='hidden'"); echo $hiddenStory;?> style='overflow: visible'>
<div class='input-group'>
<?php echo html::select("story[$i]", $stories, $currentStory, "class='form-control chosen' onchange='setStoryRelated($i)'");?>
<span class='input-group-btn'>
<a href='javascript:copyStoryTitle(<?php echo $i;?>)' class='btn' title='<?php echo $lang->task->copyStoryTitle; ?>'><i class='icon-angle-right'></i></a>
<?php echo html::hidden("storyEstimate$i") . html::hidden("storyDesc$i") . html::hidden("storyPri$i");?>
</span>
</div>
</td>
<?php endif;?>
<td style='overflow:visible'>
<div class='input-group'>
<?php echo html::hidden("color[$i]", '', "data-provide='colorpicker' data-wrapper='input-group-btn fix-border-right' data-pull-menu-right='false' data-btn-tip='{$lang->task->colorTag}' data-update-text='#name\\[{$i}\\]'");?>
<?php echo html::input("name[$i]", '', "class='form-control' autocomplete='off'");?>
</div>
</td>
<td><?php echo html::select("type[$i]", $lang->task->typeList, $type, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'assignedTo', "class='hidden'")?> style='overflow:visible'><?php echo html::select("assignedTo[$i]", $members, $member, "class='form-control chosen'");?></td>
<td <?php echo zget($visibleFields, 'estimate', "class='hidden'")?>><?php echo html::input("estimate[$i]", '', "class='form-control text-center' autocomplete='off'");?></td>
<td <?php echo zget($visibleFields, 'estStarted', "class='hidden'")?>><?php echo html::input("estStarted[$i]", '', "class='form-control text-center form-date'");?></td>
<td <?php echo zget($visibleFields, 'deadline', "class='hidden'")?>><?php echo html::input("deadline[$i]", '', "class='form-control text-center form-date'");?></td>
<td <?php echo zget($visibleFields, 'desc', "class='hidden'")?>><?php echo html::textarea("desc[$i]", '', "rows='1' class='form-control autosize'");?></td>
<td <?php echo zget($visibleFields, 'pri', "class='hidden'")?>><?php echo html::select("pri[$i]", (array)$lang->task->priList, $pri, 'class=form-control');?></td>
</tr>
<?php endfor;?>
<tr><td colspan='<?php echo $colspan?>' class='text-center'><?php echo html::submitButton() . html::backButton();?></td></tr>
</table>
</form>
<table class='hide' id='trTemp'>
<tbody>
<tr>
@@ -145,7 +167,5 @@ if($hiddenStory and isset($visibleFields['story'])) $colspan -= 1;
<?php js::set('mainField', 'name');?>
<?php js::set('ditto', $lang->task->ditto);?>
<?php js::set('storyID', $storyID);?>
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=task&section=custom&key=batchCreateFields')?>
<?php include '../../common/view/customfield.html.php';?>
<?php include '../../common/view/pastetext.html.php';?>
<?php include '../../common/view/footer.html.php';?>
+93 -85
View File
@@ -13,92 +13,100 @@
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<?php js::set('dittoNotice', $this->lang->task->dittoNotice);?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['task']);?></span>
<strong><small class='text-muted'><?php echo html::icon($lang->icons['batchEdit']);?></small> <?php echo $lang->task->batchEdit . ' ' . $lang->task->common;?></strong>
<div class='actions'>
<button type="button" class="btn btn-default" data-toggle="customModal"><i class='icon icon-cog'></i> </button>
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2>
<?php echo $lang->task->common . $lang->colon . $lang->task->batchEdit;?>
<?php if($projectName):?>
<small class='text-muted'><?php echo html::icon($lang->icons['project']) . ' ' . $lang->task->project . $lang->colon . ' ' . $projectName;?></small>
<?php endif;?>
</h2>
<div class='pull-right btn-toolbar'>
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=task&section=custom&key=batchEditFields')?>
<?php include '../../common/view/customfield.html.php';?>
</div>
</div>
<?php if(isset($suhosinInfo)):?>
<div class='alert alert-info'><?php echo $suhosinInfo;?></div>
<?php else:?>
<?php
$visibleFields = array();
foreach(explode(',', $showFields) as $field)
{
if($field)$visibleFields[$field] = '';
}
?>
<form class='main-form' method='post' target='hiddenwin' action="<?php echo inLink('batchEdit', "projectID={$projectID}")?>">
<table class='table table-form table-fixed with-border'>
<thead>
<tr>
<th class='w-50px'><?php echo $lang->idAB;?></th>
<th class='required <?php if(count($visibleFields) > 10) echo 'w-150px';?>'><?php echo $lang->task->name?></th>
<th class='w-150px<?php echo zget($visibleFields, 'module', ' hidden')?>'><?php echo $lang->task->module?></th>
<th class='w-150px<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>'><?php echo $lang->task->assignedTo;?></th>
<th class='w-80px required'><?php echo $lang->typeAB;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'status', ' hidden')?>'><?php echo $lang->task->status;?></th>
<th class='w-70px<?php echo zget($visibleFields, 'pri', ' hidden')?>'><?php echo $lang->task->pri;?></th>
<th class='w-40px<?php echo zget($visibleFields, 'estimate', ' hidden')?>'><?php echo $lang->task->estimateAB;?></th>
<th class='w-50px<?php echo zget($visibleFields, 'record', ' hidden')?>'><?php echo $lang->task->consumedThisTime?></th>
<th class='w-40px<?php echo zget($visibleFields, 'left', ' hidden')?>'><?php echo $lang->task->leftAB?></th>
<th class='w-90px<?php echo zget($visibleFields, 'estStarted', ' hidden')?>'><?php echo $lang->task->estStarted?></th>
<th class='w-90px<?php echo zget($visibleFields, 'deadline', ' hidden')?>'><?php echo $lang->task->deadline?></th>
<th class='w-100px<?php echo zget($visibleFields, 'finishedBy', ' hidden')?>'><?php echo $lang->task->finishedBy;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'canceledBy', ' hidden')?>'><?php echo $lang->task->canceledBy;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'closedBy', ' hidden')?>'><?php echo $lang->task->closedBy;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'closedReason', ' hidden')?>'><?php echo $lang->task->closedReason;?></th>
</tr>
</thead>
<tbody>
<?php foreach($taskIDList as $taskID):?>
<?php
if(!isset($project))
{
$prjInfo = $this->project->getById($tasks[$taskID]->project);
$modules = $this->tree->getOptionMenu($tasks[$taskID]->project, $viewType = 'task');
foreach($modules as $moduleID => $moduleName) $modules[$moduleID] = '/' . $prjInfo->name. $moduleName;
$modules = array('ditto' => $this->lang->task->ditto) + $modules;
$members = $this->project->getTeamMemberPairs($tasks[$taskID]->project, 'nodeleted');
$members = array('' => '', 'ditto' => $this->lang->task->ditto) + $members;
}
?>
<tr>
<td><?php echo $taskID . html::hidden("taskIDList[$taskID]", $taskID);?></td>
<td style='overflow:visible' title='<?php echo $tasks[$taskID]->name?>'>
<div class='input-group'>
<?php echo html::hidden("colors[$taskID]", $tasks[$taskID]->color, "data-provide='colorpicker' data-wrapper='input-group-btn fix-border-right' data-pull-menu-right='false' data-btn-tip='{$lang->task->colorTag}' data-update-text='#names\\[{$taskID}\\]'");?>
<?php echo html::input("names[$taskID]", $tasks[$taskID]->name, "class='form-control' autocomplete='off'");?>
</div>
</td>
<td class='text-left<?php echo zget($visibleFields, 'module', ' hidden')?>' style='overflow:visible'><?php echo html::select("modules[$taskID]", $modules, $tasks[$taskID]->module, "class='form-control chosen'")?></td>
<td class='text-left<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>' style='overflow:visible'><?php echo html::select("assignedTos[$taskID]", $members, $tasks[$taskID]->assignedTo, "class='form-control chosen'");?></td>
<td><?php echo html::select("types[$taskID]", $typeList, $tasks[$taskID]->type, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'status', "class='hidden'")?>><?php echo html::select("statuses[$taskID]", $statusList, $tasks[$taskID]->status, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'pri', "class='hidden'")?>><?php echo html::select("pris[$taskID]", $priList, $tasks[$taskID]->pri, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'estimate', "class='hidden'")?>><?php echo html::input("estimates[$taskID]", $tasks[$taskID]->estimate, "class='form-control text-center' autocomplete='off'");?></td>
<td <?php echo zget($visibleFields, 'record', "class='hidden'")?>><?php echo html::input("consumeds[$taskID]", '', "class='form-control text-center' autocomplete='off'");?></td>
<td <?php echo zget($visibleFields, 'left', "class='hidden'")?>><?php echo html::input("lefts[$taskID]", $tasks[$taskID]->left, "class='form-control text-center' autocomplete='off'");?></td>
<td <?php echo zget($visibleFields, 'estStarted', "class='hidden'")?>><?php echo html::input("estStarteds[$taskID]", $tasks[$taskID]->estStarted, "class='form-control text-center form-date'");?></td>
<td <?php echo zget($visibleFields, 'deadline', "class='hidden'")?>><?php echo html::input("deadlines[$taskID]", $tasks[$taskID]->deadline, "class='form-control text-center form-date'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'finishedBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("finishedBys[$taskID]", $members, $tasks[$taskID]->finishedBy, "class='form-control chosen'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'canceledBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("canceledBys[$taskID]", $members, $tasks[$taskID]->canceledBy, "class='form-control chosen'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'closedBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("closedBys[$taskID]", $members, $tasks[$taskID]->closedBy, "class='form-control chosen'");?></td>
<td <?php echo zget($visibleFields, 'closedReason', "class='hidden'")?>><?php echo html::select("closedReasons[$taskID]", $lang->task->reasonList, $tasks[$taskID]->closedReason, 'class=form-control');?></td>
</tr>
<?php endforeach;?>
</tbody>
<tfoot>
<tr>
<td colspan='<?php echo count($visibleFields) + 3;?>' class='text-center'>
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
<?php echo html::backButton('', '', 'btn btn-wide btn-gray');?>
</td>
</tr>
</tfoot>
</table>
</form>
<?php endif;?>
</div>
<?php if(isset($suhosinInfo)):?>
<div class='alert alert-info'><?php echo $suhosinInfo;?></div>
<?php else:?>
<?php
$visibleFields = array();
foreach(explode(',', $showFields) as $field)
{
if($field)$visibleFields[$field] = '';
}
?>
<form class='form-condensed' method='post' target='hiddenwin' action="<?php echo inLink('batchEdit', "projectID={$projectID}")?>">
<table class='table table-form table-fixed with-border'>
<thead>
<tr>
<th class='w-50px'><?php echo $lang->idAB;?></th>
<th <?php if(count($visibleFields) > 10) echo "class='w-150px'"?>> <?php echo $lang->task->name?> <span class='required'></span></th>
<th class='w-150px<?php echo zget($visibleFields, 'module', ' hidden')?>'><?php echo $lang->task->module?></th>
<th class='w-150px<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>'><?php echo $lang->task->assignedTo;?></th>
<th class='w-80px'><?php echo $lang->typeAB;?> <span class='required'></span></th>
<th class='w-100px<?php echo zget($visibleFields, 'status', ' hidden')?>'><?php echo $lang->task->status;?></th>
<th class='w-70px<?php echo zget($visibleFields, 'pri', ' hidden')?>'><?php echo $lang->task->pri;?></th>
<th class='w-40px<?php echo zget($visibleFields, 'estimate', ' hidden')?>'><?php echo $lang->task->estimateAB;?></th>
<th class='w-50px<?php echo zget($visibleFields, 'record', ' hidden')?>'><?php echo $lang->task->consumedThisTime?></th>
<th class='w-40px<?php echo zget($visibleFields, 'left', ' hidden')?>'><?php echo $lang->task->leftAB?></th>
<th class='w-90px<?php echo zget($visibleFields, 'estStarted', ' hidden')?>'><?php echo $lang->task->estStarted?></th>
<th class='w-90px<?php echo zget($visibleFields, 'deadline', ' hidden')?>'><?php echo $lang->task->deadline?></th>
<th class='w-100px<?php echo zget($visibleFields, 'finishedBy', ' hidden')?>'><?php echo $lang->task->finishedBy;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'canceledBy', ' hidden')?>'><?php echo $lang->task->canceledBy;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'closedBy', ' hidden')?>'><?php echo $lang->task->closedBy;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'closedReason', ' hidden')?>'><?php echo $lang->task->closedReason;?></th>
</tr>
</thead>
<tbody>
<?php foreach($taskIDList as $taskID):?>
<?php
if(!isset($project))
{
$prjInfo = $this->project->getById($tasks[$taskID]->project);
$modules = $this->tree->getOptionMenu($tasks[$taskID]->project, $viewType = 'task');
foreach($modules as $moduleID => $moduleName) $modules[$moduleID] = '/' . $prjInfo->name. $moduleName;
$modules = array('ditto' => $this->lang->task->ditto) + $modules;
$members = $this->project->getTeamMemberPairs($tasks[$taskID]->project, 'nodeleted');
$members = array('' => '', 'ditto' => $this->lang->task->ditto) + $members;
}
?>
<tr class='text-center'>
<td><?php echo $taskID . html::hidden("taskIDList[$taskID]", $taskID);?></td>
<td style='overflow:visible' title='<?php echo $tasks[$taskID]->name?>'>
<div class='input-group'>
<?php echo html::hidden("colors[$taskID]", $tasks[$taskID]->color, "data-provide='colorpicker' data-wrapper='input-group-btn fix-border-right' data-pull-menu-right='false' data-btn-tip='{$lang->task->colorTag}' data-update-text='#names\\[{$taskID}\\]'");?>
<?php echo html::input("names[$taskID]", $tasks[$taskID]->name, "class='form-control' autocomplete='off'");?>
</div>
</td>
<td class='text-left<?php echo zget($visibleFields, 'module', ' hidden')?>' style='overflow:visible'><?php echo html::select("modules[$taskID]", $modules, $tasks[$taskID]->module, "class='form-control chosen'")?></td>
<td class='text-left<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>' style='overflow:visible'><?php echo html::select("assignedTos[$taskID]", $members, $tasks[$taskID]->assignedTo, "class='form-control chosen'");?></td>
<td><?php echo html::select("types[$taskID]", $typeList, $tasks[$taskID]->type, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'status', "class='hidden'")?>><?php echo html::select("statuses[$taskID]", $statusList, $tasks[$taskID]->status, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'pri', "class='hidden'")?>><?php echo html::select("pris[$taskID]", $priList, $tasks[$taskID]->pri, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'estimate', "class='hidden'")?>><?php echo html::input("estimates[$taskID]", $tasks[$taskID]->estimate, "class='form-control text-center' autocomplete='off'");?></td>
<td <?php echo zget($visibleFields, 'record', "class='hidden'")?>><?php echo html::input("consumeds[$taskID]", '', "class='form-control text-center' autocomplete='off'");?></td>
<td <?php echo zget($visibleFields, 'left', "class='hidden'")?>><?php echo html::input("lefts[$taskID]", $tasks[$taskID]->left, "class='form-control text-center' autocomplete='off'");?></td>
<td <?php echo zget($visibleFields, 'estStarted', "class='hidden'")?>><?php echo html::input("estStarteds[$taskID]", $tasks[$taskID]->estStarted, "class='form-control text-center form-date'");?></td>
<td <?php echo zget($visibleFields, 'deadline', "class='hidden'")?>><?php echo html::input("deadlines[$taskID]", $tasks[$taskID]->deadline, "class='form-control text-center form-date'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'finishedBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("finishedBys[$taskID]", $members, $tasks[$taskID]->finishedBy, "class='form-control chosen'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'canceledBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("canceledBys[$taskID]", $members, $tasks[$taskID]->canceledBy, "class='form-control chosen'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'closedBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("closedBys[$taskID]", $members, $tasks[$taskID]->closedBy, "class='form-control chosen'");?></td>
<td <?php echo zget($visibleFields, 'closedReason', "class='hidden'")?>><?php echo html::select("closedReasons[$taskID]", $lang->task->reasonList, $tasks[$taskID]->closedReason, 'class=form-control');?></td>
</tr>
<?php endforeach;?>
</tbody>
<tfoot>
<tr><td colspan='<?php echo count($visibleFields) + 3;?>'><?php echo html::submitButton();?></td></tr>
</tfoot>
</table>
</form>
<?php endif;?>
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=task&section=custom&key=batchEditFields')?>
<?php include '../../common/view/customfield.html.php';?>
<?php include '../../common/view/footer.html.php';?>
-36
View File
@@ -1,36 +0,0 @@
<?php
/**
* The browse view file of task 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 task
* @version $Id: browse.html.php 4129 2013-01-18 01:58:14Z wwccss $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div id='doc3'>
<table align='center' class='table-4'>
<caption><?php echo $lang->task->browse;?></caption>
<tr>
<th><?php echo $lang->task->id;?></th>
<th><?php echo $lang->task->name;?></th>
<th><?php echo $lang->task->assignedTo;?></th>
</tr>
<?php foreach($tasks as $task):?>
<tr>
<td><?php echo $task->id;?></td>
<td><?php echo $task->name;?></td>
<td><?php echo $task->assignedTo;?></td>
</tr>
<?php endforeach;?>
</table>
<?php
$vars['project'] = $project;
$addLink = $this->createLink($this->moduleName, 'create', $vars);
echo "<a href='$addLink'>{$lang->task->create}</a>";
?>
</div>
<?php include '../../common/view/footer.html.php';?>
+27 -18
View File
@@ -12,24 +12,33 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['task']);?> <strong><?php echo $task->id;?></strong></span>
<strong><?php echo html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?></strong>
<small class='text-muted'> <?php echo $lang->task->cancel;?> <?php echo html::icon($lang->icons['cancel']);?></small>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='label label-id'><?php echo $task->id;?></span>
<?php echo isonlybody() ? $task->name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?>
<small> <?php echo $lang->arrow . $lang->task->cancel;?></small>
</div>
</div>
<form method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th><?php echo $lang->comment;?></th>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control'");?></td>
</tr>
<tr>
<th></th>
<td>
<?php echo html::submitButton($lang->task->cancel);?>
<?php echo html::linkButton($lang->goback, $this->session->taskList);?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
</div>
<form class='form-condensed' method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th><?php echo $lang->comment;?></th>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control'");?></td>
</tr>
<tr><th></th><td><?php echo html::submitButton($lang->task->cancel);?></td></tr>
</table>
</form>
<div class='main'>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>
+27 -20
View File
@@ -12,26 +12,33 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['task']);?> <strong><?php echo $task->id;?></strong></span>
<strong><?php echo html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?></strong>
<small class='text-danger'> <?php echo $lang->task->close;?> <?php echo html::icon($lang->icons['close']);?></small>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='label label-id'><?php echo $task->id;?></span>
<?php echo isonlybody() ? $task->name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?>
<small><?php echo $lang->arrow . $lang->task->close;?></small>
</h2>
</div>
<form method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th><?php echo $lang->comment;?></th>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control'");?></td>
</tr>
<tr>
<th></th>
<td>
<?php echo html::submitButton($lang->task->close);?>
<?php echo html::linkButton($lang->goback, $this->session->taskList);?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
</div>
<form class='form-condensed' method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th><?php echo $lang->comment;?></th>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control'");?></td>
</tr>
<tr>
<th></th><td><?php echo html::submitButton($lang->task->close);?></td>
</tr>
</table>
</form>
<div class='main'>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>
+219 -217
View File
@@ -18,228 +18,230 @@
<?php js::set('oldProjectID', $task->project); ?>
<?php js::set('confirmChangeProject', $lang->task->confirmChangeProject); ?>
<?php js::set('changeProjectConfirmed', false); ?>
<form class='form-condensed' method='post' enctype='multipart/form-data' target='hiddenwin' id='dataform'>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['task']);?> <strong><?php echo $task->id;?></strong></span>
<strong><?php echo html::a($this->createLink('task', 'view', "taskID=$task->id"), $task->name, '', "class='task-title'");?></strong>
<small><?php echo html::icon($lang->icons['edit']) . ' ' . $lang->task->edit;?></small>
</div>
<div class='actions'>
<?php echo html::submitButton($lang->save)?>
</div>
</div>
<div class='row-table'>
<div class='col-main'>
<div class='main'>
<div class='form-group'>
<div class='input-group'>
<input type='hidden' id='color' name='color' data-provide='colorpicker' data-wrapper='input-group-btn fix-border-right' data-pull-menu-right='false' data-btn-tip='<?php echo $lang->task->colorTag ?>' value='<?php echo $task->color ?>' data-update-text='.task-title, #name'>
<?php echo html::input('name', $task->name, 'class="form-control" autocomplete="off" placeholder="' . $lang->task->name . '"');?>
<?php if(empty($task->children) and empty($task->parent) and $task->type != 'affair'):?>
<span class='input-group-addon'>
<label class='checkbox-inline'>
<input type='checkBox' name='multiple' value='1' <?php echo empty($task->team) ? '' : 'checked';?> />
<?php echo $lang->task->multipleAB;?>
</label>
</span>
<?php endif;?>
<div class='main-content' id='mainContent'>
<form method='post' enctype='multipart/form-data' target='hiddenwin' id='dataform'>
<div class='main-header'>
<h2>
<span class='label label-id'><?php echo $task->id;?></span>
<?php echo html::a($this->createLink('task', 'view', "taskID=$task->id"), $task->name, '', "class='task-title'");?>
<small><?php echo $lang->arrow . $lang->task->edit;?></small>
</h2>
<div class='btn-toolbar pull-right'>
<?php echo html::submitButton($lang->save)?>
</div>
</div>
<div class='main-row'>
<div class='main-col col-8'>
<div class='cell'>
<div class='form-group'>
<div class='input-group'>
<input type='hidden' id='color' name='color' data-provide='colorpicker' data-wrapper='input-group-btn fix-border-right' data-pull-menu-right='false' data-btn-tip='<?php echo $lang->task->colorTag ?>' value='<?php echo $task->color ?>' data-update-text='.task-title, #name'>
<?php echo html::input('name', $task->name, 'class="form-control" autocomplete="off" placeholder="' . $lang->task->name . '"');?>
<?php if(empty($task->children) and empty($task->parent) and $task->type != 'affair'):?>
<span class='input-group-addon'>
<label class='checkbox-inline'>
<input type='checkBox' name='multiple' value='1' <?php echo empty($task->team) ? '' : 'checked';?> />
<?php echo $lang->task->multipleAB;?>
</label>
</span>
<?php endif;?>
</div>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->task->desc;?></div>
<div class='detail-content'>
<?php echo html::textarea('desc', htmlspecialchars($task->desc), "rows='8' class='form-control'");?>
</div>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->comment;?></div>
<div class='detail-content'><?php echo html::textarea('comment', '', "rows='5' class='form-control'");?></div>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->files;?></div>
<div class='detail-content'><?php echo $this->fetch('file', 'buildform');?></div>
</div>
<div class='detail'>
<?php echo html::hidden('lastEditedDate', $task->lastEditedDate);?>
<?php echo html::submitButton($lang->save) . html::linkButton($lang->goback, $this->inlink('view', "taskID=$task->id")) . html::hidden('consumed', $task->consumed);?>
</div>
<?php include '../../common/view/action.html.php';?>
</div>
</div>
<fieldset class='fieldset-pure'>
<legend><?php echo $lang->task->desc;?></legend>
<div class='form-group'>
<?php echo html::textarea('desc', htmlspecialchars($task->desc), "rows='8' class='form-control'");?>
<div class='side-col col-4'>
<div class='cell'>
<div class='detail'>
<div class='detail-title'><?php echo $lang->task->legendBasic;?></div>
<table class='table table-form'>
<?php if(empty($task->parent)):?>
<tr>
<th class='w-80px'><?php echo $lang->task->project;?></th>
<td><?php echo html::select('project', $projects, $task->project, 'class="form-control chosen" onchange="loadAll(this.value)"');?></td>
</tr>
<?php endif;?>
<tr>
<th class='w-80px'><?php echo $lang->task->module;?></th>
<td id="moduleIdBox"><?php echo html::select('module', $modules, $task->module, 'class="form-control chosen" onchange="loadModuleRelated()"');?></td>
</tr>
<?php if($config->global->flow != 'onlyTask' and $project->type != 'ops'):?>
<tr>
<th><?php echo $lang->task->story;?></th>
<td><span id="storyIdBox"><?php echo html::select('story', $stories, $task->story, "class='form-control chosen'");?></span></td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->task->assignedTo;?></th>
<td><span id="assignedToIdBox"><?php echo html::select('assignedTo', $members, $task->assignedTo, "class='form-control chosen'");?></span></td>
</tr>
<tr class='<?php echo empty($task->team) ? 'hidden' : ''?>' id='teamTr'>
<th><?php echo $lang->task->team;?></th>
<td><?php echo html::a('javascript:;', $lang->task->team, '', "class='form-control btn' data-toggle='modalTeam'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->type;?></th>
<td><?php echo html::select('type', $lang->task->typeList, $task->type, "class='form-control chosen'");?></td>
</tr>
<?php if(empty($task->children)):?>
<tr>
<th><?php echo $lang->task->status;?></th>
<td><?php echo html::select('status', (array)$lang->task->statusList, $task->status, "class='form-control chosen'");?></td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->task->pri;?></th>
<td><?php echo html::select('pri', $lang->task->priList, $task->pri, "class='form-control chosen'");?> </td>
</tr>
<tr>
<th><?php echo $lang->task->mailto;?></th>
<td>
<?php echo html::select('mailto[]', $project->acl == 'private' ? $members : $users, str_replace(' ' , '', $task->mailto), 'class="form-control" multiple');?>
<?php echo $this->fetch('my', 'buildContactLists');?>
</td>
</tr>
</table>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->task->legendEffort;?></div>
<table class='table table-form'>
<tr>
<th class='w-70px'><?php echo $lang->task->estStarted;?></th>
<td><?php echo html::input('estStarted', $task->estStarted, "class='form-control form-date'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->realStarted;?></th>
<td><?php echo html::input('realStarted', $task->realStarted, "class='form-control form-date'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->deadline;?></th>
<td><?php echo html::input('deadline', $task->deadline, "class='form-control form-date'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->estimate;?></th>
<td><?php echo html::input('estimate', $task->estimate, "class='form-control' autocomplete='off'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->consumed;?></th>
<td><?php echo $task->consumed . ' '; common::printIcon('task', 'recordEstimate', "taskID=$task->id", $task, 'list', '', '', 'iframe', true);?></td>
</tr>
<tr>
<th><?php echo $lang->task->left;?></th>
<td><?php echo html::input('left', $task->left, "class='form-control' autocomplete='off'");?></td>
</tr>
</table>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->task->legendLife;?></div>
<table class='table table-form'>
<tr>
<th class='w-70px'><?php echo $lang->task->openedBy;?></th>
<td><?php echo $users[$task->openedBy];?></td>
</tr>
<tr>
<th><?php echo $lang->task->finishedBy;?></th>
<td><?php echo html::select('finishedBy', $members, $task->finishedBy, "class='form-control chosen'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->finishedDate;?></th>
<td><?php echo html::input('finishedDate', $task->finishedDate, 'class="form-control form-date"');?></td>
</tr>
<tr>
<th><?php echo $lang->task->canceledBy;?></th>
<td><?php echo html::select('canceledBy', $users, $task->canceledBy, 'class="form-control chosen"');?></td>
</tr>
<tr>
<th><?php echo $lang->task->canceledDate;?></th>
<td><?php echo html::input('canceledDate', $task->canceledDate, 'class="form-control form-date"');?></td>
</tr>
<tr>
<th><?php echo $lang->task->closedBy;?></th>
<td><?php echo html::select('closedBy', $users, $task->closedBy, 'class="form-control chosen"');?></td>
</tr>
<tr>
<th><?php echo $lang->task->closedReason;?></th>
<td><?php echo html::select('closedReason', $lang->task->reasonList, $task->closedReason, 'class="form-control chosen"');?></td>
</tr>
<tr>
<th><?php echo $lang->task->closedDate;?></th>
<td><?php echo html::input('closedDate', $task->closedDate, 'class="form-control form-date"');?></td>
</tr>
</table>
</div>
</div>
</fieldset>
<fieldset class='fieldset-pure'>
<legend><?php echo $lang->comment;?></legend>
<div class='form-group'><?php echo html::textarea('comment', '', "rows='5' class='form-control'");?></div>
</fieldset>
<fieldset class='fieldset-pure'>
<legend><?php echo $lang->files;?></legend>
<div class='form-group'><?php echo $this->fetch('file', 'buildform');?></div>
</fieldset>
<div class='actions actions-form'>
<?php echo html::hidden('lastEditedDate', $task->lastEditedDate);?>
<?php echo html::submitButton($lang->save) . html::linkButton($lang->goback, $this->inlink('view', "taskID=$task->id")) . html::hidden('consumed', $task->consumed);?>
</div>
<?php include '../../common/view/action.html.php';?>
</div>
</div>
<div class='col-side'>
<div class='main main-side'>
<fieldset>
<legend><?php echo $lang->task->legendBasic;?></legend>
<table class='table table-form'>
<?php if(empty($task->parent)):?>
<tr>
<th class='w-80px'><?php echo $lang->task->project;?></th>
<td><?php echo html::select('project', $projects, $task->project, 'class="form-control chosen" onchange="loadAll(this.value)"');?></td>
</tr>
<?php endif;?>
<tr>
<th class='w-80px'><?php echo $lang->task->module;?></th>
<td id="moduleIdBox"><?php echo html::select('module', $modules, $task->module, 'class="form-control chosen" onchange="loadModuleRelated()"');?></td>
</tr>
<?php if($config->global->flow != 'onlyTask' and $project->type != 'ops'):?>
<tr>
<th><?php echo $lang->task->story;?></th>
<td><span id="storyIdBox"><?php echo html::select('story', $stories, $task->story, "class='form-control chosen'");?></span></td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->task->assignedTo;?></th>
<td><span id="assignedToIdBox"><?php echo html::select('assignedTo', $members, $task->assignedTo, "class='form-control chosen'");?></span></td>
</tr>
<tr class='<?php echo empty($task->team) ? 'hidden' : ''?>' id='teamTr'>
<th><?php echo $lang->task->team;?></th>
<td><?php echo html::a('javascript:;', $lang->task->team, '', "class='form-control btn' data-toggle='modalTeam'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->type;?></th>
<td><?php echo html::select('type', $lang->task->typeList, $task->type, "class='form-control chosen'");?></td>
</tr>
<?php if(empty($task->children)):?>
<tr>
<th><?php echo $lang->task->status;?></th>
<td><?php echo html::select('status', (array)$lang->task->statusList, $task->status, "class='form-control chosen'");?></td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->task->pri;?></th>
<td><?php echo html::select('pri', $lang->task->priList, $task->pri, "class='form-control chosen'");?> </td>
</tr>
<tr>
<th><?php echo $lang->task->mailto;?></th>
<td>
<?php echo html::select('mailto[]', $project->acl == 'private' ? $members : $users, str_replace(' ' , '', $task->mailto), 'class="form-control" multiple');?>
<?php echo $this->fetch('my', 'buildContactLists');?>
</td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->task->legendEffort;?></legend>
<table class='table table-form'>
<tr>
<th class='w-70px'><?php echo $lang->task->estStarted;?></th>
<td><?php echo html::input('estStarted', $task->estStarted, "class='form-control form-date'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->realStarted;?></th>
<td><?php echo html::input('realStarted', $task->realStarted, "class='form-control form-date'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->deadline;?></th>
<td><?php echo html::input('deadline', $task->deadline, "class='form-control form-date'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->estimate;?></th>
<td><?php echo html::input('estimate', $task->estimate, "class='form-control' autocomplete='off'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->consumed;?></th>
<td><?php echo $task->consumed . ' '; common::printIcon('task', 'recordEstimate', "taskID=$task->id", $task, 'list', '', '', 'iframe', true);?></td>
</tr>
<tr>
<th><?php echo $lang->task->left;?></th>
<td><?php echo html::input('left', $task->left, "class='form-control' autocomplete='off'");?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->task->legendLife;?></legend>
<table class='table table-form'>
<tr>
<th class='w-70px'><?php echo $lang->task->openedBy;?></th>
<td><?php echo $users[$task->openedBy];?></td>
</tr>
<tr>
<th><?php echo $lang->task->finishedBy;?></th>
<td><?php echo html::select('finishedBy', $members, $task->finishedBy, "class='form-control chosen'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->finishedDate;?></th>
<td><?php echo html::input('finishedDate', $task->finishedDate, 'class="form-control form-date"');?></td>
</tr>
<tr>
<th><?php echo $lang->task->canceledBy;?></th>
<td><?php echo html::select('canceledBy', $users, $task->canceledBy, 'class="form-control chosen"');?></td>
</tr>
<tr>
<th><?php echo $lang->task->canceledDate;?></th>
<td><?php echo html::input('canceledDate', $task->canceledDate, 'class="form-control form-date"');?></td>
</tr>
<tr>
<th><?php echo $lang->task->closedBy;?></th>
<td><?php echo html::select('closedBy', $users, $task->closedBy, 'class="form-control chosen"');?></td>
</tr>
<tr>
<th><?php echo $lang->task->closedReason;?></th>
<td><?php echo html::select('closedReason', $lang->task->reasonList, $task->closedReason, 'class="form-control chosen"');?></td>
</tr>
<tr>
<th><?php echo $lang->task->closedDate;?></th>
<td><?php echo html::input('closedDate', $task->closedDate, 'class="form-control form-date"');?></td>
</tr>
</table>
</fieldset>
<div class="modal fade modal-team" id="modalTeam">
<div class="modal-dialog" style='width: 700px'>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">×</span><span class="sr-only"><?php echo $lang->task->close;?></span>
</button>
<h4 class="modal-title"><?php echo $lang->task->team?></h4>
</div>
<div class="modal-content">
<table class='table table-form'>
<?php foreach($task->team as $member):?>
<tr>
<td class='w-80px'><?php echo html::select("team[]", $members, $member->account, "class='form-control chosen'")?></td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->task->estimate?></span>
<?php echo html::input("teamEstimate[]", $member->estimate, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->consumed?></span>
<?php echo html::input("teamConsumed[]", $member->consumed, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->left?></span>
<?php echo html::input("teamLeft[]", $member->left, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
</div>
</td>
<td class='w-90px'>
<a href='javascript:;' class='btn btn-move-up btn-sm'><i class='icon-arrow-up'></i></a>
<a href='javascript:;' class='btn btn-move-down btn-sm'><i class='icon-arrow-down'></i></a>
</td>
</tr>
<?php endforeach;?>
<?php for($i = 0; $i < 3; $i++):?>
<tr>
<td class='w-150px'><?php echo html::select("team[]", $members, '', "class='form-control chosen'")?></td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->task->estimate?></span>
<?php echo html::input("teamEstimate[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->consumed?></span>
<?php echo html::input("teamConsumed[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->left?></span>
<?php echo html::input("teamLeft[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
</div>
</td>
<td class='w-90px'>
<a href='javascript:;' class='btn btn-move-up btn-sm'><i class='icon-arrow-up'></i></a>
<a href='javascript:;' class='btn btn-move-down btn-sm'><i class='icon-arrow-down'></i></a>
</td>
</tr>
<?php endfor;?>
<tr><td colspan='3' class='text-center'><?php echo html::a('javascript:void(0)', $lang->confirm, '', "class='btn btn-primary' data-dismiss='modal'");?></td></tr>
</table>
</div>
</div>
</div>
</div>
</form>
</div>
<div class="modal fade modal-team" id="modalTeam">
<div class="modal-dialog" style='width: 700px'>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">×</span><span class="sr-only"><?php echo $lang->task->close;?></span>
</button>
<h4 class="modal-title"><?php echo $lang->task->team?></h4>
</div>
<div class="modal-content">
<table class='table table-form'>
<?php foreach($task->team as $member):?>
<tr>
<td class='w-80px'><?php echo html::select("team[]", $members, $member->account, "class='form-control chosen'")?></td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->task->estimate?></span>
<?php echo html::input("teamEstimate[]", $member->estimate, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->consumed?></span>
<?php echo html::input("teamConsumed[]", $member->consumed, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->left?></span>
<?php echo html::input("teamLeft[]", $member->left, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
</div>
</td>
<td class='w-90px'>
<a href='javascript:;' class='btn btn-move-up btn-sm'><i class='icon-arrow-up'></i></a>
<a href='javascript:;' class='btn btn-move-down btn-sm'><i class='icon-arrow-down'></i></a>
</td>
</tr>
<?php endforeach;?>
<?php for($i = 0; $i < 3; $i++):?>
<tr>
<td class='w-150px'><?php echo html::select("team[]", $members, '', "class='form-control chosen'")?></td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->task->estimate?></span>
<?php echo html::input("teamEstimate[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->consumed?></span>
<?php echo html::input("teamConsumed[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->left?></span>
<?php echo html::input("teamLeft[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
</div>
</td>
<td class='w-90px'>
<a href='javascript:;' class='btn btn-move-up btn-sm'><i class='icon-arrow-up'></i></a>
<a href='javascript:;' class='btn btn-move-down btn-sm'><i class='icon-arrow-down'></i></a>
</td>
</tr>
<?php endfor;?>
<tr><td colspan='3' class='text-center'><?php echo html::a('javascript:void(0)', $lang->confirm, '', "class='btn btn-primary' data-dismiss='modal'");?></td></tr>
</table>
</div>
</div>
</div>
</form>
<?php include '../../common/view/footer.html.php';?>
+28 -30
View File
@@ -13,37 +13,35 @@
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<?php js::set('confirmRecord', $lang->task->confirmRecord);?>
<div class='container mw-600px'>
<div id='titlebar'>
<div class='heading'>
<strong><?php echo $lang->task->editEstimate;?></strong>
<small class='text-muted'><?php echo html::icon($lang->icons['edit']);?></small>
<div id='mainContent' class='main-content'>
<div class='center-block mw-600px'>
<div class='main-header'>
<h2><?php echo $lang->task->editEstimate;?></h2>
</div>
<form method='post' target='hiddenwin' <?php if($estimate->isLast) echo "onsubmit='return confirmLeft();'"?>>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->task->date;?></th>
<td class='w-p45'><?php echo html::input('date', $estimate->date, 'class="form-control form-date"');?></td>
<td></td>
</tr>
<tr>
<th><?php echo $lang->task->record;?></th>
<td><?php echo html::input('consumed', $estimate->consumed, 'class="form-control" autocomplete="off"');?></td>
</tr>
<tr>
<th><?php echo $lang->task->left;?></th>
<td><?php echo html::input('left', $estimate->left, 'class="form-control" autocomplete="off"');?></td>
</tr>
<tr>
<th><?php echo $lang->comment;?></th>
<td colspan='2'><?php echo html::textarea('work', $estimate->work, "class=form-control");?></td>
</tr>
<tr>
<td colspan='3' class='text-center'><?php echo html::submitButton() . html::backButton();?></td>
</tr>
</table>
</form>
</div>
<form class='form-condensed' method='post' target='hiddenwin' <?php if($estimate->isLast) echo "onsubmit='return confirmLeft();'"?>>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->task->date;?></th>
<td class='w-p45'><?php echo html::input('date', $estimate->date, 'class="form-control form-date"');?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->task->record;?></th>
<td><?php echo html::input('consumed', $estimate->consumed, 'class="form-control" autocomplete="off"');?></td>
</tr>
<tr>
<th><?php echo $lang->task->left;?></th>
<td><?php echo html::input('left', $estimate->left, 'class="form-control" autocomplete="off"');?></td>
</tr>
<tr>
<th><?php echo $lang->comment;?></th>
<td colspan='2'><?php echo html::textarea('work', $estimate->work, "class=form-control");?></td>
</tr>
<tr>
<td></td><td colspan='2' class='text-center'>
<?php echo html::submitButton() . html::backButton();?>
</td>
</tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.lite.html.php';?>
+53 -43
View File
@@ -13,49 +13,59 @@
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['task']);?> <strong><?php echo $task->id;?></strong></span>
<strong><?php echo html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?></strong>
<small class='text-success'> <?php echo $lang->task->finish;?> <?php echo html::icon($lang->icons['finish']);?></small>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='label label-id'><?php echo $task->id;?></span>
<?php echo isonlybody() ? $task->name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?>
<small> <?php echo $lang->arrow . $lang->task->finish;?></small>
</div>
</div>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo !empty($task->team) ? $lang->task->common . $lang->task->consumed : $lang->task->hasConsumed;?></th>
<td class='w-p25-f'><?php echo $task->consumed;?> <?php echo $lang->workingHour;?></td>
<td></td>
</tr>
<?php if(!empty($task->team)):?>
<tr>
<th class='w-80px'><?php echo $lang->task->hasConsumed;?></th>
<td class='w-p25-f'><?php echo $task->myConsumed;?> <?php echo $lang->workingHour;?></td><td></td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->task->consumed;?></th>
<td><div class='input-group'><?php echo html::input('consumed', $task->consumed, "class='form-control' autocomplete='off'");?> <span class='input-group-addon'><?php echo $lang->task->hour;?></span></div></td>
</tr>
<tr>
<th><?php echo empty($task->team) ? $lang->task->assign : $lang->task->transferTo;?></th>
<td><?php echo html::select('assignedTo', $members, $task->nextBy, "class='form-control chosen'");?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->task->finishedDate;?></th>
<td><div class='datepicker-wrapper'><?php echo html::input('finishedDate', helper::today(), "class='form-control form-date'");?></div></td><td></td>
</tr>
<tr>
<th><?php echo $lang->files;?></th>
<td colspan='2'><?php echo $this->fetch('file', 'buildform');?></td>
</tr>
<tr>
<th><?php echo $lang->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='6' class='w-p98'");?></td>
</tr>
<tr>
<th></th>
<td colspan='2'>
<?php echo html::submitButton($lang->task->finish);?>
<?php echo html::linkButton($lang->goback, $this->session->taskList);?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
</div>
<form class='form-condensed' method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo !empty($task->team) ? $lang->task->common . $lang->task->consumed : $lang->task->hasConsumed;?></th>
<td class='w-p25-f'><?php echo $task->consumed;?> <?php echo $lang->workingHour;?></td><td></td>
</tr>
<?php if(!empty($task->team)):?>
<tr>
<th class='w-80px'><?php echo $lang->task->hasConsumed;?></th>
<td class='w-p25-f'><?php echo $task->myConsumed;?> <?php echo $lang->workingHour;?></td><td></td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->task->consumed;?></th>
<td><div class='input-group'><?php echo html::input('consumed', $task->consumed, "class='form-control' autocomplete='off'");?> <span class='input-group-addon'><?php echo $lang->task->hour;?></span></div></td>
</tr>
<tr>
<th><?php echo empty($task->team) ? $lang->task->assign : $lang->task->transferTo;?></th>
<td><?php echo html::select('assignedTo', $members, $task->nextBy, "class='form-control chosen'");?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->task->finishedDate;?></th>
<td><div class='datepicker-wrapper'><?php echo html::input('finishedDate', helper::today(), "class='form-control form-date'");?></div></td><td></td>
</tr>
<tr>
<th><?php echo $lang->files;?></th>
<td colspan='2'><?php echo $this->fetch('file', 'buildform');?></td>
</tr>
<tr>
<th><?php echo $lang->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='6' class='w-p98'");?></td>
</tr>
<tr>
<th></th><td colspan='2'><?php echo html::submitButton($lang->task->finish);?></td>
</tr>
</table>
</form>
<div class='main'><?php include '../../common/view/action.html.php';?></div>
<?php include '../../common/view/footer.html.php';?>
+27 -20
View File
@@ -12,26 +12,33 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['task']);?> <strong><?php echo $task->id;?></strong></span>
<strong><?php echo html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?></strong>
<small class='text-danger'> <?php echo $lang->task->pause;?> <?php echo html::icon($lang->icons['pause']);?></small>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='label label-id'><?php echo $task->id;?></span>
<?php echo isonlybody() ? $task->name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?>
<small><?php echo $lang->arrow . $lang->task->pause;?></small>
</div>
</div>
<form method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-60px'><?php echo $lang->comment;?></th>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control'");?></td>
</tr>
<tr>
<th></th>
<td>
<?php echo html::submitButton();?>
<?php echo html::linkButton($lang->goback, $this->session->taskList);?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
</div>
<form class='form-condensed' method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-60px'><?php echo $lang->comment;?></th>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control'");?></td>
</tr>
<tr>
<th></th><td><?php echo html::submitButton();?></td>
</tr>
</table>
</form>
<div class='main'>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>
+70 -68
View File
@@ -14,74 +14,76 @@
<?php include '../../common/view/datepicker.html.php';?>
<?php js::set('confirmRecord', $lang->task->confirmRecord);?>
<?php js::set('noticeSaveRecord', $lang->task->noticeSaveRecord);?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['task']);?> <strong><?php echo $task->id;?></strong></span>
<strong><?php echo html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?></strong>
<small class='text-muted'> <?php echo $lang->task->logEfforts;?> <?php echo html::icon($lang->icons['recordEstimate']);?></small>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='label label-id'><?php echo $task->id;?></span>
<?php echo isonlybody() ? $task->name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?>
<small><?php echo $lang->arrow . $lang->task->logEfforts;?></small>
</div>
</div>
<form id="recordForm" method='post' target='hiddenwin' style='margin-top:25px'>
<table class='table table-form table-fixed'>
<?php if(count($estimates)):?>
<thead>
<tr class='text-center'>
<th class="w-id"><?php echo $lang->idAB;?></th>
<th class="w-100px"><?php echo $lang->task->date;?></th>
<th class="w-60px"><?php echo $lang->task->consumedThisTime;?></th>
<th class="w-60px"><?php echo $lang->task->leftThisTime;?></th>
<th><?php echo $lang->comment;?></th>
<th class="w-60px"><?php echo $lang->actions;?></th>
</tr>
</thead>
<?php foreach($estimates as $estimate):?>
<tr class="text-center">
<td><?php echo $estimate->id;?></td>
<td><?php echo $estimate->date;?></td>
<td><?php echo $estimate->consumed;?></td>
<td><?php echo $estimate->left;?></td>
<td class="text-left"><?php echo $estimate->work;?></td>
<td align='center'>
<?php
if($task->status == 'wait' or $task->status == 'pause' or $task->status == 'doing')
{
common::printIcon('task', 'editEstimate', "estimateID=$estimate->id", '', 'list', 'pencil', '', 'showinonlybody', true);
common::printIcon('task', 'deleteEstimate', "estimateID=$estimate->id", '', 'list', 'remove', 'hiddenwin', 'showinonlybody');
}
?>
</td>
</tr>
<?php endforeach;?>
<?php endif;?>
<?php if(in_array($task->status, array('wait', 'pause', 'doing'))):?>
<?php if(empty($task->team) || (!empty($task->team) && in_array($task->assignedTo, array_keys($task->team)))) :?>
<thead>
<tr class='text-center'>
<th class="w-id"><?php echo $lang->idAB;?></th>
<th class="w-120px"><?php echo $lang->task->date;?></th>
<th class="w-60px"><?php echo $lang->task->consumedThisTime;?></th>
<th class="w-60px"><?php echo $lang->task->leftThisTime;?></th>
<th><?php echo $lang->comment;?></th>
<th class='w-10px'></th>
</tr>
</thead>
<?php for($i = 1; $i <= 3; $i++):?>
<tr class="text-center">
<td><?php echo $i . html::hidden("id[$i]", $i);?></td>
<td><?php echo html::input("dates[$i]", '', "class='form-control text-center form-date'");?></td>
<td><?php echo html::input("consumed[$i]", '', "class='form-control text-center' autocomplete='off'");?></td>
<td><?php echo html::input("left[$i]", '', "class='form-control text-center left' autocomplete='off'");?></td>
<td class="text-left"><?php echo html::textarea("work[$i]", '', "class='form-control' style='height:50px;'");?></td>
<td></td>
</tr>
<?php endfor;?>
<tr>
<td colspan='6' class='text-center'><?php echo html::submitButton() . html::backButton();?></td>
</tr>
</table>
<?php endif;?>
<?php endif;?>
</form>
</div>
</div>
<div class='main'>
<form class='form-condensed' id="recordForm" method='post' target='hiddenwin' style='margin-top:25px'>
<table class='table table-form table-fixed'>
<?php if(count($estimates)):?>
<thead>
<tr class='text-center'>
<th class="w-id"><?php echo $lang->idAB;?></th>
<th class="w-100px"><?php echo $lang->task->date;?></th>
<th class="w-60px"><?php echo $lang->task->consumedThisTime;?></th>
<th class="w-60px"><?php echo $lang->task->leftThisTime;?></th>
<th><?php echo $lang->comment;?></th>
<th class="w-60px"><?php echo $lang->actions;?></th>
</tr>
</thead>
<?php foreach($estimates as $estimate):?>
<tr class="text-center">
<td><?php echo $estimate->id;?></td>
<td><?php echo $estimate->date;?></td>
<td><?php echo $estimate->consumed;?></td>
<td><?php echo $estimate->left;?></td>
<td class="text-left"><?php echo $estimate->work;?></td>
<td align='center'>
<?php
if($task->status == 'wait' or $task->status == 'pause' or $task->status == 'doing')
{
common::printIcon('task', 'editEstimate', "estimateID=$estimate->id", '', 'list', 'pencil', '', 'showinonlybody', true);
common::printIcon('task', 'deleteEstimate', "estimateID=$estimate->id", '', 'list', 'remove', 'hiddenwin', 'showinonlybody');
}
?>
</td>
</tr>
<?php endforeach;?>
<?php endif;?>
<?php if(in_array($task->status, array('wait', 'pause', 'doing'))):?>
<?php if(empty($task->team) || (!empty($task->team) && in_array($task->assignedTo, array_keys($task->team)))) :?>
<thead>
<tr class='text-center'>
<th class="w-id"><?php echo $lang->idAB;?></th>
<th class="w-120px"><?php echo $lang->task->date;?></th>
<th class="w-60px"><?php echo $lang->task->consumedThisTime;?></th>
<th class="w-60px"><?php echo $lang->task->leftThisTime;?></th>
<th><?php echo $lang->comment;?></th>
<th class='w-10px'></th>
</tr>
</thead>
<?php for($i = 1; $i <= 3; $i++):?>
<tr class="text-center">
<td><?php echo $i . html::hidden("id[$i]", $i);?></td>
<td><?php echo html::input("dates[$i]", '', "class='form-control text-center form-date'");?></td>
<td><?php echo html::input("consumed[$i]", '', "class='form-control text-center' autocomplete='off'");?></td>
<td><?php echo html::input("left[$i]", '', "class='form-control text-center left' autocomplete='off'");?></td>
<td class="text-left"><?php echo html::textarea("work[$i]", '', "class='form-control' style='height:50px;'");?></td>
<td></td>
</tr>
<?php endfor;?>
<tr>
<td colspan='6' class='text-center'><?php echo html::submitButton() . html::backButton();?></td>
</tr>
</table>
<?php endif;?>
<?php endif;?>
</form>
</div>
<?php include '../../common/view/footer.lite.html.php';?>
+46 -37
View File
@@ -14,44 +14,53 @@
<?php include '../../common/view/kindeditor.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<?php js::set('confirmFinish', $lang->task->confirmFinish);?>
<?php if(!empty($task->team) && key($task->team) != $this->app->user->account):?>
<div class="alert with-icon">
<i class="icon-info-sign"></i>
<div class="content">
<p><?php echo $lang->task->deniedNotice;?></p>
<div id='mainContent' class='main-content'>
<?php if(!empty($task->team) && key($task->team) != $this->app->user->account):?>
<div class="alert with-icon">
<i class="icon-info-sign"></i>
<div class="content">
<p><?php echo $lang->task->deniedNotice;?></p>
</div>
</div>
</div>
<?php else:?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['task']);?> <strong><?php echo $task->id;?></strong></span>
<strong><?php echo html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?></strong>
<small class='text-muted'><?php echo $lang->task->start;?> <?php echo html::icon($lang->icons['start']);?></small>
<?php else:?>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='label label-id'><?php echo $task->id;?></span>
<?php echo isonlybody() ? $task->name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?>
<small><?php echo $lang->arrow . $lang->task->start;?></small>
</div>
</div>
<form method='post' target='hiddenwin' onsubmit='return checkLeft();'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->task->realStarted;?></th>
<td class='w-p25-f'><div class='datepicker-wrapper datepicker-date'><?php echo html::input('realStarted', $task->realStarted == '0000-00-00' ? helper::today() : $task->realStarted, "class='form-control form-date'");?></div></td>
<td></td>
</tr>
<tr>
<th><?php echo $lang->task->consumed;?></th>
<td><div class='input-group'><?php echo html::input('consumed', $task->consumed, "class='form-control' autocomplete='off'");?> <span class='input-group-addon'><?php echo $lang->task->hour;?></span></div></td><td></td>
</tr>
<tr>
<th><?php echo $lang->task->left;?></th>
<td><div class='input-group'><?php echo html::input('left', $task->left, "class='form-control' autocomplete='off'");?> <span class='input-group-addon'><?php echo $lang->task->hour;?></span></div></td><td></td>
</tr>
<tr>
<th><?php echo $lang->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='6' class='form-control'");?></td>
</tr>
<tr>
<td colspan='2'>
<?php echo html::submitButton($lang->task->start);?>
<?php echo html::linkButton($lang->goback, $this->session->taskList);?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
<?php endif;?>
</div>
<form class='form-condensed' method='post' target='hiddenwin' onsubmit='return checkLeft();'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->task->realStarted;?></th>
<td class='w-p25-f'><div class='datepicker-wrapper datepicker-date'><?php echo html::input('realStarted', $task->realStarted == '0000-00-00' ? helper::today() : $task->realStarted, "class='form-control form-date'");?></div></td><td></td>
</tr>
<tr>
<th><?php echo $lang->task->consumed;?></th>
<td><div class='input-group'><?php echo html::input('consumed', $task->consumed, "class='form-control' autocomplete='off'");?> <span class='input-group-addon'><?php echo $lang->task->hour;?></span></div></td><td></td>
</tr>
<tr>
<th><?php echo $lang->task->left;?></th>
<td><div class='input-group'><?php echo html::input('left', $task->left, "class='form-control' autocomplete='off'");?> <span class='input-group-addon'><?php echo $lang->task->hour;?></span></div></td><td></td>
</tr>
<tr>
<th><?php echo $lang->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='6' class='form-control'");?></td>
</tr>
<tr>
<th></th><td colspan='2'><?php echo html::submitButton($lang->task->start); ?></td>
</tr>
</table>
</form>
<div class='main'><?php include '../../common/view/action.html.php';?></div>
<?php endif;?>
<?php include '../../common/view/footer.html.php';?>
+2 -1
View File
@@ -335,9 +335,10 @@
<div id="mainActions">
<?php common::printPreAndNext($preAndNext);?>
<div class="btn-toolbar">
<?php common::printBack($browseLink);?>
<?php if(!$task->deleted):?>
<div class='divider'></div>
<?php
common::printBack($browseLink);
common::printIcon('task', 'assignTo', "projectID=$task->project&taskID=$task->id", $task, 'button', '', '', 'iframe', true, '', empty($task->team) ? $lang->task->assignTo : $lang->task->transfer);
common::printIcon('task', 'start', "taskID=$task->id", $task, 'button', '', '', 'iframe', true);
common::printIcon('task', 'restart', "taskID=$task->id", $task, 'button', '', '', 'iframe', true);
+1 -1
View File
@@ -83,7 +83,7 @@ $config->testcase->datatable->fieldList['id']['required'] = 'yes';
$config->testcase->datatable->fieldList['pri']['title'] = 'priAB';
$config->testcase->datatable->fieldList['pri']['fixed'] = 'left';
$config->testcase->datatable->fieldList['pri']['width'] = '40';
$config->testcase->datatable->fieldList['pri']['width'] = '50';
$config->testcase->datatable->fieldList['pri']['required'] = 'no';
$config->testcase->datatable->fieldList['title']['title'] = 'title';