diff --git a/app/controllers/my/project_repo_mappings_controller.rb b/app/controllers/my/project_repo_mappings_controller.rb index 25f4c9d..7dd430e 100644 --- a/app/controllers/my/project_repo_mappings_controller.rb +++ b/app/controllers/my/project_repo_mappings_controller.rb @@ -15,7 +15,7 @@ class My::ProjectRepoMappingsController < ApplicationController def update if @project_repo_mapping.new_record? - @project_repo_mapping.project_name = params[:project_name] + @project_repo_mapping.project_name = CGI.unescape(params[:project_name]) end if @project_repo_mapping.update(project_repo_mapping_params) @@ -40,8 +40,9 @@ class My::ProjectRepoMappingsController < ApplicationController end def set_project_repo_mapping + decoded_project_name = CGI.unescape(params[:project_name]) @project_repo_mapping = current_user.project_repo_mappings.find_or_initialize_by( - project_name: params[:project_name] + project_name: decoded_project_name ) end diff --git a/app/views/static_pages/_project_durations.html.erb b/app/views/static_pages/_project_durations.html.erb index e5b4005..7106e5a 100644 --- a/app/views/static_pages/_project_durations.html.erb +++ b/app/views/static_pages/_project_durations.html.erb @@ -35,7 +35,7 @@ <% end %> <% end %> <% if current_user.github_uid.present? && project[:project].present? %> - <%= link_to edit_my_project_repo_mapping_path(project_name: project[:project]), class: "p-2 rounded-lg bg-white/5 hover:bg-white/10 transition-colors duration-200", data: { turbo_frame: '_top'}, title: "Edit mapping" do %> + <%= link_to edit_my_project_repo_mapping_path(project_name: CGI.escape(project[:project])), class: "p-2 rounded-lg bg-white/5 hover:bg-white/10 transition-colors duration-200", data: { turbo_frame: '_top'}, title: "Edit mapping" do %> diff --git a/config/routes.rb b/config/routes.rb index 85297fe..e0d78c6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -107,7 +107,7 @@ Rails.application.routes.draw do post "my/settings/migrate_heartbeats", to: "users#migrate_heartbeats", as: :my_settings_migrate_heartbeats namespace :my do - resources :project_repo_mappings, param: :project_name, only: [ :edit, :update ], constraints: { project_name: /[^\/]+/ } + resources :project_repo_mappings, param: :project_name, only: [ :edit, :update ], constraints: { project_name: /.+/ } resource :mailing_address, only: [ :show, :edit ] get "mailroom", to: "mailroom#index" end