hobo_jquery 1.4.0.pre8 → 2.0.0.pre1

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
- 1.4.0.pre8
1
+ 2.0.0.pre1
@@ -1,5 +1,11 @@
1
1
  module HoboJqueryHelper
2
- def data_rapid(tag, options = {})
3
- {tag => options}.to_json
2
+ def data_rapid(tag, options = {}, attributes = {})
3
+ if attributes['data_rapid']
4
+ hash = ActiveSupport::JSON.decode(attributes['data_rapid'])
5
+ else
6
+ hash = {}
7
+ end
8
+ hash[tag] = options
9
+ hash.to_json
4
10
  end
5
11
  end
data/hobo_jquery.gemspec CHANGED
@@ -17,7 +17,7 @@ spec = Gem::Specification.new do |s|
17
17
  s.rdoc_options = ["--charset=UTF-8"]
18
18
  s.require_paths = ["lib", "vendor", "taglibs"]
19
19
 
20
- s.add_runtime_dependency('jquery-rails', ["~> 1.0"])
20
+ s.add_runtime_dependency('jquery-rails', ["~> 2.0"])
21
21
  s.add_runtime_dependency('hobo', ["= #{version}"])
22
22
 
23
23
  end
@@ -0,0 +1,15 @@
1
+ /* search_results */
2
+ (function($) {
3
+ $.fn.hjq_before_unload = function(annotations) {
4
+ var that = this;
5
+ that.find(":input").bind('change', function() {
6
+ window.onbeforeunload = function() {
7
+ return that.find(typeof(annotations.message == 'string') ? annotations.message : "You have unsaved changes. If you exit this page, your changes will not be saved.");
8
+ }
9
+ });
10
+ that.submit(function() {
11
+ window.onbeforeunload = null;
12
+ });
13
+ return that;
14
+ }
15
+ }( jQuery ));
@@ -117,6 +117,8 @@ if(!RegExp.escape) {
117
117
  // remove with animation
118
118
  me.hjq('hideAndRemove', attrs['hide']);
119
119
 
120
+ top.trigger('rapid:change');
121
+
120
122
  return false; //prevent bubbling
121
123
  },
122
124
 
@@ -0,0 +1,33 @@
1
+ /* hjq-input-many */
2
+ (function($) {
3
+ var methods = {
4
+ init: function(annotations) {
5
+ var options = $.extend({update: methods.update}, this.hjq('getOptions', annotations));
6
+ this.sortable(options);
7
+ this.on('rapid:change', methods.update);
8
+ },
9
+
10
+ update: function() {
11
+ var that=$(this);
12
+ var annotations=that.data('rapid')['sortable-input-many'];
13
+ that.find("li:visible input.sortable-position").each(function(index) {
14
+ $(this).val(index+1);
15
+ });
16
+ return that;
17
+ }
18
+
19
+ };
20
+
21
+
22
+ $.fn.hjq_sortable_input_many = function( method ) {
23
+
24
+ if ( methods[method] ) {
25
+ return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
26
+ } else if ( typeof method === 'object' || ! method ) {
27
+ return methods.init.apply( this, arguments );
28
+ } else {
29
+ $.error( 'Method ' + method + ' does not exist on hjq_sortable_collection' );
30
+ }
31
+ };
32
+
33
+ })( jQuery );
@@ -6,9 +6,9 @@
6
6
  // removal ensures it stays on screen long enough to be visible.
7
7
 
8
8
  var methods = {
9
- /* without any options, $(foo).hjq_spinner() places a spinner
9
+ /* without any options, spinner = $(foo).hjq_spinner() places a spinner
10
10
  to the left of foo until you remove it via
11
- $(foo).hjq_spinner('remove');
11
+ spinner.hjq_spinner('remove');
12
12
 
13
13
  options:
14
14
  - spinner-next-to: DOM id of the element to place the spinner next to.
@@ -18,20 +18,17 @@
18
18
  - message: the message to display inside the spinner
19
19
 
20
20
  If options.message is false-ish, default_message is displayed.
21
+
22
+ The spinner is returned.
21
23
  */
22
24
  init: function(options, default_message) {
23
25
  var original=$("#ajax-progress");
24
26
  if (original.length==0) return this;
25
27
 
26
28
  options = $.extend({}, defaultOptions.call(this), options);
27
- if(options['no-spinner']) return this;
29
+ if(options['no-spinner']) return $();
28
30
 
29
31
  var clone=original.clone();
30
- var spinner_list = this.data('hjq-spinner') || [];
31
- spinner_list.push(clone);
32
-
33
- this.data('hjq-spinner', spinner_list);
34
- clone.data('source', this);
35
32
 
36
33
  clone.find("span").text(options.message || default_message || "");
37
34
 
@@ -42,24 +39,11 @@
42
39
  else if(options['spinner-next-to']) pos_options.of=$("#"+options['spinner-next-to']);
43
40
 
44
41
  clone.insertBefore(original).show().position(pos_options);
45
- return this;
42
+ return clone;
46
43
  },
47
44
 
48
45
  remove: function() {
49
- var spinner_list = this.data('hjq-spinner');
50
- var clone = spinner_list.pop();
51
- var that=this;
52
- if(!clone) {
53
- $(".ajax-progress").each(function() {
54
- if($(this).data('source')[0]==that[0]) {
55
- clone=$(this);
56
- return false;
57
- }
58
- });
59
- }
60
- if(!clone) return this;
61
- clone.remove();
62
- return this;
46
+ return this.remove();
63
47
  }
64
48
  };
65
49
 
@@ -238,12 +238,16 @@
238
238
 
239
239
  result.context = this;
240
240
  result.type = o.type || 'GET';
241
- result.data = {"render_options[preamble]": o.preamble || '',
242
- "render_options[contexts_function]": 'hjq.ajax.updatePartContexts'
243
- };
241
+ result.data = {};
242
+ /* These are now the defaults, so we don't need to send
243
+ them over the wire.
244
+ result.data = {"render_options[preamble]": o.preamble || '',
245
+ "render_options[contexts_function]": 'hjq.ajax.updatePartContexts'
246
+ }; */
247
+ if(o.preamble) result.data["render_options[preamble]"] = o.postamble;
244
248
  if(o.postamble) result.data["render_options[postamble]"] = o.postamble;
245
249
  if(o.content_type) result.data["render_options[content_type]"] = o.content_type;
246
- if(o.attrs.errors_ok) result.data["render_options[errors_ok]"] = 1;
250
+ if(o.attrs['errors-ok']) result.data["render_options[errors_ok]"] = 1;
247
251
  result.dataType = 'script';
248
252
  o.spec = jQuery.extend({'function': 'hjq.ajax.update', preamble: ''}, o.spec);
249
253
 
@@ -258,7 +262,8 @@
258
262
  if(part_data) $("#"+ids[i]).data('hjq-ajax', part_data);
259
263
  result.data["render["+i+"][part_context]"] = page_data.hobo_parts[ids[i]];
260
264
  result.data["render["+i+"][id]"] = ids[i];
261
- result.data["render["+i+"][function]"] = o['function'] || 'hjq.ajax.update';
265
+ // default for render[i][function] is hjq.ajax.update
266
+ if(o.function) result.data["render["+i+"][function]"] = o['function'];
262
267
  }
263
268
 
264
269
  return result;
@@ -269,7 +274,7 @@
269
274
  if (!o.attrs) o.attrs = {};
270
275
  if (!o.extra_callbacks) o.extra_callbacks = {};
271
276
 
272
- this.hjq_spinner(o.attrs, "Saving...");
277
+ var spinner = this.hjq_spinner(o.attrs, "Saving...");
273
278
 
274
279
  var success_dfd = jQuery.Deferred();
275
280
  if(o.attrs.success) success_dfd.done(methods.createFunction.call(that, o.attrs.success));
@@ -299,7 +304,7 @@
299
304
  complete_dfd.done(function() {
300
305
  if(that.parents("body").length==0) $(document).trigger('rapid:ajax:complete', [that]);
301
306
  else that.trigger('rapid:ajax:complete', [that]);
302
- that.hjq_spinner('remove');
307
+ spinner.hjq_spinner('remove');
303
308
  if(o.attrs.refocus_form) that.find(":input[type!=hidden]:first").focus();
304
309
  });
305
310
  result.complete = complete_dfd.resolve;
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hobo_jquery
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0.pre8
4
+ version: 2.0.0.pre1
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-01 00:00:00.000000000 Z
12
+ date: 2012-09-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jquery-rails
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: '1.0'
21
+ version: '2.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: '1.0'
29
+ version: '2.0'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: hobo
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - '='
36
36
  - !ruby/object:Gem::Version
37
- version: 1.4.0.pre8
37
+ version: 2.0.0.pre1
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - '='
44
44
  - !ruby/object:Gem::Version
45
- version: 1.4.0.pre8
45
+ version: 2.0.0.pre1
46
46
  description: JQuery support for Hobo
47
47
  email: bryan@larsen.st
48
48
  executables: []
@@ -59,6 +59,7 @@ files:
59
59
  - lib/hobo_jquery/railtie.rb
60
60
  - taglibs/hobo_jquery.dryml
61
61
  - vendor/assets/javascripts/hobo-jquery/hjq-a.js
62
+ - vendor/assets/javascripts/hobo-jquery/hjq-before-unload.js
62
63
  - vendor/assets/javascripts/hobo-jquery/hjq-click-editor.js
63
64
  - vendor/assets/javascripts/hobo-jquery/hjq-delete-button.js
64
65
  - vendor/assets/javascripts/hobo-jquery/hjq-filter-menu.js
@@ -71,6 +72,7 @@ files:
71
72
  - vendor/assets/javascripts/hobo-jquery/hjq-search-results.js
72
73
  - vendor/assets/javascripts/hobo-jquery/hjq-select-many.js
73
74
  - vendor/assets/javascripts/hobo-jquery/hjq-sortable-collection.js
75
+ - vendor/assets/javascripts/hobo-jquery/hjq-sortable-input-many.js
74
76
  - vendor/assets/javascripts/hobo-jquery/hjq-spinner.js
75
77
  - vendor/assets/javascripts/hobo-jquery/hjq.js
76
78
  - vendor/assets/javascripts/hobo_jquery.js