simple_form_extension 1.2.21 → 1.3.0
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 +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
|