piggybak 0.4.37 → 0.4.38

Sign up to get free protection for your applications and to get access to all the features.
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: