solidus_backend 1.0.0.pre2 → 1.0.0.pre3
Sign up to get free protection for your applications and to get access to all the features.
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'>
|