From d7e5e0d236fb936eb72e680d099c6d15c96f325a Mon Sep 17 00:00:00 2001 From: Jose Farias Date: Thu, 12 Dec 2024 20:14:09 -0600 Subject: [PATCH] Submit form when toggling all-access + caching --- app/controllers/buckets_controller.rb | 2 +- app/helpers/accesses_helper.rb | 17 ++++++++++++++++ app/views/bubbles/_messages.html.erb | 2 +- app/views/buckets/_access_toggle.erb | 21 ++++++++++++++++++++ app/views/buckets/_user_toggle.html.erb | 26 ------------------------- app/views/buckets/edit.html.erb | 14 ++++++------- 6 files changed, 47 insertions(+), 35 deletions(-) create mode 100644 app/helpers/accesses_helper.rb create mode 100644 app/views/buckets/_access_toggle.erb delete mode 100644 app/views/buckets/_user_toggle.html.erb diff --git a/app/controllers/buckets_controller.rb b/app/controllers/buckets_controller.rb index b6cbe66dc..e46ee83c4 100644 --- a/app/controllers/buckets_controller.rb +++ b/app/controllers/buckets_controller.rb @@ -24,7 +24,7 @@ class BucketsController < ApplicationController @bucket.update! bucket_params @bucket.accesses.revise granted: grantees, revoked: revokees - redirect_to bubbles_path(bucket_ids: [ @bucket ]) + redirect_to edit_bucket_path(@bucket) end def destroy diff --git a/app/helpers/accesses_helper.rb b/app/helpers/accesses_helper.rb new file mode 100644 index 000000000..f113cec24 --- /dev/null +++ b/app/helpers/accesses_helper.rb @@ -0,0 +1,17 @@ +module AccessesHelper + def access_toggles_for(users, selected:) + render partial: "buckets/access_toggle", + collection: users, as: :user, + locals: { selected: selected }, + cached: ->(user) { [ user, selected ] } + end + + def access_toggle_tag(user, &) + tag.li class: "flex align-center gap-half margin-none unpad", data: { + value: user.name.downcase, + creator_id: user.id, + controller: "created-by-current-user", + created_by_current_user_target: "creation", + created_by_current_user_mine_class: "toggler--toggled" }, & + end +end diff --git a/app/views/bubbles/_messages.html.erb b/app/views/bubbles/_messages.html.erb index 5320e9eeb..446b424c9 100644 --- a/app/views/bubbles/_messages.html.erb +++ b/app/views/bubbles/_messages.html.erb @@ -5,6 +5,6 @@ data-created-by-current-user-mine-class="comment--mine"> <%# Template Dependency: comments/comment %> <%# Template Dependency: event_summaries/event_summary %> - <%= render bubble.messages, cache: true %> + <%= render bubble.messages, cached: true %> <%= render "comments/new", bubble: bubble %> diff --git a/app/views/buckets/_access_toggle.erb b/app/views/buckets/_access_toggle.erb new file mode 100644 index 000000000..dfa42a2b1 --- /dev/null +++ b/app/views/buckets/_access_toggle.erb @@ -0,0 +1,21 @@ +<%= access_toggle_tag user do %> +
+ <%= avatar_tag user, loading: :lazy %> +
+ +
+
+ <%= user.name %> +
+
+ + + + <%= image_tag "check.svg", size: 20, class: "toggler__visible-when-on colorize--black flex-item-no-shrink", aria: { hidden: "true" } %> + + +<% end %> diff --git a/app/views/buckets/_user_toggle.html.erb b/app/views/buckets/_user_toggle.html.erb deleted file mode 100644 index ee6c3e3a7..000000000 --- a/app/views/buckets/_user_toggle.html.erb +++ /dev/null @@ -1,26 +0,0 @@ -
  • -
    - <%= avatar_tag user, loading: :lazy %> -
    - -
    -
    - <%= user.name %> -
    -
    - - - - <% if user == Current.user %> - <%= hidden_field_tag "user_ids[]", user.id, id: nil %> - <%= image_tag "check.svg", size: 20, class: "colorize--black flex-item-no-shrink", aria: { hidden: "true" } %> - <% else %> - <%= image_tag "check.svg", size: 20, class: "toggler__visible-when-on colorize--black flex-item-no-shrink", aria: { hidden: "true" } %> - - - <% end %> -
  • diff --git a/app/views/buckets/edit.html.erb b/app/views/buckets/edit.html.erb index 5ed76a6e9..7692fbeb2 100644 --- a/app/views/buckets/edit.html.erb +++ b/app/views/buckets/edit.html.erb @@ -17,7 +17,7 @@ <% end %>
    - <%= form_with model: @bucket, class: "flex flex-column gap txt-large", controller: "form" do |form| %> + <%= form_with model: @bucket, class: "flex flex-column gap txt-large", data: { controller: "form", turbo_action: "replace" } do |form| %>
    <%= translation_button(:bucket_name) %> @@ -29,7 +29,7 @@
    - +
  • <%= image_tag "everyone.svg", aria: { hidden: "true" }, class: "colorize--black" %> @@ -43,7 +43,7 @@ @@ -55,15 +55,15 @@ <% end %> -
    - <%= render partial: "buckets/user_toggle", collection: @selected_users, as: :user, locals: { selected: true } %> + <%= tag.div class: { "toggler--toggled": @bucket.all_access? }, data: { filter_target: "list" } do %> + <%= access_toggles_for @selected_users, selected: true %> <% if @selected_users.any? && @unselected_users.any? %>
    <% end %> - <%= render partial: "buckets/user_toggle", collection: @unselected_users, as: :user, locals: { selected: false } %> -
    + <%= access_toggles_for @unselected_users, selected: false %> + <% end %>