From 4fa21b229353ad8aa20144613903cea3399cc6dc Mon Sep 17 00:00:00 2001 From: Jacob Michalskie Date: Thu, 7 Mar 2024 13:48:49 +0100 Subject: [PATCH] Use resources instead of resource for file controller actions --- .../controllers/webui/packages/files_controller.rb | 13 ++++++++++--- .../app/views/webui/package/_files_view.html.haml | 2 +- src/api/app/views/webui/package/view_file.html.haml | 2 +- src/api/config/routes/webui_routes.rb | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/api/app/controllers/webui/packages/files_controller.rb b/src/api/app/controllers/webui/packages/files_controller.rb index df5522d8ed8..0f260efd619 100644 --- a/src/api/app/controllers/webui/packages/files_controller.rb +++ b/src/api/app/controllers/webui/packages/files_controller.rb @@ -3,6 +3,7 @@ module Packages class FilesController < Packages::MainController before_action :set_project before_action :set_package + before_action :set_filename, only: :update after_action :verify_authorized def new @@ -55,7 +56,7 @@ def update errors = [] begin - @package.save_file(file: params[:file], filename: params[:filename], + @package.save_file(file: params[:file], filename: @filename, comment: params[:comment]) rescue APIError, StandardError => e errors << e.message @@ -64,15 +65,21 @@ def update end if errors.blank? - flash.now[:success] = "'#{params[:filename]}' has been successfully saved." + flash.now[:success] = "'#{@filename}' has been successfully saved." else - flash.now[:error] = "Error while adding '#{params[:filename]}': #{errors.compact.join("\n")}." + flash.now[:error] = "Error while adding '#{@filename}': #{errors.compact.join("\n")}." status = 400 end status ||= 200 render layout: false, status: status, partial: 'layouts/webui/flash', object: flash end + + private + + def set_filename + @filename = params[:filename] + end end end end diff --git a/src/api/app/views/webui/package/_files_view.html.haml b/src/api/app/views/webui/package/_files_view.html.haml index cc64bf7b0ca..ef5cd98d223 100644 --- a/src/api/app/views/webui/package/_files_view.html.haml +++ b/src/api/app/views/webui/package/_files_view.html.haml @@ -26,7 +26,7 @@ %i.fas.fa-hard-drive.text-primary Add local files .nav-item - = link_to(new_project_package_files_path(project, package), class: 'nav-link') do + = link_to(new_project_package_file_path(project, package), class: 'nav-link') do %i.fas.fa-plus-circle.text-primary Add an empty file or service = render DeleteConfirmationDialogComponent.new(modal_id: 'delete-file-modal', diff --git a/src/api/app/views/webui/package/view_file.html.haml b/src/api/app/views/webui/package/view_file.html.haml index 1747f97b6e8..615653460ed 100644 --- a/src/api/app/views/webui/package/view_file.html.haml +++ b/src/api/app/views/webui/package/view_file.html.haml @@ -24,7 +24,7 @@ -# TODO: Provide a comments field through a callback = render(partial: 'webui/shared/editor', locals: { text: @file, mode: guess_code_class(@filename), - save: { url: project_package_files_path(@project, @package), method: :put, + save: { url: project_package_file_path(@project, @package, @filename), method: :put, data: { project: @project.name, package: @package.name, submit: 'file', comment: '', filename: @filename, rev: @rev } } }) - else = render(partial: 'webui/shared/editor', locals: { text: @file, mode: guess_code_class(@filename), style: { read_only: true } }) diff --git a/src/api/config/routes/webui_routes.rb b/src/api/config/routes/webui_routes.rb index 87d6d2c0b08..a53343c9a68 100644 --- a/src/api/config/routes/webui_routes.rb +++ b/src/api/config/routes/webui_routes.rb @@ -283,7 +283,7 @@ resources :deletions, controller: 'webui/requests/deletions', only: %i[new create], constraints: cons resources :devel_project_changes, controller: 'webui/requests/devel_project_changes', only: %i[new create], constraints: cons resources :submissions, controller: 'webui/requests/submissions', only: %i[new create], constraints: cons - resource :files, controller: 'webui/packages/files', only: %i[new create update], constraints: cons + resources :files, controller: 'webui/packages/files', only: %i[new create update], constraints: cons, param: :filename, format: false put 'toggle_watched_item', controller: 'webui/watched_items', constraints: cons resource :badge, controller: 'webui/packages/badge', only: [:show], constraints: cons.merge(format: :svg) resources :repositories, only: [], param: :name do