alchemy_cms 5.0.3 → 5.1.1
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.
- checksums.yaml +4 -4
- data/.github/PULL_REQUEST_TEMPLATE.md +1 -1
- data/.github/workflows/stale.yml +1 -1
- data/.gitignore +1 -0
- data/CHANGELOG.md +66 -2
- data/CONTRIBUTING.md +2 -2
- data/Gemfile +1 -1
- data/README.md +1 -1
- data/alchemy_cms.gemspec +3 -3
- data/app/assets/images/alchemy/missing-image.svg +1 -0
- data/app/assets/javascripts/alchemy/admin.js +0 -1
- data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +1 -4
- data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +0 -3
- data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +29 -4
- data/app/assets/stylesheets/alchemy/_variables.scss +8 -0
- data/app/assets/stylesheets/alchemy/admin.scss +0 -1
- data/app/assets/stylesheets/alchemy/archive.scss +23 -17
- data/app/assets/stylesheets/alchemy/buttons.scss +26 -15
- data/app/assets/stylesheets/alchemy/elements.scss +58 -19
- data/app/assets/stylesheets/alchemy/errors.scss +1 -1
- data/app/assets/stylesheets/alchemy/frame.scss +0 -1
- data/app/assets/stylesheets/alchemy/hints.scss +2 -1
- data/app/assets/stylesheets/alchemy/navigation.scss +7 -10
- data/app/assets/stylesheets/alchemy/pagination.scss +1 -1
- data/app/assets/stylesheets/alchemy/search.scss +13 -3
- data/app/assets/stylesheets/alchemy/selects.scss +26 -20
- data/app/assets/stylesheets/alchemy/tables.scss +38 -9
- data/app/assets/stylesheets/alchemy/tags.scss +19 -31
- data/app/controllers/alchemy/admin/pages_controller.rb +58 -8
- data/app/controllers/alchemy/admin/pictures_controller.rb +13 -6
- data/app/controllers/alchemy/admin/resources_controller.rb +3 -3
- data/app/controllers/alchemy/pages_controller.rb +49 -14
- data/app/decorators/alchemy/element_editor.rb +1 -0
- data/app/helpers/alchemy/admin/base_helper.rb +0 -44
- data/app/helpers/alchemy/admin/navigation_helper.rb +2 -1
- data/app/models/alchemy/attachment.rb +20 -3
- data/app/models/alchemy/attachment/url.rb +40 -0
- data/app/models/alchemy/essence_picture.rb +3 -3
- data/app/models/alchemy/essence_picture_view.rb +5 -3
- data/app/models/alchemy/legacy_page_url.rb +1 -1
- data/app/models/alchemy/page.rb +24 -1
- data/app/models/alchemy/page/page_natures.rb +2 -0
- data/app/models/alchemy/page/url_path.rb +8 -6
- data/app/models/alchemy/picture.rb +58 -2
- data/app/models/alchemy/picture/calculations.rb +55 -0
- data/app/models/alchemy/picture/transformations.rb +5 -49
- data/app/models/alchemy/picture/url.rb +28 -77
- data/app/models/alchemy/picture_thumb.rb +57 -0
- data/app/models/alchemy/picture_thumb/create.rb +39 -0
- data/app/models/alchemy/picture_thumb/signature.rb +23 -0
- data/app/models/alchemy/picture_thumb/uid.rb +22 -0
- data/app/models/alchemy/picture_variant.rb +114 -0
- data/app/models/alchemy/site/layout.rb +30 -2
- data/app/views/alchemy/admin/attachments/show.html.erb +8 -8
- data/app/views/alchemy/admin/dashboard/index.html.erb +13 -16
- data/app/views/alchemy/admin/elements/_element_footer.html.erb +1 -1
- data/app/views/alchemy/admin/elements/publish.js.erb +1 -0
- data/app/views/alchemy/admin/essence_pictures/crop.html.erb +1 -1
- data/app/views/alchemy/admin/essence_pictures/edit.html.erb +2 -2
- data/app/views/alchemy/admin/layoutpages/edit.html.erb +4 -6
- data/app/views/alchemy/admin/pages/_create_language_form.html.erb +19 -29
- data/app/views/alchemy/admin/pages/_form.html.erb +4 -6
- data/app/views/alchemy/admin/pages/_new_page_form.html.erb +12 -2
- data/app/views/alchemy/admin/pages/_page_layout_filter.html.erb +29 -0
- data/app/views/alchemy/admin/pages/_table.html.erb +27 -0
- data/app/views/alchemy/admin/pages/_table_row.html.erb +107 -0
- data/app/views/alchemy/admin/pages/_toolbar.html.erb +77 -0
- data/app/views/alchemy/admin/pages/edit.html.erb +9 -1
- data/app/views/alchemy/admin/pages/index.html.erb +41 -74
- data/app/views/alchemy/admin/pages/list/_table.html.erb +31 -0
- data/app/views/alchemy/admin/pages/unlock.js.erb +2 -2
- data/app/views/alchemy/admin/pages/update.js.erb +19 -10
- data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +14 -13
- data/app/views/alchemy/admin/partials/_search_form.html.erb +8 -8
- data/app/views/alchemy/admin/pictures/_archive.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_form.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_picture.html.erb +3 -3
- data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/index.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/show.html.erb +3 -3
- data/app/views/alchemy/admin/resources/_filter_bar.html.erb +13 -11
- data/app/views/alchemy/admin/resources/_per_page_select.html.erb +3 -3
- data/app/views/alchemy/admin/resources/index.html.erb +4 -1
- data/app/views/alchemy/admin/tags/index.html.erb +14 -15
- data/app/views/alchemy/base/500.html.erb +11 -13
- data/app/views/alchemy/essences/_essence_file_view.html.erb +3 -3
- data/config/alchemy/config.yml +15 -11
- data/config/alchemy/modules.yml +12 -12
- data/config/locales/alchemy.en.yml +6 -4
- data/config/routes.rb +1 -1
- data/db/migrate/20200617110713_create_alchemy_picture_thumbs.rb +22 -0
- data/db/migrate/20200907111332_remove_tri_state_booleans.rb +33 -0
- data/lib/alchemy.rb +66 -0
- data/lib/alchemy/admin/preview_url.rb +2 -0
- data/lib/alchemy/auth_accessors.rb +12 -5
- data/lib/alchemy/config.rb +1 -3
- data/lib/alchemy/engine.rb +7 -6
- data/lib/alchemy/modules.rb +11 -1
- data/lib/alchemy/permissions.rb +1 -0
- data/lib/alchemy/test_support/factories/picture_factory.rb +0 -1
- data/lib/alchemy/test_support/factories/picture_thumb_factory.rb +12 -0
- data/lib/alchemy/test_support/integration_helpers.rb +0 -7
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy_cms.rb +2 -4
- data/lib/generators/alchemy/install/files/alchemy.en.yml +2 -2
- data/lib/generators/alchemy/install/templates/dragonfly.rb.tt +5 -5
- data/lib/tasks/alchemy/thumbnails.rake +37 -0
- data/vendor/assets/javascripts/jquery_plugins/select2.js +3729 -0
- data/vendor/assets/stylesheets/alchemy_admin/select2.scss +740 -0
- metadata +41 -31
- data/.github/workflows/greetings.yml +0 -13
- data/app/controllers/concerns/alchemy/locale_redirects.rb +0 -40
- data/app/controllers/concerns/alchemy/page_redirects.rb +0 -68
- data/lib/alchemy/userstamp.rb +0 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 26151f079727fc910a0425ec586606fdaa184dfc94b95757b4655630222138ed
|
|
4
|
+
data.tar.gz: 4a0f82f3b3ee7e28fad01b662f467b8eeec411dae15afa0253befb2d777501e6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8eb46f1505bb2b18e0d0f2331ac4b603910cfac6fd97d092188203eb408a8736486d13013b12dc6041bacce977330ceb706dc27001c1bf0429d1165852dab28c
|
|
7
|
+
data.tar.gz: ae47388fe6a4465ad07dda2edd32b7c168168e2b69df4ea629b813dea7d283b0de794b00c8232c23f5872e51a73cea123c207ff003755ab27ab178fc5cf51fc8
|
|
@@ -13,6 +13,6 @@ Explain any changes (maybe breaking?) that have been made.
|
|
|
13
13
|
Remove if no visual changes have been made.
|
|
14
14
|
|
|
15
15
|
## Checklist
|
|
16
|
-
- [ ] I have followed [Pull Request guidelines](https://github.com/AlchemyCMS/alchemy_cms/blob/
|
|
16
|
+
- [ ] I have followed [Pull Request guidelines](https://github.com/AlchemyCMS/alchemy_cms/blob/main/CONTRIBUTING.md)
|
|
17
17
|
- [ ] I have added a detailed description into each commit message
|
|
18
18
|
- [ ] I have added tests to cover this change
|
data/.github/workflows/stale.yml
CHANGED
|
@@ -14,4 +14,4 @@ jobs:
|
|
|
14
14
|
with:
|
|
15
15
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
16
16
|
stale-issue-message: 'This issue has not seen any activity in a long time. If the issue described still exists in recent versions of Alchemy, please open a new issue or preferably open a PR with a fix. Thanks for reporting.'
|
|
17
|
-
stale-pr-message: 'This pull request has not seen any activiy in a long time. Probably because of missing tests or a necessary rebase. Please open a new PR to latest
|
|
17
|
+
stale-pr-message: 'This pull request has not seen any activiy in a long time. Probably because of missing tests or a necessary rebase. Please open a new PR to latest main if you want to continue working on this. Thanks for the contribution.'
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,67 @@
|
|
|
1
|
+
## 5.1.1 (2021-01-12)
|
|
2
|
+
|
|
3
|
+
- Fix copy element feature [#1996](https://github.com/AlchemyCMS/alchemy_cms/pull/1996) ([tvdeyen](https://github.com/tvdeyen))
|
|
4
|
+
|
|
5
|
+
## 5.1.0 (2020-12-18)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
- Allow pound sign in legacy url [#1980](https://github.com/AlchemyCMS/alchemy_cms/pull/1980) ([robinboening](https://github.com/robinboening))
|
|
10
|
+
- Adjust element editor UI [#1979](https://github.com/AlchemyCMS/alchemy_cms/pull/1979) ([tvdeyen](https://github.com/tvdeyen))
|
|
11
|
+
- Always show the full page name in active page tab [#1972](https://github.com/AlchemyCMS/alchemy_cms/pull/1972) ([tvdeyen](https://github.com/tvdeyen))
|
|
12
|
+
- Allow multiple preview sources [#1959](https://github.com/AlchemyCMS/alchemy_cms/pull/1959) ([tvdeyen](https://github.com/tvdeyen))
|
|
13
|
+
- Add Publish Targets [#1957](https://github.com/AlchemyCMS/alchemy_cms/pull/1957) ([tvdeyen](https://github.com/tvdeyen))
|
|
14
|
+
- Persist rendered picture variants [#1882](https://github.com/AlchemyCMS/alchemy_cms/pull/1882) ([tvdeyen](https://github.com/tvdeyen))
|
|
15
|
+
- Store current pictures size in session [#1927](https://github.com/AlchemyCMS/alchemy_cms/pull/1927) ([tvdeyen](https://github.com/tvdeyen))
|
|
16
|
+
- Add support for custom mount points in Page::UrlPath [#1921](https://github.com/AlchemyCMS/alchemy_cms/pull/1921) ([tvdeyen](https://github.com/tvdeyen))
|
|
17
|
+
- Allow to set a custom Page::UrlPath class [#1919](https://github.com/AlchemyCMS/alchemy_cms/pull/1919) ([tvdeyen](https://github.com/tvdeyen))
|
|
18
|
+
- Introduce a pages list view [#1906](https://github.com/AlchemyCMS/alchemy_cms/pull/1906) ([tvdeyen](https://github.com/tvdeyen))
|
|
19
|
+
|
|
20
|
+
### Changes
|
|
21
|
+
|
|
22
|
+
- Fix height of search input field [#1973](https://github.com/AlchemyCMS/alchemy_cms/pull/1973) ([tvdeyen](https://github.com/tvdeyen))
|
|
23
|
+
- Load select2 from assets folder [#1961](https://github.com/AlchemyCMS/alchemy_cms/pull/1961) ([tvdeyen](https://github.com/tvdeyen))
|
|
24
|
+
- Do not abort if user class cannot be found [#1950](https://github.com/AlchemyCMS/alchemy_cms/pull/1950) ([tvdeyen](https://github.com/tvdeyen))
|
|
25
|
+
- Deprivatize useful picture view methods [#1936](https://github.com/AlchemyCMS/alchemy_cms/pull/1936) ([mickenorlen](https://github.com/mickenorlen))
|
|
26
|
+
- Unset render_size on layout default selection [#1935](https://github.com/AlchemyCMS/alchemy_cms/pull/1935) ([mickenorlen](https://github.com/mickenorlen))
|
|
27
|
+
- Dont show sizes selection if using srcset [#1934](https://github.com/AlchemyCMS/alchemy_cms/pull/1934) ([mickenorlen](https://github.com/mickenorlen))
|
|
28
|
+
- Change all Boolean columns to never be null [#1933](https://github.com/AlchemyCMS/alchemy_cms/pull/1933) ([mamhoff](https://github.com/mamhoff))
|
|
29
|
+
- Autoselect first if only one layout available [#1932](https://github.com/AlchemyCMS/alchemy_cms/pull/1932) ([mickenorlen](https://github.com/mickenorlen))
|
|
30
|
+
- Remove page from search form query [#1928](https://github.com/AlchemyCMS/alchemy_cms/pull/1928) ([tvdeyen](https://github.com/tvdeyen))
|
|
31
|
+
- Allow coffee-rails 5 [#1926](https://github.com/AlchemyCMS/alchemy_cms/pull/1926) ([sechix](https://github.com/sechix))
|
|
32
|
+
- Update documentation [#1917](https://github.com/AlchemyCMS/alchemy_cms/pull/1917) ([dhughesbc](https://github.com/dhughesbc))
|
|
33
|
+
- Remove deprecated Attachment#urlname [#1911](https://github.com/AlchemyCMS/alchemy_cms/pull/1911) ([tvdeyen](https://github.com/tvdeyen))
|
|
34
|
+
- Remove redirect_to_public_child flag and feature [#1910](https://github.com/AlchemyCMS/alchemy_cms/pull/1910) ([tvdeyen](https://github.com/tvdeyen))
|
|
35
|
+
- Remove toolbar helper [#1909](https://github.com/AlchemyCMS/alchemy_cms/pull/1909) ([tvdeyen](https://github.com/tvdeyen))
|
|
36
|
+
- Two minor CSS fixes [#1908](https://github.com/AlchemyCMS/alchemy_cms/pull/1908) ([tvdeyen](https://github.com/tvdeyen))
|
|
37
|
+
- Do not convert JPG images into JPEG [#1905](https://github.com/AlchemyCMS/alchemy_cms/pull/1905) ([tvdeyen](https://github.com/tvdeyen))
|
|
38
|
+
- Full text search respects filters [#1901](https://github.com/AlchemyCMS/alchemy_cms/pull/1901) ([tvdeyen](https://github.com/tvdeyen))
|
|
39
|
+
- Do not add id attributes to hidden fields in search and filters [#1899](https://github.com/AlchemyCMS/alchemy_cms/pull/1899) ([tvdeyen](https://github.com/tvdeyen))
|
|
40
|
+
- Do not freeze common_search_filter_includes [#1898](https://github.com/AlchemyCMS/alchemy_cms/pull/1898) ([tvdeyen](https://github.com/tvdeyen))
|
|
41
|
+
- Refactor sidebar CSS [#1897](https://github.com/AlchemyCMS/alchemy_cms/pull/1897) ([tvdeyen](https://github.com/tvdeyen))
|
|
42
|
+
- Fix tag-list height [#1896](https://github.com/AlchemyCMS/alchemy_cms/pull/1896) ([tvdeyen](https://github.com/tvdeyen))
|
|
43
|
+
- Fix vertical position of site name in page tab [#1895](https://github.com/AlchemyCMS/alchemy_cms/pull/1895) ([tvdeyen](https://github.com/tvdeyen))
|
|
44
|
+
- Support nested controllers in modules [#1894](https://github.com/AlchemyCMS/alchemy_cms/pull/1894) ([tvdeyen](https://github.com/tvdeyen))
|
|
45
|
+
- Always make pages taggable [#1893](https://github.com/AlchemyCMS/alchemy_cms/pull/1893) ([tvdeyen](https://github.com/tvdeyen))
|
|
46
|
+
- Fix editing sites [#1891](https://github.com/AlchemyCMS/alchemy_cms/pull/1891) ([mamhoff](https://github.com/mamhoff))
|
|
47
|
+
- Fix missing help_text_text translations [#1888](https://github.com/AlchemyCMS/alchemy_cms/pull/1888) ([gr8bit](https://github.com/gr8bit))
|
|
48
|
+
|
|
49
|
+
### Misc
|
|
50
|
+
|
|
51
|
+
- Move away from Travis CI [#1981](https://github.com/AlchemyCMS/alchemy_cms/pull/1981) ([tvdeyen](https://github.com/tvdeyen))
|
|
52
|
+
- Remove poltergeist and phantomjs leftovers [#1970](https://github.com/AlchemyCMS/alchemy_cms/pull/1970) ([tvdeyen](https://github.com/tvdeyen))
|
|
53
|
+
- [ruby - main] Upgrade rubocop to version 1.1.0 [#1958](https://github.com/AlchemyCMS/alchemy_cms/pull/1958) ([depfu](https://github.com/apps/depfu))
|
|
54
|
+
- Remove greetings action [#1956](https://github.com/AlchemyCMS/alchemy_cms/pull/1956) ([tvdeyen](https://github.com/tvdeyen))
|
|
55
|
+
- [ruby] Upgrade rubocop to version 1.0.0 [#1952](https://github.com/AlchemyCMS/alchemy_cms/pull/1952) ([depfu](https://github.com/apps/depfu))
|
|
56
|
+
- [ruby] Upgrade rubocop to version 0.93.1 [#1948](https://github.com/AlchemyCMS/alchemy_cms/pull/1948) ([depfu](https://github.com/apps/depfu))
|
|
57
|
+
- [ruby] Upgrade puma to version 5.0.2 [#1944](https://github.com/AlchemyCMS/alchemy_cms/pull/1944) ([depfu](https://github.com/apps/depfu))
|
|
58
|
+
- [ruby] Upgrade rubocop to version 0.92.0 [#1942](https://github.com/AlchemyCMS/alchemy_cms/pull/1942) ([depfu](https://github.com/apps/depfu))
|
|
59
|
+
- Use Node 12 on CI runs [#1925](https://github.com/AlchemyCMS/alchemy_cms/pull/1925) ([tvdeyen](https://github.com/tvdeyen))
|
|
60
|
+
- [ruby] Upgrade rubocop to version 0.89.0 [#1920](https://github.com/AlchemyCMS/alchemy_cms/pull/1920) ([depfu](https://github.com/apps/depfu))
|
|
61
|
+
- Move back to Travis CI [#1907](https://github.com/AlchemyCMS/alchemy_cms/pull/1907) ([tvdeyen](https://github.com/tvdeyen))
|
|
62
|
+
- [ruby] Upgrade rubocop to version 0.88.0 [#1892](https://github.com/AlchemyCMS/alchemy_cms/pull/1892) ([depfu](https://github.com/apps/depfu))
|
|
63
|
+
- [ruby] Upgrade rubocop to version 0.87.1 [#1889](https://github.com/AlchemyCMS/alchemy_cms/pull/1889) ([depfu](https://github.com/apps/depfu))
|
|
64
|
+
|
|
1
65
|
## 5.0.3 (2021-01-12)
|
|
2
66
|
|
|
3
67
|
- Fix copy element feature [#1996](https://github.com/AlchemyCMS/alchemy_cms/pull/1996) ([tvdeyen](https://github.com/tvdeyen))
|
|
@@ -8,7 +72,7 @@
|
|
|
8
72
|
|
|
9
73
|
## 5.0.1 (2020-09-29)
|
|
10
74
|
|
|
11
|
-
- Better image alt text support [#1940](https://github.com/AlchemyCMS/alchemy_cms/pull/1940) ([tvdeyen](https://github.com/tvdeyen))
|
|
75
|
+
- [a11y] Better image alt text support [#1940](https://github.com/AlchemyCMS/alchemy_cms/pull/1940) ([tvdeyen](https://github.com/tvdeyen))
|
|
12
76
|
|
|
13
77
|
## 5.0.0 (2020-07-17)
|
|
14
78
|
|
|
@@ -16,7 +80,7 @@
|
|
|
16
80
|
- Do not enable image cropper if file is missing [#1903](https://github.com/AlchemyCMS/alchemy_cms/pull/1903) ([tvdeyen](https://github.com/tvdeyen))
|
|
17
81
|
- Always show original image as zoomed image [#1902](https://github.com/AlchemyCMS/alchemy_cms/pull/1902) ([tvdeyen](https://github.com/tvdeyen))
|
|
18
82
|
- Rename Attachment#urlname into slug [#1848](https://github.com/AlchemyCMS/alchemy_cms/pull/1848) ([tvdeyen](https://github.com/tvdeyen))
|
|
19
|
-
- Deprecate toolbar helper ([tvdeyen](https://github.com/tvdeyen))
|
|
83
|
+
- Deprecate toolbar helper [#1900](https://github.com/AlchemyCMS/alchemy_cms/pull/1900) ([tvdeyen](https://github.com/tvdeyen))
|
|
20
84
|
- Deprecate redirect_to_public_child ([tvdeyen](https://github.com/tvdeyen))
|
|
21
85
|
- Add --auto-accept option to installer ([tvdeyen](https://github.com/tvdeyen))
|
|
22
86
|
- Move all installer code into install generator ([tvdeyen](https://github.com/tvdeyen))
|
data/CONTRIBUTING.md
CHANGED
|
@@ -39,11 +39,11 @@ refactoring and documentation changes require no new tests. If you are adding
|
|
|
39
39
|
functionality or fixing a bug, we need tests!
|
|
40
40
|
|
|
41
41
|
4. Push to your fork and submit a pull request. If the changes will apply cleanly
|
|
42
|
-
to the latest stable branches and
|
|
42
|
+
to the latest stable branches and main branch, you will only need to submit one
|
|
43
43
|
pull request.
|
|
44
44
|
|
|
45
45
|
5. If a PR does not apply cleanly to one of its targeted branches, then a separate
|
|
46
|
-
PR should be created that does. For instance, if a PR applied to
|
|
46
|
+
PR should be created that does. For instance, if a PR applied to main & 2.7-stable but not 2.8-stable, then there should be one PR for main & 2.7-stable and another, separate PR for 2.8-stable.
|
|
47
47
|
|
|
48
48
|
At this point you're waiting on us. We like to at least comment on, if not
|
|
49
49
|
accept pull requests. We may suggest some changes or improvements or alternatives.
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -18,7 +18,7 @@ Alchemy is an open source CMS engine written in Ruby on Rails.
|
|
|
18
18
|
|
|
19
19
|
Read more about Alchemy on the [website](https://alchemy-cms.com) and in the [guidelines](https://guides.alchemy-cms.com).
|
|
20
20
|
|
|
21
|
-
**CAUTION: This
|
|
21
|
+
**CAUTION: This main branch is a development branch that *can* contain bugs. For productive environments you should use the [current Ruby gem version](https://rubygems.org/gems/alchemy_cms), or the [latest stable branch (5.0-stable)](https://github.com/AlchemyCMS/alchemy_cms/tree/5.0-stable).**
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
## ✅ Features
|
data/alchemy_cms.gemspec
CHANGED
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |gem|
|
|
|
22
22
|
gem.add_runtime_dependency 'acts_as_list', ['>= 0.3', '< 2']
|
|
23
23
|
gem.add_runtime_dependency 'awesome_nested_set', ['~> 3.1']
|
|
24
24
|
gem.add_runtime_dependency 'cancancan', ['>= 2.1', '< 4.0']
|
|
25
|
-
gem.add_runtime_dependency 'coffee-rails', ['
|
|
25
|
+
gem.add_runtime_dependency 'coffee-rails', ['>= 4.0', '< 6.0']
|
|
26
26
|
gem.add_runtime_dependency 'dragonfly', ['~> 1.0', '>= 1.0.7']
|
|
27
27
|
gem.add_runtime_dependency 'dragonfly_svg', ['~> 0.0.4']
|
|
28
28
|
gem.add_runtime_dependency 'gutentag', ['~> 2.2', '>= 2.2.1']
|
|
@@ -37,7 +37,6 @@ Gem::Specification.new do |gem|
|
|
|
37
37
|
gem.add_runtime_dependency 'request_store', ['~> 1.2']
|
|
38
38
|
gem.add_runtime_dependency 'responders', ['>= 2.0', '< 4.0']
|
|
39
39
|
gem.add_runtime_dependency 'sassc-rails', ['~> 2.1']
|
|
40
|
-
gem.add_runtime_dependency 'select2-rails', ['>= 3.5.9.1', '< 4.0']
|
|
41
40
|
gem.add_runtime_dependency 'simple_form', ['>= 4.0', '< 6']
|
|
42
41
|
gem.add_runtime_dependency 'sprockets', ['>= 3.0', '< 5']
|
|
43
42
|
gem.add_runtime_dependency 'turbolinks', ['>= 2.5']
|
|
@@ -46,7 +45,7 @@ Gem::Specification.new do |gem|
|
|
|
46
45
|
gem.add_development_dependency 'capybara', ['~> 3.0']
|
|
47
46
|
gem.add_development_dependency 'capybara-screenshot', ['~> 1.0']
|
|
48
47
|
gem.add_development_dependency 'factory_bot_rails', ['~> 6.0']
|
|
49
|
-
gem.add_development_dependency 'puma', ['~>
|
|
48
|
+
gem.add_development_dependency 'puma', ['~> 5.0']
|
|
50
49
|
gem.add_development_dependency 'rails-controller-testing', ['~> 1.0']
|
|
51
50
|
gem.add_development_dependency 'rspec-activemodel-mocks', ['~> 1.0']
|
|
52
51
|
gem.add_development_dependency 'rspec-rails', ['>= 4.0.0.beta2']
|
|
@@ -54,6 +53,7 @@ Gem::Specification.new do |gem|
|
|
|
54
53
|
gem.add_development_dependency 'webdrivers', ['~> 4.0']
|
|
55
54
|
gem.add_development_dependency 'webmock', ['~> 3.3']
|
|
56
55
|
gem.add_development_dependency 'shoulda-matchers', ['~> 4.0']
|
|
56
|
+
gem.add_development_dependency 'timecop', ['~> 0.9']
|
|
57
57
|
|
|
58
58
|
gem.post_install_message = <<-MSG
|
|
59
59
|
-------------------------------------------------------------
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" width="16" height="16"><path fill="#f7f7f7" d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z" class=""></path></svg>
|
|
@@ -38,10 +38,7 @@ Alchemy.ElementEditors =
|
|
|
38
38
|
@onSaveElement(e, data)
|
|
39
39
|
# Listen to postMessage messages from the preview frame
|
|
40
40
|
window.addEventListener 'message', (e) =>
|
|
41
|
-
|
|
42
|
-
@onMessage(e.data)
|
|
43
|
-
else
|
|
44
|
-
console.warn 'Unsafe message origin!', e.origin
|
|
41
|
+
@onMessage(e.data)
|
|
45
42
|
true
|
|
46
43
|
return
|
|
47
44
|
|
|
@@ -22,9 +22,6 @@ Alchemy.initAlchemyPreviewMode = ->
|
|
|
22
22
|
|
|
23
23
|
init: ->
|
|
24
24
|
window.addEventListener "message", (event) =>
|
|
25
|
-
if event.origin != window.location.origin
|
|
26
|
-
console.warn 'Unsafe message origin!', event.origin
|
|
27
|
-
return
|
|
28
25
|
switch event.data.message
|
|
29
26
|
when "Alchemy.blurElements" then @blurElements()
|
|
30
27
|
when "Alchemy.focusElement" then @focusElement(event.data)
|
|
@@ -4,8 +4,10 @@ Alchemy.PreviewWindow =
|
|
|
4
4
|
MIN_WIDTH: 240
|
|
5
5
|
HEIGHT: 75 # Top menu height
|
|
6
6
|
|
|
7
|
-
init: (
|
|
8
|
-
|
|
7
|
+
init: (previewUrl) ->
|
|
8
|
+
@select = document.querySelector('#preview_url')
|
|
9
|
+
@previewUrl = @_getCurrentPreviewUrl() || previewUrl[1]
|
|
10
|
+
$iframe = $("<iframe name=\"alchemy_preview_window\" src=\"#{@previewUrl}\" id=\"alchemy_preview_window\" frameborder=\"0\"/>")
|
|
9
11
|
$reload = $('#reload_preview_button')
|
|
10
12
|
@_showSpinner()
|
|
11
13
|
$iframe.load =>
|
|
@@ -13,6 +15,10 @@ Alchemy.PreviewWindow =
|
|
|
13
15
|
$('body').append($iframe)
|
|
14
16
|
@currentWindow = $iframe
|
|
15
17
|
@_bindReloadButton()
|
|
18
|
+
if @select
|
|
19
|
+
@select.value = @previewUrl
|
|
20
|
+
@_bindSelect()
|
|
21
|
+
return
|
|
16
22
|
|
|
17
23
|
resize: (width) ->
|
|
18
24
|
width = @MIN_WIDTH if width < @MIN_WIDTH
|
|
@@ -29,12 +35,12 @@ Alchemy.PreviewWindow =
|
|
|
29
35
|
@_hideSpinner()
|
|
30
36
|
if callback
|
|
31
37
|
callback.call(e, $iframe)
|
|
32
|
-
$iframe.attr
|
|
38
|
+
$iframe.attr('src', @previewUrl)
|
|
33
39
|
true
|
|
34
40
|
|
|
35
41
|
postMessage: (data) ->
|
|
36
42
|
frameWindow = @currentWindow[0].contentWindow
|
|
37
|
-
frameWindow.postMessage(data,
|
|
43
|
+
frameWindow.postMessage(data, "*")
|
|
38
44
|
|
|
39
45
|
_showSpinner: ->
|
|
40
46
|
@reload = $('#reload_preview_button')
|
|
@@ -53,5 +59,24 @@ Alchemy.PreviewWindow =
|
|
|
53
59
|
e.preventDefault()
|
|
54
60
|
@refresh()
|
|
55
61
|
|
|
62
|
+
_getCurrentPreviewUrl: ->
|
|
63
|
+
if @select
|
|
64
|
+
option = Array.from(@select.options).find (o) =>
|
|
65
|
+
o.text == window.localStorage.getItem("alchemyPreview")
|
|
66
|
+
if option
|
|
67
|
+
option.value
|
|
68
|
+
else
|
|
69
|
+
null
|
|
70
|
+
else
|
|
71
|
+
null
|
|
72
|
+
|
|
73
|
+
_bindSelect: ->
|
|
74
|
+
$(@select).change (e) =>
|
|
75
|
+
@previewUrl = e.target.value
|
|
76
|
+
option = e.target.querySelector("option[value='#{@previewUrl}']")
|
|
77
|
+
window.localStorage.setItem("alchemyPreview", option.text)
|
|
78
|
+
@refresh()
|
|
79
|
+
return
|
|
80
|
+
|
|
56
81
|
Alchemy.reloadPreview = ->
|
|
57
82
|
Alchemy.PreviewWindow.refresh()
|
|
@@ -102,6 +102,9 @@ $error_border_color: #c49c9c !default;
|
|
|
102
102
|
$error_text_color: #a23434 !default;
|
|
103
103
|
$error_background_color: #efd3d3 !default;
|
|
104
104
|
|
|
105
|
+
$hint-background-color: $light_yellow !default;
|
|
106
|
+
$hint-text-color: $very-dark-gray !default;
|
|
107
|
+
|
|
105
108
|
$form-left-width: 35% !default;
|
|
106
109
|
$form-right-width: 65% !default;
|
|
107
110
|
|
|
@@ -140,9 +143,12 @@ $table-row-hover-color: rgba($light_yellow, 0.5) !default;
|
|
|
140
143
|
$elements-window-width: 22.5vw !default;
|
|
141
144
|
$elements-window-min-width: 400px !default;
|
|
142
145
|
$element-header-bg-color: $medium-gray !default;
|
|
146
|
+
$element-header-active-bg-color: $dark-blue !default;
|
|
147
|
+
$element-header-active-color: $white !default;
|
|
143
148
|
$top-menu-height: 75px !default;
|
|
144
149
|
|
|
145
150
|
$tabs-height: 31px !default;
|
|
151
|
+
$pagination-height: 52px !default;
|
|
146
152
|
|
|
147
153
|
$datepicker_current_bg: $blue !default;
|
|
148
154
|
$datepicker_current_color: $white !default;
|
|
@@ -158,6 +164,8 @@ $datepicker_day_color: $text-color !default;
|
|
|
158
164
|
|
|
159
165
|
$select-hover-bg-color: $dark-blue !default;
|
|
160
166
|
$select-hover-text-color: $white !default;
|
|
167
|
+
$medium-select-box-width: 90px;
|
|
168
|
+
$large-select-box-width: 120px;
|
|
161
169
|
|
|
162
170
|
$thumbnail-background-color: opacify($default-border-color, 1) !default;
|
|
163
171
|
$medium-screen-break-point: 700px;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
.resources-header {
|
|
2
|
-
padding: 2
|
|
2
|
+
padding: 2 * $default-padding;
|
|
3
3
|
}
|
|
4
4
|
|
|
5
5
|
.resources-table-wrapper {
|
|
@@ -16,12 +16,11 @@ div#image_assign_filter_and_image_sizing {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
#picture_archive {
|
|
19
|
-
|
|
20
19
|
.selected_item_tools {
|
|
21
|
-
margin: -2
|
|
20
|
+
margin: -2 * $default-padding;
|
|
22
21
|
border-bottom: 1px solid $default-border-color;
|
|
23
|
-
margin-bottom: 4
|
|
24
|
-
padding: 4
|
|
22
|
+
margin-bottom: 4 * $default-padding;
|
|
23
|
+
padding: 4 * $default-padding;
|
|
25
24
|
display: none;
|
|
26
25
|
}
|
|
27
26
|
}
|
|
@@ -37,7 +36,7 @@ div#image_assign_filter_and_image_sizing {
|
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
.picture_thumbnail {
|
|
40
|
-
margin: 2
|
|
39
|
+
margin: 2 * $default-margin;
|
|
41
40
|
background-color: #fff;
|
|
42
41
|
position: relative;
|
|
43
42
|
box-shadow: 0 0 0 1px $default-border-color;
|
|
@@ -80,8 +79,8 @@ div#image_assign_filter_and_image_sizing {
|
|
|
80
79
|
}
|
|
81
80
|
|
|
82
81
|
&:hover {
|
|
83
|
-
|
|
84
|
-
.
|
|
82
|
+
.picture_tool,
|
|
83
|
+
.picture_tags {
|
|
85
84
|
visibility: visible;
|
|
86
85
|
opacity: 1;
|
|
87
86
|
}
|
|
@@ -95,7 +94,6 @@ div#image_assign_filter_and_image_sizing {
|
|
|
95
94
|
}
|
|
96
95
|
|
|
97
96
|
#pictures {
|
|
98
|
-
|
|
99
97
|
.thumbnail_background {
|
|
100
98
|
@include zoom-in;
|
|
101
99
|
}
|
|
@@ -165,25 +163,34 @@ div.assign_image_list_image {
|
|
|
165
163
|
pointer-events: none;
|
|
166
164
|
}
|
|
167
165
|
|
|
168
|
-
.picture_tags,
|
|
166
|
+
.picture_tags,
|
|
167
|
+
.picture_tool {
|
|
169
168
|
visibility: hidden;
|
|
170
169
|
opacity: 0;
|
|
171
170
|
transition: opacity $transition-duration;
|
|
172
171
|
}
|
|
173
172
|
|
|
174
173
|
div#library_sidebar {
|
|
174
|
+
display: flex;
|
|
175
|
+
flex-direction: column;
|
|
175
176
|
position: fixed;
|
|
176
177
|
border-left: 1px solid $default-border-color;
|
|
177
178
|
top: 0;
|
|
178
179
|
right: 0;
|
|
179
180
|
width: 232px;
|
|
180
|
-
|
|
181
|
+
|
|
182
|
+
padding: $top-menu-height + 2 * $default-padding 4 * $default-padding
|
|
183
|
+
$pagination-height + 2 * $default-padding 4 * $default-padding;
|
|
181
184
|
height: 100%;
|
|
182
185
|
z-index: 3;
|
|
183
186
|
background-color: $light-gray;
|
|
184
187
|
|
|
185
188
|
h2 {
|
|
186
|
-
margin-top: 4
|
|
189
|
+
margin-top: 4 * $default-margin;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
h3 {
|
|
193
|
+
margin: 2em 0 1em;
|
|
187
194
|
}
|
|
188
195
|
}
|
|
189
196
|
|
|
@@ -192,20 +199,19 @@ div#library_sidebar {
|
|
|
192
199
|
}
|
|
193
200
|
|
|
194
201
|
div#filter_bar {
|
|
195
|
-
|
|
196
202
|
.selectboxit {
|
|
197
203
|
width: 194px;
|
|
198
204
|
}
|
|
199
205
|
}
|
|
200
206
|
|
|
201
207
|
.alchemy-dialog-body {
|
|
202
|
-
|
|
203
208
|
#library_sidebar {
|
|
204
|
-
padding: 0 4
|
|
209
|
+
padding: 0 4 * $default-padding;
|
|
205
210
|
}
|
|
206
211
|
}
|
|
207
212
|
|
|
208
|
-
#assign_image_list,
|
|
213
|
+
#assign_image_list,
|
|
214
|
+
#assign_file_list {
|
|
209
215
|
position: relative;
|
|
210
216
|
height: 548px;
|
|
211
217
|
}
|
|
@@ -234,7 +240,7 @@ div#filter_bar {
|
|
|
234
240
|
display: block;
|
|
235
241
|
line-height: 25px;
|
|
236
242
|
text-decoration: none;
|
|
237
|
-
padding: $default-padding 2
|
|
243
|
+
padding: $default-padding 2 * $default-padding;
|
|
238
244
|
}
|
|
239
245
|
|
|
240
246
|
.icon {
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
button,
|
|
1
|
+
button,
|
|
2
|
+
input[type="submit"],
|
|
3
|
+
a.button,
|
|
4
|
+
input.button {
|
|
2
5
|
@include button-defaults;
|
|
3
6
|
position: relative;
|
|
4
7
|
|
|
@@ -14,7 +17,8 @@ button, input[type="submit"], a.button, input.button {
|
|
|
14
17
|
);
|
|
15
18
|
}
|
|
16
19
|
|
|
17
|
-
&:active,
|
|
20
|
+
&:active,
|
|
21
|
+
&:active:focus {
|
|
18
22
|
border-color: $button-hover-border-color;
|
|
19
23
|
box-shadow: none;
|
|
20
24
|
}
|
|
@@ -23,7 +27,7 @@ button, input[type="submit"], a.button, input.button {
|
|
|
23
27
|
&.small {
|
|
24
28
|
padding: $small-button-padding;
|
|
25
29
|
vertical-align: inherit;
|
|
26
|
-
line-height: 4
|
|
30
|
+
line-height: 4 * $default-padding;
|
|
27
31
|
font-size: inherit;
|
|
28
32
|
}
|
|
29
33
|
|
|
@@ -83,13 +87,14 @@ button, input[type="submit"], a.button, input.button {
|
|
|
83
87
|
border: $default-border-width $default-border-style $icon-color;
|
|
84
88
|
color: $icon-color;
|
|
85
89
|
|
|
86
|
-
.icon {
|
|
90
|
+
.icon {
|
|
91
|
+
color: inherit;
|
|
92
|
+
}
|
|
87
93
|
}
|
|
88
94
|
}
|
|
89
95
|
|
|
90
96
|
&.disabled,
|
|
91
97
|
&[disabled] {
|
|
92
|
-
|
|
93
98
|
span {
|
|
94
99
|
opacity: 0.3;
|
|
95
100
|
cursor: not-allowed;
|
|
@@ -118,7 +123,8 @@ button.icon_button {
|
|
|
118
123
|
border: 0 none;
|
|
119
124
|
box-shadow: none;
|
|
120
125
|
|
|
121
|
-
&:disabled,
|
|
126
|
+
&:disabled,
|
|
127
|
+
&.disabled {
|
|
122
128
|
background: transparent;
|
|
123
129
|
}
|
|
124
130
|
}
|
|
@@ -131,10 +137,15 @@ button.icon_button {
|
|
|
131
137
|
position: relative;
|
|
132
138
|
display: inline-block;
|
|
133
139
|
text-align: center;
|
|
134
|
-
margin: 0 2*$default-margin;
|
|
135
140
|
|
|
136
|
-
|
|
137
|
-
|
|
141
|
+
.toolbar_buttons & {
|
|
142
|
+
margin: 0 2 * $default-margin;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
&.active,
|
|
146
|
+
&:active,
|
|
147
|
+
&:hover {
|
|
148
|
+
.icon_button:not([disabled]) {
|
|
138
149
|
background-color: $default-border-color;
|
|
139
150
|
cursor: pointer;
|
|
140
151
|
}
|
|
@@ -161,8 +172,8 @@ button.icon_button {
|
|
|
161
172
|
}
|
|
162
173
|
}
|
|
163
174
|
|
|
164
|
-
.button_with_label,
|
|
165
|
-
|
|
175
|
+
.button_with_label,
|
|
176
|
+
.button_group {
|
|
166
177
|
.icon_button {
|
|
167
178
|
width: 29px;
|
|
168
179
|
height: 29px;
|
|
@@ -179,16 +190,16 @@ button.icon_button {
|
|
|
179
190
|
z-index: 30;
|
|
180
191
|
background-color: $tooltip-background-color;
|
|
181
192
|
color: $white;
|
|
182
|
-
padding: $default-padding 2
|
|
193
|
+
padding: $default-padding 2 * $default-padding 1.5 * $default-padding;
|
|
183
194
|
line-height: 1;
|
|
184
195
|
box-shadow: 0 0 4px $default-border-color;
|
|
185
196
|
white-space: nowrap;
|
|
186
197
|
pointer-events: none;
|
|
187
198
|
opacity: 0;
|
|
188
|
-
transition: .3s;
|
|
199
|
+
transition: 0.3s;
|
|
189
200
|
|
|
190
201
|
&:before {
|
|
191
|
-
content:
|
|
202
|
+
content: "";
|
|
192
203
|
position: absolute;
|
|
193
204
|
bottom: -10px;
|
|
194
205
|
left: 8px;
|
|
@@ -238,6 +249,6 @@ button.icon_button {
|
|
|
238
249
|
visibility: visible;
|
|
239
250
|
opacity: 1;
|
|
240
251
|
top: -25px;
|
|
241
|
-
transition-delay: .2s;
|
|
252
|
+
transition-delay: 0.2s;
|
|
242
253
|
}
|
|
243
254
|
}
|