camaleon_cms 0.2.1 → 1.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of camaleon_cms might be problematic. Click here for more details.

Files changed (266) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +266 -0
  3. data/app/apps/plugins/attack/config/config.json +1 -1
  4. data/app/apps/plugins/contact_form/config/config.json +1 -1
  5. data/app/apps/plugins/contact_form/contact_form_html_helper.rb +15 -10
  6. data/app/apps/plugins/contact_form/front_controller.rb +1 -0
  7. data/app/apps/plugins/contact_form/views/admin_forms/edit.html.erb +1 -2
  8. data/app/apps/plugins/contact_form/views/admin_forms/index.html.erb +1 -1
  9. data/app/apps/plugins/contact_form/views/admin_forms/responses.html.erb +1 -1
  10. data/app/apps/plugins/contact_form/views/forms_shorcode.html.erb +6 -6
  11. data/app/apps/plugins/front_cache/config/config.json +1 -1
  12. data/app/apps/plugins/front_cache/views/admin/settings.html.erb +1 -1
  13. data/app/apps/plugins/visibility_post/config/config.json +1 -1
  14. data/app/apps/themes/camaleon_first/assets/css/style-ver.css.scss +59 -32
  15. data/app/apps/themes/camaleon_first/views/layouts/index.html.erb +2 -2
  16. data/app/apps/themes/default/assets/css/style.css.scss +3 -0
  17. data/app/apps/themes/default/views/category.html.erb +1 -1
  18. data/app/apps/themes/default/views/post_tag.html.erb +1 -1
  19. data/app/apps/themes/default/views/post_type.html.erb +1 -1
  20. data/app/apps/themes/default/views/search.html.erb +1 -1
  21. data/app/apps/themes/new/views/category.html.erb +1 -1
  22. data/app/apps/themes/new/views/layouts/index.html.erb +2 -2
  23. data/app/apps/themes/new/views/post_tag.html.erb +1 -1
  24. data/app/apps/themes/new/views/post_type.html.erb +1 -1
  25. data/app/apps/themes/new/views/search.html.erb +1 -1
  26. data/app/assets/{stylesheets/admin/bootstrap/images → images/admin}/glyphicons-halflings.png +0 -0
  27. data/app/assets/javascripts/admin/actions.js +12 -205
  28. data/app/assets/javascripts/admin/admin-basic-manifest.js +3 -0
  29. data/app/assets/javascripts/admin/admin-manifest.js +14 -4
  30. data/app/assets/javascripts/admin/custom_fields.js +4 -2
  31. data/app/assets/javascripts/admin/data.js +49 -20
  32. data/app/assets/javascripts/admin/elfinder/upload_elfinder.js +4 -4
  33. data/app/assets/javascripts/admin/grid-editor.js +390 -113
  34. data/app/assets/javascripts/admin/i18n.js +22 -0
  35. data/app/assets/javascripts/admin/jquery.validate.js +2 -54
  36. data/app/assets/javascripts/admin/{core.js → libraries.js} +92 -76
  37. data/app/assets/javascripts/admin/login_manifest.js +0 -3
  38. data/app/assets/javascripts/admin/lte/app.js +758 -0
  39. data/app/assets/javascripts/admin/modal.js +76 -22
  40. data/app/assets/javascripts/admin/nav-menu.js +98 -39
  41. data/app/assets/javascripts/admin/post.js +28 -29
  42. data/app/assets/javascripts/admin/tinymce/skins/lightgray/content.min.css.scss +1 -1
  43. data/app/assets/javascripts/admin/tinymce/tinymce.min.js +11 -11
  44. data/app/assets/javascripts/admin/translator.js +9 -7
  45. data/app/assets/javascripts/admin/widgets.js +1 -0
  46. data/app/assets/stylesheets/admin/admin-basic-manifest.css +15 -0
  47. data/app/assets/stylesheets/admin/admin-manifest.css +7 -11
  48. data/app/assets/stylesheets/admin/bootstrap-datepicker.css.scss +472 -0
  49. data/app/assets/stylesheets/admin/bootstrap-datetimepicker.css.scss +339 -0
  50. data/app/assets/stylesheets/admin/colorpicker.css.scss +95 -0
  51. data/app/assets/stylesheets/admin/custom_admin.css.scss +160 -0
  52. data/app/assets/stylesheets/admin/elfinder-manifest.css +1 -1
  53. data/app/assets/stylesheets/admin/grid-editor.css.scss +14 -299
  54. data/app/assets/stylesheets/admin/lte/admin.css.scss +4747 -0
  55. data/app/assets/stylesheets/admin/lte/skins/skin-black-light.css +176 -0
  56. data/app/assets/stylesheets/admin/lte/skins/skin-black.css +154 -0
  57. data/app/assets/stylesheets/admin/lte/skins/skin-blue-light.css +167 -0
  58. data/app/assets/stylesheets/admin/lte/skins/skin-blue.css +142 -0
  59. data/app/assets/stylesheets/admin/lte/skins/skin-green-light.css +156 -0
  60. data/app/assets/stylesheets/admin/lte/skins/skin-green.css +134 -0
  61. data/app/assets/stylesheets/admin/lte/skins/skin-purple-light.css +156 -0
  62. data/app/assets/stylesheets/admin/lte/skins/skin-purple.css +134 -0
  63. data/app/assets/stylesheets/admin/lte/skins/skin-red-light.css +156 -0
  64. data/app/assets/stylesheets/admin/lte/skins/skin-red.css +134 -0
  65. data/app/assets/stylesheets/admin/lte/skins/skin-yellow-light.css +156 -0
  66. data/app/assets/stylesheets/admin/lte/skins/skin-yellow.css +134 -0
  67. data/app/assets/stylesheets/admin/nav-menu.css.scss +33 -0
  68. data/app/controllers/admin/appearances/nav_menus_controller.rb +13 -10
  69. data/app/controllers/admin/appearances/themes_controller.rb +1 -2
  70. data/app/controllers/admin/appearances_controller.rb +0 -4
  71. data/app/controllers/admin/categories_controller.rb +9 -15
  72. data/app/controllers/admin/comments_controller.rb +8 -14
  73. data/app/controllers/admin/grid_editor_controller.rb +55 -0
  74. data/app/controllers/admin/installers_controller.rb +1 -1
  75. data/app/controllers/admin/media_controller.rb +1 -3
  76. data/app/controllers/admin/plugins_controller.rb +2 -2
  77. data/app/controllers/admin/post_tags_controller.rb +9 -18
  78. data/app/controllers/admin/posts/drafts_controller.rb +1 -9
  79. data/app/controllers/admin/posts_controller.rb +12 -15
  80. data/app/controllers/admin/sessions_controller.rb +6 -7
  81. data/app/controllers/admin/settings/custom_fields_controller.rb +4 -9
  82. data/app/controllers/admin/settings/post_types_controller.rb +6 -16
  83. data/app/controllers/admin/settings/sites_controller.rb +5 -7
  84. data/app/controllers/admin/settings_controller.rb +0 -4
  85. data/app/controllers/admin/user_roles_controller.rb +8 -8
  86. data/app/controllers/admin/users_controller.rb +8 -9
  87. data/app/controllers/admin_controller.rb +4 -5
  88. data/app/controllers/apps/plugins_admin_controller.rb +3 -3
  89. data/app/controllers/apps/plugins_front_controller.rb +2 -2
  90. data/app/controllers/apps/themes_admin_controller.rb +2 -2
  91. data/app/controllers/apps/themes_front_controller.rb +2 -2
  92. data/app/controllers/camaleon_controller.rb +0 -1
  93. data/app/controllers/concerns/frontend_concern.rb +1 -2
  94. data/app/controllers/frontend_controller.rb +25 -9
  95. data/app/decorators/category_decorator.rb +0 -1
  96. data/app/decorators/custom_field_decorator.rb +0 -1
  97. data/app/decorators/custom_fields_concern.rb +9 -3
  98. data/app/decorators/post_comment_decorator.rb +0 -1
  99. data/app/decorators/post_decorator.rb +10 -4
  100. data/app/decorators/post_tag_decorator.rb +0 -1
  101. data/app/decorators/post_type_decorator.rb +0 -1
  102. data/app/decorators/site_decorator.rb +35 -11
  103. data/app/decorators/term_taxonomy_decorator.rb +1 -3
  104. data/app/decorators/theme_decorator.rb +0 -1
  105. data/app/decorators/user_decorator.rb +7 -5
  106. data/app/decorators/widget_decorator.rb +0 -1
  107. data/app/helpers/admin/application_helper.rb +14 -0
  108. data/app/helpers/admin/menus_helper.rb +8 -8
  109. data/app/helpers/camaleon_helper.rb +10 -3
  110. data/app/helpers/captcha_helper.rb +2 -2
  111. data/app/helpers/frontend/application_helper.rb +0 -1
  112. data/app/helpers/frontend/nav_menu_helper.rb +2 -1
  113. data/app/helpers/frontend/seo_helper.rb +1 -2
  114. data/app/helpers/frontend/site_helper.rb +4 -4
  115. data/app/helpers/hooks_helper.rb +2 -5
  116. data/app/helpers/html_helper.rb +9 -7
  117. data/app/helpers/plugins_helper.rb +34 -8
  118. data/app/helpers/session_helper.rb +1 -2
  119. data/app/helpers/short_code_helper.rb +91 -10
  120. data/app/helpers/site_helper.rb +17 -8
  121. data/app/helpers/theme_helper.rb +34 -7
  122. data/app/helpers/uploader_helper.rb +6 -2
  123. data/app/mailers/html_mailer.rb +15 -6
  124. data/app/models/category.rb +2 -1
  125. data/app/models/concerns/custom_fields_read.rb +14 -3
  126. data/app/models/concerns/metas.rb +7 -4
  127. data/app/models/custom_field_group.rb +3 -0
  128. data/app/models/{concerns/metas_saved.rb → grid_template.rb} +7 -2
  129. data/app/models/meta.rb +0 -1
  130. data/app/models/nav_menu.rb +15 -1
  131. data/app/models/nav_menu_item.rb +10 -0
  132. data/app/models/post.rb +100 -6
  133. data/app/models/post_comment.rb +6 -0
  134. data/app/models/post_default.rb +9 -8
  135. data/app/models/post_relationship.rb +2 -0
  136. data/app/models/post_type.rb +36 -24
  137. data/app/models/site.rb +7 -16
  138. data/app/models/term_taxonomy.rb +3 -2
  139. data/app/models/theme.rb +5 -0
  140. data/app/models/widget/assigned.rb +3 -2
  141. data/app/views/admin/appearances/nav_menus/_custom_fields.html.erb +6 -0
  142. data/app/views/admin/appearances/{_external_menu.html.erb → nav_menus/_external_menu.html.erb} +8 -10
  143. data/app/views/admin/appearances/nav_menus/_menu_form.html.erb +35 -0
  144. data/app/views/admin/appearances/nav_menus/_menu_list.html.erb +22 -0
  145. data/app/views/admin/appearances/nav_menus/index.html.erb +110 -0
  146. data/app/views/admin/appearances/themes/index.html.erb +4 -3
  147. data/app/views/admin/appearances/widgets/main/_sidebar.html.erb +29 -0
  148. data/app/views/admin/appearances/widgets/main/form.html.erb +1 -1
  149. data/app/views/admin/appearances/widgets/main/index.html.erb +19 -41
  150. data/app/views/admin/categories/edit.html.erb +2 -6
  151. data/app/views/admin/categories/index.html.erb +7 -11
  152. data/app/views/admin/comments/form.html.erb +4 -7
  153. data/app/views/admin/comments/index.html.erb +24 -41
  154. data/app/views/admin/comments/reply.html.erb +9 -10
  155. data/app/views/admin/grid_editor/form.html.erb +31 -0
  156. data/app/views/admin/grid_editor/index.html.erb +29 -0
  157. data/app/views/admin/media/index.html.erb +3 -15
  158. data/app/views/admin/plugins/_plugins_list.html.erb +1 -2
  159. data/app/views/admin/post_tags/edit.html.erb +2 -6
  160. data/app/views/admin/post_tags/index.html.erb +3 -8
  161. data/app/views/admin/posts/_sidebar.html.erb +136 -0
  162. data/app/views/admin/posts/form.html.erb +87 -281
  163. data/app/views/admin/posts/index.html.erb +89 -104
  164. data/app/views/admin/sessions/forgot.html.erb +7 -13
  165. data/app/views/admin/sessions/login.html.erb +21 -11
  166. data/app/views/admin/sessions/register.html.erb +3 -6
  167. data/app/views/admin/settings/custom_fields/_meta_data.html.erb +1 -1
  168. data/app/views/admin/settings/custom_fields/_render.html.erb +6 -14
  169. data/app/views/admin/settings/custom_fields/fields/audio.html.erb +1 -1
  170. data/app/views/admin/settings/custom_fields/fields/field_attrs.html.erb +3 -5
  171. data/app/views/admin/settings/custom_fields/fields/file.html.erb +1 -1
  172. data/app/views/admin/settings/custom_fields/fields/image.html.erb +1 -1
  173. data/app/views/admin/settings/custom_fields/fields/posts.html.erb +1 -1
  174. data/app/views/admin/settings/custom_fields/fields/select.html.erb +1 -1
  175. data/app/views/admin/settings/custom_fields/fields/users.html.erb +1 -1
  176. data/app/views/admin/settings/custom_fields/fields/video.html.erb +1 -1
  177. data/app/views/admin/settings/custom_fields/form.html.erb +11 -9
  178. data/app/views/admin/settings/custom_fields/get_items.html.erb +3 -6
  179. data/app/views/admin/settings/custom_fields/index.html.erb +3 -10
  180. data/app/views/admin/settings/languages.html.erb +2 -10
  181. data/app/views/admin/settings/post_types/_form.html.erb +1 -1
  182. data/app/views/admin/settings/post_types/edit.html.erb +2 -6
  183. data/app/views/admin/settings/post_types/index.html.erb +4 -12
  184. data/app/views/admin/settings/site.html.erb +143 -149
  185. data/app/views/admin/settings/sites/form.html.erb +4 -19
  186. data/app/views/admin/settings/sites/index.html.erb +8 -9
  187. data/app/views/admin/taxonomy/index.html.erb +1 -1
  188. data/app/views/admin/user_roles/form.html.erb +2 -3
  189. data/app/views/admin/user_roles/index.html.erb +2 -8
  190. data/app/views/admin/users/form.html.erb +14 -9
  191. data/app/views/admin/users/index.html.erb +3 -8
  192. data/app/views/admin/users/profile_edit.html.erb +21 -14
  193. data/app/views/default_theme/custom_fields/audio.html.erb +3 -0
  194. data/app/views/default_theme/custom_fields/checkbox.html.erb +3 -0
  195. data/app/views/default_theme/custom_fields/checkboxes.html.erb +3 -0
  196. data/app/views/default_theme/custom_fields/colorpicker.html.erb +3 -0
  197. data/app/views/default_theme/custom_fields/date.html.erb +3 -0
  198. data/app/views/default_theme/custom_fields/editor.html.erb +3 -0
  199. data/app/views/default_theme/custom_fields/email.html.erb +3 -0
  200. data/app/views/default_theme/custom_fields/field_attrs.html.erb +3 -0
  201. data/app/views/default_theme/custom_fields/file.html.erb +3 -0
  202. data/app/views/default_theme/custom_fields/image.html.erb +3 -0
  203. data/app/views/default_theme/custom_fields/numeric.html.erb +3 -0
  204. data/app/views/default_theme/custom_fields/phone.html.erb +3 -0
  205. data/app/views/default_theme/custom_fields/posts.html.erb +3 -0
  206. data/app/views/default_theme/custom_fields/radio.html.erb +3 -0
  207. data/app/views/default_theme/custom_fields/select.html.erb +3 -0
  208. data/app/views/default_theme/custom_fields/select_eval.html.erb +3 -0
  209. data/app/views/default_theme/custom_fields/text_area.html.erb +3 -0
  210. data/app/views/default_theme/custom_fields/text_box.html.erb +3 -0
  211. data/app/views/default_theme/custom_fields/url.html.erb +3 -0
  212. data/app/views/default_theme/custom_fields/users.html.erb +3 -0
  213. data/app/views/default_theme/custom_fields/video.html.erb +3 -0
  214. data/app/views/default_theme/layouts/index.html.erb +2 -2
  215. data/app/views/default_theme/{post.html.erb → single.html.erb} +1 -1
  216. data/app/views/default_theme/{post.rss.builder → single.rss.builder} +0 -0
  217. data/app/views/layouts/admin.html.erb +35 -133
  218. data/app/views/layouts/admin/_flash_messages.html.erb +1 -15
  219. data/app/views/layouts/admin/_footer.html.erb +6 -0
  220. data/app/views/layouts/admin/_header.html.erb +51 -0
  221. data/app/views/layouts/admin/_sidebar.html.erb +21 -30
  222. data/app/views/layouts/admin/installer.html.erb +2 -2
  223. data/app/views/layouts/login.html.erb +15 -33
  224. data/config/initializers/active_record_extension.rb +14 -2
  225. data/config/initializers/assets.rb +21 -7
  226. data/config/initializers/page_caching.rb +1 -2
  227. data/config/locales/admin/en.yml +17 -9
  228. data/config/locales/admin/es.yml +8 -3
  229. data/config/locales/admin/it.yml +4 -2
  230. data/config/locales/admin/js.yml +147 -0
  231. data/config/routes/admin.rb +4 -4
  232. data/config/routes/frontend.rb +2 -2
  233. data/config/system.json +1 -0
  234. data/db/migrate/20150926095310_rename_column_posts.rb +18 -0
  235. data/lib/camaleon_cms.rb +1 -1
  236. data/lib/camaleon_cms/engine.rb +17 -2
  237. data/lib/camaleon_cms/version.rb +1 -1
  238. data/lib/generators/camaleon_cms/gem_plugin_generator.rb +122 -0
  239. data/lib/generators/camaleon_cms/gem_plugin_template/app/controllers/plugins/my_plugin/admin_controller.rb +8 -0
  240. data/lib/generators/camaleon_cms/gem_plugin_template/app/controllers/plugins/my_plugin/front_controller.rb +8 -0
  241. data/lib/generators/camaleon_cms/gem_plugin_template/app/helpers/plugins/my_plugin/main_helper.rb +22 -0
  242. data/lib/generators/camaleon_cms/gem_plugin_template/app/models/plugins/my_plugin/my_plugin.rb +12 -0
  243. data/lib/generators/camaleon_cms/gem_plugin_template/app/views/plugins/my_plugin/admin/index.html.erb +2 -0
  244. data/lib/generators/camaleon_cms/gem_plugin_template/app/views/plugins/my_plugin/front/index.html.erb +2 -0
  245. data/lib/generators/camaleon_cms/gem_plugin_template/app/views/plugins/my_plugin/layouts/readme.txt +2 -0
  246. data/lib/generators/camaleon_cms/gem_plugin_template/config/camaleon_plugin.json +21 -0
  247. data/lib/generators/camaleon_cms/install_generator.rb +1 -2
  248. data/lib/generators/camaleon_cms/install_template/plugin_routes.rb +1 -10
  249. data/lib/generators/ctheme_template/app/apps/themes/my_theme/config/config.json +5 -5
  250. data/lib/generators/ctheme_template/app/apps/themes/my_theme/main_helper.rb +6 -5
  251. data/lib/generators/ctheme_template/app/apps/themes/my_theme/views/layouts/index.html.erb +2 -2
  252. data/lib/plugin_routes.rb +40 -2
  253. metadata +257 -22
  254. data/app/assets/stylesheets/admin/animate/animate.min.css +0 -6
  255. data/app/assets/stylesheets/admin/bootstrap/bootstrap-datetimepicker.css.scss +0 -339
  256. data/app/assets/stylesheets/admin/bootstrap/bootstrap.min.css +0 -5
  257. data/app/assets/stylesheets/admin/core.scss +0 -349
  258. data/app/assets/stylesheets/admin/fonts/OpenSans-Regular-webfont.eot +0 -0
  259. data/app/assets/stylesheets/admin/fonts/OpenSans-Regular-webfont.svg +0 -1831
  260. data/app/assets/stylesheets/admin/fonts/OpenSans-Regular-webfont.ttf +0 -0
  261. data/app/assets/stylesheets/admin/fonts/OpenSans-Regular-webfont.woff +0 -0
  262. data/app/assets/stylesheets/admin/nav-menu.css +0 -54
  263. data/app/assets/stylesheets/admin/theme-default.scss +0 -8462
  264. data/app/models/concerns/site_public.rb +0 -23
  265. data/app/views/admin/appearances/menu.html.erb +0 -199
  266. data/lib/Gemfile +0 -25
@@ -9,7 +9,7 @@
9
9
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
10
10
 
11
11
  <%= stylesheet_link_tag "admin/admin-manifest", media: "all" %>
12
- <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
12
+ <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
13
13
  <script>
14
14
  var root_url = '<%= root_url %>';
15
15
  var NO_IMAGE_URL = '<%= asset_url("image-not-found.png") %>';
@@ -17,148 +17,50 @@
17
17
  var ADMIN_TRANSLATIONS = <%= raw current_site.get_languages.to_json %>;
18
18
  String.prototype.to_url = function () { return root_url.slice(0, root_url.length - 1) + this; };
19
19
  window.run = [];
20
- var tinymce_langs = {"<%= current_locale %>": "<%= asset_path("admin/tinymce/langs/#{current_locale}.js") %>"};
21
- var lang = {
22
- accept: '<%= t('admin.button.accept') %>',
23
- cancel: '<%= t('admin.button.cancel') %>',
24
- add_tag: '<%= t('admin.post.add_tag') %>',
25
- approved: '<%= t('admin.comments.message.approved') %>',
26
- close: '<%= t('admin.button.close') %>',
27
- edit: '<%= t('admin.button.edit') %>',
28
- "delete": '<%= t('admin.button.delete') %>',
29
- post_draft: '<%= t('admin.post.message.draft') %>',
30
- label_required: '<%= t('plugin.contact_form.label_required') %>',
31
- placeholder_required: '<%= t('plugin.contact_form.placeholder_required') %>',
32
- message_updated_success: '<%= t('admin.message.updated_success') %>',
33
- message_edit_menu: '<%= t('admin.message.edit_menu') %>',
34
- message_delete_item: '<%= t('admin.message.delete_item') %>',
35
- message_remove_items_submenu: '<%= t('admin.message.remove_items_submenu') %>',
36
- message_you_must_upload_image: '<%= t('admin.message.you_must_upload_image') %>',
37
- message_you_must_upload_video: '<%= t('admin.message.you_must_upload_video') %>',
38
- message_no_response_fields: '<%= t('admin.message.no_response_fields') %>',
39
- message_you_must_upload_json_file: '<%= t('admin.message.you_must_upload_json_file')%>',
40
- msg_no_templates_defined: '<%= t('admin.message.no_templates_defined') %>',
41
- msg_avatar_updated: '<%= t('admin.message.avatar_updated')%>',
42
- msg_form_error: '<%= t('admin.message.form_error')%>',
43
- option_title: '<%= t('admin.settings.option_title') %>',
44
- permalink: '<%= t('admin.post.permalink')%>',
45
- pending: '<%= t('admin.comments.message.pending') %>',
46
- preview: '<%= t('admin.button.preview')%>',
47
- spam: '<%= t('admin.comments.message.spam') %>',
48
- view_page: '<%= t('admin.button.view_page')%>',
49
- view_draft: '<%= t('admin.button.view_draft') %>',
50
- mgs_save_draft: '<%= t('admin.post.message.draft') %>',
51
- mgs_recover: '<%= t('admin.post.message.recover') %>',
52
- close: '<%= t('admin.button.close')%>',
53
- processing: '<%= t('admin.message.processing')%>',
54
- type_contents: '<%= t('admin.plugins.type_contents')%>',
55
- upload_image: '<%= t('admin.button.upload_image')%>'
56
- };
20
+ var tinymce_assets = {language_url: "<%= asset_path("admin/tinymce/langs/#{current_locale}.js") %>", custom_css: <%= r = {css_assets: []}; hooks_run("tinymce_custom_css", r); raw(r[:css_assets].to_json); %>};
21
+ var I18n_data = <%= I18n.backend.send(:translations)[current_locale.to_sym][:admin][:js].to_json.html_safe %>
57
22
  </script>
58
23
  <%= javascript_include_tag "admin/admin-manifest" %>
59
- <%= javascript_include_tag "admin/#{current_locale}.js" if current_locale != "en" %>
60
- <%= javascript_include_tag "admin/elfinder/i18n/elfinder.#{current_locale}.js" if current_locale != "en" %>
61
- <%= raw the_head(false) %>
24
+ <%= javascript_include_tag "admin/#{current_locale}.js" if current_locale != "en" %> <!-- validator translations -->
25
+ <%= javascript_include_tag "admin/elfinder/i18n/elfinder.#{current_locale}.js" if current_locale != "en" %> <!-- elfinder translations -->
26
+ <%= raw the_head({}, false) %>
27
+
28
+ <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
29
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
30
+ <!--[if lt IE 9]>
31
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
32
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
33
+ <![endif]-->
62
34
  </head>
63
- <body class="template-admin">
64
- <%= raw content_before_draw %>
65
- <!-- START PAGE CONTAINER -->
66
- <div class="page-container" id="page-container">
35
+ <body class="hold-transition skin-blue sidebar-mini">
36
+ <%= raw content_before_draw %>
37
+ <div class="wrapper">
67
38
 
68
- <!-- START PAGE SIDEBAR -->
69
- <div class="page-sidebar page-sidebar-fixed0 scroll0" id="admin_sidebar">
70
- <!-- START X-NAVIGATION -->
39
+ <%= render partial: "layouts/admin/header" %>
71
40
  <%= render partial: "layouts/admin/sidebar", locals: {_admin_menu_draw: _admin_menu_draw} %>
72
41
 
73
- <!-- END X-NAVIGATION -->
74
- </div>
75
- <!-- END PAGE SIDEBAR -->
76
-
77
- <!-- PAGE CONTENT -->
78
- <div class="page-content">
79
-
80
- <!-- START X-NAVIGATION VERTICAL -->
81
- <ul class="x-navigation x-navigation-horizontal x-navigation-panel hidden" id="admin_header">
82
- <!-- TOGGLE NAVIGATION -->
83
- <li class="xn-icon-button">
84
- <a href="#" class="x-navigation-minimize"><span class="fa fa-dedent"></span></a>
85
- </li>
86
- <li class="xn-icon-button pull-right">
87
- <a href="#" class="mb-control" data-box="#mb-signout"><span class="fa fa-power-off"></span></a>
88
- </li>
89
- <!-- END TOGGLE NAVIGATION -->
90
- </ul>
91
- <!-- END X-NAVIGATION VERTICAL -->
42
+ <div class="content-wrapper">
43
+ <!-- Content Header (Page header) -->
44
+ <section class="content-header">
45
+ <ol class="breadcrumb">
46
+ <%= raw admin_breadcrumb_draw() %>
47
+ </ol>
48
+ </section>
92
49
 
93
- <!-- Multisite menus -->
94
- <div id="admin_header_menu">
95
- <div class="btn-group" role="group">
96
- <button id="toogle_sidebar" class="btn btn-lg btn-primary"><i class="fa fa-dedent"></i></button>
97
-
98
- <% if current_site.manage_sites? %>
99
- <% Site.order(term_group: :desc).eager_load(:metas).decorate.each do |site| %>
100
- <div class="btn-group" role="group">
101
- <a class="btn dropdown-toggle btn-lg <%= site == current_site ? "btn-success" : "btn-primary" %>" data-toggle="dropdown" href="#" role="button" aria-expanded="false"> <%= site.the_title %> <span class="caret"></span></a>
102
- <ul class="dropdown-menu" role="menu">
103
- <li><a href="<%= site.the_admin_url %>" class=""><i class="fa fa-dashboard"></i> <%= t('admin.sidebar_top.admin_panel') %></a></li>
104
- <li><a href="<%= site.the_url(locale: false) %>" class="" target="_blank"><i class="fa fa-globe"></i> <%= t('admin.sidebar_top.visit') %></a></li>
105
- </ul>
106
- </div>
107
- <% end %>
108
- <% else %>
109
- <div class="btn-group" role="group">
110
- <a class="btn dropdown-toggle btn-lg btn-success" data-toggle="dropdown" href="#" role="button" aria-expanded="false"> <%= current_site.the_title %> <span class="caret"></span></a>
111
- <ul class="dropdown-menu" role="menu">
112
- <li><a href="<%= current_site.the_admin_url %>" class=""><i class="fa fa-dashboard"></i> <%= t('admin.sidebar_top.admin_panel') %></a></li>
113
- <li><a href="<%= current_site.the_url(locale: false) %>" class="" target="_blank"><i class="fa fa-globe"></i> <%= t('admin.sidebar_top.visit') %></a></li>
114
- </ul>
115
- </div>
116
- <% end %>
117
- </div>
118
-
119
- <a id="admin_logout" data-box="#mb-signout" class="pull-right btn btn-primary btn-lg" href="#"><span class="fa fa-power-off"></span></a>
50
+ <!-- Main content -->
51
+ <!-- box box-info -->
52
+ <section class="content" id="admin_content">
53
+ <%= render "/layouts/admin/flash_messages" %>
54
+ <%= yield %>
55
+ </section>
56
+ <!-- /.content -->
120
57
  </div>
121
58
 
122
- <!-- START BREADCRUMB -->
123
- <ul class="breadcrumb push-down-0" id="admin_breadcrumb">
124
- <%= raw admin_breadcrumb_draw() %>
125
- </ul>
126
- <!-- END BREADCRUMB -->
127
-
128
- <div id="admin_content">
129
- <%= render partial: "layouts/admin/flash_messages" %>
130
- <%= yield %>
131
- </div>
132
- <!-- END PAGE CONTENT -->
133
- </div>
134
- <!-- END PAGE CONTAINER -->
135
-
136
- <div class="message-box animated fadeIn" data-sound="alert" id="mb-signout">
137
- <div class="mb-container">
138
- <div class="mb-middle">
139
- <div class="mb-title"><span class="fa fa-sign-out"></span> <%= raw t('admin.logout.logout_html') %> </div>
140
- <div class="mb-content">
141
- <p><%= t('admin.message.are_you_sure_you_want_log_out_int') %></p>
142
-
143
- <p><%= t('admin.message.press_no_continue_work_press_yes_logout') %></p>
144
- </div>
145
- <div class="mb-footer">
146
- <div class="pull-right">
147
- <a href="<%= admin_logout_path %>" class="btn btn-success btn-lg"><%= t('admin.button.out_yes') %></a>
148
- <button class="btn btn-default btn-lg mb-control-close"><%= t('admin.button.out_not') %></button>
149
- </div>
150
- </div>
151
- </div>
152
- </div>
59
+ <%= render partial: "layouts/admin/footer" %>
60
+ <%= raw content_after_draw %>
153
61
  </div>
154
62
 
155
- <!-- START PRELOADS -->
156
- <audio id="audio-alert" src="<%= asset_path("audio/alert.mp3") %>" preload="auto"></audio>
157
- <audio id="audio-fail" src="<%= asset_path("audio/fail.mp3") %>" preload="auto"></audio>
158
- <!-- END PRELOADS -->
159
-
160
- </div>
161
- <script> jQuery(function () { while (run.length > 0) { (run.shift())(); } }); </script>
162
- <%= raw content_after_draw %>
63
+ <script> jQuery(function () { while (run.length > 0) { (run.shift())(); } }); </script>
64
+ <%= raw content_after_draw %>
163
65
  </body>
164
66
  </html>
@@ -31,18 +31,4 @@
31
31
  <%= raw(flash[:alert]) %>
32
32
  </div>
33
33
  </div>
34
- <% end %>
35
-
36
-
37
- <style>
38
- .flash_messages{
39
- margin-left: 10%;
40
- margin-right: 10%;
41
- width: 80%;
42
- }
43
- .template-admin .flash_messages{
44
- display: inline-block;
45
- text-align: center;
46
- }
47
- </style>
48
-
34
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <footer class="main-footer">
2
+ <div class="pull-right hidden-xs">
3
+ <b>Version</b> <%= CamaleonCms::VERSION %>
4
+ </div>
5
+ <strong>Copyright &copy; 2015-2016 <a href="http://camaleon.tuzitio.com">Camaleon CMS.</a> </strong> All rights reserved.
6
+ </footer>
@@ -0,0 +1,51 @@
1
+ <header class="main-header">
2
+ <!-- Logo -->
3
+ <a href="<%= current_site.the_url%>" class="logo" target="_blank">
4
+ <img src="<%= current_site.the_logo %>" alt="<%= current_site.the_title %>">
5
+ </a>
6
+ <!-- Header Navbar: style can be found in header.less -->
7
+ <nav class="navbar navbar-static-top" role="navigation">
8
+ <!-- Sidebar toggle button-->
9
+ <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
10
+ <span class="sr-only">Toggle navigation</span>
11
+ <span class="icon-bar"></span>
12
+ <span class="icon-bar"></span>
13
+ <span class="icon-bar"></span>
14
+ </a>
15
+
16
+ <div class="navbar-custom-menu">
17
+ <ul class="nav navbar-nav">
18
+ <%= r = {html: ""}; hooks_run("admin_notifications", r); raw(r[:html]); %>
19
+ <li class="dropdown user user-menu">
20
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">
21
+ <img src="<%= current_user.the_avatar %>" class="user-image" alt="User Image">
22
+ <span class="hidden-xs"><%= current_user.fullname %></span>
23
+ </a>
24
+ <ul class="dropdown-menu">
25
+ <!-- User image -->
26
+ <li class="user-header">
27
+ <img src="<%= current_user.the_avatar %>" class="img-circle" alt="User Image">
28
+ <p>
29
+ <%= current_user.fullname %> - <%= current_user.the_role %>
30
+ <small><%= t("admin.header.member_since", time: l(current_user.created_at.to_date, format: :long) ) %></small>
31
+ </p>
32
+ </li>
33
+ <!-- Menu Footer-->
34
+ <li class="user-footer">
35
+ <div class="pull-left">
36
+ <a href="<%= admin_profile_edit_path %>" class="btn btn-primary"><%= t("admin.users.profile") %></a>
37
+ </div>
38
+ <div class="pull-right">
39
+ <a href="<%= admin_logout_path %>" class="btn btn-danger"><%= t("admin.logout.logout") %></a>
40
+ </div>
41
+ </li>
42
+ </ul>
43
+ </li>
44
+ <!-- Control Sidebar Toggle Button -->
45
+ <li class="hidden">
46
+ <a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a>
47
+ </li>
48
+ </ul>
49
+ </div>
50
+ </nav>
51
+ </header>
@@ -1,31 +1,22 @@
1
- <ul class="x-navigation">
2
- <li class="xn-logo">
3
- <a href="<%= admin_url %>" title="Visit"><%= image_tag(current_site.the_logo, style: "max-height: 100%; max-width: 100%;") %></a>
4
- <a href="#" class="x-navigation-control"></a>
5
- </li>
1
+ <aside class="main-sidebar">
2
+ <!-- sidebar: style can be found in sidebar.less -->
3
+ <section class="sidebar">
4
+ <!-- search form -->
5
+ <form action="#" method="get" class="sidebar-form">
6
+ <div class="input-group">
7
+ <input type="text" name="q" class="form-control" placeholder="Search...">
8
+ <span class="input-group-btn">
9
+ <button type="submit" name="search" id="search-btn" class="btn btn-flat"><i class="fa fa-search"></i>
10
+ </button>
11
+ </span>
12
+ </div>
13
+ </form>
14
+ <!-- /.search form -->
6
15
 
7
- <li class="xn-profile">
8
- <a href="<%= admin_profile_path %>" class="profile-mini">
9
- <img src="<%= current_user.the_avatar %>" alt="<%= current_user.the_name %>"/>
10
- </a>
11
- <div class="profile">
12
- <div class="profile-image">
13
- <img src="<%= current_user.the_avatar %>" alt="<%= current_user.the_name %>"/>
14
- </div>
15
- <div class="profile-data">
16
- <div class="profile-data-name"><%= current_user.the_name %></div>
17
- <div class="profile-data-title"><%= current_user.the_slogan %></div>
18
- <div class="profile-data-title"><small><%= current_user.role %></small></div>
19
- </div>
20
- <div class="profile-controls">
21
- <a href="<%= admin_profile_path %>" class="profile-control-left"><span class="fa fa-info"></span></a>
22
- <a href="<%= admin_profile_edit_path %>" class="profile-control-right"><span class="fa fa-edit"></span></a>
23
- </div>
24
- </div>
25
- </li>
26
-
27
- <li class="xn-title"><%= t('admin.sidebar.navigation')%></li>
28
-
29
- <%= raw _admin_menu_draw %>
30
-
31
- </ul>
16
+ <ul class="sidebar-menu">
17
+ <li class="header"><%= t("admin.sidebar.main_navigation") %></li>
18
+ <%= raw _admin_menu_draw %>
19
+ </ul>
20
+ </section>
21
+ <!-- /.sidebar -->
22
+ </aside>
@@ -10,7 +10,7 @@
10
10
  <meta name="viewport" content="width=device-width, initial-scale=1" />
11
11
 
12
12
  <%= stylesheet_link_tag "admin/theme-default", "admin/bootstrap/bootstrap.min.css", media: "all" %>
13
- <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
13
+ <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
14
14
  <%= javascript_include_tag "admin/login_manifest" %>
15
15
  <script>
16
16
  jQuery(function(){
@@ -33,4 +33,4 @@
33
33
  </div>
34
34
 
35
35
  </body>
36
- </html>
36
+ </html>
@@ -1,40 +1,22 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en" class="body-full-height">
3
3
  <head>
4
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
-
6
- <title><%= t('admin.login.login') %></title>
7
- <link type="image/vnd.microsoft.icon" rel="shortcut icon" href="<%= current_site.the_icon %>">
8
-
9
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
10
- <meta name="viewport" content="width=device-width, initial-scale=1" />
11
-
12
- <!--link rel="icon" href="favicon.ico" type="image/x-icon" /-->
13
-
14
- <%#= stylesheet_link_tag "admin", media: "all" %>
15
- <%= stylesheet_link_tag "admin/theme-default", "admin/bootstrap/bootstrap.min.css", media: "all" %>
16
- <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
17
-
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
7
+ <%= raw the_head({title: (content_for?(:content) ? yield(:content) : t('admin.login.login'))}, false) if current_site.present? %>
8
+ <%= stylesheet_link_tag "admin/admin-basic-manifest", media: "all" %>
9
+ <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
10
+ <%= javascript_include_tag "admin/admin-basic-manifest" %>
18
11
  </head>
19
- <body>
20
- <div class="login-container">
21
-
22
- <div class="login-box animated fadeInDown">
23
- <div class="login-logo"><%= image_tag(current_site.the_logo) %></div>
24
-
25
- <%= yield %>
26
-
27
- <div class="login-footer">
28
- <div class="pull-left">
29
-
30
- </div>
31
- <div class="pull-right">
32
-
33
- </div>
12
+ <body class="hold-transition login-page">
13
+ <div class="col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 login-box">
14
+ <div class="login-logo">
15
+ <%= link_to(image_tag(current_site.the_logo), admin_login_path) rescue "Camaleon CMS" %>
16
+ </div>
17
+ <div class="login-box-body">
18
+ <%= yield %>
34
19
  </div>
35
- </div>
36
-
37
20
  </div>
38
- <%= javascript_include_tag "admin/login_manifest" %>
39
21
  </body>
40
- </html>
22
+ </html>
@@ -11,7 +11,6 @@ module ActiveRecordExtras
11
11
  extend ActiveSupport::Concern
12
12
 
13
13
  module ClassMethods
14
-
15
14
  def update_or_create(attributes = {})
16
15
  assign_or_new(attributes).save
17
16
  end
@@ -29,4 +28,17 @@ module ActiveRecordExtras
29
28
  end
30
29
  end
31
30
 
32
- ActiveRecord::Base.send :include, ActiveRecordExtras::Relation
31
+ ActiveRecord::Base.send :include, ActiveRecordExtras::Relation
32
+
33
+ ActiveRecord::Associations::CollectionProxy.class_eval do
34
+ # order a collection by custom fields
35
+ # Arguments:
36
+ # key: (String) Custom field key
37
+ # order: (String) order direction (ASC | DESC)
38
+ # sample: Site.first.posts.sort_by_field("untitled-field-attributes", "desc")
39
+ def sort_by_field(key, order = "ASC")
40
+ # class_name = self.build.class.name
41
+ # table_name = class_name.classify.table_name
42
+ self.includes(:custom_field_values).where("#{CustomFieldsRelationship.table_name}.custom_field_slug = ? and #{CustomFieldsRelationship.table_name}.object_class = ?", key, self.build.class.name).reorder("#{CustomFieldsRelationship.table_name}.value #{order}")
43
+ end
44
+ end
@@ -17,13 +17,27 @@ Rails.application.config.assets.version = '1.0'
17
17
  # Precompile additional assets.
18
18
  # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
19
19
  # Rails.application.config.assets.precompile += %w( search.js )
20
- Rails.application.config.assets.precompile += [/.*\.js/,/.*\.css/]
20
+ # Rails.application.config.assets.precompile += [/.*\.js/,/.*\.css/]
21
21
 
22
- Rails.application.config.assets.precompile += Dir[Rails.root.join("app", "apps", "themes", "*", "assets", "**", "*.{js,css,png,jpg,gif}")]
23
- Rails.application.config.assets.precompile += Dir[Rails.root.join("app", "apps", "plugins", "*", "assets", "**", "*.{js,css,png,jpg,gif}")]
22
+ # Rails.application.config.assets.precompile += Dir[Rails.root.join("app", "apps", "themes", "*", "assets", "**", "^(?!_)*.{js,css,png,jpg,gif}")]
23
+ # Rails.application.config.assets.precompile += Dir[Rails.root.join("app", "apps", "plugins", "*", "assets", "**", "^(?!_)*.{js,css,png,jpg,gif}")]
24
+ #
25
+ # Rails.application.config.assets.precompile += Dir[File.join($camaleon_engine_dir, "app", "apps", "themes", "*", "assets", "**", "^(?!_)*.{js,css,png,jpg,gif}")]
26
+ # Rails.application.config.assets.precompile += Dir[File.join($camaleon_engine_dir, "app", "apps", "plugins", "*", "assets", "**", "^(?!_)*.{js,css,png,jpg,gif}")]
24
27
 
25
- Rails.application.config.assets.precompile += Dir[File.join($camaleon_engine_dir, "app", "apps", "themes", "*", "assets", "**", "*.{js,css,png,jpg,gif}")]
26
- Rails.application.config.assets.precompile += Dir[File.join($camaleon_engine_dir, "app", "apps", "plugins", "*", "assets", "**", "*.{js,css,png,jpg,gif}")]
28
+ # Rails.application.config.assets.precompile += %w( themes/*/assets/css/^(?!_)* )
29
+ # Rails.application.config.assets.precompile += %w( plugins/*/assets/js/^(?!_)* )
30
+ # Rails.application.config.assets.precompile += %w( themes/*/assets/[images|img]/* )
31
+ # Rails.application.config.assets.precompile += %w( plugins/*/assets/[images|img]/* )
32
+ # Rails.application.config.assets.precompile += %w( plugins/*/assets/* )
27
33
 
28
- Rails.application.config.assets.precompile += %w( themes/*/assets/images/* )
29
- Rails.application.config.assets.precompile += %w( plugins/*/assets/images/* )
34
+ # This will precompile any assets, not just JavaScript (.js, .coffee, .swf, .css, .scss)
35
+ # Rails.application.config.assets.precompile << /(^[^_\/]|\/[^_])[^\/]*$/
36
+ Rails.application.config.assets.precompile << Proc.new { |path|
37
+ content_type = MIME::Types.type_for(File.basename(path)).first.content_type rescue ""
38
+ res = false
39
+ if (path =~ /\.(css|js|svg|ttf|woff|eot|swf|pdf)\z/ || content_type.scan(/(javascript|image\/|audio|video|font)/).any?) && !path.start_with?("_")
40
+ res = true
41
+ end
42
+ res
43
+ }