camaleon_cms 2.8.2 → 2.8.3

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.

Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/camaleon_cms/admin/_actions.js +3 -2
  3. data/app/assets/javascripts/camaleon_cms/admin/_libraries.js +0 -1
  4. data/app/assets/javascripts/camaleon_cms/admin/admin-manifest.js +1 -2
  5. data/app/assets/javascripts/camaleon_cms/admin/introjs/intro.min.js +11 -0
  6. data/app/assets/javascripts/camaleon_cms/admin/introjs/intro.min.js.map +1 -0
  7. data/app/assets/javascripts/camaleon_cms/admin/jquery.validate.js +5 -5
  8. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_ar.js +52 -0
  9. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_de.js +70 -0
  10. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/{es.js → messages_es.js} +9 -10
  11. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/{fr.js → messages_fr.js} +7 -3
  12. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/messages_it.js +27 -0
  13. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/{nl.js → messages_nl.js} +1 -0
  14. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/{pt-BR.js → messages_pt-BR.js} +24 -19
  15. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/{ru.js → messages_ru.js} +6 -2
  16. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/{zh-CN.js → messages_zh-CN.js} +9 -8
  17. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_de.js +12 -0
  18. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_nl.js +12 -0
  19. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/methods_pt.js +9 -0
  20. data/app/assets/stylesheets/camaleon_cms/admin/_custom_admin.css.scss +19 -7
  21. data/app/assets/stylesheets/camaleon_cms/admin/admin-manifest.css +1 -1
  22. data/app/assets/stylesheets/camaleon_cms/admin/introjs/introjs.min.css +2 -0
  23. data/app/assets/stylesheets/camaleon_cms/admin/introjs/introjs.min.css.map +1 -0
  24. data/app/controllers/camaleon_cms/admin/media_controller.rb +2 -1
  25. data/app/helpers/camaleon_cms/uploader_helper.rb +1 -1
  26. data/app/uploaders/camaleon_cms_aws_uploader.rb +2 -0
  27. data/app/uploaders/camaleon_cms_local_uploader.rb +3 -1
  28. data/app/uploaders/camaleon_cms_uploader.rb +2 -4
  29. data/app/views/layouts/camaleon_cms/admin.html.erb +7 -1
  30. data/lib/camaleon_cms/version.rb +1 -1
  31. metadata +20 -15
  32. data/app/assets/javascripts/camaleon_cms/admin/_underscore.js +0 -1536
  33. data/app/assets/javascripts/camaleon_cms/admin/introjs/_intro.min.js +0 -1317
  34. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/de.js +0 -20
  35. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/it.js +0 -23
  36. data/app/assets/stylesheets/camaleon_cms/admin/introjs/_introjs.min.css +0 -1
  37. /data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/{uk.js → messages_uk.js} +0 -0
@@ -0,0 +1,52 @@
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: AR (Arabic; العربية)
4
+ */
5
+ $.extend( $.validator.messages, {
6
+ required: "هذا الحقل إلزامي",
7
+ remote: "يرجى تصحيح هذا الحقل للمتابعة",
8
+ email: "رجاء إدخال عنوان بريد إلكتروني صحيح",
9
+ url: "رجاء إدخال عنوان موقع إلكتروني صحيح",
10
+ date: "رجاء إدخال تاريخ صحيح",
11
+ dateISO: "رجاء إدخال تاريخ صحيح (ISO)",
12
+ number: "رجاء إدخال عدد بطريقة صحيحة",
13
+ digits: "رجاء إدخال أرقام فقط",
14
+ creditcard: "رجاء إدخال رقم بطاقة ائتمان صحيح",
15
+ equalTo: "رجاء إدخال نفس القيمة",
16
+ extension: "رجاء إدخال ملف بامتداد موافق عليه",
17
+ maxlength: $.validator.format( "الحد الأقصى لعدد الحروف هو {0}" ),
18
+ minlength: $.validator.format( "الحد الأدنى لعدد الحروف هو {0}" ),
19
+ rangelength: $.validator.format( "عدد الحروف يجب أن يكون بين {0} و {1}" ),
20
+ range: $.validator.format( "رجاء إدخال عدد قيمته بين {0} و {1}" ),
21
+ max: $.validator.format( "رجاء إدخال عدد أقل من أو يساوي {0}" ),
22
+ min: $.validator.format( "رجاء إدخال عدد أكبر من أو يساوي {0}" ),
23
+ step: $.validator.format( "يرجى تقديم قيمة من مضاعفات {0}" ),
24
+ maxWords: $.validator.format( "يرجى تقديم ما لا يزيد عن {0} كلمات" ),
25
+ minWords: $.validator.format( "يرجى تقديم {0} كلمات على الأقل" ),
26
+ rangeWords: $.validator.format( "يرجى تقديم ما بين {0} و{1} كلمة" ),
27
+ letterswithbasicpunc: "يرجى تقديم الحروف وعلامات الترقيم فقط",
28
+ alphanumeric: "يرجى تقديم الحروف والأرقام والمسافات والتسطير فقط",
29
+ lettersonly: "يرجى تقديم الحروف فقط",
30
+ nowhitespace: "من فضلك لا تدخل المساحات البيضاء",
31
+ ziprange: "يرجى تقديم الرمز البريدي بين 902xx-xxxx و905-xx-xxxx",
32
+ integer: "يرجى تقديم رقم غير عشري موجب أو سالب",
33
+ vinUS: "يرجى تقديم رقم تعريف المركبة (VIN)",
34
+ dateITA: "يرجى تقديم تاريخ صالح",
35
+ time: "يرجى تقديم وقت صالح بين 00:00 و23:59",
36
+ phoneUS: "الرجاء تقديم رقم هاتف صالح",
37
+ phoneUK: "الرجاء تقديم رقم هاتف صالح",
38
+ mobileUK: "يرجى تقديم رقم هاتف محمول صالح",
39
+ strippedminlength: $.validator.format( "يرجى تقديم {0} حرفًا على الأقل" ),
40
+ email2: "يرجى تقديم عنوان بريد إلكتروني صالح",
41
+ url2: "يرجى إدخال عنوان بريد إلكتروني صحيح",
42
+ creditcardtypes: "يرجى تقديم رقم بطاقة ائتمان صالح",
43
+ currency: "يرجى تقديم عملة صالحة",
44
+ ipv4: "يرجى تقديم عنوان IP v4 صالح",
45
+ ipv6: "يرجى تقديم عنوان IP v6 صالح",
46
+ require_from_group: $.validator.format( "يرجى تقديم ما لا يقل عن {0} من هذه الحقول" ),
47
+ nifES: "يرجى تقديم رقم TIN صالح",
48
+ nieES: "يرجى تقديم رقم NIE صالح",
49
+ cifES: "يرجى تقديم رقم CIF صالح",
50
+ postalCodeCA: "يرجى تقديم رمز بريدي صالح",
51
+ pattern: "التنسيق غير صالح"
52
+ } );
@@ -0,0 +1,70 @@
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: "Geben Sie bitte ein gültiges Datum ein.",
13
+ number: "Geben Sie bitte eine Nummer ein.",
14
+ digits: "Geben Sie bitte nur Ziffern ein.",
15
+ equalTo: "Wiederholen Sie bitte denselben Wert.",
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
+ remote: "Korrigieren Sie bitte dieses Feld.",
21
+ dateISO: "Geben Sie bitte ein gültiges Datum ein (ISO-Format).",
22
+ step: $.validator.format( "Geben Sie bitte ein Vielfaches von {0} ein." ),
23
+ maxWords: $.validator.format( "Geben Sie bitte {0} Wörter oder weniger ein." ),
24
+ minWords: $.validator.format( "Geben Sie bitte mindestens {0} Wörter ein." ),
25
+ rangeWords: $.validator.format( "Geben Sie bitte zwischen {0} und {1} Wörtern ein." ),
26
+ accept: "Geben Sie bitte einen Wert mit einem gültigen MIME-Typ ein.",
27
+ alphanumeric: "Geben Sie bitte nur Buchstaben (keine Umlaute), Zahlen oder Unterstriche ein.",
28
+ bankaccountNL: "Geben Sie bitte eine gültige Kontonummer ein.",
29
+ bankorgiroaccountNL: "Geben Sie bitte eine gültige Bank- oder Girokontonummer ein.",
30
+ bic: "Geben Sie bitte einen gültigen BIC-Code ein.",
31
+ cifES: "Geben Sie bitte eine gültige CIF-Nummer ein.",
32
+ cpfBR: "Geben Sie bitte eine gültige CPF-Nummer ein.",
33
+ creditcardtypes: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein.",
34
+ currency: "Geben Sie bitte eine gültige Währung ein.",
35
+ extension: "Geben Sie bitte einen Wert mit einer gültigen Erweiterung ein.",
36
+ giroaccountNL: "Geben Sie bitte eine gültige Girokontonummer ein.",
37
+ iban: "Geben Sie bitte eine gültige IBAN ein.",
38
+ integer: "Geben Sie bitte eine positive oder negative Nicht-Dezimalzahl ein.",
39
+ ipv4: "Geben Sie bitte eine gültige IPv4-Adresse ein.",
40
+ ipv6: "Geben Sie bitte eine gültige IPv6-Adresse ein.",
41
+ lettersonly: "Geben Sie bitte nur Buchstaben ein.",
42
+ letterswithbasicpunc: "Geben Sie bitte nur Buchstaben oder Interpunktion ein.",
43
+ mobileNL: "Geben Sie bitte eine gültige Handynummer ein.",
44
+ mobileUK: "Geben Sie bitte eine gültige Handynummer ein.",
45
+ netmask: "Geben Sie bitte eine gültige Netzmaske ein.",
46
+ nieES: "Geben Sie bitte eine gültige NIE-Nummer ein.",
47
+ nifES: "Geben Sie bitte eine gültige NIF-Nummer ein.",
48
+ nipPL: "Geben Sie bitte eine gültige NIP-Nummer ein.",
49
+ notEqualTo: "Geben Sie bitte einen anderen Wert ein. Die Werte dürfen nicht gleich sein.",
50
+ nowhitespace: "Kein Leerzeichen bitte.",
51
+ pattern: "Ungültiges Format.",
52
+ phoneNL: "Geben Sie bitte eine gültige Telefonnummer ein.",
53
+ phonesUK: "Geben Sie bitte eine gültige britische Telefonnummer ein.",
54
+ phoneUK: "Geben Sie bitte eine gültige Telefonnummer ein.",
55
+ phoneUS: "Geben Sie bitte eine gültige Telefonnummer ein.",
56
+ postalcodeBR: "Geben Sie bitte eine gültige brasilianische Postleitzahl ein.",
57
+ postalCodeCA: "Geben Sie bitte eine gültige kanadische Postleitzahl ein.",
58
+ postalcodeIT: "Geben Sie bitte eine gültige italienische Postleitzahl ein.",
59
+ postalcodeNL: "Geben Sie bitte eine gültige niederländische Postleitzahl ein.",
60
+ postcodeUK: "Geben Sie bitte eine gültige britische Postleitzahl ein.",
61
+ require_from_group: $.validator.format( "Füllen Sie bitte mindestens {0} dieser Felder aus." ),
62
+ skip_or_fill_minimum: $.validator.format( "Überspringen Sie bitte diese Felder oder füllen Sie mindestens {0} von ihnen aus." ),
63
+ stateUS: "Geben Sie bitte einen gültigen US-Bundesstaat ein.",
64
+ strippedminlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ),
65
+ time: "Geben Sie bitte eine gültige Uhrzeit zwischen 00:00 und 23:59 ein.",
66
+ time12h: "Geben Sie bitte eine gültige Uhrzeit im 12-Stunden-Format ein.",
67
+ vinUS: "Die angegebene Fahrzeugidentifikationsnummer (VIN) ist ungültig.",
68
+ zipcodeUS: "Die angegebene US-Postleitzahl ist ungültig.",
69
+ ziprange: "Ihre Postleitzahl muss im Bereich 902xx-xxxx bis 905xx-xxxx liegen."
70
+ } );
@@ -2,7 +2,7 @@
2
2
  * Translated default messages for the jQuery validation plugin.
3
3
  * Locale: ES (Spanish; Español)
4
4
  */
5
- $.extend($.validator.messages, {
5
+ $.extend( $.validator.messages, {
6
6
  required: "Este campo es obligatorio.",
7
7
  remote: "Por favor, rellena este campo.",
8
8
  email: "Por favor, escribe una dirección de correo válida.",
@@ -14,14 +14,13 @@ $.extend($.validator.messages, {
14
14
  creditcard: "Por favor, escribe un número de tarjeta válido.",
15
15
  equalTo: "Por favor, escribe el mismo valor de nuevo.",
16
16
  extension: "Por favor, escribe un valor con una extensión aceptada.",
17
- maxlength: $.validator.format("Por favor, no escribas más de {0} caracteres."),
18
- minlength: $.validator.format("Por favor, no escribas menos de {0} caracteres."),
19
- rangelength: $.validator.format("Por favor, escribe un valor entre {0} y {1} caracteres."),
20
- range: $.validator.format("Por favor, escribe un valor entre {0} y {1}."),
21
- max: $.validator.format("Por favor, escribe un valor menor o igual a {0}."),
22
- min: $.validator.format("Por favor, escribe un valor mayor o igual a {0}."),
17
+ maxlength: $.validator.format( "Por favor, no escribas más de {0} caracteres." ),
18
+ minlength: $.validator.format( "Por favor, no escribas menos de {0} caracteres." ),
19
+ rangelength: $.validator.format( "Por favor, escribe un valor entre {0} y {1} caracteres." ),
20
+ range: $.validator.format( "Por favor, escribe un valor entre {0} y {1}." ),
21
+ max: $.validator.format( "Por favor, escribe un valor menor o igual a {0}." ),
22
+ min: $.validator.format( "Por favor, escribe un valor mayor o igual a {0}." ),
23
23
  nifES: "Por favor, escribe un NIF válido.",
24
24
  nieES: "Por favor, escribe un NIE válido.",
25
- cifES: "Por favor, escribe un CIF válido.",
26
- file_format: "Formato de archivo no permitido."
27
- });
25
+ cifES: "Por favor, escribe un CIF válido."
26
+ } );
@@ -13,6 +13,7 @@ $.extend( $.validator.messages, {
13
13
  digits: "Veuillez fournir seulement des chiffres.",
14
14
  creditcard: "Veuillez fournir un numéro de carte de crédit valide.",
15
15
  equalTo: "Veuillez fournir encore la même valeur.",
16
+ notEqualTo: "Veuillez fournir une valeur différente, les valeurs ne doivent pas être identiques.",
16
17
  extension: "Veuillez fournir une valeur avec une extension valide.",
17
18
  maxlength: $.validator.format( "Veuillez fournir au plus {0} caractères." ),
18
19
  minlength: $.validator.format( "Veuillez fournir au moins {0} caractères." ),
@@ -20,6 +21,7 @@ $.extend( $.validator.messages, {
20
21
  range: $.validator.format( "Veuillez fournir une valeur entre {0} et {1}." ),
21
22
  max: $.validator.format( "Veuillez fournir une valeur inférieure ou égale à {0}." ),
22
23
  min: $.validator.format( "Veuillez fournir une valeur supérieure ou égale à {0}." ),
24
+ step: $.validator.format( "Veuillez fournir une valeur multiple de {0}." ),
23
25
  maxWords: $.validator.format( "Veuillez fournir au plus {0} mots." ),
24
26
  minWords: $.validator.format( "Veuillez fournir au moins {0} mots." ),
25
27
  rangeWords: $.validator.format( "Veuillez fournir entre {0} et {1} mots." ),
@@ -39,11 +41,13 @@ $.extend( $.validator.messages, {
39
41
  email2: "Veuillez fournir une adresse électronique valide.",
40
42
  url2: "Veuillez fournir une adresse URL valide.",
41
43
  creditcardtypes: "Veuillez fournir un numéro de carte de crédit valide.",
44
+ currency: "Veuillez fournir une monnaie valide.",
42
45
  ipv4: "Veuillez fournir une adresse IP v4 valide.",
43
46
  ipv6: "Veuillez fournir une adresse IP v6 valide.",
44
- require_from_group: "Veuillez fournir au moins {0} de ces champs.",
47
+ require_from_group: $.validator.format( "Veuillez fournir au moins {0} de ces champs." ),
45
48
  nifES: "Veuillez fournir un numéro NIF valide.",
46
49
  nieES: "Veuillez fournir un numéro NIE valide.",
47
50
  cifES: "Veuillez fournir un numéro CIF valide.",
48
- postalCodeCA: "Veuillez fournir un code postal valide."
49
- } );
51
+ postalCodeCA: "Veuillez fournir un code postal valide.",
52
+ pattern: "Format non valide."
53
+ } );
@@ -0,0 +1,27 @@
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: IT (Italian; Italiano)
4
+ */
5
+ $.extend( $.validator.messages, {
6
+ required: "Campo obbligatorio.",
7
+ remote: "Controlla questo campo.",
8
+ email: "Inserisci un indirizzo email valido.",
9
+ url: "Inserisci un indirizzo web valido.",
10
+ date: "Inserisci una data valida.",
11
+ dateISO: "Inserisci una data valida (ISO).",
12
+ number: "Inserisci un numero valido.",
13
+ digits: "Inserisci solo numeri.",
14
+ creditcard: "Inserisci un numero di carta di credito valido.",
15
+ equalTo: "Il valore non corrisponde.",
16
+ extension: "Inserisci un valore con un'estensione valida.",
17
+ maxlength: $.validator.format( "Non inserire più di {0} caratteri." ),
18
+ minlength: $.validator.format( "Inserisci almeno {0} caratteri." ),
19
+ rangelength: $.validator.format( "Inserisci un valore compreso tra {0} e {1} caratteri." ),
20
+ range: $.validator.format( "Inserisci un valore compreso tra {0} e {1}." ),
21
+ max: $.validator.format( "Inserisci un valore minore o uguale a {0}." ),
22
+ min: $.validator.format( "Inserisci un valore maggiore o uguale a {0}." ),
23
+ nifES: "Inserisci un NIF valido.",
24
+ nieES: "Inserisci un NIE valido.",
25
+ cifES: "Inserisci un CIF valido.",
26
+ currency: "Inserisci una valuta valida."
27
+ } );
@@ -20,6 +20,7 @@ $.extend( $.validator.messages, {
20
20
  range: $.validator.format( "Vul hier een waarde in van minimaal {0} en maximaal {1}." ),
21
21
  max: $.validator.format( "Vul hier een waarde in kleiner dan of gelijk aan {0}." ),
22
22
  min: $.validator.format( "Vul hier een waarde in groter dan of gelijk aan {0}." ),
23
+ step: $.validator.format( "Vul hier een veelvoud van {0} in." ),
23
24
 
24
25
  // For validations in additional-methods.js
25
26
  iban: "Vul hier een geldig IBAN in.",
@@ -4,8 +4,9 @@
4
4
  * Region: BR (Brazil)
5
5
  */
6
6
  $.extend( $.validator.messages, {
7
- //Core
8
- required: "Este campo é requerido.",
7
+
8
+ // Core
9
+ required: "Este campo é obrigatório.",
9
10
  remote: "Por favor, corrija este campo.",
10
11
  email: "Por favor, forneça um endereço de email válido.",
11
12
  url: "Por favor, forneça uma URL válida.",
@@ -21,6 +22,7 @@ $.extend( $.validator.messages, {
21
22
  range: $.validator.format( "Por favor, forneça um valor entre {0} e {1}." ),
22
23
  max: $.validator.format( "Por favor, forneça um valor menor ou igual a {0}." ),
23
24
  min: $.validator.format( "Por favor, forneça um valor maior ou igual a {0}." ),
25
+ step: $.validator.format( "Por favor, forneça um valor múltiplo de {0}." ),
24
26
 
25
27
  // Metodos Adicionais
26
28
  maxWords: $.validator.format( "Por favor, forneça com {0} palavras ou menos." ),
@@ -50,25 +52,28 @@ $.extend( $.validator.messages, {
50
52
  nieES: "Por favor, forneça um NIE válido.",
51
53
  nifES: "Por favor, forneça um NIF válido.",
52
54
  nowhitespace: "Por favor, não utilize espaços em branco.",
53
- pattern: "O formato fornenecido é inválido.",
54
- phoneNL: "Por favor, forneceça um número de telefone válido.",
55
- phoneUK: "Por favor, forneceça um número de telefone válido.",
56
- phoneUS: "Por favor, forneceça um número de telefone válido.",
57
- phonesUK: "Por favor, forneceça um número de telefone válido.",
58
- postalCodeCA: "Por favor, forneceça um número de código postal válido.",
59
- postalcodeIT: "Por favor, forneceça um número de código postal válido.",
60
- postalcodeNL: "Por favor, forneceça um número de código postal válido.",
61
- postcodeUK: "Por favor, forneceça um número de código postal válido.",
55
+ pattern: "O formato fornecido é inválido.",
56
+ phoneNL: "Por favor, forneça um número de telefone válido.",
57
+ phoneUK: "Por favor, forneça um número de telefone válido.",
58
+ phoneUS: "Por favor, forneça um número de telefone válido.",
59
+ phonesUK: "Por favor, forneça um número de telefone válido.",
60
+ postalCodeCA: "Por favor, forneça um número de código postal válido.",
61
+ postalcodeIT: "Por favor, forneça um número de código postal válido.",
62
+ postalcodeNL: "Por favor, forneça um número de código postal válido.",
63
+ postcodeUK: "Por favor, forneça um número de código postal válido.",
62
64
  postalcodeBR: "Por favor, forneça um CEP válido.",
63
65
  require_from_group: $.validator.format( "Por favor, forneça pelo menos {0} destes campos." ),
64
66
  skip_or_fill_minimum: $.validator.format( "Por favor, optar entre ignorar esses campos ou preencher pelo menos {0} deles." ),
65
67
  stateUS: "Por favor, forneça um estado válido.",
66
68
  strippedminlength: $.validator.format( "Por favor, forneça pelo menos {0} caracteres." ),
67
- time: "Por favor, forneça um horário válido, no intervado de 00:00 e 23:59.",
68
- time12h: "Por favor, forneça um horário válido, no intervado de 01:00 e 12:59 am/pm.",
69
- url2: "Por favor, forneceça uma URL válida.",
70
- vinUS: "O número de identificação de veículo informada (VIN) é inválido.",
71
- zipcodeUS: "Por favor, forneceça um código postal americano válido.",
72
- ziprange: "O código postal deve estar entre 902xx-xxxx e 905xx-xxxx",
73
- cpfBR: "Por favor, forneça um CPF válido."
74
- } );
69
+ time: "Por favor, forneça um horário válido, no intervado de 00:00 a 23:59.",
70
+ time12h: "Por favor, forneça um horário válido, no intervado de 01:00 a 12:59 am/pm.",
71
+ url2: "Por favor, forneça uma URL válida.",
72
+ vinUS: "O número de identificação de veículo informado (VIN) é inválido.",
73
+ zipcodeUS: "Por favor, forneça um código postal americano válido.",
74
+ ziprange: "O código postal deve estar entre 902xx-xxxx e 905xx-xxxx.",
75
+ cpfBR: "Por favor, forneça um CPF válido.",
76
+ nisBR: "Por favor, forneça um NIS/PIS válido.",
77
+ cnhBR: "Por favor, forneça um CNH válido.",
78
+ cnpjBR: "Por favor, forneça um CNPJ válido."
79
+ } );
@@ -1,3 +1,7 @@
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: RU (Russian; русский язык)
4
+ */
1
5
  $.extend( $.validator.messages, {
2
6
  required: "Это поле необходимо заполнить.",
3
7
  remote: "Пожалуйста, введите правильное значение.",
@@ -14,6 +18,6 @@ $.extend( $.validator.messages, {
14
18
  minlength: $.validator.format( "Пожалуйста, введите не меньше {0} символов." ),
15
19
  rangelength: $.validator.format( "Пожалуйста, введите значение длиной от {0} до {1} символов." ),
16
20
  range: $.validator.format( "Пожалуйста, введите число от {0} до {1}." ),
17
- max: $.validator.format( "Пожалуйста, введите число, меньшее или равное {0}." ),
21
+ max: $.validator.format( "Пожалуйста, введите число, меньшее или равное {0}." ),
18
22
  min: $.validator.format( "Пожалуйста, введите число, большее или равное {0}." )
19
- } );
23
+ } );
@@ -2,7 +2,7 @@
2
2
  * Translated default messages for the jQuery validation plugin.
3
3
  * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)
4
4
  */
5
- $.extend($.validator.messages, {
5
+ $.extend( $.validator.messages, {
6
6
  required: "这是必填字段",
7
7
  remote: "请修正此字段",
8
8
  email: "请输入有效的电子邮件地址",
@@ -14,10 +14,11 @@ $.extend($.validator.messages, {
14
14
  creditcard: "请输入有效的信用卡号码",
15
15
  equalTo: "你的输入不相同",
16
16
  extension: "请输入有效的后缀",
17
- maxlength: $.validator.format("最多可以输入 {0} 个字符"),
18
- minlength: $.validator.format("最少要输入 {0} 个字符"),
19
- rangelength: $.validator.format("请输入长度在 {0} 到 {1} 之间的字符串"),
20
- range: $.validator.format("请输入范围在 {0} 到 {1} 之间的数值"),
21
- max: $.validator.format("请输入不大于 {0} 的数值"),
22
- min: $.validator.format("请输入不小于 {0} 的数值")
23
- });
17
+ maxlength: $.validator.format( "最多可以输入 {0} 个字符" ),
18
+ minlength: $.validator.format( "最少要输入 {0} 个字符" ),
19
+ rangelength: $.validator.format( "请输入长度在 {0} 到 {1} 之间的字符串" ),
20
+ range: $.validator.format( "请输入范围在 {0} 到 {1} 之间的数值" ),
21
+ step: $.validator.format( "请输入 {0} 的整数倍值" ),
22
+ max: $.validator.format( "请输入不大于 {0} 的数值" ),
23
+ min: $.validator.format( "请输入不小于 {0} 的数值" )
24
+ } );
@@ -0,0 +1,12 @@
1
+ /*
2
+ * Localized default methods for the jQuery validation plugin.
3
+ * Locale: DE
4
+ */
5
+ $.extend( $.validator.methods, {
6
+ date: function( value, element ) {
7
+ return this.optional( element ) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test( value );
8
+ },
9
+ number: function( value, element ) {
10
+ return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value );
11
+ }
12
+ } );
@@ -0,0 +1,12 @@
1
+ /*
2
+ * Localized default methods for the jQuery validation plugin.
3
+ * Locale: NL
4
+ */
5
+ $.extend( $.validator.methods, {
6
+ date: function( value, element ) {
7
+ return this.optional( element ) || /^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test( value );
8
+ },
9
+ number: function( value, element ) {
10
+ return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value );
11
+ }
12
+ } );
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Localized default methods for the jQuery validation plugin.
3
+ * Locale: PT_BR
4
+ */
5
+ $.extend( $.validator.methods, {
6
+ date: function( value, element ) {
7
+ return this.optional( element ) || /^\d\d?\/\d\d?\/\d\d\d?\d?$/.test( value );
8
+ }
9
+ } );
@@ -214,6 +214,18 @@
214
214
  }
215
215
  }
216
216
 
217
+ .introjs-prevbutton, {
218
+ color: #fff !important;
219
+ background-color: #5cb85c !important;
220
+ border-color: #4cae4c !important
221
+ }
222
+
223
+ .introjs-nextbutton {
224
+ color: #fff !important;
225
+ background-color: #337ab7 !important;
226
+ border-color: #2e6da4 !important
227
+ }
228
+
217
229
  //************** fix tinymce fullscreen
218
230
  div.mce-fullscreen{
219
231
  z-index: 10;
@@ -296,8 +308,8 @@ label.error, span.error{
296
308
 
297
309
  // themes: index page
298
310
  .theme-card {
299
- border: 1px
300
- solid #ddd;
311
+ border: 1px
312
+ solid #ddd;
301
313
  border-radius: 0;
302
314
  position: relative;
303
315
 
@@ -305,7 +317,7 @@ label.error, span.error{
305
317
  padding: 0;
306
318
 
307
319
  .theme-image {
308
- width: 100%;
320
+ width: 100%;
309
321
  height: 260px;
310
322
  background-size: cover;
311
323
  }
@@ -334,14 +346,14 @@ label.error, span.error{
334
346
  }
335
347
 
336
348
  .panel-footer {
337
- background-color: #fafafa;
338
- border: 0;
339
- border-radius: 0;
349
+ background-color: #fafafa;
350
+ border: 0;
351
+ border-radius: 0;
340
352
  box-shadow: inset 0 1px 0 rgba(0,0,0,.1);
341
353
  display: flex;
342
354
  justify-content: space-between;
343
355
  align-items: center;
344
-
356
+
345
357
 
346
358
  .theme-name {
347
359
  font-size: 1.6rem;
@@ -16,7 +16,7 @@
16
16
  *= require ./_custom_admin
17
17
 
18
18
  *= require ./_bootstrap-datepicker
19
- *= require ./introjs/_introjs.min
19
+ *= require ./introjs/introjs.min
20
20
  *= require ./tageditor/_jquery.tag-editor
21
21
 
22
22
  *= require ./uploader/uploader_manifest
@@ -0,0 +1,2 @@
1
+ .introjs-overlay{position:absolute;box-sizing:content-box;z-index:999999;opacity:0;transition:all .3s ease-out}.introjs-showElement{z-index:9999999!important}tr.introjs-showElement>td{z-index:9999999!important;position:relative}tr.introjs-showElement>th{z-index:9999999!important;position:relative}.introjs-disableInteraction{z-index:99999999!important;position:absolute;background-color:#fff;opacity:0}.introjs-relativePosition{position:relative}.introjs-helperLayer{box-sizing:content-box;position:absolute;z-index:9999998;border-radius:4px;transition:all .3s ease-out}.introjs-helperLayer *{box-sizing:content-box}.introjs-helperLayer :before{box-sizing:content-box}.introjs-helperLayer :after{box-sizing:content-box}.introjs-tooltipReferenceLayer{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif;box-sizing:content-box;position:absolute;visibility:hidden;z-index:100000000;background-color:transparent;transition:all .3s ease-out}.introjs-tooltipReferenceLayer *{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif}.introjs-helperNumberLayer{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif;color:#9e9e9e;text-align:center;padding-top:10px;padding-bottom:10px}.introjs-arrow{border:5px solid transparent;content:"";position:absolute}.introjs-arrow.top{top:-10px;left:10px;border-bottom-color:#fff}.introjs-arrow.top-right{top:-10px;right:10px;border-bottom-color:#fff}.introjs-arrow.top-middle{top:-10px;left:50%;margin-left:-5px;border-bottom-color:#fff}.introjs-arrow.right{right:-10px;top:10px;border-left-color:#fff}.introjs-arrow.right-bottom{bottom:10px;right:-10px;border-left-color:#fff}.introjs-arrow.bottom{bottom:-10px;left:10px;border-top-color:#fff}.introjs-arrow.bottom-right{bottom:-10px;right:10px;border-top-color:#fff}.introjs-arrow.bottom-middle{bottom:-10px;left:50%;margin-left:-5px;border-top-color:#fff}.introjs-arrow.left{left:-10px;top:10px;border-right-color:#fff}.introjs-arrow.left-bottom{left:-10px;bottom:10px;border-right-color:#fff}.introjs-tooltip{box-sizing:content-box;position:absolute;visibility:visible;background-color:#fff;min-width:250px;max-width:300px;border-radius:5px;box-shadow:0 3px 30px rgba(33,33,33,.3);transition:opacity .1s ease-out}.introjs-tooltiptext{padding:20px}.introjs-dontShowAgain{padding-left:20px;padding-right:20px}.introjs-dontShowAgain input{padding:0;margin:0;margin-bottom:2px;display:inline;width:10px;height:10px}.introjs-dontShowAgain label{font-size:14px;display:inline-block;font-weight:400;margin:0 0 0 5px;padding:0;background-color:#fff;color:#616161;-webkit-user-select:none;user-select:none}.introjs-tooltip-title{font-size:18px;width:90%;min-height:1.5em;margin:0;padding:0;font-weight:700;line-height:1.5}.introjs-tooltip-header{position:relative;padding-left:20px;padding-right:20px;padding-top:10px;min-height:1.5em}.introjs-tooltipbuttons{border-top:1px solid #e0e0e0;padding:10px;text-align:right;white-space:nowrap}.introjs-tooltipbuttons:after{content:"";visibility:hidden;display:block;height:0;clear:both}.introjs-button{box-sizing:content-box;position:relative;overflow:visible;padding:.5rem 1rem;border:1px solid #bdbdbd;text-decoration:none;text-shadow:1px 1px 0 #fff;font-size:14px;color:#424242;white-space:nowrap;cursor:pointer;outline:0;background-color:#f4f4f4;border-radius:.2em;zoom:1;display:inline}.introjs-button:hover{outline:0;text-decoration:none;border-color:#9e9e9e;background-color:#e0e0e0;color:#212121}.introjs-button:focus{outline:0;text-decoration:none;background-color:#eee;box-shadow:0 0 0 .2rem rgba(158,158,158,.5);border:1px solid #616161;color:#212121}.introjs-button:active{outline:0;text-decoration:none;background-color:#e0e0e0;border-color:#9e9e9e;color:#212121}.introjs-button::-moz-focus-inner{padding:0;border:0}.introjs-skipbutton{position:absolute;top:0;right:0;display:inline-block;width:45px;height:45px;line-height:45px;color:#616161;font-size:22px;cursor:pointer;font-weight:700;text-align:center;text-decoration:none}.introjs-skipbutton:focus,.introjs-skipbutton:hover{color:#212121;outline:0;text-decoration:none}.introjs-prevbutton{float:left}.introjs-nextbutton{float:right}.introjs-disabled{color:#9e9e9e;border-color:#bdbdbd;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-disabled:focus,.introjs-disabled:hover{color:#9e9e9e;border-color:#bdbdbd;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-hidden{display:none}.introjs-bullets{text-align:center;padding-top:10px;padding-bottom:10px}.introjs-bullets ul{box-sizing:content-box;clear:both;margin:0 auto 0;padding:0;display:inline-block}.introjs-bullets ul li{box-sizing:content-box;list-style:none;float:left;margin:0 2px}.introjs-bullets ul li a{transition:width .1s ease-in;box-sizing:content-box;display:block;width:6px;height:6px;background:#ccc;border-radius:10px;text-decoration:none;cursor:pointer}.introjs-bullets ul li a:focus,.introjs-bullets ul li a:hover{width:15px;background:#999;text-decoration:none;outline:0}.introjs-bullets ul li a.active{width:15px;background:#999}.introjs-progress{box-sizing:content-box;overflow:hidden;height:10px;margin:10px;border-radius:4px;background-color:#e0e0e0}.introjs-progressbar{box-sizing:content-box;float:left;width:0%;height:100%;font-size:10px;line-height:10px;text-align:center;background-color:#08c}.introjsFloatingElement{position:absolute;height:0;width:0;left:50%;top:50%}.introjs-fixedTooltip{position:fixed}.introjs-hint{box-sizing:content-box;position:absolute;background:0 0;width:20px;height:15px;cursor:pointer}.introjs-hint:focus{border:0;outline:0}.introjs-hint:hover>.introjs-hint-pulse{background-color:rgba(60,60,60,.57)}.introjs-hidehint{display:none}.introjs-fixedhint{position:fixed}@keyframes introjspulse{0%{transform:scale(.95);box-shadow:0 0 0 0 rgba(0,0,0,.7)}70%{transform:scale(1);box-shadow:0 0 0 10px transparent}100%{transform:scale(.95);box-shadow:0 0 0 0 transparent}}.introjs-hint-pulse{box-sizing:content-box;width:15px;height:15px;border-radius:30px;background-color:rgba(136,136,136,.24);z-index:10;position:absolute;transition:all .2s ease-out;animation:introjspulse 2s infinite}.introjs-hint-no-anim .introjs-hint-pulse{animation:none}.introjs-hint-dot{box-sizing:content-box;background:0 0;border-radius:60px;height:50px;width:50px;position:absolute;top:-18px;left:-18px;z-index:1;opacity:0}
2
+ /*# sourceMappingURL=introjs.min.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["%3Cinput%20css%202%3E"],"names":[],"mappings":"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","file":"introjs.min.css","sourcesContent":[".introjs-overlay{position:absolute;box-sizing:content-box;z-index:999999;opacity:0;transition:all .3s ease-out}.introjs-showElement{z-index:9999999!important}tr.introjs-showElement>td{z-index:9999999!important;position:relative}tr.introjs-showElement>th{z-index:9999999!important;position:relative}.introjs-disableInteraction{z-index:99999999!important;position:absolute;background-color:#fff;opacity:0}.introjs-relativePosition{position:relative}.introjs-helperLayer{box-sizing:content-box;position:absolute;z-index:9999998;border-radius:4px;transition:all .3s ease-out}.introjs-helperLayer *{box-sizing:content-box}.introjs-helperLayer :before{box-sizing:content-box}.introjs-helperLayer :after{box-sizing:content-box}.introjs-tooltipReferenceLayer{font-family:\"Helvetica Neue\",Inter,ui-sans-serif,\"Apple Color Emoji\",Helvetica,Arial,sans-serif;box-sizing:content-box;position:absolute;visibility:hidden;z-index:100000000;background-color:transparent;transition:all .3s ease-out}.introjs-tooltipReferenceLayer *{font-family:\"Helvetica Neue\",Inter,ui-sans-serif,\"Apple Color Emoji\",Helvetica,Arial,sans-serif}.introjs-helperNumberLayer{font-family:\"Helvetica Neue\",Inter,ui-sans-serif,\"Apple Color Emoji\",Helvetica,Arial,sans-serif;color:#9e9e9e;text-align:center;padding-top:10px;padding-bottom:10px}.introjs-arrow{border:5px solid transparent;content:\"\";position:absolute}.introjs-arrow.top{top:-10px;left:10px;border-bottom-color:#fff}.introjs-arrow.top-right{top:-10px;right:10px;border-bottom-color:#fff}.introjs-arrow.top-middle{top:-10px;left:50%;margin-left:-5px;border-bottom-color:#fff}.introjs-arrow.right{right:-10px;top:10px;border-left-color:#fff}.introjs-arrow.right-bottom{bottom:10px;right:-10px;border-left-color:#fff}.introjs-arrow.bottom{bottom:-10px;left:10px;border-top-color:#fff}.introjs-arrow.bottom-right{bottom:-10px;right:10px;border-top-color:#fff}.introjs-arrow.bottom-middle{bottom:-10px;left:50%;margin-left:-5px;border-top-color:#fff}.introjs-arrow.left{left:-10px;top:10px;border-right-color:#fff}.introjs-arrow.left-bottom{left:-10px;bottom:10px;border-right-color:#fff}.introjs-tooltip{box-sizing:content-box;position:absolute;visibility:visible;background-color:#fff;min-width:250px;max-width:300px;border-radius:5px;box-shadow:0 3px 30px rgba(33,33,33,.3);transition:opacity .1s ease-out}.introjs-tooltiptext{padding:20px}.introjs-dontShowAgain{padding-left:20px;padding-right:20px}.introjs-dontShowAgain input{padding:0;margin:0;margin-bottom:2px;display:inline;width:10px;height:10px}.introjs-dontShowAgain label{font-size:14px;display:inline-block;font-weight:400;margin:0 0 0 5px;padding:0;background-color:#fff;color:#616161;-webkit-user-select:none;user-select:none}.introjs-tooltip-title{font-size:18px;width:90%;min-height:1.5em;margin:0;padding:0;font-weight:700;line-height:1.5}.introjs-tooltip-header{position:relative;padding-left:20px;padding-right:20px;padding-top:10px;min-height:1.5em}.introjs-tooltipbuttons{border-top:1px solid #e0e0e0;padding:10px;text-align:right;white-space:nowrap}.introjs-tooltipbuttons:after{content:\"\";visibility:hidden;display:block;height:0;clear:both}.introjs-button{box-sizing:content-box;position:relative;overflow:visible;padding:.5rem 1rem;border:1px solid #bdbdbd;text-decoration:none;text-shadow:1px 1px 0 #fff;font-size:14px;color:#424242;white-space:nowrap;cursor:pointer;outline:0;background-color:#f4f4f4;border-radius:.2em;zoom:1;display:inline}.introjs-button:hover{outline:0;text-decoration:none;border-color:#9e9e9e;background-color:#e0e0e0;color:#212121}.introjs-button:focus{outline:0;text-decoration:none;background-color:#eee;box-shadow:0 0 0 .2rem rgba(158,158,158,.5);border:1px solid #616161;color:#212121}.introjs-button:active{outline:0;text-decoration:none;background-color:#e0e0e0;border-color:#9e9e9e;color:#212121}.introjs-button::-moz-focus-inner{padding:0;border:0}.introjs-skipbutton{position:absolute;top:0;right:0;display:inline-block;width:45px;height:45px;line-height:45px;color:#616161;font-size:22px;cursor:pointer;font-weight:700;text-align:center;text-decoration:none}.introjs-skipbutton:focus,.introjs-skipbutton:hover{color:#212121;outline:0;text-decoration:none}.introjs-prevbutton{float:left}.introjs-nextbutton{float:right}.introjs-disabled{color:#9e9e9e;border-color:#bdbdbd;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-disabled:focus,.introjs-disabled:hover{color:#9e9e9e;border-color:#bdbdbd;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-hidden{display:none}.introjs-bullets{text-align:center;padding-top:10px;padding-bottom:10px}.introjs-bullets ul{box-sizing:content-box;clear:both;margin:0 auto 0;padding:0;display:inline-block}.introjs-bullets ul li{box-sizing:content-box;list-style:none;float:left;margin:0 2px}.introjs-bullets ul li a{transition:width .1s ease-in;box-sizing:content-box;display:block;width:6px;height:6px;background:#ccc;border-radius:10px;text-decoration:none;cursor:pointer}.introjs-bullets ul li a:focus,.introjs-bullets ul li a:hover{width:15px;background:#999;text-decoration:none;outline:0}.introjs-bullets ul li a.active{width:15px;background:#999}.introjs-progress{box-sizing:content-box;overflow:hidden;height:10px;margin:10px;border-radius:4px;background-color:#e0e0e0}.introjs-progressbar{box-sizing:content-box;float:left;width:0%;height:100%;font-size:10px;line-height:10px;text-align:center;background-color:#08c}.introjsFloatingElement{position:absolute;height:0;width:0;left:50%;top:50%}.introjs-fixedTooltip{position:fixed}.introjs-hint{box-sizing:content-box;position:absolute;background:0 0;width:20px;height:15px;cursor:pointer}.introjs-hint:focus{border:0;outline:0}.introjs-hint:hover>.introjs-hint-pulse{background-color:rgba(60,60,60,.57)}.introjs-hidehint{display:none}.introjs-fixedhint{position:fixed}@keyframes introjspulse{0%{transform:scale(.95);box-shadow:0 0 0 0 rgba(0,0,0,.7)}70%{transform:scale(1);box-shadow:0 0 0 10px transparent}100%{transform:scale(.95);box-shadow:0 0 0 0 transparent}}.introjs-hint-pulse{box-sizing:content-box;width:15px;height:15px;border-radius:30px;background-color:rgba(136,136,136,.24);z-index:10;position:absolute;transition:all .2s ease-out;animation:introjspulse 2s infinite}.introjs-hint-no-anim .introjs-hint-pulse{animation:none}.introjs-hint-dot{box-sizing:content-box;background:0 0;border-radius:60px;height:50px;width:50px;position:absolute;top:-18px;left:-18px;z-index:1;opacity:0}"]}
@@ -57,7 +57,8 @@ module CamaleonCms
57
57
  case params[:media_action]
58
58
  when 'new_folder'
59
59
  params[:folder] = slugify_folder(params[:folder])
60
- return render partial: 'render_file_item', locals: { files: [cama_uploader.add_folder(params[:folder])] }
60
+ r = cama_uploader.add_folder(params[:folder])
61
+ return render partial: 'render_file_item', locals: { files: [r] } if r[:error].blank?
61
62
  when 'del_folder'
62
63
  r = cama_uploader.delete_folder(params[:folder])
63
64
  when 'del_file'
@@ -76,7 +76,7 @@ module CamaleonCms
76
76
  res = { error: nil }
77
77
 
78
78
  # guard against path traversal
79
- return { error: 'Invalid file path' } unless cama_uploader.class.valid_folder_path?(settings[:folder])
79
+ return { error: 'Invalid file path' } unless cama_uploader.valid_folder_path?(settings[:folder])
80
80
 
81
81
  # formats validations
82
82
  return { error: "#{ct('file_format_error')} (#{settings[:formats]})" } unless cama_uploader.class.validate_file_format(
@@ -105,6 +105,8 @@ class CamaleonCmsAwsUploader < CamaleonCmsUploader
105
105
 
106
106
  # add new folder to AWS with :key
107
107
  def add_folder(key)
108
+ return { error: 'Invalid folder path' } unless valid_folder_path?(key)
109
+
108
110
  key = "#{@aws_settings['inner_folder']}/#{key}" if @aws_settings['inner_folder'].present?
109
111
  key = key.cama_fix_media_key
110
112
  s3_file = bucket.object(key.slice(1..-1) << '/')
@@ -25,7 +25,7 @@ class CamaleonCmsLocalUploader < CamaleonCmsUploader
25
25
  end
26
26
 
27
27
  def fetch_file(file_name)
28
- return { error: 'Invalid file path' } if file_name.include?('..')
28
+ return { error: 'Invalid file path' } unless valid_folder_path?(file_name)
29
29
 
30
30
  return file_name if file_exists?(file_name)
31
31
 
@@ -96,6 +96,8 @@ class CamaleonCmsLocalUploader < CamaleonCmsUploader
96
96
 
97
97
  # create a new folder into local directory
98
98
  def add_folder(key)
99
+ return { error: 'Invalid folder path' } unless valid_folder_path?(key)
100
+
99
101
  d = File.join(@root_folder, key).to_s
100
102
  is_new_folder = false
101
103
  unless Dir.exist?(d)
@@ -125,10 +125,8 @@ class CamaleonCmsUploader
125
125
  valid_formats.include?(File.extname(key).sub('.', '').split('?').first.try(:downcase))
126
126
  end
127
127
 
128
- def self.valid_folder_path?(path)
129
- return true if path == '/'
130
-
131
- return false if path.include?('..') || File.absolute_path?(path) || path.include?('://')
128
+ def valid_folder_path?(path)
129
+ return false if path.include?('..') || path.include?('://')
132
130
 
133
131
  true
134
132
  end
@@ -18,7 +18,13 @@
18
18
  </script>
19
19
  <%= javascript_include_tag "camaleon_cms/admin/admin-manifest" %>
20
20
 
21
- <%= javascript_include_tag "camaleon_cms/admin/jquery_validate/#{current_locale}.js" if current_locale != 'en' %>
21
+ <%= javascript_include_tag "camaleon_cms/admin/jquery_validate/messages_#{current_locale}.js" if current_locale != 'en' %>
22
+
23
+ <% jquery_validate_localized_methods = "camaleon_cms/admin/jquery_validate/methods_#{current_locale}.js"%>
24
+ <% jquery_validate_localized_methods_exist =
25
+ File.file?(Rails.root.join('app', 'assets', 'javascripts', jquery_validate_localized_methods))%>
26
+ <%= javascript_include_tag jquery_validate_localized_methods if jquery_validate_localized_methods_exist %>
27
+
22
28
  <%= javascript_include_tag "camaleon_cms/admin/momentjs/#{current_locale}.js" if current_locale != 'en' %>
23
29
 
24
30
  <%= raw the_head({}, false) %>
@@ -1,3 +1,3 @@
1
1
  module CamaleonCms
2
- VERSION = '2.8.2'.freeze
2
+ VERSION = '2.8.3'.freeze
3
3
  end