coalla-cms 0.4.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (300) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +81 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +168 -0
  5. data/Rakefile +29 -0
  6. data/app/assets/fonts/glyphicons/glyphicons-halflings-regular.eot +0 -0
  7. data/app/assets/fonts/glyphicons/glyphicons-halflings-regular.svg +229 -0
  8. data/app/assets/fonts/glyphicons/glyphicons-halflings-regular.ttf +0 -0
  9. data/app/assets/fonts/glyphicons/glyphicons-halflings-regular.woff +0 -0
  10. data/app/assets/images/ajax-loader.gif +0 -0
  11. data/app/assets/images/blank.gif +0 -0
  12. data/app/assets/images/bootstrap/glyphicons-halflings-white.png +0 -0
  13. data/app/assets/images/bootstrap/glyphicons-halflings.png +0 -0
  14. data/app/assets/javascripts/admin/admin.js +295 -0
  15. data/app/assets/javascripts/admin/custom_admin.js +0 -0
  16. data/app/assets/javascripts/admin/jquery-migrate.min.js +2 -0
  17. data/app/assets/javascripts/admin/photo_uploader.js +67 -0
  18. data/app/assets/javascripts/admin/vendor/bootstrap.min.js +7 -0
  19. data/app/assets/javascripts/admin/vendor/jquery-ui-timepicker-addon-ru.js +40 -0
  20. data/app/assets/javascripts/admin/vendor/jquery.tagsinput.js +365 -0
  21. data/app/assets/javascripts/admin/vendor/jquery.tokeninput.patched.js +875 -0
  22. data/app/assets/javascripts/admin/vendor/underscore-min.js +5 -0
  23. data/app/assets/javascripts/ckeditor/plugins/autogrow/plugin.js +209 -0
  24. data/app/assets/javascripts/ckeditor/plugins/mediaembed/icons/hidpi/mediaembed.png +0 -0
  25. data/app/assets/javascripts/ckeditor/plugins/mediaembed/icons/mediaembed.png +0 -0
  26. data/app/assets/javascripts/ckeditor/plugins/mediaembed/plugin.js +64 -0
  27. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/LICENSE.txt +303 -0
  28. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad-gallery-css-diff.htm +831 -0
  29. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_next.png +0 -0
  30. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_prev.png +0 -0
  31. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_scroll_back.png +0 -0
  32. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_scroll_forward.png +0 -0
  33. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.css +185 -0
  34. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.js +984 -0
  35. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.min - ref.js +10 -0
  36. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.min.js +1 -0
  37. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/loader.gif +0 -0
  38. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/opa75.png +0 -0
  39. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/placeholder.png +0 -0
  40. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/ad-gallery/trans.gif +0 -0
  41. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/blank.gif +0 -0
  42. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_loading.gif +0 -0
  43. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_loading@2x.gif +0 -0
  44. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_overlay.png +0 -0
  45. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_sprite.png +0 -0
  46. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_sprite@2x.png +0 -0
  47. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/fancybox_buttons.png +0 -0
  48. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-buttons.css +97 -0
  49. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-buttons.js +122 -0
  50. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-media.js +199 -0
  51. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-thumbs.css +55 -0
  52. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-thumbs.js +162 -0
  53. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.css +274 -0
  54. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.js +2020 -0
  55. data/app/assets/javascripts/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.pack.js +46 -0
  56. data/app/assets/javascripts/ckeditor/plugins/slideshow/README.md +66 -0
  57. data/app/assets/javascripts/ckeditor/plugins/slideshow/dialogs/slideshow.js +1396 -0
  58. data/app/assets/javascripts/ckeditor/plugins/slideshow/dialogs/slideshow.min.js +1 -0
  59. data/app/assets/javascripts/ckeditor/plugins/slideshow/icons/placeholder.png +0 -0
  60. data/app/assets/javascripts/ckeditor/plugins/slideshow/icons/slideshow.png +0 -0
  61. data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/Serbian_translation.txt +9 -0
  62. data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/el.js +37 -0
  63. data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/en.js +35 -0
  64. data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/fr.js +35 -0
  65. data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/ru.js +35 -0
  66. data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/sr-latn.js +35 -0
  67. data/app/assets/javascripts/ckeditor/plugins/slideshow/lang/sr.js +35 -0
  68. data/app/assets/javascripts/ckeditor/plugins/slideshow/plugin.js +217 -0
  69. data/app/assets/stylesheets/admin/admin.scss +302 -0
  70. data/app/assets/stylesheets/admin/custom_admin.scss +1 -0
  71. data/app/assets/stylesheets/admin/vendor/bootstrap.min.css +14 -0
  72. data/app/assets/stylesheets/admin/vendor/jquery.tagsinput.css +99 -0
  73. data/app/assets/stylesheets/admin/vendor/token-input-facebook.patched.css +126 -0
  74. data/app/assets/stylesheets/admin/vendor/token-input.patched.css +116 -0
  75. data/app/controllers/admin/autocomplete_controller.rb +14 -0
  76. data/app/controllers/admin/image_upload_controller.rb +27 -0
  77. data/app/controllers/admin/lookups_controller.rb +47 -0
  78. data/app/controllers/admin/sortable_controller.rb +26 -0
  79. data/app/controllers/concerns/admin/path_history.rb +39 -0
  80. data/app/helpers/admin/search_helper.rb +59 -0
  81. data/app/helpers/admin_helper.rb +29 -0
  82. data/app/helpers/common_helper.rb +16 -0
  83. data/app/helpers/lookup_helper.rb +45 -0
  84. data/app/helpers/nested_fields_helper.rb +12 -0
  85. data/app/helpers/static_text_formatter.rb +25 -0
  86. data/app/helpers/twitter_builder_helper.rb +253 -0
  87. data/app/helpers/twitter_form_builder.rb +196 -0
  88. data/app/models/file_upload.rb +19 -0
  89. data/app/models/lookup.rb +6 -0
  90. data/app/uploaders/file_uploader.rb +10 -0
  91. data/app/uploaders/generic_image_uploader.rb +74 -0
  92. data/app/utils/admin_structure.rb +67 -0
  93. data/app/utils/bootstrap_link_renderer.rb +40 -0
  94. data/app/utils/table_helpers.rb +196 -0
  95. data/app/views/admin/base/_sort.haml +34 -0
  96. data/app/views/admin/common/_file_upload_template.haml +14 -0
  97. data/app/views/admin/common/_header.html.haml +27 -0
  98. data/app/views/admin/common/_image_upload_template.html.haml +40 -0
  99. data/app/views/admin/common/_menu.html.haml +2 -0
  100. data/app/views/admin/common/_menu_section.haml +10 -0
  101. data/app/views/admin/common/_menu_separator.haml +1 -0
  102. data/app/views/admin/common/_nested_fields_for.html.haml +5 -0
  103. data/app/views/admin/common/_nested_fields_for_element.html.haml +5 -0
  104. data/app/views/admin/common/_slide.haml +41 -0
  105. data/app/views/admin/common/_slides.html.haml +17 -0
  106. data/app/views/admin/common/_table_template.html.haml +14 -0
  107. data/app/views/admin/common/_upload_form.html.haml +5 -0
  108. data/app/views/admin/common/image_uploaded.js.haml +7 -0
  109. data/app/views/admin/common/upload_failed.js.erb +11 -0
  110. data/app/views/admin/common/upload_image.js.erb +6 -0
  111. data/app/views/admin/home/dashboard.html.haml +5 -0
  112. data/app/views/admin/lookups/_form.html.haml +16 -0
  113. data/app/views/admin/lookups/edit.html.haml +5 -0
  114. data/app/views/admin/lookups/index.html.haml +6 -0
  115. data/app/views/layouts/admin.html.haml +38 -0
  116. data/app/views/structure/_section.haml +16 -0
  117. data/coalla-cms.gemspec +39 -0
  118. data/config/locales/devise.ru.yml +59 -0
  119. data/config/locales/will_paginate.ru.yml +6 -0
  120. data/lib/coalla/cms/engine.rb +16 -0
  121. data/lib/coalla/cms/version.rb +5 -0
  122. data/lib/coalla/ext/mapper.rb +14 -0
  123. data/lib/coalla/orm/page_slider.rb +53 -0
  124. data/lib/coalla/orm/relation.rb +32 -0
  125. data/lib/coalla/orm/sanitized.rb +16 -0
  126. data/lib/coalla/sanitize/config/default.rb +526 -0
  127. data/lib/coalla-cms.rb +16 -0
  128. data/lib/generators/coalla/cms/create_admin_generator.rb +50 -0
  129. data/lib/generators/coalla/cms/create_admin_login_view_generator.rb +23 -0
  130. data/lib/generators/coalla/cms/file_uploads/install_generator.rb +35 -0
  131. data/lib/generators/coalla/cms/file_uploads/mount_generator.rb +34 -0
  132. data/lib/generators/coalla/cms/file_uploads/templates/add_column_migration.rb.erb +5 -0
  133. data/lib/generators/coalla/cms/file_uploads/templates/migration.rb +17 -0
  134. data/lib/generators/coalla/cms/image/install_generator.rb +39 -0
  135. data/lib/generators/coalla/cms/image/mount_generator.rb +50 -0
  136. data/lib/generators/coalla/cms/image/templates/migration.rb.erb +9 -0
  137. data/lib/generators/coalla/cms/image/templates/model.rb.erb +5 -0
  138. data/lib/generators/coalla/cms/image/templates/mount/migration.rb.erb +6 -0
  139. data/lib/generators/coalla/cms/image/templates/mount/uploader.rb.erb +3 -0
  140. data/lib/generators/coalla/cms/image/templates/uploader.rb.erb +3 -0
  141. data/lib/generators/coalla/cms/init_generator.rb +113 -0
  142. data/lib/generators/coalla/cms/lookups/install_generator.rb +43 -0
  143. data/lib/generators/coalla/cms/lookups/templates/migration.rb +13 -0
  144. data/lib/generators/coalla/cms/market/install_generator.rb +71 -0
  145. data/lib/generators/coalla/cms/market/templates/controllers/categories_controller.rb +47 -0
  146. data/lib/generators/coalla/cms/market/templates/controllers/products_controller.rb +50 -0
  147. data/lib/generators/coalla/cms/market/templates/controllers/properties_controller.rb +59 -0
  148. data/lib/generators/coalla/cms/market/templates/market.rb +5 -0
  149. data/lib/generators/coalla/cms/market/templates/market.ru.yml +53 -0
  150. data/lib/generators/coalla/cms/market/templates/migrations/create_categories.rb +15 -0
  151. data/lib/generators/coalla/cms/market/templates/migrations/create_product_properties.rb +18 -0
  152. data/lib/generators/coalla/cms/market/templates/migrations/create_products.rb +18 -0
  153. data/lib/generators/coalla/cms/market/templates/migrations/create_properties.rb +11 -0
  154. data/lib/generators/coalla/cms/market/templates/models/category.rb +36 -0
  155. data/lib/generators/coalla/cms/market/templates/models/product.rb +16 -0
  156. data/lib/generators/coalla/cms/market/templates/models/product_property.rb +14 -0
  157. data/lib/generators/coalla/cms/market/templates/models/property.rb +7 -0
  158. data/lib/generators/coalla/cms/market/templates/views/categories/_form.html.haml +10 -0
  159. data/lib/generators/coalla/cms/market/templates/views/categories/edit.html.haml +5 -0
  160. data/lib/generators/coalla/cms/market/templates/views/categories/index.html.haml +17 -0
  161. data/lib/generators/coalla/cms/market/templates/views/categories/new.html.haml +4 -0
  162. data/lib/generators/coalla/cms/market/templates/views/products/_form.html.haml +17 -0
  163. data/lib/generators/coalla/cms/market/templates/views/products/_product_property_fields.html.haml +13 -0
  164. data/lib/generators/coalla/cms/market/templates/views/products/edit.html.haml +5 -0
  165. data/lib/generators/coalla/cms/market/templates/views/products/index.html.haml +17 -0
  166. data/lib/generators/coalla/cms/market/templates/views/products/new.html.haml +4 -0
  167. data/lib/generators/coalla/cms/market/templates/views/properties/_form.html.haml +9 -0
  168. data/lib/generators/coalla/cms/market/templates/views/properties/edit.html.haml +5 -0
  169. data/lib/generators/coalla/cms/market/templates/views/properties/index.html.haml +15 -0
  170. data/lib/generators/coalla/cms/market/templates/views/properties/new.html.haml +4 -0
  171. data/lib/generators/coalla/cms/news/scaffold_generator.rb +50 -0
  172. data/lib/generators/coalla/cms/news/templates/entity.rb.erb +10 -0
  173. data/lib/generators/coalla/cms/news/templates/entity_controller_template.rb.erb +47 -0
  174. data/lib/generators/coalla/cms/news/templates/entity_image_uploader.rb.erb +7 -0
  175. data/lib/generators/coalla/cms/news/templates/migration.rb.erb +15 -0
  176. data/lib/generators/coalla/cms/news/templates/views/_form.haml.erb +16 -0
  177. data/lib/generators/coalla/cms/news/templates/views/edit.haml.erb +5 -0
  178. data/lib/generators/coalla/cms/news/templates/views/index.haml.erb +18 -0
  179. data/lib/generators/coalla/cms/news/templates/views/new.haml.erb +5 -0
  180. data/lib/generators/coalla/cms/orm_helpers.rb +31 -0
  181. data/lib/generators/coalla/cms/scaffold_generator.rb +53 -0
  182. data/lib/generators/coalla/cms/scaffold_helper.rb +11 -0
  183. data/lib/generators/coalla/cms/setup_admin_generator.rb +60 -0
  184. data/lib/generators/coalla/cms/setup_routes_generator.rb +28 -0
  185. data/lib/generators/coalla/cms/slider/init_generator.rb +41 -0
  186. data/lib/generators/coalla/cms/slider/templates/migration.rb.erb +25 -0
  187. data/lib/generators/coalla/cms/slider/templates/slider_image.rb.erb +10 -0
  188. data/lib/generators/coalla/cms/slider/templates/slider_image_uploader.rb.erb +7 -0
  189. data/lib/generators/coalla/cms/slider/templates/slider_upload_controller.rb.erb +19 -0
  190. data/lib/generators/coalla/cms/templates/.gitattributes +4 -0
  191. data/lib/generators/coalla/cms/templates/.gitignore +86 -0
  192. data/lib/generators/coalla/cms/templates/activerecord.ru.yml +13 -0
  193. data/lib/generators/coalla/cms/templates/assets.rb +13 -0
  194. data/lib/generators/coalla/cms/templates/controllers/admin/base_controller.rb.erb +35 -0
  195. data/lib/generators/coalla/cms/templates/controllers/admin/home_controller.rb.erb +6 -0
  196. data/lib/generators/coalla/cms/templates/controllers/admin/scaffold_controller_template.rb.erb +45 -0
  197. data/lib/generators/coalla/cms/templates/controllers/home_controller.rb.erb +6 -0
  198. data/lib/generators/coalla/cms/templates/database.yml.erb +35 -0
  199. data/lib/generators/coalla/cms/templates/devise.ru.yml +59 -0
  200. data/lib/generators/coalla/cms/templates/initializers/carrierwave.rb +51 -0
  201. data/lib/generators/coalla/cms/templates/migration.rb +11 -0
  202. data/lib/generators/coalla/cms/templates/migration_existing.rb +15 -0
  203. data/lib/generators/coalla/cms/templates/schedule.rb +3 -0
  204. data/lib/generators/coalla/cms/templates/structure.rb +0 -0
  205. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/_form.html.haml.erb +14 -0
  206. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/edit.html.haml.erb +5 -0
  207. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/index.html.haml.erb +15 -0
  208. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/new.html.haml.erb +4 -0
  209. data/lib/generators/coalla/cms/templates/views/administrators/sessions/new.html.haml +19 -0
  210. data/lib/generators/coalla/cms/templates/views/home/index.html.haml.erb +1 -0
  211. data/lib/generators/coalla/cms/wysiwyg/ckeditor_generator.rb +17 -0
  212. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/mediaembed/icons/hidpi/mediaembed.png +0 -0
  213. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/mediaembed/icons/mediaembed.png +0 -0
  214. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/mediaembed/plugin.js +64 -0
  215. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/LICENSE.txt +303 -0
  216. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad-gallery-css-diff.htm +831 -0
  217. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_next.png +0 -0
  218. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_prev.png +0 -0
  219. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_scroll_back.png +0 -0
  220. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_scroll_forward.png +0 -0
  221. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.css +185 -0
  222. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.js +984 -0
  223. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.min - ref.js +10 -0
  224. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.min.js +1 -0
  225. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/loader.gif +0 -0
  226. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/opa75.png +0 -0
  227. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/placeholder.png +0 -0
  228. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/trans.gif +0 -0
  229. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/blank.gif +0 -0
  230. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_loading.gif +0 -0
  231. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_loading@2x.gif +0 -0
  232. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_overlay.png +0 -0
  233. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_sprite.png +0 -0
  234. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_sprite@2x.png +0 -0
  235. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/fancybox_buttons.png +0 -0
  236. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-buttons.css +97 -0
  237. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-buttons.js +122 -0
  238. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-media.js +199 -0
  239. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-thumbs.css +55 -0
  240. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-thumbs.js +162 -0
  241. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.css +274 -0
  242. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.js +2020 -0
  243. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.pack.js +46 -0
  244. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/README.md +66 -0
  245. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/dialogs/slideshow.js +1396 -0
  246. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/dialogs/slideshow.min.js +1 -0
  247. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/icons/placeholder.png +0 -0
  248. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/icons/slideshow.png +0 -0
  249. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/Serbian_translation.txt +9 -0
  250. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/el.js +37 -0
  251. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/en.js +35 -0
  252. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/fr.js +35 -0
  253. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/ru.js +35 -0
  254. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/sr-latn.js +35 -0
  255. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/sr.js +35 -0
  256. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/plugin.js +217 -0
  257. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-blockquote.png +0 -0
  258. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-h1.png +0 -0
  259. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-h2.png +0 -0
  260. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-h3.png +0 -0
  261. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-h4.png +0 -0
  262. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-h5.png +0 -0
  263. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-h6.png +0 -0
  264. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-p.png +0 -0
  265. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/lbl-pre.png +0 -0
  266. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/wymiframe.css +276 -0
  267. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/iframe/default/wymiframe.html +26 -0
  268. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/jquery.wymeditor.js +4819 -0
  269. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/lang/en.js +45 -0
  270. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/lang/ru.js +55 -0
  271. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/plugins/imageupload/icons.png +0 -0
  272. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/plugins/imageupload/jquery.wymeditor.imageupload.js +150 -0
  273. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/plugins/resizable/jquery.wymeditor.resizable.js +91 -0
  274. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/plugins/resizable/readme.txt +124 -0
  275. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/compact/icons.png +0 -0
  276. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/compact/skin.css +134 -0
  277. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/compact/skin.js +35 -0
  278. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/default/icons.png +0 -0
  279. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/default/skin.css +341 -0
  280. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/default/skin.js +40 -0
  281. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/minimal/images/bg.header.gif +0 -0
  282. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/minimal/images/bg.selector.silver.gif +0 -0
  283. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/minimal/images/bg.wymeditor.png +0 -0
  284. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/minimal/images/icons.silver.gif +0 -0
  285. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/minimal/skin.css +131 -0
  286. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/minimal/skin.js +30 -0
  287. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/COPYING +674 -0
  288. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/README +27 -0
  289. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/images/bg.header.gif +0 -0
  290. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/images/bg.selector.silver.gif +0 -0
  291. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/images/bg.wymeditor.png +0 -0
  292. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/images/icons.silver.gif +0 -0
  293. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/skin.css +297 -0
  294. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/silver/skin.js +61 -0
  295. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/twopanels/icons.png +0 -0
  296. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/twopanels/skin.css +134 -0
  297. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/twopanels/skin.js +39 -0
  298. data/lib/generators/coalla/cms/wysiwyg/templates/wymeditor/skins/wymeditor_icon.png +0 -0
  299. data/lib/generators/coalla/cms/wysiwyg/wymeditor_generator.rb +17 -0
  300. 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
+ Сортировка&nbsp;
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
+ &nbsp;
19
+ = link_to '#', class: 'navbar-link' do
20
+ %i.glyphicon.glyphicon-user
21
+ &nbsp;
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
+ &nbsp;
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,2 @@
1
+ - @structure.menu_items.each do |item|
2
+ = render "admin/common/menu_#{item.class.name.demodulize.underscore}", item: item
@@ -0,0 +1,10 @@
1
+ - active = current_page?(item.path)
2
+ %li{class: active && 'active'}
3
+ = link_to item.path do
4
+ %i{class: item.icon}
5
+ &nbsp;
6
+ = item.name.html_safe
7
+ - if item.show_menu_counter? && item.counter
8
+ &nbsp;
9
+ %span.badge.pull-right
10
+ = item.counter.call
@@ -0,0 +1 @@
1
+ %li.nav-header= item.title.html_safe
@@ -0,0 +1,5 @@
1
+ - partial = "#{collection.to_s.singularize}_fields"
2
+ = field_set section_name do
3
+ = f.fields_for collection do |builder|
4
+ = render 'admin/common/nested_fields_for_element', builder: builder, partial: partial
5
+ = link_to_add_fields('Добавить', f, collection)
@@ -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,6 @@
1
+ (new function() {
2
+ var c = $('#<%= params[:container] %>');
3
+ c.find('.img-polaroid').removeClass('init-placeholder');
4
+ c.find('.image-cache').val('<%= @image_cache %>');
5
+ c.find('.image-preview').attr('src', '<%= @preview_url %>');
6
+ })();
@@ -0,0 +1,5 @@
1
+ .page-header
2
+ %h1 Сводка
3
+ .row
4
+ = render collection: @structure.sections, partial: 'structure/section'
5
+
@@ -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,5 @@
1
+ %h1 Текст
2
+ .page-header
3
+ %h3 Редактирование
4
+
5
+ = render 'form'
@@ -0,0 +1,6 @@
1
+ %h1 Тексты
2
+
3
+ = table_for(Lookup).content(@lookups) do |t|
4
+ - t.column :code, cols: 4, format: lambda {|e| lookup_name(e)}
5
+ - t.column :value, cols: 7, format: lambda {|e| raw(truncate(strip_tags(e), length: 200)) }
6
+ - t.action :edit
@@ -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
+ &nbsp;
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
+ &nbsp;
15
+ Добавить
16
+
@@ -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: "Инструкции по разблокировке учётной записи"