From f8f329ec948b37534c79494b980d79cc58f341fe Mon Sep 17 00:00:00 2001 From: wangyuting2 <851424971@qq.com> Date: Wed, 26 Oct 2022 07:01:57 +0000 Subject: [PATCH] * Finish task #73470. --- framework/router.class.php | 2 +- module/admin/config.php | 7 +++ module/admin/control.php | 23 ++++++++++ module/admin/css/setmodule.css | 2 + module/admin/js/setmodule.js | 15 ++++++ module/admin/lang/de.php | 39 ++++++++++++++++ module/admin/lang/en.php | 39 ++++++++++++++++ module/admin/lang/fr.php | 39 ++++++++++++++++ module/admin/lang/zh-cn.php | 39 ++++++++++++++++ module/admin/view/setmodule.html.php | 69 ++++++++++++++++++++++++++++ module/common/lang/de.php | 1 + module/common/lang/en.php | 1 + module/common/lang/fr.php | 1 + module/common/lang/menu.php | 5 +- module/common/lang/zh-cn.php | 1 + module/custom/config.php | 2 +- module/custom/model.php | 4 +- module/custom/view/flow.html.php | 2 +- module/group/lang/resource.php | 2 +- 19 files changed, 285 insertions(+), 8 deletions(-) create mode 100644 module/admin/css/setmodule.css create mode 100644 module/admin/js/setmodule.js create mode 100644 module/admin/view/setmodule.html.php diff --git a/framework/router.class.php b/framework/router.class.php index 3e0fe8b660..810d4d103a 100755 --- a/framework/router.class.php +++ b/framework/router.class.php @@ -224,7 +224,7 @@ class router extends baseRouter /* User preference init. */ $config->URSR = $URSR; - $config->URAndSR = ($URAndSR and strpos(",{$disabledFeatures},", ',URStory,') === false); + $config->URAndSR = ($URAndSR and strpos(",{$disabledFeatures},", ',productURStory,') === false); $config->programLink = 'program-browse'; $config->productLink = 'product-all'; $config->projectLink = 'project-browse'; diff --git a/module/admin/config.php b/module/admin/config.php index 197e7da4e2..f99baded98 100644 --- a/module/admin/config.php +++ b/module/admin/config.php @@ -14,5 +14,12 @@ $config->admin->apiRoot = 'https://www.zentao.net'; $config->admin->log = new stdclass(); $config->admin->log->saveDays = 30; +$config->admin->module = new stdclass(); +$config->admin->module->product = array('roadmap', 'track', 'URStory'); +$config->admin->module->scrum = array('repo', 'issue', 'risk', 'opportunity', 'process', 'measrecord', 'auditplan', 'meeting'); +$config->admin->module->waterfall = array('repo', 'track', 'researchplan', 'issue', 'risk', 'opportunity', 'process', 'measrecord', 'auditplan', 'gapanalysis', 'meeting'); +$config->admin->module->assetlib = array('storylib', 'caselib', 'issuelib', 'risklib', 'opportunitylib', 'practicelib', 'componentlib'); +$config->admin->module->other = array('devops', 'kanban', 'oa', 'deploy', 'traincourse'); + if(!isset($config->safe)) $config->safe = new stdclass(); if(!isset($config->safe->weak)) $config->safe->weak = '123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123'; diff --git a/module/admin/control.php b/module/admin/control.php index 28d537d4f5..1f8d6879ff 100644 --- a/module/admin/control.php +++ b/module/admin/control.php @@ -233,6 +233,29 @@ class admin extends control $this->display(); } + public function setModule() + { + if($_POST) + { + $closedFeatures = ''; + if(isset($_POST['module'])) + { + foreach($this->post->module as $module => $options) + { + $checked = reset($options); + if(!$checked) $closedFeatures .= "$module,"; + } + } + $closedFeatures = rtrim($closedFeatures, ','); + $this->loadModel('setting')->setItem('system.common.closedFeatures', $closedFeatures); + $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => 'reload')); + } + $this->view->title = $this->lang->admin->setModuleIndex; + $this->view->closedFeatures = $this->loadModel('setting')->getItem('owner=system&module=common§ion=&key=closedFeatures'); + $this->view->disabledFeatures = $this->setting->getItem('owner=system&module=common§ion=&key=disabledFeatures'); + $this->display(); + } + /** * Certify ztEmail. * diff --git a/module/admin/css/setmodule.css b/module/admin/css/setmodule.css new file mode 100644 index 0000000000..640e973892 --- /dev/null +++ b/module/admin/css/setmodule.css @@ -0,0 +1,2 @@ +.group-item {display: block; width: 220px; float: left; font-size: 14px;} +.group-item .checkbox-inline label {padding-left: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;} diff --git a/module/admin/js/setmodule.js b/module/admin/js/setmodule.js new file mode 100644 index 0000000000..32048ea3a0 --- /dev/null +++ b/module/admin/js/setmodule.js @@ -0,0 +1,15 @@ +$(function() +{ + $("input[name^='module']").change(function() + { + const name = $(this).attr('name'); + if($(this).prop('checked')) + { + $("input[name='" + name + "'][type=hidden]").val('1').attr('disabled', 'disabled'); + } + else + { + $("input[name='" + name + "'][type=hidden]").val('0').attr('disabled', false); + } + }) +}) diff --git a/module/admin/lang/de.php b/module/admin/lang/de.php index 35be329946..eef1230cc2 100644 --- a/module/admin/lang/de.php +++ b/module/admin/lang/de.php @@ -23,6 +23,7 @@ $lang->admin->getCaptcha = 'Bestätigungscode anfordern'; $lang->admin->register = 'Register'; $lang->admin->resetPWDSetting = 'Reset password Setting'; $lang->admin->tableEngine = 'Table Engine'; +$lang->admin->setModuleIndex = 'Set Module'; $lang->admin->api = 'API'; $lang->admin->log = 'Log'; @@ -65,6 +66,44 @@ $lang->admin->bind = new stdclass(); $lang->admin->bind->caption = 'Konto verknüpfen'; $lang->admin->bind->success = "Konto wurde verknüpft!"; +$lang->admin->setModule = new stdclass(); +$lang->admin->setModule->module = 'Module'; +$lang->admin->setModule->optional = 'Optional'; +$lang->admin->setModule->opened = 'Opened'; +$lang->admin->setModule->closed = 'Closed'; + +$lang->admin->setModule->product = 'Product'; +$lang->admin->setModule->scrum = 'Scrum Project'; +$lang->admin->setModule->waterfall = 'Waterfall Project'; +$lang->admin->setModule->assetlib = 'Assetlib'; +$lang->admin->setModule->other = 'Other'; + +$lang->admin->setModule->repo = 'Repo'; +$lang->admin->setModule->issue = 'Issue'; +$lang->admin->setModule->risk = 'Risk'; +$lang->admin->setModule->opportunity = 'Opportunity'; +$lang->admin->setModule->process = 'Process'; +$lang->admin->setModule->measrecord = 'Measrecord'; +$lang->admin->setModule->auditplan = 'QA'; +$lang->admin->setModule->meeting = 'Meeting'; +$lang->admin->setModule->roadmap = 'Roadmap'; +$lang->admin->setModule->track = 'Track'; +$lang->admin->setModule->URStory = 'URStroy'; +$lang->admin->setModule->researchplan = 'Researchplan'; +$lang->admin->setModule->gapanalysis = 'Gapanalysis'; +$lang->admin->setModule->storylib = 'Story Lib'; +$lang->admin->setModule->caselib = 'Case Lib'; +$lang->admin->setModule->issuelib = 'Issue Lib'; +$lang->admin->setModule->risklib = 'Risk Lib'; +$lang->admin->setModule->opportunitylib = 'Opportunity Lib'; +$lang->admin->setModule->practicelib = 'Practice Lib'; +$lang->admin->setModule->componentlib = 'Component Lib'; +$lang->admin->setModule->devops = 'DevOps'; +$lang->admin->setModule->kanban = 'Kanban'; +$lang->admin->setModule->oa = 'OA'; +$lang->admin->setModule->deploy = 'Deploy'; +$lang->admin->setModule->traincourse = 'Traincourse'; + $lang->admin->safe = new stdclass(); $lang->admin->safe->common = 'Sicherheits-Regeln'; $lang->admin->safe->set = 'PasswortStärke'; diff --git a/module/admin/lang/en.php b/module/admin/lang/en.php index 1657fb2e33..6166641995 100644 --- a/module/admin/lang/en.php +++ b/module/admin/lang/en.php @@ -23,6 +23,7 @@ $lang->admin->getCaptcha = 'Send Verification Code'; $lang->admin->register = 'Register'; $lang->admin->resetPWDSetting = 'Reset password Setting'; $lang->admin->tableEngine = 'Table Engine'; +$lang->admin->setModuleIndex = 'Set Module'; $lang->admin->api = 'API'; $lang->admin->log = 'Log'; @@ -65,6 +66,44 @@ $lang->admin->bind = new stdclass(); $lang->admin->bind->caption = 'Link Account'; $lang->admin->bind->success = "Account is linked!"; +$lang->admin->setModule = new stdclass(); +$lang->admin->setModule->module = 'Module'; +$lang->admin->setModule->optional = 'Optional'; +$lang->admin->setModule->opened = 'Opened'; +$lang->admin->setModule->closed = 'Closed'; + +$lang->admin->setModule->product = 'Product'; +$lang->admin->setModule->scrum = 'Scrum Project'; +$lang->admin->setModule->waterfall = 'Waterfall Project'; +$lang->admin->setModule->assetlib = 'Assetlib'; +$lang->admin->setModule->other = 'Other'; + +$lang->admin->setModule->repo = 'Repo'; +$lang->admin->setModule->issue = 'Issue'; +$lang->admin->setModule->risk = 'Risk'; +$lang->admin->setModule->opportunity = 'Opportunity'; +$lang->admin->setModule->process = 'Process'; +$lang->admin->setModule->measrecord = 'Measrecord'; +$lang->admin->setModule->auditplan = 'QA'; +$lang->admin->setModule->meeting = 'Meeting'; +$lang->admin->setModule->roadmap = 'Roadmap'; +$lang->admin->setModule->track = 'Track'; +$lang->admin->setModule->URStory = 'URStroy'; +$lang->admin->setModule->researchplan = 'Researchplan'; +$lang->admin->setModule->gapanalysis = 'Gapanalysis'; +$lang->admin->setModule->storylib = 'Story Lib'; +$lang->admin->setModule->caselib = 'Case Lib'; +$lang->admin->setModule->issuelib = 'Issue Lib'; +$lang->admin->setModule->risklib = 'Risk Lib'; +$lang->admin->setModule->opportunitylib = 'Opportunity Lib'; +$lang->admin->setModule->practicelib = 'Practice Lib'; +$lang->admin->setModule->componentlib = 'Component Lib'; +$lang->admin->setModule->devops = 'DevOps'; +$lang->admin->setModule->kanban = 'Kanban'; +$lang->admin->setModule->oa = 'OA'; +$lang->admin->setModule->deploy = 'Deploy'; +$lang->admin->setModule->traincourse = 'Traincourse'; + $lang->admin->safe = new stdclass(); $lang->admin->safe->common = 'Security Policy'; $lang->admin->safe->set = 'Password Settings'; diff --git a/module/admin/lang/fr.php b/module/admin/lang/fr.php index f8370e4fee..cec280bbb7 100644 --- a/module/admin/lang/fr.php +++ b/module/admin/lang/fr.php @@ -23,6 +23,7 @@ $lang->admin->getCaptcha = 'Obtenir le Code de vérification'; $lang->admin->register = 'Register'; $lang->admin->resetPWDSetting = 'Reset password Setting'; $lang->admin->tableEngine = 'Table Engine'; +$lang->admin->setModuleIndex = 'Set Module'; $lang->admin->api = 'API'; $lang->admin->log = 'Log'; @@ -65,6 +66,44 @@ $lang->admin->bind = new stdclass(); $lang->admin->bind->caption = 'Lier au compte'; $lang->admin->bind->success = "Le compte est associé !"; +$lang->admin->setModule = new stdclass(); +$lang->admin->setModule->module = 'Module'; +$lang->admin->setModule->optional = 'Optional'; +$lang->admin->setModule->opened = 'Opened'; +$lang->admin->setModule->closed = 'Closed'; + +$lang->admin->setModule->product = 'Product'; +$lang->admin->setModule->scrum = 'Scrum Project'; +$lang->admin->setModule->waterfall = 'Waterfall Project'; +$lang->admin->setModule->assetlib = 'Assetlib'; +$lang->admin->setModule->other = 'Other'; + +$lang->admin->setModule->repo = 'Repo'; +$lang->admin->setModule->issue = 'Issue'; +$lang->admin->setModule->risk = 'Risk'; +$lang->admin->setModule->opportunity = 'Opportunity'; +$lang->admin->setModule->process = 'Process'; +$lang->admin->setModule->measrecord = 'Measrecord'; +$lang->admin->setModule->auditplan = 'QA'; +$lang->admin->setModule->meeting = 'Meeting'; +$lang->admin->setModule->roadmap = 'Roadmap'; +$lang->admin->setModule->track = 'Track'; +$lang->admin->setModule->URStory = 'URStroy'; +$lang->admin->setModule->researchplan = 'Researchplan'; +$lang->admin->setModule->gapanalysis = 'Gapanalysis'; +$lang->admin->setModule->storylib = 'Story Lib'; +$lang->admin->setModule->caselib = 'Case Lib'; +$lang->admin->setModule->issuelib = 'Issue Lib'; +$lang->admin->setModule->risklib = 'Risk Lib'; +$lang->admin->setModule->opportunitylib = 'Opportunity Lib'; +$lang->admin->setModule->practicelib = 'Practice Lib'; +$lang->admin->setModule->componentlib = 'Component Lib'; +$lang->admin->setModule->devops = 'DevOps'; +$lang->admin->setModule->kanban = 'Kanban'; +$lang->admin->setModule->oa = 'OA'; +$lang->admin->setModule->deploy = 'Deploy'; +$lang->admin->setModule->traincourse = 'Traincourse'; + $lang->admin->safe = new stdclass(); $lang->admin->safe->common = 'Politique de sécurité'; $lang->admin->safe->set = 'Paramétrages du Mot de passe'; diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php index 2d5d8048c7..87f4557a71 100644 --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -23,6 +23,7 @@ $lang->admin->getCaptcha = '获取验证码'; $lang->admin->register = '登记'; $lang->admin->resetPWDSetting = '重置密码设置'; $lang->admin->tableEngine = '表引擎'; +$lang->admin->setModuleIndex = '系统功能配置'; $lang->admin->api = '接口'; $lang->admin->log = '日志'; @@ -65,6 +66,44 @@ $lang->admin->bind = new stdclass(); $lang->admin->bind->caption = '关联社区帐号'; $lang->admin->bind->success = "关联账户成功"; +$lang->admin->setModule = new stdclass(); +$lang->admin->setModule->module = '功能点'; +$lang->admin->setModule->optional = '可选功能'; +$lang->admin->setModule->opened = '开启的'; +$lang->admin->setModule->closed = '关闭的'; + +$lang->admin->setModule->product = '产品'; +$lang->admin->setModule->scrum = '敏捷项目'; +$lang->admin->setModule->waterfall = '瀑布项目'; +$lang->admin->setModule->assetlib = '资产库'; +$lang->admin->setModule->other = '其他功能'; + +$lang->admin->setModule->repo = '代码'; +$lang->admin->setModule->issue = '问题'; +$lang->admin->setModule->risk = '风险'; +$lang->admin->setModule->opportunity = '机会'; +$lang->admin->setModule->process = '过程'; +$lang->admin->setModule->measrecord = '度量'; +$lang->admin->setModule->auditplan = 'QA'; +$lang->admin->setModule->meeting = '会议'; +$lang->admin->setModule->roadmap = '路线图'; +$lang->admin->setModule->track = '矩阵'; +$lang->admin->setModule->URStory = '用户需求'; +$lang->admin->setModule->researchplan = '调研'; +$lang->admin->setModule->gapanalysis = '培训'; +$lang->admin->setModule->storylib = '需求库'; +$lang->admin->setModule->caselib = '用例库'; +$lang->admin->setModule->issuelib = '问题库'; +$lang->admin->setModule->risklib = '风险库'; +$lang->admin->setModule->opportunitylib = '机会库'; +$lang->admin->setModule->practicelib = '最佳实践库'; +$lang->admin->setModule->componentlib = '组件库'; +$lang->admin->setModule->devops = 'DevOps'; +$lang->admin->setModule->kanban = '通用看板'; +$lang->admin->setModule->oa = '办公'; +$lang->admin->setModule->deploy = '运维'; +$lang->admin->setModule->traincourse = '学堂'; + $lang->admin->safe = new stdclass(); $lang->admin->safe->common = '安全策略'; $lang->admin->safe->set = '密码安全设置'; diff --git a/module/admin/view/setmodule.html.php b/module/admin/view/setmodule.html.php new file mode 100644 index 0000000000..280afb8d4d --- /dev/null +++ b/module/admin/view/setmodule.html.php @@ -0,0 +1,69 @@ + + * @package admin + * @version $Id: setmodule.html.php 2568 2012-02-09 06:56:35Z shiyangyangwork@yahoo.cn $ + * @link http://www.zentao.net + */ +?> + +