camaleon_cms 2.4.3 → 2.4.3.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/assets/javascripts/camaleon_cms/admin/_custom_fields.js +19 -5
- data/app/assets/javascripts/camaleon_cms/admin/_translator.js +12 -2
- data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/de.js +20 -0
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/de.js +219 -0
- data/app/assets/javascripts/camaleon_cms/admin/uploader/_media_manager.js.coffee +2 -0
- data/app/controllers/camaleon_cms/admin/users_controller.rb +1 -1
- data/app/helpers/camaleon_cms/admin/category_helper.rb +11 -4
- data/app/helpers/camaleon_cms/admin/custom_fields_helper.rb +22 -1
- data/app/helpers/camaleon_cms/frontend/seo_helper.rb +2 -0
- data/app/helpers/camaleon_cms/frontend/site_helper.rb +5 -0
- data/app/helpers/camaleon_cms/short_code_helper.rb +10 -13
- data/app/models/camaleon_cms/post_type.rb +1 -2
- data/app/models/camaleon_cms/site.rb +1 -1
- data/app/models/concerns/camaleon_cms/custom_fields_read.rb +1 -1
- data/app/views/camaleon_cms/admin/categories/_form.html.erb +1 -1
- data/app/views/camaleon_cms/admin/posts/index.html.erb +1 -1
- data/app/views/camaleon_cms/admin/settings/custom_fields/_render.html.erb +2 -2
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_categories.html.erb +11 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_post_types.html.erb +7 -0
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_select.html.erb +3 -3
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_url.html.erb +2 -2
- data/app/views/camaleon_cms/admin/users/index.html.erb +1 -1
- data/config/initializers/assets.rb +8 -6
- data/config/initializers/model_alias.rb +1 -1
- data/config/locales/camaleon_cms/admin/de.yml +681 -0
- data/config/locales/camaleon_cms/admin/en.yml +3 -3
- data/config/locales/camaleon_cms/admin/js.yml +51 -0
- data/config/locales/camaleon_cms/common.yml +67 -0
- data/config/locales/camaleon_cms/languages.yml +13 -0
- data/config/locales/camaleon_cms/routes.yml +8 -0
- data/config/system.json +1 -1
- data/lib/camaleon_cms/version.rb +1 -1
- metadata +8 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fdad92687ff9876d42095bdf25e09dd71df9bc23
|
4
|
+
data.tar.gz: f8069ba9e8bc54c08b3ef796590651587dcdc1fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2879637c8c2cb01bc633c94d9e1b03971f2a85f8dcee0bf2af2a08a56165f1724e076bdd42eba7403d2037155e38413f1d08ddc77ccbe2b424ae9b25ff49770c
|
7
|
+
data.tar.gz: 9918e186699856f064f5392b67db467ac649f39db7cafec4006bec2db7d03c4961e40a575a00c7ce849b53a58044da6dbcd156d23140014d9a891608122a0521
|
data/README.md
CHANGED
@@ -39,7 +39,7 @@
|
|
39
39
|
* Add the gem in your Gemfile
|
40
40
|
|
41
41
|
```
|
42
|
-
gem "camaleon_cms", '>= 2.4.
|
42
|
+
gem "camaleon_cms", '>= 2.4.3.1' # Stable versions 2.3.6, 2.2.1, 2.1.1, 2.1.0
|
43
43
|
# gem "camaleon_cms", github: 'owen2345/camaleon-cms' # current development version
|
44
44
|
```
|
45
45
|
* Only Rails 5 support
|
@@ -69,13 +69,13 @@ function cama_build_custom_field(panel, field_data, values){
|
|
69
69
|
field.find('.btn').addClass('disabled').unbind().click(function(){ return false; });
|
70
70
|
}
|
71
71
|
|
72
|
-
if (field_data.kind == 'checkbox')
|
72
|
+
if (field_data.kind == 'checkbox'){
|
73
73
|
field.find('input')[0].checked = value;
|
74
|
-
}
|
75
|
-
field.find('.input-value').val(value).trigger('change', {field_rendered: true});
|
74
|
+
}else if(value){
|
75
|
+
field.find('.input-value').val(value).trigger('change', {field_rendered: true}).data('value', value);
|
76
76
|
}
|
77
77
|
$sortable.append(field);
|
78
|
-
if(callback)
|
78
|
+
if(callback) window[callback](field, value);
|
79
79
|
field_counter ++;
|
80
80
|
}
|
81
81
|
if(field_data.kind != 'checkbox' && values.length <= 0) {
|
@@ -117,7 +117,7 @@ function custom_field_colorpicker($field) {
|
|
117
117
|
}
|
118
118
|
function custom_field_colorpicker_val($field, value) {
|
119
119
|
if ($field) {
|
120
|
-
$field.find(".my-colorpicker").attr('data-color', value).colorpicker();
|
120
|
+
$field.find(".my-colorpicker").attr('data-color', value || '').colorpicker();
|
121
121
|
}
|
122
122
|
}
|
123
123
|
function custom_field_checkbox_val($field, values) {
|
@@ -196,6 +196,20 @@ function custom_field_text_box($field) {
|
|
196
196
|
}
|
197
197
|
}
|
198
198
|
}
|
199
|
+
function custom_field_url_callback($field) {
|
200
|
+
if ($field) {
|
201
|
+
if ($field.find('input').hasClass('is_translate')) {
|
202
|
+
$field.find('input').addClass('translatable').Translatable(ADMIN_TRANSLATIONS);
|
203
|
+
}
|
204
|
+
}
|
205
|
+
}
|
206
|
+
function custom_field_select_callback($field, val) {
|
207
|
+
if ($field) {
|
208
|
+
var sel = $field.find('select.input-value');
|
209
|
+
if (!val) sel.data('value', sel.val()); // fix for select translator
|
210
|
+
if(sel.hasClass('is_translate')) sel.addClass('translatable').Translatable(ADMIN_TRANSLATIONS);
|
211
|
+
}
|
212
|
+
}
|
199
213
|
|
200
214
|
function load_upload_audio_field(thiss) {
|
201
215
|
var $input = $(thiss).prev();
|
@@ -14,6 +14,7 @@ jQuery(function($){
|
|
14
14
|
* @param default_language => not important (deprecated)
|
15
15
|
* @returns {$.fn.Translatable}
|
16
16
|
* @constructor
|
17
|
+
* select tag fix: save translated value in data-value
|
17
18
|
*/
|
18
19
|
var TRANSLATOR_counter = 1;
|
19
20
|
$.fn.Translatable = function(languages, default_language){
|
@@ -28,7 +29,7 @@ jQuery(function($){
|
|
28
29
|
get_translations = function(text, language){
|
29
30
|
var translations_per_locale = {};
|
30
31
|
var res = "";
|
31
|
-
if(text.trim().search("<!--") != 0
|
32
|
+
if(!text || text.trim().search("<!--") != 0){ // not translated string
|
32
33
|
for(var i in languages){
|
33
34
|
translations_per_locale[languages[i]] = text;
|
34
35
|
}
|
@@ -63,7 +64,7 @@ jQuery(function($){
|
|
63
64
|
|
64
65
|
self.each(function(){
|
65
66
|
var ele = $(this);
|
66
|
-
var tabs_title = [], tabs_content = [], translations = get_translations(ele.val()), inputs = {};
|
67
|
+
var tabs_title = [], tabs_content = [], translations = get_translations(ele.is('select') ? ele.data('value') : ele.val()), inputs = {};
|
67
68
|
var class_group = ele.parent().hasClass("form-group") ? "" : "form-group";
|
68
69
|
// decoding languages
|
69
70
|
for(var ii in languages){
|
@@ -91,6 +92,15 @@ jQuery(function($){
|
|
91
92
|
var tabs = $('<div class="trans_panel" role="tabpanel"><ul class="nav nav-tabs" role="tablist"></ul><div class="tab-content"></div></div>');
|
92
93
|
tabs.find(".nav-tabs").append(tabs_title.reverse());
|
93
94
|
tabs.find(".tab-content").append(tabs_content);
|
95
|
+
|
96
|
+
// unknown fields (fix for select fields)
|
97
|
+
if(ele.is('select')){
|
98
|
+
var rep_field = $('<input type="hidden">').attr({class: ele.attr('class'), name: ele.attr('name')})
|
99
|
+
ele.replaceWith(rep_field);
|
100
|
+
ele = rep_field;
|
101
|
+
tabs_content[0].find('.translate-item').trigger('change');
|
102
|
+
}
|
103
|
+
|
94
104
|
ele.addClass("translated-item").hide().after(tabs);
|
95
105
|
//ele.data("tabs_content", tabs_content);
|
96
106
|
ele.data("translation_inputs", inputs);
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/*
|
2
|
+
* Translated default messages for the jQuery validation plugin.
|
3
|
+
* Locale: DE (German, Deutsch)
|
4
|
+
*/
|
5
|
+
$.extend( $.validator.messages, {
|
6
|
+
required: "Dieses Feld ist ein Pflichtfeld.",
|
7
|
+
maxlength: $.validator.format( "Geben Sie bitte maximal {0} Zeichen ein." ),
|
8
|
+
minlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ),
|
9
|
+
rangelength: $.validator.format( "Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein." ),
|
10
|
+
email: "Geben Sie bitte eine gültige E-Mail Adresse ein.",
|
11
|
+
url: "Geben Sie bitte eine gültige URL ein.",
|
12
|
+
date: "Bitte geben Sie ein gültiges Datum ein.",
|
13
|
+
number: "Geben Sie bitte eine Nummer ein.",
|
14
|
+
digits: "Geben Sie bitte nur Ziffern ein.",
|
15
|
+
equalTo: "Bitte denselben Wert wiederholen.",
|
16
|
+
range: $.validator.format( "Geben Sie bitte einen Wert zwischen {0} und {1} ein." ),
|
17
|
+
max: $.validator.format( "Geben Sie bitte einen Wert kleiner oder gleich {0} ein." ),
|
18
|
+
min: $.validator.format( "Geben Sie bitte einen Wert größer oder gleich {0} ein." ),
|
19
|
+
creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein."
|
20
|
+
} );
|
@@ -0,0 +1,219 @@
|
|
1
|
+
tinymce.addI18n('de',{
|
2
|
+
"Cut": "Ausschneiden",
|
3
|
+
"Heading 5": "\u00dcberschrift 5",
|
4
|
+
"Header 2": "\u00dcberschrift 2",
|
5
|
+
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Ihr Browser unterst\u00fctzt leider keinen direkten Zugriff auf die Zwischenablage. Bitte benutzen Sie die Strg + X \/ C \/ V Tastenkombinationen.",
|
6
|
+
"Heading 4": "\u00dcberschrift 4",
|
7
|
+
"Div": "Textblock",
|
8
|
+
"Heading 2": "\u00dcberschrift 2",
|
9
|
+
"Paste": "Einf\u00fcgen",
|
10
|
+
"Close": "Schlie\u00dfen",
|
11
|
+
"Font Family": "Schriftart",
|
12
|
+
"Pre": "Vorformatierter Text",
|
13
|
+
"Align right": "Rechtsb\u00fcndig ausrichten",
|
14
|
+
"New document": "Neues Dokument",
|
15
|
+
"Blockquote": "Zitat",
|
16
|
+
"Numbered list": "Nummerierte Liste",
|
17
|
+
"Heading 1": "\u00dcberschrift 1",
|
18
|
+
"Headings": "\u00dcberschriften",
|
19
|
+
"Increase indent": "Einzug vergr\u00f6\u00dfern",
|
20
|
+
"Formats": "Formate",
|
21
|
+
"Headers": "\u00dcberschriften",
|
22
|
+
"Select all": "Alles ausw\u00e4hlen",
|
23
|
+
"Header 3": "\u00dcberschrift 3",
|
24
|
+
"Blocks": "Absatzformate",
|
25
|
+
"Undo": "R\u00fcckg\u00e4ngig",
|
26
|
+
"Strikethrough": "Durchgestrichen",
|
27
|
+
"Bullet list": "Aufz\u00e4hlung",
|
28
|
+
"Header 1": "\u00dcberschrift 1",
|
29
|
+
"Superscript": "Hochgestellt",
|
30
|
+
"Clear formatting": "Formatierung entfernen",
|
31
|
+
"Font Sizes": "Schriftgr\u00f6\u00dfe",
|
32
|
+
"Subscript": "Tiefgestellt",
|
33
|
+
"Header 6": "\u00dcberschrift 6",
|
34
|
+
"Redo": "Wiederholen",
|
35
|
+
"Paragraph": "Absatz",
|
36
|
+
"Ok": "Ok",
|
37
|
+
"Bold": "Fett",
|
38
|
+
"Code": "Quelltext",
|
39
|
+
"Italic": "Kursiv",
|
40
|
+
"Align center": "Zentriert ausrichten",
|
41
|
+
"Header 5": "\u00dcberschrift 5",
|
42
|
+
"Heading 6": "\u00dcberschrift 6",
|
43
|
+
"Heading 3": "\u00dcberschrift 3",
|
44
|
+
"Decrease indent": "Einzug verkleinern",
|
45
|
+
"Header 4": "\u00dcberschrift 4",
|
46
|
+
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Einf\u00fcgen ist nun im einfachen Textmodus. Inhalte werden ab jetzt als unformatierter Text eingef\u00fcgt, bis Sie diese Einstellung wieder ausschalten!",
|
47
|
+
"Underline": "Unterstrichen",
|
48
|
+
"Cancel": "Abbrechen",
|
49
|
+
"Justify": "Blocksatz",
|
50
|
+
"Inline": "Zeichenformate",
|
51
|
+
"Copy": "Kopieren",
|
52
|
+
"Align left": "Linksb\u00fcndig ausrichten",
|
53
|
+
"Visual aids": "Visuelle Hilfen",
|
54
|
+
"Lower Greek": "Griechische Kleinbuchstaben",
|
55
|
+
"Square": "Quadrat",
|
56
|
+
"Default": "Standard",
|
57
|
+
"Lower Alpha": "Kleinbuchstaben",
|
58
|
+
"Circle": "Kreis",
|
59
|
+
"Disc": "Punkt",
|
60
|
+
"Upper Alpha": "Gro\u00dfbuchstaben",
|
61
|
+
"Upper Roman": "R\u00f6mische Zahlen (Gro\u00dfbuchstaben)",
|
62
|
+
"Lower Roman": "R\u00f6mische Zahlen (Kleinbuchstaben)",
|
63
|
+
"Name": "Name",
|
64
|
+
"Anchor": "Textmarke",
|
65
|
+
"You have unsaved changes are you sure you want to navigate away?": "Die \u00c4nderungen wurden noch nicht gespeichert, sind Sie sicher, dass Sie diese Seite verlassen wollen?",
|
66
|
+
"Restore last draft": "Letzten Entwurf wiederherstellen",
|
67
|
+
"Special character": "Sonderzeichen",
|
68
|
+
"Source code": "Quelltext",
|
69
|
+
"B": "B",
|
70
|
+
"R": "R",
|
71
|
+
"G": "G",
|
72
|
+
"Color": "Farbe",
|
73
|
+
"Right to left": "Von rechts nach links",
|
74
|
+
"Left to right": "Von links nach rechts",
|
75
|
+
"Emoticons": "Emoticons",
|
76
|
+
"Robots": "Robots",
|
77
|
+
"Document properties": "Dokumenteigenschaften",
|
78
|
+
"Title": "Titel",
|
79
|
+
"Keywords": "Sch\u00fcsselw\u00f6rter",
|
80
|
+
"Encoding": "Zeichenkodierung",
|
81
|
+
"Description": "Beschreibung",
|
82
|
+
"Author": "Verfasser",
|
83
|
+
"Fullscreen": "Vollbild",
|
84
|
+
"Horizontal line": "Horizontale Linie",
|
85
|
+
"Horizontal space": "Horizontaler Abstand",
|
86
|
+
"Insert\/edit image": "Bild einf\u00fcgen\/bearbeiten",
|
87
|
+
"General": "Allgemein",
|
88
|
+
"Advanced": "Erweitert",
|
89
|
+
"Source": "Quelle",
|
90
|
+
"Border": "Rahmen",
|
91
|
+
"Constrain proportions": "Seitenverh\u00e4ltnis beibehalten",
|
92
|
+
"Vertical space": "Vertikaler Abstand",
|
93
|
+
"Image description": "Bildbeschreibung",
|
94
|
+
"Style": "Stil",
|
95
|
+
"Dimensions": "Abmessungen",
|
96
|
+
"Insert image": "Bild einf\u00fcgen",
|
97
|
+
"Zoom in": "Ansicht vergr\u00f6\u00dfern",
|
98
|
+
"Contrast": "Kontrast",
|
99
|
+
"Back": "Zur\u00fcck",
|
100
|
+
"Gamma": "Gamma",
|
101
|
+
"Flip horizontally": "Horizontal spiegeln",
|
102
|
+
"Resize": "Skalieren",
|
103
|
+
"Sharpen": "Sch\u00e4rfen",
|
104
|
+
"Zoom out": "Ansicht verkleinern",
|
105
|
+
"Image options": "Bildeigenschaften",
|
106
|
+
"Apply": "Anwenden",
|
107
|
+
"Brightness": "Helligkeit",
|
108
|
+
"Rotate clockwise": "Im Uhrzeigersinn drehen",
|
109
|
+
"Rotate counterclockwise": "Gegen den Uhrzeigersinn drehen",
|
110
|
+
"Edit image": "Bild bearbeiten",
|
111
|
+
"Color levels": "Farbwerte",
|
112
|
+
"Crop": "Bescheiden",
|
113
|
+
"Orientation": "Ausrichtung",
|
114
|
+
"Flip vertically": "Vertikal spiegeln",
|
115
|
+
"Invert": "Invertieren",
|
116
|
+
"Insert date\/time": "Datum\/Uhrzeit einf\u00fcgen ",
|
117
|
+
"Remove link": "Link entfernen",
|
118
|
+
"Url": "URL",
|
119
|
+
"Text to display": "Anzuzeigender Text",
|
120
|
+
"Anchors": "Textmarken",
|
121
|
+
"Insert link": "Link einf\u00fcgen",
|
122
|
+
"New window": "Neues Fenster",
|
123
|
+
"None": "Keine",
|
124
|
+
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Diese Adresse scheint ein externer Link zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"http:\/\/\" voranstellen?",
|
125
|
+
"Target": "Ziel",
|
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
|
+
"Insert\/edit link": "Link einf\u00fcgen\/bearbeiten",
|
128
|
+
"Insert\/edit video": "Video einf\u00fcgen\/bearbeiten",
|
129
|
+
"Poster": "Poster",
|
130
|
+
"Alternative source": "Alternative Quelle",
|
131
|
+
"Paste your embed code below:": "F\u00fcgen Sie Ihren Einbettungscode hier ein:",
|
132
|
+
"Insert video": "Video einf\u00fcgen",
|
133
|
+
"Embed": "Einbetten",
|
134
|
+
"Nonbreaking space": "Gesch\u00fctztes Leerzeichen",
|
135
|
+
"Page break": "Seitenumbruch",
|
136
|
+
"Paste as text": "Als Text einf\u00fcgen",
|
137
|
+
"Preview": "Vorschau",
|
138
|
+
"Print": "Drucken",
|
139
|
+
"Save": "Speichern",
|
140
|
+
"Could not find the specified string.": "Die Zeichenfolge wurde nicht gefunden.",
|
141
|
+
"Replace": "Ersetzen",
|
142
|
+
"Next": "Weiter",
|
143
|
+
"Whole words": "Nur ganze W\u00f6rter",
|
144
|
+
"Find and replace": "Suchen und ersetzen",
|
145
|
+
"Replace with": "Ersetzen durch",
|
146
|
+
"Find": "Suchen",
|
147
|
+
"Replace all": "Alles ersetzen",
|
148
|
+
"Match case": "Gro\u00df-\/Kleinschreibung beachten",
|
149
|
+
"Prev": "Zur\u00fcck",
|
150
|
+
"Spellcheck": "Rechtschreibpr\u00fcfung",
|
151
|
+
"Finish": "Ende",
|
152
|
+
"Ignore all": "Alles Ignorieren",
|
153
|
+
"Ignore": "Ignorieren",
|
154
|
+
"Add to Dictionary": "Zum W\u00f6rterbuch hinzuf\u00fcgen",
|
155
|
+
"Insert row before": "Neue Zeile davor einf\u00fcgen ",
|
156
|
+
"Rows": "Zeilen",
|
157
|
+
"Height": "H\u00f6he",
|
158
|
+
"Paste row after": "Zeile danach einf\u00fcgen",
|
159
|
+
"Alignment": "Ausrichtung",
|
160
|
+
"Border color": "Rahmenfarbe",
|
161
|
+
"Column group": "Spaltengruppe",
|
162
|
+
"Row": "Zeile",
|
163
|
+
"Insert column before": "Neue Spalte davor einf\u00fcgen",
|
164
|
+
"Split cell": "Zelle aufteilen",
|
165
|
+
"Cell padding": "Zelleninnenabstand",
|
166
|
+
"Cell spacing": "Zellenabstand",
|
167
|
+
"Row type": "Zeilentyp",
|
168
|
+
"Insert table": "Tabelle einf\u00fcgen",
|
169
|
+
"Body": "Inhalt",
|
170
|
+
"Caption": "Beschriftung",
|
171
|
+
"Footer": "Fu\u00dfzeile",
|
172
|
+
"Delete row": "Zeile l\u00f6schen",
|
173
|
+
"Paste row before": "Zeile davor einf\u00fcgen",
|
174
|
+
"Scope": "G\u00fcltigkeitsbereich",
|
175
|
+
"Delete table": "Tabelle l\u00f6schen",
|
176
|
+
"H Align": "Horizontale Ausrichtung",
|
177
|
+
"Top": "Oben",
|
178
|
+
"Header cell": "Kopfzelle",
|
179
|
+
"Column": "Spalte",
|
180
|
+
"Row group": "Zeilengruppe",
|
181
|
+
"Cell": "Zelle",
|
182
|
+
"Middle": "Mitte",
|
183
|
+
"Cell type": "Zellentyp",
|
184
|
+
"Copy row": "Zeile kopieren",
|
185
|
+
"Row properties": "Zeileneigenschaften",
|
186
|
+
"Table properties": "Tabelleneigenschaften",
|
187
|
+
"Bottom": "Unten",
|
188
|
+
"V Align": "Vertikale Ausrichtung",
|
189
|
+
"Header": "Kopfzeile",
|
190
|
+
"Right": "Rechtsb\u00fcndig",
|
191
|
+
"Insert column after": "Neue Spalte danach einf\u00fcgen",
|
192
|
+
"Cols": "Spalten",
|
193
|
+
"Insert row after": "Neue Zeile danach einf\u00fcgen",
|
194
|
+
"Width": "Breite",
|
195
|
+
"Cell properties": "Zelleneigenschaften",
|
196
|
+
"Left": "Linksb\u00fcndig",
|
197
|
+
"Cut row": "Zeile ausschneiden",
|
198
|
+
"Delete column": "Spalte l\u00f6schen",
|
199
|
+
"Center": "Zentriert",
|
200
|
+
"Merge cells": "Zellen verbinden",
|
201
|
+
"Insert template": "Vorlage einf\u00fcgen ",
|
202
|
+
"Templates": "Vorlagen",
|
203
|
+
"Background color": "Hintergrundfarbe",
|
204
|
+
"Custom...": "Benutzerdefiniert...",
|
205
|
+
"Custom color": "Benutzerdefinierte Farbe",
|
206
|
+
"No color": "Keine Farbe",
|
207
|
+
"Text color": "Textfarbe",
|
208
|
+
"Show blocks": " Bl\u00f6cke anzeigen",
|
209
|
+
"Show invisible characters": "Unsichtbare Zeichen anzeigen",
|
210
|
+
"Words: {0}": "W\u00f6rter: {0}",
|
211
|
+
"Insert": "Einf\u00fcgen",
|
212
|
+
"File": "Datei",
|
213
|
+
"Edit": "Bearbeiten",
|
214
|
+
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich-Text- Area. Dr\u00fccken Sie ALT-F9 f\u00fcr das Men\u00fc. Dr\u00fccken Sie ALT-F10 f\u00fcr Symbolleiste. Dr\u00fccken Sie ALT-0 f\u00fcr Hilfe",
|
215
|
+
"Tools": "Werkzeuge",
|
216
|
+
"View": "Ansicht",
|
217
|
+
"Table": "Tabelle",
|
218
|
+
"Format": "Format"
|
219
|
+
});
|
@@ -213,7 +213,9 @@ window["cama_init_media"] = (media_panel) ->
|
|
213
213
|
hideLoading()
|
214
214
|
modal.modal("hide")
|
215
215
|
if res.search("folder_item") >= 0 # success upload
|
216
|
+
res = $(res)
|
216
217
|
media_files_panel.append(res)
|
218
|
+
res.click()
|
217
219
|
else
|
218
220
|
$.fn.alert({type: 'error', content: res, title: "Error"})
|
219
221
|
)
|
@@ -5,7 +5,7 @@ class CamaleonCms::Admin::UsersController < CamaleonCms::AdminController
|
|
5
5
|
|
6
6
|
def index
|
7
7
|
add_breadcrumb I18n.t("camaleon_cms.admin.users.list_users")
|
8
|
-
@users = current_site.users.paginate(:page => params[:page], :per_page => current_site.admin_per_page)
|
8
|
+
@users = current_site.users.paginate(:page => params[:page], :per_page => current_site.admin_per_page)
|
9
9
|
end
|
10
10
|
|
11
11
|
def profile
|
@@ -4,12 +4,19 @@ module CamaleonCms::Admin::CategoryHelper
|
|
4
4
|
# build an array multiple with category items prefixed with - for each level
|
5
5
|
# categories: collection of categories
|
6
6
|
# level: internal iterator control
|
7
|
-
|
7
|
+
# attrs: (Hash) extra params
|
8
|
+
# max_level: (Integer) permit to stop iteration in certain level
|
9
|
+
# until_cats: (Array of cat ids) permit to stop iteration if current iteration is in this array
|
10
|
+
# exclude_cats: (Array of cat ids) exclude this categories from the list
|
11
|
+
def cama_category_get_options_html(categories, level = 0, attrs = {})
|
12
|
+
attrs = {max_level: 1000, until_cats:[], exclude_cats: []}.merge(attrs)
|
8
13
|
options = []
|
9
14
|
categories.all.decorate.each do |category|
|
10
|
-
|
11
|
-
|
12
|
-
|
15
|
+
next if attrs[:exclude_cats].include?(category.id)
|
16
|
+
options << [("—"*level) + category.the_title, category.id]
|
17
|
+
children = attrs[:max_level] < level ? [] : category.children
|
18
|
+
children = [] if attrs[:until_cats].include?(category.id)
|
19
|
+
options += cama_category_get_options_html(children, level + 1, attrs) if children.size > 0
|
13
20
|
end
|
14
21
|
options
|
15
22
|
end
|
@@ -31,7 +31,8 @@ module CamaleonCms::Admin::CustomFieldsHelper
|
|
31
31
|
label: t('camaleon_cms.admin.custom_field.fields.select'),
|
32
32
|
options: {
|
33
33
|
required: true,
|
34
|
-
multiple:
|
34
|
+
multiple: true,
|
35
|
+
translate: true,
|
35
36
|
multiple_options: {
|
36
37
|
label: t('camaleon_cms.admin.settings.options_select'),
|
37
38
|
default: 'radio'
|
@@ -232,6 +233,7 @@ module CamaleonCms::Admin::CustomFieldsHelper
|
|
232
233
|
options: {
|
233
234
|
required: true,
|
234
235
|
multiple: true,
|
236
|
+
translate: true,
|
235
237
|
default_value: '',
|
236
238
|
show_frontend: true
|
237
239
|
}
|
@@ -272,6 +274,25 @@ module CamaleonCms::Admin::CustomFieldsHelper
|
|
272
274
|
}
|
273
275
|
]
|
274
276
|
}
|
277
|
+
|
278
|
+
items[:post_types] = {
|
279
|
+
key: 'post_types',
|
280
|
+
label: t('camaleon_cms.admin.post_type.post_types'),
|
281
|
+
options: {
|
282
|
+
required: true,
|
283
|
+
multiple: true
|
284
|
+
}
|
285
|
+
}
|
286
|
+
|
287
|
+
items[:categories] = {
|
288
|
+
key: 'categories',
|
289
|
+
label: t('camaleon_cms.admin.table.categories'),
|
290
|
+
options: {
|
291
|
+
required: true,
|
292
|
+
multiple: true
|
293
|
+
}
|
294
|
+
}
|
295
|
+
|
275
296
|
# evaluate the content of command value on listing
|
276
297
|
# sample command: options_from_collection_for_select(current_site.the_posts("commerce").decorate, :id, :the_title)
|
277
298
|
items[:select_eval] = {
|
@@ -17,6 +17,8 @@ module CamaleonCms::Frontend::SeoHelper
|
|
17
17
|
data2 = {title: "#{current_site.the_title} | #{@cama_visited_tag.the_title}", description: @cama_visited_tag.the_excerpt, keywords: @cama_visited_tag.the_keywords, object: @cama_visited_tag }
|
18
18
|
elsif is_category?
|
19
19
|
data2 = {image: @cama_visited_category.the_thumb_url, title: "#{current_site.the_title} | #{@cama_visited_category.the_title}", description: @cama_visited_category.the_excerpt, keywords: @cama_visited_category.the_keywords, object: @cama_visited_category }
|
20
|
+
elsif is_profile?
|
21
|
+
data2 = {image: @user.the_avatar, title: "#{current_site.the_title} | #{@user.the_name}", description: @user.the_slogan, object: @user }
|
20
22
|
else
|
21
23
|
data2 = {}
|
22
24
|
end
|