coalla-cms 0.4.2.0

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 (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: "Инструкции по разблокировке учётной записи"