From 5684e55651b73559d8fb16c007979cd859a64c63 Mon Sep 17 00:00:00 2001 From: zenggang Date: Thu, 7 Dec 2023 05:55:16 +0000 Subject: [PATCH] * Adjust gitlab module. --- module/gitlab/config/dtable.php | 3 +- module/gitlab/config/form.php | 51 +++++++++++++++++++++++++++++ module/gitlab/control.php | 22 ++++++++----- module/gitlab/model.php | 34 +++++++++---------- module/gitlab/ui/editgroup.html.php | 6 ++++ module/space/model.php | 4 +-- 6 files changed, 90 insertions(+), 30 deletions(-) diff --git a/module/gitlab/config/dtable.php b/module/gitlab/config/dtable.php index ca62bb42aa..d6e97caf02 100644 --- a/module/gitlab/config/dtable.php +++ b/module/gitlab/config/dtable.php @@ -164,8 +164,9 @@ $config->gitlab->dtable->group->fieldList['actions']['list']['editGroup']['url'] $config->gitlab->dtable->group->fieldList['actions']['list']['deleteGroup']['icon'] = 'trash'; $config->gitlab->dtable->group->fieldList['actions']['list']['deleteGroup']['hint'] = $lang->gitlab->deleteGroup; -$config->gitlab->dtable->group->fieldList['actions']['list']['deleteGroup']['url'] = helper::createLink('gitlab', 'deleteGroup', 'gitlabID={gitlabID}&groupID={id}'); +$config->gitlab->dtable->group->fieldList['actions']['list']['deleteGroup']['url'] = helper::createLink('gitlab', 'deleteGroup', 'gitlabID={gitlabID}&groupID={id}&confirm=yes'); $config->gitlab->dtable->group->fieldList['actions']['list']['deleteGroup']['className'] = 'ajax-submit'; +$config->gitlab->dtable->group->fieldList['actions']['list']['deleteGroup']['data-confirm'] = $lang->gitlab->group->confirmDelete; $config->gitlab->dtable->user = new stdclass(); diff --git a/module/gitlab/config/form.php b/module/gitlab/config/form.php index 95485a13d3..526f7617fa 100644 --- a/module/gitlab/config/form.php +++ b/module/gitlab/config/form.php @@ -38,3 +38,54 @@ $config->gitlab->form->user->edit['password_repeat'] = array('type' => 'string' $config->gitlab->form->user->edit['projects_limit'] = array('type' => 'int', 'required' => false, 'default' => '100000'); $config->gitlab->form->user->edit['can_create_group'] = array('type' => 'string', 'required' => false, 'default' => '0'); $config->gitlab->form->user->edit['external'] = array('type' => 'string', 'required' => false, 'default' => '0'); + +$config->gitlab->form->group = new stdclass(); + +$config->gitlab->form->group->create = common::formConfig('gitlab', 'createGroup'); +$config->gitlab->form->group->create['name'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->group->create['path'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->group->create['description'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->group->create['visibility'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->group->create['request_access_enabled'] = array('type' => 'string', 'required' => false, 'default' => '0'); +$config->gitlab->form->group->create['lfs_enabled'] = array('type' => 'string', 'required' => false, 'default' => '0'); +$config->gitlab->form->group->create['project_creation_level'] = array('type' => 'string', 'required' => false, 'default' => 'developer'); +$config->gitlab->form->group->create['subgroup_creation_level'] = array('type' => 'string', 'required' => false, 'default' => 'maintainer'); + +$config->gitlab->form->group->edit = common::formConfig('gitlab', 'editGroup'); +$config->gitlab->form->group->edit['id'] = array('type' => 'int', 'required' => true); +$config->gitlab->form->group->edit['name'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->group->edit['path'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->group->edit['description'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->group->edit['visibility'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->group->edit['request_access_enabled'] = array('type' => 'string', 'required' => false, 'default' => '0'); +$config->gitlab->form->group->edit['lfs_enabled'] = array('type' => 'string', 'required' => false, 'default' => '0'); +$config->gitlab->form->group->edit['project_creation_level'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->group->edit['subgroup_creation_level'] = array('type' => 'string', 'required' => false, 'default' => ''); + +$config->gitlab->form->project = new stdclass(); + +$config->gitlab->form->project->create = common::formConfig('gitlab', 'createProject'); +$config->gitlab->form->project->create['name'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->project->create['namespace_id'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->project->create['path'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->project->create['description'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->project->create['visibility'] = array('type' => 'string', 'required' => false, 'default' => ''); + +$config->gitlab->form->project->edit = common::formConfig('gitlab', 'editProject'); +$config->gitlab->form->project->edit['id'] = array('type' => 'int', 'required' => true); +$config->gitlab->form->project->edit['name'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->project->edit['description'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->project->edit['visibility'] = array('type' => 'string', 'required' => false, 'default' => ''); + +$config->gitlab->form->branch = new stdclass(); + +$config->gitlab->form->branch->create = common::formConfig('gitlab', 'createBranch'); +$config->gitlab->form->branch->create['branch'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->branch->create['ref'] = array('type' => 'string', 'required' => false, 'default' => ''); + +$config->gitlab->form->tag = new stdclass(); + +$config->gitlab->form->tag->create = common::formConfig('gitlab', 'createTag'); +$config->gitlab->form->tag->create['tag_name'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->tag->create['ref'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->gitlab->form->tag->create['message'] = array('type' => 'string', 'required' => false, 'default' => ''); diff --git a/module/gitlab/control.php b/module/gitlab/control.php index 624abda9ec..c9c48de15e 100644 --- a/module/gitlab/control.php +++ b/module/gitlab/control.php @@ -364,7 +364,8 @@ class gitlab extends control if($_POST) { - $this->gitlab->createGroup($gitlabID); + $gitlabGroup = form::data($this->config->gitlab->form->group->create)->get(); + $this->gitlab->createGroup($gitlabID, $gitlabGroup); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('browseGroup', "gitlabID=$gitlabID"))); @@ -400,7 +401,8 @@ class gitlab extends control if($_POST) { - $this->gitlab->editGroup($gitlabID); + $gitlabGroup = form::data($this->config->gitlab->form->group->edit)->get(); + $this->gitlab->editGroup($gitlabID, $gitlabGroup); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('browseGroup', "gitlabID=$gitlabID"))); @@ -437,12 +439,12 @@ class gitlab extends control if(!$response or substr($response->message, 0, 2) == '20') { $this->loadModel('action')->create('gitlabgroup', $groupID, 'deleted', '', $group->name); - return print(js::reload('parent')); + return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'reload' => true)); } $errorKey = array_search($response->message, $this->lang->gitlab->apiError); $result = $errorKey === false ? $response->message : zget($this->lang->gitlab->errorLang, $errorKey); - return print(js::alert($result)); + return $this->send(array('result' => 'fail', 'message' => $result)); } /** @@ -738,7 +740,8 @@ class gitlab extends control { if($_POST) { - $this->gitlab->createProject($gitlabID); + $gitlabProject = form::data($this->config->gitlab->form->project->create)->get(); + $this->gitlab->createProject($gitlabID, $gitlabProject); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('browseProject', "gitlabID=$gitlabID"))); @@ -781,7 +784,8 @@ class gitlab extends control { if($_POST) { - $this->gitlab->editProject($gitlabID); + $gitlabProject = form::data($this->config->gitlab->form->project->edit)->get(); + $this->gitlab->editProject($gitlabID, $gitlabProject); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('browseProject', "gitlabID=$gitlabID"))); @@ -889,7 +893,8 @@ class gitlab extends control { if($_POST) { - $this->gitlab->createBranch($gitlabID, $projectID); + $gitlabBranch = form::data($this->config->gitlab->form->branch->create)->get(); + $this->gitlab->createBranch($gitlabID, $projectID, $gitlabBranch); if(dao::isError()) return $this->sendError(dao::getError()); $locate = $this->session->gitlabBranchList ? $this->session->gitlabBranchList : inlink('browseBranch', "gitlibID=$gitlabID&projectID=$projectID"); @@ -1277,7 +1282,8 @@ class gitlab extends control { if($_POST) { - $this->gitlab->createTag($gitlabID, $projectID); + $gitlabTag = form::data($this->config->gitlab->form->tag->create)->get(); + $this->gitlab->createTag($gitlabID, $projectID, $gitlabTag); if(dao::isError()) return $this->sendError(dao::getError()); return $this->sendSuccess(array('load' => inlink('browseTag', "gitlabID=$gitlabID&projectID=$projectID"))); diff --git a/module/gitlab/model.php b/module/gitlab/model.php index 5c8f06566b..0046b3fbea 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -969,9 +969,9 @@ class gitlabModel extends model * @param int $gitlabID * @param object $group * @access public - * @return object|array|null + * @return object|array|null|false */ - public function apiUpdateGroup(int $gitlabID, object $group): object|array|null + public function apiUpdateGroup(int $gitlabID, object $group): object|array|null|false { if(empty($group->id)) return false; @@ -2399,12 +2399,12 @@ class gitlabModel extends model * Create gitlab project. * * @param int $gitlabID + * @param object $project * @access public * @return bool */ - public function createProject($gitlabID): bool + public function createProject(int $gitlabID, object $project): bool { - $project = fixer::input('post')->get(); if(empty($project->name)) dao::$errors['name'][] = $this->lang->gitlab->project->emptyNameError; if(empty($project->path)) dao::$errors['path'][] = $this->lang->gitlab->project->emptyPathError; if(dao::isError()) return false; @@ -2428,9 +2428,8 @@ class gitlabModel extends model * @access public * @return bool */ - public function editProject(int $gitlabID): bool + public function editProject(int $gitlabID, object $project): bool { - $project = fixer::input('post')->get(); if(empty($project->name)) dao::$errors['name'][] = $this->lang->gitlab->project->emptyNameError; if(dao::isError()) return false; @@ -2560,13 +2559,12 @@ class gitlabModel extends model * Create a gitlab group. * * @param int $gitlabID + * @param object $group * @access public * @return bool */ - public function createGroup(int $gitlabID): bool + public function createGroup(int $gitlabID, object $group): bool { - $group = fixer::input('post')->setDefault('request_access_enabled,lfs_enabled', 0)->get(); - if(empty($group->name)) dao::$errors['name'][] = $this->lang->gitlab->group->name . $this->lang->gitlab->group->emptyError; if(empty($group->path)) dao::$errors['path'][] = $this->lang->gitlab->group->path . $this->lang->gitlab->group->emptyError; if(dao::isError()) return false; @@ -2587,13 +2585,12 @@ class gitlabModel extends model * Edit a gitlab group. * * @param int $gitlabID + * @param object $group * @access public * @return bool */ - public function editGroup(int $gitlabID): bool + public function editGroup(int $gitlabID, object $group): bool { - $group = fixer::input('post')->remove('path')->setDefault('request_access_enabled,lfs_enabled', 0)->get(); - if(empty($group->name)) dao::$errors['name'][] = $this->lang->gitlab->group->name . $this->lang->gitlab->group->emptyError; if(dao::isError()) return false; @@ -2614,13 +2611,12 @@ class gitlabModel extends model * * @param int $gitlabID * @param int $projectID + * @param object $branch * @access public * @return bool */ - public function createBranch(int $gitlabID, int $projectID): bool + public function createBranch(int $gitlabID, int $projectID, object $branch): bool { - $branch = fixer::input('post')->get(); - if(empty($branch->branch)) dao::$errors['branch'][] = $this->lang->gitlab->branch->name . $this->lang->gitlab->emptyError; if(empty($branch->ref)) dao::$errors['ref'][] = $this->lang->gitlab->branch->from . $this->lang->gitlab->emptyError; if(dao::isError()) return false; @@ -2932,16 +2928,16 @@ class gitlabModel extends model * 创建一个gitlab标签。 * Create gitlab tag. * - * @param int $gitlabID - * @param int $projectID + * @param int $gitlabID + * @param int $projectID + * @param object $tag * @access public * @return bool */ - public function createTag(int $gitlabID, int $projectID): bool + public function createTag(int $gitlabID, int $projectID, object $tag): bool { if(empty($gitlabID)) return false; - $tag = fixer::input('post')->get(); if(empty($tag->tag_name)) dao::$errors['tag_name'][] = $this->lang->gitlab->tag->emptyNameError; if(empty($tag->ref)) dao::$errors['ref'][] = $this->lang->gitlab->tag->emptyRefError; if(dao::isError()) return false; diff --git a/module/gitlab/ui/editgroup.html.php b/module/gitlab/ui/editgroup.html.php index eaba3b2bfc..a26dea2525 100644 --- a/module/gitlab/ui/editgroup.html.php +++ b/module/gitlab/ui/editgroup.html.php @@ -18,6 +18,12 @@ formPanel ( set::title($lang->gitlab->group->edit), set::labelWidth($app->clientLang == 'zh-cn' ? '8em' : '13em'), + input + ( + set::type('hidden'), + set::name('id'), + set::value($group->id) + ), formGroup ( set::name('name'), diff --git a/module/space/model.php b/module/space/model.php index ea5616fa51..a9675939cc 100644 --- a/module/space/model.php +++ b/module/space/model.php @@ -148,9 +148,9 @@ class spaceModel extends model * * @param object $instance * @access public - * @return object + * @return object|false */ - public function getExternalAppByApp(object $instance): ?object + public function getExternalAppByApp(object $instance): object|false { return $this->dao->select('*')->from(TABLE_PIPELINE) ->where('deleted')->eq('0')