coalla-cms 0.5.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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