simple_form_extension 1.2.21 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +64 -5
- data/lib/simple_form_extension/version.rb +1 -1
- data/vendor/assets/javascripts/simple_form_extension.coffee +25 -5
- data/vendor/assets/javascripts/simple_form_extension/colorpicker.coffee +2 -2
- data/vendor/assets/javascripts/simple_form_extension/datetimepicker.coffee +8 -4
- data/vendor/assets/javascripts/simple_form_extension/fileinput.coffee +5 -1
- data/vendor/assets/javascripts/simple_form_extension/redactor.coffee +2 -2
- data/vendor/assets/javascripts/simple_form_extension/selectize.coffee +2 -2
- data/vendor/assets/javascripts/simple_form_extension/slider.coffee +2 -2
- data/vendor/assets/javascripts/simple_form_extension/spinbox.coffee +5 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88f0bf75c6d43b626fe22ec5fdb9771157da4eb2
|
4
|
+
data.tar.gz: 380443d6c110fcbc8949bf3900a90ae5cd92a006
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90f046a027bae80df700bdbbc4bcb50cb8b9f1b115e15dbed2ce43c305e9b61fb31343f2f240033c81362a2db600ff387c5fbec141654ea4148b13e0574329e7
|
7
|
+
data.tar.gz: 3dc2a04b168821621c36bfaf1e5190fd180b36e4d07e1c049cafd72479d5ee44e16686b46baa69ed1503d6567242059852e8209bdff23cd9f930ea017de55412
|
data/README.md
CHANGED
@@ -16,6 +16,18 @@ Or install it yourself as:
|
|
16
16
|
|
17
17
|
$ gem install simple_form_extension
|
18
18
|
|
19
|
+
Add to your `application.css` :
|
20
|
+
|
21
|
+
```css
|
22
|
+
*= require simple_form_extension
|
23
|
+
```
|
24
|
+
|
25
|
+
Add to your `application.js` :
|
26
|
+
|
27
|
+
```javascript
|
28
|
+
//= require simple_form_extension
|
29
|
+
```
|
30
|
+
|
19
31
|
## Usage
|
20
32
|
|
21
33
|
To use the popover component, please include in a javascript file :
|
@@ -24,18 +36,65 @@ To use the popover component, please include in a javascript file :
|
|
24
36
|
$('body').popover(selector: '[rel="popover"]')
|
25
37
|
```
|
26
38
|
|
27
|
-
|
28
|
-
|
39
|
+
### Available inputs
|
40
|
+
|
41
|
+
The following custom Simple Form inputs are available :
|
42
|
+
|
43
|
+
* boolean
|
44
|
+
* collection_check_boxes
|
45
|
+
* collection_radio_buttons
|
46
|
+
* color
|
47
|
+
* date_time
|
48
|
+
* file
|
49
|
+
* image
|
50
|
+
* numeric
|
51
|
+
* redactor
|
52
|
+
* selectize
|
53
|
+
* slider
|
54
|
+
|
55
|
+
### Javascript Plugins
|
56
|
+
|
57
|
+
Simple Form Extension comes with several javascript plugins built-in for the
|
58
|
+
inputs to work properly.
|
59
|
+
|
60
|
+
Plugins are automatically initialized on page load, with or without Turbolinks.
|
61
|
+
|
62
|
+
This means that for a classic page you don't need to initialize anything yourself.
|
63
|
+
|
64
|
+
#### Manual javascript plugins initialization
|
65
|
+
|
66
|
+
If you append some HTML, after the page is loaded, containing inputs that you
|
67
|
+
need to initialize, you'll need to manually call the Simple Form Extension
|
68
|
+
plugins initialization method.
|
69
|
+
|
70
|
+
> Note : Most of the javascript-bound inputs need their associated plugin to be
|
71
|
+
run to build their final appearance. So their initialization can't be deferred,
|
72
|
+
and you need to initialize them manually when appending HTML to the page after
|
73
|
+
the page is loaded
|
74
|
+
|
75
|
+
All you need to do is calling the following `simpleForm` jQuery plugin :
|
29
76
|
|
30
77
|
```javascript
|
31
|
-
|
78
|
+
$fragment.simpleForm()`
|
32
79
|
```
|
33
80
|
|
34
|
-
|
81
|
+
As an example, if you're loading a form from the server, you can do the
|
82
|
+
following :
|
83
|
+
|
84
|
+
```javascript
|
85
|
+
$.get('/form/url', function(response) {
|
86
|
+
// Store the fragment loaded from the server in a variable
|
87
|
+
$fragment = $(response)
|
88
|
+
// Append it to the DOM
|
89
|
+
$fragment.appendTo('body')
|
90
|
+
// Initialize Simple Form Extension plugins
|
91
|
+
$fragment.simpleForm()
|
92
|
+
})
|
93
|
+
```
|
35
94
|
|
36
95
|
## Contributing
|
37
96
|
|
38
|
-
1. Fork it ( http://github.com
|
97
|
+
1. Fork it ( http://github.com/xana68/simple_form_extension/fork )
|
39
98
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
40
99
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
41
100
|
4. Push to the branch (`git push origin my-new-feature`)
|
@@ -10,10 +10,30 @@
|
|
10
10
|
#= require_self
|
11
11
|
#= require_tree ./simple_form_extension
|
12
12
|
|
13
|
-
$.
|
13
|
+
$.simpleForm =
|
14
|
+
# Bind a callback to run when a DOM or sub-DOM is ready to be initialized
|
15
|
+
# Allows abstracting the following cases :
|
16
|
+
# - Document is ready with $(document).ready()
|
17
|
+
# - Document is ready with Turbolinks $(document).on('page:change')
|
18
|
+
# - A sub-DOM is dynamically added and needs all the plugins to be
|
19
|
+
# initialized, ex: for nested forms
|
20
|
+
#
|
21
|
+
onDomReady: (callback) ->
|
22
|
+
$(document).on 'initialize.simpleform', (e, $fragment) ->
|
23
|
+
callback($fragment)
|
14
24
|
|
15
|
-
|
16
|
-
|
17
|
-
|
25
|
+
# Trigger all the registered callbacks and run them on the target element
|
26
|
+
$.fn.simpleForm = ->
|
27
|
+
@each (i, fragment) ->
|
28
|
+
$(document).trigger('initialize.simpleform', [$(fragment)])
|
18
29
|
|
19
|
-
|
30
|
+
# Classic document ready binding
|
31
|
+
# Does not run when Turbolinks is present and supported by the browser
|
32
|
+
#
|
33
|
+
$(document).ready ->
|
34
|
+
$('body').simpleForm() unless window.Turbolinks && window.Turbolinks.supported
|
35
|
+
|
36
|
+
# Turbolinks document ready binding
|
37
|
+
#
|
38
|
+
$(document).on 'page:change', ->
|
39
|
+
$('body').simpleForm()
|
@@ -9,5 +9,5 @@ $.fn.simpleFormColorpicker = ->
|
|
9
9
|
instance = new ColorPicker($input)
|
10
10
|
$input.data('simple-form:colorpicker', instance)
|
11
11
|
|
12
|
-
|
13
|
-
$('[data-colorpicker]').simpleFormColorpicker()
|
12
|
+
$.simpleForm.onDomReady ($document) ->
|
13
|
+
$document.find('[data-colorpicker]').simpleFormColorpicker()
|
@@ -40,8 +40,12 @@ class TimePicker extends DateTimePicker
|
|
40
40
|
format: @$input.data('format')
|
41
41
|
)
|
42
42
|
|
43
|
-
|
44
|
-
|
43
|
+
|
44
|
+
$.simpleForm.onDomReady ($document) ->
|
45
|
+
# Plugin initialization delegated to body, so we do not need to run the
|
46
|
+
# initialization process when the body has not changed
|
47
|
+
return unless $document.is('body')
|
48
|
+
|
45
49
|
$('body').on 'click', 'input.datetime', (e) ->
|
46
50
|
DateTimePicker.forInput($(e.currentTarget), DateTimePicker).show()
|
47
51
|
|
@@ -55,11 +59,11 @@ onPageReady ->
|
|
55
59
|
$('body').on 'click', '.date .datetimepicker-trigger', (e) ->
|
56
60
|
$input = $(e.currentTarget).closest('.date').find('input.date')
|
57
61
|
DatePicker.forInput($input, DatePicker).show()
|
58
|
-
|
62
|
+
|
59
63
|
$('body').on 'click', 'input.time', (e) ->
|
60
64
|
TimePicker.forInput($(e.currentTarget), TimePicker).show()
|
61
65
|
|
62
66
|
$('body').on 'click', '.time .datetimepicker-trigger', (e) ->
|
63
67
|
$input = $(e.currentTarget).closest('.time').find('input.time')
|
64
68
|
TimePicker.forInput($input, TimePicker).show()
|
65
|
-
|
69
|
+
|
@@ -26,7 +26,11 @@ class ExistingFileField
|
|
26
26
|
@$existingFile.show(0)
|
27
27
|
@$removeButtonIcon.attr(class: @originalClass)
|
28
28
|
|
29
|
-
|
29
|
+
$.simpleForm.onDomReady ($document) ->
|
30
|
+
# Plugin initialization delegated to body, so we do not need to run the
|
31
|
+
# initialization process when the body has not changed
|
32
|
+
return unless $document.is('body')
|
33
|
+
|
30
34
|
$('body').on 'click', '[data-dismiss="existing-file"]', (e) ->
|
31
35
|
$button = $(e.currentTarget)
|
32
36
|
$field = $button.closest('[data-provides="existing-file"]')
|
@@ -52,5 +52,5 @@ $.fn.simpleFormRedactor = ->
|
|
52
52
|
instance = new Redactor($textarea)
|
53
53
|
$textarea.data('simple-form:redactor', instance)
|
54
54
|
|
55
|
-
|
56
|
-
$('[data-redactor]').simpleFormRedactor()
|
55
|
+
$.simpleForm.onDomReady ($document) ->
|
56
|
+
$document.find('[data-redactor]').simpleFormRedactor()
|
@@ -50,5 +50,5 @@ $.fn.simpleFormSelectize = (options = {}) ->
|
|
50
50
|
instance = new Selectize($select, options)
|
51
51
|
$select.data('simple-form:selectize', instance)
|
52
52
|
|
53
|
-
|
54
|
-
$('[data-selectize]').simpleFormSelectize()
|
53
|
+
$.simpleForm.onDomReady ($document) ->
|
54
|
+
$document.find('[data-selectize]').simpleFormSelectize()
|
@@ -12,5 +12,5 @@ $.fn.simpleFormSlider = ->
|
|
12
12
|
instance = new Slider($select)
|
13
13
|
$select.data('simple-form:slider', instance)
|
14
14
|
|
15
|
-
|
16
|
-
$('[data-slider]').simpleFormSlider()
|
15
|
+
$.simpleForm.onDomReady ($document) ->
|
16
|
+
$document.find('[data-slider]').simpleFormSlider()
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class Spinbox
|
2
2
|
constructor: (@$el) ->
|
3
3
|
@$el.spinbox(max: Number.POSITIVE_INFINITY)
|
4
|
-
|
4
|
+
|
5
5
|
|
6
6
|
$.fn.simpleFormSpinbox = ->
|
7
7
|
@each (i, el) ->
|
@@ -9,9 +9,9 @@ $.fn.simpleFormSpinbox = ->
|
|
9
9
|
return if $input.data('simple-form:spinbox')
|
10
10
|
instance = new Spinbox($input)
|
11
11
|
$input.data('simple-form:spinbox', instance)
|
12
|
-
|
13
|
-
|
14
|
-
$spinbox = $('.spinbox')
|
12
|
+
|
13
|
+
$.simpleForm.onDomReady ($document) ->
|
14
|
+
$spinbox = $document.find('.spinbox')
|
15
15
|
return unless $spinbox.length
|
16
16
|
$spinbox.simpleFormSpinbox()
|
17
|
-
|
17
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_form_extension
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre Vasseur
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|