Skip to content

Commit cccc529

Browse files
committed
Add user store credit: Load modal with turbo frame
1 parent c338f1c commit cccc529

File tree

17 files changed

+171
-215
lines changed

17 files changed

+171
-215
lines changed

admin/app/components/solidus_admin/users/store_credits/edit_amount/component.html.erb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<%= turbo_frame_tag :edit_amount_modal do %>
1+
<%= turbo_frame_tag :resource_modal, target: "_top" do %>
22
<%= render component("ui/modal").new(title: t(".title")) do |modal| %>
3-
<%= form_for @store_credit, url: solidus_admin.update_amount_user_store_credit_path(@user, @store_credit), method: :put, html: { id: form_id } do |f| %>
3+
<%= form_for @store_credit, url: form_url, method: :put, html: { id: form_id } do |f| %>
44
<div class="flex flex-col gap-6 pb-4">
55
<%= render component("ui/forms/field").text_field(f, :amount, class: "required") %>
66
<%= render component("ui/forms/field").select(
@@ -20,4 +20,3 @@
2020
<% end %>
2121
<% end %>
2222
<% end %>
23-
<%= render component("users/store_credits/show").new(user: @user, store_credit: @store_credit, events: @store_credit_events) %>

admin/app/components/solidus_admin/users/store_credits/edit_amount/component.rb

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
# frozen_string_literal: true
22

3-
class SolidusAdmin::Users::StoreCredits::EditAmount::Component < SolidusAdmin::BaseComponent
4-
def initialize(user:, store_credit:, events:, reasons:)
3+
class SolidusAdmin::Users::StoreCredits::EditAmount::Component < SolidusAdmin::Resources::Edit::Component
4+
def initialize(user:, store_credit:, reasons:)
55
@user = user
6-
@store_credit = store_credit
7-
@store_credit_events = events
6+
super(store_credit)
87
@store_credit_reasons = reasons
98
end
109

1110
def form_id
1211
dom_id(@store_credit, "#{stimulus_id}_edit_amount_form")
1312
end
1413

14+
def form_url
15+
solidus_admin.update_amount_user_store_credit_path(@user, @store_credit, **search_filter_params)
16+
end
17+
1518
def store_credit_reasons_select_options
1619
# Placeholder + Store Credit Reasons
1720
"<option value>#{t('.choose_reason')}</option>" + options_from_collection_for_select(@store_credit_reasons, :id, :name)

admin/app/components/solidus_admin/users/store_credits/edit_memo/component.html.erb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<%= turbo_frame_tag :edit_memo_modal do %>
1+
<%= turbo_frame_tag :resource_modal, target: "_top" do %>
22
<%= render component("ui/modal").new(title: t(".title")) do |modal| %>
3-
<%= form_for @store_credit, url: solidus_admin.update_memo_user_store_credit_path(@user, @store_credit), method: :put, html: { id: form_id } do |f| %>
3+
<%= form_for @store_credit, url: form_url, method: :put, html: { id: form_id } do |f| %>
44
<div class="flex flex-col gap-6 pb-4">
55
<%= render component("ui/forms/field").text_field(f, :memo) %>
66
</div>
@@ -13,4 +13,3 @@
1313
<% end %>
1414
<% end %>
1515
<% end %>
16-
<%= render component("users/store_credits/show").new(user: @user, store_credit: @store_credit, events: @store_credit_events) %>
Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
# frozen_string_literal: true
22

3-
class SolidusAdmin::Users::StoreCredits::EditMemo::Component < SolidusAdmin::BaseComponent
4-
def initialize(user:, store_credit:, events:)
3+
class SolidusAdmin::Users::StoreCredits::EditMemo::Component < SolidusAdmin::Resources::Edit::Component
4+
def initialize(user:, store_credit:)
55
@user = user
6-
@store_credit = store_credit
7-
@store_credit_events = events
6+
super(store_credit)
87
end
98

109
def form_id
1110
dom_id(@store_credit, "#{stimulus_id}_edit_memo_form")
1211
end
12+
13+
def form_url
14+
solidus_admin.update_memo_user_store_credit_path(@user, @store_credit, **search_filter_params)
15+
end
1316
end

admin/app/components/solidus_admin/users/store_credits/edit_validity/component.html.erb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<%= turbo_frame_tag :edit_validity_modal do %>
1+
<%= turbo_frame_tag :resource_modal, target: "_top" do %>
22
<%= render component("ui/modal").new(title: t(".title")) do |modal| %>
3-
<%= form_for @store_credit, url: solidus_admin.invalidate_user_store_credit_path(@user, @store_credit), method: :put, html: { id: form_id } do |f| %>
3+
<%= form_for @store_credit, url: form_url, method: :put, html: { id: form_id } do |f| %>
44
<div class="flex flex-col gap-6 pb-4">
55
<%= render component("ui/forms/field").select(
66
f,
@@ -19,4 +19,3 @@
1919
<% end %>
2020
<% end %>
2121
<% end %>
22-
<%= render component("users/store_credits/show").new(user: @user, store_credit: @store_credit, events: @store_credit_events) %>

admin/app/components/solidus_admin/users/store_credits/edit_validity/component.rb

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
# frozen_string_literal: true
22

3-
class SolidusAdmin::Users::StoreCredits::EditValidity::Component < SolidusAdmin::BaseComponent
4-
def initialize(user:, store_credit:, events:, reasons:)
3+
class SolidusAdmin::Users::StoreCredits::EditValidity::Component < SolidusAdmin::Resources::Edit::Component
4+
def initialize(user:, store_credit:, reasons:)
55
@user = user
6-
@store_credit = store_credit
7-
@store_credit_events = events
6+
super(store_credit)
87
@store_credit_reasons = reasons
98
end
109

1110
def form_id
1211
dom_id(@store_credit, "#{stimulus_id}_edit_validity_form")
1312
end
1413

14+
def form_url
15+
solidus_admin.invalidate_user_store_credit_path(@user, @store_credit, **search_filter_params)
16+
end
17+
1518
def store_credit_reasons_select_options
1619
# Placeholder + Store Credit Reasons
1720
"<option value>#{t('.choose_reason')}</option>" + options_from_collection_for_select(@store_credit_reasons, :id, :name)

admin/app/components/solidus_admin/users/store_credits/index/component.html.erb

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@
55

66
<%= page_header_actions do %>
77
<%= render component("ui/button").new(
8-
"data-action": "click->#{stimulus_id}#actionButtonClicked",
9-
"data-#{stimulus_id}-url-param": solidus_admin.new_user_store_credit_path(user_id: @user.id, _turbo_frame: :new_store_credit_modal),
8+
tag: :a,
9+
href: new_store_credit_path,
10+
data: {
11+
turbo_frame: :resource_modal
12+
},
1013
text: t(".add_store_credit"),
14+
icon: "add-line"
1115
)%>
1216
<% end %>
1317
<% end %>
@@ -27,23 +31,25 @@
2731

2832
<%= render component('ui/panel').new(title: title) do %>
2933
<%= render component('ui/table').new(
30-
id: stimulus_id,
31-
data: {
32-
class: model_class,
33-
rows: credits,
34-
fade: -> (_order) { false },
35-
columns: columns,
36-
url: -> { row_url(_1) },
37-
},
38-
)%>
34+
id: stimulus_id,
35+
data: {
36+
class: model_class,
37+
rows: credits,
38+
fade: -> (_order) { false },
39+
columns: columns
40+
}
41+
) %>
3942
<% end %>
4043
<% end %>
4144
<% else %>
4245
<%= render component('ui/panel').new(title: t(".store_credit")) do %>
4346
<%= t(".no_credits_found") %>
4447
<%= render component("ui/button").new(
45-
"data-action": "click->#{stimulus_id}#actionButtonClicked",
46-
"data-#{stimulus_id}-url-param": solidus_admin.new_user_store_credit_path(user_id: @user.id, _turbo_frame: :new_store_credit_modal),
48+
tag: :a,
49+
data: {
50+
turbo_frame: :resource_modal
51+
},
52+
href: new_store_credit_path,
4753
text: t(".create_one"),
4854
)%>
4955
<% end %>
@@ -55,7 +61,5 @@
5561
<% end %>
5662
<% end %>
5763

58-
<% turbo_frames.each do |frame| %>
59-
<%= turbo_frame_tag frame %>
60-
<% end %>
64+
<%= turbo_frame_tag :resource_modal, target: "_top" %>
6165
<% end %>

admin/app/components/solidus_admin/users/store_credits/index/component.js

Lines changed: 0 additions & 15 deletions
This file was deleted.

admin/app/components/solidus_admin/users/store_credits/index/component.rb

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -42,41 +42,39 @@ def tabs
4242
]
4343
end
4444

45-
def turbo_frames
46-
%w[
47-
new_store_credit_modal
48-
]
49-
end
50-
5145
def rows
5246
@store_credits
5347
end
5448

55-
def row_url(store_credit)
49+
def show_path(store_credit)
5650
solidus_admin.user_store_credit_path(@user, store_credit)
5751
end
5852

53+
def new_store_credit_path
54+
solidus_admin.new_user_store_credit_path(user_id: @user.id)
55+
end
56+
5957
def columns
6058
[
6159
{
6260
header: :credited,
6361
col: { class: "w-[12%]" },
6462
data: ->(store_credit) do
65-
content_tag :div, store_credit.display_amount.to_html, class: "text-sm"
63+
link_to store_credit.display_amount.to_html, show_path(store_credit), class: "body-link text-sm"
6664
end
6765
},
6866
{
6967
header: :authorized,
7068
col: { class: "w-[13%]" },
7169
data: ->(store_credit) do
72-
content_tag :div, store_credit.display_amount_authorized.to_html, class: "text-sm"
70+
link_to store_credit.display_amount_authorized.to_html, show_path(store_credit), class: "body-link text-sm"
7371
end
7472
},
7573
{
7674
header: :used,
7775
col: { class: "w-[9%]" },
7876
data: ->(store_credit) do
79-
content_tag :div, store_credit.display_amount_used.to_html, class: "text-sm"
77+
link_to store_credit.display_amount_used.to_html, show_path(store_credit), class: "body-link text-sm"
8078
end
8179
},
8280
{
@@ -90,23 +88,27 @@ def columns
9088
header: :created_by,
9189
col: { class: "w-[22%]" },
9290
data: ->(store_credit) do
93-
content_tag :div, store_credit.created_by_email, class: "font-semibold text-sm"
91+
content_tag :div, store_credit.created_by_email, class: "text-sm"
9492
end
9593
},
9694
{
9795
header: :issued_on,
9896
col: { class: "w-[16%]" },
9997
data: ->(store_credit) do
100-
I18n.l(store_credit.created_at.to_date)
98+
content_tag :span, I18n.l(store_credit.created_at.to_date), class: "text-sm"
10199
end
102100
},
103101
{
104102
header: :invalidated,
105103
col: { class: "w-[15%]" },
106104
data: ->(store_credit) do
107-
store_credit.invalidated? ? component('ui/badge').new(name: :yes, color: :red, size: :m) : component('ui/badge').new(name: :no, color: :green, size: :m)
105+
if store_credit.invalidated?
106+
component('ui/badge').new(name: :yes, color: :red, size: :m)
107+
else
108+
component('ui/badge').new(name: :no, color: :green, size: :m)
109+
end
108110
end
109-
},
111+
}
110112
]
111113
end
112114
end

admin/app/components/solidus_admin/users/store_credits/new/component.html.erb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<%= turbo_frame_tag :new_store_credit_modal do %>
1+
<%= turbo_frame_tag :resource_modal, target: "_top" do %>
22
<%= render component("ui/modal").new(title: t(".title")) do |modal| %>
3-
<%= form_for @store_credit, url: solidus_admin.user_store_credits_path(@user), method: :post, html: { id: form_id } do |f| %>
3+
<%= form_for @store_credit, url: form_url, method: :post, html: { id: form_id } do |f| %>
44
<div class="flex flex-col gap-6 pb-4">
55
<%= render component("ui/forms/field").text_field(f, :amount, class: "required") %>
66
<%= render component("ui/forms/field").select(
@@ -28,4 +28,3 @@
2828
<% end %>
2929
<% end %>
3030
<% end %>
31-
<%= render component("users/store_credits/index").new(user: @user, store_credits: @store_credits) %>

0 commit comments

Comments
 (0)