archangel 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (589) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +5 -1
  3. data/.erb-lint.yml +23 -0
  4. data/.eslintrc.json +1 -1
  5. data/.nvmrc +1 -1
  6. data/.rubocop.yml +7 -1
  7. data/.rubocop_exclude.yml +0 -1
  8. data/.sass-lint.yml +8 -0
  9. data/.travis.yml +13 -5
  10. data/Gemfile +19 -13
  11. data/README.md +10 -6
  12. data/app/assets/javascripts/archangel/input/datetimepicker.js +31 -77
  13. data/app/assets/javascripts/archangel/input/meta_keywords.js +0 -12
  14. data/app/assets/javascripts/archangel/input/wysiwyg.js.erb +51 -36
  15. data/app/assets/javascripts/archangel/object/flash.js +11 -8
  16. data/app/assets/javascripts/archangel/object/routes/backend.js +10 -10
  17. data/app/controllers/archangel/application_controller.rb +23 -13
  18. data/app/controllers/archangel/auth/invitations_controller.rb +22 -0
  19. data/app/controllers/archangel/auth/registrations_controller.rb +7 -3
  20. data/app/controllers/archangel/auth_controller.rb +8 -3
  21. data/app/controllers/archangel/backend/assets_controller.rb +9 -11
  22. data/app/controllers/archangel/backend/collections_controller.rb +3 -3
  23. data/app/controllers/archangel/backend/dashboards_controller.rb +1 -1
  24. data/app/controllers/archangel/backend/designs_controller.rb +43 -0
  25. data/app/controllers/archangel/backend/entries_controller.rb +25 -40
  26. data/app/controllers/archangel/backend/pages_controller.rb +7 -5
  27. data/app/controllers/archangel/backend/profiles_controller.rb +3 -2
  28. data/app/controllers/archangel/backend/sites_controller.rb +8 -14
  29. data/app/controllers/archangel/backend/users_controller.rb +6 -11
  30. data/app/controllers/archangel/backend/widgets_controller.rb +3 -3
  31. data/app/controllers/archangel/backend_controller.rb +6 -4
  32. data/app/controllers/archangel/frontend/homepages_controller.rb +33 -0
  33. data/app/controllers/archangel/frontend/pages_controller.rb +32 -43
  34. data/app/controllers/archangel/frontend_controller.rb +25 -1
  35. data/app/controllers/concerns/archangel/controllers/authenticatable_concern.rb +19 -0
  36. data/app/controllers/concerns/archangel/controllers/authorizable_concern.rb +19 -0
  37. data/app/controllers/concerns/archangel/controllers/metatagable_concern.rb +45 -0
  38. data/app/controllers/concerns/archangel/controllers/paginatable_concern.rb +43 -0
  39. data/app/controllers/concerns/archangel/controllers/resourceful_concern.rb +63 -26
  40. data/app/controllers/concerns/archangel/controllers/skip_authorizable_concern.rb +19 -0
  41. data/app/controllers/concerns/archangel/controllers/themable_concern.rb +34 -0
  42. data/app/controllers/concerns/archangel/helpers/actionable_concern.rb +76 -0
  43. data/app/helpers/archangel/application_helper.rb +35 -1
  44. data/app/helpers/archangel/backend/metatags_helper.rb +52 -0
  45. data/app/models/archangel/asset.rb +1 -1
  46. data/app/models/archangel/collection.rb +4 -7
  47. data/app/models/archangel/{template.rb → design.rb} +5 -13
  48. data/app/models/archangel/entry.rb +8 -28
  49. data/app/models/archangel/field.rb +1 -1
  50. data/app/models/archangel/page.rb +12 -48
  51. data/app/models/archangel/site.rb +17 -11
  52. data/app/models/archangel/user.rb +14 -7
  53. data/app/models/archangel/widget.rb +4 -4
  54. data/app/models/concerns/archangel/models/entry_validatable_concern.rb +74 -0
  55. data/app/models/concerns/archangel/models/metatagable_concern.rb +22 -0
  56. data/app/models/concerns/archangel/models/publishable_concern.rb +57 -0
  57. data/app/{helpers/archangel/auth_helper.rb → policies/archangel/design_policy.rb} +2 -2
  58. data/app/policies/archangel/site_policy.rb +0 -9
  59. data/app/services/archangel/{template_render_service.rb → design_render_service.rb} +3 -3
  60. data/app/services/archangel/render_service.rb +1 -1
  61. data/app/themes/default/assets/javascripts/default/auth.js +10 -13
  62. data/app/themes/default/assets/javascripts/default/backend.js +16 -37
  63. data/app/themes/default/assets/javascripts/default/backend/archangel.js +25 -0
  64. data/app/themes/default/assets/javascripts/default/backend/entries/sorting.js +37 -0
  65. data/app/themes/default/assets/javascripts/default/backend/misc/metatags.js +16 -0
  66. data/app/themes/default/assets/javascripts/default/common/flash.js +4 -43
  67. data/app/themes/default/assets/javascripts/default/frontend.js +11 -13
  68. data/app/themes/default/assets/stylesheets/default/_theme.scss +13 -0
  69. data/app/themes/default/assets/stylesheets/default/_variables.scss +113 -0
  70. data/app/themes/default/assets/stylesheets/default/auth.css +15 -13
  71. data/app/themes/default/assets/stylesheets/default/auth/_flash.scss +9 -0
  72. data/app/themes/default/assets/stylesheets/default/auth/default.scss +7 -0
  73. data/app/themes/default/assets/stylesheets/default/backend.css +10 -9
  74. data/app/themes/default/assets/stylesheets/default/backend/_entries.scss +25 -0
  75. data/app/themes/default/assets/stylesheets/default/backend/_flash.scss +19 -0
  76. data/app/themes/default/assets/stylesheets/default/backend/_footer.scss +15 -0
  77. data/app/themes/default/assets/stylesheets/default/backend/_global.scss +22 -0
  78. data/app/themes/default/assets/stylesheets/default/backend/_sidebar.scss +60 -0
  79. data/app/themes/default/assets/stylesheets/default/backend/_tables.scss +18 -0
  80. data/app/themes/default/assets/stylesheets/default/backend/_top.scss +25 -0
  81. data/app/themes/default/assets/stylesheets/default/backend/default.scss +16 -0
  82. data/app/themes/default/assets/stylesheets/default/common/_borders.scss +7 -0
  83. data/app/themes/default/assets/stylesheets/default/common/_cards.scss +15 -0
  84. data/app/themes/default/assets/stylesheets/default/common/_forms.scss +5 -0
  85. data/app/themes/default/assets/stylesheets/default/common/_global.scss +8 -0
  86. data/app/themes/default/assets/stylesheets/default/common/_mixins.scss +38 -0
  87. data/app/themes/default/assets/stylesheets/default/common/_navbar.scss +90 -0
  88. data/app/themes/default/assets/stylesheets/default/frontend.css +15 -13
  89. data/app/themes/default/assets/stylesheets/default/frontend/default.scss +5 -0
  90. data/app/themes/default/views/layouts/auth.html.erb +10 -8
  91. data/app/themes/default/views/layouts/backend.html.erb +16 -9
  92. data/app/themes/default/views/layouts/backend/_footer.html.erb +10 -6
  93. data/app/themes/default/views/layouts/backend/_header.html.erb +28 -24
  94. data/app/themes/default/views/layouts/backend/_sidebar.html.erb +65 -45
  95. data/app/themes/default/views/layouts/frontend.html.erb +20 -0
  96. data/app/views/archangel/backend/assets/_asset.html.erb +14 -7
  97. data/app/views/archangel/backend/assets/_buttons.html.erb +7 -5
  98. data/app/views/archangel/backend/assets/_form.html.erb +1 -1
  99. data/app/views/archangel/backend/assets/edit.html.erb +8 -14
  100. data/app/views/archangel/backend/assets/index.html.erb +36 -44
  101. data/app/views/archangel/backend/assets/new.html.erb +8 -14
  102. data/app/views/archangel/backend/assets/show.html.erb +33 -39
  103. data/app/views/archangel/backend/collections/_buttons.html.erb +8 -6
  104. data/app/views/archangel/backend/collections/_collection.html.erb +5 -4
  105. data/app/views/archangel/backend/collections/_form.html.erb +1 -1
  106. data/app/views/archangel/backend/collections/edit.html.erb +8 -14
  107. data/app/views/archangel/backend/collections/index.html.erb +34 -42
  108. data/app/views/archangel/backend/collections/new.html.erb +8 -14
  109. data/app/views/archangel/backend/collections/show.html.erb +21 -27
  110. data/app/views/archangel/backend/dashboards/show.html.erb +7 -17
  111. data/app/views/archangel/backend/designs/_buttons.html.erb +20 -0
  112. data/app/views/archangel/backend/designs/_design.html.erb +11 -0
  113. data/app/views/archangel/backend/{templates → designs}/_form.html.erb +2 -2
  114. data/app/views/archangel/backend/designs/edit.html.erb +15 -0
  115. data/app/views/archangel/backend/designs/index.html.erb +43 -0
  116. data/app/views/archangel/backend/designs/new.html.erb +15 -0
  117. data/app/views/archangel/backend/designs/show.html.erb +23 -0
  118. data/app/views/archangel/backend/entries/_buttons.html.erb +8 -6
  119. data/app/views/archangel/backend/entries/_entry.html.erb +17 -9
  120. data/app/views/archangel/backend/entries/_form.html.erb +6 -11
  121. data/app/views/archangel/backend/entries/edit.html.erb +8 -14
  122. data/app/views/archangel/backend/entries/index.html.erb +39 -47
  123. data/app/views/archangel/backend/entries/new.html.erb +8 -14
  124. data/app/views/archangel/backend/entries/show.html.erb +14 -20
  125. data/app/views/archangel/backend/pages/_buttons.html.erb +7 -5
  126. data/app/views/archangel/backend/pages/_form.html.erb +4 -3
  127. data/app/views/archangel/backend/pages/_metatag_fields.html.erb +3 -3
  128. data/app/views/archangel/backend/pages/_page.html.erb +13 -8
  129. data/app/views/archangel/backend/pages/edit.html.erb +8 -14
  130. data/app/views/archangel/backend/pages/index.html.erb +35 -43
  131. data/app/views/archangel/backend/pages/new.html.erb +8 -14
  132. data/app/views/archangel/backend/pages/show.html.erb +15 -31
  133. data/app/views/archangel/backend/profiles/_buttons.html.erb +7 -2
  134. data/app/views/archangel/backend/profiles/_form.html.erb +4 -2
  135. data/app/views/archangel/backend/profiles/edit.html.erb +8 -14
  136. data/app/views/archangel/backend/profiles/show.html.erb +20 -26
  137. data/app/views/archangel/backend/sites/_buttons.html.erb +2 -2
  138. data/app/views/archangel/backend/sites/_form.html.erb +10 -2
  139. data/app/views/archangel/backend/sites/_metatag_fields.html.erb +3 -3
  140. data/app/views/archangel/backend/sites/edit.html.erb +8 -14
  141. data/app/views/archangel/backend/sites/show.html.erb +22 -28
  142. data/app/views/archangel/backend/users/_buttons.html.erb +7 -5
  143. data/app/views/archangel/backend/users/_form.html.erb +1 -1
  144. data/app/views/archangel/backend/users/_user.html.erb +10 -6
  145. data/app/views/archangel/backend/users/edit.html.erb +8 -14
  146. data/app/views/archangel/backend/users/index.html.erb +35 -43
  147. data/app/views/archangel/backend/users/new.html.erb +8 -14
  148. data/app/views/archangel/backend/users/show.html.erb +16 -27
  149. data/app/views/archangel/backend/widgets/_buttons.html.erb +7 -5
  150. data/app/views/archangel/backend/widgets/_form.html.erb +2 -2
  151. data/app/views/archangel/backend/widgets/_widget.html.erb +5 -4
  152. data/app/views/archangel/backend/widgets/edit.html.erb +8 -14
  153. data/app/views/archangel/backend/widgets/index.html.erb +34 -42
  154. data/app/views/archangel/backend/widgets/new.html.erb +8 -14
  155. data/app/views/archangel/backend/widgets/show.html.erb +20 -31
  156. data/app/views/archangel/frontend/pages/show.json.jbuilder +4 -3
  157. data/app/views/archangel/shared/_flash_messages.html.erb +5 -2
  158. data/app/views/devise/confirmations/new.html.erb +10 -8
  159. data/app/views/devise/invitations/edit.html.erb +17 -0
  160. data/app/views/devise/invitations/new.html.erb +15 -0
  161. data/app/views/devise/mailer/invitation_instructions.html.erb +11 -0
  162. data/app/views/devise/mailer/invitation_instructions.text.erb +11 -0
  163. data/app/views/devise/passwords/edit.html.erb +14 -18
  164. data/app/views/devise/passwords/new.html.erb +8 -8
  165. data/app/views/devise/registrations/edit.html.erb +18 -28
  166. data/app/views/devise/registrations/new.html.erb +19 -31
  167. data/app/views/devise/sessions/new.html.erb +11 -19
  168. data/app/views/devise/shared/_error_messages.html.erb +15 -0
  169. data/app/views/devise/shared/_links.html.erb +19 -35
  170. data/app/views/devise/unlocks/new.html.erb +9 -8
  171. data/archangel.gemspec +12 -14
  172. data/config/initializers/devise.rb +1 -1
  173. data/config/initializers/simple_form.rb +18 -6
  174. data/config/initializers/simple_form_bootstrap.rb +520 -88
  175. data/config/locales/active_record.en.yml +14 -10
  176. data/config/locales/en.yml +10 -43
  177. data/config/locales/simple_form.en.yml +8 -7
  178. data/config/routes.rb +27 -40
  179. data/db/migrate/20190408164034_rename_archangel_pages_path_to_permalink.rb +5 -0
  180. data/db/migrate/20190417194514_add_settings_to_archangel_sites.rb +5 -0
  181. data/db/migrate/20190418150532_rename_archangel_templates_to_archangel_designs.rb +5 -0
  182. data/db/migrate/20190418150533_rename_archangel_pages_template_id_to_design_id.rb +5 -0
  183. data/db/migrate/20190418150534_rename_archangel_widgets_template_id_to_design_id.rb +5 -0
  184. data/db/migrate/20190421165525_rename_archangel_entries_available_at_to_published_at.rb +5 -0
  185. data/db/seeds.rb +41 -46
  186. data/docs/Developers.md +9 -7
  187. data/docs/Extension/Controllers.md +1 -1
  188. data/docs/Extension/Uploaders.md +1 -1
  189. data/lib/archangel.rb +2 -11
  190. data/lib/archangel/commands/base_command.rb +4 -8
  191. data/lib/archangel/commands/extension_command.rb +14 -14
  192. data/lib/archangel/commands/templates/common/Gemfile +24 -0
  193. data/lib/archangel/commands/templates/{extension → common}/Rakefile +1 -1
  194. data/lib/archangel/commands/templates/{extension → common}/bin/rails.tt +0 -0
  195. data/lib/archangel/commands/templates/{extension → common}/lib/%extension_name%.rb.tt +0 -0
  196. data/lib/archangel/commands/templates/{extension → common}/lib/%extension_name%/engine.rb.tt +0 -0
  197. data/lib/archangel/commands/templates/{extension → common}/lib/%extension_name%/version.rb.tt +0 -0
  198. data/lib/archangel/commands/templates/common/spec/rails_helper.rb.tt +0 -4
  199. data/lib/archangel/commands/templates/extension/lib/generators/%extension_name%/install/install_generator.rb.tt +10 -10
  200. data/lib/archangel/commands/templates/theme/README.md +2 -2
  201. data/lib/archangel/commands/templates/theme/app/themes/%theme_base_name%/config/locales/en.yml.tt +1 -1
  202. data/lib/archangel/commands/templates/theme/app/themes/%theme_base_name%/views/layouts/frontend.html.erb +20 -0
  203. data/lib/archangel/commands/templates/theme/theme.gemspec.tt +3 -3
  204. data/lib/archangel/commands/theme_command.rb +30 -27
  205. data/lib/archangel/config.rb +1 -2
  206. data/lib/archangel/constants/theme.rb +1 -1
  207. data/lib/archangel/engine.rb +3 -1
  208. data/lib/archangel/i18n.rb +5 -1
  209. data/lib/archangel/liquid/drop.rb +3 -45
  210. data/lib/archangel/liquid/drops/page_drop.rb +4 -4
  211. data/lib/archangel/liquid/drops/site_drop.rb +1 -0
  212. data/lib/archangel/liquid/tags/asset_tag.rb +4 -5
  213. data/lib/archangel/liquid/tags/collection_tag.rb +3 -5
  214. data/lib/archangel/liquid/tags/collectionfor_tag.rb +3 -4
  215. data/lib/archangel/liquid/tags/gist_tag.rb +3 -3
  216. data/lib/archangel/liquid/tags/noembed_tag.rb +1 -1
  217. data/lib/archangel/liquid/tags/vimeo_tag.rb +15 -9
  218. data/lib/archangel/liquid/tags/widget_tag.rb +9 -12
  219. data/lib/archangel/liquid/tags/youtube_tag.rb +44 -30
  220. data/lib/archangel/testing_support/factories/{archangel_templates.rb → archangel_designs.rb} +4 -4
  221. data/lib/archangel/testing_support/factories/archangel_entries.rb +5 -5
  222. data/lib/archangel/testing_support/factories/archangel_pages.rb +3 -3
  223. data/lib/archangel/testing_support/factories/archangel_users.rb +6 -0
  224. data/lib/archangel/testing_support/factories/archangel_widgets.rb +3 -3
  225. data/lib/archangel/testing_support/helpers/authorization_helpers.rb +5 -29
  226. data/lib/archangel/testing_support/helpers/fill_in_auth_form_helpers.rb +34 -0
  227. data/lib/archangel/testing_support/helpers/fill_in_form_helpers.rb +21 -0
  228. data/lib/archangel/testing_support/support/capybara.rb +0 -3
  229. data/lib/archangel/testing_support/support/shoulda.rb +0 -1
  230. data/lib/archangel/version.rb +5 -1
  231. data/lib/generators/archangel/install/install_generator.rb +15 -33
  232. data/lib/generators/archangel/install/templates/config/archangel.yml +0 -5
  233. data/lib/templates/erb/scaffold/_form.html.erb +2 -2
  234. data/package.json +5 -12
  235. data/spec/features/auth/invitation_spec.rb +86 -0
  236. data/spec/features/auth/log_in/attempts_spec.rb +50 -0
  237. data/spec/features/auth/log_in/locked_spec.rb +29 -0
  238. data/spec/features/auth/log_in/log_in_spec.rb +51 -0
  239. data/spec/features/auth/log_in/unconfirmed_spec.rb +22 -0
  240. data/spec/features/auth/log_out_spec.rb +11 -4
  241. data/spec/features/auth/password_reset_spec.rb +28 -0
  242. data/spec/features/auth/registration_spec.rb +28 -16
  243. data/spec/features/backend/assets/create_spec.rb +68 -0
  244. data/spec/features/backend/assets/delete_spec.rb +32 -0
  245. data/spec/features/backend/assets/listing_spec.rb +83 -0
  246. data/spec/features/backend/assets/show_spec.rb +57 -0
  247. data/spec/features/backend/collections/create_spec.rb +97 -0
  248. data/spec/features/backend/collections/delete_spec.rb +32 -0
  249. data/spec/features/backend/collections/listing_spec.rb +93 -0
  250. data/spec/features/backend/collections/show_spec.rb +43 -0
  251. data/spec/features/backend/dashboard/show_spec.rb +17 -0
  252. data/spec/features/backend/designs/create_spec.rb +76 -0
  253. data/spec/features/backend/designs/delete_spec.rb +32 -0
  254. data/spec/features/backend/designs/listing_spec.rb +77 -0
  255. data/spec/features/backend/designs/show_spec.rb +48 -0
  256. data/spec/features/backend/entries/create_spec.rb +98 -0
  257. data/spec/features/backend/entries/delete_spec.rb +35 -0
  258. data/spec/features/backend/entries/listing_sorting_spec.rb +32 -0
  259. data/spec/features/backend/entries/listing_spec.rb +100 -0
  260. data/spec/features/backend/entries/show_spec.rb +62 -0
  261. data/spec/features/backend/pages/create_metatags_spec.rb +59 -0
  262. data/spec/features/backend/pages/create_spec.rb +143 -0
  263. data/spec/features/backend/pages/delete_spec.rb +32 -0
  264. data/spec/features/backend/pages/liquid_tags_spec.rb +159 -0
  265. data/spec/features/backend/pages/listing_spec.rb +75 -0
  266. data/spec/features/backend/pages/show_spec.rb +47 -0
  267. data/spec/features/backend/profile/delete_spec.rb +41 -0
  268. data/spec/features/backend/profile/show_spec.rb +46 -0
  269. data/spec/features/backend/profile/update_spec.rb +144 -0
  270. data/spec/features/backend/site/show_spec.rb +46 -0
  271. data/spec/features/backend/site/update_spec.rb +46 -0
  272. data/spec/features/backend/site/update_with_metatags_spec.rb +45 -0
  273. data/spec/features/backend/users/create_spec.rb +90 -0
  274. data/spec/features/backend/users/delete_spec.rb +32 -0
  275. data/spec/features/backend/users/listing_spec.rb +69 -0
  276. data/spec/features/backend/users/show_spec.rb +87 -0
  277. data/spec/features/backend/users/update_spec.rb +49 -0
  278. data/spec/features/backend/widgets/create_spec.rb +111 -0
  279. data/spec/features/backend/widgets/delete_spec.rb +42 -0
  280. data/spec/features/backend/widgets/listing_spec.rb +89 -0
  281. data/spec/features/backend/widgets/show_spec.rb +47 -0
  282. data/spec/features/frontend/liquid/filters/link_to_spec.rb +49 -0
  283. data/spec/features/frontend/liquid/tags/asset_spec.rb +81 -0
  284. data/spec/features/frontend/liquid/tags/collection_tag_spec.rb +94 -0
  285. data/spec/features/frontend/liquid/tags/collectionfor_tag_spec.rb +159 -0
  286. data/spec/features/frontend/liquid/tags/gist_spec.rb +57 -0
  287. data/spec/features/frontend/liquid/tags/noembed_tag_spec.rb +106 -0
  288. data/spec/features/frontend/liquid/tags/vimeo_spec.rb +79 -0
  289. data/spec/features/frontend/liquid/tags/widget_spec.rb +40 -0
  290. data/spec/features/frontend/liquid/tags/youtube_spec.rb +89 -0
  291. data/spec/features/frontend/liquid/variables/current_page_spec.rb +74 -0
  292. data/spec/features/frontend/liquid/variables/page_spec.rb +58 -0
  293. data/spec/features/frontend/liquid/variables/site_spec.rb +46 -0
  294. data/spec/features/frontend/liquid/variables/unknown_spec.rb +19 -0
  295. data/spec/features/frontend/metatags/default_spec.rb +46 -0
  296. data/spec/features/frontend/metatags/page_spec.rb +58 -0
  297. data/spec/features/frontend/metatags/site_spec.rb +42 -0
  298. data/spec/fixtures/schemas/backend/assets/wysiwyg_error.json +11 -0
  299. data/spec/fixtures/schemas/backend/assets/wysiwyg_url.json +11 -0
  300. data/spec/fixtures/schemas/frontend/errors/not_found.json +11 -0
  301. data/spec/fixtures/schemas/frontend/pages/show.json +25 -0
  302. data/spec/requests/backend/assets_spec.rb +81 -0
  303. data/spec/requests/backend/designs_spec.rb +115 -0
  304. data/spec/requests/backend/entries_spec.rb +32 -0
  305. data/spec/requests/backend/pages_spec.rb +113 -0
  306. data/spec/requests/backend/site_spec.rb +65 -0
  307. data/spec/requests/backend/widgets_spec.rb +109 -0
  308. data/spec/requests/frontend/html/homepage_spec.rb +70 -0
  309. data/spec/requests/frontend/html/nested_page_spec.rb +97 -0
  310. data/spec/requests/frontend/html/page_spec.rb +78 -0
  311. data/spec/requests/frontend/json/homepage_spec.rb +80 -0
  312. data/spec/requests/frontend/json/nested_page_spec.rb +111 -0
  313. data/spec/requests/frontend/json/page_spec.rb +92 -0
  314. data/spec/support/helpers/ajax_helpers.rb +27 -0
  315. data/spec/support/helpers/json_response.rb +18 -0
  316. data/{lib/archangel/testing_support → spec/support}/matchers/have_meta.rb +0 -0
  317. data/{lib/archangel/testing_support → spec/support}/matchers/have_title.rb +0 -0
  318. data/spec/support/matchers/match_response_schema.rb +12 -0
  319. data/spec/support/missing_translation.rb +13 -0
  320. data/spec/support/selenium.rb +26 -0
  321. data/spec/support/timecop.rb +15 -0
  322. data/spec/unit/helpers/archangel/application_helper_spec.rb +65 -0
  323. data/spec/unit/helpers/archangel/flash_helper_spec.rb +41 -0
  324. data/spec/{inputs → unit/inputs}/archangel/date_picker_input_spec.rb +0 -0
  325. data/spec/{inputs → unit/inputs}/archangel/date_time_picker_input_spec.rb +0 -0
  326. data/spec/{inputs → unit/inputs}/archangel/field_classification_input_spec.rb +0 -0
  327. data/spec/{inputs → unit/inputs}/archangel/language_input_spec.rb +0 -0
  328. data/spec/{inputs → unit/inputs}/archangel/meta_keywords_input_spec.rb +0 -0
  329. data/spec/{inputs → unit/inputs}/archangel/role_input_spec.rb +0 -0
  330. data/spec/{inputs → unit/inputs}/archangel/theme_input_spec.rb +0 -0
  331. data/spec/{inputs → unit/inputs}/archangel/time_picker_input_spec.rb +0 -0
  332. data/spec/{inputs → unit/inputs}/archangel/wysiwyg_input_spec.rb +0 -0
  333. data/spec/{jobs → unit/jobs}/archangel/application_job_spec.rb +0 -0
  334. data/spec/{lib → unit/lib}/archangel/commands/extension_command_spec.rb +11 -6
  335. data/spec/{lib → unit/lib}/archangel/commands/theme_command_spec.rb +11 -6
  336. data/spec/{lib → unit/lib}/tasks/archangel/version_task_spec.rb +0 -0
  337. data/spec/{mailers → unit/mailers}/archangel/application_mailer_spec.rb +0 -0
  338. data/spec/{models → unit/models}/archangel/asset_spec.rb +7 -15
  339. data/spec/{models → unit/models}/archangel/collection_spec.rb +3 -16
  340. data/spec/unit/models/archangel/design_spec.rb +22 -0
  341. data/spec/unit/models/archangel/entry_spec.rb +104 -0
  342. data/spec/{models → unit/models}/archangel/field_spec.rb +5 -7
  343. data/spec/{models → unit/models}/archangel/metatag_spec.rb +1 -5
  344. data/spec/{models → unit/models}/archangel/page_spec.rb +46 -44
  345. data/spec/{models → unit/models}/archangel/site_spec.rb +15 -8
  346. data/spec/{models → unit/models}/archangel/user_spec.rb +29 -39
  347. data/spec/{models → unit/models}/archangel/widget_spec.rb +5 -20
  348. data/spec/{policies → unit/policies}/archangel/asset_policy_spec.rb +0 -0
  349. data/spec/{policies → unit/policies}/archangel/collection_policy_spec.rb +0 -0
  350. data/spec/{policies/archangel/template_policy_spec.rb → unit/policies/archangel/design_policy_spec.rb} +2 -2
  351. data/spec/{policies → unit/policies}/archangel/entries_policy_spec.rb +0 -0
  352. data/spec/{policies → unit/policies}/archangel/page_policy_spec.rb +0 -0
  353. data/spec/{policies → unit/policies}/archangel/site_policy_spec.rb +2 -6
  354. data/spec/{policies → unit/policies}/archangel/user_policy_spec.rb +0 -0
  355. data/spec/{policies → unit/policies}/archangel/widget_policy_spec.rb +0 -0
  356. data/spec/unit/services/archangel/design_render_service_spec.rb +46 -0
  357. data/spec/unit/services/archangel/render_service_spec.rb +43 -0
  358. data/spec/{uploaders → unit/uploaders}/archangel/application_uploader_spec.rb +4 -2
  359. data/spec/{uploaders → unit/uploaders}/archangel/asset_uploader_spec.rb +5 -3
  360. data/vendor/assets/javascripts/flatpickr/flatpickr.js +2 -0
  361. data/vendor/assets/javascripts/jodit/jodit.js +9 -0
  362. data/vendor/assets/javascripts/select2/select2.js +5891 -0
  363. data/vendor/assets/javascripts/sortable/sortable.js +2 -2
  364. data/vendor/assets/stylesheets/flatpickr/flatpickr.css +13 -0
  365. data/vendor/assets/stylesheets/jodit/jodit.css +296 -0
  366. data/vendor/assets/stylesheets/select2/select2.css +480 -0
  367. metadata +227 -322
  368. data/.editorconfig +0 -19
  369. data/.hound.yml +0 -21
  370. data/.jshintignore +0 -5
  371. data/.jshintrc +0 -30
  372. data/.rubocop_todo.yml +0 -3
  373. data/.scss-lint.yml +0 -22
  374. data/app/assets/javascripts/archangel/object/translate/datetimepicker.js.erb +0 -41
  375. data/app/assets/javascripts/archangel/object/translate/sortable.js.erb +0 -10
  376. data/app/assets/javascripts/archangel/sortable.js +0 -72
  377. data/app/controllers/archangel/backend/templates_controller.rb +0 -43
  378. data/app/controllers/concerns/archangel/actionable_concern.rb +0 -161
  379. data/app/controllers/concerns/archangel/authenticatable_concern.rb +0 -14
  380. data/app/controllers/concerns/archangel/authorizable_concern.rb +0 -14
  381. data/app/controllers/concerns/archangel/controllers/backend/resourceful_concern.rb +0 -28
  382. data/app/controllers/concerns/archangel/paginatable_concern.rb +0 -36
  383. data/app/controllers/concerns/archangel/seoable_concern.rb +0 -40
  384. data/app/controllers/concerns/archangel/skip_authorizable_concern.rb +0 -14
  385. data/app/controllers/concerns/archangel/themable_concern.rb +0 -27
  386. data/app/helpers/archangel/backend/assets_helper.rb +0 -14
  387. data/app/helpers/archangel/backend/collections_helper.rb +0 -14
  388. data/app/helpers/archangel/backend/dashboards_helper.rb +0 -14
  389. data/app/helpers/archangel/backend/entries_helper.rb +0 -14
  390. data/app/helpers/archangel/backend/pages_helper.rb +0 -14
  391. data/app/helpers/archangel/backend/sites_helper.rb +0 -14
  392. data/app/helpers/archangel/backend/templates_helper.rb +0 -14
  393. data/app/helpers/archangel/backend/users_helper.rb +0 -14
  394. data/app/helpers/archangel/backend/widgets_helper.rb +0 -14
  395. data/app/helpers/archangel/backend_helper.rb +0 -9
  396. data/app/helpers/archangel/frontend/pages_helper.rb +0 -14
  397. data/app/helpers/archangel/frontend_helper.rb +0 -9
  398. data/app/policies/archangel/template_policy.rb +0 -9
  399. data/app/themes/default/assets/javascripts/default/backend/core.js +0 -76
  400. data/app/themes/default/assets/javascripts/default/backend/templates.js +0 -26
  401. data/app/themes/default/assets/javascripts/default/common/cards.js +0 -28
  402. data/app/themes/default/assets/stylesheets/default/auth/core.scss +0 -20
  403. data/app/themes/default/assets/stylesheets/default/backend/bootstrap/_tables.scss +0 -40
  404. data/app/themes/default/assets/stylesheets/default/backend/core.scss +0 -23
  405. data/app/themes/default/assets/stylesheets/default/common/_bootstrap.scss +0 -49
  406. data/app/themes/default/assets/stylesheets/default/common/_selectize.scss +0 -348
  407. data/app/themes/default/assets/stylesheets/default/common/_variables.scss +0 -82
  408. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_animate.scss +0 -27
  409. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_aside.scss +0 -67
  410. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_avatars.scss +0 -42
  411. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_badge.scss +0 -3
  412. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_breadcrumb-menu.scss +0 -36
  413. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_breadcrumb.scss +0 -4
  414. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_buttons.scss +0 -408
  415. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_callout.scss +0 -58
  416. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_card.scss +0 -199
  417. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_charts.scss +0 -9
  418. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_dropdown-menu-right.scss +0 -8
  419. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_dropdown.scss +0 -70
  420. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_footer.scss +0 -9
  421. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_forms.scss +0 -4
  422. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_grid.scss +0 -15
  423. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_input-group.scss +0 -5
  424. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_layout.scss +0 -390
  425. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_loading.scss +0 -128
  426. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_mixins.scss +0 -1
  427. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_mobile.scss +0 -0
  428. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_modal.scss +0 -12
  429. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_nav.scss +0 -39
  430. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_navbar.scss +0 -122
  431. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_others.scss +0 -4
  432. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_progress.scss +0 -15
  433. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_rtl.scss +0 -287
  434. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_sidebar.scss +0 -462
  435. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_switches.scss +0 -286
  436. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_tables.scss +0 -20
  437. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_temp.scss +0 -39
  438. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_typography.scss +0 -36
  439. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_utilities.scss +0 -3
  440. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_variables.scss +0 -208
  441. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_widgets.scss +0 -251
  442. data/app/themes/default/assets/stylesheets/default/common/bootstrap/mixins/_all.scss +0 -117
  443. data/app/themes/default/assets/stylesheets/default/common/bootstrap/utilities/_background.scss +0 -20
  444. data/app/themes/default/assets/stylesheets/default/common/bootstrap/utilities/_borders.scss +0 -17
  445. data/app/themes/default/assets/stylesheets/default/common/bootstrap/utilities/_display.scss +0 -14
  446. data/app/themes/default/assets/stylesheets/default/frontend/core.scss +0 -20
  447. data/app/themes/default/views/layouts/frontend.liquid +0 -22
  448. data/app/views/archangel/backend/dashboards/_buttons.html.erb +0 -3
  449. data/app/views/archangel/backend/sites/_additional_colors.html.erb +0 -49
  450. data/app/views/archangel/backend/sites/_alerts.html.erb +0 -130
  451. data/app/views/archangel/backend/sites/_badge.html.erb +0 -99
  452. data/app/views/archangel/backend/sites/_button.html.erb +0 -243
  453. data/app/views/archangel/backend/sites/_buttons_group.html.erb +0 -230
  454. data/app/views/archangel/backend/sites/_cards.html.erb +0 -441
  455. data/app/views/archangel/backend/sites/_carousel.html.erb +0 -159
  456. data/app/views/archangel/backend/sites/_colors.html.erb +0 -41
  457. data/app/views/archangel/backend/sites/_display_headings.html.erb +0 -41
  458. data/app/views/archangel/backend/sites/_dl.html.erb +0 -38
  459. data/app/views/archangel/backend/sites/_dropdowns.html.erb +0 -475
  460. data/app/views/archangel/backend/sites/_forms.html.erb +0 -1176
  461. data/app/views/archangel/backend/sites/_grays.html.erb +0 -21
  462. data/app/views/archangel/backend/sites/_headings.html.erb +0 -21
  463. data/app/views/archangel/backend/sites/_inline_text.html.erb +0 -45
  464. data/app/views/archangel/backend/sites/_jumbotron.html.erb +0 -45
  465. data/app/views/archangel/backend/sites/_list_group.html.erb +0 -254
  466. data/app/views/archangel/backend/sites/_modals.html.erb +0 -41
  467. data/app/views/archangel/backend/sites/_navs.html.erb +0 -389
  468. data/app/views/archangel/backend/sites/_pagination.html.erb +0 -160
  469. data/app/views/archangel/backend/sites/_social_buttons.html.erb +0 -746
  470. data/app/views/archangel/backend/sites/_tables.html.erb +0 -372
  471. data/app/views/archangel/backend/sites/sample.html.erb +0 -38
  472. data/app/views/archangel/backend/templates/_buttons.html.erb +0 -18
  473. data/app/views/archangel/backend/templates/_template.html.erb +0 -10
  474. data/app/views/archangel/backend/templates/edit.html.erb +0 -21
  475. data/app/views/archangel/backend/templates/index.html.erb +0 -49
  476. data/app/views/archangel/backend/templates/new.html.erb +0 -21
  477. data/app/views/archangel/backend/templates/show.html.erb +0 -34
  478. data/config/initializers/liquid.rb +0 -4
  479. data/lib/archangel/commands/templates/common/.editorconfig +0 -19
  480. data/lib/archangel/commands/templates/common/.rubocop.yml +0 -32
  481. data/lib/archangel/commands/templates/extension/Gemfile +0 -27
  482. data/lib/archangel/commands/templates/extension/app/assets/javascripts/archangel/auth/%extension_name%.js.tt +0 -3
  483. data/lib/archangel/commands/templates/extension/app/assets/javascripts/archangel/backend/%extension_name%.js.tt +0 -3
  484. data/lib/archangel/commands/templates/extension/app/assets/javascripts/archangel/frontend/%extension_name%.js.tt +0 -3
  485. data/lib/archangel/commands/templates/extension/app/assets/stylesheets/archangel/auth/%extension_name%.css.tt +0 -5
  486. data/lib/archangel/commands/templates/extension/app/assets/stylesheets/archangel/backend/%extension_name%.css.tt +0 -5
  487. data/lib/archangel/commands/templates/extension/app/assets/stylesheets/archangel/frontend/%extension_name%.css.tt +0 -5
  488. data/lib/archangel/commands/templates/theme/Gemfile +0 -27
  489. data/lib/archangel/commands/templates/theme/Rakefile +0 -29
  490. data/lib/archangel/commands/templates/theme/app/themes/%theme_base_name%/assets/javascripts/%theme_base_name%/auth.js +0 -2
  491. data/lib/archangel/commands/templates/theme/app/themes/%theme_base_name%/assets/javascripts/%theme_base_name%/backend.js +0 -2
  492. data/lib/archangel/commands/templates/theme/app/themes/%theme_base_name%/assets/stylesheets/%theme_base_name%/auth.css +0 -4
  493. data/lib/archangel/commands/templates/theme/app/themes/%theme_base_name%/assets/stylesheets/%theme_base_name%/backend.css +0 -4
  494. data/lib/archangel/commands/templates/theme/app/themes/%theme_base_name%/views/layouts/frontend.liquid +0 -18
  495. data/lib/archangel/commands/templates/theme/bin/rails.tt +0 -11
  496. data/lib/archangel/commands/templates/theme/lib/%theme_name%.rb.tt +0 -9
  497. data/lib/archangel/commands/templates/theme/lib/%theme_name%/engine.rb.tt +0 -29
  498. data/lib/archangel/commands/templates/theme/lib/%theme_name%/version.rb.tt +0 -5
  499. data/lib/archangel/liquid/tags/csrf_meta_tags_tag.rb +0 -29
  500. data/lib/archangel/liquid/tags/locale_tag.rb +0 -28
  501. data/lib/archangel/liquid/tags/meta_tags_tag.rb +0 -31
  502. data/lib/archangel/liquid/tags/text_direction_tag.rb +0 -29
  503. data/lib/archangel/liquid/tags/theme_javascript_tag.rb +0 -31
  504. data/lib/archangel/liquid/tags/theme_stylesheet_tag.rb +0 -31
  505. data/lib/archangel/liquid_view.rb +0 -68
  506. data/lib/archangel/testing_support/context/view_controller_context.rb +0 -55
  507. data/lib/archangel/testing_support/helpers/controller_helpers.rb +0 -20
  508. data/lib/archangel/testing_support/helpers/form_helpers.rb +0 -18
  509. data/lib/archangel/testing_support/helpers/routing_helpers.rb +0 -22
  510. data/lib/archangel/testing_support/support/controller.rb +0 -11
  511. data/lib/archangel/testing_support/support/liquid_filters.rb +0 -23
  512. data/lib/archangel/testing_support/support/liquid_tags.rb +0 -23
  513. data/lib/archangel/testing_support/support/verify_partial_doubles.rb +0 -21
  514. data/spec/controllers/archangel/application_controller_spec.rb +0 -183
  515. data/spec/controllers/archangel/auth/registrations_controller_spec.rb +0 -10
  516. data/spec/controllers/archangel/auth_controller_spec.rb +0 -8
  517. data/spec/controllers/archangel/backend/assets_controller_spec.rb +0 -226
  518. data/spec/controllers/archangel/backend/collections_controller_spec.rb +0 -252
  519. data/spec/controllers/archangel/backend/dashboards_controller_spec.rb +0 -27
  520. data/spec/controllers/archangel/backend/entries_controller_spec.rb +0 -273
  521. data/spec/controllers/archangel/backend/pages_controller_spec.rb +0 -220
  522. data/spec/controllers/archangel/backend/profiles_controller_spec.rb +0 -115
  523. data/spec/controllers/archangel/backend/sites_controller_spec.rb +0 -121
  524. data/spec/controllers/archangel/backend/templates_controller_spec.rb +0 -190
  525. data/spec/controllers/archangel/backend/users_controller_spec.rb +0 -181
  526. data/spec/controllers/archangel/backend/widgets_controller_spec.rb +0 -190
  527. data/spec/controllers/archangel/backend_controller_spec.rb +0 -8
  528. data/spec/controllers/archangel/frontend/pages_controller_spec.rb +0 -51
  529. data/spec/controllers/archangel/frontend_controller_spec.rb +0 -8
  530. data/spec/controllers/concerns/archangel/controllers/backend/resourceful_concern_spec.rb +0 -90
  531. data/spec/features/auth/log_in_spec.rb +0 -126
  532. data/spec/features/backend/pages/duplicate_slugs_spec.rb +0 -41
  533. data/spec/features/frontend/liquid_drop_variables_spec.rb +0 -133
  534. data/spec/features/frontend/pages/homepage_redirect_spec.rb +0 -15
  535. data/spec/features/frontend/pages/metatags_spec.rb +0 -73
  536. data/spec/helpers/archangel/application_helper_spec.rb +0 -30
  537. data/spec/helpers/archangel/auth_helper_spec.rb +0 -8
  538. data/spec/helpers/archangel/backend/assets_helper_spec.rb +0 -10
  539. data/spec/helpers/archangel/backend/collections_helper_spec.rb +0 -10
  540. data/spec/helpers/archangel/backend/dashboards_helper_spec.rb +0 -10
  541. data/spec/helpers/archangel/backend/entries_helper_spec.rb +0 -10
  542. data/spec/helpers/archangel/backend/pages_helper_spec.rb +0 -10
  543. data/spec/helpers/archangel/backend/sites_helper_spec.rb +0 -10
  544. data/spec/helpers/archangel/backend/templates_helper_spec.rb +0 -10
  545. data/spec/helpers/archangel/backend/users_helper_spec.rb +0 -10
  546. data/spec/helpers/archangel/backend/widgets_helper_spec.rb +0 -10
  547. data/spec/helpers/archangel/backend_helper_spec.rb +0 -8
  548. data/spec/helpers/archangel/flash_helper_spec.rb +0 -47
  549. data/spec/helpers/archangel/frontend/pages_helper_spec.rb +0 -10
  550. data/spec/helpers/archangel/frontend_helper_spec.rb +0 -8
  551. data/spec/lib/archangel/liquid/drop_spec.rb +0 -10
  552. data/spec/lib/archangel/liquid/drops/page_drop_spec.rb +0 -69
  553. data/spec/lib/archangel/liquid/drops/site_drop_spec.rb +0 -63
  554. data/spec/lib/archangel/liquid/filters/link_to_filter_spec.rb +0 -59
  555. data/spec/lib/archangel/liquid/tags/application_tag_spec.rb +0 -12
  556. data/spec/lib/archangel/liquid/tags/asset_tag_spec.rb +0 -91
  557. data/spec/lib/archangel/liquid/tags/collection_tag_spec.rb +0 -104
  558. data/spec/lib/archangel/liquid/tags/collectionfor_tag_spec.rb +0 -163
  559. data/spec/lib/archangel/liquid/tags/csrf_meta_tags_tag_spec.rb +0 -33
  560. data/spec/lib/archangel/liquid/tags/gist_tag_spec.rb +0 -42
  561. data/spec/lib/archangel/liquid/tags/locale_tag_spec.rb +0 -22
  562. data/spec/lib/archangel/liquid/tags/meta_tags_tag_spec.rb +0 -24
  563. data/spec/lib/archangel/liquid/tags/noembed_tag_spec.rb +0 -76
  564. data/spec/lib/archangel/liquid/tags/text_direction_tag_spec.rb +0 -32
  565. data/spec/lib/archangel/liquid/tags/theme_javascript_tag_spec.rb +0 -26
  566. data/spec/lib/archangel/liquid/tags/theme_stylesheet_tag_spec.rb +0 -28
  567. data/spec/lib/archangel/liquid/tags/vimeo_tag_spec.rb +0 -39
  568. data/spec/lib/archangel/liquid/tags/widget_tag_spec.rb +0 -59
  569. data/spec/lib/archangel/liquid/tags/youtube_tag_spec.rb +0 -39
  570. data/spec/models/archangel/entry_spec.rb +0 -62
  571. data/spec/models/archangel/template_spec.rb +0 -45
  572. data/spec/policies/archangel/application_policy_spec.rb +0 -8
  573. data/spec/services/archangel/render_service_spec.rb +0 -37
  574. data/spec/services/archangel/template_render_service_spec.rb +0 -42
  575. data/spec/support/.keep +0 -0
  576. data/spec/uploaders/archangel/avatar_uploader_spec.rb +0 -50
  577. data/spec/uploaders/archangel/logo_uploader_spec.rb +0 -50
  578. data/vendor/assets/icons/trumbowyg/icons.svg +0 -1
  579. data/vendor/assets/javascripts/daterangepicker/daterangepicker.js +0 -1529
  580. data/vendor/assets/javascripts/trumbowyg/plugins/allowtagsfrompaste/trumbowyg.allowtagsfrompaste.js +0 -143
  581. data/vendor/assets/javascripts/trumbowyg/plugins/base64/trumbowyg.base64.js +0 -129
  582. data/vendor/assets/javascripts/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.js +0 -110
  583. data/vendor/assets/javascripts/trumbowyg/plugins/colors/trumbowyg.colors.js +0 -183
  584. data/vendor/assets/javascripts/trumbowyg/plugins/noembed/trumbowyg.noembed.js +0 -104
  585. data/vendor/assets/javascripts/trumbowyg/plugins/upload/trumbowyg.upload.js +0 -261
  586. data/vendor/assets/javascripts/trumbowyg/trumbowyg.js +0 -1765
  587. data/vendor/assets/stylesheets/daterangepicker/_daterangepicker.scss +0 -405
  588. data/vendor/assets/stylesheets/trumbowyg/_trumbowyg.scss +0 -831
  589. data/vendor/assets/stylesheets/trumbowyg/plugins/colors/_trumbowyg.colors.scss +0 -38
@@ -1,1176 +0,0 @@
1
- <div class="row">
2
- <div class="col-sm-6">
3
- <div class="card">
4
- <div class="card-header">
5
- <%= fa_icon("tint") %> Credit Card
6
-
7
- <small>Form</small>
8
- </div>
9
-
10
- <div class="card-body">
11
- <div class="row">
12
- <div class="col-sm-12">
13
- <div class="form-group">
14
- <label for="name">Name</label>
15
- <input class="form-control" id="name" placeholder="Enter your name" type="text">
16
- </div>
17
- </div>
18
- </div>
19
-
20
- <div class="row">
21
- <div class="col-sm-12">
22
- <div class="form-group">
23
- <label for="ccnumber">Credit Card Number</label>
24
- <input class="form-control" id="ccnumber" placeholder="0000 0000 0000 0000" type="text">
25
- </div>
26
- </div>
27
- </div>
28
-
29
- <div class="row">
30
- <div class="form-group col-sm-4">
31
- <label for="ccmonth">Month</label>
32
- <select class="form-control" id="ccmonth">
33
- <option>1</option>
34
- <option>2</option>
35
- <option>3</option>
36
- <option>4</option>
37
- <option>5</option>
38
- <option>6</option>
39
- <option>7</option>
40
- <option>8</option>
41
- <option>9</option>
42
- <option>10</option>
43
- <option>11</option>
44
- <option>12</option>
45
- </select>
46
- </div>
47
-
48
- <div class="form-group col-sm-4">
49
- <label for="ccyear">Year</label>
50
- <select class="form-control" id="ccyear">
51
- <option>2014</option>
52
- <option>2015</option>
53
- <option>2016</option>
54
- <option>2017</option>
55
- <option>2018</option>
56
- <option>2019</option>
57
- <option>2020</option>
58
- <option>2021</option>
59
- <option>2022</option>
60
- <option>2023</option>
61
- <option>2024</option>
62
- <option>2025</option>
63
- </select>
64
- </div>
65
-
66
- <div class="col-sm-4">
67
- <div class="form-group">
68
- <label for="cvv">CVV/CVC</label>
69
- <input class="form-control" id="cvv" placeholder="123" type="text">
70
- </div>
71
- </div>
72
- </div>
73
- </div>
74
- </div>
75
- </div>
76
-
77
- <div class="col-sm-6">
78
- <div class="card">
79
- <div class="card-header">
80
- <%= fa_icon("tint") %> Company
81
-
82
- <small>Form</small>
83
- </div>
84
-
85
- <div class="card-body">
86
- <div class="form-group">
87
- <label for="company">Company</label>
88
- <input class="form-control" id="company" placeholder="Enter your company name" type="text">
89
- </div>
90
- <div class="form-group">
91
- <label for="vat">VAT</label>
92
- <input class="form-control" id="vat" placeholder="PL1234567890" type="text">
93
- </div>
94
- <div class="form-group">
95
- <label for="street">Street</label>
96
- <input class="form-control" id="street" placeholder="Enter street name" type="text">
97
- </div>
98
-
99
- <div class="row">
100
- <div class="form-group col-sm-8">
101
- <label for="city">City</label>
102
- <input class="form-control" id="city" placeholder="Enter your city" type="text">
103
- </div>
104
- <div class="form-group col-sm-4">
105
- <label for="postal-code">Postal Code</label>
106
- <input class="form-control" id="postal-code" placeholder="Postal Code" type="text">
107
- </div>
108
- </div>
109
-
110
- <div class="form-group">
111
- <label for="country">Country</label>
112
- <input class="form-control" id="country" placeholder="Country name" type="text">
113
- </div>
114
- </div>
115
- </div>
116
- </div>
117
- </div>
118
-
119
- <div class="row">
120
- <div class="col-md-6">
121
- <div class="card">
122
- <div class="card-header">
123
- <%= fa_icon("tint") %> Basic Form
124
-
125
- Elements
126
- </div>
127
-
128
- <div class="card-body">
129
- <form action="" method="post" enctype="multipart/form-data" class="form-horizontal">
130
- <div class="form-group row">
131
- <label class="col-md-3 col-form-label">Static</label>
132
- <div class="col-md-9">
133
- <p class="form-control-static">Username</p>
134
- </div>
135
- </div>
136
- <div class="form-group row">
137
- <label class="col-md-3 col-form-label" for="text-input">Text Input</label>
138
- <div class="col-md-9">
139
- <input id="text-input" name="text-input" class="form-control" placeholder="Text" type="text">
140
- <span class="help-block">This is a help text</span>
141
- </div>
142
- </div>
143
- <div class="form-group row">
144
- <label class="col-md-3 col-form-label" for="email-input">Email Input</label>
145
- <div class="col-md-9">
146
- <input id="email-input" name="email-input" class="form-control" placeholder="Enter Email" type="email">
147
- <span class="help-block">Please enter your email</span>
148
- </div>
149
- </div>
150
- <div class="form-group row">
151
- <label class="col-md-3 col-form-label" for="password-input">Password</label>
152
- <div class="col-md-9">
153
- <input id="password-input" name="password-input" class="form-control" placeholder="Password" type="password">
154
- <span class="help-block">Please enter a complex password</span>
155
- </div>
156
- </div>
157
- <div class="form-group row">
158
- <label class="col-md-3 col-form-label" for="disabled-input">Disabled Input</label>
159
- <div class="col-md-9">
160
- <input id="disabled-input" name="disabled-input" class="form-control" placeholder="Disabled" disabled="" type="text">
161
- </div>
162
- </div>
163
- <div class="form-group row">
164
- <label class="col-md-3 col-form-label" for="textarea-input">Textarea</label>
165
- <div class="col-md-9">
166
- <textarea id="textarea-input" name="textarea-input" rows="9" class="form-control" placeholder="Content.."></textarea>
167
- </div>
168
- </div>
169
- <div class="form-group row">
170
- <label class="col-md-3 col-form-label" for="select1">Select</label>
171
- <div class="col-md-9">
172
- <select id="select1" name="select1" class="form-control">
173
- <option value="0">Please select</option>
174
- <option value="1">Option #1</option>
175
- <option value="2">Option #2</option>
176
- <option value="3">Option #3</option>
177
- </select>
178
- </div>
179
- </div>
180
- <div class="form-group row">
181
- <label class="col-md-3 col-form-label" for="select2">Select Large</label>
182
- <div class="col-md-9">
183
- <select id="select2" name="select2" class="form-control form-control-lg">
184
- <option value="0">Please select</option>
185
- <option value="1">Option #1</option>
186
- <option value="2">Option #2</option>
187
- <option value="3">Option #3</option>
188
- </select>
189
- </div>
190
- </div>
191
- <div class="form-group row">
192
- <label class="col-md-3 col-form-label" for="select3">Select Small</label>
193
- <div class="col-md-9">
194
- <select id="select3" name="select3" class="form-control form-control-sm">
195
- <option value="0">Please select</option>
196
- <option value="1">Option #1</option>
197
- <option value="2">Option #2</option>
198
- <option value="3">Option #3</option>
199
- </select>
200
- </div>
201
- </div>
202
- <div class="form-group row">
203
- <label class="col-md-3 col-form-label" for="disabledSelect">Disabled Select</label>
204
- <div class="col-md-9">
205
- <select id="disabledSelect" class="form-control" disabled="">
206
- <option value="0">Please select</option>
207
- <option value="1">Option #1</option>
208
- <option value="2">Option #2</option>
209
- <option value="3">Option #3</option>
210
- </select>
211
- </div>
212
- </div>
213
- <div class="form-group row">
214
- <label class="col-md-3 col-form-label" for="multiple-select">Multiple select</label>
215
- <div class="col-md-9">
216
- <select id="multiple-select" name="multiple-select" class="form-control" size="5" multiple="">
217
- <option value="1">Option #1</option>
218
- <option value="2">Option #2</option>
219
- <option value="3">Option #3</option>
220
- <option value="4">Option #4</option>
221
- <option value="5">Option #5</option>
222
- <option value="6">Option #6</option>
223
- <option value="7">Option #7</option>
224
- <option value="8">Option #8</option>
225
- <option value="9">Option #9</option>
226
- <option value="10">Option #10</option>
227
- </select>
228
- </div>
229
- </div>
230
- <div class="form-group row">
231
- <label class="col-md-3 col-form-label">Radios</label>
232
- <div class="col-md-9 col-form-label">
233
- <div class="form-check">
234
- <input class="form-check-input" value="radio1" id="radio1" name="radios" type="radio">
235
- <label class="form-check-label" for="radio1">
236
- Option 1
237
- </label>
238
- </div>
239
- <div class="form-check">
240
- <input class="form-check-input" value="radio2" id="radio2" name="radios" type="radio">
241
- <label class="form-check-label" for="radio2">
242
- Option 2
243
- </label>
244
- </div>
245
- <div class="form-check">
246
- <input class="form-check-input" value="radio2" id="radio3" name="radios" type="radio">
247
- <label class="form-check-label" for="radio3">
248
- Option 3
249
- </label>
250
- </div>
251
- </div>
252
- </div>
253
- <div class="form-group row">
254
- <label class="col-md-3 col-form-label">Inline Radios</label>
255
- <div class="col-md-9 col-form-label">
256
- <div class="form-check form-check-inline mr-1">
257
- <input class="form-check-input" id="inline-radio1" value="option1" name="inline-radios" type="radio">
258
- <label class="form-check-label" for="inline-radio1">One</label>
259
- </div>
260
- <div class="form-check form-check-inline mr-1">
261
- <input class="form-check-input" id="inline-radio2" value="option2" name="inline-radios" type="radio">
262
- <label class="form-check-label" for="inline-radio2">Two</label>
263
- </div>
264
- <div class="form-check form-check-inline mr-1">
265
- <input class="form-check-input" id="inline-radio3" value="option3" name="inline-radios" type="radio">
266
- <label class="form-check-label" for="inline-radio3">Three</label>
267
- </div>
268
- </div>
269
- </div>
270
- <div class="form-group row">
271
- <label class="col-md-3 col-form-label">Checkboxes</label>
272
- <div class="col-md-9 col-form-label">
273
- <div class="form-check checkbox">
274
- <input class="form-check-input" value="" id="check1" type="checkbox">
275
- <label class="form-check-label" for="check1">
276
- Option 1
277
- </label>
278
- </div>
279
- <div class="form-check checkbox">
280
- <input class="form-check-input" value="" id="check2" type="checkbox">
281
- <label class="form-check-label" for="check2">
282
- Option 2
283
- </label>
284
- </div>
285
- <div class="form-check checkbox">
286
- <input class="form-check-input" value="" id="check3" type="checkbox">
287
- <label class="form-check-label" for="check3">
288
- Option 3
289
- </label>
290
- </div>
291
- </div>
292
- </div>
293
- <div class="form-group row">
294
- <label class="col-md-3 col-form-label">Inline Checkboxes</label>
295
- <div class="col-md-9 col-form-label">
296
- <div class="form-check form-check-inline mr-1">
297
- <input class="form-check-input" id="inline-checkbox1" value="check1" type="checkbox">
298
- <label class="form-check-label" for="inline-checkbox1">One</label>
299
- </div>
300
- <div class="form-check form-check-inline mr-1">
301
- <input class="form-check-input" id="inline-checkbox2" value="check2" type="checkbox">
302
- <label class="form-check-label" for="inline-checkbox2">Two</label>
303
- </div>
304
- <div class="form-check form-check-inline mr-1">
305
- <input class="form-check-input" id="inline-checkbox3" value="check3" type="checkbox">
306
- <label class="form-check-label" for="inline-checkbox3">Three</label>
307
- </div>
308
- </div>
309
- </div>
310
- <div class="form-group row">
311
- <label class="col-md-3 col-form-label" for="file-input">File input</label>
312
- <div class="col-md-9">
313
- <input id="file-input" name="file-input" type="file">
314
- </div>
315
- </div>
316
- <div class="form-group row">
317
- <label class="col-md-3 col-form-label" for="file-multiple-input">Multiple File input</label>
318
- <div class="col-md-9">
319
- <input id="file-multiple-input" name="file-multiple-input" multiple="" type="file">
320
- </div>
321
- </div>
322
- </form>
323
- </div>
324
-
325
- <div class="card-footer">
326
- <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>
327
- <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
328
- </div>
329
- </div>
330
-
331
- <div class="card">
332
- <div class="card-header">
333
- <%= fa_icon("tint") %> Inline
334
-
335
- Form
336
- </div>
337
-
338
- <div class="card-body">
339
- <form action="" method="post" class="form-inline">
340
- <div class="form-group">
341
- <label for="exampleInputName2">Name</label>
342
- <input class="form-control" id="exampleInputName2" placeholder="Jane Doe" type="text">
343
- </div>
344
- <div class="form-group">
345
- <label for="exampleInputEmail2">Email</label>
346
- <input class="form-control" id="exampleInputEmail2" placeholder="jane.doe@example.com" type="email">
347
- </div>
348
- </form>
349
- </div>
350
-
351
- <div class="card-footer">
352
- <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>
353
- <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
354
- </div>
355
- </div>
356
- </div>
357
-
358
- <div class="col-md-6">
359
- <div class="card">
360
- <div class="card-header">
361
- <%= fa_icon("tint") %> Horizontal
362
-
363
- Form
364
- </div>
365
-
366
- <div class="card-body">
367
- <form action="" method="post" class="form-horizontal">
368
- <div class="form-group row">
369
- <label class="col-md-3 col-form-label" for="hf-email">Email</label>
370
- <div class="col-md-9">
371
- <input id="hf-email" name="hf-email" class="form-control" placeholder="Enter Email.." type="email">
372
- <span class="help-block">Please enter your email</span>
373
- </div>
374
- </div>
375
-
376
- <div class="form-group row">
377
- <label class="col-md-3 col-form-label" for="hf-password">Password</label>
378
- <div class="col-md-9">
379
- <input id="hf-password" name="hf-password" class="form-control" placeholder="Enter Password.." type="password">
380
- <span class="help-block">Please enter your password</span>
381
- </div>
382
- </div>
383
- </form>
384
- </div>
385
-
386
- <div class="card-footer">
387
- <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>
388
- <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
389
- </div>
390
- </div>
391
-
392
- <div class="card">
393
- <div class="card-header">
394
- <%= fa_icon("tint") %> Normal
395
-
396
- Form
397
- </div>
398
-
399
- <div class="card-body">
400
- <form action="" method="post">
401
- <div class="form-group">
402
- <label for="nf-email">Email</label>
403
- <input id="nf-email" name="nf-email" class="form-control" placeholder="Enter Email.." type="email">
404
- <span class="help-block">Please enter your email</span>
405
- </div>
406
-
407
- <div class="form-group">
408
- <label for="nf-password">Password</label>
409
- <input id="nf-password" name="nf-password" class="form-control" placeholder="Enter Password.." type="password">
410
- <span class="help-block">Please enter your password</span>
411
- </div>
412
- </form>
413
- </div>
414
-
415
- <div class="card-footer">
416
- <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>
417
- <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
418
- </div>
419
- </div>
420
-
421
- <div class="card">
422
- <div class="card-header">
423
- <%= fa_icon("tint") %> Input
424
-
425
- Grid
426
- </div>
427
-
428
- <div class="card-body">
429
- <form action="" method="post" class="form-horizontal">
430
- <div class="form-group row">
431
- <div class="col-sm-3">
432
- <input class="form-control" placeholder=".col-sm-3" type="text">
433
- </div>
434
- </div>
435
- <div class="form-group row">
436
- <div class="col-sm-4">
437
- <input class="form-control" placeholder=".col-sm-4" type="text">
438
- </div>
439
- </div>
440
- <div class="form-group row">
441
- <div class="col-sm-5">
442
- <input class="form-control" placeholder=".col-sm-5" type="text">
443
- </div>
444
- </div>
445
- <div class="form-group row">
446
- <div class="col-sm-6">
447
- <input class="form-control" placeholder=".col-sm-6" type="text">
448
- </div>
449
- </div>
450
- <div class="form-group row">
451
- <div class="col-sm-7">
452
- <input class="form-control" placeholder=".col-sm-7" type="text">
453
- </div>
454
- </div>
455
- <div class="form-group row">
456
- <div class="col-sm-8">
457
- <input class="form-control" placeholder=".col-sm-8" type="text">
458
- </div>
459
- </div>
460
- <div class="form-group row">
461
- <div class="col-sm-9">
462
- <input class="form-control" placeholder=".col-sm-9" type="text">
463
- </div>
464
- </div>
465
- <div class="form-group row">
466
- <div class="col-sm-10">
467
- <input class="form-control" placeholder=".col-sm-10" type="text">
468
- </div>
469
- </div>
470
- <div class="form-group row">
471
- <div class="col-sm-11">
472
- <input class="form-control" placeholder=".col-sm-11" type="text">
473
- </div>
474
- </div>
475
- <div class="form-group row">
476
- <div class="col-sm-12">
477
- <input class="form-control" placeholder=".col-sm-12" type="text">
478
- </div>
479
- </div>
480
- </form>
481
- </div>
482
-
483
- <div class="card-footer">
484
- <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-user"></i> Login</button>
485
- <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
486
- </div>
487
- </div>
488
-
489
- <div class="card">
490
- <div class="card-header">
491
- <%= fa_icon("tint") %> Input
492
-
493
- Sizes
494
- </div>
495
-
496
- <div class="card-body">
497
- <form action="" method="post" class="form-horizontal">
498
- <div class="form-group row">
499
- <label class="col-sm-5 col-form-label" for="input-small">Small Input</label>
500
- <div class="col-sm-6">
501
- <input id="input-small" name="input-small" class="form-control form-control-sm" placeholder=".form-control-sm" type="text">
502
- </div>
503
- </div>
504
- <div class="form-group row">
505
- <label class="col-sm-5 col-form-label" for="input-normal">Normal Input</label>
506
- <div class="col-sm-6">
507
- <input id="input-normal" name="input-normal" class="form-control" placeholder="Normal" type="text">
508
- </div>
509
- </div>
510
- <div class="form-group row">
511
- <label class="col-sm-5 col-form-label" for="input-large">Large Input</label>
512
- <div class="col-sm-6">
513
- <input id="input-large" name="input-large" class="form-control form-control-lg" placeholder=".form-control-lg" type="text">
514
- </div>
515
- </div>
516
- </form>
517
- </div>
518
-
519
- <div class="card-footer">
520
- <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>
521
- <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
522
- </div>
523
- </div>
524
- </div>
525
- </div>
526
-
527
- <div class="row">
528
- <div class="col-sm-6">
529
- <div class="card">
530
- <div class="card-header">
531
- <%= fa_icon("tint") %> Validation states
532
-
533
- Form
534
- </div>
535
-
536
- <div class="card-body">
537
- <form class="was-validated">
538
- <div class="form-group">
539
- <label class="form-col-form-label" for="inputSuccess1">Input with success</label>
540
- <input class="form-control is-valid" id="inputSuccess1" type="text">
541
- </div>
542
- <div class="form-group">
543
- <label class="form-col-form-label" for="inputError1">Input with error</label>
544
- <input class="form-control is-invalid" id="inputError1" type="text">
545
- <div class="invalid-feedback">
546
- Please provide a valid informations.
547
- </div>
548
- </div>
549
- </form>
550
- </div>
551
- </div>
552
- </div>
553
-
554
- <div class="col-sm-6">
555
- <div class="card">
556
- <div class="card-header">
557
- <%= fa_icon("tint") %> Validation
558
-
559
- <code>was-validated</code>
560
- </div>
561
-
562
- <div class="card-body was-validated">
563
- <div class="form-group">
564
- <label class="form-col-form-label" for="inputSuccess2">Input is valid</label>
565
- <input class="form-control is-valid" id="inputSuccess2" type="text">
566
- </div>
567
- <div class="form-group">
568
- <label class="form-col-form-label" for="inputError2">Input required</label>
569
- <input class="form-control is-invalid" id="inputError2" required="" type="text">
570
- <div class="invalid-feedback">
571
- Please provide a valid informations.
572
- </div>
573
- </div>
574
- </div>
575
- </div>
576
- </div>
577
- </div>
578
-
579
- <div class="row">
580
- <div class="col-sm-4">
581
- <div class="card">
582
- <div class="card-header">
583
- <%= fa_icon("tint") %> Icon/Text
584
-
585
- Groups
586
- </div>
587
-
588
- <div class="card-body">
589
- <form action="" method="post" class="form-horizontal">
590
- <div class="form-group row">
591
- <div class="col-md-12">
592
- <div class="input-group">
593
- <div class="input-group-prepend">
594
- <span class="input-group-text"><i class="fa fa-user"></i></span>
595
- </div>
596
- <input id="input1-group1" name="input1-group1" class="form-control" placeholder="Username" type="text">
597
- </div>
598
- </div>
599
- </div>
600
-
601
- <div class="form-group row">
602
- <div class="col-md-12">
603
- <div class="input-group">
604
- <input id="input2-group1" name="input2-group1" class="form-control" placeholder="Email" type="email">
605
- <div class="input-group-append">
606
- <span class="input-group-text"><i class="fa fa-envelope-o"></i></span>
607
- </div>
608
- </div>
609
- </div>
610
- </div>
611
-
612
- <div class="form-group row">
613
- <div class="col-md-12">
614
- <div class="input-group">
615
- <div class="input-group-prepend">
616
- <span class="input-group-text"><i class="fa fa-euro"></i></span>
617
- </div>
618
- <input id="input3-group1" name="input3-group1" class="form-control" placeholder=".." type="text">
619
- <div class="input-group-append">
620
- <span class="input-group-text">.00</span>
621
- </div>
622
- </div>
623
- </div>
624
- </div>
625
- </form>
626
- </div>
627
-
628
- <div class="card-footer">
629
- <button type="submit" class="btn btn-sm btn-success"><i class="fa fa-dot-circle-o"></i> Submit</button>
630
- <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
631
- </div>
632
- </div>
633
- </div>
634
-
635
- <div class="col-sm-4">
636
- <div class="card">
637
- <div class="card-header">
638
- <%= fa_icon("tint") %> Buttons
639
-
640
- Groups
641
- </div>
642
-
643
- <div class="card-body">
644
- <form action="" method="post" class="form-horizontal">
645
- <div class="form-group row">
646
- <div class="col-md-12">
647
- <div class="input-group">
648
- <span class="input-group-prepend">
649
- <button type="button" class="btn btn-primary"><i class="fa fa-search"></i> Search</button>
650
- </span>
651
- <input id="input1-group2" name="input1-group2" class="form-control" placeholder="Username" type="text">
652
- </div>
653
- </div>
654
- </div>
655
-
656
- <div class="form-group row">
657
- <div class="col-md-12">
658
- <div class="input-group">
659
- <input id="input2-group2" name="input2-group2" class="form-control" placeholder="Email" type="email">
660
- <span class="input-group-append">
661
- <button type="button" class="btn btn-primary">Submit</button>
662
- </span>
663
- </div>
664
- </div>
665
- </div>
666
-
667
- <div class="form-group row">
668
- <div class="col-md-12">
669
- <div class="input-group">
670
- <span class="input-group-prepend">
671
- <button type="button" class="btn btn-primary"><i class="fa fa-facebook"></i></button>
672
- </span>
673
- <input id="input3-group2" name="input3-group2" class="form-control" placeholder="Search" type="text">
674
- <span class="input-group-append">
675
- <button type="button" class="btn btn-primary"><i class="fa fa-twitter"></i></button>
676
- </span>
677
- </div>
678
- </div>
679
- </div>
680
- </form>
681
- </div>
682
-
683
- <div class="card-footer">
684
- <button type="submit" class="btn btn-sm btn-success"><i class="fa fa-dot-circle-o"></i> Submit</button>
685
- <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
686
- </div>
687
- </div>
688
- </div>
689
-
690
- <div class="col-sm-4">
691
- <div class="card">
692
- <div class="card-header">
693
- <%= fa_icon("tint") %> Dropdowns
694
-
695
- Groups
696
- </div>
697
-
698
- <div class="card-body">
699
- <form action="" method="post" class="form-horizontal">
700
- <div class="form-group row">
701
- <div class="col-md-12">
702
- <div class="input-group">
703
- <div class="input-group-prepend">
704
- <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">Action
705
- <span class="caret"></span>
706
- </button>
707
-
708
- <div class="dropdown-menu">
709
- <a class="dropdown-item" href="#">Action</a>
710
- <a class="dropdown-item" href="#">Another action</a>
711
- <a class="dropdown-item" href="#">Something else here</a>
712
-
713
- <div role="separator" class="dropdown-divider"></div>
714
-
715
- <a class="dropdown-item" href="#">Separated link</a>
716
- </div>
717
- </div>
718
-
719
- <input id="input1-group3" name="input1-group3" class="form-control" placeholder="Username" type="text">
720
- </div>
721
- </div>
722
- </div>
723
-
724
- <div class="form-group row">
725
- <div class="col-md-12">
726
- <div class="input-group">
727
- <input id="input2-group3" name="input2-group3" class="form-control" placeholder="Email" type="email">
728
-
729
- <div class="input-group-append">
730
- <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">Action
731
- <span class="caret"></span>
732
- </button>
733
-
734
- <div class="dropdown-menu dropdown-menu-right">
735
- <a class="dropdown-item" href="#">Action</a>
736
- <a class="dropdown-item" href="#">Another action</a>
737
- <a class="dropdown-item" href="#">Something else here</a>
738
-
739
- <div role="separator" class="dropdown-divider"></div>
740
-
741
- <a class="dropdown-item" href="#">Separated link</a>
742
- </div>
743
- </div>
744
- </div>
745
- </div>
746
- </div>
747
-
748
- <div class="row">
749
- <div class="col-md-12">
750
- <div class="input-group">
751
- <div class="input-group-prepend">
752
- <button type="button" class="btn btn-primary">Action</button>
753
- <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown">
754
- <span class="caret"></span>
755
- </button>
756
-
757
- <div class="dropdown-menu">
758
- <a class="dropdown-item" href="#">Action</a>
759
- <a class="dropdown-item" href="#">Another action</a>
760
- <a class="dropdown-item" href="#">Something else here</a>
761
-
762
- <div role="separator" class="dropdown-divider"></div>
763
-
764
- <a class="dropdown-item" href="#">Separated link</a>
765
- </div>
766
- </div>
767
-
768
- <input id="input3-group3" name="input3-group3" class="form-control" placeholder=".." type="text">
769
-
770
- <div class="input-group-append">
771
- <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
772
- <span class="caret"></span>
773
- </button>
774
-
775
- <div class="dropdown-menu dropdown-menu-right">
776
- <a class="dropdown-item" href="#">Action</a>
777
- <a class="dropdown-item" href="#">Another action</a>
778
- <a class="dropdown-item" href="#">Something else here</a>
779
-
780
- <div role="separator" class="dropdown-divider"></div>
781
-
782
- <a class="dropdown-item" href="#">Separated link</a>
783
- </div>
784
- </div>
785
- </div>
786
- </div>
787
- </div>
788
- </form>
789
- </div>
790
-
791
- <div class="card-footer">
792
- <button type="submit" class="btn btn-sm btn-success"><i class="fa fa-dot-circle-o"></i> Submit</button>
793
- <button type="reset" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i> Reset</button>
794
- </div>
795
- </div>
796
- </div>
797
- </div>
798
-
799
- <div class="row">
800
- <div class="col-md-6">
801
- <div class="card">
802
- <div class="card-header">
803
- <%= fa_icon("tint") %> Use the grid for big devices!
804
-
805
- <small>
806
- <code>.col-lg-*</code>
807
- <code>.col-md-*</code>
808
- <code>.col-sm-*</code>
809
- </small>
810
- </div>
811
-
812
- <div class="card-body">
813
- <form action="" method="post" class="form-horizontal">
814
- <div class="form-group row">
815
- <div class="col-md-8">
816
- <input class="form-control" placeholder=".col-md-8" type="text">
817
- </div>
818
- <div class="col-md-4">
819
- <input class="form-control" placeholder=".col-md-4" type="text">
820
- </div>
821
- </div>
822
- <div class="form-group row">
823
- <div class="col-md-7">
824
- <input class="form-control" placeholder=".col-md-7" type="text">
825
- </div>
826
- <div class="col-md-5">
827
- <input class="form-control" placeholder=".col-md-5" type="text">
828
- </div>
829
- </div>
830
- <div class="form-group row">
831
- <div class="col-md-6">
832
- <input class="form-control" placeholder=".col-md-6" type="text">
833
- </div>
834
- <div class="col-md-6">
835
- <input class="form-control" placeholder=".col-md-6" type="text">
836
- </div>
837
- </div>
838
- <div class="form-group row">
839
- <div class="col-md-5">
840
- <input class="form-control" placeholder=".col-md-5" type="text">
841
- </div>
842
- <div class="col-md-7">
843
- <input class="form-control" placeholder=".col-md-7" type="text">
844
- </div>
845
- </div>
846
- <div class="form-group row">
847
- <div class="col-md-4">
848
- <input class="form-control" placeholder=".col-md-4" type="text">
849
- </div>
850
- <div class="col-md-8">
851
- <input class="form-control" placeholder=".col-md-8" type="text">
852
- </div>
853
- </div>
854
- </form>
855
- </div>
856
-
857
- <div class="card-footer">
858
- <button type="submit" class="btn btn-sm btn-primary">Action</button>
859
- <button type="button" class="btn btn-sm btn-danger">Action</button>
860
- <button type="button" class="btn btn-sm btn-warning">Action</button>
861
- <button type="button" class="btn btn-sm btn-info">Action</button>
862
- <button type="button" class="btn btn-sm btn-success">Action</button>
863
- </div>
864
- </div>
865
- </div>
866
-
867
- <div class="col-md-6">
868
- <div class="card">
869
- <div class="card-header">
870
- <%= fa_icon("tint") %> Input Grid for small devices!
871
-
872
- <small><code>.col-*</code></small>
873
- </div>
874
-
875
- <div class="card-body">
876
- <form action="" method="post" class="form-horizontal">
877
- <div class="form-group row">
878
- <div class="col-4">
879
- <input class="form-control" placeholder=".col-4" type="text">
880
- </div>
881
- <div class="col-8">
882
- <input class="form-control" placeholder=".col-8" type="text">
883
- </div>
884
- </div>
885
- <div class="form-group row">
886
- <div class="col-5">
887
- <input class="form-control" placeholder=".col-5" type="text">
888
- </div>
889
- <div class="col-7">
890
- <input class="form-control" placeholder=".col-7" type="text">
891
- </div>
892
- </div>
893
- <div class="form-group row">
894
- <div class="col-6">
895
- <input class="form-control" placeholder=".col-6" type="text">
896
- </div>
897
- <div class="col-6">
898
- <input class="form-control" placeholder=".col-6" type="text">
899
- </div>
900
- </div>
901
- <div class="form-group row">
902
- <div class="col-7">
903
- <input class="form-control" placeholder=".col-5" type="text">
904
- </div>
905
- <div class="col-5">
906
- <input class="form-control" placeholder=".col-5" type="text">
907
- </div>
908
- </div>
909
- <div class="form-group row">
910
- <div class="col-8">
911
- <input class="form-control" placeholder=".col-8" type="text">
912
- </div>
913
- <div class="col-4">
914
- <input class="form-control" placeholder=".col-4" type="text">
915
- </div>
916
- </div>
917
- </form>
918
- </div>
919
-
920
- <div class="card-footer">
921
- <button type="submit" class="btn btn-sm btn-primary">Action</button>
922
- <button type="button" class="btn btn-sm btn-danger">Action</button>
923
- <button type="button" class="btn btn-sm btn-warning">Action</button>
924
- <button type="button" class="btn btn-sm btn-info">Action</button>
925
- <button type="button" class="btn btn-sm btn-success">Action</button>
926
- </div>
927
- </div>
928
- </div>
929
- </div>
930
-
931
- <div class="row">
932
- <div class="col-sm-4">
933
- <div class="card">
934
- <div class="card-header">
935
- <%= fa_icon("tint") %> Example Form
936
- </div>
937
-
938
- <div class="card-body">
939
- <form action="" method="post">
940
- <div class="form-group">
941
- <div class="input-group">
942
- <div class="input-group-prepend">
943
- <span class="input-group-text">Username</span>
944
- </div>
945
- <input id="username3" name="username3" class="form-control" type="text">
946
- <div class="input-group-append">
947
- <span class="input-group-text"><i class="fa fa-user"></i></span>
948
- </div>
949
- </div>
950
- </div>
951
-
952
- <div class="form-group">
953
- <div class="input-group">
954
- <div class="input-group-prepend">
955
- <span class="input-group-text">Email</span>
956
- </div>
957
- <input id="email3" name="email3" class="form-control" type="email">
958
- <div class="input-group-append">
959
- <span class="input-group-text"><i class="fa fa-envelope"></i></span>
960
- </div>
961
- </div>
962
- </div>
963
-
964
- <div class="form-group">
965
- <div class="input-group">
966
- <div class="input-group-prepend">
967
- <span class="input-group-text">Password</span>
968
- </div>
969
- <input id="password3" name="password3" class="form-control" type="password">
970
- <div class="input-group-append">
971
- <span class="input-group-text"><i class="fa fa-asterisk"></i></span>
972
- </div>
973
- </div>
974
- </div>
975
-
976
- <div class="form-group form-actions">
977
- <button type="submit" class="btn btn-sm btn-primary">Submit</button>
978
- </div>
979
- </form>
980
- </div>
981
- </div>
982
- </div>
983
-
984
- <div class="col-sm-4">
985
- <div class="card">
986
- <div class="card-header">
987
- <%= fa_icon("tint") %> Example Form
988
- </div>
989
-
990
- <div class="card-body">
991
- <form action="" method="post">
992
- <div class="form-group">
993
- <div class="input-group">
994
- <input id="username2" name="username2" class="form-control" placeholder="Username" type="text">
995
- <div class="input-group-append">
996
- <span class="input-group-text"><i class="fa fa-user"></i></span>
997
- </div>
998
- </div>
999
- </div>
1000
-
1001
- <div class="form-group">
1002
- <div class="input-group">
1003
- <input id="email2" name="email2" class="form-control" placeholder="Email" type="email">
1004
- <div class="input-group-append">
1005
- <span class="input-group-text"><i class="fa fa-envelope"></i></span>
1006
- </div>
1007
- </div>
1008
- </div>
1009
-
1010
- <div class="form-group">
1011
- <div class="input-group">
1012
- <input id="password2" name="password2" class="form-control" placeholder="Password" type="password">
1013
- <div class="input-group-append">
1014
- <span class="input-group-text"><i class="fa fa-asterisk"></i></span>
1015
- </div>
1016
- </div>
1017
- </div>
1018
-
1019
- <div class="form-group form-actions">
1020
- <button type="submit" class="btn btn-sm btn-secondary">Submit</button>
1021
- </div>
1022
- </form>
1023
- </div>
1024
- </div>
1025
- </div>
1026
-
1027
- <div class="col-sm-4">
1028
- <div class="card">
1029
- <div class="card-header">
1030
- <%= fa_icon("tint") %> Example Form
1031
- </div>
1032
-
1033
- <div class="card-body">
1034
- <form action="" method="post">
1035
- <div class="form-group">
1036
- <div class="input-group">
1037
- <div class="input-group-prepend">
1038
- <span class="input-group-text"><i class="fa fa-user"></i></span>
1039
- </div>
1040
- <input id="username" name="username" class="form-control" placeholder="Username" type="text">
1041
- </div>
1042
- </div>
1043
-
1044
- <div class="form-group">
1045
- <div class="input-group">
1046
- <div class="input-group-prepend">
1047
- <span class="input-group-text"><i class="fa fa-envelope"></i></span>
1048
- </div>
1049
- <input id="email" name="email" class="form-control" placeholder="Email" type="email">
1050
- </div>
1051
- </div>
1052
-
1053
- <div class="form-group">
1054
- <div class="input-group">
1055
- <div class="input-group-prepend">
1056
- <span class="input-group-text"><i class="fa fa-asterisk"></i></span>
1057
- </div>
1058
- <input id="password" name="password" class="form-control" placeholder="Password" type="password">
1059
- </div>
1060
- </div>
1061
-
1062
- <div class="form-group form-actions">
1063
- <button type="submit" class="btn btn-sm btn-success">Submit</button>
1064
- </div>
1065
- </form>
1066
- </div>
1067
- </div>
1068
- </div>
1069
- </div>
1070
-
1071
- <div class="row">
1072
- <div class="col-lg-12">
1073
- <div class="card">
1074
- <div class="card-header">
1075
- <%= fa_icon("tint") %> Form Elements
1076
- </div>
1077
-
1078
- <div class="card-body collapse show" id="collapseExample">
1079
- <form class="form-horizontal">
1080
- <div class="form-group">
1081
- <label class="col-form-label" for="prependedInput">Prepended text</label>
1082
- <div class="controls">
1083
- <div class="input-prepend input-group">
1084
- <div class="input-group-prepend">
1085
- <span class="input-group-text">@</span>
1086
- </div>
1087
- <input id="prependedInput" class="form-control" size="16" type="text">
1088
- </div>
1089
- <p class="help-block">Here's some help text</p>
1090
- </div>
1091
- </div>
1092
-
1093
- <div class="form-group">
1094
- <label class="col-form-label" for="appendedInput">Appended text</label>
1095
- <div class="controls">
1096
- <div class="input-group">
1097
- <input id="appendedInput" class="form-control" size="16" type="text">
1098
- <div class="input-group-append">
1099
- <span class="input-group-text">.00</span>
1100
- </div>
1101
- </div>
1102
- <span class="help-block">Here's more help text</span>
1103
- </div>
1104
- </div>
1105
-
1106
- <div class="form-group">
1107
- <label class="col-form-label" for="appendedPrependedInput">Append and prepend</label>
1108
- <div class="controls">
1109
- <div class="input-prepend input-group">
1110
- <div class="input-group-prepend">
1111
- <span class="input-group-text">$</span>
1112
- </div>
1113
- <input id="appendedPrependedInput" class="form-control" size="16" type="text">
1114
- <div class="input-group-append">
1115
- <span class="input-group-text">.00</span>
1116
- </div>
1117
- </div>
1118
- </div>
1119
- </div>
1120
-
1121
- <div class="form-group">
1122
- <label class="col-form-label" for="appendedInputButton">Append with button</label>
1123
- <div class="controls">
1124
- <div class="input-group">
1125
- <input id="appendedInputButton" class="form-control" size="16" type="text">
1126
- <span class="input-group-append">
1127
- <button class="btn btn-secondary" type="button">Go!</button>
1128
- </span>
1129
- </div>
1130
- </div>
1131
- </div>
1132
-
1133
- <div class="form-group">
1134
- <label class="col-form-label" for="appendedInputButtons">Two-button append</label>
1135
- <div class="controls">
1136
- <div class="input-group">
1137
- <input id="appendedInputButtons" size="16" class="form-control" type="text">
1138
- <span class="input-group-append">
1139
- <button class="btn btn-secondary" type="button">Search</button>
1140
- <button class="btn btn-secondary" type="button">Options</button>
1141
- </span>
1142
- </div>
1143
- </div>
1144
- </div>
1145
-
1146
- <div class="form-actions">
1147
- <button type="submit" class="btn btn-primary">Save changes</button>
1148
- <button type="button" class="btn btn-secondary">Cancel</button>
1149
- </div>
1150
- </form>
1151
- </div>
1152
- </div>
1153
- </div>
1154
- </div>
1155
-
1156
- <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
1157
- <div class="modal-dialog" role="document">
1158
- <div class="modal-content">
1159
- <div class="modal-header">
1160
- <h4 class="modal-title">Modal title</h4>
1161
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1162
- <span aria-hidden="true">×</span>
1163
- </button>
1164
- </div>
1165
-
1166
- <div class="modal-body">
1167
- <p>One fine body…</p>
1168
- </div>
1169
-
1170
- <div class="modal-footer">
1171
- <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
1172
- <button type="button" class="btn btn-primary">Save changes</button>
1173
- </div>
1174
- </div>
1175
- </div>
1176
- </div>