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

This commit is contained in:
tianshujie98
2021-03-23 11:18:09 +08:00
48 changed files with 210 additions and 396 deletions
+1 -36
View File
@@ -2566,41 +2566,6 @@ class execution extends control
$this->display();
}
/**
* Get recent executions.
*
* @access public
* @return void
*/
public function ajaxGetRecentExecutions()
{
$allExecutions = $this->execution->getRecentExecutions();
if(!empty($allExecutions))
{
foreach($allExecutions as $type => $executionList)
{
echo '<div class="heading">'. $this->lang->execution->$type . '</div>';
$color = $type == 'recent' ? 'text-brown' : '';
$executions = $allExecutions[$type];
$executionsName = array();
foreach($executions as $execution) $executionsName[] = $execution->name;
$executionsPinYin = common::convert2Pinyin($executionsName);
foreach($executions as $execution)
{
$link = helper::createLink('execution', 'task', 'executionID=' . $execution->id, '', false, $execution->project);
$execution->code = empty($execution->code) ? $execution->name : $execution->code;
$dataKey = 'date-key="' . zget($executionsPinYin, $execution->name, $execution->name) . '"';
$class = "class='search-list-item $color' title='$execution->name' $dataKey";
echo html::a($link, '<i class="icon icon-' . $this->lang->icons[$execution->type] . '"></i> ' . $execution->name, '', $class);
}
}
}
else
{
echo '<div class="table-empty-tip">' . $this->lang->noData . '</div>';
}
}
/**
* Update order.
*
@@ -2799,7 +2764,7 @@ class execution extends control
$this->fetch('file', 'export2' . $this->post->fileType, $_POST);
}
$this->view->fileName = (in_array($status, array('all', 'undone')) ? $this->lang->execution->$status : $this->lang->execution->statusList[$status]) . $this->lang->execution->common;
$this->view->fileName = (in_array($status, array('all', 'undone')) ? $this->lang->execution->$status : $this->lang->execution->statusList[$status]) . $this->lang->executionCommon;
$this->display();
}
+14 -10
View File
@@ -13,6 +13,7 @@
$lang->executionCommon = $lang->executionCommon;
$lang->execution->common = $lang->executionCommon;
$lang->execution->allExecutions = 'Alle';
$lang->execution->allExecutionAB = 'All Executions';
$lang->execution->id = $lang->executionCommon . ' ID';
$lang->execution->type = 'Typ';
$lang->execution->name = 'Name';
@@ -176,27 +177,30 @@ $lang->execution->unlinkStoryTasks = 'Verknüpfung aufheben';
$lang->execution->linkedProducts = 'Verküpfte Produkte';
$lang->execution->unlinkedProducts = 'Produkt verknüpfung aufheben';
$lang->execution->view = "Übersicht";
$lang->execution->startAction = "Start {$lang->executionCommon}";
$lang->execution->activateAction = "Activate {$lang->executionCommon}";
$lang->execution->delayAction = "Delay {$lang->executionCommon}";
$lang->execution->suspendAction = "Suspend {$lang->executionCommon}";
$lang->execution->closeAction = "Close {$lang->executionCommon}";
$lang->execution->testtaskAction = "{$lang->executionCommon} Request";
$lang->execution->teamAction = "{$lang->executionCommon} Members";
$lang->execution->kanbanAction = "{$lang->executionCommon} Kanban";
$lang->execution->startAction = "Start Execution";
$lang->execution->activateAction = "Activate Execution";
$lang->execution->delayAction = "Delay Execution";
$lang->execution->suspendAction = "Suspend Execution";
$lang->execution->closeAction = "Close Execution";
$lang->execution->testtaskAction = "Execution Request";
$lang->execution->teamAction = "Execution Members";
$lang->execution->kanbanAction = "Execution Kanban";
$lang->execution->printKanbanAction = "Print Kanban";
$lang->execution->treeAction = "{$lang->executionCommon} Tree View";
$lang->execution->exportAction = "Export {$lang->executionCommon}";
$lang->execution->treeAction = "Execution Tree View";
$lang->execution->exportAction = "Export Execution";
$lang->execution->computeBurnAction = "Compute Burn";
$lang->execution->create = "Erstelle Projekt";
$lang->execution->createExec = "Create Execution";
$lang->execution->copyExec = "Copy Execution";
$lang->execution->copy = "Kopiere {$lang->executionCommon}";
$lang->execution->delete = "Lösche";
$lang->execution->deleteAB = "Lösche Execution";
$lang->execution->browse = "Durchsuchen";
$lang->execution->list = "{$lang->executionCommon} List";
$lang->execution->edit = "Bearbeiten";
$lang->execution->editAB = "Bearbeiten";
$lang->execution->batchEdit = "Mehere bearbeiten";
$lang->execution->batchEditAB = "Mehere bearbeiten";
$lang->execution->manageMembers = 'Teams verwalten';
$lang->execution->unlinkMember = 'Mitgliefer entfernen';
$lang->execution->unlinkStory = 'Story entfernen';
+20 -16
View File
@@ -13,10 +13,11 @@
$lang->executionCommon = $lang->executionCommon;
$lang->execution->common = 'Execution';
$lang->execution->allExecutions = 'All ' . $lang->executionCommon . 's';
$lang->execution->allExecutionAB = 'All Executions';
$lang->execution->id = $lang->executionCommon . ' ID';
$lang->execution->type = 'Type';
$lang->execution->name = "{$lang->executionCommon} Name";
$lang->execution->code = 'Code';
$lang->execution->type = $lang->executionCommon . 'Type';
$lang->execution->name = $lang->executionCommon . 'Name';
$lang->execution->code = $lang->executionCommon . 'Code';
$lang->execution->project = 'Project';
$lang->execution->execName = 'Execution Name';
$lang->execution->execCode = 'Execution Code';
@@ -39,10 +40,10 @@ $lang->execution->workHour = ' Hours';
$lang->execution->workHourUnit = 'H';
$lang->execution->totalHours = 'Available Hours';
$lang->execution->totalDays = 'Available Days';
$lang->execution->status = 'Status';
$lang->execution->status = $lang->executionCommon . 'Status';
$lang->execution->execStatus = 'Status';
$lang->execution->subStatus = 'Sub Status';
$lang->execution->desc = 'Description';
$lang->execution->desc = $lang->executionCommon . 'Description';
$lang->execution->execDesc = 'Description';
$lang->execution->owner = 'Owner';
$lang->execution->PO = "{$lang->executionCommon} Owner";
@@ -175,28 +176,31 @@ $lang->execution->linkPlan = 'Linked Plan';
$lang->execution->unlinkStoryTasks = 'Unlink';
$lang->execution->linkedProducts = "Linked {$lang->productCommon}s";
$lang->execution->unlinkedProducts = "Unlinked {$lang->productCommon}s";
$lang->execution->view = "{$lang->executionCommon} Detail";
$lang->execution->startAction = "Start {$lang->executionCommon}";
$lang->execution->activateAction = "Activate {$lang->executionCommon}";
$lang->execution->delayAction = "Delay {$lang->executionCommon}";
$lang->execution->suspendAction = "Suspend {$lang->executionCommon}";
$lang->execution->closeAction = "Close {$lang->executionCommon}";
$lang->execution->testtaskAction = "{$lang->executionCommon} Request";
$lang->execution->teamAction = "{$lang->executionCommon} Members";
$lang->execution->kanbanAction = "{$lang->executionCommon} Kanban";
$lang->execution->view = "Execution Detail";
$lang->execution->startAction = "Start Execution";
$lang->execution->activateAction = "Activate Execution";
$lang->execution->delayAction = "Delay Execution";
$lang->execution->suspendAction = "Suspend Execution";
$lang->execution->closeAction = "Close Execution";
$lang->execution->testtaskAction = "Execution Request";
$lang->execution->teamAction = "Execution Members"
$lang->execution->kanbanAction = "Execution Kanban";
$lang->execution->printKanbanAction = "Print Kanban";
$lang->execution->treeAction = "{$lang->executionCommon} Tree View";
$lang->execution->exportAction = "Export {$lang->executionCommon}";
$lang->execution->treeAction = "Execution Tree View";
$lang->execution->exportAction = "Export Execution";
$lang->execution->computeBurnAction = "Update Burndown";
$lang->execution->create = "Create {$lang->executionCommon}";
$lang->execution->createExec = "Create Execution";
$lang->execution->copyExec = "Copy Execution";
$lang->execution->copy = "Copy {$lang->executionCommon}";
$lang->execution->delete = "Delete {$lang->executionCommon}";
$lang->execution->deleteAB = "Delete Execution";
$lang->execution->browse = "{$lang->executionCommon} List";
$lang->execution->list = "{$lang->executionCommon} List";
$lang->execution->edit = "Edit {$lang->executionCommon}";
$lang->execution->editAB = "Edit Execution";
$lang->execution->batchEdit = "Edit";
$lang->execution->batchEditAB = "Batch Edit";
$lang->execution->manageMembers = 'Manage Team';
$lang->execution->unlinkMember = 'Remove Member';
$lang->execution->unlinkStory = 'Unlink Story';
+20 -16
View File
@@ -13,10 +13,11 @@
$lang->executionCommon = $lang->executionCommon;
$lang->execution->common = $lang->executionCommon;
$lang->execution->allExecutions = 'Tous les ' . $lang->executionCommon . 's';
$lang->execution->allExecutionAB = 'All Executions';
$lang->execution->id = $lang->executionCommon . ' ID';
$lang->execution->type = 'Type';
$lang->execution->name = "Nom du {$lang->executionCommon}";
$lang->execution->code = 'Code';
$lang->execution->type = $lang->executionCommon . 'Type';
$lang->execution->name = $lang->executionCommon . 'Name';
$lang->execution->code = $lang->executionCommon . 'Code';
$lang->execution->project = 'Project';
$lang->execution->execName = 'Execution Name';
$lang->execution->execCode = 'Execution Code';
@@ -39,10 +40,10 @@ $lang->execution->workHour = ' Heures';
$lang->execution->workHourUnit = 'H';
$lang->execution->totalHours = 'Budget (Heure)';
$lang->execution->totalDays = 'Budget (Jour)';
$lang->execution->status = 'Statut';
$lang->execution->status = $lang->executionCommon . 'Status';
$lang->execution->execStatus = 'Status';
$lang->execution->subStatus = 'Sub Status';
$lang->execution->desc = 'Description';
$lang->execution->desc = $lang->executionCommon . 'Description';
$lang->execution->execDesc = 'Description';
$lang->execution->owner = 'Propriétaire';
$lang->execution->PO = "Propriétaire {$lang->executionCommon}";
@@ -175,28 +176,31 @@ $lang->execution->linkPlan = 'Plans liés';
$lang->execution->unlinkStoryTasks = 'Dissocier';
$lang->execution->linkedProducts = "{$lang->productCommon}s liés à ce {$lang->executionCommon}";
$lang->execution->unlinkedProducts = "{$lang->productCommon}s dissociés de ce {$lang->executionCommon}";
$lang->execution->view = "Détail du {$lang->executionCommon}";
$lang->execution->startAction = "Commencer le {$lang->executionCommon}";
$lang->execution->activateAction = "Activer le {$lang->executionCommon}";
$lang->execution->delayAction = "Ajourner le {$lang->executionCommon}";
$lang->execution->suspendAction = "Suspendre le {$lang->executionCommon}";
$lang->execution->closeAction = "Fermer le {$lang->executionCommon}";
$lang->execution->testtaskAction = "Recettes du {$lang->executionCommon}";
$lang->execution->teamAction = "Membres du {$lang->executionCommon}";
$lang->execution->kanbanAction = "Kaban {$lang->executionCommon}";
$lang->execution->view = "Détail du Execution";
$lang->execution->startAction = "Commencer le "
$lang->execution->activateAction = "Activer le Execution";
$lang->execution->delayAction = "Ajourner le Execution";
$lang->execution->suspendAction = "Suspendre le Execution";
$lang->execution->closeAction = "Fermer le Execution";
$lang->execution->testtaskAction = "Recettes du Execution";
$lang->execution->teamAction = "Membres du Execution";
$lang->execution->kanbanAction = "Kaban Execution";
$lang->execution->printKanbanAction = "Imprimer le Kanban";
$lang->execution->treeAction = "Arborescence {$lang->executionCommon}";
$lang->execution->exportAction = "Exporter {$lang->executionCommon}";
$lang->execution->treeAction = "Arborescence Execution";
$lang->execution->exportAction = "Exporter Execution";
$lang->execution->computeBurnAction = "Calculer Atterrissage";
$lang->execution->create = "Créer {$lang->executionCommon}";
$lang->execution->createExec = "Create Execution";
$lang->execution->copyExec = "Copy Execution";
$lang->execution->copy = "Copier {$lang->executionCommon}";
$lang->execution->delete = "Supprimer {$lang->executionCommon}";
$lang->execution->deleteAB = "Delete Execution";
$lang->execution->browse = "Liste du {$lang->executionCommon}";
$lang->execution->list = "{$lang->executionCommon} List";
$lang->execution->edit = "Editer {$lang->executionCommon}";
$lang->execution->editAB = "Edit Execution";
$lang->execution->batchEdit = "Edition par lot";
$lang->execution->batchEditAB = "Batch Edit";
$lang->execution->manageMembers = 'Organiser Equipe';
$lang->execution->unlinkMember = 'Retirer le membre';
$lang->execution->unlinkStory = 'Dissocier Story';
+20 -16
View File
@@ -13,6 +13,7 @@
$lang->executionCommon = $lang->executionCommon;
$lang->execution->common = $lang->executionCommon;
$lang->execution->allExecutions = 'Tất cả ' . $lang->executionCommon;
$lang->execution->allExecutionAB = 'All Executions';
$lang->execution->id = 'ID '.$lang->executionCommon;
$lang->execution->type = 'Loại';
$lang->execution->name = "Tên {$lang->executionCommon}";
@@ -39,10 +40,10 @@ $lang->execution->workHour = 'giờ';
$lang->execution->workHourUnit = 'H';
$lang->execution->totalHours = 'Giờ khả dụng';
$lang->execution->totalDays = 'Ngày khả dụng';
$lang->execution->status = 'Tình trạng';
$lang->execution->status = $lang->executionCommon . 'Status';
$lang->execution->execStatus = 'Status';
$lang->execution->subStatus = 'Tình trạng con';
$lang->execution->desc = 'Mô tả';
$lang->execution->desc = $lang->executionCommon . 'Description';
$lang->execution->execDesc = 'Description';
$lang->execution->owner = 'Sở hữu';
$lang->execution->PO = "Sở hữu {$lang->executionCommon}";
@@ -156,10 +157,10 @@ $lang->execution->groupTask = 'Xem kiểu nhóm';
$lang->execution->story = 'Danh sách câu chuyện';
$lang->execution->qa = 'QA';
$lang->execution->bug = 'Danh sách Bug';
$lang->execution->testcase = 'Testcase List';
$lang->execution->dynamic = 'Lịch sử';
$lang->execution->latestDynamic = 'Lịch sử';
$lang->execution->build = 'Danh sách bản dựng';
$lang->execution->testtask = 'Kiểm thử';
$lang->execution->testtask = 'Request';
$lang->execution->burn = 'Burndown';
$lang->execution->computeBurn = 'Cập nhật';
@@ -175,28 +176,31 @@ $lang->execution->linkPlan = 'Kế hoạch liên kết';
$lang->execution->unlinkStoryTasks = 'Hủy liên kết';
$lang->execution->linkedProducts = "{$lang->productCommon} liên kết";
$lang->execution->unlinkedProducts = "{$lang->productCommon} đã hủy liên kết";
$lang->execution->view = "Chi tiết {$lang->executionCommon}";
$lang->execution->startAction = "Bắt đầu {$lang->executionCommon}";
$lang->execution->activateAction = "Kích hoạt {$lang->executionCommon}";
$lang->execution->delayAction = "Tạm ngưng {$lang->executionCommon}";
$lang->execution->suspendAction = "Đình chỉ {$lang->executionCommon}";
$lang->execution->closeAction = "Đóng {$lang->executionCommon}";
$lang->execution->testtaskAction = "Yêu cầu {$lang->executionCommon}";
$lang->execution->teamAction = "Thành viên {$lang->executionCommon}";
$lang->execution->kanbanAction = "Kanban {$lang->executionCommon}";
$lang->execution->view = "Chi tiết Execution";
$lang->execution->startAction = "Bắt đầu Execution";
$lang->execution->activateAction = "Kích hoạt Execution";
$lang->execution->delayAction = "Tạm ngưng Execution";
$lang->execution->suspendAction = "Đình chỉ Execution";
$lang->execution->closeAction = "Đóng Execution";
$lang->execution->testtaskAction = "Yêu cầu Execution";
$lang->execution->teamAction = "Thành viên Execution";
$lang->execution->kanbanAction = "Kanban Execution";
$lang->execution->printKanbanAction = "In Kanban";
$lang->execution->treeAction = "Xem cây {$lang->executionCommon}";
$lang->execution->exportAction = "Xuất {$lang->executionCommon}";
$lang->execution->treeAction = "Xem cây Execution";
$lang->execution->exportAction = "Xuất Execution";
$lang->execution->computeBurnAction = "Tính Burndown";
$lang->execution->create = "Tạo {$lang->executionCommon}";
$lang->execution->copy = "Sao chép {$lang->executionCommon}";
$lang->execution->delete = "Xóa {$lang->executionCommon}";
$lang->execution->copy = "Sao chép Execution";
$lang->execution->delete = "Xóa Execution";
$lang->execution->copy = "Copy {$lang->executionCommon}";
$lang->execution->delete = "Delete {$lang->executionCommon}";
$lang->execution->deleteAB = "Delete Execution";
$lang->execution->browse = "{$lang->executionCommon} List";
$lang->execution->list = "{$lang->executionCommon} List";
$lang->execution->edit = "Sửa {$lang->executionCommon}";
$lang->execution->editAB = "Edit Execution";
$lang->execution->batchEdit = "Sửa hàng loạt";
$lang->execution->batchEditAB = "Batch Edit";
$lang->execution->manageMembers = 'Quản lý đội nhóm';
$lang->execution->unlinkMember = 'Gỡ bỏ thành viên';
$lang->execution->unlinkStory = 'Hủy liên kết câu chuyện';
+17 -13
View File
@@ -13,6 +13,7 @@
$lang->executionCommon = $lang->executionCommon;
$lang->execution->common = '执行';
$lang->execution->allExecutions = '所有' . $lang->executionCommon;
$lang->execution->allExecutionAB = '所有执行';
$lang->execution->id = $lang->executionCommon . '编号';
$lang->execution->type = $lang->executionCommon . '类型';
$lang->execution->name = $lang->executionCommon . '名称';
@@ -150,7 +151,7 @@ $lang->execution->burnByList['estimate'] = "按计划工时查看";
$lang->execution->burnByList['storyPoint'] = '按故事点查看';
/* 方法列表。*/
$lang->execution->index = "{$lang->executionCommon}主页";
$lang->execution->index = "执行主页";
$lang->execution->task = '任务列表';
$lang->execution->groupTask = '分组浏览任务';
$lang->execution->story = "{$lang->SRCommon}列表";
@@ -175,28 +176,31 @@ $lang->execution->linkPlan = "关联计划";
$lang->execution->unlinkStoryTasks = "未关联{$lang->SRCommon}任务";
$lang->execution->linkedProducts = '已关联';
$lang->execution->unlinkedProducts = '未关联';
$lang->execution->view = "{$lang->executionCommon}概况";
$lang->execution->startAction = "开始{$lang->executionCommon}";
$lang->execution->activateAction = "激活{$lang->executionCommon}";
$lang->execution->delayAction = "延期{$lang->executionCommon}";
$lang->execution->suspendAction = "挂起{$lang->executionCommon}";
$lang->execution->closeAction = "关闭{$lang->executionCommon}";
$lang->execution->testtaskAction = "{$lang->executionCommon}测试单";
$lang->execution->teamAction = "{$lang->executionCommon}团队";
$lang->execution->kanbanAction = "{$lang->executionCommon}看板";
$lang->execution->view = "执行概况";
$lang->execution->startAction = "开始执行";
$lang->execution->activateAction = "激活执行";
$lang->execution->delayAction = "延期执行";
$lang->execution->suspendAction = "挂起执行";
$lang->execution->closeAction = "关闭执行";
$lang->execution->testtaskAction = "执行测试单";
$lang->execution->teamAction = "执行团队";
$lang->execution->kanbanAction = "执行看板";
$lang->execution->printKanbanAction = "打印看板";
$lang->execution->treeAction = "{$lang->executionCommon}树状图";
$lang->execution->exportAction = "导出{$lang->executionCommon}";
$lang->execution->treeAction = "执行树状图";
$lang->execution->exportAction = "导出执行";
$lang->execution->computeBurnAction = "计算燃尽图";
$lang->execution->create = "添加{$lang->executionCommon}";
$lang->execution->createExec = "添加执行";
$lang->execution->copyExec = "复制执行";
$lang->execution->copy = "复制{$lang->executionCommon}";
$lang->execution->delete = "删除{$lang->executionCommon}";
$lang->execution->browse = "浏览{$lang->executionCommon}";
$lang->execution->deleteAB = "删除执行";
$lang->execution->browse = "浏览执行";
$lang->execution->list = "{$lang->executionCommon}列表";
$lang->execution->edit = "编辑{$lang->executionCommon}";
$lang->execution->editAB = "编辑执行";
$lang->execution->batchEdit = "编辑";
$lang->execution->batchEditAB = "批量编辑";
$lang->execution->manageMembers = '团队管理';
$lang->execution->unlinkMember = '移除成员';
$lang->execution->unlinkStory = "移除{$lang->SRCommon}";
-52
View File
@@ -3483,58 +3483,6 @@ class executionModel extends model
if(!empty($products)) $this->user->updateUserView(array_keys($products), 'product', $users);
}
/**
* Get recent executions.
*
* @access public
* @return object
*/
public function getRecentExecutions()
{
$isView = (empty($this->app->user->view->sprints) || empty($this->app->user->view->projects)) ? false : true;
if(!$this->app->user->admin && $isView === false) return array();
$executions = $this->dao->select('t1.id,t1.project,t1.code,t1.name,t1.type')->from(TABLE_EXECUTION)->alias('t1')
->leftJoin(TABLE_TEAM)->alias('t2')->on('t1.id=t2.root')
->where('t1.type')->in('stage,sprint')
->andWhere('t2.account')->eq($this->app->user->account)
->beginIF(!$this->app->user->admin)->andWhere('t1.id')->in($this->app->user->view->sprints)->fi()
->beginIF(!$this->app->user->admin)->andWhere('t1.project')->in($this->app->user->view->projects)->fi()
->andWhere('t1.status')->ne('closed')
->andWhere('t1.deleted')->eq('0')
->orderBy('project_desc, id_desc')
->fetchAll();
/* Get the project or product to which the execution belongs. */
$projectIdList = array();
$stageIdList = array();
foreach($executions as $execution)
{
if($execution->type == 'stage') $stageIdList[$execution->id] = $execution->id;
$projectIdList[$execution->project] = $execution->project;
}
$projectPairs = $this->loadModel('project')->getPairsByIdList($projectIdList);
$productPairs = $this->getStageLinkProductPairs($stageIdList);
$recentExecutions = isset($this->config->execution->recentExecutions) ? explode(',', $this->config->execution->recentExecutions) : array();
$allExecution = array('recent' => array(), 'involved' => array());
foreach($executions as $execution)
{
if($execution->type == 'stage') $execution->name = zget($projectPairs, $execution->project) . '/' . zget($productPairs, $execution->id) . '/' . $execution->name;
if($execution->type == 'sprint') $execution->name = zget($projectPairs, $execution->project) . '/' . $execution->name;
if(in_array($execution->id, $recentExecutions))
{
$index = array_search($execution->id, $recentExecutions);
$allExecution['recent'][$index] = $execution;
continue;
}
$allExecution['involved'][] = $execution;
}
ksort($allExecution['recent']);
return $allExecution;
}
/**
* Get the products associated with the stage.
*