coalla-cms 0.5.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (290) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +81 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +198 -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 +223 -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 +58 -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 +42 -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 +306 -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 +52 -0
  78. data/app/controllers/admin/notifier_controller.rb +7 -0
  79. data/app/controllers/admin/site_meta_tags_controller.rb +43 -0
  80. data/app/controllers/admin/sortable_controller.rb +26 -0
  81. data/app/controllers/concerns/admin/path_history.rb +39 -0
  82. data/app/controllers/concerns/page_meta_tags.rb +71 -0
  83. data/app/helpers/admin/lookup_helper.rb +23 -0
  84. data/app/helpers/admin/search_helper.rb +59 -0
  85. data/app/helpers/admin_helper.rb +29 -0
  86. data/app/helpers/common_helper.rb +22 -0
  87. data/app/helpers/lookup_helper.rb +72 -0
  88. data/app/helpers/nested_fields_helper.rb +12 -0
  89. data/app/helpers/static_text_formatter.rb +25 -0
  90. data/app/helpers/twitter_builder_helper.rb +253 -0
  91. data/app/helpers/twitter_form_builder.rb +202 -0
  92. data/app/models/file_upload.rb +19 -0
  93. data/app/models/lookup.rb +28 -0
  94. data/app/models/site_meta_tags.rb +16 -0
  95. data/app/uploaders/file_uploader.rb +10 -0
  96. data/app/uploaders/generic_image_uploader.rb +74 -0
  97. data/app/uploaders/meta_tags_image_uploader.rb +5 -0
  98. data/app/utils/admin_structure.rb +82 -0
  99. data/app/utils/bootstrap_link_renderer.rb +40 -0
  100. data/app/utils/table_helpers.rb +196 -0
  101. data/app/views/admin/base/_sort.haml +34 -0
  102. data/app/views/admin/common/_file_upload_template.haml +18 -0
  103. data/app/views/admin/common/_header.html.haml +28 -0
  104. data/app/views/admin/common/_image_upload_template.html.haml +40 -0
  105. data/app/views/admin/common/_menu.html.haml +2 -0
  106. data/app/views/admin/common/_menu_section.haml +10 -0
  107. data/app/views/admin/common/_menu_separator.haml +1 -0
  108. data/app/views/admin/common/_nested_fields_for.html.haml +5 -0
  109. data/app/views/admin/common/_nested_fields_for_element.html.haml +5 -0
  110. data/app/views/admin/common/_slide.haml +41 -0
  111. data/app/views/admin/common/_slides.html.haml +17 -0
  112. data/app/views/admin/common/_table_template.html.haml +14 -0
  113. data/app/views/admin/common/_upload_form.html.haml +5 -0
  114. data/app/views/admin/common/image_uploaded.js.haml +7 -0
  115. data/app/views/admin/common/upload_failed.js.erb +11 -0
  116. data/app/views/admin/common/upload_image.js.erb +6 -0
  117. data/app/views/admin/home/dashboard.html.haml +5 -0
  118. data/app/views/admin/lookups/_form.html.haml +10 -0
  119. data/app/views/admin/lookups/edit.html.haml +5 -0
  120. data/app/views/admin/lookups/index.html.haml +6 -0
  121. data/app/views/admin/lookups/types/_boolean.haml +1 -0
  122. data/app/views/admin/lookups/types/_enum.haml +1 -0
  123. data/app/views/admin/lookups/types/_file.haml +3 -0
  124. data/app/views/admin/lookups/types/_float.haml +1 -0
  125. data/app/views/admin/lookups/types/_integer.haml +1 -0
  126. data/app/views/admin/lookups/types/_memo.haml +1 -0
  127. data/app/views/admin/lookups/types/_string.haml +1 -0
  128. data/app/views/admin/lookups/types/_wysiwyg.haml +1 -0
  129. data/app/views/admin/site_meta_tags/_form.html.haml +22 -0
  130. data/app/views/admin/site_meta_tags/edit.html.haml +5 -0
  131. data/app/views/admin/site_meta_tags/index.html.haml +5 -0
  132. data/app/views/layouts/admin.html.haml +44 -0
  133. data/app/views/structure/_section.haml +17 -0
  134. data/coalla-cms.gemspec +42 -0
  135. data/config/locales/devise.ru.yml +59 -0
  136. data/config/locales/will_paginate.ru.yml +6 -0
  137. data/lib/coalla-cms.rb +17 -0
  138. data/lib/coalla/cms/engine.rb +16 -0
  139. data/lib/coalla/cms/version.rb +5 -0
  140. data/lib/coalla/ext/mapper.rb +14 -0
  141. data/lib/coalla/orm/page_slider.rb +55 -0
  142. data/lib/coalla/orm/relation.rb +35 -0
  143. data/lib/coalla/orm/sanitized.rb +16 -0
  144. data/lib/coalla/sanitize/config/default.rb +526 -0
  145. data/lib/generators/coalla/cms/create_admin_administrators_generator.rb +29 -0
  146. data/lib/generators/coalla/cms/create_admin_generator.rb +50 -0
  147. data/lib/generators/coalla/cms/create_admin_login_view_generator.rb +23 -0
  148. data/lib/generators/coalla/cms/create_markup_generator.rb +30 -0
  149. data/lib/generators/coalla/cms/file_uploads/install_generator.rb +35 -0
  150. data/lib/generators/coalla/cms/file_uploads/mount_generator.rb +34 -0
  151. data/lib/generators/coalla/cms/file_uploads/templates/add_column_migration.rb.erb +5 -0
  152. data/lib/generators/coalla/cms/file_uploads/templates/migration.rb +17 -0
  153. data/lib/generators/coalla/cms/image/install_generator.rb +39 -0
  154. data/lib/generators/coalla/cms/image/mount_generator.rb +50 -0
  155. data/lib/generators/coalla/cms/image/templates/migration.rb.erb +9 -0
  156. data/lib/generators/coalla/cms/image/templates/model.rb.erb +5 -0
  157. data/lib/generators/coalla/cms/image/templates/mount/migration.rb.erb +6 -0
  158. data/lib/generators/coalla/cms/image/templates/mount/uploader.rb.erb +3 -0
  159. data/lib/generators/coalla/cms/image/templates/uploader.rb.erb +3 -0
  160. data/lib/generators/coalla/cms/init_generator.rb +136 -0
  161. data/lib/generators/coalla/cms/lookups/install_generator.rb +54 -0
  162. data/lib/generators/coalla/cms/lookups/templates/migration.rb +17 -0
  163. data/lib/generators/coalla/cms/market/install_generator.rb +71 -0
  164. data/lib/generators/coalla/cms/market/templates/controllers/categories_controller.rb +47 -0
  165. data/lib/generators/coalla/cms/market/templates/controllers/products_controller.rb +50 -0
  166. data/lib/generators/coalla/cms/market/templates/controllers/properties_controller.rb +59 -0
  167. data/lib/generators/coalla/cms/market/templates/market.rb +5 -0
  168. data/lib/generators/coalla/cms/market/templates/market.ru.yml +53 -0
  169. data/lib/generators/coalla/cms/market/templates/migrations/create_categories.rb +15 -0
  170. data/lib/generators/coalla/cms/market/templates/migrations/create_product_properties.rb +18 -0
  171. data/lib/generators/coalla/cms/market/templates/migrations/create_products.rb +18 -0
  172. data/lib/generators/coalla/cms/market/templates/migrations/create_properties.rb +11 -0
  173. data/lib/generators/coalla/cms/market/templates/models/category.rb +36 -0
  174. data/lib/generators/coalla/cms/market/templates/models/product.rb +16 -0
  175. data/lib/generators/coalla/cms/market/templates/models/product_property.rb +14 -0
  176. data/lib/generators/coalla/cms/market/templates/models/property.rb +7 -0
  177. data/lib/generators/coalla/cms/market/templates/views/categories/_form.html.haml +10 -0
  178. data/lib/generators/coalla/cms/market/templates/views/categories/edit.html.haml +5 -0
  179. data/lib/generators/coalla/cms/market/templates/views/categories/index.html.haml +17 -0
  180. data/lib/generators/coalla/cms/market/templates/views/categories/new.html.haml +4 -0
  181. data/lib/generators/coalla/cms/market/templates/views/products/_form.html.haml +17 -0
  182. data/lib/generators/coalla/cms/market/templates/views/products/_product_property_fields.html.haml +13 -0
  183. data/lib/generators/coalla/cms/market/templates/views/products/edit.html.haml +5 -0
  184. data/lib/generators/coalla/cms/market/templates/views/products/index.html.haml +17 -0
  185. data/lib/generators/coalla/cms/market/templates/views/products/new.html.haml +4 -0
  186. data/lib/generators/coalla/cms/market/templates/views/properties/_form.html.haml +9 -0
  187. data/lib/generators/coalla/cms/market/templates/views/properties/edit.html.haml +5 -0
  188. data/lib/generators/coalla/cms/market/templates/views/properties/index.html.haml +15 -0
  189. data/lib/generators/coalla/cms/market/templates/views/properties/new.html.haml +4 -0
  190. data/lib/generators/coalla/cms/meta_tags/install_generator.rb +58 -0
  191. data/lib/generators/coalla/cms/meta_tags/templates/migration.rb +23 -0
  192. data/lib/generators/coalla/cms/news/scaffold_generator.rb +50 -0
  193. data/lib/generators/coalla/cms/news/templates/entity.rb.erb +10 -0
  194. data/lib/generators/coalla/cms/news/templates/entity_controller_template.rb.erb +47 -0
  195. data/lib/generators/coalla/cms/news/templates/entity_image_uploader.rb.erb +7 -0
  196. data/lib/generators/coalla/cms/news/templates/migration.rb.erb +15 -0
  197. data/lib/generators/coalla/cms/news/templates/views/_form.haml.erb +16 -0
  198. data/lib/generators/coalla/cms/news/templates/views/edit.haml.erb +5 -0
  199. data/lib/generators/coalla/cms/news/templates/views/index.haml.erb +18 -0
  200. data/lib/generators/coalla/cms/news/templates/views/new.haml.erb +5 -0
  201. data/lib/generators/coalla/cms/orm_helpers.rb +31 -0
  202. data/lib/generators/coalla/cms/scaffold_generator.rb +53 -0
  203. data/lib/generators/coalla/cms/scaffold_helper.rb +11 -0
  204. data/lib/generators/coalla/cms/setup_admin_generator.rb +63 -0
  205. data/lib/generators/coalla/cms/setup_routes_generator.rb +29 -0
  206. data/lib/generators/coalla/cms/slider/init_generator.rb +41 -0
  207. data/lib/generators/coalla/cms/slider/templates/migration.rb.erb +25 -0
  208. data/lib/generators/coalla/cms/slider/templates/slider_image.rb.erb +10 -0
  209. data/lib/generators/coalla/cms/slider/templates/slider_image_uploader.rb.erb +7 -0
  210. data/lib/generators/coalla/cms/slider/templates/slider_upload_controller.rb.erb +19 -0
  211. data/lib/generators/coalla/cms/templates/.gitattributes +4 -0
  212. data/lib/generators/coalla/cms/templates/.gitignore +86 -0
  213. data/lib/generators/coalla/cms/templates/assets.rb +11 -0
  214. data/lib/generators/coalla/cms/templates/controllers/admin/administrators_controller.rb +55 -0
  215. data/lib/generators/coalla/cms/templates/controllers/admin/base_controller.rb.erb +35 -0
  216. data/lib/generators/coalla/cms/templates/controllers/admin/home_controller.rb.erb +6 -0
  217. data/lib/generators/coalla/cms/templates/controllers/admin/scaffold_controller_template.rb.erb +45 -0
  218. data/lib/generators/coalla/cms/templates/controllers/home_controller.rb.erb +6 -0
  219. data/lib/generators/coalla/cms/templates/controllers/markup_controller.rb.erb +2 -0
  220. data/lib/generators/coalla/cms/templates/database.yml.erb +35 -0
  221. data/lib/generators/coalla/cms/templates/errors/404.html +39 -0
  222. data/lib/generators/coalla/cms/templates/errors/422.html +39 -0
  223. data/lib/generators/coalla/cms/templates/errors/500.html +39 -0
  224. data/lib/generators/coalla/cms/templates/initializers/carrierwave.rb +98 -0
  225. data/lib/generators/coalla/cms/templates/locales/activerecord.en.yml +16 -0
  226. data/lib/generators/coalla/cms/templates/locales/activerecord.ru.yml +29 -0
  227. data/lib/generators/coalla/cms/templates/locales/admin.en.yml +27 -0
  228. data/lib/generators/coalla/cms/templates/locales/admin.ru.yml +27 -0
  229. data/lib/generators/coalla/cms/templates/locales/devise.ru.yml +59 -0
  230. data/lib/generators/coalla/cms/templates/migration.rb +11 -0
  231. data/lib/generators/coalla/cms/templates/migration_existing.rb +15 -0
  232. data/lib/generators/coalla/cms/templates/schedule.rb +3 -0
  233. data/lib/generators/coalla/cms/templates/structure.rb +0 -0
  234. data/lib/generators/coalla/cms/templates/views/admin/administrators/_form.html.haml +9 -0
  235. data/lib/generators/coalla/cms/templates/views/admin/administrators/edit.html.haml +5 -0
  236. data/lib/generators/coalla/cms/templates/views/admin/administrators/index.html.haml +15 -0
  237. data/lib/generators/coalla/cms/templates/views/admin/administrators/new.html.haml +4 -0
  238. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/_form.html.haml.erb +14 -0
  239. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/edit.html.haml.erb +5 -0
  240. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/index.html.haml.erb +15 -0
  241. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/new.html.haml.erb +4 -0
  242. data/lib/generators/coalla/cms/templates/views/administrators/sessions/new.html.haml +19 -0
  243. data/lib/generators/coalla/cms/templates/views/home/index.html.haml.erb +1 -0
  244. data/lib/generators/coalla/cms/wysiwyg/ckeditor_generator.rb +17 -0
  245. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/mediaembed/icons/hidpi/mediaembed.png +0 -0
  246. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/mediaembed/icons/mediaembed.png +0 -0
  247. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/mediaembed/plugin.js +64 -0
  248. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/LICENSE.txt +303 -0
  249. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad-gallery-css-diff.htm +831 -0
  250. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_next.png +0 -0
  251. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_prev.png +0 -0
  252. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_scroll_back.png +0 -0
  253. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/ad_scroll_forward.png +0 -0
  254. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.css +185 -0
  255. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.js +984 -0
  256. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.min - ref.js +10 -0
  257. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/jquery.ad-gallery.min.js +1 -0
  258. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/loader.gif +0 -0
  259. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/opa75.png +0 -0
  260. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/placeholder.png +0 -0
  261. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/ad-gallery/trans.gif +0 -0
  262. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/blank.gif +0 -0
  263. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_loading.gif +0 -0
  264. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_loading@2x.gif +0 -0
  265. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_overlay.png +0 -0
  266. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_sprite.png +0 -0
  267. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/fancybox_sprite@2x.png +0 -0
  268. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/fancybox_buttons.png +0 -0
  269. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-buttons.css +97 -0
  270. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-buttons.js +122 -0
  271. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-media.js +199 -0
  272. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-thumbs.css +55 -0
  273. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/helpers/jquery.fancybox-thumbs.js +162 -0
  274. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.css +274 -0
  275. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.js +2020 -0
  276. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/3rdParty/fancybox2/jquery.fancybox.pack.js +46 -0
  277. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/README.md +66 -0
  278. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/dialogs/slideshow.js +1396 -0
  279. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/dialogs/slideshow.min.js +1 -0
  280. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/icons/placeholder.png +0 -0
  281. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/icons/slideshow.png +0 -0
  282. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/Serbian_translation.txt +9 -0
  283. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/el.js +37 -0
  284. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/en.js +35 -0
  285. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/fr.js +35 -0
  286. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/ru.js +35 -0
  287. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/sr-latn.js +35 -0
  288. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/lang/sr.js +35 -0
  289. data/lib/generators/coalla/cms/wysiwyg/templates/ckeditor/plugins/slideshow/plugin.js +217 -0
  290. metadata +613 -0
@@ -0,0 +1,19 @@
1
+ class FileUpload < ActiveRecord::Base
2
+
3
+ mount_uploader :file, FileUploader
4
+
5
+ before_save :update_file_attributes
6
+
7
+ validates_presence_of :file, unless: :file_cache
8
+
9
+ private
10
+
11
+ def update_file_attributes
12
+ if file.present? && file_changed?
13
+ self.content_type = file.file.content_type
14
+ self.file_size = file.file.size
15
+ self.file_name = file.file.filename if self.respond_to? :file_name=
16
+ end
17
+ end
18
+
19
+ end
@@ -0,0 +1,28 @@
1
+ class Lookup < ActiveRecord::Base
2
+
3
+ validates_presence_of :code
4
+ validates_uniqueness_of :code
5
+ validates_numericality_of :value, only_integer: true, if: ->(lookup) { lookup.type_code == 'integer' }
6
+ validates_numericality_of :value, if: ->(lookup) { lookup.type_code == 'float' }
7
+
8
+ mount_uploader :file, FileUploader
9
+
10
+ def value_options
11
+ attr_value = read_attribute(:value_options)
12
+
13
+ if attr_value.present?
14
+ ActiveSupport::JSON.decode(attr_value).with_indifferent_access
15
+ else
16
+ {}
17
+ end
18
+ end
19
+
20
+ def value_options=(value)
21
+ write_attribute(:value_options, ActiveSupport::JSON.encode(value).to_s) if value.present?
22
+ end
23
+
24
+ def select_options
25
+ value_options.map { |key, value| [value, key] }
26
+ end
27
+
28
+ end
@@ -0,0 +1,16 @@
1
+ class SiteMetaTags < ActiveRecord::Base
2
+ self.table_name = 'meta_tags'
3
+
4
+ mount_uploader :image, MetaTagsImageUploader
5
+ mount_uploader :og_image, MetaTagsImageUploader
6
+
7
+ validates_uniqueness_of :identifier
8
+
9
+ def self.default_tags
10
+ where(identifier: :default).first
11
+ end
12
+
13
+ def identifier_text
14
+ identifier == 'default' ? 'Тэги по умолчанию' : identifier
15
+ end
16
+ end
@@ -0,0 +1,10 @@
1
+ class FileUploader < CarrierWave::Uploader::Base
2
+
3
+ storage :file
4
+
5
+ def store_dir
6
+ "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
7
+ end
8
+
9
+
10
+ end
@@ -0,0 +1,74 @@
1
+ #encoding: utf-8
2
+ require 'carrierwave/processing/mime_types'
3
+ require 'shellwords'
4
+
5
+ # TODO Добавить настройку watermark_image, position
6
+
7
+ class GenericImageUploader < CarrierWave::Uploader::Base
8
+ include CarrierWave::RMagick
9
+ include CarrierWave::MimeTypes
10
+
11
+ before :cache, :capture_size_before_cache
12
+
13
+ storage :file
14
+
15
+ process :set_content_type
16
+ process :set_image_properties
17
+
18
+ def watermark
19
+ return if !model || !model.respond_to?(getter(:watermarked?)) || !model.send(getter(:watermarked?))
20
+
21
+ manipulate! do |img|
22
+ logo = Magick::Image.read(Rails.root.join("app/assets/images/watermark.png")).first
23
+ img.composite(logo, Magick::SouthEastGravity, 0, 0, Magick::OverCompositeOp)
24
+ end
25
+ end
26
+
27
+ def store_dir
28
+ "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
29
+ end
30
+
31
+ #def default_url
32
+ # "/assets/fallback/" + [version_name, "default.png"].compact.join('_')
33
+ #end
34
+
35
+ def capture_size_before_cache(new_file)
36
+ return unless model
37
+ return unless new_file.path
38
+ if model.respond_to?(setter(:width)) && model.respond_to?(setter(:height))
39
+ w, h = `identify -format "%wx %h" #{new_file.path.shellescape}`.split(/x/).map { |dim| dim.to_i }
40
+ model.send(setter(:width), w)
41
+ model.send(setter(:height), h)
42
+ end
43
+ end
44
+
45
+ def set_image_properties
46
+ return if !model || !file
47
+
48
+ model.send(setter(:file_name), file.filename) if model.respond_to?(setter(:file_name))
49
+ model.send(setter(:size), file.size) if model.respond_to?(setter(:size))
50
+ model.send(setter(:content_type), file.content_type) if model.respond_to?(setter(:content_type))
51
+ end
52
+
53
+ private
54
+
55
+ def setter(name)
56
+ opt = model.class.uploader_options[mounted_as] || {}
57
+ if opt[:prefixed]
58
+ "#{mounted_as}_#{name}="
59
+ else
60
+ "#{name}="
61
+ end
62
+ end
63
+
64
+
65
+ def getter(name)
66
+ opt = model.class.uploader_options[mounted_as] || {}
67
+ if opt[:prefixed]
68
+ "#{mounted_as}_#{name}"
69
+ else
70
+ "#{name}"
71
+ end
72
+ end
73
+
74
+ end
@@ -0,0 +1,5 @@
1
+ class MetaTagsImageUploader < GenericImageUploader
2
+ version :main do
3
+ resize_to_limit 1024, 1024
4
+ end
5
+ end
@@ -0,0 +1,82 @@
1
+ #encoding: utf-8
2
+ class AdminStructure
3
+
4
+ include Rails.application.routes.url_helpers
5
+
6
+ Section = Struct.new(:name, :path, :icon, :description, :counter, :show_menu_counter, :creation_path) do
7
+
8
+ def show_menu_counter?
9
+ show_menu_counter.present?
10
+ end
11
+
12
+ end
13
+
14
+ Separator = Struct.new(:title)
15
+
16
+ CONFIG_FILE_NAME = 'structure.rb'
17
+
18
+ attr_accessor :sections
19
+
20
+ def initialize(controller)
21
+ @controller = controller
22
+ @sections = []
23
+ load_sections_from_config
24
+ end
25
+
26
+ def menu_items
27
+ dashboard_item = Section.new(I18n.t('admin.common.dashboard'), admin_dashboard_path, 'glyphicon glyphicon-align-left')
28
+ [dashboard_item] + @sections
29
+ end
30
+
31
+ def sections
32
+ @sections.find_all { |section| section.is_a?(Section) }
33
+ end
34
+
35
+ private
36
+
37
+ def load_sections_from_config
38
+ config_path = Rails.root.join('config', CONFIG_FILE_NAME).to_s
39
+ if File.exist?(config_path)
40
+ instance_eval(File.read(config_path), config_path)
41
+ end
42
+ end
43
+
44
+ # Options:
45
+ # creation_path - false or path string
46
+ def section(section_reference, options = {})
47
+ path = options.delete(:path)
48
+ icon = options.delete(:icon)
49
+ description = options.delete(:description)
50
+ counter = options.delete(:counter)
51
+ show_menu_counter = options.delete(:show_menu_counter)
52
+ creation_path = options.delete(:creation_path)
53
+ if section_reference.is_a?(Class)
54
+ section_name = section_reference.model_name.human
55
+ path = send("admin_#{section_reference.model_name.route_key}_path") unless path
56
+ counter = ->() { section_reference.count } unless counter
57
+ creation_path = send("new_admin_#{section_reference.model_name.singular}_path") if creation_path.nil?
58
+ else
59
+ section_name = section_reference
60
+ end
61
+ @sections << Section.new(section_name, path, icon, description, counter, show_menu_counter, creation_path)
62
+ end
63
+
64
+ def lookup_section(section_references = 'Настройки', category = nil, options = {})
65
+ default_options = options.merge(path: send('admin_lookups_index_path', category: category),
66
+ icon: 'glyphicon glyphicon-wrench',
67
+ description: 'Раздел содержит различные настройки и тексты')
68
+ section(section_references, default_options)
69
+ end
70
+
71
+ def meta_tags_section(section_references = 'Мета-тэги', options = {})
72
+ default_options = options.merge(path: send('admin_meta_tags_path'),
73
+ icon: 'glyphicon glyphicon-tag',
74
+ description: 'Раздел содержит мета-тэги')
75
+ section(section_references, default_options)
76
+ end
77
+
78
+ def separator(title)
79
+ @sections << Separator.new(title)
80
+ end
81
+
82
+ end
@@ -0,0 +1,40 @@
1
+ class BootstrapLinkRenderer < WillPaginate::ActionView::LinkRenderer
2
+
3
+ protected
4
+
5
+ def html_container(html)
6
+ tag(:div, tag(:ul, html, class: 'pagination'), class: 't-center')
7
+ end
8
+
9
+ def page_number(page)
10
+ if page == current_page
11
+ tag(:li, tag(:a, page), class: 'active')
12
+ else
13
+ tag(:li, link(page, page, rel: rel_value(page)))
14
+ end
15
+ end
16
+
17
+ def gap
18
+ text = @template.will_paginate_translate(:page_gap) { '&hellip;' }
19
+ tag(:li, tag(:a, text), class: 'disabled')
20
+ end
21
+
22
+ def previous_page
23
+ num = @collection.current_page > 1 && @collection.current_page - 1
24
+ previous_or_next_page(num, @options[:previous_label])
25
+ end
26
+
27
+ def next_page
28
+ num = @collection.current_page < @collection.total_pages && @collection.current_page + 1
29
+ previous_or_next_page(num, @options[:next_label])
30
+ end
31
+
32
+ def previous_or_next_page(page, text)
33
+ if page
34
+ tag(:li, link(text, page))
35
+ else
36
+ tag(:li, tag(:a, text), class: 'disabled')
37
+ end
38
+ end
39
+
40
+ end
@@ -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