From 75fe055826146493c78a331e74893b3bee103658 Mon Sep 17 00:00:00 2001 From: z Date: Mon, 13 Jul 2020 16:15:35 +0800 Subject: [PATCH 1/7] * finish task #11727. --- framework/control.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/framework/control.class.php b/framework/control.class.php index 4240389815..e5f40b99f0 100644 --- a/framework/control.class.php +++ b/framework/control.class.php @@ -319,6 +319,7 @@ class control extends baseControl foreach($fieldRules as $ruleID) { if(!isset($rules[$ruleID])) continue; + if(!is_string($_POST[$field->field])) continue; $rule = $rules[$ruleID]; if($rule->type == 'system' and $rule->rule == 'notempty') From a76b09bef26ab19ef13b3c26dfc5152597867ba2 Mon Sep 17 00:00:00 2001 From: z Date: Mon, 13 Jul 2020 16:21:10 +0800 Subject: [PATCH 2/7] * adjust code for flow. --- module/common/model.php | 5 +++-- module/common/view/header.html.php | 7 ------- module/common/view/header.lite.html.php | 7 +++++++ 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/module/common/model.php b/module/common/model.php index 5d19b4a161..f55ef01dc9 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -686,9 +686,10 @@ class commonModel extends model echo ''; return; } - foreach($position as $key => $link) + + if(is_array($position)) { - echo "
  • " . $link . '
  • '; + foreach($position as $key => $link) echo "
  • " . $link . '
  • '; } echo ''; } diff --git a/module/common/view/header.html.php b/module/common/view/header.html.php index 9c21185fd8..6f490a4a87 100755 --- a/module/common/view/header.html.php +++ b/module/common/view/header.html.php @@ -4,13 +4,6 @@ include 'header.lite.html.php'; include 'chosen.html.php'; //include 'validation.html.php'; ?> -app->getModuleRoot() . '/common/ext/view/'; -$extHookRule = $extPath . 'header.*.hook.php'; -$extHookFiles = glob($extHookRule); -if($extHookFiles) foreach($extHookFiles as $extHookFile) include $extHookFile; -?> app->loadConfig('sso');?> sso->redirect)) js::set('ssoRedirect', $config->sso->redirect);?> diff --git a/module/common/view/header.lite.html.php b/module/common/view/header.lite.html.php index 54dbcfd32c..5bde20d219 100755 --- a/module/common/view/header.lite.html.php +++ b/module/common/view/header.lite.html.php @@ -62,5 +62,12 @@ $onlybody = zget($_GET, 'onlybody', 'no'); +app->getModuleRoot() . '/common/ext/view/'; +$extHookRule = $extPath . 'header.*.hook.php'; +$extHookFiles = glob($extHookRule); +if($extHookFiles) foreach($extHookFiles as $extHookFile) include $extHookFile; +?> From fbab402495b602ee3a19263521d827d19dbc41d3 Mon Sep 17 00:00:00 2001 From: leiyong <1549684884@qq.com> Date: Mon, 13 Jul 2020 18:25:26 -0700 Subject: [PATCH 3/7] * Finish task#7371. --- module/file/lang/zh-cn.php | 1 + module/file/view/buildform.html.php | 10 ++++++++++ module/story/model.php | 6 +++--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/module/file/lang/zh-cn.php b/module/file/lang/zh-cn.php index 6cc82004a8..ec4ebbdaa7 100644 --- a/module/file/lang/zh-cn.php +++ b/module/file/lang/zh-cn.php @@ -62,3 +62,4 @@ $lang->file->dangerFile = " 您选择的文件存在安全风险,系统 $lang->file->errorSuffix = '压缩包格式错误,只能上传zip压缩包!'; $lang->file->errorExtract = '解压缩失败!可能文件已经损坏,或压缩包里含有非法上传文件。'; $lang->file->fileNotFound = '未找到该文件,可能物理文件已被删除!'; +$lang->file->fileContentEmpty = '上传文件内容为空,请检查后重新上传。'; diff --git a/module/file/view/buildform.html.php b/module/file/view/buildform.html.php index 31f0109baa..ee0eebfd20 100644 --- a/module/file/view/buildform.html.php +++ b/module/file/view/buildform.html.php @@ -36,6 +36,8 @@ function checkDangerExtension(obj) { var fileName = $(obj).val(); var index = fileName.lastIndexOf("."); + var fileSize = $(obj)[0].files[0].size; + if(index >= 0) { extension = fileName.substr(index + 1); @@ -43,6 +45,14 @@ function checkDangerExtension(obj) { alert(lang->file->dangerFile);?>); $(obj).val(''); + return false; + } + + if(fileSize == 0) + { + alert(lang->file->fileContentEmpty);?>); + $(obj).val(''); + return false; } } } diff --git a/module/story/model.php b/module/story/model.php index 48446f697b..2546570e9a 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -565,9 +565,9 @@ class storyModel extends model foreach($this->post->stages as $branch => $stage) { $newStage = new stdclass(); - $newStage->story = $storyID; - $newStage->branch = $branch; - $newStage->stage = $stage; + $newStage->story = $storyID; + $newStage->branch = $branch; + $newStage->stage = $stage; if(isset($oldStages[$branch])) { $oldStage = $oldStages[$branch]; From ff7730f4bd2f363c5619758c0af4acd3482c96df Mon Sep 17 00:00:00 2001 From: holan20180123 <56391770@qq.com> Date: Tue, 14 Jul 2020 09:43:36 +0800 Subject: [PATCH 4/7] * Finish task #7444,7441. --- module/bug/control.php | 10 +++++++--- module/bug/js/common.js | 7 ++++--- module/bug/js/create.js | 22 +++++++++++++++++++--- module/project/model.php | 7 ++++++- module/story/css/view.css | 1 + 5 files changed, 37 insertions(+), 10 deletions(-) diff --git a/module/bug/control.php b/module/bug/control.php index 7ef444ef5d..90b51ebd5f 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -400,10 +400,14 @@ class bug extends control $stories = $this->story->getProductStoryPairs($productID, $branch); } + + $moduleID = $moduleID ? $moduleID : (int)$this->cookie->lastBugModule; + $moduleOwner = $this->bug->getModuleOwner($moduleID, $productID); + /* Set team members of the latest project as assignedTo list. */ $latestProject = $this->product->getLatestProject($productID); $projectMembers = array(); - if(!empty($latestProject)) $projectMembers = $this->loadModel('project')->getTeamMemberPairs($latestProject->id, 'nodeleted'); + if(!empty($latestProject)) $projectMembers = $this->loadModel('project')->getTeamMemberPairs($latestProject->id, 'nodeleted', $moduleOwner); if(empty($projectMembers)) $projectMembers = $this->view->users; if($assignedTo and !isset($projectMembers[$assignedTo])) { @@ -1397,7 +1401,7 @@ class bug extends control */ public function ajaxLoadAssignedTo($projectID, $selectedUser = '') { - $projectMembers = $this->loadModel('project')->getTeamMemberPairs($projectID); + $projectMembers = $this->loadModel('project')->getTeamMemberPairs($projectID, '', $selectedUser); die(html::select('assignedTo', $projectMembers, $selectedUser, 'class="form-control"')); } @@ -1416,7 +1420,7 @@ class bug extends control $latestProject = $this->product->getLatestProject($productID); if(!empty($latestProject)) { - $projectMembers = $this->loadModel('project')->getTeamMemberPairs($latestProject->id, 'nodeleted'); + $projectMembers = $this->loadModel('project')->getTeamMemberPairs($latestProject->id, 'nodeleted', $selectedUser); } else { diff --git a/module/bug/js/common.js b/module/bug/js/common.js index a5d7c1c76d..11c9121efe 100644 --- a/module/bug/js/common.js +++ b/module/bug/js/common.js @@ -455,16 +455,17 @@ var oldAssignedTo = $("#assignedTo").find("option:selected").val(); * @access public * @return void */ -function loadAssignedTo(projectID) +function loadAssignedTo(projectID, selectedUser = '') { - link = createLink('bug', 'ajaxLoadAssignedTo', 'projectID=' + projectID + '&selectedUser=' + $('#assignedTo').val()); + selectedUser = selectedUser ? selectedUser : $('#assignedTo').val(); + link = createLink('bug', 'ajaxLoadAssignedTo', 'projectID=' + projectID + '&selectedUser=' + selectedUser); $.get(link, function(data) { var defaultOption = ''; $('#assignedTo_chosen').remove(); $('#assignedTo').replaceWith(data); var defaultAssignedTo = $('#assignedTo').val(); - if(defaultAssignedTo !== oldAssignedTo) $('#assignedTo').append(defaultOption); + if(defaultAssignedTo !== oldAssignedTo && selectedUser == '') $('#assignedTo').append(defaultOption); $('#assignedTo').chosen(); }); } diff --git a/module/bug/js/create.js b/module/bug/js/create.js index 6bf629899b..a4e621b95e 100644 --- a/module/bug/js/create.js +++ b/module/bug/js/create.js @@ -26,10 +26,16 @@ function loadAllUsers() * @access public * @return void */ -function loadProjectTeamMembers(productID) +function loadProjectTeamMembers(productID, selectedUser = '') { - var link = createLink('bug', 'ajaxLoadProjectTeamMembers', 'productID=' + productID + '&selectedUser=' + $('#assignedTo').val()); - $('#assignedToBox').load(link, function(){$('#assignedTo').chosen();}); + selectedUser = selectedUser ? selectedUser : $('#assignedTo').val(); + var link = createLink('bug', 'ajaxLoadProjectTeamMembers', 'productID=' + productID + '&selectedUser=' + selectedUser); + $.get(link, function(data) + { + $('#assignedTo_chosen').remove(); + $('#assignedTo').replaceWith(data); + $('#assignedTo').chosen(); + }); } /** @@ -56,9 +62,19 @@ function setAssignedTo(moduleID, productID) { if(typeof(productID) == 'undefined') productID = $('#product').val(); if(typeof(moduleID) == 'undefined') moduleID = $('#module').val(); + var link = createLink('bug', 'ajaxGetModuleOwner', 'moduleID=' + moduleID + '&productID=' + productID); $.get(link, function(owner) { + var projectID = $('#project').val(); + if(!projectID) + { + loadProjectTeamMembers(productID, owner); + } + else + { + loadAssignedTo(projectID, owner); + } $('#assignedTo').val(owner); $("#assignedTo").trigger("chosen:updated"); }); diff --git a/module/project/model.php b/module/project/model.php index eefde15016..648efe81da 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -1722,10 +1722,11 @@ class projectModel extends model * * @param int $projectID * @param string $params + * @param string $usersToAppended * @access public * @return array */ - public function getTeamMemberPairs($projectID, $params = '') + public function getTeamMemberPairs($projectID, $params = '', $usersToAppended = '') { if(defined('TUTORIAL')) return $this->loadModel('tutorial')->getTeamMembersPairs(); $this->app->loadConfig('user'); @@ -1737,7 +1738,11 @@ class projectModel extends model ->andWhere('t2.deleted')->eq(0) ->fi() ->fetchPairs(); + + if($usersToAppended) $users += $this->dao->select('account, realname')->from(TABLE_USER)->where('account')->in($usersToAppended)->fetchPairs(); + if(!$users) return array('' => ''); + foreach($users as $account => $realName) { $firstLetter = ucfirst(substr($account, 0, 1)) . ':'; diff --git a/module/story/css/view.css b/module/story/css/view.css index 09f389c1f7..e49d9ab210 100644 --- a/module/story/css/view.css +++ b/module/story/css/view.css @@ -1,3 +1,4 @@ .side-col .cell{padding:0px;} .side-col #legendProjectAndTask .list-unstyled{padding:10px; border-top:0px; margin:0px;} .col-4 .cell .tab-content .text-top{padding-top: 1px} +.main-actions .btn-toolbar .btn{padding-right: 6px; padding-left: 6px;} From 8c06f970608ea6b0075d3a0a5b5d435f60630823 Mon Sep 17 00:00:00 2001 From: chenfei Date: Tue, 14 Jul 2020 09:54:31 +0800 Subject: [PATCH 5/7] * Finish task #7438. --- module/tree/lang/de.php | 1 + module/tree/lang/en.php | 1 + module/tree/lang/fr.php | 1 + module/tree/lang/vi.php | 1 + module/tree/lang/zh-cn.php | 1 + module/tree/model.php | 5 +++++ 6 files changed, 10 insertions(+) diff --git a/module/tree/lang/de.php b/module/tree/lang/de.php index 15c875f34f..b566be0216 100644 --- a/module/tree/lang/de.php +++ b/module/tree/lang/de.php @@ -43,6 +43,7 @@ $lang->tree->confirmRoot4Doc = "Any changes to the library will change the do $lang->tree->successSave = 'Saved.'; $lang->tree->successFixed = 'Fixed.'; $lang->tree->repeatName = 'The name "%s" exists!'; +$lang->tree->shouldNotBlank = 'Module name should not be blank!'; $lang->tree->module = 'Modul'; $lang->tree->name = 'Name'; diff --git a/module/tree/lang/en.php b/module/tree/lang/en.php index 774c856de0..e3adbba73a 100644 --- a/module/tree/lang/en.php +++ b/module/tree/lang/en.php @@ -43,6 +43,7 @@ $lang->tree->confirmRoot4Doc = "Any changes to the library will change the do $lang->tree->successSave = 'Saved.'; $lang->tree->successFixed = 'Fixed.'; $lang->tree->repeatName = 'The name "%s" exists!'; +$lang->tree->shouldNotBlank = 'Module name should not be blank!'; $lang->tree->module = 'Module'; $lang->tree->name = 'Name'; diff --git a/module/tree/lang/fr.php b/module/tree/lang/fr.php index 1898cb1405..a252efec9e 100644 --- a/module/tree/lang/fr.php +++ b/module/tree/lang/fr.php @@ -43,6 +43,7 @@ $lang->tree->confirmRoot4Doc = "Any changes to the library will change the do $lang->tree->successSave = 'Sauvé.'; $lang->tree->successFixed = 'Corrigé.'; $lang->tree->repeatName = 'Le nom "%s" existe déjà !'; +$lang->tree->shouldNotBlank = 'Module name should not be blank!'; $lang->tree->module = 'Module'; $lang->tree->name = 'Nom'; diff --git a/module/tree/lang/vi.php b/module/tree/lang/vi.php index ebce92014b..a3f5f8c374 100644 --- a/module/tree/lang/vi.php +++ b/module/tree/lang/vi.php @@ -43,6 +43,7 @@ $lang->tree->confirmRoot4Doc = "Mọi sự thay đổi tới thư viện này $lang->tree->successSave = 'Đã lưu.'; $lang->tree->successFixed = 'Đã sửa'; $lang->tree->repeatName = 'Tên "%s" đã tồn tại!'; +$lang->tree->shouldNotBlank = 'Module name should not be blank!'; $lang->tree->module = 'Module'; $lang->tree->name = 'Tên'; diff --git a/module/tree/lang/zh-cn.php b/module/tree/lang/zh-cn.php index 99290684ee..83c34101d6 100644 --- a/module/tree/lang/zh-cn.php +++ b/module/tree/lang/zh-cn.php @@ -43,6 +43,7 @@ $lang->tree->confirmRoot4Doc = "修改所属文档库,会同时修改该分 $lang->tree->successSave = '成功保存'; $lang->tree->successFixed = '成功修正数据!'; $lang->tree->repeatName = '模块名“%s”已经存在!'; +$lang->tree->shouldNotBlank = '模块名不能为空格!'; $lang->tree->module = '模块'; $lang->tree->name = '模块名称'; diff --git a/module/tree/model.php b/module/tree/model.php index 9b38f2369b..0373ca1177 100644 --- a/module/tree/model.php +++ b/module/tree/model.php @@ -1337,6 +1337,11 @@ class treeModel extends model $childs = $data->modules; $parentModuleID = $data->parentModuleID; + foreach($childs as $moduleID => $moduleName) + { + if(preg_match('/(^\s+$)/', $moduleName)) die(js::alert($this->lang->tree->shouldNotBlank)); + } + $module = new stdClass(); $module->root = $rootID; $module->type = $type; From f1a657532552b1d4665a3304daf1de98907e4933 Mon Sep 17 00:00:00 2001 From: chenfei Date: Tue, 14 Jul 2020 10:33:23 +0800 Subject: [PATCH 6/7] * Finish task #7435. --- module/project/view/kanban.html.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/module/project/view/kanban.html.php b/module/project/view/kanban.html.php index a270ea5ffc..73d7bd6218 100644 --- a/module/project/view/kanban.html.php +++ b/module/project/view/kanban.html.php @@ -74,8 +74,6 @@ - 0) or $type != 'story');?> - - @@ -102,7 +99,6 @@ $group):?> - -
    @@ -147,7 +143,6 @@
    From 1a04618fd14962c548f43b8935f45512e69cb681 Mon Sep 17 00:00:00 2001 From: holan20180123 <56391770@qq.com> Date: Tue, 14 Jul 2020 11:01:47 +0800 Subject: [PATCH 7/7] * Finish task #7419. --- module/story/view/zerocase.html.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/story/view/zerocase.html.php b/module/story/view/zerocase.html.php index de74a68942..ee04815576 100644 --- a/module/story/view/zerocase.html.php +++ b/module/story/view/zerocase.html.php @@ -66,12 +66,12 @@
    story->stageList, $story->stage);?> id}"; + $vars = "storyID={$story->id}"; common::printIcon('story', 'change', $vars, $story, 'list', 'fork'); common::printIcon('story', 'review', $vars, $story, 'list', 'glasses'); common::printIcon('story', 'close', $vars, $story, 'list', 'off'); common::printIcon('story', 'edit', $vars, $story, 'list', 'pencil'); - common::printIcon('story', 'createCase', "productID=$story->product&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap'); + common::printIcon('story', 'createCase', "productID=$story->product&branch=0&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap'); ?>