diff options
Diffstat (limited to 'app/controllers/services_controller.rb')
-rw-r--r-- | app/controllers/services_controller.rb | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/app/controllers/services_controller.rb b/app/controllers/services_controller.rb index 25a06501e07..fcfc4c84a91 100644 --- a/app/controllers/services_controller.rb +++ b/app/controllers/services_controller.rb @@ -1,25 +1,21 @@ class ServicesController < ProjectResourceController # Authorize before_filter :authorize_admin_project! + before_filter :service, only: [:edit, :update, :test] respond_to :html def index - @gitlab_ci_service = @project.gitlab_ci_service + @project.build_missing_services + @services = @project.services.reload end def edit - @service = @project.gitlab_ci_service - - # Create if missing - @service = @project.create_gitlab_ci_service unless @service end def update - @service = @project.gitlab_ci_service - if @service.update_attributes(params[:service]) - redirect_to edit_project_service_path(@project, :gitlab_ci) + redirect_to edit_project_service_path(@project, @service.to_param) else render 'edit' end @@ -28,9 +24,14 @@ class ServicesController < ProjectResourceController def test data = GitPushService.new.sample_data(project, current_user) - @service = project.gitlab_ci_service @service.execute(data) redirect_to :back end + + private + + def service + @service ||= @project.services.find { |service| service.to_param == params[:id] } + end end |