refinerycms-core 4.0.3 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/refinery_core_manifest.js +9 -1
  3. data/app/assets/images/refinery/logo-large.png +0 -0
  4. data/app/assets/images/refinery/logo-medium.png +0 -0
  5. data/app/assets/images/refinery/logo-site-bar.png +0 -0
  6. data/app/assets/images/refinery/logo-small-medium.png +0 -0
  7. data/app/assets/images/refinery/logo-small.png +0 -0
  8. data/app/assets/images/refinery/logo-tiny.png +0 -0
  9. data/app/assets/images/refinery/logo.png +0 -0
  10. data/app/assets/images/refinery/refinery-cms-logo.svg +1 -558
  11. data/app/assets/javascripts/refinery/admin.js.erb +37 -21
  12. data/app/assets/javascripts/refinery/ajaxy_pagination.js +16 -0
  13. data/app/assets/javascripts/refinery/image_crop.js +101 -0
  14. data/app/assets/javascripts/refinery/interface.js.erb +42 -0
  15. data/app/assets/javascripts/refinery/refinery.js.erb +3 -3
  16. data/app/assets/javascripts/refinery/submit_continue.js.erb +23 -0
  17. data/app/assets/stylesheets/refinery/components/_file_type_icons.scss +36 -0
  18. data/app/assets/stylesheets/refinery/components/_icons.scss +89 -47
  19. data/app/assets/stylesheets/refinery/global/_colours.scss +12 -5
  20. data/app/assets/stylesheets/refinery/mixins/_images.scss +99 -0
  21. data/app/assets/stylesheets/refinery/mixins/_locales.scss +22 -0
  22. data/app/assets/stylesheets/refinery/mixins/_rounded.scss +9 -23
  23. data/app/assets/stylesheets/refinery/plugins/_ui.scss +7 -4
  24. data/app/assets/stylesheets/refinery/refinery.scss +4 -1
  25. data/app/assets/stylesheets/refinery/sections/_layout.scss +490 -265
  26. data/app/controllers/refinery/admin/dialogs_controller.rb +6 -6
  27. data/app/helpers/refinery/action_helper.rb +75 -0
  28. data/app/helpers/refinery/icon_helper.rb +51 -0
  29. data/app/helpers/refinery/image_helper.rb +1 -1
  30. data/app/helpers/refinery/pagination_helper.rb +1 -0
  31. data/app/helpers/refinery/site_bar_helper.rb +10 -7
  32. data/app/helpers/refinery/tag_helper.rb +5 -36
  33. data/app/helpers/refinery/translation_helper.rb +12 -1
  34. data/app/views/refinery/_head.html.erb +1 -0
  35. data/app/views/refinery/_matomo_analytics.html.erb +18 -0
  36. data/app/views/refinery/_site_bar.html.erb +9 -9
  37. data/app/views/refinery/admin/_error_messages.html.erb +4 -4
  38. data/app/views/refinery/admin/_locale_picker.html.erb +8 -14
  39. data/config/initializers/assets.rb +5 -1
  40. data/config/initializers/zeitwerk.rb +12 -0
  41. data/config/locales/en.yml +3 -1
  42. data/config/locales/sk.yml +7 -0
  43. data/lib/generators/refinery/cms/cms_generator.rb +24 -20
  44. data/lib/generators/refinery/core/templates/config/initializers/refinery/core.rb.erb +5 -0
  45. data/lib/generators/refinery/dummy/dummy_generator.rb +32 -10
  46. data/lib/generators/refinery/dummy/templates/rails/application.rb.erb +27 -7
  47. data/lib/generators/refinery/dummy/templates/rails/boot.rb.erb +1 -2
  48. data/lib/generators/refinery/dummy/templates/rails/database.yml +55 -14
  49. data/lib/generators/refinery/dummy/templates/rails/manifest.js +3 -0
  50. data/lib/generators/refinery/dummy/templates/rails/storage.yml +7 -0
  51. data/lib/generators/refinery/engine/engine_generator.rb +1 -0
  52. data/lib/generators/refinery/engine/templates/Gemfile +1 -2
  53. data/lib/generators/refinery/engine/templates/Rakefile +2 -2
  54. data/lib/generators/refinery/engine/templates/app/controllers/refinery/namespace/admin/plural_name_controller.rb.erb +1 -1
  55. data/lib/generators/refinery/engine/templates/app/controllers/refinery/namespace/plural_name_controller.rb.erb +1 -1
  56. data/lib/generators/refinery/engine/templates/app/models/refinery/namespace/singular_name.rb.erb +1 -0
  57. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_form.html.erb +1 -1
  58. data/lib/generators/refinery/engine/templates/db/migrate/1_create_namespace_plural_name.rb.erb +15 -4
  59. data/lib/generators/refinery/engine/templates/lib/generators/refinery/extension_plural_name_generator.rb.erb +1 -1
  60. data/lib/generators/refinery/engine/templates/lib/refinery/plural_name.rb.erb +1 -1
  61. data/lib/refinery/admin/base_controller.rb +2 -2
  62. data/lib/refinery/application_controller.rb +1 -2
  63. data/lib/refinery/cli.rb +1 -1
  64. data/lib/refinery/core/configuration.rb +4 -1
  65. data/lib/refinery/core/engine.rb +20 -0
  66. data/lib/refinery/core.rb +0 -1
  67. data/lib/refinery/crud.rb +33 -32
  68. data/lib/refinery/extension_generation.rb +55 -8
  69. data/lib/refinery/generators/generated_attribute.rb +13 -0
  70. data/lib/refinery/plugins.rb +1 -1
  71. data/lib/refinery/version.rb +4 -4
  72. data/lib/refinery.rb +9 -2
  73. data/lib/refinerycms/core.rb +1 -0
  74. data/lib/tasks/refinery.rake +3 -3
  75. data/refinerycms-core.gemspec +21 -27
  76. data/spec/controllers/refinery/sitemap_controller_spec.rb +1 -1
  77. data/spec/helpers/refinery/tag_helper_spec.rb +1 -1
  78. data/spec/helpers/refinery/translation_helper_spec.rb +46 -10
  79. data/spec/lib/generators/refinery/cms/cms_generator_spec.rb +6 -6
  80. data/spec/lib/generators/refinery/engine/engine_generator_multiple_resources_spec.rb +23 -2
  81. data/spec/lib/refinery/cli_spec.rb +2 -2
  82. data/spec/lib/refinery/{users_manager_spec.rb → core/users_manager_spec.rb} +1 -1
  83. data/spec/lib/refinery/crud_spec.rb +2 -1
  84. data/spec/presenters/refinery/translated_field_presenter_spec.rb +5 -7
  85. data/spec/support/refinery.rb +2 -2
  86. data/spec/{features → system}/refinery/admin/custom_assets_spec.rb +1 -1
  87. data/spec/system/refinery/admin/dialogs_spec.rb +29 -0
  88. data/spec/{features → system}/refinery/admin/xhr_paging_spec.rb +10 -7
  89. data/spec/{features → system}/refinery/application_layout_spec.rb +3 -4
  90. data/spec/{features → system}/refinery/core_spec.rb +1 -1
  91. data/spec/{features → system}/refinery/site_bar_spec.rb +5 -3
  92. data/vendor/assets/javascripts/canvas-to-blob.js +126 -0
  93. data/vendor/assets/javascripts/cropper.js +3715 -0
  94. data/vendor/assets/stylesheets/cropper.css +305 -0
  95. metadata +108 -171
  96. checksums.yaml.gz.sig +0 -0
  97. data/app/assets/javascripts/refinery/ajaxy_pagination.js.coffee +0 -10
  98. data/app/assets/javascripts/refinery/interface.js.coffee.erb +0 -33
  99. data/app/assets/javascripts/refinery/submit_continue.js.coffee.erb +0 -12
  100. data/spec/features/refinery/admin/dialogs_spec.rb +0 -29
  101. data/spec/support/database_cleaner.rb +0 -21
  102. data.tar.gz.sig +0 -0
  103. metadata.gz.sig +0 -5
  104. /data/lib/generators/refinery/cms/templates/config/{database.yml.mysql → database.mysql.yml} +0 -0
  105. /data/lib/generators/refinery/cms/templates/config/{database.yml.postgresql → database.postgresql.yml} +0 -0
  106. /data/lib/generators/refinery/cms/templates/config/{database.yml.sqlite3 → database.sqlite3.yml} +0 -0
  107. /data/lib/refinery/{users_manager.rb → core/users_manager.rb} +0 -0
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  module Refinery
4
- describe "site bar", :type => :feature do
6
+ describe "site bar", type: :system do
5
7
  refinery_login
6
8
 
7
9
  describe "logout link" do
@@ -10,10 +12,10 @@ module Refinery
10
12
  context "when set" do
11
13
  before do
12
14
  allow(Refinery::Core).to receive(:refinery_logout_path).and_return(logout_path)
13
- visit Refinery::Core.backend_path
14
15
  end
15
16
 
16
17
  it "is present" do
18
+ visit Refinery::Core.backend_path
17
19
  expect(page).to have_selector("a[href='#{logout_path}']")
18
20
  expect(page).to have_content("Log out")
19
21
  end
@@ -62,7 +64,7 @@ module Refinery
62
64
  end
63
65
 
64
66
  it "has an 'edit this page' button" do
65
- expect(page).to have_link("Edit this page", :href => refinery.edit_admin_page_path(root_page))
67
+ expect(page).to have_link("Edit this page", href: refinery.edit_admin_page_path(root_page))
66
68
  end
67
69
 
68
70
  end
@@ -0,0 +1,126 @@
1
+ /*
2
+ * JavaScript Canvas to Blob
3
+ * https://github.com/blueimp/JavaScript-Canvas-to-Blob
4
+ *
5
+ * Copyright 2012, Sebastian Tschan
6
+ * https://blueimp.net
7
+ *
8
+ * Licensed under the MIT license:
9
+ * https://opensource.org/licenses/MIT
10
+ *
11
+ * Based on stackoverflow user Stoive's code snippet:
12
+ * http://stackoverflow.com/q/4998908
13
+ */
14
+
15
+ /* global atob, Blob, define */
16
+
17
+ ;(function (window) {
18
+ 'use strict'
19
+
20
+ var CanvasPrototype =
21
+ window.HTMLCanvasElement && window.HTMLCanvasElement.prototype
22
+ var hasBlobConstructor =
23
+ window.Blob &&
24
+ (function () {
25
+ try {
26
+ return Boolean(new Blob())
27
+ } catch (e) {
28
+ return false
29
+ }
30
+ })()
31
+ var hasArrayBufferViewSupport =
32
+ hasBlobConstructor &&
33
+ window.Uint8Array &&
34
+ (function () {
35
+ try {
36
+ return new Blob([new Uint8Array(100)]).size === 100
37
+ } catch (e) {
38
+ return false
39
+ }
40
+ })()
41
+ var BlobBuilder =
42
+ window.BlobBuilder ||
43
+ window.WebKitBlobBuilder ||
44
+ window.MozBlobBuilder ||
45
+ window.MSBlobBuilder
46
+ var dataURIPattern = /^data:((.*?)(;charset=.*?)?)(;base64)?,/
47
+ var dataURLtoBlob =
48
+ (hasBlobConstructor || BlobBuilder) &&
49
+ window.atob &&
50
+ window.ArrayBuffer &&
51
+ window.Uint8Array &&
52
+ function (dataURI) {
53
+ var matches,
54
+ mediaType,
55
+ isBase64,
56
+ dataString,
57
+ byteString,
58
+ arrayBuffer,
59
+ intArray,
60
+ i,
61
+ bb
62
+ // Parse the dataURI components as per RFC 2397
63
+ matches = dataURI.match(dataURIPattern)
64
+ if (!matches) {
65
+ throw new Error('invalid data URI')
66
+ }
67
+ // Default to text/plain;charset=US-ASCII
68
+ mediaType = matches[2]
69
+ ? matches[1]
70
+ : 'text/plain' + (matches[3] || ';charset=US-ASCII')
71
+ isBase64 = !!matches[4]
72
+ dataString = dataURI.slice(matches[0].length)
73
+ if (isBase64) {
74
+ // Convert base64 to raw binary data held in a string:
75
+ byteString = atob(dataString)
76
+ } else {
77
+ // Convert base64/URLEncoded data component to raw binary:
78
+ byteString = decodeURIComponent(dataString)
79
+ }
80
+ // Write the bytes of the string to an ArrayBuffer:
81
+ arrayBuffer = new ArrayBuffer(byteString.length)
82
+ intArray = new Uint8Array(arrayBuffer)
83
+ for (i = 0; i < byteString.length; i += 1) {
84
+ intArray[i] = byteString.charCodeAt(i)
85
+ }
86
+ // Write the ArrayBuffer (or ArrayBufferView) to a blob:
87
+ if (hasBlobConstructor) {
88
+ return new Blob([hasArrayBufferViewSupport ? intArray : arrayBuffer], {
89
+ type: mediaType
90
+ })
91
+ }
92
+ bb = new BlobBuilder()
93
+ bb.append(arrayBuffer)
94
+ return bb.getBlob(mediaType)
95
+ }
96
+ if (window.HTMLCanvasElement && !CanvasPrototype.toBlob) {
97
+ if (CanvasPrototype.mozGetAsFile) {
98
+ CanvasPrototype.toBlob = function (callback, type, quality) {
99
+ var self = this
100
+ setTimeout(function () {
101
+ if (quality && CanvasPrototype.toDataURL && dataURLtoBlob) {
102
+ callback(dataURLtoBlob(self.toDataURL(type, quality)))
103
+ } else {
104
+ callback(self.mozGetAsFile('blob', type))
105
+ }
106
+ })
107
+ }
108
+ } else if (CanvasPrototype.toDataURL && dataURLtoBlob) {
109
+ CanvasPrototype.toBlob = function (callback, type, quality) {
110
+ var self = this
111
+ setTimeout(function () {
112
+ callback(dataURLtoBlob(self.toDataURL(type, quality)))
113
+ })
114
+ }
115
+ }
116
+ }
117
+ if (typeof define === 'function' && define.amd) {
118
+ define(function () {
119
+ return dataURLtoBlob
120
+ })
121
+ } else if (typeof module === 'object' && module.exports) {
122
+ module.exports = dataURLtoBlob
123
+ } else {
124
+ window.dataURLtoBlob = dataURLtoBlob
125
+ }
126
+ })(window)