-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
15 changed files
with
208 additions
and
2 deletions.
There are no files selected for viewing
26 changes: 26 additions & 0 deletions
26
admin/app/components/solidus_admin/orders/customer/component.html.erb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<div | ||
class="w-full relative overflow-visible" | ||
data-controller="<%= stimulus_id %>" | ||
data-<%= stimulus_id %>-customers-url-value="<%= solidus_admin.customers_for_order_path(@order) %>" | ||
data-action=" | ||
<%= component('ui/search_panel').stimulus_id %>:search-><%= stimulus_id %>#search | ||
<%= component('ui/search_panel').stimulus_id %>:submit-><%= stimulus_id %>#selectResult | ||
" | ||
> | ||
<%= render component('ui/search_panel').new( | ||
title: t('.title'), | ||
search_placeholder: t('.search_placeholder'), | ||
id: :order_cart, | ||
) do |panel| %> | ||
<% if @order.user || @order.email %> | ||
<div class="p-6 border-t border-gray-100 flex-col gap-2"> | ||
<div class="py-2"> | ||
<span><%= @customer.name %> <%= tag.em(t('.guest'), class: "italic") unless @customer.id %></span> | ||
<%= render component('ui/button').new(icon: 'edit-line', scheme: :ghost, tag: :a, href: solidus_admin.edit_order_customer_path(@order, @customer), alt: t(".edit")) %> | ||
</div> | ||
<%= link_to_if @customer.id, @customer.email, spree.admin_user_path(@customer), class: 'body-link body-small' %> | ||
<div class="text-gray-500 body-small"><%= t('.orders_count', count: @customer.orders.count) %></div> | ||
</div> | ||
<% end %> | ||
<% end %> | ||
</div> |
15 changes: 15 additions & 0 deletions
15
admin/app/components/solidus_admin/orders/customer/component.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import { Controller } from '@hotwired/stimulus' | ||
|
||
export default class extends Controller { | ||
static values = { customersUrl: String } | ||
|
||
async search({ detail: { query, controller } }) { | ||
controller.resultsValue = | ||
(await (await fetch(`${this.customersUrlValue}?q[name_or_variants_including_master_sku_cont]=${query}`)).text()) | ||
} | ||
|
||
selectResult(event) { | ||
const result = event.detail.resultTarget | ||
result.querySelector("form")?.submit() || Turbo.visit(result.querySelector("a").href) | ||
} | ||
} |
19 changes: 19 additions & 0 deletions
19
admin/app/components/solidus_admin/orders/customer/component.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# frozen_string_literal: true | ||
|
||
class SolidusAdmin::Orders::Customer::Component < SolidusAdmin::BaseComponent | ||
def initialize(order:) | ||
@order = order | ||
@customer = order.user || Guest.new(email: order.email) | ||
end | ||
|
||
Guest = Struct.new(:email, :id, keyword_init: true) do | ||
def name | ||
end | ||
|
||
def orders | ||
[] | ||
end | ||
end | ||
|
||
end |
10 changes: 10 additions & 0 deletions
10
admin/app/components/solidus_admin/orders/customer/component.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# Add your component translations here. | ||
# Use the translation in the example in your template with `t(".hello")`. | ||
en: | ||
title: "Customer" | ||
search_placeholder: "Search by email or name" | ||
edit: "Change the customer associated to this order" | ||
guest: "Guest" | ||
orders_count: | ||
one: "1 order" | ||
other: "%{count} orders" |
24 changes: 24 additions & 0 deletions
24
admin/app/components/solidus_admin/orders/customer/result/component.html.erb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<%= render component('ui/search_panel/result').new do %> | ||
<% if @customer %> | ||
<%= form_for(@order, url: solidus_admin.order_path(@order), html: { | ||
"data-controller": "readonly-when-submitting", | ||
class: "flex items-center", | ||
}) do |f| %> | ||
<%= hidden_field_tag("#{f.object_name}[user_id]", @customer.id) %> | ||
<div class="flex gap-2 grow items-center"> | ||
<%= render component("ui/icon").new( | ||
name: "user-line", | ||
) %> | ||
<div class="flex-col"> | ||
<div class="leading-5 text-black body-small-bold"><%= @name %></div> | ||
<div class="leading-5 text-gray-500 body-small"><%= @customer.email %></div> | ||
</div> | ||
</div> | ||
<% end %> | ||
<% else %> | ||
<a class="flex gap-2 grow items-center cursor-pointer" href="<%= solidus_admin.new_order_customer_path(@order) %>"> | ||
<%= render component("ui/icon").new(name: "add-box-fill") %> | ||
<div><%= t('.add') %></div> | ||
</a> | ||
<% end %> | ||
<% end %> |
11 changes: 11 additions & 0 deletions
11
admin/app/components/solidus_admin/orders/customer/result/component.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# frozen_string_literal: true | ||
|
||
class SolidusAdmin::Orders::Customer::Result::Component < SolidusAdmin::BaseComponent | ||
with_collection_parameter :customer | ||
|
||
def initialize(order:, customer:) | ||
@order = order | ||
@customer = customer | ||
@name = (customer.default_user_bill_address || customer.default_user_ship_address)&.name if customer | ||
end | ||
end |
2 changes: 2 additions & 0 deletions
2
admin/app/components/solidus_admin/orders/customer/result/component.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
en: | ||
add: Create a new customer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
14 changes: 14 additions & 0 deletions
14
admin/app/controllers/solidus_admin/customers_controller.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# frozen_string_literal: true | ||
|
||
module SolidusAdmin | ||
class CustomersController < SolidusAdmin::BaseController | ||
def edit | ||
end | ||
|
||
private | ||
|
||
def authorization_subject | ||
Spree::User | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
15 changes: 15 additions & 0 deletions
15
admin/spec/components/previews/solidus_admin/orders/customer/component_preview.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# frozen_string_literal: true | ||
|
||
# @component "orders/customer" | ||
class SolidusAdmin::Orders::Customer::ComponentPreview < ViewComponent::Preview | ||
include SolidusAdmin::Preview | ||
|
||
def overview | ||
render_with_template | ||
end | ||
|
||
# @param order text | ||
def playground(order: "order") | ||
render component("orders/customer").new(order: order) | ||
end | ||
end |
7 changes: 7 additions & 0 deletions
7
...pec/components/previews/solidus_admin/orders/customer/component_preview/overview.html.erb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
<div class="mb-8"> | ||
<h6 class="text-gray-500 mb-3 mt-0"> | ||
Scenario 1 | ||
</h6> | ||
|
||
<%= render current_component.new(order: "order") %> | ||
</div> |
16 changes: 16 additions & 0 deletions
16
admin/spec/components/solidus_admin/orders/customer/component_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# frozen_string_literal: true | ||
|
||
require "spec_helper" | ||
|
||
RSpec.describe SolidusAdmin::Orders::Customer::Component, type: :component do | ||
it "renders the overview preview" do | ||
render_preview(:overview) | ||
end | ||
|
||
# it "renders something useful" do | ||
# render_inline(described_class.new(order: "order")) | ||
# | ||
# expect(page).to have_text "Hello, components!" | ||
# expect(page).to have_css '.value' | ||
# end | ||
end |