phantom_forms 0.1.5
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 +7 -0
- data/README.md +1 -0
- data/lib/phantom_forms/engine.rb +4 -0
- data/lib/phantom_forms/form_builders/validate_form_builder.rb +50 -0
- data/lib/phantom_forms/helper.rb +112 -0
- data/lib/phantom_forms.rb +8 -0
- data/vendor/assets/javascripts/forms.js.coffee +24 -0
- data/vendor/assets/javascripts/phantom_forms.js +2 -0
- metadata +96 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bee70e7bd5539ba85636c0fd5dbedf3f3217fd91
|
4
|
+
data.tar.gz: e0d00e0efa68e6e9e84be35c471168445ee3c386
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 28c9c1a0091c6695f4c1792e78983696be2199fdb4b93ccdf07efaae109ea0e052badf08c80b6104254320cec397f40bab6a60341b2bf2b938ec97ff35a500ae
|
7
|
+
data.tar.gz: ada080a157947d2fc00a4174dc0d28a191ebfc96ebcad418a4763b09840d08e8128489016112138cdfadc6e7aea96a3071f71e38530a86bd4a725c11162571a1
|
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Helpers for Twitter Bootstrap v3.
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module PhantomForms
|
2
|
+
module FormBuilders
|
3
|
+
class ValidateFormBuilder < ActionView::Helpers::FormBuilder
|
4
|
+
|
5
|
+
FORM_HELPERS = %w{text_field password_field text_area file_field
|
6
|
+
number_field email_field telephone_field phone_field url_field
|
7
|
+
select collection_select date_select time_select datetime_select}
|
8
|
+
|
9
|
+
delegate :content_tag, to: :@template
|
10
|
+
|
11
|
+
def initialize(*)
|
12
|
+
super
|
13
|
+
@help_tag, @help_css = if options.fetch(:help, '').to_sym == :block
|
14
|
+
[:p, 'help-block']
|
15
|
+
else
|
16
|
+
[:span, 'help-inline']
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
FORM_HELPERS.each do |method_name|
|
21
|
+
define_method(method_name) do |name, *args|
|
22
|
+
options = args.extract_options!.symbolize_keys!
|
23
|
+
content_tag :div, class: "form-group" do
|
24
|
+
label(name, options[:label], class: 'control-label') +
|
25
|
+
content_tag(:div, class: 'controls') do
|
26
|
+
help = object.errors[name].any? ? object.errors[name].join(', ') : options[:help]
|
27
|
+
help = content_tag(@help_tag, class: @help_css) { help } if help
|
28
|
+
options[:class] = options[:class].to_s + " form-control"
|
29
|
+
args << options.except(:label, :help)
|
30
|
+
super(name, *args) + help
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def check_box(name, *args)
|
37
|
+
options = args.extract_options!.symbolize_keys!
|
38
|
+
content_tag :div, class: "control-group#{(' error' if object.errors[name].any?)}" do
|
39
|
+
content_tag(:div, class: 'controls') do
|
40
|
+
args << options.except(:label, :help)
|
41
|
+
html = super(name, *args) + ' ' + options[:label]
|
42
|
+
label(name, html, class: 'checkbox')
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
module PhantomForms
|
2
|
+
module Helper
|
3
|
+
|
4
|
+
def remote_form_for(object, options = {}, &block)
|
5
|
+
options[:validate] = true
|
6
|
+
options[:builder] = PhantomForms::FormBuilders::ValidateFormBuilder
|
7
|
+
options[:remote] = true
|
8
|
+
options[:html] = {:class => 'remote-form form'}
|
9
|
+
content_tag :div, class: "col-md-12" do
|
10
|
+
content_tag :div, class: "well" do
|
11
|
+
form_for(object, options, &block)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def remote_form_panel_for(object, panel_title = nil, options = {}, &block)
|
17
|
+
options[:validate] = true
|
18
|
+
options[:builder] = PhantomForms::FormBuilders::ValidateFormBuilder
|
19
|
+
options[:remote] = true
|
20
|
+
options[:html] = {:class => 'remote-form form'}
|
21
|
+
content_tag :div, class: "col-md-12" do
|
22
|
+
content_tag :div, class: "panel panel-primary" do
|
23
|
+
[
|
24
|
+
if panel_title
|
25
|
+
content_tag :div, class: "panel-heading" do
|
26
|
+
content_tag :h3, class: "panel-title" do
|
27
|
+
panel_title
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end,
|
31
|
+
content_tag(:div, class: "panel-body") do
|
32
|
+
form_for(object, options, &block)
|
33
|
+
end
|
34
|
+
].join.html_safe
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def normal_form_for(object, options = {}, &block)
|
40
|
+
options[:validate] = true
|
41
|
+
options[:builder] = PhantomForms::FormBuilders::ValidateFormBuilder
|
42
|
+
options[:html] = {:class => 'normal-form form'}
|
43
|
+
content_tag :div, class: "row" do
|
44
|
+
content_tag :div, class: "span12 well" do
|
45
|
+
form_for(object, options, &block)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def modal_form_for(object, options = {}, &block)
|
51
|
+
options[:validate] = true
|
52
|
+
options[:builder] = PhantomForms::FormBuilders::ValidateFormBuilder
|
53
|
+
options[:html] = {:'data-type' => 'script', :class => 'remote-form'}
|
54
|
+
options[:remote] = true
|
55
|
+
form_for(object, options, &block)
|
56
|
+
end
|
57
|
+
|
58
|
+
def normal_modal_form_for(object, options = {}, &block)
|
59
|
+
options[:validate] = true
|
60
|
+
options[:builder] = PhantomForms::FormBuilders::ValidateFormBuilder
|
61
|
+
options[:html] = {:'data-type' => 'script', :class => 'normal-form'}
|
62
|
+
form_for(object, options, &block)
|
63
|
+
end
|
64
|
+
|
65
|
+
def buttons_for(object, options = {})
|
66
|
+
object_name = get_class(object)
|
67
|
+
object_class = options[:nested_id] || object_name
|
68
|
+
|
69
|
+
locale_name = object_name.underscore
|
70
|
+
locale = options[:label] || t("#{locale_name}.save")
|
71
|
+
|
72
|
+
content_tag :div, :class => 'row' do
|
73
|
+
[
|
74
|
+
content_tag(:div, :class => 'col-md-9') do
|
75
|
+
concat submit_button( locale , :id => "submit-#{object_class}-button")
|
76
|
+
end,
|
77
|
+
content_tag(:div, :class => 'col-md-3') do
|
78
|
+
concat link_to_cancel( :id => "cancel-#{object_class}-link")
|
79
|
+
end
|
80
|
+
].join.html_safe
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def modal_buttons_for(object, options = {})
|
85
|
+
object_name = get_class(object)
|
86
|
+
object_class = options[:nested_id] || object_name
|
87
|
+
|
88
|
+
locale_name = object_name.underscore
|
89
|
+
locale = options[:label] || t("#{locale_name}.save")
|
90
|
+
|
91
|
+
content_tag :div, :class => 'row' do
|
92
|
+
content_tag :div, :class => 'col-md-12' do
|
93
|
+
concat submit_button( locale , :id => "submit-#{object_class}-button")
|
94
|
+
concat link_to_modal_cancel( :id => "cancel-#{object_class}-link")
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
|
100
|
+
private
|
101
|
+
|
102
|
+
def get_class(object)
|
103
|
+
object_class_name = object.class.to_s.underscore.dasherize.split('/').last
|
104
|
+
if object_class_name.include? '-decorator'
|
105
|
+
object_class_name.split('-decorator').first
|
106
|
+
else
|
107
|
+
object_class_name
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
end
|
112
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
formBuilder =
|
2
|
+
add: (element, settings, message) ->
|
3
|
+
if element.data("valid") isnt false
|
4
|
+
element.data "valid", false
|
5
|
+
element.parent().parent().addClass "error"
|
6
|
+
element.parent().find(".message").addClass "error help-inline"
|
7
|
+
$('<span/>').addClass('help-inline').text(message).appendTo(element.parent())
|
8
|
+
|
9
|
+
remove: (element, settings) ->
|
10
|
+
element.parent().parent().removeClass('error')
|
11
|
+
element.parent().find(".message").removeClass "error help-inline"
|
12
|
+
element.parent().find('span.help-inline').remove()
|
13
|
+
element.data "valid", true
|
14
|
+
|
15
|
+
|
16
|
+
window.Rails4ClientSideValidations.formBuilders["PhantomForms::FormBuilders::ValidateFormBuilder"] = formBuilder
|
17
|
+
|
18
|
+
$ ->
|
19
|
+
|
20
|
+
window.Rails4ClientSideValidations.callbacks.element.fail = (element, message, callback) ->
|
21
|
+
callback()
|
22
|
+
if element.data("valid") isnt false
|
23
|
+
element.parent().parent().addClass "error"
|
24
|
+
element.parent().find(".message").addClass "error help-inline"
|
metadata
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: phantom_forms
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.5
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Vassil Kalkov
|
8
|
+
- Rei Kagetsuki
|
9
|
+
- Nakaya Yukiharu
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2013-09-23 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rails4_client_side_validations
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - '>='
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '0'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: rails
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - '>='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: phantom_helpers
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ~>
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 0.0.6
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 0.0.6
|
57
|
+
description: rails helpers for bootstrap 3
|
58
|
+
email: info@genshin.org
|
59
|
+
executables: []
|
60
|
+
extensions: []
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- lib/phantom_forms/form_builders/validate_form_builder.rb
|
64
|
+
- lib/phantom_forms/engine.rb
|
65
|
+
- lib/phantom_forms/helper.rb
|
66
|
+
- lib/phantom_forms.rb
|
67
|
+
- vendor/assets/javascripts/forms.js.coffee
|
68
|
+
- vendor/assets/javascripts/phantom_forms.js
|
69
|
+
- README.md
|
70
|
+
homepage: http://github.com/Genshin/phantom_forms
|
71
|
+
licenses:
|
72
|
+
- GNU GPL-3
|
73
|
+
- AGPL-3
|
74
|
+
metadata: {}
|
75
|
+
post_install_message:
|
76
|
+
rdoc_options: []
|
77
|
+
require_paths:
|
78
|
+
- lib
|
79
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 1.8.7
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
requirements:
|
90
|
+
- none
|
91
|
+
rubyforge_project:
|
92
|
+
rubygems_version: 2.0.3
|
93
|
+
signing_key:
|
94
|
+
specification_version: 4
|
95
|
+
summary: Phantom Forms
|
96
|
+
test_files: []
|