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,225 @@
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.1 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.1`.
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
+ # No longer add autoloaded paths into `$LOAD_PATH`. This means that you won't be able
15
+ # to manually require files that are managed by the autoloader, which you shouldn't do anyway.
16
+ # This will reduce the size of the load path, making `require` faster if you don't use bootsnap, or reduce the size
17
+ # of the bootsnap cache if you use it.
18
+ # Rails.application.config.add_autoload_paths_to_load_path = false
19
+
20
+ # Remove the default X-Download-Options headers since it is used only by Internet Explorer.
21
+ # If you need to support Internet Explorer, add back `"X-Download-Options" => "noopen"`.
22
+ # Rails.application.config.action_dispatch.default_headers = {
23
+ # "X-Frame-Options" => "SAMEORIGIN",
24
+ # "X-XSS-Protection" => "0",
25
+ # "X-Content-Type-Options" => "nosniff",
26
+ # "X-Permitted-Cross-Domain-Policies" => "none",
27
+ # "Referrer-Policy" => "strict-origin-when-cross-origin"
28
+ # }
29
+
30
+ # Do not treat an `ActionController::Parameters` instance
31
+ # as equal to an equivalent `Hash` by default.
32
+ # Rails.application.config.action_controller.allow_deprecated_parameters_hash_equality = false
33
+
34
+ # Active Record Encryption now uses SHA-256 as its hash digest algorithm. Important: If you have
35
+ # data encrypted with previous Rails versions, there are two scenarios to consider:
36
+ #
37
+ # 1. If you have +config.active_support.key_generator_hash_digest_class+ configured as SHA1 (the default
38
+ # before Rails 7.0), you need to configure SHA-1 for Active Record Encryption too:
39
+ # Rails.application.config.active_record.encryption.hash_digest_class = OpenSSL::Digest::SHA1
40
+ # 2. If you have +config.active_support.key_generator_hash_digest_class+ configured as SHA256 (the new default
41
+ # in 7.0), then you need to configure SHA-256 for Active Record Encryption:
42
+ # Rails.application.config.active_record.encryption.hash_digest_class = OpenSSL::Digest::SHA256
43
+ #
44
+ # If you don't currently have data encrypted with Active Record encryption, you can disable this setting to
45
+ # configure the default behavior starting 7.1+:
46
+ # Rails.application.config.active_record.encryption.support_sha1_for_non_deterministic_encryption = false
47
+
48
+ # No longer run after_commit callbacks on the first of multiple Active Record
49
+ # instances to save changes to the same database row within a transaction.
50
+ # Instead, run these callbacks on the instance most likely to have internal
51
+ # state which matches what was committed to the database, typically the last
52
+ # instance to save.
53
+ # Rails.application.config.active_record.run_commit_callbacks_on_first_saved_instances_in_transaction = false
54
+
55
+ # Configures SQLite with a strict strings mode, which disables double-quoted string literals.
56
+ #
57
+ # SQLite has some quirks around double-quoted string literals.
58
+ # It first tries to consider double-quoted strings as identifier names, but if they don't exist
59
+ # it then considers them as string literals. Because of this, typos can silently go unnoticed.
60
+ # For example, it is possible to create an index for a non existing column.
61
+ # See https://www.sqlite.org/quirks.html#double_quoted_string_literals_are_accepted for more details.
62
+ # Rails.application.config.active_record.sqlite3_adapter_strict_strings_by_default = true
63
+
64
+ # Disable deprecated singular associations names
65
+ # Rails.application.config.active_record.allow_deprecated_singular_associations_name = false
66
+
67
+ # Enable the Active Job `BigDecimal` argument serializer, which guarantees
68
+ # roundtripping. Without this serializer, some queue adapters may serialize
69
+ # `BigDecimal` arguments as simple (non-roundtrippable) strings.
70
+ #
71
+ # When deploying an application with multiple replicas, old (pre-Rails 7.1)
72
+ # replicas will not be able to deserialize `BigDecimal` arguments from this
73
+ # serializer. Therefore, this setting should only be enabled after all replicas
74
+ # have been successfully upgraded to Rails 7.1.
75
+ # Rails.application.config.active_job.use_big_decimal_serializer = true
76
+
77
+ # Specify if an `ArgumentError` should be raised if `Rails.cache` `fetch` or
78
+ # `write` are given an invalid `expires_at` or `expires_in` time.
79
+ # Options are `true`, and `false`. If `false`, the exception will be reported
80
+ # as `handled` and logged instead.
81
+ # Rails.application.config.active_support.raise_on_invalid_cache_expiration_time = true
82
+
83
+ # Specify whether Query Logs will format tags using the SQLCommenter format
84
+ # (https://open-telemetry.github.io/opentelemetry-sqlcommenter/), or using the legacy format.
85
+ # Options are `:legacy` and `:sqlcommenter`.
86
+ # Rails.application.config.active_record.query_log_tags_format = :sqlcommenter
87
+
88
+ # Specify the default serializer used by `MessageEncryptor` and `MessageVerifier`
89
+ # instances.
90
+ #
91
+ # The legacy default is `:marshal`, which is a potential vector for
92
+ # deserialization attacks in cases where a message signing secret has been
93
+ # leaked.
94
+ #
95
+ # In Rails 7.1, the new default is `:json_allow_marshal` which serializes and
96
+ # deserializes with `ActiveSupport::JSON`, but can fall back to deserializing
97
+ # with `Marshal` so that legacy messages can still be read.
98
+ #
99
+ # In Rails 7.2, the default will become `:json` which serializes and
100
+ # deserializes with `ActiveSupport::JSON` only.
101
+ #
102
+ # Alternatively, you can choose `:message_pack` or `:message_pack_allow_marshal`,
103
+ # which serialize with `ActiveSupport::MessagePack`. `ActiveSupport::MessagePack`
104
+ # can roundtrip some Ruby types that are not supported by JSON, and may provide
105
+ # improved performance, but it requires the `msgpack` gem.
106
+ #
107
+ # For more information, see
108
+ # https://guides.rubyonrails.org/v7.1/configuring.html#config-active-support-message-serializer
109
+ #
110
+ # If you are performing a rolling deploy of a Rails 7.1 upgrade, wherein servers
111
+ # that have not yet been upgraded must be able to read messages from upgraded
112
+ # servers, first deploy without changing the serializer, then set the serializer
113
+ # in a subsequent deploy.
114
+ # Rails.application.config.active_support.message_serializer = :json_allow_marshal
115
+
116
+ # Enable a performance optimization that serializes message data and metadata
117
+ # together. This changes the message format, so messages serialized this way
118
+ # cannot be read by older versions of Rails. However, messages that use the old
119
+ # format can still be read, regardless of whether this optimization is enabled.
120
+ #
121
+ # To perform a rolling deploy of a Rails 7.1 upgrade, wherein servers that have
122
+ # not yet been upgraded must be able to read messages from upgraded servers,
123
+ # leave this optimization off on the first deploy, then enable it on a
124
+ # subsequent deploy.
125
+ # Rails.application.config.active_support.use_message_serializer_for_metadata = true
126
+
127
+ # Set the maximum size for Rails log files.
128
+ #
129
+ # `config.load_defaults 7.1` does not set this value for environments other than
130
+ # development and test.
131
+ #
132
+ # if Rails.env.local?
133
+ # Rails.application.config.log_file_size = 100 * 1024 * 1024
134
+ # end
135
+
136
+ # Enable raising on assignment to attr_readonly attributes. The previous
137
+ # behavior would allow assignment but silently not persist changes to the
138
+ # database.
139
+ # Rails.application.config.active_record.raise_on_assign_to_attr_readonly = true
140
+
141
+ # Enable validating only parent-related columns for presence when the parent is mandatory.
142
+ # The previous behavior was to validate the presence of the parent record, which performed an extra query
143
+ # to get the parent every time the child record was updated, even when parent has not changed.
144
+ # Rails.application.config.active_record.belongs_to_required_validates_foreign_key = false
145
+
146
+ # Enable precompilation of `config.filter_parameters`. Precompilation can
147
+ # improve filtering performance, depending on the quantity and types of filters.
148
+ # Rails.application.config.precompile_filter_parameters = true
149
+
150
+ # Enable before_committed! callbacks on all enrolled records in a transaction.
151
+ # The previous behavior was to only run the callbacks on the first copy of a record
152
+ # if there were multiple copies of the same record enrolled in the transaction.
153
+ # Rails.application.config.active_record.before_committed_on_all_records = true
154
+
155
+ # Disable automatic column serialization into YAML.
156
+ # To keep the historic behavior, you can set it to `YAML`, however it is
157
+ # recommended to explicitly define the serialization method for each column
158
+ # rather than to rely on a global default.
159
+ # Rails.application.config.active_record.default_column_serializer = nil
160
+
161
+ # Enable a performance optimization that serializes Active Record models
162
+ # in a faster and more compact way.
163
+ #
164
+ # To perform a rolling deploy of a Rails 7.1 upgrade, wherein servers that have
165
+ # not yet been upgraded must be able to read caches from upgraded servers,
166
+ # leave this optimization off on the first deploy, then enable it on a
167
+ # subsequent deploy.
168
+ # Rails.application.config.active_record.marshalling_format_version = 7.1
169
+
170
+ # Run `after_commit` and `after_*_commit` callbacks in the order they are defined in a model.
171
+ # This matches the behaviour of all other callbacks.
172
+ # In previous versions of Rails, they ran in the inverse order.
173
+ # Rails.application.config.active_record.run_after_transaction_callbacks_in_order_defined = true
174
+
175
+ # Whether a `transaction` block is committed or rolled back when exited via `return`, `break` or `throw`.
176
+ #
177
+ # Rails.application.config.active_record.commit_transaction_on_non_local_return = true
178
+
179
+ # Controls when to generate a value for <tt>has_secure_token</tt> declarations.
180
+ #
181
+ # Rails.application.config.active_record.generate_secure_token_on = :initialize
182
+
183
+ # ** Please read carefully, this must be configured in config/application.rb **
184
+ # Change the format of the cache entry.
185
+ # Changing this default means that all new cache entries added to the cache
186
+ # will have a different format that is not supported by Rails 7.0
187
+ # applications.
188
+ # Only change this value after your application is fully deployed to Rails 7.1
189
+ # and you have no plans to rollback.
190
+ # When you're ready to change format, add this to `config/application.rb` (NOT
191
+ # this file):
192
+ # config.active_support.cache_format_version = 7.1
193
+
194
+ # Configure Action View to use HTML5 standards-compliant sanitizers when they are supported on your
195
+ # platform.
196
+ #
197
+ # `Rails::HTML::Sanitizer.best_supported_vendor` will cause Action View to use HTML5-compliant
198
+ # sanitizers if they are supported, else fall back to HTML4 sanitizers.
199
+ #
200
+ # In previous versions of Rails, Action View always used `Rails::HTML4::Sanitizer` as its vendor.
201
+ #
202
+ # Rails.application.config.action_view.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor
203
+
204
+ # Configure Action Text to use an HTML5 standards-compliant sanitizer when it is supported on your
205
+ # platform.
206
+ #
207
+ # `Rails::HTML::Sanitizer.best_supported_vendor` will cause Action Text to use HTML5-compliant
208
+ # sanitizers if they are supported, else fall back to HTML4 sanitizers.
209
+ #
210
+ # In previous versions of Rails, Action Text always used `Rails::HTML4::Sanitizer` as its vendor.
211
+ #
212
+ # Rails.application.config.action_text.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor
213
+
214
+ # Configure the log level used by the DebugExceptions middleware when logging
215
+ # uncaught exceptions during requests
216
+ # Rails.application.config.action_dispatch.debug_exception_log_level = :error
217
+
218
+ # Configure the test helpers in Action View, Action Dispatch, and rails-dom-testing to use HTML5
219
+ # parsers.
220
+ #
221
+ # Nokogiri::HTML5 isn't supported on JRuby, so JRuby applications must set this to :html4.
222
+ #
223
+ # In previous versions of Rails, these test helpers always used an HTML4 parser.
224
+ #
225
+ # Rails.application.config.dom_testing_default_html_version = :html5
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Be sure to restart your server when you modify this file.
4
+
5
+ # Define an application-wide HTTP permissions policy. For further
6
+ # information see: https://developers.google.com/web/updates/2018/06/feature-policy
7
+
8
+ # Rails.application.config.permissions_policy do |policy|
9
+ # policy.camera :none
10
+ # policy.gyroscope :none
11
+ # policy.microphone :none
12
+ # policy.usb :none
13
+ # policy.fullscreen :self
14
+ # policy.payment :self, "https://secure.example.com"
15
+ # end
@@ -0,0 +1,268 @@
1
+ ar:
2
+ activerecord:
3
+ models:
4
+ comfy/cms/site: الموقع
5
+ comfy/cms/layout: تصميم
6
+ comfy/cms/page: الصفحة
7
+ comfy/cms/snippet: قصاصة
8
+ comfy/cms/file: ملف
9
+ comfy/cms/translation: الترجمة
10
+
11
+ attributes:
12
+ comfy/cms/site:
13
+ identifier: المعرّف
14
+ label: عنوان
15
+ hostname: اسم مضيف الموقع
16
+ path: مسار
17
+ locale: اللغة
18
+ comfy/cms/layout:
19
+ identifier: المعرّف
20
+ label: اسم التخطيط
21
+ app_layout: التصميم
22
+ parent_id: التخطيط الرئيسي
23
+ content: المحتوى
24
+ css: أوراق الأنماط
25
+ js: جافا سكريبت
26
+ comfy/cms/page:
27
+ label: عنوان
28
+ layout_id: تصميم
29
+ slug: كلمة الدلالة
30
+ full_path: المسار الكامل
31
+ parent_id: الآب
32
+ target_page_id: إعادة توجيه الي
33
+ content: المحتوى
34
+ is_published: نشرت
35
+ comfy/cms/file:
36
+ label: عنوان
37
+ file: ملف
38
+ description: الوصف
39
+ comfy/cms/snippet:
40
+ label: عنوان
41
+ identifier: المعرّف
42
+ content: المحتوى
43
+ comfy/cms/translation:
44
+ locale: اللغة
45
+ label: عنوان
46
+ layout_id: تصميم
47
+ is_published: نشرت
48
+
49
+ comfy:
50
+ cms:
51
+ content:
52
+ site_not_found: غير موجود
53
+ layout_not_found: تخطيط غير موجود
54
+ page_not_found: الصفحة غير موجودة
55
+
56
+ admin:
57
+ cms:
58
+ base:
59
+ site_not_found: غير موجود
60
+ seeds_enabled: يتم تمكين بذور CMS. سيتم تجاهل جميع التغييرات التي أجريت هنا.
61
+ sites: المواقع الخاصة بي
62
+ layouts: مخطط
63
+ pages: الصفحات
64
+ snippets: مقتطفات
65
+ files: ملفات
66
+
67
+ sites:
68
+ created: موقع جديد تم انشاءه
69
+ creation_failure: فشل في إنشاء الموقع
70
+ updated: تحديث الموقع
71
+ update_failure: فشل في تحديث الموقع
72
+ deleted: تم الحذف
73
+ not_found: غير موجود
74
+
75
+ index:
76
+ title: المواقع الخاصة بي
77
+ new_link: إنشاء جديد
78
+ select: اختيار الموقع
79
+ edit: تعديل
80
+ delete: حذف
81
+ are_you_sure: هل أنت متأكد أنك تريد حذف هذا؟
82
+ new:
83
+ title: موقع جديد
84
+ edit:
85
+ title: تعديل
86
+ form:
87
+ create: إنشاء موقع
88
+ cancel: إلغاء
89
+ update: تحديث الموقع
90
+
91
+ layouts:
92
+ created: إنشاء تخطيط
93
+ creation_failure: لا يمكن إنشاء النسق
94
+ updated: تم تحديث التصميم
95
+ update_failure: فشل في تحديث التصميم
96
+ deleted: تم حذف التصميم
97
+ not_found: تخطيط غير موجود
98
+
99
+ index:
100
+ title: مخطط
101
+ new_link: إنشاء تخطيط جديد
102
+ index_branch:
103
+ add_child_layout: إضافة تخطيط الطفل
104
+ edit: تعديل
105
+ delete: حذف
106
+ are_you_sure: هل أنت متاكد؟
107
+ new:
108
+ title: تصميم جديد
109
+ edit:
110
+ title: تحرير التخطيط
111
+ form:
112
+ select_parent_layout: التخطيط الرئيسي
113
+ select_app_layout: حدد تخطيط التطبيق
114
+ create: انشاء تصميم
115
+ cancel: إلغاء
116
+ update: تحديث التخطيط
117
+
118
+ pages:
119
+ created: تم إنشاء الصفحة
120
+ creation_failure: فشل في إنشاء الصفحة
121
+ updated: تحديث الصفحة
122
+ update_failure: فشل في تحديث الصفحة
123
+ children_published: تم نشر الصفحات الفرعية
124
+ children_unpublished: تم إلغاء نشر الصفحات الفرعية
125
+ deleted: تم حذف الصفحة
126
+ not_found: الصفحة غير موجودة
127
+ layout_not_found: لم يتم العثور على تخطيطات يرجى إنشاء واحد.
128
+
129
+ index:
130
+ title: الصفحات
131
+ new_link: إنشاء صفحة جديدة
132
+ index_branch:
133
+ toggle: تبديل
134
+ add_child_page: أضف صفحة فرعية
135
+ edit: تعديل
136
+ delete: حذف
137
+ are_you_sure: هل أنت متاكد؟
138
+ new:
139
+ title: صفحة جديدة
140
+ edit:
141
+ title: تعديل
142
+ publish_children: نشر الصفحات الفرعية
143
+ publish_children_confirmation: هل تريد نشر جميع الصفحات الفرعية؟
144
+ unpublish_children: إلغاء نشر الصفحات الفرعية
145
+ unpublish_children_confirmation: هل تريد إلغاء نشر جميع الصفحات الفرعية؟
146
+ form:
147
+ select_target_page: لا إعادة توجيه
148
+ preview: معاينة
149
+ create: إنشاء صفحة
150
+ cancel: إلغاء
151
+ update: تحديث الصفحة
152
+ choose_link: اختر الصفحة...
153
+
154
+ fragments:
155
+ form_fragments:
156
+ no_tags: |-
157
+ لا يحتوي التخطيط على علامات محتوى محددة.<br/>
158
+ تحرير محتوى تخطيط لتضمين علامة التجزئة. فمثلا: <code>{{cms:wysiwyg content}}</code>
159
+
160
+ translations:
161
+ created: تم إنشاء الترجمة
162
+ creation_failure: فشل في إنشاء الترجمة
163
+ updated: تم تحديث الترجمة
164
+ update_failure: فشل في تحديث الترجمة
165
+ deleted: تم حذف الترجمة
166
+ not_found: لم يتم العثور على الترجمة
167
+
168
+ new:
169
+ title: ترجمة جديدة
170
+ edit:
171
+ title: تحرير الترجمة
172
+ form:
173
+ preview: معاينة
174
+ create: إنشاء
175
+ update: تحديث
176
+ cancel: الرجوع إلى
177
+ sidebar:
178
+ new: ترجمة جديدة
179
+ confirm: هل أنت متاكد؟
180
+
181
+ snippets:
182
+ created: تم إنشاء مقتطف
183
+ creation_failure: فشل في إنشاء مقتطف
184
+ updated: تم تحديث المقتطف
185
+ update_failure: فشل تحديث المقتطف
186
+ deleted: تم حذف المقتطف
187
+ not_found: مقتطف غير موجود
188
+
189
+ index:
190
+ title: مقتطفات
191
+ new_link: إنشاء مقتطف جديد
192
+ edit: تعديل
193
+ delete: حذف
194
+ are_you_sure: هل أنت متاكد؟
195
+ new:
196
+ title: مقتطف جديد
197
+ edit:
198
+ title: تحرير مقتطف
199
+ form:
200
+ create: إنشاء مقتطف جديد
201
+ cancel: إلغاء
202
+ update: تحديث مقتطف
203
+
204
+ revisions:
205
+ reverted: محتوى عاد
206
+ record_not_found: لم يتم العثور على السجل
207
+ not_found: لم يتم العثور على المراجعة
208
+
209
+ show:
210
+ title: مراجعات لـ
211
+ revision: الإصدار
212
+ update: تحديث لهذا المراجعة
213
+ cancel: إلغاء
214
+ content: المحتوى
215
+ changes: التغييرات
216
+ previous: السابق
217
+ current: الحالي
218
+ sidebar:
219
+ revision:
220
+ zero: لا مراجعات
221
+ one: '٪ {count} المراجعة'
222
+ few: '٪ {count} المراجعات'
223
+ many: '٪ {count} المراجعات'
224
+ other: '٪ {count} المراجعات'
225
+
226
+ files:
227
+ created: الملفات المحملة
228
+ creation_failure: فشل تحميل الملفات
229
+ updated: تم تحديث الملف
230
+ update_failure: فشل في تحديث الملف
231
+ deleted: تم حذف الملف‬
232
+ not_found: لم يتم العثور على الملف
233
+
234
+ index:
235
+ title: ملفات
236
+ new_link: رفع ملف جديد
237
+ button: رفع الملفات
238
+ new:
239
+ title: ملف جديد
240
+ edit:
241
+ title: تعديل
242
+ form:
243
+ current_file: الملف الحالي
244
+ create: رفع ملف
245
+ cancel: إلغاء
246
+ update: تحديث الملف
247
+ delete: حذف الملف
248
+ are_you_sure: هل أنت متاكد؟
249
+ page_form:
250
+ are_you_sure: هل أنت متاكد؟
251
+ file:
252
+ edit: تعديل
253
+ delete: حذف
254
+ are_you_sure: هل أنت متاكد؟
255
+
256
+ categories:
257
+ index:
258
+ edit: تعديل
259
+ done: تم
260
+ all: كل الفئات
261
+ add: إضافة
262
+ add_placeholder: إضافة فئة
263
+ show:
264
+ are_you_sure: هل أنت متاكد؟
265
+ edit:
266
+ save: حفظ
267
+ form:
268
+ label: الفئات