From 2ab2af045c737bf0e60b45ca0b4697db9bec6436 Mon Sep 17 00:00:00 2001 From: zhouxin Date: Fri, 18 Mar 2022 07:17:07 +0000 Subject: [PATCH] Fix bug #13855. --- module/project/control.php | 2 + module/project/lang/en.php | 112 +++++++++++++++++----------------- module/project/lang/zh-cn.php | 112 +++++++++++++++++----------------- module/project/model.php | 16 +++++ 4 files changed, 132 insertions(+), 110 deletions(-) diff --git a/module/project/control.php b/module/project/control.php index 2eb8c75938..a9dd76e229 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -1342,6 +1342,8 @@ class project extends control if(!empty($_POST)) { $this->project->manageMembers($projectID); + if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError())); + $this->loadModel('action')->create('team', $projectID, 'ManagedTeam'); $link = $this->createLink('project', 'team', "projectID=$projectID"); diff --git a/module/project/lang/en.php b/module/project/lang/en.php index e7be026f47..cac498e745 100644 --- a/module/project/lang/en.php +++ b/module/project/lang/en.php @@ -1,60 +1,62 @@ project->createGuide = 'Select Template'; -$lang->project->index = 'Dashboard'; -$lang->project->home = 'Home'; -$lang->project->create = 'Create Project'; -$lang->project->edit = 'Edit'; -$lang->project->batchEdit = 'Batch Edit Projects'; -$lang->project->view = 'Project View'; -$lang->project->batchEdit = 'Batch Edit'; -$lang->project->browse = 'Projects'; -$lang->project->all = 'All'; -$lang->project->start = 'Start'; -$lang->project->finish = 'Finish'; -$lang->project->suspend = 'Suspend'; -$lang->project->delete = 'Delete'; -$lang->project->close = 'Close'; -$lang->project->activate = 'Activate'; -$lang->project->group = 'Privilege Group'; -$lang->project->createGroup = 'Create Group'; -$lang->project->editGroup = 'Edit Group'; -$lang->project->copyGroup = 'Copy Group'; -$lang->project->manageView = 'Manage View'; -$lang->project->managePriv = 'Manage Privilege'; -$lang->project->manageMembers = 'Manage Team'; -$lang->project->export = 'Export'; -$lang->project->addProduct = 'Add Product'; -$lang->project->manageGroupMember = 'Manage Group'; -$lang->project->moduleSetting = 'List Settings'; -$lang->project->moduleOpen = 'Program Name'; -$lang->project->dynamic = 'Dynamic'; -$lang->project->execution = 'Execution'; -$lang->project->qa = 'QA'; -$lang->project->bug = 'Bug List'; -$lang->project->testcase = 'Case List'; -$lang->project->testtask = 'Test Task'; -$lang->project->build = 'Build'; -$lang->project->updateOrder = 'Order'; -$lang->project->sort = 'Order'; -$lang->project->whitelist = 'Project Whitelist'; -$lang->project->addWhitelist = 'Project Add Whitelist'; -$lang->project->unbindWhitelist = 'Project Remove Whitelist'; -$lang->project->manageProducts = 'Manage Products'; -$lang->project->copyTitle = 'Please select an project to copy'; -$lang->project->errorSameProducts = 'Project cannot be associated with multiple identical products.'; -$lang->project->errorSameBranches = 'Project cannot be associated with multiple identical branches.'; -$lang->project->errorNoProducts = 'At least one product is associated'; -$lang->project->copyNoProject = 'There are no items available to copy.'; -$lang->project->searchByName = 'Enter the project name to retrieve'; -$lang->project->deleted = 'Deleted'; -$lang->project->linkedProducts = "Linked {$lang->productCommon}s"; -$lang->project->unlinkedProducts = "Unlinked {$lang->productCommon}s"; -$lang->project->testreport = 'Test Report'; -$lang->project->selectProgram = 'Program filtering'; -$lang->project->teamMember = 'Team Member'; -$lang->project->unlinkMember = 'Remove Member'; -$lang->project->copyTeamTitle = 'Select a project team to copy'; +$lang->project->createGuide = 'Select Template'; +$lang->project->index = 'Dashboard'; +$lang->project->home = 'Home'; +$lang->project->create = 'Create Project'; +$lang->project->edit = 'Edit'; +$lang->project->batchEdit = 'Batch Edit Projects'; +$lang->project->view = 'Project View'; +$lang->project->batchEdit = 'Batch Edit'; +$lang->project->browse = 'Projects'; +$lang->project->all = 'All'; +$lang->project->start = 'Start'; +$lang->project->finish = 'Finish'; +$lang->project->suspend = 'Suspend'; +$lang->project->delete = 'Delete'; +$lang->project->close = 'Close'; +$lang->project->activate = 'Activate'; +$lang->project->group = 'Privilege Group'; +$lang->project->createGroup = 'Create Group'; +$lang->project->editGroup = 'Edit Group'; +$lang->project->copyGroup = 'Copy Group'; +$lang->project->manageView = 'Manage View'; +$lang->project->managePriv = 'Manage Privilege'; +$lang->project->manageMembers = 'Manage Team'; +$lang->project->export = 'Export'; +$lang->project->addProduct = 'Add Product'; +$lang->project->manageGroupMember = 'Manage Group'; +$lang->project->moduleSetting = 'List Settings'; +$lang->project->moduleOpen = 'Program Name'; +$lang->project->dynamic = 'Dynamic'; +$lang->project->execution = 'Execution'; +$lang->project->qa = 'QA'; +$lang->project->bug = 'Bug List'; +$lang->project->testcase = 'Case List'; +$lang->project->testtask = 'Test Task'; +$lang->project->build = 'Build'; +$lang->project->updateOrder = 'Order'; +$lang->project->sort = 'Order'; +$lang->project->whitelist = 'Project Whitelist'; +$lang->project->addWhitelist = 'Project Add Whitelist'; +$lang->project->unbindWhitelist = 'Project Remove Whitelist'; +$lang->project->manageProducts = 'Manage Products'; +$lang->project->copyTitle = 'Please select an project to copy'; +$lang->project->errorSameProducts = 'Project cannot be associated with multiple identical products.'; +$lang->project->errorSameBranches = 'Project cannot be associated with multiple identical branches.'; +$lang->project->errorNoProducts = 'At least one product is associated'; +$lang->project->copyNoProject = 'There are no items available to copy.'; +$lang->project->searchByName = 'Enter the project name to retrieve'; +$lang->project->deleted = 'Deleted'; +$lang->project->linkedProducts = "Linked {$lang->productCommon}s"; +$lang->project->unlinkedProducts = "Unlinked {$lang->productCommon}s"; +$lang->project->testreport = 'Test Report'; +$lang->project->selectProgram = 'Program filtering'; +$lang->project->teamMember = 'Team Member'; +$lang->project->unlinkMember = 'Remove Member'; +$lang->project->copyTeamTitle = 'Select a project team to copy'; +$lang->project->daysGreaterProject = 'Days cannot be greater than days of project『%s』'; +$lang->project->errorHours = 'Hours/Day cannot be greater than『24』'; /* Fields. */ $lang->project->common = 'Project'; diff --git a/module/project/lang/zh-cn.php b/module/project/lang/zh-cn.php index 132c11dc68..3f3698df13 100644 --- a/module/project/lang/zh-cn.php +++ b/module/project/lang/zh-cn.php @@ -1,60 +1,62 @@ project->createGuide = '选择项目模板'; -$lang->project->index = '项目仪表盘'; -$lang->project->home = '项目主页'; -$lang->project->create = '创建项目'; -$lang->project->edit = '编辑项目'; -$lang->project->batchEdit = '批量编辑项目'; -$lang->project->view = '项目概况'; -$lang->project->batchEdit = '批量编辑'; -$lang->project->browse = '项目列表'; -$lang->project->all = '所有项目'; -$lang->project->start = '启动项目'; -$lang->project->finish = '完成项目'; -$lang->project->suspend = '挂起项目'; -$lang->project->delete = '删除项目'; -$lang->project->close = '关闭项目'; -$lang->project->activate = '激活项目'; -$lang->project->group = '项目权限分组'; -$lang->project->createGroup = '项目创建分组'; -$lang->project->editGroup = '项目编辑分组'; -$lang->project->copyGroup = '项目复制分组'; -$lang->project->manageView = '项目维护视野'; -$lang->project->managePriv = '项目维护权限'; -$lang->project->manageMembers = '团队管理'; -$lang->project->export = '导出'; -$lang->project->addProduct = '新建产品'; -$lang->project->manageGroupMember = '维护分组用户'; -$lang->project->moduleSetting = '列表设置'; -$lang->project->moduleOpen = '显示项目集名'; -$lang->project->dynamic = '动态'; -$lang->project->execution = '执行列表'; -$lang->project->qa = '测试仪表盘'; -$lang->project->bug = 'Bug列表'; -$lang->project->testcase = '用例列表'; -$lang->project->testtask = '测试单'; -$lang->project->build = '版本'; -$lang->project->updateOrder = '排序'; -$lang->project->sort = '项目排序'; -$lang->project->whitelist = '项目白名单'; -$lang->project->addWhitelist = '项目添加白名单'; -$lang->project->unbindWhitelist = '项目删除白名单'; -$lang->project->manageProducts = '关联产品'; -$lang->project->copyTitle = '请选择要复制的项目'; -$lang->project->errorSameProducts = '项目不能关联多个相同的产品。'; -$lang->project->errorSameBranches = '项目不能关联多个相同的分支。'; -$lang->project->errorNoProducts = '最少关联一个产品'; -$lang->project->copyNoProject = '没有可用的项目来复制'; -$lang->project->searchByName = '输入项目名称进行检索'; -$lang->project->deleted = '已删除'; -$lang->project->linkedProducts = '已关联产品'; -$lang->project->unlinkedProducts = '未关联'; -$lang->project->testreport = '测试报告'; -$lang->project->selectProgram = '项目集筛选'; -$lang->project->teamMember = '团队成员'; -$lang->project->unlinkMember = '移除成员'; -$lang->project->copyTeamTitle = '选择一个项目团队来复制'; +$lang->project->createGuide = '选择项目模板'; +$lang->project->index = '项目仪表盘'; +$lang->project->home = '项目主页'; +$lang->project->create = '创建项目'; +$lang->project->edit = '编辑项目'; +$lang->project->batchEdit = '批量编辑项目'; +$lang->project->view = '项目概况'; +$lang->project->batchEdit = '批量编辑'; +$lang->project->browse = '项目列表'; +$lang->project->all = '所有项目'; +$lang->project->start = '启动项目'; +$lang->project->finish = '完成项目'; +$lang->project->suspend = '挂起项目'; +$lang->project->delete = '删除项目'; +$lang->project->close = '关闭项目'; +$lang->project->activate = '激活项目'; +$lang->project->group = '项目权限分组'; +$lang->project->createGroup = '项目创建分组'; +$lang->project->editGroup = '项目编辑分组'; +$lang->project->copyGroup = '项目复制分组'; +$lang->project->manageView = '项目维护视野'; +$lang->project->managePriv = '项目维护权限'; +$lang->project->manageMembers = '团队管理'; +$lang->project->export = '导出'; +$lang->project->addProduct = '新建产品'; +$lang->project->manageGroupMember = '维护分组用户'; +$lang->project->moduleSetting = '列表设置'; +$lang->project->moduleOpen = '显示项目集名'; +$lang->project->dynamic = '动态'; +$lang->project->execution = '执行列表'; +$lang->project->qa = '测试仪表盘'; +$lang->project->bug = 'Bug列表'; +$lang->project->testcase = '用例列表'; +$lang->project->testtask = '测试单'; +$lang->project->build = '版本'; +$lang->project->updateOrder = '排序'; +$lang->project->sort = '项目排序'; +$lang->project->whitelist = '项目白名单'; +$lang->project->addWhitelist = '项目添加白名单'; +$lang->project->unbindWhitelist = '项目删除白名单'; +$lang->project->manageProducts = '关联产品'; +$lang->project->copyTitle = '请选择要复制的项目'; +$lang->project->errorSameProducts = '项目不能关联多个相同的产品。'; +$lang->project->errorSameBranches = '项目不能关联多个相同的分支。'; +$lang->project->errorNoProducts = '最少关联一个产品'; +$lang->project->copyNoProject = '没有可用的项目来复制'; +$lang->project->searchByName = '输入项目名称进行检索'; +$lang->project->deleted = '已删除'; +$lang->project->linkedProducts = '已关联产品'; +$lang->project->unlinkedProducts = '未关联'; +$lang->project->testreport = '测试报告'; +$lang->project->selectProgram = '项目集筛选'; +$lang->project->teamMember = '团队成员'; +$lang->project->unlinkMember = '移除成员'; +$lang->project->copyTeamTitle = '选择一个项目团队来复制'; +$lang->project->daysGreaterProject = '可用工日不能大于项目的可用工日『%s』'; +$lang->project->errorHours = '可用工时/天不能大于『24』'; /* Fields. */ $lang->project->common = '项目'; diff --git a/module/project/model.php b/module/project/model.php index c23e3a284f..4220fbfcc1 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -1534,6 +1534,22 @@ class projectModel extends model $oldJoin = $this->dao->select('`account`, `join`')->from(TABLE_TEAM)->where('root')->eq($projectID)->andWhere('type')->eq($projectType)->fetchPairs(); $this->dao->delete()->from(TABLE_TEAM)->where('root')->eq($projectID)->andWhere('type')->eq($projectType)->exec(); + foreach($accounts as $key => $account) + { + if(empty($account)) continue; + + if((int)$days[$key] > $project->days) + { + dao::$errors['message'][] = sprintf($this->lang->project->daysGreaterProject, $project->days); + return false; + } + if((float)$hours[$key] > 24) + { + dao::$errors['message'][] = $this->lang->project->errorHours; + return false; + } + } + $projectMember = array(); foreach($accounts as $key => $account) {