alchemy_cms 6.0.0.pre.rc2 → 6.0.0.pre.rc5
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.
Potentially problematic release.
This version of alchemy_cms might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +0 -7
- data/CHANGELOG.md +37 -0
- data/Gemfile +5 -0
- data/alchemy_cms.gemspec +2 -2
- data/app/assets/javascripts/alchemy/admin.js +0 -1
- data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +2 -2
- data/app/assets/stylesheets/alchemy/_extends.scss +4 -4
- data/app/assets/stylesheets/alchemy/flatpickr.scss +182 -232
- data/app/assets/stylesheets/tinymce/skins/alchemy/content.min.css.scss +3 -3
- data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +7 -7
- data/app/controllers/alchemy/admin/base_controller.rb +9 -3
- data/app/models/alchemy/attachment.rb +1 -1
- data/app/models/alchemy/element.rb +1 -1
- data/app/models/alchemy/node.rb +1 -1
- data/app/models/alchemy/page.rb +7 -2
- data/app/models/alchemy/picture.rb +1 -1
- data/app/services/alchemy/tag_validations.rb +21 -0
- data/app/views/alchemy/ingredients/_picture_editor.html.erb +2 -2
- data/config/brakeman.ignore +25 -5
- data/config/routes.rb +0 -1
- data/db/migrate/20200226213334_alchemy_four_point_four.rb +30 -30
- data/db/migrate/20200423073425_create_alchemy_essence_nodes.rb +1 -1
- data/db/migrate/20200504210159_remove_site_id_from_nodes.rb +1 -1
- data/db/migrate/20200505215518_add_language_id_foreign_key_to_alchemy_pages.rb +1 -1
- data/db/migrate/20200511113603_add_menu_type_to_alchemy_nodes.rb +1 -1
- data/db/migrate/20200514091507_make_page_layoutpage_null_false.rb +1 -1
- data/db/migrate/20200519073500_remove_visible_from_alchemy_pages.rb +1 -1
- data/db/migrate/20200617110713_create_alchemy_picture_thumbs.rb +1 -1
- data/db/migrate/20200907111332_remove_tri_state_booleans.rb +1 -1
- data/db/migrate/20201207131309_create_page_versions.rb +1 -1
- data/db/migrate/20201207135820_add_page_version_id_to_alchemy_elements.rb +1 -1
- data/lib/alchemy/engine.rb +6 -5
- data/lib/alchemy/error_tracking.rb +14 -0
- data/lib/alchemy/taggable.rb +11 -4
- data/lib/alchemy/upgrader.rb +6 -0
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy_cms.rb +1 -0
- data/lib/generators/alchemy/install/install_generator.rb +2 -1
- data/lib/tasks/alchemy/upgrade.rake +6 -0
- data/package/admin.js +3 -1
- data/package/src/datepicker.js +39 -0
- data/package.json +2 -1
- metadata +24 -22
- data/app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee +0 -29
data/lib/alchemy/upgrader.rb
CHANGED
@@ -24,6 +24,12 @@ module Alchemy
|
|
24
24
|
todo "Check the default configuration file (./config/alchemy/config.yml.defaults) for new configuration options and insert them into your config file.", "Configuration has changed"
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
def update_npm_package
|
29
|
+
desc "Install new npm package."
|
30
|
+
`yarn add @alchemy_cms/admin@~#{Alchemy.version}`
|
31
|
+
log "Installed new npm package."
|
32
|
+
end
|
27
33
|
end
|
28
34
|
end
|
29
35
|
end
|
data/lib/alchemy/version.rb
CHANGED
data/lib/alchemy_cms.rb
CHANGED
@@ -37,6 +37,7 @@ require_relative "alchemy/controller_actions"
|
|
37
37
|
require_relative "alchemy/deprecation"
|
38
38
|
require_relative "alchemy/element_definition"
|
39
39
|
require_relative "alchemy/elements_finder"
|
40
|
+
require_relative "alchemy/error_tracking"
|
40
41
|
require_relative "alchemy/errors"
|
41
42
|
require_relative "alchemy/essence"
|
42
43
|
require_relative "alchemy/filetypes"
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require "rails/generators"
|
3
3
|
require "alchemy/install/tasks"
|
4
|
+
require "alchemy/version"
|
4
5
|
|
5
6
|
module Alchemy
|
6
7
|
module Generators
|
@@ -88,7 +89,7 @@ module Alchemy
|
|
88
89
|
end
|
89
90
|
|
90
91
|
def add_npm_package
|
91
|
-
run "yarn add @alchemy_cms/admin"
|
92
|
+
run "yarn add @alchemy_cms/admin@~#{Alchemy.version}"
|
92
93
|
end
|
93
94
|
|
94
95
|
def copy_alchemy_entry_point
|
@@ -17,6 +17,7 @@ namespace :alchemy do
|
|
17
17
|
task prepare: [
|
18
18
|
"alchemy:upgrade:database",
|
19
19
|
"alchemy:upgrade:config",
|
20
|
+
"alchemy:upgrade:package",
|
20
21
|
]
|
21
22
|
|
22
23
|
desc "Alchemy Upgrader: Prepares the database."
|
@@ -30,6 +31,11 @@ namespace :alchemy do
|
|
30
31
|
Alchemy::Upgrader.copy_new_config_file
|
31
32
|
end
|
32
33
|
|
34
|
+
desc "Alchemy Upgrader: Install new Node package."
|
35
|
+
task package: [:environment] do
|
36
|
+
Alchemy::Upgrader.update_npm_package
|
37
|
+
end
|
38
|
+
|
33
39
|
desc "Upgrade Alchemy to v5.0"
|
34
40
|
task "5.0" => [
|
35
41
|
"alchemy:upgrade:prepare",
|
data/package/admin.js
CHANGED
@@ -5,6 +5,7 @@ import fileEditors from "./src/file_editors"
|
|
5
5
|
import pictureEditors from "./src/picture_editors"
|
6
6
|
import ImageLoader from "./src/image_loader"
|
7
7
|
import ImageCropper from "./src/image_cropper"
|
8
|
+
import Datepicker from "./src/datepicker"
|
8
9
|
|
9
10
|
// Global Alchemy object
|
10
11
|
if (typeof window.Alchemy === "undefined") {
|
@@ -20,5 +21,6 @@ Object.assign(Alchemy, {
|
|
20
21
|
fileEditors,
|
21
22
|
pictureEditors,
|
22
23
|
ImageLoader: ImageLoader.init,
|
23
|
-
ImageCropper
|
24
|
+
ImageCropper,
|
25
|
+
Datepicker
|
24
26
|
})
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import flatpickr from "flatpickr"
|
2
|
+
|
3
|
+
export default function Datepicker(scope = document) {
|
4
|
+
if (scope === "") {
|
5
|
+
scope = document
|
6
|
+
} else if (scope instanceof String) {
|
7
|
+
scope = document.querySelectorAll(scope)
|
8
|
+
}
|
9
|
+
|
10
|
+
const datepickerInputs = scope.querySelectorAll("input[data-datepicker-type]")
|
11
|
+
|
12
|
+
// Initializes the datepickers on the text inputs and sets the proper type
|
13
|
+
// to enable browsers default datepicker if the current OS is iOS.
|
14
|
+
if (Alchemy.isiOS) {
|
15
|
+
datepickerInputs.forEach((input) => {
|
16
|
+
input.attributes.type = input.dataset.datepickerType
|
17
|
+
})
|
18
|
+
} else {
|
19
|
+
datepickerInputs.forEach((input) => {
|
20
|
+
const type = input.dataset.datepickerType
|
21
|
+
const options = {
|
22
|
+
// alchemy_i18n supports `zh_CN` etc., but flatpickr only has two-letter codes (`zh`)
|
23
|
+
locale: Alchemy.locale.slice(0, 2),
|
24
|
+
altInput: true,
|
25
|
+
altFormat: Alchemy.t(`formats.${type}`),
|
26
|
+
altInputClass: "flatpickr-input",
|
27
|
+
enableTime: /time/.test(type),
|
28
|
+
noCalendar: type === "time",
|
29
|
+
time_24hr: Alchemy.t("formats.time_24hr"),
|
30
|
+
onValueUpdate(_selectedDates, _dateStr, instance) {
|
31
|
+
return Alchemy.setElementDirty(
|
32
|
+
instance.element.closest(".element-editor")
|
33
|
+
)
|
34
|
+
}
|
35
|
+
}
|
36
|
+
flatpickr(input, options)
|
37
|
+
})
|
38
|
+
}
|
39
|
+
}
|
data/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@alchemy_cms/admin",
|
3
|
-
"version": "6.0.0-
|
3
|
+
"version": "6.0.0-rc4",
|
4
4
|
"description": "AlchemyCMS",
|
5
5
|
"browser": "package/admin.js",
|
6
6
|
"files": [
|
@@ -24,6 +24,7 @@
|
|
24
24
|
},
|
25
25
|
"homepage": "https://github.com/AlchemyCMS/alchemy_cms#readme",
|
26
26
|
"dependencies": {
|
27
|
+
"flatpickr": "^4.6.9",
|
27
28
|
"lodash-es": "^4.17.21",
|
28
29
|
"sortablejs": "^1.10.2"
|
29
30
|
},
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alchemy_cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0.0.pre.
|
4
|
+
version: 6.0.0.pre.rc5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas von Deyen
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date:
|
16
|
+
date: 2022-02-24 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: actionmailer
|
@@ -408,9 +408,9 @@ dependencies:
|
|
408
408
|
- - ">="
|
409
409
|
- !ruby/object:Gem::Version
|
410
410
|
version: '1.8'
|
411
|
-
- - "
|
411
|
+
- - "<="
|
412
412
|
- !ruby/object:Gem::Version
|
413
|
-
version: 2.
|
413
|
+
version: 2.5.0
|
414
414
|
type: :runtime
|
415
415
|
prerelease: false
|
416
416
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -418,9 +418,9 @@ dependencies:
|
|
418
418
|
- - ">="
|
419
419
|
- !ruby/object:Gem::Version
|
420
420
|
version: '1.8'
|
421
|
-
- - "
|
421
|
+
- - "<="
|
422
422
|
- !ruby/object:Gem::Version
|
423
|
-
version: 2.
|
423
|
+
version: 2.5.0
|
424
424
|
- !ruby/object:Gem::Dependency
|
425
425
|
name: request_store
|
426
426
|
requirement: !ruby/object:Gem::Requirement
|
@@ -571,6 +571,20 @@ dependencies:
|
|
571
571
|
- - "~>"
|
572
572
|
- !ruby/object:Gem::Version
|
573
573
|
version: '1.0'
|
574
|
+
- !ruby/object:Gem::Dependency
|
575
|
+
name: cuprite
|
576
|
+
requirement: !ruby/object:Gem::Requirement
|
577
|
+
requirements:
|
578
|
+
- - "~>"
|
579
|
+
- !ruby/object:Gem::Version
|
580
|
+
version: '0.13'
|
581
|
+
type: :development
|
582
|
+
prerelease: false
|
583
|
+
version_requirements: !ruby/object:Gem::Requirement
|
584
|
+
requirements:
|
585
|
+
- - "~>"
|
586
|
+
- !ruby/object:Gem::Version
|
587
|
+
version: '0.13'
|
574
588
|
- !ruby/object:Gem::Dependency
|
575
589
|
name: factory_bot_rails
|
576
590
|
requirement: !ruby/object:Gem::Requirement
|
@@ -655,20 +669,6 @@ dependencies:
|
|
655
669
|
- - "~>"
|
656
670
|
- !ruby/object:Gem::Version
|
657
671
|
version: '0.20'
|
658
|
-
- !ruby/object:Gem::Dependency
|
659
|
-
name: webdrivers
|
660
|
-
requirement: !ruby/object:Gem::Requirement
|
661
|
-
requirements:
|
662
|
-
- - "~>"
|
663
|
-
- !ruby/object:Gem::Version
|
664
|
-
version: '4.0'
|
665
|
-
type: :development
|
666
|
-
prerelease: false
|
667
|
-
version_requirements: !ruby/object:Gem::Requirement
|
668
|
-
requirements:
|
669
|
-
- - "~>"
|
670
|
-
- !ruby/object:Gem::Version
|
671
|
-
version: '4.0'
|
672
672
|
- !ruby/object:Gem::Dependency
|
673
673
|
name: webmock
|
674
674
|
requirement: !ruby/object:Gem::Requirement
|
@@ -757,7 +757,6 @@ files:
|
|
757
757
|
- app/assets/javascripts/alchemy/alchemy.buttons.js.coffee
|
758
758
|
- app/assets/javascripts/alchemy/alchemy.char_counter.js.coffee
|
759
759
|
- app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee
|
760
|
-
- app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee
|
761
760
|
- app/assets/javascripts/alchemy/alchemy.dialog.js.coffee
|
762
761
|
- app/assets/javascripts/alchemy/alchemy.dirty.js.coffee
|
763
762
|
- app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee
|
@@ -1008,6 +1007,7 @@ files:
|
|
1008
1007
|
- app/serializers/alchemy/picture_serializer.rb
|
1009
1008
|
- app/services/alchemy/delete_elements.rb
|
1010
1009
|
- app/services/alchemy/duplicate_element.rb
|
1010
|
+
- app/services/alchemy/tag_validations.rb
|
1011
1011
|
- app/views/alchemy/_edit_mode.html.erb
|
1012
1012
|
- app/views/alchemy/_menubar.html.erb
|
1013
1013
|
- app/views/alchemy/_preview_mode_code.html.erb
|
@@ -1308,6 +1308,7 @@ files:
|
|
1308
1308
|
- lib/alchemy/element_definition.rb
|
1309
1309
|
- lib/alchemy/elements_finder.rb
|
1310
1310
|
- lib/alchemy/engine.rb
|
1311
|
+
- lib/alchemy/error_tracking.rb
|
1311
1312
|
- lib/alchemy/errors.rb
|
1312
1313
|
- lib/alchemy/essence.rb
|
1313
1314
|
- lib/alchemy/filetypes.rb
|
@@ -1424,6 +1425,7 @@ files:
|
|
1424
1425
|
- package.json
|
1425
1426
|
- package/admin.js
|
1426
1427
|
- package/src/__tests__/i18n.spec.js
|
1428
|
+
- package/src/datepicker.js
|
1427
1429
|
- package/src/file_editors.js
|
1428
1430
|
- package/src/i18n.js
|
1429
1431
|
- package/src/image_cropper.js
|
@@ -1518,7 +1520,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1518
1520
|
version: 1.3.1
|
1519
1521
|
requirements:
|
1520
1522
|
- ImageMagick (libmagick), v6.6 or greater.
|
1521
|
-
rubygems_version: 3.
|
1523
|
+
rubygems_version: 3.1.6
|
1522
1524
|
signing_key:
|
1523
1525
|
specification_version: 4
|
1524
1526
|
summary: A powerful, userfriendly and flexible CMS for Rails
|
@@ -1,29 +0,0 @@
|
|
1
|
-
window.Alchemy = {} if typeof(window.Alchemy) is 'undefined'
|
2
|
-
|
3
|
-
$.extend Alchemy,
|
4
|
-
|
5
|
-
Datepicker: (scope) ->
|
6
|
-
$datepicker_inputs = $('input[data-datepicker-type]', scope)
|
7
|
-
|
8
|
-
# Initializes the datepickers on the text inputs and sets the proper type
|
9
|
-
# to enable browsers default datepicker if the current OS is iOS.
|
10
|
-
if Alchemy.isiOS
|
11
|
-
$datepicker_inputs.prop "type", ->
|
12
|
-
return $(this).data('datepicker-type')
|
13
|
-
else
|
14
|
-
$datepicker_inputs.each ->
|
15
|
-
type = $(this).data('datepicker-type')
|
16
|
-
options =
|
17
|
-
# alchemy_i18n supports `zh_CN` etc., but flatpickr only has two-letter codes (`zh`)
|
18
|
-
locale: Alchemy.locale.slice(0, 2)
|
19
|
-
altInput: true
|
20
|
-
altFormat: Alchemy.t("formats.#{type}")
|
21
|
-
altInputClass: ""
|
22
|
-
enableTime: /time/.test(type)
|
23
|
-
noCalendar: type == "time"
|
24
|
-
time_24hr: Alchemy.t("formats.time_24hr")
|
25
|
-
onValueUpdate: (_selectedDates, _dateStr, instance) ->
|
26
|
-
Alchemy.setElementDirty $(instance.element).closest(".element-editor")
|
27
|
-
$(this).flatpickr(options)
|
28
|
-
|
29
|
-
return
|