solidus_backend 2.8.5 → 2.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree/backend/components/sortable_table.js +1 -0
  3. data/app/assets/javascripts/spree/backend/components/tabs.js +1 -0
  4. data/app/assets/javascripts/spree/backend/shipments.js +1 -0
  5. data/app/assets/javascripts/spree/backend/stock_management.js +9 -0
  6. data/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs +1 -1
  7. data/app/assets/stylesheets/spree/backend/_bootstrap_custom.scss +24 -16
  8. data/app/assets/stylesheets/spree/backend/components/_breadcrumb.scss +12 -0
  9. data/app/assets/stylesheets/spree/backend/components/_buttons.scss +18 -0
  10. data/app/assets/stylesheets/spree/backend/components/_image_placeholder.scss +2 -2
  11. data/app/assets/stylesheets/spree/backend/components/_list_group.scss +2 -2
  12. data/app/assets/stylesheets/spree/backend/components/_messages.scss +20 -12
  13. data/app/assets/stylesheets/spree/backend/components/_navigation.scss +45 -11
  14. data/app/assets/stylesheets/spree/backend/components/_progress.scss +3 -3
  15. data/app/assets/stylesheets/spree/backend/components/_sidebar.scss +1 -2
  16. data/app/assets/stylesheets/spree/backend/components/_tabs.scss +14 -13
  17. data/app/assets/stylesheets/spree/backend/globals/_deprecated_variables.scss +24 -0
  18. data/app/assets/stylesheets/spree/backend/globals/_deprecation.scss +10 -1
  19. data/app/assets/stylesheets/spree/backend/globals/_functions.scss +2 -0
  20. data/app/assets/stylesheets/spree/backend/globals/_variables.scss +88 -57
  21. data/app/assets/stylesheets/spree/backend/globals/_variables_override.scss +1 -0
  22. data/app/assets/stylesheets/spree/backend/globals/mixins/_caret.scss +1 -1
  23. data/app/assets/stylesheets/spree/backend/globals/mixins/_line_through.scss +1 -1
  24. data/app/assets/stylesheets/spree/backend/sections/_log_entries.scss +8 -2
  25. data/app/assets/stylesheets/spree/backend/sections/_orders.scss +17 -6
  26. data/app/assets/stylesheets/spree/backend/sections/_products.scss +3 -1
  27. data/app/assets/stylesheets/spree/backend/sections/_promotions.scss +5 -5
  28. data/app/assets/stylesheets/spree/backend/sections/_style_guide.scss +4 -4
  29. data/app/assets/stylesheets/spree/backend/sections/_taxonomies.scss +1 -1
  30. data/app/assets/stylesheets/spree/backend/shared/_fonts.scss +15 -0
  31. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +27 -7
  32. data/app/assets/stylesheets/spree/backend/shared/_header.scss +2 -2
  33. data/app/assets/stylesheets/spree/backend/shared/_icons.scss +5 -1
  34. data/app/assets/stylesheets/spree/backend/shared/_layout.scss +5 -4
  35. data/app/assets/stylesheets/spree/backend/shared/_tables.scss +11 -6
  36. data/app/assets/stylesheets/spree/backend/shared/_typography.scss +10 -6
  37. data/app/assets/stylesheets/spree/backend/spree_admin.scss +3 -0
  38. data/app/controllers/spree/admin/customer_returns_controller.rb +8 -1
  39. data/app/controllers/spree/admin/log_entries_controller.rb +3 -0
  40. data/app/controllers/spree/admin/orders_controller.rb +0 -1
  41. data/app/controllers/spree/admin/users_controller.rb +4 -2
  42. data/app/helpers/spree/admin/base_helper.rb +9 -3
  43. data/app/helpers/spree/admin/promotions_helper.rb +15 -0
  44. data/app/views/spree/admin/images/index.html.erb +1 -1
  45. data/app/views/spree/admin/log_entries/index.html.erb +1 -19
  46. data/app/views/spree/admin/option_types/edit.html.erb +1 -1
  47. data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +1 -1
  48. data/app/views/spree/admin/payments/_capture_events.html.erb +15 -18
  49. data/app/views/spree/admin/payments/_list.html.erb +1 -1
  50. data/app/views/spree/admin/payments/_log_entries.html.erb +29 -0
  51. data/app/views/spree/admin/payments/show.html.erb +13 -6
  52. data/app/views/spree/admin/payments/source_forms/{_storecredit.html.erb → _store_credit.html.erb} +0 -0
  53. data/app/views/spree/admin/payments/source_views/{_storecredit.html.erb → _store_credit.html.erb} +0 -0
  54. data/app/views/spree/admin/prices/_form.html.erb +1 -1
  55. data/app/views/spree/admin/product_properties/index.html.erb +1 -1
  56. data/app/views/spree/admin/products/_form.html.erb +16 -5
  57. data/app/views/spree/admin/products/edit.html.erb +1 -1
  58. data/app/views/spree/admin/promotions/_form.html.erb +2 -2
  59. data/app/views/spree/admin/promotions/index.html.erb +4 -4
  60. data/app/views/spree/admin/reimbursements/edit.html.erb +2 -2
  61. data/app/views/spree/admin/shared/_head.html.erb +0 -3
  62. data/app/views/spree/admin/shared/_modal.html.erb +1 -1
  63. data/app/views/spree/admin/shipping_methods/_form.html.erb +10 -10
  64. data/app/views/spree/admin/stock_items/_stock_management.html.erb +1 -1
  65. data/app/views/spree/admin/store_credits/edit_validity.html.erb +1 -1
  66. data/app/views/spree/admin/store_credits/index.html.erb +1 -1
  67. data/app/views/spree/admin/store_credits/show.html.erb +1 -1
  68. data/app/views/spree/admin/stores/_form.html.erb +1 -0
  69. data/app/views/spree/admin/style_guide/topics/typography/_colors.html.erb +30 -20
  70. data/app/views/spree/admin/style_guide/topics/typography/_fonts.html.erb +1 -1
  71. data/app/views/spree/admin/taxonomies/edit.html.erb +1 -1
  72. data/app/views/spree/admin/taxons/_form.html.erb +1 -1
  73. data/app/views/spree/admin/taxons/edit.html.erb +2 -2
  74. data/app/views/spree/admin/users/edit.html.erb +2 -2
  75. data/app/views/spree/admin/users/index.html.erb +2 -2
  76. data/app/views/spree/admin/variants/_form.html.erb +1 -1
  77. data/app/views/spree/admin/variants/index.html.erb +1 -1
  78. data/app/views/spree/admin/zones/_state_members.html.erb +1 -1
  79. data/spec/controllers/spree/admin/locale_controller_spec.rb +45 -0
  80. data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +3 -3
  81. data/spec/controllers/spree/admin/orders_controller_spec.rb +2 -2
  82. data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +1 -1
  83. data/spec/features/admin/locale_spec.rb +1 -2
  84. data/spec/features/admin/orders/adjustments_spec.rb +1 -1
  85. data/spec/features/admin/orders/customer_details_spec.rb +5 -7
  86. data/spec/features/admin/orders/customer_returns_spec.rb +28 -0
  87. data/spec/features/admin/orders/listing_spec.rb +1 -6
  88. data/spec/features/admin/orders/log_entries_spec.rb +2 -2
  89. data/spec/features/admin/orders/new_order_spec.rb +3 -3
  90. data/spec/features/admin/orders/order_details_spec.rb +8 -3
  91. data/spec/features/admin/orders/payments_spec.rb +80 -39
  92. data/spec/features/admin/products/edit/products_spec.rb +25 -0
  93. data/spec/features/admin/products/edit/taxons_spec.rb +4 -0
  94. data/spec/features/admin/products/pricing_spec.rb +24 -6
  95. data/spec/features/admin/products/products_spec.rb +4 -4
  96. data/spec/features/admin/products/variant_spec.rb +1 -1
  97. data/spec/features/admin/promotions/promotion_spec.rb +52 -0
  98. data/spec/features/admin/store_credits_spec.rb +3 -3
  99. data/spec/features/admin/users_spec.rb +22 -0
  100. data/spec/spec_helper.rb +1 -2
  101. data/spec/support/appear_before_matcher.rb +1 -1
  102. data/vendor/assets/fonts/inter/Inter-Regular.woff +0 -0
  103. data/vendor/assets/fonts/inter/Inter-Regular.woff2 +0 -0
  104. data/vendor/assets/fonts/inter/Inter-SemiBold.woff +0 -0
  105. data/vendor/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
  106. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_pagination.scss +4 -0
  107. metadata +20 -9
  108. data/.eslintrc +0 -21
@@ -48,7 +48,7 @@
48
48
 
49
49
  > a {
50
50
  font-size: 1.2rem;
51
- font-weight: 300;
51
+ font-weight: $font-weight-normal;
52
52
  }
53
53
  }
54
54
 
@@ -64,7 +64,7 @@
64
64
  }
65
65
 
66
66
  &-intro,
67
- &-section:not(:last-child) {
67
+ &-section {
68
68
  margin: 4rem 0;
69
69
  }
70
70
 
@@ -112,8 +112,8 @@
112
112
  table.with-actions-borders {
113
113
  th, td {
114
114
  &.actions {
115
- border-right: 1px solid #cee1f4 !important;
116
- border-bottom: 1px solid #cee1f4 !important;
115
+ border-right: 1px solid $color-style-guide-table-border !important;
116
+ border-bottom: 1px solid $color-style-guide-table-border !important;
117
117
  }
118
118
  }
119
119
  }
@@ -12,7 +12,7 @@
12
12
  }
13
13
 
14
14
  .taxon {
15
- background-color: very-light($color-3);
15
+ background-color: $color-light;
16
16
  border: 1px solid $color-border;
17
17
  border-radius: $border-radius;
18
18
  color: $body-color;
@@ -0,0 +1,15 @@
1
+ @font-face {
2
+ font-family: 'Inter';
3
+ font-style: normal;
4
+ font-weight: $font-weight-normal;
5
+ src: font-url("inter/Inter-Regular.woff2") format("woff2"),
6
+ font-url("inter/Inter-Regular.woff") format("woff");
7
+ }
8
+
9
+ @font-face {
10
+ font-family: 'Inter';
11
+ font-style: normal;
12
+ font-weight: $font-weight-bold;
13
+ src: font-url("inter/Inter-SemiBold.woff2") format("woff2"),
14
+ font-url("inter/Inter-SemiBold.woff") format("woff");
15
+ }
@@ -41,6 +41,8 @@ textarea {
41
41
  }
42
42
 
43
43
  label {
44
+ font-size: inherit;
45
+
44
46
  &.required:after {
45
47
  content: " *";
46
48
  }
@@ -64,7 +66,19 @@ button,
64
66
  // In order to avoid the clashing between using `:not(.btn)` and
65
67
  // `@extend .btn` we need to use an attribute selector of `[class*="btn"]`.
66
68
  @extend .btn;
67
- @include button-variant(theme-color("primary"), theme-color("primary"));
69
+ background: linear-gradient($color-white, lighten($color-light-dark, 2%));
70
+ color: $color-dark;
71
+ border-color: $color-dark-accent;
72
+
73
+ &:hover {
74
+ background: linear-gradient($color-white, $color-light-dark);
75
+ color: $color-primary;
76
+ }
77
+
78
+ &.disabled,
79
+ &:disabled {
80
+ color: $color-disabled;
81
+ }
68
82
  }
69
83
 
70
84
  &:before {
@@ -106,6 +120,10 @@ span.info {
106
120
  margin-top: 2.25rem;
107
121
  }
108
122
  }
123
+
124
+ label {
125
+ font-size: $label-font-size;
126
+ }
109
127
 
110
128
  ul {
111
129
  list-style: none;
@@ -131,21 +149,21 @@ span.info {
131
149
  &.withError {
132
150
  .field_with_errors {
133
151
  label {
134
- color: very-light(theme-color("danger"), 30);
152
+ color: theme-color("danger");
135
153
  }
136
154
 
137
155
  input {
138
- border-color: very-light(theme-color("danger"), 15);
156
+ border-color: theme-color("danger");
139
157
  }
140
158
  }
141
159
  .formError {
142
- color: very-light(theme-color("danger"), 30);
160
+ color: lighten(theme-color("danger"), 15);
143
161
  font-style: italic;
144
162
  font-size: 85%;
145
163
  }
146
164
  .select2-container {
147
165
  border-radius: 4px;
148
- border: 1px solid very-light(theme-color("danger"), 15);
166
+ border: 1px solid theme-color("danger");
149
167
  }
150
168
  }
151
169
  }
@@ -172,12 +190,14 @@ fieldset {
172
190
  }
173
191
 
174
192
  legend {
175
- color: $color-2;
176
- font-size: 16px;
193
+ color: $color-dark;
194
+ font-size: 14px;
177
195
  font-weight: $font-weight-bold;
178
196
  text-align: center;
179
197
  padding: 8px 15px;
180
198
  width: auto;
199
+ margin-left: auto;
200
+ margin-right: auto;
181
201
 
182
202
  -webkit-font-smoothing: antialiased;
183
203
  -moz-osx-font-smoothing: grayscale;
@@ -2,7 +2,7 @@
2
2
  display: flex;
3
3
  align-items: center;
4
4
  padding: 15px $grid-gutter-width;
5
- background-color: very-light($color-3, 4);
5
+ background-color: $color-header-bg;
6
6
  border-bottom: 1px solid $color-border;
7
7
  height: $main-header-height;
8
8
 
@@ -17,7 +17,7 @@
17
17
  -moz-osx-font-smoothing: grayscale;
18
18
 
19
19
  i {
20
- color: $color-2;
20
+ color: $color-primary;
21
21
  }
22
22
  }
23
23
 
@@ -14,6 +14,10 @@
14
14
  }
15
15
  }
16
16
 
17
+ .btn.fa {
18
+ font: normal normal $btn-font-weight #{$font-size-base}/#{$btn-line-height} "FontAwesome";
19
+ }
20
+
17
21
  .fa-email { @extend .fa-envelope }
18
22
  .fa-resume { @extend .fa-refresh }
19
23
  .fa-approve { @extend .fa-check }
@@ -26,7 +30,7 @@
26
30
 
27
31
  .fa-trash { @extend .fa-trash-o }
28
32
 
29
- .fa-capture { @extend .fa-check }
33
+ .fa-capture { @extend .fa-thumbs-up }
30
34
  .fa-credit { @extend .fa-check }
31
35
  .fa-approve { @extend .fa-check }
32
36
  .fa-icon-cogs { @extend .fa-cogs }
@@ -8,6 +8,10 @@ body {
8
8
  padding-left: $width-sidebar;
9
9
  }
10
10
 
11
+ .admin {
12
+ background-color: $admin-body-bg;
13
+ }
14
+
11
15
  .admin-nav {
12
16
  position: absolute;
13
17
  top: 0;
@@ -18,6 +22,7 @@ body {
18
22
  }
19
23
 
20
24
  .content-wrapper {
25
+ background-color: $content-wrapper-bg;
21
26
  padding-top: 1rem;
22
27
  padding-left: $grid-gutter-width;
23
28
  padding-right: $grid-gutter-width;
@@ -29,10 +34,6 @@ body {
29
34
  }
30
35
  }
31
36
 
32
- .content-main {
33
- overflow-x: hidden; // makes sure that the tabs are able to resize
34
- }
35
-
36
37
  #content {
37
38
  position: relative;
38
39
  padding: 0;
@@ -47,12 +47,12 @@ table {
47
47
 
48
48
  button[class*='fa-'] {
49
49
  color: $link-color;
50
- background-color: transparent;
50
+ background: transparent;
51
51
  border: 0 none;
52
52
  padding: 0 !important;
53
53
 
54
54
  &:hover {
55
- background-color: transparent;
55
+ background: transparent;
56
56
  }
57
57
  }
58
58
 
@@ -61,7 +61,7 @@ table {
61
61
  padding-left: 0px;
62
62
 
63
63
  &:hover {
64
- color: $color-3;
64
+ color: $color-dark-light;
65
65
  }
66
66
  }
67
67
 
@@ -108,14 +108,14 @@ table {
108
108
  }
109
109
 
110
110
  th a {
111
- color: $color-4;
111
+ color: $color-dark;
112
112
  }
113
113
 
114
114
  tbody {
115
115
  tr {
116
116
  &.deleted td {
117
- background-color: very-light(theme-color("danger"), 6);
118
- border-color: very-light(theme-color("danger"), 15);
117
+ background-color: lighten(theme-color("danger"), 6);
118
+ border-color: lighten(theme-color("danger"), 15);
119
119
  }
120
120
  }
121
121
 
@@ -123,4 +123,9 @@ table {
123
123
  border-top: none;
124
124
  }
125
125
  }
126
+
127
+ pre {
128
+ font-size: 100%;
129
+ margin-bottom: 0;
130
+ }
126
131
  }
@@ -7,7 +7,7 @@ html {
7
7
 
8
8
  body {
9
9
  padding: 0;
10
- font-weight: 400;
10
+ font-weight: $font-weight-normal;
11
11
  text-rendering: optimizeLegibility;
12
12
  }
13
13
 
@@ -17,6 +17,11 @@ hr {
17
17
  border-left: none;
18
18
  }
19
19
 
20
+ strong,
21
+ b {
22
+ font-weight: $font-weight-bold;
23
+ }
24
+
20
25
  // Headings
21
26
  //--------------------------------------------------------------
22
27
 
@@ -68,7 +73,6 @@ dl {
68
73
  width: 40%;
69
74
  font-weight: $font-weight-bold;
70
75
  padding-left: 0;
71
- font-size: 85%;
72
76
  clear: left;
73
77
  }
74
78
 
@@ -93,10 +97,10 @@ dl {
93
97
 
94
98
  .uppercase { text-transform: uppercase }
95
99
 
96
- .green { color: $color-2 }
97
- .blue { color: $color-3 }
98
- .red { color: $color-5 }
99
- .yellow { color: $color-6 }
100
+ .green { color: $color-green }
101
+ .blue { color: $color-primary }
102
+ .red { color: $color-red }
103
+ .yellow { color: $color-yellow }
100
104
 
101
105
  .negative { color: $red }
102
106
  input[type="number"].negative { color: $red } // needed to override blue style that is more specific than '.negative'
@@ -2,12 +2,14 @@
2
2
  @import 'spree/backend/globals/deprecation';
3
3
  @import 'spree/backend/globals/variables_override';
4
4
  @import 'spree/backend/globals/variables';
5
+ @import 'spree/backend/globals/deprecated_variables';
5
6
 
6
7
  @import 'bootstrap_custom';
7
8
  @import 'solidus_admin/bootstrap/bootstrap';
8
9
 
9
10
  @import 'spree/backend/globals/mixins';
10
11
 
12
+ @import 'spree/backend/shared/fonts';
11
13
  @import 'spree/backend/shared/typography';
12
14
  @import 'spree/backend/shared/images';
13
15
  @import 'spree/backend/shared/tables';
@@ -20,6 +22,7 @@
20
22
  @import 'spree/backend/components/states';
21
23
  @import 'spree/backend/components/actions';
22
24
  @import 'spree/backend/components/breadcrumb';
25
+ @import 'spree/backend/components/buttons';
23
26
  @import 'spree/backend/components/number_with_currency';
24
27
  @import 'spree/backend/components/hint';
25
28
  @import 'spree/backend/components/image_placeholder';
@@ -10,6 +10,7 @@ module Spree
10
10
  before_action :load_form_data, only: [:new, :edit]
11
11
  before_action :build_return_items_from_params, only: [:create]
12
12
  create.fails :load_form_data
13
+ create.after :order_process_return
13
14
 
14
15
  def edit
15
16
  @pending_return_items = @customer_return.return_items.select(&:pending?)
@@ -23,6 +24,10 @@ module Spree
23
24
 
24
25
  private
25
26
 
27
+ def order_process_return
28
+ @customer_return.process_return!
29
+ end
30
+
26
31
  def location_after_save
27
32
  url_for([:edit, :admin, @order, @customer_return])
28
33
  end
@@ -60,11 +65,13 @@ module Spree
60
65
 
61
66
  def build_return_items_from_params
62
67
  return_items_params = permitted_resource_params.delete(:return_items_attributes).values
63
-
64
68
  @customer_return.return_items = return_items_params.map do |item_params|
65
69
  next unless item_params.delete('returned') == '1'
66
70
  return_item = item_params[:id] ? Spree::ReturnItem.find(item_params[:id]) : Spree::ReturnItem.new
67
71
  return_item.assign_attributes(item_params)
72
+
73
+ return_item.skip_customer_return_processing = true
74
+
68
75
  if item_params[:reception_status_event].blank?
69
76
  return redirect_to(new_object_url, flash: { error: 'Reception status choice required' })
70
77
  end
@@ -6,6 +6,9 @@ module Spree
6
6
  before_action :find_order_and_payment
7
7
 
8
8
  def index
9
+ Spree::Deprecation.warn 'Using a dedicated route for payment log entries ' \
10
+ 'has been deprecated in favor of displaying the log entries on ' \
11
+ 'the payment screen itself.', caller_locations(0)
9
12
  @log_entries = @payment.log_entries
10
13
  end
11
14
 
@@ -14,7 +14,6 @@ module Spree
14
14
  respond_to :html
15
15
 
16
16
  def index
17
- query_present = params[:q]
18
17
  params[:q] ||= {}
19
18
  params[:q][:completed_at_not_null] ||= '1' if Spree::Config[:show_only_complete_orders_by_default]
20
19
  @show_only_completed = params[:q][:completed_at_not_null] == '1'
@@ -71,24 +71,26 @@ module Spree
71
71
 
72
72
  def items
73
73
  params[:q] ||= {}
74
+
74
75
  @search = Spree::Order.includes(
75
76
  line_items: {
76
77
  variant: [:product, { option_values: :option_type }]
77
78
  }
78
79
  ).ransack(params[:q].merge(user_id_eq: @user.id))
80
+
79
81
  @orders = @search.result.page(params[:page]).per(Spree::Config[:admin_products_per_page])
80
82
  end
81
83
 
82
84
  def generate_api_key
83
85
  if @user.generate_spree_api_key!
84
- flash[:success] = t('spree.api.key_generated')
86
+ flash[:success] = t('spree.admin.api.key_generated')
85
87
  end
86
88
  redirect_to edit_admin_user_path(@user)
87
89
  end
88
90
 
89
91
  def clear_api_key
90
92
  if @user.clear_spree_api_key!
91
- flash[:success] = t('spree.api.key_cleared')
93
+ flash[:success] = t('spree.admin.api.key_cleared')
92
94
  end
93
95
  redirect_to edit_admin_user_path(@user)
94
96
  end
@@ -30,10 +30,16 @@ module Spree
30
30
  end
31
31
  end
32
32
 
33
- def datepicker_field_value(date)
34
- unless date.blank?
35
- l(date, format: t('spree.date_picker.format', default: '%Y/%m/%d'))
33
+ def datepicker_field_value(date, with_time: false)
34
+ return if date.blank?
35
+
36
+ format = if with_time
37
+ t('spree.date_picker.format_with_time', default: '%Y/%m/%d %H:%M')
38
+ else
39
+ t('spree.date_picker.format', default: '%Y/%m/%d')
36
40
  end
41
+
42
+ l(date, format: format)
37
43
  end
38
44
 
39
45
  # @deprecated Render `spree/admin/shared/preference_fields/\#{preference_type}' instead
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module Admin
5
+ module PromotionsHelper
6
+ def admin_promotion_status(promotion)
7
+ return :active if promotion.active?
8
+ return :not_started if promotion.not_started?
9
+ return :expired if promotion.expired?
10
+
11
+ :inactive
12
+ end
13
+ end
14
+ end
15
+ end