Merge branch 'sprint/169'

This commit is contained in:
王怡栋
2021-11-02 09:54:05 +08:00
50 changed files with 306 additions and 223 deletions
+1 -1
View File
@@ -41,7 +41,7 @@ $lang->api->noUniqueName = '接口库名已存在。';
$lang->api->noUniqueVersion = '版本已存在。';
$lang->api->version = '版本';
$lang->api->createStruct = '创建数据结构';
$lang->api->editStruct = '修改数据结构';
$lang->api->editStruct = '编辑数据结构';
$lang->api->deleteStruct = '删除数据结构';
$lang->api->create = '创建接口';
$lang->api->title = '接口名称';
+9 -1
View File
@@ -402,7 +402,15 @@ class bug extends control
if($this->app->tab == 'execution')
{
$location = $this->session->bugList ? $this->session->bugList : $this->createLink('execution', 'bug', "executionID={$output['executionID']}");
if(!preg_match("/(m=|\/)execution(&f=|-)bug(&|-|\.)?/", $this->session->bugList))
{
$location = $this->session->bugList;
}
else
{
$executionID = $this->post->execution ? $this->post->execution : $output['executionID'];
$location = $this->createLink('execution', 'bug', "executionID=$executionID");
}
}
elseif($this->app->tab == 'project')
{
+1 -1
View File
@@ -88,7 +88,7 @@
if($this->app->tab != 'product')
{
common::printIcon('bug', 'toStory', "product=$bug->product&branch=$bug->branch&module=0&story=0&execution=0&bugID=$bug->id", $bug, 'button', $lang->icons['story'], '', '', '', "data-app='" . $this->app->tab . "'", $lang->bug->toStory);
common::printIcon('bug', 'toStory', "product=$bug->product&branch=$bug->branch&module=0&story=0&execution=0&bugID=$bug->id", $bug, 'button', $lang->icons['story'], '', '', '', "data-app='product'", $lang->bug->toStory);
common::printIcon('bug', 'createCase', $convertParams, $bug, 'button', 'sitemap');
}
+2 -1
View File
@@ -158,7 +158,8 @@ $lang->product->menu->story = array('link' => "$lang->SRCommon|product|browse
$lang->product->menu->plan = array('link' => "{$lang->productplan->shortCommon}|productplan|browse|productID=%s", 'subModule' => 'productplan');
$lang->product->menu->release = array('link' => "{$lang->release->common}|release|browse|productID=%s", 'subModule' => 'release');
$lang->product->menu->roadmap = array('link' => "{$lang->roadmap}|product|roadmap|productID=%s");
$lang->product->menu->project = array('link' => "{$lang->project->common}|product|project|status=all&productID=%s");
if($config->systemMode == 'new') $lang->product->menu->project = array('link' => "{$lang->project->common}|product|project|status=all&productID=%s");
if($config->systemMode == 'classic') $lang->product->menu->project = array('link' => "{$lang->execution->common}|product|project|status=all&productID=%s");
$lang->product->menu->track = array('link' => "{$lang->track}|story|track|productID=%s");
$lang->product->menu->doc = array('link' => "{$lang->doc->common}|doc|tableContents|type=product&objectID=%s", 'subModule' => 'doc');
$lang->product->menu->dynamic = array('link' => "{$lang->dynamic}|product|dynamic|productID=%s");
+1 -1
View File
@@ -134,7 +134,7 @@ class compileModel extends model
if($job->triggerType == 'tag')
{
$lastTag = $this->getLastTagByRepo($repo);
$lastTag = $this->loadModel('job')->getLastTagByRepo($repo);
if($lastTag)
{
$job->lastTag = $lastTag;
+1 -1
View File
@@ -15,7 +15,7 @@ $lang->gitlab->gitlabAccount = 'GitLab Account';
$lang->gitlab->zentaoAccount = 'Zentao Account';
$lang->gitlab->bindingStatus = 'Binding Status';
$lang->gitlab->binded = 'Binded';
$lang->gitlab->serverFail = 'Conntect to GitLab server failed, please check the GitLab server.';
$lang->gitlab->serverFail = 'Connect to GitLab server failed, please check the GitLab server.';
$lang->gitlab->browseAction = 'GitLab List';
$lang->gitlab->deleteAction = 'Delete GitLab';
+7 -8
View File
@@ -386,7 +386,7 @@ class gitlabModel extends model
if(is_numeric($host)) $host = $this->getApiRoot($host);
if(strpos($host, 'http://') !== 0 and strpos($host, 'https://') !== 0) return false;
$url = sprintf($apiRoot, $api);
$url = sprintf($host, $api);
return json_decode(commonModel::http($url, $data, $options));
}
@@ -474,7 +474,7 @@ class gitlabModel extends model
*
* @param int $gitlabID
* @access public
* @return void
* @return array
*/
public function apiGetProjects($gitlabID)
{
@@ -691,6 +691,7 @@ class gitlabModel extends model
public function apiUpdateHook($gitlabID, $projectID, $hookID)
{
$apiRoot = $this->getApiRoot($gitlabID);
$url = sprintf($apiRoot, "/projects/{$projectID}/hooks/{$hookID}");
$postData = new stdclass;
$postData->enable_ssl_verification = "false";
@@ -699,8 +700,6 @@ class gitlabModel extends model
$postData->push_events = "true";
$postData->tag_push_events = "true";
$postData->note_events = "true";
$postData->url = $url;
$postData->token = $token;
$url = sprintf($apiRoot, "/projects/{$projectID}/hooks/{$hookID}");
return commonModel::http($url, $postData, $options = array(CURLOPT_CUSTOMREQUEST => 'PUT'));
@@ -1249,9 +1248,9 @@ class gitlabModel extends model
/**
* Create webhook for zentao.
*
* @param int $products
* @param int $gitlabID
* @param int $projectID
* @param array $products
* @param int $gitlabID
* @param int $projectID
* @access public
* @return bool
*/
@@ -1364,7 +1363,7 @@ class gitlabModel extends model
if($value) $issue->$field = $value;
}
if($isset($issue->assignee_id) and $issue->assignee_id == 'closed') unset($issue->assignee_id);
if(isset($issue->assignee_id) and $issue->assignee_id == 'closed') unset($issue->assignee_id);
/* issue->state is null when creating it, we should put status_event when updating it. */
if(isset($issue->state) and $issue->state == 'closed') $issue->state_event = 'close';
-1
View File
@@ -27,4 +27,3 @@
</div>
<?php include '../../common/view/footer.html.php';?>
+1 -1
View File
@@ -352,7 +352,7 @@ class job extends control
if($productLeft == $productRight) $matchedProducts[$productName] = $productRight;
}
}
die(json_encode($matchedProduct));
die(json_encode($matchedProducts));
}
$productName = $this->loadModel('product')->getByID($repo->product)->name;
+4 -3
View File
@@ -364,7 +364,7 @@ class jobModel extends model
if($job->triggerType == 'tag')
{
$lastTag = $this->getLastTagByRepo($repo);
$lastTag = $this->getLastTagByRepo($repo, $job);
if($lastTag)
{
$build->tag = $lastTag;
@@ -430,7 +430,7 @@ class jobModel extends model
/**
* Exec gitlab pipeline.
*
* @param int $job
* @param object $job
* @access public
* @return void
*/
@@ -473,10 +473,11 @@ class jobModel extends model
* Get last tag of one repo.
*
* @param object $repo
* @param object $job
* @access public
* @return void
*/
public function getLastTagByRepo($repo)
public function getLastTagByRepo($repo, $job)
{
if($repo->SCM == 'Subversion')
{
+23 -22
View File
@@ -18,25 +18,26 @@ $lang->message->browserSetting->turnonList[1] = 'On';
$lang->message->browserSetting->turnonList[0] = 'Off';
$lang->message->label = new stdclass();
$lang->message->label->created = 'create';
$lang->message->label->opened = 'open';
$lang->message->label->changed = 'change';
$lang->message->label->edited = 'edit';
$lang->message->label->assigned = 'assign';
$lang->message->label->closed = 'close';
$lang->message->label->deleted = 'delete';
$lang->message->label->undeleted = 'restore';
$lang->message->label->commented = 'comment';
$lang->message->label->activated = 'activate';
$lang->message->label->resolved = 'resolve';
$lang->message->label->reviewed = 'review';
$lang->message->label->confirmed = 'confirm Story';
$lang->message->label->fromBug = 'convert from Bug';
$lang->message->label->started = 'start';
$lang->message->label->delayed = 'delay';
$lang->message->label->suspended = 'suspend';
$lang->message->label->finished = 'finish';
$lang->message->label->paused = 'pause';
$lang->message->label->canceled = 'cancel';
$lang->message->label->restarted = 'continue';
$lang->message->label->blocked = 'block';
$lang->message->label->created = 'create';
$lang->message->label->opened = 'open';
$lang->message->label->changed = 'change';
$lang->message->label->edited = 'edit';
$lang->message->label->assigned = 'assign';
$lang->message->label->closed = 'close';
$lang->message->label->deleted = 'delete';
$lang->message->label->undeleted = 'restore';
$lang->message->label->commented = 'comment';
$lang->message->label->activated = 'activate';
$lang->message->label->resolved = 'resolve';
$lang->message->label->reviewed = 'review';
$lang->message->label->confirmed = 'confirm Story';
$lang->message->label->frombug = 'convert from Bug';
$lang->message->label->started = 'start';
$lang->message->label->delayed = 'delay';
$lang->message->label->suspended = 'suspend';
$lang->message->label->finished = 'finish';
$lang->message->label->paused = 'pause';
$lang->message->label->canceled = 'cancel';
$lang->message->label->restarted = 'continue';
$lang->message->label->blocked = 'block';
$lang->message->label->bugconfirmed = 'confirm';
+23 -22
View File
@@ -18,25 +18,26 @@ $lang->message->browserSetting->turnonList[1] = 'On';
$lang->message->browserSetting->turnonList[0] = 'Off';
$lang->message->label = new stdclass();
$lang->message->label->created = 'create';
$lang->message->label->opened = 'open';
$lang->message->label->changed = 'change';
$lang->message->label->edited = 'edit';
$lang->message->label->assigned = 'assign';
$lang->message->label->closed = 'close';
$lang->message->label->deleted = 'delete';
$lang->message->label->undeleted = 'restore';
$lang->message->label->commented = 'comment';
$lang->message->label->activated = 'activate';
$lang->message->label->resolved = 'resolve';
$lang->message->label->reviewed = 'review';
$lang->message->label->confirmed = 'confirm Story';
$lang->message->label->fromBug = 'convert from Bug';
$lang->message->label->started = 'start';
$lang->message->label->delayed = 'delay';
$lang->message->label->suspended = 'suspend';
$lang->message->label->finished = 'finish';
$lang->message->label->paused = 'pause';
$lang->message->label->canceled = 'cancel';
$lang->message->label->restarted = 'continue';
$lang->message->label->blocked = 'block';
$lang->message->label->created = 'create';
$lang->message->label->opened = 'open';
$lang->message->label->changed = 'change';
$lang->message->label->edited = 'edit';
$lang->message->label->assigned = 'assign';
$lang->message->label->closed = 'close';
$lang->message->label->deleted = 'delete';
$lang->message->label->undeleted = 'restore';
$lang->message->label->commented = 'comment';
$lang->message->label->activated = 'activate';
$lang->message->label->resolved = 'resolve';
$lang->message->label->reviewed = 'review';
$lang->message->label->confirmed = 'confirm Story';
$lang->message->label->frombug = 'convert from Bug';
$lang->message->label->started = 'start';
$lang->message->label->delayed = 'delay';
$lang->message->label->suspended = 'suspend';
$lang->message->label->finished = 'finish';
$lang->message->label->paused = 'pause';
$lang->message->label->canceled = 'cancel';
$lang->message->label->restarted = 'continue';
$lang->message->label->blocked = 'block';
$lang->message->label->bugconfirmed = 'confirm';
+23 -22
View File
@@ -18,25 +18,26 @@ $lang->message->browserSetting->turnonList[1] = 'On';
$lang->message->browserSetting->turnonList[0] = 'Off';
$lang->message->label = new stdclass();
$lang->message->label->created = 'create';
$lang->message->label->opened = 'open';
$lang->message->label->changed = 'change';
$lang->message->label->edited = 'edit';
$lang->message->label->assigned = 'assign';
$lang->message->label->closed = 'close';
$lang->message->label->deleted = 'delete';
$lang->message->label->undeleted = 'restore';
$lang->message->label->commented = 'comment';
$lang->message->label->activated = 'activate';
$lang->message->label->resolved = 'resolve';
$lang->message->label->reviewed = 'review';
$lang->message->label->confirmed = 'confirm Story';
$lang->message->label->fromBug = 'convert from Bug';
$lang->message->label->started = 'start';
$lang->message->label->delayed = 'delay';
$lang->message->label->suspended = 'suspend';
$lang->message->label->finished = 'finish';
$lang->message->label->paused = 'pause';
$lang->message->label->canceled = 'cancel';
$lang->message->label->restarted = 'continue';
$lang->message->label->blocked = 'block';
$lang->message->label->created = 'create';
$lang->message->label->opened = 'open';
$lang->message->label->changed = 'change';
$lang->message->label->edited = 'edit';
$lang->message->label->assigned = 'assign';
$lang->message->label->closed = 'close';
$lang->message->label->deleted = 'delete';
$lang->message->label->undeleted = 'restore';
$lang->message->label->commented = 'comment';
$lang->message->label->activated = 'activate';
$lang->message->label->resolved = 'resolve';
$lang->message->label->reviewed = 'review';
$lang->message->label->confirmed = 'confirm Story';
$lang->message->label->frombug = 'convert from Bug';
$lang->message->label->started = 'start';
$lang->message->label->delayed = 'delay';
$lang->message->label->suspended = 'suspend';
$lang->message->label->finished = 'finish';
$lang->message->label->paused = 'pause';
$lang->message->label->canceled = 'cancel';
$lang->message->label->restarted = 'continue';
$lang->message->label->blocked = 'block';
$lang->message->label->bugconfirmed = 'confirm';
+23 -22
View File
@@ -18,25 +18,26 @@ $lang->message->browserSetting->turnonList[1] = 'On';
$lang->message->browserSetting->turnonList[0] = 'Off';
$lang->message->label = new stdclass();
$lang->message->label->created = 'create';
$lang->message->label->opened = 'open';
$lang->message->label->changed = 'change';
$lang->message->label->edited = 'edit';
$lang->message->label->assigned = 'assign';
$lang->message->label->closed = 'close';
$lang->message->label->deleted = 'delete';
$lang->message->label->undeleted = 'restore';
$lang->message->label->commented = 'comment';
$lang->message->label->activated = 'activate';
$lang->message->label->resolved = 'resolve';
$lang->message->label->reviewed = 'review';
$lang->message->label->confirmed = 'confirm Story';
$lang->message->label->fromBug = 'convert from Bug';
$lang->message->label->started = 'start';
$lang->message->label->delayed = 'delay';
$lang->message->label->suspended = 'suspend';
$lang->message->label->finished = 'finish';
$lang->message->label->paused = 'pause';
$lang->message->label->canceled = 'cancel';
$lang->message->label->restarted = 'continue';
$lang->message->label->blocked = 'block';
$lang->message->label->created = 'create';
$lang->message->label->opened = 'open';
$lang->message->label->changed = 'change';
$lang->message->label->edited = 'edit';
$lang->message->label->assigned = 'assign';
$lang->message->label->closed = 'close';
$lang->message->label->deleted = 'delete';
$lang->message->label->undeleted = 'restore';
$lang->message->label->commented = 'comment';
$lang->message->label->activated = 'activate';
$lang->message->label->resolved = 'resolve';
$lang->message->label->reviewed = 'review';
$lang->message->label->confirmed = 'confirm Story';
$lang->message->label->frombug = 'convert from Bug';
$lang->message->label->started = 'start';
$lang->message->label->delayed = 'delay';
$lang->message->label->suspended = 'suspend';
$lang->message->label->finished = 'finish';
$lang->message->label->paused = 'pause';
$lang->message->label->canceled = 'cancel';
$lang->message->label->restarted = 'continue';
$lang->message->label->blocked = 'block';
$lang->message->label->bugconfirmed = 'confirm';
+23 -22
View File
@@ -18,25 +18,26 @@ $lang->message->browserSetting->turnonList[1] = '打开';
$lang->message->browserSetting->turnonList[0] = '关闭';
$lang->message->label = new stdclass();
$lang->message->label->created = '创建';
$lang->message->label->opened = '创建';
$lang->message->label->changed = '变更';
$lang->message->label->edited = '编辑';
$lang->message->label->assigned = '指派';
$lang->message->label->closed = '关闭';
$lang->message->label->deleted = '删除';
$lang->message->label->undeleted = '还原';
$lang->message->label->commented = '评论';
$lang->message->label->activated = '激活';
$lang->message->label->blocked = '阻塞';
$lang->message->label->resolved = '解决';
$lang->message->label->reviewed = '评审';
$lang->message->label->confirmed = "确认{$lang->SRCommon}";
$lang->message->label->frombug = "转{$lang->SRCommon}";
$lang->message->label->started = '开始';
$lang->message->label->canceled = '取消';
$lang->message->label->finished = '完成';
$lang->message->label->paused = '暂停';
$lang->message->label->delayed = '延期';
$lang->message->label->suspended = '挂起';
$lang->message->label->restarted = '继续';
$lang->message->label->created = '创建';
$lang->message->label->opened = '创建';
$lang->message->label->changed = '变更';
$lang->message->label->edited = '编辑';
$lang->message->label->assigned = '指派';
$lang->message->label->closed = '关闭';
$lang->message->label->deleted = '删除';
$lang->message->label->undeleted = '还原';
$lang->message->label->commented = '评论';
$lang->message->label->activated = '激活';
$lang->message->label->resolved = '解决';
$lang->message->label->reviewed = '评审';
$lang->message->label->confirmed = "确认{$lang->SRCommon}";
$lang->message->label->frombug = "转{$lang->SRCommon}";
$lang->message->label->started = '开始';
$lang->message->label->delayed = '延期';
$lang->message->label->suspended = '挂起';
$lang->message->label->finished = '完成';
$lang->message->label->paused = '暂停';
$lang->message->label->canceled = '取消';
$lang->message->label->restarted = '继续';
$lang->message->label->blocked = '阻塞';
$lang->message->label->bugconfirmed = '确认';
+23 -22
View File
@@ -18,25 +18,26 @@ $lang->message->browserSetting->turnonList[1] = '打開';
$lang->message->browserSetting->turnonList[0] = '關閉';
$lang->message->label = new stdclass();
$lang->message->label->created = '創建';
$lang->message->label->opened = '創建';
$lang->message->label->changed = '變更';
$lang->message->label->edited = '編輯';
$lang->message->label->assigned = '指派';
$lang->message->label->closed = '關閉';
$lang->message->label->deleted = '刪除';
$lang->message->label->undeleted = '還原';
$lang->message->label->commented = '評論';
$lang->message->label->activated = '激活';
$lang->message->label->blocked = '阻塞';
$lang->message->label->resolved = '解決';
$lang->message->label->reviewed = '評審';
$lang->message->label->confirmed = "確認{$lang->SRCommon}";
$lang->message->label->frombug = "轉{$lang->SRCommon}";
$lang->message->label->started = '開始';
$lang->message->label->restarted = '繼續';
$lang->message->label->canceled = '取消';
$lang->message->label->finished = '完成';
$lang->message->label->paused = '暫停';
$lang->message->label->delayed = '延期';
$lang->message->label->suspended = '掛起';
$lang->message->label->created = '創建';
$lang->message->label->opened = '創建';
$lang->message->label->changed = '變更';
$lang->message->label->edited = '編輯';
$lang->message->label->assigned = '指派';
$lang->message->label->closed = '關閉';
$lang->message->label->deleted = '刪除';
$lang->message->label->undeleted = '還原';
$lang->message->label->commented = '評論';
$lang->message->label->activated = '激活';
$lang->message->label->resolved = '解決';
$lang->message->label->reviewed = '評審';
$lang->message->label->confirmed = "確認{$lang->SRCommon}";
$lang->message->label->frombug = "轉{$lang->SRCommon}";
$lang->message->label->started = '開始';
$lang->message->label->delayed = '延期';
$lang->message->label->suspended = '掛起';
$lang->message->label->finished = '完成';
$lang->message->label->paused = '暫停';
$lang->message->label->canceled = '取消';
$lang->message->label->restarted = '繼續';
$lang->message->label->blocked = '阻塞';
$lang->message->label->bugconfirmed = '確認';
+2
View File
@@ -1212,6 +1212,8 @@ class product extends control
if($_POST)
{
$this->product->manageLine();
if(dao::isError()) die(js::error(dao::getError()));
die(js::reload('parent'));
}
+7 -1
View File
@@ -1,3 +1,7 @@
$(function()
{
if(programID) $('#line_chosen').addClass('hidden');
})
/**
* Load product Lines.
*
@@ -56,12 +60,14 @@ function toggleLine(obj)
{
$('form .line-no-exist').removeClass('hidden');
$('form .line-exist').addClass('hidden');
$('#line_chosen').addClass('hidden');
$line.attr('disabled', 'disabled');
}
else
{
$('form .line-exist').removeClass('hidden');
$(' #line').removeClass('hidden');
$('form .line-no-exist').addClass('hidden');
$('#line_chosen').removeClass('hidden');
$line.removeAttr('disabled');
}
}
+1 -1
View File
@@ -26,7 +26,7 @@ $lang->product->other = 'Andere';
$lang->product->closed = 'Geschlossen';
$lang->product->updateOrder = 'Ranking';
$lang->product->orderAction = "Rank {$lang->productCommon}";
$lang->product->all = "{$lang->productCommon} List";
$lang->product->all = 'Alle' . $lang->productCommon;
$lang->product->manageLine = "Manage {$lang->productCommon} Line";
$lang->product->newLine = "Create {$lang->productCommon} Line";
$lang->product->export = 'Exportiere Daten';
+2 -1
View File
@@ -24,7 +24,7 @@ $lang->product->mine = 'Mine';
$lang->product->other = 'Others';
$lang->product->closed = 'Closed';
$lang->product->updateOrder = 'Order';
$lang->product->all = "{$lang->productCommon} List";
$lang->product->all = 'All' . $lang->productCommon;
$lang->product->manageLine = "Manage {$lang->productCommon} Line";
$lang->product->newLine = "Create {$lang->productCommon} Line";
$lang->product->export = 'Export';
@@ -85,6 +85,7 @@ $lang->product->programChangeTip = "The projects linked with this {$lang->pr
$lang->product->notChangeProgramTip = "The {$lang->SRCommon} of {$lang->productCommon} has been linked to the following projects, please cancel the link before proceeding";
$lang->product->confirmChangeProgram = "The projects linked with this {$lang->productCommon}: %s is also linked with other products, whether to transfer projects to the modified program set.";
$lang->product->changeProgramError = "The {$lang->SRCommon} of this {$lang->productCommon} has been linked to the project, please unlink it before proceeding";
$lang->product->programEmpty = 'Program cannot be empty.';
$lang->product->id = 'ID';
$lang->product->program = "Program";
+1 -1
View File
@@ -26,7 +26,7 @@ $lang->product->other = 'Autres';
$lang->product->closed = 'Fermés';
$lang->product->updateOrder = 'Ordre';
$lang->product->orderAction = "Rang {$lang->productCommon}";
$lang->product->all = "{$lang->productCommon} List";
$lang->product->all = 'All' . $lang->productCommon;
$lang->product->manageLine = "Manage {$lang->productCommon} Line";
$lang->product->newLine = "Create {$lang->productCommon} Line";
$lang->product->export = 'Export';
+1 -1
View File
@@ -26,7 +26,7 @@ $lang->product->other = 'Khác';
$lang->product->closed = 'Đã đóng';
$lang->product->updateOrder = 'Sắp xếp';
$lang->product->orderAction = "Đánh giá {$lang->productCommon}";
$lang->product->all = "{$lang->productCommon} List";
$lang->product->all = 'All' . $lang->productCommon;
$lang->product->manageLine = "Manage {$lang->productCommon} Line";
$lang->product->newLine = "Create {$lang->productCommon} Line";
$lang->product->export = 'Xuất';
+2 -1
View File
@@ -24,7 +24,7 @@ $lang->product->mine = '我负责';
$lang->product->other = '其他';
$lang->product->closed = '已关闭';
$lang->product->updateOrder = '排序';
$lang->product->all = "{$lang->productCommon}列表";
$lang->product->all = "所有{$lang->productCommon}";
$lang->product->manageLine = "维护{$lang->productCommon}线";
$lang->product->newLine = "新建{$lang->productCommon}线";
$lang->product->export = '导出数据';
@@ -85,6 +85,7 @@ $lang->product->programChangeTip = "如下项目只关联了该{$lang->produ
$lang->product->notChangeProgramTip = "该{$lang->productCommon}的{$lang->SRCommon}已经关联到如下项目,请取消关联后再操作";
$lang->product->confirmChangeProgram = "如下项目既关联了该{$lang->productCommon}又关联了其他{$lang->productCommon},请确认是否继续关联该{$lang->productCommon},勾选后将取消与其他{$lang->productCommon}的关联关系,同时转移至新项目集下。";
$lang->product->changeProgramError = "该{$lang->productCommon}的{$lang->SRCommon}已经关联到项目,请取消关联后再操作";
$lang->product->programEmpty = '项目集不能为空';
$lang->product->id = '编号';
$lang->product->program = "所属项目集";
+1 -1
View File
@@ -24,7 +24,7 @@ $lang->product->mine = '我負責';
$lang->product->other = '其他';
$lang->product->closed = '已關閉';
$lang->product->updateOrder = '排序';
$lang->product->all = "{$lang->productCommon}列表";
$lang->product->all = "所有{$lang->productCommon}";
$lang->product->manageLine = "維護{$lang->productCommon}綫";
$lang->product->newLine = "新建{$lang->productCommon}綫";
$lang->product->export = '導出數據';
+7 -2
View File
@@ -727,8 +727,13 @@ class productModel extends model
$maxOrder = $maxOrder ? $maxOrder : 0;
foreach($data->modules as $id => $name)
{
if(!$name) continue;
if(!($this->config->systemMode == 'classic') and !$data->programs[$id]) continue;
if(empty($name)) continue;
if($this->config->systemMode == 'new' and empty($data->programs[$id]))
{
dao::$errors[] = $this->lang->product->programEmpty;
return false;
}
$line->name = strip_tags(trim($name));
$line->root = $data->programs[$id];
+6 -5
View File
@@ -13,6 +13,7 @@
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<?php js::set('noProject', false);?>
<?php js::set('programID', $programID);?>
<div id="mainContent" class="main-content">
<div class="center-block">
<div class="main-header">
@@ -32,7 +33,7 @@
<?php if($config->systemMode == 'classic' or $programID):?>
<td>
<div class='input-group'>
<?php echo html::select("line", $lines, '', "class='form-control hidden line-exist'");?>
<?php echo html::select("line", $lines, '', "class='form-control hidden line-exist chosen'");?>
<?php echo html::input("lineName", '', "class='form-control line-no-exist'");?>
<?php if(count($lines)):?>
<span class='input-group-addon'>
@@ -54,19 +55,19 @@
</tr>
<tr>
<th><?php echo $lang->product->code;?></th>
<td><?php echo html::input('code', '', "class='form-control' required");?></td><td></td>
<td><?php echo html::input('code', '', "class='form-control' required");?></td>
</tr>
<tr>
<th><?php echo $lang->product->PO;?></th>
<td><?php echo html::select('PO', $poUsers, $this->app->user->account, "class='form-control chosen'");?></td><td></td>
<td><?php echo html::select('PO', $poUsers, $this->app->user->account, "class='form-control chosen'");?></td>
</tr>
<tr>
<th><?php echo $lang->product->QD;?></th>
<td><?php echo html::select('QD', $qdUsers, '', "class='form-control chosen'");?></td><td></td>
<td><?php echo html::select('QD', $qdUsers, '', "class='form-control chosen'");?></td>
</tr>
<tr>
<th><?php echo $lang->product->RD;?></th>
<td><?php echo html::select('RD', $rdUsers, '', "class='form-control chosen'");?></td><td></td>
<td><?php echo html::select('RD', $rdUsers, '', "class='form-control chosen'");?></td>
</tr>
<tr>
<th><?php echo $lang->product->type;?></th>
+6 -4
View File
@@ -32,9 +32,11 @@
<thead>
<tr>
<th class='c-id'><?php echo $lang->idAB;?></th>
<th><?php echo $lang->project->name;?></th>
<?php if($config->systemMode == 'new'):?>
<th class='c-program'><?php echo $lang->program->common;?></th>
<th><?php echo $lang->project->name;?></th>
<?php else:?>
<th><?php echo $lang->execution->name;?></th>
<?php endif;?>
<th class='c-user text-left'><?php echo $lang->project->PM;?></th>
<th class='c-date'><?php echo $lang->project->begin;?></th>
@@ -51,6 +53,9 @@
<?php foreach($projectStats as $project):?>
<tr>
<td><?php printf('%03d', $project->id);?></td>
<?php if($config->systemMode == 'new'):?>
<td title='<?php echo $project->programName;?>' class='text-ellipsis'><?php echo $project->programName;?></td>
<?php endif;?>
<td class='text-left'>
<?php
if($config->systemMode == 'new')
@@ -63,9 +68,6 @@
}
?>
</td>
<?php if($config->systemMode == 'new'):?>
<td title='<?php echo $project->programName;?>' class='text-ellipsis'><?php echo $project->programName;?></td>
<?php endif;?>
<td class='padding-right'>
<?php $userID = isset($PMList[$project->PM]) ? $PMList[$project->PM]->id : ''?>
<?php if(!empty($project->PM)) echo html::a($this->createLink('user', 'profile', "userID=$userID", '', true), zget($users, $project->PM), '', "data-toggle='modal' data-type='iframe' data-width='800'");?>
+1 -1
View File
@@ -313,7 +313,7 @@ class productplan extends control
$this->view->canBeChanged = $canBeChanged;
if($this->app->getViewType() == 'json')
{
{
unset($this->view->storyPager);
unset($this->view->bugPager);
}
+1 -1
View File
@@ -18,5 +18,5 @@ td.c-branch {overflow: hidden; text-align: left !important; text-overflow: ellip
.c-title {width: 160px;}
.c-branch {width: 100px;}
.c-story {width: 80px;}
.c-execution {width: 70px;}
.c-execution {width: 120px;}
.c-bug, .c-hour {width: 60px;}
+9 -1
View File
@@ -24,7 +24,15 @@ $(function()
{
var projectID = $('#project').val();
var planID = $('#planID').val();
$.apps.open(createLink('execution', 'create', 'projectID=' + projectID + '&executionID=&copyExecutionID=&planID=' + planID + '&confirm=&productID=' + productID), 'project')
if(!projectID)
{
alert(projectNotEmpty);
return false;
}
else
{
$.apps.open(createLink('execution', 'create', 'projectID=' + projectID + '&executionID=&copyExecutionID=&planID=' + planID + '&confirm=&productID=' + productID), 'project')
}
});
});
$(document).on('click', 'td.content .more', function(e)
+2 -3
View File
@@ -41,7 +41,6 @@ function computeEndDate(delta)
$('#begin').on('change', function()
{
$("#end").val('');
$("input:radio[name='delta']").attr("checked",false);
});
@@ -55,11 +54,11 @@ $('#future').on('change', function()
if($(this).prop('checked'))
{
$('#begin').attr('disabled', 'disabled');
$('#end').val('').parents('tr').hide();
$('#end').attr('disabled', 'disabled').parents('tr').hide();
}
else
{
$('#begin').removeAttr('disabled');
$('#end').val('').parents('tr').show();
$('#end').removeAttr('disabled').parents('tr').show();
}
});
+9 -6
View File
@@ -30,7 +30,7 @@ $lang->productplan->linkedStories = 'Verknüpfte Storys';
$lang->productplan->unlinkedStories = 'Unverknüpfte Storys';
$lang->productplan->updateOrder = 'Sortierung';
$lang->productplan->createChildren = "Create Child Plans";
$lang->productplan->createExecution = "Create {$lang->executionCommon}";
$lang->productplan->createExecution = "Create {$lang->execution->common}";
$lang->productplan->linkBug = "Bug Verknüpfen";
$lang->productplan->unlinkBug = "Bug Verknpfung aufheben";
@@ -46,6 +46,7 @@ $lang->productplan->confirmUnlinkBug = "Möchten Sie diesen Bug löschen?";
$lang->productplan->noPlan = 'Kein Plan. ';
$lang->productplan->cannotDeleteParent = 'Cannot delete parent plan';
$lang->productplan->selectProjects = "Please select the project";
$lang->productplan->projectNotEmpty = 'Project cannot be empty.';
$lang->productplan->nextStep = "Next step";
$lang->productplan->id = 'ID';
@@ -60,7 +61,7 @@ $lang->productplan->future = 'Wartend';
$lang->productplan->stories = 'Storys';
$lang->productplan->bugs = 'Bugs';
$lang->productplan->hour = $lang->hourCommon;
$lang->productplan->execution = $lang->executionCommon;
$lang->productplan->execution = $lang->execution->common;
$lang->productplan->parent = "Parent Plan";
$lang->productplan->parentAB = "Parent";
$lang->productplan->children = "Child Plan";
@@ -76,10 +77,12 @@ $lang->productplan->endList[93] = '3 Monate';
$lang->productplan->endList[186] = '6 Monate';
$lang->productplan->endList[365] = '1 Jahr';
$lang->productplan->errorNoTitle = 'ID %s Titel darf nicht leer sein.';
$lang->productplan->errorNoBegin = 'ID %s Start darf nicht leer sein.';
$lang->productplan->errorNoEnd = 'ID %s Ende darf nicht leer sein.';
$lang->productplan->beginGeEnd = 'ID %s Start darf nicht größer als Ende sein.';
$lang->productplan->errorNoTitle = 'ID %s Titel darf nicht leer sein.';
$lang->productplan->errorNoBegin = 'ID %s Start darf nicht leer sein.';
$lang->productplan->errorNoEnd = 'ID %s Ende darf nicht leer sein.';
$lang->productplan->beginGeEnd = 'ID %s Start darf nicht größer als Ende sein.';
$lang->productplan->beginLetterParent = "Parent begin date: %s, begin date should be >= parent begin date.";
$lang->productplan->endGreaterParent = "Parent end date: %s, end date should be <= parent end date.";
$lang->productplan->featureBar['browse']['all'] = 'Alle';
$lang->productplan->featureBar['browse']['unexpired'] = 'Nicht abgelaufen';
+9 -6
View File
@@ -30,7 +30,7 @@ $lang->productplan->linkedStories = 'Linked Stories';
$lang->productplan->unlinkedStories = 'Unlinked Stories';
$lang->productplan->updateOrder = 'Order';
$lang->productplan->createChildren = "Create Child Plans";
$lang->productplan->createExecution = "Create {$lang->executionCommon}";
$lang->productplan->createExecution = "Create {$lang->execution->common}";
$lang->productplan->linkBug = "Link Bug";
$lang->productplan->unlinkBug = "Unlink Bug";
@@ -46,6 +46,7 @@ $lang->productplan->confirmUnlinkBug = "Do you want to unlink this bug?";
$lang->productplan->noPlan = 'No plans yet. ';
$lang->productplan->cannotDeleteParent = 'Cannot delete parent plan';
$lang->productplan->selectProjects = "Please select the project";
$lang->productplan->projectNotEmpty = 'Project cannot be empty.';
$lang->productplan->nextStep = "Next step";
$lang->productplan->id = 'ID';
@@ -60,7 +61,7 @@ $lang->productplan->future = 'TBD';
$lang->productplan->stories = 'Story';
$lang->productplan->bugs = 'Bug';
$lang->productplan->hour = $lang->hourCommon;
$lang->productplan->execution = $lang->executionCommon;
$lang->productplan->execution = $lang->execution->common;
$lang->productplan->parent = "Parent Plan";
$lang->productplan->parentAB = "Parent";
$lang->productplan->children = "Child Plan";
@@ -77,10 +78,12 @@ $lang->productplan->endList[93] = '3 Months';
$lang->productplan->endList[186] = '6 Months';
$lang->productplan->endList[365] = '1 Year';
$lang->productplan->errorNoTitle = 'ID %s title should not be empty.';
$lang->productplan->errorNoBegin = 'ID %s begin time should not be empty.';
$lang->productplan->errorNoEnd = 'ID %s end time should not be empty.';
$lang->productplan->beginGeEnd = 'ID %s begin time should not be >= end time.';
$lang->productplan->errorNoTitle = 'ID %s title should not be empty.';
$lang->productplan->errorNoBegin = 'ID %s begin time should not be empty.';
$lang->productplan->errorNoEnd = 'ID %s end time should not be empty.';
$lang->productplan->beginGeEnd = 'ID %s begin time should not be >= end time.';
$lang->productplan->beginLetterParent = "Parent begin date: %s, begin date should be >= parent begin date.";
$lang->productplan->endGreaterParent = "Parent end date: %s, end date should be <= parent end date.";
$lang->productplan->featureBar['browse']['all'] = 'All';
$lang->productplan->featureBar['browse']['unexpired'] = 'Unexpired';
+9 -6
View File
@@ -30,7 +30,7 @@ $lang->productplan->linkedStories = 'Stories Planifiées';
$lang->productplan->unlinkedStories = 'Stories non Planifiées';
$lang->productplan->updateOrder = 'Ordre';
$lang->productplan->createChildren = "Créer Sous-Plans";
$lang->productplan->createExecution = "Create {$lang->executionCommon}";
$lang->productplan->createExecution = "Create {$lang->execution->common}";
$lang->productplan->linkBug = "Planifier Bug";
$lang->productplan->unlinkBug = "Retirer Bug";
@@ -46,6 +46,7 @@ $lang->productplan->confirmUnlinkBug = "Voulez-vous retirer ce bug du plan ?";
$lang->productplan->noPlan = "Aucun plan pour l'instant. ";
$lang->productplan->cannotDeleteParent = 'Impossible de supprimer le plan parent';
$lang->productplan->selectProjects = "Please select the project";
$lang->productplan->projectNotEmpty = 'Project cannot be empty.';
$lang->productplan->nextStep = "Next step";
$lang->productplan->id = 'ID';
@@ -60,7 +61,7 @@ $lang->productplan->future = 'A Définir';
$lang->productplan->stories = 'Story';
$lang->productplan->bugs = 'Bug';
$lang->productplan->hour = $lang->hourCommon;
$lang->productplan->execution = $lang->executionCommon;
$lang->productplan->execution = $lang->execution->common;
$lang->productplan->parent = "Plan Parent";
$lang->productplan->parentAB = "Parent";
$lang->productplan->children = "Sous-Plan";
@@ -76,10 +77,12 @@ $lang->productplan->endList[93] = '3 Mois';
$lang->productplan->endList[186] = '6 Mois';
$lang->productplan->endList[365] = '1 Année';
$lang->productplan->errorNoTitle = 'ID %s titre ne doit pas être à blanc.';
$lang->productplan->errorNoBegin = "ID %s l'heure de début devrait être renseignée.";
$lang->productplan->errorNoEnd = "ID %s l'heure de fin devrait être renseignée.";
$lang->productplan->beginGeEnd = "ID %s l'heure de début ne doit pas être >= à l'heure de fin.";
$lang->productplan->errorNoTitle = 'ID %s titre ne doit pas être à blanc.';
$lang->productplan->errorNoBegin = "ID %s l'heure de début devrait être renseignée.";
$lang->productplan->errorNoEnd = "ID %s l'heure de fin devrait être renseignée.";
$lang->productplan->beginGeEnd = "ID %s l'heure de début ne doit pas être >= à l'heure de fin.";
$lang->productplan->beginLetterParent = "Parent begin date: %s, begin date should be >= parent begin date.";
$lang->productplan->endGreaterParent = "Parent end date: %s, end date should be <= parent end date.";
$lang->productplan->featureBar['browse']['all'] = 'Tous';
$lang->productplan->featureBar['browse']['unexpired'] = 'Non échus';
+9 -6
View File
@@ -30,7 +30,7 @@ $lang->productplan->linkedStories = 'Câu chuyện liên kết';
$lang->productplan->unlinkedStories = 'Câu chuyện chưa liên kết';
$lang->productplan->updateOrder = 'Sắp xếp';
$lang->productplan->createChildren = "Tạo kế hoạch con";
$lang->productplan->createExecution = "Create {$lang->executionCommon}";
$lang->productplan->createExecution = "Create {$lang->execution->common}";
$lang->productplan->linkBug = "Liên kết Bug";
$lang->productplan->unlinkBug = "Hủy liên kết Bug";
@@ -46,6 +46,7 @@ $lang->productplan->confirmUnlinkBug = "Bạn có muốn hủy liên kết bug
$lang->productplan->noPlan = 'Không có kế hoạch nào';
$lang->productplan->cannotDeleteParent = 'Không thể xóa kế hoạch mẹ';
$lang->productplan->selectProjects = "Please select the project";
$lang->productplan->projectNotEmpty = 'Project cannot be empty.';
$lang->productplan->nextStep = "Next step";
$lang->productplan->id = 'ID';
@@ -60,7 +61,7 @@ $lang->productplan->future = 'TBD';
$lang->productplan->stories = 'Câu chuyện';
$lang->productplan->bugs = 'Bug';
$lang->productplan->hour = $lang->hourCommon;
$lang->productplan->execution = $lang->executionCommon;
$lang->productplan->execution = $lang->execution->common;
$lang->productplan->parent = "Kế hoạch mẹ";
$lang->productplan->parentAB = "Mẹ";
$lang->productplan->children = "Kế hoạch con";
@@ -76,10 +77,12 @@ $lang->productplan->endList[93] = '3 tháng';
$lang->productplan->endList[186] = '6 tháng';
$lang->productplan->endList[365] = '1 năm';
$lang->productplan->errorNoTitle = 'Tiêu đề ID %s không nên trống.';
$lang->productplan->errorNoBegin = 'Thời gian bắt đầu ID %s không nên trống.';
$lang->productplan->errorNoEnd = 'Thời gian kết thúc ID %s không nên trống.';
$lang->productplan->beginGeEnd = 'ID %s thời gian bắt đầu không nên >= thời gian kết thúc.';
$lang->productplan->errorNoTitle = 'Tiêu đề ID %s không nên trống.';
$lang->productplan->errorNoBegin = 'Thời gian bắt đầu ID %s không nên trống.';
$lang->productplan->errorNoEnd = 'Thời gian kết thúc ID %s không nên trống.';
$lang->productplan->beginGeEnd = 'ID %s thời gian bắt đầu không nên >= thời gian kết thúc.';
$lang->productplan->beginLetterParent = "Parent begin date: %s, begin date should be >= parent begin date.";
$lang->productplan->endGreaterParent = "Parent end date: %s, end date should be <= parent end date.";
$lang->productplan->featureBar['browse']['all'] = 'Tất cả';
$lang->productplan->featureBar['browse']['unexpired'] = 'Chưa quá hạn';
+10 -6
View File
@@ -30,7 +30,7 @@ $lang->productplan->linkedStories = $lang->SRCommon;
$lang->productplan->unlinkedStories = "未关联{$lang->SRCommon}";
$lang->productplan->updateOrder = '排序';
$lang->productplan->createChildren = "创建子计划";
$lang->productplan->createExecution = "创建{$lang->executionCommon}";
$lang->productplan->createExecution = "创建{$lang->execution->common}";
$lang->productplan->linkBug = "关联Bug";
$lang->productplan->unlinkBug = "移除Bug";
@@ -46,6 +46,7 @@ $lang->productplan->confirmUnlinkBug = "您确认移除该Bug吗?";
$lang->productplan->noPlan = "暂时没有计划。";
$lang->productplan->cannotDeleteParent = "不能删除父计划";
$lang->productplan->selectProjects = "请选择所属项目";
$lang->productplan->projectNotEmpty = '所属项目不能为空。';
$lang->productplan->nextStep = "下一步";
$lang->productplan->id = '编号';
@@ -60,7 +61,7 @@ $lang->productplan->future = '待定';
$lang->productplan->stories = "{$lang->SRCommon}数";
$lang->productplan->bugs = 'Bug数';
$lang->productplan->hour = $lang->hourCommon;
$lang->productplan->execution = $lang->executionCommon;
$lang->productplan->execution = $lang->execution->common;
$lang->productplan->parent = "父计划";
$lang->productplan->parentAB = "父";
$lang->productplan->children = "子计划";
@@ -77,10 +78,13 @@ $lang->productplan->endList[93] = '三个月';
$lang->productplan->endList[186] = '半年';
$lang->productplan->endList[365] = '一年';
$lang->productplan->errorNoTitle = 'ID %s 标题不能为空';
$lang->productplan->errorNoBegin = 'ID %s 开始时间不能为空';
$lang->productplan->errorNoEnd = 'ID %s 结束时间不能为空';
$lang->productplan->beginGeEnd = 'ID %s 开始时间不能大于结束时间';
$lang->productplan->errorNoTitle = 'ID %s 标题不能为空';
$lang->productplan->errorNoBegin = 'ID %s 开始时间不能为空';
$lang->productplan->errorNoEnd = 'ID %s 结束时间不能为空';
$lang->productplan->beginGeEnd = 'ID %s 开始时间不能大于结束时间';
$lang->productplan->beginLetterParent = "父计划的开始日期:%s,开始日期不能小于父计划的开始日期";
$lang->productplan->endGreaterParent = "父计划的完成日期:%s,完成日期不能大于父计划的完成日期";
$lang->productplan->featureBar['browse']['all'] = '全部';
$lang->productplan->featureBar['browse']['unexpired'] = '未过期';
+7 -4
View File
@@ -46,6 +46,7 @@ $lang->productplan->confirmUnlinkBug = "您確認移除該Bug嗎?";
$lang->productplan->noPlan = "暫時沒有計劃。";
$lang->productplan->cannotDeleteParent = "不能刪除父計劃";
$lang->productplan->selectProjects = "請選擇所屬項目";
$lang->productplan->projectNotEmpty = '所屬項目不能為空。';
$lang->productplan->nextStep = "下一步";
$lang->productplan->id = '編號';
@@ -77,10 +78,12 @@ $lang->productplan->endList[93] = '三個月';
$lang->productplan->endList[186] = '半年';
$lang->productplan->endList[365] = '一年';
$lang->productplan->errorNoTitle = 'ID %s 標題不能為空';
$lang->productplan->errorNoBegin = 'ID %s 開始時間不能為空';
$lang->productplan->errorNoEnd = 'ID %s 結束時間不能為空';
$lang->productplan->beginGeEnd = 'ID %s 開始時間不能大於結束時間';
$lang->productplan->errorNoTitle = 'ID %s 標題不能為空';
$lang->productplan->errorNoBegin = 'ID %s 開始時間不能為空';
$lang->productplan->errorNoEnd = 'ID %s 結束時間不能為空';
$lang->productplan->beginGeEnd = 'ID %s 開始時間不能大於結束時間';
$lang->productplan->beginLetterParent = "父計畫的開始日期:%s,開始日期不能小於父計畫的開始日期";
$lang->productplan->endGreaterParent = "父計畫的完成日期:%s,完成日期不能大於父計畫的完成日期";
$lang->productplan->featureBar['browse']['all'] = '全部';
$lang->productplan->featureBar['browse']['unexpired'] = '未過期';
+12
View File
@@ -332,6 +332,18 @@ class productplanModel extends model
->setIF($this->post->future || empty($_POST['end']), 'end', '2030-01-01')
->remove('delta,uid,future')
->get();
if(!empty($plan->parentBegin))
{
if($plan->begin < $plan->parentBegin) dao::$errors['begin'] = sprintf($this->lang->productplan->beginLetterParent, $plan->parentBegin);
}
if(!empty($plan->parentEnd))
{
if($plan->end !=='2030-01-01' and $plan->end > $plan->parentEnd) dao::$errors['end'] = sprintf($this->lang->productplan->endGreaterParent, $plan->parentEnd);
}
unset($plan->parentBegin);
unset($plan->parentEnd);
if(!$this->post->future and strpos($this->config->productplan->create->requiredFields, 'begin') !== false and empty($_POST['begin']))
{
dao::$errors['begin'] = sprintf($this->lang->error->notempty, $this->lang->productplan->begin);
+1
View File
@@ -202,4 +202,5 @@
</div>
</div>
</div>
<?php js::set('projectNotEmpty', $lang->productplan->projectNotEmpty)?>
<?php include '../../common/view/footer.html.php';?>
+6 -3
View File
@@ -20,12 +20,15 @@
<h2> <?php echo $parent ? $lang->productplan->createChildren : $lang->productplan->create;?></h2>
</div>
<form class='load-indicator main-form form-ajax' method='post' target='hiddenwin' id='dataform'>
<table class='table table-form'>
<table class='table table-form'>
<tbody>
<?php if($parent):?>
<tr>
<th><?php echo $lang->productplan->parent;?></th>
<td class='muted'><?php echo $parentPlan->title;?></td><td></td><td></td>
<td class='muted'><?php echo $parentPlan->title;?>
<?php echo html::hidden('parentBegin', $parentPlan->begin);?>
<?php echo html::hidden('parentEnd', $parentPlan->end);?>
</td><td></td><td></td>
</tr>
<?php else:?>
<tr>
@@ -48,7 +51,7 @@
<th><?php echo $lang->productplan->begin;?></th>
<td><?php echo html::input('begin', formatTime($begin), "class='form-control form-date'");?></td>
<td>
<div class='checkbox-primary'>
<div class='checkbox-primary'>
<input type='checkbox' id='future' name='future' value='1' />
<label for='future'><?php echo $lang->productplan->future;?></label>
</div>
+1 -1
View File
@@ -131,7 +131,7 @@
<?php
if(!isonlybody()) common::printIcon('testcase', 'edit',"caseID=$case->id", $case, 'button', '', '', 'showinonlybody');
if(!$isLibCase and $case->auto != 'unit') common::printIcon('testcase', 'create', "productID=$case->product&branch=$case->branch&moduleID=$case->module&from=testcase&param=$case->id", $case, 'button', 'copy');
if($isLibCase and common::hasPriv('caselib', 'createCase')) echo html::a($this->createLink('caselib', 'createCase', "libID=$case->lib&moduleID=$case->module&param=$case->id", $case), "<i class='icon-copy'></i>", '', "class='btn' title='{$lang->testcase->copy}'");
if($isLibCase and common::hasPriv('caselib', 'createCase')) echo html::a($this->createLink('caselib', 'createCase', "libID=$case->lib&moduleID=$case->module&param=$case->id"), "<i class='icon-copy'></i>", '', "class='btn' title='{$lang->testcase->copy}'");
common::printIcon('testcase', 'delete', "caseID=$case->id", $case, 'button', 'trash', 'hiddenwin', '');
?>
<?php endif;?>
+1 -1
View File
@@ -83,7 +83,7 @@ $lang->testreport->noTestTask = "No test requests for this {$lang->productCo
$lang->testreport->noObjectID = "No test request or {$lang->executionCommon} is selected, so no report can be generated.";
$lang->testreport->moreProduct = "Ein Testbericht kann nur innerhalb des selben Produkts erstellt werden.";
$lang->testreport->hiddenCase = "Hide %s use cases";
$lang->testreport->goalTip = "Descriptive information about the execution of this build";
$lang->testreport->goalTip = "Descriptive information about the {$lang->execution->common} of this build";
$lang->testreport->bugSummary = <<<EOD
<strong>%s</strong> Bug(s) in Summe erstellt <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->foundBugTip}'><i class='icon-exclamation-sign'></i></a>,
+1 -1
View File
@@ -84,7 +84,7 @@ $lang->testreport->noTestTask = "No test requests for this {$lang->productCo
$lang->testreport->noObjectID = "No test request or {$lang->executionCommon} is selected, so no report can be generated.";
$lang->testreport->moreProduct = "Testing reports can only be generated for the same {$lang->productCommon}.";
$lang->testreport->hiddenCase = "Hide %s use cases";
$lang->testreport->goalTip = "Descriptive information about the execution of this build";
$lang->testreport->goalTip = "Descriptive information about the {$lang->execution->common} of this build";
$lang->testreport->bugSummary = <<<EOD
Total <strong>%s</strong> Bugs reported <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->foundBugTip}'><i class='icon-help'></i></a>,
+1 -1
View File
@@ -83,7 +83,7 @@ $lang->testreport->noTestTask = "Pas de campagne de test pour ce {$lang->pro
$lang->testreport->noObjectID = "Pas de campagne de test ou un {$lang->executionCommon} est sélectionné, aucun rapport ne peut être généré.";
$lang->testreport->moreProduct = "Les rapports de test ne peuvent être produits que pour le même {$lang->productCommon}.";
$lang->testreport->hiddenCase = "Hide %s use cases";
$lang->testreport->goalTip = "Descriptive information about the execution of this build";
$lang->testreport->goalTip = "Descriptive information about the {$lang->execution->common} of this build";
$lang->testreport->bugSummary = <<<EOD
Total <strong>%s</strong> Bugs signalés <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->foundBugTip}'><i class='icon-help'></i></a>,
+1 -1
View File
@@ -83,7 +83,7 @@ $lang->testreport->noTestTask = "Không có yêu cầu thử nghiệm {$lang
$lang->testreport->noObjectID = "Không có yêu cầu test hoặc {$lang->executionCommon} được chọn, bởi vậy không có báo cáo có thể được tạo.";
$lang->testreport->moreProduct = "Báo cáo Test chỉ có thể được tạo cho cùng {$lang->productCommon}.";
$lang->testreport->hiddenCase = "Hide %s use cases";
$lang->testreport->goalTip = "Descriptive information about the execution of this build";
$lang->testreport->goalTip = "Descriptive information about the {$lang->execution->common} of this build";
$lang->testreport->bugSummary = <<<EOD
Total <strong>%s</strong> Bugs reported <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->foundBugTip}'><i class='icon-help'></i></a>,
+1 -1
View File
@@ -84,7 +84,7 @@ $lang->testreport->noTestTask = "该{$lang->productCommon}下还没有关联
$lang->testreport->noObjectID = "没有选定测试单或{$lang->executionCommon},无法创建测试报告!";
$lang->testreport->moreProduct = "只能对同一个{$lang->productCommon}生成测试报告。";
$lang->testreport->hiddenCase = "隐藏 %s 个用例";
$lang->testreport->goalTip = "该版本所属执行的描述信息";
$lang->testreport->goalTip = "该版本所属{$lang->execution->common}的描述信息";
$lang->testreport->bugSummary = <<<EOD
共发现<strong>%s</strong>个Bug <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->foundBugTip}'><i class='icon-help'></i></a>,
+1 -1
View File
@@ -84,7 +84,7 @@ $lang->testreport->noTestTask = "該{$lang->productCommon}下還沒有關聯
$lang->testreport->noObjectID = "沒有選定測試單或{$lang->executionCommon},無法創建測試報告!";
$lang->testreport->moreProduct = "只能對同一個{$lang->productCommon}生成測試報告。";
$lang->testreport->hiddenCase = "隱藏 %s 個用例";
$lang->testreport->goalTip = "該版本所屬執行的描述資訊";
$lang->testreport->goalTip = "該版本所屬{$lang->execution->common}的描述資訊";
$lang->testreport->bugSummary = <<<EOD
共發現<strong>%s</strong>個Bug <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->foundBugTip}'><i class='icon-help'></i></a>,
+6 -1
View File
@@ -55,11 +55,16 @@
<td colspan='2'><?php echo html::input('title', $report->title, "class='form-control'")?></td>
<td></td>
</tr>
<?php if(!empty($execution->desc)):?>
<tr>
<th><?php echo $lang->testreport->goal?></th>
<td colspan='2'><?php echo $execution->desc?></td>
<td colspan='2'>
<?php echo $execution->desc?>
<a data-toggle='tooltip' class='text-warning' title='<?php echo $lang->testreport->goalTip;?>'><i class='icon-help'></i></a>
</td>
<td></td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->testreport->profile?></th>
<td colspan='2'>
+5 -2
View File
@@ -63,10 +63,13 @@
<th><?php echo $lang->testreport->members?></th>
<td colspan='2'><?php foreach(explode(',', $report->members) as $member)echo zget($users, $member) . ' &nbsp; ';?></td>
</tr>
<?php if(!empty($execution)):?>
<?php if(!empty($execution->desc)):?>
<tr>
<th><?php echo $lang->testreport->goal?></th>
<td colspan='2'><?php echo $execution->desc?></td>
<td colspan='2'>
<?php echo $execution->desc?>
<a data-toggle='tooltip' class='text-warning' title='<?php echo $lang->testreport->goalTip;?>'><i class='icon-help'></i></a>
</td>
</tr>
<?php endif;?>
<tr>
+2 -1
View File
@@ -515,7 +515,8 @@ class todoModel extends model
$stmt = $this->dao->select('*')->from(TABLE_TODO)
->where('deleted')->eq('0')
->andWhere('assignedTo', true)->eq($account)
->beginIF($type == 'assignedtoother')->andWhere('account', true)->eq($account)->fi()
->beginIF($type != 'assignedtoother')->andWhere('assignedTo', true)->eq($account)->fi()
->orWhere('finishedBy')->eq($account)
->markRight(1)
->beginIF($begin)->andWhere('date')->ge($begin)->fi()