effective_bootstrap 0.7.0 → 0.8.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.
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