hobo_jquery 2.0.1 → 2.1.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 078911c8bbf874fe2ef310aa1e516db681ed1502
4
+ data.tar.gz: 139d4d09dfd9787ab32fd457bdfaf7a972f2b544
5
+ SHA512:
6
+ metadata.gz: 9e33bd470a6a84ace3b70e7248aa2d525d4f555d19da626ef3bfb2a1742dae8dca0d4ee0b1d94b783905bd4b5e41427a4b46edd10ba2abe79179009019ea9036
7
+ data.tar.gz: 95c7eec2ba0f44d66bcb805aa0cae371614aad3fe70908d5bdffdac5395aed33a7bd733197665723258f32bdfac00e272bb45f756619eea2553e9f5efc47650e
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.1
1
+ 2.1.0.pre1
@@ -20,7 +20,7 @@
20
20
 
21
21
  if(form.attr('enctype') == 'multipart/form-data') {
22
22
  if(form.ajaxSubmit) {
23
- options = $.extend(options, {preamble: "<textarea>", postamble: '</textarea>', fix_quotes: true, content_type: 'text/html'});
23
+ options = $.extend(options, {preamble: "<textarea>", postamble: '</textarea>', content_type: 'text/html'});
24
24
  var roptions = form.hjq('buildRequestData', options);
25
25
 
26
26
  if(!roptions) return false;
@@ -24,7 +24,7 @@ if(!RegExp.escape) {
24
24
  var me = $(this).parent().parent();
25
25
  var top = me.parent();
26
26
  var template = top.children("li.input-many-template");
27
- var clone = template.clone(true).removeClass("input-many-template");
27
+ var clone = template.clone().removeClass("input-many-template");
28
28
  var attrs = top.data('rapid')['input-many'];
29
29
 
30
30
  // length-2 because ignore the template li and the empty li
@@ -38,28 +38,15 @@ if(!RegExp.escape) {
38
38
  clone.find(".remove-item:not([disabled])").not(clone.find(".input-many .remove-item")).click(methods.removeOne);
39
39
  clone.find(".add-item:not([disabled])").not(clone.find(".input-many .add-item")).click(methods.addOne);
40
40
 
41
- // update id & name
42
- clone.find("*").each(function() {
43
- name_updater.call(this);
44
- });
45
- name_updater.call(clone.get(0));
46
-
47
41
  // do the add with anim
48
42
  clone.css("display", "none").insertAfter(me).hjq('show', attrs['show']);
49
43
 
44
+ top.hjq_input_many('updateNames');
45
+ top.hjq_input_many('updateVisibility');
46
+
50
47
  // initialize subelements
51
48
  me.next().hjq();
52
49
 
53
- // visibility
54
- if(me.hasClass("empty")) {
55
- me.addClass("hidden");
56
- me.find("input.empty-input").attr("disabled", true);
57
- } else {
58
- // now that we've added an element after us, we should only have a '-' button
59
- me.children("div.buttons").children("button.remove-item").removeClass("hidden");
60
- me.children("div.buttons").children("button.add-item").addClass("hidden");
61
- }
62
-
63
50
  me.hjq('createFunction', attrs.add_hook).call(me.get(0));
64
51
  clone.trigger('rapid:add');
65
52
  clone.trigger('rapid:change');
@@ -84,45 +71,61 @@ if(!RegExp.escape) {
84
71
  return false;
85
72
  }
86
73
 
87
- // rename everybody from me onwards
88
- var i=methods.getIndex.call(me.get(0))
89
- var n=me.next();
90
- for(; n.length>0; i+=1, n=n.next()) {
74
+ // remove with animation
75
+ me.hjq('hideAndRemove', attrs['hide']);
76
+
77
+ top.hjq_input_many('updateNames');
78
+ top.hjq_input_many('updateVisibility');
79
+
80
+ top.trigger('rapid:change');
81
+
82
+ return false; //prevent bubbling
83
+ },
84
+
85
+ updateNames: function() {
86
+ var top = $(this);
87
+ var attrs = top.data('rapid')['input-many'];
88
+
89
+ var n = top.children("li:not(.input-many-template):not(.empty):first");
90
+ for(var i = 0; n.length > 0; i++, n = n.next()) {
91
91
  var name_updater = methods.getNameUpdater.call(top, i, attrs['prefix']);
92
92
  n.find("*").each(function() {
93
93
  name_updater.call(this);
94
94
  });
95
95
  name_updater.call(n.get(0));
96
96
  }
97
+ },
97
98
 
98
- // adjust +/- buttons on the button element as appropriate
99
- var last=top.children("li:last");
100
- if(last.get(0)==me.get(0)) {
101
- last = last.prev();
99
+ // show/hide +/- buttons and empty
100
+ updateVisibility: function() {
101
+ var top = $(this);
102
+ var attrs = top.data('rapid')['input-many'];
103
+
104
+ var buttonsDivs = top.children("li:not(.input-many-template):not(.empty)").children("div.buttons");
105
+ for (var i = 0; i < buttonsDivs.length; i++) {
106
+ if (buttonsDivs.length - 1 < (attrs['minimum'] || 0))
107
+ $(buttonsDivs[i]).children("button.remove-item").addClass("hidden");
108
+ else
109
+ $(buttonsDivs[i]).children("button.remove-item").removeClass("hidden");
110
+ if (i < buttonsDivs.length - 1)
111
+ $(buttonsDivs[i]).children("button.add-item").addClass("hidden");
112
+ else
113
+ $(buttonsDivs[i]).children("button.add-item").removeClass("hidden");
102
114
  }
103
115
 
104
- if(last.hasClass("empty")) {
105
- last.removeClass("hidden");
106
- last.find("input.empty-input").removeAttr("disabled");
116
+ var empty = top.children("li.empty");
117
+ if (buttonsDivs.length == 0) {
118
+ empty.removeClass("hidden");
119
+ empty.find("input.empty-input").removeAttr("disabled");
107
120
  } else {
108
- // if we've reached the minimum, we don't want to add the '-' button
109
- if(top.children().length-3 <= (attrs['minimum']||0)) {
110
- last.children("div.buttons").children("button.remove-item").addClass("hidden");
111
- } else {
112
- last.children("div.buttons").children("button.remove-item").removeClass("hidden");
113
- }
114
- last.children("div.buttons").children("button.add-item").removeClass("hidden");
121
+ empty.addClass("hidden");
122
+ empty.find("input.empty-input").attr("disabled", true);
115
123
  }
116
124
 
117
- // remove with animation
118
- me.hjq('hideAndRemove', attrs['hide']);
119
-
120
- top.trigger('rapid:change');
121
-
122
- return false; //prevent bubbling
125
+ return top;
123
126
  },
124
127
 
125
- // given this==the input-many, returns a lambda that updates the name & id for an element
128
+ // given this==the input-many, returns a lambda that updates the name, for & id for an element
126
129
  getNameUpdater: function(new_index, name_prefix) {
127
130
  var id_prefix = name_prefix.replace(/\[/g, "_").replace(/\]/g, "");
128
131
  var name_re = RegExp("^" + RegExp.escape(name_prefix)+ "\[\-?[0-9]+\]");
@@ -136,6 +139,10 @@ if(!RegExp.escape) {
136
139
  if(this.name) {
137
140
  this.name = this.name.replace(name_re, name_sub);
138
141
  }
142
+ if ($(this).attr('for')) {
143
+ var new_for = $(this).attr('for').replace(id_re, id_sub);
144
+ $(this).attr('for', new_for);
145
+ }
139
146
  if (id_prefix==this.id.slice(0, id_prefix.length)) {
140
147
  this.id = this.id.replace(id_re, id_sub);
141
148
  } else {
@@ -236,7 +236,6 @@
236
236
  }
237
237
  }
238
238
 
239
- result.context = this;
240
239
  result.type = o.type || 'GET';
241
240
  result.data = {};
242
241
  /* These are now the defaults, so we don't need to send
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hobo_jquery
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
5
- prerelease:
4
+ version: 2.1.0.pre1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Bryan Larsen
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-06-23 00:00:00.000000000 Z
11
+ date: 2013-12-18 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: jquery-rails
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
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
@@ -30,19 +27,17 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: hobo_rapid
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.1
33
+ version: 2.1.0.pre1
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.1
40
+ version: 2.1.0.pre1
46
41
  description: JQuery support for Hobo
47
42
  email: bryan@larsen.st
48
43
  executables: []
@@ -79,6 +74,7 @@ files:
79
74
  - vendor/assets/stylesheets/hobo_jquery.css
80
75
  homepage: http://hobocentral.net
81
76
  licenses: []
77
+ metadata: {}
82
78
  post_install_message:
83
79
  rdoc_options:
84
80
  - --charset=UTF-8
@@ -87,22 +83,19 @@ require_paths:
87
83
  - vendor
88
84
  - taglibs
89
85
  required_ruby_version: !ruby/object:Gem::Requirement
90
- none: false
91
86
  requirements:
92
87
  - - '>='
93
88
  - !ruby/object:Gem::Version
94
89
  version: '0'
95
90
  required_rubygems_version: !ruby/object:Gem::Requirement
96
- none: false
97
91
  requirements:
98
92
  - - '>='
99
93
  - !ruby/object:Gem::Version
100
94
  version: 1.3.6
101
95
  requirements: []
102
96
  rubyforge_project:
103
- rubygems_version: 1.8.25
97
+ rubygems_version: 2.1.11
104
98
  signing_key:
105
- specification_version: 3
99
+ specification_version: 4
106
100
  summary: JQuery support for Hobo
107
101
  test_files: []
108
- has_rdoc: