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

This commit is contained in:
zhujinyong
2021-03-27 09:02:37 +08:00
18 changed files with 39 additions and 39 deletions
-6
View File
@@ -213,8 +213,6 @@ $lang->scrum->menu->settings['subMenu']->whitelist = array('link' => "{$lang->
$lang->scrum->menu->settings['subMenu']->stakeholder = array('link' => "{$lang->stakeholder->common}|stakeholder|browse|project=%s", 'subModule' => 'stakeholder');
$lang->scrum->menu->settings['subMenu']->group = array('link' => "{$lang->priv}|project|group|project=%s", 'alias' => 'group,manageview,managepriv');
$lang->scrum->menu->devops['subMenu'] = new stdclass();
/* Waterfall menu. */
$lang->waterfall->menu = new stdclass();
$lang->waterfall->menu->index = array('link' => "$lang->dashboard|project|index|project=%s");
@@ -300,8 +298,6 @@ $lang->execution->menu->view['subMenu'] = new stdclass();
$lang->execution->menu->view['subMenu']->groupTask = "$lang->groupView|execution|grouptask|executionID=%s";
$lang->execution->menu->view['subMenu']->tree = "$lang->treeView|execution|tree|executionID=%s";
$lang->execution->menu->devops['subMenu'] = new stdclass();
$lang->execution->menu->qa['subMenu'] = new stdclass();
$lang->execution->menu->qa['subMenu']->qa = array('link' => "$lang->dashboard|execution|qa|executionID=%s");
$lang->execution->menu->qa['subMenu']->bug = array('link' => "{$lang->bug->common}|execution|bug|executionID=%s", 'subModule' => 'bug');
@@ -370,8 +366,6 @@ $lang->devops->menuOrder[15] = 'jenkins';
$lang->devops->menuOrder[20] = 'maintain';
$lang->devops->menuOrder[25] = 'rules';
$lang->devops->menu->code['subMenu'] = new stdclass();
/* Doc menu.*/
$lang->doc->menu = new stdclass();
$lang->doc->menu->recent = array('link' => "{$lang->doc->recent}|doc|recent");
+1 -1
View File
@@ -799,7 +799,7 @@ class doc extends control
if($type == 'execution')
{
$executionID = $objectID;
if(!$this->executionID->checkPriv($objectID)) $this->accessDenied();
if(!$this->execution->checkPriv($objectID)) $this->accessDenied();
}
}
+1
View File
@@ -54,6 +54,7 @@ $lang->doc->searchDoc = 'Suche';
$lang->doc->fast = 'Schnelleintrag';
$lang->doc->allDoc = 'Alle Doks';
$lang->doc->openedByMe = 'Meine';
$lang->doc->editedByMe = 'Edited By Me';
$lang->doc->orderByOpen = 'Zuletzt hinzugefügt';
$lang->doc->orderByEdit = 'Zuletzt bearbeitet';
$lang->doc->orderByVisit = 'Zuletzt angesehen';
+1
View File
@@ -54,6 +54,7 @@ $lang->doc->searchDoc = 'Search';
$lang->doc->fast = 'Quick Entry';
$lang->doc->allDoc = 'All Documents';
$lang->doc->openedByMe = 'My';
$lang->doc->editedByMe = 'Edited By Me';
$lang->doc->orderByOpen = 'Recent Added';
$lang->doc->orderByEdit = 'Recent Updated';
$lang->doc->orderByVisit = 'Last Visited';
+1
View File
@@ -54,6 +54,7 @@ $lang->doc->searchDoc = 'Rechercher';
$lang->doc->fast = 'Saisie rapide';
$lang->doc->allDoc = 'Tous les Documents';
$lang->doc->openedByMe = 'Mes';
$lang->doc->editedByMe = 'Edited By Me';
$lang->doc->orderByOpen = 'Récemment Ajoutés';
$lang->doc->orderByEdit = 'Récemment Mis à Jour';
$lang->doc->orderByVisit = 'Dernière Visite';
+1
View File
@@ -54,6 +54,7 @@ $lang->doc->searchDoc = 'Tìm kiếm';
$lang->doc->fast = 'Quick Entry';
$lang->doc->allDoc = 'Tất cả tài liệu';
$lang->doc->openedByMe = 'Của bạn';
$lang->doc->editedByMe = 'Edited By Me';
$lang->doc->orderByOpen = 'Recent Added';
$lang->doc->orderByEdit = 'Recent Updated';
$lang->doc->orderByVisit = 'Last Visited';
-1
View File
@@ -261,7 +261,6 @@ $lang->execution->aboveAllExecution = "Alle oberen {$lang->executionCommon}";
/* 页面提示。*/
$lang->execution->linkStoryByPlanTips = "This action will link all stories in this plan to the {$lang->executionCommon}.";
$lang->execution->selectExecution = "Auswahl {$lang->executionCommon}";
$lang->execution->selectExecution = "Select Execution";
$lang->execution->beginAndEnd = 'Dauer';
$lang->execution->lblStats = 'Mannstunden Summe(h) : ';
$lang->execution->stats = '<strong>%s</strong> Verfügbar, <strong>%s</strong> geplant, <strong>%s</strong> genutzt, <strong>%s</strong> Rest.';
-1
View File
@@ -261,7 +261,6 @@ $lang->execution->aboveAllExecution = "All the above {$lang->executionCommon}s";
/* Page prompt. */
$lang->execution->linkStoryByPlanTips = "This action will link all stories in this plan to the {$lang->executionCommon}.";
$lang->execution->selectExecution = "Select {$lang->executionCommon}";
$lang->execution->selectExecution = "Select Stage/Sprint/Iteration";
$lang->execution->beginAndEnd = 'Duration';
$lang->execution->lblStats = 'Efforts';
$lang->execution->stats = 'Available: <strong>%s</strong>(h). Estimates: <strong>%s</strong>(h). Cost: <strong>%s</strong>(h). Left: <strong>%s</strong>(h).';
+1 -2
View File
@@ -260,8 +260,7 @@ $lang->execution->aboveAllExecution = "Tous les {$lang->executionCommon}s dépen
/* 页面提示。*/
$lang->execution->linkStoryByPlanTips = "Cette action va lier toutes les stories incluses dans le plan à ce {$lang->executionCommon}.";
$lang->execution->selectExecution = "Sélectionner {$lang->executionCommon}";
$lang->execution->selectExecution = "Select Execution";
$lang->execution->selectExecution = "Sélectionner {$lang->executionCommon}";
$lang->execution->beginAndEnd = 'Durée';
$lang->execution->lblStats = 'Efforts';
$lang->execution->stats = 'Disponible: <strong>%s</strong>(h). Estimé: <strong>%s</strong>(h). Coût: <strong>%s</strong>(h). Reste: <strong>%s</strong>(h).';
+1 -2
View File
@@ -260,8 +260,7 @@ $lang->execution->aboveAllExecution = "Tất cả {$lang->executionCommon} trên
/* Page prompt. */
$lang->execution->linkStoryByPlanTips = "Hành động này sẽ liên kết tất cả câu chuyện trong kế hoạch này tới {$lang->executionCommon} này.";
$lang->execution->selectExecution = "Chọn {$lang->executionCommon}";
$lang->execution->selectExecution = "Select Execution";
$lang->execution->selectExecution = "Chọn {$lang->executionCommon}";
$lang->execution->beginAndEnd = 'Thời gian';
$lang->execution->lblStats = 'Chấm công';
$lang->execution->stats = 'Khả dụng: <strong>%s</strong>(giờ). Dự tính: <strong>%s</strong>(giờ). Đã làm: <strong>%s</strong>(giờ). Còn: <strong>%s</strong>(giờ).';
+1 -2
View File
@@ -260,8 +260,7 @@ $lang->execution->aboveAllExecution = "以上所有{$lang->executionCommon}";
/* 页面提示。*/
$lang->execution->linkStoryByPlanTips = "此操作会将所选计划下面的{$lang->SRCommon}全部关联到此{$lang->executionCommon}中";
$lang->execution->selectExecution = "请选择{$lang->executionCommon}";
$lang->execution->selectExecution = "请选择阶段/迭代/冲刺";
$lang->execution->selectExecution = "请选择执行";
$lang->execution->beginAndEnd = '起止时间';
$lang->execution->lblStats = '工时统计';
$lang->execution->stats = '可用工时 <strong>%s</strong> 工时,总共预计 <strong>%s</strong> 工时,已经消耗 <strong>%s</strong> 工时,预计剩余 <strong>%s</strong> 工时';
+1
View File
@@ -437,6 +437,7 @@ class productModel extends model
{
$currentProduct = $this->getById($productID);
$currentProductName = $currentProduct->name;
$this->session->set('currentProductType', $currentProduct->type);
}
$fromModule = $this->lang->navGroup->qa == 'qa' ? 'qa' : '';
+2 -2
View File
@@ -652,11 +652,11 @@ class programModel extends model
* @access public
* @return array
*/
public function getParentPairs($model = '', $mode = '')
public function getParentPairs($model = '', $mode = 'noclosed')
{
$modules = $this->dao->select('id,name,parent,path,grade')->from(TABLE_PROGRAM)
->where('type')->eq('program')
->beginIF(strpos($mode, 'noclosed') === false)->andWhere('status')->ne('closed')->fi()
->beginIF(strpos($mode, 'noclosed') !== false)->andWhere('status')->ne('closed')->fi()
->andWhere('deleted')->eq(0)
->beginIF($model)->andWhere('model')->eq($model)->fi()
->orderBy('grade desc, `order`')
+3 -2
View File
@@ -1200,7 +1200,7 @@ class project extends control
$this->view->actions = $this->action->getList('project', $projectID);
$this->view->project = $this->project->getByID($projectID);
$this->display('project', 'suspend');
$this->display();
}
/**
@@ -1247,6 +1247,7 @@ class project extends control
public function activate($projectID)
{
$this->loadModel('action');
$this->app->loadLang('execution');
$project = $this->project->getByID($projectID);
if(!empty($_POST))
@@ -1275,7 +1276,7 @@ class project extends control
$this->view->newEnd = $newEnd;
$this->view->project = $project;
$this->display('project', 'activate');
$this->display();
}
/**
+5 -6
View File
@@ -61,8 +61,6 @@ class repo extends control
$this->repo->setMenu($this->repos, $repoID);
}
$this->lang->modulePageNav = $this->repo->select($this->repos, $repoID, $this->app->openApp, $objectID);
if(empty($this->repos) and $this->methodName != 'create') die(js::locate($this->repo->createLink('create', "objectID=$objectID")));
}
@@ -342,13 +340,12 @@ class repo extends control
$this->session->set('revisionList', $this->app->getURI(true));
session_write_close();
/* Use cookie to switch repo branch. */
setcookie('repoBranch', $branchID);
/* Get repo and synchronous commit. */
$repo = $this->repo->getRepoByID($repoID);
if(!$repo->synced) $this->locate($this->repo->createLink('showSyncCommit', "repoID=$repoID"));
$branches = $this->repo->getBranches($repo);
/* Decrypt path and get cacheFile. */
$path = $this->repo->decodePath($path);
$cacheFile = $this->repo->getCacheFile($repoID, $path, $revision);
@@ -426,11 +423,13 @@ class repo extends control
$this->view->title = $this->lang->repo->common;
$this->view->repo = $repo;
$this->view->repos = $this->repos;
$this->view->revisions = $revisions;
$this->view->revision = $revision;
$this->view->infos = $infos;
$this->view->repoID = $repoID;
$this->view->branchID = $this->cookie->branchID;
$this->view->branches = $branches;
$this->view->branchID = $branchID ? $branchID : key($branches);
$this->view->objectID = $objectID;
$this->view->pager = $pager;
$this->view->path = urldecode($path);
+19 -12
View File
@@ -11,23 +11,30 @@
<?php include '../../common/view/header.html.php';?>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<div class="page-title">
<strong>
<div class='btn-group'>
<a href='javascript:;' class='btn btn-link btn-limit text-ellipsis' data-toggle='dropdown' style="max-width: 120px;"><span class='text' title='<?php echo $repo->name;?>'><?php echo $repo->name;?></span> <span class='caret'></span></a>
<ul class='dropdown-menu' style='max-height:240px; max-width: 300px; overflow-y:auto'>
<?php
echo html::a($this->repo->createLink('browse', "repoID=$repoID&branchID=$branchID&objectID=$objectID"), $repo->name, '', "data-app={$app->openApp}");
if(!empty($path))
foreach($repos as $id => $repoName)
{
$paths = explode('/', $path);
$postPath = '';
foreach($paths as $pathName)
{
$postPath .= $pathName . '/';
echo '/' . ' ' . html::a($this->repo->createLink('browse', "repoID=$repoID&branchID=$branchID&objectID=$objectID&path=" . $this->repo->encodePath($postPath) . "&revision=$revision"), trim($pathName, '/'), '', '', "data-app={$app->openApp}");
}
echo "<li>" . html::a($this->createLink('repo', 'browse', "repoID=$id"), $repoName, '', "title='{$repoName}' class='text-ellipsis'") . "</li>";
}
?>
</strong>
</ul>
</div>
<?php if(!empty($branches)):?>
<div class='btn-group'>
<a href='javascript:;' class='btn btn-link btn-limit text-ellipsis' data-toggle='dropdown' style="max-width: 120px;"><span class='text' title='<?php echo $branches[$branchID];?>'><?php echo $branches[$branchID];?></span> <span class='caret'></span></a>
<ul class='dropdown-menu' style='max-height:240px; max-width: 300px; overflow-y:auto'>
<?php
foreach($branches as $id => $branchName)
{
echo "<li>" . html::a($this->createLink('repo', 'browse', "repoID=$repoID&branchID=$id"), $branchName, '', "title='{$branchName}' class='text-ellipsis'") . "</li>";
}
?>
</ul>
</div>
<?php endif;?>
</div>
<div class="btn-toolbar pull-right">
<span class='last-sync-time'><?php echo $lang->repo->notice->lastSyncTime . $cacheTime?></span>
-1
View File
@@ -1474,7 +1474,6 @@ class story extends control
else
{
$this->app->rawModule = 'testcase';
$this->loadModel('qa')->setMenu($productID);
foreach($this->config->qa->menuList as $module) $this->lang->navGroup->$module = 'qa';
}
+1 -1
View File
@@ -44,7 +44,7 @@ $config->task->customBatchEditFields = 'module,assignedTo,status,pri,estimate,
$config->task->custom = new stdclass();
$config->task->custom->createFields = $config->task->customCreateFields;
$config->task->custom->batchCreateFields = 'module,story,assignedTo,estimate,desc,pri';
$config->task->custom->batchEditFields = 'module,assignedTo,status,pri,estimate,record,left,finishedBy,closedBy,closedReason';
$config->task->custom->batchEditFields = 'module,assignedTo,status,pri,estimate,record,left';
$config->task->datatable = new stdclass();
$config->task->datatable->defaultField = array('id', 'pri', 'name', 'status', 'assignedTo', 'finishedBy', 'estimate', 'consumed', 'left', 'progress', 'deadline', 'actions');