From e9bcb88d9edb3949c3b0f98a0d9f7eb47193c5c6 Mon Sep 17 00:00:00 2001 From: dingguodong Date: Wed, 7 Jul 2021 17:09:04 +0800 Subject: [PATCH 1/3] * Rename saveSyncedIssue to saveIssueRelation, add func doc. --- module/gitlab/control.php | 2 +- module/gitlab/model.php | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/module/gitlab/control.php b/module/gitlab/control.php index 5dfc931326..0a1b249532 100644 --- a/module/gitlab/control.php +++ b/module/gitlab/control.php @@ -247,7 +247,7 @@ class gitlab extends control a($relations);exit; $issue = $this->gitlab->taskToIssue($gitlabID, $projectID, $task); $issue = $this->gitlab->apiCreateIssue($gitlabID, $projectID, $issue); - $this->gitlab->saveSyncedIssue('task', $task, $gitlabID, $issue); + $this->gitlab->saveIssueRelation('task', $task, $gitlabID, $issue); exit; } diff --git a/module/gitlab/model.php b/module/gitlab/model.php index 85dce8be52..dc541da4eb 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -546,6 +546,15 @@ class gitlabModel extends model return json_decode(commonModel::http($url)); } + /** + * Get gitlab issues by api. + * + * @param int $gitlabID + * @param int $projectID + * @param string $options + * @access public + * @return object + */ public function apiGetIssues($gitlabID, $projectID, $options = null) { // TODO(dingguodong) not pagination yet. @@ -588,7 +597,7 @@ class gitlabModel extends model $response = json_decode(commonModel::http($url, $issue)); if(!$response) return false; - return $this->saveSyncedIssue($objectType, $object, $gitlabID, $response); + return $this->saveIssueRelation($objectType, $object, $gitlabID, $response); } /** @@ -901,7 +910,7 @@ class gitlabModel extends model * @access public * @return void */ - public function saveSyncedIssue($objectType, $object, $gitlabID, $issue) + public function saveIssueRelation($objectType, $object, $gitlabID, $issue) { if(empty($issue->iid) or empty($issue->project_id)) return false; @@ -939,7 +948,7 @@ class gitlabModel extends model $apiRoot = $this->getApiRoot($gitlabID); $url = sprintf($apiRoot, "/projects/{$projectID}/issues/{$issue->iid}"); commonModel::http($url, $data, $options = array(CURLOPT_CUSTOMREQUEST => 'PUT')); - $this->saveSyncedIssue($objectType, $object, $gitlabID, $issue); + $this->saveIssueRelation($objectType, $object, $gitlabID, $issue); } /** From 47e3c473a1d6c084e3cf146947499954b3eb963e Mon Sep 17 00:00:00 2001 From: dingguodong Date: Wed, 7 Jul 2021 17:16:06 +0800 Subject: [PATCH 2/3] * Put strings in long line to config file. --- module/task/config.php | 1 + module/task/model.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/module/task/config.php b/module/task/config.php index 5db5eb88ae..ab950c3b2e 100644 --- a/module/task/config.php +++ b/module/task/config.php @@ -26,6 +26,7 @@ $config->task->editor->activate = array('id' => 'comment', 'tools' => 'simpleToo $config->task->editor->cancel = array('id' => 'comment', 'tools' => 'simpleTools'); $config->task->editor->pause = array('id' => 'comment', 'tools' => 'simpleTools'); +$config->task->removeFields = 'objectTypeList,productList,executionList,gitlabID,gitlabProjectID,after,files,labels,assignedTo,uid,storyEstimate,storyDesc,storyPri,team,teamEstimate,teamMember,multiple,teams,contactListMenu,selectTestStory,testStory,testPri,testEstStarted,testDeadline,testAssignedTo,testEstimate,sync'; $config->task->exportFields = ' id, execution, module, story, name, desc, diff --git a/module/task/model.php b/module/task/model.php index 62890a2386..770e973774 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -489,7 +489,7 @@ class taskModel extends model ->cleanINT('execution,story,module') ->stripTags($this->config->task->editor->create['id'], $this->config->allowedTags) ->join('mailto', ',') - ->remove('objectTypeList,productList,executionList,gitlabID,gitlabProjectID,after,files,labels,assignedTo,uid,storyEstimate,storyDesc,storyPri,team,teamEstimate,teamMember,multiple,teams,contactListMenu,selectTestStory,testStory,testPri,testEstStarted,testDeadline,testAssignedTo,testEstimate,sync') + ->remove($this->config->task->removeFields) ->add('version', 1) ->get(); From b42bc4afc977e6e4dbd99b61ac60f3dfed640392 Mon Sep 17 00:00:00 2001 From: dingguodong Date: Wed, 7 Jul 2021 17:29:53 +0800 Subject: [PATCH 3/3] * Optimize url parameter. --- config/filter.php | 1 + module/gitlab/control.php | 8 ++++---- module/repo/view/maintain.html.php | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/config/filter.php b/config/filter.php index 7460c2a0da..42bd625242 100644 --- a/config/filter.php +++ b/config/filter.php @@ -321,4 +321,5 @@ $filter->gitlab->importissue->get['gitlab'] = 'int'; $filter->gitlab->importissue->get['product'] = 'int'; $filter->gitlab->importissue->get['product'] = 'string'; $filter->gitlab->importissue->get['project'] = 'int'; +$filter->gitlab->importissue->get['repo'] = 'int'; diff --git a/module/gitlab/control.php b/module/gitlab/control.php index 0a1b249532..0fa6a04612 100644 --- a/module/gitlab/control.php +++ b/module/gitlab/control.php @@ -259,10 +259,10 @@ class gitlab extends control */ public function importIssue() { - $productIDList = explode(',', $this->get->product); - $gitlabID = $this->get->gitlab; - $projectID = $this->get->project; - + $repo = $this->loadModel('repo')->getRepoByID($this->get->repo); + $productIDList = explode(',', $repo->product); + $gitlabID = $repo->gitlab; + $projectID = $repo->project; if($_POST) { diff --git a/module/repo/view/maintain.html.php b/module/repo/view/maintain.html.php index d59a9a4186..4f754db09f 100644 --- a/module/repo/view/maintain.html.php +++ b/module/repo/view/maintain.html.php @@ -49,7 +49,7 @@ id&objectID=$objectID", '', 'list', 'edit'); - common::printIcon('gitlab', 'importissue', "product={$repo->product}&gitlab={$repo->gitlab}&project={$repo->project}", '', 'list', 'link'); + common::printIcon('gitlab', 'importissue', "repo={$repo->id}", '', 'list', 'link'); if(common::hasPriv('repo', 'delete')) echo html::a($this->createLink('repo', 'delete', "repoID=$repo->id&objectID=$objectID"), '', 'hiddenwin', "title='{$lang->repo->delete}' class='btn'"); ?>