comfy_middle_seat 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +4 -0
  3. data/.gitattributes +3 -0
  4. data/.github/dependabot.yml +7 -0
  5. data/.github/issue_template.md +19 -0
  6. data/.github/pull_request_template.md +6 -0
  7. data/.github/workflows/claude-code-review.yml +46 -0
  8. data/.github/workflows/claude.yml +148 -0
  9. data/.github/workflows/coveralls.yml +53 -0
  10. data/.github/workflows/rubyonrails.yml +94 -0
  11. data/.gitignore +25 -0
  12. data/.rubocop.yml +82 -0
  13. data/.travis.yml +44 -0
  14. data/CHANGELOG.md +147 -0
  15. data/CONTRIBUTING.md +42 -0
  16. data/Gemfile +44 -0
  17. data/LICENSE +20 -0
  18. data/README.md +158 -0
  19. data/Rakefile +206 -0
  20. data/app/assets/builds/.keep +0 -0
  21. data/app/assets/config/manifest.js +1 -0
  22. data/app/assets/fonts/comfy/admin/cms/lib/redactor-font.eot +0 -0
  23. data/app/assets/javascripts/comfy/admin/cms/application.js +27 -0
  24. data/app/assets/javascripts/comfy/admin/cms/base.js +48 -0
  25. data/app/assets/javascripts/comfy/admin/cms/categories.js +17 -0
  26. data/app/assets/javascripts/comfy/admin/cms/codemirror.js +43 -0
  27. data/app/assets/javascripts/comfy/admin/cms/custom.js +1 -0
  28. data/app/assets/javascripts/comfy/admin/cms/diff.js +12 -0
  29. data/app/assets/javascripts/comfy/admin/cms/file_link.js +96 -0
  30. data/app/assets/javascripts/comfy/admin/cms/file_upload.js +229 -0
  31. data/app/assets/javascripts/comfy/admin/cms/files_modal.js +97 -0
  32. data/app/assets/javascripts/comfy/admin/cms/page_fragments.js +22 -0
  33. data/app/assets/javascripts/comfy/admin/cms/slugify.js +34 -0
  34. data/app/assets/javascripts/comfy/admin/cms/sortable_list.js +49 -0
  35. data/app/assets/javascripts/comfy/admin/cms/timepicker.js +38 -0
  36. data/app/assets/javascripts/comfy/admin/cms/wysiwyg.js +91 -0
  37. data/app/assets/javascripts/comfy/vendor/diff/diff_match_patch.min.js +49 -0
  38. data/app/assets/javascripts/comfy/vendor/diff/pretty_text_diff.js +88 -0
  39. data/app/assets/javascripts/comfy/vendor/flatpickr.min.js +2 -0
  40. data/app/assets/javascripts/comfy/vendor/fontawesome.js +5 -0
  41. data/app/assets/javascripts/comfy/vendor/redactor/definedlinks.js +50 -0
  42. data/app/assets/javascripts/comfy/vendor/redactor/filemanager.js +79 -0
  43. data/app/assets/javascripts/comfy/vendor/redactor/i18n/ar.js +76 -0
  44. data/app/assets/javascripts/comfy/vendor/redactor/i18n/az.js +75 -0
  45. data/app/assets/javascripts/comfy/vendor/redactor/i18n/ba.js +79 -0
  46. data/app/assets/javascripts/comfy/vendor/redactor/i18n/bg.js +77 -0
  47. data/app/assets/javascripts/comfy/vendor/redactor/i18n/by.js +77 -0
  48. data/app/assets/javascripts/comfy/vendor/redactor/i18n/ca.js +75 -0
  49. data/app/assets/javascripts/comfy/vendor/redactor/i18n/cs.js +87 -0
  50. data/app/assets/javascripts/comfy/vendor/redactor/i18n/da.js +75 -0
  51. data/app/assets/javascripts/comfy/vendor/redactor/i18n/de.js +80 -0
  52. data/app/assets/javascripts/comfy/vendor/redactor/i18n/el.js +76 -0
  53. data/app/assets/javascripts/comfy/vendor/redactor/i18n/en.js +75 -0
  54. data/app/assets/javascripts/comfy/vendor/redactor/i18n/eo.js +76 -0
  55. data/app/assets/javascripts/comfy/vendor/redactor/i18n/es.js +75 -0
  56. data/app/assets/javascripts/comfy/vendor/redactor/i18n/es_AR.js +76 -0
  57. data/app/assets/javascripts/comfy/vendor/redactor/i18n/fa.js +76 -0
  58. data/app/assets/javascripts/comfy/vendor/redactor/i18n/fi.js +75 -0
  59. data/app/assets/javascripts/comfy/vendor/redactor/i18n/fr.js +75 -0
  60. data/app/assets/javascripts/comfy/vendor/redactor/i18n/ge.js +75 -0
  61. data/app/assets/javascripts/comfy/vendor/redactor/i18n/gr.js +75 -0
  62. data/app/assets/javascripts/comfy/vendor/redactor/i18n/he.js +75 -0
  63. data/app/assets/javascripts/comfy/vendor/redactor/i18n/hr.js +78 -0
  64. data/app/assets/javascripts/comfy/vendor/redactor/i18n/hu.js +77 -0
  65. data/app/assets/javascripts/comfy/vendor/redactor/i18n/id.js +76 -0
  66. data/app/assets/javascripts/comfy/vendor/redactor/i18n/it.js +78 -0
  67. data/app/assets/javascripts/comfy/vendor/redactor/i18n/ja.js +76 -0
  68. data/app/assets/javascripts/comfy/vendor/redactor/i18n/kn.js +75 -0
  69. data/app/assets/javascripts/comfy/vendor/redactor/i18n/ko.js +76 -0
  70. data/app/assets/javascripts/comfy/vendor/redactor/i18n/lt.js +75 -0
  71. data/app/assets/javascripts/comfy/vendor/redactor/i18n/lv.js +75 -0
  72. data/app/assets/javascripts/comfy/vendor/redactor/i18n/mk.js +75 -0
  73. data/app/assets/javascripts/comfy/vendor/redactor/i18n/nb.js +77 -0
  74. data/app/assets/javascripts/comfy/vendor/redactor/i18n/nl.js +80 -0
  75. data/app/assets/javascripts/comfy/vendor/redactor/i18n/pl.js +78 -0
  76. data/app/assets/javascripts/comfy/vendor/redactor/i18n/pt-BR.js +75 -0
  77. data/app/assets/javascripts/comfy/vendor/redactor/i18n/pt.js +75 -0
  78. data/app/assets/javascripts/comfy/vendor/redactor/i18n/ro.js +76 -0
  79. data/app/assets/javascripts/comfy/vendor/redactor/i18n/ru.js +76 -0
  80. data/app/assets/javascripts/comfy/vendor/redactor/i18n/sk.js +76 -0
  81. data/app/assets/javascripts/comfy/vendor/redactor/i18n/sl.js +79 -0
  82. data/app/assets/javascripts/comfy/vendor/redactor/i18n/sq.js +79 -0
  83. data/app/assets/javascripts/comfy/vendor/redactor/i18n/sr-CIR.js +79 -0
  84. data/app/assets/javascripts/comfy/vendor/redactor/i18n/sr-LAT.js +79 -0
  85. data/app/assets/javascripts/comfy/vendor/redactor/i18n/sv.js +74 -0
  86. data/app/assets/javascripts/comfy/vendor/redactor/i18n/th.js +74 -0
  87. data/app/assets/javascripts/comfy/vendor/redactor/i18n/tr.js +75 -0
  88. data/app/assets/javascripts/comfy/vendor/redactor/i18n/ua.js +77 -0
  89. data/app/assets/javascripts/comfy/vendor/redactor/i18n/uk.js +77 -0
  90. data/app/assets/javascripts/comfy/vendor/redactor/i18n/vi.js +74 -0
  91. data/app/assets/javascripts/comfy/vendor/redactor/i18n/zh-CN.js +75 -0
  92. data/app/assets/javascripts/comfy/vendor/redactor/i18n/zh-TW.js +75 -0
  93. data/app/assets/javascripts/comfy/vendor/redactor/imagemanager.js +68 -0
  94. data/app/assets/javascripts/comfy/vendor/redactor/table.js +348 -0
  95. data/app/assets/javascripts/comfy/vendor/redactor/video.js +82 -0
  96. data/app/assets/javascripts/comfy/vendor/redactor.js +9563 -0
  97. data/app/assets/stylesheets/comfy/admin/cms/application.sass +11 -0
  98. data/app/assets/stylesheets/comfy/admin/cms/base.sass +256 -0
  99. data/app/assets/stylesheets/comfy/admin/cms/codemirror_overrides.sass +19 -0
  100. data/app/assets/stylesheets/comfy/admin/cms/custom.sass +1 -0
  101. data/app/assets/stylesheets/comfy/admin/cms/redactor_overrides.sass +22 -0
  102. data/app/assets/stylesheets/comfy/vendor/bootstrap/_alert.scss +51 -0
  103. data/app/assets/stylesheets/comfy/vendor/bootstrap/_badge.scss +54 -0
  104. data/app/assets/stylesheets/comfy/vendor/bootstrap/_breadcrumb.scss +41 -0
  105. data/app/assets/stylesheets/comfy/vendor/bootstrap/_button-group.scss +163 -0
  106. data/app/assets/stylesheets/comfy/vendor/bootstrap/_buttons.scss +137 -0
  107. data/app/assets/stylesheets/comfy/vendor/bootstrap/_card.scss +289 -0
  108. data/app/assets/stylesheets/comfy/vendor/bootstrap/_carousel.scss +197 -0
  109. data/app/assets/stylesheets/comfy/vendor/bootstrap/_close.scss +41 -0
  110. data/app/assets/stylesheets/comfy/vendor/bootstrap/_code.scss +48 -0
  111. data/app/assets/stylesheets/comfy/vendor/bootstrap/_custom-forms.scss +507 -0
  112. data/app/assets/stylesheets/comfy/vendor/bootstrap/_dropdown.scss +191 -0
  113. data/app/assets/stylesheets/comfy/vendor/bootstrap/_forms.scss +330 -0
  114. data/app/assets/stylesheets/comfy/vendor/bootstrap/_functions.scss +86 -0
  115. data/app/assets/stylesheets/comfy/vendor/bootstrap/_grid.scss +52 -0
  116. data/app/assets/stylesheets/comfy/vendor/bootstrap/_images.scss +42 -0
  117. data/app/assets/stylesheets/comfy/vendor/bootstrap/_input-group.scss +193 -0
  118. data/app/assets/stylesheets/comfy/vendor/bootstrap/_jumbotron.scss +17 -0
  119. data/app/assets/stylesheets/comfy/vendor/bootstrap/_list-group.scss +149 -0
  120. data/app/assets/stylesheets/comfy/vendor/bootstrap/_media.scss +8 -0
  121. data/app/assets/stylesheets/comfy/vendor/bootstrap/_mixins.scss +47 -0
  122. data/app/assets/stylesheets/comfy/vendor/bootstrap/_modal.scss +229 -0
  123. data/app/assets/stylesheets/comfy/vendor/bootstrap/_nav.scss +120 -0
  124. data/app/assets/stylesheets/comfy/vendor/bootstrap/_navbar.scss +294 -0
  125. data/app/assets/stylesheets/comfy/vendor/bootstrap/_pagination.scss +73 -0
  126. data/app/assets/stylesheets/comfy/vendor/bootstrap/_popover.scss +171 -0
  127. data/app/assets/stylesheets/comfy/vendor/bootstrap/_print.scss +141 -0
  128. data/app/assets/stylesheets/comfy/vendor/bootstrap/_progress.scss +43 -0
  129. data/app/assets/stylesheets/comfy/vendor/bootstrap/_reboot.scss +483 -0
  130. data/app/assets/stylesheets/comfy/vendor/bootstrap/_root.scss +19 -0
  131. data/app/assets/stylesheets/comfy/vendor/bootstrap/_spinners.scss +55 -0
  132. data/app/assets/stylesheets/comfy/vendor/bootstrap/_tables.scss +185 -0
  133. data/app/assets/stylesheets/comfy/vendor/bootstrap/_toasts.scss +44 -0
  134. data/app/assets/stylesheets/comfy/vendor/bootstrap/_tooltip.scss +115 -0
  135. data/app/assets/stylesheets/comfy/vendor/bootstrap/_transitions.scss +20 -0
  136. data/app/assets/stylesheets/comfy/vendor/bootstrap/_type.scss +125 -0
  137. data/app/assets/stylesheets/comfy/vendor/bootstrap/_utilities.scss +17 -0
  138. data/app/assets/stylesheets/comfy/vendor/bootstrap/_variables.scss +1123 -0
  139. data/app/assets/stylesheets/comfy/vendor/bootstrap/bootstrap-grid.scss +29 -0
  140. data/app/assets/stylesheets/comfy/vendor/bootstrap/bootstrap-reboot.scss +12 -0
  141. data/app/assets/stylesheets/comfy/vendor/bootstrap/bootstrap.scss +44 -0
  142. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_alert.scss +13 -0
  143. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_background-variant.scss +21 -0
  144. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_badge.scss +17 -0
  145. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_border-radius.scss +63 -0
  146. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_box-shadow.scss +20 -0
  147. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_breakpoints.scss +123 -0
  148. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_buttons.scss +107 -0
  149. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_caret.scss +62 -0
  150. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_clearfix.scss +7 -0
  151. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_deprecate.scss +10 -0
  152. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_float.scss +14 -0
  153. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_forms.scss +192 -0
  154. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_gradients.scss +45 -0
  155. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_grid-framework.scss +66 -0
  156. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_grid.scss +51 -0
  157. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_hover.scss +37 -0
  158. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_image.scss +36 -0
  159. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_list-group.scss +21 -0
  160. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_lists.scss +7 -0
  161. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_nav-divider.scss +10 -0
  162. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_pagination.scss +22 -0
  163. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_reset-text.scss +17 -0
  164. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_resize.scss +6 -0
  165. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_screen-reader.scss +33 -0
  166. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_size.scss +7 -0
  167. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_table-row.scss +39 -0
  168. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_text-emphasis.scss +16 -0
  169. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_text-hide.scss +11 -0
  170. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_text-truncate.scss +8 -0
  171. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_transition.scss +16 -0
  172. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_visibility.scss +8 -0
  173. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_align.scss +8 -0
  174. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_background.scss +19 -0
  175. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_borders.scss +75 -0
  176. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_clearfix.scss +3 -0
  177. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_display.scss +26 -0
  178. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_embed.scss +39 -0
  179. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_flex.scss +51 -0
  180. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_float.scss +11 -0
  181. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_overflow.scss +5 -0
  182. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_position.scss +32 -0
  183. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_screenreaders.scss +11 -0
  184. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_shadows.scss +6 -0
  185. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_sizing.scss +20 -0
  186. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_spacing.scss +73 -0
  187. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_stretched-link.scss +19 -0
  188. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_text.scss +72 -0
  189. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_visibility.scss +13 -0
  190. data/app/assets/stylesheets/comfy/vendor/bootstrap/vendor/_rfs.scss +204 -0
  191. data/app/assets/stylesheets/comfy/vendor/fontawesome.css +343 -0
  192. data/app/assets/stylesheets/comfy/vendor/redactor.css +948 -0
  193. data/app/controllers/application_controller.rb +5 -0
  194. data/app/controllers/comfy/admin/base_controller.rb +20 -0
  195. data/app/controllers/comfy/admin/cms/base_controller.rb +54 -0
  196. data/app/controllers/comfy/admin/cms/categories_controller.rb +38 -0
  197. data/app/controllers/comfy/admin/cms/files_controller.rb +140 -0
  198. data/app/controllers/comfy/admin/cms/layouts_controller.rb +69 -0
  199. data/app/controllers/comfy/admin/cms/pages_controller.rb +193 -0
  200. data/app/controllers/comfy/admin/cms/revisions/base_controller.rb +48 -0
  201. data/app/controllers/comfy/admin/cms/revisions/layout_controller.rb +16 -0
  202. data/app/controllers/comfy/admin/cms/revisions/page_controller.rb +28 -0
  203. data/app/controllers/comfy/admin/cms/revisions/snippet_controller.rb +16 -0
  204. data/app/controllers/comfy/admin/cms/revisions/translation_controller.rb +29 -0
  205. data/app/controllers/comfy/admin/cms/sites_controller.rb +68 -0
  206. data/app/controllers/comfy/admin/cms/snippets_controller.rb +66 -0
  207. data/app/controllers/comfy/admin/cms/translations_controller.rb +117 -0
  208. data/app/controllers/comfy/cms/assets_controller.rb +38 -0
  209. data/app/controllers/comfy/cms/base_controller.rb +35 -0
  210. data/app/controllers/comfy/cms/content_controller.rb +90 -0
  211. data/app/controllers/concerns/comfy/paginate.rb +11 -0
  212. data/app/controllers/concerns/comfy/reorder_action.rb +19 -0
  213. data/app/helpers/comfy/admin/cms_helper.rb +50 -0
  214. data/app/helpers/comfy/cms_helper.rb +71 -0
  215. data/app/models/comfy/cms/categorization.rb +23 -0
  216. data/app/models/comfy/cms/category.rb +22 -0
  217. data/app/models/comfy/cms/file.rb +65 -0
  218. data/app/models/comfy/cms/fragment.rb +65 -0
  219. data/app/models/comfy/cms/layout.rb +119 -0
  220. data/app/models/comfy/cms/page.rb +182 -0
  221. data/app/models/comfy/cms/revision.rb +10 -0
  222. data/app/models/comfy/cms/site.rb +93 -0
  223. data/app/models/comfy/cms/snippet.rb +43 -0
  224. data/app/models/comfy/cms/translation.rb +47 -0
  225. data/app/models/concerns/comfy/cms/with_categories.rb +51 -0
  226. data/app/models/concerns/comfy/cms/with_fragments.rb +123 -0
  227. data/app/views/comfy/admin/cms/categories/_categories.html.haml +4 -0
  228. data/app/views/comfy/admin/cms/categories/_edit.html.haml +7 -0
  229. data/app/views/comfy/admin/cms/categories/_form.html.haml +5 -0
  230. data/app/views/comfy/admin/cms/categories/_index.html.haml +28 -0
  231. data/app/views/comfy/admin/cms/categories/_show.html.haml +15 -0
  232. data/app/views/comfy/admin/cms/categories/create.js.erb +7 -0
  233. data/app/views/comfy/admin/cms/categories/destroy.js.erb +8 -0
  234. data/app/views/comfy/admin/cms/categories/edit.js.erb +3 -0
  235. data/app/views/comfy/admin/cms/categories/update.js.erb +6 -0
  236. data/app/views/comfy/admin/cms/files/_file.html.haml +31 -0
  237. data/app/views/comfy/admin/cms/files/_form.html.haml +26 -0
  238. data/app/views/comfy/admin/cms/files/_modal.html.haml +3 -0
  239. data/app/views/comfy/admin/cms/files/destroy.js.erb +4 -0
  240. data/app/views/comfy/admin/cms/files/edit.html.haml +5 -0
  241. data/app/views/comfy/admin/cms/files/index.html.haml +31 -0
  242. data/app/views/comfy/admin/cms/files/new.html.haml +5 -0
  243. data/app/views/comfy/admin/cms/fragments/_form_fragment_attachments.html.haml +23 -0
  244. data/app/views/comfy/admin/cms/fragments/_form_fragments.html.haml +38 -0
  245. data/app/views/comfy/admin/cms/layouts/_form.html.haml +20 -0
  246. data/app/views/comfy/admin/cms/layouts/_index_branch.html.haml +26 -0
  247. data/app/views/comfy/admin/cms/layouts/edit.html.haml +9 -0
  248. data/app/views/comfy/admin/cms/layouts/index.html.haml +10 -0
  249. data/app/views/comfy/admin/cms/layouts/new.html.haml +5 -0
  250. data/app/views/comfy/admin/cms/pages/_form.html.haml +31 -0
  251. data/app/views/comfy/admin/cms/pages/_index_branch.html.haml +44 -0
  252. data/app/views/comfy/admin/cms/pages/edit.html.haml +14 -0
  253. data/app/views/comfy/admin/cms/pages/index.html.haml +13 -0
  254. data/app/views/comfy/admin/cms/pages/new.html.haml +5 -0
  255. data/app/views/comfy/admin/cms/pages/toggle_branch.js.erb +19 -0
  256. data/app/views/comfy/admin/cms/revisions/_sidebar.html.haml +2 -0
  257. data/app/views/comfy/admin/cms/revisions/show.html.haml +36 -0
  258. data/app/views/comfy/admin/cms/sites/_form.html.haml +15 -0
  259. data/app/views/comfy/admin/cms/sites/edit.html.haml +5 -0
  260. data/app/views/comfy/admin/cms/sites/index.html.haml +28 -0
  261. data/app/views/comfy/admin/cms/sites/new.html.haml +5 -0
  262. data/app/views/comfy/admin/cms/snippets/_form.html.haml +19 -0
  263. data/app/views/comfy/admin/cms/snippets/edit.html.haml +9 -0
  264. data/app/views/comfy/admin/cms/snippets/index.html.haml +33 -0
  265. data/app/views/comfy/admin/cms/snippets/new.html.haml +5 -0
  266. data/app/views/comfy/admin/cms/translations/_form.html.haml +20 -0
  267. data/app/views/comfy/admin/cms/translations/_sidebar.html.haml +19 -0
  268. data/app/views/comfy/admin/cms/translations/edit.html.haml +10 -0
  269. data/app/views/comfy/admin/cms/translations/new.html.haml +5 -0
  270. data/app/views/kaminari/comfy/_first_page.html.haml +3 -0
  271. data/app/views/kaminari/comfy/_gap.html.haml +2 -0
  272. data/app/views/kaminari/comfy/_last_page.html.haml +3 -0
  273. data/app/views/kaminari/comfy/_next_page.html.haml +2 -0
  274. data/app/views/kaminari/comfy/_page.html.haml +2 -0
  275. data/app/views/kaminari/comfy/_paginator.html.haml +11 -0
  276. data/app/views/kaminari/comfy/_prev_page.html.haml +2 -0
  277. data/app/views/layouts/comfy/admin/cms/_body.html.haml +14 -0
  278. data/app/views/layouts/comfy/admin/cms/_flash.html.haml +4 -0
  279. data/app/views/layouts/comfy/admin/cms/_footer_js.html.haml +6 -0
  280. data/app/views/layouts/comfy/admin/cms/_head.html.haml +19 -0
  281. data/app/views/layouts/comfy/admin/cms/_left.html.haml +46 -0
  282. data/app/views/layouts/comfy/admin/cms/_right.html.haml +5 -0
  283. data/app/views/layouts/comfy/admin/cms.html.haml +4 -0
  284. data/bin/bundle +3 -0
  285. data/bin/rails +4 -0
  286. data/bin/rake +4 -0
  287. data/bin/setup +36 -0
  288. data/bin/update +31 -0
  289. data/bin/yarn +11 -0
  290. data/comfy_middle_seat.gemspec +35 -0
  291. data/config/application.rb +62 -0
  292. data/config/boot.rb +5 -0
  293. data/config/cable.yml +10 -0
  294. data/config/cms_routes.rb +8 -0
  295. data/config/database.yml +40 -0
  296. data/config/environment.rb +7 -0
  297. data/config/environments/development.rb +81 -0
  298. data/config/environments/production.rb +93 -0
  299. data/config/environments/test.rb +74 -0
  300. data/config/initializers/comfortable_media_surfer.rb +122 -0
  301. data/config/initializers/content_security_policy.rb +27 -0
  302. data/config/initializers/filter_parameter_logging.rb +10 -0
  303. data/config/initializers/inflections.rb +18 -0
  304. data/config/initializers/json.rb +11 -0
  305. data/config/initializers/new_framework_defaults_7_0.rb +144 -0
  306. data/config/initializers/new_framework_defaults_7_1.rb +225 -0
  307. data/config/initializers/permissions_policy.rb +15 -0
  308. data/config/locales/ar.yml +268 -0
  309. data/config/locales/ca.yml +268 -0
  310. data/config/locales/cs.yml +268 -0
  311. data/config/locales/da.yml +268 -0
  312. data/config/locales/de.yml +268 -0
  313. data/config/locales/en.yml +268 -0
  314. data/config/locales/es.yml +268 -0
  315. data/config/locales/fi.yml +268 -0
  316. data/config/locales/fr.yml +268 -0
  317. data/config/locales/gr.yml +268 -0
  318. data/config/locales/hr.yml +268 -0
  319. data/config/locales/it.yml +268 -0
  320. data/config/locales/ja.yml +268 -0
  321. data/config/locales/nb.yml +268 -0
  322. data/config/locales/nl.yml +268 -0
  323. data/config/locales/pl.yml +268 -0
  324. data/config/locales/pt-BR.yml +268 -0
  325. data/config/locales/ru.yml +268 -0
  326. data/config/locales/sk.yml +268 -0
  327. data/config/locales/sv.yml +268 -0
  328. data/config/locales/tr.yml +268 -0
  329. data/config/locales/uk.yml +268 -0
  330. data/config/locales/zh-CN.yml +268 -0
  331. data/config/locales/zh-TW.yml +268 -0
  332. data/config/puma.rb +43 -0
  333. data/config/storage.yml +35 -0
  334. data/config.ru +6 -0
  335. data/db/cms_seeds/sample-site/files/_default.jpg.yml +5 -0
  336. data/db/cms_seeds/sample-site/files/default.jpg +0 -0
  337. data/db/cms_seeds/sample-site/layouts/default/content.html +16 -0
  338. data/db/cms_seeds/sample-site/layouts/default/nested/content.html +14 -0
  339. data/db/cms_seeds/sample-site/pages/index/child_a/content.html +7 -0
  340. data/db/cms_seeds/sample-site/pages/index/child_b/child_a/content.html +6 -0
  341. data/db/cms_seeds/sample-site/pages/index/child_b/content.html +6 -0
  342. data/db/cms_seeds/sample-site/pages/index/cms logo.png +0 -0
  343. data/db/cms_seeds/sample-site/pages/index/content.es.html +6 -0
  344. data/db/cms_seeds/sample-site/pages/index/content.fr.html +6 -0
  345. data/db/cms_seeds/sample-site/pages/index/content.html +25 -0
  346. data/db/cms_seeds/sample-site/pages/index/footer.png +0 -0
  347. data/db/cms_seeds/sample-site/pages/index/header.png +0 -0
  348. data/db/cms_seeds/sample-site/snippets/default.html +8 -0
  349. data/db/migrate/00_create_active_storage_tables.active_storage.rb +50 -0
  350. data/db/migrate/01_create_cms.rb +142 -0
  351. data/db/migrate/02_add_markdown_to_snippets.rb +5 -0
  352. data/gemfiles/7.2.gemfile +36 -0
  353. data/gemfiles/8.0.gemfile +36 -0
  354. data/gemfiles/8.1.gemfile +36 -0
  355. data/lib/comfortable_media_surfer/access_control/admin_authentication.rb +22 -0
  356. data/lib/comfortable_media_surfer/access_control/admin_authorization.rb +10 -0
  357. data/lib/comfortable_media_surfer/access_control/public_authentication.rb +10 -0
  358. data/lib/comfortable_media_surfer/access_control/public_authorization.rb +10 -0
  359. data/lib/comfortable_media_surfer/configuration.rb +138 -0
  360. data/lib/comfortable_media_surfer/content/block.rb +12 -0
  361. data/lib/comfortable_media_surfer/content/params_parser.rb +149 -0
  362. data/lib/comfortable_media_surfer/content/renderer.rb +146 -0
  363. data/lib/comfortable_media_surfer/content/tag.rb +48 -0
  364. data/lib/comfortable_media_surfer/content/tags/asset.rb +57 -0
  365. data/lib/comfortable_media_surfer/content/tags/audio.rb +39 -0
  366. data/lib/comfortable_media_surfer/content/tags/breadcrumbs.rb +43 -0
  367. data/lib/comfortable_media_surfer/content/tags/checkbox.rb +27 -0
  368. data/lib/comfortable_media_surfer/content/tags/children.rb +52 -0
  369. data/lib/comfortable_media_surfer/content/tags/date.rb +19 -0
  370. data/lib/comfortable_media_surfer/content/tags/datetime.rb +42 -0
  371. data/lib/comfortable_media_surfer/content/tags/file.rb +70 -0
  372. data/lib/comfortable_media_surfer/content/tags/file_link.rb +58 -0
  373. data/lib/comfortable_media_surfer/content/tags/files.rb +41 -0
  374. data/lib/comfortable_media_surfer/content/tags/fragment.rb +64 -0
  375. data/lib/comfortable_media_surfer/content/tags/helper.rb +53 -0
  376. data/lib/comfortable_media_surfer/content/tags/image.rb +56 -0
  377. data/lib/comfortable_media_surfer/content/tags/markdown.rb +22 -0
  378. data/lib/comfortable_media_surfer/content/tags/mixins/file_content.rb +42 -0
  379. data/lib/comfortable_media_surfer/content/tags/number.rb +18 -0
  380. data/lib/comfortable_media_surfer/content/tags/page_file_link.rb +86 -0
  381. data/lib/comfortable_media_surfer/content/tags/partial.rb +47 -0
  382. data/lib/comfortable_media_surfer/content/tags/siblings.rb +66 -0
  383. data/lib/comfortable_media_surfer/content/tags/snippet.rb +36 -0
  384. data/lib/comfortable_media_surfer/content/tags/template.rb +42 -0
  385. data/lib/comfortable_media_surfer/content/tags/text.rb +18 -0
  386. data/lib/comfortable_media_surfer/content/tags/textarea.rb +19 -0
  387. data/lib/comfortable_media_surfer/content/tags/wysiwyg.rb +19 -0
  388. data/lib/comfortable_media_surfer/content/tags.rb +29 -0
  389. data/lib/comfortable_media_surfer/content.rb +11 -0
  390. data/lib/comfortable_media_surfer/engine.rb +24 -0
  391. data/lib/comfortable_media_surfer/error.rb +24 -0
  392. data/lib/comfortable_media_surfer/extensions/acts_as_tree.rb +114 -0
  393. data/lib/comfortable_media_surfer/extensions/has_revisions.rb +68 -0
  394. data/lib/comfortable_media_surfer/extensions.rb +8 -0
  395. data/lib/comfortable_media_surfer/form_builder.rb +43 -0
  396. data/lib/comfortable_media_surfer/render_methods.rb +106 -0
  397. data/lib/comfortable_media_surfer/routing.rb +87 -0
  398. data/lib/comfortable_media_surfer/seeds/file/exporter.rb +37 -0
  399. data/lib/comfortable_media_surfer/seeds/file/importer.rb +55 -0
  400. data/lib/comfortable_media_surfer/seeds/layout/exporter.rb +38 -0
  401. data/lib/comfortable_media_surfer/seeds/layout/importer.rb +60 -0
  402. data/lib/comfortable_media_surfer/seeds/page/exporter.rb +88 -0
  403. data/lib/comfortable_media_surfer/seeds/page/importer.rb +245 -0
  404. data/lib/comfortable_media_surfer/seeds/snippet/exporter.rb +32 -0
  405. data/lib/comfortable_media_surfer/seeds/snippet/importer.rb +47 -0
  406. data/lib/comfortable_media_surfer/seeds.rb +110 -0
  407. data/lib/comfortable_media_surfer/version.rb +3 -0
  408. data/lib/comfortable_media_surfer/view_hooks.rb +33 -0
  409. data/lib/comfortable_media_surfer.rb +56 -0
  410. data/lib/comfy_middle_seat/version.rb +5 -0
  411. data/lib/comfy_middle_seat.rb +3 -0
  412. data/lib/generators/comfy/cms/README +21 -0
  413. data/lib/generators/comfy/cms/assets_generator.rb +16 -0
  414. data/lib/generators/comfy/cms/cms_generator.rb +69 -0
  415. data/lib/generators/comfy/cms/controllers_generator.rb +15 -0
  416. data/lib/generators/comfy/cms/models_generator.rb +15 -0
  417. data/lib/generators/comfy/cms/views_generator.rb +15 -0
  418. data/lib/generators/comfy/scaffold/scaffold_generator.rb +79 -0
  419. data/lib/generators/comfy/scaffold/templates/controller.rb.tt +62 -0
  420. data/lib/generators/comfy/scaffold/templates/migration.rb.tt +11 -0
  421. data/lib/generators/comfy/scaffold/templates/model.rb.tt +21 -0
  422. data/lib/generators/comfy/scaffold/templates/tests/controller.rb.tt +115 -0
  423. data/lib/generators/comfy/scaffold/templates/tests/fixture.yml.tt +4 -0
  424. data/lib/generators/comfy/scaffold/templates/tests/model.rb.tt +26 -0
  425. data/lib/generators/comfy/scaffold/templates/views/_form.haml.tt +7 -0
  426. data/lib/generators/comfy/scaffold/templates/views/edit.haml.tt +5 -0
  427. data/lib/generators/comfy/scaffold/templates/views/index.haml.tt +21 -0
  428. data/lib/generators/comfy/scaffold/templates/views/new.haml.tt +5 -0
  429. data/lib/generators/comfy/scaffold/templates/views/show.haml.tt +4 -0
  430. data/lib/tasks/cms_assets.rake +19 -0
  431. data/lib/tasks/cms_seeds.rake +40 -0
  432. data/package-lock.json +989 -0
  433. data/package.json +23 -0
  434. data/public/favicon.ico +0 -0
  435. data/rakelib/create_release.rake +82 -0
  436. metadata +665 -0
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Load the Rails application.
4
+ require_relative 'application'
5
+
6
+ # Initialize the rails application
7
+ ComfortableMediaSurfer::Application.initialize!
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/core_ext/integer/time'
4
+
5
+ defined?(ComfortableMediaSurfer::Application) && ComfortableMediaSurfer::Application.configure do
6
+ # Settings specified here will take precedence over those in config/application.rb.
7
+
8
+ # In the development environment your application's code is reloaded any time
9
+ # it changes. This slows down response time but is perfect for development
10
+ # since you don't have to restart the web server when you make code changes.
11
+ config.enable_reloading = true
12
+
13
+ # Do not eager load code on boot.
14
+ config.eager_load = false
15
+
16
+ # Show full error reports.
17
+ config.consider_all_requests_local = true
18
+
19
+ # Enable server timing.
20
+ config.server_timing = true
21
+
22
+ # Enable/disable Action Controller caching. By default Action Controller caching is disabled.
23
+ # Run rails dev:cache to toggle Action Controller caching.
24
+ if Rails.root.join('tmp/caching-dev.txt').exist?
25
+ config.action_controller.perform_caching = true
26
+ config.action_controller.enable_fragment_cache_logging = true
27
+
28
+ config.cache_store = :memory_store
29
+ config.public_file_server.headers = { 'cache-control' => "public, max-age=#{2.days.to_i}" }
30
+ else
31
+ config.action_controller.perform_caching = false
32
+ config.cache_store = :null_store
33
+ end
34
+
35
+ # Store uploaded files on the local file system (see config/storage.yml for options).
36
+ config.active_storage.service = :local
37
+
38
+ # Don't care if the mailer can't send.
39
+ config.action_mailer.raise_delivery_errors = false
40
+
41
+ # Make template changes take effect immediately.
42
+ config.action_mailer.perform_caching = false
43
+
44
+ # Set localhost to be used by links generated in mailer templates.
45
+ config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
46
+
47
+ # Print deprecation notices to the Rails logger.
48
+ config.active_support.deprecation = :log
49
+
50
+ # Raise exceptions for disallowed deprecations.
51
+ config.active_support.disallowed_deprecation = :raise
52
+
53
+ # Tell Active Support which deprecation messages to disallow.
54
+ config.active_support.disallowed_deprecation_warnings = []
55
+
56
+ # Raise an error on page load if there are pending migrations.
57
+ config.active_record.migration_error = :page_load
58
+
59
+ # Highlight code that triggered database queries in logs.
60
+ config.active_record.verbose_query_logs = true
61
+
62
+ # Highlight code that enqueued background job in logs.
63
+ config.active_job.verbose_enqueue_logs = true
64
+
65
+ # Raises error for missing translations.
66
+ # config.i18n.raise_on_missing_translations = true
67
+
68
+ # Annotate rendered view with file names.
69
+ # config.action_view.annotate_rendered_view_with_filenames = true
70
+
71
+ # Uncomment if you wish to allow Action Cable access from any origin.
72
+ # config.action_cable.disable_request_forgery_protection = true
73
+
74
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7.1.0')
75
+ # Raise error when a before_action's only/except options reference missing actions
76
+ config.action_controller.raise_on_missing_callback_actions = true
77
+ end
78
+
79
+ # Apply autocorrection by RuboCop to files generated by `bin/rails generate`.
80
+ # config.generators.apply_rubocop_autocorrect_after_generate!
81
+ end
@@ -0,0 +1,93 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/core_ext/integer/time'
4
+
5
+ defined?(ComfortableMediaSurfer::Application) && ComfortableMediaSurfer::Application.configure do
6
+ # Settings specified here will take precedence over those in config/application.rb.
7
+
8
+ # Code is not reloaded between requests.
9
+ config.enable_reloading = false
10
+
11
+ # Eager load code on boot. This eager loads most of Rails and
12
+ # your application in memory, allowing both threaded web servers
13
+ # and those relying on copy on write to perform better.
14
+ # Rake tasks automatically ignore this option for performance.
15
+ config.eager_load = true
16
+
17
+ # Full error reports are disabled and caching is turned on.
18
+ config.consider_all_requests_local = false
19
+ config.action_controller.perform_caching = true
20
+
21
+ # Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment
22
+ # key such as config/credentials/production.key. This key is used to decrypt credentials (and other encrypted files).
23
+ # config.require_master_key = true
24
+
25
+ # Enable static file serving from the `/public` folder (turn off if using NGINX/Apache for it).
26
+ config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
27
+
28
+ # Enable serving of images, stylesheets, and JavaScripts from an asset server.
29
+ # config.asset_host = "http://assets.example.com"
30
+
31
+ # Specifies the header that your server uses for sending files.
32
+ # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache
33
+ # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX
34
+
35
+ # Store uploaded files on the local file system (see config/storage.yml for options).
36
+ config.active_storage.service = :local
37
+
38
+ # Mount Action Cable outside main process or domain.
39
+ # config.action_cable.mount_path = nil
40
+ # config.action_cable.url = "wss://example.com/cable"
41
+ # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ]
42
+
43
+ # Assume all access to the app is happening through a SSL-terminating reverse proxy.
44
+ # Can be used together with config.force_ssl for Strict-Transport-Security and secure cookies.
45
+ # config.assume_ssl = true
46
+
47
+ # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
48
+ config.force_ssl = true
49
+
50
+ # Log to STDOUT by default
51
+ config.logger = ActiveSupport::Logger.new($stdout)
52
+ .tap { |logger| logger.formatter = Logger::Formatter.new }
53
+ .then { |logger| ActiveSupport::TaggedLogging.new(logger) }
54
+
55
+ # Prepend all log lines with the following tags.
56
+ config.log_tags = [:request_id]
57
+
58
+ # Info include generic and useful information about system operation, but avoids logging too much
59
+ # information to avoid inadvertent exposure of personally identifiable information (PII). If you
60
+ # want to log everything, set the level to "debug".
61
+ config.log_level = ENV.fetch('RAILS_LOG_LEVEL', 'info')
62
+
63
+ # Use a different cache store in production.
64
+ # config.cache_store = :mem_cache_store
65
+
66
+ # Use a real queuing backend for Active Job (and separate queues per environment).
67
+ # config.active_job.queue_adapter = :resque
68
+ # config.active_job.queue_name_prefix = "comfy_production"
69
+
70
+ config.action_mailer.perform_caching = false
71
+
72
+ # Ignore bad email addresses and do not raise email delivery errors.
73
+ # Set this to true and configure the email server for immediate delivery to raise delivery errors.
74
+ # config.action_mailer.raise_delivery_errors = false
75
+
76
+ # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
77
+ # the I18n.default_locale when a translation cannot be found).
78
+ config.i18n.fallbacks = true
79
+
80
+ # Don't log any deprecations.
81
+ config.active_support.report_deprecations = false
82
+
83
+ # Do not dump schema after migrations.
84
+ config.active_record.dump_schema_after_migration = false
85
+
86
+ # Enable DNS rebinding protection and other `Host` header attacks.
87
+ # config.hosts = [
88
+ # "example.com", # Allow requests from example.com
89
+ # /.*\.example\.com/ # Allow requests from subdomains like `www.example.com`
90
+ # ]
91
+ # Skip DNS rebinding protection for the default health check endpoint.
92
+ # config.host_authorization = { exclude: ->(request) { request.path == "/up" } }
93
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/core_ext/integer/time'
4
+
5
+ # The test environment is used exclusively to run your application's
6
+ # test suite. You never need to work with it otherwise. Remember that
7
+ # your test database is "scratch space" for the test suite and is wiped
8
+ # and recreated between test runs. Don't rely on the data there!
9
+
10
+ defined?(ComfortableMediaSurfer::Application) && ComfortableMediaSurfer::Application.configure do
11
+ # Settings specified here will take precedence over those in config/application.rb.
12
+
13
+ config.active_job.queue_adapter = :test # added for Rails 7.1
14
+
15
+ # While tests run files are not watched, reloading is not necessary.
16
+ config.enable_reloading = false
17
+
18
+ # Eager loading loads your entire application. When running a single test locally,
19
+ # this is usually not necessary, and can slow down your test suite. However, it's
20
+ # recommended that you enable it in continuous integration systems to ensure eager
21
+ # loading is working properly before deploying your code.
22
+ config.eager_load = ENV['CI'].present?
23
+
24
+ # Configure public file server for tests with Cache-Control for performance.
25
+ config.public_file_server.enabled = true
26
+ config.public_file_server.headers = {
27
+ 'Cache-Control' => "public, max-age=#{1.hour.to_i}"
28
+ }
29
+
30
+ # Show full error reports and disable caching.
31
+ config.consider_all_requests_local = true
32
+ config.action_controller.perform_caching = false
33
+ config.cache_store = :null_store
34
+
35
+ # Raise exceptions instead of rendering exception templates.
36
+ config.action_dispatch.show_exceptions = if Gem::Version.new(Rails.version) < Gem::Version.new('7.1.0')
37
+ false
38
+ else
39
+ :none
40
+ end
41
+
42
+ # Disable request forgery protection in test environment.
43
+ config.action_controller.allow_forgery_protection = false
44
+
45
+ # Store uploaded files on the local file system in a temporary directory.
46
+ config.active_storage.service = :test
47
+
48
+ config.action_mailer.perform_caching = false
49
+
50
+ # Tell Action Mailer not to deliver emails to the real world.
51
+ # The :test delivery method accumulates sent emails in the
52
+ # ActionMailer::Base.deliveries array.
53
+ config.action_mailer.delivery_method = :test
54
+
55
+ # Print deprecation notices to the stderr.
56
+ config.active_support.deprecation = :stderr
57
+
58
+ # Raise exceptions for disallowed deprecations.
59
+ config.active_support.disallowed_deprecation = :raise
60
+
61
+ # Tell Active Support which deprecation messages to disallow.
62
+ config.active_support.disallowed_deprecation_warnings = []
63
+
64
+ # Raises error for missing translations.
65
+ # config.i18n.raise_on_missing_translations = true
66
+
67
+ # Annotate rendered view with file names.
68
+ # config.action_view.annotate_rendered_view_with_filenames = true
69
+
70
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7.1.0')
71
+ # Raise error when a before_action's only/except options reference missing actions
72
+ config.action_controller.raise_on_missing_callback_actions = true
73
+ end
74
+ end
@@ -0,0 +1,122 @@
1
+ # frozen_string_literal: true
2
+
3
+ ComfortableMediaSurfer.configure do |config|
4
+ # Title of the admin area
5
+ # config.cms_title = 'Comfy CMS Engine'
6
+
7
+ # Controller that is inherited from CmsAdmin::BaseController
8
+ # config.admin_base_controller = 'ApplicationController'
9
+
10
+ # Controller that Comfy::Cms::BaseController will inherit from
11
+ # config.public_base_controller = 'ApplicationController'
12
+
13
+ # Module responsible for authentication. You can replace it with your own.
14
+ # It simply needs to have #authenticate method. See http_auth.rb for reference.
15
+ # config.admin_auth = 'ComfyAdminAuthentication'
16
+
17
+ # Module responsible for authorization on admin side. It should have #authorize
18
+ # method that returns true or false based on params and loaded instance
19
+ # variables available for a given controller.
20
+ # config.admin_authorization = 'ComfyAdminAuthorization'
21
+
22
+ # Module responsible for public authentication. Similar to the above. You also
23
+ # will have access to @cms_site, @cms_layout, @cms_page so you can use them in
24
+ # your logic. Default module doesn't do anything.
25
+ # config.public_auth = 'ComfyPublicAuthentication'
26
+
27
+ # Module responsible for public authorization. It should have #authorize
28
+ # method that returns true or false based on params and loaded instance
29
+ # variables available for a given controller.
30
+ # config.public_authorization = 'ComfyPublicAuthorization'
31
+
32
+ # When arriving at /cms-admin you may chose to redirect to arbirtary path,
33
+ # for example '/cms-admin/users'
34
+ # config.admin_route_redirect = ''
35
+
36
+ # Sofa allows you to setup entire site from files. Database is updated with each
37
+ # request (if necessary). Please note that database entries are destroyed if there's
38
+ # no corresponding file. Seeds are disabled by default.
39
+ # config.enable_seeds = false
40
+
41
+ # Path where seeds can be located.
42
+ # config.seeds_path = File.expand_path('db/cms_seeds', Rails.root)
43
+
44
+ # Content for Layouts, Pages and Snippets has a revision history. You can revert
45
+ # a previous version using this system. You can control how many revisions per
46
+ # object you want to keep. Set it to 0 if you wish to turn this feature off.
47
+ # config.revisions_limit = 25
48
+
49
+ # Locale definitions. If you want to define your own locale merge
50
+ # {:locale => 'Locale Title'} with this.
51
+ # config.locales = {:en => 'English', :es => 'Español'}
52
+
53
+ # Admin interface will respect the locale of the site being managed. However you can
54
+ # force it to English by setting this to `:en`
55
+ # config.admin_locale = nil
56
+
57
+ # A class that is included as a sweeper to admin base controller if it's set
58
+ # config.admin_cache_sweeper = nil
59
+
60
+ # By default you cannot have irb code inside your layouts/pages/snippets.
61
+ # Generally this is to prevent putting something like this:
62
+ # <% User.delete_all %> but if you really want to allow it...
63
+ # config.allow_erb = false
64
+
65
+ # Whitelist of all helper methods that can be used via {{cms:helper}} tag. By default
66
+ # all helpers are allowed except `eval`, `send`, `call` and few others. Empty array
67
+ # will prevent rendering of all helpers.
68
+ # config.allowed_helpers = nil
69
+
70
+ # Whitelist of partials paths that can be used via {{cms:partial}} tag. All partials
71
+ # are accessible by default. Empty array will prevent rendering of all partials.
72
+ # config.allowed_partials = nil
73
+
74
+ # Site aliases, if you want to have aliases for your site. Good for harmonizing
75
+ # production env with dev/testing envs.
76
+ # e.g. config.hostname_aliases = {'host.com' => 'host.inv', 'host_a.com' => ['host.lvh.me', 'host.dev']}
77
+ # Default is nil (not used)
78
+ # config.hostname_aliases = nil
79
+
80
+ # Reveal partials that can be overwritten in the admin area.
81
+ # Default is false.
82
+ # config.reveal_cms_partials = false
83
+ #
84
+ # Customize the returned content json data
85
+ # include fragments in content json
86
+ # config.content_json_options = {
87
+ # include: [:fragments]
88
+ # }
89
+ end
90
+
91
+ # Default credentials for ComfortableMediaSurfer::AccessControl::AdminAuthentication
92
+ # YOU REALLY WANT TO CHANGE THIS BEFORE PUTTING YOUR SITE LIVE
93
+ ComfortableMediaSurfer::AccessControl::AdminAuthentication.username = 'user'
94
+ ComfortableMediaSurfer::AccessControl::AdminAuthentication.password = 'pass'
95
+
96
+ # Uncomment this module and `config.admin_auth` above to use custom admin authentication
97
+ # module ComfyAdminAuthentication
98
+ # def authenticate
99
+ # return true
100
+ # end
101
+ # end
102
+
103
+ # Uncomment this module and `config.admin_authorization` above to use custom admin authorization
104
+ # module ComfyAdminAuthorization
105
+ # def authorize
106
+ # return true
107
+ # end
108
+ # end
109
+
110
+ # Uncomment this module and `config.public_auth` above to use custom public authentication
111
+ # module ComfyPublicAuthentication
112
+ # def authenticate
113
+ # return true
114
+ # end
115
+ # end
116
+
117
+ # Uncomment this module and `config.public_authorization` above to use custom public authorization
118
+ # module ComfyPublicAuthorization
119
+ # def authorize
120
+ # return true
121
+ # end
122
+ # end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Be sure to restart your server when you modify this file.
4
+
5
+ # Define an application-wide content security policy.
6
+ # See the Securing Rails Applications Guide for more information:
7
+ # https://guides.rubyonrails.org/security.html#content-security-policy-header
8
+
9
+ # Rails.application.configure do
10
+ # config.content_security_policy do |policy|
11
+ # policy.default_src :self, :https
12
+ # policy.font_src :self, :https, :data
13
+ # policy.img_src :self, :https, :data
14
+ # policy.object_src :none
15
+ # policy.script_src :self, :https
16
+ # policy.style_src :self, :https
17
+ # # Specify URI for violation reports
18
+ # # policy.report_uri "/csp-violation-report-endpoint"
19
+ # end
20
+ #
21
+ # # Generate session nonces for permitted importmap, inline scripts, and inline styles.
22
+ # config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s }
23
+ # config.content_security_policy_nonce_directives = %w(script-src style-src)
24
+ #
25
+ # # Report violations without enforcing the policy.
26
+ # # config.content_security_policy_report_only = true
27
+ # end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Be sure to restart your server when you modify this file.
4
+
5
+ # Configure parameters to be partially matched (e.g. passw matches password) and filtered from the log file.
6
+ # Use this to limit dissemination of sensitive information.
7
+ # See the ActiveSupport::ParameterFilter documentation for supported notations and behaviors.
8
+ Rails.application.config.filter_parameters += %i[
9
+ passw secret token _key crypt salt certificate otp ssn
10
+ ]
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Be sure to restart your server when you modify this file.
4
+
5
+ # Add new inflection rules using the following format. Inflections
6
+ # are locale specific, and you may define rules for as many different
7
+ # locales as you wish. All of these examples are active by default:
8
+ # ActiveSupport::Inflector.inflections(:en) do |inflect|
9
+ # inflect.plural /^(ox)$/i, "\\1en"
10
+ # inflect.singular /^(ox)en/i, "\\1"
11
+ # inflect.irregular "person", "people"
12
+ # inflect.uncountable %w( fish sheep )
13
+ # end
14
+
15
+ # These inflection rules are supported but not enabled by default:
16
+ # ActiveSupport::Inflector.inflections(:en) do |inflect|
17
+ # inflect.acronym "RESTful"
18
+ # end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JSON
4
+ module_function
5
+
6
+ def parse(source, opts = {})
7
+ opts = opts.dup
8
+ opts.delete(:escape)
9
+ Parser.new(source, **opts).parse
10
+ end
11
+ end
@@ -0,0 +1,144 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Be sure to restart your server when you modify this file.
4
+ #
5
+ # This file eases your Rails 7.0 framework defaults upgrade.
6
+ #
7
+ # Uncomment each configuration one by one to switch to the new default.
8
+ # Once your application is ready to run with all new defaults, you can remove
9
+ # this file and set the `config.load_defaults` to `7.0`.
10
+ #
11
+ # Read the Guide for Upgrading Ruby on Rails for more info on each option.
12
+ # https://guides.rubyonrails.org/upgrading_ruby_on_rails.html
13
+
14
+ # `button_to` view helper will render `<button>` element, regardless of whether
15
+ # or not the content is passed as the first argument or as a block.
16
+ # Rails.application.config.action_view.button_to_generates_button_tag = true
17
+
18
+ # `stylesheet_link_tag` view helper will not render the media attribute by default.
19
+ # Rails.application.config.action_view.apply_stylesheet_media_default = false
20
+
21
+ # Change the digest class for the key generators to `OpenSSL::Digest::SHA256`.
22
+ # Changing this default means invalidate all encrypted messages generated by
23
+ # your application and, all the encrypted cookies. Only change this after you
24
+ # rotated all the messages using the key rotator.
25
+ #
26
+ # See upgrading guide for more information on how to build a rotator.
27
+ # https://guides.rubyonrails.org/v7.0/upgrading_ruby_on_rails.html
28
+ # Rails.application.config.active_support.key_generator_hash_digest_class = OpenSSL::Digest::SHA256
29
+
30
+ # Change the digest class for ActiveSupport::Digest.
31
+ # Changing this default means that for example Etags change and
32
+ # various cache keys leading to cache invalidation.
33
+ # Rails.application.config.active_support.hash_digest_class = OpenSSL::Digest::SHA256
34
+
35
+ # Don't override ActiveSupport::TimeWithZone.name and use the default Ruby
36
+ # implementation.
37
+ # Rails.application.config.active_support.remove_deprecated_time_with_zone_name = true
38
+
39
+ # Calls `Rails.application.executor.wrap` around test cases.
40
+ # This makes test cases behave closer to an actual request or job.
41
+ # Several features that are normally disabled in test, such as Active Record query cache
42
+ # and asynchronous queries will then be enabled.
43
+ # Rails.application.config.active_support.executor_around_test_case = true
44
+
45
+ # Set both the `:open_timeout` and `:read_timeout` values for `:smtp` delivery method.
46
+ # Rails.application.config.action_mailer.smtp_timeout = 5
47
+
48
+ # The ActiveStorage video previewer will now use scene change detection to generate
49
+ # better preview images (rather than the previous default of using the first frame
50
+ # of the video).
51
+ # Rails.application.config.active_storage.video_preview_arguments =
52
+ # "-vf 'select=eq(n\\,0)+eq(key\\,1)+gt(scene\\,0.015),loop=loop=-1:size=2,trim=start_frame=1' -frames:v 1 -f image2"
53
+
54
+ # Automatically infer `inverse_of` for associations with a scope.
55
+ # Rails.application.config.active_record.automatic_scope_inversing = true
56
+
57
+ # Raise when running tests if fixtures contained foreign key violations
58
+ # Rails.application.config.active_record.verify_foreign_keys_for_fixtures = true
59
+
60
+ # Disable partial inserts.
61
+ # This default means that all columns will be referenced in INSERT queries
62
+ # regardless of whether they have a default or not.
63
+ # Rails.application.config.active_record.partial_inserts = false
64
+
65
+ # Protect from open redirect attacks in `redirect_back_or_to` and `redirect_to`.
66
+ # Rails.application.config.action_controller.raise_on_open_redirects = true
67
+
68
+ # Change the variant processor for Active Storage.
69
+ # Changing this default means updating all places in your code that
70
+ # generate variants to use image processing macros and ruby-vips
71
+ # operations. See the upgrading guide for detail on the changes required.
72
+ # The `:mini_magick` option is not deprecated; it's fine to keep using it.
73
+ # Rails.application.config.active_storage.variant_processor = :vips
74
+
75
+ # Enable parameter wrapping for JSON.
76
+ # Previously this was set in an initializer. It's fine to keep using that initializer if you've customized it.
77
+ # To disable parameter wrapping entirely, set this config to `false`.
78
+ # Rails.application.config.action_controller.wrap_parameters_by_default = true
79
+
80
+ # Specifies whether generated namespaced UUIDs follow the RFC 4122 standard for namespace IDs provided as a
81
+ # `String` to `Digest::UUID.uuid_v3` or `Digest::UUID.uuid_v5` method calls.
82
+ #
83
+ # See https://guides.rubyonrails.org/configuring.html#config-active-support-use-rfc4122-namespaced-uuids for
84
+ # more information.
85
+ # Rails.application.config.active_support.use_rfc4122_namespaced_uuids = true
86
+
87
+ # Change the default headers to disable browsers' flawed legacy XSS protection.
88
+ # Rails.application.config.action_dispatch.default_headers = {
89
+ # "X-Frame-Options" => "SAMEORIGIN",
90
+ # "X-XSS-Protection" => "0",
91
+ # "X-Content-Type-Options" => "nosniff",
92
+ # "X-Download-Options" => "noopen",
93
+ # "X-Permitted-Cross-Domain-Policies" => "none",
94
+ # "Referrer-Policy" => "strict-origin-when-cross-origin"
95
+ # }
96
+
97
+ # ** Please read carefully, this must be configured in config/application.rb **
98
+ # Change the format of the cache entry.
99
+ # Changing this default means that all new cache entries added to the cache
100
+ # will have a different format that is not supported by Rails 6.1 applications.
101
+ # Only change this value after your application is fully deployed to Rails 7.0
102
+ # and you have no plans to rollback.
103
+ # When you're ready to change format, add this to `config/application.rb` (NOT this file):
104
+ # config.active_support.cache_format_version = 7.0
105
+
106
+ # Cookie serializer: 2 options
107
+ #
108
+ # If you're upgrading and haven't set `cookies_serializer` previously, your cookie serializer
109
+ # is `:marshal`. The default for new apps is `:json`.
110
+ #
111
+ # Rails.application.config.action_dispatch.cookies_serializer = :json
112
+ #
113
+ #
114
+ # To migrate an existing application to the `:json` serializer, use the `:hybrid` option.
115
+ #
116
+ # Rails transparently deserializes existing (Marshal-serialized) cookies on read and
117
+ # re-writes them in the JSON format.
118
+ #
119
+ # It is fine to use `:hybrid` long term; you should do that until you're confident *all* your cookies
120
+ # have been converted to JSON. To keep using `:hybrid` long term, move this config to its own
121
+ # initializer or to `config/application.rb`.
122
+ #
123
+ # Rails.application.config.action_dispatch.cookies_serializer = :hybrid
124
+ #
125
+ #
126
+ # If your cookies can't yet be serialized to JSON, keep using `:marshal` for backward-compatibility.
127
+ #
128
+ # If you have configured the serializer elsewhere, you can remove this section of the file.
129
+ #
130
+ # See https://guides.rubyonrails.org/action_controller_overview.html#cookies for more information.
131
+
132
+ # Change the return value of `ActionDispatch::Request#content_type` to the Content-Type header without modification.
133
+ # Rails.application.config.action_dispatch.return_only_request_media_type_on_content_type = false
134
+
135
+ # Active Storage `has_many_attached` relationships will default to replacing the current collection instead of appending to it.
136
+ # Thus, to support submitting an empty collection, the `file_field` helper will render an hidden field
137
+ # `include_hidden` by default when `multiple_file_field_include_hidden` is set to `true`.
138
+ # See https://guides.rubyonrails.org/configuring.html#config-active-storage-multiple-file-field-include-hidden for more information.
139
+ # Rails.application.config.active_storage.multiple_file_field_include_hidden = true
140
+
141
+ # ** Please read carefully, this must be configured in config/application.rb (NOT this file) **
142
+ # Disables the deprecated #to_s override in some Ruby core classes
143
+ # See https://guides.rubyonrails.org/configuring.html#config-active-support-disable-to-s-conversion for more information.
144
+ # config.active_support.disable_to_s_conversion = true