spree_backend 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/app/assets/javascripts/admin/variant_autocomplete.js.erb +101 -4
- data/app/helpers/spree/admin/navigation_helper.rb +1 -2
- data/app/views/spree/admin/orders/_form.html.erb +1 -1
- data/app/views/spree/admin/orders/_shipment.html.erb +6 -4
- data/app/views/spree/admin/variants/_split.js.erb +29 -0
- metadata +14 -32
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0423c9ed97ff3f9cdaf5320fbad1e2c1edcacf27
|
4
|
+
data.tar.gz: 271f3c36169eeefa5ab4463913a0df48c56333fb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 938a189fc6a083123d838d649a4587f633dda9c62e97340d8ebff7b24a10a937deb09434fd1da1a4c4f7fd1e43c9db185732da88473cb7b3f114c2fc46512a42
|
7
|
+
data.tar.gz: bb905d0d2053784fbf0ce2ba66ec8d6ede87813121f3540cf2d6eb69c1a0d62d09e70f2f1a4ab14f567fd80cb3a19de3421e7d51fb819819a4732dad0f286a88
|
@@ -35,6 +35,9 @@ $(document).ready(function() {
|
|
35
35
|
//handle cancel click
|
36
36
|
$('a.cancel-item').click(toggleItemEdit);
|
37
37
|
|
38
|
+
//handle split click
|
39
|
+
$('a.split-item').click(startItemSplit);
|
40
|
+
|
38
41
|
//handle save click
|
39
42
|
$('a.save-item').click(function(){
|
40
43
|
var save = $(this);
|
@@ -46,7 +49,7 @@ $(document).ready(function() {
|
|
46
49
|
toggleItemEdit();
|
47
50
|
|
48
51
|
adjustItems(shipment_number, variant_id, quantity);
|
49
|
-
|
52
|
+
return false;
|
50
53
|
});
|
51
54
|
|
52
55
|
//handle delete click
|
@@ -79,7 +82,6 @@ adjustItems = function(shipment_number, variant_id, quantity){
|
|
79
82
|
}
|
80
83
|
url += '.json';
|
81
84
|
|
82
|
-
|
83
85
|
if(new_quantity!=0){
|
84
86
|
$.ajax({
|
85
87
|
type: "PUT",
|
@@ -87,8 +89,6 @@ adjustItems = function(shipment_number, variant_id, quantity){
|
|
87
89
|
data: { variant_id: variant_id, quantity: new_quantity }
|
88
90
|
}).done(function( msg ) {
|
89
91
|
window.location.reload();
|
90
|
-
}).error(function( msg ) {
|
91
|
-
console.log(msg);
|
92
92
|
});
|
93
93
|
}
|
94
94
|
}
|
@@ -109,10 +109,107 @@ toggleItemEdit = function(){
|
|
109
109
|
var link = $(this);
|
110
110
|
link.parent().find('a.edit-item').toggle();
|
111
111
|
link.parent().find('a.cancel-item').toggle();
|
112
|
+
link.parent().find('a.split-item').toggle();
|
112
113
|
link.parent().find('a.save-item').toggle();
|
113
114
|
link.parent().find('a.delete-item').toggle();
|
114
115
|
link.parents('tr').find('td.item-qty-show').toggle();
|
115
116
|
link.parents('tr').find('td.item-qty-edit').toggle();
|
117
|
+
|
118
|
+
return false;
|
119
|
+
}
|
120
|
+
|
121
|
+
startItemSplit = function(event){
|
122
|
+
event.preventDefault();
|
123
|
+
var link = $(this);
|
124
|
+
link.parent().find('a.edit-item').toggle();
|
125
|
+
link.parent().find('a.split-item').toggle();
|
126
|
+
link.parent().find('a.delete-item').toggle();
|
127
|
+
var variant_id = link.data('variant-id');
|
128
|
+
|
129
|
+
var variant = {};
|
130
|
+
$.ajax({
|
131
|
+
type: "GET",
|
132
|
+
async: false,
|
133
|
+
url: Spree.url("/api/variants.json"),
|
134
|
+
data: {
|
135
|
+
q: {
|
136
|
+
"id_eq": variant_id
|
137
|
+
}
|
138
|
+
}
|
139
|
+
}).success(function( data ) {
|
140
|
+
variant = data['variants'][0];
|
141
|
+
}).error(function( msg ) {
|
142
|
+
console.log(msg);
|
143
|
+
});
|
144
|
+
|
145
|
+
var max_quantity = link.closest('tr').data('item-quantity');
|
146
|
+
var split_item_template = Handlebars.compile($('#variant_split_template').text());
|
147
|
+
link.closest('tr').after(split_item_template({ variant: variant, shipments: shipments, max_quantity: max_quantity }));
|
148
|
+
$('a.cancel-split').click(cancelItemSplit);
|
149
|
+
$('a.save-split').click(completeItemSplit);
|
150
|
+
|
151
|
+
// Add some tips
|
152
|
+
$('.with-tip').powerTip({
|
153
|
+
smartPlacement: true,
|
154
|
+
fadeInTime: 50,
|
155
|
+
fadeOutTime: 50,
|
156
|
+
intentPollInterval: 300
|
157
|
+
});
|
158
|
+
$('#item_stock_location').select2({ width: 'resolve', placeholder: 'Choose Location' });
|
159
|
+
}
|
160
|
+
|
161
|
+
completeItemSplit = function(event) {
|
162
|
+
event.preventDefault();
|
163
|
+
var link = $(this);
|
164
|
+
var order_number = link.closest('tbody').data('order-number');
|
165
|
+
var stock_item_row = link.closest('tr');
|
166
|
+
var variant_id = stock_item_row.data('variant-id');
|
167
|
+
var quantity = stock_item_row.find('#item_quantity').val();
|
168
|
+
|
169
|
+
var stock_location_id = stock_item_row.find('#item_stock_location').val();
|
170
|
+
var original_shipment_number = link.closest('tbody').data('shipment-number');
|
171
|
+
|
172
|
+
var selected_shipment = stock_item_row.find($('#item_stock_location').select2('data').element);
|
173
|
+
var target_shipment_number = selected_shipment.data('shipment-number');
|
174
|
+
var new_shipment = selected_shipment.data('new-shipment');
|
175
|
+
|
176
|
+
if (stock_location_id != 'new_shipment') {
|
177
|
+
// first remove item(s) from original shipment
|
178
|
+
$.ajax({
|
179
|
+
type: "PUT",
|
180
|
+
async: false,
|
181
|
+
url: Spree.url("/api/orders/" + order_number + "/shipments/" + original_shipment_number + "/remove.json"),
|
182
|
+
data: { variant_id: variant_id, quantity: quantity }
|
183
|
+
}).done(function(msg) {
|
184
|
+
window.location.reload();
|
185
|
+
});
|
186
|
+
|
187
|
+
if (new_shipment != undefined) {
|
188
|
+
$.ajax({
|
189
|
+
type: "POST",
|
190
|
+
async: false,
|
191
|
+
url: Spree.url("/api/orders/" + order_number + "/shipments.json"),
|
192
|
+
data: { variant_id: variant_id, quantity: quantity, stock_location_id: stock_location_id }
|
193
|
+
});
|
194
|
+
} else {
|
195
|
+
$.ajax({
|
196
|
+
type: "PUT",
|
197
|
+
async: false,
|
198
|
+
url: Spree.url("/api/orders/" + order_number + "/shipments/" + target_shipment_number + "/add.json"),
|
199
|
+
data: { variant_id: variant_id, quantity: quantity }
|
200
|
+
});
|
201
|
+
}
|
202
|
+
}
|
203
|
+
}
|
204
|
+
|
205
|
+
cancelItemSplit = function(event) {
|
206
|
+
event.preventDefault();
|
207
|
+
var link = $(this);
|
208
|
+
var prev_row = link.closest('tr').prev();
|
209
|
+
link.closest('tr').remove();
|
210
|
+
prev_row.find('a.edit-item').toggle();
|
211
|
+
prev_row.find('a.split-item').toggle();
|
212
|
+
prev_row.find('a.delete-item').toggle();
|
116
213
|
}
|
117
214
|
|
118
215
|
addVariantFromStockLocation = function() {
|
@@ -18,8 +18,7 @@ module Spree
|
|
18
18
|
options[:route] ||= "admin_#{args.first}"
|
19
19
|
|
20
20
|
destination_url = options[:url] || spree.send("#{options[:route]}_path")
|
21
|
-
|
22
|
-
titleized_label = Spree.t(options[:label], :default => options[:label]).titleize
|
21
|
+
titleized_label = Spree.t(options[:label], :default => options[:label], :scope => [:admin, :tab]).titleize
|
23
22
|
|
24
23
|
css_classes = []
|
25
24
|
|
@@ -37,7 +37,7 @@
|
|
37
37
|
var shipments = [];
|
38
38
|
|
39
39
|
<% @order.shipments.each do |shipment| %>
|
40
|
-
shipments.push(<%== shipment.to_json(:root => false, :include => :inventory_units) %>);
|
40
|
+
shipments.push(<%== shipment.to_json(:root => false, :include => [:inventory_units, :stock_location]) %>);
|
41
41
|
<% end %>
|
42
42
|
|
43
43
|
<%= render :partial => 'spree/admin/shared/update_order_state', :handlers => [:js] %>
|
@@ -1,3 +1,4 @@
|
|
1
|
+
<%= render :partial => "spree/admin/variants/split", :formats => :js %>
|
1
2
|
<fieldset class="no-border-bottom">
|
2
3
|
<legend align="center" class="stock-location" data-hook="stock-location">
|
3
4
|
<span class="shipment-number"><%= shipment.number %></span>
|
@@ -30,11 +31,11 @@
|
|
30
31
|
<th class="orders-actions actions" data-hook="admin_order_form_line_items_header_actions"></th>
|
31
32
|
</thead>
|
32
33
|
|
33
|
-
<tbody>
|
34
|
+
<tbody data-shipment-number="<%= shipment.number %>" data-order-number="<%= order.number %>">
|
34
35
|
<% shipment.manifest.each do |item| %>
|
35
36
|
<% line_item = order.find_line_item_by_variant(item.variant) %>
|
36
37
|
|
37
|
-
<tr class="stock-item">
|
38
|
+
<tr class="stock-item" data-item-quantity="<%= item.quantity %>">
|
38
39
|
<td class="item-image"><%= mini_image(item.variant) %></td>
|
39
40
|
<td class="item-name">
|
40
41
|
<%= item.variant.product.name %><br><%= "(" + variant_options(item.variant) + ")" unless item.variant.option_values.empty? %>
|
@@ -57,7 +58,8 @@
|
|
57
58
|
<%= link_to '', '#', :class => 'save-item icon_link icon-ok no-text with-tip', :data => {'shipment-number' => shipment.number, 'variant-id' => item.variant.id, :action => 'save'}, :title => Spree.t('actions.save'), :style => 'display: none' %>
|
58
59
|
<%= link_to '', '#', :class => 'cancel-item icon_link icon-cancel no-text with-tip', :data => {:action => 'cancel'}, :title => Spree.t('actions.cancel'), :style => 'display: none' %>
|
59
60
|
<%= link_to '', '#', :class => 'edit-item icon_link icon-edit no-text with-tip', :data => {:action => 'edit'}, :title => Spree.t('edit') %>
|
60
|
-
<%= link_to '', '#', :class => '
|
61
|
+
<%= link_to '', '#', :class => 'split-item icon_link icon-resize-horizontal no-text with-tip', :data => {:action => 'split', 'variant-id' => item.variant.id}, :title => Spree.t('split') %>
|
62
|
+
<%= link_to '', '#', :class => 'delete-item icon-trash no-text with-tip', :data => {'shipment-number' => shipment.number, 'variant-id' => item.variant.id, :action => 'remove'}, :title => Spree.t('delete') %>
|
61
63
|
<% end %>
|
62
64
|
</td>
|
63
65
|
<% end %>
|
@@ -98,7 +100,7 @@
|
|
98
100
|
<tr class="show-method total">
|
99
101
|
<td colspan="4">
|
100
102
|
<% if shipment.adjustment.present? %>
|
101
|
-
<strong><%= shipment.adjustment.label
|
103
|
+
<strong><%= shipment.adjustment.label %>: <%= shipment.shipping_method.name %></strong>
|
102
104
|
<% else %>
|
103
105
|
<%= Spree.t(:cannot_set_shipping_method_without_address) %>
|
104
106
|
<% end %>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<script type='text/template' id='variant_split_template'>
|
2
|
+
<tr class='stock-item-split' data-variant-id='{{variant.id}}'>
|
3
|
+
<td colspan='2'>
|
4
|
+
Move {{variant.name}} to:
|
5
|
+
</td>
|
6
|
+
<td colspan='2'>
|
7
|
+
<select name="item_stock_location" id='item_stock_location' style='width:100%;'>
|
8
|
+
<option></option>
|
9
|
+
<optgroup label="Existing Shipments">
|
10
|
+
{{#each shipments}}
|
11
|
+
<option data-shipment-number='{{this.number}}' value='{{this.stock_location_id}}'>{{this.stock_location.name}}({{this.number}})</option>
|
12
|
+
{{/each}}
|
13
|
+
</optgroup>
|
14
|
+
<optgroup label="New Shipment At Location">
|
15
|
+
{{#each variant.stock_items}}
|
16
|
+
<option data-new-shipment='true' value='{{this.stock_location_id}}'>{{this.stock_location_name}}</option>
|
17
|
+
{{/each}}
|
18
|
+
</optgroup>
|
19
|
+
</select>
|
20
|
+
</td>
|
21
|
+
<td>
|
22
|
+
<input class="quantity" id="item_quantity" type="number" min="1" value="1" max="{{max_quantity}}">
|
23
|
+
</td>
|
24
|
+
<td class='actions'>
|
25
|
+
<a href='#' class='save-split icon_link icon-ok no-text with-tip' title='Save'></a>
|
26
|
+
<a href='#' class='cancel-split icon_link icon-cancel no-text with-tip' title='Cancel'></a>
|
27
|
+
</td>
|
28
|
+
</tr>
|
29
|
+
</script>
|
metadata
CHANGED
@@ -1,52 +1,46 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_backend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Sean Schofield
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-06-
|
11
|
+
date: 2013-06-12 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: spree_core
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - '='
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.0.
|
19
|
+
version: 2.0.2
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - '='
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 2.0.
|
26
|
+
version: 2.0.2
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: spree_api
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - '='
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: 2.0.
|
33
|
+
version: 2.0.2
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - '='
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: 2.0.
|
40
|
+
version: 2.0.2
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: jquery-rails
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: select2-rails
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - '='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - '='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rails
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,23 +83,20 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: deface
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - '>='
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: 0.9.0
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: 0.9.0
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: email_spec
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ~>
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ~>
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -430,6 +415,7 @@ files:
|
|
430
415
|
- app/views/spree/admin/trackers/new.html.erb
|
431
416
|
- app/views/spree/admin/variants/_autocomplete.js.erb
|
432
417
|
- app/views/spree/admin/variants/_form.html.erb
|
418
|
+
- app/views/spree/admin/variants/_split.js.erb
|
433
419
|
- app/views/spree/admin/variants/edit.html.erb
|
434
420
|
- app/views/spree/admin/variants/index.html.erb
|
435
421
|
- app/views/spree/admin/variants/new.html.erb
|
@@ -499,30 +485,26 @@ files:
|
|
499
485
|
- vendor/assets/stylesheets/responsive-tables.css
|
500
486
|
homepage: http://spreecommerce.com
|
501
487
|
licenses: []
|
488
|
+
metadata: {}
|
502
489
|
post_install_message:
|
503
490
|
rdoc_options: []
|
504
491
|
require_paths:
|
505
492
|
- lib
|
506
493
|
required_ruby_version: !ruby/object:Gem::Requirement
|
507
|
-
none: false
|
508
494
|
requirements:
|
509
|
-
- -
|
495
|
+
- - '>='
|
510
496
|
- !ruby/object:Gem::Version
|
511
497
|
version: 1.9.3
|
512
498
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
513
|
-
none: false
|
514
499
|
requirements:
|
515
|
-
- -
|
500
|
+
- - '>='
|
516
501
|
- !ruby/object:Gem::Version
|
517
502
|
version: '0'
|
518
|
-
segments:
|
519
|
-
- 0
|
520
|
-
hash: 89217670578797386
|
521
503
|
requirements:
|
522
504
|
- none
|
523
505
|
rubyforge_project: spree_backend
|
524
|
-
rubygems_version:
|
506
|
+
rubygems_version: 2.0.0
|
525
507
|
signing_key:
|
526
|
-
specification_version:
|
508
|
+
specification_version: 4
|
527
509
|
summary: backend e-commerce functionality for the Spree project.
|
528
510
|
test_files: []
|