coalla-cms 0.4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|