summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-09-28 17:19:20 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-09-28 17:19:20 +0200
commit037defc7def3e2d0f2de4930516149d7567362fc (patch)
tree241fcb845c9ba67626f65af358fba4a6f38944d5
parentb65641959165e8d7daf47f921b058a647189a060 (diff)
downloadgitlab-ce-move-variables-page.tar.gz
Move CI variables page to project settingsmove-variables-page
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--CHANGELOG1
-rw-r--r--app/controllers/ci/variables_controller.rb33
-rw-r--r--app/controllers/projects/application_controller.rb4
-rw-r--r--app/controllers/projects/runners_controller.rb4
-rw-r--r--app/controllers/projects/variables_controller.rb25
-rw-r--r--app/views/layouts/ci/_nav_project.html.haml5
-rw-r--r--app/views/layouts/nav/_project_settings.html.haml5
-rw-r--r--app/views/projects/variables/show.html.haml (renamed from app/views/ci/variables/show.html.haml)10
-rw-r--r--config/routes.rb2
-rw-r--r--spec/features/variables_spec.rb (renamed from spec/features/ci/variables_spec.rb)15
10 files changed, 47 insertions, 57 deletions
diff --git a/CHANGELOG b/CHANGELOG
index a0f1fa12082..7e31c2f57b6 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -16,6 +16,7 @@ v 8.1.0 (unreleased)
- Add notes and SSL verification entries to hook APIs (Ben Boeckel)
- Fix grammar in admin area "labels" .nothing-here-block when no labels exist.
- Move CI runners page to project settings area
+ - Move CI variables page to project settings area
v 8.0.3 (unreleased)
diff --git a/app/controllers/ci/variables_controller.rb b/app/controllers/ci/variables_controller.rb
deleted file mode 100644
index 9c6c775fde8..00000000000
--- a/app/controllers/ci/variables_controller.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-module Ci
- class VariablesController < Ci::ApplicationController
- before_action :authenticate_user!
- before_action :project
- before_action :authorize_access_project!
- before_action :authorize_manage_project!
-
- layout 'ci/project'
-
- def show
- end
-
- def update
- if project.update_attributes(project_params)
- Ci::EventService.new.change_project_settings(current_user, project)
-
- redirect_to ci_project_variables_path(project), notice: 'Variables were successfully updated.'
- else
- render action: 'show'
- end
- end
-
- private
-
- def project
- @project ||= Ci::Project.find(params[:project_id])
- end
-
- def project_params
- params.require(:project).permit({ variables_attributes: [:id, :key, :value, :_destroy] })
- end
- end
-end
diff --git a/app/controllers/projects/application_controller.rb b/app/controllers/projects/application_controller.rb
index 48c922f450c..56a63ce9758 100644
--- a/app/controllers/projects/application_controller.rb
+++ b/app/controllers/projects/application_controller.rb
@@ -31,4 +31,8 @@ class Projects::ApplicationController < ApplicationController
def ci_enabled
return render_404 unless @project.gitlab_ci?
end
+
+ def ci_project
+ @ci_project ||= @project.gitlab_ci_project
+ end
end
diff --git a/app/controllers/projects/runners_controller.rb b/app/controllers/projects/runners_controller.rb
index d59884a1dd7..6cb6e3ef6d4 100644
--- a/app/controllers/projects/runners_controller.rb
+++ b/app/controllers/projects/runners_controller.rb
@@ -55,10 +55,6 @@ class Projects::RunnersController < Projects::ApplicationController
protected
- def ci_project
- @ci_project = @project.gitlab_ci_project
- end
-
def set_runner
@runner ||= @ci_project.runners.find(params[:id])
end
diff --git a/app/controllers/projects/variables_controller.rb b/app/controllers/projects/variables_controller.rb
new file mode 100644
index 00000000000..d6561a45a70
--- /dev/null
+++ b/app/controllers/projects/variables_controller.rb
@@ -0,0 +1,25 @@
+class Projects::VariablesController < Projects::ApplicationController
+ before_action :ci_project
+ before_action :authorize_admin_project!
+
+ layout 'project_settings'
+
+ def show
+ end
+
+ def update
+ if ci_project.update_attributes(project_params)
+ Ci::EventService.new.change_project_settings(current_user, ci_project)
+
+ redirect_to namespace_project_variables_path(project.namespace, project), notice: 'Variables were successfully updated.'
+ else
+ render action: 'show'
+ end
+ end
+
+ private
+
+ def project_params
+ params.require(:project).permit({ variables_attributes: [:id, :key, :value, :_destroy] })
+ end
+end
diff --git a/app/views/layouts/ci/_nav_project.html.haml b/app/views/layouts/ci/_nav_project.html.haml
index 9ebe7eabd8e..4b0dc4fc2f5 100644
--- a/app/views/layouts/ci/_nav_project.html.haml
+++ b/app/views/layouts/ci/_nav_project.html.haml
@@ -11,11 +11,6 @@
%span
Commits
%span.count= @project.commits.count
- = nav_link path: 'variables#show' do
- = link_to ci_project_variables_path(@project) do
- = icon('code fw')
- %span
- Variables
= nav_link path: 'web_hooks#index' do
= link_to ci_project_web_hooks_path(@project) do
= icon('link fw')
diff --git a/app/views/layouts/nav/_project_settings.html.haml b/app/views/layouts/nav/_project_settings.html.haml
index a85dd71126c..c8975fb8492 100644
--- a/app/views/layouts/nav/_project_settings.html.haml
+++ b/app/views/layouts/nav/_project_settings.html.haml
@@ -40,3 +40,8 @@
= icon('cog fw')
%span
Runners
+ = nav_link(controller: :variables) do
+ = link_to namespace_project_variables_path(@project.namespace, @project) do
+ = icon('code fw')
+ %span
+ Variables
diff --git a/app/views/ci/variables/show.html.haml b/app/views/projects/variables/show.html.haml
index ebf68341e08..29416a94ff6 100644
--- a/app/views/ci/variables/show.html.haml
+++ b/app/views/projects/variables/show.html.haml
@@ -1,21 +1,21 @@
%h3.page-title
Secret Variables
-%p.light
+%p.light
These variables will be set to environment by the runner and will be hidden in the build log.
%br
- So you can use them for passwords, secret keys or whatever you want.
+ So you can use them for passwords, secret keys or whatever you want.
%hr
-= nested_form_for @project, url: url_for(controller: 'ci/variables', action: 'update'), html: { class: 'form-horizontal' } do |f|
+= nested_form_for @ci_project, url: url_for(controller: 'projects/variables', action: 'update'), html: { class: 'form-horizontal' } do |f|
- if @project.errors.any?
#error_explanation
- %p.lead= "#{pluralize(@project.errors.count, "error")} prohibited this project from being saved:"
+ %p.lead= "#{pluralize(@ci_project.errors.count, "error")} prohibited this project from being saved:"
.alert.alert-error
%ul
- - @project.errors.full_messages.each do |msg|
+ - @ci_project.errors.full_messages.each do |msg|
%li= msg
= f.fields_for :variables do |variable_form|
diff --git a/config/routes.rb b/config/routes.rb
index 201add02335..776b606bf7d 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -58,7 +58,6 @@ Gitlab::Application.routes.draw do
resources :runner_projects, only: [:create, :destroy]
resources :events, only: [:index]
- resource :variables, only: [:show, :update]
end
resource :user_sessions do
@@ -591,6 +590,7 @@ Gitlab::Application.routes.draw do
resources :branches, only: [:index, :new, :create, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
resources :tags, only: [:index, :new, :create, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
resources :protected_branches, only: [:index, :create, :update, :destroy], constraints: { id: Gitlab::Regex.git_reference_regex }
+ resource :variables, only: [:show, :update]
resources :hooks, only: [:index, :create, :destroy], constraints: { id: /\d+/ } do
member do
diff --git a/spec/features/ci/variables_spec.rb b/spec/features/variables_spec.rb
index e387b3be555..adb602f3edd 100644
--- a/spec/features/ci/variables_spec.rb
+++ b/spec/features/variables_spec.rb
@@ -1,28 +1,25 @@
require 'spec_helper'
describe "Variables" do
- let(:user) { create(:user) }
-
- before do
- login_as(user)
- end
+ let(:user) { create(:user) }
+ before { login_as(user) }
describe "specific runners" do
before do
@project = FactoryGirl.create :ci_project
- @project.gl_project.team << [user, :master]
+ @gl_project = @project.gl_project
+ @gl_project.team << [user, :master]
end
it "creates variable", js: true do
- visit ci_project_variables_path(@project)
+ visit namespace_project_variables_path(@gl_project.namespace, @gl_project)
click_on "Add a variable"
fill_in "Key", with: "SECRET_KEY"
fill_in "Value", with: "SECRET_VALUE"
click_on "Save changes"
-
+
expect(page).to have_content("Variables were successfully updated.")
expect(@project.variables.count).to eq(1)
end
-
end
end