maglevcms 1.1.6 → 1.2.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/app/components/maglev/content/image.rb +2 -0
  3. data/app/controllers/concerns/maglev/fetchers_concern.rb +1 -0
  4. data/app/controllers/concerns/maglev/standalone_sections_concern.rb +6 -0
  5. data/app/controllers/maglev/sitemap_controller.rb +31 -0
  6. data/app/frontend/editor/assets/remixicons/ri-palette-line.svg +1 -0
  7. data/app/frontend/editor/components/dynamic-form/dynamic-input.vue +2 -1
  8. data/app/frontend/editor/components/header-nav/publish-button.vue +1 -1
  9. data/app/frontend/editor/components/kit/collection-item-input.vue +5 -2
  10. data/app/frontend/editor/components/kit/color-input/core-input.vue +85 -0
  11. data/app/frontend/editor/components/kit/color-input/preset-button.vue +57 -0
  12. data/app/frontend/editor/components/kit/color-input/preset-dropdown.vue +46 -0
  13. data/app/frontend/editor/components/kit/color-input.vue +43 -0
  14. data/app/frontend/editor/components/kit/dropdown.vue +1 -0
  15. data/app/frontend/editor/components/kit/index.js +2 -2
  16. data/app/frontend/editor/components/kit/submit-button.vue +3 -3
  17. data/app/frontend/editor/components/kit/tabs.vue +2 -1
  18. data/app/frontend/editor/components/kit/text-input.vue +2 -2
  19. data/app/frontend/editor/misc/utils.js +32 -2
  20. data/app/frontend/editor/services/api.js +2 -2
  21. data/app/frontend/editor/spec/__mocks__/page.js +36 -36
  22. data/app/frontend/editor/spec/__mocks__/section.js +29 -29
  23. data/app/helpers/maglev/editor_helper.rb +1 -1
  24. data/app/helpers/maglev/page_preview_helper.rb +5 -1
  25. data/app/helpers/maglev/sitemap_helper.rb +13 -0
  26. data/app/models/concerns/maglev/sections_concern.rb +10 -0
  27. data/app/models/maglev/page/path_concern.rb +8 -1
  28. data/app/models/maglev/section/setting.rb +5 -0
  29. data/app/models/maglev/site/locales_concern.rb +8 -0
  30. data/app/services/concerns/maglev/get_page_sections/transform_collection_item_concern.rb +8 -1
  31. data/app/services/maglev/app_container.rb +2 -0
  32. data/app/services/maglev/fetch_collection_items.rb +6 -2
  33. data/app/services/maglev/persist_page.rb +23 -4
  34. data/app/services/maglev/setup_pages.rb +41 -5
  35. data/app/views/maglev/api/pages/_show.json.jbuilder +1 -2
  36. data/app/views/maglev/sitemap/index.xml.builder +21 -0
  37. data/config/routes.rb +1 -0
  38. data/db/migrate/20210830085101_create_maglev_page_paths.rb +1 -1
  39. data/db/migrate/20210906102712_add_canonical_to_pages.rb +1 -1
  40. data/db/migrate/20211008064437_add_locales_to_sites.rb +1 -1
  41. data/db/migrate/20211013210954_translate_section_content.rb +1 -1
  42. data/db/migrate/20211101205001_add_lock_version_to_maglev_pages.rb +1 -1
  43. data/db/migrate/20211116161121_better_page_path_canonical_indices.rb +1 -1
  44. data/db/migrate/20211124101005_fix_page_path_indices.rb +1 -1
  45. data/db/migrate/20211203224112_add_open_graph_tags_to_pages.rb +1 -1
  46. data/db/migrate/20220612092235_add_style_to_sites.rb +1 -1
  47. data/lib/generators/maglev/install_generator.rb +3 -2
  48. data/lib/generators/maglev/section_generator.rb +2 -1
  49. data/lib/generators/maglev/templates/section/app/theme/sections/%category%/%file_name%.yml.tt +13 -9
  50. data/lib/maglev/engine.rb +8 -2
  51. data/lib/maglev/version.rb +1 -1
  52. data/package.json +3 -3
  53. data/yarn.lock +799 -565
  54. metadata +14 -7
  55. data/app/frontend/editor/components/kit/color-picker.vue +0 -81
  56. /data/app/frontend/editor/assets/remixicons/{check-line.svg → ri-check-line.svg} +0 -0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maglevcms
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.6
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Didier Lafforgue
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-28 00:00:00.000000000 Z
11
+ date: 2023-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jbuilder
@@ -161,6 +161,7 @@ files:
161
161
  - app/controllers/maglev/assets_controller.rb
162
162
  - app/controllers/maglev/editor_controller.rb
163
163
  - app/controllers/maglev/page_preview_controller.rb
164
+ - app/controllers/maglev/sitemap_controller.rb
164
165
  - app/frontend/admin/controllers/dropdown_controller.js
165
166
  - app/frontend/admin/controllers/iframe_controller.js
166
167
  - app/frontend/admin/controllers/screenshot_controller.js
@@ -173,7 +174,6 @@ files:
173
174
  - app/frontend/editor/assets/remixicons/arrow-drop-right.svg
174
175
  - app/frontend/editor/assets/remixicons/arrow-up-s-line.svg
175
176
  - app/frontend/editor/assets/remixicons/camera-line.svg
176
- - app/frontend/editor/assets/remixicons/check-line.svg
177
177
  - app/frontend/editor/assets/remixicons/close-line.svg
178
178
  - app/frontend/editor/assets/remixicons/computer-line.svg
179
179
  - app/frontend/editor/assets/remixicons/delete-bin-line.svg
@@ -199,6 +199,7 @@ files:
199
199
  - app/frontend/editor/assets/remixicons/ri-alert-line.svg
200
200
  - app/frontend/editor/assets/remixicons/ri-book-line.svg
201
201
  - app/frontend/editor/assets/remixicons/ri-bug-line.svg
202
+ - app/frontend/editor/assets/remixicons/ri-check-line.svg
202
203
  - app/frontend/editor/assets/remixicons/ri-close-circle-line.svg
203
204
  - app/frontend/editor/assets/remixicons/ri-close-line.svg
204
205
  - app/frontend/editor/assets/remixicons/ri-delete-column.svg
@@ -217,6 +218,7 @@ files:
217
218
  - app/frontend/editor/assets/remixicons/ri-loader-4-line.svg
218
219
  - app/frontend/editor/assets/remixicons/ri-mail-line.svg
219
220
  - app/frontend/editor/assets/remixicons/ri-more-2-fill.svg
221
+ - app/frontend/editor/assets/remixicons/ri-palette-line.svg
220
222
  - app/frontend/editor/assets/remixicons/ri-pencil-line.svg
221
223
  - app/frontend/editor/assets/remixicons/ri-play-list-add-line.svg
222
224
  - app/frontend/editor/assets/remixicons/ri-settings-5-line.svg
@@ -544,7 +546,10 @@ files:
544
546
  - app/frontend/editor/components/kit/accordion.vue
545
547
  - app/frontend/editor/components/kit/checkbox-input.vue
546
548
  - app/frontend/editor/components/kit/collection-item-input.vue
547
- - app/frontend/editor/components/kit/color-picker.vue
549
+ - app/frontend/editor/components/kit/color-input.vue
550
+ - app/frontend/editor/components/kit/color-input/core-input.vue
551
+ - app/frontend/editor/components/kit/color-input/preset-button.vue
552
+ - app/frontend/editor/components/kit/color-input/preset-dropdown.vue
548
553
  - app/frontend/editor/components/kit/confirmation-button.vue
549
554
  - app/frontend/editor/components/kit/dropdown.vue
550
555
  - app/frontend/editor/components/kit/icon-input.vue
@@ -699,6 +704,7 @@ files:
699
704
  - app/helpers/maglev/application_helper.rb
700
705
  - app/helpers/maglev/editor_helper.rb
701
706
  - app/helpers/maglev/page_preview_helper.rb
707
+ - app/helpers/maglev/sitemap_helper.rb
702
708
  - app/jobs/maglev/application_job.rb
703
709
  - app/mailers/maglev/application_mailer.rb
704
710
  - app/models/concerns/maglev/sections_concern.rb
@@ -771,6 +777,7 @@ files:
771
777
  - app/views/maglev/editor/_header.html.erb
772
778
  - app/views/maglev/editor/show.html.erb
773
779
  - app/views/maglev/settings/index.html.erb
780
+ - app/views/maglev/sitemap/index.xml.builder
774
781
  - bin/vite
775
782
  - config/initializers/filter_parameters_logging.rb
776
783
  - config/initializers/kaminari.rb
@@ -823,7 +830,7 @@ homepage: https://www.maglev.dev/
823
830
  licenses:
824
831
  - MIT
825
832
  metadata: {}
826
- post_install_message:
833
+ post_install_message:
827
834
  rdoc_options: []
828
835
  require_paths:
829
836
  - lib
@@ -839,7 +846,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
839
846
  version: '0'
840
847
  requirements: []
841
848
  rubygems_version: 3.2.32
842
- signing_key:
849
+ signing_key:
843
850
  specification_version: 4
844
851
  summary: Page builder Ruby on Rails
845
852
  test_files: []
@@ -1,81 +0,0 @@
1
- <template>
2
- <div>
3
- <label class="block font-semibold text-gray-800" :for="name">
4
- {{ label }}
5
- </label>
6
- <div class="flex flex-wrap gap-0.5 mt-2">
7
- <div v-for="preset in presets" :key="preset">
8
- <input
9
- type="radio"
10
- name="selectedColor"
11
- :id="`${name}-${preset}`"
12
- :value="preset"
13
- class="hidden"
14
- v-model="selectedColor"
15
- />
16
- <label
17
- :for="`${name}-${preset}`"
18
- :title="preset"
19
- class="inline-block w-10 h-10 cursor-pointer p-0.5 border-4 rounded-sm"
20
- :style="{
21
- 'border-color':
22
- preset === selectedColor ? selectedBorderColor : 'transparent',
23
- }"
24
- >
25
- <span
26
- class="block w-full h-full rounded-sm transition transform duration-200 ease-in-out hover:scale-110 select-none"
27
- :class="{ 'border border-gray-300': isWhite(preset) }"
28
- :style="{ 'background-color': realHexColor(preset) }"
29
- >
30
- </span>
31
- </label>
32
- </div>
33
- </div>
34
- </div>
35
- </template>
36
-
37
- <script>
38
- import { hexToRgb } from '@/misc/utils'
39
-
40
- export default {
41
- name: 'ColorPicker',
42
- props: {
43
- label: { type: String, default: 'Label' },
44
- name: { type: String, default: 'color' },
45
- presets: {
46
- type: Array,
47
- default: () => [],
48
- },
49
- value: { type: String },
50
- },
51
- computed: {
52
- selectedColor: {
53
- get() {
54
- return this.value
55
- },
56
- set(color) {
57
- this.$emit('input', color)
58
- },
59
- },
60
- selectedBorderColor() {
61
- let color = hexToRgb(this.realHexColor(this.selectedColor))
62
- if (this.isWhite()) color = { r: 0, g: 0, b: 0 }
63
- return `rgba(${color.r}, ${color.g}, ${color.b}, 0.40)`
64
- },
65
- },
66
- methods: {
67
- realHexColor(hexColorOrStyle) {
68
- return hexColorOrStyle.startsWith('--')
69
- ? getComputedStyle(document.body).getPropertyValue(hexColorOrStyle)
70
- : hexColorOrStyle
71
- },
72
- isWhite(hexColorOrStyle) {
73
- const value = hexToRgb(
74
- this.realHexColor(hexColorOrStyle || this.selectedColor),
75
- )
76
- if (!value) return true
77
- return value.r === 255 && value.g === 255 && value.b === 255
78
- },
79
- },
80
- }
81
- </script>