effective_bootstrap 0.7.0 → 0.7.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
  SHA256:
3
- metadata.gz: 6a0b0fa27d610c17c42de7d82659333f92457da0050f652539c32f4a5e83624d
4
- data.tar.gz: c6e8f4887ca851c02192c4688a350029faa26d948c66889b1949d40b6ac1d3fa
3
+ metadata.gz: be5065b3a822eb4860a24310fb77bf65ec46dacafa61abca132c76372d5e58c4
4
+ data.tar.gz: 2d5d1531f25ad0d8bec41a6fbe1c90d7f1a3117e4309afac88cc5b54de38d092
5
5
  SHA512:
6
- metadata.gz: b70344c9202d5286941f3143a4b73aaeb3fadb685bba759d8e1f6225eafbdf82deda0c7beb3ba341e71d2f74132621b734d48d3e713c8226cc00030100d55e5a
7
- data.tar.gz: d1b12cbccaf8578b59928dba24ad163ef4e15ae9d43a08e7dac2e37146394bd0a863f45e1904fbee9f6ed43c7abb4a92923ca07d69a2ff2b9eac73ab250aac39
6
+ metadata.gz: e4b1f4a32795ed3b24557647f87571ac87415ffb1d146449f4421199db55141b878f6aaf9a57d7c67d0bcbf73f9912d12eebec0955dee38e9ac99158ca80f660
7
+ data.tar.gz: d256e2b4cbe06bc4bf0126f09e143ce42ccebfaa24e5d7a14bd44373092bbe3dbac5300cdaf612a0d57a51fc8d7dc4055c58210b9ca52265be38efdab22a9720
data/README.md CHANGED
@@ -381,6 +381,8 @@ The standard mode is a replacement for the default single select box.
381
381
 
382
382
  Passing `multiple: true` will allow multiple selections to be made.
383
383
 
384
+ Passing `freeform: true` will allow a single selection and new ones to be created.
385
+
384
386
  Passing `multiple: true, tags: true` will allow multiple selections to be made, and new value options to be created. This will allow you to both select existing tags and create new tags in the same form control.
385
387
 
386
388
  Passing `grouped: true` will enable optgroup support. When in this mode, the collection should be a Hash of ActiveRecord Relations or Array of Arrays
@@ -28,6 +28,11 @@ matchWithHtml = (params, data) ->
28
28
  options['templateSelection'] = formatWithHtml
29
29
  options['matcher'] = matchWithHtml
30
30
 
31
+ if options['noResults']
32
+ noResults = options['noResults']
33
+ delete options['noResults']
34
+ options['language'] = { noResults: (_) -> noResults }
35
+
31
36
  $select = $element.select2(options)
32
37
 
33
38
  # effective_select custom class functionality
@@ -49,5 +54,3 @@ $(document).on 'change', "select.effective_select.polymorphic", (event) ->
49
54
 
50
55
  $select.siblings("input[type='hidden'][name$='_type]']").val(value.split('_')[0] || '')
51
56
  $select.siblings("input[type='hidden'][name$='_id]']").val(value.split('_')[1] || '')
52
-
53
-
@@ -29,17 +29,15 @@ module Effective
29
29
  end
30
30
 
31
31
  def input_js_options
32
- placeholder = options.delete(:placeholder)
33
- placeholder = '' if placeholder == false
34
-
35
32
  opts = {
36
33
  theme: 'bootstrap',
37
- minimumResultsForSearch: 6,
34
+ minimumResultsForSearch: (freeform? ? 0 : 6),
38
35
  width: 'style',
39
- placeholder: (placeholder || 'Please choose'),
36
+ placeholder: placeholder,
40
37
  allowClear: (true if include_blank?),
41
38
  tokenSeparators: ([',', ';', '\n', '\t'] if tags?),
42
39
  tags: (true if tags?),
40
+ noResults: no_results,
43
41
  template: js_template,
44
42
  containerClass: ('hide-disabled' if hide_disabled?),
45
43
  dropdownClass: ('hide-disabled' if hide_disabled?),
@@ -51,6 +49,7 @@ module Effective
51
49
  classes = [
52
50
  'effective_select',
53
51
  'form-control',
52
+ ('freeform' if freeform?),
54
53
  ('polymorphic' if polymorphic?),
55
54
  ('grouped' if (grouped? || polymorphic?)),
56
55
  ('hide-disabled' if hide_disabled?),
@@ -109,11 +108,13 @@ module Effective
109
108
  end
110
109
 
111
110
  def multiple?
111
+ return false if freeform?
112
112
  return @multiple unless @multiple.nil?
113
113
  @multiple = options.key?(:multiple) ? options.delete(:multiple) : (tags? || name.to_s.ends_with?('_ids'))
114
114
  end
115
115
 
116
116
  def tags?
117
+ return true if freeform?
117
118
  return @tags unless @tags.nil?
118
119
  @tags = (options.delete(:tags) || false)
119
120
  end
@@ -133,11 +134,39 @@ module Effective
133
134
  @disable_open_on_focus = (options.delete(:disable_open_on_focus) || false)
134
135
  end
135
136
 
137
+ def freeform?
138
+ return @freeform unless @freeform.nil?
139
+ @freeform = (options.delete(:freeform) || false)
140
+ end
141
+
142
+ def no_results
143
+ return @no_results unless @no_results.nil?
144
+
145
+ @no_results = options.delete(:no_results)
146
+
147
+ if freeform?
148
+ @no_results ||= 'No results. To create a new one, press ENTER after typing your own free form response.'
149
+ end
150
+ end
151
+
136
152
  def js_template
137
153
  return @js_template unless @js_template.nil?
138
154
  @js_template = options.delete(:template)
139
155
  end
140
156
 
157
+ def placeholder
158
+ return @placeholder unless @placeholder.nil?
159
+
160
+ obj = options.delete(:placeholder)
161
+
162
+ @placeholder = case obj
163
+ when nil then
164
+ (freeform? ? 'Choose or enter' : 'Please choose')
165
+ when false then ''
166
+ else obj
167
+ end
168
+ end
169
+
141
170
  def ajax_url
142
171
  @ajax_url ||= (options.delete(:ajax_url) || options.delete(:ajax) || options.delete(:url))
143
172
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveBootstrap
2
- VERSION = '0.7.0'.freeze
2
+ VERSION = '0.7.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-14 00:00:00.000000000 Z
11
+ date: 2020-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails