maglevcms 1.1.7 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/app/components/maglev/content/image.rb +2 -0
  3. data/app/controllers/maglev/sitemap_controller.rb +31 -0
  4. data/app/frontend/editor/assets/remixicons/ri-palette-line.svg +1 -0
  5. data/app/frontend/editor/components/dynamic-form/dynamic-input.vue +1 -1
  6. data/app/frontend/editor/components/header-nav/publish-button.vue +1 -1
  7. data/app/frontend/editor/components/kit/collection-item-input.vue +1 -1
  8. data/app/frontend/editor/components/kit/color-input/core-input.vue +85 -0
  9. data/app/frontend/editor/components/kit/color-input/preset-button.vue +57 -0
  10. data/app/frontend/editor/components/kit/color-input/preset-dropdown.vue +46 -0
  11. data/app/frontend/editor/components/kit/color-input.vue +43 -0
  12. data/app/frontend/editor/components/kit/dropdown.vue +1 -0
  13. data/app/frontend/editor/components/kit/index.js +2 -2
  14. data/app/frontend/editor/components/kit/submit-button.vue +3 -3
  15. data/app/frontend/editor/components/kit/tabs.vue +2 -1
  16. data/app/frontend/editor/components/kit/text-input.vue +2 -2
  17. data/app/frontend/editor/misc/utils.js +15 -2
  18. data/app/frontend/editor/services/api.js +2 -2
  19. data/app/frontend/editor/spec/__mocks__/page.js +36 -36
  20. data/app/frontend/editor/spec/__mocks__/section.js +29 -29
  21. data/app/helpers/maglev/editor_helper.rb +1 -1
  22. data/app/helpers/maglev/page_preview_helper.rb +5 -1
  23. data/app/helpers/maglev/sitemap_helper.rb +13 -0
  24. data/app/models/concerns/maglev/sections_concern.rb +10 -0
  25. data/app/models/maglev/page/path_concern.rb +8 -1
  26. data/app/models/maglev/site/locales_concern.rb +8 -0
  27. data/app/services/concerns/maglev/get_page_sections/transform_collection_item_concern.rb +7 -0
  28. data/app/services/maglev/app_container.rb +2 -0
  29. data/app/services/maglev/persist_page.rb +23 -4
  30. data/app/services/maglev/setup_pages.rb +41 -5
  31. data/app/views/maglev/api/pages/_show.json.jbuilder +1 -2
  32. data/app/views/maglev/sitemap/index.xml.builder +21 -0
  33. data/config/routes.rb +1 -0
  34. data/lib/generators/maglev/install_generator.rb +3 -2
  35. data/lib/generators/maglev/section_generator.rb +1 -1
  36. data/lib/generators/maglev/templates/section/app/theme/sections/%category%/%file_name%.yml.tt +9 -9
  37. data/lib/maglev/engine.rb +8 -2
  38. data/lib/maglev/version.rb +1 -1
  39. data/package.json +3 -3
  40. data/yarn.lock +799 -565
  41. metadata +14 -7
  42. data/app/frontend/editor/components/kit/color-picker.vue +0 -81
  43. /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.7
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-12-11 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>