trusty-cms 4.3.3 → 5.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -1
  3. data/Gemfile.lock +87 -77
  4. data/app/assets/javascripts/ckeditor/config.js +2 -2
  5. data/app/assets/stylesheets/admin/partials/_content.scss +1 -0
  6. data/app/controllers/admin/assets_controller.rb +5 -1
  7. data/app/models/asset.rb +39 -48
  8. data/app/models/asset_type.rb +6 -2
  9. data/app/views/admin/assets/edit.html.haml +5 -3
  10. data/config/database.yml +2 -2
  11. data/config/locales/en.yml +1 -0
  12. data/coverage/index.html +1 -1
  13. data/lib/trusty_cms/deprecation.rb +13 -0
  14. data/lib/trusty_cms.rb +1 -1
  15. data/node_modules/path-parse/index.js +17 -35
  16. data/node_modules/path-parse/package.json +1 -1
  17. data/node_modules/postcss/CHANGELOG.md +27 -0
  18. data/node_modules/postcss/README.md +21 -0
  19. data/node_modules/postcss/lib/at-rule.js +2 -4
  20. data/node_modules/postcss/lib/comment.js +2 -4
  21. data/node_modules/postcss/lib/container.js +27 -122
  22. data/node_modules/postcss/lib/css-syntax-error.js +5 -7
  23. data/node_modules/postcss/lib/declaration.js +2 -4
  24. data/node_modules/postcss/lib/input.js +3 -5
  25. data/node_modules/postcss/lib/lazy-result.js +10 -17
  26. data/node_modules/postcss/lib/map-generator.js +10 -17
  27. data/node_modules/postcss/lib/node.js +2 -4
  28. data/node_modules/postcss/lib/parser.js +2 -4
  29. data/node_modules/postcss/lib/postcss.d.ts +25 -19
  30. data/node_modules/postcss/lib/previous-map.js +17 -6
  31. data/node_modules/postcss/lib/processor.js +16 -15
  32. data/node_modules/postcss/lib/result.js +2 -4
  33. data/node_modules/postcss/lib/root.js +10 -17
  34. data/node_modules/postcss/lib/rule.js +2 -4
  35. data/node_modules/postcss/lib/stringifier.js +2 -4
  36. data/node_modules/postcss/lib/warning.js +2 -4
  37. data/node_modules/postcss/package.json +16 -12
  38. data/spec/dummy/log/test.log +542 -443
  39. data/spec/dummy/tmp/cache/747/A70/TrustyCms%3A%3AConfig +0 -0
  40. data/spec/dummy/tmp/cache/85C/FA0/TrustyCms.cache_mtime +1 -1
  41. data/trusty_cms.gemspec +2 -1
  42. data/vendor/extensions/clipped-extension/lib/clipped/engine.rb +1 -1
  43. data/yarn.lock +3 -3
  44. metadata +31 -307
  45. data/config/initializers/interpolation.rb +0 -6
  46. data/node_modules/path-parse/test.js +0 -77
  47. data/node_modules/postcss/docs/api/assets/scripts.min.js +0 -8
  48. data/node_modules/postcss/docs/api/assets/styles.min.css +0 -1
  49. data/node_modules/postcss/docs/api/index.html +0 -22716
  50. data/spec/dummy/log/development.log +0 -158
  51. data/spec/dummy/node_modules/jquery/AUTHORS.txt +0 -327
  52. data/spec/dummy/node_modules/jquery/LICENSE.txt +0 -20
  53. data/spec/dummy/node_modules/jquery/README.md +0 -62
  54. data/spec/dummy/node_modules/jquery/bower.json +0 -14
  55. data/spec/dummy/node_modules/jquery/dist/jquery.js +0 -10872
  56. data/spec/dummy/node_modules/jquery/dist/jquery.min.js +0 -2
  57. data/spec/dummy/node_modules/jquery/dist/jquery.min.map +0 -1
  58. data/spec/dummy/node_modules/jquery/dist/jquery.slim.js +0 -8777
  59. data/spec/dummy/node_modules/jquery/dist/jquery.slim.min.js +0 -2
  60. data/spec/dummy/node_modules/jquery/dist/jquery.slim.min.map +0 -1
  61. data/spec/dummy/node_modules/jquery/external/sizzle/LICENSE.txt +0 -36
  62. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.js +0 -2478
  63. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.min.js +0 -3
  64. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.min.map +0 -1
  65. data/spec/dummy/node_modules/jquery/package.json +0 -117
  66. data/spec/dummy/node_modules/jquery/src/ajax/jsonp.js +0 -103
  67. data/spec/dummy/node_modules/jquery/src/ajax/load.js +0 -77
  68. data/spec/dummy/node_modules/jquery/src/ajax/script.js +0 -74
  69. data/spec/dummy/node_modules/jquery/src/ajax/var/location.js +0 -5
  70. data/spec/dummy/node_modules/jquery/src/ajax/var/nonce.js +0 -5
  71. data/spec/dummy/node_modules/jquery/src/ajax/var/rquery.js +0 -5
  72. data/spec/dummy/node_modules/jquery/src/ajax/xhr.js +0 -170
  73. data/spec/dummy/node_modules/jquery/src/ajax.js +0 -873
  74. data/spec/dummy/node_modules/jquery/src/attributes/attr.js +0 -141
  75. data/spec/dummy/node_modules/jquery/src/attributes/classes.js +0 -186
  76. data/spec/dummy/node_modules/jquery/src/attributes/prop.js +0 -143
  77. data/spec/dummy/node_modules/jquery/src/attributes/support.js +0 -33
  78. data/spec/dummy/node_modules/jquery/src/attributes/val.js +0 -191
  79. data/spec/dummy/node_modules/jquery/src/attributes.js +0 -13
  80. data/spec/dummy/node_modules/jquery/src/callbacks.js +0 -236
  81. data/spec/dummy/node_modules/jquery/src/core/DOMEval.js +0 -43
  82. data/spec/dummy/node_modules/jquery/src/core/access.js +0 -72
  83. data/spec/dummy/node_modules/jquery/src/core/camelCase.js +0 -23
  84. data/spec/dummy/node_modules/jquery/src/core/init.js +0 -129
  85. data/spec/dummy/node_modules/jquery/src/core/isAttached.js +0 -26
  86. data/spec/dummy/node_modules/jquery/src/core/nodeName.js +0 -13
  87. data/spec/dummy/node_modules/jquery/src/core/parseHTML.js +0 -65
  88. data/spec/dummy/node_modules/jquery/src/core/parseXML.js +0 -30
  89. data/spec/dummy/node_modules/jquery/src/core/ready-no-deferred.js +0 -97
  90. data/spec/dummy/node_modules/jquery/src/core/ready.js +0 -86
  91. data/spec/dummy/node_modules/jquery/src/core/readyException.js +0 -13
  92. data/spec/dummy/node_modules/jquery/src/core/stripAndCollapse.js +0 -14
  93. data/spec/dummy/node_modules/jquery/src/core/support.js +0 -20
  94. data/spec/dummy/node_modules/jquery/src/core/toType.js +0 -20
  95. data/spec/dummy/node_modules/jquery/src/core/var/rsingleTag.js +0 -7
  96. data/spec/dummy/node_modules/jquery/src/core.js +0 -400
  97. data/spec/dummy/node_modules/jquery/src/css/addGetHookIf.js +0 -26
  98. data/spec/dummy/node_modules/jquery/src/css/adjustCSS.js +0 -74
  99. data/spec/dummy/node_modules/jquery/src/css/curCSS.js +0 -65
  100. data/spec/dummy/node_modules/jquery/src/css/finalPropName.js +0 -42
  101. data/spec/dummy/node_modules/jquery/src/css/hiddenVisibleSelectors.js +0 -15
  102. data/spec/dummy/node_modules/jquery/src/css/showHide.js +0 -105
  103. data/spec/dummy/node_modules/jquery/src/css/support.js +0 -133
  104. data/spec/dummy/node_modules/jquery/src/css/var/cssExpand.js +0 -5
  105. data/spec/dummy/node_modules/jquery/src/css/var/getStyles.js +0 -17
  106. data/spec/dummy/node_modules/jquery/src/css/var/isHiddenWithinTree.js +0 -34
  107. data/spec/dummy/node_modules/jquery/src/css/var/rboxStyle.js +0 -7
  108. data/spec/dummy/node_modules/jquery/src/css/var/rnumnonpx.js +0 -7
  109. data/spec/dummy/node_modules/jquery/src/css/var/swap.js +0 -26
  110. data/spec/dummy/node_modules/jquery/src/css.js +0 -494
  111. data/spec/dummy/node_modules/jquery/src/data/Data.js +0 -162
  112. data/spec/dummy/node_modules/jquery/src/data/var/acceptData.js +0 -19
  113. data/spec/dummy/node_modules/jquery/src/data/var/dataPriv.js +0 -7
  114. data/spec/dummy/node_modules/jquery/src/data/var/dataUser.js +0 -7
  115. data/spec/dummy/node_modules/jquery/src/data.js +0 -180
  116. data/spec/dummy/node_modules/jquery/src/deferred/exceptionHook.js +0 -21
  117. data/spec/dummy/node_modules/jquery/src/deferred.js +0 -399
  118. data/spec/dummy/node_modules/jquery/src/deprecated/ajax-event-alias.js +0 -22
  119. data/spec/dummy/node_modules/jquery/src/deprecated/event.js +0 -48
  120. data/spec/dummy/node_modules/jquery/src/deprecated.js +0 -87
  121. data/spec/dummy/node_modules/jquery/src/dimensions.js +0 -57
  122. data/spec/dummy/node_modules/jquery/src/effects/Tween.js +0 -125
  123. data/spec/dummy/node_modules/jquery/src/effects/animatedSelector.js +0 -15
  124. data/spec/dummy/node_modules/jquery/src/effects.js +0 -701
  125. data/spec/dummy/node_modules/jquery/src/event/focusin.js +0 -58
  126. data/spec/dummy/node_modules/jquery/src/event/support.js +0 -11
  127. data/spec/dummy/node_modules/jquery/src/event/trigger.js +0 -201
  128. data/spec/dummy/node_modules/jquery/src/event.js +0 -892
  129. data/spec/dummy/node_modules/jquery/src/exports/amd.js +0 -26
  130. data/spec/dummy/node_modules/jquery/src/exports/global.js +0 -34
  131. data/spec/dummy/node_modules/jquery/src/jquery.js +0 -41
  132. data/spec/dummy/node_modules/jquery/src/manipulation/_evalUrl.js +0 -32
  133. data/spec/dummy/node_modules/jquery/src/manipulation/buildFragment.js +0 -106
  134. data/spec/dummy/node_modules/jquery/src/manipulation/getAll.js +0 -32
  135. data/spec/dummy/node_modules/jquery/src/manipulation/setGlobalEval.js +0 -22
  136. data/spec/dummy/node_modules/jquery/src/manipulation/support.js +0 -41
  137. data/spec/dummy/node_modules/jquery/src/manipulation/var/rscriptType.js +0 -5
  138. data/spec/dummy/node_modules/jquery/src/manipulation/var/rtagName.js +0 -8
  139. data/spec/dummy/node_modules/jquery/src/manipulation/wrapMap.js +0 -30
  140. data/spec/dummy/node_modules/jquery/src/manipulation.js +0 -480
  141. data/spec/dummy/node_modules/jquery/src/offset.js +0 -238
  142. data/spec/dummy/node_modules/jquery/src/queue/delay.js +0 -24
  143. data/spec/dummy/node_modules/jquery/src/queue.js +0 -145
  144. data/spec/dummy/node_modules/jquery/src/selector-native.js +0 -241
  145. data/spec/dummy/node_modules/jquery/src/selector-sizzle.js +0 -19
  146. data/spec/dummy/node_modules/jquery/src/selector.js +0 -3
  147. data/spec/dummy/node_modules/jquery/src/serialize.js +0 -136
  148. data/spec/dummy/node_modules/jquery/src/traversing/findFilter.js +0 -97
  149. data/spec/dummy/node_modules/jquery/src/traversing/var/dir.js +0 -22
  150. data/spec/dummy/node_modules/jquery/src/traversing/var/rneedsContext.js +0 -8
  151. data/spec/dummy/node_modules/jquery/src/traversing/var/siblings.js +0 -17
  152. data/spec/dummy/node_modules/jquery/src/traversing.js +0 -198
  153. data/spec/dummy/node_modules/jquery/src/var/ObjectFunctionString.js +0 -7
  154. data/spec/dummy/node_modules/jquery/src/var/arr.js +0 -5
  155. data/spec/dummy/node_modules/jquery/src/var/class2type.js +0 -6
  156. data/spec/dummy/node_modules/jquery/src/var/document.js +0 -5
  157. data/spec/dummy/node_modules/jquery/src/var/documentElement.js +0 -7
  158. data/spec/dummy/node_modules/jquery/src/var/flat.js +0 -16
  159. data/spec/dummy/node_modules/jquery/src/var/fnToString.js +0 -7
  160. data/spec/dummy/node_modules/jquery/src/var/getProto.js +0 -5
  161. data/spec/dummy/node_modules/jquery/src/var/hasOwn.js +0 -7
  162. data/spec/dummy/node_modules/jquery/src/var/indexOf.js +0 -7
  163. data/spec/dummy/node_modules/jquery/src/var/isFunction.js +0 -13
  164. data/spec/dummy/node_modules/jquery/src/var/isWindow.js +0 -8
  165. data/spec/dummy/node_modules/jquery/src/var/pnum.js +0 -5
  166. data/spec/dummy/node_modules/jquery/src/var/push.js +0 -7
  167. data/spec/dummy/node_modules/jquery/src/var/rcheckableType.js +0 -5
  168. data/spec/dummy/node_modules/jquery/src/var/rcssNum.js +0 -9
  169. data/spec/dummy/node_modules/jquery/src/var/rnothtmlwhite.js +0 -8
  170. data/spec/dummy/node_modules/jquery/src/var/slice.js +0 -7
  171. data/spec/dummy/node_modules/jquery/src/var/support.js +0 -6
  172. data/spec/dummy/node_modules/jquery/src/var/toString.js +0 -7
  173. data/spec/dummy/node_modules/jquery/src/wrap.js +0 -78
  174. data/spec/dummy/node_modules/jquery-ui-bundle/AUTHORS.txt +0 -333
  175. data/spec/dummy/node_modules/jquery-ui-bundle/LICENSE.txt +0 -43
  176. data/spec/dummy/node_modules/jquery-ui-bundle/external/jquery/jquery.js +0 -11008
  177. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_444444_256x240.png +0 -0
  178. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_555555_256x240.png +0 -0
  179. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_777620_256x240.png +0 -0
  180. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_777777_256x240.png +0 -0
  181. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_cc0000_256x240.png +0 -0
  182. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_ffffff_256x240.png +0 -0
  183. data/spec/dummy/node_modules/jquery-ui-bundle/index.html +0 -559
  184. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.css +0 -1312
  185. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.js +0 -18706
  186. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.min.css +0 -7
  187. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.min.js +0 -13
  188. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.structure.css +0 -886
  189. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.structure.min.css +0 -5
  190. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.theme.css +0 -443
  191. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.theme.min.css +0 -5
  192. data/spec/dummy/node_modules/jquery-ui-bundle/package.json +0 -33
  193. data/spec/dummy/node_modules/jquery-ujs/CONTRIBUTING.md +0 -109
  194. data/spec/dummy/node_modules/jquery-ujs/MIT-LICENSE +0 -20
  195. data/spec/dummy/node_modules/jquery-ujs/README.md +0 -86
  196. data/spec/dummy/node_modules/jquery-ujs/RELEASE.md +0 -23
  197. data/spec/dummy/node_modules/jquery-ujs/bower.json +0 -19
  198. data/spec/dummy/node_modules/jquery-ujs/package.json +0 -26
  199. data/spec/dummy/node_modules/jquery-ujs/src/rails.js +0 -555
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe654730f50bc3d6dcf534e6b6ae0fcd06bd8e759135a163de32feb11ec0ab23
4
- data.tar.gz: c20b4f267e75c28277d1dc8bcef25747bc83968db299db619627be31f900be01
3
+ metadata.gz: 577c76f690910024bfc10d3fbbd14b47eb8bc50358bca3bc2faacf3da06fc2e1
4
+ data.tar.gz: 34ed2c1ec454af9df1cd6e0ef0eb1ef2421b1fd97efd5759a3353c3ea37f7677
5
5
  SHA512:
6
- metadata.gz: d5aa38a6368417f11189653dc11449cf715720ee664f841ad0532b5112e4603a34d72a3b03b3ba5093b02b86d0229395aa268d8bd61755779d42c63a8dba87f3
7
- data.tar.gz: 526aabb67a9b33ef5897e48c21aa88d29313f9733c77f0efc21bc1075563e1fd21d4f04b2547621ee158307a0ed85806eb7677a558447c9c1acac36797ed5f98
6
+ metadata.gz: 588a6a8325df522f2f2d58630f31d5652b41cadcf6a443e2210f6eac0fbea2bf53175052d4a3d4efa5afbd5fe668ec039e67853b771c604f8958bbbb734837ee
7
+ data.tar.gz: 9e6a1248a186b875c587973ee609e9257d62c0adc9e0f26ae612bd3a647558c53319583a1342c1f8230bfac63588459986088c7b64caa0b1150e88d923b76cbc
data/Gemfile CHANGED
@@ -12,10 +12,11 @@ gem 'trustygems', '~> 0.2.0'
12
12
  gemspec
13
13
 
14
14
  group :development, :test do
15
+ gem 'activestorage-validator'
15
16
  gem 'acts_as_list'
16
17
  gem 'database_cleaner'
17
18
  gem 'factory_bot_rails', '6.2.0'
18
- gem 'kt-paperclip', '~> 7.0.0'
19
+ gem 'file_validators'
19
20
  gem 'launchy', '~> 2.5.0'
20
21
  gem 'mysql2'
21
22
  gem 'poltergeist', '~> 1.18.1'
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- trusty-cms (4.3.3)
4
+ trusty-cms (5.0.1)
5
5
  RedCloth (= 4.3.2)
6
+ activestorage-validator
6
7
  acts_as_list (>= 0.9.5, < 1.1.0)
7
8
  acts_as_tree (~> 2.9.1)
8
9
  ckeditor (>= 4.2.2, < 4.4.0)
@@ -12,6 +13,7 @@ PATH
12
13
  haml
13
14
  haml-rails (~> 2.0)
14
15
  highline (>= 1.7.8, < 2.1.0)
16
+ image_processing
15
17
  kraken-io
16
18
  mini_racer
17
19
  mysql2
@@ -33,60 +35,62 @@ GEM
33
35
  remote: https://rubygems.org/
34
36
  specs:
35
37
  RedCloth (4.3.2)
36
- actioncable (6.1.4)
37
- actionpack (= 6.1.4)
38
- activesupport (= 6.1.4)
38
+ actioncable (6.1.4.1)
39
+ actionpack (= 6.1.4.1)
40
+ activesupport (= 6.1.4.1)
39
41
  nio4r (~> 2.0)
40
42
  websocket-driver (>= 0.6.1)
41
- actionmailbox (6.1.4)
42
- actionpack (= 6.1.4)
43
- activejob (= 6.1.4)
44
- activerecord (= 6.1.4)
45
- activestorage (= 6.1.4)
46
- activesupport (= 6.1.4)
43
+ actionmailbox (6.1.4.1)
44
+ actionpack (= 6.1.4.1)
45
+ activejob (= 6.1.4.1)
46
+ activerecord (= 6.1.4.1)
47
+ activestorage (= 6.1.4.1)
48
+ activesupport (= 6.1.4.1)
47
49
  mail (>= 2.7.1)
48
- actionmailer (6.1.4)
49
- actionpack (= 6.1.4)
50
- actionview (= 6.1.4)
51
- activejob (= 6.1.4)
52
- activesupport (= 6.1.4)
50
+ actionmailer (6.1.4.1)
51
+ actionpack (= 6.1.4.1)
52
+ actionview (= 6.1.4.1)
53
+ activejob (= 6.1.4.1)
54
+ activesupport (= 6.1.4.1)
53
55
  mail (~> 2.5, >= 2.5.4)
54
56
  rails-dom-testing (~> 2.0)
55
- actionpack (6.1.4)
56
- actionview (= 6.1.4)
57
- activesupport (= 6.1.4)
57
+ actionpack (6.1.4.1)
58
+ actionview (= 6.1.4.1)
59
+ activesupport (= 6.1.4.1)
58
60
  rack (~> 2.0, >= 2.0.9)
59
61
  rack-test (>= 0.6.3)
60
62
  rails-dom-testing (~> 2.0)
61
63
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
62
- actiontext (6.1.4)
63
- actionpack (= 6.1.4)
64
- activerecord (= 6.1.4)
65
- activestorage (= 6.1.4)
66
- activesupport (= 6.1.4)
64
+ actiontext (6.1.4.1)
65
+ actionpack (= 6.1.4.1)
66
+ activerecord (= 6.1.4.1)
67
+ activestorage (= 6.1.4.1)
68
+ activesupport (= 6.1.4.1)
67
69
  nokogiri (>= 1.8.5)
68
- actionview (6.1.4)
69
- activesupport (= 6.1.4)
70
+ actionview (6.1.4.1)
71
+ activesupport (= 6.1.4.1)
70
72
  builder (~> 3.1)
71
73
  erubi (~> 1.4)
72
74
  rails-dom-testing (~> 2.0)
73
75
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
74
- activejob (6.1.4)
75
- activesupport (= 6.1.4)
76
+ activejob (6.1.4.1)
77
+ activesupport (= 6.1.4.1)
76
78
  globalid (>= 0.3.6)
77
- activemodel (6.1.4)
78
- activesupport (= 6.1.4)
79
- activerecord (6.1.4)
80
- activemodel (= 6.1.4)
81
- activesupport (= 6.1.4)
82
- activestorage (6.1.4)
83
- actionpack (= 6.1.4)
84
- activejob (= 6.1.4)
85
- activerecord (= 6.1.4)
86
- activesupport (= 6.1.4)
79
+ activemodel (6.1.4.1)
80
+ activesupport (= 6.1.4.1)
81
+ activerecord (6.1.4.1)
82
+ activemodel (= 6.1.4.1)
83
+ activesupport (= 6.1.4.1)
84
+ activestorage (6.1.4.1)
85
+ actionpack (= 6.1.4.1)
86
+ activejob (= 6.1.4.1)
87
+ activerecord (= 6.1.4.1)
88
+ activesupport (= 6.1.4.1)
87
89
  marcel (~> 1.0.0)
88
90
  mini_mime (>= 1.1.0)
89
- activesupport (6.1.4)
91
+ activestorage-validator (0.1.4)
92
+ rails (>= 5.2.0)
93
+ activesupport (6.1.4.1)
90
94
  concurrent-ruby (~> 1.0, >= 1.0.2)
91
95
  i18n (>= 1.6, < 2)
92
96
  minitest (>= 5.1)
@@ -143,8 +147,11 @@ GEM
143
147
  factory_bot_rails (6.2.0)
144
148
  factory_bot (~> 6.2.0)
145
149
  railties (>= 5.0.0)
146
- ffi (1.15.3)
147
- globalid (0.5.1)
150
+ ffi (1.15.4)
151
+ file_validators (3.0.0)
152
+ activemodel (>= 3.2)
153
+ mime-types (>= 1.0)
154
+ globalid (0.5.2)
148
155
  activesupport (>= 5.0)
149
156
  haml (5.2.2)
150
157
  temple (>= 0.8.0)
@@ -161,48 +168,47 @@ GEM
161
168
  haml (>= 4.0, < 6)
162
169
  nokogiri (>= 1.6.0)
163
170
  ruby_parser (~> 3.5)
164
- httparty (0.18.1)
171
+ httparty (0.20.0)
165
172
  mime-types (~> 3.0)
166
173
  multi_xml (>= 0.5.2)
167
174
  i18n (1.8.10)
168
175
  concurrent-ruby (~> 1.0)
176
+ image_processing (1.12.1)
177
+ mini_magick (>= 4.9.5, < 5)
178
+ ruby-vips (>= 2.0.17, < 3)
169
179
  json (2.5.1)
170
180
  kraken-io (0.1.3)
171
181
  activesupport
172
182
  httparty
173
183
  json
174
184
  multipart-post
175
- kt-paperclip (7.0.0)
176
- activemodel (>= 4.2.0)
177
- activesupport (>= 4.2.0)
178
- marcel (~> 1.0.1)
179
- mime-types
180
- terrapin (~> 0.6.0)
181
185
  launchy (2.5.0)
182
186
  addressable (~> 2.7)
183
187
  libv8-node (15.14.0.1-x86_64-darwin-18)
188
+ libv8-node (15.14.0.1-x86_64-darwin-20)
184
189
  libv8-node (15.14.0.1-x86_64-linux)
185
- loofah (2.10.0)
190
+ loofah (2.12.0)
186
191
  crass (~> 1.0.2)
187
192
  nokogiri (>= 1.5.9)
188
193
  mail (2.7.1)
189
194
  mini_mime (>= 0.1.1)
190
- marcel (1.0.1)
195
+ marcel (1.0.2)
191
196
  method_source (1.0.0)
192
197
  mime-types (3.3.1)
193
198
  mime-types-data (~> 3.2015)
194
199
  mime-types-data (3.2021.0225)
195
- mini_mime (1.1.0)
200
+ mini_magick (4.11.0)
201
+ mini_mime (1.1.1)
196
202
  mini_racer (0.4.0)
197
203
  libv8-node (~> 15.14.0.0)
198
204
  minitest (5.14.4)
199
205
  multi_xml (0.6.0)
200
206
  multipart-post (2.1.1)
201
207
  mysql2 (0.5.3)
202
- nio4r (2.5.7)
203
- nokogiri (1.11.7-x86_64-darwin)
208
+ nio4r (2.5.8)
209
+ nokogiri (1.12.4-x86_64-darwin)
204
210
  racc (~> 1.4)
205
- nokogiri (1.11.7-x86_64-linux)
211
+ nokogiri (1.12.4-x86_64-linux)
206
212
  racc (~> 1.4)
207
213
  orm_adapter (0.5.0)
208
214
  poltergeist (1.18.1)
@@ -218,40 +224,40 @@ GEM
218
224
  public_suffix (4.0.6)
219
225
  racc (1.5.2)
220
226
  rack (2.2.3)
221
- rack-cache (1.12.1)
227
+ rack-cache (1.13.0)
222
228
  rack (>= 0.4)
223
229
  rack-test (1.1.0)
224
230
  rack (>= 1.0, < 3)
225
231
  radius (0.7.5)
226
- rails (6.1.4)
227
- actioncable (= 6.1.4)
228
- actionmailbox (= 6.1.4)
229
- actionmailer (= 6.1.4)
230
- actionpack (= 6.1.4)
231
- actiontext (= 6.1.4)
232
- actionview (= 6.1.4)
233
- activejob (= 6.1.4)
234
- activemodel (= 6.1.4)
235
- activerecord (= 6.1.4)
236
- activestorage (= 6.1.4)
237
- activesupport (= 6.1.4)
232
+ rails (6.1.4.1)
233
+ actioncable (= 6.1.4.1)
234
+ actionmailbox (= 6.1.4.1)
235
+ actionmailer (= 6.1.4.1)
236
+ actionpack (= 6.1.4.1)
237
+ actiontext (= 6.1.4.1)
238
+ actionview (= 6.1.4.1)
239
+ activejob (= 6.1.4.1)
240
+ activemodel (= 6.1.4.1)
241
+ activerecord (= 6.1.4.1)
242
+ activestorage (= 6.1.4.1)
243
+ activesupport (= 6.1.4.1)
238
244
  bundler (>= 1.15.0)
239
- railties (= 6.1.4)
245
+ railties (= 6.1.4.1)
240
246
  sprockets-rails (>= 2.0.0)
241
247
  rails-dom-testing (2.0.3)
242
248
  activesupport (>= 4.2.0)
243
249
  nokogiri (>= 1.6)
244
- rails-html-sanitizer (1.3.0)
250
+ rails-html-sanitizer (1.4.2)
245
251
  loofah (~> 2.3)
246
252
  rails-observers (0.1.5)
247
253
  activemodel (>= 4.0)
248
- railties (6.1.4)
249
- actionpack (= 6.1.4)
250
- activesupport (= 6.1.4)
254
+ railties (6.1.4.1)
255
+ actionpack (= 6.1.4.1)
256
+ activesupport (= 6.1.4.1)
251
257
  method_source
252
258
  rake (>= 0.13)
253
259
  thor (~> 1.0)
254
- rake (13.0.3)
260
+ rake (13.0.6)
255
261
  rdoc (6.3.2)
256
262
  regexp_parser (2.1.1)
257
263
  responders (3.0.1)
@@ -271,7 +277,7 @@ GEM
271
277
  rspec-mocks (3.10.2)
272
278
  diff-lcs (>= 1.2.0, < 2.0)
273
279
  rspec-support (~> 3.10.0)
274
- rspec-rails (5.0.1)
280
+ rspec-rails (5.0.2)
275
281
  actionpack (>= 5.2)
276
282
  activesupport (>= 5.2)
277
283
  railties (>= 5.2)
@@ -280,7 +286,9 @@ GEM
280
286
  rspec-mocks (~> 3.10)
281
287
  rspec-support (~> 3.10)
282
288
  rspec-support (3.10.2)
283
- ruby_parser (3.16.0)
289
+ ruby-vips (2.1.3)
290
+ ffi (~> 1.12)
291
+ ruby_parser (3.17.0)
284
292
  sexp_processor (~> 4.15, >= 4.15.1)
285
293
  sass-rails (6.0.0)
286
294
  sassc-rails (~> 2.1, >= 2.1.1)
@@ -324,20 +332,22 @@ GEM
324
332
  websocket-driver (0.7.5)
325
333
  websocket-extensions (>= 0.1.0)
326
334
  websocket-extensions (0.1.5)
327
- will_paginate (3.3.0)
335
+ will_paginate (3.3.1)
328
336
  xpath (3.2.0)
329
337
  nokogiri (~> 1.8)
330
338
  zeitwerk (2.4.2)
331
339
 
332
340
  PLATFORMS
333
341
  x86_64-darwin-18
342
+ x86_64-darwin-20
334
343
  x86_64-linux
335
344
 
336
345
  DEPENDENCIES
346
+ activestorage-validator
337
347
  acts_as_list
338
348
  database_cleaner
339
349
  factory_bot_rails (= 6.2.0)
340
- kt-paperclip (~> 7.0.0)
350
+ file_validators
341
351
  launchy (~> 2.5.0)
342
352
  mysql2
343
353
  poltergeist (~> 1.18.1)
@@ -349,4 +359,4 @@ DEPENDENCIES
349
359
  trustygems (~> 0.2.0)
350
360
 
351
361
  BUNDLED WITH
352
- 2.2.19
362
+ 2.2.27
@@ -3,8 +3,8 @@ CKEDITOR.editorConfig = function( config ) {
3
3
  config.removeFormatTags = "";
4
4
  config.protectedSource.push(/<r:([\S]+).*<\/r:\1>/g);
5
5
  config.protectedSource.push(/<r:[^>/]*\/>/g);
6
-
7
- config.forcePasteAsPlainText = true;
6
+ //let paste from word be available
7
+ // config.forcePasteAsPlainText = false;
8
8
  // if you want to remove clipboard, you have to remove all of these:
9
9
  // clipboard, pastetext, pastefromword
10
10
  config.removePlugins = "save, newpage, preview, print, templates, forms, flash, smiley, language, pagebreak, iframe, bidi";
@@ -6,6 +6,7 @@ main {
6
6
 
7
7
  .reversed main {
8
8
  .content {
9
+ line-height: 1.5;
9
10
  padding: 1em;
10
11
  }
11
12
  }
@@ -1,6 +1,9 @@
1
1
  class Admin::AssetsController < Admin::ResourceController
2
2
  paginate_models(per_page: 50)
3
3
  COMPRESS_FILE_TYPE = ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml'].freeze
4
+ before_action do
5
+ ActiveStorage::Current.host = request.base_url
6
+ end
4
7
 
5
8
  def index
6
9
  assets = Asset.order('created_at DESC')
@@ -67,6 +70,7 @@ class Admin::AssetsController < Admin::ResourceController
67
70
  private
68
71
 
69
72
  def compress(uploaded_asset)
73
+ require 'open-uri'
70
74
  data = $kraken.upload(uploaded_asset.tempfile.path, 'lossy' => true)
71
75
  File.write(uploaded_asset.tempfile, URI.open(data.kraked_url).read, mode: 'wb')
72
76
  uploaded_asset
@@ -81,4 +85,4 @@ class Admin::AssetsController < Admin::ResourceController
81
85
  def asset_params
82
86
  params.permit(:id, :for_attachment, asset: [:caption, :for_attachment, asset: []])
83
87
  end
84
- end
88
+ end
data/app/models/asset.rb CHANGED
@@ -1,6 +1,4 @@
1
1
  class Asset < ActiveRecord::Base
2
- include Paperclip::Glue
3
-
4
2
  has_many :page_attachments, dependent: :destroy
5
3
  has_many :pages, through: :page_attachments
6
4
  has_site if respond_to? :has_site
@@ -33,52 +31,43 @@ class Asset < ActiveRecord::Base
33
31
  end
34
32
  }
35
33
 
36
- has_attached_file :asset,
37
- styles: lambda { |attachment|
38
- AssetType.for(attachment).paperclip_styles
39
- },
40
- processors: lambda { |asset|
41
- asset.paperclip_processors
42
- },
43
- whiny: false,
44
- storage: TrustyCms.config['paperclip.storage'],
45
- path: TrustyCms.config['paperclip.path'],
46
- url: TrustyCms.config['paperclip.url'],
47
- fog_credentials: TrustyCmsClippedExtension::Cloud.credentials,
48
- fog_directory: TrustyCms.config['paperclip.fog.directory'],
49
- fog_public: TrustyCms.config['paperclip.fog.public?'] || true,
50
- fog_host: TrustyCmsClippedExtension::Cloud.host,
51
- fog_file: {
52
- 'Cache-Control' => 'max-age=31536000',
53
- }
54
-
55
- validates_attachment_content_type :asset, content_type: ['application/zip', 'image/jpg', 'image/jpeg', 'image/png', 'image/gif', 'application/pdf', 'application/javascript', 'text/javascript', 'text/css']
56
-
34
+ has_one_attached :asset
35
+ validates :asset,
36
+ presence: true,
37
+ blob:
38
+ {
39
+ content_type: %w[application/zip image/jpg image/jpeg image/png image/gif application/pdf text/css],
40
+ size_range: 1..5.megabytes,
41
+ }
57
42
  before_save :assign_title
58
43
  before_save :assign_uuid
59
44
 
60
- after_post_process :read_dimensions
61
-
62
- validates_attachment_presence :asset, message: 'You must choose a file to upload!'
63
- if TrustyCms.config['paperclip.skip_filetype_validation'] != 'true' && TrustyCms.config['paperclip.content_types']
64
- validates_attachment_content_type :asset, content_type: TrustyCms.config['paperclip.content_types'].gsub(' ', '').split(',')
65
- else
66
- validates_attachment_presence :asset, message: 'Your uploaded file must have an extension in its name!'
67
- end
68
- validates_attachment_size :asset, less_than: (TrustyCms.config['assets.max_asset_size'] || 5).to_i.megabytes
69
-
70
45
  def asset_type
71
46
  AssetType.for(asset)
72
47
  end
73
- delegate :paperclip_processors, :paperclip_styles, :style_dimensions, :style_format, to: :asset_type
48
+ delegate :paperclip_processors, :paperclip_styles, :active_storage_styles, :style_dimensions, :style_format,
49
+ to: :asset_type
74
50
 
75
51
  def thumbnail(style_name = 'original')
76
- return asset.url if style_name.to_sym == :original
77
- return asset.url(style_name.to_sym) if style?(style_name)
52
+ return asset.url if style_name == :original
53
+ return asset_variant(style_name).processed.url if asset.variable?
78
54
 
79
55
  asset_type.icon(style_name)
80
56
  end
81
57
 
58
+ def asset_variant(style_name)
59
+ case style_name.to_s
60
+ when 'thumbnail'
61
+ asset.variant(gravity: 'Center', resize: '100x100^', crop: '100x100+0+0')
62
+ when 'normal'
63
+ asset.variant(gravity: 'Center', resize: '640x640^')
64
+ when 'small'
65
+ asset.variant(gravity: 'Center', resize: '320x320^')
66
+ when 'icon'
67
+ asset.variant(gravity: 'Center', resize: '50x50^')
68
+ end
69
+ end
70
+
82
71
  def style?(style_name = 'original')
83
72
  style_name == 'original' || paperclip_styles.keys.include?(style_name.to_sym)
84
73
  end
@@ -110,7 +99,10 @@ class Asset < ActiveRecord::Base
110
99
  end
111
100
 
112
101
  def geometry(style_name = 'original')
113
- raise Paperclip::StyleError, "Requested style #{style_name} is not defined for this asset." unless style?(style_name)
102
+ unless style?(style_name)
103
+ raise Paperclip::StyleError,
104
+ "Requested style #{style_name} is not defined for this asset."
105
+ end
114
106
 
115
107
  @geometry ||= {}
116
108
  begin
@@ -118,8 +110,9 @@ class Asset < ActiveRecord::Base
118
110
  original_geometry
119
111
  else
120
112
  style = asset.styles[style_name.to_sym]
121
- original_geometry.transformed_by(style.geometry) # this can return dimensions for fully specified style sizes but not for relative sizes when there are no original dimensions
122
- end
113
+ original_geometry.transformed_by(style.geometry)
114
+ # this can return dimensions for fully specified style sizes but not for relative sizes when there are no original dimensions
115
+ end
123
116
  rescue Paperclip::TransformationError => e
124
117
  Rails.logger.warn "geometry transformation error: #{e}"
125
118
  original_geometry # returns a blank geometry if the real geometry cannot be calculated
@@ -174,19 +167,17 @@ class Asset < ActiveRecord::Base
174
167
  # original file and calculate thumbnail dimensions later, on demand.
175
168
 
176
169
  def read_dimensions
177
- if image?
178
- if file = asset.queued_for_write[:original]
179
- geometry = Paperclip::Geometry.from_file(file)
180
- self.original_width = geometry.width
181
- self.original_height = geometry.height
182
- self.original_extension = File.extname(file.path)
183
- end
170
+ if image? && file = asset.queued_for_write[:original]
171
+ geometry = Paperclip::Geometry.from_file(file)
172
+ self.original_width = geometry.width
173
+ self.original_height = geometry.height
174
+ self.original_extension = File.extname(file.path)
184
175
  end
185
176
  true
186
177
  end
187
178
 
188
179
  def assign_title
189
- self.title = asset_file_name.downcase.sub(original_extension, '').sub('.', '')
180
+ self.title = asset.filename.base
190
181
  end
191
182
 
192
183
  def assign_uuid
@@ -235,7 +226,7 @@ class Asset < ActiveRecord::Base
235
226
 
236
227
  # this is a convenience for image-pickers
237
228
  def self.thumbnail_options
238
- asset_sizes = thumbnail_sizes.collect do |k, v|
229
+ asset_sizes = thumbnail_sizes.map do |k, v|
239
230
  size_id = k
240
231
  size_description = "#{k}: "
241
232
  size_description << (v.is_a?(Array) ? v.join(' as ') : v)
@@ -104,6 +104,10 @@ class AssetType
104
104
  @paperclip_styles
105
105
  end
106
106
 
107
+ def active_storage_styles
108
+ @active_storage_styles ||= normalize_style_rules(configured_styles.merge(styles))
109
+ end
110
+
107
111
  # Takes a motley collection of differently-defined styles and renders them into the standard hash-of-hashes format.
108
112
  # Solitary strings are assumed to be #
109
113
  def normalize_style_rules(styles = {})
@@ -173,8 +177,8 @@ class AssetType
173
177
  # class methods
174
178
 
175
179
  def self.for(attachment)
176
- extension = File.extname(attachment.original_filename).sub(/^\.+/, '')
177
- from_extension(extension) || from_mimetype(attachment.instance_read(:content_type)) || catchall
180
+ extension = attachment.record.original_extension
181
+ from_extension(extension) || from_mimetype(attachment.content_type) || catchall
178
182
  end
179
183
 
180
184
  def self.from_extension(extension)
@@ -16,10 +16,12 @@
16
16
  = "#{t("clipped_extension.filename")}: #{@asset.asset_file_name unless @asset.new_record?}"
17
17
  %br
18
18
  %label.url
19
- = "#{t("clipped_extension.asset_url")}: #{image_path @asset.thumbnail unless @asset.new_record?}"
19
+ = "#{t("clipped_extension.asset_url")}: #{image_path @asset.asset.url unless @asset.new_record?}"
20
+ %br
21
+ %label.id
22
+ = "#{t("clipped_extension.asset_id")}: #{@asset.asset.id unless @asset.new_record?}"
20
23
  %p.asset
21
- - display_size = TrustyCms::config['assets.display_size'] || 'normal'
22
- = image_tag @asset.thumbnail(display_size.to_sym), :class => 'preview'
24
+ = image_tag @asset.thumbnail("normal"), :class => 'preview'
23
25
 
24
26
  = updated_stamp @asset
25
27
 
data/config/database.yml CHANGED
@@ -1,4 +1,4 @@
1
- test: &TEST
1
+ test:
2
2
  adapter: mysql2
3
3
  database: trusty_cms_test
4
- username:
4
+ username:
@@ -66,6 +66,7 @@ en:
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
68
  asset_url: 'Asset URL'
69
+ asset_id: 'Asset ID'
69
70
  assets: 'Assets'
70
71
  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.'
71
72
  assets_title: 'Assets'
data/coverage/index.html CHANGED
@@ -14,7 +14,7 @@
14
14
  <img src="./assets/0.12.3/loading.gif" alt="loading"/>
15
15
  </div>
16
16
  <div id="wrapper" class="hide">
17
- <div class="timestamp">Generated <abbr class="timeago" title="2021-03-03T13:17:38-05:00">2021-03-03T13:17:38-05:00</abbr></div>
17
+ <div class="timestamp">Generated <abbr class="timeago" title="2021-10-05T10:51:28-04:00">2021-10-05T10:51:28-04:00</abbr></div>
18
18
  <ul class="group_tabs"></ul>
19
19
 
20
20
  <div id="content">
@@ -0,0 +1,13 @@
1
+ require 'active_support'
2
+
3
+ class AssetType
4
+ def paperclip_processors
5
+ ActiveSupport::Deprecation.warn('Paperclip processors will be deprecated soon in favor of ActiveStorage.')
6
+
7
+ active_storage_styles
8
+ end
9
+
10
+ def paperclip_styles
11
+ ActiveSupport::Deprecation.warn('Paperclip styles will be deprecated soon in favor of ActiveStorage.')
12
+ end
13
+ end
data/lib/trusty_cms.rb CHANGED
@@ -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.3.3'.freeze
5
+ VERSION = '5.0.1'.freeze
6
6
  end
7
7
  end