trusty-cms 4.1.3 → 4.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +127 -120
  4. data/README.md +1 -1
  5. data/app/assets/javascripts/admin/assets.js +1 -1
  6. data/app/assets/javascripts/rad_social/rad_ajax_form.js +3 -0
  7. data/app/assets/javascripts/rad_social/rad_email.js +0 -1
  8. data/app/assets/javascripts/rad_social/rad_email_form.js +2 -7
  9. data/app/assets/stylesheets/rad_social/rad_screen.scss +0 -4
  10. data/app/controllers/social_mailer_controller.rb +0 -7
  11. data/app/views/admin/assets/edit.html.haml +3 -0
  12. data/app/views/rad_social_mailer/social_mail_form.html.haml +1 -3
  13. data/app/views/widget/_email_form.html.haml +0 -5
  14. data/config/locales/en.yml +1 -0
  15. data/lib/trusty_cms.rb +1 -1
  16. data/lib/trusty_cms/engine.rb +0 -1
  17. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/core.js +126 -0
  18. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/failsafe/index.js +4 -0
  19. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/failsafe/map.js +56 -0
  20. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/failsafe/seq.js +43 -0
  21. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/failsafe/string.js +28 -0
  22. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/index.js +36 -0
  23. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/json.js +76 -0
  24. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/options.js +23 -0
  25. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/yaml-1.1/binary.js +87 -0
  26. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/yaml-1.1/index.js +157 -0
  27. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/yaml-1.1/omap.js +142 -0
  28. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/yaml-1.1/pairs.js +81 -0
  29. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/yaml-1.1/set.js +114 -0
  30. data/spec/spec/dummy/node_modules/yaml/browser/dist/tags/yaml-1.1/timestamp.js +97 -0
  31. data/spec/spec/dummy/node_modules/yaml/dist/tags/core.js +114 -0
  32. data/spec/spec/dummy/node_modules/yaml/dist/tags/failsafe/index.js +17 -0
  33. data/spec/spec/dummy/node_modules/yaml/dist/tags/failsafe/map.js +37 -0
  34. data/spec/spec/dummy/node_modules/yaml/dist/tags/failsafe/seq.js +34 -0
  35. data/spec/spec/dummy/node_modules/yaml/dist/tags/failsafe/string.js +40 -0
  36. data/spec/spec/dummy/node_modules/yaml/dist/tags/index.js +62 -0
  37. data/spec/spec/dummy/node_modules/yaml/dist/tags/json.js +60 -0
  38. data/spec/spec/dummy/node_modules/yaml/dist/tags/options.js +35 -0
  39. data/spec/spec/dummy/node_modules/yaml/dist/tags/yaml-1.1/binary.js +97 -0
  40. data/spec/spec/dummy/node_modules/yaml/dist/tags/yaml-1.1/index.js +131 -0
  41. data/spec/spec/dummy/node_modules/yaml/dist/tags/yaml-1.1/omap.js +105 -0
  42. data/spec/spec/dummy/node_modules/yaml/dist/tags/yaml-1.1/pairs.js +80 -0
  43. data/spec/spec/dummy/node_modules/yaml/dist/tags/yaml-1.1/set.js +91 -0
  44. data/spec/spec/dummy/node_modules/yaml/dist/tags/yaml-1.1/timestamp.js +93 -0
  45. data/trusty_cms.gemspec +4 -4
  46. data/yarn.lock +6 -6
  47. metadata +7574 -75
  48. data/app/assets/javascripts/rad_social/captcha.js +0 -42
@@ -16,6 +16,9 @@ function RadAjaxForm(form) {
16
16
  type: "POST",
17
17
  url: form.find('input[name=submit_url]').attr('value'),
18
18
  data: form.serialize(),
19
+ beforeSend: function ( xhr ) {
20
+ xhr.setRequestHeader("X-CSRF-Token", $('meta[name=csrf-token]').attr('content'));
21
+ },
19
22
  success: function(data, status, xhr) {
20
23
  form.find(".loader").removeClass('ajax-loader');
21
24
  form.find(".loader-small").removeClass('ajax-loader-small');
@@ -1,6 +1,5 @@
1
1
  //= require jquery
2
2
  //= require 'rad_social/jquery.validate.min'
3
3
  //= require 'rad_social/rad_ajax_form'
4
- //= require 'rad_social/captcha'
5
4
  //= require 'rad_social/rad_email_validator'
6
5
  //= require 'rad_social/rad_email_form'
@@ -63,17 +63,12 @@ $(document).ready(function() {
63
63
  $('#rs-from_name').val('');
64
64
  $('#rs-to').val('');
65
65
  $('#rs-message').val($('#rs-base-message').val());
66
- var captcha = new Captcha("#recaptcha-container");
67
- captcha.reload();
68
66
  }
69
67
 
70
- function processFailure(xhr)
71
- {
72
- var captcha = new Captcha("#recaptcha-container");
68
+ function processFailure(xhr) {
73
69
  var error_msg = xhr.getResponseHeader("ErrorMsg");
74
70
  displayErrorMessage(error_msg);
75
- captcha.reload();
76
- }
71
+ }
77
72
 
78
73
  function displayErrorMessage(msg) {
79
74
  var error_msg_div = $('.rad-email-error');
@@ -55,10 +55,6 @@
55
55
  float: right;
56
56
  }
57
57
 
58
- .rad-email-form .captcha-container {
59
- padding: 10px 0px;
60
- }
61
-
62
58
  .rad-email-form input.std_input {
63
59
  margin-bottom: 10px;
64
60
  }
@@ -12,13 +12,6 @@ class SocialMailerController < ApplicationController
12
12
  message: params[:message],
13
13
  subject: params[:subject],
14
14
  }
15
-
16
- if verify_recaptcha(action: 'emailSeats')
17
- RadSocialMailer.social_mail(mailer_options).deliver_now
18
- head :ok
19
- else
20
- head :bad_request, ErrorMsg: 'We have detected suspicious activity and have disabled this feature for your user.'
21
- end
22
15
  end
23
16
 
24
17
  def social_mail_form
@@ -14,6 +14,9 @@
14
14
  %fieldset
15
15
  %label.filename
16
16
  = "#{t("clipped_extension.filename")}: #{@asset.asset_file_name unless @asset.new_record?}"
17
+ %br
18
+ %label.url
19
+ = "#{t("clipped_extension.asset_url")}: #{image_path @asset.thumbnail unless @asset.new_record?}"
17
20
  %p.asset
18
21
  - display_size = TrustyCms::config['assets.display_size'] || 'normal'
19
22
  = image_tag @asset.thumbnail(display_size.to_sym), :class => 'preview'
@@ -1,6 +1,6 @@
1
1
  = stylesheet_link_tag('rad_social/rad_screen')
2
- = javascript_include_tag('https://www.google.com/recaptcha/api/js/recaptcha_ajax.js')
3
2
  = javascript_include_tag('rad_social/rad_email')
3
+ = csrf_meta_tags
4
4
 
5
5
  .rad-dialog-titlebar
6
6
  %span.rad-dialog-title
@@ -31,8 +31,6 @@
31
31
  = email_message
32
32
  %input{:type=>'hidden', :name=>'subject', :value=> email_subject}
33
33
  %input{:type=>'hidden', :id=>'rs-base-message', :value=> email_message}
34
- #recaptcha-container.captcha-container
35
- = recaptcha_v3 action: 'emailSeats'
36
34
  %input{:type=>'hidden', :name=>'submit_url', :value=> email_action_url}
37
35
  %input.button.primary-button{:id => 'rad_email_submit', :type=>:button ,:value=>'Submit'}
38
36
  .loader
@@ -1,5 +1,3 @@
1
- - javascript('rad_social/captcha')
2
-
3
1
  = form_tag
4
2
  %form{:id=>'rad_social_email_form', :class=>'rad-email-form'}
5
3
  %label{:for => 'from'}
@@ -20,6 +18,3 @@
20
18
  %input{:type=>'hidden', :name=>'submit_url', :value=>'contact/email'}
21
19
  %input.button.primary-button{:id => 'email_submit', :type=>:button ,:value=>'Submit'}
22
20
  .loader
23
-
24
- #recaptcha-container.captcha-container
25
- = recaptcha_v3 action: 'emailSeats'
@@ -65,6 +65,7 @@ en:
65
65
  asset_errors: 'Sorry. {{errors}}'
66
66
  asset_page_attachment_note: 'Attached assets. These can be inserted with drag and drop or shown with the <code>&lt;r:assets:each /&gt;</code> tag.'
67
67
  asset_note: 'Attached assets. '
68
+ asset_url: 'Asset URL'
68
69
  assets: 'Assets'
69
70
  assets_explanation: 'Assets and images can be uploaded and then attached or inserted into pages, snippets and layouts. Click on an asset name above to edit it or click <code>Remove</code> to delete it.'
70
71
  assets_title: 'Assets'
@@ -2,6 +2,6 @@ TRUSTY_CMS_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..')) unle
2
2
 
3
3
  unless defined? TrustyCms::VERSION
4
4
  module TrustyCms
5
- VERSION = '4.1.3'.freeze
5
+ VERSION = '4.1.8'.freeze
6
6
  end
7
7
  end
@@ -12,7 +12,6 @@ module TrustyCms
12
12
  ckeditor/skins/moono/editor.css
13
13
  ckeditor/lang/en.js
14
14
  rad_social/rad_screen.css
15
- rad_social/captcha.js
16
15
  rad_social/rad_email.js
17
16
  rad_social/rad_widget.js
18
17
  )
@@ -0,0 +1,126 @@
1
+ import Scalar from '../schema/Scalar';
2
+ import { stringifyNumber } from '../stringify';
3
+ import failsafe from './failsafe';
4
+ import { boolOptions, nullOptions } from './options';
5
+ export var nullObj = {
6
+ identify: function identify(value) {
7
+ return value == null;
8
+ },
9
+ createNode: function createNode(schema, value, ctx) {
10
+ return ctx.wrapScalars ? new Scalar(null) : null;
11
+ },
12
+ default: true,
13
+ tag: 'tag:yaml.org,2002:null',
14
+ test: /^(?:~|[Nn]ull|NULL)?$/,
15
+ resolve: function resolve() {
16
+ return null;
17
+ },
18
+ options: nullOptions,
19
+ stringify: function stringify() {
20
+ return nullOptions.nullStr;
21
+ }
22
+ };
23
+ export var boolObj = {
24
+ identify: function identify(value) {
25
+ return typeof value === 'boolean';
26
+ },
27
+ default: true,
28
+ tag: 'tag:yaml.org,2002:bool',
29
+ test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
30
+ resolve: function resolve(str) {
31
+ return str[0] === 't' || str[0] === 'T';
32
+ },
33
+ options: boolOptions,
34
+ stringify: function stringify(_ref) {
35
+ var value = _ref.value;
36
+ return value ? boolOptions.trueStr : boolOptions.falseStr;
37
+ }
38
+ };
39
+ export var octObj = {
40
+ identify: function identify(value) {
41
+ return typeof value === 'number';
42
+ },
43
+ default: true,
44
+ tag: 'tag:yaml.org,2002:int',
45
+ format: 'OCT',
46
+ test: /^0o([0-7]+)$/,
47
+ resolve: function resolve(str, oct) {
48
+ return parseInt(oct, 8);
49
+ },
50
+ stringify: function stringify(_ref2) {
51
+ var value = _ref2.value;
52
+ return '0o' + value.toString(8);
53
+ }
54
+ };
55
+ export var intObj = {
56
+ identify: function identify(value) {
57
+ return typeof value === 'number';
58
+ },
59
+ default: true,
60
+ tag: 'tag:yaml.org,2002:int',
61
+ test: /^[-+]?[0-9]+$/,
62
+ resolve: function resolve(str) {
63
+ return parseInt(str, 10);
64
+ },
65
+ stringify: stringifyNumber
66
+ };
67
+ export var hexObj = {
68
+ identify: function identify(value) {
69
+ return typeof value === 'number';
70
+ },
71
+ default: true,
72
+ tag: 'tag:yaml.org,2002:int',
73
+ format: 'HEX',
74
+ test: /^0x([0-9a-fA-F]+)$/,
75
+ resolve: function resolve(str, hex) {
76
+ return parseInt(hex, 16);
77
+ },
78
+ stringify: function stringify(_ref3) {
79
+ var value = _ref3.value;
80
+ return '0x' + value.toString(16);
81
+ }
82
+ };
83
+ export var nanObj = {
84
+ identify: function identify(value) {
85
+ return typeof value === 'number';
86
+ },
87
+ default: true,
88
+ tag: 'tag:yaml.org,2002:float',
89
+ test: /^(?:[-+]?\.inf|(\.nan))$/i,
90
+ resolve: function resolve(str, nan) {
91
+ return nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY;
92
+ },
93
+ stringify: stringifyNumber
94
+ };
95
+ export var expObj = {
96
+ identify: function identify(value) {
97
+ return typeof value === 'number';
98
+ },
99
+ default: true,
100
+ tag: 'tag:yaml.org,2002:float',
101
+ format: 'EXP',
102
+ test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,
103
+ resolve: function resolve(str) {
104
+ return parseFloat(str);
105
+ },
106
+ stringify: function stringify(_ref4) {
107
+ var value = _ref4.value;
108
+ return Number(value).toExponential();
109
+ }
110
+ };
111
+ export var floatObj = {
112
+ identify: function identify(value) {
113
+ return typeof value === 'number';
114
+ },
115
+ default: true,
116
+ tag: 'tag:yaml.org,2002:float',
117
+ test: /^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/,
118
+ resolve: function resolve(str, frac1, frac2) {
119
+ var frac = frac1 || frac2;
120
+ var node = new Scalar(parseFloat(str));
121
+ if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length;
122
+ return node;
123
+ },
124
+ stringify: stringifyNumber
125
+ };
126
+ export default failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]);
@@ -0,0 +1,4 @@
1
+ import map from './map';
2
+ import seq from './seq';
3
+ import str from './string';
4
+ export default [map, seq, str];
@@ -0,0 +1,56 @@
1
+ import _typeof from "@babel/runtime/helpers/typeof";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import YAMLMap from '../../schema/Map';
4
+ import parseMap from '../../schema/parseMap';
5
+
6
+ function createMap(schema, obj, ctx) {
7
+ var map = new YAMLMap(schema);
8
+
9
+ if (obj instanceof Map) {
10
+ var _iteratorNormalCompletion = true;
11
+ var _didIteratorError = false;
12
+ var _iteratorError = undefined;
13
+
14
+ try {
15
+ for (var _iterator = obj[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
16
+ var _step$value = _slicedToArray(_step.value, 2),
17
+ key = _step$value[0],
18
+ value = _step$value[1];
19
+
20
+ map.items.push(schema.createPair(key, value, ctx));
21
+ }
22
+ } catch (err) {
23
+ _didIteratorError = true;
24
+ _iteratorError = err;
25
+ } finally {
26
+ try {
27
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
28
+ _iterator.return();
29
+ }
30
+ } finally {
31
+ if (_didIteratorError) {
32
+ throw _iteratorError;
33
+ }
34
+ }
35
+ }
36
+ } else if (obj && _typeof(obj) === 'object') {
37
+ for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) {
38
+ var _key = _Object$keys[_i];
39
+ map.items.push(schema.createPair(_key, obj[_key], ctx));
40
+ }
41
+ }
42
+
43
+ if (typeof schema.sortMapEntries === 'function') {
44
+ map.items.sort(schema.sortMapEntries);
45
+ }
46
+
47
+ return map;
48
+ }
49
+
50
+ export default {
51
+ createNode: createMap,
52
+ default: true,
53
+ nodeClass: YAMLMap,
54
+ tag: 'tag:yaml.org,2002:map',
55
+ resolve: parseMap
56
+ };
@@ -0,0 +1,43 @@
1
+ import parseSeq from '../../schema/parseSeq';
2
+ import YAMLSeq from '../../schema/Seq';
3
+
4
+ function createSeq(schema, obj, ctx) {
5
+ var seq = new YAMLSeq(schema);
6
+
7
+ if (obj && obj[Symbol.iterator]) {
8
+ var _iteratorNormalCompletion = true;
9
+ var _didIteratorError = false;
10
+ var _iteratorError = undefined;
11
+
12
+ try {
13
+ for (var _iterator = obj[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
14
+ var it = _step.value;
15
+ var v = schema.createNode(it, ctx.wrapScalars, null, ctx);
16
+ seq.items.push(v);
17
+ }
18
+ } catch (err) {
19
+ _didIteratorError = true;
20
+ _iteratorError = err;
21
+ } finally {
22
+ try {
23
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
24
+ _iterator.return();
25
+ }
26
+ } finally {
27
+ if (_didIteratorError) {
28
+ throw _iteratorError;
29
+ }
30
+ }
31
+ }
32
+ }
33
+
34
+ return seq;
35
+ }
36
+
37
+ export default {
38
+ createNode: createSeq,
39
+ default: true,
40
+ nodeClass: YAMLSeq,
41
+ tag: 'tag:yaml.org,2002:seq',
42
+ resolve: parseSeq
43
+ };
@@ -0,0 +1,28 @@
1
+ import { stringifyString } from '../../stringify';
2
+ import { strOptions } from '../options';
3
+ export var resolveString = function resolveString(doc, node) {
4
+ // on error, will return { str: string, errors: Error[] }
5
+ var res = node.strValue;
6
+ if (!res) return '';
7
+ if (typeof res === 'string') return res;
8
+ res.errors.forEach(function (error) {
9
+ if (!error.source) error.source = node;
10
+ doc.errors.push(error);
11
+ });
12
+ return res.str;
13
+ };
14
+ export default {
15
+ identify: function identify(value) {
16
+ return typeof value === 'string';
17
+ },
18
+ default: true,
19
+ tag: 'tag:yaml.org,2002:str',
20
+ resolve: resolveString,
21
+ stringify: function stringify(item, ctx, onComment, onChompKeep) {
22
+ ctx = Object.assign({
23
+ actualString: true
24
+ }, ctx);
25
+ return stringifyString(item, ctx, onComment, onChompKeep);
26
+ },
27
+ options: strOptions
28
+ };
@@ -0,0 +1,36 @@
1
+ import core, { nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj } from './core';
2
+ import failsafe from './failsafe';
3
+ import json from './json';
4
+ import yaml11 from './yaml-1.1';
5
+ import map from './failsafe/map';
6
+ import seq from './failsafe/seq';
7
+ import binary from './yaml-1.1/binary';
8
+ import omap from './yaml-1.1/omap';
9
+ import pairs from './yaml-1.1/pairs';
10
+ import set from './yaml-1.1/set';
11
+ import { floatTime, intTime, timestamp } from './yaml-1.1/timestamp';
12
+ export var schemas = {
13
+ core: core,
14
+ failsafe: failsafe,
15
+ json: json,
16
+ yaml11: yaml11
17
+ };
18
+ export var tags = {
19
+ binary: binary,
20
+ bool: boolObj,
21
+ float: floatObj,
22
+ floatExp: expObj,
23
+ floatNaN: nanObj,
24
+ floatTime: floatTime,
25
+ int: intObj,
26
+ intHex: hexObj,
27
+ intOct: octObj,
28
+ intTime: intTime,
29
+ map: map,
30
+ null: nullObj,
31
+ omap: omap,
32
+ pairs: pairs,
33
+ seq: seq,
34
+ set: set,
35
+ timestamp: timestamp
36
+ };
@@ -0,0 +1,76 @@
1
+ import map from './failsafe/map';
2
+ import seq from './failsafe/seq';
3
+ import Scalar from '../schema/Scalar';
4
+ import { resolveString } from './failsafe/string';
5
+ var schema = [map, seq, {
6
+ identify: function identify(value) {
7
+ return typeof value === 'string';
8
+ },
9
+ default: true,
10
+ tag: 'tag:yaml.org,2002:str',
11
+ resolve: resolveString,
12
+ stringify: function stringify(value) {
13
+ return JSON.stringify(value);
14
+ }
15
+ }, {
16
+ identify: function identify(value) {
17
+ return value == null;
18
+ },
19
+ createNode: function createNode(schema, value, ctx) {
20
+ return ctx.wrapScalars ? new Scalar(null) : null;
21
+ },
22
+ default: true,
23
+ tag: 'tag:yaml.org,2002:null',
24
+ test: /^null$/,
25
+ resolve: function resolve() {
26
+ return null;
27
+ },
28
+ stringify: function stringify(value) {
29
+ return JSON.stringify(value);
30
+ }
31
+ }, {
32
+ identify: function identify(value) {
33
+ return typeof value === 'boolean';
34
+ },
35
+ default: true,
36
+ tag: 'tag:yaml.org,2002:bool',
37
+ test: /^true|false$/,
38
+ resolve: function resolve(str) {
39
+ return str === 'true';
40
+ },
41
+ stringify: function stringify(value) {
42
+ return JSON.stringify(value);
43
+ }
44
+ }, {
45
+ identify: function identify(value) {
46
+ return typeof value === 'number';
47
+ },
48
+ default: true,
49
+ tag: 'tag:yaml.org,2002:int',
50
+ test: /^-?(?:0|[1-9][0-9]*)$/,
51
+ resolve: function resolve(str) {
52
+ return parseInt(str, 10);
53
+ },
54
+ stringify: function stringify(value) {
55
+ return JSON.stringify(value);
56
+ }
57
+ }, {
58
+ identify: function identify(value) {
59
+ return typeof value === 'number';
60
+ },
61
+ default: true,
62
+ tag: 'tag:yaml.org,2002:float',
63
+ test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,
64
+ resolve: function resolve(str) {
65
+ return parseFloat(str);
66
+ },
67
+ stringify: function stringify(value) {
68
+ return JSON.stringify(value);
69
+ }
70
+ }];
71
+
72
+ schema.scalarFallback = function (str) {
73
+ throw new SyntaxError("Unresolved plain scalar ".concat(JSON.stringify(str)));
74
+ };
75
+
76
+ export default schema;