diff --git a/module/gitlab/control.php b/module/gitlab/control.php index 572b99662b..e44af26243 100644 --- a/module/gitlab/control.php +++ b/module/gitlab/control.php @@ -126,6 +126,15 @@ class gitlab extends control $this->display(); } + public function bindProduct($gitlabID) + { + $this->view->projectPairs = $this->gitlab->getProjectPairs($gitlabID); + $this->view->title = $this->lang->gitlab->bindProduct; + $this->display(); + + } + + /** * Edit a gitlab. * diff --git a/module/gitlab/lang/zh-cn.php b/module/gitlab/lang/zh-cn.php index bd77ff6bc6..c66aee04a6 100644 --- a/module/gitlab/lang/zh-cn.php +++ b/module/gitlab/lang/zh-cn.php @@ -5,18 +5,22 @@ $lang->gitlab->browse = '浏览gitlab'; $lang->gitlab->create = '添加gitlab'; $lang->gitlab->edit = '编辑gitlab'; $lang->gitlab->bindUser = '绑定用户'; +$lang->gitlab->bindProduct = '关联产品'; $lang->gitlab->delete = '删除'; $lang->gitlab->confirmDelete = '确认删除该gitlab吗?'; $lang->gitlab->gitlabAccount = 'gitlab用户'; $lang->gitlab->zentaoAccount = '禅道用户'; -$lang->gitlab->browseAction = 'gitlab列表'; -$lang->gitlab->deleteAction = '删除gitlab'; +$lang->gitlab->browseAction = 'gitlab列表'; +$lang->gitlab->deleteAction = '删除gitlab'; +$lang->gitlab->gitlabProject = 'gitlab项目'; +$lang->gitlab->zentaoProduct = '禅道产品'; -$lang->gitlab->id = 'ID'; -$lang->gitlab->name = '名称'; -$lang->gitlab->url = '服务地址'; -$lang->gitlab->token = 'Token'; +$lang->gitlab->id = 'ID'; +$lang->gitlab->name = '名称'; +$lang->gitlab->url = '服务地址'; +$lang->gitlab->token = 'Token'; +$lang->gitlab->defaultProject = '默认项目'; $lang->gitlab->lblCreate = '添加gitlab服务器'; $lang->gitlab->desc = '描述'; diff --git a/module/gitlab/model.php b/module/gitlab/model.php index 20f6cbdafb..0488d45cc8 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -171,13 +171,13 @@ class gitlabModel extends model /** * Get projects of one gitlab. * - * @param int $id + * @param int $gitlabID * @access public * @return void */ - public function apiGetProjects($id) + public function apiGetProjects($gitlabID) { - $gitlab = $this->getByID($id); + $gitlab = $this->getByID($gitlabID); if(!$gitlab) return array(); $host = rtrim($gitlab->url, '/'); $host .= '/api/v4/projects'; @@ -192,6 +192,26 @@ class gitlabModel extends model return $allResults; } + public function getProjectPairs($gitlabID) + { + $projects = $this->apiGetProjects($gitlabID); + $projectPairs = array(); + foreach($projects as $project) + { + $projectPairs[$project->id] = $project->name_with_namespace; + } + + return $projectPairs; + } + + public function getProjectDisplayName($gitlabID, $projectID) + { + return array_key_exists($gitlabID, $projectID) ? $this->gitlab->getProjectPairs($gitlabID)[$projectID]: ""; + } + + + + /** * Get gitlab api base url with access_token * @@ -415,18 +435,17 @@ class gitlabModel extends model $apiPath = "/projects/{$projectID}/issues/"; $url = sprintf($apiRoot, $apiPath); $response = commonModel::http($url, $issue); - $labels = json_decode($response); - - return $labels; + return $response; } public function pushTask($task, $gitlabID,$projectID) { - + $task->label = $this->config->gitlab->taskLabel->name; } public function pushBug($bug, $gitlabID,$projectID) { + $bug->label = $this->config->gitlab->bugLabel->name; } } diff --git a/module/gitlab/view/browse.html.php b/module/gitlab/view/browse.html.php index ede244f79b..3ff20a928b 100644 --- a/module/gitlab/view/browse.html.php +++ b/module/gitlab/view/browse.html.php @@ -37,6 +37,7 @@