chosen-rails 0.9.13 → 0.9.14

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ec448c4b6a43013c078a609be6aa8346a77ac64
4
- data.tar.gz: 48e99ab37060ce3e9b3c72964396de56db1cf946
3
+ metadata.gz: 627f993c355b60dd67a5f475a7e3049eab8ad08a
4
+ data.tar.gz: f5a266a53e616da1847ea1401caa18a99b77e785
5
5
  SHA512:
6
- metadata.gz: 3ec8744609fca23ffb76ce935d458af3b77a0916a411f451a6a365b0d5036ea8fa855780b0307e0af6f03b8f0a9e656f97324e5edb409d3c25f0cbb64b85860d
7
- data.tar.gz: 35c86ccec24fad335baf4bbd164d51f0fe0a6ea4b679e8827c3435bb37c95a998714ac021acbf0909b4db14e71a006a19c13170390c12e59424cdb96e80c8f92
6
+ metadata.gz: d09814cc265bbece45725638297abb5fc1285aed5c1cad288580c87c63f8c46a00acd371f31663f9aef273070653f2aea41c048a265cb615ce4f97da5c34bc58
7
+ data.tar.gz: 926cfe2150e8b4874e105ad800c2f663f71748cb25c2d1e402e9add3dbf1e8c00879608d9a3b5c9b1e1f9714ba5cc69c353bb88ef1050073cf3c3bd198010556
@@ -2,10 +2,13 @@ require 'chosen-rails/version'
2
2
 
3
3
  module Chosen
4
4
  module Rails
5
- if ::Rails.version.to_s < '3.1'
6
- require 'chosen-rails/railtie'
7
- else
5
+ case ::Rails.version.to_s
6
+ when /^4/
8
7
  require 'chosen-rails/engine'
8
+ when /^3\.[12]/
9
+ require 'chosen-rails/engine3'
10
+ when /^3\.[0]/
11
+ require 'chosen-rails/railtie'
9
12
  end
10
13
  end
11
14
  end
@@ -1,6 +1,9 @@
1
1
  module Chosen
2
2
  module Rails
3
3
  class Engine < ::Rails::Engine
4
+ config.assets.precompile += %w(
5
+ chosen-sprite*.png
6
+ )
4
7
  end
5
8
  end
6
9
  end
@@ -0,0 +1,11 @@
1
+ module Chosen
2
+ module Rails
3
+ class Engine3 < ::Rails::Engine
4
+ initializer 'chosen.assets.precompile' do |app|
5
+ app.config.assets.precompile += %w(
6
+ chosen-sprite*.png
7
+ )
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,6 +1,6 @@
1
1
  module Chosen
2
2
  module Rails
3
- VERSION = '0.9.13'
4
- CHOSEN_VERSION = '0.9.13'
3
+ VERSION = '0.9.14'
4
+ CHOSEN_VERSION = '0.9.14'
5
5
  end
6
6
  end
@@ -44,9 +44,9 @@ class Chosen extends AbstractChosen
44
44
  @container = ($ "<div />", container_props)
45
45
 
46
46
  if @is_multiple
47
- @container.html '<ul class="chzn-choices"><li class="search-field"><input type="text" value="' + @default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chzn-drop" style="left:-9000px;"><ul class="chzn-results"></ul></div>'
47
+ @container.html '<ul class="chzn-choices"><li class="search-field"><input type="text" value="' + @default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chzn-drop"><ul class="chzn-results"></ul></div>'
48
48
  else
49
- @container.html '<a href="javascript:void(0)" class="chzn-single chzn-default" tabindex="-1"><span>' + @default_text + '</span><div><b></b></div></a><div class="chzn-drop" style="left:-9000px;"><div class="chzn-search"><input type="text" autocomplete="off" /></div><ul class="chzn-results"></ul></div>'
49
+ @container.html '<a href="javascript:void(0)" class="chzn-single chzn-default" tabindex="-1"><span>' + @default_text + '</span><div><b></b></div></a><div class="chzn-drop"><div class="chzn-search"><input type="text" autocomplete="off" /></div><ul class="chzn-results"></ul></div>'
50
50
 
51
51
  @form_field_jq.hide().after @container
52
52
  @dropdown = @container.find('div.chzn-drop').first()
@@ -78,6 +78,7 @@ class Chosen extends AbstractChosen
78
78
  @search_results.mouseup (evt) => this.search_results_mouseup(evt); return
79
79
  @search_results.mouseover (evt) => this.search_results_mouseover(evt); return
80
80
  @search_results.mouseout (evt) => this.search_results_mouseout(evt); return
81
+ @search_results.bind 'mousewheel DOMMouseScroll', (evt) => this.search_results_mousewheel(evt); return
81
82
 
82
83
  @form_field_jq.bind "liszt:updated", (evt) => this.results_update_field(evt); return
83
84
  @form_field_jq.bind "liszt:activate", (evt) => this.activate_field(evt); return
@@ -93,7 +94,6 @@ class Chosen extends AbstractChosen
93
94
  else
94
95
  @container.click (evt) => evt.preventDefault(); return # gobble click of anchor
95
96
 
96
-
97
97
  search_field_disabled: ->
98
98
  @is_disabled = @form_field_jq[0].disabled
99
99
  if(@is_disabled)
@@ -125,6 +125,13 @@ class Chosen extends AbstractChosen
125
125
  container_mouseup: (evt) ->
126
126
  this.results_reset(evt) if evt.target.nodeName is "ABBR" and not @is_disabled
127
127
 
128
+ search_results_mousewheel: (evt) ->
129
+ delta = -evt.originalEvent?.wheelDelta or evt.originialEvent?.detail
130
+ if delta?
131
+ evt.preventDefault()
132
+ delta = delta * 40 if evt.type is 'DOMMouseScroll'
133
+ @search_results.scrollTop(delta + @search_results.scrollTop())
134
+
128
135
  blur_test: (evt) ->
129
136
  this.close_field() if not @active_field and @container.hasClass "chzn-container-active"
130
137
 
@@ -220,16 +227,15 @@ class Chosen extends AbstractChosen
220
227
  @result_highlight = null
221
228
 
222
229
  results_show: ->
223
- if not @is_multiple
224
- @selected_item.addClass "chzn-single-with-drop"
225
- if @result_single_selected
226
- this.result_do_highlight( @result_single_selected )
227
- else if @max_selected_options <= @choices
230
+ if @result_single_selected?
231
+ this.result_do_highlight @result_single_selected
232
+ else if @is_multiple and @max_selected_options <= @choices
228
233
  @form_field_jq.trigger("liszt:maxselected", {chosen: this})
229
234
  return false
230
235
 
236
+ @container.addClass "chzn-with-drop"
231
237
  @form_field_jq.trigger("liszt:showing_dropdown", {chosen: this})
232
- @dropdown.css {"left":0}
238
+
233
239
  @results_showing = true
234
240
 
235
241
  @search_field.focus()
@@ -238,10 +244,11 @@ class Chosen extends AbstractChosen
238
244
  this.winnow_results()
239
245
 
240
246
  results_hide: ->
241
- @selected_item.removeClass "chzn-single-with-drop" unless @is_multiple
242
247
  this.result_clear_highlight()
248
+
249
+ @container.removeClass "chzn-with-drop"
243
250
  @form_field_jq.trigger("liszt:hiding_dropdown", {chosen: this})
244
- @dropdown.css {"left":"-9000px"}
251
+
245
252
  @results_showing = false
246
253
 
247
254
 
@@ -281,12 +288,6 @@ class Chosen extends AbstractChosen
281
288
  search_results_mouseout: (evt) ->
282
289
  this.result_clear_highlight() if $(evt.target).hasClass "active-result" or $(evt.target).parents('.active-result').first()
283
290
 
284
-
285
- choices_click: (evt) ->
286
- evt.preventDefault()
287
- if( @active_field and not($(evt.target).hasClass "search-choice" or $(evt.target).parents('.search-choice').first) and not @results_showing )
288
- this.results_show()
289
-
290
291
  choice_build: (item) ->
291
292
  if @is_multiple and @max_selected_options <= @choices
292
293
  @form_field_jq.trigger("liszt:maxselected", {chosen: this})
@@ -570,8 +571,3 @@ class Chosen extends AbstractChosen
570
571
  string
571
572
 
572
573
  root.Chosen = Chosen
573
-
574
- get_side_border_padding = (elmt) ->
575
- side_border_padding = elmt.outerWidth() - elmt.width()
576
-
577
- root.get_side_border_padding = get_side_border_padding
@@ -17,8 +17,8 @@ class Chosen extends AbstractChosen
17
17
  super()
18
18
 
19
19
  # HTML Templates
20
- @single_temp = new Template('<a href="javascript:void(0)" class="chzn-single chzn-default" tabindex="-1"><span>#{default}</span><div><b></b></div></a><div class="chzn-drop" style="left:-9000px;"><div class="chzn-search"><input type="text" autocomplete="off" /></div><ul class="chzn-results"></ul></div>')
21
- @multi_temp = new Template('<ul class="chzn-choices"><li class="search-field"><input type="text" value="#{default}" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chzn-drop" style="left:-9000px;"><ul class="chzn-results"></ul></div>')
20
+ @single_temp = new Template('<a href="javascript:void(0)" class="chzn-single chzn-default" tabindex="-1"><span>#{default}</span><div><b></b></div></a><div class="chzn-drop"><div class="chzn-search"><input type="text" autocomplete="off" /></div><ul class="chzn-results"></ul></div>')
21
+ @multi_temp = new Template('<ul class="chzn-choices"><li class="search-field"><input type="text" value="#{default}" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chzn-drop"><ul class="chzn-results"></ul></div>')
22
22
  @choice_temp = new Template('<li class="search-choice" id="#{id}"><span>#{choice}</span><a href="javascript:void(0)" class="search-choice-close" rel="#{position}"></a></li>')
23
23
  @choice_noclose_temp = new Template('<li class="search-choice search-choice-disabled" id="#{id}"><span>#{choice}</span></li>')
24
24
  @no_results_temp = new Template('<li class="no-results">' + @results_none_found + ' "<span>#{terms}</span>"</li>')
@@ -69,6 +69,8 @@ class Chosen extends AbstractChosen
69
69
  @search_results.observe "mouseup", (evt) => this.search_results_mouseup(evt)
70
70
  @search_results.observe "mouseover", (evt) => this.search_results_mouseover(evt)
71
71
  @search_results.observe "mouseout", (evt) => this.search_results_mouseout(evt)
72
+ @search_results.observe "mousewheel", (evt) => this.search_results_mousewheel(evt)
73
+ @search_results.observe "DOMMouseScroll", (evt) => this.search_results_mousewheel(evt)
72
74
 
73
75
  @form_field.observe "liszt:updated", (evt) => this.results_update_field(evt)
74
76
  @form_field.observe "liszt:activate", (evt) => this.activate_field(evt)
@@ -114,6 +116,13 @@ class Chosen extends AbstractChosen
114
116
  container_mouseup: (evt) ->
115
117
  this.results_reset(evt) if evt.target.nodeName is "ABBR" and not @is_disabled
116
118
 
119
+ search_results_mousewheel: (evt) ->
120
+ delta = -evt.wheelDelta or evt.detail
121
+ if delta?
122
+ evt.preventDefault()
123
+ delta = delta * 40 if evt.type is 'DOMMouseScroll'
124
+ @search_results.scrollTop = delta + @search_results.scrollTop
125
+
117
126
  blur_test: (evt) ->
118
127
  this.close_field() if not @active_field and @container.hasClassName("chzn-container-active")
119
128
 
@@ -207,16 +216,15 @@ class Chosen extends AbstractChosen
207
216
  @result_highlight = null
208
217
 
209
218
  results_show: ->
210
- if not @is_multiple
211
- @selected_item.addClassName('chzn-single-with-drop')
212
- if @result_single_selected
213
- this.result_do_highlight( @result_single_selected )
214
- else if @max_selected_options <= @choices
219
+ if @result_single_selected?
220
+ this.result_do_highlight @result_single_selected
221
+ else if @is_multiple and @max_selected_options <= @choices
215
222
  @form_field.fire("liszt:maxselected", {chosen: this})
216
223
  return false
217
224
 
225
+ @container.addClassName "chzn-with-drop"
218
226
  @form_field.fire("liszt:showing_dropdown", {chosen: this})
219
- @dropdown.setStyle {"left":0}
227
+
220
228
  @results_showing = true
221
229
 
222
230
  @search_field.focus()
@@ -225,10 +233,11 @@ class Chosen extends AbstractChosen
225
233
  this.winnow_results()
226
234
 
227
235
  results_hide: ->
228
- @selected_item.removeClassName('chzn-single-with-drop') unless @is_multiple
229
236
  this.result_clear_highlight()
237
+
238
+ @container.removeClassName "chzn-with-drop"
230
239
  @form_field.fire("liszt:hiding_dropdown", {chosen: this})
231
- @dropdown.setStyle({"left":"-9000px"})
240
+
232
241
  @results_showing = false
233
242
 
234
243
 
@@ -268,12 +277,6 @@ class Chosen extends AbstractChosen
268
277
  search_results_mouseout: (evt) ->
269
278
  this.result_clear_highlight() if evt.target.hasClassName('active-result') or evt.target.up('.active-result')
270
279
 
271
-
272
- choices_click: (evt) ->
273
- evt.preventDefault()
274
- if( @active_field and not(evt.target.hasClassName('search-choice') or evt.target.up('.search-choice')) and not @results_showing )
275
- this.results_show()
276
-
277
280
  choice_build: (item) ->
278
281
  if @is_multiple and @max_selected_options <= @choices
279
282
  @form_field.fire("liszt:maxselected", {chosen: this})
@@ -556,10 +559,3 @@ class Chosen extends AbstractChosen
556
559
  @search_field.setStyle({'width': w + 'px'})
557
560
 
558
561
  root.Chosen = Chosen
559
-
560
-
561
- get_side_border_padding = (elmt) ->
562
- layout = new Element.Layout(elmt)
563
- side_border_padding = layout.get("border-left") + layout.get("border-right") + layout.get("padding-left") + layout.get("padding-right")
564
-
565
- root.get_side_border_padding = get_side_border_padding
@@ -95,6 +95,10 @@ class AbstractChosen
95
95
  else
96
96
  this.results_show()
97
97
 
98
+ choices_click: (evt) ->
99
+ evt.preventDefault()
100
+ this.results_show() unless @results_showing
101
+
98
102
  keyup_checker: (evt) ->
99
103
  stroke = evt.which ? evt.keyCode
100
104
  this.search_field_scale()
@@ -128,10 +132,10 @@ class AbstractChosen
128
132
 
129
133
  container_width: ->
130
134
  return @options.width if @options.width?
131
-
135
+
132
136
  width = if window.getComputedStyle?
133
137
  parseFloat window.getComputedStyle(@form_field).getPropertyValue('width')
134
- else if jQuery?
138
+ else if jQuery? and @form_field_jq?
135
139
  @form_field_jq.outerWidth()
136
140
  else
137
141
  @form_field.getWidth()
@@ -13,7 +13,7 @@
13
13
  border-top: 0
14
14
  position: absolute
15
15
  top: 100%
16
- left: 0
16
+ left: -9999px
17
17
  -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15)
18
18
  -moz-box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15)
19
19
  box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15)
@@ -24,6 +24,8 @@
24
24
  -webkit-box-sizing: border-box
25
25
  -khtml-box-sizing: border-box
26
26
  box-sizing: border-box
27
+ &.chzn-with-drop .chzn-drop
28
+ left: 0
27
29
 
28
30
  /* @end
29
31
 
@@ -315,7 +317,7 @@
315
317
  -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3)
316
318
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3)
317
319
  border: 1px solid #5897fb
318
- .chzn-single-with-drop
320
+ &.chzn-with-drop .chzn-single
319
321
  border: 1px solid #aaa
320
322
  -webkit-box-shadow: 0 1px 0 #fff inset
321
323
  -moz-box-shadow: 0 1px 0 #fff inset
@@ -384,13 +386,19 @@
384
386
  .search-choice-close
385
387
  left: 4px
386
388
  right: auto
389
+ .chzn-search
390
+ left: 9999px
391
+ &.chzn-with-drop .chzn-search
392
+ left: 0px
393
+ .chzn-drop
394
+ left: 9999px
387
395
  &.chzn-container-single .chzn-results
388
396
  margin: 0 0 4px 4px
389
397
  padding: 0 4px 0 0
390
398
  .chzn-results .group-option
391
399
  padding-left: 0
392
400
  padding-right: 15px
393
- &.chzn-container-active .chzn-single-with-drop div
401
+ &.chzn-container-active.chzn-with-drop .chzn-single div
394
402
  border-right: none
395
403
  .chzn-search input
396
404
  background: white image-url('chosen-sprite.png') no-repeat -30px -20px
@@ -405,7 +413,7 @@
405
413
  .chzn-container-single.chzn-rtl
406
414
  .chzn-single div b
407
415
  background-position: 6px 2px
408
- .chzn-single-with-drop div b
416
+ &.chzn-with-drop .chzn-single div b
409
417
  background-position: -12px 2px
410
418
 
411
419
  /* @end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chosen-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.13
4
+ version: 0.9.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tse-Ching Ho
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-24 00:00:00.000000000 Z
11
+ date: 2013-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -110,6 +110,7 @@ files:
110
110
  - chosen-rails.gemspec
111
111
  - lib/chosen-rails.rb
112
112
  - lib/chosen-rails/engine.rb
113
+ - lib/chosen-rails/engine3.rb
113
114
  - lib/chosen-rails/railtie.rb
114
115
  - lib/chosen-rails/source_file.rb
115
116
  - lib/chosen-rails/version.rb