solidus_admin 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/components/solidus_admin/adjustment_reasons/index/component.rb +9 -19
  4. data/app/components/solidus_admin/base_component.rb +29 -1
  5. data/app/components/solidus_admin/option_types/index/component.rb +20 -6
  6. data/app/components/solidus_admin/orders/index/component.rb +20 -15
  7. data/app/components/solidus_admin/orders/index/component.yml +0 -1
  8. data/app/components/solidus_admin/payment_methods/index/component.rb +28 -18
  9. data/app/components/solidus_admin/payment_methods/index/component.yml +0 -5
  10. data/app/components/solidus_admin/products/index/component.rb +17 -10
  11. data/app/components/solidus_admin/products/index/component.yml +0 -2
  12. data/app/components/solidus_admin/promotion_categories/index/component.rb +12 -13
  13. data/app/components/solidus_admin/promotions/index/component.rb +17 -10
  14. data/app/components/solidus_admin/promotions/index/component.yml +0 -4
  15. data/app/components/solidus_admin/properties/index/component.rb +17 -18
  16. data/app/components/solidus_admin/refund_reasons/index/component.rb +18 -18
  17. data/app/components/solidus_admin/refunds_and_returns/component.rb +33 -13
  18. data/app/components/solidus_admin/reimbursement_types/index/component.rb +7 -25
  19. data/app/components/solidus_admin/return_reasons/index/component.rb +9 -19
  20. data/app/components/solidus_admin/shipping/component.rb +23 -11
  21. data/app/components/solidus_admin/shipping_categories/index/component.rb +18 -18
  22. data/app/components/solidus_admin/shipping_methods/index/component.rb +18 -18
  23. data/app/components/solidus_admin/stock_items/index/component.rb +9 -15
  24. data/app/components/solidus_admin/stock_locations/index/component.rb +18 -10
  25. data/app/components/solidus_admin/stock_locations/index/component.yml +0 -3
  26. data/app/components/solidus_admin/store_credit_reasons/index/component.rb +18 -18
  27. data/app/components/solidus_admin/stores/index/component.rb +17 -18
  28. data/app/components/solidus_admin/tax_categories/index/component.rb +20 -20
  29. data/app/components/solidus_admin/tax_rates/index/component.rb +18 -14
  30. data/app/components/solidus_admin/taxes/component.rb +8 -8
  31. data/app/components/solidus_admin/taxonomies/index/component.rb +17 -11
  32. data/app/components/solidus_admin/ui/pages/index/component.html.erb +30 -0
  33. data/app/components/solidus_admin/ui/pages/index/component.rb +119 -0
  34. data/app/components/solidus_admin/ui/table/component.html.erb +2 -1
  35. data/app/components/solidus_admin/ui/table/component.rb +1 -1
  36. data/app/components/solidus_admin/users/index/component.rb +17 -10
  37. data/app/components/solidus_admin/users/index/component.yml +0 -3
  38. data/app/components/solidus_admin/zones/index/component.rb +18 -10
  39. data/app/controllers/solidus_admin/promotion_categories_controller.rb +0 -9
  40. data/app/controllers/solidus_admin/properties_controller.rb +1 -1
  41. data/app/views/layouts/solidus_admin/preview.html.erb +2 -0
  42. data/config/initializers/view_component.rb +1 -1
  43. data/lib/solidus_admin/configuration.rb +3 -1
  44. data/lib/solidus_admin/version.rb +1 -1
  45. metadata +6 -43
  46. data/app/components/solidus_admin/adjustment_reasons/index/component.html.erb +0 -32
  47. data/app/components/solidus_admin/adjustment_reasons/index/component.yml +0 -4
  48. data/app/components/solidus_admin/option_types/index/component.html.erb +0 -30
  49. data/app/components/solidus_admin/orders/index/component.html.erb +0 -35
  50. data/app/components/solidus_admin/payment_methods/index/component.html.erb +0 -38
  51. data/app/components/solidus_admin/products/index/component.html.erb +0 -34
  52. data/app/components/solidus_admin/promotion_categories/index/component.html.erb +0 -26
  53. data/app/components/solidus_admin/promotion_categories/index/component.yml +0 -4
  54. data/app/components/solidus_admin/promotions/index/component.html.erb +0 -34
  55. data/app/components/solidus_admin/properties/index/component.html.erb +0 -34
  56. data/app/components/solidus_admin/properties/index/component.yml +0 -4
  57. data/app/components/solidus_admin/refund_reasons/index/component.html.erb +0 -31
  58. data/app/components/solidus_admin/refund_reasons/index/component.yml +0 -4
  59. data/app/components/solidus_admin/refunds_and_returns/component.html.erb +0 -26
  60. data/app/components/solidus_admin/reimbursement_types/index/component.html.erb +0 -22
  61. data/app/components/solidus_admin/reimbursement_types/index/component.yml +0 -4
  62. data/app/components/solidus_admin/return_reasons/index/component.html.erb +0 -31
  63. data/app/components/solidus_admin/return_reasons/index/component.yml +0 -4
  64. data/app/components/solidus_admin/shipping/component.html.erb +0 -30
  65. data/app/components/solidus_admin/shipping_categories/index/component.html.erb +0 -32
  66. data/app/components/solidus_admin/shipping_categories/index/component.yml +0 -4
  67. data/app/components/solidus_admin/shipping_methods/index/component.html.erb +0 -32
  68. data/app/components/solidus_admin/shipping_methods/index/component.yml +0 -4
  69. data/app/components/solidus_admin/stock_items/index/component.html.erb +0 -26
  70. data/app/components/solidus_admin/stock_locations/index/component.html.erb +0 -32
  71. data/app/components/solidus_admin/store_credit_reasons/index/component.html.erb +0 -31
  72. data/app/components/solidus_admin/store_credit_reasons/index/component.yml +0 -4
  73. data/app/components/solidus_admin/stores/index/component.html.erb +0 -34
  74. data/app/components/solidus_admin/stores/index/component.yml +0 -4
  75. data/app/components/solidus_admin/tax_categories/index/component.html.erb +0 -32
  76. data/app/components/solidus_admin/tax_categories/index/component.yml +0 -6
  77. data/app/components/solidus_admin/tax_rates/index/component.html.erb +0 -32
  78. data/app/components/solidus_admin/tax_rates/index/component.yml +0 -4
  79. data/app/components/solidus_admin/taxes/component.html.erb +0 -24
  80. data/app/components/solidus_admin/taxonomies/index/component.html.erb +0 -28
  81. data/app/components/solidus_admin/taxonomies/index/component.yml +0 -4
  82. data/app/components/solidus_admin/users/index/component.html.erb +0 -34
  83. data/app/components/solidus_admin/zones/index/component.html.erb +0 -35
  84. data/app/components/solidus_admin/zones/index/component.yml +0 -4
  85. /data/app/components/solidus_admin/{option_types → ui/pages}/index/component.yml +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5e93504045b4612199721f629e4a151aaeea3dd2e3ceba7bcf32864d33d50f0b
4
- data.tar.gz: 073d45e7bec2c812c967da18724617e1300ca463f9267f1fc5d36d5a47036b65
3
+ metadata.gz: 28b57ee7cd36b6042c6a1f7a735587aaba8a9e78d6050744ff6687b3799154fc
4
+ data.tar.gz: de8a6150a3b9c7445d4b572cc4cd6af8aba87e6be2ffcd81582b7bdfd96b2b8a
5
5
  SHA512:
6
- metadata.gz: 71e431ef5f2de8b7395df11e1189ebb8a30678ee064ecda72af0473531ac0f09feb2ecf6a11e56b572e16ab01742db687470f2f1f8da7ea0b6db22143dc45bd2
7
- data.tar.gz: 7cc238704bd7b7b9a040b7892cf1a929eda2e037fe18896118033785584e42987f817b43caf6e29806282f2f75b7811801870c3ef6f3eff9d33c4b0cdd24e85f
6
+ metadata.gz: 9db4b1349c35d1778bad7f922951a8c9f9d35e97e90c25a78c71d97a7e3ec6f772c9411490f6b66a1323c016e94a283ed2311ff11c4a142891fee2695bee6ba4
7
+ data.tar.gz: f24a6d904d75739bd41ef956f40489459b281e9aa9b3aa9981affdbe260865019a75c2200f56e201a0dd6f647d6d48d92483766ec5b6e99cc9e2f1d133924c65
data/README.md CHANGED
@@ -26,6 +26,6 @@ bin/rails admin g solidus_admin:component foo
26
26
  ## Releasing
27
27
 
28
28
  1. Update the version in `lib/solidus_admin/version.rb`
29
- 2. Commit the changes with the message `Release v1.2.3`
29
+ 2. Commit the changes with the message `Release solidus_admin/v1.2.3`
30
30
  3. `cd admin; bundle exec rake release`
31
31
  4. Manually release on GitHub
@@ -1,22 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class SolidusAdmin::AdjustmentReasons::Index::Component < SolidusAdmin::BaseComponent
4
- include SolidusAdmin::Layout::PageHelpers
5
-
6
- def initialize(page:)
7
- @page = page
3
+ class SolidusAdmin::AdjustmentReasons::Index::Component < SolidusAdmin::RefundsAndReturns::Component
4
+ def model_class
5
+ Spree::AdjustmentReason
8
6
  end
9
7
 
10
- def title
11
- Spree::AdjustmentReason.model_name.human.pluralize
8
+ def search_url
9
+ solidus_admin.adjustment_reasons_path
12
10
  end
13
11
 
14
- def prev_page_path
15
- solidus_admin.url_for(**request.params, page: @page.number - 1, only_path: true) unless @page.first?
12
+ def search_key
13
+ :name_or_code_cont
16
14
  end
17
15
 
18
- def next_page_path
19
- solidus_admin.url_for(**request.params, page: @page.next_param, only_path: true) unless @page.last?
16
+ def row_url(adjustment_reason)
17
+ spree.edit_admin_adjustment_reason_path(adjustment_reason)
20
18
  end
21
19
 
22
20
  def batch_actions
@@ -30,14 +28,6 @@ class SolidusAdmin::AdjustmentReasons::Index::Component < SolidusAdmin::BaseComp
30
28
  ]
31
29
  end
32
30
 
33
- def scopes
34
- []
35
- end
36
-
37
- def filters
38
- []
39
- end
40
-
41
31
  def columns
42
32
  [
43
33
  :name,
@@ -1,5 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "view_component/version"
4
+ require "view_component/translatable"
5
+
3
6
  module SolidusAdmin
4
7
  # BaseComponent is the base class for all components in Solidus Admin.
5
8
  class BaseComponent < ViewComponent::Base
@@ -10,12 +13,37 @@ module SolidusAdmin
10
13
  render component("ui/icon").new(name: name, **attrs)
11
14
  end
12
15
 
16
+ module InheritableTranslations
17
+ def build_i18n_backend
18
+ return if compiled?
19
+
20
+ # We need to load the translations files from the ancestors so a component
21
+ # can inherit translations from its parent and is able to overwrite them.
22
+ translation_files = ancestors.reverse_each.with_object([]) do |ancestor, files|
23
+ if ancestor.is_a?(Class) && ancestor < ViewComponent::Base
24
+ files.concat(ancestor.sidecar_files(%w[yml yaml].freeze))
25
+ end
26
+ end
27
+
28
+ # In development it will become nil if the translations file is removed
29
+ self.i18n_backend = if translation_files.any?
30
+ ViewComponent::Translatable::I18nBackend.new(
31
+ i18n_scope: i18n_scope,
32
+ load_paths: translation_files
33
+ )
34
+ end
35
+ end
36
+ end
37
+
38
+ # Can be removed once https://github.com/ViewComponent/view_component/pull/1934 is released
39
+ extend InheritableTranslations unless Gem::Version.new(ViewComponent::VERSION::STRING) >= Gem::Version.new("3.9")
40
+
13
41
  def missing_translation(key, options)
14
42
  keys = I18n.normalize_keys(options[:locale] || I18n.locale, key, options[:scope])
15
43
 
16
44
  logger.debug " [#{self.class}] Missing translation: #{keys.join('.')}"
17
45
 
18
- if options[:locale] != :en
46
+ if (options[:locale] || I18n.default_locale) != :en
19
47
  t(key, **options, locale: :en)
20
48
  else
21
49
  "translation missing: #{keys.join('.')}"
@@ -1,14 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class SolidusAdmin::OptionTypes::Index::Component < SolidusAdmin::BaseComponent
4
- include SolidusAdmin::Layout::PageHelpers
3
+ class SolidusAdmin::OptionTypes::Index::Component < SolidusAdmin::UI::Pages::Index::Component
4
+ def model_class
5
+ Spree::OptionType
6
+ end
7
+
8
+ def row_url(option_type)
9
+ spree.edit_admin_option_type_path(option_type)
10
+ end
5
11
 
6
- def initialize(page:)
7
- @page = page
12
+ def sortable_options
13
+ {
14
+ url: ->(option_type) { solidus_admin.move_option_type_path(option_type) },
15
+ param: 'position',
16
+ }
8
17
  end
9
18
 
10
- def title
11
- Spree::OptionType.model_name.human.pluralize
19
+ def page_actions
20
+ render component("ui/button").new(
21
+ tag: :a,
22
+ text: t('.add'),
23
+ href: spree.new_admin_option_type_path,
24
+ icon: "add-line",
25
+ )
12
26
  end
13
27
 
14
28
  def prev_page_path
@@ -1,28 +1,33 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class SolidusAdmin::Orders::Index::Component < SolidusAdmin::BaseComponent
4
- include SolidusAdmin::Layout::PageHelpers
5
-
6
- def initialize(page:)
7
- @page = page
3
+ class SolidusAdmin::Orders::Index::Component < SolidusAdmin::UI::Pages::Index::Component
4
+ def model_class
5
+ Spree::Order
8
6
  end
9
7
 
10
- class_attribute :row_fade, default: ->(order) { order.paid? && order.shipped? }
8
+ def search_key
9
+ :number_or_shipments_number_or_bill_address_name_or_email_cont
10
+ end
11
11
 
12
- def title
13
- Spree::Order.model_name.human.pluralize
12
+ def search_url
13
+ solidus_admin.orders_path(scope: params[:scope])
14
14
  end
15
15
 
16
- def prev_page_path
17
- solidus_admin.url_for(**request.params, page: @page.number - 1, only_path: true) unless @page.first?
16
+ def row_url(order)
17
+ spree.edit_admin_order_path(order)
18
18
  end
19
19
 
20
- def next_page_path
21
- solidus_admin.url_for(**request.params, page: @page.next_param, only_path: true) unless @page.last?
20
+ def row_fade(order)
21
+ order.paid? && order.shipped?
22
22
  end
23
23
 
24
- def batch_actions
25
- []
24
+ def page_actions
25
+ render component("ui/button").new(
26
+ tag: :a,
27
+ text: t('.add'),
28
+ href: spree.new_admin_order_path,
29
+ icon: "add-line",
30
+ )
26
31
  end
27
32
 
28
33
  def scopes
@@ -100,7 +105,7 @@ class SolidusAdmin::Orders::Index::Component < SolidusAdmin::BaseComponent
100
105
  {
101
106
  header: :order,
102
107
  data: ->(order) do
103
- if !row_fade.call(order)
108
+ if !row_fade(order)
104
109
  content_tag :div, order.number, class: 'font-semibold'
105
110
  else
106
111
  content_tag :div, order.number
@@ -1,5 +1,4 @@
1
1
  en:
2
- create_order: 'Create Order'
3
2
  columns:
4
3
  items:
5
4
  one: 1 Item
@@ -1,22 +1,36 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class SolidusAdmin::PaymentMethods::Index::Component < SolidusAdmin::BaseComponent
4
- include SolidusAdmin::Layout::PageHelpers
3
+ class SolidusAdmin::PaymentMethods::Index::Component < SolidusAdmin::UI::Pages::Index::Component
4
+ def model_class
5
+ Spree::PaymentMethod
6
+ end
7
+
8
+ def search_key
9
+ :name_or_description_cont
10
+ end
5
11
 
6
- def initialize(page:)
7
- @page = page
12
+ def search_url
13
+ solidus_admin.payment_methods_path
8
14
  end
9
15
 
10
- def title
11
- Spree::PaymentMethod.model_name.human.pluralize
16
+ def row_url(payment_method)
17
+ spree.edit_admin_payment_method_path(payment_method)
12
18
  end
13
19
 
14
- def prev_page_path
15
- solidus_admin.url_for(**request.params, page: @page.number - 1, only_path: true) unless @page.first?
20
+ def sortable_options
21
+ {
22
+ url: ->(payment_method) { solidus_admin.move_payment_method_path(payment_method) },
23
+ param: 'position',
24
+ }
16
25
  end
17
26
 
18
- def next_page_path
19
- solidus_admin.url_for(**request.params, page: @page.next_param, only_path: true) unless @page.last?
27
+ def page_actions
28
+ render component("ui/button").new(
29
+ tag: :a,
30
+ text: t('.add'),
31
+ href: spree.new_admin_payment_method_path,
32
+ icon: "add-line",
33
+ )
20
34
  end
21
35
 
22
36
  def batch_actions
@@ -40,10 +54,6 @@ class SolidusAdmin::PaymentMethods::Index::Component < SolidusAdmin::BaseCompone
40
54
  ]
41
55
  end
42
56
 
43
- def filters
44
- []
45
- end
46
-
47
57
  def columns
48
58
  [
49
59
  {
@@ -62,9 +72,9 @@ class SolidusAdmin::PaymentMethods::Index::Component < SolidusAdmin::BaseCompone
62
72
  header: :available_to_users,
63
73
  data: ->(payment_method) do
64
74
  if payment_method.available_to_users?
65
- component('ui/badge').new(name: t('.yes'), color: :green)
75
+ component('ui/badge').yes
66
76
  else
67
- component('ui/badge').new(name: t('.no'), color: :graphite_light)
77
+ component('ui/badge').no
68
78
  end
69
79
  end
70
80
  },
@@ -72,9 +82,9 @@ class SolidusAdmin::PaymentMethods::Index::Component < SolidusAdmin::BaseCompone
72
82
  header: :available_to_admin,
73
83
  data: ->(payment_method) do
74
84
  if payment_method.available_to_admin?
75
- component('ui/badge').new(name: t('.yes'), color: :green)
85
+ component('ui/badge').yes
76
86
  else
77
- component('ui/badge').new(name: t('.no'), color: :graphite_light)
87
+ component('ui/badge').no
78
88
  end
79
89
  end
80
90
  },
@@ -1,7 +1,4 @@
1
1
  en:
2
- add: 'Add new'
3
- "yes": "Yes"
4
- "no": "No"
5
2
  status:
6
3
  active: Active
7
4
  inactive: Inactive
@@ -11,5 +8,3 @@ en:
11
8
  admin: Admin
12
9
  storefront: Storefront
13
10
  all: All
14
- batch_actions:
15
- delete: 'Delete'
@@ -1,22 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class SolidusAdmin::Products::Index::Component < SolidusAdmin::BaseComponent
4
- include SolidusAdmin::Layout::PageHelpers
3
+ class SolidusAdmin::Products::Index::Component < SolidusAdmin::UI::Pages::Index::Component
4
+ def model_class
5
+ Spree::Product
6
+ end
5
7
 
6
- def initialize(page:)
7
- @page = page
8
+ def search_key
9
+ :name_or_variants_including_master_sku_cont
8
10
  end
9
11
 
10
- def title
11
- Spree::Product.model_name.human.pluralize
12
+ def search_url
13
+ solidus_admin.products_path
12
14
  end
13
15
 
14
- def prev_page_path
15
- solidus_admin.url_for(**request.params, page: @page.number - 1, only_path: true) unless @page.first?
16
+ def row_url(product)
17
+ solidus_admin.product_path(product)
16
18
  end
17
19
 
18
- def next_page_path
19
- solidus_admin.url_for(**request.params, page: @page.next_param, only_path: true) unless @page.last?
20
+ def page_actions
21
+ render component("ui/button").new(
22
+ tag: :a,
23
+ text: t('.add'),
24
+ href: spree.new_admin_product_path,
25
+ icon: "add-line",
26
+ )
20
27
  end
21
28
 
22
29
  def batch_actions
@@ -1,8 +1,6 @@
1
1
  en:
2
2
  image: 'Image'
3
- add: 'Add new'
4
3
  batch_actions:
5
- delete: 'Delete'
6
4
  discontinue: 'Discontinue'
7
5
  activate: 'Activate'
8
6
  filters:
@@ -1,22 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class SolidusAdmin::PromotionCategories::Index::Component < SolidusAdmin::BaseComponent
4
- include SolidusAdmin::Layout::PageHelpers
5
-
6
- def initialize(page:)
7
- @page = page
8
- end
9
-
10
- def title
11
- Spree::PromotionCategory.model_name.human.pluralize
3
+ class SolidusAdmin::PromotionCategories::Index::Component < SolidusAdmin::UI::Pages::Index::Component
4
+ def model_class
5
+ Spree::PromotionCategory
12
6
  end
13
7
 
14
- def prev_page_path
15
- solidus_admin.url_for(**request.params, page: @page.number - 1, only_path: true) unless @page.first?
8
+ def row_url(promotion_category)
9
+ spree.edit_admin_promotion_category_path(promotion_category)
16
10
  end
17
11
 
18
- def next_page_path
19
- solidus_admin.url_for(**request.params, page: @page.next_param, only_path: true) unless @page.last?
12
+ def page_actions
13
+ render component("ui/button").new(
14
+ tag: :a,
15
+ text: t('.add'),
16
+ href: spree.new_admin_promotion_category_path,
17
+ icon: "add-line",
18
+ )
20
19
  end
21
20
 
22
21
  def batch_actions
@@ -1,22 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class SolidusAdmin::Promotions::Index::Component < SolidusAdmin::BaseComponent
4
- include SolidusAdmin::Layout::PageHelpers
3
+ class SolidusAdmin::Promotions::Index::Component < SolidusAdmin::UI::Pages::Index::Component
4
+ def model_class
5
+ Spree::Promotion
6
+ end
5
7
 
6
- def initialize(page:)
7
- @page = page
8
+ def search_key
9
+ :name_or_codes_value_or_path_or_description_cont
8
10
  end
9
11
 
10
- def title
11
- Spree::Promotion.model_name.human.pluralize
12
+ def search_url
13
+ solidus_admin.promotions_path
12
14
  end
13
15
 
14
- def prev_page_path
15
- solidus_admin.url_for(**request.params, page: @page.number - 1, only_path: true) unless @page.first?
16
+ def row_url(promotion)
17
+ spree.admin_promotion_path(promotion)
16
18
  end
17
19
 
18
- def next_page_path
19
- solidus_admin.url_for(**request.params, page: @page.next_param, only_path: true) unless @page.last?
20
+ def page_actions
21
+ render component("ui/button").new(
22
+ tag: :a,
23
+ text: t('.add'),
24
+ href: spree.new_admin_promotion_path,
25
+ icon: "add-line",
26
+ )
20
27
  end
21
28
 
22
29
  def batch_actions
@@ -1,8 +1,4 @@
1
1
  en:
2
- promotion_image: 'Image'
3
- add: 'Add new'
4
- batch_actions:
5
- delete: 'Delete'
6
2
  scopes:
7
3
  active: Active
8
4
  draft: Draft
@@ -1,22 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class SolidusAdmin::Properties::Index::Component < SolidusAdmin::BaseComponent
4
- include SolidusAdmin::Layout::PageHelpers
3
+ class SolidusAdmin::Properties::Index::Component < SolidusAdmin::UI::Pages::Index::Component
4
+ def model_class
5
+ Spree::Property
6
+ end
5
7
 
6
- def initialize(page:)
7
- @page = page
8
+ def search_key
9
+ :name_cont
8
10
  end
9
11
 
10
- def title
11
- Spree::Property.model_name.human.pluralize
12
+ def search_url
13
+ solidus_admin.properties_path
12
14
  end
13
15
 
14
- def prev_page_path
15
- solidus_admin.url_for(**request.params, page: @page.number - 1, only_path: true) unless @page.first?
16
+ def row_url(property)
17
+ spree.admin_property_path(property)
16
18
  end
17
19
 
18
- def next_page_path
19
- solidus_admin.url_for(**request.params, page: @page.next_param, only_path: true) unless @page.last?
20
+ def page_actions
21
+ render component("ui/button").new(
22
+ tag: :a,
23
+ text: t('.add'),
24
+ href: spree.new_admin_property_path,
25
+ icon: "add-line",
26
+ )
20
27
  end
21
28
 
22
29
  def batch_actions
@@ -30,14 +37,6 @@ class SolidusAdmin::Properties::Index::Component < SolidusAdmin::BaseComponent
30
37
  ]
31
38
  end
32
39
 
33
- def scopes
34
- []
35
- end
36
-
37
- def filters
38
- []
39
- end
40
-
41
40
  def columns
42
41
  [
43
42
  name_column,
@@ -1,22 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class SolidusAdmin::RefundReasons::Index::Component < SolidusAdmin::BaseComponent
4
- include SolidusAdmin::Layout::PageHelpers
3
+ class SolidusAdmin::RefundReasons::Index::Component < SolidusAdmin::RefundsAndReturns::Component
4
+ def model_class
5
+ Spree::RefundReason
6
+ end
5
7
 
6
- def initialize(page:)
7
- @page = page
8
+ def search_url
9
+ solidus_admin.refund_reasons_path
8
10
  end
9
11
 
10
- def title
11
- Spree::RefundReason.model_name.human.pluralize
12
+ def search_key
13
+ :name_or_code_cont
12
14
  end
13
15
 
14
- def prev_page_path
15
- solidus_admin.url_for(**request.params, page: @page.number - 1, only_path: true) unless @page.first?
16
+ def row_url(refund_reason)
17
+ spree.edit_admin_refund_reason_path(refund_reason)
16
18
  end
17
19
 
18
- def next_page_path
19
- solidus_admin.url_for(**request.params, page: @page.next_param, only_path: true) unless @page.last?
20
+ def actions
21
+ render component("ui/button").new(
22
+ tag: :a,
23
+ text: t('.add'),
24
+ href: spree.new_admin_refund_reason_path,
25
+ icon: "add-line",
26
+ class: "align-self-end w-full",
27
+ )
20
28
  end
21
29
 
22
30
  def batch_actions
@@ -30,14 +38,6 @@ class SolidusAdmin::RefundReasons::Index::Component < SolidusAdmin::BaseComponen
30
38
  ]
31
39
  end
32
40
 
33
- def scopes
34
- []
35
- end
36
-
37
- def filters
38
- []
39
- end
40
-
41
41
  def columns
42
42
  [
43
43
  :name,
@@ -1,20 +1,40 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class SolidusAdmin::RefundsAndReturns::Component < SolidusAdmin::BaseComponent
4
- include SolidusAdmin::Layout::PageHelpers
5
- renders_one :actions
6
-
7
- def initialize(current_class:)
8
- @current_class = current_class
3
+ class SolidusAdmin::RefundsAndReturns::Component < SolidusAdmin::UI::Pages::Index::Component
4
+ def title
5
+ page_header_title safe_join([
6
+ tag.div(t(".title")),
7
+ tag.div(t(".subtitle"), class: "font-normal text-sm text-gray-500"),
8
+ ])
9
9
  end
10
10
 
11
11
  def tabs
12
- {
13
- Spree::RefundReason => solidus_admin.refund_reasons_path,
14
- Spree::ReimbursementType => solidus_admin.reimbursement_types_path,
15
- Spree::ReturnReason => solidus_admin.return_reasons_path,
16
- Spree::AdjustmentReason => solidus_admin.adjustment_reasons_path,
17
- Spree::StoreCreditReason => solidus_admin.store_credit_reasons_path,
18
- }
12
+ [
13
+ {
14
+ text: Spree::RefundReason.model_name.human(count: 2),
15
+ href: solidus_admin.refund_reasons_path,
16
+ current: model_class == Spree::RefundReason,
17
+ },
18
+ {
19
+ text: Spree::ReimbursementType.model_name.human(count: 2),
20
+ href: solidus_admin.reimbursement_types_path,
21
+ current: model_class == Spree::ReimbursementType,
22
+ },
23
+ {
24
+ text: Spree::ReturnReason.model_name.human(count: 2),
25
+ href: solidus_admin.return_reasons_path,
26
+ current: model_class == Spree::ReturnReason,
27
+ },
28
+ {
29
+ text: Spree::AdjustmentReason.model_name.human(count: 2),
30
+ href: solidus_admin.adjustment_reasons_path,
31
+ current: model_class == Spree::AdjustmentReason,
32
+ },
33
+ {
34
+ text: Spree::StoreCreditReason.model_name.human(count: 2),
35
+ href: solidus_admin.store_credit_reasons_path,
36
+ current: model_class == Spree::StoreCreditReason,
37
+ },
38
+ ]
19
39
  end
20
40
  end
@@ -1,34 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class SolidusAdmin::ReimbursementTypes::Index::Component < SolidusAdmin::BaseComponent
4
- include SolidusAdmin::Layout::PageHelpers
5
-
6
- def initialize(page:)
7
- @page = page
8
- end
9
-
10
- def title
11
- Spree::ReimbursementType.model_name.human.pluralize
12
- end
13
-
14
- def prev_page_path
15
- solidus_admin.url_for(**request.params, page: @page.number - 1, only_path: true) unless @page.first?
16
- end
17
-
18
- def next_page_path
19
- solidus_admin.url_for(**request.params, page: @page.next_param, only_path: true) unless @page.last?
20
- end
21
-
22
- def batch_actions
23
- []
3
+ class SolidusAdmin::ReimbursementTypes::Index::Component < SolidusAdmin::RefundsAndReturns::Component
4
+ def model_class
5
+ Spree::ReimbursementType
24
6
  end
25
7
 
26
- def scopes
27
- []
8
+ def search_url
9
+ solidus_admin.reimbursement_types_path
28
10
  end
29
11
 
30
- def filters
31
- []
12
+ def search_key
13
+ :name_cont
32
14
  end
33
15
 
34
16
  def columns