camaleon_cms 2.7.5 → 2.8.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 +20 -27
- data/app/apps/plugins/attack/config/config.json +2 -2
- data/app/apps/plugins/front_cache/admin_controller.rb +4 -6
- data/app/apps/plugins/front_cache/config/config.json +1 -1
- data/app/apps/plugins/front_cache/config/locales/translation.yml +1 -1
- data/app/apps/plugins/front_cache/front_cache_helper.rb +3 -3
- data/app/apps/plugins/visibility_post/config/config.json +2 -2
- data/app/apps/themes/camaleon_first/assets/js/main.js +1 -1
- data/app/apps/themes/camaleon_first/views/index.html.erb +1 -1
- data/app/apps/themes/default/assets/js/main.js +1 -1
- data/app/apps/themes/new/assets/js/main.js +1 -1
- data/app/apps/themes/new/views/index.html.erb +4 -4
- data/app/apps/themes/new/views/layouts/_footer.html.erb +2 -2
- data/app/assets/javascripts/camaleon_cms/admin/admin-basic-manifest.js +2 -2
- data/app/assets/javascripts/camaleon_cms/admin/admin-manifest.js +1 -1
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/de.js +2 -2
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/en.js +2 -2
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/fr.js +2 -2
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/it.js +2 -2
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/nl.js +1 -1
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/pt-BR.js +2 -2
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/ru.js +2 -2
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/uk.js +2 -2
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/zh-CN.js +1 -1
- data/app/assets/javascripts/camaleon_cms/admin/uploader/_media_manager.js +2 -2
- data/app/assets/stylesheets/camaleon_cms/admin/admin-manifest.css +2 -1
- data/app/assets/stylesheets/camaleon_cms/admin/{colorpicker.css.scss → colorpicker.css} +5 -5
- data/app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb +15 -10
- data/app/controllers/camaleon_cms/admin/installers_controller.rb +1 -1
- data/app/controllers/camaleon_cms/admin/media_controller.rb +12 -9
- data/app/controllers/camaleon_cms/admin/settings_controller.rb +1 -1
- data/app/controllers/camaleon_cms/camaleon_controller.rb +8 -2
- data/app/decorators/camaleon_cms/application_decorator.rb +8 -0
- data/app/decorators/camaleon_cms/category_decorator.rb +1 -1
- data/app/decorators/camaleon_cms/post_decorator.rb +5 -5
- data/app/decorators/camaleon_cms/post_type_decorator.rb +3 -3
- data/app/decorators/camaleon_cms/term_taxonomy_decorator.rb +1 -1
- data/app/helpers/camaleon_cms/admin/category_helper.rb +1 -1
- data/app/helpers/camaleon_cms/frontend/nav_menu_helper.rb +12 -11
- data/app/helpers/camaleon_cms/html_helper.rb +7 -7
- data/app/helpers/camaleon_cms/plugins_helper.rb +1 -1
- data/app/helpers/camaleon_cms/session_helper.rb +1 -1
- data/app/helpers/camaleon_cms/short_code_helper.rb +1 -1
- data/app/helpers/camaleon_cms/site_helper.rb +1 -1
- data/app/helpers/camaleon_cms/theme_helper.rb +1 -1
- data/app/helpers/camaleon_cms/uploader_helper.rb +60 -17
- data/app/models/camaleon_cms/ability.rb +1 -1
- data/app/models/camaleon_cms/custom_field_group.rb +3 -6
- data/app/models/camaleon_cms/nav_menu.rb +1 -1
- data/app/models/camaleon_cms/post.rb +1 -1
- data/app/models/camaleon_cms/post_default.rb +1 -1
- data/app/models/camaleon_cms/post_type.rb +8 -8
- data/app/models/camaleon_cms/site.rb +1 -1
- data/app/models/camaleon_cms/term_taxonomy.rb +13 -0
- data/app/models/concerns/camaleon_cms/custom_fields_read.rb +11 -22
- data/app/models/concerns/camaleon_cms/site_default_settings.rb +1 -1
- data/app/uploaders/camaleon_cms_aws_uploader.rb +3 -3
- data/app/uploaders/camaleon_cms_local_uploader.rb +10 -4
- data/app/uploaders/camaleon_cms_uploader.rb +13 -0
- data/app/validators/camaleon_cms/post_uniq_validator.rb +11 -12
- data/app/validators/camaleon_cms/uniq_validator.rb +9 -3
- data/app/views/camaleon_cms/admin/media/index.html.erb +1 -1
- data/app/views/camaleon_cms/admin/settings/_email_settings.html.erb +2 -2
- data/app/views/camaleon_cms/admin/settings/custom_fields/_get_items.html.erb +1 -2
- data/app/views/camaleon_cms/admin/settings/custom_fields/_render.html.erb +2 -2
- data/app/views/camaleon_cms/default_theme/index.html.erb +4 -4
- data/app/views/camaleon_cms/default_theme/sitemap.xml.builder +3 -3
- data/app/views/layouts/camaleon_cms/admin/_footer.html.erb +1 -1
- data/config/initializers/custom_initializers.rb +14 -0
- data/config/initializers/sass.rb +12 -16
- data/lib/camaleon_cms/engine.rb +2 -2
- data/lib/camaleon_cms/version.rb +1 -1
- data/lib/ext/hash.rb +1 -1
- data/lib/ext/string.rb +2 -2
- data/lib/generators/camaleon_cms/theme_template/assets/js/main.js +1 -1
- metadata +53 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c57a186f81cc44f2311424539229759e1dc5a95605dc6a109c0d1ebbaf25723
|
4
|
+
data.tar.gz: '086922b2cfae7224ff3825408337292376ab32efd810fb9efae9838bf3f8e680'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5093f50d36c20a5f59cb88036ed7b9786e4c1fb293f1e51f212ea896390b8ce5d3e645965087ca7cd57f0aa6f4e9a4cf4848f3da5da21b6cd382e3bbb6354d9a
|
7
|
+
data.tar.gz: b34b4f71e8eb82317c09b2ff2f687751f2c03af864824d8468eb108248b59570d88313e691bc959251dcaf74d218d4f0a2ec76558068fd5e5087465c20bdf02e
|
data/README.md
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# CAMALEON CMS
|
2
2
|
|
3
|
-
![](
|
3
|
+
![](https://camaleon.website/media/132/logo2.png)
|
4
4
|
|
5
5
|
[![Test supported versions](https://github.com/owen2345/camaleon-cms/actions/workflows/current_support.yml/badge.svg)](https://github.com/owen2345/camaleon-cms/actions/workflows/current_support.yml)
|
6
6
|
![](https://img.shields.io/badge/Support-Immediate-green.svg)
|
7
7
|
|
8
|
-
[Website](
|
8
|
+
[Website](https://camaleon.website/)
|
9
9
|
|
10
|
-
[Documentation](
|
10
|
+
[Documentation](https://camaleon.website/docs.html)
|
11
11
|
|
12
|
-
[Demonstration](
|
12
|
+
[Demonstration](https://camaleon.website/plugins/demo_manage/)
|
13
13
|
|
14
14
|
## About
|
15
15
|
|
@@ -18,10 +18,10 @@ Camaleon CMS is a dynamic and advanced content management system based on Ruby o
|
|
18
18
|
Camaleon CMS is a flexible manager where you can build your custom content structure without coding anything by custom fields and custom contents type.
|
19
19
|
|
20
20
|
To download or publish themes go to Theme store:
|
21
|
-
|
21
|
+
https://camaleon.website/store/themes
|
22
22
|
|
23
23
|
To download or publish plugins go to Plugin store:
|
24
|
-
|
24
|
+
https://camaleon.website/store/plugins
|
25
25
|
|
26
26
|
![](screenshot.png)
|
27
27
|
|
@@ -86,9 +86,9 @@ http://camaleon.tuzitio.com/store/plugins
|
|
86
86
|
* TinyMCE Template Integration - https://github.com/owen2345/Camaleon-Tinymce-Templates
|
87
87
|
* Download Manager - https://github.com/max2320/camaleon-download
|
88
88
|
* OAuth - https://github.com/owen2345/camaleon_oauth
|
89
|
-
* Visual Editor - Paid Plugin ($) -
|
90
|
-
* Spree Commerce Integration - Paid Plugin ($) -
|
91
|
-
* Admin AJAX - Paid Plugin ($) -
|
89
|
+
* Visual Editor - Paid Plugin ($) - https://camaleon.website/store/plugins/camaleon_editor
|
90
|
+
* Spree Commerce Integration - Paid Plugin ($) - https://camaleon.website/store/plugins/camaleon-spree
|
91
|
+
* Admin AJAX - Paid Plugin ($) - https://camaleon.website/store/plugins/admin_ajax
|
92
92
|
* **See here for a complete Gemfile**: https://github.com/owen2345/camaleon-cms/blob/master/docs/example_gemfile.rb
|
93
93
|
|
94
94
|
## Camaleon CMS has many useful frontend Themes such as:
|
@@ -96,17 +96,17 @@ http://camaleon.tuzitio.com/store/plugins
|
|
96
96
|
* Clean Theme (Built in)
|
97
97
|
* Wordpress Theme (Built in)
|
98
98
|
* eCommerce - https://github.com/owen2345/cama-ecommerce-theme
|
99
|
-
* eFashion -
|
100
|
-
* Shoppy -
|
101
|
-
* CV - Paid Theme ($) -
|
102
|
-
* Camaleon Site - Paid Theme ($) -
|
103
|
-
* Sky - Paid Theme ($) -
|
99
|
+
* eFashion - https://camaleon.website/store/themes/eFashion (Github: https://github.com/mazharoddin/camaleon-cms-efashion)
|
100
|
+
* Shoppy - https://camaleon.website/store/themes/shoppy (Github: https://github.com/mazharoddin/camaleon-cms-shoppy)
|
101
|
+
* CV - Paid Theme ($) - https://camaleon.website/store/themes/cv
|
102
|
+
* Camaleon Site - Paid Theme ($) - https://camaleon.website/store/themes/camaleon_cms
|
103
|
+
* Sky - Paid Theme ($) - https://camaleon.website/store/themes/sky
|
104
104
|
|
105
105
|
|
106
106
|
## Requirements
|
107
|
-
* Rails 6.
|
107
|
+
* Rails 6.1+
|
108
108
|
* PostgreSQL, MySQL 5+ or SQlite
|
109
|
-
* Ruby
|
109
|
+
* Ruby 3.0+
|
110
110
|
* Imagemagick
|
111
111
|
|
112
112
|
## Installation
|
@@ -123,13 +123,6 @@ http://camaleon.tuzitio.com/store/plugins
|
|
123
123
|
# OR
|
124
124
|
# gem "camaleon_cms", github: 'owen2345/camaleon-cms' # latest development version
|
125
125
|
```
|
126
|
-
|
127
|
-
* Add initializer `config/initializers/sprockets_fix.rb` to fix "Bug Segmentation fault" (Only Ruby 3+ - [sprokets issue](https://github.com/rails/sprockets/issues/633#issuecomment-774762509))
|
128
|
-
```ruby
|
129
|
-
Rails.application.config.assets.configure do |env|
|
130
|
-
env.export_concurrent = false
|
131
|
-
end
|
132
|
-
```
|
133
126
|
|
134
127
|
|
135
128
|
* Install required Gem and dependencies
|
@@ -160,7 +153,7 @@ http://camaleon.tuzitio.com/store/plugins
|
|
160
153
|
* Go to your browser and visit http://localhost:3000/
|
161
154
|
|
162
155
|
## Sample App / Demonstration
|
163
|
-
* [Camaleon Server (current version)](
|
156
|
+
* [Camaleon Server (current version)](https://camaleon.website/plugins/demo_manage/)
|
164
157
|
* [Sample App](https://github.com/brian-kephart/Camaleon-CMS-Sample)
|
165
158
|
* [Deploy Sample App in Heroku](https://heroku.com/deploy?template=https://github.com/brian-kephart/Camaleon-CMS-Sample)
|
166
159
|
|
@@ -171,13 +164,13 @@ If you need support, need some extra functionality or need plugins, please conta
|
|
171
164
|
* Email: owenperedo@gmail.com
|
172
165
|
* Skype: owen-2345
|
173
166
|
* Stack Overflow: Use "camaleon" as tag to ask questions related to this CMS (don't forget to include cms version + rails version).
|
174
|
-
* Site:
|
167
|
+
* Site: https://camaleon.website/
|
175
168
|
|
176
169
|
## Author
|
177
170
|
Owen Peredo Diaz
|
178
171
|
|
179
172
|
## License
|
180
|
-
|
173
|
+
https://camaleon.website/license.html
|
181
174
|
|
182
175
|
## Testing
|
183
176
|
* Init DB
|
@@ -199,7 +192,7 @@ bundle exec rspec
|
|
199
192
|
|
200
193
|
## Version History
|
201
194
|
|
202
|
-
|
195
|
+
https://camaleon.website/version-history.html
|
203
196
|
|
204
197
|
Previous stable version (v1.x): https://github.com/owen2345/camaleon-cms/tree/version_1x
|
205
198
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"title": "Attack",
|
3
|
-
"descr": "Please check documentation <a href='
|
3
|
+
"descr": "Please check documentation <a href='https://camaleon.website/store/plugins/2'>here.</a>",
|
4
4
|
"version": "0.1",
|
5
5
|
"key": "attack",
|
6
6
|
"position": 1,
|
@@ -28,4 +28,4 @@
|
|
28
28
|
]
|
29
29
|
//here you can add all your hooks (read documentation)
|
30
30
|
}
|
31
|
-
}
|
31
|
+
}
|
@@ -8,12 +8,10 @@ module Plugins
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def save_settings
|
11
|
-
current_site.set_meta('front_cache_elements', { paths: (
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
post_types: (params[:cache][:post_type] || []),
|
16
|
-
skip_posts: (params[:cache][:skip_posts] || []),
|
11
|
+
current_site.set_meta('front_cache_elements', { paths: (params[:cache][:paths] || []).compact_blank || [],
|
12
|
+
posts: params[:cache][:posts] || [],
|
13
|
+
post_types: params[:cache][:post_type] || [],
|
14
|
+
skip_posts: params[:cache][:skip_posts] || [],
|
17
15
|
cache_login: params[:cache][:cache_login],
|
18
16
|
home: params[:cache][:home],
|
19
17
|
preserve_cache_on_restart: params[:cache][:preserve_cache_on_restart],
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"title": "Front Cache",
|
3
|
-
"descr": "Please check documentation <a href='
|
3
|
+
"descr": "Please check documentation <a href='https://camaleon.website/store/plugins/3'>here.</a>",
|
4
4
|
"version": "0.2",
|
5
5
|
"key": "front_cache",
|
6
6
|
"position": 1,
|
@@ -5,7 +5,7 @@ en:
|
|
5
5
|
button:
|
6
6
|
add_new_path: 'Add new path'
|
7
7
|
custom_url_paths: 'Custom url paths'
|
8
|
-
custom_url_samples: 'Enter paths/urls like /contact or /my_section?p=a&... or /static-pages/(.*) or /test-([0-9]+)/?\?owen=true&var2=([a-z]+) or
|
8
|
+
custom_url_samples: 'Enter paths/urls like /contact or /my_section?p=a&... or /static-pages/(.*) or /test-([0-9]+)/?\?owen=true&var2=([a-z]+) or https://static.mydomain.com/(.*)'
|
9
9
|
clean_cache: 'Clean cache'
|
10
10
|
title: 'Frontend cache pages'
|
11
11
|
home_page: 'Home Page'
|
@@ -26,8 +26,8 @@ module Plugins
|
|
26
26
|
if @caches[:paths].include?(request.original_url) || @caches[:paths].include?(request.path_info) || front_cache_plugin_match_path_patterns?(request.original_url, request.path_info) || (params[:action] == 'index' && params[:controller] == 'camaleon_cms/frontend' && @caches[:home].present?) # cache paths and home page
|
27
27
|
@_plugin_do_cache = true
|
28
28
|
elsif params[:action] == 'post' && params[:controller] == 'camaleon_cms/frontend' && !params[:draft_id].present?
|
29
|
-
|
30
|
-
post =
|
29
|
+
if (post = current_site.the_posts.find_by_slug(params[:slug]))
|
30
|
+
post = post.decorate
|
31
31
|
if post.can_visit? && post.visibility != 'private'
|
32
32
|
if (@caches[:skip_posts] || []).include?(post.id.to_s)
|
33
33
|
@_plugin_do_cache = false
|
@@ -35,9 +35,9 @@ module Plugins
|
|
35
35
|
@_plugin_do_cache = true
|
36
36
|
end
|
37
37
|
end
|
38
|
-
rescue StandardError # skip post not found
|
39
38
|
end
|
40
39
|
end
|
40
|
+
|
41
41
|
response.headers['PLUGIN_FRONT_CACHE'] = 'TRUE' if @_plugin_do_cache
|
42
42
|
end
|
43
43
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"title": "Visibility Posts",
|
3
|
-
"descr": "Permit to manage the permission of visualization for your contents (Public, Private, Password, Date from visibility). More info: <a target='_blank' href='
|
3
|
+
"descr": "Permit to manage the permission of visualization for your contents (Public, Private, Password, Date from visibility). More info: <a target='_blank' href='https://camaleon.website/store/plugins/visibility_posts'>here.</a>",
|
4
4
|
"version": "0.1",
|
5
5
|
"key": "visibility_post",
|
6
6
|
"helpers": [
|
@@ -21,4 +21,4 @@
|
|
21
21
|
"post_can_visit": ["plugin_visibility_can_visit"],
|
22
22
|
"list_post_extra_columns": ["plugin_visibility_extra_columns"]
|
23
23
|
}
|
24
|
-
}
|
24
|
+
}
|
@@ -10,7 +10,7 @@
|
|
10
10
|
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
|
11
11
|
// about supported directives.
|
12
12
|
//
|
13
|
-
//= require
|
13
|
+
//= require jquery2
|
14
14
|
//= require camaleon_cms/bootstrap.min.js
|
15
15
|
//= require ./modernizr.custom
|
16
16
|
//= require ./magnific.min
|
@@ -19,7 +19,7 @@
|
|
19
19
|
<!-- PORTFOLIO ITEM -->
|
20
20
|
<div class="col-lg-4">
|
21
21
|
<a class="zoom green" href="<%= post.the_url %>" title="<%= post.the_title %>" >
|
22
|
-
<img width="400" height="300" src="<%= post.the_thumb_url("
|
22
|
+
<img width="400" height="300" src="<%= post.the_thumb_url("https://bootstrapwp.com/wp-content/uploads/edd/2016/01/stanleywp.jpg") %>" class="attachment-post-thumbnail wp-post-image" alt="post image" /> </a>
|
23
23
|
|
24
24
|
<p><%= post.the_title %></p>
|
25
25
|
</div> <!-- /col -->
|
@@ -12,19 +12,19 @@
|
|
12
12
|
<!-- Wrapper for slides -->
|
13
13
|
<div class="carousel-inner">
|
14
14
|
<div class="item active">
|
15
|
-
<img src="
|
15
|
+
<img src="https://placehold.it/800x400" alt="...">
|
16
16
|
<div class="carousel-caption">
|
17
17
|
<h2>Heading</h2>
|
18
18
|
</div>
|
19
19
|
</div>
|
20
20
|
<div class="item">
|
21
|
-
<img src="
|
21
|
+
<img src="https://placehold.it/800x400" alt="...">
|
22
22
|
<div class="carousel-caption">
|
23
23
|
<h2>Heading</h2>
|
24
24
|
</div>
|
25
25
|
</div>
|
26
26
|
<div class="item">
|
27
|
-
<img src="
|
27
|
+
<img src="https://placehold.it/800x400" alt="...">
|
28
28
|
<div class="carousel-caption">
|
29
29
|
<h2>Heading</h2>
|
30
30
|
</div>
|
@@ -68,4 +68,4 @@
|
|
68
68
|
</div>
|
69
69
|
|
70
70
|
</div>
|
71
|
-
</section>
|
71
|
+
</section>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
<ul class="list-inline">
|
6
6
|
<li class="pull-right"><a href="#top">Back to top</a></li>
|
7
|
-
<li><a href="
|
7
|
+
<li><a href="https://feeds.feedburner.com/bootswatch">RSS</a></li>
|
8
8
|
<li><a href="https://twitter.com/bootswatch">Twitter</a></li>
|
9
9
|
<li><a href="https://github.com/thomaspark/bootswatch/">GitHub</a></li>
|
10
10
|
<li><a href="../help/#api">API</a></li>
|
@@ -14,4 +14,4 @@
|
|
14
14
|
</div>
|
15
15
|
</div>
|
16
16
|
|
17
|
-
</footer>
|
17
|
+
</footer>
|
@@ -1,3 +1,3 @@
|
|
1
|
-
//= require
|
1
|
+
//= require jquery2
|
2
2
|
//= require camaleon_cms/bootstrap.min
|
3
|
-
//= require ./jquery.validate
|
3
|
+
//= require ./jquery.validate
|
@@ -10,7 +10,7 @@
|
|
10
10
|
// Read Sprockets README (https://github.com/rails/sprockets) for details
|
11
11
|
// about supported directives.
|
12
12
|
//
|
13
|
-
//= require
|
13
|
+
//= require jquery2
|
14
14
|
//= require camaleon_cms/admin/_data
|
15
15
|
//= require camaleon_cms/bootstrap.min
|
16
16
|
//= require camaleon_cms/admin/_jquery-ui.min
|
@@ -121,7 +121,7 @@ tinymce.addI18n('de',{
|
|
121
121
|
"Insert link": "Link einf\u00fcgen",
|
122
122
|
"New window": "Neues Fenster",
|
123
123
|
"None": "Keine",
|
124
|
-
"The URL you entered seems to be an external link. Do you want to add the required
|
124
|
+
"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "Diese Adresse scheint ein externer Link zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"https:\/\/\" voranstellen?",
|
125
125
|
"Target": "Ziel",
|
126
126
|
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Diese Adresse scheint eine E-Mail-Adresse zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"mailto:\" voranstellen?",
|
127
127
|
"Insert\/edit link": "Link einf\u00fcgen\/bearbeiten",
|
@@ -216,4 +216,4 @@ tinymce.addI18n('de',{
|
|
216
216
|
"View": "Ansicht",
|
217
217
|
"Table": "Tabelle",
|
218
218
|
"Format": "Format"
|
219
|
-
});
|
219
|
+
});
|
@@ -91,7 +91,7 @@ tinymce.addI18n('en_GB',{
|
|
91
91
|
"Insert link": "Insert link",
|
92
92
|
"New window": "New window",
|
93
93
|
"None": "None",
|
94
|
-
"The URL you entered seems to be an external link. Do you want to add the required
|
94
|
+
"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?",
|
95
95
|
"Target": "Target",
|
96
96
|
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
|
97
97
|
"Insert\/edit link": "Insert\/edit link",
|
@@ -176,4 +176,4 @@ tinymce.addI18n('en_GB',{
|
|
176
176
|
"View": "View",
|
177
177
|
"Table": "Table",
|
178
178
|
"Format": "Format"
|
179
|
-
});
|
179
|
+
});
|
@@ -121,7 +121,7 @@ tinymce.addI18n('fr_FR',{
|
|
121
121
|
"Insert link": "Ins\u00e9rer un lien",
|
122
122
|
"New window": "Nouvelle fen\u00eatre",
|
123
123
|
"None": "n\/a",
|
124
|
-
"The URL you entered seems to be an external link. Do you want to add the required
|
124
|
+
"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre un lien externe. Voulez-vous ajouter le pr\u00e9fixe https:\/\/ n\u00e9cessaire?",
|
125
125
|
"Target": "Cible",
|
126
126
|
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre une adresse e-mail. Voulez-vous ajouter le pr\u00e9fixe mailto: n\u00e9cessaire?",
|
127
127
|
"Insert\/edit link": "Ins\u00e9rer\/modifier un lien",
|
@@ -216,4 +216,4 @@ tinymce.addI18n('fr_FR',{
|
|
216
216
|
"View": "Voir",
|
217
217
|
"Table": "Tableau",
|
218
218
|
"Format": "Format"
|
219
|
-
});
|
219
|
+
});
|
@@ -121,7 +121,7 @@ tinymce.addI18n('it',{
|
|
121
121
|
"Insert link": "Inserisci il Link",
|
122
122
|
"New window": "Nuova Finestra",
|
123
123
|
"None": "No",
|
124
|
-
"The URL you entered seems to be an external link. Do you want to add the required
|
124
|
+
"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "L'URL inserito sembra essere un collegamento esterno. Vuoi aggiungere il prefisso necessario https:\/\/?",
|
125
125
|
"Target": "Target",
|
126
126
|
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL inserito sembra essere un indirizzo email. Vuoi aggiungere il prefisso necessario mailto:?",
|
127
127
|
"Insert\/edit link": "Inserisci\/Modifica Link",
|
@@ -216,4 +216,4 @@ tinymce.addI18n('it',{
|
|
216
216
|
"View": "Visualiza",
|
217
217
|
"Table": "Tabella",
|
218
218
|
"Format": "Formato"
|
219
|
-
});
|
219
|
+
});
|
@@ -121,7 +121,7 @@ tinymce.addI18n('nl',{
|
|
121
121
|
"Insert link": "Hyperlink invoegen",
|
122
122
|
"New window": "Nieuw venster",
|
123
123
|
"None": "Geen",
|
124
|
-
"The URL you entered seems to be an external link. Do you want to add the required
|
124
|
+
"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "De ingegeven URL verwijst naar een extern adres. Wil je er \"https:\/\/\" aan toevoegen?",
|
125
125
|
"Target": "Doel",
|
126
126
|
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "De ingegeven URL lijkt op een e-mailadres. Wil je er \"mailto:\" aan toevoegen?",
|
127
127
|
"Insert\/edit link": "Hyperlink invoegen\/bewerken",
|
@@ -121,7 +121,7 @@ tinymce.addI18n('pt-BR',{
|
|
121
121
|
"Insert link": "Inserir link",
|
122
122
|
"New window": "Nova janela",
|
123
123
|
"None": "Nenhum",
|
124
|
-
"The URL you entered seems to be an external link. Do you want to add the required
|
124
|
+
"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "A URL que voc\u00ea informou parece ser um link externo. Deseja incluir o prefixo https:\/\/?",
|
125
125
|
"Target": "Alvo",
|
126
126
|
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",
|
127
127
|
"Insert\/edit link": "Inserir\/editar link",
|
@@ -216,4 +216,4 @@ tinymce.addI18n('pt-BR',{
|
|
216
216
|
"View": "Visualizar",
|
217
217
|
"Table": "Tabela",
|
218
218
|
"Format": "Formatar"
|
219
|
-
});
|
219
|
+
});
|
@@ -121,7 +121,7 @@ tinymce.addI18n('ru',{
|
|
121
121
|
"Insert link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
|
122
122
|
"New window": "\u0412 \u043d\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435",
|
123
123
|
"None": "\u041d\u0435\u0442",
|
124
|
-
"The URL you entered seems to be an external link. Do you want to add the required
|
124
|
+
"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "\u0412\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 URL \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0441\u044b\u043b\u043a\u043e\u0439. \u0412\u044b \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u00abhttps:\/\/\u00bb?",
|
125
125
|
"Target": "\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
|
126
126
|
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0412\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 URL \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b. \u0412\u044b \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u00abmailto:\u00bb?",
|
127
127
|
"Insert\/edit link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
|
@@ -216,4 +216,4 @@ tinymce.addI18n('ru',{
|
|
216
216
|
"View": "\u0412\u0438\u0434",
|
217
217
|
"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430",
|
218
218
|
"Format": "\u0424\u043e\u0440\u043c\u0430\u0442"
|
219
|
-
});
|
219
|
+
});
|
@@ -121,7 +121,7 @@ tinymce.addI18n('uk',{
|
|
121
121
|
"Insert link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
|
122
122
|
"New window": "\u0423 \u043d\u043e\u0432\u043e\u043c\u0443 \u0432\u0456\u043a\u043d\u0456",
|
123
123
|
"None": "\u041d\u0456",
|
124
|
-
"The URL you entered seems to be an external link. Do you want to add the required
|
124
|
+
"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "\u0421\u0445\u043e\u0436\u0435, \u0449\u043e \u0432\u0438 \u0432\u0432\u0435\u043b\u0438 \u0437\u043e\u0432\u043d\u0456\u0448\u043d\u0454 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f. \u0412\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0434\u043e\u0434\u0430\u0442\u0438 https:\/\/ \u043f\u0440\u0435\u0444\u0456\u043a\u0441?",
|
125
125
|
"Target": "\u0412\u0456\u0434\u043a\u0440\u0438\u0432\u0430\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
|
126
126
|
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0421\u0445\u043e\u0436\u0435, \u0449\u043e \u0432\u0438 \u0432\u0432\u0435\u043b\u0438 \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438. \u0412\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0434\u043e\u0434\u0430\u0442\u0438 mailto: \u043f\u0440\u0435\u0444\u0456\u043a\u0441?",
|
127
127
|
"Insert\/edit link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
|
@@ -216,4 +216,4 @@ tinymce.addI18n('uk',{
|
|
216
216
|
"View": "\u0412\u0438\u0433\u043b\u044f\u0434",
|
217
217
|
"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u044f",
|
218
218
|
"Format": "\u0424\u043e\u0440\u043c\u0430\u0442"
|
219
|
-
});
|
219
|
+
});
|
@@ -121,7 +121,7 @@ tinymce.addI18n('zh-CN',{
|
|
121
121
|
"Insert link": "\u63d2\u5165\u94fe\u63a5",
|
122
122
|
"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00",
|
123
123
|
"None": "\u65e0",
|
124
|
-
"The URL you entered seems to be an external link. Do you want to add the required
|
124
|
+
"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttps:\/\/:\u524d\u7f00\u5417\uff1f",
|
125
125
|
"Target": "\u6253\u5f00\u65b9\u5f0f",
|
126
126
|
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f",
|
127
127
|
"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5",
|
@@ -476,7 +476,7 @@ window.cama_init_media = function(mediaPanel) {
|
|
476
476
|
'<div class="alert alert-danger">' +
|
477
477
|
I18n(
|
478
478
|
'msg.cors_error',
|
479
|
-
'Please verify the following: <ul><li>If the image exist: %{url_img}</li> <li>Check if cors configuration are defined well, only for external images: S3, cloudfront(if you are using cloudfront).</li></ul><br> More information about CORS: <a href="%{url_blog}" target="_blank">here.</a>', { url_img: data.url, url_blog: '
|
479
|
+
'Please verify the following: <ul><li>If the image exist: %{url_img}</li> <li>Check if cors configuration are defined well, only for external images: S3, cloudfront(if you are using cloudfront).</li></ul><br> More information about CORS: <a href="%{url_blog}" target="_blank">here.</a>', { url_img: data.url, url_blog: 'https://blog.digitalis.io/how-to-add-cors-to-s3-with-cloudfront-1be59c74abaa' }
|
480
480
|
) +
|
481
481
|
'</div>'
|
482
482
|
)
|
@@ -566,7 +566,7 @@ window.cama_media_get_custom_params = function(customSettings) {
|
|
566
566
|
}
|
567
567
|
|
568
568
|
$(() =>
|
569
|
-
// sample: $.fn.upload_url({url: '
|
569
|
+
// sample: $.fn.upload_url({url: 'https://camaleon.website/media/132/logo2.png', dimension: '120x120', versions: '200x200', folder: 'my_folder', thumb_size: '100x100'})
|
570
570
|
// dimension: default current dimension
|
571
571
|
// folder: default current folder
|
572
572
|
// private: (Boolean) if true => list private files
|
@@ -2,7 +2,7 @@
|
|
2
2
|
.colorpicker-saturation {
|
3
3
|
width: 100px;
|
4
4
|
height: 100px;
|
5
|
-
background-image:
|
5
|
+
background-image: url("camaleon_cms/admin/img/colorpicker/saturation.png");
|
6
6
|
cursor: crosshair;
|
7
7
|
float: left;
|
8
8
|
}
|
@@ -47,10 +47,10 @@
|
|
47
47
|
margin-top: -1px;
|
48
48
|
}
|
49
49
|
.colorpicker-hue {
|
50
|
-
background-image:
|
50
|
+
background-image: url("camaleon_cms/admin/img/colorpicker/hue.png");
|
51
51
|
}
|
52
52
|
.colorpicker-alpha {
|
53
|
-
background-image:
|
53
|
+
background-image: url("camaleon_cms/admin/img/colorpicker/alpha.png");
|
54
54
|
display: none;
|
55
55
|
}
|
56
56
|
.colorpicker {
|
@@ -80,7 +80,7 @@
|
|
80
80
|
height: 10px;
|
81
81
|
margin-top: 5px;
|
82
82
|
clear: both;
|
83
|
-
background-image:
|
83
|
+
background-image: url("camaleon_cms/admin/img/colorpicker/alpha.png");
|
84
84
|
background-position: 0 100%;
|
85
85
|
}
|
86
86
|
.colorpicker-color div {
|
@@ -93,4 +93,4 @@
|
|
93
93
|
height: 16px;
|
94
94
|
vertical-align: text-bottom;
|
95
95
|
}
|
96
|
-
/* EOF BOOTSTRAP COLORPICKER */
|
96
|
+
/* EOF BOOTSTRAP COLORPICKER */
|
@@ -3,9 +3,11 @@ module CamaleonCms
|
|
3
3
|
module Appearances
|
4
4
|
class NavMenusController < CamaleonCms::AdminController
|
5
5
|
include CamaleonCms::Frontend::NavMenuHelper
|
6
|
+
|
6
7
|
add_breadcrumb I18n.t('camaleon_cms.admin.sidebar.appearance')
|
7
8
|
add_breadcrumb I18n.t('camaleon_cms.admin.sidebar.menus')
|
8
9
|
before_action :check_menu_permission
|
10
|
+
|
9
11
|
def index
|
10
12
|
@nav_menu = if params[:id].present?
|
11
13
|
current_site.nav_menus.find_by_id(params[:id])
|
@@ -64,7 +66,10 @@ module CamaleonCms
|
|
64
66
|
# render edit external menu item
|
65
67
|
def edit_menu_item
|
66
68
|
render '_external_menu', layout: false,
|
67
|
-
locals: {
|
69
|
+
locals: {
|
70
|
+
nav_menu: current_site.nav_menus.find(params[:nav_menu_id]),
|
71
|
+
menu_item: current_site.nav_menu_items.find(params[:id])
|
72
|
+
}
|
68
73
|
end
|
69
74
|
|
70
75
|
# update an external menu item
|
@@ -98,22 +103,22 @@ module CamaleonCms
|
|
98
103
|
def add_items
|
99
104
|
items = []
|
100
105
|
@nav_menu = current_site.nav_menus.find(params[:nav_menu_id])
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
106
|
+
external_params = params[:external]
|
107
|
+
if external_params.present?
|
108
|
+
external_item = @nav_menu.append_menu_item(parse_external_menu(external_params))
|
109
|
+
external_item.set_options(external_params.require(:options).permit!) if external_params[:options].present?
|
110
|
+
items << external_item
|
105
111
|
end
|
106
112
|
|
107
113
|
if params[:custom_items].present? # custom menu items
|
108
|
-
params[:custom_items].
|
109
|
-
type =
|
110
|
-
|
111
|
-
items << item
|
114
|
+
params[:custom_items].each_value do |custom_item|
|
115
|
+
type = custom_item['kind'].present? ? custom_item['kind'] : 'external'
|
116
|
+
items << @nav_menu.append_menu_item({ label: custom_item['label'], link: custom_item['url'], type: type })
|
112
117
|
end
|
113
118
|
end
|
114
119
|
|
115
120
|
if params[:items].present?
|
116
|
-
params[:items].
|
121
|
+
params[:items].each_value do |item|
|
117
122
|
item = @nav_menu.append_menu_item({ label: 'auto', link: item['id'], type: item['kind'] })
|
118
123
|
items << item
|
119
124
|
end
|