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,196 @@
|
|
1
|
+
class TableHelpers
|
2
|
+
|
3
|
+
class SimpleFormatter
|
4
|
+
def format_value(item, format)
|
5
|
+
case format
|
6
|
+
when Proc
|
7
|
+
format.call(item)
|
8
|
+
else
|
9
|
+
item
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class BooleanFormatter < SimpleFormatter
|
15
|
+
|
16
|
+
def format_value(item, format)
|
17
|
+
case format
|
18
|
+
when Proc
|
19
|
+
format.call(item)
|
20
|
+
when String
|
21
|
+
item ? format : ''
|
22
|
+
when Hash
|
23
|
+
case item
|
24
|
+
when true
|
25
|
+
format[:true].presence || format[:yes].presence || ''
|
26
|
+
else
|
27
|
+
format[:false].presence || format[:no].presence || ''
|
28
|
+
end
|
29
|
+
else
|
30
|
+
item ? '<i class="glyphicon glyphicon-check"></i>'.html_safe : ''
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def align
|
35
|
+
:center
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
class DateFormatter < SimpleFormatter
|
41
|
+
|
42
|
+
DATE = '%d.%m.%Y'
|
43
|
+
|
44
|
+
def initialize(default_format)
|
45
|
+
@default_format = default_format
|
46
|
+
end
|
47
|
+
|
48
|
+
def format_value(item, format)
|
49
|
+
if item
|
50
|
+
item = item.localtime if item.respond_to?(:localtime)
|
51
|
+
case format
|
52
|
+
when String
|
53
|
+
Russian::strftime(item, format)
|
54
|
+
when Proc
|
55
|
+
format.call(item)
|
56
|
+
when :date
|
57
|
+
Russian::strftime(item, DATE)
|
58
|
+
else
|
59
|
+
Russian::strftime(item, @default_format)
|
60
|
+
end
|
61
|
+
else
|
62
|
+
''
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
class EnumerizeFormatter < SimpleFormatter
|
69
|
+
|
70
|
+
def format_value(item, format)
|
71
|
+
case format
|
72
|
+
when Proc
|
73
|
+
format.call(item)
|
74
|
+
else
|
75
|
+
item.try(:text)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
80
|
+
|
81
|
+
class SelfHelper
|
82
|
+
|
83
|
+
def format_value(item, format)
|
84
|
+
raise "Format should be lambda" unless format.is_a? Proc
|
85
|
+
format.call(item)
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
class MethodHelper
|
91
|
+
|
92
|
+
FORMATS = {
|
93
|
+
boolean: BooleanFormatter.new,
|
94
|
+
date: DateFormatter.new(DateFormatter::DATE),
|
95
|
+
datetime: DateFormatter.new('%d.%m.%Y %H:%M'),
|
96
|
+
enumerize: EnumerizeFormatter.new
|
97
|
+
}
|
98
|
+
FORMATS.default = SimpleFormatter.new
|
99
|
+
|
100
|
+
def initialize(method, type)
|
101
|
+
@method = method
|
102
|
+
@formatter = FORMATS[type]
|
103
|
+
end
|
104
|
+
|
105
|
+
def format_value(item, format)
|
106
|
+
@formatter.format_value(item.send(@method), format)
|
107
|
+
end
|
108
|
+
|
109
|
+
def align
|
110
|
+
@align || @formatter.respond_to?(:align) && @formatter.align || :left
|
111
|
+
end
|
112
|
+
|
113
|
+
def align=(value)
|
114
|
+
@align = value
|
115
|
+
end
|
116
|
+
|
117
|
+
def respond_to?(method)
|
118
|
+
return (@align.present? || @formatter.respond_to?(method)) if method == :align
|
119
|
+
super
|
120
|
+
end
|
121
|
+
|
122
|
+
end
|
123
|
+
|
124
|
+
class ReflectionHelper
|
125
|
+
|
126
|
+
def initialize(method, template)
|
127
|
+
@method = method
|
128
|
+
@template = template
|
129
|
+
end
|
130
|
+
|
131
|
+
def format_value(item, format)
|
132
|
+
target = item.send(@method)
|
133
|
+
case format
|
134
|
+
when Proc
|
135
|
+
format.call(target)
|
136
|
+
when Hash, nil
|
137
|
+
if target
|
138
|
+
options = {label_attr: :id, type: :link, target: :_blank}.merge(format || {})
|
139
|
+
v = target.send(options[:label_attr])
|
140
|
+
case options[:type]
|
141
|
+
when :link
|
142
|
+
@template.link_to(v, target, target: options[:target])
|
143
|
+
else
|
144
|
+
v.to_s
|
145
|
+
end
|
146
|
+
else
|
147
|
+
''
|
148
|
+
end
|
149
|
+
else
|
150
|
+
target.to_s
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
155
|
+
|
156
|
+
def initialize(model_class, template)
|
157
|
+
@model_class = model_class
|
158
|
+
@columns = model_class.columns.index_by(&:name).with_indifferent_access
|
159
|
+
@reflections = model_class.reflections.dup.with_indifferent_access
|
160
|
+
@template = template
|
161
|
+
@helpers = {}
|
162
|
+
end
|
163
|
+
|
164
|
+
def self.for(model_class, template)
|
165
|
+
TableHelpers.new(model_class, template)
|
166
|
+
end
|
167
|
+
|
168
|
+
def [](method)
|
169
|
+
helper = @helpers[method]
|
170
|
+
unless helper
|
171
|
+
helper = case method
|
172
|
+
when :self
|
173
|
+
SelfHelper.new
|
174
|
+
else
|
175
|
+
r = @reflections[method]
|
176
|
+
if r
|
177
|
+
if r.macro == :belongs_to
|
178
|
+
ReflectionHelper.new(method, @template)
|
179
|
+
end
|
180
|
+
else
|
181
|
+
if @model_class.respond_to?(:enumerized_attributes) && @model_class.enumerized_attributes[method]
|
182
|
+
type = :enumerize
|
183
|
+
else
|
184
|
+
type = @columns[method] && @columns[method].type || :default
|
185
|
+
end
|
186
|
+
h = MethodHelper.new(method, type)
|
187
|
+
h.align = :right if [:integer, :decimal].include?(type.to_sym)
|
188
|
+
h
|
189
|
+
end
|
190
|
+
end
|
191
|
+
@helpers[method] = helper
|
192
|
+
end
|
193
|
+
helper
|
194
|
+
end
|
195
|
+
|
196
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
- model_name = controller_name.classify.constantize
|
2
|
+
.page-header
|
3
|
+
%h1
|
4
|
+
Сортировка
|
5
|
+
%small
|
6
|
+
Вы можете перетаскивать строки в таблице
|
7
|
+
|
8
|
+
= form_tag action: :sort, method: :post do
|
9
|
+
%table.table.table-striped
|
10
|
+
%thead
|
11
|
+
%tr
|
12
|
+
%th.span12= model_name.human_attribute_name(attribute_name)
|
13
|
+
%tbody
|
14
|
+
- self.instance_variable_get("@#{controller_name}").each do |sortable|
|
15
|
+
%tr
|
16
|
+
= hidden_field_tag "#{controller_name}[#{sortable.id}]", sortable.id
|
17
|
+
%td= sortable.send(attribute_name)
|
18
|
+
= actions do
|
19
|
+
= submit_tag 'Сохранить', class: 'btn btn-success'
|
20
|
+
= cancel_action action: :index
|
21
|
+
|
22
|
+
:javascript
|
23
|
+
$('#content tbody').sortable({
|
24
|
+
axis: 'y',
|
25
|
+
cursor: 'move',
|
26
|
+
helper: function(e, tr) {
|
27
|
+
var $originals = tr.children();
|
28
|
+
var $helper = tr.clone();
|
29
|
+
$helper.children().each(function(index) {
|
30
|
+
$(this).width($originals.eq(index).width())
|
31
|
+
});
|
32
|
+
return $helper;
|
33
|
+
}
|
34
|
+
}).disableSelection();
|
@@ -0,0 +1,14 @@
|
|
1
|
+
- file = f.object.send field
|
2
|
+
.control-group{data: {file_upload_container: true}}
|
3
|
+
.controls.alert.alert-info.span3
|
4
|
+
%p{id: "#{field}-name-label", style: "margin-bottom: 10px;", data: {file_upload_title: true}}
|
5
|
+
- if file.file
|
6
|
+
= file.file.filename
|
7
|
+
= surround '(', ')' do
|
8
|
+
= number_to_human_size(file.file.size)
|
9
|
+
- else
|
10
|
+
= I18n.t("activerecord.attributes.#{f.object.class.model_name.singular}.#{field}_name")
|
11
|
+
|
12
|
+
.custom-file{style: 'cursor: pointer; height: 31px; overflow: hidden; position: relative; width: 140px;'}
|
13
|
+
.btn.btn-primary{style: 'position: absolute; left: 0; right: 0;'} Загрузить
|
14
|
+
= f.file_field field, class: 'span5', style: "font-size: 100px; opacity: 0; position: absolute;", data: {file_upload: true}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
%header.navbar.navbar-inverse.navbar-fixed-top{role: 'banner'}
|
2
|
+
.navbar-header
|
3
|
+
%button.navbar-toggle{type: 'button', data:{toggle: 'collapse', target: '#navbar-collapse'}}
|
4
|
+
%span.sr-only Toggle navigation
|
5
|
+
%span.icon-bar
|
6
|
+
%span.icon-bar
|
7
|
+
%span.icon-bar
|
8
|
+
= link_to 'Главная', root_path, class: 'navbar-brand'
|
9
|
+
|
10
|
+
#navbar-collapse.navbar-collapse.collapse
|
11
|
+
%nav.nav.navbar-nav.side-nav{role: "navigation"}
|
12
|
+
= render 'admin/common/menu'
|
13
|
+
|
14
|
+
%ul.nav.navbar-nav.navbar-right
|
15
|
+
%li
|
16
|
+
%p.navbar-text
|
17
|
+
Вы вошли как
|
18
|
+
|
19
|
+
= link_to '#', class: 'navbar-link' do
|
20
|
+
%i.glyphicon.glyphicon-user
|
21
|
+
|
22
|
+
Администратор
|
23
|
+
%li
|
24
|
+
= link_to destroy_administrator_session_path, method: Devise.sign_out_via, class: 'navbar-link' do
|
25
|
+
%i.glyphicon.glyphicon-log-out
|
26
|
+
|
27
|
+
Выход
|
@@ -0,0 +1,40 @@
|
|
1
|
+
- free_size = options[:free_size] || false
|
2
|
+
- font_size = options[:font_size] ? " font-size: #{options[:font_size]}px;" : ''
|
3
|
+
.upload-img-container{id: container, class: free_size && 'manage-size'}
|
4
|
+
- if url
|
5
|
+
.form-group
|
6
|
+
%label.control-label.col-md-4.col-lg-2= title
|
7
|
+
.col-md-8
|
8
|
+
- w, h = size.split('x').to_a.map(&:to_i)
|
9
|
+
- show_placeholder = (url == 'placeholder')
|
10
|
+
- txt = text || "#{w} x #{h}"
|
11
|
+
- common_options = {alt: '', class: 'image-preview'}
|
12
|
+
- common_options[:size] = size if !free_size || show_placeholder
|
13
|
+
.img-polaroid{style: "position: relative; width: #{w}px; height: #{h}px;", class: show_placeholder && 'init-placeholder'}
|
14
|
+
- image_preview_url = url
|
15
|
+
- image_preview_style = image_style
|
16
|
+
- trash_btn_style = ''
|
17
|
+
- placeholder_style = "height: #{h}px; line-height: #{h}px; width: #{w}px;#{font_size}"
|
18
|
+
- if show_placeholder
|
19
|
+
- image_preview_url = 'blank.gif'
|
20
|
+
- image_preview_style = hide_style(image_preview_style)
|
21
|
+
- trash_btn_style = hide_style(trash_btn_style)
|
22
|
+
- else
|
23
|
+
- placeholder_style = hide_style(placeholder_style)
|
24
|
+
|
25
|
+
.ajax-loader{data: {image_loader: true}}
|
26
|
+
%div.image-placeholder{style: placeholder_style, data: {image_placeholder: true}}
|
27
|
+
#{txt}
|
28
|
+
= image_tag image_preview_url, common_options.merge(style: image_preview_style).merge(data: {image_tag: true, image_preview: true})
|
29
|
+
= link_to '#', class: 'btn btn-danger btn-xs image__button_remove', style: trash_btn_style, data: {image_remove_btn: true, image_preview: true} do
|
30
|
+
%i.glyphicon.glyphicon-trash
|
31
|
+
.form-group
|
32
|
+
.col-md-4.col-lg-2
|
33
|
+
.col-md-8.col-lg-10
|
34
|
+
.custom-file{style: 'position: relative; display: inline-block; width: 140px; height: 34px; overflow: hidden;'}
|
35
|
+
.btn.btn-primary{style: 'position: absolute; left: 0; right: 0;'} Загрузить
|
36
|
+
= file_field_tag :image, id: nil, data: {file: true, path: upload_uri,
|
37
|
+
container: container, version: version, free_size: free_size},
|
38
|
+
style: 'position: absolute; font-size: 100px; opacity: 0; cursor: pointer;'
|
39
|
+
= f.hidden_field "#{field}_cache", class: 'image-cache'
|
40
|
+
= f.hidden_field "remove_#{field}", data: {image_remove_flag: true}
|
@@ -0,0 +1 @@
|
|
1
|
+
%li.nav-header= item.title.html_safe
|
@@ -0,0 +1,5 @@
|
|
1
|
+
.fields_container{style: (builder.object.marked_for_destruction? ? 'display:none;' : 'position:relative'), class: 'well'}
|
2
|
+
= render partial, builder: builder
|
3
|
+
= builder.hidden_field :_destroy
|
4
|
+
= link_to '#', class: 'btn btn-danger remove_field', style:'position: absolute; top: 20px; right: 30px;' do
|
5
|
+
%i.glyphicon.glyphicon-trash
|
@@ -0,0 +1,41 @@
|
|
1
|
+
.pictograms__i.col-lg-1.col-md-2.col-sm-3.col-xs-4{style: lb.object.marked_for_destruction? && 'display: none;', class: lb.object.errors.any? && 'error'}
|
2
|
+
= lb.hidden_field :id
|
3
|
+
= lb.hidden_field :image_cache, class: 'image_cache'
|
4
|
+
= lb.hidden_field :slider_type, value: slider_type
|
5
|
+
= lb.hidden_field :title, class: 'slide_title', id: "slide_image_#{lb.object.id}"
|
6
|
+
.pictograms__inner
|
7
|
+
= image_tag lb.object.image_url(:thumb) || 'blank.gif', size: '80x80', alt: '', class: 'image-preview img-polaroid'
|
8
|
+
|
9
|
+
- if edit_allowed
|
10
|
+
%span.btn.btn-default.btn-xs.pictograms__button_edit{title: 'Редактирование'}
|
11
|
+
%i.glyphicon.glyphicon-pencil
|
12
|
+
|
13
|
+
- if !lb.object.new_record?
|
14
|
+
= lb.hidden_field :_destroy
|
15
|
+
= link_to '#', class: 'btn btn-danger btn-xs pictograms__button_remove', data: {container: 'pictograms__i'} do
|
16
|
+
%i.glyphicon.glyphicon-trash
|
17
|
+
|
18
|
+
:javascript
|
19
|
+
$('.pictograms__button_edit').popover({
|
20
|
+
container: 'body',
|
21
|
+
toggle:'popover',
|
22
|
+
placement:'top',
|
23
|
+
html:'true',
|
24
|
+
content: function(){
|
25
|
+
var
|
26
|
+
$title = $(this).closest('.pictograms__i').find('.slide_title');
|
27
|
+
|
28
|
+
$('.pictograms__button_edit').not(this).popover('hide');
|
29
|
+
|
30
|
+
return '<div class="slide-form-group">' +
|
31
|
+
'<div class="form-group">' +
|
32
|
+
'<label>Название слайда</label>' +
|
33
|
+
'<input id = "' + $title.attr('id') + '" class="form-control" type="text" value="' + $title.val() + '">' +
|
34
|
+
'</div>' +
|
35
|
+
'<div class="form-group">' +
|
36
|
+
'<button class="btn btn-danger pull-right close-popover-form">Отмена</button>' +
|
37
|
+
'<button class="btn btn-success pull-right submit-popover-form">Сохранить</button>' +
|
38
|
+
'</div>' +
|
39
|
+
'</div>';
|
40
|
+
}
|
41
|
+
});
|
@@ -0,0 +1,17 @@
|
|
1
|
+
- object_id = form.index || 0
|
2
|
+
- slider_type = form.object.class.slider_type(slides)
|
3
|
+
- slider_type_prefix = slider_type.sub('::', '__')
|
4
|
+
:javascript
|
5
|
+
var template_#{slider_type_prefix}_#{object_id} = '#{generate_slider_template(form, class: slider_class, collection: slides, partial: "admin/common/slide", locals: {slider_type: slider_type, edit_allowed: edit_allowed})}'
|
6
|
+
|
7
|
+
%fieldset
|
8
|
+
%legend{style: 'margin-bottom: 40px;'}
|
9
|
+
= title if defined? title
|
10
|
+
.custom-file{style: "position: relative; display: inline-block; margin: 0 0 -9px 15px; width: 140px; height: 34px; overflow: hidden;"}
|
11
|
+
.btn.btn-primary{style: "position: absolute; left: 0; right: 0;"}
|
12
|
+
Загрузить
|
13
|
+
= file_field_tag "#{slider_type_prefix}_image[]", id: nil, multiple: multiple, data: {file: true, path: send("admin_upload_#{slider_class.to_s.underscore}_path", {slider_type: slider_type, master_object_id: object_id})},
|
14
|
+
style:" position: absolute; font-size: 100px; opacity: 0; cursor: pointer;"
|
15
|
+
.pictograms.row.sortable{data:{object:object_id, slider: slider_type}}
|
16
|
+
= form.fields_for slides, form.object.send("sorted_#{slides}") do |df|
|
17
|
+
= render 'admin/common/slide', lb: df, slider_type: slider_type, edit_allowed: edit_allowed
|
@@ -0,0 +1,14 @@
|
|
1
|
+
.table-responsive
|
2
|
+
%table.table.table-striped
|
3
|
+
%thead
|
4
|
+
%tr
|
5
|
+
- definitions.each do |column|
|
6
|
+
%th{class: th_class(column)}
|
7
|
+
= column.title
|
8
|
+
%tbody
|
9
|
+
- items.each do |item|
|
10
|
+
%tr{class: tr_class(row_class, item)}
|
11
|
+
- definitions.each do |column|
|
12
|
+
%td{class: td_class(column)}<
|
13
|
+
= column.value(item, self)
|
14
|
+
|
@@ -0,0 +1,5 @@
|
|
1
|
+
= form_tag "###URL###", multipart: true, remote: true, style: 'display: none;', method: :post, authenticity_token: true do
|
2
|
+
= hidden_field_tag :container, '###CONTAINER###', id: nil
|
3
|
+
= hidden_field_tag :version, '###VERSION###', id: nil
|
4
|
+
= hidden_field_tag :free_size, '###FREE_SIZE###', id: nil
|
5
|
+
= file_field_tag :image, id: nil
|
@@ -0,0 +1,7 @@
|
|
1
|
+
- @slides.each do |slide|
|
2
|
+
:plain
|
3
|
+
$(injectNewSliderId(template_#{slide.slider_type}_#{@master_object_id}, new Date().getTime()))
|
4
|
+
.find('.image-preview').attr('src', '#{slide.image_url(:thumb)}').end()
|
5
|
+
.find('.image_cache').val('#{slide.image_cache}').end()
|
6
|
+
.find('.slide_title').attr('id', 'slide_image_' + new Date().getTime()).end()
|
7
|
+
.appendTo('[data-object=#{@master_object_id}][data-slider=#{slide.slider_type}]');
|
@@ -0,0 +1,11 @@
|
|
1
|
+
(new function() {
|
2
|
+
alert('Ошибка загрузки!\n\n<%= @errors.join('\n') %>');
|
3
|
+
var $c = $('#<%= params[:container] %>');
|
4
|
+
if ($c.find('.img-polaroid').hasClass('init-placeholder')) {
|
5
|
+
$c.find('[data-image-placeholder]').show();
|
6
|
+
} else {
|
7
|
+
$c.find('[data-image-preview]').show();
|
8
|
+
}
|
9
|
+
$c.find('.ajax-loader').removeClass('visible');
|
10
|
+
})();
|
11
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
= twitter_form_for [:admin, @lookup] do |f|
|
2
|
+
= f.errors
|
3
|
+
= flash_messages
|
4
|
+
|
5
|
+
= field_set lookup_name(@lookup.code) do
|
6
|
+
- if @lookup.type_code == 'string'
|
7
|
+
= f.string :value
|
8
|
+
- elsif @lookup.type_code == 'memo'
|
9
|
+
= f.textarea :value, rows: 5
|
10
|
+
- elsif @lookup.type_code == 'wysiwyg'
|
11
|
+
= f.ckeditor :value
|
12
|
+
|
13
|
+
= fixed_actions do
|
14
|
+
= f.save
|
15
|
+
= cancel_action admin_lookups_path
|
16
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title Административная панель
|
5
|
+
= favicon_link_tag
|
6
|
+
= stylesheet_link_tag 'admin/admin', media: 'all'
|
7
|
+
= javascript_include_tag 'admin/admin'
|
8
|
+
= csrf_meta_tags
|
9
|
+
%script(src='/wysiwyg/jquery.wymeditor.js')
|
10
|
+
%script(src='/wysiwyg/plugins/imageupload/jquery.wymeditor.imageupload.js')
|
11
|
+
= yield(:head)
|
12
|
+
:css
|
13
|
+
.ajax-loader.visible { display: block; }
|
14
|
+
.ajax-loader {
|
15
|
+
display: none;
|
16
|
+
position: absolute;
|
17
|
+
bottom: 0;
|
18
|
+
left: 0;
|
19
|
+
right: 0;
|
20
|
+
top: 0;
|
21
|
+
background: url('#{asset_url('ajax-loader.gif')}') center no-repeat;
|
22
|
+
}
|
23
|
+
.image-placeholder {
|
24
|
+
background: #ccc;
|
25
|
+
text-align: center;
|
26
|
+
font-size: 20px;
|
27
|
+
}
|
28
|
+
%body
|
29
|
+
- if devise_controller?
|
30
|
+
= yield
|
31
|
+
- else
|
32
|
+
= render 'admin/common/header'
|
33
|
+
.wrapper
|
34
|
+
.page-wrapper#content
|
35
|
+
= yield
|
36
|
+
|
37
|
+
:javascript
|
38
|
+
PhotoUploader = new PhotoUploader('#{j(render partial: 'admin/common/upload_form')}');
|
@@ -0,0 +1,16 @@
|
|
1
|
+
.col-lg-4.col-md-6.col-sm-12
|
2
|
+
.well.well-lg
|
3
|
+
%h3
|
4
|
+
= link_to section.name.html_safe, section.path
|
5
|
+
- if section.counter
|
6
|
+
|
7
|
+
%span.badge.badge-primary
|
8
|
+
= section.counter.call
|
9
|
+
- if section.description
|
10
|
+
%p= section.description
|
11
|
+
- if section.creation_path
|
12
|
+
= link_to section.creation_path, class: 'btn btn-success' do
|
13
|
+
%i.glyphicon.glyphicon-plus
|
14
|
+
|
15
|
+
Добавить
|
16
|
+
|
data/coalla-cms.gemspec
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "coalla/cms/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = 'coalla-cms'
|
7
|
+
s.version = Coalla::Cms::VERSION
|
8
|
+
s.authors = ['coalla']
|
9
|
+
s.email = ['dev@coalla.ru']
|
10
|
+
s.homepage = 'http://coalla.ru'
|
11
|
+
s.summary = 'Coalla CMS gem'
|
12
|
+
s.description = 'Coalla CMS gem'
|
13
|
+
|
14
|
+
s.rubyforge_project = 'coalla-cms'
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_dependency 'railties', '~> 4.0'
|
22
|
+
s.add_dependency 'rails', '~> 4.1.0'
|
23
|
+
s.add_dependency 'devise', '~> 3.2'
|
24
|
+
s.add_dependency 'haml', '~> 4.0'
|
25
|
+
s.add_dependency 'coffee-rails', '~> 4.0.0'
|
26
|
+
s.add_dependency 'sass-rails', '~> 5.0.1'
|
27
|
+
s.add_dependency 'uglifier', '>= 1.3.0'
|
28
|
+
s.add_dependency 'coalla-deploy', '~> 0.1'
|
29
|
+
s.add_dependency 'jquery-rails', '~> 3.0.4'
|
30
|
+
s.add_dependency 'jquery-ui-rails', '~> 4.1.1'
|
31
|
+
s.add_dependency 'jquery-timepicker-addon-rails', '~> 1.4.1'
|
32
|
+
s.add_dependency 'foreigner', '~> 1.6.0'
|
33
|
+
s.add_dependency 'js-routes', '0.9.8'
|
34
|
+
s.add_dependency 'carrierwave', '~> 0.9'
|
35
|
+
s.add_dependency 'ckeditor', '4.1.0'
|
36
|
+
s.add_dependency 'mini_magick', '~> 4.0.0'
|
37
|
+
s.add_dependency 'sanitize', '~> 3.1.0'
|
38
|
+
|
39
|
+
end
|
@@ -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: "Инструкции по разблокировке учётной записи"
|