summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Artur <felipefac@gmail.com>2016-11-04 18:21:05 -0200
committerFelipe Artur <felipefac@gmail.com>2016-11-04 18:21:05 -0200
commitd11ff65d0a74d82134e3729522f71e2a83879664 (patch)
tree4b3bcbcf9bf3f812c5115ad0e40447c1c7477c0c
parentb2bbac8850a18ccc65880dc5c300d0b6d39ab258 (diff)
downloadgitlab-ce-issue_23454.tar.gz
-rw-r--r--app/controllers/projects/services_controller.rb8
-rw-r--r--app/models/project_services/jira_service.rb10
-rw-r--r--app/views/projects/services/_form.html.haml2
-rw-r--r--changelogs/unreleased/issue_23454.yml4
-rw-r--r--config/routes/project.rb1
5 files changed, 24 insertions, 1 deletions
diff --git a/app/controllers/projects/services_controller.rb b/app/controllers/projects/services_controller.rb
index 97e6e9471e0..90e12499f42 100644
--- a/app/controllers/projects/services_controller.rb
+++ b/app/controllers/projects/services_controller.rb
@@ -3,7 +3,7 @@ class Projects::ServicesController < Projects::ApplicationController
# Authorize
before_action :authorize_admin_project!
- before_action :service, only: [:edit, :update, :test]
+ before_action :service, only: [:edit, :update, :test, :load_data]
respond_to :html
@@ -43,6 +43,12 @@ class Projects::ServicesController < Projects::ApplicationController
redirect_back_or_default(options: message)
end
+ def load_data
+ data = @service.load_data
+
+ render json: data
+ end
+
private
def service
diff --git a/app/models/project_services/jira_service.rb b/app/models/project_services/jira_service.rb
index 0a493b7a12b..746a7132bfe 100644
--- a/app/models/project_services/jira_service.rb
+++ b/app/models/project_services/jira_service.rb
@@ -132,6 +132,12 @@ class JiraService < IssueTrackerService
end
end
+ # Override on classes where you want
+ # load data directly from services
+ def load_data
+ {}
+ end
+
def create_cross_reference_note(mentioned, noteable, author)
issue_key = mentioned.id
project = self.project
@@ -173,6 +179,10 @@ class JiraService < IssueTrackerService
false
end
+ def load_data(*args)
+ client.Status.all.map(&:attrs)
+ end
+
private
def close_issue(entity, issue)
diff --git a/app/views/projects/services/_form.html.haml b/app/views/projects/services/_form.html.haml
index 752fbc21a11..bd8a6943a29 100644
--- a/app/views/projects/services/_form.html.haml
+++ b/app/views/projects/services/_form.html.haml
@@ -15,3 +15,5 @@
- disabled = @service.can_test? ? '':'disabled'
= link_to 'Test settings', test_namespace_project_service_path(@project.namespace, @project, @service), class: "btn #{disabled}", title: @service.disabled_title
= link_to "Cancel", namespace_project_services_path(@project.namespace, @project), class: "btn btn-cancel"
+ = link_to 'load settings', load_data_namespace_project_service_path(@project.namespace, @project, @service), class: "btn", title: @service.disabled_title
+
diff --git a/changelogs/unreleased/issue_23454.yml b/changelogs/unreleased/issue_23454.yml
new file mode 100644
index 00000000000..af83ad2d70b
--- /dev/null
+++ b/changelogs/unreleased/issue_23454.yml
@@ -0,0 +1,4 @@
+---
+title: JIRA service transitions selector
+merge_request:
+author:
diff --git a/config/routes/project.rb b/config/routes/project.rb
index 8142e231621..18ad74c7b73 100644
--- a/config/routes/project.rb
+++ b/config/routes/project.rb
@@ -232,6 +232,7 @@ resources :namespaces, path: '/', constraints: { id: /[a-zA-Z.0-9_\-]+/ }, only:
resources :services, constraints: { id: /[^\/]+/ }, only: [:index, :edit, :update] do
member do
get :test
+ get :load_data
end
end