solidus_backend 1.0.0.pre2 → 1.0.0.pre3
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.
Potentially problematic release.
This version of solidus_backend might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spree/backend/gateway.js.coffee +21 -0
- data/app/assets/javascripts/spree/backend/shipments.js.erb +6 -2
- data/app/assets/javascripts/spree/backend/taxonomy.js.coffee +27 -43
- data/app/assets/javascripts/spree/backend.js +0 -1
- data/app/assets/stylesheets/spree/backend.css +0 -2
- data/app/controllers/spree/admin/base_controller.rb +0 -7
- data/app/controllers/spree/admin/orders_controller.rb +8 -1
- data/app/controllers/spree/admin/payments_controller.rb +8 -1
- data/app/controllers/spree/admin/root_controller.rb +9 -1
- data/app/controllers/spree/admin/stock_transfers_controller.rb +25 -4
- data/app/controllers/spree/admin/users_controller.rb +4 -1
- data/app/views/spree/admin/cancellations/index.html.erb +1 -1
- data/app/views/spree/admin/orders/_carton_manifest.html.erb +1 -1
- data/app/views/spree/admin/orders/_line_items.html.erb +1 -1
- data/app/views/spree/admin/orders/_shipment_manifest.html.erb +1 -1
- data/app/views/spree/admin/orders/cart.html.erb +1 -1
- data/app/views/spree/admin/orders/confirm/_shipment_manifest.html.erb +1 -1
- data/app/views/spree/admin/orders/customer_details/_form.html.erb +20 -16
- data/app/views/spree/admin/orders/edit.html.erb +1 -1
- data/app/views/spree/admin/payment_methods/_form.html.erb +17 -8
- data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +8 -0
- data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +21 -0
- data/app/views/spree/admin/products/index.html.erb +1 -1
- data/app/views/spree/admin/promotion_categories/index.html.erb +11 -5
- data/app/views/spree/admin/promotions/index.html.erb +6 -2
- data/app/views/spree/admin/promotions/rules/_nth_order.html.erb +7 -0
- data/app/views/spree/admin/shared/_head.html.erb +0 -1
- data/app/views/spree/admin/shared/_number_field_update_actions.html.erb +5 -3
- data/app/views/spree/admin/stock_items/_stock_management.html.erb +1 -1
- data/app/views/spree/admin/stock_transfers/_transfer_item_table.html.erb +1 -1
- data/app/views/spree/admin/taxonomies/edit.erb +13 -17
- data/app/views/spree/admin/users/_form.html.erb +19 -11
- data/app/views/spree/admin/users/items.html.erb +1 -1
- data/app/views/spree/admin/variants/edit.html.erb +3 -1
- data/app/views/spree/admin/variants/index.html.erb +1 -1
- data/config/routes.rb +0 -2
- data/lib/spree/backend/engine.rb +0 -1
- metadata +9 -15
- data/app/assets/javascripts/spree/backend/gateway.js +0 -13
- data/app/views/spree/admin/payments/_bill_address_form.html.erb +0 -9
- data/vendor/assets/images/jquery.alerts/images/help.gif +0 -0
- data/vendor/assets/images/jquery.alerts/images/important.gif +0 -0
- data/vendor/assets/images/jquery.alerts/images/info.gif +0 -0
- data/vendor/assets/images/jquery.alerts/images/title.gif +0 -0
- data/vendor/assets/javascripts/jquery.alerts/jquery.alerts.js +0 -235
- data/vendor/assets/stylesheets/jquery.alerts/jquery.alerts.css.erb +0 -57
- data/vendor/assets/stylesheets/jquery.alerts/jquery.alerts.spree.css +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0147cf8388db75d478f5335739307297255bfbe7
|
4
|
+
data.tar.gz: 19ede418b138fe3f2ee52212780a874876344f8e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5836d8ac5c63e5d7b192167484a8ab9b18ca05f365e8de30477fd33ee6024710ff077f764a5bcfc363ef43fd89d1cc2cfdde528cfefaeff45fb6a65a729d1428
|
7
|
+
data.tar.gz: 04da95b14aafdaa6ecf847c7a60f999cf488b90e565d41a96176c0a84e91c7eaf0be25aff7e61080d2bd3b3929dc9e791611b9fb9620c56eafa22742f42d7e75
|
@@ -0,0 +1,21 @@
|
|
1
|
+
$ ->
|
2
|
+
$gateway_type = $('select.js-gateway-type')
|
3
|
+
$preference_source = $('select.js-preference-source')
|
4
|
+
|
5
|
+
original_gtwy_type = $gateway_type.val()
|
6
|
+
original_preference_source = $preference_source.val()
|
7
|
+
render = ->
|
8
|
+
gateway_type = $gateway_type.val()
|
9
|
+
preference_source = $preference_source.val()
|
10
|
+
|
11
|
+
$('.js-preference-source-wrapper').toggle(gateway_type == original_gtwy_type)
|
12
|
+
if gateway_type == original_gtwy_type && preference_source == original_preference_source
|
13
|
+
$('.js-gateway-settings').show()
|
14
|
+
$('.js-gateway-settings-warning').hide()
|
15
|
+
else
|
16
|
+
$('.js-gateway-settings').hide()
|
17
|
+
$('.js-gateway-settings-warning').show()
|
18
|
+
|
19
|
+
$gateway_type.change(render)
|
20
|
+
$preference_source.change(render)
|
21
|
+
render()
|
@@ -160,9 +160,13 @@ adjustShipmentItems = function(shipment_number, variant_id, quantity){
|
|
160
160
|
data: {
|
161
161
|
variant_id: variant_id,
|
162
162
|
quantity: new_quantity,
|
163
|
+
},
|
164
|
+
success: function(response) {
|
165
|
+
window.location.reload();
|
166
|
+
},
|
167
|
+
error: function(response) {
|
168
|
+
show_flash('error', response.responseJSON.message);
|
163
169
|
}
|
164
|
-
}).done(function( msg ) {
|
165
|
-
window.location.reload();
|
166
170
|
});
|
167
171
|
}
|
168
172
|
}
|
@@ -1,25 +1,27 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
base_url = null
|
2
|
+
|
3
|
+
tree_error_handler = (data) ->
|
4
|
+
rollback = data.rlbk
|
5
|
+
(XMLHttpRequest, textStatus, errorThrown) ->
|
6
|
+
$.jstree.rollback(rollback)
|
7
|
+
$("#ajax_error").show().html("<strong>#{server_error}</strong><br />" + taxonomy_tree_error)
|
4
8
|
|
5
9
|
handle_move = (e, data) ->
|
6
|
-
last_rollback = data.rlbk
|
7
10
|
position = data.rslt.cp
|
8
11
|
node = data.rslt.o
|
9
12
|
new_parent = data.rslt.np
|
10
13
|
|
11
14
|
url = "#{base_url}/#{node.prop("id")}"
|
12
15
|
Spree.ajax
|
13
|
-
type: "
|
16
|
+
type: "PUT",
|
14
17
|
dataType: "json",
|
15
18
|
url: url,
|
16
|
-
data: ({
|
17
|
-
error:
|
19
|
+
data: ({"taxon[parent_id]": new_parent.prop("id"), "taxon[child_index]": position }),
|
20
|
+
error: tree_error_handler(data)
|
18
21
|
|
19
22
|
true
|
20
23
|
|
21
24
|
handle_create = (e, data) ->
|
22
|
-
last_rollback = data.rlbk
|
23
25
|
node = data.rslt.obj
|
24
26
|
name = data.rslt.name
|
25
27
|
position = data.rslt.position
|
@@ -28,61 +30,50 @@ handle_create = (e, data) ->
|
|
28
30
|
Spree.ajax
|
29
31
|
type: "POST",
|
30
32
|
dataType: "json",
|
31
|
-
url: base_url
|
33
|
+
url: base_url,
|
32
34
|
data: {
|
33
35
|
"taxon[name]": name,
|
34
36
|
"taxon[parent_id]": new_parent.prop("id"),
|
35
37
|
"taxon[child_index]": position,
|
36
|
-
token: Spree.api_key
|
37
38
|
},
|
38
|
-
error:
|
39
|
+
error: tree_error_handler(data)
|
39
40
|
success: (data,result) ->
|
40
41
|
node.prop('id', data.id)
|
41
42
|
|
42
43
|
handle_rename = (e, data) ->
|
43
|
-
last_rollback = data.rlbk
|
44
44
|
node = data.rslt.obj
|
45
45
|
name = data.rslt.new_name
|
46
46
|
|
47
47
|
url = "#{base_url}/#{node.prop("id")}"
|
48
48
|
|
49
49
|
Spree.ajax
|
50
|
-
type: "
|
50
|
+
type: "PUT",
|
51
51
|
dataType: "json",
|
52
52
|
url: url,
|
53
53
|
data: {
|
54
|
-
_method: "put",
|
55
54
|
"taxon[name]": name,
|
56
55
|
},
|
57
|
-
error:
|
56
|
+
error: tree_error_handler(data)
|
58
57
|
|
59
58
|
handle_delete = (e, data) ->
|
60
|
-
last_rollback = data.rlbk
|
61
59
|
node = data.rslt.obj
|
62
60
|
delete_url = "#{base_url}/#{node.prop("id")}"
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
error: handle_ajax_error
|
74
|
-
else
|
75
|
-
$.jstree.rollback(last_rollback)
|
76
|
-
last_rollback = null
|
77
|
-
|
78
|
-
root = exports ? this
|
79
|
-
root.setup_taxonomy_tree = (taxonomy_id) ->
|
61
|
+
if confirm(Spree.translations.are_you_sure_delete)
|
62
|
+
Spree.ajax
|
63
|
+
type: "DELETE",
|
64
|
+
dataType: "json",
|
65
|
+
url: delete_url,
|
66
|
+
error: tree_error_handler(data)
|
67
|
+
else
|
68
|
+
$.jstree.rollback(data.rlbk)
|
69
|
+
|
70
|
+
@setup_taxonomy_tree = (taxonomy_id) ->
|
80
71
|
if taxonomy_id != undefined
|
81
72
|
# this is defined within admin/taxonomies/edit
|
82
|
-
|
73
|
+
base_url = Spree.routes.taxonomy_taxons_path
|
83
74
|
|
84
75
|
Spree.ajax
|
85
|
-
url:
|
76
|
+
url: base_url.replace("/taxons", "/jstree"),
|
86
77
|
success: (taxonomy) ->
|
87
78
|
last_rollback = null
|
88
79
|
|
@@ -90,6 +81,7 @@ root.setup_taxonomy_tree = (taxonomy_id) ->
|
|
90
81
|
json_data:
|
91
82
|
data: taxonomy,
|
92
83
|
ajax:
|
84
|
+
headers: { "X-Spree-Token": Spree.api_key }
|
93
85
|
url: (e) ->
|
94
86
|
"#{base_url}/#{e.prop('id')}/jstree"
|
95
87
|
themes:
|
@@ -126,11 +118,3 @@ root.setup_taxonomy_tree = (taxonomy_id) ->
|
|
126
118
|
.bind("rename.jstree", handle_rename)
|
127
119
|
.bind "loaded.jstree", ->
|
128
120
|
$(this).jstree("core").toggle_node($('.jstree-icon').first())
|
129
|
-
|
130
|
-
$("#taxonomy_tree a").on "dblclick", (e) ->
|
131
|
-
$("#taxonomy_tree").jstree("rename", this)
|
132
|
-
|
133
|
-
# surpress form submit on enter/return
|
134
|
-
$(document).keypress (e) ->
|
135
|
-
if e.keyCode == 13
|
136
|
-
e.preventDefault()
|
@@ -3,8 +3,6 @@
|
|
3
3
|
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
4
4
|
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
5
|
|
6
|
-
*= require jquery.alerts/jquery.alerts
|
7
|
-
*= require jquery.alerts/jquery.alerts.spree
|
8
6
|
*= require responsive-tables
|
9
7
|
*= require normalize
|
10
8
|
*= require skeleton
|
@@ -55,13 +55,6 @@ module Spree
|
|
55
55
|
Spree::Backend::Config[:locale]
|
56
56
|
end
|
57
57
|
|
58
|
-
def can_not_transition_without_customer_info
|
59
|
-
unless @order.billing_address.present?
|
60
|
-
flash[:notice] = Spree.t(:fill_in_customer_info)
|
61
|
-
redirect_to edit_admin_order_customer_url(@order)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
58
|
def lock_order
|
66
59
|
OrderMutex.with_lock!(@order) { yield }
|
67
60
|
rescue Spree::OrderMutex::LockFailed => e
|
@@ -64,7 +64,7 @@ module Spree
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def edit
|
67
|
-
|
67
|
+
require_ship_address
|
68
68
|
|
69
69
|
unless @order.completed?
|
70
70
|
@order.refresh_shipment_rates
|
@@ -197,6 +197,13 @@ module Spree
|
|
197
197
|
flash[:error] = Spree.t(:insufficient_stock_for_order)
|
198
198
|
redirect_to cart_admin_order_url(@order)
|
199
199
|
end
|
200
|
+
|
201
|
+
def require_ship_address
|
202
|
+
if @order.ship_address.nil?
|
203
|
+
flash[:notice] = Spree.t(:fill_in_customer_info)
|
204
|
+
redirect_to edit_admin_order_customer_url(@order)
|
205
|
+
end
|
206
|
+
end
|
200
207
|
end
|
201
208
|
end
|
202
209
|
end
|
@@ -5,7 +5,7 @@ module Spree
|
|
5
5
|
before_filter :load_payment, :except => [:create, :new, :index, :fire]
|
6
6
|
before_filter :load_payment_for_fire, :only => :fire
|
7
7
|
before_filter :load_data
|
8
|
-
before_filter :
|
8
|
+
before_filter :require_bill_address, only: [:index]
|
9
9
|
|
10
10
|
respond_to :html
|
11
11
|
|
@@ -102,6 +102,13 @@ module Spree
|
|
102
102
|
def model_class
|
103
103
|
Spree::Payment
|
104
104
|
end
|
105
|
+
|
106
|
+
def require_bill_address
|
107
|
+
if Spree::Config[:order_bill_address_used] && @order.bill_address.nil?
|
108
|
+
flash[:notice] = Spree.t(:fill_in_customer_info)
|
109
|
+
redirect_to edit_admin_order_customer_url(@order)
|
110
|
+
end
|
111
|
+
end
|
105
112
|
end
|
106
113
|
end
|
107
114
|
end
|
@@ -12,8 +12,16 @@ module Spree
|
|
12
12
|
def admin_root_redirect_path
|
13
13
|
if can?(:display, Spree::Order) && can?(:admin, Spree::Order)
|
14
14
|
spree.admin_orders_path
|
15
|
-
|
15
|
+
elsif can?(:admin, :dashboards) && can?(:home, :dashboards)
|
16
16
|
spree.home_admin_dashboards_path
|
17
|
+
else
|
18
|
+
# Invoke the unauthorized redirect, which will ideally go to the login controller
|
19
|
+
# of the users chosen authorization implimentation. For devise this is /admin/login.
|
20
|
+
#
|
21
|
+
# This is done so devise redirects back to this controller, instead of the one specified
|
22
|
+
# below, so this controller can use the user that is required for the path to
|
23
|
+
# be calculated.
|
24
|
+
raise CanCan::AccessDenied
|
17
25
|
end
|
18
26
|
end
|
19
27
|
end
|
@@ -7,12 +7,15 @@ module Spree
|
|
7
7
|
{ translation_key: :name, attr_name: :name }
|
8
8
|
]
|
9
9
|
|
10
|
-
before_filter :
|
10
|
+
before_filter :load_readable_stock_locations, only: :index
|
11
|
+
before_filter :load_transferable_stock_locations, only: :new
|
11
12
|
before_filter :load_variant_display_attributes, only: [:receive, :edit, :show, :tracking_info]
|
12
13
|
before_filter :load_destination_stock_locations, only: :edit
|
13
14
|
before_filter :ensure_access_to_stock_location, only: :create
|
14
15
|
before_filter :ensure_receivable_stock_transfer, only: :receive
|
15
16
|
|
17
|
+
create.before :authorize_transfer_attributes!
|
18
|
+
|
16
19
|
def receive
|
17
20
|
@received_items = @stock_transfer.transfer_items.received
|
18
21
|
end
|
@@ -93,12 +96,30 @@ module Spree
|
|
93
96
|
|
94
97
|
private
|
95
98
|
|
96
|
-
def
|
97
|
-
|
99
|
+
def authorize_transfer_attributes!
|
100
|
+
duplicate = @object.dup
|
101
|
+
duplicate.assign_attributes(permitted_resource_params)
|
102
|
+
authorize! :create, duplicate
|
103
|
+
end
|
104
|
+
|
105
|
+
def accessible_stock_locations
|
106
|
+
Spree::StockLocation.accessible_by(current_ability, :index)
|
107
|
+
end
|
108
|
+
|
109
|
+
def transferable_stock_locations
|
110
|
+
accessible_stock_locations.accessible_by(current_ability, :transfer)
|
111
|
+
end
|
112
|
+
|
113
|
+
def load_readable_stock_locations
|
114
|
+
@stock_locations = accessible_stock_locations
|
115
|
+
end
|
116
|
+
|
117
|
+
def load_transferable_stock_locations
|
118
|
+
@stock_locations = transferable_stock_locations
|
98
119
|
end
|
99
120
|
|
100
121
|
def load_destination_stock_locations
|
101
|
-
@destination_stock_locations =
|
122
|
+
@destination_stock_locations = transferable_stock_locations.where.not(id: @stock_transfer.source_location_id)
|
102
123
|
end
|
103
124
|
|
104
125
|
def load_variant_display_attributes
|
@@ -25,7 +25,7 @@
|
|
25
25
|
<% @inventory_units.each do |inventory_unit| %>
|
26
26
|
<tr class="inventory-unit">
|
27
27
|
<td class="inventory-unit-image">
|
28
|
-
<%=
|
28
|
+
<%= image_tag inventory_unit.variant.display_image.attachment(:mini) %>
|
29
29
|
</td>
|
30
30
|
<td class="inventory-unit-name">
|
31
31
|
<%= inventory_unit.variant.product.name %><br><%= "(" + variant_options(inventory_unit.variant) + ")" unless inventory_unit.variant.option_values.empty? %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% carton.manifest_for_order(order).each do |item| %>
|
2
2
|
<tr class="stock-item" data-item-quantity="<%= item.quantity %>">
|
3
3
|
<td class="item-image">
|
4
|
-
<%=
|
4
|
+
<%= image_tag item.variant.display_image.attachment(:mini) %>
|
5
5
|
</td>
|
6
6
|
<td class="item-name">
|
7
7
|
<%= item.variant.product.name %><br><%= "(" + variant_options(item.variant) + ")" unless item.variant.option_values.empty? %>
|
@@ -18,7 +18,7 @@
|
|
18
18
|
<tbody>
|
19
19
|
<% order.line_items.each do |item| %>
|
20
20
|
<%= content_tag :tr, class: 'line-item', id: "line-item-#{item.id}", data: { line_item_id: item.id } do %>
|
21
|
-
<td class="line-item-image"><%=
|
21
|
+
<td class="line-item-image"><%= image_tag item.variant.display_image.attachment(:mini) %></td>
|
22
22
|
<td class="line-item-name">
|
23
23
|
<%= item.variant.product.name %><br><%= "(" + variant_options(item.variant) + ")" unless item.variant.option_values.empty? %>
|
24
24
|
<% if item.variant.sku.present? %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% shipment_manifest.each do |item| %>
|
2
2
|
<tr class="stock-item" data-item-quantity="<%= item.quantity %>">
|
3
3
|
<td class="item-image">
|
4
|
-
<%=
|
4
|
+
<%= image_tag item.variant.display_image.attachment(:mini) %>
|
5
5
|
</td>
|
6
6
|
<td class="item-name">
|
7
7
|
<%= item.variant.product.name %><br><%= "(" + variant_options(item.variant) + ")" unless item.variant.option_values.empty? %>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<% if can?(:fire, @order) %>
|
3
3
|
<li><%= event_links %></li>
|
4
4
|
<% end %>
|
5
|
-
<% if can?(:resend, @order) %>
|
5
|
+
<% if can?(:resend, @order) && @order.completed? %>
|
6
6
|
<li><%= button_link_to Spree.t(:resend), resend_admin_order_url(@order), :method => :post, :icon => 'email' %></li>
|
7
7
|
<% end %>
|
8
8
|
<% if can?(:admin, Spree::Order) %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% shipment.manifest.each do |item| %>
|
2
2
|
<tr class="stock-item" data-item-quantity="<%= item.quantity %>">
|
3
3
|
<td class="item-image">
|
4
|
-
<%=
|
4
|
+
<%= image_tag item.variant.display_image.attachment(:mini) %>
|
5
5
|
</td>
|
6
6
|
<td class="item-name">
|
7
7
|
<%= item.variant.product.name %><br><%= "(" + variant_options(item.variant) + ")" unless item.variant.option_values.empty? %>
|
@@ -36,31 +36,35 @@
|
|
36
36
|
</div>
|
37
37
|
</fieldset>
|
38
38
|
|
39
|
-
<div
|
40
|
-
<fieldset class="no-border-bottom">
|
41
|
-
<legend align="center"><%= Spree.t(:billing_address) %></legend>
|
42
|
-
<%= f.fields_for :bill_address do |ba_form| %>
|
43
|
-
<%= render :partial => 'spree/admin/shared/address_form', :locals => { :f => ba_form, :type => "billing" } %>
|
44
|
-
<% end %>
|
45
|
-
</fieldset>
|
46
|
-
</div>
|
47
|
-
|
48
|
-
<div class="omega six columns" data-hook="ship_address_wrapper">
|
39
|
+
<div class="alpha six columns" data-hook="ship_address_wrapper">
|
49
40
|
<fieldset class="no-border-bottom">
|
50
41
|
<legend align="center"><%= Spree.t(:shipping_address) %></legend>
|
51
42
|
<%= f.fields_for :ship_address do |sa_form| %>
|
52
|
-
|
53
|
-
<
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
43
|
+
<% if Spree::Config[:order_bill_address_used] %>
|
44
|
+
<div class="field" style="position: absolute;margin-top: -15px;left: 0;">
|
45
|
+
<span data-hook="use_billing">
|
46
|
+
<%= check_box_tag 'order[use_billing]', '1', ((@order.bill_address.empty? && @order.ship_address.empty?) && @order.bill_address.same_as?(@order.ship_address)) %>
|
47
|
+
<%= label_tag 'order[use_billing]', Spree.t(:use_billing_address) %>
|
48
|
+
</span>
|
49
|
+
</div>
|
50
|
+
<% end %>
|
58
51
|
|
59
52
|
<%= render :partial => 'spree/admin/shared/address_form', :locals => { :f => sa_form, :type => 'shipping' } %>
|
60
53
|
<% end %>
|
61
54
|
</fieldset>
|
62
55
|
</div>
|
63
56
|
|
57
|
+
<% if Spree::Config[:order_bill_address_used] %>
|
58
|
+
<div class="omega six columns" data-hook="bill_address_wrapper">
|
59
|
+
<fieldset class="no-border-bottom">
|
60
|
+
<legend align="center"><%= Spree.t(:billing_address) %></legend>
|
61
|
+
<%= f.fields_for :bill_address do |ba_form| %>
|
62
|
+
<%= render :partial => 'spree/admin/shared/address_form', :locals => { :f => ba_form, :type => "billing" } %>
|
63
|
+
<% end %>
|
64
|
+
</fieldset>
|
65
|
+
</div>
|
66
|
+
<% end %>
|
67
|
+
|
64
68
|
<div class="clear"></div>
|
65
69
|
|
66
70
|
<div class="form-buttons filter-actions actions" data-hook="buttons">
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<% if can?(:fire, @order) %>
|
3
3
|
<li><%= event_links %></li>
|
4
4
|
<% end %>
|
5
|
-
<% if can?(:resend, @order) %>
|
5
|
+
<% if can?(:resend, @order) && @order.completed? %>
|
6
6
|
<li><%= button_link_to Spree.t(:resend), resend_admin_order_url(@order), method: :post, icon: 'email' %></li>
|
7
7
|
<% end %>
|
8
8
|
<% if can?(:admin, Spree::Order) %>
|
@@ -3,17 +3,26 @@
|
|
3
3
|
<div data-hook="payment_method">
|
4
4
|
|
5
5
|
<div class="alpha four columns">
|
6
|
-
<div id="preference-settings"
|
7
|
-
|
8
|
-
|
6
|
+
<div id="preference-settings">
|
7
|
+
<div class="field">
|
8
|
+
<%= f.label :type, Spree.t(:provider) %>
|
9
|
+
<%= collection_select(:payment_method, :type, @providers, :to_s, :name, {}, {:id => 'gtwy-type', :class => 'select2 fullwidth js-gateway-type'}) %>
|
10
|
+
</div>
|
9
11
|
|
10
|
-
|
11
|
-
<%=
|
12
|
+
<div class="field js-preference-source-wrapper">
|
13
|
+
<%= label_tag :preference_source, 'Preference Source' %>
|
14
|
+
<%= f.select(:preference_source, [[Spree.t(:preference_source_none), nil]] + @object.class.available_preference_sources, {}, class: 'select2 fullwidth js-preference-source') %>
|
15
|
+
</div>
|
12
16
|
|
13
|
-
|
14
|
-
|
17
|
+
<div class="gateway-settings js-gateway-settings">
|
18
|
+
<% if @object.preference_source.present? %>
|
19
|
+
<%= Spree.t :preference_source_using, name: @object.preference_source %>
|
20
|
+
<% elsif !@object.new_record? %>
|
21
|
+
<%= preference_fields(@object, f) %>
|
15
22
|
<% end %>
|
16
|
-
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<div class="info warning js-gateway-settings-warning"><%= Spree.t(:provider_settings_warning) %></div>
|
17
26
|
</div>
|
18
27
|
<div data-hook="environment" class="field">
|
19
28
|
<%= label_tag :payment_method_environment, Spree.t(:environment) %>
|
@@ -52,5 +52,13 @@
|
|
52
52
|
</div>
|
53
53
|
|
54
54
|
<div class="clear"></div>
|
55
|
+
|
56
|
+
<%= label_tag "card_address#{payment_method.id}", Spree.t(:billing_address) %>
|
57
|
+
<% address = @order.bill_address || @order.ship_address || Spree::Address.build_default %>
|
58
|
+
<%= fields_for "#{param_prefix}[address_attributes]", address do |f| %>
|
59
|
+
<%= render :partial => 'spree/admin/shared/address_form', :locals => { :f => f, :type => "billing" } %>
|
60
|
+
<% end %>
|
61
|
+
|
62
|
+
<div class="clear"></div>
|
55
63
|
</div>
|
56
64
|
</fieldset>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<fieldset data-hook="store-credit">
|
2
|
+
<legend align="center"><%= Spree.t(:store_credit, scope: :store_credit) %></legend>
|
3
|
+
|
4
|
+
<div class="row">
|
5
|
+
<div class="alpha six columns">
|
6
|
+
<dl>
|
7
|
+
<dt><%= Spree.t(:category) %>:</dt>
|
8
|
+
<dd><%= payment.source.category.name%></dd>
|
9
|
+
|
10
|
+
<dt><%= Spree.t(:memo) %>:</dt>
|
11
|
+
<dd><%= payment.source.memo %></dd>
|
12
|
+
|
13
|
+
<dt><%= Spree.t(:created_by) %>:</dt>
|
14
|
+
<dd><%= payment.source.created_by.email %></dd>
|
15
|
+
|
16
|
+
<dt><%= Spree.t(:issued_on, scope: [:admin, :store_credits]) %>:</dt>
|
17
|
+
<dd><%= l payment.source.created_at.to_date %></dd>
|
18
|
+
</dl>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</fieldset>
|
@@ -78,7 +78,7 @@
|
|
78
78
|
<% @collection.each do |product| %>
|
79
79
|
<tr <%== "style='color: red;'" if product.deleted? %> id="<%= spree_dom_id product %>" data-hook="admin_products_index_rows" class="<%= cycle('odd', 'even') %>">
|
80
80
|
<td class="align-center"><%= product.sku rescue '' %></td>
|
81
|
-
<td class="align-center"><%=
|
81
|
+
<td class="align-center"><%= image_tag product.display_image.attachment(:mini) %></td>
|
82
82
|
<td><%= link_to product.try(:name), edit_admin_product_path(product) %></td>
|
83
83
|
<td class="align-center"><%= product.display_price.to_html rescue '' %></td>
|
84
84
|
<td class="actions" data-hook="admin_products_index_row_actions">
|
@@ -3,9 +3,11 @@
|
|
3
3
|
<% end %>
|
4
4
|
|
5
5
|
<% content_for :page_actions do %>
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
<% if can?(:create, Spree::PromotionCategory) %>
|
7
|
+
<li>
|
8
|
+
<%= button_link_to Spree.t(:new_promotion_category), spree.new_admin_promotion_category_path, :icon => 'plus' %>
|
9
|
+
</li>
|
10
|
+
<% end %>
|
9
11
|
<% end %>
|
10
12
|
|
11
13
|
<%= render 'spree/admin/shared/promotion_sub_menu' %>
|
@@ -27,8 +29,12 @@
|
|
27
29
|
<td><%= promotion_category.name %></td>
|
28
30
|
<td><%= promotion_category.code%></td>
|
29
31
|
<td class="actions">
|
30
|
-
|
31
|
-
|
32
|
+
<% if can?(:update, promotion_category) %>
|
33
|
+
<%= link_to_edit promotion_category, :no_text => true %>
|
34
|
+
<% end %>
|
35
|
+
<% if can?(:destroy, promotion_category) %>
|
36
|
+
<%= link_to_delete promotion_category, :no_text => true %>
|
37
|
+
<% end %>
|
32
38
|
</td>
|
33
39
|
</tr>
|
34
40
|
<% end %>
|
@@ -93,8 +93,12 @@
|
|
93
93
|
<td class="align-center"><%= Spree.t(:current_promotion_usage, :count => promotion.usage_count) %></td>
|
94
94
|
<td class="align-center"><%= promotion.expires_at.to_date.to_s(:short_date) if promotion.expires_at %></td>
|
95
95
|
<td class="actions">
|
96
|
-
|
97
|
-
|
96
|
+
<% if can?(:update, promotion) %>
|
97
|
+
<%= link_to_edit promotion, :no_text => true %>
|
98
|
+
<% end %>
|
99
|
+
<% if can?(:destroy, promotion) %>
|
100
|
+
<%= link_to_delete promotion, :no_text => true %>
|
101
|
+
<% end %>
|
98
102
|
</td>
|
99
103
|
</tr>
|
100
104
|
<% end %>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<div class="field alpha four columns">
|
2
|
+
<%= Spree.t(:form_text, scope: "promotion_rule_types.nth_order") %>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<div class="field omega four columns">
|
6
|
+
<%= number_field_tag "#{param_prefix}[preferred_nth_order]", promotion_rule.preferred_nth_order, :class => 'fullwidth' %>
|
7
|
+
</div>
|
@@ -21,7 +21,6 @@
|
|
21
21
|
<%= render "spree/admin/shared/translations" %>
|
22
22
|
|
23
23
|
<%= javascript_tag do -%>
|
24
|
-
jQuery.alerts.dialogClass = 'spree';
|
25
24
|
var AUTH_TOKEN = "<%= form_authenticity_token %>";
|
26
25
|
Spree.api_key = "<%= try_spree_current_user.try(:spree_api_key) %>";
|
27
26
|
Spree.env = "<%= Rails.env %>";
|
@@ -1,3 +1,5 @@
|
|
1
|
-
|
2
|
-
<%= link_to_with_icon '
|
3
|
-
<%= link_to_with_icon '
|
1
|
+
<% if can?(:update, resource) %>
|
2
|
+
<%= link_to_with_icon 'edit', Spree.t('actions.edit'), '#', no_text: true, data: { action: 'edit', id: resource.id } %>
|
3
|
+
<%= link_to_with_icon 'check', Spree.t('actions.update'), '#', no_text: true, data: update_data.merge(action: 'green', id: resource.id) %>
|
4
|
+
<%= link_to_with_icon 'void', Spree.t('actions.cancel'), '#', no_text: true, data: { action: 'red', id: resource.id } %>
|
5
|
+
<% end %>
|
@@ -32,7 +32,7 @@
|
|
32
32
|
<td class="align-center no-padding" rowspan="<%= row_count %>">
|
33
33
|
<div class='variant-container'>
|
34
34
|
<div class='variant-image'>
|
35
|
-
<%= image_tag(variant.display_image.attachment(:small)) %>
|
35
|
+
<%= image_tag(variant.display_image(fallback: false).attachment(:small)) %>
|
36
36
|
</div>
|
37
37
|
<div class='variant-details'>
|
38
38
|
<table class='stock-variant-field-table'>
|