chosen-rails 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b8a95a626b6c7b913748cad6239a1527b7449d6f
4
- data.tar.gz: 3b1c9e512b27f2139156fd76d74b0356b93d1967
3
+ metadata.gz: d8d3a949eb004b24858d4e3f930c3d0976b97e29
4
+ data.tar.gz: 6963256ddcfd39e8fd0c3051c7b53d6aa97ede9b
5
5
  SHA512:
6
- metadata.gz: 25ed41cc0f0027966d5893a7b4136efdf73474e4389074e09e511cae123875900c14b44d0188b97082f84fc0992cb0131b799e4b5d4072520dcf53d6bd1514f7
7
- data.tar.gz: 0d265fc7ae16b440f608e8b722aed9adee962308150f8efb0ea3e3daf518db52515937a3423fa8e9ba01f341ca40c7d6aae1523b039a370a32b8c31eaa4039b0
6
+ metadata.gz: e6e1573259de201e500b9b405abd3e659aef0026477f213925057f3d6eef6fadc553b388461eb62e85cea46179e71d561dac83d4cf7c2b149650352a7bdc8d32
7
+ data.tar.gz: 019031090968431f9d8833efec9af87cb913549bb8e607e1dc2f77491bf09aa6414256c62856746e0e55b5276aa1bdfb607c8bfeb367d823f8d75b1648236b6a
@@ -1,6 +1,6 @@
1
1
  module Chosen
2
2
  module Rails
3
- VERSION = '1.1.0'
3
+ VERSION = '1.1.1'
4
4
  CHOSEN_VERSION = '1.1.0'
5
5
  end
6
6
  end
Binary file
@@ -8,9 +8,9 @@ $.fn.extend({
8
8
  this.each (input_field) ->
9
9
  $this = $ this
10
10
  chosen = $this.data('chosen')
11
- if options is 'destroy' && chosen
11
+ if options is 'destroy' && chosen instanceof Chosen
12
12
  chosen.destroy()
13
- else unless chosen
13
+ else unless chosen instanceof Chosen
14
14
  $this.data('chosen', new Chosen(this, options))
15
15
 
16
16
  return
@@ -66,6 +66,9 @@ class Chosen extends AbstractChosen
66
66
  @form_field_jq.trigger("chosen:ready", {chosen: this})
67
67
 
68
68
  register_observers: ->
69
+ @container.bind 'touchstart.chosen', (evt) => this.container_mousedown(evt); return
70
+ @container.bind 'touchend.chosen', (evt) => this.container_mouseup(evt); return
71
+
69
72
  @container.bind 'mousedown.chosen', (evt) => this.container_mousedown(evt); return
70
73
  @container.bind 'mouseup.chosen', (evt) => this.container_mouseup(evt); return
71
74
  @container.bind 'mouseenter.chosen', (evt) => this.mouse_enter(evt); return
@@ -138,7 +141,7 @@ class Chosen extends AbstractChosen
138
141
  this.results_reset(evt) if evt.target.nodeName is "ABBR" and not @is_disabled
139
142
 
140
143
  search_results_mousewheel: (evt) ->
141
- delta = -evt.originalEvent.wheelDelta or evt.originalEvent.detail if evt.originalEvent
144
+ delta = evt.originalEvent.deltaY or -evt.originalEvent.wheelDelta or evt.originalEvent.detail if evt.originalEvent
142
145
  if delta?
143
146
  evt.preventDefault()
144
147
  delta = delta * 40 if evt.type is 'DOMMouseScroll'
@@ -396,7 +399,6 @@ class Chosen extends AbstractChosen
396
399
  if @search_field.val() is @default_text then "" else $('<div/>').text($.trim(@search_field.val())).html()
397
400
 
398
401
  winnow_results_set_highlight: ->
399
-
400
402
  selected_results = if not @is_multiple then @search_results.find(".result-selected.active-result") else []
401
403
  do_high = if selected_results.length then selected_results.first() else @search_results.find(".active-result").first()
402
404
 
@@ -463,7 +465,10 @@ class Chosen extends AbstractChosen
463
465
  @mouse_on_container = false
464
466
  break
465
467
  when 13
466
- evt.preventDefault()
468
+ evt.preventDefault() if this.results_showing
469
+ break
470
+ when 32
471
+ evt.preventDefault() if @disable_search
467
472
  break
468
473
  when 38
469
474
  evt.preventDefault()
@@ -49,6 +49,9 @@ class @Chosen extends AbstractChosen
49
49
  @form_field.fire("chosen:ready", {chosen: this})
50
50
 
51
51
  register_observers: ->
52
+ @container.observe "touchstart", (evt) => this.container_mousedown(evt)
53
+ @container.observe "touchend", (evt) => this.container_mouseup(evt)
54
+
52
55
  @container.observe "mousedown", (evt) => this.container_mousedown(evt)
53
56
  @container.observe "mouseup", (evt) => this.container_mouseup(evt)
54
57
  @container.observe "mouseenter", (evt) => this.mouse_enter(evt)
@@ -134,7 +137,7 @@ class @Chosen extends AbstractChosen
134
137
  this.results_reset(evt) if evt.target.nodeName is "ABBR" and not @is_disabled
135
138
 
136
139
  search_results_mousewheel: (evt) ->
137
- delta = -evt.wheelDelta or evt.detail
140
+ delta = evt.deltaY or -evt.wheelDelta or evt.detail
138
141
  if delta?
139
142
  evt.preventDefault()
140
143
  delta = delta * 40 if evt.type is 'DOMMouseScroll'
@@ -462,7 +465,10 @@ class @Chosen extends AbstractChosen
462
465
  @mouse_on_container = false
463
466
  break
464
467
  when 13
465
- evt.preventDefault()
468
+ evt.preventDefault() if this.results_showing
469
+ break
470
+ when 32
471
+ evt.preventDefault() if @disable_search
466
472
  break
467
473
  when 38
468
474
  evt.preventDefault()
@@ -131,9 +131,8 @@ class AbstractChosen
131
131
 
132
132
  searchText = this.get_search_text()
133
133
  escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
134
- regexAnchor = if @search_contains then "" else "^"
135
- regex = new RegExp(regexAnchor + escapedSearchText, 'i')
136
134
  zregex = new RegExp(escapedSearchText, 'i')
135
+ regex = this.get_search_regex(escapedSearchText)
137
136
 
138
137
  for option in @results_data
139
138
 
@@ -153,7 +152,7 @@ class AbstractChosen
153
152
 
154
153
  unless option.group and not @group_search
155
154
 
156
- option.search_text = if option.group then option.label else option.html
155
+ option.search_text = if option.group then option.label else option.text
157
156
  option.search_match = this.search_string_match(option.search_text, regex)
158
157
  results += 1 if option.search_match and not option.group
159
158
 
@@ -177,6 +176,10 @@ class AbstractChosen
177
176
  this.update_results_content this.results_option_build()
178
177
  this.winnow_results_set_highlight()
179
178
 
179
+ get_search_regex: (escaped_search_string) ->
180
+ regex_anchor = if @search_contains then "" else "^"
181
+ new RegExp(regex_anchor + escaped_search_string, 'i')
182
+
180
183
  search_string_match: (search_string, regex) ->
181
184
  if regex.test search_string
182
185
  return true
@@ -14,12 +14,14 @@ $chosen-sprite-retina: image-url('chosen-sprite@2x.png') !default;
14
14
  zoom: 1;
15
15
  *display: inline;
16
16
  @include user-select(none);
17
+ * {
18
+ @include box-sizing(border-box);
19
+ }
17
20
  .chosen-drop {
18
21
  position: absolute;
19
22
  top: 100%;
20
23
  left: -9999px;
21
24
  z-index: 1010;
22
- @include box-sizing(border-box);
23
25
  width: 100%;
24
26
  border: 1px solid #aaa;
25
27
  border-top: 0;
@@ -42,7 +44,7 @@ $chosen-sprite-retina: image-url('chosen-sprite@2x.png') !default;
42
44
  display: block;
43
45
  overflow: hidden;
44
46
  padding: 0 0 0 8px;
45
- height: 23px;
47
+ height: 25px;
46
48
  border: 1px solid #aaa;
47
49
  border-radius: 5px;
48
50
  background-color: #fff;
@@ -104,7 +106,6 @@ $chosen-sprite-retina: image-url('chosen-sprite@2x.png') !default;
104
106
  padding: 3px 4px;
105
107
  white-space: nowrap;
106
108
  input[type="text"] {
107
- @include box-sizing(border-box);
108
109
  margin: 1px 0;
109
110
  padding: 4px 20px 4px 5px;
110
111
  width: 100%;
@@ -147,6 +148,7 @@ $chosen-sprite-retina: image-url('chosen-sprite@2x.png') !default;
147
148
  padding: 5px 6px;
148
149
  list-style: none;
149
150
  line-height: 15px;
151
+ word-wrap: break-word;
150
152
  -webkit-touch-callout: none;
151
153
  &.active-result {
152
154
  display: list-item;
@@ -188,9 +190,8 @@ $chosen-sprite-retina: image-url('chosen-sprite@2x.png') !default;
188
190
  .chosen-choices {
189
191
  position: relative;
190
192
  overflow: hidden;
191
- @include box-sizing(border-box);
192
193
  margin: 0;
193
- padding: 0;
194
+ padding: 0 5px;
194
195
  width: 100%;
195
196
  height: auto !important;
196
197
  height: 1%;
@@ -208,8 +209,8 @@ $chosen-sprite-retina: image-url('chosen-sprite@2x.png') !default;
208
209
  white-space: nowrap;
209
210
  input[type="text"] {
210
211
  margin: 1px 0;
211
- padding: 5px;
212
- height: 15px;
212
+ padding: 0;
213
+ height: 25px;
213
214
  outline: 0;
214
215
  border: 0 !important;
215
216
  background: transparent !important;
@@ -223,17 +224,23 @@ $chosen-sprite-retina: image-url('chosen-sprite@2x.png') !default;
223
224
  }
224
225
  &.search-choice {
225
226
  position: relative;
226
- margin: 3px 0 3px 5px;
227
+ margin: 3px 5px 3px 0;
227
228
  padding: 3px 20px 3px 5px;
228
229
  border: 1px solid #aaa;
230
+ max-width: 100%;
229
231
  border-radius: 3px;
230
- background-color: #e4e4e4;
232
+ background-color: #eeeeee;
231
233
  @include background-image(linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%));
234
+ background-size: 100% 19px;
235
+ background-repeat: repeat-x;
232
236
  background-clip: padding-box;
233
237
  box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(#000,.05);
234
238
  color: #333;
235
239
  line-height: 13px;
236
240
  cursor: default;
241
+ span {
242
+ word-wrap: break-word;
243
+ }
237
244
  .search-choice-close {
238
245
  position: absolute;
239
246
  top: 4px;
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: 1.1.0
4
+ version: 1.1.1
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: 2014-02-10 00:00:00.000000000 Z
11
+ date: 2014-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
157
  version: '0'
158
158
  requirements: []
159
159
  rubyforge_project:
160
- rubygems_version: 2.2.1
160
+ rubygems_version: 2.2.2
161
161
  signing_key:
162
162
  specification_version: 4
163
163
  summary: Integrate Chosen javascript library with Rails asset pipeline