From 3c2bf02390dea063081dfa9c9c16ff4bc5adaba5 Mon Sep 17 00:00:00 2001 From: Nathan Wilson Date: Sun, 2 Feb 2025 08:42:08 -0500 Subject: [PATCH] Switch to modal for AliasController#new --- .../projects/aliases_controller.rb | 20 ++++++++++++++++--- app/helpers/projects_helper.rb | 19 ++++++++++++++---- .../controllers/projects/_aliases.html.erb | 6 ++---- .../projects/aliases/edit.html.erb | 2 +- .../controllers/projects/aliases/new.html.erb | 2 +- config/locales/en.txt | 1 + 6 files changed, 37 insertions(+), 13 deletions(-) diff --git a/app/controllers/projects/aliases_controller.rb b/app/controllers/projects/aliases_controller.rb index 3ca87fd266..b0cd28d922 100644 --- a/app/controllers/projects/aliases_controller.rb +++ b/app/controllers/projects/aliases_controller.rb @@ -24,9 +24,14 @@ def show def new project_id = params.require(:project_id) - new_params = params.permit(:user_id, :target_type) - new_params[:project_id] = project_id + new_params = params.permit(:project_id, :target_type, :target_id, + :user_id, :location_id) @project_alias = ProjectAlias.new(new_params) + + respond_to do |format| + format.turbo_stream { render_modal_project_alias_form } + format.html + end end def edit @@ -91,7 +96,7 @@ def destroy def render_modal_project_alias_form render( partial: "shared/modal_form", - locals: { title: "Modal Title", identifier: modal_identifier, + locals: { title: modal_title, identifier: modal_identifier, form: "projects/aliases/form", project_alias: @project_alias } ) and return end @@ -105,6 +110,15 @@ def modal_identifier end end + def modal_title + case action_name + when "new", "create" + :project_alias_new.l + when "edit", "update" + :project_alias_edit.l(name: @project_alias.name) + end + end + def project_alias_redirect(project_alias) redirect_to(project_alias_path( project_id: project_alias.project_id, diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 455e5396f0..a39d4eeae0 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -57,16 +57,27 @@ def edit_project_alias_modal(project_id, name, id) end end - def unique_class_id(id) - @@counter ||= 0 - @@counter += 1 - "tab_#{@@counter}_#{id}" + def new_project_alias_modal(project_id, target_id, target_type) + tag.span(id: "project_alias") do + modal_link_to( + "project_alias", :ADD.t, + add_query_param(new_project_alias_path(project_id:, + target_id:, + target_type:)), + class: unique_class_id(target_id) + " btn btn-default") + end end ######### private + def unique_class_id(id) + @@counter ||= 0 + @@counter += 1 + "link_#{@@counter}_#{id}" + end + def violation_latitude_header(project) return :form_violations_latitude_none.l unless project.location diff --git a/app/views/controllers/projects/_aliases.html.erb b/app/views/controllers/projects/_aliases.html.erb index 23035a5eae..b6500d27d6 100644 --- a/app/views/controllers/projects/_aliases.html.erb +++ b/app/views/controllers/projects/_aliases.html.erb @@ -1,10 +1,8 @@ <% project_id = project.id %> <% project.alias_data(user).each do |name, id| %> - <%= edit_project_alias_modal(project_id, name, id) %> - <%= link_to(name, edit_project_alias_path(project_id:, id:)) %>
+ <%= edit_project_alias_modal(project_id, name, id) %>
<% end %> <% if project.alias_data(user).any? %>
<% end %> -<%= link_to(:ADD.t, new_project_alias_path(project_id:, user_id: user.id, target_type: User), - class: "btn btn-default") %> +<%= new_project_alias_modal(project_id, user.id, User) %>
diff --git a/app/views/controllers/projects/aliases/edit.html.erb b/app/views/controllers/projects/aliases/edit.html.erb index 35cc7d696d..f430cb33d7 100644 --- a/app/views/controllers/projects/aliases/edit.html.erb +++ b/app/views/controllers/projects/aliases/edit.html.erb @@ -4,7 +4,7 @@ project_id = @project_alias.project_id %> -

Editing Project Alias

+

<%= :project_alias_edit.l(name: @project_alias.name) %>

<%= render('form', project_alias: @project_alias) %> diff --git a/app/views/controllers/projects/aliases/new.html.erb b/app/views/controllers/projects/aliases/new.html.erb index 946246e058..adef6d9738 100644 --- a/app/views/controllers/projects/aliases/new.html.erb +++ b/app/views/controllers/projects/aliases/new.html.erb @@ -4,7 +4,7 @@ project_id = @project_alias.project_id %> -

New Project Alias

+

<%= :project_alias_new.l %>

<%= render('form', project_alias: @project_alias) %> diff --git a/config/locales/en.txt b/config/locales/en.txt index 14d395b85f..5ea82b892c 100644 --- a/config/locales/en.txt +++ b/config/locales/en.txt @@ -2899,6 +2899,7 @@ # Project Aliases project_alias_created: Field slip was successfully created. project_alias_destroyed: Field slip was successfully destroyed. + project_alias_edit: Edit Project Alias [name] project_alias_new: New Project Alias project_alias_type: Alias Type project_alias_updated: Field slip was successfully updated.