piggybak 0.4.37 → 0.4.38

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.37
1
+ 0.4.38
@@ -0,0 +1,63 @@
1
+ /*
2
+ * jQuery AjaxQ - AJAX request queueing for jQuery
3
+ *
4
+ * Version: 0.0.1
5
+ * Date: July 22, 2008
6
+ *
7
+ * Copyright (c) 2008 Oleg Podolsky (oleg.podolsky@gmail.com)
8
+ * Licensed under the MIT (MIT-LICENSE.txt) license.
9
+ *
10
+ * http://plugins.jquery.com/project/ajaxq
11
+ * http://code.google.com/p/jquery-ajaxq/
12
+ */
13
+
14
+ jQuery.ajaxq = function (queue, options)
15
+ {
16
+ // Initialize storage for request queues if it's not initialized yet
17
+ if (typeof document.ajaxq == "undefined") document.ajaxq = {q:{}, r:null};
18
+
19
+ // Initialize current queue if it's not initialized yet
20
+ if (typeof document.ajaxq.q[queue] == "undefined") document.ajaxq.q[queue] = [];
21
+
22
+ if (typeof options != "undefined") // Request settings are given, enqueue the new request
23
+ {
24
+ // Copy the original options, because options.complete is going to be overridden
25
+
26
+ var optionsCopy = {};
27
+ for (var o in options) optionsCopy[o] = options[o];
28
+ options = optionsCopy;
29
+
30
+ // Override the original callback
31
+
32
+ var originalCompleteCallback = options.complete;
33
+
34
+ options.complete = function (request, status)
35
+ {
36
+ // Dequeue the current request
37
+ document.ajaxq.q[queue].shift ();
38
+ document.ajaxq.r = null;
39
+
40
+ // Run the original callback
41
+ if (originalCompleteCallback) originalCompleteCallback (request, status);
42
+
43
+ // Run the next request from the queue
44
+ if (document.ajaxq.q[queue].length > 0) document.ajaxq.r = jQuery.ajax (document.ajaxq.q[queue][0]);
45
+ };
46
+
47
+ // Enqueue the request
48
+ document.ajaxq.q[queue].push (options);
49
+
50
+ // Also, if no request is currently running, start it
51
+ if (document.ajaxq.q[queue].length == 1) document.ajaxq.r = jQuery.ajax (options);
52
+ }
53
+ else // No request settings are given, stop current request and clear the queue
54
+ {
55
+ if (document.ajaxq.r)
56
+ {
57
+ document.ajaxq.r.abort ();
58
+ document.ajaxq.r = null;
59
+ }
60
+
61
+ document.ajaxq.q[queue] = [];
62
+ }
63
+ }
@@ -1,8 +1,10 @@
1
1
  var tax_total = 0;
2
2
  var shipping_els;
3
3
  var page_load = 1;
4
+ var shipping_field;
4
5
 
5
6
  $(function() {
7
+ shipping_field = $('#piggybak_order_shipments_attributes_0_shipping_method_id');
6
8
  shipping_els = $('#piggybak_order_shipping_address_attributes_state_id,#piggybak_order_shipping_address_attributes_country_id,#piggybak_order_shipping_address_attributes_zip');
7
9
  piggybak.initialize_listeners();
8
10
  piggybak.update_shipping_options($('#piggybak_order_shipping_address_attributes_state_id'), function() {
@@ -55,49 +57,31 @@ var piggybak = {
55
57
  }
56
58
  },
57
59
  update_shipping_options: function(field, block) {
58
- var shipping_field = $('#piggybak_order_shipments_attributes_0_shipping_method_id');
59
- shipping_field.hide();
60
60
  if(page_load && !piggybak.valid_shipping_address()) {
61
61
  page_load = 0;
62
62
  shipping_field.hide();
63
63
  $('#shipping_default').show();
64
64
  return;
65
65
  }
66
- $('#shipping_spinner').show();
67
- $('#shipping_empty,#shipping_default').hide();
68
- var shipping_data = {};
69
- $('#shipping_address input, #shipping_address select').each(function(i, j) {
70
- var id = $(j).attr('id');
71
- if(typeof(id) !== 'undefined') {
72
- id = id.replace("piggybak_order_shipping_address_attributes_", '');
73
- if($(j).is(':checkbox')) {
74
- shipping_data[id] = $(j).is(':checked');
75
- } else {
76
- shipping_data[id] = $(j).val();
77
- }
78
- }
79
- });
80
- $.ajax({
66
+
67
+ var shipping_data = piggybak.retrieve_shipping_data();
68
+
69
+ //Stopping existing queue AJAX calls
70
+ $.ajaxq("shipping_queue");
71
+
72
+ //Adding new AJAX call to queue
73
+ $.ajaxq("shipping_queue", {
81
74
  url: shipping_lookup,
82
75
  cached: false,
83
76
  data: shipping_data,
84
77
  dataType: "JSON",
78
+ beforeSend: function() {
79
+ shipping_field.hide();
80
+ $('#shipping_spinner').show();
81
+ $('#shipping_empty,#shipping_default').hide();
82
+ },
85
83
  success: function(data) {
86
- shipping_field.find('option').remove();
87
- $.each(data, function(i, j) {
88
- shipping_field.append($('<option>').html(j.label).val(j.id).data('rate', j.rate));
89
- });
90
- if(data.length == 0) {
91
- shipping_field.hide();
92
- if(page_load) {
93
- page_load = 0;
94
- $('#shipping_default').show();
95
- } else {
96
- $('#shipping_empty').show();
97
- }
98
- } else {
99
- shipping_field.show();
100
- }
84
+ piggybak.render_shipping_options(data);
101
85
  piggybak.update_totals();
102
86
  if(block) {
103
87
  block();
@@ -134,5 +118,37 @@ var piggybak = {
134
118
  $('#shipping_total').html('$' + shipping_total.toFixed(2));
135
119
  var order_total = subtotal + tax_total + shipping_total;
136
120
  $('#order_total').html('$' + order_total.toFixed(2));
121
+ },
122
+ retrieve_shipping_data: function() {
123
+ var shipping_data = {};
124
+ $('#shipping_address input, #shipping_address select').each(function(i, j) {
125
+ var id = $(j).attr('id');
126
+ if(typeof(id) !== 'undefined') {
127
+ id = id.replace("piggybak_order_shipping_address_attributes_", '');
128
+ if($(j).is(':checkbox')) {
129
+ shipping_data[id] = $(j).is(':checked');
130
+ } else {
131
+ shipping_data[id] = $(j).val();
132
+ }
133
+ }
134
+ });
135
+ return shipping_data;
136
+ },
137
+ render_shipping_options: function(data) {
138
+ shipping_field.find('option').remove();
139
+ $.each(data, function(i, j) {
140
+ shipping_field.append($('<option>').html(j.label).val(j.id).data('rate', j.rate));
141
+ });
142
+ if(data.length == 0) {
143
+ shipping_field.hide();
144
+ if(page_load) {
145
+ page_load = 0;
146
+ $('#shipping_default').show();
147
+ } else {
148
+ $('#shipping_empty').show();
149
+ }
150
+ } else {
151
+ shipping_field.show();
152
+ }
137
153
  }
138
154
  };
@@ -118,7 +118,7 @@
118
118
 
119
119
  </div>
120
120
 
121
- <%= javascript_include_tag "piggybak", "piggybak.states" %>
121
+ <%= javascript_include_tag "jquery.ajaxq.js", "piggybak", "piggybak.states" %>
122
122
  <script type="text/javascript">
123
123
  var shipping_lookup = "<%= piggybak.orders_shipping_url %>";
124
124
  var tax_lookup = "<%= piggybak.orders_tax_url %>";
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "piggybak"
8
- s.version = "0.4.37"
8
+ s.version = "0.4.38"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Steph Skardal", "Brian Buchalter"]
12
- s.date = "2012-08-22"
12
+ s.date = "2012-08-27"
13
13
  s.description = "Mountable ecommerce"
14
14
  s.email = "steph@endpoint.com"
15
15
  s.extra_rdoc_files = [
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  "Rakefile",
26
26
  "VERSION",
27
27
  "app/assets/images/ajax-loader.gif",
28
+ "app/assets/javascripts/jquery.ajaxq.js",
28
29
  "app/assets/javascripts/piggybak.js",
29
30
  "app/assets/javascripts/piggybak.states.js",
30
31
  "app/controllers/piggybak/cart_controller.rb",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: piggybak
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.37
4
+ version: 0.4.38
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-08-22 00:00:00.000000000 Z
13
+ date: 2012-08-27 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: countries
17
- requirement: &16094600 !ruby/object:Gem::Requirement
17
+ requirement: &12315860 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *16094600
25
+ version_requirements: *12315860
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bundler
28
- requirement: &16093480 !ruby/object:Gem::Requirement
28
+ requirement: &12314160 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.0.0
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *16093480
36
+ version_requirements: *12314160
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: jeweler
39
- requirement: &16091940 !ruby/object:Gem::Requirement
39
+ requirement: &12327740 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.6.4
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *16091940
47
+ version_requirements: *12327740
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rspec
50
- requirement: &16091100 !ruby/object:Gem::Requirement
50
+ requirement: &12324440 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *16091100
58
+ version_requirements: *12324440
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rspec-rails
61
- requirement: &16106420 !ruby/object:Gem::Requirement
61
+ requirement: &12322300 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 2.7.0
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *16106420
69
+ version_requirements: *12322300
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: factory_girl
72
- requirement: &16104680 !ruby/object:Gem::Requirement
72
+ requirement: &12336580 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *16104680
80
+ version_requirements: *12336580
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: diff-lcs
83
- requirement: &16102440 !ruby/object:Gem::Requirement
83
+ requirement: &12333760 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *16102440
91
+ version_requirements: *12333760
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: shoulda
94
- requirement: &16099540 !ruby/object:Gem::Requirement
94
+ requirement: &12332440 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '0'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *16099540
102
+ version_requirements: *12332440
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: simplecov
105
- requirement: &16114700 !ruby/object:Gem::Requirement
105
+ requirement: &12331520 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ! '>='
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: '0'
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *16114700
113
+ version_requirements: *12331520
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: tzinfo
116
- requirement: &16113440 !ruby/object:Gem::Requirement
116
+ requirement: &12330040 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ! '>='
@@ -121,10 +121,10 @@ dependencies:
121
121
  version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *16113440
124
+ version_requirements: *12330040
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: devise
127
- requirement: &16112000 !ruby/object:Gem::Requirement
127
+ requirement: &12344520 !ruby/object:Gem::Requirement
128
128
  none: false
129
129
  requirements:
130
130
  - - ! '>='
@@ -132,10 +132,10 @@ dependencies:
132
132
  version: '0'
133
133
  type: :development
134
134
  prerelease: false
135
- version_requirements: *16112000
135
+ version_requirements: *12344520
136
136
  - !ruby/object:Gem::Dependency
137
137
  name: rails_admin
138
- requirement: &16109820 !ruby/object:Gem::Requirement
138
+ requirement: &12342480 !ruby/object:Gem::Requirement
139
139
  none: false
140
140
  requirements:
141
141
  - - ! '>='
@@ -143,10 +143,10 @@ dependencies:
143
143
  version: '0'
144
144
  type: :runtime
145
145
  prerelease: false
146
- version_requirements: *16109820
146
+ version_requirements: *12342480
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: devise
149
- requirement: &16119440 !ruby/object:Gem::Requirement
149
+ requirement: &12338200 !ruby/object:Gem::Requirement
150
150
  none: false
151
151
  requirements:
152
152
  - - ! '>='
@@ -154,10 +154,10 @@ dependencies:
154
154
  version: '0'
155
155
  type: :runtime
156
156
  prerelease: false
157
- version_requirements: *16119440
157
+ version_requirements: *12338200
158
158
  - !ruby/object:Gem::Dependency
159
159
  name: activemerchant
160
- requirement: &16116640 !ruby/object:Gem::Requirement
160
+ requirement: &12347860 !ruby/object:Gem::Requirement
161
161
  none: false
162
162
  requirements:
163
163
  - - ! '>='
@@ -165,10 +165,10 @@ dependencies:
165
165
  version: '0'
166
166
  type: :runtime
167
167
  prerelease: false
168
- version_requirements: *16116640
168
+ version_requirements: *12347860
169
169
  - !ruby/object:Gem::Dependency
170
170
  name: countries
171
- requirement: &16131280 !ruby/object:Gem::Requirement
171
+ requirement: &12345440 !ruby/object:Gem::Requirement
172
172
  none: false
173
173
  requirements:
174
174
  - - ! '>='
@@ -176,10 +176,10 @@ dependencies:
176
176
  version: '0'
177
177
  type: :runtime
178
178
  prerelease: false
179
- version_requirements: *16131280
179
+ version_requirements: *12345440
180
180
  - !ruby/object:Gem::Dependency
181
181
  name: rspec
182
- requirement: &16127600 !ruby/object:Gem::Requirement
182
+ requirement: &12360460 !ruby/object:Gem::Requirement
183
183
  none: false
184
184
  requirements:
185
185
  - - ! '>='
@@ -187,10 +187,10 @@ dependencies:
187
187
  version: '0'
188
188
  type: :development
189
189
  prerelease: false
190
- version_requirements: *16127600
190
+ version_requirements: *12360460
191
191
  - !ruby/object:Gem::Dependency
192
192
  name: rspec-rails
193
- requirement: &16124640 !ruby/object:Gem::Requirement
193
+ requirement: &12358880 !ruby/object:Gem::Requirement
194
194
  none: false
195
195
  requirements:
196
196
  - - ! '>='
@@ -198,10 +198,10 @@ dependencies:
198
198
  version: '0'
199
199
  type: :development
200
200
  prerelease: false
201
- version_requirements: *16124640
201
+ version_requirements: *12358880
202
202
  - !ruby/object:Gem::Dependency
203
203
  name: diff-lcs
204
- requirement: &16137600 !ruby/object:Gem::Requirement
204
+ requirement: &12355800 !ruby/object:Gem::Requirement
205
205
  none: false
206
206
  requirements:
207
207
  - - ! '>='
@@ -209,10 +209,10 @@ dependencies:
209
209
  version: '0'
210
210
  type: :development
211
211
  prerelease: false
212
- version_requirements: *16137600
212
+ version_requirements: *12355800
213
213
  - !ruby/object:Gem::Dependency
214
214
  name: factory_girl
215
- requirement: &16135200 !ruby/object:Gem::Requirement
215
+ requirement: &12367360 !ruby/object:Gem::Requirement
216
216
  none: false
217
217
  requirements:
218
218
  - - ! '>='
@@ -220,10 +220,10 @@ dependencies:
220
220
  version: '0'
221
221
  type: :development
222
222
  prerelease: false
223
- version_requirements: *16135200
223
+ version_requirements: *12367360
224
224
  - !ruby/object:Gem::Dependency
225
225
  name: shoulda
226
- requirement: &16132900 !ruby/object:Gem::Requirement
226
+ requirement: &12364760 !ruby/object:Gem::Requirement
227
227
  none: false
228
228
  requirements:
229
229
  - - ! '>='
@@ -231,7 +231,7 @@ dependencies:
231
231
  version: '0'
232
232
  type: :development
233
233
  prerelease: false
234
- version_requirements: *16132900
234
+ version_requirements: *12364760
235
235
  description: Mountable ecommerce
236
236
  email: steph@endpoint.com
237
237
  executables: []
@@ -248,6 +248,7 @@ files:
248
248
  - Rakefile
249
249
  - VERSION
250
250
  - app/assets/images/ajax-loader.gif
251
+ - app/assets/javascripts/jquery.ajaxq.js
251
252
  - app/assets/javascripts/piggybak.js
252
253
  - app/assets/javascripts/piggybak.states.js
253
254
  - app/controllers/piggybak/cart_controller.rb
@@ -401,7 +402,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
401
402
  version: '0'
402
403
  segments:
403
404
  - 0
404
- hash: -2729916603913197983
405
+ hash: -2737025986462188671
405
406
  required_rubygems_version: !ruby/object:Gem::Requirement
406
407
  none: false
407
408
  requirements: