effective_bootstrap 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (317) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -0
  3. data/app/assets/images/icons/activity.svg +1 -13
  4. data/app/assets/images/icons/airplay.svg +1 -14
  5. data/app/assets/images/icons/alert-circle.svg +1 -15
  6. data/app/assets/images/icons/alert-octagon.svg +1 -15
  7. data/app/assets/images/icons/alert-triangle.svg +1 -15
  8. data/app/assets/images/icons/align-center.svg +1 -16
  9. data/app/assets/images/icons/align-justify.svg +1 -16
  10. data/app/assets/images/icons/align-left.svg +1 -16
  11. data/app/assets/images/icons/align-right.svg +1 -16
  12. data/app/assets/images/icons/anchor.svg +1 -15
  13. data/app/assets/images/icons/aperture.svg +1 -19
  14. data/app/assets/images/icons/archive.svg +1 -0
  15. data/app/assets/images/icons/arrow-down-circle.svg +1 -15
  16. data/app/assets/images/icons/arrow-down-left.svg +1 -14
  17. data/app/assets/images/icons/arrow-down-right.svg +1 -14
  18. data/app/assets/images/icons/arrow-down.svg +1 -14
  19. data/app/assets/images/icons/arrow-left-circle.svg +1 -15
  20. data/app/assets/images/icons/arrow-left.svg +1 -14
  21. data/app/assets/images/icons/arrow-right-circle.svg +1 -15
  22. data/app/assets/images/icons/arrow-right.svg +1 -14
  23. data/app/assets/images/icons/arrow-up-circle.svg +1 -15
  24. data/app/assets/images/icons/arrow-up-left.svg +1 -14
  25. data/app/assets/images/icons/arrow-up-right.svg +1 -14
  26. data/app/assets/images/icons/arrow-up.svg +1 -14
  27. data/app/assets/images/icons/at-sign.svg +1 -14
  28. data/app/assets/images/icons/award.svg +1 -14
  29. data/app/assets/images/icons/bar-chart-2.svg +1 -15
  30. data/app/assets/images/icons/bar-chart.svg +1 -15
  31. data/app/assets/images/icons/battery-charging.svg +1 -15
  32. data/app/assets/images/icons/battery.svg +1 -14
  33. data/app/assets/images/icons/bell-off.svg +1 -14
  34. data/app/assets/images/icons/bell.svg +1 -13
  35. data/app/assets/images/icons/bluetooth.svg +1 -13
  36. data/app/assets/images/icons/bold.svg +1 -14
  37. data/app/assets/images/icons/book-open.svg +1 -14
  38. data/app/assets/images/icons/book.svg +1 -14
  39. data/app/assets/images/icons/bookmark.svg +1 -13
  40. data/app/assets/images/icons/box.svg +1 -15
  41. data/app/assets/images/icons/briefcase.svg +1 -14
  42. data/app/assets/images/icons/calendar.svg +1 -16
  43. data/app/assets/images/icons/camera-off.svg +1 -14
  44. data/app/assets/images/icons/camera.svg +1 -14
  45. data/app/assets/images/icons/cast.svg +1 -14
  46. data/app/assets/images/icons/check-circle.svg +1 -14
  47. data/app/assets/images/icons/check-square.svg +1 -14
  48. data/app/assets/images/icons/check.svg +1 -13
  49. data/app/assets/images/icons/chevron-down.svg +1 -13
  50. data/app/assets/images/icons/chevron-left.svg +1 -13
  51. data/app/assets/images/icons/chevron-right.svg +1 -13
  52. data/app/assets/images/icons/chevron-up.svg +1 -13
  53. data/app/assets/images/icons/chevrons-down.svg +1 -14
  54. data/app/assets/images/icons/chevrons-left.svg +1 -14
  55. data/app/assets/images/icons/chevrons-right.svg +1 -14
  56. data/app/assets/images/icons/chevrons-up.svg +1 -14
  57. data/app/assets/images/icons/chrome.svg +1 -17
  58. data/app/assets/images/icons/circle.svg +1 -13
  59. data/app/assets/images/icons/clipboard.svg +1 -14
  60. data/app/assets/images/icons/clock.svg +1 -14
  61. data/app/assets/images/icons/cloud-drizzle.svg +1 -19
  62. data/app/assets/images/icons/cloud-lightning.svg +1 -14
  63. data/app/assets/images/icons/cloud-off.svg +1 -14
  64. data/app/assets/images/icons/cloud-rain.svg +1 -16
  65. data/app/assets/images/icons/cloud-snow.svg +1 -19
  66. data/app/assets/images/icons/cloud.svg +1 -13
  67. data/app/assets/images/icons/code.svg +1 -14
  68. data/app/assets/images/icons/codepen.svg +1 -17
  69. data/app/assets/images/icons/codesandbox.svg +1 -0
  70. data/app/assets/images/icons/coffee.svg +1 -0
  71. data/app/assets/images/icons/columns.svg +1 -0
  72. data/app/assets/images/icons/command.svg +1 -13
  73. data/app/assets/images/icons/compass.svg +1 -14
  74. data/app/assets/images/icons/copy.svg +1 -14
  75. data/app/assets/images/icons/corner-down-left.svg +1 -14
  76. data/app/assets/images/icons/corner-down-right.svg +1 -14
  77. data/app/assets/images/icons/corner-left-down.svg +1 -14
  78. data/app/assets/images/icons/corner-left-up.svg +1 -14
  79. data/app/assets/images/icons/corner-right-down.svg +1 -14
  80. data/app/assets/images/icons/corner-right-up.svg +1 -14
  81. data/app/assets/images/icons/corner-up-left.svg +1 -14
  82. data/app/assets/images/icons/corner-up-right.svg +1 -14
  83. data/app/assets/images/icons/cpu.svg +1 -22
  84. data/app/assets/images/icons/credit-card.svg +1 -14
  85. data/app/assets/images/icons/crop.svg +1 -14
  86. data/app/assets/images/icons/crosshair.svg +1 -17
  87. data/app/assets/images/icons/database.svg +1 -15
  88. data/app/assets/images/icons/delete.svg +1 -15
  89. data/app/assets/images/icons/disc.svg +1 -14
  90. data/app/assets/images/icons/dollar-sign.svg +1 -14
  91. data/app/assets/images/icons/download-cloud.svg +1 -15
  92. data/app/assets/images/icons/download.svg +1 -15
  93. data/app/assets/images/icons/droplet.svg +1 -13
  94. data/app/assets/images/icons/edit-2.svg +1 -13
  95. data/app/assets/images/icons/edit-3.svg +1 -14
  96. data/app/assets/images/icons/edit.svg +1 -14
  97. data/app/assets/images/icons/external-link.svg +1 -15
  98. data/app/assets/images/icons/eye-off.svg +1 -14
  99. data/app/assets/images/icons/eye.svg +1 -14
  100. data/app/assets/images/icons/facebook.svg +1 -13
  101. data/app/assets/images/icons/fast-forward.svg +1 -14
  102. data/app/assets/images/icons/feather.svg +1 -15
  103. data/app/assets/images/icons/figma.svg +1 -0
  104. data/app/assets/images/icons/file-minus.svg +1 -15
  105. data/app/assets/images/icons/file-plus.svg +1 -16
  106. data/app/assets/images/icons/file-text.svg +1 -17
  107. data/app/assets/images/icons/file.svg +1 -14
  108. data/app/assets/images/icons/film.svg +1 -20
  109. data/app/assets/images/icons/filter.svg +1 -13
  110. data/app/assets/images/icons/flag.svg +1 -14
  111. data/app/assets/images/icons/folder-minus.svg +1 -14
  112. data/app/assets/images/icons/folder-plus.svg +1 -15
  113. data/app/assets/images/icons/folder.svg +1 -13
  114. data/app/assets/images/icons/framer.svg +1 -0
  115. data/app/assets/images/icons/frown.svg +1 -0
  116. data/app/assets/images/icons/gift.svg +1 -0
  117. data/app/assets/images/icons/git-branch.svg +1 -16
  118. data/app/assets/images/icons/git-commit.svg +1 -15
  119. data/app/assets/images/icons/git-merge.svg +1 -15
  120. data/app/assets/images/icons/git-pull-request.svg +1 -16
  121. data/app/assets/images/icons/github.svg +1 -13
  122. data/app/assets/images/icons/gitlab.svg +1 -13
  123. data/app/assets/images/icons/globe.svg +1 -15
  124. data/app/assets/images/icons/grid.svg +1 -16
  125. data/app/assets/images/icons/hard-drive.svg +1 -16
  126. data/app/assets/images/icons/hash.svg +1 -16
  127. data/app/assets/images/icons/headphones.svg +1 -14
  128. data/app/assets/images/icons/heart.svg +1 -13
  129. data/app/assets/images/icons/help-circle.svg +1 -15
  130. data/app/assets/images/icons/hexagon.svg +1 -0
  131. data/app/assets/images/icons/home.svg +1 -14
  132. data/app/assets/images/icons/image.svg +1 -15
  133. data/app/assets/images/icons/inbox.svg +1 -14
  134. data/app/assets/images/icons/info.svg +1 -15
  135. data/app/assets/images/icons/instagram.svg +1 -15
  136. data/app/assets/images/icons/italic.svg +1 -15
  137. data/app/assets/images/icons/key.svg +1 -0
  138. data/app/assets/images/icons/layers.svg +1 -15
  139. data/app/assets/images/icons/layout.svg +1 -15
  140. data/app/assets/images/icons/life-buoy.svg +1 -19
  141. data/app/assets/images/icons/link-2.svg +1 -14
  142. data/app/assets/images/icons/link.svg +1 -14
  143. data/app/assets/images/icons/linkedin.svg +1 -15
  144. data/app/assets/images/icons/list.svg +1 -18
  145. data/app/assets/images/icons/loader.svg +1 -20
  146. data/app/assets/images/icons/lock.svg +1 -14
  147. data/app/assets/images/icons/log-in.svg +1 -15
  148. data/app/assets/images/icons/log-out.svg +1 -15
  149. data/app/assets/images/icons/mail.svg +1 -14
  150. data/app/assets/images/icons/map-pin.svg +1 -14
  151. data/app/assets/images/icons/map.svg +1 -15
  152. data/app/assets/images/icons/maximize-2.svg +1 -16
  153. data/app/assets/images/icons/maximize.svg +1 -13
  154. data/app/assets/images/icons/meh.svg +1 -0
  155. data/app/assets/images/icons/menu.svg +1 -15
  156. data/app/assets/images/icons/message-circle.svg +1 -13
  157. data/app/assets/images/icons/message-square.svg +1 -13
  158. data/app/assets/images/icons/mic-off.svg +1 -17
  159. data/app/assets/images/icons/mic.svg +1 -16
  160. data/app/assets/images/icons/minimize-2.svg +1 -16
  161. data/app/assets/images/icons/minimize.svg +1 -13
  162. data/app/assets/images/icons/minus-circle.svg +1 -14
  163. data/app/assets/images/icons/minus-square.svg +1 -14
  164. data/app/assets/images/icons/minus.svg +1 -13
  165. data/app/assets/images/icons/monitor.svg +1 -15
  166. data/app/assets/images/icons/moon.svg +1 -13
  167. data/app/assets/images/icons/more-horizontal.svg +1 -15
  168. data/app/assets/images/icons/more-vertical.svg +1 -15
  169. data/app/assets/images/icons/mouse-pointer.svg +1 -0
  170. data/app/assets/images/icons/move.svg +1 -18
  171. data/app/assets/images/icons/music.svg +1 -14
  172. data/app/assets/images/icons/navigation-2.svg +1 -13
  173. data/app/assets/images/icons/navigation.svg +1 -13
  174. data/app/assets/images/icons/octagon.svg +1 -13
  175. data/app/assets/images/icons/package.svg +1 -16
  176. data/app/assets/images/icons/paperclip.svg +1 -13
  177. data/app/assets/images/icons/pause-circle.svg +1 -15
  178. data/app/assets/images/icons/pause.svg +1 -14
  179. data/app/assets/images/icons/pen-tool.svg +1 -0
  180. data/app/assets/images/icons/percent.svg +1 -15
  181. data/app/assets/images/icons/phone-call.svg +1 -13
  182. data/app/assets/images/icons/phone-forwarded.svg +1 -15
  183. data/app/assets/images/icons/phone-incoming.svg +1 -15
  184. data/app/assets/images/icons/phone-missed.svg +1 -15
  185. data/app/assets/images/icons/phone-off.svg +1 -14
  186. data/app/assets/images/icons/phone-outgoing.svg +1 -15
  187. data/app/assets/images/icons/phone.svg +1 -13
  188. data/app/assets/images/icons/pie-chart.svg +1 -14
  189. data/app/assets/images/icons/play-circle.svg +1 -14
  190. data/app/assets/images/icons/play.svg +1 -13
  191. data/app/assets/images/icons/plus-circle.svg +1 -15
  192. data/app/assets/images/icons/plus-square.svg +1 -15
  193. data/app/assets/images/icons/plus.svg +1 -14
  194. data/app/assets/images/icons/pocket.svg +1 -14
  195. data/app/assets/images/icons/power.svg +1 -14
  196. data/app/assets/images/icons/printer.svg +1 -15
  197. data/app/assets/images/icons/radio.svg +1 -14
  198. data/app/assets/images/icons/refresh-ccw.svg +1 -15
  199. data/app/assets/images/icons/refresh-cw.svg +1 -15
  200. data/app/assets/images/icons/repeat.svg +1 -16
  201. data/app/assets/images/icons/rewind.svg +1 -14
  202. data/app/assets/images/icons/rotate-ccw.svg +1 -14
  203. data/app/assets/images/icons/rotate-cw.svg +1 -14
  204. data/app/assets/images/icons/rss.svg +1 -15
  205. data/app/assets/images/icons/save.svg +1 -15
  206. data/app/assets/images/icons/scissors.svg +1 -17
  207. data/app/assets/images/icons/search.svg +1 -14
  208. data/app/assets/images/icons/send.svg +1 -14
  209. data/app/assets/images/icons/server.svg +1 -16
  210. data/app/assets/images/icons/settings.svg +1 -14
  211. data/app/assets/images/icons/share-2.svg +1 -17
  212. data/app/assets/images/icons/share.svg +1 -15
  213. data/app/assets/images/icons/shield-off.svg +1 -15
  214. data/app/assets/images/icons/shield.svg +1 -13
  215. data/app/assets/images/icons/shopping-bag.svg +1 -15
  216. data/app/assets/images/icons/shopping-cart.svg +1 -15
  217. data/app/assets/images/icons/shuffle.svg +1 -17
  218. data/app/assets/images/icons/sidebar.svg +1 -14
  219. data/app/assets/images/icons/skip-back.svg +1 -14
  220. data/app/assets/images/icons/skip-forward.svg +1 -14
  221. data/app/assets/images/icons/slack.svg +1 -17
  222. data/app/assets/images/icons/slash.svg +1 -14
  223. data/app/assets/images/icons/sliders.svg +1 -21
  224. data/app/assets/images/icons/smartphone.svg +1 -14
  225. data/app/assets/images/icons/smile.svg +1 -0
  226. data/app/assets/images/icons/speaker.svg +1 -15
  227. data/app/assets/images/icons/square.svg +1 -13
  228. data/app/assets/images/icons/star.svg +1 -13
  229. data/app/assets/images/icons/stop-circle.svg +1 -14
  230. data/app/assets/images/icons/sun.svg +1 -21
  231. data/app/assets/images/icons/sunrise.svg +1 -20
  232. data/app/assets/images/icons/sunset.svg +1 -20
  233. data/app/assets/images/icons/tablet.svg +1 -22
  234. data/app/assets/images/icons/tag.svg +1 -14
  235. data/app/assets/images/icons/target.svg +1 -15
  236. data/app/assets/images/icons/terminal.svg +1 -14
  237. data/app/assets/images/icons/thermometer.svg +1 -13
  238. data/app/assets/images/icons/thumbs-down.svg +1 -13
  239. data/app/assets/images/icons/thumbs-up.svg +1 -13
  240. data/app/assets/images/icons/toggle-left.svg +1 -14
  241. data/app/assets/images/icons/toggle-right.svg +1 -14
  242. data/app/assets/images/icons/tool.svg +1 -0
  243. data/app/assets/images/icons/trash-2.svg +1 -16
  244. data/app/assets/images/icons/trash.svg +1 -14
  245. data/app/assets/images/icons/trello.svg +1 -0
  246. data/app/assets/images/icons/trending-down.svg +1 -14
  247. data/app/assets/images/icons/trending-up.svg +1 -14
  248. data/app/assets/images/icons/triangle.svg +1 -13
  249. data/app/assets/images/icons/truck.svg +1 -16
  250. data/app/assets/images/icons/tv.svg +1 -14
  251. data/app/assets/images/icons/twitch.svg +1 -0
  252. data/app/assets/images/icons/twitter.svg +1 -13
  253. data/app/assets/images/icons/type.svg +1 -15
  254. data/app/assets/images/icons/umbrella.svg +1 -13
  255. data/app/assets/images/icons/underline.svg +1 -14
  256. data/app/assets/images/icons/unlock.svg +1 -14
  257. data/app/assets/images/icons/upload-cloud.svg +1 -16
  258. data/app/assets/images/icons/upload.svg +1 -15
  259. data/app/assets/images/icons/user-check.svg +1 -15
  260. data/app/assets/images/icons/user-minus.svg +1 -15
  261. data/app/assets/images/icons/user-plus.svg +1 -16
  262. data/app/assets/images/icons/user-x.svg +1 -16
  263. data/app/assets/images/icons/user.svg +1 -14
  264. data/app/assets/images/icons/users.svg +1 -16
  265. data/app/assets/images/icons/video-off.svg +1 -14
  266. data/app/assets/images/icons/video.svg +1 -14
  267. data/app/assets/images/icons/voicemail.svg +1 -15
  268. data/app/assets/images/icons/volume-1.svg +1 -14
  269. data/app/assets/images/icons/volume-2.svg +1 -14
  270. data/app/assets/images/icons/volume-x.svg +1 -15
  271. data/app/assets/images/icons/volume.svg +1 -13
  272. data/app/assets/images/icons/watch.svg +1 -15
  273. data/app/assets/images/icons/wifi-off.svg +1 -19
  274. data/app/assets/images/icons/wifi.svg +1 -16
  275. data/app/assets/images/icons/wind.svg +1 -13
  276. data/app/assets/images/icons/x-circle.svg +1 -15
  277. data/app/assets/images/icons/x-octagon.svg +1 -0
  278. data/app/assets/images/icons/x-square.svg +1 -15
  279. data/app/assets/images/icons/x.svg +1 -14
  280. data/app/assets/images/icons/youtube.svg +1 -0
  281. data/app/assets/images/icons/zap-off.svg +1 -16
  282. data/app/assets/images/icons/zap.svg +1 -13
  283. data/app/assets/images/icons/zoom-in.svg +1 -16
  284. data/app/assets/images/icons/zoom-out.svg +1 -15
  285. data/app/assets/javascripts/effective_editor/image-drop-and-paste.js +3 -0
  286. data/app/assets/javascripts/effective_editor/initialize.js.coffee +11 -1
  287. data/app/assets/javascripts/effective_editor/input.js +1 -0
  288. data/app/assets/javascripts/effective_select/initialize.js.coffee +5 -2
  289. data/app/helpers/effective_bootstrap_helper.rb +25 -12
  290. data/app/helpers/effective_form_builder_helper.rb +16 -13
  291. data/app/models/effective/form_builder.rb +5 -1
  292. data/app/models/effective/form_input.rb +4 -2
  293. data/app/models/effective/form_inputs/clear.rb +1 -1
  294. data/app/models/effective/form_inputs/collection_input.rb +1 -1
  295. data/app/models/effective/form_inputs/date_field.rb +2 -1
  296. data/app/models/effective/form_inputs/datetime_field.rb +2 -1
  297. data/app/models/effective/form_inputs/delete.rb +5 -1
  298. data/app/models/effective/form_inputs/editor.rb +10 -1
  299. data/app/models/effective/form_inputs/email_cc_field.rb +1 -1
  300. data/app/models/effective/form_inputs/email_field.rb +1 -1
  301. data/app/models/effective/form_inputs/error_field.rb +1 -1
  302. data/app/models/effective/form_inputs/file_field.rb +1 -0
  303. data/app/models/effective/form_inputs/float_field.rb +6 -1
  304. data/app/models/effective/form_inputs/hidden_field.rb +11 -0
  305. data/app/models/effective/form_inputs/integer_field.rb +1 -1
  306. data/app/models/effective/form_inputs/number_text_field.rb +1 -1
  307. data/app/models/effective/form_inputs/password_field.rb +1 -1
  308. data/app/models/effective/form_inputs/percent_field.rb +1 -1
  309. data/app/models/effective/form_inputs/phone_field.rb +1 -1
  310. data/app/models/effective/form_inputs/price_field.rb +1 -1
  311. data/app/models/effective/form_inputs/select.rb +35 -6
  312. data/app/models/effective/form_inputs/static_field.rb +1 -1
  313. data/app/models/effective/form_inputs/text_area.rb +1 -1
  314. data/app/models/effective/form_inputs/time_field.rb +2 -1
  315. data/app/models/effective/form_inputs/url_field.rb +1 -1
  316. data/lib/effective_bootstrap/version.rb +1 -1
  317. metadata +23 -2
@@ -3,7 +3,7 @@ module Effective
3
3
  class ErrorField < Effective::FormInput
4
4
 
5
5
  def input_html_options
6
- { class: 'alert alert-danger' }
6
+ { class: 'alert alert-danger', id: tag_id }
7
7
  end
8
8
 
9
9
  def to_html(&block)
@@ -15,6 +15,7 @@ module Effective
15
15
 
16
16
  def input_html_options
17
17
  {
18
+ id: tag_id,
18
19
  class: 'form-control form-control-file btn-outline-secondary',
19
20
  multiple: multiple?,
20
21
  direct_upload: true,
@@ -7,7 +7,12 @@ module Effective
7
7
  end
8
8
 
9
9
  def input_html_options
10
- { class: 'form-control effective_float', autocomplete: 'off', step: '0.01' }
10
+ {
11
+ class: 'form-control effective_float',
12
+ autocomplete: 'off',
13
+ step: '0.01',
14
+ id: tag_id
15
+ }
11
16
  end
12
17
 
13
18
  # This has gotta be a valid pattern
@@ -0,0 +1,11 @@
1
+ module Effective
2
+ module FormInputs
3
+ class HiddenField < Effective::FormInput
4
+
5
+ def to_html(&block)
6
+ @builder.super_hidden_field(name, options[:input].except(:class, :required))
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -7,7 +7,7 @@ module Effective
7
7
  end
8
8
 
9
9
  def input_html_options
10
- { class: 'form-control effective_integer', autocomplete: 'off' }
10
+ { class: 'form-control effective_integer', autocomplete: 'off', id: tag_id }
11
11
  end
12
12
 
13
13
  def value_to_i
@@ -7,7 +7,7 @@ module Effective
7
7
  end
8
8
 
9
9
  def input_html_options
10
- { class: 'form-control effective_number_text', autocomplete: 'off' }
10
+ { class: 'form-control effective_number_text', autocomplete: 'off', id: tag_id }
11
11
  end
12
12
 
13
13
  end
@@ -3,7 +3,7 @@ module Effective
3
3
  class PasswordField < Effective::FormInput
4
4
 
5
5
  def input_html_options
6
- { class: 'form-control' }
6
+ { class: 'form-control', id: tag_id }
7
7
  end
8
8
 
9
9
  def input_group_options
@@ -12,7 +12,7 @@ module Effective
12
12
  end
13
13
 
14
14
  def input_html_options
15
- { class: 'form-control effective_percent', autocomplete: 'off' }
15
+ { class: 'form-control effective_percent', autocomplete: 'off', id: tag_id }
16
16
  end
17
17
 
18
18
  # This has gotta be a valid pattern
@@ -6,7 +6,7 @@ module Effective
6
6
  DEFAULT_CELL_MASK = '(999) 999-9999'
7
7
 
8
8
  def input_html_options
9
- { class: 'form-control effective_phone', placeholder: '(555) 555-5555' }
9
+ { class: 'form-control effective_phone', placeholder: '(555) 555-5555', id: tag_id }
10
10
  end
11
11
 
12
12
  def input_js_options
@@ -12,7 +12,7 @@ module Effective
12
12
  end
13
13
 
14
14
  def input_html_options
15
- { class: 'form-control effective_price', autocomplete: 'off' }
15
+ { class: 'form-control effective_price', autocomplete: 'off', id: tag_id }
16
16
  end
17
17
 
18
18
  private
@@ -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?),
@@ -58,7 +57,7 @@ module Effective
58
57
  ('disable-open-on-focus' if disable_open_on_focus?),
59
58
  ].compact.join(' ')
60
59
 
61
- { class: classes, multiple: (true if multiple?), include_blank: (true if include_blank?), include_null: include_null }.compact
60
+ { class: classes, multiple: (true if multiple?), include_blank: (true if include_blank?), id: tag_id }.compact
62
61
  end
63
62
 
64
63
  def assign_options_collection!
@@ -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
@@ -3,7 +3,7 @@ module Effective
3
3
  class StaticField < Effective::FormInput
4
4
 
5
5
  def input_html_options
6
- { class: 'form-control-plaintext', readonly: false }
6
+ { class: 'form-control-plaintext', readonly: false, id: tag_id }
7
7
  end
8
8
 
9
9
  def feedback_options
@@ -3,7 +3,7 @@ module Effective
3
3
  class TextArea < Effective::FormInput
4
4
 
5
5
  def input_html_options
6
- { class: 'form-control', rows: 3 }
6
+ { class: 'form-control', rows: 3, id: tag_id }
7
7
  end
8
8
 
9
9
  end
@@ -5,7 +5,8 @@ module Effective
5
5
  def input_html_options
6
6
  {
7
7
  class: ['form-control', 'effective_date_time_picker', 'effective_time', ('not-date-linked' if not_date_linked?)].compact.join(' '),
8
- pattern: pattern
8
+ pattern: pattern,
9
+ id: tag_id
9
10
  }
10
11
  end
11
12
 
@@ -3,7 +3,7 @@ module Effective
3
3
  class UrlField < Effective::FormInput
4
4
 
5
5
  def input_html_options
6
- { class: 'form-control', placeholder: 'https://www.example.com' }
6
+ { class: 'form-control', placeholder: 'https://www.example.com', id: tag_id }
7
7
  end
8
8
 
9
9
  def input_group_options
@@ -1,3 +1,3 @@
1
1
  module EffectiveBootstrap
2
- VERSION = '0.7.0'.freeze
2
+ VERSION = '0.8.0'.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.8.0
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-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -114,6 +114,7 @@ files:
114
114
  - app/assets/images/icons/align-right.svg
115
115
  - app/assets/images/icons/anchor.svg
116
116
  - app/assets/images/icons/aperture.svg
117
+ - app/assets/images/icons/archive.svg
117
118
  - app/assets/images/icons/arrow-down-circle.svg
118
119
  - app/assets/images/icons/arrow-down-left.svg
119
120
  - app/assets/images/icons/arrow-down-right.svg
@@ -168,6 +169,9 @@ files:
168
169
  - app/assets/images/icons/cloud.svg
169
170
  - app/assets/images/icons/code.svg
170
171
  - app/assets/images/icons/codepen.svg
172
+ - app/assets/images/icons/codesandbox.svg
173
+ - app/assets/images/icons/coffee.svg
174
+ - app/assets/images/icons/columns.svg
171
175
  - app/assets/images/icons/command.svg
172
176
  - app/assets/images/icons/compass.svg
173
177
  - app/assets/images/icons/copy.svg
@@ -200,6 +204,7 @@ files:
200
204
  - app/assets/images/icons/facebook.svg
201
205
  - app/assets/images/icons/fast-forward.svg
202
206
  - app/assets/images/icons/feather.svg
207
+ - app/assets/images/icons/figma.svg
203
208
  - app/assets/images/icons/file-minus.svg
204
209
  - app/assets/images/icons/file-plus.svg
205
210
  - app/assets/images/icons/file-text.svg
@@ -210,6 +215,9 @@ files:
210
215
  - app/assets/images/icons/folder-minus.svg
211
216
  - app/assets/images/icons/folder-plus.svg
212
217
  - app/assets/images/icons/folder.svg
218
+ - app/assets/images/icons/framer.svg
219
+ - app/assets/images/icons/frown.svg
220
+ - app/assets/images/icons/gift.svg
213
221
  - app/assets/images/icons/git-branch.svg
214
222
  - app/assets/images/icons/git-commit.svg
215
223
  - app/assets/images/icons/git-merge.svg
@@ -224,12 +232,14 @@ files:
224
232
  - app/assets/images/icons/headphones.svg
225
233
  - app/assets/images/icons/heart.svg
226
234
  - app/assets/images/icons/help-circle.svg
235
+ - app/assets/images/icons/hexagon.svg
227
236
  - app/assets/images/icons/home.svg
228
237
  - app/assets/images/icons/image.svg
229
238
  - app/assets/images/icons/inbox.svg
230
239
  - app/assets/images/icons/info.svg
231
240
  - app/assets/images/icons/instagram.svg
232
241
  - app/assets/images/icons/italic.svg
242
+ - app/assets/images/icons/key.svg
233
243
  - app/assets/images/icons/layers.svg
234
244
  - app/assets/images/icons/layout.svg
235
245
  - app/assets/images/icons/life-buoy.svg
@@ -246,6 +256,7 @@ files:
246
256
  - app/assets/images/icons/map.svg
247
257
  - app/assets/images/icons/maximize-2.svg
248
258
  - app/assets/images/icons/maximize.svg
259
+ - app/assets/images/icons/meh.svg
249
260
  - app/assets/images/icons/menu.svg
250
261
  - app/assets/images/icons/message-circle.svg
251
262
  - app/assets/images/icons/message-square.svg
@@ -260,6 +271,7 @@ files:
260
271
  - app/assets/images/icons/moon.svg
261
272
  - app/assets/images/icons/more-horizontal.svg
262
273
  - app/assets/images/icons/more-vertical.svg
274
+ - app/assets/images/icons/mouse-pointer.svg
263
275
  - app/assets/images/icons/move.svg
264
276
  - app/assets/images/icons/music.svg
265
277
  - app/assets/images/icons/navigation-2.svg
@@ -269,6 +281,7 @@ files:
269
281
  - app/assets/images/icons/paperclip.svg
270
282
  - app/assets/images/icons/pause-circle.svg
271
283
  - app/assets/images/icons/pause.svg
284
+ - app/assets/images/icons/pen-tool.svg
272
285
  - app/assets/images/icons/percent.svg
273
286
  - app/assets/images/icons/phone-call.svg
274
287
  - app/assets/images/icons/phone-forwarded.svg
@@ -314,6 +327,7 @@ files:
314
327
  - app/assets/images/icons/slash.svg
315
328
  - app/assets/images/icons/sliders.svg
316
329
  - app/assets/images/icons/smartphone.svg
330
+ - app/assets/images/icons/smile.svg
317
331
  - app/assets/images/icons/speaker.svg
318
332
  - app/assets/images/icons/spinner.svg
319
333
  - app/assets/images/icons/square.svg
@@ -331,13 +345,16 @@ files:
331
345
  - app/assets/images/icons/thumbs-up.svg
332
346
  - app/assets/images/icons/toggle-left.svg
333
347
  - app/assets/images/icons/toggle-right.svg
348
+ - app/assets/images/icons/tool.svg
334
349
  - app/assets/images/icons/trash-2.svg
335
350
  - app/assets/images/icons/trash.svg
351
+ - app/assets/images/icons/trello.svg
336
352
  - app/assets/images/icons/trending-down.svg
337
353
  - app/assets/images/icons/trending-up.svg
338
354
  - app/assets/images/icons/triangle.svg
339
355
  - app/assets/images/icons/truck.svg
340
356
  - app/assets/images/icons/tv.svg
357
+ - app/assets/images/icons/twitch.svg
341
358
  - app/assets/images/icons/twitter.svg
342
359
  - app/assets/images/icons/type.svg
343
360
  - app/assets/images/icons/umbrella.svg
@@ -363,8 +380,10 @@ files:
363
380
  - app/assets/images/icons/wifi.svg
364
381
  - app/assets/images/icons/wind.svg
365
382
  - app/assets/images/icons/x-circle.svg
383
+ - app/assets/images/icons/x-octagon.svg
366
384
  - app/assets/images/icons/x-square.svg
367
385
  - app/assets/images/icons/x.svg
386
+ - app/assets/images/icons/youtube.svg
368
387
  - app/assets/images/icons/zap-off.svg
369
388
  - app/assets/images/icons/zap.svg
370
389
  - app/assets/images/icons/zoom-in.svg
@@ -389,6 +408,7 @@ files:
389
408
  - app/assets/javascripts/effective_datetime/input.js
390
409
  - app/assets/javascripts/effective_datetime/overrides.js.coffee
391
410
  - app/assets/javascripts/effective_datetime/turbolinks.js.coffee
411
+ - app/assets/javascripts/effective_editor/image-drop-and-paste.js
392
412
  - app/assets/javascripts/effective_editor/image-resize.js
393
413
  - app/assets/javascripts/effective_editor/initialize.js.coffee
394
414
  - app/assets/javascripts/effective_editor/input.js
@@ -589,6 +609,7 @@ files:
589
609
  - app/models/effective/form_inputs/file_field.rb
590
610
  - app/models/effective/form_inputs/float_field.rb
591
611
  - app/models/effective/form_inputs/form_group.rb
612
+ - app/models/effective/form_inputs/hidden_field.rb
592
613
  - app/models/effective/form_inputs/integer_field.rb
593
614
  - app/models/effective/form_inputs/number_field.rb
594
615
  - app/models/effective/form_inputs/number_text_field.rb