From 71777a4a184945d6b58170af55d9fd9fef821ac9 Mon Sep 17 00:00:00 2001 From: Lin Jen-Shin Date: Tue, 16 May 2017 19:41:15 +0800 Subject: Rename BuildsController to JobsController Rename other URL generators admin_builds_path -> admin_jobs_path Fix tests and more renaming Fix more tests Also change build_id to job_id in the controller --- app/controllers/projects/builds_controller.rb | 131 -------------------------- 1 file changed, 131 deletions(-) delete mode 100644 app/controllers/projects/builds_controller.rb (limited to 'app/controllers/projects/builds_controller.rb') diff --git a/app/controllers/projects/builds_controller.rb b/app/controllers/projects/builds_controller.rb deleted file mode 100644 index dfaaea71b9c..00000000000 --- a/app/controllers/projects/builds_controller.rb +++ /dev/null @@ -1,131 +0,0 @@ -class Projects::BuildsController < Projects::ApplicationController - before_action :build, except: [:index, :cancel_all] - - before_action :authorize_read_build!, - only: [:index, :show, :status, :raw, :trace] - before_action :authorize_update_build!, - except: [:index, :show, :status, :raw, :trace, :cancel_all] - - layout 'project' - - def index - @scope = params[:scope] - @all_builds = project.builds.relevant - @builds = @all_builds.order('created_at DESC') - @builds = - case @scope - when 'pending' - @builds.pending.reverse_order - when 'running' - @builds.running.reverse_order - when 'finished' - @builds.finished - else - @builds - end - @builds = @builds.includes([ - { pipeline: :project }, - :project, - :tags - ]) - @builds = @builds.page(params[:page]).per(30) - end - - def cancel_all - return access_denied! unless can?(current_user, :update_build, project) - - @project.builds.running_or_pending.each do |build| - build.cancel if can?(current_user, :update_build, build) - end - - redirect_to namespace_project_builds_path(project.namespace, project) - end - - def show - @builds = @project.pipelines.find_by_sha(@build.sha).builds.order('id DESC') - @builds = @builds.where("id not in (?)", @build.id) - @pipeline = @build.pipeline - end - - def trace - build.trace.read do |stream| - respond_to do |format| - format.json do - result = { - id: @build.id, status: @build.status, complete: @build.complete? - } - - if stream.valid? - stream.limit - state = params[:state].presence - trace = stream.html_with_state(state) - result.merge!(trace.to_h) - end - - render json: result - end - end - end - end - - def retry - return respond_422 unless @build.retryable? - - build = Ci::Build.retry(@build, current_user) - redirect_to build_path(build) - end - - def play - return respond_422 unless @build.playable? - - build = @build.play(current_user) - redirect_to build_path(build) - end - - def cancel - return respond_422 unless @build.cancelable? - - @build.cancel - redirect_to build_path(@build) - end - - def status - render json: BuildSerializer - .new(project: @project, current_user: @current_user) - .represent_status(@build) - end - - def erase - if @build.erase(erased_by: current_user) - redirect_to namespace_project_build_path(project.namespace, project, @build), - notice: "Build has been successfully erased!" - else - respond_422 - end - end - - def raw - build.trace.read do |stream| - if stream.file? - send_file stream.path, type: 'text/plain; charset=utf-8', disposition: 'inline' - else - render_404 - end - end - end - - private - - def authorize_update_build! - return access_denied! unless can?(current_user, :update_build, build) - end - - def build - @build ||= project.builds.find(params[:id]) - .present(current_user: current_user) - end - - def build_path(build) - namespace_project_build_path(build.project.namespace, build.project, build) - end -end -- cgit v1.2.1 From 43981250c426595c9b3c03a5153ae05d3de2a8e2 Mon Sep 17 00:00:00 2001 From: Lin Jen-Shin Date: Tue, 23 May 2017 21:20:59 +0800 Subject: Use controllers to redirect --- app/controllers/projects/builds_controller.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 app/controllers/projects/builds_controller.rb (limited to 'app/controllers/projects/builds_controller.rb') diff --git a/app/controllers/projects/builds_controller.rb b/app/controllers/projects/builds_controller.rb new file mode 100644 index 00000000000..013797a7313 --- /dev/null +++ b/app/controllers/projects/builds_controller.rb @@ -0,0 +1,27 @@ +class Projects::BuildsController < Projects::ApplicationController + def index + redirect_to namespace_project_jobs_path(project.namespace, project) + end + + def show + redirect_to namespace_project_job_path(project.namespace, project, job) + end + + def trace + redirect_to trace_namespace_project_job_path(project.namespace, project, job, format: params[:format]) + end + + def status + redirect_to status_namespace_project_job_path(project.namespace, project, job, format: params[:format]) + end + + def raw + redirect_to raw_namespace_project_job_path(project.namespace, project, job) + end + + private + + def job + @job ||= project.builds.find(params[:id]) + end +end -- cgit v1.2.1 From 524c947eafbc4b710ac862c4e90801b2777d49dc Mon Sep 17 00:00:00 2001 From: Lin Jen-Shin Date: Tue, 23 May 2017 23:42:26 +0800 Subject: Add checks before redirect, remove status/trace compatible urls, which were for javascripts --- app/controllers/projects/builds_controller.rb | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'app/controllers/projects/builds_controller.rb') diff --git a/app/controllers/projects/builds_controller.rb b/app/controllers/projects/builds_controller.rb index 013797a7313..1334a231788 100644 --- a/app/controllers/projects/builds_controller.rb +++ b/app/controllers/projects/builds_controller.rb @@ -1,4 +1,6 @@ class Projects::BuildsController < Projects::ApplicationController + before_action :authorize_read_build! + def index redirect_to namespace_project_jobs_path(project.namespace, project) end @@ -7,14 +9,6 @@ class Projects::BuildsController < Projects::ApplicationController redirect_to namespace_project_job_path(project.namespace, project, job) end - def trace - redirect_to trace_namespace_project_job_path(project.namespace, project, job, format: params[:format]) - end - - def status - redirect_to status_namespace_project_job_path(project.namespace, project, job, format: params[:format]) - end - def raw redirect_to raw_namespace_project_job_path(project.namespace, project, job) end -- cgit v1.2.1