coalla-cms 0.4.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.
- checksums.yaml +15 -0
- data/.gitignore +81 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +168 -0
- data/Rakefile +29 -0
- data/app/assets/fonts/glyphicons/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/glyphicons/glyphicons-halflings-regular.svg +229 -0
- data/app/assets/fonts/glyphicons/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/glyphicons/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/images/ajax-loader.gif +0 -0
- data/app/assets/images/blank.gif +0 -0
- data/app/assets/images/bootstrap/glyphicons-halflings-white.png +0 -0
- data/app/assets/images/bootstrap/glyphicons-halflings.png +0 -0
- data/app/assets/javascripts/admin/admin.js +295 -0
- data/app/assets/javascripts/admin/custom_admin.js +0 -0
- data/app/assets/javascripts/admin/jquery-migrate.min.js +2 -0
- data/app/assets/javascripts/admin/photo_uploader.js +67 -0
- data/app/assets/javascripts/admin/vendor/bootstrap.min.js +7 -0
- data/app/assets/javascripts/admin/vendor/jquery-ui-timepicker-addon-ru.js +40 -0
- data/app/assets/javascripts/admin/vendor/jquery.tagsinput.js +365 -0
- data/app/assets/javascripts/admin/vendor/jquery.tokeninput.patched.js +875 -0
- data/app/assets/javascripts/admin/vendor/underscore-min.js +5 -0
- data/app/assets/javascripts/ckeditor/plugins/autogrow/plugin.js +209 -0
- data/app/assets/javascripts/ckeditor/plugins/mediaembed/icons/hidpi/mediaembed.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/mediaembed/icons/mediaembed.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/mediaembed/plugin.js +64 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/LICENSE.txt +303 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad-gallery-css-diff.htm +831 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_next.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_prev.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_scroll_back.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_scroll_forward.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.css +185 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.js +984 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.min - ref.js +10 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.min.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/loader.gif +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/opa75.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/placeholder.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/trans.gif +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/blank.gif +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_loading.gif +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_loading@2x.gif +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_overlay.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_sprite.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_sprite@2x.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/fancybox_buttons.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-buttons.css +97 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-buttons.js +122 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-media.js +199 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-thumbs.css +55 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-thumbs.js +162 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.css +274 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.js +2020 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.pack.js +46 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/README.md +66 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/dialogs/slideshow.js +1396 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/dialogs/slideshow.min.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/icons/placeholder.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/icons/slideshow.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/Serbian_translation.txt +9 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/el.js +37 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/en.js +35 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/fr.js +35 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/ru.js +35 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/sr-latn.js +35 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/sr.js +35 -0
- data/app/assets/javascripts/ckeditor/plugins/slideshow/plugin.js +217 -0
- data/app/assets/stylesheets/admin/admin.scss +302 -0
- data/app/assets/stylesheets/admin/custom_admin.scss +1 -0
- data/app/assets/stylesheets/admin/vendor/bootstrap.min.css +14 -0
- data/app/assets/stylesheets/admin/vendor/jquery.tagsinput.css +99 -0
- data/app/assets/stylesheets/admin/vendor/token-input-facebook.patched.css +126 -0
- data/app/assets/stylesheets/admin/vendor/token-input.patched.css +116 -0
- data/app/controllers/admin/autocomplete_controller.rb +14 -0
- data/app/controllers/admin/image_upload_controller.rb +27 -0
- data/app/controllers/admin/lookups_controller.rb +47 -0
- data/app/controllers/admin/sortable_controller.rb +26 -0
- data/app/controllers/concerns/admin/path_history.rb +39 -0
- data/app/helpers/admin/search_helper.rb +59 -0
- data/app/helpers/admin_helper.rb +29 -0
- data/app/helpers/common_helper.rb +16 -0
- data/app/helpers/lookup_helper.rb +45 -0
- data/app/helpers/nested_fields_helper.rb +12 -0
- data/app/helpers/static_text_formatter.rb +25 -0
- data/app/helpers/twitter_builder_helper.rb +253 -0
- data/app/helpers/twitter_form_builder.rb +196 -0
- data/app/models/file_upload.rb +19 -0
- data/app/models/lookup.rb +6 -0
- data/app/uploaders/file_uploader.rb +10 -0
- data/app/uploaders/generic_image_uploader.rb +74 -0
- data/app/utils/admin_structure.rb +67 -0
- data/app/utils/bootstrap_link_renderer.rb +40 -0
- data/app/utils/table_helpers.rb +196 -0
- data/app/views/admin/base/_sort.haml +34 -0
- data/app/views/admin/common/_file_upload_template.haml +14 -0
- data/app/views/admin/common/_header.html.haml +27 -0
- data/app/views/admin/common/_image_upload_template.html.haml +40 -0
- data/app/views/admin/common/_menu.html.haml +2 -0
- data/app/views/admin/common/_menu_section.haml +10 -0
- data/app/views/admin/common/_menu_separator.haml +1 -0
- data/app/views/admin/common/_nested_fields_for.html.haml +5 -0
- data/app/views/admin/common/_nested_fields_for_element.html.haml +5 -0
- data/app/views/admin/common/_slide.haml +41 -0
- data/app/views/admin/common/_slides.html.haml +17 -0
- data/app/views/admin/common/_table_template.html.haml +14 -0
- data/app/views/admin/common/_upload_form.html.haml +5 -0
- data/app/views/admin/common/image_uploaded.js.haml +7 -0
- data/app/views/admin/common/upload_failed.js.erb +11 -0
- data/app/views/admin/common/upload_image.js.erb +6 -0
- data/app/views/admin/home/dashboard.html.haml +5 -0
- data/app/views/admin/lookups/_form.html.haml +16 -0
- data/app/views/admin/lookups/edit.html.haml +5 -0
- data/app/views/admin/lookups/index.html.haml +6 -0
- data/app/views/layouts/admin.html.haml +38 -0
- data/app/views/structure/_section.haml +16 -0
- data/coalla-cms.gemspec +39 -0
- data/config/locales/devise.ru.yml +59 -0
- data/config/locales/will_paginate.ru.yml +6 -0
- data/lib/coalla/cms/engine.rb +16 -0
- data/lib/coalla/cms/version.rb +5 -0
- data/lib/coalla/ext/mapper.rb +14 -0
- data/lib/coalla/orm/page_slider.rb +53 -0
- data/lib/coalla/orm/relation.rb +32 -0
- data/lib/coalla/orm/sanitized.rb +16 -0
- data/lib/coalla/sanitize/config/default.rb +526 -0
- data/lib/coalla-cms.rb +16 -0
- data/lib/generators/coalla/cms/create_admin_generator.rb +50 -0
- data/lib/generators/coalla/cms/create_admin_login_view_generator.rb +23 -0
- data/lib/generators/coalla/cms/file_uploads/install_generator.rb +35 -0
- data/lib/generators/coalla/cms/file_uploads/mount_generator.rb +34 -0
- data/lib/generators/coalla/cms/file_uploads/templates/add_column_migration.rb.erb +5 -0
- data/lib/generators/coalla/cms/file_uploads/templates/migration.rb +17 -0
- data/lib/generators/coalla/cms/image/install_generator.rb +39 -0
- data/lib/generators/coalla/cms/image/mount_generator.rb +50 -0
- data/lib/generators/coalla/cms/image/templates/migration.rb.erb +9 -0
- data/lib/generators/coalla/cms/image/templates/model.rb.erb +5 -0
- data/lib/generators/coalla/cms/image/templates/mount/migration.rb.erb +6 -0
- data/lib/generators/coalla/cms/image/templates/mount/uploader.rb.erb +3 -0
- data/lib/generators/coalla/cms/image/templates/uploader.rb.erb +3 -0
- data/lib/generators/coalla/cms/init_generator.rb +113 -0
- data/lib/generators/coalla/cms/lookups/install_generator.rb +43 -0
- data/lib/generators/coalla/cms/lookups/templates/migration.rb +13 -0
- data/lib/generators/coalla/cms/market/install_generator.rb +71 -0
- data/lib/generators/coalla/cms/market/templates/controllers/categories_controller.rb +47 -0
- data/lib/generators/coalla/cms/market/templates/controllers/products_controller.rb +50 -0
- data/lib/generators/coalla/cms/market/templates/controllers/properties_controller.rb +59 -0
- data/lib/generators/coalla/cms/market/templates/market.rb +5 -0
- data/lib/generators/coalla/cms/market/templates/market.ru.yml +53 -0
- data/lib/generators/coalla/cms/market/templates/migrations/create_categories.rb +15 -0
- data/lib/generators/coalla/cms/market/templates/migrations/create_product_properties.rb +18 -0
- data/lib/generators/coalla/cms/market/templates/migrations/create_products.rb +18 -0
- data/lib/generators/coalla/cms/market/templates/migrations/create_properties.rb +11 -0
- data/lib/generators/coalla/cms/market/templates/models/category.rb +36 -0
- data/lib/generators/coalla/cms/market/templates/models/product.rb +16 -0
- data/lib/generators/coalla/cms/market/templates/models/product_property.rb +14 -0
- data/lib/generators/coalla/cms/market/templates/models/property.rb +7 -0
- data/lib/generators/coalla/cms/market/templates/views/categories/_form.html.haml +10 -0
- data/lib/generators/coalla/cms/market/templates/views/categories/edit.html.haml +5 -0
- data/lib/generators/coalla/cms/market/templates/views/categories/index.html.haml +17 -0
- data/lib/generators/coalla/cms/market/templates/views/categories/new.html.haml +4 -0
- data/lib/generators/coalla/cms/market/templates/views/products/_form.html.haml +17 -0
- data/lib/generators/coalla/cms/market/templates/views/products/_product_property_fields.html.haml +13 -0
- data/lib/generators/coalla/cms/market/templates/views/products/edit.html.haml +5 -0
- data/lib/generators/coalla/cms/market/templates/views/products/index.html.haml +17 -0
- data/lib/generators/coalla/cms/market/templates/views/products/new.html.haml +4 -0
- data/lib/generators/coalla/cms/market/templates/views/properties/_form.html.haml +9 -0
- data/lib/generators/coalla/cms/market/templates/views/properties/edit.html.haml +5 -0
- data/lib/generators/coalla/cms/market/templates/views/properties/index.html.haml +15 -0
- data/lib/generators/coalla/cms/market/templates/views/properties/new.html.haml +4 -0
- data/lib/generators/coalla/cms/news/scaffold_generator.rb +50 -0
- data/lib/generators/coalla/cms/news/templates/entity.rb.erb +10 -0
- data/lib/generators/coalla/cms/news/templates/entity_controller_template.rb.erb +47 -0
- data/lib/generators/coalla/cms/news/templates/entity_image_uploader.rb.erb +7 -0
- data/lib/generators/coalla/cms/news/templates/migration.rb.erb +15 -0
- data/lib/generators/coalla/cms/news/templates/views/_form.haml.erb +16 -0
- data/lib/generators/coalla/cms/news/templates/views/edit.haml.erb +5 -0
- data/lib/generators/coalla/cms/news/templates/views/index.haml.erb +18 -0
- data/lib/generators/coalla/cms/news/templates/views/new.haml.erb +5 -0
- data/lib/generators/coalla/cms/orm_helpers.rb +31 -0
- data/lib/generators/coalla/cms/scaffold_generator.rb +53 -0
- data/lib/generators/coalla/cms/scaffold_helper.rb +11 -0
- data/lib/generators/coalla/cms/setup_admin_generator.rb +60 -0
- data/lib/generators/coalla/cms/setup_routes_generator.rb +28 -0
- data/lib/generators/coalla/cms/slider/init_generator.rb +41 -0
- data/lib/generators/coalla/cms/slider/templates/migration.rb.erb +25 -0
- data/lib/generators/coalla/cms/slider/templates/slider_image.rb.erb +10 -0
- data/lib/generators/coalla/cms/slider/templates/slider_image_uploader.rb.erb +7 -0
- data/lib/generators/coalla/cms/slider/templates/slider_upload_controller.rb.erb +19 -0
- data/lib/generators/coalla/cms/templates/.gitattributes +4 -0
- data/lib/generators/coalla/cms/templates/.gitignore +86 -0
- data/lib/generators/coalla/cms/templates/activerecord.ru.yml +13 -0
- data/lib/generators/coalla/cms/templates/assets.rb +13 -0
- data/lib/generators/coalla/cms/templates/controllers/admin/base_controller.rb.erb +35 -0
- data/lib/generators/coalla/cms/templates/controllers/admin/home_controller.rb.erb +6 -0
- data/lib/generators/coalla/cms/templates/controllers/admin/scaffold_controller_template.rb.erb +45 -0
- data/lib/generators/coalla/cms/templates/controllers/home_controller.rb.erb +6 -0
- data/lib/generators/coalla/cms/templates/database.yml.erb +35 -0
- data/lib/generators/coalla/cms/templates/devise.ru.yml +59 -0
- data/lib/generators/coalla/cms/templates/initializers/carrierwave.rb +51 -0
- data/lib/generators/coalla/cms/templates/migration.rb +11 -0
- data/lib/generators/coalla/cms/templates/migration_existing.rb +15 -0
- data/lib/generators/coalla/cms/templates/schedule.rb +3 -0
- data/lib/generators/coalla/cms/templates/structure.rb +0 -0
- data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/_form.html.haml.erb +14 -0
- data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/edit.html.haml.erb +5 -0
- data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/index.html.haml.erb +15 -0
- data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/new.html.haml.erb +4 -0
- data/lib/generators/coalla/cms/templates/views/administrators/sessions/new.html.haml +19 -0
- data/lib/generators/coalla/cms/templates/views/home/index.html.haml.erb +1 -0
- data/lib/generators/coalla/cms/wysiwyg/ckeditor_generator.rb +17 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/mediaembed/icons/hidpi/mediaembed.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/mediaembed/icons/mediaembed.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/mediaembed/plugin.js +64 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/LICENSE.txt +303 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad-gallery-css-diff.htm +831 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_next.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_prev.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_scroll_back.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_scroll_forward.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.css +185 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.js +984 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.min - ref.js +10 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.min.js +1 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/loader.gif +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/opa75.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/placeholder.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/trans.gif +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/blank.gif +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_loading.gif +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_loading@2x.gif +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_overlay.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_sprite.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_sprite@2x.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/fancybox_buttons.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-buttons.css +97 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-buttons.js +122 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-media.js +199 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-thumbs.css +55 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-thumbs.js +162 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.css +274 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.js +2020 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.pack.js +46 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/README.md +66 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/dialogs/slideshow.js +1396 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/dialogs/slideshow.min.js +1 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/icons/placeholder.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/icons/slideshow.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/Serbian_translation.txt +9 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/el.js +37 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/en.js +35 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/fr.js +35 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/ru.js +35 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/sr-latn.js +35 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/sr.js +35 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/plugin.js +217 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-blockquote.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-h1.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-h2.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-h3.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-h4.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-h5.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-h6.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-p.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-pre.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/wymiframe.css +276 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/wymiframe.html +26 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/jquery.wymeditor.js +4819 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/lang/en.js +45 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/lang/ru.js +55 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/plugins/imageupload/icons.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/plugins/imageupload/jquery.wymeditor.imageupload.js +150 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/plugins/resizable/jquery.wymeditor.resizable.js +91 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/plugins/resizable/readme.txt +124 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/compact/icons.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/compact/skin.css +134 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/compact/skin.js +35 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/default/icons.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/default/skin.css +341 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/default/skin.js +40 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/minimal/images/bg.header.gif +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/minimal/images/bg.selector.silver.gif +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/minimal/images/bg.wymeditor.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/minimal/images/icons.silver.gif +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/minimal/skin.css +131 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/minimal/skin.js +30 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/COPYING +674 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/README +27 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/images/bg.header.gif +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/images/bg.selector.silver.gif +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/images/bg.wymeditor.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/images/icons.silver.gif +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/skin.css +297 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/skin.js +61 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/twopanels/icons.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/twopanels/skin.css +134 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/twopanels/skin.js +39 -0
- data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/wymeditor_icon.png +0 -0
- data/lib/generators/coalla/cms/wysiwyg/wymeditor_generator.rb +17 -0
- metadata +581 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require 'rails'
|
|
2
|
+
require 'rails/generators/active_record'
|
|
3
|
+
require 'generators/coalla/cms/scaffold_helper'
|
|
4
|
+
|
|
5
|
+
module Coalla
|
|
6
|
+
module Cms
|
|
7
|
+
class ScaffoldGenerator < ActiveRecord::Generators::Base
|
|
8
|
+
argument :name, type: :string
|
|
9
|
+
|
|
10
|
+
source_root File.expand_path("../templates", __FILE__)
|
|
11
|
+
|
|
12
|
+
include Coalla::Cms::ScaffoldHelper
|
|
13
|
+
|
|
14
|
+
def setup_names
|
|
15
|
+
@instance_name = name.underscore
|
|
16
|
+
@collection_name = name.pluralize.underscore
|
|
17
|
+
@class_name = name
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def setup_table_columns
|
|
21
|
+
a_class = name.constantize
|
|
22
|
+
@table_columns = a_class.columns.reject{|c| [:id, :type, :created_at, :updated_at, :position].include?(c.name.to_sym) }.collect{|c| [c.name, c.type]}
|
|
23
|
+
|
|
24
|
+
@reflections = {}
|
|
25
|
+
a_class.reflections.values.find_all{|r| r.macro == :belongs_to}.each{|r| @reflections[r.foreign_key] = r}
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def create_controller
|
|
29
|
+
template 'controllers/admin/scaffold_controller_template.rb.erb', "app/controllers/admin/#{@collection_name}_controller.rb"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def create_views
|
|
33
|
+
dir = "views/admin/"
|
|
34
|
+
empty_directory "app/#{dir}/#{@collection_name}"
|
|
35
|
+
|
|
36
|
+
templates = %w{_form edit index new}
|
|
37
|
+
templates.each do |t|
|
|
38
|
+
template "#{dir}/scaffold_template/#{t}.html.haml.erb", "app/#{dir}/#{@collection_name}/#{t}.html.haml"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def setup_routes
|
|
43
|
+
sentinel = /namespace :admin do\s*$/
|
|
44
|
+
|
|
45
|
+
routing_code = " resources :#{@collection_name}"
|
|
46
|
+
in_root do
|
|
47
|
+
inject_into_file 'config/routes.rb', "\n #{routing_code}", { :after => sentinel, :verbose => false }
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
require 'rails/generators/active_record'
|
|
2
|
+
|
|
3
|
+
module Coalla
|
|
4
|
+
module Cms
|
|
5
|
+
|
|
6
|
+
class SetupAdminGenerator < ActiveRecord::Generators::Base
|
|
7
|
+
argument :name, :type => :string, :default => ""
|
|
8
|
+
source_root File.expand_path("../templates", __FILE__)
|
|
9
|
+
|
|
10
|
+
def setup_directory
|
|
11
|
+
invoke "coalla:cms:create_admin"
|
|
12
|
+
invoke "coalla:cms:setup_routes"
|
|
13
|
+
invoke "coalla:cms:create_admin_login_view"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def copy_structure
|
|
17
|
+
copy_file 'structure.rb', 'config/structure.rb'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def patch_application_controller
|
|
21
|
+
inject_into_class "app/controllers/application_controller.rb", ApplicationController do
|
|
22
|
+
" layout :layout_by_resource\n\n"
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
gsub_file 'app/controllers/application_controller.rb', /protect_from_forgery with: :exception/ do |match|
|
|
26
|
+
c = <<-RUBY
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def layout_by_resource
|
|
30
|
+
if devise_controller? && resource_name === :administrator
|
|
31
|
+
'admin'
|
|
32
|
+
else
|
|
33
|
+
'application'
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def after_sign_in_path_for resource
|
|
38
|
+
case resource
|
|
39
|
+
when Administrator
|
|
40
|
+
admin_dashboard_path
|
|
41
|
+
else
|
|
42
|
+
root_path
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
RUBY
|
|
46
|
+
match << c
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def install_wysiwyg
|
|
51
|
+
generate 'coalla:cms:wysiwyg:wymeditor'
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def install_ckeditor
|
|
55
|
+
generate 'coalla:cms:wysiwyg:ckeditor'
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require 'rails/generators/active_record'
|
|
2
|
+
#require 'generators/coalla/cms/orm_helpers'
|
|
3
|
+
|
|
4
|
+
module Coalla
|
|
5
|
+
module Cms
|
|
6
|
+
class SetupRoutesGenerator < ActiveRecord::Generators::Base
|
|
7
|
+
argument :name, :type => :string, :default => "administrator"
|
|
8
|
+
|
|
9
|
+
def create_route
|
|
10
|
+
route "devise_for :#{name.pluralize}
|
|
11
|
+
devise_scope :#{name} do
|
|
12
|
+
get '/admin' => 'devise/sessions#new'
|
|
13
|
+
end
|
|
14
|
+
namespace :admin do
|
|
15
|
+
scope controller: :image_upload do
|
|
16
|
+
post 'uploads/:image_class/:field' => :upload_image, as: 'upload_image'
|
|
17
|
+
end
|
|
18
|
+
scope controller: :home do
|
|
19
|
+
get :dashboard
|
|
20
|
+
end
|
|
21
|
+
scope controller: :autocomplete do
|
|
22
|
+
get 'list/:model/:field' => :list, as: 'autocomplete'
|
|
23
|
+
end
|
|
24
|
+
end"
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require 'rails'
|
|
2
|
+
require 'rails/generators/active_record'
|
|
3
|
+
|
|
4
|
+
module Coalla
|
|
5
|
+
module Cms
|
|
6
|
+
module Slider
|
|
7
|
+
|
|
8
|
+
class InitGenerator < ::ActiveRecord::Generators::Base
|
|
9
|
+
argument :name, type: :string, default: 'SliderImage'
|
|
10
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
@class_name = name
|
|
14
|
+
@uploader_name = "#{@class_name}Uploader"
|
|
15
|
+
@table_name = @class_name.pluralize.underscore
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def create_model
|
|
19
|
+
template 'slider_image.rb.erb', "app/models/#{@class_name.underscore}.rb"
|
|
20
|
+
template 'slider_image_uploader.rb.erb', "app/uploaders/#{@uploader_name.underscore}.rb"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def create_upload_migration
|
|
24
|
+
migration_template 'migration.rb.erb', "db/migrate/create_#{@table_name}.rb"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def create_upload_controller
|
|
28
|
+
template 'slider_upload_controller.rb.erb', "app/controllers/admin/#{@class_name.pluralize.underscore}_controller.rb"
|
|
29
|
+
|
|
30
|
+
sentinel = /namespace :admin do\s*$/
|
|
31
|
+
routing_code = " resource :#{@class_name.underscore}, only: :create, as: :upload_#{@class_name.underscore}"
|
|
32
|
+
in_root do
|
|
33
|
+
inject_into_file 'config/routes.rb', "\n #{routing_code}", {:after => sentinel, :verbose => false}
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
class Create<%= @class_name.pluralize %> < ActiveRecord::Migration
|
|
2
|
+
|
|
3
|
+
def up
|
|
4
|
+
create_table :<%= @table_name %> do |t|
|
|
5
|
+
t.text :slider_type, null: false
|
|
6
|
+
t.text :image
|
|
7
|
+
t.text :title
|
|
8
|
+
t.text :file_name
|
|
9
|
+
t.text :content_type
|
|
10
|
+
t.integer :size
|
|
11
|
+
t.integer :width
|
|
12
|
+
t.integer :height
|
|
13
|
+
t.integer :position, :integer
|
|
14
|
+
t.integer :container_slider_id
|
|
15
|
+
t.timestamps
|
|
16
|
+
end
|
|
17
|
+
add_index :<%= @table_name %>, :position
|
|
18
|
+
add_index :<%= @table_name %>, :container_slider_id
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def down
|
|
22
|
+
drop_table :<%= @table_name %>
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
class <%= @class_name %> < ActiveRecord::Base
|
|
2
|
+
|
|
3
|
+
mount_uploader :image, <%= @uploader_name %>
|
|
4
|
+
acts_as_list scope: 'container_slider_id = #{container_slider_id} AND slider_type = \'#{slider_type}\''
|
|
5
|
+
|
|
6
|
+
def self.with_type(slider_type)
|
|
7
|
+
where(slider_type: slider_type)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
class Admin::<%= @class_name.pluralize %>Controller < Admin::BaseController
|
|
2
|
+
|
|
3
|
+
def create
|
|
4
|
+
image_param_name = "#{params[:slider_type]}_image".to_sym
|
|
5
|
+
image_params = create_params(image_param_name)
|
|
6
|
+
@master_object_id = image_params[:master_object_id]
|
|
7
|
+
@slides = image_params[image_param_name].map do |image|
|
|
8
|
+
<%= @class_name %>.new(image: image, slider_type: image_params[:slider_type])
|
|
9
|
+
end
|
|
10
|
+
render 'admin/common/image_uploaded'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
def create_params(image_param_name)
|
|
16
|
+
params.permit({image_param_name => []}, :master_object_id, :slider_type)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
.bundle
|
|
2
|
+
Gemfile.lock
|
|
3
|
+
db/*.sqlite3
|
|
4
|
+
log/*.log
|
|
5
|
+
tmp/
|
|
6
|
+
# Rails
|
|
7
|
+
.bundle
|
|
8
|
+
db/*.sqlite3
|
|
9
|
+
db/*.sqlite3-journal
|
|
10
|
+
*.log
|
|
11
|
+
tmp
|
|
12
|
+
tmp/**/*
|
|
13
|
+
|
|
14
|
+
/db/sphinx
|
|
15
|
+
/db/schema.rb
|
|
16
|
+
/log/development.sphinx.pid
|
|
17
|
+
|
|
18
|
+
# Documentation
|
|
19
|
+
doc/api
|
|
20
|
+
doc/app
|
|
21
|
+
.yardoc
|
|
22
|
+
.yardopts
|
|
23
|
+
|
|
24
|
+
# Public Uploads
|
|
25
|
+
public/system/*
|
|
26
|
+
public/themes/*
|
|
27
|
+
public/uploads/*
|
|
28
|
+
|
|
29
|
+
# Public Cache
|
|
30
|
+
public/javascripts/cache
|
|
31
|
+
public/stylesheets/cache
|
|
32
|
+
|
|
33
|
+
# Vendor Cache
|
|
34
|
+
vendor/cache
|
|
35
|
+
|
|
36
|
+
# Acts as Indexed
|
|
37
|
+
index/**/*
|
|
38
|
+
|
|
39
|
+
# Refinery Specific
|
|
40
|
+
*.tmproj
|
|
41
|
+
*.autobackupbyrefinery.*
|
|
42
|
+
refinerycms-*.gem
|
|
43
|
+
.autotest
|
|
44
|
+
|
|
45
|
+
# Mac
|
|
46
|
+
.DS_Store
|
|
47
|
+
|
|
48
|
+
# Windows
|
|
49
|
+
Thumbs.db
|
|
50
|
+
|
|
51
|
+
# NetBeans
|
|
52
|
+
nbproject
|
|
53
|
+
|
|
54
|
+
# Eclipse
|
|
55
|
+
.project
|
|
56
|
+
|
|
57
|
+
# Redcar
|
|
58
|
+
.redcar
|
|
59
|
+
|
|
60
|
+
# Rubinius
|
|
61
|
+
*.rbc
|
|
62
|
+
|
|
63
|
+
# Vim
|
|
64
|
+
*.swp
|
|
65
|
+
*.swo
|
|
66
|
+
|
|
67
|
+
# RubyMine
|
|
68
|
+
.idea
|
|
69
|
+
|
|
70
|
+
# E-texteditor
|
|
71
|
+
.eprj
|
|
72
|
+
|
|
73
|
+
# Backup
|
|
74
|
+
*~
|
|
75
|
+
|
|
76
|
+
# Capybara Bug
|
|
77
|
+
capybara-*html
|
|
78
|
+
|
|
79
|
+
# sass
|
|
80
|
+
.sass-cache
|
|
81
|
+
.sass-cache/*
|
|
82
|
+
|
|
83
|
+
#rvm
|
|
84
|
+
.rvmrc
|
|
85
|
+
.rvmrc.*
|
|
86
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
|
2
|
+
|
|
3
|
+
# Version of your assets, change this if you want to expire all your assets.
|
|
4
|
+
Rails.application.config.assets.version = '1.0'
|
|
5
|
+
|
|
6
|
+
# Precompile additional assets.
|
|
7
|
+
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
|
8
|
+
# Rails.application.config.assets.precompile += %w( search.js )
|
|
9
|
+
Rails.application.config.assets.precompile += %w( admin/admin.css )
|
|
10
|
+
Rails.application.config.assets.precompile += [->(path) {
|
|
11
|
+
full_path = Rails.application.assets.resolve(path)
|
|
12
|
+
File.extname(full_path).in?(%w(.js .css))
|
|
13
|
+
}]
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module Admin
|
|
2
|
+
|
|
3
|
+
class BaseController < ApplicationController
|
|
4
|
+
|
|
5
|
+
layout 'admin'
|
|
6
|
+
|
|
7
|
+
include Admin::PathHistory
|
|
8
|
+
helper_method :back_uri
|
|
9
|
+
|
|
10
|
+
before_action :no_cache!
|
|
11
|
+
before_action :authenticate_administrator!
|
|
12
|
+
before_action :load_structure
|
|
13
|
+
before_action :store_path_history
|
|
14
|
+
|
|
15
|
+
protected
|
|
16
|
+
|
|
17
|
+
def load_structure
|
|
18
|
+
@structure = ::AdminStructure.new
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def add_success_msg
|
|
22
|
+
flash.now[:admin_success] = 'Информация успешно сохранена'
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def redirect_or_render partial
|
|
26
|
+
if params[:save].present?
|
|
27
|
+
redirect_to_back
|
|
28
|
+
else
|
|
29
|
+
add_success_msg
|
|
30
|
+
render partial
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
data/lib/generators/coalla/cms/templates/controllers/admin/scaffold_controller_template.rb.erb
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
module Admin
|
|
2
|
+
|
|
3
|
+
class <%= name.camelize.pluralize %>Controller < BaseController
|
|
4
|
+
|
|
5
|
+
PER_PAGE = 20
|
|
6
|
+
|
|
7
|
+
def index
|
|
8
|
+
@<%= @collection_name %> = <%= @class_name %>.order(created_at: :desc).paginate(page: params[:page], per_page: PER_PAGE)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def new
|
|
12
|
+
@<%= @instance_name %> = <%= @class_name %>.new
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def create
|
|
16
|
+
@<%= @instance_name %> = <%= @class_name %>.new(params[:<%= @instance_name %>].permit!)
|
|
17
|
+
if @<%= @instance_name %>.save
|
|
18
|
+
redirect_or_render :edit
|
|
19
|
+
else
|
|
20
|
+
render :new
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def edit
|
|
25
|
+
@<%= @instance_name %> = <%= @class_name %>.find(params[:id])
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def update
|
|
29
|
+
@<%= @instance_name %> = <%= @class_name %>.find(params[:id])
|
|
30
|
+
if @<%= @instance_name %>.update_attributes(params[:<%= @instance_name %>].permit!)
|
|
31
|
+
redirect_or_render :edit
|
|
32
|
+
else
|
|
33
|
+
render :edit
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def destroy
|
|
38
|
+
@<%= @instance_name %> = <%= @class_name %>.find(params[:id])
|
|
39
|
+
@<%= @instance_name %>.destroy
|
|
40
|
+
redirect_to_last
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
development:
|
|
2
|
+
adapter: postgresql
|
|
3
|
+
encoding: unicode
|
|
4
|
+
database: <%= @name %>_development
|
|
5
|
+
pool: 5
|
|
6
|
+
username: postgres
|
|
7
|
+
password: resolve
|
|
8
|
+
host: 127.0.0.1
|
|
9
|
+
|
|
10
|
+
test:
|
|
11
|
+
adapter: postgresql
|
|
12
|
+
encoding: unicode
|
|
13
|
+
database: <%= @name %>_test
|
|
14
|
+
pool: 5
|
|
15
|
+
username: postgres
|
|
16
|
+
password: resolve
|
|
17
|
+
host: 127.0.0.1
|
|
18
|
+
|
|
19
|
+
staging:
|
|
20
|
+
adapter: postgresql
|
|
21
|
+
encoding: unicode
|
|
22
|
+
database: <%= @name %>_test
|
|
23
|
+
pool: 5
|
|
24
|
+
username: <%= @name %>_test
|
|
25
|
+
password: <%= generate_password %>
|
|
26
|
+
host: 127.0.0.1
|
|
27
|
+
|
|
28
|
+
production:
|
|
29
|
+
adapter: postgresql
|
|
30
|
+
encoding: unicode
|
|
31
|
+
database: <%= @name %>
|
|
32
|
+
pool: 5
|
|
33
|
+
username: <%= @name %>
|
|
34
|
+
password: <%= generate_password %>
|
|
35
|
+
host: 127.0.0.1
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
ru:
|
|
2
|
+
errors:
|
|
3
|
+
messages:
|
|
4
|
+
expired: "устарела. Пожалуйста, запросите новую"
|
|
5
|
+
not_found: "Учетная запись с таким E-mail не найдена в базе данных"
|
|
6
|
+
already_confirmed: "уже подтверждена. Пожалуйста, попробуйте войти в систему"
|
|
7
|
+
not_locked: "не заблокирована"
|
|
8
|
+
not_saved:
|
|
9
|
+
one: "%{resource}: сохранение не удалось из-за %{count} ошибки"
|
|
10
|
+
few: "%{resource}: сохранение не удалось из-за %{count} ошибок"
|
|
11
|
+
many: "%{resource}: сохранение не удалось из-за %{count} ошибок"
|
|
12
|
+
other: "%{resource}: сохранение не удалось из-за %{count} ошибки"
|
|
13
|
+
|
|
14
|
+
devise:
|
|
15
|
+
failure:
|
|
16
|
+
already_authenticated: "Вы уже вошли в систему."
|
|
17
|
+
unauthenticated: "Вам необходимо войти в систему."
|
|
18
|
+
unconfirmed: "Вы должны подтвердить вашу учётную запись."
|
|
19
|
+
locked: "Ваша учётная запись заблокирована."
|
|
20
|
+
invalid: "Неверный E-mail или пароль."
|
|
21
|
+
not_found_in_database: "Неверный e-mail или пароль."
|
|
22
|
+
invalid_token: "Неверный ключ аутентификации."
|
|
23
|
+
timeout: "Ваш сеанс закончился. Пожалуйста, войдите в систему снова."
|
|
24
|
+
inactive: "Ваша учётная запись заблокирована."
|
|
25
|
+
deleted: "Ваша учетная запись удалена."
|
|
26
|
+
sessions:
|
|
27
|
+
signed_in: "Вход в систему выполнен."
|
|
28
|
+
signed_out: "Выход из системы выполнен."
|
|
29
|
+
passwords:
|
|
30
|
+
send_instructions: "В течение нескольких минут вы получите письмо с инструкциями по восстановлению вашего пароля."
|
|
31
|
+
updated: "Ваш пароль изменён. Теперь вы вошли в систему."
|
|
32
|
+
updated_not_active: "Ваш пароль изменён."
|
|
33
|
+
send_paranoid_instructions: "Если ваш адрес e-mail есть в нашей базе данных, то в течение нескольких минут вы получите письмо с инструкциями по восстановлению вашего пароля."
|
|
34
|
+
confirmations:
|
|
35
|
+
send_instructions: "В течение нескольких минут вы получите письмо с инструкциями по подтверждению вашей учётной записи."
|
|
36
|
+
send_paranoid_instructions: "Если ваш адрес e-mail есть в нашей базе данных, то в течение нескольких минут вы получите письмо с инструкциями по подтверждению вашей учётной записи."
|
|
37
|
+
confirmed: "Ваша учётная запись подтверждена. Теперь вы вошли в систему."
|
|
38
|
+
registrations:
|
|
39
|
+
signed_up: "Добро пожаловать! Вы успешно зарегистрировались."
|
|
40
|
+
signed_up_but_unconfirmed: "Добро пожаловать! Вы успешно зарегистрировались. Но пока вы не можете войти в систему, т.к. ваша учётная запись не подтверждена."
|
|
41
|
+
signed_up_but_inactive: "Добро пожаловать! Вы успешно зарегистрировались. Но пока вы не можете войти в систему, т.к. ваша учётная запись не активна."
|
|
42
|
+
signed_up_but_locked: "Добро пожаловать! Вы успешно зарегистрировались. Но пока вы не можете войти в систему, т.к. ваша учётная запись заблокирована."
|
|
43
|
+
updated: "Ваша учётная запись изменена."
|
|
44
|
+
update_needs_confirmation: "Ваша учётная запись обновлена, но нам нужно проверить ваш новый адрес e-mail. Через несколько минут вы получите письмо со ссылкой для подтверждения нового адреса e-mail."
|
|
45
|
+
destroyed: "До свидания! Ваша учётная запись удалена. Надеемся снова увидеть вас."
|
|
46
|
+
unlocks:
|
|
47
|
+
send_instructions: "В течение нескольких минут вы получите письмо с инструкциями по разблокировке вашей учётной записи."
|
|
48
|
+
unlocked: "Ваша учётная запись разблокирована. Пожалуйста, войдите в систему."
|
|
49
|
+
send_paranoid_instructions: "Если ваша учётная запись существует, то в течение нескольких минут вы получите письмо с инструкциями по её разблокировке."
|
|
50
|
+
omniauth_callbacks:
|
|
51
|
+
success: "Вход в систему выполнен с учётной записью из %{kind}."
|
|
52
|
+
failure: "Вы не можете войти в систему с учётной записью из %{kind}, т.к. \"%{reason}\"."
|
|
53
|
+
mailer:
|
|
54
|
+
confirmation_instructions:
|
|
55
|
+
subject: "Инструкции по подтверждению учётной записи"
|
|
56
|
+
reset_password_instructions:
|
|
57
|
+
subject: "Инструкции по восстановлению пароля"
|
|
58
|
+
unlock_instructions:
|
|
59
|
+
subject: "Инструкции по разблокировке учётной записи"
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# We need to have an ability to upload files which includes russian characters, so we
|
|
2
|
+
# have to extend upload carrierwave security rules (see code below). Because of ruby
|
|
3
|
+
# bug you can't upload such files in Windows OS
|
|
4
|
+
unless RUBY_PLATFORM.downcase.include?("win") || RUBY_PLATFORM.downcase.include?("mingw")
|
|
5
|
+
|
|
6
|
+
CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:]\.\-\+]/
|
|
7
|
+
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
if RUBY_VERSION == "1.9.3"
|
|
11
|
+
|
|
12
|
+
module CarrierWave
|
|
13
|
+
|
|
14
|
+
class SanitizedFile
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
# Sanitize the filename, to prevent hacking
|
|
19
|
+
def sanitize(name)
|
|
20
|
+
name = name.force_encoding(Encoding::UTF_8)
|
|
21
|
+
name = name.gsub("\\", "/") # work-around for IE
|
|
22
|
+
name = File.basename(name)
|
|
23
|
+
name = name.gsub(sanitize_regexp, "_")
|
|
24
|
+
name = "_#{name}" if name =~ /\A\.+\z/
|
|
25
|
+
name = "unnamed" if name.size == 0
|
|
26
|
+
return name.mb_chars.to_s
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
module CarrierWave
|
|
34
|
+
|
|
35
|
+
module Mount
|
|
36
|
+
|
|
37
|
+
class Mounter
|
|
38
|
+
|
|
39
|
+
def url(*args)
|
|
40
|
+
url = uploader.url(*args)
|
|
41
|
+
url = url.force_encoding(Encoding::UTF_8) if url
|
|
42
|
+
url
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
class Create<%= table_name.camelize %>Model < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
create_table(:<%= table_name %>) do |t|
|
|
4
|
+
<%= migration_data -%>
|
|
5
|
+
t.timestamps
|
|
6
|
+
end
|
|
7
|
+
add_index :<%= table_name %>, :email, unique: true
|
|
8
|
+
|
|
9
|
+
<%= create_default_admin %>
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class AddAdminRoleTo<%= table_name.camelize %> < ActiveRecord::Migration
|
|
2
|
+
def self.up
|
|
3
|
+
change_table(:<%= table_name %>) do |t|
|
|
4
|
+
<%= migration_data -%>
|
|
5
|
+
end
|
|
6
|
+
add_index :<%= table_name %>, :email, unique: true
|
|
7
|
+
<%= create_default_admin %>
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.down
|
|
11
|
+
# By default, we don't want to make any assumption about how to roll back a migration when your
|
|
12
|
+
# model already existed. Please edit below which fields you would like to remove in this migration.
|
|
13
|
+
raise ActiveRecord::IrreversibleMigration
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
set :output, {error: 'log/error.log', standard: 'log/cron.log'}
|
|
2
|
+
job_type :runner, "cd :path && rvmsudo -u www-data bundle exec rails runner -e :environment ':task' :output"
|
|
3
|
+
job_type :rake, "cd :path && rvmsudo -u www-data RAILS_ENV=:environment bundle exec rake :task :output"
|
|
File without changes
|