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

This commit is contained in:
wangyidong
2021-04-07 17:41:07 +08:00
13 changed files with 83 additions and 48 deletions
+1 -1
View File
@@ -542,7 +542,7 @@ class bug extends control
/* Get executions. */
$executions = array('' => '');
if(isset($projects[$projectID])) $executions += $this->product->getExecutionPairsByProduct($productID, $branch ? "0,$branch" : 0, 'id_desc', $projectID);
if(isset($projects[$projectID]) or $this->config->systemMode == 'classic') $executions += $this->product->getExecutionPairsByProduct($productID, $branch ? "0,$branch" : 0, 'id_desc', $projectID);
/* Set custom. */
foreach(explode(',', $this->config->bug->list->customCreateFields) as $field) $customFields[$field] = $this->lang->bug->$field;
+10 -3
View File
@@ -2,6 +2,7 @@ $(function()
{
var page = window.page || '';
var flow = window.flow;
if(typeof(systemMode) == undefined) var systemMode = '';
$('#subNavbar a[data-toggle=dropdown]').parent().addClass('dropdown dropdown-hover');
@@ -240,6 +241,12 @@ function loadProductStories(productID)
*/
function loadProductProjects(productID)
{
if(systemMode == 'classic')
{
loadProductExecutions(productID);
return true;
}
branch = $('#branch').val();
if(typeof(branch) == 'undefined') branch = 0;
@@ -262,8 +269,8 @@ function loadProductProjects(productID)
*/
function loadProductExecutions(productID, projectID = 0)
{
if(!projectID) projectID = $('#project').find("option:selected").val();
if(!projectID) productID = 0;
if(!projectID && systemMode != 'classic') projectID = $('#project').find("option:selected").val();
if(!projectID && systemMode != 'classic') productID = 0;
required = $('#execution_chosen').hasClass('required');
branch = $('#branch').val();
if(typeof(branch) == 'undefined') branch = 0;
@@ -272,7 +279,7 @@ function loadProductExecutions(productID, projectID = 0)
$('#executionIdBox').load(link, function()
{
$(this).find('select').chosen();
if(typeof(bugExecution) == 'string') $('#executionIdBox').prepend("<span class='input-group-addon' style='border-left-width: 0px;'>" + bugExecution + "</span>");
if(typeof(bugExecution) == 'string' && systemMode != 'classic') $('#executionIdBox').prepend("<span class='input-group-addon' style='border-left-width: 0px;'>" + bugExecution + "</span>");
if(required) $(this).addClass('required');
});
}
+12 -1
View File
@@ -73,7 +73,10 @@ js::set('blockID', $blockID);
</tr>
<?php $showExecution = (strpos(",$showFields,", ',execution,') !== false);?>
<tr>
<th><?php echo ($showExecution) ? $lang->bug->project : $lang->bug->type;?></th>
<th>
<?php if($config->systemMode == 'classic') $lang->bug->project = $lang->bug->execution;?>
<?php echo ($showExecution) ? $lang->bug->project : $lang->bug->type;?>
</th>
<?php if(!$showExecution):?>
<?php $showOS = strpos(",$showFields,", ',os,') !== false;?>
@@ -94,6 +97,7 @@ js::set('blockID', $blockID);
<?php endif;?>
<?php if($showExecution):?>
<td>
<?php if($config->systemMode == 'new'):?>
<div class='table-row'>
<div class='table-col' id='projectBox'>
<?php echo html::select('project', $projects, $projectID, "class='form-control chosen' onchange='loadProductExecutions({$productID}, this.value)'");?>
@@ -104,6 +108,12 @@ js::set('blockID', $blockID);
<?php echo html::select('execution', $executions, $executionID, "class='form-control chosen' onchange='loadExecutionRelated(this.value)'");?>
</div>
</div>
</div>
<?php else:?>
<div class='input-group' id='executionIdBox'>
<?php echo html::select('execution', $executions, $executionID, "class='form-control chosen' onchange='loadExecutionRelated(this.value)'");?>
</div>
<?php endif;?>
</td>
<?php endif;?>
<td>
@@ -327,6 +337,7 @@ js::set('blockID', $blockID);
</div>
<?php js::set('bugModule', $lang->bug->module);?>
<?php js::set('bugExecution', $lang->bug->execution);?>
<?php js::set('systemMode', $config->systemMode);?>
<script>
$(function(){parent.$('body.hide-modal-close').removeClass('hide-modal-close');})
</script>
+1
View File
@@ -24,6 +24,7 @@ js::set('oldStoryID' , $bug->story);
js::set('oldTaskID' , $bug->task);
js::set('oldOpenedBuild' , $bug->openedBuild);
js::set('oldResolvedBuild' , $bug->resolvedBuild);
js::set('systemMode' , $config->systemMode);
?>
<div class='main-content' id='mainContent'>
+15 -3
View File
@@ -355,7 +355,7 @@ class doc extends control
else if($this->app->openApp == 'execution')
{
$this->execution->setMenu($objectID);
unset($this->lang->exectuion->menu->doc['subMenu']);
unset($this->lang->execution->menu->doc['subMenu']);
}
else
{
@@ -516,7 +516,17 @@ class doc extends control
$type = $docLib->type;
$objectID = $docLib->$type;
}
$this->locate(inLink('objectLibs', "type=$type&objectID=$objectID&libID=$libID&docID=$docID"));
$openApp = $type == 'execution' ? 'execution' : 'doc';
$browseLink = inLink('objectLibs', "type=$type&objectID=$objectID&libID=$libID&docID=$docID#app=$openApp");
if($type == 'execution')
{
die(js::locate($browseLink, 'parent'));
}
else
{
$this->locate($browseLink);
}
}
if($doc->contentType == 'markdown')
@@ -953,13 +963,14 @@ class doc extends control
{
$libs = $this->doc->getLibsByObject('book', 0);
$this->app->rawMethod = 'book';
if($libID == 0) $libID = key($libs);
if($libID == 0) $libID = reset($libs)->id;
$this->lang->modulePageNav = $this->doc->select($type, $objects, $objectID, $libs, $libID);
if(!$docID) $docID = $this->dao->select('id')->from(TABLE_DOC)
->where('lib')->eq($libID)
->andWhere('type')->eq('article')
->andWhere('deleted')->eq(0)
->orderBy('editedDate_desc,id_desc')
->fetch('id');
$object = new stdclass();
@@ -1046,6 +1057,7 @@ class doc extends control
$this->view->type = $type;
$this->view->version = $version;
$this->view->object = $object;
$this->view->objectID = $objectID;
$this->view->objectType = $type;
$this->view->libID = $libID;
$this->view->lib = isset($libs[$libID]) ? $libs[$libID] : new stdclass();
+7 -7
View File
@@ -183,13 +183,13 @@ $lang->doc->noOpenedDoc = 'Sie haben kein Dokument erstellt.';
$lang->doc->noCollectedDoc = 'Sie haben kein Dokument gesammelt.';
$lang->doc->errorEmptyLib = 'No data in document library.';
$lang->doc->noticeAcl['lib']['product']['default'] = 'Users who can access the selected product can access it.';
$lang->doc->noticeAcl['lib']['product']['custom'] = 'Users who can access the selected product or users in the whiltelist can access it.';
$lang->doc->noticeAcl['lib']['execution']['default'] = 'Users who can access the selected execution can access it.';
$lang->doc->noticeAcl['lib']['execution']['custom'] = 'Users who can access the selected execution or users in the whiltelist can access it.';
$lang->doc->noticeAcl['lib']['custom']['open'] = 'All users can access it.';
$lang->doc->noticeAcl['lib']['custom']['custom'] = 'Users in the whitelist can access it.';
$lang->doc->noticeAcl['lib']['custom']['private'] = 'Only the one who created it can access it.';
$lang->doc->noticeAcl['lib']['product']['default'] = 'Users who can access the selected product can access it.';
$lang->doc->noticeAcl['lib']['product']['custom'] = 'Users who can access the selected product or users in the whiltelist can access it.';
$lang->doc->noticeAcl['lib']['project']['default'] = 'Users who can access the selected project can access it.';
$lang->doc->noticeAcl['lib']['project']['custom'] = 'Users who can access the selected project or users in the whiltelist can access it.';
$lang->doc->noticeAcl['lib']['custom']['open'] = 'All users can access it.';
$lang->doc->noticeAcl['lib']['custom']['custom'] = 'Users in the whitelist can access it.';
$lang->doc->noticeAcl['lib']['custom']['private'] = 'Only the one who created it can access it.';
$lang->doc->noticeAcl['doc']['open'] = 'Users who can access the document library which the document belongs can access it.';
$lang->doc->noticeAcl['doc']['custom'] = 'Users in the whiltelist can access it.';
+7 -7
View File
@@ -187,13 +187,13 @@ $lang->doc->noOpenedDoc = 'You have not created any documents.';
$lang->doc->noCollectedDoc = 'You have not favorited any documents.';
$lang->doc->errorEmptyLib = 'No data in document library.';
$lang->doc->noticeAcl['lib']['product']['default'] = 'Users who can access the selected product can access it.';
$lang->doc->noticeAcl['lib']['product']['custom'] = 'Users who can access the selected product or users in the whiltelist can access it.';
$lang->doc->noticeAcl['lib']['execution']['default'] = 'Users who can access the selected execution can access it.';
$lang->doc->noticeAcl['lib']['execution']['custom'] = 'Users who can access the selected execution or users in the whiltelist can access it.';
$lang->doc->noticeAcl['lib']['custom']['open'] = 'All users can access it.';
$lang->doc->noticeAcl['lib']['custom']['custom'] = 'Users in the whitelist can access it.';
$lang->doc->noticeAcl['lib']['custom']['private'] = 'Only the one who created it can access it.';
$lang->doc->noticeAcl['lib']['product']['default'] = 'Users who can access the selected product can access it.';
$lang->doc->noticeAcl['lib']['product']['custom'] = 'Users who can access the selected product or users in the whiltelist can access it.';
$lang->doc->noticeAcl['lib']['project']['default'] = 'Users who can access the selected project can access it.';
$lang->doc->noticeAcl['lib']['project']['custom'] = 'Users who can access the selected project or users in the whiltelist can access it.';
$lang->doc->noticeAcl['lib']['custom']['open'] = 'All users can access it.';
$lang->doc->noticeAcl['lib']['custom']['custom'] = 'Users in the whitelist can access it.';
$lang->doc->noticeAcl['lib']['custom']['private'] = 'Only the one who created it can access it.';
$lang->doc->noticeAcl['doc']['open'] = 'Users who can access the document library which the document belongs can access it.';
$lang->doc->noticeAcl['doc']['custom'] = 'Users in the whiltelist can access it.';
+7 -7
View File
@@ -183,13 +183,13 @@ $lang->doc->noOpenedDoc = "Vous n'avez pas ajouté de documents.";
$lang->doc->noCollectedDoc = "Vous avez aucun document dans vos favoris.";
$lang->doc->errorEmptyLib = 'No data in document library.';
$lang->doc->noticeAcl['lib']['product']['default'] = 'Les utilisateurs qui ont accès au Product peuvent y accéder.';
$lang->doc->noticeAcl['lib']['product']['custom'] = 'Les utilisateurs qui ont accès au Product ou les utilisateurs de la Liste Blanche peuvent y accéder.';
$lang->doc->noticeAcl['lib']['execution']['default'] = 'Les utilisateurs qui ont accès au Projet peuvent y accéder.';
$lang->doc->noticeAcl['lib']['execution']['custom'] = 'Les utilisateurs qui ont accès au Projet ou les utilisateurs de la Liste Blanche peuvent y accéder.';
$lang->doc->noticeAcl['lib']['custom']['open'] = 'Tous les utilisateurs peuvent y accéder.';
$lang->doc->noticeAcl['lib']['custom']['custom'] = 'Les utilisateurs de la Liste Blanche peuvent y accéder.';
$lang->doc->noticeAcl['lib']['custom']['private'] = 'Seulement le créateur de la Bibliothèque peut y accéder.';
$lang->doc->noticeAcl['lib']['product']['default'] = 'Les utilisateurs qui ont accès au Product peuvent y accéder.';
$lang->doc->noticeAcl['lib']['product']['custom'] = 'Les utilisateurs qui ont accès au Product ou les utilisateurs de la Liste Blanche peuvent y accéder.';
$lang->doc->noticeAcl['lib']['project']['default'] = 'Les utilisateurs qui ont accès au Projet peuvent y accéder.';
$lang->doc->noticeAcl['lib']['project']['custom'] = 'Les utilisateurs qui ont accès au Projet ou les utilisateurs de la Liste Blanche peuvent y accéder.';
$lang->doc->noticeAcl['lib']['custom']['open'] = 'Tous les utilisateurs peuvent y accéder.';
$lang->doc->noticeAcl['lib']['custom']['custom'] = 'Les utilisateurs de la Liste Blanche peuvent y accéder.';
$lang->doc->noticeAcl['lib']['custom']['private'] = 'Seulement le créateur de la Bibliothèque peut y accéder.';
$lang->doc->noticeAcl['doc']['open'] = 'Les utilisateurs qui ont accès à la Bibliothèque à laquelle le document appartient peuvent y accéder.';
$lang->doc->noticeAcl['doc']['custom'] = 'Les utilisateurs de la Liste Blanche peuvent y accéder.';
+2 -2
View File
@@ -185,8 +185,8 @@ $lang->doc->errorEmptyLib = 'No data in document library.';
$lang->doc->noticeAcl['lib']['product']['default'] = 'Users who can access the selected product có thể truy cập nó.';
$lang->doc->noticeAcl['lib']['product']['custom'] = 'Users who can access the selected product or users in the whiltelist có thể truy cập nó.';
$lang->doc->noticeAcl['lib']['execution']['default'] = 'Users who can access the selected execution có thể truy cập nó.';
$lang->doc->noticeAcl['lib']['execution']['custom'] = 'Users who can access the selected execution or users in the whiltelist có thể truy cập nó.';
$lang->doc->noticeAcl['lib']['project']['default'] = 'Users who can access the selected project có thể truy cập nó.';
$lang->doc->noticeAcl['lib']['project']['custom'] = 'Users who can access the selected project or users in the whiltelist có thể truy cập nó.';
$lang->doc->noticeAcl['lib']['custom']['open'] = 'Tất cả users có thể truy cập nó.';
$lang->doc->noticeAcl['lib']['custom']['custom'] = 'Users in the whitelist có thể truy cập nó.';
$lang->doc->noticeAcl['lib']['custom']['private'] = 'Chỉ the one who created it có thể truy cập nó.';
+7 -7
View File
@@ -187,13 +187,13 @@ $lang->doc->noOpenedDoc = '您还没有创建任何文档。';
$lang->doc->noCollectedDoc = '您还没有收藏任何文档。';
$lang->doc->errorEmptyLib = '文档库暂无数据。';
$lang->doc->noticeAcl['lib']['product']['default'] = '有所选产品访问权限的用户可以访问。';
$lang->doc->noticeAcl['lib']['product']['custom'] = '有所选产品访问权限或白名单里的用户可以访问。';
$lang->doc->noticeAcl['lib']['execution']['default'] = "有所选{$lang->executionCommon}访问权限的用户可以访问。";
$lang->doc->noticeAcl['lib']['execution']['custom'] = "有所选{$lang->executionCommon}访问权限或白名单里的用户可以访问。";
$lang->doc->noticeAcl['lib']['custom']['open'] = '所有人都可以访问。';
$lang->doc->noticeAcl['lib']['custom']['custom'] = '白名单的用户可以访问。';
$lang->doc->noticeAcl['lib']['custom']['private'] = '只有创建者自己可以访问。';
$lang->doc->noticeAcl['lib']['product']['default'] = '有所选产品访问权限的用户可以访问。';
$lang->doc->noticeAcl['lib']['product']['custom'] = '有所选产品访问权限或白名单里的用户可以访问。';
$lang->doc->noticeAcl['lib']['project']['default'] = "有所选项目访问权限的用户可以访问。";
$lang->doc->noticeAcl['lib']['project']['custom'] = "有所选项目访问权限或白名单里的用户可以访问。";
$lang->doc->noticeAcl['lib']['custom']['open'] = '所有人都可以访问。';
$lang->doc->noticeAcl['lib']['custom']['custom'] = '白名单的用户可以访问。';
$lang->doc->noticeAcl['lib']['custom']['private'] = '只有创建者自己可以访问。';
$lang->doc->noticeAcl['doc']['open'] = '有文档所属文档库访问权限的,都可以访问。';
$lang->doc->noticeAcl['doc']['custom'] = '白名单的用户可以访问。';
+7 -7
View File
@@ -182,13 +182,13 @@ $lang->doc->noOpenedDoc = '您還沒有創建任何文檔。';
$lang->doc->noCollectedDoc = '您還沒有收藏任何文檔。';
$lang->doc->errorEmptyLib = '文檔庫暫無數據。';
$lang->doc->noticeAcl['lib']['product']['default'] = '有所選產品訪問權限的用戶可以訪問。';
$lang->doc->noticeAcl['lib']['product']['custom'] = '有所選產品訪問權限或白名單裡的用戶可以訪問。';
$lang->doc->noticeAcl['lib']['execution']['default'] = "有所選{$lang->executionCommon}訪問權限的用戶可以訪問。";
$lang->doc->noticeAcl['lib']['execution']['custom'] = "有所選{$lang->executionCommon}訪問權限或白名單裡的用戶可以訪問。";
$lang->doc->noticeAcl['lib']['custom']['open'] = '所有人都可以訪問。';
$lang->doc->noticeAcl['lib']['custom']['custom'] = '白名單的用戶可以訪問。';
$lang->doc->noticeAcl['lib']['custom']['private'] = '只有創建者自己可以訪問。';
$lang->doc->noticeAcl['lib']['product']['default'] = '有所選產品訪問權限的用戶可以訪問。';
$lang->doc->noticeAcl['lib']['product']['custom'] = '有所選產品訪問權限或白名單裡的用戶可以訪問。';
$lang->doc->noticeAcl['lib']['project']['default'] = "有所選項目訪問權限的用戶可以訪問。";
$lang->doc->noticeAcl['lib']['project']['custom'] = "有所選項目訪問權限或白名單裡的用戶可以訪問。";
$lang->doc->noticeAcl['lib']['custom']['open'] = '所有人都可以訪問。';
$lang->doc->noticeAcl['lib']['custom']['custom'] = '白名單的用戶可以訪問。';
$lang->doc->noticeAcl['lib']['custom']['private'] = '只有創建者自己可以訪問。';
$lang->doc->noticeAcl['doc']['open'] = '有文檔所屬文檔庫訪問權限的,都可以訪問。';
$lang->doc->noticeAcl['doc']['custom'] = '白名單的用戶可以訪問。';
+6 -1
View File
@@ -1121,7 +1121,12 @@ class docModel extends model
{
if($type == 'custom' or $type == 'book')
{
$objectLibs = $this->dao->select('*')->from(TABLE_DOCLIB)->where('deleted')->eq(0)->andWhere('type')->eq($type)->orderBy('`order`, id')->fetchAll('id');
$objectLibs = $this->dao->select('*')->from(TABLE_DOCLIB)
->where('deleted')->eq(0)
->andWhere('type')->eq($type)
->beginIF($type == 'custom')->orderBy('`order`, id')->fi()
->beginIF($type == 'book')->orderBy('id_desc')->fi()
->fetchAll('id');
}
else if($type != 'product' and $type != 'project' and $type != 'execution')
{
+1 -2
View File
@@ -146,7 +146,7 @@ $projectIDParam = $isProjectStory ? "projectID=$projectID&" : '';
<div class='btn-group dropdown'>
<?php $buttonType = $from == 'project' ? 'btn-secondary' : 'btn-primary';?>
<?php $extraParam = $from == 'project' ? '' : "&bugID=0&planID=0&todoID=0&extra=&type=$storyType";?>
<?php echo html::a($this->createLink('story', 'create', "product=$productID&branch=$branch&moduleID=$moduleID&storyID=0&projectID={$this->session->project}$extraParam"), "<i class='icon icon-plus'></i> {$lang->story->create}", '', "class='btn $buttonType' data-app='$openApp'");?>
<?php echo html::a($this->createLink('story', 'create', "product=$productID&branch=$branch&moduleID=$moduleID&storyID=0&projectID={$projectID}$extraParam"), "<i class='icon icon-plus'></i> {$lang->story->create}", '', "class='btn $buttonType' data-app='$openApp'");?>
<?php if(!empty($productID)): ?>
<button type='button' class="btn <?php echo $buttonType?> dropdown-toggle" data-toggle='dropdown'><span class='caret'></span></button>
<ul class='dropdown-menu pull-right'>
@@ -325,7 +325,6 @@ $projectIDParam = $isProjectStory ? "projectID=$projectID&" : '';
<div class='btn-group dropup'>
<?php
$disabled = $canBatchEdit ? '' : "disabled='disabled'";
$projectID = $isProjectStory ? $this->session->project : 0;
$actionLink = $this->createLink('story', 'batchEdit', "productID=$productID&projectID=$projectID&branch=$branch&storyType=$storyType");
?>
<?php echo html::commonButton($lang->edit, "data-form-action='$actionLink' $disabled");?>