camaleon_cms 2.9.0 → 2.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +12 -5
- data/app/apps/plugins/front_cache/admin_controller.rb +1 -0
- data/app/apps/plugins/front_cache/front_cache_helper.rb +23 -14
- data/app/apps/plugins/visibility_post/visibility_post_helper.rb +1 -1
- data/app/apps/themes/default/views/category.html.erb +1 -1
- data/app/apps/themes/default/views/post_tag.html.erb +1 -1
- data/app/apps/themes/default/views/post_type.html.erb +1 -1
- data/app/apps/themes/default/views/search.html.erb +1 -1
- data/app/apps/themes/new/views/category.html.erb +1 -1
- data/app/apps/themes/new/views/post_tag.html.erb +1 -1
- data/app/apps/themes/new/views/post_type.html.erb +1 -1
- data/app/apps/themes/new/views/search.html.erb +1 -1
- data/app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb +22 -5
- data/app/controllers/camaleon_cms/admin/appearances/widgets/assign_controller.rb +4 -2
- data/app/controllers/camaleon_cms/admin/appearances/widgets/main_controller.rb +3 -3
- data/app/controllers/camaleon_cms/admin/appearances/widgets/sidebar_controller.rb +2 -2
- data/app/controllers/camaleon_cms/admin/categories_controller.rb +9 -5
- data/app/controllers/camaleon_cms/admin/media_controller.rb +18 -5
- data/app/controllers/camaleon_cms/admin/post_tags_controller.rb +7 -4
- data/app/controllers/camaleon_cms/admin/posts/drafts_controller.rb +1 -1
- data/app/controllers/camaleon_cms/admin/posts_controller.rb +7 -4
- data/app/controllers/camaleon_cms/admin/sessions_controller.rb +2 -2
- data/app/controllers/camaleon_cms/admin/settings/custom_fields_controller.rb +33 -11
- data/app/controllers/camaleon_cms/admin/settings/post_types_controller.rb +13 -4
- data/app/controllers/camaleon_cms/admin/settings/sites_controller.rb +7 -4
- data/app/controllers/camaleon_cms/admin/settings_controller.rb +7 -4
- data/app/controllers/camaleon_cms/admin/user_roles_controller.rb +2 -2
- data/app/controllers/camaleon_cms/admin/users_controller.rb +23 -14
- data/app/controllers/camaleon_cms/admin_controller.rb +8 -0
- data/app/controllers/camaleon_cms/apps/plugins_admin_controller.rb +5 -0
- data/app/controllers/concerns/camaleon_cms/admin/custom_fields_concern.rb +29 -0
- data/app/decorators/camaleon_cms/post_decorator.rb +1 -1
- data/app/decorators/camaleon_cms/user_decorator.rb +1 -1
- data/app/helpers/camaleon_cms/admin/application_helper.rb +17 -17
- data/app/helpers/camaleon_cms/admin/post_type_helper.rb +25 -22
- data/app/helpers/camaleon_cms/comment_helper.rb +74 -40
- data/app/helpers/camaleon_cms/frontend/content_select_helper.rb +1 -1
- data/app/helpers/camaleon_cms/frontend/nav_menu_helper.rb +7 -7
- data/app/helpers/camaleon_cms/html_helper.rb +15 -1
- data/app/helpers/camaleon_cms/session_helper.rb +13 -1
- data/app/helpers/camaleon_cms/site_helper.rb +16 -3
- data/app/helpers/camaleon_cms/uploader_helper.rb +102 -51
- data/app/models/camaleon_cms/ability.rb +54 -102
- data/app/models/camaleon_cms/category.rb +2 -0
- data/app/models/camaleon_cms/custom_field.rb +14 -0
- data/app/models/camaleon_cms/custom_field_group.rb +38 -1
- data/app/models/camaleon_cms/custom_fields_relationship.rb +1 -1
- data/app/models/camaleon_cms/meta.rb +4 -0
- data/app/models/camaleon_cms/nav_menu.rb +2 -0
- data/app/models/camaleon_cms/nav_menu_item.rb +2 -0
- data/app/models/camaleon_cms/plugin.rb +2 -0
- data/app/models/camaleon_cms/post.rb +1 -1
- data/app/models/camaleon_cms/post_comment.rb +4 -0
- data/app/models/camaleon_cms/post_tag.rb +2 -0
- data/app/models/camaleon_cms/post_type.rb +3 -1
- data/app/models/camaleon_cms/site.rb +2 -0
- data/app/models/camaleon_cms/term_taxonomy.rb +1 -23
- data/app/models/camaleon_cms/theme.rb +2 -0
- data/app/models/camaleon_cms/user_role.rb +13 -0
- data/app/models/camaleon_cms/widget/main.rb +2 -0
- data/app/models/camaleon_cms/widget/sidebar.rb +2 -0
- data/app/models/camaleon_record.rb +40 -0
- data/app/models/concerns/camaleon_cms/custom_fields_read.rb +7 -7
- data/app/models/concerns/camaleon_cms/metas.rb +10 -6
- data/app/models/concerns/camaleon_cms/normalize_attrs.rb +26 -0
- data/app/models/concerns/camaleon_cms/user_methods.rb +6 -2
- data/app/models/current_request.rb +16 -0
- data/app/uploaders/camaleon_cms_aws_uploader.rb +8 -1
- data/app/validators/camaleon_cms/post_uniq_validator.rb +21 -8
- data/app/views/camaleon_cms/admin/appearances/nav_menus/_left_menu_items.html.erb +2 -2
- data/app/views/camaleon_cms/admin/appearances/widgets/main/form.html.erb +1 -1
- data/app/views/camaleon_cms/admin/categories/index.html.erb +1 -1
- data/app/views/camaleon_cms/admin/comments/index.html.erb +2 -2
- data/app/views/camaleon_cms/admin/comments/list.html.erb +1 -1
- data/app/views/camaleon_cms/admin/post_tags/index.html.erb +1 -1
- data/app/views/camaleon_cms/admin/posts/_sidebar.html.erb +1 -1
- data/app/views/camaleon_cms/admin/posts/index.html.erb +3 -3
- data/app/views/camaleon_cms/admin/search.html.erb +1 -1
- data/app/views/camaleon_cms/admin/settings/custom_fields/_render.html.erb +23 -2
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_select_eval.html.erb +1 -1
- data/app/views/camaleon_cms/admin/settings/custom_fields/form.html.erb +6 -5
- data/app/views/camaleon_cms/admin/settings/custom_fields/index.html.erb +1 -1
- data/app/views/camaleon_cms/admin/settings/post_types/index.html.erb +1 -1
- data/app/views/camaleon_cms/admin/settings/sites/index.html.erb +1 -1
- data/app/views/camaleon_cms/admin/user_roles/form.html.erb +79 -5
- data/app/views/camaleon_cms/admin/user_roles/index.html.erb +1 -1
- data/app/views/camaleon_cms/admin/users/index.html.erb +1 -1
- data/app/views/layouts/camaleon_cms/admin/_flash_messages.html.erb +2 -2
- data/config/initializers/custom_initializers.rb +2 -2
- data/config/locales/camaleon_cms/admin/ar.yml +6 -2
- data/config/locales/camaleon_cms/admin/de.yml +6 -2
- data/config/locales/camaleon_cms/admin/en.yml +6 -2
- data/config/locales/camaleon_cms/admin/es.yml +6 -2
- data/config/locales/camaleon_cms/admin/fr.yml +6 -2
- data/config/locales/camaleon_cms/admin/it.yml +6 -2
- data/config/locales/camaleon_cms/admin/nl.yml +7 -2
- data/config/locales/camaleon_cms/admin/pt-BR.yml +6 -2
- data/config/locales/camaleon_cms/admin/pt.yml +6 -2
- data/config/locales/camaleon_cms/admin/ru.yml +6 -2
- data/config/locales/camaleon_cms/admin/uk.yml +6 -2
- data/config/locales/camaleon_cms/admin/zh-CH.yml +6 -2
- data/db/migrate/20150611161134_post_table_into_utf8.rb +14 -14
- data/db/migrate/20150926095310_rename_column_posts.rb +3 -3
- data/db/migrate/20151212095328_add_confirm_token_to_users.rb +3 -3
- data/db/migrate/20160504155652_add_feature_to_posts.rb +1 -1
- data/db/migrate/20160504155653_move_first_name_of_users.rb +2 -2
- data/db/migrate/20160609121449_add_group_to_custom_field_values.rb +1 -1
- data/db/migrate/20161215202255_drop_user_relationship_table.rb +1 -1
- data/db/migrate/20180124132318_create_media.rb +1 -1
- data/db/migrate/20180704211100_adjust_field_length.rb +1 -1
- data/lib/camaleon_cms/version.rb +1 -1
- data/lib/ext/string.rb +3 -3
- data/lib/plugin_routes.rb +6 -6
- data/lib/tasks/custom_fields_roles.rake +56 -0
- metadata +65 -8
|
@@ -60,10 +60,10 @@
|
|
|
60
60
|
<td><%= link_to raw(f.the_status), {action: :index, s: f.status}, class: "cama_ajax_request" %> </td>
|
|
61
61
|
<td><%= f.author.fullname %></td>
|
|
62
62
|
<% if @post_type.manage_categories? %>
|
|
63
|
-
<td><%=
|
|
63
|
+
<td><%= post_type_list_taxonomy(f.categories, "success") %></td>
|
|
64
64
|
<% end %>
|
|
65
65
|
<% if @post_type.manage_tags? %>
|
|
66
|
-
<td><%=
|
|
66
|
+
<td><%= post_type_list_taxonomy(f.post_tags, "default") %></td>
|
|
67
67
|
<% end %>
|
|
68
68
|
<% extra_column = {post: f, post_type: @post_type, content: "", from_body: true}; hooks_run("list_post_extra_columns", extra_column) %>
|
|
69
69
|
<%= raw extra_column[:content] %>
|
|
@@ -107,6 +107,6 @@
|
|
|
107
107
|
</tbody>
|
|
108
108
|
</table>
|
|
109
109
|
<%= content_tag("div", raw(t('camaleon_cms.admin.message.data_found_list')), class: "alert alert-warning") if @posts.empty? %>
|
|
110
|
-
<%=
|
|
110
|
+
<%= cama_do_pagination(@posts) %>
|
|
111
111
|
</div>
|
|
112
112
|
</div>
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
</tbody>
|
|
63
63
|
</table>
|
|
64
64
|
<%= content_tag("div", raw(t('camaleon_cms.admin.message.data_found_list')), class: "alert alert-warning") if @items.empty? %>
|
|
65
|
-
<%=
|
|
65
|
+
<%= cama_do_pagination(@items, panel_class: "cama_ajax_request") %>
|
|
66
66
|
</div>
|
|
67
67
|
</div>
|
|
68
68
|
</div>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<%= field.name %>
|
|
24
24
|
<%= raw "<em class='text-danger'>*</em>" if field.options[:required].to_s.to_bool %>
|
|
25
25
|
<% if current_site.get_option('custom_fields_show_shortcodes') && ["post", "posttype", "category", "postTag", "site", "user", "navmenu", "theme"].include?(obj_class) %>
|
|
26
|
-
<small class="shortcode_field"><br><%=
|
|
26
|
+
<small class="shortcode_field"><br><%= cama_shortcode_print("[data field='#{field.slug}' #{"object='#{obj_class}' #{"id='#{record.id}'" if obj_class != "Theme" }" unless record.new_record?}]") %></small>
|
|
27
27
|
<% end %>
|
|
28
28
|
</label>
|
|
29
29
|
<% if field.description.present? %>
|
|
@@ -40,7 +40,28 @@
|
|
|
40
40
|
</div>
|
|
41
41
|
<% end %>
|
|
42
42
|
</div>
|
|
43
|
-
|
|
43
|
+
<%
|
|
44
|
+
field_options_json = if params[:field_options].present?
|
|
45
|
+
params[:field_options].to_unsafe_h.each_with_object([]) do |(_k, v), r|
|
|
46
|
+
r << v.each_with_object({}) do |(kk, vv), val|
|
|
47
|
+
val[kk.to_s] = (vv['values'].values rescue vv['values'])
|
|
48
|
+
end
|
|
49
|
+
end.to_json
|
|
50
|
+
else
|
|
51
|
+
record.get_fields_grouped(fields.pluck(:slug).uniq).to_json
|
|
52
|
+
end
|
|
53
|
+
%>
|
|
54
|
+
<script>
|
|
55
|
+
jQuery(function () {
|
|
56
|
+
build_custom_field_group(
|
|
57
|
+
<%= json_escape(field_options_json).html_safe %>,
|
|
58
|
+
'<%= group.id %>',
|
|
59
|
+
<%= json_escape(group_field_data.to_json).html_safe %>,
|
|
60
|
+
<%= group.is_repeat %>,
|
|
61
|
+
'<%= field_name %>'
|
|
62
|
+
);
|
|
63
|
+
});
|
|
64
|
+
</script>
|
|
44
65
|
</div>
|
|
45
66
|
</div>
|
|
46
67
|
<% if group.is_repeat %>
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
<div class="group-input-fields-content">
|
|
2
|
-
<%= select_tag "#{field_name}[#{field.slug}][values][]", instance_eval(field.options[:command].to_s.strip), class: "form-control input-value #{'required' if field.options[:required].to_s.to_bool}"
|
|
2
|
+
<%= select_tag "#{field_name}[#{field.slug}][values][]", instance_eval(field.options[:command].to_s.strip), class: "form-control input-value #{'required' if field.options[:required].to_s.to_bool}" %>
|
|
3
3
|
</div>
|
|
@@ -126,7 +126,11 @@
|
|
|
126
126
|
<div class="panel-body padding-0">
|
|
127
127
|
<% fields = @field_group.new_record? ? [] : @field_group.fields %>
|
|
128
128
|
<ul id="sortable-fields" class="clear list-unstyled">
|
|
129
|
-
<% fields.each do |field|
|
|
129
|
+
<% fields.each do |field|
|
|
130
|
+
@item_value = field
|
|
131
|
+
@item_options_value = field.options
|
|
132
|
+
@key = field.options['field_key']
|
|
133
|
+
%>
|
|
130
134
|
<li class="item">
|
|
131
135
|
<%= render "get_items" %>
|
|
132
136
|
</li>
|
|
@@ -148,7 +152,7 @@
|
|
|
148
152
|
<div class="panel-body">
|
|
149
153
|
<div id="content-items-default" class="form-group input-group-sm">
|
|
150
154
|
<% cama_custom_field_elements.each do |i,item| %>
|
|
151
|
-
<% next if item[:key] ==
|
|
155
|
+
<% next if item[:key] == 'select_eval' %>
|
|
152
156
|
<a id="item-<%= item[:key] %>" class="btn btn-default" href="<%= get_items_cama_admin_settings_custom_fields_path(item[:key]) %>" style="margin-bottom: 4px"><%= item[:label] %></a>
|
|
153
157
|
<% end %>
|
|
154
158
|
</div>
|
|
@@ -162,6 +166,3 @@
|
|
|
162
166
|
<% end %>
|
|
163
167
|
</div>
|
|
164
168
|
</div>
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
</tbody>
|
|
45
45
|
</table>
|
|
46
46
|
<%= content_tag("div", raw(t('camaleon_cms.admin.message.data_found_list')), class: "alert alert-warning") if @field_groups.empty? %>
|
|
47
|
-
<%=
|
|
47
|
+
<%= cama_do_pagination(@field_groups) %>
|
|
48
48
|
</div>
|
|
49
49
|
</div>
|
|
50
50
|
<!-- END BASIC TABLE SAMPLE -->
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
</tbody>
|
|
43
43
|
</table>
|
|
44
44
|
<%= content_tag("div", raw(t('camaleon_cms.admin.message.data_found_list')), class: "alert alert-warning") if @post_types.empty? %>
|
|
45
|
-
<%=
|
|
45
|
+
<%= cama_do_pagination(@post_types) %>
|
|
46
46
|
</div>
|
|
47
47
|
</div>
|
|
48
48
|
<!-- END BASIC TABLE SAMPLE -->
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
</tbody>
|
|
51
51
|
</table>
|
|
52
52
|
<%= content_tag("div", raw(t('camaleon_cms.admin.message.data_found_list')), class: "alert alert-warning") if @sites.empty? %>
|
|
53
|
-
<%=
|
|
53
|
+
<%= cama_do_pagination(@sites) %>
|
|
54
54
|
</div>
|
|
55
55
|
</div>
|
|
56
56
|
<!-- END BASIC TABLE SAMPLE -->
|
|
@@ -61,12 +61,12 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
|
|
63
63
|
<div class="">
|
|
64
|
-
<h5><%= t('camaleon_cms.admin.users.
|
|
64
|
+
<h5><%= t('camaleon_cms.admin.users.other_permissions')%></h5>
|
|
65
65
|
<div class="row">
|
|
66
66
|
<% values = rol_values_manager || {} %>
|
|
67
67
|
<% cama_get_roles_values[:manager].each do |value| %>
|
|
68
68
|
<div class="col-md-4">
|
|
69
|
-
<label><input type="checkbox" name="rol_values[manager][<%= value[:key] %>]" value="1" <%= "checked" if values[value[:key].to_sym].present? %> <%= "disabled" unless @user_role.editable? %> > <%= raw value[:label] %></label>
|
|
69
|
+
<label><input type="checkbox" name="rol_values[manager][<%= value[:key] %>]" value="1" <%= "checked" if values[value[:key].to_sym].present? %> <%= "disabled" unless @user_role.editable? %> <%= 'data-danger-select-eval=1' if value[:key].to_s == 'select_eval' %> > <%= raw value[:label] %></label>
|
|
70
70
|
<%= raw cama_html_tooltip(value[:description], 'right') if value[:description].present? %>
|
|
71
71
|
</div>
|
|
72
72
|
<% end %>
|
|
@@ -119,20 +119,94 @@
|
|
|
119
119
|
<!-- END PAGE CONTENT WRAPPER -->
|
|
120
120
|
</div>
|
|
121
121
|
|
|
122
|
+
<div class="modal fade" id="select-eval-danger-modal" tabindex="-1" role="dialog" aria-labelledby="select-eval-danger-modal-title" aria-hidden="true">
|
|
123
|
+
<div class="modal-dialog" role="document">
|
|
124
|
+
<div class="modal-content">
|
|
125
|
+
<div class="modal-header">
|
|
126
|
+
<button type="button" class="close" data-dismiss="modal" aria-label="<%= t('camaleon_cms.admin.button.cancel') %>">
|
|
127
|
+
<span aria-hidden="true">×</span>
|
|
128
|
+
</button>
|
|
129
|
+
<h4 class="modal-title" id="select-eval-danger-modal-title"><%= t('camaleon_cms.admin.users.select_eval_modal.title') %></h4>
|
|
130
|
+
</div>
|
|
131
|
+
<div class="modal-body">
|
|
132
|
+
<p><%= t('camaleon_cms.admin.users.select_eval_modal.description') %></p>
|
|
133
|
+
</div>
|
|
134
|
+
<div class="modal-footer">
|
|
135
|
+
<button type="button" class="btn btn-default" data-role="select-eval-cancel" data-dismiss="modal"><%= t('camaleon_cms.admin.button.cancel') %></button>
|
|
136
|
+
<button type="button" class="btn btn-danger" data-role="select-eval-confirm"><%= t('camaleon_cms.admin.button.accept') %></button>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
|
|
122
142
|
<script>
|
|
123
143
|
jQuery(function($){
|
|
144
|
+
var pendingDangerSelectEval = null
|
|
145
|
+
var pendingDangerSelectEvalConfirmed = false
|
|
146
|
+
var $allCheckboxes = $("#contents-checkbox input[type='checkbox']")
|
|
147
|
+
var $selectEvalCheckbox = $("#contents-checkbox input[data-danger-select-eval='1']")
|
|
148
|
+
var $selectEvalModal = $("#select-eval-danger-modal")
|
|
149
|
+
|
|
150
|
+
function openSelectEvalDangerModal(checkbox){
|
|
151
|
+
pendingDangerSelectEval = checkbox
|
|
152
|
+
pendingDangerSelectEvalConfirmed = false
|
|
153
|
+
checkbox.prop("checked", false)
|
|
154
|
+
$selectEvalModal.modal("show")
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
function shouldWarnForSelectEvalEnable(wasChecked){
|
|
158
|
+
return $selectEvalCheckbox.length && !$selectEvalCheckbox.prop("disabled") && !wasChecked
|
|
159
|
+
}
|
|
160
|
+
|
|
124
161
|
$("#contents-checkbox input:checked").each(function(){$(this).attr("data-checked", 1)})
|
|
162
|
+
|
|
163
|
+
$("#contents-checkbox").on("change", "input[data-danger-select-eval='1']", function(){
|
|
164
|
+
if($(this).prop("checked")){
|
|
165
|
+
openSelectEvalDangerModal($(this))
|
|
166
|
+
}
|
|
167
|
+
})
|
|
168
|
+
|
|
169
|
+
$selectEvalModal.find("[data-role='select-eval-confirm']").on("click", function(){
|
|
170
|
+
if(pendingDangerSelectEval){
|
|
171
|
+
pendingDangerSelectEval.prop("checked", true)
|
|
172
|
+
pendingDangerSelectEvalConfirmed = true
|
|
173
|
+
}
|
|
174
|
+
$selectEvalModal.modal("hide")
|
|
175
|
+
})
|
|
176
|
+
|
|
177
|
+
$(document).on("keydown", function(event){
|
|
178
|
+
if(event.which === 27 && $selectEvalModal.hasClass("in")){
|
|
179
|
+
$selectEvalModal.modal("hide")
|
|
180
|
+
}
|
|
181
|
+
})
|
|
182
|
+
|
|
183
|
+
$selectEvalModal.on("hidden.bs.modal", function(){
|
|
184
|
+
if(pendingDangerSelectEval && !pendingDangerSelectEvalConfirmed){
|
|
185
|
+
pendingDangerSelectEval.prop("checked", false)
|
|
186
|
+
}
|
|
187
|
+
pendingDangerSelectEval = null
|
|
188
|
+
pendingDangerSelectEvalConfirmed = false
|
|
189
|
+
})
|
|
190
|
+
|
|
125
191
|
$("#checked-actions a[data-type]").click(function(){
|
|
126
192
|
switch ($(this).attr("data-type")){
|
|
127
193
|
case 'all':
|
|
128
|
-
|
|
194
|
+
var wasSelectEvalChecked = $selectEvalCheckbox.prop('checked');
|
|
195
|
+
$allCheckboxes.prop('checked', true);
|
|
196
|
+
if(shouldWarnForSelectEvalEnable(wasSelectEvalChecked)){
|
|
197
|
+
openSelectEvalDangerModal($selectEvalCheckbox)
|
|
198
|
+
}
|
|
129
199
|
break;
|
|
130
200
|
case 'none':
|
|
131
|
-
$
|
|
201
|
+
$allCheckboxes.prop('checked', false);
|
|
132
202
|
break;
|
|
133
203
|
case 'restore':
|
|
134
|
-
|
|
204
|
+
var wasSelectEvalCheckedBeforeRestore = $selectEvalCheckbox.prop('checked');
|
|
205
|
+
$allCheckboxes.prop('checked', false);
|
|
135
206
|
$("#contents-checkbox input[data-checked]").prop('checked', true);
|
|
207
|
+
if(shouldWarnForSelectEvalEnable(wasSelectEvalCheckedBeforeRestore) && $selectEvalCheckbox.is("[data-checked]")){
|
|
208
|
+
openSelectEvalDangerModal($selectEvalCheckbox)
|
|
209
|
+
}
|
|
136
210
|
break;
|
|
137
211
|
}
|
|
138
212
|
return false;
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
</tbody>
|
|
46
46
|
</table>
|
|
47
47
|
<%= content_tag("div", raw(t('camaleon_cms.admin.message.data_found_list')), class: "alert alert-warning") if @user_roles.empty? %>
|
|
48
|
-
<%=
|
|
48
|
+
<%= cama_do_pagination(@user_roles) %>
|
|
49
49
|
|
|
50
50
|
</div>
|
|
51
51
|
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
</tbody>
|
|
54
54
|
</table>
|
|
55
55
|
<%= content_tag("div", raw(t('camaleon_cms.admin.message.data_found_list')), class: "alert alert-warning") if @users.empty? %>
|
|
56
|
-
<%=
|
|
56
|
+
<%= cama_do_pagination(@users) %>
|
|
57
57
|
</div>
|
|
58
58
|
</div>
|
|
59
59
|
<!-- END BASIC TABLE SAMPLE -->
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
</div>
|
|
7
7
|
</div>
|
|
8
8
|
<% end %>
|
|
9
|
-
<% if
|
|
9
|
+
<% if flash[:info].present? %>
|
|
10
10
|
<div class="flash_messages">
|
|
11
11
|
<div class="alert alert-info">
|
|
12
12
|
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
|
13
|
-
<%=
|
|
13
|
+
<%= flash[:info] %>
|
|
14
14
|
</div>
|
|
15
15
|
</div>
|
|
16
16
|
<% end %>
|
|
@@ -4,10 +4,10 @@ Rails.application.config.to_prepare do |_config|
|
|
|
4
4
|
next unless ap['path'].present?
|
|
5
5
|
|
|
6
6
|
f = File.join(ap['path'], 'config', 'initializer.rb')
|
|
7
|
-
|
|
7
|
+
load f if File.exist?(f)
|
|
8
8
|
|
|
9
9
|
f = File.join(ap['path'], 'config', 'custom_models.rb')
|
|
10
|
-
|
|
10
|
+
load f if File.exist?(f)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
# This block can be overridden in the app initializer to wrap the sleep and delete_file in an async job,
|
|
@@ -587,7 +587,10 @@ ar:
|
|
|
587
587
|
requires_different_email: 'Requires different email'
|
|
588
588
|
created_pending_validate_email: "The user has been created, please confirm your email"
|
|
589
589
|
new_photo: 'New Photo'
|
|
590
|
-
|
|
590
|
+
other_permissions: 'Others permissions'
|
|
591
|
+
select_eval_modal:
|
|
592
|
+
title: 'صلاحية خطيرة'
|
|
593
|
+
description: 'صلاحية select_eval تسمح بتنفيذ كود ديناميكي من خيارات الحقول المخصصة. تفعيلها قد يؤدي الى تنفيذ كود عشوائي، كشف البيانات، والسيطرة الكاملة على الموقع عند تقييم محتوى غير موثوق.'
|
|
591
594
|
profile: 'Profile'
|
|
592
595
|
slogan: 'Slogan'
|
|
593
596
|
type_contents: 'Type of Contents'
|
|
@@ -613,7 +616,7 @@ ar:
|
|
|
613
616
|
media: 'Permission to the midsection'
|
|
614
617
|
publish: 'You need permits Create or Edit, Edit Other, Edit, Publish, to enable this permission'
|
|
615
618
|
themes: 'Themes permission to section'
|
|
616
|
-
widgets: '
|
|
619
|
+
widgets: 'Allow editing widgets, including saving unsanitized code.'
|
|
617
620
|
menus: 'Permission to the Menu section'
|
|
618
621
|
plugins: 'Permission to the Plugins section'
|
|
619
622
|
users: 'Permission to create, edit, delete Users'
|
|
@@ -664,6 +667,7 @@ ar:
|
|
|
664
667
|
error_created: "No created sidebar."
|
|
665
668
|
error_updated: "No Update sidebar."
|
|
666
669
|
error_deleted: "Sidebar deleted."
|
|
670
|
+
warning: "Warning: Widgets can store unsanitized HTML and Javascript. Only enter code that you understand and trust."
|
|
667
671
|
intro:
|
|
668
672
|
profile: "In this place you can see your profile options."
|
|
669
673
|
content: "This block contains all content groups of your site. Each content can have different structure configured in settings => Content Groups"
|
|
@@ -586,7 +586,10 @@ de:
|
|
|
586
586
|
requires_different_email: 'Erfordert eine andere Email'
|
|
587
587
|
created_pending_validate_email: 'Der Benutzer wurde erstellt, bitte bestätige deine Email.'
|
|
588
588
|
new_photo: 'Neues Bild'
|
|
589
|
-
|
|
589
|
+
other_permissions: 'Rechte Anderer'
|
|
590
|
+
select_eval_modal:
|
|
591
|
+
title: 'Gefahrliche Berechtigung'
|
|
592
|
+
description: 'Die Berechtigung select_eval erlaubt die Ausfuhrung von dynamischem Code aus Optionen benutzerdefinierter Felder. Das Aktivieren kann zu beliebiger Codeausfuhrung, Datenoffenlegung und einer vollstandigen Kompromittierung der Website fuhren, wenn nicht vertrauenswurdige Inhalte ausgewertet werden.'
|
|
590
593
|
profile: 'Profil'
|
|
591
594
|
slogan: 'Slogan'
|
|
592
595
|
type_contents: 'Art der Inhalte'
|
|
@@ -612,7 +615,7 @@ de:
|
|
|
612
615
|
media: 'Rechte für den Mittelbereich'
|
|
613
616
|
publish: 'Du benötigst die Rechte Erstellen oder Verarbeiten, Andere Bearbeiten, Bearbeiten, Veröffentlichen, um dieses Recht zu aktivieren'
|
|
614
617
|
themes: 'Recht für den Themes-Bereich'
|
|
615
|
-
widgets: 'Widgets
|
|
618
|
+
widgets: 'Ermöglichen Sie die Bearbeitung von Widgets, einschließlich des Speicherns von nicht bereinigtem Code.'
|
|
616
619
|
menus: 'Recht für den Menübereich'
|
|
617
620
|
plugins: 'Recht für den Plugin-Bereich'
|
|
618
621
|
users: 'Recht zum Erstellen, Bearbeiten und Löschen von Benutzern'
|
|
@@ -663,6 +666,7 @@ de:
|
|
|
663
666
|
error_created: 'Fehler beim Erstellen der Sidebar.'
|
|
664
667
|
error_updated: 'Fehler beim Aktualisieren der Sidebar.'
|
|
665
668
|
error_deleted: 'Fehler beim Löschen der Sidebar.'
|
|
669
|
+
warning: "Warnung: Widgets können nicht bereinigtes HTML und Javascript speichern. Geben Sie nur Code ein, den Sie verstehen und dem Sie vertrauen."
|
|
666
670
|
intro:
|
|
667
671
|
profile: 'Hier kannst du Einstellungen für dein Profil vornehmen.'
|
|
668
672
|
content: 'Dieser Block enthält die Inhaltsgruppen deiner Seite. Jeder Inhalt kann auf verschiedene Weise konfiguriert werden. Siehe Einstellungen => Inhaltsgruppen'
|
|
@@ -640,7 +640,10 @@ en:
|
|
|
640
640
|
role_can_not_be_deleted: Role can not be deleted
|
|
641
641
|
user_can_not_delete_own_account: You cannot delete your own account
|
|
642
642
|
new_photo: 'New Photo'
|
|
643
|
-
|
|
643
|
+
other_permissions: 'Other permissions'
|
|
644
|
+
select_eval_modal:
|
|
645
|
+
title: 'Dangerous Permission'
|
|
646
|
+
description: 'The select_eval permission allows execution of dynamic code from custom field options. Enabling it can lead to arbitrary code execution, data exposure, and full site compromise if untrusted content is evaluated.'
|
|
644
647
|
profile: 'Profile'
|
|
645
648
|
slogan: 'Slogan'
|
|
646
649
|
type_contents: 'Type of Contents'
|
|
@@ -666,7 +669,7 @@ en:
|
|
|
666
669
|
media: 'Permission to the midsection'
|
|
667
670
|
publish: 'You need permits Create or Edit, Edit Other, Edit, Publish, to enable this permission'
|
|
668
671
|
themes: 'Themes permission to section'
|
|
669
|
-
widgets: '
|
|
672
|
+
widgets: 'Allow editing widgets, including saving unsanitized code.'
|
|
670
673
|
menus: 'Permission to the Menu section'
|
|
671
674
|
plugins: 'Permission to the Plugins section'
|
|
672
675
|
users: 'Permission to create, edit, delete Users'
|
|
@@ -728,6 +731,7 @@ en:
|
|
|
728
731
|
error_created: "No created sidebar."
|
|
729
732
|
error_updated: "No Update sidebar."
|
|
730
733
|
error_deleted: "Sidebar deleted."
|
|
734
|
+
warning: "Warning: Widgets can store unsanitized HTML and Javascript. Only enter code that you understand and trust."
|
|
731
735
|
intro:
|
|
732
736
|
profile: "In this place you can see your profile options."
|
|
733
737
|
content: "This block contains all content groups of your site. Each content can have different structure configured in settings => Content Groups"
|
|
@@ -561,7 +561,10 @@ es:
|
|
|
561
561
|
requires_different_email: 'Requiere diferente correo electrónico'
|
|
562
562
|
created_pending_validate_email: 'El usuario ha sido creado, por favor confirma tu email'
|
|
563
563
|
new_photo: 'Nueva Fotografía'
|
|
564
|
-
|
|
564
|
+
other_permissions: 'Otros permisos'
|
|
565
|
+
select_eval_modal:
|
|
566
|
+
title: 'Permiso peligroso'
|
|
567
|
+
description: 'El permiso select_eval permite ejecutar codigo dinamico desde opciones de campos personalizados. Al habilitarlo, puede provocar ejecucion arbitraria de codigo, exposicion de datos y compromiso total del sitio si se evalua contenido no confiable.'
|
|
565
568
|
profile: 'Perfil'
|
|
566
569
|
slogan: 'Eslogan'
|
|
567
570
|
type_contents: 'Tipo de Contenidos'
|
|
@@ -587,7 +590,7 @@ es:
|
|
|
587
590
|
media: 'Permiso a la seccion Media'
|
|
588
591
|
publish: 'Necesitas tener los permisos de Crear o Editar, Editar Otros, Editar Publicar, para habilitar este permiso'
|
|
589
592
|
themes: 'Permiso a la seccion Plantillas'
|
|
590
|
-
widgets: '
|
|
593
|
+
widgets: 'Permitir la edición de widgets, incluido el almacenamiento de código sin desinfectar.'
|
|
591
594
|
menus: 'Permiso a la seccion Menu'
|
|
592
595
|
plugins: 'Permiso a la seccion Plugins'
|
|
593
596
|
users: 'Permiso para crear, editar, eliminar Usuarios'
|
|
@@ -629,6 +632,7 @@ es:
|
|
|
629
632
|
error_created: 'No se ha creado el Widget.'
|
|
630
633
|
error_updated: 'No se ha actualizado el Widget.'
|
|
631
634
|
not_registered_widgets: 'No existen widgets registrados'
|
|
635
|
+
warning: "Advertencia: Los widgets pueden almacenar HTML y Javascript sin desinfectar. Ingrese solo el código que comprenda y en el que confíe."
|
|
632
636
|
appearances:
|
|
633
637
|
nav_menus:
|
|
634
638
|
menu_items:
|
|
@@ -567,7 +567,10 @@ fr:
|
|
|
567
567
|
requires_different_email: 'Un email différent est requis'
|
|
568
568
|
created_pending_validate_email: "L'utilisateur a été créé, veuillez confirmer votre email"
|
|
569
569
|
new_photo: 'Nouvelle photo'
|
|
570
|
-
|
|
570
|
+
other_permissions: 'Autres permissions'
|
|
571
|
+
select_eval_modal:
|
|
572
|
+
title: 'Permission dangereuse'
|
|
573
|
+
description: 'La permission select_eval autorise l execution de code dynamique depuis les options des champs personnalises. Son activation peut entrainer l execution de code arbitraire, l exposition de donnees et la compromission complete du site si du contenu non fiable est evalue.'
|
|
571
574
|
profile: 'Profil'
|
|
572
575
|
slogan: 'Slogan'
|
|
573
576
|
type_contents: 'Type de contenus'
|
|
@@ -593,7 +596,7 @@ fr:
|
|
|
593
596
|
media: 'Permission pour la section média'
|
|
594
597
|
publish: 'Permissions Créer ou Editer, Editer autre, Editer, Publier, requises pour activer cette permission'
|
|
595
598
|
themes: 'Permission pour la section thèmes'
|
|
596
|
-
widgets:
|
|
599
|
+
widgets: "Autoriser la modification des widgets, y compris l'enregistrement de code non nettoyé."
|
|
597
600
|
menus: 'Permission pour la section menus'
|
|
598
601
|
plugins: 'Permission pour la section plugins'
|
|
599
602
|
users: 'Permission de créer, éditer et supprimer des utilisateurs'
|
|
@@ -644,6 +647,7 @@ fr:
|
|
|
644
647
|
error_created: "Sidebar non créée."
|
|
645
648
|
error_updated: "Sidebar non mise à jour."
|
|
646
649
|
error_deleted: "Sidebar supprimée."
|
|
650
|
+
warning: "Attention : les widgets peuvent stocker du HTML et du Javascript non nettoyés. Entrez uniquement du code que vous comprenez et auquel vous faites confiance."
|
|
647
651
|
intro:
|
|
648
652
|
profile: "Ici vous pouvez voir les options de votre profil."
|
|
649
653
|
content: "Ce bloc contient tout les groupes de contenu de votre site. Chaque contenu peut avoir une structure différente configurable via Paramètres => Groupes de contenu"
|
|
@@ -565,7 +565,10 @@ it:
|
|
|
565
565
|
requires_different_username: 'Inserisci uno username diverso'
|
|
566
566
|
requires_different_email: 'Inserisci una email diversa'
|
|
567
567
|
new_photo: 'Nuova foto'
|
|
568
|
-
|
|
568
|
+
other_permissions: 'Altri permessi'
|
|
569
|
+
select_eval_modal:
|
|
570
|
+
title: 'Permesso pericoloso'
|
|
571
|
+
description: 'Il permesso select_eval consente l esecuzione di codice dinamico dalle opzioni dei campi personalizzati. Se abilitato, puo causare esecuzione arbitraria di codice, esposizione dei dati e compromissione completa del sito quando viene valutato contenuto non attendibile.'
|
|
569
572
|
profile: 'Profilo'
|
|
570
573
|
slogan: 'Slogan'
|
|
571
574
|
type_contents: 'Tipi di contenuti'
|
|
@@ -591,7 +594,7 @@ it:
|
|
|
591
594
|
media: 'Permesso per la midsection'
|
|
592
595
|
publish: 'Devi abilitare Crea o Modifica, Modifica Altro, Modifica, Pubblica, per abilitare questi permessi'
|
|
593
596
|
themes: 'Permessi per la sezione temi'
|
|
594
|
-
widgets: '
|
|
597
|
+
widgets: 'Consenti la modifica dei widget, incluso il salvataggio di codice non disinfettato.'
|
|
595
598
|
menus: 'Permessi per la sezione menù'
|
|
596
599
|
plugins: 'Permessi per la sezione plugin'
|
|
597
600
|
users: 'Permesso di creare, modificare e cancellare utenti'
|
|
@@ -633,3 +636,4 @@ it:
|
|
|
633
636
|
error_created: 'Widget non creato.'
|
|
634
637
|
error_updated: 'Widget non aggiornato.'
|
|
635
638
|
not_registered_widgets: 'Non ci sono widget registrati'
|
|
639
|
+
warning: "Attenzione: i widget possono memorizzare HTML e Javascript non sanificati. Inserisci solo il codice che comprendi e di cui ti fidi."
|
|
@@ -563,7 +563,10 @@ nl:
|
|
|
563
563
|
requires_different_email: 'Andere e-mail verplicht'
|
|
564
564
|
created_pending_validate_email: "Gebruiker is aangemaakt, bevestig uw e-mail"
|
|
565
565
|
new_photo: 'Nieuwe foto'
|
|
566
|
-
|
|
566
|
+
other_permissions: 'Andere rechten'
|
|
567
|
+
select_eval_modal:
|
|
568
|
+
title: 'Gevaarlijke toestemming'
|
|
569
|
+
description: 'De toestemming select_eval staat het uitvoeren van dynamische code toe vanuit opties van aangepaste velden. Inschakelen kan leiden tot willekeurige code-uitvoering, blootstelling van gegevens en volledige compromittering van de site als niet-vertrouwde inhoud wordt ge-evalueerd.'
|
|
567
570
|
profile: 'Profiel'
|
|
568
571
|
slogan: 'Slogan'
|
|
569
572
|
type_contents: 'Type inhoud'
|
|
@@ -589,7 +592,7 @@ nl:
|
|
|
589
592
|
media: 'Toegang tot media'
|
|
590
593
|
publish: 'Je hebt de volgende rechten toevoegen en bewerken, bewerk andere, bewerk gepubliceerd nodig om dit aan te passen'
|
|
591
594
|
themes: "Toegang tot thema's"
|
|
592
|
-
widgets: '
|
|
595
|
+
widgets: 'Sta het bewerken van widgets toe, inclusief het opslaan van niet-opgeschoonde code.'
|
|
593
596
|
menus: "Toegang tot menu's"
|
|
594
597
|
plugins: 'Toegang tot plugins'
|
|
595
598
|
users: 'Rechten om gebruikers aan te maken, te bewerken of te verwijderen'
|
|
@@ -640,6 +643,8 @@ nl:
|
|
|
640
643
|
error_created: "FOUT! Sidebar is niet aangemaakt."
|
|
641
644
|
error_updated: "FOUT! Sidebar is niet bijgewerkt."
|
|
642
645
|
error_deleted: "Sidebar verwijderd."
|
|
646
|
+
warning: "Waarschuwing: Widgets kunnen niet-opgeschoonde HTML en Javascript opslaan. Voer alleen code in die u begrijpt en vertrouwt."
|
|
647
|
+
|
|
643
648
|
intro:
|
|
644
649
|
profile: "Hier kun je profiel opties bekijken."
|
|
645
650
|
content: "Dit blok bevat alle inhoud types van uw site. Elk inhoud type kan in een andere structuur geconfigureerd worden in instellingen => Inhoud type's hebben"
|
|
@@ -555,7 +555,10 @@ pt-BR:
|
|
|
555
555
|
requires_different_username: 'Requer usuário diferente'
|
|
556
556
|
requires_different_email: 'Requer email diferente'
|
|
557
557
|
new_photo: 'Nova foto'
|
|
558
|
-
|
|
558
|
+
other_permissions: 'Outras permissões'
|
|
559
|
+
select_eval_modal:
|
|
560
|
+
title: 'Permissao perigosa'
|
|
561
|
+
description: 'A permissao select_eval permite executar codigo dinamico a partir das opcoes de campos personalizados. Ao habilitar, pode causar execucao arbitraria de codigo, exposicao de dados e comprometimento total do site caso conteudo nao confiavel seja avaliado.'
|
|
559
562
|
profile: 'Perfil'
|
|
560
563
|
slogan: 'Slogan'
|
|
561
564
|
type_contents: 'TIpo de conteúdos'
|
|
@@ -581,7 +584,7 @@ pt-BR:
|
|
|
581
584
|
media: 'Permissão para o meio'
|
|
582
585
|
publish: 'Você precisa permitir Criar ou Editar, Editar Outro, Editar, Publicar , para habilitar esta permissão'
|
|
583
586
|
themes: 'Permissão para a seção Temas'
|
|
584
|
-
widgets: '
|
|
587
|
+
widgets: 'Permitir a edição de widgets, incluindo salvar código não higienizado.'
|
|
585
588
|
menus: 'Permissão para a seção Menu'
|
|
586
589
|
plugins: 'Permissão para a seção Plugins'
|
|
587
590
|
users: 'Permissão to criar, editar, excluir Usuários'
|
|
@@ -623,6 +626,7 @@ pt-BR:
|
|
|
623
626
|
error_created: 'Nenhum Widget criado.'
|
|
624
627
|
error_updated: 'Nenhum Widget atualizado.'
|
|
625
628
|
not_registered_widgets: 'Não há widgets registrados'
|
|
629
|
+
warning: "Aviso: Os widgets podem armazenar HTML e Javascript não higienizados. Insira apenas o código que você entende e confia."
|
|
626
630
|
intro:
|
|
627
631
|
profile: "Neste lugar você pode ver suas opções de perfis."
|
|
628
632
|
content: "Este bloco contém todo o grupo de conteúdo de seu site. Cada conteúdo pode ter uma estrutura diferente configurada em Configurações => Grupos de conteúdo"
|
|
@@ -553,7 +553,10 @@ pt:
|
|
|
553
553
|
requires_different_username: 'Requer utilizador diferente'
|
|
554
554
|
requires_different_email: 'Requer email diferente'
|
|
555
555
|
new_photo: 'Nova foto'
|
|
556
|
-
|
|
556
|
+
other_permissions: 'Outras permissões'
|
|
557
|
+
select_eval_modal:
|
|
558
|
+
title: 'Permissao perigosa'
|
|
559
|
+
description: 'A permissao select_eval permite executar codigo dinamico a partir das opcoes dos campos personalizados. Ao ativar, pode causar execucao arbitraria de codigo, exposicao de dados e comprometimento total do site se conteudo nao confiavel for avaliado.'
|
|
557
560
|
profile: 'Perfil'
|
|
558
561
|
slogan: 'Slogan'
|
|
559
562
|
type_contents: 'TIpo de conteúdos'
|
|
@@ -579,7 +582,7 @@ pt:
|
|
|
579
582
|
media: 'Permissão para o meio'
|
|
580
583
|
publish: 'Permissão para Criar ou Editar, Editar Outro, Editar, Publicar, para habilitar esta permissão'
|
|
581
584
|
themes: 'Permissão para a secção Temas'
|
|
582
|
-
widgets: '
|
|
585
|
+
widgets: 'Permite a edição de widgets, incluindo salvar código não higienizado.'
|
|
583
586
|
menus: 'Permissão para a secção Menu'
|
|
584
587
|
plugins: 'Permissão para a secção Plugins'
|
|
585
588
|
users: 'Permissão para criar, editar, apagar utilizadores'
|
|
@@ -621,6 +624,7 @@ pt:
|
|
|
621
624
|
error_created: 'Nenhum Widget criado.'
|
|
622
625
|
error_updated: 'Nenhum Widget atualizado.'
|
|
623
626
|
not_registered_widgets: 'Não há widgets registados'
|
|
627
|
+
warning: "Aviso: Os widgets podem armazenar HTML e Javascript não higienizados. Introduza apenas o código que compreende e em que confia."
|
|
624
628
|
intro:
|
|
625
629
|
profile: "Neste lugar pode ver suas opções de perfis."
|
|
626
630
|
content: "Este bloco contém todo o grupo de conteúdo de seu site. Cada conteúdo pode ter uma estrutura diferente configurada em Configurações => Grupos de conteúdo"
|
|
@@ -574,7 +574,10 @@ ru:
|
|
|
574
574
|
requires_different_email: 'Требуется другая эл. почта'
|
|
575
575
|
created_pending_validate_email: "Пользователь был создан, пожалуйста, подтвердите вашу электронную почту"
|
|
576
576
|
new_photo: 'Новая фотография'
|
|
577
|
-
|
|
577
|
+
other_permissions: 'Другие разрешения'
|
|
578
|
+
select_eval_modal:
|
|
579
|
+
title: 'Опасное право доступа'
|
|
580
|
+
description: 'Поле типа select_eval позволяет выполнять динамический код из параметров, введённых пользователем. Это может привести к произвольному выполнению кода, утечке данных (в том числе паролей и ключей авторизации) и полной компрометации сайта. Включайте это правл доступа только для доверенных пользователей!'
|
|
578
581
|
profile: 'Профиль'
|
|
579
582
|
slogan: 'Слоган'
|
|
580
583
|
type_contents: 'Тип контента'
|
|
@@ -600,7 +603,7 @@ ru:
|
|
|
600
603
|
media: 'Permission to the midsection'
|
|
601
604
|
publish: 'Вам требуется разрешение на Создание, Редактирование, Редактирование других или Опубликовать чтобы включить это разрешение'
|
|
602
605
|
themes: 'Разрешение тем на раздел'
|
|
603
|
-
widgets: '
|
|
606
|
+
widgets: 'Разрешите редактирование виджетов, в том числе сохранение неочищенного кода.'
|
|
604
607
|
menus: 'Разрешение на раздел Меню'
|
|
605
608
|
plugins: 'Разрешение на раздел Плагинов'
|
|
606
609
|
users: 'Разрешение на создание, редактирование и удаление Пользователей'
|
|
@@ -651,6 +654,7 @@ ru:
|
|
|
651
654
|
error_created: "Боковая панель не создана."
|
|
652
655
|
error_updated: "Боковая панель не обновлена."
|
|
653
656
|
error_deleted: "Боковая панель удалена."
|
|
657
|
+
warning: "Предупреждение: Виджеты могут хранить неочищенный HTML и Javascript. Вводите только тот код, который вы понимаете и которому доверяете."
|
|
654
658
|
intro:
|
|
655
659
|
profile: "Здесь вы можете увидеть настройки вашего профиля."
|
|
656
660
|
content: "Этот блок содержит все группы контента вашего сайта. Каждый контент может иметь различную структуру, их можно настроить в Настройки => Группа контентов"
|