├── .gitattributes
├── .gitignore
├── README.md
├── bootstrap-gravity-forms.js
└── bootstrap-gravity-forms.min.js
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Standard to msysgit
13 | *.doc diff=astextplain
14 | *.DOC diff=astextplain
15 | *.docx diff=astextplain
16 | *.DOCX diff=astextplain
17 | *.dot diff=astextplain
18 | *.DOT diff=astextplain
19 | *.pdf diff=astextplain
20 | *.PDF diff=astextplain
21 | *.rtf diff=astextplain
22 | *.RTF diff=astextplain
23 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #################
2 | ## Eclipse
3 | #################
4 |
5 | *.pydevproject
6 | .project
7 | .metadata
8 | bin/
9 | tmp/
10 | *.tmp
11 | *.bak
12 | *.swp
13 | *~.nib
14 | local.properties
15 | .classpath
16 | .settings/
17 | .loadpath
18 |
19 | # External tool builders
20 | .externalToolBuilders/
21 |
22 | # Locally stored "Eclipse launch configurations"
23 | *.launch
24 |
25 | # CDT-specific
26 | .cproject
27 |
28 | # PDT-specific
29 | .buildpath
30 |
31 |
32 | #################
33 | ## Visual Studio
34 | #################
35 |
36 | ## Ignore Visual Studio temporary files, build results, and
37 | ## files generated by popular Visual Studio add-ons.
38 |
39 | # User-specific files
40 | *.suo
41 | *.user
42 | *.sln.docstates
43 |
44 | # Build results
45 |
46 | [Dd]ebug/
47 | [Rr]elease/
48 | x64/
49 | build/
50 | [Bb]in/
51 | [Oo]bj/
52 |
53 | # MSTest test Results
54 | [Tt]est[Rr]esult*/
55 | [Bb]uild[Ll]og.*
56 |
57 | *_i.c
58 | *_p.c
59 | *.ilk
60 | *.meta
61 | *.obj
62 | *.pch
63 | *.pdb
64 | *.pgc
65 | *.pgd
66 | *.rsp
67 | *.sbr
68 | *.tlb
69 | *.tli
70 | *.tlh
71 | *.tmp
72 | *.tmp_proj
73 | *.log
74 | *.vspscc
75 | *.vssscc
76 | .builds
77 | *.pidb
78 | *.log
79 | *.scc
80 |
81 | # Visual C++ cache files
82 | ipch/
83 | *.aps
84 | *.ncb
85 | *.opensdf
86 | *.sdf
87 | *.cachefile
88 |
89 | # Visual Studio profiler
90 | *.psess
91 | *.vsp
92 | *.vspx
93 |
94 | # Guidance Automation Toolkit
95 | *.gpState
96 |
97 | # ReSharper is a .NET coding add-in
98 | _ReSharper*/
99 | *.[Rr]e[Ss]harper
100 |
101 | # TeamCity is a build add-in
102 | _TeamCity*
103 |
104 | # DotCover is a Code Coverage Tool
105 | *.dotCover
106 |
107 | # NCrunch
108 | *.ncrunch*
109 | .*crunch*.local.xml
110 |
111 | # Installshield output folder
112 | [Ee]xpress/
113 |
114 | # DocProject is a documentation generator add-in
115 | DocProject/buildhelp/
116 | DocProject/Help/*.HxT
117 | DocProject/Help/*.HxC
118 | DocProject/Help/*.hhc
119 | DocProject/Help/*.hhk
120 | DocProject/Help/*.hhp
121 | DocProject/Help/Html2
122 | DocProject/Help/html
123 |
124 | # Click-Once directory
125 | publish/
126 |
127 | # Publish Web Output
128 | *.Publish.xml
129 | *.pubxml
130 |
131 | # NuGet Packages Directory
132 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line
133 | #packages/
134 |
135 | # Windows Azure Build Output
136 | csx
137 | *.build.csdef
138 |
139 | # Windows Store app package directory
140 | AppPackages/
141 |
142 | # Others
143 | sql/
144 | *.Cache
145 | ClientBin/
146 | [Ss]tyle[Cc]op.*
147 | ~$*
148 | *~
149 | *.dbmdl
150 | *.[Pp]ublish.xml
151 | *.pfx
152 | *.publishsettings
153 |
154 | # RIA/Silverlight projects
155 | Generated_Code/
156 |
157 | # Backup & report files from converting an old project file to a newer
158 | # Visual Studio version. Backup files are not needed, because we have git ;-)
159 | _UpgradeReport_Files/
160 | Backup*/
161 | UpgradeLog*.XML
162 | UpgradeLog*.htm
163 |
164 | # SQL Server files
165 | App_Data/*.mdf
166 | App_Data/*.ldf
167 |
168 | #############
169 | ## Windows detritus
170 | #############
171 |
172 | # Windows image file caches
173 | Thumbs.db
174 | ehthumbs.db
175 |
176 | # Folder config file
177 | Desktop.ini
178 |
179 | # Recycle Bin used on file shares
180 | $RECYCLE.BIN/
181 |
182 | # Mac crap
183 | .DS_Store
184 |
185 |
186 | #############
187 | ## Python
188 | #############
189 |
190 | *.py[co]
191 |
192 | # Packages
193 | *.egg
194 | *.egg-info
195 | dist/
196 | build/
197 | eggs/
198 | parts/
199 | var/
200 | sdist/
201 | develop-eggs/
202 | .installed.cfg
203 |
204 | # Installer logs
205 | pip-log.txt
206 |
207 | # Unit test / coverage reports
208 | .coverage
209 | .tox
210 |
211 | #Translations
212 | *.mo
213 |
214 | #Mr Developer
215 | .mr.developer.cfg
216 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | bootstrap-gravity-forms
2 | =======================
3 |
4 | Drop in function to add Bootstrap 3 support to Gravity Forms
5 |
6 | ###What this plugin does:
7 | * Takes your current gravity forms and converts them to Bootstrap 3 syntax
8 | * Eliminates the need for gravity forms css output
9 | * Reduces HTTP requests by not loading gravity form CSS
10 | * Runs on every form rendering, works on ajax forms as well
11 | * Includes support for radio buttons, checkboxes, multiple forms per page, ajax, html5 required attribute, multi-page forms, validation messages, and progress bars
12 | * Speeds up your website or app
13 | * Speeds up development time when using gravity forms and Bootstrap syntax/ styles
14 |
15 | ###How to use
16 | Just add bootstrap-gravity-forms.js anywhere in your page, or you can copy the function and paste it into your own js file. It will run automatically, on each form rendering.
17 |
18 | Disable css output in gravity forms settings if you wish to use Bootstrap styles only
19 |
20 | ###Notes
21 | This plugin requires jQuery to be loaded before running. If you are using Wordpress, it is already set for noConflict compatibility.
22 |
--------------------------------------------------------------------------------
/bootstrap-gravity-forms.js:
--------------------------------------------------------------------------------
1 | (function($){
2 | var gform = $(document).find('.gform_wrapper').attr('class');
3 | if(typeof gform !== 'undefined' && gform !== 'false'){
4 | $(document).on('gform_post_render',function(){
5 | var form = $('.gform_wrapper');
6 | var required = $('.gfield_contains_required');
7 | var controlGroup = $('.gfield');
8 | required.each(function(){
9 | $(this).find('input, textarea, select').not('input[type="checkbox"], input[type="radio"]').attr('required', 'true');
10 | });
11 | $('.gform_fields').each(function(){
12 | $(this).addClass('row');
13 | });
14 | controlGroup.each(function(){
15 | $(this).addClass('form-group').find('input, textarea, select').not('input[type="checkbox"], input[type="radio"]').after('').addClass('form-control');
16 | });
17 | form.find("input[type='submit'], input[type='button']").addClass('btn btn-primary').end().find('.gfield_error').removeClass('gfield_error').addClass('has-error');
18 | $('.gfield_checkbox, .gfield_radio').find('input[type="checkbox"], input[type="radio"]').each(function(){
19 | var sib = $(this).siblings('label');
20 | $(this).prependTo(sib);
21 | }).end().each(function(){
22 | $(this).after('');
23 | if($(this).is('.gfield_checkbox')){
24 | $(this).addClass('checkbox');
25 | } else {
26 | $(this).addClass('radio');
27 | }
28 | });
29 | $('.validation_message').each(function(){
30 | var sib = $(this).prev().find('.help-block');
31 | $(this).appendTo(sib);
32 | });
33 | $('.validation_error').addClass('alert alert-danger');
34 | $('.gf_progressbar').addClass('progress progress-striped active').children('.gf_progressbar_percentage').addClass('progress-bar progress-bar-success');
35 | });
36 | } else {
37 | console.log('no forms were found');
38 | return false;
39 | }
40 | })(jQuery);
--------------------------------------------------------------------------------
/bootstrap-gravity-forms.min.js:
--------------------------------------------------------------------------------
1 | (function($){var gform=$(document).find('.gform_wrapper').attr('class');if(typeof gform!=='undefined'&&gform!=='false'){$(document).on('gform_post_render',function(){var form=$('.gform_wrapper');var required=$('.gfield_contains_required');var controlGroup=$('.gfield');required.each(function(){$(this).find('input, textarea, select').not('input[type="checkbox"], input[type="radio"]').attr('required','true');});$('.gform_fields').each(function(){$(this).addClass('row');});controlGroup.each(function(){$(this).addClass('form-group').find('input, textarea, select').not('input[type="checkbox"], input[type="radio"]').after('').addClass('form-control');});form.find("input[type='submit'], input[type='button']").addClass('btn btn-primary').end().find('.gfield_error').removeClass('gfield_error').addClass('has-error');$('.gfield_checkbox, .gfield_radio').find('input[type="checkbox"], input[type="radio"]').each(function(){var sib=$(this).siblings('label');$(this).prependTo(sib);}).end().each(function(){$(this).after('');if($(this).is('.gfield_checkbox')){$(this).addClass('checkbox');}else{$(this).addClass('radio');}});$('.validation_message').each(function(){var sib=$(this).prev().find('.help-block');$(this).appendTo(sib);});$('.validation_error').addClass('alert alert-danger');$('.gf_progressbar').addClass('progress progress-striped active').children('.gf_progressbar_percentage').addClass('progress-bar progress-bar-success');});}else{console.log('no forms were found');return false;}})(jQuery);
--------------------------------------------------------------------------------