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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/apps/themes/new/views/index.html.erb +1 -0
- data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.svg +273 -214
- data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/fonts/camaleon_cms/glyphicons-halflings-regular.woff2 +0 -0
- data/app/assets/javascripts/camaleon_cms/admin/_libraries.js +11 -2
- data/app/assets/javascripts/camaleon_cms/admin/_post.js +1 -1
- data/app/assets/stylesheets/camaleon_cms/bootstrap.min.css.scss +6796 -2
- data/app/controllers/camaleon_cms/admin/appearances/widgets/assign_controller.rb +13 -4
- data/app/controllers/camaleon_cms/admin/appearances/widgets/main_controller.rb +8 -4
- data/app/controllers/camaleon_cms/admin/appearances/widgets/sidebar_controller.rb +8 -3
- data/app/controllers/camaleon_cms/admin/posts/drafts_controller.rb +11 -18
- data/app/controllers/camaleon_cms/admin/posts_controller.rb +16 -17
- data/app/controllers/camaleon_cms/admin/sessions_controller.rb +10 -16
- data/app/controllers/camaleon_cms/admin/settings/custom_fields_controller.rb +14 -10
- data/app/controllers/camaleon_cms/admin/settings/post_types_controller.rb +10 -7
- data/app/controllers/camaleon_cms/admin/settings/sites_controller.rb +2 -1
- data/app/controllers/camaleon_cms/frontend_controller.rb +8 -9
- data/app/controllers/concerns/camaleon_cms/frontend_concern.rb +1 -1
- data/app/decorators/camaleon_cms/application_decorator.rb +1 -1
- data/app/decorators/camaleon_cms/custom_field_decorator.rb +0 -6
- data/app/decorators/camaleon_cms/metas_decorator_methods.rb +1 -1
- data/app/decorators/camaleon_cms/plugin_decorator.rb +11 -0
- data/app/decorators/camaleon_cms/post_decorator.rb +0 -11
- data/app/decorators/camaleon_cms/post_type_decorator.rb +1 -1
- data/app/decorators/camaleon_cms/site_decorator.rb +4 -2
- data/app/decorators/camaleon_cms/term_taxonomy_decorator.rb +12 -16
- data/app/decorators/camaleon_cms/user_decorator.rb +0 -6
- data/app/helpers/camaleon_cms/admin/menus_helper.rb +1 -1
- data/app/helpers/camaleon_cms/camaleon_helper.rb +1 -1
- data/app/helpers/camaleon_cms/frontend/nav_menu_helper.rb +2 -1
- data/app/helpers/camaleon_cms/html_helper.rb +14 -1
- data/app/helpers/camaleon_cms/session_helper.rb +32 -0
- data/app/helpers/camaleon_cms/short_code_helper.rb +2 -2
- data/app/helpers/camaleon_cms/site_helper.rb +3 -4
- data/app/helpers/camaleon_cms/uploader_helper.rb +7 -5
- data/app/mailers/camaleon_cms/html_mailer.rb +4 -0
- data/app/models/camaleon_cms/ability.rb +9 -14
- data/app/models/camaleon_cms/category.rb +1 -2
- data/app/models/camaleon_cms/custom_field_group.rb +1 -1
- data/app/models/camaleon_cms/plugin.rb +4 -1
- data/app/models/camaleon_cms/post.rb +7 -0
- data/app/models/camaleon_cms/post_default.rb +7 -0
- data/app/models/camaleon_cms/post_type.rb +6 -4
- data/app/models/camaleon_cms/site.rb +2 -1
- data/app/models/camaleon_cms/term_taxonomy.rb +1 -0
- data/app/models/concerns/camaleon_cms/custom_fields_read.rb +8 -6
- data/app/models/concerns/camaleon_cms/metas.rb +2 -2
- data/app/views/camaleon_cms/admin/appearances/nav_menus/_custom_menus.html.erb +1 -1
- data/app/views/camaleon_cms/admin/appearances/themes/index.html.erb +1 -2
- data/app/views/camaleon_cms/admin/posts/_sidebar.html.erb +2 -2
- data/app/views/camaleon_cms/admin/posts/form.html.erb +1 -1
- data/app/views/camaleon_cms/admin/posts/index.html.erb +2 -1
- data/app/views/camaleon_cms/admin/sessions/login.html.erb +1 -1
- data/app/views/camaleon_cms/admin/settings/_file_system_settings.html.erb +4 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/index.html.erb +1 -1
- data/app/views/camaleon_cms/admin/settings/site.html.erb +11 -4
- data/app/views/camaleon_cms/default_theme/category.html.erb +1 -1
- data/app/views/camaleon_cms/default_theme/index.html.erb +1 -1
- data/app/views/camaleon_cms/default_theme/layouts/cama_ajax.html.erb +1 -0
- data/app/views/camaleon_cms/default_theme/partials/_categories_list.html.erb +1 -1
- data/app/views/camaleon_cms/default_theme/partials/_post_list_item.html.erb +1 -1
- data/app/views/camaleon_cms/default_theme/partials/_sidebar.html.erb +1 -1
- data/app/views/camaleon_cms/default_theme/post_type.html.erb +1 -1
- data/app/views/camaleon_cms/default_theme/single.html.erb +1 -1
- data/app/views/layouts/camaleon_cms/admin.html.erb +3 -0
- data/config/initializers/action_view.rb +6 -2
- data/config/locales/camaleon_cms/admin/en.yml +1 -0
- data/config/routes/frontend.rb +11 -8
- data/config/system.json +1 -1
- data/lib/camaleon_cms/engine.rb +1 -1
- data/lib/camaleon_cms/version.rb +1 -1
- data/lib/generators/camaleon_cms/gem_plugin_template/config/camaleon_plugin.json +0 -4
- data/lib/generators/camaleon_cms/gem_plugin_template/config/custom_models.rb +3 -0
- data/lib/generators/camaleon_cms/theme_template/app/apps/themes/my_theme/views/admin/settings.html.erb +1 -3
- data/lib/plugin_routes.rb +4 -4
- data/lib/tasks/camaleon_cms/rspec_test.rake +2 -1
- metadata +7 -13
- data/app/apps/themes/new/data.json +0 -1
- data/app/apps/themes/new/views/partials/_breadcrumb.html.erb +0 -10
- data/app/apps/themes/new/views/partials/_categories_list.html.erb +0 -23
- data/app/apps/themes/new/views/partials/_comments.html.erb +0 -32
- data/app/apps/themes/new/views/partials/_comments_list.html.erb +0 -21
- data/app/apps/themes/new/views/partials/_flash_messages.html.erb +0 -26
- data/app/apps/themes/new/views/partials/_forms.html.erb +0 -19
- data/app/apps/themes/new/views/partials/_post_list_item.html.erb +0 -13
- data/app/apps/themes/new/views/partials/_search_form.html.erb +0 -9
- 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
|
-
|
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 =
|
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
|
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 =
|
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.
|
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.
|
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
|
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
|
-
|
115
|
-
|
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
|
-
|
125
|
-
|
126
|
-
|
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: [
|
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
|
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
|
-
|
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: [
|
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
|
-
|
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
|
-
|
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: [
|
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
|
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
|
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
|
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]
|
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
|
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}")
|