camaleon_cms 2.1.1.4 → 2.1.2.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 (125) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -3
  3. data/app/apps/plugins/contact_form/contact_form_helper.rb +3 -44
  4. data/app/apps/plugins/contact_form/contact_form_html_helper.rb +1 -1
  5. data/app/apps/plugins/contact_form/views/contact_form/{_submission.html.erb → _email_content.html.erb} +0 -0
  6. data/app/apps/themes/camaleon_first/views/index.html.erb +1 -1
  7. data/app/apps/themes/default/views/category.html.erb +1 -1
  8. data/app/apps/themes/default/views/page.html.erb +1 -1
  9. data/app/apps/themes/default/views/partials/_comments.html.erb +5 -5
  10. data/app/apps/themes/default/views/post.html.erb +1 -1
  11. data/app/apps/themes/default/views/post_tag.html.erb +1 -1
  12. data/app/apps/themes/default/views/post_type.html.erb +1 -1
  13. data/app/apps/themes/default/views/search.html.erb +2 -2
  14. data/app/apps/themes/new/views/category.html.erb +1 -1
  15. data/app/apps/themes/new/views/page.html.erb +1 -1
  16. data/app/apps/themes/new/views/post_tag.html.erb +1 -1
  17. data/app/apps/themes/new/views/post_type.html.erb +1 -1
  18. data/app/apps/themes/new/views/search.html.erb +2 -2
  19. data/app/assets/javascripts/camaleon_cms/admin/_actions.js +1 -1
  20. data/app/assets/javascripts/camaleon_cms/admin/{bootstrap-datepicker.js → _bootstrap-datepicker.js} +0 -0
  21. data/app/assets/javascripts/camaleon_cms/admin/_bootstrap-select.js +7 -0
  22. data/app/assets/javascripts/camaleon_cms/admin/_custom_fields.js +9 -0
  23. data/app/assets/javascripts/camaleon_cms/admin/admin-manifest.js +2 -1
  24. data/app/assets/javascripts/camaleon_cms/admin/jquery.validate.js +3 -1
  25. data/app/assets/javascripts/camaleon_cms/admin/nav_menu.js.coffee +125 -0
  26. data/app/assets/javascripts/camaleon_cms/admin/uploader/_media_manager.js.coffee +53 -23
  27. data/app/assets/javascripts/camaleon_cms/admin/user_profile.js +23 -29
  28. data/app/assets/stylesheets/camaleon_cms/admin/{bootstrap-datepicker.css.scss → _bootstrap-datepicker.css.scss} +0 -0
  29. data/app/assets/stylesheets/camaleon_cms/admin/_bootstrap-select.css +6 -0
  30. data/app/assets/stylesheets/camaleon_cms/admin/admin-manifest.css +2 -3
  31. data/app/assets/stylesheets/camaleon_cms/admin/colorpicker.css.scss +9 -8
  32. data/app/assets/stylesheets/camaleon_cms/admin/uploader/_uploadfile.css.scss +1 -12
  33. data/app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb +102 -81
  34. data/app/controllers/camaleon_cms/admin/media_controller.rb +8 -25
  35. data/app/controllers/camaleon_cms/admin_controller.rb +1 -1
  36. data/app/controllers/camaleon_cms/camaleon_controller.rb +24 -0
  37. data/app/controllers/camaleon_cms/frontend_controller.rb +0 -1
  38. data/app/decorators/camaleon_cms/application_decorator.rb +5 -8
  39. data/app/decorators/camaleon_cms/post_decorator.rb +5 -5
  40. data/app/decorators/camaleon_cms/post_type_decorator.rb +2 -5
  41. data/app/decorators/camaleon_cms/site_decorator.rb +12 -0
  42. data/app/decorators/camaleon_cms/term_taxonomy_decorator.rb +1 -1
  43. data/app/helpers/camaleon_cms/admin/application_helper.rb +8 -1
  44. data/app/helpers/camaleon_cms/admin/custom_fields_helper.rb +17 -16
  45. data/app/helpers/camaleon_cms/admin/menus_helper.rb +1 -1
  46. data/app/helpers/camaleon_cms/camaleon_helper.rb +2 -2
  47. data/app/helpers/camaleon_cms/captcha_helper.rb +15 -14
  48. data/app/helpers/camaleon_cms/email_helper.rb +7 -3
  49. data/app/helpers/camaleon_cms/frontend/nav_menu_helper.rb +7 -1
  50. data/app/helpers/camaleon_cms/html_helper.rb +1 -1
  51. data/app/helpers/camaleon_cms/site_helper.rb +6 -15
  52. data/app/helpers/camaleon_cms/uploader_helper.rb +31 -187
  53. data/app/mailers/camaleon_cms/html_mailer.rb +4 -8
  54. data/app/models/camaleon_cms/custom_field_group.rb +1 -0
  55. data/app/models/camaleon_cms/nav_menu.rb +1 -20
  56. data/app/models/camaleon_cms/nav_menu_item.rb +13 -0
  57. data/app/models/camaleon_cms/post.rb +1 -1
  58. data/app/models/camaleon_cms/post_type.rb +8 -7
  59. data/app/models/camaleon_cms/site.rb +22 -2
  60. data/app/models/camaleon_cms/user.rb +2 -1
  61. data/app/models/concerns/camaleon_cms/custom_fields_read.rb +21 -29
  62. data/app/models/concerns/camaleon_cms/metas.rb +4 -3
  63. data/app/uploaders/camaleon_cms_aws_uploader.rb +81 -0
  64. data/app/uploaders/camaleon_cms_local_uploader.rb +84 -0
  65. data/app/uploaders/camaleon_cms_uploader.rb +146 -0
  66. data/app/views/camaleon_cms/admin/appearances/nav_menus/_custom_fields.html.erb +3 -5
  67. data/app/views/camaleon_cms/admin/appearances/nav_menus/_external_menu.html.erb +7 -6
  68. data/app/views/camaleon_cms/admin/appearances/nav_menus/_form.html.erb +13 -0
  69. data/app/views/camaleon_cms/admin/appearances/nav_menus/_left_menu_items.html.erb +77 -0
  70. data/app/views/camaleon_cms/admin/appearances/nav_menus/_menu_items.html.erb +18 -0
  71. data/app/views/camaleon_cms/admin/appearances/nav_menus/_menu_items_list.html.erb +12 -0
  72. data/app/views/camaleon_cms/admin/appearances/nav_menus/_menu_options.html.erb +21 -0
  73. data/app/views/camaleon_cms/admin/appearances/nav_menus/index.html.erb +5 -98
  74. data/app/views/camaleon_cms/admin/media/_files_list.html.erb +2 -7
  75. data/app/views/camaleon_cms/admin/media/_render_file_item.html.erb +28 -26
  76. data/app/views/camaleon_cms/admin/media/_render_folder_item.html.erb +14 -12
  77. data/app/views/camaleon_cms/admin/media/index.html.erb +23 -22
  78. data/app/views/camaleon_cms/admin/posts/_sidebar.html.erb +4 -5
  79. data/app/views/camaleon_cms/admin/posts/form.html.erb +1 -0
  80. data/app/views/camaleon_cms/admin/sessions/forgot.html.erb +6 -6
  81. data/app/views/camaleon_cms/admin/sessions/login.html.erb +7 -7
  82. data/app/views/camaleon_cms/admin/sessions/register.html.erb +8 -8
  83. data/app/views/camaleon_cms/admin/settings/_configuration_settings.html.erb +30 -6
  84. data/app/views/camaleon_cms/admin/settings/_email_settings.html.erb +26 -23
  85. data/app/views/camaleon_cms/admin/settings/_file_system_settings.html.erb +25 -20
  86. data/app/views/camaleon_cms/admin/settings/_media_settings.html.erb +10 -0
  87. data/app/views/camaleon_cms/admin/settings/custom_fields/_get_items.html.erb +2 -3
  88. data/app/views/camaleon_cms/admin/settings/custom_fields/_render.html.erb +2 -2
  89. data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_audio.html.erb +1 -1
  90. data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_colorpicker.html.erb +2 -2
  91. data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_date.html.erb +1 -1
  92. data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_field_attrs.html.erb +2 -2
  93. data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_file.html.erb +1 -1
  94. data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_image.html.erb +1 -1
  95. data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_video.html.erb +1 -1
  96. data/app/views/camaleon_cms/admin/settings/post_types/_form.html.erb +2 -2
  97. data/app/views/camaleon_cms/admin/settings/post_types/index.html.erb +1 -1
  98. data/app/views/camaleon_cms/admin/settings/site.html.erb +11 -13
  99. data/app/views/camaleon_cms/admin/settings/sites/index.html.erb +5 -3
  100. data/app/views/camaleon_cms/admin/users/form.html.erb +14 -22
  101. data/app/views/camaleon_cms/default_theme/category.html.erb +1 -1
  102. data/app/views/camaleon_cms/default_theme/partials/_comments.html.erb +5 -5
  103. data/app/views/camaleon_cms/default_theme/partials/_search_form.html.erb +1 -1
  104. data/app/views/camaleon_cms/default_theme/partials/_sidebar.html.erb +4 -4
  105. data/app/views/camaleon_cms/default_theme/post_tag.html.erb +1 -1
  106. data/app/views/camaleon_cms/default_theme/post_type.html.erb +1 -1
  107. data/app/views/camaleon_cms/default_theme/search.html.erb +1 -1
  108. data/app/views/camaleon_cms/default_theme/single.html.erb +1 -1
  109. data/config/locales/camaleon_cms/admin/en.yml +1 -1
  110. data/config/locales/camaleon_cms/admin/es.yml +36 -0
  111. data/config/locales/camaleon_cms/common.yml +4 -2
  112. data/config/routes/admin.rb +13 -7
  113. data/config/routes/frontend.rb +9 -7
  114. data/config/system.json +1 -0
  115. data/lib/camaleon_cms/engine.rb +1 -1
  116. data/lib/camaleon_cms/version.rb +1 -1
  117. data/lib/ext/string.rb +12 -0
  118. data/lib/generators/camaleon_cms/gem_plugin_generator.rb +1 -1
  119. data/lib/plugin_routes.rb +1 -1
  120. metadata +17 -24
  121. data/app/assets/javascripts/camaleon_cms/admin/bootstrap-select.js +0 -1022
  122. data/app/assets/javascripts/camaleon_cms/admin/nav-menu.js +0 -177
  123. data/app/assets/stylesheets/camaleon_cms/admin/nav-menu.css.scss +0 -33
  124. data/app/views/camaleon_cms/admin/appearances/nav_menus/_menu_form.html.erb +0 -36
  125. data/app/views/camaleon_cms/admin/appearances/nav_menus/_menu_list.html.erb +0 -22
@@ -1,4 +1,4 @@
1
1
  <div class="group-input-fields-content input-group">
2
- <input data-dimension="<%= @field.options[:dimension] %>" type="url" name="<%= @field_name %>[<%= @field.slug %>][values][]" class="form-control input-value <%= "required" if @field.options[:required].to_s.to_bool %>" <%= "readonly" if @field.options[:readonly].present? %> <%= "disabled" if @field.options[:disabled].present? %>/>
2
+ <input data-dimension="<%= @field.options[:dimension] %>" type="url" name="<%= @field_name %>[<%= @field.slug %>][values][]" class="data-error-place-parent form-control input-value <%= "required" if @field.options[:required].to_s.to_bool %>" <%= "readonly" if @field.options[:readonly].present? %> <%= "disabled" if @field.options[:disabled].present? %>/>
3
3
  <span class="input-group-addon btn_upload" onclick="load_upload_image_field(this);return false;"><i class="fa fa-upload"></i> <%= t('camaleon_cms.admin.button.upload_image')%></span>
4
4
  </div>
@@ -1,4 +1,4 @@
1
1
  <div class="group-input-fields-content input-group">
2
- <input type="url" name="<%= @field_name %>[<%= @field.slug %>][values][]" class="form-control input-value <%= "required" if @field.options[:required].to_s.to_bool %>" <%= "readonly" if @field.options[:readonly].present? %> <%= "disabled" if @field.options[:disabled].present? %>/>
2
+ <input type="url" name="<%= @field_name %>[<%= @field.slug %>][values][]" class="data-error-place-parent form-control input-value <%= "required" if @field.options[:required].to_s.to_bool %>" <%= "readonly" if @field.options[:readonly].present? %> <%= "disabled" if @field.options[:disabled].present? %>/>
3
3
  <span class="input-group-addon btn_upload" onclick="load_upload_video_field(this);return false;"><i class="fa fa-upload"></i> <%= t('camaleon_cms.admin.button.upload_video')%></span>
4
4
  </div>
@@ -48,7 +48,7 @@
48
48
  </div>
49
49
  <div class="form-group">
50
50
  <label><%= t('camaleon_cms.admin.post_type.default_layout') %> <%= raw cama_html_tooltip("#{t('camaleon_cms.admin.post_type.tooltip.default_layout')}", 'right') %></label>
51
- <%= select("meta", "default_layout", cama_get_list_layouts_files, { include_blank: true, selected: @post_type.get_option("default_layout") }, {class: 'form-control'}) %>
51
+ <%= select("meta", "default_layout", cama_get_list_layouts_files(@post_type), { include_blank: true, selected: @post_type.get_option("default_layout") }, {class: 'form-control'}) %>
52
52
  </div>
53
53
 
54
54
  <div class="form-group">
@@ -58,7 +58,7 @@
58
58
  </div>
59
59
  <div class="form-group">
60
60
  <label><%= t('camaleon_cms.admin.post_type.default_template') %> <%= raw cama_html_tooltip("#{t('camaleon_cms.admin.post_type.tooltip.default_template')}", 'right') %></label>
61
- <%= select("meta", "default_template", cama_get_list_template_files, { include_blank: true, selected: @post_type.get_option("default_template") }, {class: 'form-control'}) %>
61
+ <%= select("meta", "default_template", cama_get_list_template_files(@post_type), { include_blank: true, selected: @post_type.get_option("default_template") }, {class: 'form-control'}) %>
62
62
  </div>
63
63
 
64
64
 
@@ -31,7 +31,7 @@
31
31
  <td><%= item.the_title %></td>
32
32
  <td><%= item.the_content %></td>
33
33
  <td><%= item.the_slug %></td>
34
- <td><%= item.count %></td>
34
+ <td><%= item.the_posts.count %></td>
35
35
  <td>
36
36
  <%= link_to raw('<i class="fa fa-eye"></i>'), item.the_url, class: "btn btn-primary btn-xs", title: "#{t('camaleon_cms.common.visit')}", target: '_blank' %>
37
37
  <%= link_to raw('<i class="fa fa-pencil"></i>'), {action: :edit, id: item.id }, class: "btn btn-default btn-xs cama_ajax_request", title: "#{t('camaleon_cms.admin.button.edit')}" %>
@@ -31,12 +31,9 @@
31
31
  <li class="<%= "active" if "seo" == params[:tab] %>">
32
32
  <a data-toggle="tab" role="tab" href="#tab-seo_settings" aria-expanded="false"><%= t('camaleon_cms.admin.settings.seo_setting') %></a>
33
33
  </li>
34
- <li class="<%= "active" if "email" == params[:tab] %>">
35
- <a data-toggle="tab" role="tab" href="#tab-email_settings" aria-expanded="false"><%= t('camaleon_cms.admin.settings.email_settings') %></a>
36
- </li>
37
- <li class="<%= 'active' if 'filesystem' == params[:tab] %>">
38
- <a data-toggle="tab" role="tab" href="#tab-filesystem_settings" aria-expanded="false"><%= t('camaleon_cms.admin.settings.filesystem_settings') %></a>
39
- </li>
34
+ <li class="<%= "active" if "email" == params[:tab] %>"><a data-toggle="tab" role="tab" href="#tab-email_settings" aria-expanded="false"><%= t('camaleon_cms.admin.settings.email_settings') %></a></li>
35
+ <li class="<%= 'active' if 'filesystem' == params[:tab] %>"><a data-toggle="tab" role="tab" href="#tab-filesystem_settings" aria-expanded="false"><%= t('camaleon_cms.admin.settings.filesystem_settings', default: 'Filesystem Settings ') %></a></li>
36
+ <li class="<%= 'active' if 'media' == params[:tab] %>"><a data-toggle="tab" role="tab" href="#tab-media_settings" aria-expanded="false"><%= t('camaleon_cms.admin.settings.media_settings', default: 'Media Settings') %></a></li>
40
37
  </ul>
41
38
  <div class="panel-body tab-content row">
42
39
 
@@ -44,8 +41,8 @@
44
41
 
45
42
  <div id="tab-information" class="tab-pane <%= "active" if ["", nil].include?(params[:tab]) %> ">
46
43
  <div class="form-group">
47
- <%= f.label t('camaleon_cms.admin.table.slug') %><br>
48
- <small><%= t('camaleon_cms.admin.sites.message.enter_key_domain') %></small>
44
+ <%= f.label t('camaleon_cms.admin.button.domain', default: 'Domain') %><br>
45
+ <small><%= t('camaleon_cms.admin.sites.message.enter_key_domain', default: 'Enter your domain here') %></small>
49
46
  <br>
50
47
  <%= f.text_field :slug, :class => "form-control required" %>
51
48
  </div>
@@ -66,7 +63,7 @@
66
63
  <%= hidden_field :options, :icon, :class => "form-control unput_upload", :value => @site.get_option("icon"), "data-label" => "#{t('camaleon_cms.admin.button.upload_icon')}", "data-ext" => "ico" %>
67
64
  </div>
68
65
  </div>
69
- <%= render "configuration_settings" %>
66
+ <%= render "configuration_settings", f: f %>
70
67
  <% if groups.present? %>
71
68
  <div id="tab-other-configuration" class="<%= "active" if "other_config" == params[:tab] %> tab-pane ">
72
69
  <%= render partial: "camaleon_cms/admin/settings/custom_fields/render", locals: {record: @site, field_groups: groups} %>
@@ -85,6 +82,7 @@
85
82
  <%= render "seo_settings", f: f %>
86
83
  <%= render "email_settings", f: f %>
87
84
  <%= render "file_system_settings", f: f %>
85
+ <%= render "media_settings", f: f %>
88
86
  </div>
89
87
  <div class="panel-footer">
90
88
  <button class="btn btn-primary pull-right" type="submit"><%= t('camaleon_cms.admin.button.submit') %></button>
@@ -102,17 +100,17 @@
102
100
  // smtp
103
101
  panel.find("#options_mailer_enabled").change(function () {
104
102
  if (!$(this).is(":checked"))
105
- panel.find("#tab-email_settings").find("input, select, textarea").not(this).not("input[type='hidden']").attr("disabled", true)
103
+ panel.find("#tab-email_settings .toggleable").find("input, select, textarea").not(this).not("input[type='hidden']").attr("disabled", true)
106
104
  else
107
- panel.find("#tab-email_settings").find("input, select, textarea").not(this).removeAttr("disabled")
105
+ panel.find("#tab-email_settings .toggleable").find("input, select, textarea").not(this).removeAttr("disabled")
108
106
  }).trigger("change");
109
107
 
110
108
  // filesystem
111
109
  panel.find("#options_filesystem_type").change(function () {
112
110
  if (!$(this).is(":checked"))
113
- panel.find("#tab-filesystem_settings").find("input, select, textarea").not(this).not("input[type='hidden']").attr("disabled", true)
111
+ panel.find("#tab-filesystem_settings .toggleable").find("input, select, textarea").not(this).not("input[type='hidden']").attr("disabled", true)
114
112
  else
115
- panel.find("#tab-filesystem_settings").find("input, select, textarea").not(this).removeAttr("disabled")
113
+ panel.find("#tab-filesystem_settings .toggleable").find("input, select, textarea").not(this).removeAttr("disabled")
116
114
  $(this).removeAttr("disabled");
117
115
  }).trigger("change");
118
116
  });
@@ -21,6 +21,7 @@
21
21
  <th><%= t('camaleon_cms.admin.table.slug') %></th>
22
22
  <th><%= t('camaleon_cms.admin.table.description') %></th>
23
23
  <th><%= t('camaleon_cms.admin.table.default') %></th>
24
+ <th><%= t('camaleon_cms.admin.table.status') %></th>
24
25
  <th><%= t('camaleon_cms.admin.table.actions') %></th>
25
26
  <th></th>
26
27
  </tr>
@@ -33,10 +34,11 @@
33
34
  <td><%= f.slug %></td>
34
35
  <td><%= f.the_description %></td>
35
36
  <td><%= (f.main_site?)? true : false %></td>
37
+ <td><%= f.the_status %></td>
36
38
  <td>
37
- <%= link_to raw('<i class="fa fa-pencil"></i>'), {action: :edit, id: f.id }, class: "btn btn-default btn-xs cama_ajax_request", title: "#{t('camaleon_cms.admin.button.edit')}" %>
38
- <%= link_to raw('<i class="fa fa-times"></i>'), { action: :destroy, id: f.id },
39
- method: :delete, data: { confirm: t('camaleon_cms.admin.message.delete_item') }, class: "btn btn-danger btn-xs cama_ajax_request", title: "#{t('camaleon_cms.admin.button.delete')}" unless current_site.id == f.id %>
39
+ <%= link_to raw('<i class="fa fa-pencil"></i>'), {action: :edit, id: f.id }, class: "btn btn-default btn-xs cama_ajax_request", title: "#{t('camaleon_cms.admin.button.edit')}" %>
40
+ <%= link_to raw('<i class="fa fa-times"></i>'), { action: :destroy, id: f.id },
41
+ method: :delete, data: { confirm: t('camaleon_cms.admin.message.delete_item') }, class: "btn btn-danger btn-xs cama_ajax_request", title: "#{t('camaleon_cms.admin.button.delete')}" unless current_site.id == f.id %>
40
42
  </td>
41
43
  <td>
42
44
  <a target="_blank" class="btn btn-info btn-xs" href="<%= f.the_url %>" target="_blank" title="<%= t("camaleon_cms.common.visit") %>"><i class="fa fa-eye"></i></a>
@@ -67,7 +67,7 @@
67
67
  </div>
68
68
  <% if !@user.new_record? %>
69
69
  <div class="">
70
- <a href="#" class="btn btn-danger btn-block btn-rounded" data-toggle="modal" data-target="#modal_change_password"><%= t('camaleon_cms.admin.button.change_password') %></a>
70
+ <a href="#" class="btn btn-warning btn-block btn-rounded" data-toggle="modal" data-target="#modal_change_password"><%= t('camaleon_cms.admin.button.change_password') %></a>
71
71
  </div>
72
72
  <% end %>
73
73
 
@@ -150,27 +150,19 @@
150
150
  <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only"><%= t('camaleon_cms.admin.button.close') %></span></button>
151
151
  <h4 class="modal-title" id="smallModalHead"><%= t('camaleon_cms.admin.button.change_photo') %></h4>
152
152
  </div>
153
- <form id="cp_crop" method="post" action="<%= crop_cama_admin_media_path({saved_avatar: @user.id}) %>">
154
- <div class="modal-body">
155
- <div class="text-center" id="cp_target"><%= t('camaleon_cms.admin.message.change_photo') %></div>
156
- <input type="hidden" name="cp_img_path" id="cp_img_path"/>
157
- <input type="hidden" name="ic_x" id="ic_x"/>
158
- <input type="hidden" name="ic_y" id="ic_y"/>
159
- <input type="hidden" name="ic_w" id="ic_w"/>
160
- <input type="hidden" name="ic_h" id="ic_h"/>
161
- <input type="hidden" name="ic_resize" id="ic_resize"/>
162
- </div>
163
- </form>
164
- <div class="modal-body form-horizontal form-group-separated">
165
- <div class="form-group">
166
- <label class="col-md-4 control-label"><%= t('camaleon_cms.admin.users.new_photo') %></label>
167
- <div class="col-md-4">
168
- <a id="cp_photo" class="btn btn-info" href="#"><%= t('camaleon_cms.admin.button.select_file') %></a>
169
- </div>
170
- </div>
171
- </div>
153
+ <%= form_tag crop_cama_admin_media_path({saved_avatar: @user.id}), id: 'cp_crop', class: 'modal-body', style: 'min-height: 200px; max-height: 400px; overflow: auto;' do %>
154
+ <input type="hidden" name="cp_img_path" id="cp_img_path"/>
155
+ <input type="hidden" name="ic_x" id="ic_x"/>
156
+ <input type="hidden" name="ic_y" id="ic_y"/>
157
+ <input type="hidden" name="ic_w" id="ic_w"/>
158
+ <input type="hidden" name="ic_h" id="ic_h"/>
159
+ <input type="hidden" name="ic_resize" id="ic_resize"/>
160
+ <div id="cp_target"></div>
161
+ <% end %>
162
+
172
163
  <div class="modal-footer">
173
- <button type="button" class="btn btn-success disabled" id="cp_accept"><%= t('camaleon_cms.admin.button.accept') %></button>
164
+ <a id="cp_photo" class="pull-left btn btn-link" href="#"><%= t('camaleon_cms.admin.users.new_photo') %></a>
165
+ <button type="button" class="btn btn-success" disabled="" id="cp_accept"><%= t('camaleon_cms.admin.button.accept') %></button>
174
166
  <button type="button" class="btn btn-default" data-dismiss="modal"><%= t('camaleon_cms.admin.button.close') %></button>
175
167
  </div>
176
168
  </div>
@@ -204,5 +196,5 @@
204
196
  <!-- EOF MODALS -->
205
197
 
206
198
 
207
- <% add_asset_library('form_ajax', 'cropper') %>
199
+ <% add_asset_library('cropper') %>
208
200
  <%= javascript_include_tag "camaleon_cms/admin/user_profile" %>
@@ -17,7 +17,7 @@
17
17
  <%= render partial: 'partials/post_list_item', locals: {post: post.decorate} %>
18
18
  <% end %>
19
19
  </div>
20
- <%= content_tag("div", raw(ct('no_contents_found')), class: "alert alert-warning") if @posts.empty? %>
20
+ <%= content_tag("div", raw(ct('no_contents_found', default: 'No contents found')), class: "alert alert-warning") if @posts.empty? %>
21
21
  <%= will_paginate @posts, renderer: BootstrapPagination::Rails if @posts.present? %>
22
22
 
23
23
  </article>
@@ -2,7 +2,7 @@
2
2
  <% if post.the_comments.count > 0 %>
3
3
  <div class="row">
4
4
  <div class="col-md-12">
5
- <h2 class="page-header"><%= ct('comments')%></h2>
5
+ <h2 class="page-header"><%= ct('comments', default: 'Comments')%></h2>
6
6
  <section class="comment-list">
7
7
  <%= render partial: "partials/comments_list", locals: { comments: post.the_comments, children: "" } %>
8
8
  </section>
@@ -12,21 +12,21 @@
12
12
 
13
13
  <div class="row">
14
14
  <div class="col-md-12 col-sm-12">
15
- <h3><%= ct('comment_new')%></h3>
15
+ <h3><%= ct('comment_new', default: 'New Comment')%></h3>
16
16
  <% if signin? %>
17
17
  <%= form_for post, url:{action: :save_comment, post_id: post.id}, html: {method: "post", class: "form-comment"} do |f|%>
18
18
  <%= render partial: "camaleon_cms/flash_messages" %>
19
19
  <input type="hidden" name="post_comment[post_id]" value="<%= post.id %>">
20
20
  <input type="hidden" name="slug" value="<%= post.slug %>">
21
21
  <div class="form-group">
22
- <textarea id="textarea_comments" name="post_comment[content]" class="form-control counted" placeholder="<%= ct('comment')%>"></textarea>
22
+ <textarea id="textarea_comments" name="post_comment[content]" class="form-control counted" placeholder="<%= ct('comment', default: 'Here your comment')%>"></textarea>
23
23
  </div>
24
24
  <div class="form-group text-right">
25
- <button type="submit" class="btn btn-info"><%= ct('comment')%></button>
25
+ <button type="submit" class="btn btn-info"><%= ct('comment', default: 'Comment')%></button>
26
26
  </div>
27
27
  <% end %>
28
28
  <% else %>
29
- <div class="panel-login-comment"><%= ct('comment_msg')%> <a class="link-login-comment" href="<%= cama_admin_path %>"><%= ct('login')%></a></div>
29
+ <div class="panel-login-comment"><%= ct('comment_msg', default: 'You must be logged in to post a comment')%> <a class="link-login-comment" href="<%= cama_admin_path %>"><%= ct('login', default: 'Login')%></a></div>
30
30
  <% end %>
31
31
  </div>
32
32
  </div>
@@ -1,6 +1,6 @@
1
1
  <%= form_tag(cama_search_path, :method => "get", :class => "form-search form-horizontal") do %>
2
2
  <div class="input-group">
3
- <input type="text" name="q" class="form-control" placeholder="<%= ct("search") %>...">
3
+ <input type="text" name="q" class="form-control" placeholder="<%= ct("search", default: 'Search here') %>...">
4
4
  <div class="input-group-btn">
5
5
  <button type="submit" class="btn"><i class="fa fa-search"></i></button>
6
6
  </div>
@@ -9,7 +9,7 @@
9
9
  <% categories = post.the_categories.decorate %>
10
10
  <% if categories.present? %>
11
11
  <div class="panel panel-default">
12
- <div class="panel-heading"><%= ct("categories") %></div>
12
+ <div class="panel-heading"><%= ct("categories", default: 'Categories') %></div>
13
13
  <div class="panel-body">
14
14
  <ul>
15
15
  <% categories.each do |cat| %>
@@ -22,7 +22,7 @@
22
22
 
23
23
  <div class="panel panel-default">
24
24
  <div class="panel-heading">
25
- <%= ct("latest_articles") %>
25
+ <%= ct("latest_articles", default: 'Latest Articles') %>
26
26
  </div>
27
27
  <div class="panel-body">
28
28
  <ul>
@@ -36,7 +36,7 @@
36
36
  <% tags = post.the_tags.decorate %>
37
37
  <% if tags.present? %>
38
38
  <div class="panel panel-default">
39
- <div class="panel-heading"><%= ct("post_tag_list") %></div>
39
+ <div class="panel-heading"><%= ct("post_tag_list", default: 'Tags') %></div>
40
40
  <div class="panel-body">
41
41
  <% tags.each do |post_tag| %>
42
42
  <a class="btn btn-default btn-xs" href="<%= post_tag.the_url %>"><%= post_tag.the_title %></a>
@@ -48,7 +48,7 @@
48
48
  <!-- custom fields -->
49
49
  <% if post.render_fields.present? %>
50
50
  <div class="panel panel-default">
51
- <div class="panel-heading"><%= ct("extra_attributes") %></div>
51
+ <div class="panel-heading"><%= ct("extra_attributes", default: 'Extra Attributes') %></div>
52
52
  <div class="panel-body">
53
53
  <%= raw post.render_fields %>
54
54
  </div>
@@ -11,7 +11,7 @@
11
11
  <%= render partial: 'partials/post_list_item', locals: {post: post.decorate} %>
12
12
  <% end %>
13
13
  </div>
14
- <%= content_tag("div", raw(ct('no_contents_found')), class: "alert alert-warning") if @posts.empty? %>
14
+ <%= content_tag("div", raw(ct('no_contents_found', default: 'No contents found')), class: "alert alert-warning") if @posts.empty? %>
15
15
  <%= will_paginate @posts, renderer: BootstrapPagination::Rails if @posts.present? %>
16
16
 
17
17
  </article>
@@ -17,7 +17,7 @@
17
17
  <%= render partial: 'partials/post_list_item', locals: {post: post.decorate} %>
18
18
  <% end %>
19
19
  </div>
20
- <%= content_tag("div", raw(ct('no_contents_found')), class: "alert alert-warning") if @posts.empty? %>
20
+ <%= content_tag("div", raw(ct('no_contents_found', default: 'No contents found.')), class: "alert alert-warning") if @posts.empty? %>
21
21
  <%= will_paginate @posts, renderer: BootstrapPagination::Rails if @posts.present? %>
22
22
 
23
23
  </article>
@@ -8,6 +8,6 @@
8
8
  <%= render partial: 'partials/post_list_item', locals: {post: post.decorate} %>
9
9
  <% end %>
10
10
  </div>
11
- <%= content_tag("div", raw(ct('no_contents_found')), class: "alert alert-warning") if @posts.empty? %>
11
+ <%= content_tag("div", raw(ct('no_contents_found', default: 'No contents found')), class: "alert alert-warning") if @posts.empty? %>
12
12
  <%= will_paginate @posts, renderer: BootstrapPagination::Rails if @posts.present? %>
13
13
  </article>
@@ -12,7 +12,7 @@
12
12
  <!-- custom fields -->
13
13
  <% if @post.render_fields.present? %>
14
14
  <hr>
15
- <h4><%= ct("extra_attributes") %></h4>
15
+ <h4><%= ct("extra_attributes", default: 'Extra Attributes') %></h4>
16
16
  <%= raw @post.render_fields %>
17
17
  <% end %>
18
18
 
@@ -314,7 +314,7 @@ en:
314
314
  activate_login_social_networks: 'Activate Login Social Networks'
315
315
  add_field_group: 'Add Field Group'
316
316
  admin_language: 'Admin language'
317
- allow_user_registration: 'Allow user registration'
317
+ allow_user_registration: 'Allow user registration?'
318
318
  available_fields: 'Available fields'
319
319
  available_languages: 'Available languages'
320
320
  categories_in: 'Categories in'
@@ -2,6 +2,7 @@
2
2
  es:
3
3
  camaleon_cms:
4
4
  welcome_message: "Bienvenido a Camaleon CMS"
5
+ captcha_placeholder: 'Por favor ingrese el texto de la imagen'
5
6
  admin:
6
7
  request_error_message: "Un error a ocurrido, por favor contacte con el administrador."
7
8
  button:
@@ -9,6 +10,7 @@ es:
9
10
  add_new_field: 'Añadir nuevo campo'
10
11
  add_option: 'Añadir opción'
11
12
  add_menu: 'Añadir Menú'
13
+ update_menu: 'Actualizar Menú'
12
14
  add_widget: 'Añadir Widget'
13
15
  accept: 'Aceptar'
14
16
  actived: 'Activado'
@@ -331,11 +333,15 @@ es:
331
333
  author: "Nombre de Autor"
332
334
  seo_setting: "Posicionamiento Web."
333
335
  email_settings: "Configuración de Correo (SMTP)"
336
+ media_settings: "Configuración de Multimedia"
334
337
  filesystem_type: "Tipo de sistema de ficheros"
338
+ filesystem_max_file_size: "Tamaño Max. a Subir [MB]"
339
+ filesystem_thumb_size: "Tamaño de miniaturas [100x100]"
335
340
  filesystem_s3_access_key: "AWS S3 Clave de acceso"
336
341
  filesystem_s3_secret_key: "AWS S3 Contraseña de acceso"
337
342
  filesystem_s3_bucket_name: "AWS S3 nombre del bucket"
338
343
  filesystem_cdn: "CDN url"
344
+ filesystem_s3_cloudfront: 'Cloudfront URL'
339
345
  security:
340
346
  captcha_user_register: "¿Activar captcha en el registro de usuarios?"
341
347
  need_validate_email: "¿Es necesario validar el email?"
@@ -365,6 +371,12 @@ es:
365
371
  add_custom_field_widget: 'Agregar Campo Personalizado en Widgets '
366
372
  untitled: 'Intitulado'
367
373
  where_display_group: 'Dónde mostrar este grupo'
374
+ configuration_settings:
375
+ maintenance_page: 'Página a mostrar para mantenimiento'
376
+ inactive_page: 'Página a mostrar para inactivo'
377
+ status: 'Estado del Sitio'
378
+ default_page: 'Por defecto'
379
+ maintenance_ips: "IP's de Mantenimiento (Separado por comas)"
368
380
  sidebar:
369
381
  appearance: 'Apariencia'
370
382
  comments: 'Comentarios'
@@ -606,3 +618,27 @@ es:
606
618
  error_created: 'No se ha creado el Widget.'
607
619
  error_updated: 'No se ha actualizado el Widget.'
608
620
  not_registered_widgets: 'No existen widgets registrados'
621
+ appearances:
622
+ nav_menus:
623
+ menu_items:
624
+ edit_menu_item: 'Editar Menú Item'
625
+ edit_custom_settings: 'Editar Configuración'
626
+ update:
627
+ updated_menu: 'El menú fué actualizado'
628
+ create:
629
+ created_menu: 'El menú fué creado'
630
+ destroy:
631
+ deleted_menu: 'El menú fué eliminado'
632
+ menu_options:
633
+ edit_menu: 'Editar Menú'
634
+ delete_menu: 'Eliminar Menú'
635
+ create_menu: 'Crear Menú'
636
+ external_menu:
637
+ root_alert_info: 'Tu puedes usar <b>root_url</b> para url de inicio'
638
+
639
+ models:
640
+ site:
641
+ status_options:
642
+ active: 'Activo'
643
+ inactive: 'In activo'
644
+ maintenance: 'En Mantenimiento'
@@ -9,7 +9,7 @@ en:
9
9
  send: "Send"
10
10
  login: "Login"
11
11
  logout: "Logout"
12
- confirm: "Are you confirm?"
12
+ confirm: "Are you sure?"
13
13
  register: "Register"
14
14
  proceted_article: 'Protected article'
15
15
 
@@ -75,6 +75,8 @@ es:
75
75
  logout: "Salir"
76
76
  confirm: "Estas seguro?"
77
77
  register: "Registrarse"
78
+ reload: 'Recargar'
79
+ clear_cache: 'Limpiar Caché'
78
80
 
79
81
  comment_msg: "Tu debes estar logeado para comentar"
80
82
  comment: "Comentario"
@@ -106,7 +108,7 @@ es:
106
108
  next: "Siguiente"
107
109
  prev: "Anterior"
108
110
  current: "Actual"
109
- search: "Búsqueda"
111
+ search: "Buscar"
110
112
  file_format_error: "Formato de archivo no permitido"
111
113
  file_size_exceeded: "Tamaño excedido"
112
114
 
@@ -1,7 +1,7 @@
1
1
  Rails.application.routes.draw do
2
2
  scope PluginRoutes.system_info["relative_url_root"] do
3
3
  scope module: "camaleon_cms", as: "cama" do
4
- namespace :admin do
4
+ namespace :admin, path: PluginRoutes.system_info["admin_path_name"] do
5
5
  get '/' => :dashboard
6
6
  get 'dashboard'
7
7
  get 'ajax'
@@ -86,11 +86,18 @@ Rails.application.routes.draw do
86
86
  match "load_data", via: [:get, :post, :patch]
87
87
  end
88
88
  end
89
+ resources :nav_menus, except: :show do
90
+ get 'item_delete/:id' => :delete_menu_item, as: :delete_menu_item
91
+ get 'custom_settings/:id' => :custom_settings, as: :custom_settings
92
+ post 'save_custom_settings/:id' => :save_custom_settings, as: :save_custom_settings
93
+ get 'edit_menu_item/:id' => :edit_menu_item, as: :edit_menu_item
94
+ post 'update_menu_item/:id' => :update_menu_item, as: :update_menu_item
95
+ post 'add_items' => :add_items, as: :add_items
96
+ post 'reorder_items' => :reorder_items, as: :reorder_items
97
+ end
89
98
 
90
- namespace :nav_menus do
91
- match 'menu', via: [:get, :delete]
92
- post 'save'
93
- get 'form'
99
+ namespace :nav_menus do # fix for previous nav menu url
100
+ get 'menu' => :index
94
101
  end
95
102
 
96
103
  namespace :widgets do
@@ -116,7 +123,6 @@ Rails.application.routes.draw do
116
123
  resources :media, only: [:index] do
117
124
  match 'crop', via: :all, on: :collection
118
125
  get "ajax", on: :collection
119
- get 'search', on: :collection
120
126
  post "upload", on: :collection
121
127
  post "actions", on: :collection
122
128
  end
@@ -128,7 +134,7 @@ Rails.application.routes.draw do
128
134
  # fix to catch route not found error
129
135
  scope PluginRoutes.system_info["relative_url_root"] do
130
136
  scope module: "camaleon_cms", as: "cama" do
131
- namespace :admin do
137
+ namespace :admin, path: PluginRoutes.system_info["admin_path_name"] do
132
138
  get "*path" => 'admin#render_error', defaults: {error_msg: "Invalid route"}
133
139
  end
134
140
  end