spree_backend 4.2.0.rc2 → 4.2.0.rc3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spree/backend.js +0 -1
- data/app/assets/javascripts/spree/backend/address_states.js +20 -9
- data/app/assets/javascripts/spree/backend/calculator.js +2 -0
- data/app/assets/javascripts/spree/backend/checkouts/edit.js +99 -71
- data/app/assets/javascripts/spree/backend/line_items_on_order_edit.js +1 -1
- data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +31 -37
- data/app/assets/javascripts/spree/backend/option_value_picker.js +50 -23
- data/app/assets/javascripts/spree/backend/product_picker.js +35 -19
- data/app/assets/javascripts/spree/backend/promotions.js +32 -27
- data/app/assets/javascripts/spree/backend/shipments.js +28 -37
- data/app/assets/javascripts/spree/backend/spree-select2.js +33 -14
- data/app/assets/javascripts/spree/backend/stock_transfer.js +32 -13
- data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +30 -43
- data/app/assets/javascripts/spree/backend/taxons.js +60 -47
- data/app/assets/javascripts/spree/backend/user_picker.js +16 -18
- data/app/assets/javascripts/spree/backend/variant_autocomplete.js +23 -22
- data/app/assets/stylesheets/spree/backend/components/_badges.scss +1 -1
- data/app/assets/stylesheets/spree/backend/components/_tables.scss +2 -2
- data/app/assets/stylesheets/spree/backend/global/_variables.scss +1 -1
- data/app/assets/stylesheets/spree/backend/plugins/_select2_custom.scss +11 -0
- data/app/assets/stylesheets/spree/backend/plugins/select2_bootstrap4.scss +622 -0
- data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +2 -1
- data/app/controllers/spree/admin/orders_controller.rb +15 -2
- data/app/controllers/spree/admin/products_controller.rb +2 -2
- data/app/controllers/spree/admin/states_controller.rb +1 -1
- data/app/controllers/spree/admin/taxons_controller.rb +15 -5
- data/app/helpers/spree/admin/base_helper.rb +21 -5
- data/app/helpers/spree/admin/navigation_helper.rb +11 -1
- data/app/helpers/spree/admin/payments_helper.rb +3 -3
- data/app/helpers/spree/admin/stock_movements_helper.rb +2 -0
- data/app/views/spree/admin/countries/index.html.erb +6 -6
- data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +3 -1
- data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +3 -1
- data/app/views/spree/admin/customer_returns/index.html.erb +2 -2
- data/app/views/spree/admin/customer_returns/new.html.erb +1 -1
- data/app/views/spree/admin/general_settings/edit.html.erb +25 -2
- data/app/views/spree/admin/option_types/index.html.erb +1 -1
- data/app/views/spree/admin/orders/_add_line_item.html.erb +1 -1
- data/app/views/spree/admin/orders/_add_product.html.erb +1 -1
- data/app/views/spree/admin/orders/_channel_form.html.erb +18 -0
- data/app/views/spree/admin/orders/_shipment.html.erb +3 -1
- data/app/views/spree/admin/orders/channel.html.erb +7 -0
- data/app/views/spree/admin/orders/customer_details/_autocomplete.js.erb +35 -12
- data/app/views/spree/admin/orders/customer_details/_form.html.erb +2 -2
- data/app/views/spree/admin/orders/customer_details/edit.html.erb +1 -1
- data/app/views/spree/admin/orders/index.html.erb +10 -11
- data/app/views/spree/admin/payment_methods/_form.html.erb +65 -46
- data/app/views/spree/admin/payment_methods/index.html.erb +1 -1
- data/app/views/spree/admin/products/_form.html.erb +4 -4
- data/app/views/spree/admin/products/index.html.erb +2 -1
- data/app/views/spree/admin/products/new.html.erb +2 -2
- data/app/views/spree/admin/promotion_rules/create.js.erb +1 -1
- data/app/views/spree/admin/promotions/_form.html.erb +1 -1
- data/app/views/spree/admin/promotions/actions/_create_line_items.html.erb +1 -1
- data/app/views/spree/admin/promotions/rules/_option_value.html.erb +8 -7
- data/app/views/spree/admin/promotions/rules/_product.html.erb +1 -1
- data/app/views/spree/admin/promotions/rules/_taxon.html.erb +1 -1
- data/app/views/spree/admin/promotions/rules/_user.html.erb +1 -1
- data/app/views/spree/admin/refunds/new.html.erb +1 -1
- data/app/views/spree/admin/reimbursements/edit.html.erb +4 -2
- data/app/views/spree/admin/reimbursements/show.html.erb +3 -1
- data/app/views/spree/admin/return_authorizations/_form.html.erb +7 -5
- data/app/views/spree/admin/return_authorizations/index.html.erb +2 -2
- data/app/views/spree/admin/return_index/customer_returns.html.erb +2 -2
- data/app/views/spree/admin/return_index/return_authorizations.html.erb +2 -2
- data/app/views/spree/admin/shared/_account_nav.html.erb +1 -1
- data/app/views/spree/admin/shared/_address_form.html.erb +7 -7
- data/app/views/spree/admin/shared/_head.html.erb +4 -0
- data/app/views/spree/admin/shared/_order_summary.html.erb +25 -21
- data/app/views/spree/admin/shared/_order_tabs.html.erb +9 -0
- data/app/views/spree/admin/shared/_refunds.html.erb +1 -1
- data/app/views/spree/admin/shared/_translations.html.erb +1 -0
- data/app/views/spree/admin/shared/_update_order_state.js.erb +6 -2
- data/app/views/spree/admin/shared/named_types/_index.html.erb +1 -1
- data/app/views/spree/admin/shipping_methods/_form.html.erb +2 -2
- data/app/views/spree/admin/shipping_methods/index.html.erb +5 -1
- data/app/views/spree/admin/stock_locations/_form.html.erb +1 -1
- data/app/views/spree/admin/stock_locations/index.html.erb +2 -2
- data/app/views/spree/admin/stock_transfers/_stock_movements.html.erb +1 -1
- data/app/views/spree/admin/stock_transfers/index.html.erb +42 -37
- data/app/views/spree/admin/stock_transfers/new.html.erb +1 -1
- data/app/views/spree/admin/stores/_form.html.erb +64 -11
- data/app/views/spree/admin/stores/index.html.erb +11 -6
- data/app/views/spree/admin/tax_categories/index.html.erb +1 -1
- data/app/views/spree/admin/tax_rates/index.html.erb +2 -2
- data/app/views/spree/admin/taxons/_form.html.erb +39 -35
- data/app/views/spree/admin/taxons/index.html.erb +1 -1
- data/app/views/spree/admin/users/_addresses_form.html.erb +4 -6
- data/app/views/spree/admin/variants/_form.html.erb +2 -2
- data/app/views/spree/admin/zones/index.html.erb +1 -1
- data/config/routes.rb +7 -1
- data/spree_backend.gemspec +1 -1
- metadata +15 -14
- data/app/assets/javascripts/spree/backend/tag_picker.js +0 -52
- data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +0 -190
- data/app/views/spree/admin/general_settings/_form.html.erb +0 -17
@@ -18,9 +18,10 @@
|
|
18
18
|
@import 'components/progress';
|
19
19
|
@import 'components/spinner';
|
20
20
|
|
21
|
-
@import 'plugins/select2';
|
22
21
|
@import 'plugins/jquery_ui';
|
23
22
|
@import 'plugins/flatpickr';
|
23
|
+
@import 'plugins/select2_bootstrap4';
|
24
|
+
@import 'plugins/select2_custom';
|
24
25
|
|
25
26
|
@import 'shared/base';
|
26
27
|
@import 'shared/forms';
|
@@ -2,7 +2,10 @@ module Spree
|
|
2
2
|
module Admin
|
3
3
|
class OrdersController < Spree::Admin::BaseController
|
4
4
|
before_action :initialize_order_events
|
5
|
-
before_action :load_order, only: [
|
5
|
+
before_action :load_order, only: %i[
|
6
|
+
edit update cancel resume approve resend open_adjustments
|
7
|
+
close_adjustments cart store set_store channel set_channel
|
8
|
+
]
|
6
9
|
|
7
10
|
respond_to :html
|
8
11
|
|
@@ -144,11 +147,21 @@ module Spree
|
|
144
147
|
redirect_to store_admin_order_url(@order)
|
145
148
|
end
|
146
149
|
|
150
|
+
def set_channel
|
151
|
+
if @order.update(order_params)
|
152
|
+
flash[:success] = flash_message_for(@order, :successfully_updated)
|
153
|
+
else
|
154
|
+
flash[:error] = @order.errors.full_messages.join(', ')
|
155
|
+
end
|
156
|
+
|
157
|
+
redirect_to channel_admin_order_url(@order)
|
158
|
+
end
|
159
|
+
|
147
160
|
private
|
148
161
|
|
149
162
|
def order_params
|
150
163
|
params[:created_by_id] = try_spree_current_user.try(:id)
|
151
|
-
params.permit(:created_by_id, :user_id, :store_id)
|
164
|
+
params.permit(:created_by_id, :user_id, :store_id, :channel)
|
152
165
|
end
|
153
166
|
|
154
167
|
def load_order
|
@@ -20,10 +20,10 @@ module Spree
|
|
20
20
|
|
21
21
|
def update
|
22
22
|
if params[:product][:taxon_ids].present?
|
23
|
-
params[:product][:taxon_ids] = params[:product][:taxon_ids].
|
23
|
+
params[:product][:taxon_ids] = params[:product][:taxon_ids].reject(&:empty?)
|
24
24
|
end
|
25
25
|
if params[:product][:option_type_ids].present?
|
26
|
-
params[:product][:option_type_ids] = params[:product][:option_type_ids].
|
26
|
+
params[:product][:option_type_ids] = params[:product][:option_type_ids].reject(&:empty?)
|
27
27
|
end
|
28
28
|
invoke_callbacks(:update, :before)
|
29
29
|
if @object.update(permitted_resource_params)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class TaxonsController < Spree::Admin::BaseController
|
4
|
-
before_action :load_taxonomy, only: [:create, :edit, :update]
|
5
|
-
before_action :load_taxon, only: [:edit, :update]
|
4
|
+
before_action :load_taxonomy, only: [:create, :edit, :update, :remove_icon]
|
5
|
+
before_action :load_taxon, only: [:edit, :update, :remove_icon]
|
6
6
|
before_action :set_permalink_part, only: [:edit, :update]
|
7
7
|
respond_to :html, :js
|
8
8
|
|
@@ -62,10 +62,22 @@ module Spree
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
+
def remove_icon
|
66
|
+
if @taxon.icon.destroy
|
67
|
+
flash[:success] = Spree.t('notice_messages.icon_removed')
|
68
|
+
redirect_to edit_admin_taxonomy_taxon_url(@taxonomy.id, @taxon.id)
|
69
|
+
else
|
70
|
+
flash[:error] = Spree.t('errors.messages.cannot_remove_icon')
|
71
|
+
render :edit
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
65
75
|
private
|
66
76
|
|
67
77
|
def set_permalink_part
|
68
78
|
@permalink_part = @taxon.permalink.split('/').last
|
79
|
+
@parent_permalink = @taxon.permalink.split('/')[0...-1].join('/')
|
80
|
+
@parent_permalink += '/' unless @parent_permalink.blank?
|
69
81
|
end
|
70
82
|
|
71
83
|
def taxon_params
|
@@ -95,9 +107,7 @@ module Spree
|
|
95
107
|
|
96
108
|
def set_permalink_params
|
97
109
|
if params.key? 'permalink_part'
|
98
|
-
|
99
|
-
parent_permalink += '/' unless parent_permalink.blank?
|
100
|
-
params[:taxon][:permalink] = parent_permalink + params[:permalink_part]
|
110
|
+
params[:taxon][:permalink] = @parent_permalink + params[:permalink_part]
|
101
111
|
end
|
102
112
|
end
|
103
113
|
|
@@ -93,7 +93,9 @@ module Spree
|
|
93
93
|
class: 'input_integer form-control'
|
94
94
|
}
|
95
95
|
when :boolean
|
96
|
-
{
|
96
|
+
{
|
97
|
+
class: 'form-check-input'
|
98
|
+
}
|
97
99
|
when :string
|
98
100
|
{
|
99
101
|
size: 10,
|
@@ -127,11 +129,25 @@ module Spree
|
|
127
129
|
|
128
130
|
fields = object.preferences.keys.map do |key|
|
129
131
|
if object.has_preference?(key)
|
130
|
-
|
131
|
-
|
132
|
+
case key
|
133
|
+
when :currency
|
134
|
+
content_tag(:div, form.label("preferred_#{key}", Spree.t(key)) +
|
135
|
+
(form.select "preferred_#{key}", currency_options(object.preferences[key]), {}, { class: 'form-control select2' }),
|
136
|
+
class: 'form-group', id: [object.class.to_s.parameterize, 'preference', key].join('-'))
|
137
|
+
else
|
138
|
+
if object.preference_type(key) == :boolean
|
139
|
+
content_tag(:div, preference_field_for(form, "preferred_#{key}", type: object.preference_type(key)) +
|
140
|
+
form.label("preferred_#{key}", Spree.t(key), class: 'form-check-label'),
|
141
|
+
class: 'form-group form-check', id: [object.class.to_s.parameterize, 'preference', key].join('-'))
|
142
|
+
else
|
143
|
+
content_tag(:div, form.label("preferred_#{key}", Spree.t(key)) +
|
144
|
+
preference_field_for(form, "preferred_#{key}", type: object.preference_type(key)),
|
145
|
+
class: 'form-group', id: [object.class.to_s.parameterize, 'preference', key].join('-'))
|
146
|
+
end
|
147
|
+
end
|
132
148
|
end
|
133
149
|
end
|
134
|
-
safe_join(fields
|
150
|
+
safe_join(fields)
|
135
151
|
end
|
136
152
|
|
137
153
|
# renders hidden field and link to remove record using nested_attributes
|
@@ -163,7 +179,7 @@ module Spree
|
|
163
179
|
end
|
164
180
|
|
165
181
|
def required_span_tag
|
166
|
-
content_tag(:span, ' *', class: 'required')
|
182
|
+
content_tag(:span, ' *', class: 'required font-weight-bold text-danger')
|
167
183
|
end
|
168
184
|
|
169
185
|
def product_preview_link(product)
|
@@ -130,7 +130,7 @@ module Spree
|
|
130
130
|
|
131
131
|
def link_to_clone(resource, options = {})
|
132
132
|
options[:data] = { action: 'clone', 'original-title': Spree.t(:clone) }
|
133
|
-
options[:class] = 'btn btn-
|
133
|
+
options[:class] = 'btn btn-warning btn-sm with-tip'
|
134
134
|
options[:method] = :post
|
135
135
|
options[:icon] = 'clone.svg'
|
136
136
|
button_link_to '', clone_object_url(resource), options
|
@@ -251,6 +251,16 @@ module Spree
|
|
251
251
|
end
|
252
252
|
end
|
253
253
|
|
254
|
+
def active_badge(condition, options = {})
|
255
|
+
label = options[:label]
|
256
|
+
label ||= condition ? Spree.t(:say_yes) : Spree.t(:say_no)
|
257
|
+
css_class = condition ? 'badge-active' : 'badge-inactive'
|
258
|
+
|
259
|
+
content_tag(:strong, class: "badge #{css_class} text-uppercase") do
|
260
|
+
label
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
254
264
|
def main_part_classes
|
255
265
|
if cookies['sidebar-minimized'] == 'true'
|
256
266
|
'col-12 sidebar-collapsed'
|
@@ -2,9 +2,9 @@ module Spree
|
|
2
2
|
module Admin
|
3
3
|
module PaymentsHelper
|
4
4
|
def payment_method_name(payment)
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
payment_method = payment.payment_method
|
6
|
+
|
7
|
+
link_to payment_method.name, spree.edit_admin_payment_method_path(payment_method)
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -5,6 +5,8 @@ module Spree
|
|
5
5
|
if stock_movement.originator.respond_to?(:number)
|
6
6
|
if stock_movement.originator.respond_to?(:order)
|
7
7
|
link_to stock_movement.originator.number, [:edit, :admin, stock_movement.originator.order]
|
8
|
+
elsif stock_movement.originator.is_a?(Spree::StockTransfer)
|
9
|
+
link_to stock_movement.originator.number, spree.admin_stock_transfer_url(stock_movement.originator)
|
8
10
|
else
|
9
11
|
stock_movement.originator.number
|
10
12
|
end
|
@@ -10,9 +10,9 @@
|
|
10
10
|
<thead>
|
11
11
|
<tr data-hook="tax_header">
|
12
12
|
<th><%= Spree.t(:country_name) %></th>
|
13
|
-
<th><%= Spree.t(:iso3) %></th>
|
14
|
-
<th><%= Spree.t(:states_required) %></th>
|
15
|
-
<th><%= Spree.t(:zipcode_required) %></th>
|
13
|
+
<th class="text-center"><%= Spree.t(:iso3) %></th>
|
14
|
+
<th class="text-center"><%= Spree.t(:states_required) %></th>
|
15
|
+
<th class="text-center"><%= Spree.t(:zipcode_required) %></th>
|
16
16
|
<th class="actions"></th>
|
17
17
|
</tr>
|
18
18
|
</thead>
|
@@ -20,9 +20,9 @@
|
|
20
20
|
<% @countries.each do |country| %>
|
21
21
|
<tr id="<%= spree_dom_id country %>" data-hook="country_row">
|
22
22
|
<td><%= country.name %></td>
|
23
|
-
<td><%= country.iso3 %></td>
|
24
|
-
<td class="text-center"><%= country.states_required?
|
25
|
-
<td class="text-center"><%= country.zipcode_required?
|
23
|
+
<td class="text-center"><%= country.iso3 %></td>
|
24
|
+
<td class="text-center"><%= active_badge(country.states_required?) %></td>
|
25
|
+
<td class="text-center"><%= active_badge(country.zipcode_required?) %></td>
|
26
26
|
<td class="actions actions-2 text-right">
|
27
27
|
<%= link_to_edit(country, no_text: true) if can? :edit, country %>
|
28
28
|
<%= link_to_delete(country, no_text: true) if can? :delete, country %>
|
@@ -17,7 +17,9 @@
|
|
17
17
|
<% return_items.each do |return_item| %>
|
18
18
|
<tr>
|
19
19
|
<td>
|
20
|
-
<div class="variant-name"
|
20
|
+
<div class="variant-name">
|
21
|
+
<%= link_to return_item.inventory_unit.variant.name, spree.edit_admin_product_path(return_item.inventory_unit.variant.product) %>
|
22
|
+
</div>
|
21
23
|
<div class="variant-options"><%= return_item.inventory_unit.variant.options_text %></div>
|
22
24
|
</td>
|
23
25
|
<td>
|
@@ -25,7 +25,9 @@
|
|
25
25
|
<%= item_fields.check_box :returned, {checked: false, class: 'add-item', "data-price" => return_item.pre_tax_amount}, '1', '0' %>
|
26
26
|
</td>
|
27
27
|
<td>
|
28
|
-
<div class="variant-name"
|
28
|
+
<div class="variant-name">
|
29
|
+
<%= link_to return_item.inventory_unit.variant.name, spree.edit_admin_product_path(return_item.inventory_unit.variant.product) %>
|
30
|
+
</div>
|
29
31
|
<div class="variant-options"><%= return_item.inventory_unit.variant.options_text %></div>
|
30
32
|
</td>
|
31
33
|
<td>
|
@@ -32,9 +32,9 @@
|
|
32
32
|
<td><%= pretty_time(customer_return.created_at) %></td>
|
33
33
|
<td>
|
34
34
|
<% if customer_return.fully_reimbursed? %>
|
35
|
-
<
|
35
|
+
<strong class="badge badge-success text-uppercase"><%= Spree.t(:reimbursed) %></strong>
|
36
36
|
<% else %>
|
37
|
-
<
|
37
|
+
<strong class="badge badge-inactive text-uppercase"><%= Spree.t(:incomplete) %></strong>
|
38
38
|
<% end %>
|
39
39
|
</td>
|
40
40
|
<td class='actions actions-1' data-hook="admin_orders_customer_returns_index_row_actions">
|
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
<%= f.field_container :stock_location, class: ['form-group'] do %>
|
26
26
|
<%= f.label :stock_location, Spree.t(:stock_location) %> <span class="required">*</span>
|
27
|
-
<%= f.select :stock_location_id, Spree::StockLocation.order_default.active.to_a.collect{|l|[l.name.humanize, l.id]}, {include_blank: true}, {class: 'select2', "data-placeholder" => Spree.t(:select_a_stock_location)} %>
|
27
|
+
<%= f.select :stock_location_id, Spree::StockLocation.order_default.active.to_a.collect{|l|[l.name.humanize, l.id]}, {include_blank: true}, {class: 'select2-clear', "data-placeholder" => Spree.t(:select_a_stock_location)} %>
|
28
28
|
<%= f.error_message_on :stock_location %>
|
29
29
|
<% end %>
|
30
30
|
</div>
|
@@ -66,11 +66,34 @@
|
|
66
66
|
</div>
|
67
67
|
|
68
68
|
<div class="card-body">
|
69
|
+
<div class="alert alert-warning col-12">
|
70
|
+
This can be overriden by individual Store settings
|
71
|
+
</div>
|
69
72
|
<div class="form-group">
|
70
|
-
<%= label_tag :currency, Spree.t(:
|
73
|
+
<%= label_tag :currency, Spree.t(:default_currency) %>
|
71
74
|
<%= select_tag :currency, currency_options %>
|
72
75
|
</div>
|
73
|
-
|
76
|
+
</div>
|
77
|
+
</div>
|
78
|
+
|
79
|
+
<div class="card mb-3" id="general-settings-stores" data-hook="general_settings_stores">
|
80
|
+
<div class="card-header">
|
81
|
+
<h1 class="card-title mb-0 h5">
|
82
|
+
<%= Spree.t(:multiple_stores)%>
|
83
|
+
</h1>
|
84
|
+
</div>
|
85
|
+
<div class="card-body">
|
86
|
+
<div class="alert alert-warning col-12">
|
87
|
+
<%= Spree.t('show_store_currency_selector.long') %>
|
88
|
+
</div>
|
89
|
+
<div class="form-group">
|
90
|
+
<div class="checkbox">
|
91
|
+
<label>
|
92
|
+
<%= check_box('', :show_store_currency_selector, { checked: Spree::Config.show_store_currency_selector }) %>
|
93
|
+
<%= Spree.t('show_store_currency_selector.short') %>
|
94
|
+
</label>
|
95
|
+
</div>
|
96
|
+
</div>
|
74
97
|
</div>
|
75
98
|
</div>
|
76
99
|
</div>
|
@@ -30,7 +30,7 @@
|
|
30
30
|
</td>
|
31
31
|
<td><%= option_type.name %></td>
|
32
32
|
<td class="presentation"><%= option_type.presentation %></td>
|
33
|
-
<td><%= option_type.filterable %></td>
|
33
|
+
<td><%= active_badge(option_type.filterable) %></td>
|
34
34
|
<td class="actions actions-2 text-right">
|
35
35
|
<%= link_to_edit(option_type, class: 'admin_edit_option_type', no_text: true) if can?(:edit, option_type) %>
|
36
36
|
<%= link_to_delete(option_type, no_text: true) if can?(:delete, option_type) %>
|
@@ -9,7 +9,7 @@
|
|
9
9
|
<div class="card-body">
|
10
10
|
<div data-hook="add_product_name" class="form-group">
|
11
11
|
<%= label_tag :add_line_item_variant_id, Spree.t(:name_or_sku) %>
|
12
|
-
<%=
|
12
|
+
<%= select_tag 'add_line_item_variant_id', nil , class: 'variant_autocomplete d-block w-100' %>
|
13
13
|
</div>
|
14
14
|
|
15
15
|
<div id="stock_details"></div>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<div class="card-body">
|
11
11
|
<div data-hook="add_product_name">
|
12
12
|
<%= label_tag :add_variant_id, Spree.t(:name_or_sku) %>
|
13
|
-
<%=
|
13
|
+
<%= select_tag 'variants', nil, id: :add_variant_id, class: 'variant_autocomplete d-block w-100' %>
|
14
14
|
</div>
|
15
15
|
|
16
16
|
<div id="stock_details"></div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<div data-hook="channel-form-container">
|
2
|
+
<%= form_for [:admin, order], method: :put, url: set_channel_admin_order_url do |f| %>
|
3
|
+
<fieldset>
|
4
|
+
<div data-hook="admin_order_channel_field">
|
5
|
+
<%= f.field_container :channel, class: %w[form-group] do %>
|
6
|
+
<%= f.label :channel, Spree.t(:channel) %>
|
7
|
+
<%= f.text_field :channel, name: 'channel', class: 'form-control' %>
|
8
|
+
<%= f.error_message_on :channel %>
|
9
|
+
<% end %>
|
10
|
+
</div>
|
11
|
+
<div class="form-actions" data-hook="buttons">
|
12
|
+
<%= button Spree.t('actions.update'), 'refresh', 'submit', { class: 'btn-success', data: { disable_with: "#{ Spree.t(:saving) }..." }} %>
|
13
|
+
<span class="or"><%= Spree.t(:or) %></span>
|
14
|
+
<%= button_link_to Spree.t('actions.cancel'), edit_admin_order_url(order), icon: 'delete' %>
|
15
|
+
</div>
|
16
|
+
<fieldset>
|
17
|
+
<% end %>
|
18
|
+
</div>
|
@@ -8,7 +8,9 @@
|
|
8
8
|
-
|
9
9
|
<span class="shipment-state"><%= Spree.t("shipment_states.#{shipment.state}") %></span>
|
10
10
|
<%= Spree.t(:package_from) %>
|
11
|
-
<strong class="stock-location-name" data-hook="stock-location-name">
|
11
|
+
<strong class="stock-location-name" data-hook="stock-location-name">
|
12
|
+
<%= link_to shipment.stock_location.name, spree.edit_admin_stock_location_url(shipment.stock_location) %>
|
13
|
+
</strong>
|
12
14
|
<% if shipment.ready? and can? :update, shipment %>
|
13
15
|
<%= link_to Spree.t(:ship), 'javascript:;', class: 'ship ml-auto btn btn-success', data: { 'shipment-number' => shipment.number } %>
|
14
16
|
<div class='clearfix'></div>
|
@@ -1,19 +1,42 @@
|
|
1
1
|
<script type='text/template' id='customer_autocomplete_template'>
|
2
|
-
<div class='customer-autocomplete-item'>
|
3
|
-
<div class=
|
4
|
-
<
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
<div class='customer-autocomplete-item container'>
|
3
|
+
<div class="row">
|
4
|
+
<div class="col">
|
5
|
+
<h5><strong>Email:</strong> {{customer.email}}</h5>
|
6
|
+
</div>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div class="row">
|
10
|
+
<div class='customer-details col-6'>
|
11
|
+
{{#if bill_address.firstname }}
|
12
|
+
<strong>{{t 'bill_address' }}</strong><br>
|
13
|
+
{{bill_address.firstname}} {{bill_address.lastname}}<br>
|
14
|
+
{{bill_address.address1}}, {{bill_address.address2}}<br>
|
15
|
+
{{bill_address.city}}<br>
|
16
|
+
{{#if bill_address.state_id }}
|
17
|
+
{{bill_address.state.name}}
|
18
|
+
{{else}}
|
19
|
+
{{bill_address.state_name}}
|
20
|
+
{{/if}}
|
21
|
+
{{bill_address.country.name}}
|
22
|
+
{{/if}}
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<div class='customer-details col-6'>
|
26
|
+
{{#if ship_address.firstname }}
|
27
|
+
<strong>Shipping Address</strong><br>
|
28
|
+
{{ship_address.firstname}} {{ship_address.lastname}}<br>
|
29
|
+
{{ship_address.address1}}, {{ship_address.address2}}<br>
|
30
|
+
{{ship_address.city}}<br>
|
31
|
+
{{#if ship_address.state_id }}
|
32
|
+
{{ship_address.state.name}}
|
12
33
|
{{else}}
|
13
|
-
{{
|
34
|
+
{{ship_address.state_name}}
|
14
35
|
{{/if}}
|
15
|
-
{{
|
36
|
+
{{ship_address.country.name}}
|
16
37
|
{{/if}}
|
17
38
|
</div>
|
39
|
+
|
18
40
|
</div>
|
41
|
+
</div>
|
19
42
|
</script>
|