+
- | project->name;?> |
- project->code;?> |
- project->end;?> |
- project->status;?> |
- project->totalEstimate;?> |
- project->totalConsumed;?> |
- project->totalLeft;?> |
+ project->name;?> |
+ project->code;?> |
+ project->end;?> |
+ project->status;?> |
+ project->totalEstimate;?> |
+ project->totalConsumed;?> |
+ project->totalLeft;?> |
project->progess;?> |
project->burn;?> |
diff --git a/module/project/view/taskdata.html.php b/module/project/view/taskdata.html.php
index de801ffbec..f6a6270186 100644
--- a/module/project/view/taskdata.html.php
+++ b/module/project/view/taskdata.html.php
@@ -10,30 +10,32 @@
* @link http://www.zentao.net
*/
?>
+
- | idAB);?> |
- priAB);?> |
- task->name);?> |
- statusAB);?> |
- task->deadlineAB);?> |
+ idAB);?> |
+ priAB);?> |
+ task->name);?> |
+ statusAB);?> |
+ task->deadlineAB);?> |
cookie->windowWidth > $this->config->wideSize):?>
- task->openedDateAB);?> |
+ task->openedDateAB);?> |
- task->assignedToAB);?> |
- task->finishedByAB);?> |
+ task->assignedToAB);?> |
+ task->finishedByAB);?> |
cookie->windowWidth > $this->config->wideSize):?>
- task->finishedDateAB);?> |
+ task->finishedDateAB);?> |
- task->estimateAB);?> |
- task->consumedAB);?> |
- task->leftAB);?> |
- type == 'sprint') print '' and common::printOrderLink('story', $orderBy, $vars, $lang->task->story) and print ' | ';?>
+ task->estimateAB);?> |
+ task->consumedAB);?> |
+ task->leftAB);?> |
+ task->progess;?> |
+ type == 'sprint') print "" and common::printOrderLink('story', $orderBy, $vars, $lang->task->story) and print ' | ';?>
actions;?> |
@@ -58,7 +60,16 @@
storyStatus == 'active' and $task->latestStoryVersion > $task->storyVersion);
- $storyChanged ? print("{$lang->story->changed} ") : print($lang->task->statusList[$task->status]);
+ if($storyChanged)
+ {
+ echo "({$lang->story->changed} ";
+ echo html::a($this->createLink('task', 'confirmStoryChange', "taskID=$task->id"), $lang->confirm, 'hiddenwin');
+ echo ")";
+ }
+ else
+ {
+ echo $lang->task->statusList[$task->status];
+ }
?>
|
deadline, 0, 4) > 0) echo substr($task->deadline, 5, 6);?> |
@@ -77,6 +88,7 @@
estimate;?> |
consumed;?> |
left;?> |
+ progess;?>% |
type == 'sprint')
{
diff --git a/module/search/model.php b/module/search/model.php
index 8a9218a776..dcc6d55ff3 100644
--- a/module/search/model.php
+++ b/module/search/model.php
@@ -61,7 +61,7 @@ class searchModel extends model
$valueName = "value$i";
/* Skip empty values. */
- if($this->post->$valueName == false) continue;
+ if($this->post->$valueName == false and $this->post->$valueName !== '0') continue;
if($this->post->$valueName == 'null') $this->post->$valueName = ''; // Null is special, stands to empty.
if($this->post->$valueName == 'ZERO') $this->post->$valueName = 0; // ZERO is special, stands to 0.
diff --git a/module/story/view/report.html.php b/module/story/view/report.html.php
index 2d103a310b..0c2d98603d 100644
--- a/module/story/view/report.html.php
+++ b/module/story/view/report.html.php
@@ -75,6 +75,7 @@
+ report->notice->help?>
diff --git a/module/task/lang/en.php b/module/task/lang/en.php
index b8bc32b52a..eb9230cbee 100644
--- a/module/task/lang/en.php
+++ b/module/task/lang/en.php
@@ -33,6 +33,7 @@ $lang->task->reportChart = "Report Chart";
$lang->task->fromBug = 'From Bug';
$lang->task->case = 'Related Case';
$lang->task->confirmStoryChange = "Confirm Story Change";
+$lang->task->progess = 'Progess';
$lang->task->common = 'Task';
$lang->task->id = 'ID';
diff --git a/module/task/lang/zh-cn.php b/module/task/lang/zh-cn.php
index 687ad4eb47..81b051ca07 100644
--- a/module/task/lang/zh-cn.php
+++ b/module/task/lang/zh-cn.php
@@ -33,6 +33,7 @@ $lang->task->reportChart = "报表统计";
$lang->task->fromBug = '来源Bug';
$lang->task->case = '相关用例';
$lang->task->confirmStoryChange = "确认需求变动";
+$lang->task->progess = '进度';
$lang->task->common = '任务';
$lang->task->id = '编号';
diff --git a/module/task/model.php b/module/task/model.php
index 5fb1e19827..22f646195a 100644
--- a/module/task/model.php
+++ b/module/task/model.php
@@ -1190,6 +1190,20 @@ class taskModel extends model
$task->productType = $product->type;
}
+ /* Compute task progess. */
+ if($task->consumed == 0 and $task->left == 0)
+ {
+ $task->progess = 0;
+ }
+ elseif($task->consumed != 0 and $task->left == 0)
+ {
+ $task->progess = 100;
+ }
+ else
+ {
+ $task->progess = round($task->consumed / ($task->consumed + $task->left), 3) * 100;
+ }
+
return $task;
}
diff --git a/module/task/view/report.html.php b/module/task/view/report.html.php
index 3378f37436..3983630132 100644
--- a/module/task/view/report.html.php
+++ b/module/task/view/report.html.php
@@ -77,6 +77,7 @@
+ report->notice->help?>
diff --git a/module/testcase/view/browsedata.html.php b/module/testcase/view/browsedata.html.php
index 693d42aef0..df6347f7b9 100644
--- a/module/testcase/view/browsedata.html.php
+++ b/module/testcase/view/browsedata.html.php
@@ -25,7 +25,7 @@
testtask->lastRunAccount);?> |
testtask->lastRunTime);?> |
testtask->lastRunResult);?> |
- statusAB);?> |
+ statusAB);?> |
actions;?> |
@@ -54,7 +54,20 @@
lastRunner];?> |
lastRunDate)) echo date(DT_MONTHTIME1, strtotime($case->lastRunDate));?> |
lastRunResult) echo $lang->testcase->resultList[$case->lastRunResult];?> |
- needconfirm ? "{$lang->story->changed}" : $lang->testcase->statusList[$case->status];?> |
+
+ needconfirm)
+ {
+ echo "({$lang->story->changed} ";
+ echo html::a($this->createLink('testcase', 'confirmStoryChange', "caseID=$case->id"), $lang->confirm, 'hiddenwin');
+ echo ")";
+ }
+ else
+ {
+ echo $lang->testcase->statusList[$case->status];
+ }
+ ?>
+ |
id&version=$case->version", '', 'list', 'play', '', 'runCase iframe');
diff --git a/module/tree/lang/en.php b/module/tree/lang/en.php
index 0e4d8ba40e..c404dd1d86 100644
--- a/module/tree/lang/en.php
+++ b/module/tree/lang/en.php
@@ -30,6 +30,7 @@ $lang->tree->manageCaseChild = 'Manage Child Case';
$lang->tree->manageTaskChild = "Manage Child {$lang->projectCommon}";
$lang->tree->syncFromProduct = 'Copy';
$lang->tree->dragAndSort = "Drag and Sort";
+$lang->tree->sort = "Sort";
$lang->tree->addChild = "Add Child Module";
$lang->tree->confirmDelete = 'Do you want to delete this Module and its Child?';
diff --git a/module/tree/lang/zh-cn.php b/module/tree/lang/zh-cn.php
index 19fb34a941..b3cb05d130 100644
--- a/module/tree/lang/zh-cn.php
+++ b/module/tree/lang/zh-cn.php
@@ -30,6 +30,7 @@ $lang->tree->manageCaseChild = '维护用例子模块';
$lang->tree->manageTaskChild = "维护{$lang->projectCommon}子模块";
$lang->tree->syncFromProduct = '复制';
$lang->tree->dragAndSort = "拖放排序";
+$lang->tree->sort = "排序";
$lang->tree->addChild = "增加子模块";
$lang->tree->confirmDelete = '该模块及其子模块都会被删除,您确定删除吗?';
diff --git a/module/tree/view/browse.html.php b/module/tree/view/browse.html.php
index f0ed70b033..c10aac7413 100644
--- a/module/tree/view/browse.html.php
+++ b/module/tree/view/browse.html.php
@@ -125,7 +125,7 @@ $(function()
data: data,
itemCreator: function($li, item)
{
- var link = item.id !== undefined ? ('' + item.name + '') : ('' + item.name + '');
+ var link = item.id !== undefined ? ('' + item.name + '') : ('' + item.name + '');
var $toggle = $('' + link + '');
if(item.type === 'bug') $toggle.append(' [B]');
if(item.type === 'case') $toggle.append(' [C]');
@@ -138,19 +138,25 @@ $(function()
sort:
{
title: 'tree->dragAndSort ?>',
- template: ''
+ template: 'tree->sort ?>'
},
edit:
{
linkTemplate: '',
title: 'tree->edit ?>',
- template: 'edit?>'
+ template: 'edit?>'
},
"delete":
{
linkTemplate: '',
title: 'tree->delete ?>',
- template: 'delete?>'
+ template: 'delete?>'
+ },
+ subModules:
+ {
+ linkTemplate: '',
+ title: 'tree->child ?>',
+ template: 'tree->child?>'
}
},
action: function(event)
@@ -161,7 +167,8 @@ $(function()
$target.modalTrigger(
{
type: 'ajax',
- url: action.linkTemplate.format(item.id)
+ url: action.linkTemplate.format(item.id),
+ keyboard: true
}).trigger('click');
}
else if(action.type === 'delete')
@@ -182,6 +189,10 @@ $(function()
bootbox.alert(lang.timeout);
});
}
+ else if(action.type === 'subModules')
+ {
+ window.location.href = action.linkTemplate.format(item.id, item.branch);
+ }
}
};
diff --git a/module/tree/view/browsetask.html.php b/module/tree/view/browsetask.html.php
index b49a1abf6b..b870129e66 100644
--- a/module/tree/view/browsetask.html.php
+++ b/module/tree/view/browsetask.html.php
@@ -114,7 +114,7 @@ $(function()
var title = (item.type === 'product' ? ' ' : '') + item.name;
- var link = item.id !== undefined ? ('' + title + '') : ('' + title + '');
+ var link = item.id !== undefined ? ('' + title + '') : ('' + title + '');
var $toggle = $('' + link + '');
if(item.type === 'task')
{
@@ -131,19 +131,25 @@ $(function()
sort:
{
title: 'tree->dragAndSort ?>',
- template: ''
+ template: 'tree->sort ?>'
},
edit:
{
linkTemplate: '',
title: 'tree->edit ?>',
- template: 'edit?>'
+ template: 'edit?>'
},
"delete":
{
linkTemplate: '',
title: 'tree->delete ?>',
- template: 'delete?>'
+ template: 'delete?>'
+ },
+ subModules:
+ {
+ linkTemplate: '',
+ title: 'tree->child ?>',
+ template: 'tree->child?>'
}
},
action: function(event)
@@ -154,7 +160,8 @@ $(function()
$target.modalTrigger(
{
type: 'ajax',
- url: action.linkTemplate.format(item.id)
+ url: action.linkTemplate.format(item.id),
+ keyboard: true
}).trigger('click');
}
else if(action.type === 'delete')
@@ -179,6 +186,10 @@ $(function()
bootbox.alert(lang.timeout);
});
}
+ else if(action.type === 'subModules')
+ {
+ window.location.href = action.linkTemplate.format(item.id, item.branch);
+ }
}
};
diff --git a/module/tree/view/edit.html.php b/module/tree/view/edit.html.php
index 2c61975451..82b8684957 100644
--- a/module/tree/view/edit.html.php
+++ b/module/tree/view/edit.html.php
@@ -14,15 +14,13 @@
$webRoot = $this->app->getWebRoot();
$jsRoot = $webRoot . "js/";
?>
-
+
+
-
-
- icons['tree']);?>
- icons['edit']);?> tree->edit;?>
-
-
|