archangel 0.0.2

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 (517) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +17 -0
  3. data/.editorconfig +19 -0
  4. data/.eslintignore +6 -0
  5. data/.eslintrc.json +40 -0
  6. data/.github/ISSUE_TEMPLATE.md +23 -0
  7. data/.github/PULL_REQUEST_TEMPLATE.md +18 -0
  8. data/.gitignore +22 -0
  9. data/.hound.yml +21 -0
  10. data/.mdlrc +2 -0
  11. data/.reek +35 -0
  12. data/.rspec +4 -0
  13. data/.rubocop.yml +28 -0
  14. data/.rubocop_disabled.yml +2 -0
  15. data/.rubocop_enabled.yml +2 -0
  16. data/.rubocop_todo.yml +7 -0
  17. data/.scss-lint.yml +22 -0
  18. data/.travis.yml +16 -0
  19. data/.yardopts +10 -0
  20. data/CODE_OF_CONDUCT.md +43 -0
  21. data/CONTRIBUTING.md +150 -0
  22. data/Gemfile +36 -0
  23. data/MIT-LICENSE +21 -0
  24. data/README.md +129 -0
  25. data/Rakefile +27 -0
  26. data/app/assets/config/archangel_manifest.js +14 -0
  27. data/app/assets/images/archangel/fallback/asset.png +0 -0
  28. data/app/assets/images/archangel/fallback/avatar.png +0 -0
  29. data/app/assets/images/archangel/fallback/default.png +0 -0
  30. data/app/assets/images/archangel/fallback/favicon.ico +0 -0
  31. data/app/assets/images/archangel/fallback/large_avatar.png +0 -0
  32. data/app/assets/images/archangel/fallback/large_logo.png +0 -0
  33. data/app/assets/images/archangel/fallback/logo.png +0 -0
  34. data/app/assets/images/archangel/fallback/medium_avatar.png +0 -0
  35. data/app/assets/images/archangel/fallback/medium_logo.png +0 -0
  36. data/app/assets/images/archangel/fallback/small_asset.png +0 -0
  37. data/app/assets/images/archangel/fallback/small_avatar.png +0 -0
  38. data/app/assets/images/archangel/fallback/small_logo.png +0 -0
  39. data/app/assets/images/archangel/fallback/tiny_asset.png +0 -0
  40. data/app/assets/images/archangel/fallback/tiny_avatar.png +0 -0
  41. data/app/assets/images/archangel/fallback/tiny_logo.png +0 -0
  42. data/app/assets/javascripts/archangel/input/datetime_picker.js +46 -0
  43. data/app/assets/javascripts/archangel/input/meta_keywords.js +22 -0
  44. data/app/assets/javascripts/archangel/input/parent/collection.js +0 -0
  45. data/app/assets/javascripts/archangel/input/parent/field.js +0 -0
  46. data/app/assets/javascripts/archangel/input/parent/page.js +0 -0
  47. data/app/assets/javascripts/archangel/input/wysiwyg.js.erb +51 -0
  48. data/app/assets/javascripts/archangel/object/flash.js +49 -0
  49. data/app/assets/javascripts/archangel/object/routes/auth.js +22 -0
  50. data/app/assets/javascripts/archangel/object/routes/backend.js +103 -0
  51. data/app/assets/javascripts/archangel/object/routes/frontend.js +24 -0
  52. data/app/assets/javascripts/archangel/object/routes.js.erb +84 -0
  53. data/app/assets/javascripts/archangel/object/translate/datetime_picker.js.erb +26 -0
  54. data/app/assets/javascripts/archangel/object/translate/sortable.js.erb +10 -0
  55. data/app/assets/javascripts/archangel/object/translate.js +8 -0
  56. data/app/assets/javascripts/archangel/object/url.js +24 -0
  57. data/app/assets/javascripts/archangel/object.js +25 -0
  58. data/app/assets/javascripts/archangel/sortable.js +72 -0
  59. data/app/assets/stylesheets/archangel/.keep +0 -0
  60. data/app/controllers/archangel/application_controller.rb +177 -0
  61. data/app/controllers/archangel/auth/registrations_controller.rb +22 -0
  62. data/app/controllers/archangel/auth_controller.rb +20 -0
  63. data/app/controllers/archangel/backend/assets_controller.rb +338 -0
  64. data/app/controllers/archangel/backend/collections_controller.rb +257 -0
  65. data/app/controllers/archangel/backend/dashboards_controller.rb +27 -0
  66. data/app/controllers/archangel/backend/entries_controller.rb +344 -0
  67. data/app/controllers/archangel/backend/pages_controller.rb +299 -0
  68. data/app/controllers/archangel/backend/profiles_controller.rb +211 -0
  69. data/app/controllers/archangel/backend/sites_controller.rb +175 -0
  70. data/app/controllers/archangel/backend/templates_controller.rb +270 -0
  71. data/app/controllers/archangel/backend/users_controller.rb +366 -0
  72. data/app/controllers/archangel/backend/widgets_controller.rb +264 -0
  73. data/app/controllers/archangel/backend_controller.rb +21 -0
  74. data/app/controllers/archangel/frontend/pages_controller.rb +158 -0
  75. data/app/controllers/archangel/frontend_controller.rb +10 -0
  76. data/app/controllers/concerns/archangel/actionable_concern.rb +152 -0
  77. data/app/controllers/concerns/archangel/authenticatable_concern.rb +14 -0
  78. data/app/controllers/concerns/archangel/authorizable_concern.rb +14 -0
  79. data/app/controllers/concerns/archangel/paginatable_concern.rb +34 -0
  80. data/app/controllers/concerns/archangel/seoable_concern.rb +40 -0
  81. data/app/controllers/concerns/archangel/skip_authorizable_concern.rb +14 -0
  82. data/app/controllers/concerns/archangel/themable_concern.rb +27 -0
  83. data/app/helpers/archangel/application_helper.rb +34 -0
  84. data/app/helpers/archangel/auth_helper.rb +9 -0
  85. data/app/helpers/archangel/backend/assets_helper.rb +14 -0
  86. data/app/helpers/archangel/backend/collections_helper.rb +14 -0
  87. data/app/helpers/archangel/backend/dashboards_helper.rb +14 -0
  88. data/app/helpers/archangel/backend/entries_helper.rb +14 -0
  89. data/app/helpers/archangel/backend/pages_helper.rb +14 -0
  90. data/app/helpers/archangel/backend/sites_helper.rb +14 -0
  91. data/app/helpers/archangel/backend/templates_helper.rb +14 -0
  92. data/app/helpers/archangel/backend/users_helper.rb +14 -0
  93. data/app/helpers/archangel/backend/widgets_helper.rb +14 -0
  94. data/app/helpers/archangel/backend_helper.rb +9 -0
  95. data/app/helpers/archangel/flash_helper.rb +22 -0
  96. data/app/helpers/archangel/frontend/pages_helper.rb +14 -0
  97. data/app/helpers/archangel/frontend_helper.rb +9 -0
  98. data/app/inputs/archangel/date_picker_input.rb +27 -0
  99. data/app/inputs/archangel/date_time_picker_input.rb +27 -0
  100. data/app/inputs/archangel/field_classification_input.rb +32 -0
  101. data/app/inputs/archangel/language_input.rb +31 -0
  102. data/app/inputs/archangel/meta_keywords_input.rb +27 -0
  103. data/app/inputs/archangel/role_input.rb +31 -0
  104. data/app/inputs/archangel/theme_input.rb +29 -0
  105. data/app/inputs/archangel/time_picker_input.rb +27 -0
  106. data/app/inputs/archangel/wysiwyg_input.rb +15 -0
  107. data/app/jobs/archangel/application_job.rb +9 -0
  108. data/app/mailers/archangel/application_mailer.rb +12 -0
  109. data/app/models/archangel/application_record.rb +10 -0
  110. data/app/models/archangel/asset.rb +42 -0
  111. data/app/models/archangel/collection.rb +51 -0
  112. data/app/models/archangel/entry.rb +22 -0
  113. data/app/models/archangel/field.rb +30 -0
  114. data/app/models/archangel/page.rb +123 -0
  115. data/app/models/archangel/site.rb +54 -0
  116. data/app/models/archangel/template.rb +37 -0
  117. data/app/models/archangel/user.rb +62 -0
  118. data/app/models/archangel/widget.rb +62 -0
  119. data/app/policies/archangel/application_policy.rb +142 -0
  120. data/app/policies/archangel/asset_policy.rb +17 -0
  121. data/app/policies/archangel/collection_policy.rb +9 -0
  122. data/app/policies/archangel/entry_policy.rb +17 -0
  123. data/app/policies/archangel/page_policy.rb +9 -0
  124. data/app/policies/archangel/site_policy.rb +27 -0
  125. data/app/policies/archangel/template_policy.rb +9 -0
  126. data/app/policies/archangel/user_policy.rb +9 -0
  127. data/app/policies/archangel/widget_policy.rb +9 -0
  128. data/app/services/archangel/render_service.rb +98 -0
  129. data/app/services/archangel/template_render_service.rb +40 -0
  130. data/app/themes/default/assets/javascripts/default/auth/.keep +0 -0
  131. data/app/themes/default/assets/javascripts/default/auth.js +18 -0
  132. data/app/themes/default/assets/javascripts/default/backend/core.js +7 -0
  133. data/app/themes/default/assets/javascripts/default/backend.js +50 -0
  134. data/app/themes/default/assets/javascripts/default/common/cards.js +28 -0
  135. data/app/themes/default/assets/javascripts/default/common/flash.js +48 -0
  136. data/app/themes/default/assets/javascripts/default/common/navigation.js +30 -0
  137. data/app/themes/default/assets/javascripts/default/common/sidebar.js +114 -0
  138. data/app/themes/default/assets/javascripts/default/frontend/.keep +0 -0
  139. data/app/themes/default/assets/javascripts/default/frontend.js +18 -0
  140. data/app/themes/default/assets/stylesheets/default/auth/core.scss +15 -0
  141. data/app/themes/default/assets/stylesheets/default/auth.css +13 -0
  142. data/app/themes/default/assets/stylesheets/default/backend/core.scss +22 -0
  143. data/app/themes/default/assets/stylesheets/default/backend.css +13 -0
  144. data/app/themes/default/assets/stylesheets/default/common/_bootstrap.scss +49 -0
  145. data/app/themes/default/assets/stylesheets/default/common/_selectize.scss +299 -0
  146. data/app/themes/default/assets/stylesheets/default/common/_variables.scss +82 -0
  147. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_animate.scss +27 -0
  148. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_aside.scss +67 -0
  149. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_avatars.scss +42 -0
  150. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_badge.scss +3 -0
  151. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_breadcrumb-menu.scss +36 -0
  152. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_breadcrumb.scss +4 -0
  153. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_buttons.scss +408 -0
  154. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_callout.scss +58 -0
  155. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_card.scss +199 -0
  156. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_charts.scss +9 -0
  157. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_dropdown-menu-right.scss +8 -0
  158. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_dropdown.scss +70 -0
  159. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_footer.scss +9 -0
  160. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_forms.scss +4 -0
  161. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_grid.scss +15 -0
  162. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_input-group.scss +5 -0
  163. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_layout.scss +390 -0
  164. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_loading.scss +128 -0
  165. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_mixins.scss +1 -0
  166. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_mobile.scss +0 -0
  167. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_modal.scss +12 -0
  168. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_nav.scss +39 -0
  169. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_navbar.scss +122 -0
  170. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_others.scss +4 -0
  171. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_progress.scss +15 -0
  172. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_rtl.scss +287 -0
  173. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_sidebar.scss +462 -0
  174. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_switches.scss +286 -0
  175. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_tables.scss +20 -0
  176. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_temp.scss +39 -0
  177. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_typography.scss +36 -0
  178. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_utilities.scss +3 -0
  179. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_variables.scss +208 -0
  180. data/app/themes/default/assets/stylesheets/default/common/bootstrap/_widgets.scss +251 -0
  181. data/app/themes/default/assets/stylesheets/default/common/bootstrap/mixins/_all.scss +117 -0
  182. data/app/themes/default/assets/stylesheets/default/common/bootstrap/utilities/_background.scss +20 -0
  183. data/app/themes/default/assets/stylesheets/default/common/bootstrap/utilities/_borders.scss +17 -0
  184. data/app/themes/default/assets/stylesheets/default/common/bootstrap/utilities/_display.scss +14 -0
  185. data/app/themes/default/assets/stylesheets/default/frontend/core.scss +15 -0
  186. data/app/themes/default/assets/stylesheets/default/frontend.css +13 -0
  187. data/app/themes/default/views/layouts/auth.html.erb +35 -0
  188. data/app/themes/default/views/layouts/backend/_footer.html.erb +7 -0
  189. data/app/themes/default/views/layouts/backend/_header.html.erb +31 -0
  190. data/app/themes/default/views/layouts/backend/_sidebar.html.erb +53 -0
  191. data/app/themes/default/views/layouts/backend.html.erb +37 -0
  192. data/app/themes/default/views/layouts/frontend.liquid +22 -0
  193. data/app/uploaders/archangel/application_uploader.rb +65 -0
  194. data/app/uploaders/archangel/asset_uploader.rb +52 -0
  195. data/app/uploaders/archangel/avatar_uploader.rb +44 -0
  196. data/app/uploaders/archangel/favicon_uploader.rb +38 -0
  197. data/app/uploaders/archangel/logo_uploader.rb +44 -0
  198. data/app/views/archangel/backend/assets/_buttons.html.erb +18 -0
  199. data/app/views/archangel/backend/assets/_form.html.erb +27 -0
  200. data/app/views/archangel/backend/assets/edit.html.erb +21 -0
  201. data/app/views/archangel/backend/assets/index.html.erb +64 -0
  202. data/app/views/archangel/backend/assets/new.html.erb +21 -0
  203. data/app/views/archangel/backend/assets/show.html.erb +53 -0
  204. data/app/views/archangel/backend/collections/_buttons.html.erb +20 -0
  205. data/app/views/archangel/backend/collections/_field_fields.html.erb +9 -0
  206. data/app/views/archangel/backend/collections/_form.html.erb +24 -0
  207. data/app/views/archangel/backend/collections/edit.html.erb +21 -0
  208. data/app/views/archangel/backend/collections/index.html.erb +60 -0
  209. data/app/views/archangel/backend/collections/new.html.erb +21 -0
  210. data/app/views/archangel/backend/collections/show.html.erb +44 -0
  211. data/app/views/archangel/backend/dashboards/_buttons.html.erb +3 -0
  212. data/app/views/archangel/backend/dashboards/show.html.erb +23 -0
  213. data/app/views/archangel/backend/entries/_buttons.html.erb +20 -0
  214. data/app/views/archangel/backend/entries/_form.html.erb +25 -0
  215. data/app/views/archangel/backend/entries/edit.html.erb +21 -0
  216. data/app/views/archangel/backend/entries/index.html.erb +68 -0
  217. data/app/views/archangel/backend/entries/new.html.erb +21 -0
  218. data/app/views/archangel/backend/entries/show.html.erb +28 -0
  219. data/app/views/archangel/backend/pages/_buttons.html.erb +18 -0
  220. data/app/views/archangel/backend/pages/_form.html.erb +19 -0
  221. data/app/views/archangel/backend/pages/edit.html.erb +21 -0
  222. data/app/views/archangel/backend/pages/index.html.erb +68 -0
  223. data/app/views/archangel/backend/pages/new.html.erb +21 -0
  224. data/app/views/archangel/backend/pages/show.html.erb +49 -0
  225. data/app/views/archangel/backend/profiles/_buttons.html.erb +9 -0
  226. data/app/views/archangel/backend/profiles/_form.html.erb +31 -0
  227. data/app/views/archangel/backend/profiles/edit.html.erb +21 -0
  228. data/app/views/archangel/backend/profiles/show.html.erb +36 -0
  229. data/app/views/archangel/backend/sites/_additional_colors.html.erb +49 -0
  230. data/app/views/archangel/backend/sites/_alerts.html.erb +130 -0
  231. data/app/views/archangel/backend/sites/_badge.html.erb +99 -0
  232. data/app/views/archangel/backend/sites/_button.html.erb +243 -0
  233. data/app/views/archangel/backend/sites/_buttons.html.erb +9 -0
  234. data/app/views/archangel/backend/sites/_buttons_group.html.erb +230 -0
  235. data/app/views/archangel/backend/sites/_cards.html.erb +441 -0
  236. data/app/views/archangel/backend/sites/_carousel.html.erb +159 -0
  237. data/app/views/archangel/backend/sites/_colors.html.erb +41 -0
  238. data/app/views/archangel/backend/sites/_display_headings.html.erb +41 -0
  239. data/app/views/archangel/backend/sites/_dl.html.erb +38 -0
  240. data/app/views/archangel/backend/sites/_dropdowns.html.erb +475 -0
  241. data/app/views/archangel/backend/sites/_form.html.erb +37 -0
  242. data/app/views/archangel/backend/sites/_forms.html.erb +1176 -0
  243. data/app/views/archangel/backend/sites/_grays.html.erb +21 -0
  244. data/app/views/archangel/backend/sites/_headings.html.erb +21 -0
  245. data/app/views/archangel/backend/sites/_inline_text.html.erb +45 -0
  246. data/app/views/archangel/backend/sites/_jumbotron.html.erb +45 -0
  247. data/app/views/archangel/backend/sites/_list_group.html.erb +254 -0
  248. data/app/views/archangel/backend/sites/_modals.html.erb +41 -0
  249. data/app/views/archangel/backend/sites/_navs.html.erb +389 -0
  250. data/app/views/archangel/backend/sites/_pagination.html.erb +160 -0
  251. data/app/views/archangel/backend/sites/_social_buttons.html.erb +746 -0
  252. data/app/views/archangel/backend/sites/_tables.html.erb +372 -0
  253. data/app/views/archangel/backend/sites/edit.html.erb +21 -0
  254. data/app/views/archangel/backend/sites/sample.html.erb +38 -0
  255. data/app/views/archangel/backend/sites/show.html.erb +48 -0
  256. data/app/views/archangel/backend/templates/_buttons.html.erb +18 -0
  257. data/app/views/archangel/backend/templates/_form.html.erb +14 -0
  258. data/app/views/archangel/backend/templates/edit.html.erb +21 -0
  259. data/app/views/archangel/backend/templates/index.html.erb +60 -0
  260. data/app/views/archangel/backend/templates/new.html.erb +21 -0
  261. data/app/views/archangel/backend/templates/show.html.erb +34 -0
  262. data/app/views/archangel/backend/users/_buttons.html.erb +18 -0
  263. data/app/views/archangel/backend/users/_form.html.erb +24 -0
  264. data/app/views/archangel/backend/users/edit.html.erb +21 -0
  265. data/app/views/archangel/backend/users/index.html.erb +62 -0
  266. data/app/views/archangel/backend/users/new.html.erb +21 -0
  267. data/app/views/archangel/backend/users/show.html.erb +36 -0
  268. data/app/views/archangel/backend/widgets/_buttons.html.erb +18 -0
  269. data/app/views/archangel/backend/widgets/_form.html.erb +14 -0
  270. data/app/views/archangel/backend/widgets/edit.html.erb +21 -0
  271. data/app/views/archangel/backend/widgets/index.html.erb +60 -0
  272. data/app/views/archangel/backend/widgets/new.html.erb +21 -0
  273. data/app/views/archangel/backend/widgets/show.html.erb +42 -0
  274. data/app/views/archangel/errors/error_401.html.erb +13 -0
  275. data/app/views/archangel/errors/error_401.json.erb +4 -0
  276. data/app/views/archangel/errors/error_404.html.erb +13 -0
  277. data/app/views/archangel/errors/error_404.json.erb +4 -0
  278. data/app/views/archangel/frontend/pages/show.json.jbuilder +9 -0
  279. data/app/views/archangel/shared/_auth_token.html.erb +8 -0
  280. data/app/views/archangel/shared/_flash_messages.html.erb +9 -0
  281. data/app/views/devise/confirmations/new.html.erb +18 -0
  282. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  283. data/app/views/devise/mailer/email_changed.html.erb +7 -0
  284. data/app/views/devise/mailer/password_change.html.erb +3 -0
  285. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  286. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  287. data/app/views/devise/passwords/edit.html.erb +28 -0
  288. data/app/views/devise/passwords/new.html.erb +18 -0
  289. data/app/views/devise/registrations/edit.html.erb +45 -0
  290. data/app/views/devise/registrations/new.html.erb +41 -0
  291. data/app/views/devise/sessions/new.html.erb +28 -0
  292. data/app/views/devise/shared/_links.html.erb +41 -0
  293. data/app/views/devise/unlocks/new.html.erb +18 -0
  294. data/app/views/kaminari/_first_page.html.erb +11 -0
  295. data/app/views/kaminari/_gap.html.erb +8 -0
  296. data/app/views/kaminari/_last_page.html.erb +11 -0
  297. data/app/views/kaminari/_next_page.html.erb +11 -0
  298. data/app/views/kaminari/_page.html.erb +12 -0
  299. data/app/views/kaminari/_paginator.html.erb +25 -0
  300. data/app/views/kaminari/_prev_page.html.erb +11 -0
  301. data/archangel.gemspec +52 -0
  302. data/archangel.png +0 -0
  303. data/bin/rails +13 -0
  304. data/config/brakeman.yml +3 -0
  305. data/config/initializers/assets.rb +12 -0
  306. data/config/initializers/carrierwave.rb +14 -0
  307. data/config/initializers/devise.rb +341 -0
  308. data/config/initializers/kaminari.rb +13 -0
  309. data/config/initializers/liquid.rb +4 -0
  310. data/config/initializers/meta_tags.rb +31 -0
  311. data/config/initializers/simple_form.rb +177 -0
  312. data/config/initializers/simple_form_bootstrap.rb +177 -0
  313. data/config/locales/active_record.en.yml +80 -0
  314. data/config/locales/devise.en.yml +64 -0
  315. data/config/locales/devise_invitable.en.yml +31 -0
  316. data/config/locales/en.yml +109 -0
  317. data/config/locales/kaminari.en.yml +17 -0
  318. data/config/locales/responders.en.yml +12 -0
  319. data/config/locales/simple_form.en.yml +34 -0
  320. data/config/routes.rb +176 -0
  321. data/db/migrate/20171003191001_create_archangel_sites.rb +19 -0
  322. data/db/migrate/20171003210347_create_archangel_users.rb +68 -0
  323. data/db/migrate/20171005205520_create_archangel_templates.rb +18 -0
  324. data/db/migrate/20171005224054_create_archangel_pages.rb +30 -0
  325. data/db/migrate/20171006175939_create_archangel_widgets.rb +20 -0
  326. data/db/migrate/20171006184844_create_archangel_assets.rb +18 -0
  327. data/db/migrate/20171006194044_create_archangel_collections.rb +17 -0
  328. data/db/migrate/20171006194855_create_archangel_fields.rb +23 -0
  329. data/db/migrate/20171006195023_create_archangel_entries.rb +18 -0
  330. data/db/seeds.rb +65 -0
  331. data/docs/Developers.md +3 -0
  332. data/docs/ExtensionDevelopers.md +3 -0
  333. data/docs/ExtensionIdeas.md +132 -0
  334. data/docs/Release.md +25 -0
  335. data/docs/ThemeDevelopers.md +3 -0
  336. data/lib/archangel/application_responder.rb +15 -0
  337. data/lib/archangel/config.rb +21 -0
  338. data/lib/archangel/constants/language.rb +13 -0
  339. data/lib/archangel/constants/role.rb +13 -0
  340. data/lib/archangel/constants/theme.rb +18 -0
  341. data/lib/archangel/engine.rb +70 -0
  342. data/lib/archangel/i18n.rb +40 -0
  343. data/lib/archangel/liquid/drop.rb +119 -0
  344. data/lib/archangel/liquid/drops/page_drop.rb +33 -0
  345. data/lib/archangel/liquid/drops/site_drop.rb +30 -0
  346. data/lib/archangel/liquid/filters/link_to_filter.rb +35 -0
  347. data/lib/archangel/liquid/tags/application_tag.rb +17 -0
  348. data/lib/archangel/liquid/tags/asset_tag.rb +146 -0
  349. data/lib/archangel/liquid/tags/collection_tag.rb +135 -0
  350. data/lib/archangel/liquid/tags/collectionfor_tag.rb +91 -0
  351. data/lib/archangel/liquid/tags/csrf_meta_tags_tag.rb +28 -0
  352. data/lib/archangel/liquid/tags/gist_tag.rb +102 -0
  353. data/lib/archangel/liquid/tags/locale_tag.rb +27 -0
  354. data/lib/archangel/liquid/tags/meta_tags_tag.rb +30 -0
  355. data/lib/archangel/liquid/tags/text_direction_tag.rb +28 -0
  356. data/lib/archangel/liquid/tags/theme_javascript_tag.rb +30 -0
  357. data/lib/archangel/liquid/tags/theme_stylesheet_tag.rb +30 -0
  358. data/lib/archangel/liquid/tags/vimeo_tag.rb +125 -0
  359. data/lib/archangel/liquid/tags/widget_tag.rb +91 -0
  360. data/lib/archangel/liquid/tags/youtube_tag.rb +138 -0
  361. data/lib/archangel/liquid_view.rb +92 -0
  362. data/lib/archangel/testing_support/context/view_controller_context.rb +55 -0
  363. data/lib/archangel/testing_support/factories/archangel_assets.rb +20 -0
  364. data/lib/archangel/testing_support/factories/archangel_collections.rb +23 -0
  365. data/lib/archangel/testing_support/factories/archangel_entries.rb +17 -0
  366. data/lib/archangel/testing_support/factories/archangel_fields.rb +20 -0
  367. data/lib/archangel/testing_support/factories/archangel_pages.rb +39 -0
  368. data/lib/archangel/testing_support/factories/archangel_sites.rb +22 -0
  369. data/lib/archangel/testing_support/factories/archangel_templates.rb +22 -0
  370. data/lib/archangel/testing_support/factories/archangel_users.rb +53 -0
  371. data/lib/archangel/testing_support/factories/archangel_widgets.rb +19 -0
  372. data/lib/archangel/testing_support/fixtures/favicon.png +0 -0
  373. data/lib/archangel/testing_support/fixtures/image.gif +0 -0
  374. data/lib/archangel/testing_support/fixtures/stylesheet.css +3 -0
  375. data/lib/archangel/testing_support/helpers/authorization_helpers.rb +58 -0
  376. data/lib/archangel/testing_support/helpers/controller_helpers.rb +20 -0
  377. data/lib/archangel/testing_support/helpers/form_helpers.rb +18 -0
  378. data/lib/archangel/testing_support/helpers/routing_helpers.rb +22 -0
  379. data/lib/archangel/testing_support/matchers/match_stdout.rb +37 -0
  380. data/lib/archangel/testing_support/matchers/pundit.rb +17 -0
  381. data/lib/archangel/testing_support/rake/dummy_rake.rb +63 -0
  382. data/lib/archangel/testing_support/shared_contexts/rake.rb +26 -0
  383. data/lib/archangel/testing_support/support/capybara.rb +9 -0
  384. data/lib/archangel/testing_support/support/carrierwave.rb +13 -0
  385. data/lib/archangel/testing_support/support/controller.rb +11 -0
  386. data/lib/archangel/testing_support/support/database_cleaner.rb +22 -0
  387. data/lib/archangel/testing_support/support/devise.rb +7 -0
  388. data/lib/archangel/testing_support/support/factory_bot.rb +17 -0
  389. data/lib/archangel/testing_support/support/inputs.rb +24 -0
  390. data/lib/archangel/testing_support/support/liquid_filters.rb +23 -0
  391. data/lib/archangel/testing_support/support/liquid_tags.rb +23 -0
  392. data/lib/archangel/testing_support/support/shoulda.rb +12 -0
  393. data/lib/archangel/testing_support/support/verify_partial_doubles.rb +21 -0
  394. data/lib/archangel/testing_support/support.rb +26 -0
  395. data/lib/archangel/theme/themable_controller.rb +90 -0
  396. data/lib/archangel/version.rb +16 -0
  397. data/lib/archangel.rb +93 -0
  398. data/lib/generators/archangel/dummy/dummy_generator.rb +148 -0
  399. data/lib/generators/archangel/dummy/templates/config/database.yml +48 -0
  400. data/lib/generators/archangel/install/install_generator.rb +202 -0
  401. data/lib/generators/archangel/install/templates/.env.sample +4 -0
  402. data/lib/generators/archangel/install/templates/config/archangel.yml +54 -0
  403. data/lib/generators/archangel/install/templates/config/initializers/carrierwave.rb +15 -0
  404. data/lib/generators/archangel/install/templates/config/initializers/devise.rb +17 -0
  405. data/lib/generators/archangel/install/templates/vendor/assets/javascripts/archangel/auth.js +3 -0
  406. data/lib/generators/archangel/install/templates/vendor/assets/javascripts/archangel/backend.js +3 -0
  407. data/lib/generators/archangel/install/templates/vendor/assets/javascripts/archangel/frontend.js +3 -0
  408. data/lib/generators/archangel/install/templates/vendor/assets/stylesheets/archangel/auth.css +5 -0
  409. data/lib/generators/archangel/install/templates/vendor/assets/stylesheets/archangel/backend.css +5 -0
  410. data/lib/generators/archangel/install/templates/vendor/assets/stylesheets/archangel/frontend.css +5 -0
  411. data/lib/tasks/archangel/version_task.rake +8 -0
  412. data/lib/templates/erb/scaffold/_form.html.erb +13 -0
  413. data/package.json +33 -0
  414. data/spec/controllers/archangel/application_controller_spec.rb +183 -0
  415. data/spec/controllers/archangel/auth/registrations_controller_spec.rb +10 -0
  416. data/spec/controllers/archangel/auth_controller_spec.rb +8 -0
  417. data/spec/controllers/archangel/backend/assets_controller_spec.rb +237 -0
  418. data/spec/controllers/archangel/backend/collections_controller_spec.rb +252 -0
  419. data/spec/controllers/archangel/backend/dashboards_controller_spec.rb +27 -0
  420. data/spec/controllers/archangel/backend/entries_controller_spec.rb +273 -0
  421. data/spec/controllers/archangel/backend/pages_controller_spec.rb +204 -0
  422. data/spec/controllers/archangel/backend/profiles_controller_spec.rb +115 -0
  423. data/spec/controllers/archangel/backend/sites_controller_spec.rb +137 -0
  424. data/spec/controllers/archangel/backend/templates_controller_spec.rb +190 -0
  425. data/spec/controllers/archangel/backend/users_controller_spec.rb +181 -0
  426. data/spec/controllers/archangel/backend/widgets_controller_spec.rb +190 -0
  427. data/spec/controllers/archangel/backend_controller_spec.rb +8 -0
  428. data/spec/controllers/archangel/frontend/pages_controller_spec.rb +54 -0
  429. data/spec/controllers/archangel/frontend_controller_spec.rb +8 -0
  430. data/spec/features/auth/log_in_spec.rb +96 -0
  431. data/spec/features/auth/log_out_spec.rb +18 -0
  432. data/spec/features/auth/registration_spec.rb +27 -0
  433. data/spec/features/backend/duplicate_page_slugs_spec.rb +41 -0
  434. data/spec/features/frontend/drop_variables_spec.rb +125 -0
  435. data/spec/features/frontend/homepage_redirect_spec.rb +15 -0
  436. data/spec/helpers/archangel/application_helper_spec.rb +30 -0
  437. data/spec/helpers/archangel/auth_helper_spec.rb +8 -0
  438. data/spec/helpers/archangel/backend/assets_helper_spec.rb +10 -0
  439. data/spec/helpers/archangel/backend/collections_helper_spec.rb +10 -0
  440. data/spec/helpers/archangel/backend/dashboards_helper_spec.rb +10 -0
  441. data/spec/helpers/archangel/backend/entries_helper_spec.rb +10 -0
  442. data/spec/helpers/archangel/backend/pages_helper_spec.rb +10 -0
  443. data/spec/helpers/archangel/backend/sites_helper_spec.rb +10 -0
  444. data/spec/helpers/archangel/backend/templates_helper_spec.rb +10 -0
  445. data/spec/helpers/archangel/backend/users_helper_spec.rb +10 -0
  446. data/spec/helpers/archangel/backend/widgets_helper_spec.rb +10 -0
  447. data/spec/helpers/archangel/backend_helper_spec.rb +8 -0
  448. data/spec/helpers/archangel/flash_helper_spec.rb +29 -0
  449. data/spec/helpers/archangel/frontend/pages_helper_spec.rb +10 -0
  450. data/spec/helpers/archangel/frontend_helper_spec.rb +8 -0
  451. data/spec/inputs/archangel/date_picker_input_spec.rb +15 -0
  452. data/spec/inputs/archangel/date_time_picker_input_spec.rb +15 -0
  453. data/spec/inputs/archangel/field_classification_input_spec.rb +19 -0
  454. data/spec/inputs/archangel/language_input_spec.rb +17 -0
  455. data/spec/inputs/archangel/meta_keywords_input_spec.rb +13 -0
  456. data/spec/inputs/archangel/role_input_spec.rb +18 -0
  457. data/spec/inputs/archangel/theme_input_spec.rb +17 -0
  458. data/spec/inputs/archangel/time_picker_input_spec.rb +15 -0
  459. data/spec/inputs/archangel/wysiwyg_input_spec.rb +15 -0
  460. data/spec/jobs/archangel/application_job_spec.rb +8 -0
  461. data/spec/lib/archangel/liquid/filters/link_to_filter_spec.rb +63 -0
  462. data/spec/lib/archangel/liquid/tags/application_tag_spec.rb +12 -0
  463. data/spec/lib/archangel/liquid/tags/asset_tag_spec.rb +90 -0
  464. data/spec/lib/archangel/liquid/tags/collection_tag_spec.rb +105 -0
  465. data/spec/lib/archangel/liquid/tags/collectionfor_tag_spec.rb +164 -0
  466. data/spec/lib/archangel/liquid/tags/csrf_meta_tags_tag_spec.rb +33 -0
  467. data/spec/lib/archangel/liquid/tags/gist_tag_spec.rb +42 -0
  468. data/spec/lib/archangel/liquid/tags/locale_tag_spec.rb +22 -0
  469. data/spec/lib/archangel/liquid/tags/meta_tags_tag_spec.rb +24 -0
  470. data/spec/lib/archangel/liquid/tags/text_direction_tag_spec.rb +32 -0
  471. data/spec/lib/archangel/liquid/tags/theme_javascript_tag_spec.rb +25 -0
  472. data/spec/lib/archangel/liquid/tags/theme_stylesheet_tag_spec.rb +27 -0
  473. data/spec/lib/archangel/liquid/tags/vimeo_tag_spec.rb +39 -0
  474. data/spec/lib/archangel/liquid/tags/widget_tag_spec.rb +59 -0
  475. data/spec/lib/archangel/liquid/tags/youtube_tag_spec.rb +39 -0
  476. data/spec/lib/tasks/archangel/version_task_spec.rb +13 -0
  477. data/spec/mailers/archangel/application_job_spec.rb +8 -0
  478. data/spec/models/archangel/asset_spec.rb +32 -0
  479. data/spec/models/archangel/collection_spec.rb +25 -0
  480. data/spec/models/archangel/entry_spec.rb +20 -0
  481. data/spec/models/archangel/field_spec.rb +29 -0
  482. data/spec/models/archangel/page_spec.rb +94 -0
  483. data/spec/models/archangel/site_spec.rb +11 -0
  484. data/spec/models/archangel/template_spec.rb +24 -0
  485. data/spec/models/archangel/user_spec.rb +66 -0
  486. data/spec/models/archangel/widget_spec.rb +29 -0
  487. data/spec/policies/archangel/application_policy_spec.rb +8 -0
  488. data/spec/policies/archangel/asset_policy_spec.rb +22 -0
  489. data/spec/policies/archangel/collection_policy_spec.rb +20 -0
  490. data/spec/policies/archangel/entries_policy_spec.rb +22 -0
  491. data/spec/policies/archangel/page_policy_spec.rb +20 -0
  492. data/spec/policies/archangel/site_policy_spec.rb +30 -0
  493. data/spec/policies/archangel/template_policy_spec.rb +20 -0
  494. data/spec/policies/archangel/user_policy_spec.rb +20 -0
  495. data/spec/policies/archangel/widget_policy_spec.rb +20 -0
  496. data/spec/rails_helper.rb +46 -0
  497. data/spec/services/archangel/render_service_spec.rb +37 -0
  498. data/spec/services/archangel/template_render_service_spec.rb +42 -0
  499. data/spec/spec_helper.rb +23 -0
  500. data/spec/support/coveralls.rb +5 -0
  501. data/spec/uploaders/archangel/application_uploader_spec.rb +15 -0
  502. data/spec/uploaders/archangel/asset_uploader_spec.rb +71 -0
  503. data/spec/uploaders/archangel/avatar_uploader_spec.rb +50 -0
  504. data/spec/uploaders/archangel/favicon_uploader_spec.rb +39 -0
  505. data/spec/uploaders/archangel/logo_uploader_spec.rb +50 -0
  506. data/vendor/assets/icons/trumbowyg/icons.svg +1 -0
  507. data/vendor/assets/javascripts/sortable/sortable.js +3 -0
  508. data/vendor/assets/javascripts/trumbowyg/plugins/allowtagsfrompaste/trumbowyg.allowtagsfrompaste.js +143 -0
  509. data/vendor/assets/javascripts/trumbowyg/plugins/base64/trumbowyg.base64.js +129 -0
  510. data/vendor/assets/javascripts/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.js +110 -0
  511. data/vendor/assets/javascripts/trumbowyg/plugins/colors/trumbowyg.colors.js +183 -0
  512. data/vendor/assets/javascripts/trumbowyg/plugins/noembed/trumbowyg.noembed.js +104 -0
  513. data/vendor/assets/javascripts/trumbowyg/plugins/upload/trumbowyg.upload.js +261 -0
  514. data/vendor/assets/javascripts/trumbowyg/trumbowyg.js +1765 -0
  515. data/vendor/assets/stylesheets/trumbowyg/_trumbowyg.scss +831 -0
  516. data/vendor/assets/stylesheets/trumbowyg/plugins/colors/_trumbowyg.colors.scss +38 -0
  517. metadata +1003 -0
@@ -0,0 +1,130 @@
1
+ <div class="row">
2
+ <div class="col-lg-6">
3
+ <div class="card">
4
+ <div class="card-header">
5
+ <%= fa_icon("tint") %> Bootstrap Alerts
6
+ </div>
7
+
8
+ <div class="card-body">
9
+ <div class="alert alert-primary" role="alert">
10
+ This is a primary alert—check it out!
11
+ </div>
12
+
13
+ <div class="alert alert-secondary" role="alert">
14
+ This is a secondary alert—check it out!
15
+ </div>
16
+
17
+ <div class="alert alert-success" role="alert">
18
+ This is a success alert—check it out!
19
+ </div>
20
+
21
+ <div class="alert alert-danger" role="alert">
22
+ This is a danger alert—check it out!
23
+ </div>
24
+
25
+ <div class="alert alert-warning" role="alert">
26
+ This is a warning alert—check it out!
27
+ </div>
28
+
29
+ <div class="alert alert-info" role="alert">
30
+ This is a info alert—check it out!
31
+ </div>
32
+
33
+ <div class="alert alert-light" role="alert">
34
+ This is a light alert—check it out!
35
+ </div>
36
+
37
+ <div class="alert alert-dark" role="alert">
38
+ This is a dark alert—check it out!
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </div>
43
+
44
+ <div class="col-lg-6">
45
+ <div class="card">
46
+ <div class="card-header">
47
+ <%= fa_icon("tint") %> Bootstrap Alerts
48
+
49
+ <small>use <code>.alert-link</code> to provide links</small>
50
+ </div>
51
+
52
+ <div class="card-body">
53
+ <div class="alert alert-primary" role="alert">
54
+ This is a primary alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
55
+ </div>
56
+
57
+ <div class="alert alert-secondary" role="alert">
58
+ This is a secondary alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
59
+ </div>
60
+
61
+ <div class="alert alert-success" role="alert">
62
+ This is a success alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
63
+ </div>
64
+
65
+ <div class="alert alert-danger" role="alert">
66
+ This is a danger alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
67
+ </div>
68
+
69
+ <div class="alert alert-warning" role="alert">
70
+ This is a warning alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
71
+ </div>
72
+
73
+ <div class="alert alert-info" role="alert">
74
+ This is a info alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
75
+ </div>
76
+
77
+ <div class="alert alert-light" role="alert">
78
+ This is a light alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
79
+ </div>
80
+
81
+ <div class="alert alert-dark" role="alert">
82
+ This is a dark alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
83
+ </div>
84
+ </div>
85
+ </div>
86
+ </div>
87
+ </div>
88
+
89
+ <div class="row">
90
+ <div class="col-lg-6">
91
+ <div class="card">
92
+ <div class="card-header">
93
+ <%= fa_icon("tint") %> Bootstrap Alerts
94
+
95
+ <small>additional content</small>
96
+ </div>
97
+
98
+ <div class="card-body">
99
+ <div class="alert alert-success" role="alert">
100
+ <h4 class="alert-heading">Well done!</h4>
101
+
102
+ <p>Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content.</p>
103
+
104
+ <hr>
105
+
106
+ <p class="mb-0">Whenever you need to, be sure to use margin utilities to keep things nice and tidy.</p>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ </div>
111
+
112
+ <div class="col-lg-6">
113
+ <div class="card">
114
+ <div class="card-header">
115
+ <%= fa_icon("tint") %> Bootstrap Alerts
116
+
117
+ <small>dismissing</small>
118
+ </div>
119
+
120
+ <div class="card-body">
121
+ <div class="alert alert-warning alert-dismissible fade show" role="alert">
122
+ <strong>Holy guacamole!</strong> You should check in on some of those fields below.
123
+ <button type="button" class="close" data-dismiss="alert" aria-label="Close">
124
+ <span aria-hidden="true">×</span>
125
+ </button>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
@@ -0,0 +1,99 @@
1
+ <div class="row">
2
+ <div class="col-lg-6">
3
+ <div class="card">
4
+ <div class="card-header">
5
+ <%= fa_icon("tint") %> Bootstrap Badges
6
+ </div>
7
+
8
+ <div class="card-body">
9
+ <h1>Example heading
10
+ <span class="badge badge-secondary">New</span>
11
+ </h1>
12
+
13
+ <h2>Example heading
14
+ <span class="badge badge-secondary">New</span>
15
+ </h2>
16
+
17
+ <h3>Example heading
18
+ <span class="badge badge-secondary">New</span>
19
+ </h3>
20
+
21
+ <h4>Example heading
22
+ <span class="badge badge-secondary">New</span>
23
+ </h4>
24
+
25
+ <h5>Example heading
26
+ <span class="badge badge-secondary">New</span>
27
+ </h5>
28
+
29
+ <h6>Example heading
30
+ <span class="badge badge-secondary">New</span>
31
+ </h6>
32
+ </div>
33
+
34
+ <div class="card-footer">
35
+ <button type="link" class="btn btn-primary">Notifications
36
+ <span class="badge badge-light badge-pill" style="position: static;">9</span>
37
+ </button>
38
+ </div>
39
+ </div>
40
+ </div>
41
+
42
+ <div class="col-lg-6">
43
+ <div class="card">
44
+ <div class="card-header">
45
+ <%= fa_icon("tint") %> Bootstrap Badges
46
+
47
+ <small>contextual variations</small>
48
+ </div>
49
+
50
+ <div class="card-body">
51
+ <span class="badge badge-primary">Primary</span>
52
+ <span class="badge badge-secondary">Secondary</span>
53
+ <span class="badge badge-success">Success</span>
54
+ <span class="badge badge-danger">Danger</span>
55
+ <span class="badge badge-warning">Warning</span>
56
+ <span class="badge badge-info">Info</span>
57
+ <span class="badge badge-light">Light</span>
58
+ <span class="badge badge-dark">Dark</span>
59
+ </div>
60
+ </div>
61
+
62
+ <div class="card">
63
+ <div class="card-header">
64
+ <%= fa_icon("tint") %> Bootstrap Badges
65
+
66
+ <small>pill badges</small>
67
+ </div>
68
+ <div class="card-body">
69
+ <span class="badge badge-pill badge-primary">Primary</span>
70
+ <span class="badge badge-pill badge-secondary">Secondary</span>
71
+ <span class="badge badge-pill badge-success">Success</span>
72
+ <span class="badge badge-pill badge-danger">Danger</span>
73
+ <span class="badge badge-pill badge-warning">Warning</span>
74
+ <span class="badge badge-pill badge-info">Info</span>
75
+ <span class="badge badge-pill badge-light">Light</span>
76
+ <span class="badge badge-pill badge-dark">Dark</span>
77
+ </div>
78
+ </div>
79
+
80
+ <div class="card">
81
+ <div class="card-header">
82
+ <%= fa_icon("tint") %> Bootstrap Badges
83
+
84
+ <small>links</small>
85
+ </div>
86
+
87
+ <div class="card-body">
88
+ <a href="#" class="badge badge-primary">Primary</a>
89
+ <a href="#" class="badge badge-secondary">Secondary</a>
90
+ <a href="#" class="badge badge-success">Success</a>
91
+ <a href="#" class="badge badge-danger">Danger</a>
92
+ <a href="#" class="badge badge-warning">Warning</a>
93
+ <a href="#" class="badge badge-info">Info</a>
94
+ <a href="#" class="badge badge-light">Light</a>
95
+ <a href="#" class="badge badge-dark">Dark</a>
96
+ </div>
97
+ </div>
98
+ </div>
99
+ </div>
@@ -0,0 +1,243 @@
1
+ <div class="row">
2
+ <div class="col-md-6">
3
+ <div class="card">
4
+ <div class="card-header">
5
+ <%= fa_icon("tint") %> Options
6
+ </div>
7
+
8
+ <div class="card-body">
9
+ <button type="button" class="btn btn-primary">Primary</button>
10
+
11
+ <button type="button" class="btn btn-secondary">Secondary</button>
12
+
13
+ <button type="button" class="btn btn-success">Success</button>
14
+
15
+ <button type="button" class="btn btn-warning">Warning</button>
16
+
17
+ <button type="button" class="btn btn-danger">Danger</button>
18
+
19
+ <button type="button" class="btn btn-link">Link</button>
20
+ </div>
21
+ </div>
22
+
23
+ <div class="card">
24
+ <div class="card-header">
25
+ <%= fa_icon("tint") %> With Icons
26
+ </div>
27
+
28
+ <div class="card-body">
29
+ <button type="button" class="btn btn-primary"><i class="fa fa-star"></i>&nbsp; Primary</button>
30
+ <button type="button" class="btn btn-secondary"><i class="fa fa-lightbulb-o"></i>&nbsp; Secondary</button>
31
+ <button type="button" class="btn btn-success"><i class="fa fa-magic"></i>&nbsp; Success</button>
32
+ <button type="button" class="btn btn-warning"><i class="fa fa-map-marker"></i>&nbsp; Warning</button>
33
+ <button type="button" class="btn btn-danger"><i class="fa fa-rss"></i>&nbsp; Danger</button>
34
+ <button type="button" class="btn btn-link"><i class="fa fa-link"></i>&nbsp; Link</button>
35
+ </div>
36
+ </div>
37
+
38
+ <div class="card">
39
+ <div class="card-header">
40
+ <%= fa_icon("tint") %> Size Large
41
+
42
+ <small>Add this class <code>.btn-lg</code></small>
43
+ </div>
44
+
45
+ <div class="card-body">
46
+ <button type="button" class="btn btn-primary btn-lg">Primary</button>
47
+ <button type="button" class="btn btn-secondary btn-lg">Secondary</button>
48
+ <button type="button" class="btn btn-success btn-lg">Success</button>
49
+ <button type="button" class="btn btn-info btn-lg">Info</button>
50
+ <button type="button" class="btn btn-warning btn-lg">Warning</button>
51
+ <button type="button" class="btn btn-danger btn-lg">Danger</button>
52
+ <button type="button" class="btn btn-link btn-lg">Link</button>
53
+ </div>
54
+ </div>
55
+
56
+ <div class="card">
57
+ <div class="card-header">
58
+ <%= fa_icon("tint") %> Size Small
59
+
60
+ <small>Add this class <code>.btn-sm</code></small>
61
+ </div>
62
+
63
+ <div class="card-body">
64
+ <button type="button" class="btn btn-primary btn-sm">Primary</button>
65
+ <button type="button" class="btn btn-secondary btn-sm">Secondary</button>
66
+ <button type="button" class="btn btn-success btn-sm">Success</button>
67
+ <button type="button" class="btn btn-info btn-sm">Info</button>
68
+ <button type="button" class="btn btn-warning btn-sm">Warning</button>
69
+ <button type="button" class="btn btn-danger btn-sm">Danger</button>
70
+ <button type="button" class="btn btn-link btn-sm">Link</button>
71
+ </div>
72
+ </div>
73
+
74
+ <div class="card">
75
+ <div class="card-header">
76
+ <%= fa_icon("tint") %> Disabled state
77
+
78
+ <small>Add this <code>disabled="disabled"</code></small>
79
+ </div>
80
+
81
+ <div class="card-body">
82
+ <button type="button" class="btn btn-primary" disabled="disabled">Primary</button>
83
+ <button type="button" class="btn btn-secondary" disabled="disabled">Secondary</button>
84
+ <button type="button" class="btn btn-success" disabled="disabled">Success</button>
85
+ <button type="button" class="btn btn-info" disabled="disabled">Info</button>
86
+ <button type="button" class="btn btn-warning" disabled="disabled">Warning</button>
87
+ <button type="button" class="btn btn-danger" disabled="disabled">Danger</button>
88
+ <button type="button" class="btn btn-link" disabled="disabled">Link</button>
89
+ </div>
90
+ </div>
91
+
92
+ <div class="card">
93
+ <div class="card-header">
94
+ <%= fa_icon("tint") %> Active state
95
+
96
+ <small>Add this class <code>.active</code></small>
97
+ </div>
98
+
99
+ <div class="card-body">
100
+ <button type="button" class="btn btn-primary active">Primary</button>
101
+ <button type="button" class="btn btn-secondary active">Secondary</button>
102
+ <button type="button" class="btn btn-success active">Success</button>
103
+ <button type="button" class="btn btn-info active">Info</button>
104
+ <button type="button" class="btn btn-warning active">Warning</button>
105
+ <button type="button" class="btn btn-danger active">Danger</button>
106
+ <button type="button" class="btn btn-link active">Link</button>
107
+ </div>
108
+ </div>
109
+
110
+ <div class="card">
111
+ <div class="card-header">
112
+ <%= fa_icon("tint") %> Block Level Buttons
113
+
114
+ <small>Add this class <code>.btn-block</code></small>
115
+ </div>
116
+
117
+ <div class="card-body">
118
+ <button type="button" class="btn btn-secondary btn-lg btn-block">Block level button</button>
119
+ <button type="button" class="btn btn-primary btn-lg btn-block">Block level button</button>
120
+ <button type="button" class="btn btn-success btn-lg btn-block">Block level button</button>
121
+ <button type="button" class="btn btn-info btn-lg btn-block">Block level button</button>
122
+ <button type="button" class="btn btn-warning btn-lg btn-block">Block level button</button>
123
+ <button type="button" class="btn btn-danger btn-lg btn-block">Block level button</button>
124
+ <button type="button" class="btn btn-link btn-lg btn-block">Block level button</button>
125
+ </div>
126
+ </div>
127
+ </div>
128
+
129
+ <div class="col-md-6">
130
+ <div class="card">
131
+ <div class="card-header">
132
+ <%= fa_icon("tint") %> Options
133
+ </div>
134
+
135
+ <div class="card-body">
136
+ <button type="button" class="btn btn-outline-primary">Primary</button>
137
+ <button type="button" class="btn btn-outline-secondary">Secondary</button>
138
+ <button type="button" class="btn btn-outline-success">Success</button>
139
+ <button type="button" class="btn btn-outline-warning">Warning</button>
140
+ <button type="button" class="btn btn-outline-danger">Danger</button>
141
+ </div>
142
+ </div>
143
+
144
+ <div class="card">
145
+ <div class="card-header">
146
+ <%= fa_icon("tint") %> With Icons
147
+ </div>
148
+
149
+ <div class="card-body">
150
+ <button type="button" class="btn btn-outline-primary"><i class="fa fa-star"></i>&nbsp; Primary</button>
151
+ <button type="button" class="btn btn-outline-secondary"><i class="fa fa-lightbulb-o"></i>&nbsp; Secondary</button>
152
+ <button type="button" class="btn btn-outline-success"><i class="fa fa-magic"></i>&nbsp; Success</button>
153
+ <button type="button" class="btn btn-outline-warning"><i class="fa fa-map-marker"></i>&nbsp; Warning</button>
154
+ <button type="button" class="btn btn-outline-danger"><i class="fa fa-rss"></i>&nbsp; Danger</button>
155
+ </div>
156
+ </div>
157
+
158
+ <div class="card">
159
+ <div class="card-header">
160
+ <%= fa_icon("tint") %> Size Large
161
+
162
+ <small>Add this class <code>.btn-lg</code></small>
163
+ </div>
164
+
165
+ <div class="card-body">
166
+ <button type="button" class="btn btn-outline-primary btn-lg">Primary</button>
167
+ <button type="button" class="btn btn-outline-secondary btn-lg">Secondary</button>
168
+ <button type="button" class="btn btn-outline-success btn-lg">Success</button>
169
+ <button type="button" class="btn btn-outline-info btn-lg">Info</button>
170
+ <button type="button" class="btn btn-outline-warning btn-lg">Warning</button>
171
+ <button type="button" class="btn btn-outline-danger btn-lg">Danger</button>
172
+ </div>
173
+ </div>
174
+
175
+ <div class="card">
176
+ <div class="card-header">
177
+ <%= fa_icon("tint") %> Size Small
178
+
179
+ <small>Add this class <code>.btn-sm</code></small>
180
+ </div>
181
+
182
+ <div class="card-body">
183
+ <button type="button" class="btn btn-outline-primary btn-sm">Primary</button>
184
+ <button type="button" class="btn btn-outline-secondary btn-sm">Secondary</button>
185
+ <button type="button" class="btn btn-outline-success btn-sm">Success</button>
186
+ <button type="button" class="btn btn-outline-info btn-sm">Info</button>
187
+ <button type="button" class="btn btn-outline-warning btn-sm">Warning</button>
188
+ <button type="button" class="btn btn-outline-danger btn-sm">Danger</button>
189
+ </div>
190
+ </div>
191
+
192
+ <div class="card">
193
+ <div class="card-header">
194
+ <%= fa_icon("tint") %> Disabled state
195
+
196
+ <small>Add this <code>disabled="disabled"</code></small>
197
+ </div>
198
+
199
+ <div class="card-body">
200
+ <button type="button" class="btn btn-outline-primary" disabled="disabled">Primary</button>
201
+ <button type="button" class="btn btn-outline-secondary" disabled="disabled">Secondary</button>
202
+ <button type="button" class="btn btn-success" disabled="disabled">Success</button>
203
+ <button type="button" class="btn btn-outline-info" disabled="disabled">Info</button>
204
+ <button type="button" class="btn btn-outline-warning" disabled="disabled">Warning</button>
205
+ <button type="button" class="btn btn-outline-danger" disabled="disabled">Danger</button>
206
+ </div>
207
+ </div>
208
+
209
+ <div class="card">
210
+ <div class="card-header">
211
+ <%= fa_icon("tint") %> Active state
212
+
213
+ <small>Add this class <code>.active</code></small>
214
+ </div>
215
+
216
+ <div class="card-body">
217
+ <button type="button" class="btn btn-outline-primary active">Primary</button>
218
+ <button type="button" class="btn btn-outline-secondary active">Secondary</button>
219
+ <button type="button" class="btn btn-outline-success active">Success</button>
220
+ <button type="button" class="btn btn-outline-info active">Info</button>
221
+ <button type="button" class="btn btn-outline-warning active">Warning</button>
222
+ <button type="button" class="btn btn-outline-danger active">Danger</button>
223
+ </div>
224
+ </div>
225
+
226
+ <div class="card">
227
+ <div class="card-header">
228
+ <%= fa_icon("tint") %> Block Level Buttons
229
+
230
+ <small>Add this class <code>.btn-block</code></small>
231
+ </div>
232
+
233
+ <div class="card-body">
234
+ <button type="button" class="btn btn-outline-secondary btn-lg btn-block">Block level button</button>
235
+ <button type="button" class="btn btn-outline-primary btn-lg btn-block">Block level button</button>
236
+ <button type="button" class="btn btn-outline-success btn-lg btn-block">Block level button</button>
237
+ <button type="button" class="btn btn-outline-info btn-lg btn-block">Block level button</button>
238
+ <button type="button" class="btn btn-outline-warning btn-lg btn-block">Block level button</button>
239
+ <button type="button" class="btn btn-outline-danger btn-lg btn-block">Block level button</button>
240
+ </div>
241
+ </div>
242
+ </div>
243
+ </div>
@@ -0,0 +1,9 @@
1
+ <div class="btn-group pull-right" role="group" aria-label="Button group">
2
+ <% if edit_action? %>
3
+ <%= link_to(fa_icon("chevron-left", text: Archangel.t(:back)), backend_site_path, class: "btn btn-link") %>
4
+ <% end %>
5
+
6
+ <% if show_action? %>
7
+ <%= link_to(fa_icon("check", text: Archangel.t(:edit)), edit_backend_site_path, class: "btn btn-link") %>
8
+ <% end %>
9
+ </div>