spree_backend 2.0.3 → 2.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/fonts/FontAwesome.otf +0 -0
- data/app/assets/fonts/fontawesome-webfont.eot +0 -0
- data/app/assets/fonts/fontawesome-webfont.svg +399 -0
- data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/app/assets/fonts/fontawesome-webfont.woff +0 -0
- data/app/assets/images/credit_cards/credit_card.gif +0 -0
- data/app/assets/javascripts/admin/admin.js.erb +6 -5
- data/app/assets/javascripts/admin/option_type_autocomplete.js.erb +1 -2
- data/app/assets/javascripts/admin/shipments.js.erb +3 -3
- data/app/assets/javascripts/admin/spree_backend.js +2 -2
- data/app/assets/javascripts/admin/stock_transfer.js.coffee +3 -3
- data/app/assets/javascripts/admin/variant_autocomplete.js.erb +9 -9
- data/app/assets/javascripts/admin/zone.js.coffee +8 -4
- data/app/assets/stylesheets/admin/components/_date-picker.scss +1 -1
- data/app/assets/stylesheets/admin/components/_navigation.scss +12 -8
- data/app/assets/stylesheets/admin/components/_sidebar.scss +2 -0
- data/app/assets/stylesheets/admin/globals/_variables.scss +53 -47
- data/app/assets/stylesheets/admin/globals/_variables_override.scss +2 -2
- data/app/assets/stylesheets/admin/plugins/_font-awesome.scss +1475 -0
- data/app/assets/stylesheets/admin/plugins/_jstree.scss +0 -1
- data/app/assets/stylesheets/admin/plugins/_select2.scss +40 -31
- data/app/assets/stylesheets/admin/shared/_forms.scss +7 -2
- data/app/assets/stylesheets/admin/shared/_icons.scss +7 -6
- data/app/assets/stylesheets/admin/shared/_layout.scss +2 -3
- data/app/assets/stylesheets/admin/shared/_tables.scss +7 -0
- data/app/assets/stylesheets/admin/spree_backend.css +1 -1
- data/app/controllers/spree/admin/orders/customer_details_controller.rb +3 -0
- data/app/controllers/spree/admin/orders_controller.rb +8 -0
- data/app/controllers/spree/admin/payments_controller.rb +2 -1
- data/app/controllers/spree/admin/products_controller.rb +9 -3
- data/app/controllers/spree/admin/stock_items_controller.rb +29 -6
- data/app/controllers/spree/admin/stock_locations_controller.rb +12 -0
- data/app/controllers/spree/admin/stock_movements_controller.rb +4 -31
- data/app/controllers/spree/admin/stock_transfers_controller.rb +1 -1
- data/app/controllers/spree/admin/tax_categories_controller.rb +1 -1
- data/app/controllers/spree/admin/variants_controller.rb +1 -2
- data/app/helpers/spree/admin/orders_helper.rb +4 -0
- data/app/views/spree/admin/mail_methods/_form.html.erb +3 -7
- data/app/views/spree/admin/orders/_shipment.html.erb +96 -126
- data/app/views/spree/admin/orders/_shipment_manifest.html.erb +33 -0
- data/app/views/spree/admin/orders/edit.html.erb +10 -4
- data/app/views/spree/admin/orders/index.html.erb +1 -1
- data/app/views/spree/admin/payments/_form.html.erb +3 -1
- data/app/views/spree/admin/product_properties/index.html.erb +1 -1
- data/app/views/spree/admin/products/_add_stock_form.html.erb +31 -2
- data/app/views/spree/admin/products/_form.html.erb +2 -2
- data/app/views/spree/admin/products/edit.html.erb +5 -3
- data/app/views/spree/admin/products/index.html.erb +4 -4
- data/app/views/spree/admin/products/new.html.erb +10 -0
- data/app/views/spree/admin/products/stock.html.erb +17 -17
- data/app/views/spree/admin/promotions/_promotion_action.html.erb +2 -1
- data/app/views/spree/admin/promotions/_promotion_rule.html.erb +1 -0
- data/app/views/spree/admin/prototypes/index.html.erb +1 -1
- data/app/views/spree/admin/shared/_product_tabs.html.erb +10 -9
- data/app/views/spree/admin/shared/_routes.html.erb +4 -0
- data/app/views/spree/admin/shared/_tabs.html.erb +1 -1
- data/app/views/spree/admin/shared/_translations.html.erb +27 -25
- data/app/views/spree/admin/shipping_methods/_form.html.erb +9 -4
- data/app/views/spree/admin/states/index.html.erb +1 -1
- data/app/views/spree/admin/stock_items/destroy.js.erb +1 -0
- data/app/views/spree/admin/stock_locations/_form.html.erb +8 -0
- data/app/views/spree/admin/stock_locations/index.html.erb +35 -31
- data/app/views/spree/admin/stock_locations/new.html.erb +2 -2
- data/app/views/spree/admin/stock_movements/index.html.erb +3 -6
- data/app/views/spree/admin/stock_transfers/index.html.erb +1 -1
- data/app/views/spree/admin/stock_transfers/new.html.erb +1 -1
- data/app/views/spree/admin/stock_transfers/show.html.erb +1 -2
- data/app/views/spree/admin/taxonomies/edit.erb +1 -1
- data/app/views/spree/admin/variants/_autocomplete.js.erb +1 -1
- data/app/views/spree/admin/zones/_member_type.html.erb +3 -3
- data/app/views/spree/layouts/admin.html.erb +9 -15
- data/config/routes.rb +2 -2
- data/lib/spree/backend.rb +1 -0
- data/vendor/assets/javascripts/jquery.jstree/jquery.jstree.js +2 -2
- data/vendor/assets/javascripts/jquery.jstree/themes/apple/style.css +2 -2
- data/vendor/assets/stylesheets/jquery-ui.datepicker.css.erb +5 -5
- metadata +35 -21
- data/app/assets/images/admin/bg/spree_50.png +0 -0
- data/app/assets/stylesheets/admin/plugins/font-awesome.scss +0 -303
- data/app/views/spree/admin/shared/_stock_movement_form.html.erb +0 -30
- data/vendor/assets/fonts/fontawesome-webfont.eot +0 -0
- data/vendor/assets/fonts/fontawesome-webfont.svg +0 -255
- data/vendor/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/vendor/assets/fonts/fontawesome-webfont.woff +0 -0
- data/vendor/assets/stylesheets/font-awesome-ie7.css +0 -645
- data/vendor/assets/stylesheets/font-awesome.css.erb +0 -303
@@ -27,23 +27,6 @@
|
|
27
27
|
@extend [class^="icon-"]:before;
|
28
28
|
margin-top: 2px;
|
29
29
|
}
|
30
|
-
|
31
|
-
div {
|
32
|
-
background-image: none !important;
|
33
|
-
background-color: transparent !important;
|
34
|
-
border-radius: 0 !important;
|
35
|
-
border: none !important;
|
36
|
-
|
37
|
-
b {
|
38
|
-
background-image: none !important;
|
39
|
-
display: inherit !important;
|
40
|
-
width: auto !important;
|
41
|
-
height: auto !important;
|
42
|
-
margin-top: 10px;
|
43
|
-
@extend .icon-caret-down;
|
44
|
-
@extend [class^="icon-"]:before;
|
45
|
-
}
|
46
|
-
}
|
47
30
|
}
|
48
31
|
|
49
32
|
&.select2-container-active {
|
@@ -68,19 +51,25 @@
|
|
68
51
|
}
|
69
52
|
|
70
53
|
.select2-search {
|
71
|
-
@extend [class^="icon-"]:before;
|
72
54
|
@extend .icon-search;
|
55
|
+
|
73
56
|
font-size: 100%;
|
74
|
-
padding-left: 15px;
|
75
57
|
color: darken($color-border, 15);
|
58
|
+
padding: 0 9px 0 0;
|
59
|
+
|
60
|
+
&:before {
|
61
|
+
@extend [class^="icon-"]:before;
|
62
|
+
|
63
|
+
position: absolute;
|
64
|
+
top: 13px;
|
65
|
+
left: 13px;
|
66
|
+
}
|
76
67
|
|
77
68
|
input {
|
78
69
|
@extend input[type="text"];
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
padding-top: 6px;
|
83
|
-
padding-bottom: 6px;
|
70
|
+
|
71
|
+
padding: 6px 0 6px 25px;
|
72
|
+
margin: 5px 0 0 5px;
|
84
73
|
font-family: $base-font-family;
|
85
74
|
font-size: 90%;
|
86
75
|
box-shadow: none;
|
@@ -88,7 +77,27 @@
|
|
88
77
|
}
|
89
78
|
}
|
90
79
|
|
91
|
-
.select2-
|
80
|
+
.select2-container .select2-choice .select2-arrow {
|
81
|
+
background-image: none;
|
82
|
+
background: transparent;
|
83
|
+
border: 0;
|
84
|
+
|
85
|
+
b {
|
86
|
+
padding-top: 7px;
|
87
|
+
display: block;
|
88
|
+
width: 100%;
|
89
|
+
height: 100%;
|
90
|
+
background: none;
|
91
|
+
font-family: FontAwesome;
|
92
|
+
font-weight: 200 !important;
|
93
|
+
|
94
|
+
&:before {
|
95
|
+
content: "\f0d7";
|
96
|
+
}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
.select2-results {
|
92
101
|
padding-left: 0 !important;
|
93
102
|
|
94
103
|
li {
|
@@ -113,7 +122,7 @@
|
|
113
122
|
padding: 5px;
|
114
123
|
background-color: transparent;
|
115
124
|
color: $color-body-text;
|
116
|
-
text-align: center;
|
125
|
+
text-align: center;
|
117
126
|
font-weight: $font-weight-bold;
|
118
127
|
text-transform: uppercase;
|
119
128
|
}
|
@@ -137,7 +146,7 @@
|
|
137
146
|
@extend input[type="text"];
|
138
147
|
padding: 6px 3px 3px 3px;
|
139
148
|
box-shadow: none;
|
140
|
-
background-image: none;
|
149
|
+
background-image: none !important;
|
141
150
|
|
142
151
|
.select2-search-choice {
|
143
152
|
@include border-radius($border-radius);
|
@@ -145,9 +154,9 @@
|
|
145
154
|
background-image: none;
|
146
155
|
background-color: $color-sel-bg;
|
147
156
|
border: none;
|
148
|
-
box-shadow: none;
|
149
|
-
color: $color-1 !important;
|
150
|
-
font-size: 85%;
|
157
|
+
box-shadow: none;
|
158
|
+
color: $color-1 !important;
|
159
|
+
font-size: 85%;
|
151
160
|
|
152
161
|
&:hover {
|
153
162
|
background-color: $color-sel-hover-bg;
|
@@ -173,4 +182,4 @@ label .select2-container {
|
|
173
182
|
font-weight: normal;
|
174
183
|
}
|
175
184
|
}
|
176
|
-
}
|
185
|
+
}
|
@@ -61,8 +61,11 @@ button, .button {
|
|
61
61
|
background-color: $color-btn-bg;
|
62
62
|
color: $color-btn-text;
|
63
63
|
text-transform: uppercase;
|
64
|
-
font-
|
65
|
-
|
64
|
+
font-weight: 600 !important;
|
65
|
+
|
66
|
+
&:before {
|
67
|
+
font-weight: normal !important;
|
68
|
+
}
|
66
69
|
|
67
70
|
&:visited, &:active, &:focus { color: $color-btn-text }
|
68
71
|
|
@@ -179,7 +182,9 @@ fieldset {
|
|
179
182
|
text-transform: uppercase;
|
180
183
|
text-align: center;
|
181
184
|
padding: 8px 15px;
|
185
|
+
|
182
186
|
-webkit-font-smoothing: antialiased;
|
187
|
+
-moz-osx-font-smoothing: grayscale;
|
183
188
|
|
184
189
|
i {
|
185
190
|
color: $color-link;
|
@@ -1,22 +1,23 @@
|
|
1
1
|
// Some fixes for fontwesome stylesheets
|
2
2
|
[class^="icon-"], [class*=" icon-"] {
|
3
|
+
&:before {
|
4
|
+
padding-right: 5px;
|
5
|
+
}
|
6
|
+
|
3
7
|
&.button, &.icon_link {
|
4
8
|
width: auto;
|
5
9
|
|
6
10
|
&:before {
|
7
|
-
padding-
|
11
|
+
padding-top: 3px;
|
8
12
|
}
|
9
13
|
}
|
10
14
|
}
|
11
15
|
|
12
|
-
[class^="icon-"]:before, [class*=" icon-"]:before {
|
13
|
-
-webkit-font-smoothing: antialiased;
|
14
|
-
}
|
15
16
|
.icon-email:before { @extend .icon-envelope:before }
|
16
17
|
.icon-resume:before { @extend .icon-refresh:before }
|
17
18
|
|
18
|
-
.icon-cancel:before,
|
19
|
+
.icon-cancel:before,
|
19
20
|
.icon-void:before { @extend .icon-remove:before }
|
20
21
|
|
21
22
|
.icon-capture:before { @extend .icon-ok:before }
|
22
|
-
.icon-credit:before { @extend .icon-ok:before }
|
23
|
+
.icon-credit:before { @extend .icon-ok:before }
|
@@ -69,16 +69,15 @@
|
|
69
69
|
|
70
70
|
.page-title {
|
71
71
|
font-size: 20px;
|
72
|
+
|
72
73
|
-webkit-font-smoothing: antialiased;
|
74
|
+
-moz-osx-font-smoothing: grayscale;
|
73
75
|
}
|
74
76
|
.page-actions {
|
75
77
|
text-align: right;
|
76
78
|
form {
|
77
79
|
display: inline-block;
|
78
80
|
}
|
79
|
-
.button {
|
80
|
-
font-size: 85%;
|
81
|
-
}
|
82
81
|
}
|
83
82
|
}
|
84
83
|
|
@@ -26,6 +26,12 @@ table {
|
|
26
26
|
}
|
27
27
|
}
|
28
28
|
|
29
|
+
.handle {
|
30
|
+
display: block !important;
|
31
|
+
text-align: center;
|
32
|
+
padding-right: 0;
|
33
|
+
}
|
34
|
+
|
29
35
|
&.actions {
|
30
36
|
background-color: transparent;
|
31
37
|
border: none !important;
|
@@ -126,6 +132,7 @@ table {
|
|
126
132
|
|
127
133
|
tbody {
|
128
134
|
tr {
|
135
|
+
&:first-child th,
|
129
136
|
&:first-child td {
|
130
137
|
border-top: 1px solid $color-border;
|
131
138
|
}
|
@@ -17,6 +17,9 @@ module Spree
|
|
17
17
|
|
18
18
|
def update
|
19
19
|
if @order.update_attributes(params[:order])
|
20
|
+
if params[:guest_checkout] == "false"
|
21
|
+
@order.associate_user!(Spree.user_class.find_by_email(@order.email))
|
22
|
+
end
|
20
23
|
while @order.next; end
|
21
24
|
|
22
25
|
@order.shipments.map &:refresh_rates
|
@@ -46,11 +46,19 @@ module Spree
|
|
46
46
|
|
47
47
|
def new
|
48
48
|
@order = Order.create
|
49
|
+
@order.created_by = try_spree_current_user
|
50
|
+
@order.save
|
49
51
|
redirect_to edit_admin_order_url(@order)
|
50
52
|
end
|
51
53
|
|
52
54
|
def edit
|
53
55
|
@order.shipments.map &:refresh_rates
|
56
|
+
# Transition as far as we can go
|
57
|
+
while @order.next; end
|
58
|
+
# The payment step shows an error of 'No pending payments'
|
59
|
+
# Clearing the errors from the order object will stop this error
|
60
|
+
# appearing on the edit page where we don't want it to.
|
61
|
+
@order.errors.clear
|
54
62
|
end
|
55
63
|
|
56
64
|
def update
|
@@ -76,7 +76,7 @@ module Spree
|
|
76
76
|
|
77
77
|
def load_data
|
78
78
|
@amount = params[:amount] || load_order.total
|
79
|
-
@payment_methods = PaymentMethod.available
|
79
|
+
@payment_methods = PaymentMethod.available(:back_end)
|
80
80
|
if @payment and @payment.payment_method
|
81
81
|
@payment_method = @payment.payment_method
|
82
82
|
else
|
@@ -101,6 +101,7 @@ module Spree
|
|
101
101
|
def load_order
|
102
102
|
@order = Order.find_by_number!(params[:order_id])
|
103
103
|
authorize! action, @order
|
104
|
+
@order
|
104
105
|
end
|
105
106
|
|
106
107
|
def load_payment
|
@@ -29,7 +29,7 @@ module Spree
|
|
29
29
|
|
30
30
|
def destroy
|
31
31
|
@product = Product.find_by_permalink!(params[:id])
|
32
|
-
@product.
|
32
|
+
@product.destroy
|
33
33
|
|
34
34
|
flash[:success] = Spree.t('notice_messages.product_deleted')
|
35
35
|
|
@@ -55,6 +55,10 @@ module Spree
|
|
55
55
|
@variants = @product.variants
|
56
56
|
@variants = [@product.master] if @variants.empty?
|
57
57
|
@stock_locations = StockLocation.accessible_by(current_ability, :read)
|
58
|
+
if @stock_locations.empty?
|
59
|
+
flash[:error] = Spree.t(:stock_management_requires_a_stock_location)
|
60
|
+
redirect_to admin_stock_locations_path
|
61
|
+
end
|
58
62
|
end
|
59
63
|
|
60
64
|
protected
|
@@ -80,8 +84,10 @@ module Spree
|
|
80
84
|
params[:q][:deleted_at_null] ||= "1"
|
81
85
|
|
82
86
|
params[:q][:s] ||= "name asc"
|
83
|
-
|
84
|
-
@
|
87
|
+
@collection = super
|
88
|
+
@collection = @collection.with_deleted if params[:q].delete(:deleted_at_null).blank?
|
89
|
+
# @search needs to be defined as this is passed to search_form_for
|
90
|
+
@search = @collection.ransack(params[:q])
|
85
91
|
@collection = @search.result.
|
86
92
|
group_by_products_id.
|
87
93
|
includes(product_includes).
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class StockItemsController < Spree::Admin::BaseController
|
4
|
-
before_filter :determine_backorderable
|
4
|
+
before_filter :determine_backorderable, only: :update
|
5
5
|
|
6
6
|
def update
|
7
7
|
stock_item.save
|
@@ -10,15 +10,38 @@ module Spree
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
|
13
|
+
def create
|
14
|
+
variant = Variant.find(params[:variant_id])
|
15
|
+
stock_location = StockLocation.find(params[:stock_location_id])
|
16
|
+
stock_movement = stock_location.stock_movements.build(params[:stock_movement])
|
17
|
+
stock_movement.stock_item = stock_location.set_up_stock_item(variant)
|
18
|
+
|
19
|
+
if stock_movement.save
|
20
|
+
flash[:success] = flash_message_for(stock_movement, :successfully_created)
|
21
|
+
else
|
22
|
+
flash[:error] = Spree.t(:could_not_create_stock_movement)
|
23
|
+
end
|
14
24
|
|
15
|
-
|
16
|
-
@stock_item ||= StockItem.find(params[:id])
|
25
|
+
redirect_to :back
|
17
26
|
end
|
18
27
|
|
19
|
-
def
|
20
|
-
stock_item.
|
28
|
+
def destroy
|
29
|
+
stock_item.destroy
|
30
|
+
|
31
|
+
respond_with(@stock_item) do |format|
|
32
|
+
format.html { redirect_to :back }
|
33
|
+
format.js
|
34
|
+
end
|
21
35
|
end
|
36
|
+
|
37
|
+
private
|
38
|
+
def stock_item
|
39
|
+
@stock_item ||= StockItem.find(params[:id])
|
40
|
+
end
|
41
|
+
|
42
|
+
def determine_backorderable
|
43
|
+
stock_item.backorderable = params[:stock_item].present? && params[:stock_item][:backorderable].present?
|
44
|
+
end
|
22
45
|
end
|
23
46
|
end
|
24
47
|
end
|
@@ -2,6 +2,18 @@ module Spree
|
|
2
2
|
module Admin
|
3
3
|
class StockLocationsController < ResourceController
|
4
4
|
|
5
|
+
new_action.before :set_country
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def set_country
|
10
|
+
if Spree::Config[:default_country_id].present?
|
11
|
+
@stock_location.country = Spree::Country.find(Spree::Config[:default_country_id])
|
12
|
+
else
|
13
|
+
@stock_location.country = Spree::Country.find_by_iso('US')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
5
17
|
end
|
6
18
|
end
|
7
19
|
end
|
@@ -13,42 +13,16 @@ module Spree
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def create
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
@stock_movement.stock_item = location.stock_items.where(variant_id: variant).first_or_create
|
21
|
-
@stock_movement.save ? flash[:success] = flash_message_for(@stock_movement, :successfully_created) : flash[:error] = Spree.t(:could_not_create_stock_movement)
|
22
|
-
redirect_to :back
|
23
|
-
else
|
24
|
-
@stock_movement = stock_location.stock_movements.build(params[:stock_movement])
|
25
|
-
@stock_movement.save
|
26
|
-
flash[:success] = flash_message_for(@stock_movement, :successfully_created)
|
27
|
-
redirect_to admin_stock_location_stock_movements_path(stock_location)
|
28
|
-
end
|
16
|
+
@stock_movement = stock_location.stock_movements.build(params[:stock_movement])
|
17
|
+
@stock_movement.save
|
18
|
+
flash[:success] = flash_message_for(@stock_movement, :successfully_created)
|
19
|
+
redirect_to admin_stock_location_stock_movements_path(stock_location)
|
29
20
|
end
|
30
21
|
|
31
22
|
def edit
|
32
23
|
@stock_movement = StockMovement.find(params[:id])
|
33
24
|
end
|
34
25
|
|
35
|
-
def update
|
36
|
-
@stock_movement = StockMovement.find(params[:id])
|
37
|
-
if @stock_movement.update_attributes(params[:stock_movement])
|
38
|
-
flash[:success] = flash_message_for(@stock_movement, :successfully_updated)
|
39
|
-
redirect_to admin_stock_location_stock_movements_path(stock_location)
|
40
|
-
else
|
41
|
-
render :edit
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def destroy
|
46
|
-
stock_movement = StockMovement.find(params[:id])
|
47
|
-
flash[:success] = flash_message_for(stock_movement, :successfully_removed)
|
48
|
-
stock_movement.destroy
|
49
|
-
redirect_to admin_stock_location_stock_movements_path(stock_location)
|
50
|
-
end
|
51
|
-
|
52
26
|
private
|
53
27
|
|
54
28
|
def stock_location
|
@@ -57,4 +31,3 @@ module Spree
|
|
57
31
|
end
|
58
32
|
end
|
59
33
|
end
|
60
|
-
|