camaleon_cms 2.2.0 → 2.2.1
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/plugins/attack/config/locales/translation.yml +38 -1
- data/app/apps/plugins/front_cache/admin_controller.rb +2 -3
- data/app/apps/plugins/front_cache/config/locales/translation.yml +39 -0
- data/app/apps/plugins/front_cache/front_cache_helper.rb +7 -2
- data/app/apps/plugins/front_cache/views/admin/settings.html.erb +1 -0
- data/app/apps/themes/camaleon_first/views/layouts/mailer.html.erb +2 -2
- data/app/assets/javascripts/camaleon_cms/admin/_custom_fields.js +2 -1
- data/app/controllers/camaleon_cms/admin/settings_controller.rb +10 -0
- data/app/controllers/camaleon_cms/admin/users_controller.rb +6 -2
- data/app/controllers/camaleon_cms/frontend_controller.rb +5 -6
- data/app/helpers/camaleon_cms/html_helper.rb +2 -3
- data/app/helpers/camaleon_cms/plugins_helper.rb +4 -3
- data/app/mailers/camaleon_cms/html_mailer.rb +7 -1
- data/app/models/camaleon_cms/ability.rb +1 -1
- data/app/models/camaleon_cms/custom_field.rb +1 -1
- data/app/models/camaleon_cms/custom_field_group.rb +1 -1
- data/app/views/camaleon_cms/admin/plugins/_plugins_list.html.erb +4 -0
- data/app/views/camaleon_cms/admin/posts/_sidebar.html.erb +1 -1
- data/app/views/camaleon_cms/admin/settings/_configuration_settings.html.erb +8 -4
- data/app/views/camaleon_cms/admin/settings/_email_settings.html.erb +26 -4
- data/app/views/camaleon_cms/admin/settings/custom_fields/_render.html.erb +2 -2
- data/app/views/camaleon_cms/default_theme/partials/_search_form.html.erb +1 -1
- data/app/views/layouts/camaleon_cms/admin/_form_error.html.erb +1 -1
- data/app/views/layouts/camaleon_cms/mailer.html.erb +2 -2
- data/config/locales/camaleon_cms/admin/en.yml +2 -1
- data/config/locales/camaleon_cms/admin/es.yml +1 -0
- data/config/locales/camaleon_cms/admin/it.yml +125 -77
- data/config/locales/camaleon_cms/admin/pt-BR.yml +2 -0
- data/config/locales/camaleon_cms/admin/pt.yml +641 -0
- data/config/locales/camaleon_cms/common.yml +66 -1
- data/config/locales/camaleon_cms/languages.yml +25 -6
- data/config/locales/pt-BR.yml +10 -8
- data/config/locales/pt.yml +201 -0
- data/config/routes/admin.rb +1 -0
- data/lib/camaleon_cms/version.rb +1 -1
- data/lib/generators/camaleon_cms/gem_plugin_template/config/initializers/custom_models.rb +4 -2
- data/lib/plugin_routes.rb +2 -0
- metadata +5 -3
- data/lib/generators/camaleon_cms/install_template/apps/plugins/readme.txt +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f2311c64b5733734063aa36f0a49753b2ebb008
|
4
|
+
data.tar.gz: a9a8eb3e3530e87c5fd03a653a860cd3771a4b15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9672abfcdc463517922a76860e6fcf66c3b4680c14cbf2a31d05933176e84492a4f8d9ec0eec490c8a404743d3f2d39304b94f3c9f21402022990eda8ec2d40f
|
7
|
+
data.tar.gz: 0e4eb6d9a7895116cbdae3f2678ae4b19ef8689fbf1208f24398a70e369b88069860d5485b7d0eccb5ff8b555003d6e463dc55be8033ca60a2b957757c03535b
|
data/README.md
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
* Add the gem in your Gemfile
|
29
29
|
|
30
30
|
```
|
31
|
-
gem "camaleon_cms", '>=2.2.
|
31
|
+
gem "camaleon_cms", '>=2.2.1' # Stable versions 2.1.2.0, 2.1.1.4, 2.1.1, 2.1.0
|
32
32
|
# gem "camaleon_cms", github: 'owen2345/camaleon-cms' # current development version
|
33
33
|
```
|
34
34
|
* Install required Gem and dependencies
|
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
# encoding: utf-8
|
2
|
+
en:
|
2
3
|
plugin:
|
3
4
|
attack:
|
4
5
|
title: 'Attack'
|
@@ -16,6 +17,24 @@
|
|
16
17
|
settings_saved: 'Settings saved!'
|
17
18
|
settings: 'Settings'
|
18
19
|
|
20
|
+
pt:
|
21
|
+
plugin:
|
22
|
+
attack:
|
23
|
+
title: 'Ataque'
|
24
|
+
attack_security: 'Segurança contra ataques'
|
25
|
+
form:
|
26
|
+
in: 'em'
|
27
|
+
seconds: 'Segundos'
|
28
|
+
minutes: 'Minutos'
|
29
|
+
type_max_requests_time: 'Requisições %{type} máximas'
|
30
|
+
type_time_requests_seconds: 'Requisições %{type} por tipo [segundos]'
|
31
|
+
ban_time_minutes: 'Tempo de expulsão'
|
32
|
+
ban_messages: 'Mensagem de expulsão'
|
33
|
+
request_limit_exceeded: 'Número de requisições excedeu o limite!'
|
34
|
+
messages:
|
35
|
+
settings_saved: 'Configurações gravadas com sucesso!'
|
36
|
+
settings: 'Configurações'
|
37
|
+
|
19
38
|
pt-BR:
|
20
39
|
plugin:
|
21
40
|
attack:
|
@@ -72,3 +91,21 @@ nl:
|
|
72
91
|
messages:
|
73
92
|
settings_saved: 'instellingen opgeslagen!'
|
74
93
|
settings: 'instellingen'
|
94
|
+
|
95
|
+
it:
|
96
|
+
plugin:
|
97
|
+
attack:
|
98
|
+
title: 'Attack'
|
99
|
+
attack_security: 'Attack security'
|
100
|
+
form:
|
101
|
+
in: 'in'
|
102
|
+
seconds: 'Secondi'
|
103
|
+
minutes: 'Minuti'
|
104
|
+
type_max_requests_time: 'Numero massimo di richieste %{type}'
|
105
|
+
type_time_requests_seconds: '%{type} tempo richiesto [secondi]'
|
106
|
+
ban_time_minutes: 'Tempo di espulsione'
|
107
|
+
ban_messages: 'Messaggio di espulsione'
|
108
|
+
request_limit_exceeded: 'Il numero di richieste ha superato il limite!'
|
109
|
+
messages:
|
110
|
+
settings_saved: 'Impostazioni salvate!'
|
111
|
+
settings: 'Impostazioni'
|
@@ -9,8 +9,7 @@
|
|
9
9
|
class Plugins::FrontCache::AdminController < CamaleonCms::Apps::PluginsAdminController
|
10
10
|
include Plugins::FrontCache::FrontCacheHelper
|
11
11
|
def settings
|
12
|
-
|
13
|
-
@caches = current_site.get_meta("front_cache_elements", {})
|
12
|
+
@caches = current_site.get_meta("front_cache_elements", {paths: []})
|
14
13
|
@caches[:paths] << "" unless @caches[:paths].present?
|
15
14
|
end
|
16
15
|
|
@@ -32,4 +31,4 @@ class Plugins::FrontCache::AdminController < CamaleonCms::Apps::PluginsAdminCont
|
|
32
31
|
redirect_to :back
|
33
32
|
end
|
34
33
|
|
35
|
-
end
|
34
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
en:
|
2
3
|
plugin:
|
3
4
|
front_cache:
|
@@ -56,6 +57,25 @@ nl:
|
|
56
57
|
cache_destroyed: 'Cache opgeschoond!'
|
57
58
|
settings: 'instellingen'
|
58
59
|
|
60
|
+
pt-BR:
|
61
|
+
plugin:
|
62
|
+
front_cache:
|
63
|
+
button:
|
64
|
+
add_new_path: 'Adicionar novo caminho'
|
65
|
+
custom_url_paths: 'Caminhos de URL personalizados'
|
66
|
+
clean_cache: 'Limpar Cache'
|
67
|
+
title: 'Cache de Páginas de Front End'
|
68
|
+
home_page: 'Página Inicial'
|
69
|
+
pages: 'Páginas'
|
70
|
+
pages_of: 'Páginas de'
|
71
|
+
skip_cache_pages: 'Saltar Cache de Páginas'
|
72
|
+
message:
|
73
|
+
please_checkpost_need_cache: 'Por favor verifique todas as publicações ou o tipo do publicação que precisa colocar em cache.'
|
74
|
+
enabled_cache_inner_content_logged_users: 'Permitir cache para conteúdo interno de utilizadores ligados'
|
75
|
+
settings_saved: 'Configurações Gravadas!'
|
76
|
+
cache_destroyed: 'Cache destruída!'
|
77
|
+
settings: 'Configurações'
|
78
|
+
|
59
79
|
pt-BR:
|
60
80
|
plugin:
|
61
81
|
front_cache:
|
@@ -74,3 +94,22 @@ pt-BR:
|
|
74
94
|
settings_saved: 'Configurações Salvas!'
|
75
95
|
cache_destroyed: 'Cache destruído!'
|
76
96
|
settings: 'Configurações'
|
97
|
+
|
98
|
+
it:
|
99
|
+
plugin:
|
100
|
+
front_cache:
|
101
|
+
button:
|
102
|
+
add_new_path: 'Aggiungi un nuovo percorso'
|
103
|
+
custom_url_paths: 'URL personalizzate'
|
104
|
+
clean_cache: 'Pulisci la cache'
|
105
|
+
title: 'Frontend cache'
|
106
|
+
home_page: 'Home Page'
|
107
|
+
pages: 'Pagine'
|
108
|
+
pages_of: 'Pagine di'
|
109
|
+
skip_cache_pages: 'Pagine da non cachare'
|
110
|
+
message:
|
111
|
+
please_checkpost_need_cache: 'Per favore, verifica tutti i tipi di messaggi o e-mail che è necessario memorizzare nella cache.'
|
112
|
+
enabled_cache_inner_content_logged_users: 'Attiva il contenuto della cache interna per gli utenti registrati'
|
113
|
+
settings_saved: 'Impostazioni salvate!'
|
114
|
+
cache_destroyed: 'Cache distrutta!'
|
115
|
+
settings: 'Impostazioni'
|
@@ -27,7 +27,7 @@ module Plugins::FrontCache::FrontCacheHelper
|
|
27
27
|
|
28
28
|
@caches = current_site.get_meta("front_cache_elements")
|
29
29
|
@_plugin_do_cache = false
|
30
|
-
if
|
30
|
+
if match_path_patterns? || (params[:action] == "index" && @caches[:home].present?) # cache paths and home page
|
31
31
|
@_plugin_do_cache = true
|
32
32
|
elsif params[:action] == "post" && !params[:draft_id].present?
|
33
33
|
begin
|
@@ -157,4 +157,9 @@ module Plugins::FrontCache::FrontCacheHelper
|
|
157
157
|
request.path_info.split("?").first
|
158
158
|
end
|
159
159
|
|
160
|
-
|
160
|
+
def match_path_patterns?
|
161
|
+
@caches[:paths].any? do |path_pattern|
|
162
|
+
front_request_key =~ Regexp.new(path_pattern)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<body>
|
8
8
|
<table style="width: 100%">
|
9
9
|
<tr>
|
10
|
-
<td style="text-align: center; background-color: #1ABC9C; padding: 10px;"
|
10
|
+
<td style="text-align: center; background-color: #1ABC9C; padding: 10px;"><%= image_tag @current_site.the_logo %></td>
|
11
11
|
</tr>
|
12
12
|
<tr>
|
13
13
|
<td>
|
@@ -19,4 +19,4 @@
|
|
19
19
|
</tr>
|
20
20
|
</table>
|
21
21
|
</body>
|
22
|
-
</html>
|
22
|
+
</html>
|
@@ -158,7 +158,8 @@ function custom_field_editor($field) {
|
|
158
158
|
}
|
159
159
|
function custom_field_field_attrs_val($field, value) {
|
160
160
|
if ($field) {
|
161
|
-
|
161
|
+
value = value || '{}'
|
162
|
+
var data = typeof(value) == 'object' ? value : $.parseJSON(value);
|
162
163
|
$field.find('.input-attr').val(data.attr);
|
163
164
|
$field.find('.input-value').val(data.value)
|
164
165
|
$field.find('.input-attr, .input-value').filter('.is_translate').addClass('translatable').Translatable(ADMIN_TRANSLATIONS);
|
@@ -69,6 +69,16 @@ class CamaleonCms::Admin::SettingsController < CamaleonCms::AdminController
|
|
69
69
|
redirect_to action: :theme
|
70
70
|
end
|
71
71
|
|
72
|
+
# send email test
|
73
|
+
def test_email
|
74
|
+
begin
|
75
|
+
CamaleonCms::HtmlMailer.sender(params[:email], 'Test', {content: 'Test content'}).deliver_now
|
76
|
+
render nothing: true
|
77
|
+
rescue => e
|
78
|
+
render inline: e.message, status: 502
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
72
82
|
private
|
73
83
|
|
74
84
|
def validate_role
|
@@ -95,12 +95,16 @@ class CamaleonCms::Admin::UsersController < CamaleonCms::AdminController
|
|
95
95
|
private
|
96
96
|
|
97
97
|
def validate_role
|
98
|
-
(
|
98
|
+
(user_id_param.present? && cama_current_user.id.to_s == user_id_param) || authorize!(:manage, :users)
|
99
|
+
end
|
100
|
+
|
101
|
+
def user_id_param
|
102
|
+
user_params = params[:id] || params[:user_id]
|
99
103
|
end
|
100
104
|
|
101
105
|
def set_user
|
102
106
|
begin
|
103
|
-
@user = current_site.users.find(
|
107
|
+
@user = current_site.users.find(user_id_param)
|
104
108
|
rescue
|
105
109
|
flash[:error] = t('camaleon_cms.admin.users.message.error')
|
106
110
|
redirect_to cama_admin_path
|
@@ -39,7 +39,7 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
|
|
39
39
|
@cama_visited_category = @category
|
40
40
|
@children = @category.children.no_empty.decorate
|
41
41
|
@posts = @category.the_posts.paginate(:page => params[:page], :per_page => current_site.front_per_page).eager_load(:metas)
|
42
|
-
r_file = lookup_context.template_exists?("
|
42
|
+
r_file = lookup_context.template_exists?("category_#{@category.the_slug}") ? "category_#{@category.the_slug}" : nil # specific template category with specific slug within a posttype
|
43
43
|
r_file = lookup_context.template_exists?("post_types/#{@post_type.the_slug}/category") ? "post_types/#{@post_type.the_slug}/category" : nil unless r_file.present? # default template category for all categories within a posttype
|
44
44
|
r_file = lookup_context.template_exists?("categories/#{@category.the_slug}") ? "categories/#{@category.the_slug}" : 'category' unless r_file.present? # default template category for all categories for all posttypes
|
45
45
|
|
@@ -80,10 +80,8 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
|
|
80
80
|
end
|
81
81
|
@cama_visited_tag = @post_tag
|
82
82
|
@posts = @post_tag.the_posts.paginate(:page => params[:page], :per_page => current_site.front_per_page).eager_load(:metas)
|
83
|
-
r_file = lookup_context.template_exists?("post_types/#{@post_type.the_slug}/
|
84
|
-
|
85
|
-
r_file = lookup_context.template_exists?("post_tags/#{@post_tag.the_slug}") ? "post_tags/#{@post_tag.the_slug}" : "post_tag" unless r_file.present?
|
86
|
-
layout_ = lookup_context.template_exists?("layouts/post_tags/#{@post_tag.the_slug}") ? "post_tags/#{@post_tag.the_slug}" : (self.send :_layout)
|
83
|
+
r_file = lookup_context.template_exists?("post_types/#{@post_type.the_slug}/post_tag") ? "post_types/#{@post_type.the_slug}/post_tag" : 'post_tag'
|
84
|
+
layout_ = lookup_context.template_exists?("layouts/post_tag") ? "post_tag" : (self.send :_layout)
|
87
85
|
r = {post_tag: @post_tag, layout: layout_, render: r_file}; hooks_run("on_render_post_tag", r)
|
88
86
|
render r[:render], layout: r[:layout]
|
89
87
|
end
|
@@ -91,12 +89,13 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
|
|
91
89
|
# search contents
|
92
90
|
def search
|
93
91
|
breadcrumb_add(ct("search"))
|
92
|
+
items = params[:post_type_slugs].present? ? current_site.the_posts(params[:post_type_slugs].split(',')) : current_site.the_posts
|
94
93
|
@cama_visited_search = true
|
95
94
|
@param_search = params[:q]
|
96
95
|
layout_ = lookup_context.template_exists?("layouts/search") ? "search" : (self.send :_layout)
|
97
96
|
r = {layout: layout_, render: "search", posts: nil}; hooks_run("on_render_search", r)
|
98
97
|
params[:q] = (params[:q] || '').downcase
|
99
|
-
@posts = r[:posts] != nil ? r[:posts] :
|
98
|
+
@posts = r[:posts] != nil ? r[:posts] : items.where("LOWER(title) LIKE ? OR LOWER(content_filtered) LIKE ?", "%#{params[:q]}%", "%#{params[:q]}%")
|
100
99
|
@posts_size = @posts.size
|
101
100
|
@posts = @posts.paginate(:page => params[:page], :per_page => current_site.front_per_page)
|
102
101
|
render r[:render], layout: r[:layout]
|
@@ -43,7 +43,7 @@ module CamaleonCms::HtmlHelper
|
|
43
43
|
# sample: (update existent library)
|
44
44
|
# append_asset_libraries({"colorpicker"=>{js: [plugin_asset("js/my_custom_js")] } })
|
45
45
|
# return nil
|
46
|
-
def
|
46
|
+
def append_asset_libraries(libraries)
|
47
47
|
libraries.each do |key, library|
|
48
48
|
if @_assets_libraries.include?(key)
|
49
49
|
@_assets_libraries[key.to_sym] = @_assets_libraries[key.to_sym].merge(library)
|
@@ -52,8 +52,7 @@ module CamaleonCms::HtmlHelper
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
55
|
-
|
56
|
-
alias_method :append_asset_libraries, :cama_load_custom_assets
|
55
|
+
alias_method :cama_load_custom_assets, :append_asset_libraries
|
57
56
|
|
58
57
|
# add asset content into custom assets
|
59
58
|
# content may be: <script>alert()</script>
|
@@ -145,10 +145,11 @@ module CamaleonCms::PluginsHelper
|
|
145
145
|
# return plugin key for current plugin file (helper|controller|view)
|
146
146
|
# index: internal control (ignored)
|
147
147
|
def self_plugin_key(index = 0)
|
148
|
-
k = "/plugins/"
|
149
148
|
f = caller[index]
|
150
|
-
if f.include?(
|
151
|
-
key = f.split(
|
149
|
+
if f.include?('/apps/plugins/')
|
150
|
+
key = f.split('/apps/plugins/').last.split("/").first
|
151
|
+
elsif f.include?('/plugins/')
|
152
|
+
key = f.split('/plugins/').last.split("/").first
|
152
153
|
else
|
153
154
|
key = f.split('/gems/').last.split("/").first
|
154
155
|
end
|
@@ -50,7 +50,13 @@ class CamaleonCms::HtmlMailer < ActionMailer::Base
|
|
50
50
|
lookup_context.prefixes.prepend("themes/#{theme.slug}") if theme.settings["gem_mode"]
|
51
51
|
lookup_context.prefixes.prepend("themes/#{theme.slug}/views") unless theme.settings["gem_mode"]
|
52
52
|
lookup_context.use_camaleon_partial_prefixes = true
|
53
|
-
(data[:files] || data[:attachments] || []).each{ |attach|
|
53
|
+
(data[:files] || data[:attachments] || []).each{ |attach|
|
54
|
+
if File.exist?(attach) && !File.directory?(attach)
|
55
|
+
attachments["#{File.basename(attach)}"] = File.open(attach, 'rb') { |f| f.read }
|
56
|
+
else
|
57
|
+
Rails.logger.error "File not attached in the mail: #{attach}"
|
58
|
+
end
|
59
|
+
}
|
54
60
|
|
55
61
|
layout = data[:layout_name].present? ? data[:layout_name] : false
|
56
62
|
if data[:template_name].present? # render email with template
|
@@ -77,7 +77,7 @@ class CamaleonCms::Ability
|
|
77
77
|
can :manage, :plugins if @roles_manager[:plugins] rescue false
|
78
78
|
can :manage, :users if @roles_manager[:users] rescue false
|
79
79
|
can :manage, :settings if @roles_manager[:settings] rescue false
|
80
|
-
@roles_manager.each do |rol_manage_key, val_role|
|
80
|
+
@roles_manager.try(:each) do |rol_manage_key, val_role|
|
81
81
|
can :manage, rol_manage_key.to_sym if val_role.to_s.cama_true? rescue false
|
82
82
|
end
|
83
83
|
end
|
@@ -19,7 +19,7 @@ class CamaleonCms::CustomField < ActiveRecord::Base
|
|
19
19
|
belongs_to :custom_field_group, class_name: "CamaleonCms::CustomFieldGroup"
|
20
20
|
belongs_to :parent, class_name: "CamaleonCms::CustomField", :foreign_key => :parent_id
|
21
21
|
alias_attribute :label, :name
|
22
|
-
validates_uniqueness_of :slug, scope: [:parent_id, :object_class]
|
22
|
+
validates_uniqueness_of :slug, scope: [:parent_id, :object_class], unless: lambda{|o| o.is_a?(CamaleonCms::CustomFieldGroup) }
|
23
23
|
|
24
24
|
scope :configuration, -> {where(parent_id: -1)}
|
25
25
|
scope :visible_group, -> {where(status: nil)}
|
@@ -15,7 +15,7 @@ class CamaleonCms::CustomFieldGroup < CamaleonCms::CustomField
|
|
15
15
|
has_many :metas, ->{ where(object_class: 'CustomFieldGroup')}, :class_name => "CamaleonCms::Meta", foreign_key: :objectid, dependent: :destroy
|
16
16
|
has_many :fields, -> {where(object_class: '_fields')}, :class_name => "CamaleonCms::CustomField", foreign_key: :parent_id, dependent: :destroy
|
17
17
|
belongs_to :site, :class_name => "CamaleonCms::Site", foreign_key: :parent_id
|
18
|
-
validates_uniqueness_of :slug, scope: [:object_class, :objectid]
|
18
|
+
validates_uniqueness_of :slug, scope: [:object_class, :objectid, :parent_id]
|
19
19
|
before_validation :before_validating
|
20
20
|
|
21
21
|
# add fields to group
|
@@ -18,6 +18,10 @@
|
|
18
18
|
<td>
|
19
19
|
<b><%= plugin["title"] %></b>
|
20
20
|
<br>
|
21
|
+
<% # sample:
|
22
|
+
# def cama_stripe_donation_plugin_options(args)
|
23
|
+
# args[:links] << link_to('Settings', admin_plugins_cama_stripe_donation_settings_path)
|
24
|
+
# end %>
|
21
25
|
<% hook_run(plugin, "plugin_options", r) if status %>
|
22
26
|
<%= raw r[:links].join(" | ") %>
|
23
27
|
</td>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<div class="panel-body ">
|
5
5
|
<div class="row">
|
6
6
|
<% if @post.draft? && !@post.parent.present? %>
|
7
|
-
<div class="col-md-12 input-submit"><%= f.submit "#{ (@post.new_record?) ? t('camaleon_cms.admin.page_title.create') : t('camaleon_cms.admin.button.
|
7
|
+
<div class="col-md-12 input-submit"><%= f.submit "#{ (@post.new_record?) ? t('camaleon_cms.admin.page_title.create') : t('camaleon_cms.admin.button.update')}", class: "btn btn-success btn-lg btn-block", onclick: "$('#post_status').val('#{@post.get_option('draft_status')}')" %></div>
|
8
8
|
<% elsif @post.draft? && @post.parent.present? %>
|
9
9
|
<div class="col-md-12 input-submit"><%= f.submit "#{ t('camaleon_cms.admin.button.recover') }", class: "btn btn-success btn-lg btn-block", onclick: "$('#post_status').val('#{@post.get_option('draft_status')}')" %></div>
|
10
10
|
<% else %>
|
@@ -52,10 +52,14 @@
|
|
52
52
|
<label for=""><%= t('camaleon_cms.admin.settings.security.captcha_user_register') %></label><br>
|
53
53
|
<%= check_box :options, :security_captcha_user_register, {checked: @site.security_user_register_captcha_enabled?, class: "icheckbox0"}, "true", "" %>
|
54
54
|
</div>
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
55
|
+
<div class="form-group">
|
56
|
+
<label for=""><%= t('camaleon_cms.admin.settings.security.need_validate_email') %></label><br>
|
57
|
+
<%= check_box :options, :need_validate_email, {checked: @site.need_validate_email?, class: "icheckbox0"}, "true", "" %>
|
58
|
+
</div>
|
59
|
+
<div class="form-group">
|
60
|
+
<label for=""><%= t('camaleon_cms.admin.settings.custom_fields_show_shortcodes', default: 'Show shortcodes of custom fields?') %></label><br>
|
61
|
+
<%= check_box :options, :custom_fields_show_shortcodes, {checked: @site.get_option('custom_fields_show_shortcodes', false), class: "icheckbox0"}, "true", "" %>
|
62
|
+
</div>
|
59
63
|
</div>
|
60
64
|
<script>
|
61
65
|
jQuery(function(){
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div id="tab-email_settings" class="<%= "active" if "email" == params[:tab] %> tab-pane ">
|
2
2
|
<div class="form-group">
|
3
3
|
<%= label_tag t('camaleon_cms.admin.settings.email_from') %><br>
|
4
|
-
<%= text_field :options, :
|
4
|
+
<%= text_field :options, :email_from, :class => "form-control", value: @site.get_option("email_from"), placeholder: 'My Name <my_email@gmyserver.com>' %>
|
5
5
|
</div>
|
6
6
|
<div class="form-group">
|
7
7
|
<%= label_tag t('camaleon_cms.admin.settings.email_cc') %><br>
|
@@ -9,8 +9,14 @@
|
|
9
9
|
</div>
|
10
10
|
<hr>
|
11
11
|
<div class="alert alert-info">Gmail Need Permissions:
|
12
|
-
<
|
13
|
-
|
12
|
+
<div class="pull-left">
|
13
|
+
<a href="http://know.mailsbestfriend.com/smtp_error_password_command_failed_5345714-1194946499.shtml" target="_blank">Check
|
14
|
+
here.</a>
|
15
|
+
</div>
|
16
|
+
<div class="pull-right">
|
17
|
+
<a id="cama_email_send_test_email" class="btn btn-xs btn-primary" href="<%= url_for(action: :test_email) %>"><%= t('camaleon_cms.admin.settings.send_test_email', default: 'Send Test Email') %></a>
|
18
|
+
</div>
|
19
|
+
</div>
|
14
20
|
<div class="form-group">
|
15
21
|
<%= label_tag t('camaleon_cms.admin.settings.email_enabled') %><br>
|
16
22
|
<%= check_box :options, :mailer_enabled, {checked: @site.get_option("mailer_enabled") == 1}, 1, 0 %>
|
@@ -33,4 +39,20 @@
|
|
33
39
|
<%= text_field :options, :email_pass, :class => "form-control required", value: @site.get_option("email_pass"), placeholder: 'mypassword' %>
|
34
40
|
</div>
|
35
41
|
</div>
|
36
|
-
</div>
|
42
|
+
</div>
|
43
|
+
<script>
|
44
|
+
jQuery(function(){ // test email configuration
|
45
|
+
$('#cama_email_send_test_email').click(function(){
|
46
|
+
var link = $(this);
|
47
|
+
var content = '<form><div><label for=""><%= t('camaleon_cms.admin.table.email', default: 'Email') %>: </label> <div class="input-group"><input class="form-control required email data-error-place-parent" name="email"><span class="input-group-btn"><button type="submit" class="btn btn-primary"><%= t('camaleon_cms.admin.settings.send_test_email') %></button></span></div></div></form>';
|
48
|
+
open_modal({title: link.text(), content: content, callback: function(modal){
|
49
|
+
var form = modal.find('form');
|
50
|
+
form.validate({submitHandler: function(){
|
51
|
+
showLoading();
|
52
|
+
$.get(link.attr('href'), form.serialize(), function(){ hideLoading(); }).complete(function(){ modal.modal('hide'); }).error(function(r){ $.fn.alert({title: r.responseText, type: 'error'}) });
|
53
|
+
}});
|
54
|
+
}});
|
55
|
+
return false;
|
56
|
+
});
|
57
|
+
});
|
58
|
+
</script>
|