Commit 9f65c274efbebf569b9d5576a33eabebda31e7e9
1 parent
406a0c80
Exists in
master
and in
4 other branches
Fix ci service creation logic
Showing
3 changed files
with
11 additions
and
6 deletions
Show diff stats
app/controllers/services_controller.rb
@@ -19,7 +19,7 @@ class ServicesController < ProjectResourceController | @@ -19,7 +19,7 @@ class ServicesController < ProjectResourceController | ||
19 | @service = @project.gitlab_ci_service | 19 | @service = @project.gitlab_ci_service |
20 | 20 | ||
21 | if @service.update_attributes(params[:service]) | 21 | if @service.update_attributes(params[:service]) |
22 | - redirect_to :back | 22 | + redirect_to edit_project_service_path(@project, :gitlab_ci) |
23 | else | 23 | else |
24 | render 'edit' | 24 | render 'edit' |
25 | end | 25 | end |
app/models/gitlab_ci_service.rb
@@ -14,12 +14,16 @@ | @@ -14,12 +14,16 @@ | ||
14 | class GitlabCiService < Service | 14 | class GitlabCiService < Service |
15 | attr_accessible :project_url | 15 | attr_accessible :project_url |
16 | 16 | ||
17 | - validates :project_url, presence: true | ||
18 | - validates :token, presence: true | 17 | + validates :project_url, presence: true, if: :activated? |
18 | + validates :token, presence: true, if: :activated? | ||
19 | 19 | ||
20 | delegate :execute, to: :service_hook, prefix: nil | 20 | delegate :execute, to: :service_hook, prefix: nil |
21 | 21 | ||
22 | - after_save :compose_service_hook | 22 | + after_save :compose_service_hook, if: :activated? |
23 | + | ||
24 | + def activated? | ||
25 | + active | ||
26 | + end | ||
23 | 27 | ||
24 | def compose_service_hook | 28 | def compose_service_hook |
25 | hook = service_hook || build_service_hook | 29 | hook = service_hook || build_service_hook |
app/views/services/_gitlab_ci.html.haml
@@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
11 | %hr | 11 | %hr |
12 | 12 | ||
13 | 13 | ||
14 | -= form_for(@service, :as => :service, :url => project_service_path(@project, @service), :method => :put) do |f| | 14 | += form_for(@service, :as => :service, :url => project_service_path(@project, :gitlab_ci), :method => :put) do |f| |
15 | - if @service.errors.any? | 15 | - if @service.errors.any? |
16 | .alert-message.block-message.error | 16 | .alert-message.block-message.error |
17 | %ul | 17 | %ul |
@@ -39,4 +39,5 @@ | @@ -39,4 +39,5 @@ | ||
39 | .form-actions | 39 | .form-actions |
40 | = f.submit 'Save', class: 'btn save-btn' | 40 | = f.submit 'Save', class: 'btn save-btn' |
41 | | 41 | |
42 | - = link_to 'Test settings', test_project_service_path(@project), class: 'btn btn-small' | 42 | + - if @service.valid? && @service.active |
43 | + = link_to 'Test settings', test_project_service_path(@project), class: 'btn btn-small' |