camaleon_cms 2.0.1 → 2.0.2

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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/apps/themes/new/views/index.html.erb +1 -0
  4. data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.eot +0 -0
  5. data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.svg +273 -214
  6. data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.ttf +0 -0
  7. data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.woff +0 -0
  8. data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.woff2 +0 -0
  9. data/app/assets/javascripts/camaleon_cms/admin/_libraries.js +11 -2
  10. data/app/assets/javascripts/camaleon_cms/admin/_post.js +1 -1
  11. data/app/assets/stylesheets/camaleon_cms/bootstrap.min.css.scss +6796 -2
  12. data/app/controllers/camaleon_cms/admin/appearances/widgets/assign_controller.rb +13 -4
  13. data/app/controllers/camaleon_cms/admin/appearances/widgets/main_controller.rb +8 -4
  14. data/app/controllers/camaleon_cms/admin/appearances/widgets/sidebar_controller.rb +8 -3
  15. data/app/controllers/camaleon_cms/admin/posts/drafts_controller.rb +11 -18
  16. data/app/controllers/camaleon_cms/admin/posts_controller.rb +16 -17
  17. data/app/controllers/camaleon_cms/admin/sessions_controller.rb +10 -16
  18. data/app/controllers/camaleon_cms/admin/settings/custom_fields_controller.rb +14 -10
  19. data/app/controllers/camaleon_cms/admin/settings/post_types_controller.rb +10 -7
  20. data/app/controllers/camaleon_cms/admin/settings/sites_controller.rb +2 -1
  21. data/app/controllers/camaleon_cms/frontend_controller.rb +8 -9
  22. data/app/controllers/concerns/camaleon_cms/frontend_concern.rb +1 -1
  23. data/app/decorators/camaleon_cms/application_decorator.rb +1 -1
  24. data/app/decorators/camaleon_cms/custom_field_decorator.rb +0 -6
  25. data/app/decorators/camaleon_cms/metas_decorator_methods.rb +1 -1
  26. data/app/decorators/camaleon_cms/plugin_decorator.rb +11 -0
  27. data/app/decorators/camaleon_cms/post_decorator.rb +0 -11
  28. data/app/decorators/camaleon_cms/post_type_decorator.rb +1 -1
  29. data/app/decorators/camaleon_cms/site_decorator.rb +4 -2
  30. data/app/decorators/camaleon_cms/term_taxonomy_decorator.rb +12 -16
  31. data/app/decorators/camaleon_cms/user_decorator.rb +0 -6
  32. data/app/helpers/camaleon_cms/admin/menus_helper.rb +1 -1
  33. data/app/helpers/camaleon_cms/camaleon_helper.rb +1 -1
  34. data/app/helpers/camaleon_cms/frontend/nav_menu_helper.rb +2 -1
  35. data/app/helpers/camaleon_cms/html_helper.rb +14 -1
  36. data/app/helpers/camaleon_cms/session_helper.rb +32 -0
  37. data/app/helpers/camaleon_cms/short_code_helper.rb +2 -2
  38. data/app/helpers/camaleon_cms/site_helper.rb +3 -4
  39. data/app/helpers/camaleon_cms/uploader_helper.rb +7 -5
  40. data/app/mailers/camaleon_cms/html_mailer.rb +4 -0
  41. data/app/models/camaleon_cms/ability.rb +9 -14
  42. data/app/models/camaleon_cms/category.rb +1 -2
  43. data/app/models/camaleon_cms/custom_field_group.rb +1 -1
  44. data/app/models/camaleon_cms/plugin.rb +4 -1
  45. data/app/models/camaleon_cms/post.rb +7 -0
  46. data/app/models/camaleon_cms/post_default.rb +7 -0
  47. data/app/models/camaleon_cms/post_type.rb +6 -4
  48. data/app/models/camaleon_cms/site.rb +2 -1
  49. data/app/models/camaleon_cms/term_taxonomy.rb +1 -0
  50. data/app/models/concerns/camaleon_cms/custom_fields_read.rb +8 -6
  51. data/app/models/concerns/camaleon_cms/metas.rb +2 -2
  52. data/app/views/camaleon_cms/admin/appearances/nav_menus/_custom_menus.html.erb +1 -1
  53. data/app/views/camaleon_cms/admin/appearances/themes/index.html.erb +1 -2
  54. data/app/views/camaleon_cms/admin/posts/_sidebar.html.erb +2 -2
  55. data/app/views/camaleon_cms/admin/posts/form.html.erb +1 -1
  56. data/app/views/camaleon_cms/admin/posts/index.html.erb +2 -1
  57. data/app/views/camaleon_cms/admin/sessions/login.html.erb +1 -1
  58. data/app/views/camaleon_cms/admin/settings/_file_system_settings.html.erb +4 -0
  59. data/app/views/camaleon_cms/admin/settings/custom_fields/index.html.erb +1 -1
  60. data/app/views/camaleon_cms/admin/settings/site.html.erb +11 -4
  61. data/app/views/camaleon_cms/default_theme/category.html.erb +1 -1
  62. data/app/views/camaleon_cms/default_theme/index.html.erb +1 -1
  63. data/app/views/camaleon_cms/default_theme/layouts/cama_ajax.html.erb +1 -0
  64. data/app/views/camaleon_cms/default_theme/partials/_categories_list.html.erb +1 -1
  65. data/app/views/camaleon_cms/default_theme/partials/_post_list_item.html.erb +1 -1
  66. data/app/views/camaleon_cms/default_theme/partials/_sidebar.html.erb +1 -1
  67. data/app/views/camaleon_cms/default_theme/post_type.html.erb +1 -1
  68. data/app/views/camaleon_cms/default_theme/single.html.erb +1 -1
  69. data/app/views/layouts/camaleon_cms/admin.html.erb +3 -0
  70. data/config/initializers/action_view.rb +6 -2
  71. data/config/locales/camaleon_cms/admin/en.yml +1 -0
  72. data/config/routes/frontend.rb +11 -8
  73. data/config/system.json +1 -1
  74. data/lib/camaleon_cms/engine.rb +1 -1
  75. data/lib/camaleon_cms/version.rb +1 -1
  76. data/lib/generators/camaleon_cms/gem_plugin_template/config/camaleon_plugin.json +0 -4
  77. data/lib/generators/camaleon_cms/gem_plugin_template/config/custom_models.rb +3 -0
  78. data/lib/generators/camaleon_cms/theme_template/app/apps/themes/my_theme/views/admin/settings.html.erb +1 -3
  79. data/lib/plugin_routes.rb +4 -4
  80. data/lib/tasks/camaleon_cms/rspec_test.rake +2 -1
  81. metadata +7 -13
  82. data/app/apps/themes/new/data.json +0 -1
  83. data/app/apps/themes/new/views/partials/_breadcrumb.html.erb +0 -10
  84. data/app/apps/themes/new/views/partials/_categories_list.html.erb +0 -23
  85. data/app/apps/themes/new/views/partials/_comments.html.erb +0 -32
  86. data/app/apps/themes/new/views/partials/_comments_list.html.erb +0 -21
  87. data/app/apps/themes/new/views/partials/_flash_messages.html.erb +0 -26
  88. data/app/apps/themes/new/views/partials/_forms.html.erb +0 -19
  89. data/app/apps/themes/new/views/partials/_post_list_item.html.erb +0 -13
  90. data/app/apps/themes/new/views/partials/_search_form.html.erb +0 -9
  91. data/app/apps/themes/new/views/partials/_sidebar.html.erb +0 -60
@@ -8,16 +8,16 @@
8
8
  =end
9
9
  class CamaleonCms::Admin::Appearances::Widgets::AssignController < CamaleonCms::AdminController
10
10
  before_action :check_permission_role
11
+ before_action :find_sidebar
12
+ before_action :find_assigned_sidebar, only: [:update, :destroy]
13
+
11
14
  def new
12
- @sidebar = current_site.sidebars.find(params[:sidebar_id])
13
15
  @widget = current_site.widgets.find(params[:widget_id])
14
16
  @assigned = @sidebar.assigned.create!({title: "Default", widget_id: @widget.id})
15
17
  render partial: "form", locals: {assigned: @assigned, widget: @widget, sidebar: @sidebar}, layout: "camaleon_cms/admin/ajax"
16
18
  end
17
19
 
18
20
  def update
19
- @sidebar = current_site.sidebars.find(params[:sidebar_id])
20
- @assigned = @sidebar.assigned.find(params[:id])
21
21
  if @assigned.update(params[:assign])
22
22
  @assigned.set_field_values(params[:field_options])
23
23
  flash[:notice] = t('camaleon_cms.admin.widgets.assign.updated')
@@ -28,11 +28,20 @@ class CamaleonCms::Admin::Appearances::Widgets::AssignController < CamaleonCms::
28
28
  end
29
29
 
30
30
  def destroy
31
- current_site.sidebars.find(params[:sidebar_id]).assigned.find(params[:id]).destroy
31
+ @assigned.destroy
32
32
  render inline: ''
33
33
  end
34
34
 
35
35
  private
36
+
37
+ def find_sidebar
38
+ @sidebar = current_site.sidebars.find(params[:sidebar_id])
39
+ end
40
+
41
+ def find_assigned_sidebar
42
+ @assigned = @sidebar.assigned.find(params[:id])
43
+ end
44
+
36
45
  def check_permission_role
37
46
  authorize! :manager, :widgets
38
47
  end
@@ -8,6 +8,7 @@
8
8
  =end
9
9
  class CamaleonCms::Admin::Appearances::Widgets::MainController < CamaleonCms::AdminController
10
10
  before_action :check_permission_role
11
+ before_action :set_widgets, only: [:edit, :update, :destroy]
11
12
  add_breadcrumb I18n.t("camaleon_cms.admin.sidebar.appearance")
12
13
  add_breadcrumb I18n.t("camaleon_cms.admin.sidebar.widgets")
13
14
 
@@ -21,7 +22,6 @@ class CamaleonCms::Admin::Appearances::Widgets::MainController < CamaleonCms::Ad
21
22
  end
22
23
 
23
24
  def edit
24
- @widget = current_site.widgets.find(params[:id])
25
25
  new
26
26
  end
27
27
 
@@ -37,7 +37,6 @@ class CamaleonCms::Admin::Appearances::Widgets::MainController < CamaleonCms::Ad
37
37
  end
38
38
 
39
39
  def update
40
- @widget = current_site.widgets.find(params[:id])
41
40
  if @widget.update!(params[:widget_main])
42
41
  flash[:notice] = t('camaleon_cms.admin.widgets.message.updated')
43
42
  else
@@ -47,13 +46,18 @@ class CamaleonCms::Admin::Appearances::Widgets::MainController < CamaleonCms::Ad
47
46
  end
48
47
 
49
48
  def destroy
50
- @widget = current_site.widgets.find(params[:id]).destroy!
49
+ @widget = @widget.destroy!
51
50
  flash[:notice] = t('camaleon_cms.admin.widgets.message.deleted')
52
51
  redirect_to action: :index
53
52
  end
54
53
 
55
54
  private
55
+
56
+ def set_widgets
57
+ @widget = current_site.widgets.find(params[:id])
58
+ end
59
+
56
60
  def check_permission_role
57
61
  authorize! :manager, :widgets
58
62
  end
59
- end
63
+ end
@@ -8,6 +8,7 @@
8
8
  =end
9
9
  class CamaleonCms::Admin::Appearances::Widgets::SidebarController < CamaleonCms::AdminController
10
10
  before_action :check_permission_role
11
+ before_action :set_sidebar, only: [:edit, :update, :destroy]
11
12
 
12
13
  def new
13
14
  @sidebar ||= current_site.sidebars.new
@@ -25,12 +26,11 @@ class CamaleonCms::Admin::Appearances::Widgets::SidebarController < CamaleonCms:
25
26
  end
26
27
 
27
28
  def edit
28
- @sidebar = current_site.sidebars.find(params[:id])
29
29
  new
30
30
  end
31
31
 
32
32
  def update
33
- if current_site.sidebars.find(params[:id]).update(params[:widget_sidebar])
33
+ if @sidebar.update(params[:widget_sidebar])
34
34
  flash[:notice] = t('camaleon_cms.admin.widgets.sidebar.updated')
35
35
  else
36
36
  flash[:error] = t('camaleon_cms.admin.widgets.sidebar.error_updated')
@@ -46,12 +46,17 @@ class CamaleonCms::Admin::Appearances::Widgets::SidebarController < CamaleonCms:
46
46
  end
47
47
 
48
48
  def destroy
49
- @sidebar = current_site.sidebars.find(params[:id]).destroy
49
+ @sidebar = @sidebar.destroy
50
50
  flash[:notice] = t('camaleon_cms.admin.widgets.sidebar.error_deleted')
51
51
  redirect_to cama_admin_appearances_widgets_main_index_path
52
52
  end
53
53
 
54
54
  private
55
+
56
+ def set_sidebar
57
+ @sidebar = current_site.sidebars.find(params[:id])
58
+ end
59
+
55
60
  def check_permission_role
56
61
  authorize! :manager, :widgets
57
62
  end
@@ -7,24 +7,21 @@
7
7
  See the GNU Affero General Public License (GPLv3) for more details.
8
8
  =end
9
9
  class CamaleonCms::Admin::Posts::DraftsController < CamaleonCms::Admin::PostsController
10
+ before_action :set_post_data_params, only: [:create, :update]
11
+
10
12
  def index
11
13
  render json: @post_type
12
14
  end
13
15
 
14
16
  def create
15
- post_data = get_params_data
16
- post_data[:data_tags] = params[:tags].to_s
17
- post_data[:data_categories] = params[:categories] || []
18
17
  if params[:post_id].present?
19
18
  @post_draft = CamaleonCms::Post.drafts.where(post_parent: params[:post_id]).first
20
- @post_draft.attributes = post_data if @post_draft.present?
19
+ @post_draft.attributes = @post_data if @post_draft.present?
21
20
  end
22
- @post_draft = @post_type.posts.new(post_data) unless @post_draft.present?
21
+ @post_draft = @post_type.posts.new(@post_data) unless @post_draft.present?
23
22
  r = {post: @post_draft, post_type: ""}; hooks_run("create_post", r)
24
23
  if @post_draft.save(:validate => false)
25
- @post_draft.set_meta_from_form(params[:meta])
26
- @post_draft.set_field_values(params[:field_options])
27
- @post_draft.set_option("keywords", post_data[:keywords])
24
+ @post_draft.set_params(params[:meta], params[:field_options], @post_data[:keywords])
28
25
  msg = {draft: {id: @post_draft.id}, _drafts_path: cama_admin_post_type_draft_path(@post_type.id, @post_draft)}
29
26
  r = {post: @post_draft, post_type: ""}; hooks_run("created_post", r)
30
27
  else
@@ -35,16 +32,11 @@ class CamaleonCms::Admin::Posts::DraftsController < CamaleonCms::Admin::PostsCon
35
32
  end
36
33
 
37
34
  def update
38
- post_data = get_params_data
39
- post_data[:data_tags] = params[:tags].to_s
40
- post_data[:data_categories] = params[:categories] || []
41
35
  @post_draft = CamaleonCms::Post.drafts.find(params[:id])
42
- @post_draft.attributes = post_data
36
+ @post_draft.attributes = @post_data
43
37
  r = {post: @post_draft, post_type: ""}; hooks_run("update_post", r)
44
38
  if @post_draft.save(validate: false)
45
- @post_draft.set_meta_from_form(params[:meta])
46
- @post_draft.set_field_values(params[:field_options])
47
- @post_draft.set_option("keywords", post_data[:keywords])
39
+ @post_draft.set_params(params[:meta], params[:field_options], @post_data[:keywords])
48
40
  hooks_run("updated_post", {post: @post_draft, post_type: ""})
49
41
  msg = {draft: {id: @post_draft.id}}
50
42
  else
@@ -57,12 +49,13 @@ class CamaleonCms::Admin::Posts::DraftsController < CamaleonCms::Admin::PostsCon
57
49
  end
58
50
 
59
51
  private
60
-
61
- def get_params_data
52
+ def set_post_data_params
62
53
  post_data = params[:post]
63
54
  post_data[:status] = 'draft'
64
55
  post_data[:post_parent] = params[:post_id]
65
56
  post_data[:user_id] = cama_current_user.id unless post_data[:user_id].present?
66
- post_data
57
+ post_data[:data_tags] = params[:tags].to_s
58
+ post_data[:data_categories] = params[:categories] || []
59
+ @post_data = post_data
67
60
  end
68
61
  end
@@ -15,7 +15,7 @@ class CamaleonCms::Admin::PostsController < CamaleonCms::AdminController
15
15
 
16
16
  def index
17
17
  authorize! :posts, @post_type
18
- posts_all = @post_type.posts
18
+ posts_all = @post_type.posts.eager_load(:parent, :post_type)
19
19
  if params[:taxonomy].present? && params[:taxonomy_id].present?
20
20
  if params[:taxonomy] == "category"
21
21
  cat_owner = current_site.full_categories.find(params[:taxonomy_id]).decorate
@@ -33,7 +33,7 @@ class CamaleonCms::Admin::PostsController < CamaleonCms::AdminController
33
33
  end
34
34
 
35
35
  if params[:q].present?
36
- posts_all = posts_all.where(params[:q].map{|text| "#{CamaleonCms::Post.table_name}.title LIKE '%#{text}%'" }.join(" OR "))
36
+ posts_all = posts_all.where(params[:q].split(" ").map{|text| "#{CamaleonCms::Post.table_name}.title LIKE '%#{text}%'" }.join(" OR "))
37
37
  end
38
38
 
39
39
  @posts = posts_all
@@ -69,13 +69,7 @@ class CamaleonCms::Admin::PostsController < CamaleonCms::AdminController
69
69
 
70
70
  def create
71
71
  authorize! :create_post, @post_type
72
-
73
- post_data = params[:post]
74
- post_data[:user_id] = cama_current_user.id
75
- post_data[:status] == 'pending' if post_data[:status] == 'published' && cannot?(:publish_post, @post_type)
76
- post_data[:data_tags] = params[:tags].to_s
77
- post_data[:data_categories] = params[:categories] || []
78
-
72
+ post_data = get_post_data(true)
79
73
  CamaleonCms::Post.drafts.find(post_data[:draft_id]).destroy rescue nil
80
74
  @post = @post_type.posts.create(post_data)
81
75
  r = {post: @post, post_type: @post_type}; hooks_run("create_post", r)
@@ -104,14 +98,8 @@ class CamaleonCms::Admin::PostsController < CamaleonCms::AdminController
104
98
  def update
105
99
  @post = @post.parent if @post.draft? && @post.parent.present?
106
100
  authorize! :update, @post
107
-
108
101
  @post.drafts.destroy_all
109
-
110
- post_data = params[:post]
111
- post_data[:post_parent] = nil
112
- post_data[:status] == 'pending' if post_data[:status] == 'published' && cannot?(:publish_post, @post_type)
113
- post_data[:data_tags] = params[:tags].to_s
114
- post_data[:data_categories] = params[:categories] || []
102
+ post_data = get_post_data
115
103
  r = {post: @post, post_type: @post_type}; hooks_run("update_post", r)
116
104
  @post = r[:post]
117
105
  if @post.update(post_data)
@@ -122,7 +110,6 @@ class CamaleonCms::Admin::PostsController < CamaleonCms::AdminController
122
110
  flash[:notice] = t('camaleon_cms.admin.post.message.updated', post_type: @post_type.decorate.the_title)
123
111
  redirect_to action: :edit, id: @post.id
124
112
  else
125
- # render 'form'
126
113
  edit
127
114
  end
128
115
  end
@@ -202,6 +189,18 @@ class CamaleonCms::Admin::PostsController < CamaleonCms::AdminController
202
189
  end
203
190
  end
204
191
 
192
+ # return common params data for posts
193
+ # is_create: indicate if this info is for create a new post
194
+ def get_post_data(is_create = false)
195
+ post_data = params[:post]
196
+ post_data[:post_parent] = nil
197
+ post_data[:user_id] = cama_current_user.id if is_create
198
+ post_data[:status] == 'pending' if post_data[:status] == 'published' && cannot?(:publish_post, @post_type)
199
+ post_data[:data_tags] = params[:tags].to_s
200
+ post_data[:data_categories] = params[:categories] || []
201
+ post_data
202
+ end
203
+
205
204
  # valid slug post
206
205
  def _exist_slug?(slug, post_id)
207
206
  current_site.posts.where("#{CamaleonCms::Post.table_name}.slug LIKE ? OR #{CamaleonCms::Post.table_name}.slug = ?", "%-->#{slug}<!--%", slug).where("#{CamaleonCms::Post.table_name}.status != 'draft'").where(post_parent: nil).where.not(id: post_id).present?
@@ -33,7 +33,7 @@ class CamaleonCms::Admin::SessionsController < CamaleonCms::CamaleonController
33
33
  return if r[:stop_process] # permit to redirect for data completion
34
34
  if captcha_validate && @user && @user.authenticate(data_user[:password])
35
35
  cama_captcha_reset_attack("login")
36
- r={user: @user, redirect_to: nil }; hooks_run('after_login', r)
36
+ r={user: @user, redirect_to: nil}; hooks_run('after_login', r)
37
37
  login_user(@user, params[:remember_me].present?, r[:redirect_to])
38
38
  else
39
39
  cama_captcha_increment_attack("login")
@@ -111,27 +111,21 @@ class CamaleonCms::Admin::SessionsController < CamaleonCms::CamaleonController
111
111
  if params[:user].present?
112
112
  params[:user][:role] = PluginRoutes.system_info["default_user_role"]
113
113
  user_data = params[:user]
114
- @user = current_site.users.new(user_data)
115
- r = {user: @user, params: params}; hooks_run('user_before_register', r)
116
-
117
- if current_site.security_user_register_captcha_enabled? && !cama_captcha_verified?
114
+ result = cama_register_user(user_data, params[:meta])
115
+ if result[:result] == false && result[:type] == :captcha_error
118
116
  @first_name = params[:meta][:first_name]
119
117
  @last_name = params[:meta][:last_name]
120
118
 
121
119
  @user.errors[:captcha] = t('camaleon_cms.admin.users.message.error_captcha')
122
120
  render 'register'
121
+ elsif result[:result]
122
+ flash[:notice] = result[:message]
123
+ r = {user: @user, redirect_url: result[:redirect_url]}; hooks_run('user_registered', r)
124
+ redirect_to r[:redirect_url]
123
125
  else
124
- if @user.save
125
- @user.set_meta_from_form(params[:meta])
126
- r = {user: @user, message: t('camaleon_cms.admin.users.message.created'), redirect_url: cama_admin_login_path}; hooks_run('user_after_register', r)
127
- flash[:notice] = r[:message]
128
- r={user: @user}; hooks_run('user_registered', r)
129
- redirect_to r[:redirect_url]
130
- else
131
- @first_name = params[:meta][:first_name]
132
- @last_name = params[:meta][:last_name]
133
- render 'register'
134
- end
126
+ @first_name = params[:meta][:first_name]
127
+ @last_name = params[:meta][:last_name]
128
+ render 'register'
135
129
  end
136
130
  else
137
131
  render 'register'
@@ -9,10 +9,13 @@
9
9
  class CamaleonCms::Admin::Settings::CustomFieldsController < CamaleonCms::Admin::SettingsController
10
10
  include CamaleonCms::Admin::CustomFieldsHelper
11
11
  add_breadcrumb I18n.t("camaleon_cms.admin.sidebar.custom_fields"), :cama_admin_settings_custom_fields_path
12
- before_action :set_custom_field_group, only: ['show','edit','update','destroy']
12
+ before_action :set_custom_field_group, only: [:show,:edit,:update,:destroy]
13
+ before_action :set_post_data, only: [:create, :update]
13
14
 
14
15
  def index
15
- @field_groups = current_site.custom_field_groups.visible_group
16
+ @field_groups = current_site.custom_field_groups.visible_group.eager_load(:site)
17
+ @field_groups = @field_groups.where(object_class: params[:c]) if params[:c].present?
18
+ @field_groups = @field_groups.where(objectid: params[:id]) if params[:id].present?
16
19
  @field_groups = @field_groups.paginate(page: params[:page], per_page: current_site.admin_per_page)
17
20
  end
18
21
 
@@ -30,11 +33,9 @@ class CamaleonCms::Admin::Settings::CustomFieldsController < CamaleonCms::Admin:
30
33
  end
31
34
 
32
35
  def update
33
- post_data = params[:custom_field_group]
34
- post_data[:object_class], post_data[:objectid] = post_data[:assign_group].split(',')
35
- if @field_group.update(post_data)
36
+ if @field_group.update(@post_data)
36
37
  @field_group.add_fields(params[:fields], params[:field_options])
37
- @field_group.set_option('caption', post_data[:caption])
38
+ @field_group.set_option('caption', @post_data[:caption])
38
39
  flash[:notice] = t('camaleon_cms.admin.custom_field.message.custom_updated')
39
40
  redirect_to action: :edit, id: @field_group.id
40
41
  else
@@ -50,12 +51,10 @@ class CamaleonCms::Admin::Settings::CustomFieldsController < CamaleonCms::Admin:
50
51
 
51
52
  # create a new custom field group
52
53
  def create
53
- post_data = params[:custom_field_group]
54
- post_data[:object_class], post_data[:objectid] = post_data[:assign_group].split(',')
55
- @field_group = current_site.custom_field_groups.new(post_data)
54
+ @field_group = current_site.custom_field_groups.new(@post_data)
56
55
  if @field_group.save
57
56
  @field_group.add_fields(params[:fields], params[:field_options])
58
- @field_group.set_option('caption', post_data[:caption])
57
+ @field_group.set_option('caption', @post_data[:caption])
59
58
  flash[:notice] = t('camaleon_cms.admin.custom_field.message.custom_created')
60
59
  redirect_to action: :edit, id: @field_group.id
61
60
  else
@@ -81,6 +80,11 @@ class CamaleonCms::Admin::Settings::CustomFieldsController < CamaleonCms::Admin:
81
80
 
82
81
  private
83
82
 
83
+ def set_post_data
84
+ @post_data = params[:custom_field_group]
85
+ @post_data[:object_class], @post_data[:objectid] = @post_data[:assign_group].split(',')
86
+ end
87
+
84
88
  def set_custom_field_group
85
89
  begin
86
90
  @field_group = current_site.custom_field_groups.find(params[:id])
@@ -7,7 +7,8 @@
7
7
  See the GNU Affero General Public License (GPLv3) for more details.
8
8
  =end
9
9
  class CamaleonCms::Admin::Settings::PostTypesController < CamaleonCms::Admin::SettingsController
10
- before_action :set_post_type, only: ['show','edit','update','destroy']
10
+ before_action :set_post_type, only: [:show,:edit,:update, :destroy]
11
+ before_action :set_data_term, only: [:create, :update]
11
12
  add_breadcrumb I18n.t("camaleon_cms.admin.sidebar.content_groups"), :cama_admin_settings_post_types_path
12
13
 
13
14
  def index
@@ -24,9 +25,7 @@ class CamaleonCms::Admin::Settings::PostTypesController < CamaleonCms::Admin::Se
24
25
  end
25
26
 
26
27
  def update
27
- data_term = params[:post_type]
28
- data_term[:data_options] = params[:meta]
29
- if @post_type.update(params[:post_type])
28
+ if @post_type.update(@data_term)
30
29
  flash[:notice] = t('camaleon_cms.admin.post_type.message.updated')
31
30
  redirect_to action: :index
32
31
  else
@@ -35,9 +34,7 @@ class CamaleonCms::Admin::Settings::PostTypesController < CamaleonCms::Admin::Se
35
34
  end
36
35
 
37
36
  def create
38
- data_term = params[:post_type]
39
- data_term[:data_options] = params[:meta]
40
- @post_type = current_site.post_types.new(data_term)
37
+ @post_type = current_site.post_types.new(@data_term)
41
38
  if @post_type.save
42
39
  flash[:notice] = t('camaleon_cms.admin.post_type.message.created')
43
40
  redirect_to action: :index
@@ -53,6 +50,12 @@ class CamaleonCms::Admin::Settings::PostTypesController < CamaleonCms::Admin::Se
53
50
 
54
51
  private
55
52
 
53
+ def set_data_term
54
+ data_term = params[:post_type]
55
+ data_term[:data_options] = params[:meta]
56
+ @data_term = data_term
57
+ end
58
+
56
59
  def set_post_type
57
60
  begin
58
61
  @post_type = current_site.post_types.find_by_id(params[:id])
@@ -7,9 +7,10 @@
7
7
  See the GNU Affero General Public License (GPLv3) for more details.
8
8
  =end
9
9
  class CamaleonCms::Admin::Settings::SitesController < CamaleonCms::Admin::SettingsController
10
- before_action :set_site, only: ['show','edit','update','destroy']
10
+ before_action :set_site, only: [:show, :edit, :update, :destroy]
11
11
  before_action :check_shared_status
12
12
  add_breadcrumb I18n.t("camaleon_cms.admin.sidebar.sites"), :cama_admin_settings_sites_path
13
+
13
14
  def index
14
15
  @sites = CamaleonCms::Site.all.order(:term_group)
15
16
  @sites = @sites.paginate(:page => params[:page], :per_page => current_site.admin_per_page)
@@ -11,8 +11,7 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
11
11
  prepend_before_action :init_frontent
12
12
  prepend_before_action :cama_site_check_existence
13
13
  include CamaleonCms::Frontend::ApplicationHelper
14
-
15
- layout "index"
14
+ layout Proc.new { |controller| params[:cama_ajax_request].present? ? "cama_ajax" : 'index' }
16
15
 
17
16
  before_action :before_hooks
18
17
  after_action :after_hooks
@@ -43,7 +42,7 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
43
42
  cama_init_seo(@category)
44
43
  @children = @category.children.no_empty.decorate
45
44
  @posts = @category.the_posts.paginate(:page => params[:page], :per_page => current_site.front_per_page).eager_load(:metas)
46
- r_file = lookup_context.template_exists?(@category.the_slug, "categories") ? "categories/#{@category.the_slug}" : "category"
45
+ r_file = lookup_context.template_exists?("categories/#{@category.the_slug}") ? "categories/#{@category.the_slug}" : "category"
47
46
  layout_ = lookup_context.template_exists?("layouts/categories/#{@category.the_slug}") ? "categories/#{@category.the_slug}" : (self.send :_layout)
48
47
  r = {category: @category, layout: layout_, render: r_file}; hooks_run("on_render_category", r)
49
48
  render r[:render], layout: r[:layout]
@@ -61,7 +60,7 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
61
60
  @posts = @post_type.the_posts.paginate(:page => params[:page], :per_page => current_site.front_per_page).eager_load(:metas)
62
61
  @categories = @post_type.categories.no_empty.eager_load(:metas).decorate
63
62
  @post_tags = @post_type.post_tags.eager_load(:metas)
64
- r_file = lookup_context.template_exists?(@post_type.the_slug, "post_types") ? "post_types/#{@post_type.the_slug}" : "post_type"
63
+ r_file = lookup_context.template_exists?("post_types/#{@post_type.the_slug}") ? "post_types/#{@post_type.the_slug}" : "post_type"
65
64
  layout_ = lookup_context.template_exists?("layouts/post_types/#{@post_type.the_slug}") ? "post_types/#{@post_type.the_slug}" : (self.send :_layout)
66
65
  r = {post_type: @post_type, layout: layout_, render: r_file}; hooks_run("on_render_post_type", r)
67
66
  render r[:render], layout: r[:layout]
@@ -78,7 +77,7 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
78
77
  @cama_visited_tag = @post_tag
79
78
  cama_init_seo(@post_tag)
80
79
  @posts = @post_tag.the_posts.paginate(:page => params[:page], :per_page => current_site.front_per_page).eager_load(:metas)
81
- r_file = lookup_context.template_exists?(@post_tag.the_slug, "post_tags") ? "post_tags/#{@post_tag.the_slug}" : "post_tag"
80
+ r_file = lookup_context.template_exists?("post_tags/#{@post_tag.the_slug}") ? "post_tags/#{@post_tag.the_slug}" : "post_tag"
82
81
  layout_ = lookup_context.template_exists?("layouts/post_tags/#{@post_tag.the_slug}") ? "post_tags/#{@post_tag.the_slug}" : (self.send :_layout)
83
82
  r = {post_tag: @post_tag, layout: layout_, render: r_file}; hooks_run("on_render_post_tag", r)
84
83
  render r[:render], layout: r[:layout]
@@ -90,7 +89,7 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
90
89
  @cama_visited_search = params[:q]
91
90
  layout_ = lookup_context.template_exists?("layouts/search") ? "search" : (self.send :_layout)
92
91
  r = {layout: layout_, render: "search", posts: nil}; hooks_run("on_render_search", r)
93
- @posts = r[:posts].present? ? r[:posts] : current_site.the_posts.where("title LIKE ? OR content_filtered LIKE ?", "%#{params[:q]}%", "%#{params[:q]}%")
92
+ @posts = r[:posts] != nil ? r[:posts] : current_site.the_posts.where("title LIKE ? OR content_filtered LIKE ?", "%#{params[:q]}%", "%#{params[:q]}%")
94
93
  @posts_size = @posts.size
95
94
  @posts = @posts.paginate(:page => params[:page], :per_page => current_site.front_per_page)
96
95
  render r[:render], layout: r[:layout]
@@ -165,10 +164,10 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
165
164
  @categories = @post.the_categories
166
165
  @post.increment_visits!
167
166
  home_page = @_site_options[:home_page] rescue nil
168
- if @post.get_template(@post_type).present? && lookup_context.template_exists?(@post.get_template(@post_type))
169
- r_file = @post.get_template(@post_type)
170
- elsif lookup_context.template_exists?("page_#{@post.id}")
167
+ if lookup_context.template_exists?("page_#{@post.id}")
171
168
  r_file = "page_#{@post.id}"
169
+ elsif @post.get_template(@post_type).present? && lookup_context.template_exists?(@post.get_template(@post_type))
170
+ r_file = @post.get_template(@post_type)
172
171
  elsif home_page.present? && @post.id.to_s == home_page
173
172
  r_file = "index"
174
173
  elsif lookup_context.template_exists?("#{@post_type.slug}")