PixelForce_ETS 0.0.1
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.
- checksums.yaml +7 -0
- data/.codeclimate.yml +4 -0
- data/.gitattributes +2 -0
- data/.github/issue_template.md +22 -0
- data/.github/pull_request_template.md +6 -0
- data/.gitignore +21 -0
- data/.rubocop.yml +100 -0
- data/.travis.yml +43 -0
- data/CONTRIBUTING.md +35 -0
- data/Gemfile +29 -0
- data/LICENSE +20 -0
- data/README.md +116 -0
- data/Rakefile +5 -0
- data/app/assets/fonts/comfy/admin/cms/lib/redactor-font.eot +0 -0
- data/app/assets/javascripts/comfy/admin/cms/application.js +39 -0
- data/app/assets/javascripts/comfy/admin/cms/base.js +46 -0
- data/app/assets/javascripts/comfy/admin/cms/categories.js +17 -0
- data/app/assets/javascripts/comfy/admin/cms/codemirror.js +31 -0
- data/app/assets/javascripts/comfy/admin/cms/custom.js +1 -0
- data/app/assets/javascripts/comfy/admin/cms/diff.js +10 -0
- data/app/assets/javascripts/comfy/admin/cms/file_link.js +67 -0
- data/app/assets/javascripts/comfy/admin/cms/file_upload.js +194 -0
- data/app/assets/javascripts/comfy/admin/cms/files_modal.js +40 -0
- data/app/assets/javascripts/comfy/admin/cms/page_fragments.js +22 -0
- data/app/assets/javascripts/comfy/admin/cms/slugify.js +34 -0
- data/app/assets/javascripts/comfy/admin/cms/sortable_list.js +40 -0
- data/app/assets/javascripts/comfy/admin/cms/timepicker.js +30 -0
- data/app/assets/javascripts/comfy/admin/cms/wysiwyg.js +65 -0
- data/app/assets/javascripts/comfy/vendor/Moxie.swf +0 -0
- data/app/assets/javascripts/comfy/vendor/Moxie.xap +0 -0
- data/app/assets/javascripts/comfy/vendor/bootstrap.bundle.min.js +7 -0
- data/app/assets/javascripts/comfy/vendor/bootstrap.bundle.min.js.map +1 -0
- data/app/assets/javascripts/comfy/vendor/codemirror.js +9653 -0
- data/app/assets/javascripts/comfy/vendor/codemirror/addon/edit/closetag.js +169 -0
- data/app/assets/javascripts/comfy/vendor/codemirror/mode/css/css.js +832 -0
- data/app/assets/javascripts/comfy/vendor/codemirror/mode/htmlmixed/htmlmixed.js +152 -0
- data/app/assets/javascripts/comfy/vendor/codemirror/mode/javascript/javascript.js +875 -0
- data/app/assets/javascripts/comfy/vendor/codemirror/mode/markdown/markdown.js +861 -0
- data/app/assets/javascripts/comfy/vendor/codemirror/mode/xml/xml.js +394 -0
- data/app/assets/javascripts/comfy/vendor/diff/diff_match_patch.min.js +49 -0
- data/app/assets/javascripts/comfy/vendor/diff/pretty_text_diff.js +76 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr.min.js +2 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/ar.js +52 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/bg.js +65 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/bn.js +65 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/ca.js +83 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/cs.js +70 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/cy.js +92 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/da.js +71 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/de.js +70 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/default.js +80 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/eo.js +73 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/es.js +69 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/et.js +73 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/fa.js +68 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/fi.js +69 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/fr.js +75 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/gr.js +74 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/he.js +57 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/hi.js +65 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/hr.js +66 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/hu.js +72 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/id.js +61 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/it.js +70 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/ja.js +57 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/ko.js +60 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/lt.js +72 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/lv.js +67 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/mk.js +69 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/mn.js +67 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/ms.js +68 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/my.js +69 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/nl.js +75 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/no.js +73 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/pa.js +65 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/pl.js +68 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/pt-BR.js +66 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/pt.js +66 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/ro.js +69 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/ru.js +66 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/si.js +65 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/sk.js +70 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/sl.js +70 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/sq.js +65 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/sr.js +69 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/sv.js +70 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/th.js +72 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/tr.js +66 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/uk.js +66 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/vn.js +66 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/zh-CN.js +61 -0
- data/app/assets/javascripts/comfy/vendor/flatpickr/i18n/zh-TW.js +61 -0
- data/app/assets/javascripts/comfy/vendor/fontawesome.js +5 -0
- data/app/assets/javascripts/comfy/vendor/moxie.min.js +16 -0
- data/app/assets/javascripts/comfy/vendor/plupload.dev.js +2497 -0
- data/app/assets/javascripts/comfy/vendor/redactor.js +9561 -0
- data/app/assets/javascripts/comfy/vendor/redactor/definedlinks.js +53 -0
- data/app/assets/javascripts/comfy/vendor/redactor/filemanager.js +64 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/ar.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/az.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/ba.js +79 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/bg.js +77 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/by.js +77 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/ca.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/cs.js +87 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/da.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/de.js +80 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/el.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/en.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/eo.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/es.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/es_AR.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/fa.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/fi.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/fr.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/ge.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/gr.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/he.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/hr.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/hu.js +77 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/id.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/it.js +78 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/ja.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/kn.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/ko.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/lt.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/lv.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/mk.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/nb.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/nl.js +80 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/pl.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/pt-BR.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/pt.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/ro.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/ru.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/sk.js +76 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/sl.js +79 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/sq.js +79 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/sr-CIR.js +79 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/sr-LAT.js +79 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/sv.js +74 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/th.js +74 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/tr.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/ua.js +77 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/uk.js +77 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/vi.js +74 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/zh-CN.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/i18n/zh-TW.js +75 -0
- data/app/assets/javascripts/comfy/vendor/redactor/imagemanager.js +57 -0
- data/app/assets/javascripts/comfy/vendor/redactor/table.js +337 -0
- data/app/assets/javascripts/comfy/vendor/redactor/video.js +77 -0
- data/app/assets/javascripts/comfy/vendor/sortable.min.js +5 -0
- data/app/assets/stylesheets/comfy/admin/cms/application.sass +11 -0
- data/app/assets/stylesheets/comfy/admin/cms/base.sass +256 -0
- data/app/assets/stylesheets/comfy/admin/cms/codemirror_overrides.sass +19 -0
- data/app/assets/stylesheets/comfy/admin/cms/custom.sass +1 -0
- data/app/assets/stylesheets/comfy/admin/cms/redactor_overrides.sass +22 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_alert.scss +51 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_badge.scss +54 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_breadcrumb.scss +41 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_button-group.scss +163 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_buttons.scss +137 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_card.scss +289 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_carousel.scss +197 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_close.scss +41 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_code.scss +48 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_custom-forms.scss +507 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_dropdown.scss +191 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_forms.scss +330 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_functions.scss +86 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_grid.scss +52 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_images.scss +42 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_input-group.scss +193 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_jumbotron.scss +17 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_list-group.scss +149 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_media.scss +8 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_mixins.scss +47 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_modal.scss +229 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_nav.scss +120 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_navbar.scss +294 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_pagination.scss +73 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_popover.scss +171 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_print.scss +141 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_progress.scss +43 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_reboot.scss +483 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_root.scss +19 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_spinners.scss +55 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_tables.scss +185 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_toasts.scss +44 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_tooltip.scss +115 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_transitions.scss +20 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_type.scss +125 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_utilities.scss +17 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_variables.scss +1123 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/bootstrap-grid.scss +29 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/bootstrap-reboot.scss +12 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/bootstrap.scss +44 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_alert.scss +13 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_background-variant.scss +21 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_badge.scss +17 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_border-radius.scss +63 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_box-shadow.scss +20 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_breakpoints.scss +123 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_buttons.scss +107 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_caret.scss +62 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_clearfix.scss +7 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_deprecate.scss +10 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_float.scss +14 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_forms.scss +192 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_gradients.scss +45 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_grid-framework.scss +66 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_grid.scss +51 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_hover.scss +37 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_image.scss +36 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_list-group.scss +21 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_lists.scss +7 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_nav-divider.scss +10 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_pagination.scss +22 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_reset-text.scss +17 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_resize.scss +6 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_screen-reader.scss +33 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_size.scss +7 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_table-row.scss +39 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_text-emphasis.scss +16 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_text-hide.scss +11 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_text-truncate.scss +8 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_transition.scss +16 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_visibility.scss +8 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_align.scss +8 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_background.scss +19 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_borders.scss +75 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_clearfix.scss +3 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_display.scss +26 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_embed.scss +39 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_flex.scss +51 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_float.scss +11 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_overflow.scss +5 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_position.scss +32 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_screenreaders.scss +11 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_shadows.scss +6 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_sizing.scss +20 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_spacing.scss +73 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_stretched-link.scss +19 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_text.scss +72 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_visibility.scss +13 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/vendor/_rfs.scss +204 -0
- data/app/assets/stylesheets/comfy/vendor/codemirror.css +346 -0
- data/app/assets/stylesheets/comfy/vendor/flatpickr.min.css +13 -0
- data/app/assets/stylesheets/comfy/vendor/fontawesome.css +343 -0
- data/app/assets/stylesheets/comfy/vendor/redactor.css +948 -0
- data/app/controllers/application_controller.rb +7 -0
- data/app/controllers/comfy/admin/base_controller.rb +22 -0
- data/app/controllers/comfy/admin/cms/base_controller.rb +55 -0
- data/app/controllers/comfy/admin/cms/categories_controller.rb +40 -0
- data/app/controllers/comfy/admin/cms/files_controller.rb +142 -0
- data/app/controllers/comfy/admin/cms/layouts_controller.rb +69 -0
- data/app/controllers/comfy/admin/cms/pages_controller.rb +156 -0
- data/app/controllers/comfy/admin/cms/revisions/base_controller.rb +50 -0
- data/app/controllers/comfy/admin/cms/revisions/layout_controller.rb +18 -0
- data/app/controllers/comfy/admin/cms/revisions/page_controller.rb +30 -0
- data/app/controllers/comfy/admin/cms/revisions/snippet_controller.rb +18 -0
- data/app/controllers/comfy/admin/cms/revisions/translation_controller.rb +31 -0
- data/app/controllers/comfy/admin/cms/sites_controller.rb +69 -0
- data/app/controllers/comfy/admin/cms/snippets_controller.rb +66 -0
- data/app/controllers/comfy/admin/cms/translations_controller.rb +107 -0
- data/app/controllers/comfy/cms/assets_controller.rb +40 -0
- data/app/controllers/comfy/cms/base_controller.rb +33 -0
- data/app/controllers/comfy/cms/content_controller.rb +87 -0
- data/app/controllers/concerns/comfy/paginate.rb +16 -0
- data/app/controllers/concerns/comfy/reorder_action.rb +19 -0
- data/app/helpers/comfy/admin/cms_helper.rb +49 -0
- data/app/helpers/comfy/cms_helper.rb +73 -0
- data/app/models/comfy/cms/categorization.rb +16 -0
- data/app/models/comfy/cms/category.rb +24 -0
- data/app/models/comfy/cms/file.rb +57 -0
- data/app/models/comfy/cms/fragment.rb +59 -0
- data/app/models/comfy/cms/layout.rb +113 -0
- data/app/models/comfy/cms/page.rb +169 -0
- data/app/models/comfy/cms/revision.rb +12 -0
- data/app/models/comfy/cms/site.rb +94 -0
- data/app/models/comfy/cms/snippet.rb +45 -0
- data/app/models/comfy/cms/translation.rb +43 -0
- data/app/models/concerns/comfy/cms/with_categories.rb +53 -0
- data/app/models/concerns/comfy/cms/with_fragments.rb +125 -0
- data/app/views/comfy/admin/cms/categories/_categories.html.haml +4 -0
- data/app/views/comfy/admin/cms/categories/_edit.html.haml +7 -0
- data/app/views/comfy/admin/cms/categories/_form.html.haml +5 -0
- data/app/views/comfy/admin/cms/categories/_index.html.haml +28 -0
- data/app/views/comfy/admin/cms/categories/_show.html.haml +15 -0
- data/app/views/comfy/admin/cms/categories/create.js.erb +7 -0
- data/app/views/comfy/admin/cms/categories/destroy.js.erb +8 -0
- data/app/views/comfy/admin/cms/categories/edit.js.erb +3 -0
- data/app/views/comfy/admin/cms/categories/update.js.erb +6 -0
- data/app/views/comfy/admin/cms/files/_file.html.haml +31 -0
- data/app/views/comfy/admin/cms/files/_form.html.haml +26 -0
- data/app/views/comfy/admin/cms/files/_modal.html.haml +3 -0
- data/app/views/comfy/admin/cms/files/destroy.js.erb +4 -0
- data/app/views/comfy/admin/cms/files/edit.html.haml +5 -0
- data/app/views/comfy/admin/cms/files/index.html.haml +29 -0
- data/app/views/comfy/admin/cms/files/new.html.haml +5 -0
- data/app/views/comfy/admin/cms/fragments/_form_fragment_attachments.html.haml +23 -0
- data/app/views/comfy/admin/cms/fragments/_form_fragments.html.haml +38 -0
- data/app/views/comfy/admin/cms/layouts/_form.html.haml +20 -0
- data/app/views/comfy/admin/cms/layouts/_index_branch.html.haml +26 -0
- data/app/views/comfy/admin/cms/layouts/edit.html.haml +9 -0
- data/app/views/comfy/admin/cms/layouts/index.html.haml +10 -0
- data/app/views/comfy/admin/cms/layouts/new.html.haml +5 -0
- data/app/views/comfy/admin/cms/pages/_form.html.haml +31 -0
- data/app/views/comfy/admin/cms/pages/_index_branch.html.haml +44 -0
- data/app/views/comfy/admin/cms/pages/edit.html.haml +10 -0
- data/app/views/comfy/admin/cms/pages/index.html.haml +13 -0
- data/app/views/comfy/admin/cms/pages/new.html.haml +5 -0
- data/app/views/comfy/admin/cms/pages/toggle_branch.js.erb +13 -0
- data/app/views/comfy/admin/cms/revisions/_sidebar.html.haml +2 -0
- data/app/views/comfy/admin/cms/revisions/show.html.haml +36 -0
- data/app/views/comfy/admin/cms/sites/_form.html.haml +15 -0
- data/app/views/comfy/admin/cms/sites/edit.html.haml +5 -0
- data/app/views/comfy/admin/cms/sites/index.html.haml +28 -0
- data/app/views/comfy/admin/cms/sites/new.html.haml +5 -0
- data/app/views/comfy/admin/cms/snippets/_form.html.haml +13 -0
- data/app/views/comfy/admin/cms/snippets/edit.html.haml +9 -0
- data/app/views/comfy/admin/cms/snippets/index.html.haml +33 -0
- data/app/views/comfy/admin/cms/snippets/new.html.haml +5 -0
- data/app/views/comfy/admin/cms/translations/_form.html.haml +20 -0
- data/app/views/comfy/admin/cms/translations/_sidebar.html.haml +19 -0
- data/app/views/comfy/admin/cms/translations/edit.html.haml +10 -0
- data/app/views/comfy/admin/cms/translations/new.html.haml +5 -0
- data/app/views/kaminari/comfy/_first_page.html.haml +3 -0
- data/app/views/kaminari/comfy/_gap.html.haml +2 -0
- data/app/views/kaminari/comfy/_last_page.html.haml +3 -0
- data/app/views/kaminari/comfy/_next_page.html.haml +2 -0
- data/app/views/kaminari/comfy/_page.html.haml +2 -0
- data/app/views/kaminari/comfy/_paginator.html.haml +11 -0
- data/app/views/kaminari/comfy/_prev_page.html.haml +2 -0
- data/app/views/layouts/comfy/admin/cms.html.haml +4 -0
- data/app/views/layouts/comfy/admin/cms/_body.html.haml +14 -0
- data/app/views/layouts/comfy/admin/cms/_flash.html.haml +4 -0
- data/app/views/layouts/comfy/admin/cms/_footer_js.html.haml +6 -0
- data/app/views/layouts/comfy/admin/cms/_head.html.haml +19 -0
- data/app/views/layouts/comfy/admin/cms/_left.html.haml +39 -0
- data/app/views/layouts/comfy/admin/cms/_right.html.haml +5 -0
- data/bin/bundle +3 -0
- data/bin/rails +4 -0
- data/bin/rake +4 -0
- data/bin/setup +36 -0
- data/bin/update +31 -0
- data/bin/yarn +11 -0
- data/comfortable_mexican_sofa.gemspec +34 -0
- data/config.ru +6 -0
- data/config/application.rb +39 -0
- data/config/boot.rb +7 -0
- data/config/cms_routes.rb +8 -0
- data/config/database.yml +11 -0
- data/config/environment.rb +7 -0
- data/config/environments/development.rb +64 -0
- data/config/environments/test.rb +55 -0
- data/config/initializers/comfortable_mexican_sofa.rb +122 -0
- data/config/locales/ca.yml +263 -0
- data/config/locales/cs.yml +263 -0
- data/config/locales/da.yml +263 -0
- data/config/locales/de.yml +263 -0
- data/config/locales/en.yml +263 -0
- data/config/locales/es.yml +263 -0
- data/config/locales/fi.yml +263 -0
- data/config/locales/fr.yml +263 -0
- data/config/locales/gr.yml +263 -0
- data/config/locales/hr.yml +263 -0
- data/config/locales/it.yml +263 -0
- data/config/locales/ja.yml +263 -0
- data/config/locales/nb.yml +263 -0
- data/config/locales/nl.yml +263 -0
- data/config/locales/pl.yml +263 -0
- data/config/locales/pt-BR.yml +263 -0
- data/config/locales/ru.yml +263 -0
- data/config/locales/sk.yml +263 -0
- data/config/locales/sv.yml +263 -0
- data/config/locales/tr.yml +263 -0
- data/config/locales/uk.yml +263 -0
- data/config/locales/zh-CN.yml +263 -0
- data/config/locales/zh-TW.yml +263 -0
- data/config/storage.yml +35 -0
- data/db/cms_seeds/sample-site/files/_default.jpg.yml +5 -0
- data/db/cms_seeds/sample-site/files/default.jpg +0 -0
- data/db/cms_seeds/sample-site/layouts/default/content.html +16 -0
- data/db/cms_seeds/sample-site/layouts/default/nested/content.html +14 -0
- data/db/cms_seeds/sample-site/pages/index/child_a/content.html +7 -0
- data/db/cms_seeds/sample-site/pages/index/child_b/content.html +6 -0
- data/db/cms_seeds/sample-site/pages/index/cms logo.png +0 -0
- data/db/cms_seeds/sample-site/pages/index/content.es.html +6 -0
- data/db/cms_seeds/sample-site/pages/index/content.fr.html +6 -0
- data/db/cms_seeds/sample-site/pages/index/content.html +25 -0
- data/db/cms_seeds/sample-site/pages/index/footer.png +0 -0
- data/db/cms_seeds/sample-site/pages/index/header.png +0 -0
- data/db/cms_seeds/sample-site/snippets/default.html +8 -0
- data/db/migrate/00_create_active_storage_tables.active_storage.rb +26 -0
- data/db/migrate/01_create_cms.rb +142 -0
- data/lib/comfortable_mexican_sofa.rb +60 -0
- data/lib/comfortable_mexican_sofa/access_control/admin_authentication.rb +24 -0
- data/lib/comfortable_mexican_sofa/access_control/admin_authorization.rb +12 -0
- data/lib/comfortable_mexican_sofa/access_control/public_authentication.rb +12 -0
- data/lib/comfortable_mexican_sofa/access_control/public_authorization.rb +12 -0
- data/lib/comfortable_mexican_sofa/configuration.rb +139 -0
- data/lib/comfortable_mexican_sofa/content.rb +31 -0
- data/lib/comfortable_mexican_sofa/content/block.rb +14 -0
- data/lib/comfortable_mexican_sofa/content/params_parser.rb +149 -0
- data/lib/comfortable_mexican_sofa/content/renderer.rb +149 -0
- data/lib/comfortable_mexican_sofa/content/tag.rb +50 -0
- data/lib/comfortable_mexican_sofa/content/tags/asset.rb +59 -0
- data/lib/comfortable_mexican_sofa/content/tags/checkbox.rb +29 -0
- data/lib/comfortable_mexican_sofa/content/tags/date.rb +21 -0
- data/lib/comfortable_mexican_sofa/content/tags/datetime.rb +44 -0
- data/lib/comfortable_mexican_sofa/content/tags/file.rb +72 -0
- data/lib/comfortable_mexican_sofa/content/tags/file_link.rb +63 -0
- data/lib/comfortable_mexican_sofa/content/tags/files.rb +43 -0
- data/lib/comfortable_mexican_sofa/content/tags/fragment.rb +66 -0
- data/lib/comfortable_mexican_sofa/content/tags/helper.rb +55 -0
- data/lib/comfortable_mexican_sofa/content/tags/markdown.rb +24 -0
- data/lib/comfortable_mexican_sofa/content/tags/mixins/file_content.rb +43 -0
- data/lib/comfortable_mexican_sofa/content/tags/number.rb +20 -0
- data/lib/comfortable_mexican_sofa/content/tags/page_file_link.rb +84 -0
- data/lib/comfortable_mexican_sofa/content/tags/partial.rb +49 -0
- data/lib/comfortable_mexican_sofa/content/tags/snippet.rb +34 -0
- data/lib/comfortable_mexican_sofa/content/tags/template.rb +44 -0
- data/lib/comfortable_mexican_sofa/content/tags/text.rb +20 -0
- data/lib/comfortable_mexican_sofa/content/tags/textarea.rb +20 -0
- data/lib/comfortable_mexican_sofa/content/tags/wysiwyg.rb +21 -0
- data/lib/comfortable_mexican_sofa/engine.rb +31 -0
- data/lib/comfortable_mexican_sofa/error.rb +32 -0
- data/lib/comfortable_mexican_sofa/extensions/acts_as_tree.rb +120 -0
- data/lib/comfortable_mexican_sofa/extensions/has_revisions.rb +72 -0
- data/lib/comfortable_mexican_sofa/form_builder.rb +47 -0
- data/lib/comfortable_mexican_sofa/render_methods.rb +112 -0
- data/lib/comfortable_mexican_sofa/routes/cms.rb +18 -0
- data/lib/comfortable_mexican_sofa/routes/cms_admin.rb +58 -0
- data/lib/comfortable_mexican_sofa/routing.rb +12 -0
- data/lib/comfortable_mexican_sofa/seeds.rb +114 -0
- data/lib/comfortable_mexican_sofa/seeds/file/exporter.rb +43 -0
- data/lib/comfortable_mexican_sofa/seeds/file/importer.rb +63 -0
- data/lib/comfortable_mexican_sofa/seeds/layout/exporter.rb +40 -0
- data/lib/comfortable_mexican_sofa/seeds/layout/importer.rb +62 -0
- data/lib/comfortable_mexican_sofa/seeds/page/exporter.rb +92 -0
- data/lib/comfortable_mexican_sofa/seeds/page/importer.rb +219 -0
- data/lib/comfortable_mexican_sofa/seeds/snippet/exporter.rb +34 -0
- data/lib/comfortable_mexican_sofa/seeds/snippet/importer.rb +51 -0
- data/lib/comfortable_mexican_sofa/version.rb +9 -0
- data/lib/comfortable_mexican_sofa/view_hooks.rb +35 -0
- data/lib/generators/comfy/cms/README +17 -0
- data/lib/generators/comfy/cms/assets_generator.rb +18 -0
- data/lib/generators/comfy/cms/cms_generator.rb +69 -0
- data/lib/generators/comfy/cms/controllers_generator.rb +17 -0
- data/lib/generators/comfy/cms/models_generator.rb +17 -0
- data/lib/generators/comfy/cms/views_generator.rb +17 -0
- data/lib/generators/comfy/scaffold/scaffold_generator.rb +80 -0
- data/lib/generators/comfy/scaffold/templates/controller.rb.tt +62 -0
- data/lib/generators/comfy/scaffold/templates/migration.rb.tt +11 -0
- data/lib/generators/comfy/scaffold/templates/model.rb.tt +21 -0
- data/lib/generators/comfy/scaffold/templates/tests/controller.rb.tt +115 -0
- data/lib/generators/comfy/scaffold/templates/tests/fixture.yml.tt +4 -0
- data/lib/generators/comfy/scaffold/templates/tests/model.rb.tt +26 -0
- data/lib/generators/comfy/scaffold/templates/views/_form.haml.tt +7 -0
- data/lib/generators/comfy/scaffold/templates/views/edit.haml.tt +5 -0
- data/lib/generators/comfy/scaffold/templates/views/index.haml.tt +21 -0
- data/lib/generators/comfy/scaffold/templates/views/new.haml.tt +5 -0
- data/lib/generators/comfy/scaffold/templates/views/show.haml.tt +4 -0
- data/lib/tasks/cms_seeds.rake +40 -0
- data/public/favicon.ico +0 -0
- metadata +648 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 4d53553d8332fd819886d1897a7e59a4684b334686407c6cd91ccbcdf7b26541
|
|
4
|
+
data.tar.gz: '0852de2b8b0405c153b6d8f47f1e1416c4201a63dbba332c3d81cf312443e9af'
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: a9c96e6d11ddcdc3b5bfd78a12352760c1d9ae005862002c5c1446b7a0ea98ac5e571cb528aac28d7424a72bc30d09728f6337902c75250ae281770c2f303605
|
|
7
|
+
data.tar.gz: e2046319dd4b08861b48910c48237b57c16db1f0942156251d56e859f58ce89e109621a87b83f89f5d03af36bd96390a556c4c97ec0055d733bca2b2cc77a2fe
|
data/.codeclimate.yml
ADDED
data/.gitattributes
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
*Note:* For general questions and feature requests please leave a message
|
|
2
|
+
on Gitter: https://gitter.im/comfy/comfortable-mexican-sofa
|
|
3
|
+
|
|
4
|
+
### Expected behavior
|
|
5
|
+
Tell us what should happen
|
|
6
|
+
|
|
7
|
+
### Actual behavior
|
|
8
|
+
Tell us what happens instead
|
|
9
|
+
|
|
10
|
+
### Steps to reproduce
|
|
11
|
+
Things that help:
|
|
12
|
+
|
|
13
|
+
* Describe issue in detail.
|
|
14
|
+
* Add relevant code snippets.
|
|
15
|
+
* Create a failing test case.
|
|
16
|
+
|
|
17
|
+
### System configuration
|
|
18
|
+
**Rails version**:
|
|
19
|
+
|
|
20
|
+
**CMS version**:
|
|
21
|
+
|
|
22
|
+
**Ruby version**:
|
data/.gitignore
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.bundle
|
|
2
|
+
db/*.sqlite3
|
|
3
|
+
log/*.log
|
|
4
|
+
tmp/**/*
|
|
5
|
+
.DS_Store
|
|
6
|
+
db/schema.rb
|
|
7
|
+
db/development_structure.sql
|
|
8
|
+
db/test.sqlite3-journal
|
|
9
|
+
pkg
|
|
10
|
+
rdoc
|
|
11
|
+
/tmp
|
|
12
|
+
public/system/
|
|
13
|
+
Gemfile.lock
|
|
14
|
+
.rvmrc
|
|
15
|
+
.ruby-version
|
|
16
|
+
.ruby-gemset
|
|
17
|
+
/.sass-cache
|
|
18
|
+
coverage/
|
|
19
|
+
/storage
|
|
20
|
+
db/cms_fixtures/test-site/
|
|
21
|
+
.idea
|
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
AllCops:
|
|
2
|
+
TargetRubyVersion: 2.3
|
|
3
|
+
Exclude:
|
|
4
|
+
- bin/*
|
|
5
|
+
- db/schema.rb
|
|
6
|
+
- db/migrate/**/*
|
|
7
|
+
- test/fixtures/**/*
|
|
8
|
+
- tmp/**/*
|
|
9
|
+
|
|
10
|
+
# -- Performance ---------------------------------------------------------------
|
|
11
|
+
Performance/Casecmp:
|
|
12
|
+
Enabled: false
|
|
13
|
+
|
|
14
|
+
# -- Metrics -------------------------------------------------------------------
|
|
15
|
+
Metrics/PerceivedComplexity:
|
|
16
|
+
Enabled: false
|
|
17
|
+
|
|
18
|
+
Metrics/MethodLength:
|
|
19
|
+
Enabled: false
|
|
20
|
+
|
|
21
|
+
Metrics/MethodLength:
|
|
22
|
+
Enabled: false
|
|
23
|
+
|
|
24
|
+
Metrics/ParameterLists:
|
|
25
|
+
Enabled: false
|
|
26
|
+
|
|
27
|
+
Metrics/LineLength:
|
|
28
|
+
Max: 120
|
|
29
|
+
|
|
30
|
+
Metrics/CyclomaticComplexity:
|
|
31
|
+
Enabled: false
|
|
32
|
+
|
|
33
|
+
Metrics/ClassLength:
|
|
34
|
+
Enabled: false
|
|
35
|
+
|
|
36
|
+
Metrics/BlockLength:
|
|
37
|
+
Enabled: false
|
|
38
|
+
|
|
39
|
+
Metrics/AbcSize:
|
|
40
|
+
Enabled: false
|
|
41
|
+
|
|
42
|
+
# -- Layout --------------------------------------------------------------------
|
|
43
|
+
Layout/MultilineOperationIndentation:
|
|
44
|
+
Enabled: false
|
|
45
|
+
|
|
46
|
+
Layout/MultilineMethodCallIndentation:
|
|
47
|
+
EnforcedStyle: indented
|
|
48
|
+
|
|
49
|
+
Layout/MultilineHashBraceLayout:
|
|
50
|
+
Enabled: false
|
|
51
|
+
|
|
52
|
+
Layout/IndentArray:
|
|
53
|
+
EnforcedStyle: consistent
|
|
54
|
+
|
|
55
|
+
Layout/EmptyLinesAroundModuleBody:
|
|
56
|
+
EnforcedStyle: empty_lines_except_namespace
|
|
57
|
+
|
|
58
|
+
Layout/EmptyLinesAroundExceptionHandlingKeywords:
|
|
59
|
+
Enabled: false
|
|
60
|
+
|
|
61
|
+
Layout/EmptyLinesAroundClassBody:
|
|
62
|
+
EnforcedStyle: empty_lines_except_namespace
|
|
63
|
+
|
|
64
|
+
Layout/AlignParameters:
|
|
65
|
+
Enabled: false
|
|
66
|
+
|
|
67
|
+
Layout/AccessModifierIndentation:
|
|
68
|
+
EnforcedStyle: outdent
|
|
69
|
+
|
|
70
|
+
# -- Style ---------------------------------------------------------------------
|
|
71
|
+
Style/StringLiterals:
|
|
72
|
+
EnforcedStyle: double_quotes
|
|
73
|
+
|
|
74
|
+
Style/RegexpLiteral:
|
|
75
|
+
EnforcedStyle: percent_r
|
|
76
|
+
|
|
77
|
+
Style/Lambda:
|
|
78
|
+
EnforcedStyle: literal
|
|
79
|
+
|
|
80
|
+
Style/IfUnlessModifier:
|
|
81
|
+
Enabled: false
|
|
82
|
+
|
|
83
|
+
Style/GuardClause:
|
|
84
|
+
Enabled: false
|
|
85
|
+
|
|
86
|
+
Style/Documentation:
|
|
87
|
+
Enabled: false
|
|
88
|
+
|
|
89
|
+
Style/DateTime:
|
|
90
|
+
Enabled: false
|
|
91
|
+
|
|
92
|
+
Style/ClassAndModuleChildren:
|
|
93
|
+
Enabled: false
|
|
94
|
+
|
|
95
|
+
Style/AsciiComments:
|
|
96
|
+
Enabled: false
|
|
97
|
+
|
|
98
|
+
# -- Naming --------------------------------------------------------------------
|
|
99
|
+
Naming/UncommunicativeMethodParamName:
|
|
100
|
+
Enabled: false
|
data/.travis.yml
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
dist: xenial
|
|
2
|
+
services:
|
|
3
|
+
- xvfb
|
|
4
|
+
addons:
|
|
5
|
+
sources:
|
|
6
|
+
- google-chrome
|
|
7
|
+
apt:
|
|
8
|
+
packages:
|
|
9
|
+
- google-chrome-stable
|
|
10
|
+
|
|
11
|
+
language: ruby
|
|
12
|
+
rvm:
|
|
13
|
+
- 2.3.8
|
|
14
|
+
- 2.4.5
|
|
15
|
+
- 2.5.5
|
|
16
|
+
- 2.6.2
|
|
17
|
+
- ruby-head
|
|
18
|
+
gemfile:
|
|
19
|
+
- test/gemfiles/5.2.gemfile
|
|
20
|
+
branches:
|
|
21
|
+
only:
|
|
22
|
+
- master
|
|
23
|
+
|
|
24
|
+
before_install:
|
|
25
|
+
- gem update --system
|
|
26
|
+
- gem update bundler
|
|
27
|
+
before_script:
|
|
28
|
+
- wget http://chromedriver.storage.googleapis.com/2.36/chromedriver_linux64.zip
|
|
29
|
+
- unzip chromedriver_linux64.zip
|
|
30
|
+
- sudo apt-get install libnss3
|
|
31
|
+
- sudo apt-get --only-upgrade install google-chrome-stable
|
|
32
|
+
- sudo cp chromedriver /usr/local/bin/.
|
|
33
|
+
- sudo chmod +x /usr/local/bin/chromedriver
|
|
34
|
+
- export DISPLAY=:99.0
|
|
35
|
+
- sleep 3
|
|
36
|
+
script:
|
|
37
|
+
- bundle exec rake db:migrate
|
|
38
|
+
- bundle exec rake test
|
|
39
|
+
- SKIP_COV=true bundle exec rake test:system
|
|
40
|
+
- bundle exec rubocop
|
|
41
|
+
matrix:
|
|
42
|
+
allow_failures:
|
|
43
|
+
- rvm: ruby-head
|
data/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Contribute your code to ComfortableMexicanSofa in 5 easy steps:
|
|
4
|
+
|
|
5
|
+
### 1. Fork it
|
|
6
|
+
|
|
7
|
+
Fork the project. Optionally, create a branch you want to work on.
|
|
8
|
+
|
|
9
|
+
### 2. Get it running locally
|
|
10
|
+
|
|
11
|
+
- Install gem dependencies with `bundle install`
|
|
12
|
+
- There's nothing to configure, by default database is SQLite so it will be
|
|
13
|
+
created for you. Just run `bundle exec rake db:migrate`
|
|
14
|
+
- Make sure that existing tests are passing by running `bundle exec rake test`
|
|
15
|
+
- There are system tests that can be run with `bundle exec rake test:system`.
|
|
16
|
+
You need to have `chromedriver` installed for that.
|
|
17
|
+
- You should be able to start the app via `bin/rails s` and navigate to http://localhost:3000/admin
|
|
18
|
+
|
|
19
|
+
### 3. Hack away
|
|
20
|
+
|
|
21
|
+
- Create a few small pull requests instead of a humoungous one. I can merge small stuff faster.
|
|
22
|
+
- When adding new code just make sure it follows the same slyle as the existing code.
|
|
23
|
+
- Avoid adding 3rd party dependencies if you can.
|
|
24
|
+
- Tests please, but nothing complicated. UnitTest / Fixtures all the way. Make sure all tests pass.
|
|
25
|
+
- Run `bundle exec rubocop` and fix any issues raised.
|
|
26
|
+
|
|
27
|
+
### 4. Make a pull request
|
|
28
|
+
|
|
29
|
+
- If you never done it before read this: https://help.github.com/articles/using-pull-requests
|
|
30
|
+
- When PR is submitted check if TravisCI ran all tests successfully and Rubocop didn't raise any issues
|
|
31
|
+
|
|
32
|
+
### 5. Done!
|
|
33
|
+
|
|
34
|
+
If everything is good your changes will be merged into master branch. Eventually
|
|
35
|
+
a new version of gem will be published.
|
data/Gemfile
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source "http://rubygems.org"
|
|
4
|
+
|
|
5
|
+
gemspec
|
|
6
|
+
|
|
7
|
+
group :development, :test do
|
|
8
|
+
gem "autoprefixer-rails", "~> 8.1.0"
|
|
9
|
+
gem "byebug", "~> 10.0.0", platforms: %i[mri mingw x64_mingw]
|
|
10
|
+
gem "capybara", "~> 2.17.0"
|
|
11
|
+
gem "kaminari", "~> 1.1.1"
|
|
12
|
+
gem "puma", "~> 3.11.2"
|
|
13
|
+
gem "rubocop", "~> 0.55.0", require: false
|
|
14
|
+
gem "selenium-webdriver", "~> 3.9.0"
|
|
15
|
+
gem "sqlite3", "~> 1.3.13"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
group :development do
|
|
19
|
+
gem "listen", "~> 3.1.5"
|
|
20
|
+
gem "web-console", "~> 3.5.1"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
group :test do
|
|
24
|
+
gem "coveralls", "~> 0.8.21", require: false
|
|
25
|
+
gem "diffy", "~> 3.2.0"
|
|
26
|
+
gem "equivalent-xml", "~> 0.6.0"
|
|
27
|
+
gem "mocha", "~> 1.3.0", require: false
|
|
28
|
+
gem "rails-controller-testing", "~> 1.0.2"
|
|
29
|
+
end
|
data/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2010-2019 Oleg Khabarov
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# ComfortableMexicanSofa
|
|
2
|
+
|
|
3
|
+
ComfortableMexicanSofa is a powerful Ruby on Rails 5.2+ CMS (Content Management System) Engine
|
|
4
|
+
|
|
5
|
+
[](http://rubygems.org/gems/comfortable_mexican_sofa)
|
|
6
|
+
[](http://rubygems.org/gems/comfortable_mexican_sofa)
|
|
7
|
+
[](https://travis-ci.org/comfy/comfortable-mexican-sofa)
|
|
8
|
+
[](https://coveralls.io/r/comfy/comfortable-mexican-sofa?branch=master)
|
|
9
|
+
[](https://gitter.im/comfy/comfortable-mexican-sofa)
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
* Simple drop-in integration with Rails 5.2+ apps with minimal configuration
|
|
14
|
+
* CMS stays away from the rest of your application
|
|
15
|
+
* Powerful page templating capability using [Content Tags](https://github.com/comfy/comfortable-mexican-sofa/wiki/Docs:-Content-Tags)
|
|
16
|
+
* [Multiple Sites](https://github.com/comfy/comfortable-mexican-sofa/wiki/Docs:-Sites) from a single installation
|
|
17
|
+
* Multi-Language Support (i18n) (ca, cs, da, de, en, es, fi, fr, gr, hr, it, ja, nb, nl, pl, pt-BR, ru, sv, tr, uk, zh-CN, zh-TW) and page localization.
|
|
18
|
+
* [CMS Seeds](https://github.com/comfy/comfortable-mexican-sofa/wiki/Docs:-CMS-Seeds) for initial content population
|
|
19
|
+
* [Revision History](https://github.com/comfy/comfortable-mexican-sofa/wiki/Docs:-Revisions) to revert changes
|
|
20
|
+
* [Extendable Admin Area](https://github.com/comfy/comfortable-mexican-sofa/wiki/HowTo:-Reusing-Admin-Area) built with [Bootstrap 4](http://getbootstrap.com) (responsive design). Using [CodeMirror](http://codemirror.net) for HTML and Markdown highlighing and [Redactor](http://imperavi.com/redactor) as the WYSIWYG editor.
|
|
21
|
+
|
|
22
|
+
## Dependencies
|
|
23
|
+
|
|
24
|
+
* File attachments are handled by [ActiveStorage](https://github.com/rails/rails/tree/master/activestorage). Make sure that you can run appropriate migrations by running: `rails active_storage:install`
|
|
25
|
+
* Image resizing is done with with [ImageMagick](http://www.imagemagick.org/script/download.php), so make sure it's installed.
|
|
26
|
+
* Pagination is handled by [kaminari](https://github.com/amatsuda/kaminari) or [will_paginate](https://github.com/mislav/will_paginate). Please add one of those to your Gemfile.
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
Add gem definition to your Gemfile:
|
|
31
|
+
|
|
32
|
+
```ruby
|
|
33
|
+
gem "comfortable_mexican_sofa", "~> 2.0.0"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Then from the Rails project's root run:
|
|
37
|
+
|
|
38
|
+
bundle install
|
|
39
|
+
rails generate comfy:cms
|
|
40
|
+
rake db:migrate
|
|
41
|
+
|
|
42
|
+
Now take a look inside your `config/routes.rb` file. You'll see where routes attach for the admin area and content serving. Make sure that content serving route appears as a very last item or it will make all other routes to be inaccessible.
|
|
43
|
+
|
|
44
|
+
```ruby
|
|
45
|
+
comfy_route :cms_admin, path: "/admin"
|
|
46
|
+
comfy_route :cms, path: "/"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Quick Start Guide
|
|
50
|
+
|
|
51
|
+
After finishing installation you should be able to navigate to http://localhost:3000/admin
|
|
52
|
+
|
|
53
|
+
Default username and password is 'username' and 'password'. You probably want to change it right away. Admin credentials (among other things) can be found and changed in the cms initializer: [/config/initializers/comfortable\_mexican\_sofa.rb](https://github.com/comfy/comfortable-mexican-sofa/blob/master/config/initializers/comfortable_mexican_sofa.rb)
|
|
54
|
+
|
|
55
|
+
Before creating pages and populating them with content we need to create a Site. Site defines a hostname, content path and its language.
|
|
56
|
+
|
|
57
|
+
After creating a Site, you need to make a Layout. Layout is the template of your pages; it defines some reusable content (like header and footer, for example) and places where the content goes. A very simple layout can look like this:
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<html>
|
|
61
|
+
<body>
|
|
62
|
+
<h1>{{ cms:text title }}</h1>
|
|
63
|
+
{{ cms:wysiwyg content }}
|
|
64
|
+
</body>
|
|
65
|
+
</html>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Once you have a layout, you may start creating pages and populating content. It's that easy.
|
|
69
|
+
|
|
70
|
+
## Documentation
|
|
71
|
+
|
|
72
|
+
For more information on how to use this CMS please refer to the [Wiki](https://github.com/comfy/comfortable-mexican-sofa/wiki). Section that might be of interest is the entry
|
|
73
|
+
on [Content Tags](https://github.com/comfy/comfortable-mexican-sofa/wiki/Docs:-Content-Tags).
|
|
74
|
+
|
|
75
|
+
[Comfy Demo App](https://github.com/comfy/comfy-demo) also can be used as an
|
|
76
|
+
example of a default Rails app with CMS installed.
|
|
77
|
+
|
|
78
|
+
## Add-ons
|
|
79
|
+
|
|
80
|
+
If you want to add a Blog functionality to your app take a look at
|
|
81
|
+
[ComfyBlog](https://github.com/comfy/comfy-blog).
|
|
82
|
+
|
|
83
|
+

|
|
84
|
+
|
|
85
|
+
#### Old Versions
|
|
86
|
+
|
|
87
|
+
CMS for Rails 5.1 doesn't have published gem, but you may use [rails 5.1 branch](https://github.com/comfy/comfortable-mexican-sofa/tree/rails5.1) directly.
|
|
88
|
+
|
|
89
|
+
If you want to use CMS version 1.12 on Rails 5.2 use [1.13 branch](https://github.com/comfy/comfortable-mexican-sofa/tree/1.13) directly.
|
|
90
|
+
|
|
91
|
+
With Rails 4.2 and 5.0 use gem version [1.12.10](https://rubygems.org/gems/comfortable_mexican_sofa/versions/1.12.10)
|
|
92
|
+
|
|
93
|
+
With Rails 3.0 use gem version [1.8.5](https://rubygems.org/gems/comfortable_mexican_sofa/versions/1.8.5)
|
|
94
|
+
|
|
95
|
+
[CHANGELOG](//github.com/comfy/comfortable-mexican-sofa/releases) is documented
|
|
96
|
+
in Github releases.
|
|
97
|
+
|
|
98
|
+
#### Contributing
|
|
99
|
+
|
|
100
|
+
ComfortableMexicanSofa repository can be ran like a regular Rails application in
|
|
101
|
+
development environment. It's as easy to work on as any other Rails app out there.
|
|
102
|
+
For more detail take a look at [CONTRIBUTING](CONTRIBUTING.md)
|
|
103
|
+
|
|
104
|
+
#### Help and Contact
|
|
105
|
+
|
|
106
|
+
Gitter: https://gitter.im/comfy/comfortable-mexican-sofa
|
|
107
|
+
|
|
108
|
+
Twitter: [@GroceryBagHead](https://twitter.com/grocerybaghead)
|
|
109
|
+
|
|
110
|
+
#### Acknowledgements
|
|
111
|
+
|
|
112
|
+
Thanks to [Roman Almeida](https://github.com/nasmorn) for contributing OEM License for [Redactor Text Editor](http://imperavi.com/redactor)
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
Copyright 2010-2019 Oleg Khabarov. Released under the [MIT license](LICENSE)
|
data/Rakefile
ADDED
|
Binary file
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//= require rails-ujs
|
|
2
|
+
//= require jquery3
|
|
3
|
+
|
|
4
|
+
//= require comfy/vendor/codemirror
|
|
5
|
+
//= require comfy/vendor/codemirror/mode/css/css
|
|
6
|
+
//= require comfy/vendor/codemirror/mode/htmlmixed/htmlmixed
|
|
7
|
+
//= require comfy/vendor/codemirror/mode/javascript/javascript
|
|
8
|
+
//= require comfy/vendor/codemirror/mode/markdown/markdown
|
|
9
|
+
//= require comfy/vendor/codemirror/mode/xml/xml
|
|
10
|
+
//= require comfy/vendor/codemirror/addon/edit/closetag
|
|
11
|
+
//= require comfy/vendor/sortable.min
|
|
12
|
+
//= require comfy/vendor/bootstrap.bundle.min
|
|
13
|
+
//= require comfy/vendor/diff/diff_match_patch.min
|
|
14
|
+
//= require comfy/vendor/diff/pretty_text_diff
|
|
15
|
+
//= require comfy/vendor/fontawesome
|
|
16
|
+
//= require comfy/vendor/redactor
|
|
17
|
+
//= require comfy/vendor/redactor/filemanager
|
|
18
|
+
//= require comfy/vendor/redactor/imagemanager
|
|
19
|
+
//= require comfy/vendor/redactor/definedlinks
|
|
20
|
+
//= require comfy/vendor/redactor/table
|
|
21
|
+
//= require comfy/vendor/redactor/video
|
|
22
|
+
//= require_directory ../../vendor/redactor/i18n/
|
|
23
|
+
//= require comfy/vendor/flatpickr.min
|
|
24
|
+
//= require_directory ../../vendor/flatpickr/i18n/
|
|
25
|
+
|
|
26
|
+
//= require comfy/admin/cms/base
|
|
27
|
+
//= require comfy/admin/cms/categories
|
|
28
|
+
//= require comfy/admin/cms/codemirror
|
|
29
|
+
//= require comfy/admin/cms/diff
|
|
30
|
+
//= require comfy/admin/cms/file_link
|
|
31
|
+
//= require comfy/admin/cms/file_upload
|
|
32
|
+
//= require comfy/admin/cms/files_modal
|
|
33
|
+
//= require comfy/admin/cms/page_fragments
|
|
34
|
+
//= require comfy/admin/cms/sortable_list
|
|
35
|
+
//= require comfy/admin/cms/slugify
|
|
36
|
+
//= require comfy/admin/cms/timepicker
|
|
37
|
+
//= require comfy/admin/cms/wysiwyg
|
|
38
|
+
|
|
39
|
+
//= require comfy/admin/cms/custom
|