maglevcms 1.1.6 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/components/maglev/content/image.rb +2 -0
- data/app/controllers/concerns/maglev/fetchers_concern.rb +1 -0
- data/app/controllers/concerns/maglev/standalone_sections_concern.rb +6 -0
- data/app/controllers/maglev/sitemap_controller.rb +31 -0
- data/app/frontend/editor/assets/remixicons/ri-palette-line.svg +1 -0
- data/app/frontend/editor/components/dynamic-form/dynamic-input.vue +2 -1
- data/app/frontend/editor/components/header-nav/publish-button.vue +1 -1
- data/app/frontend/editor/components/kit/collection-item-input.vue +5 -2
- data/app/frontend/editor/components/kit/color-input/core-input.vue +85 -0
- data/app/frontend/editor/components/kit/color-input/preset-button.vue +57 -0
- data/app/frontend/editor/components/kit/color-input/preset-dropdown.vue +46 -0
- data/app/frontend/editor/components/kit/color-input.vue +43 -0
- data/app/frontend/editor/components/kit/dropdown.vue +1 -0
- data/app/frontend/editor/components/kit/index.js +2 -2
- data/app/frontend/editor/components/kit/submit-button.vue +3 -3
- data/app/frontend/editor/components/kit/tabs.vue +2 -1
- data/app/frontend/editor/components/kit/text-input.vue +2 -2
- data/app/frontend/editor/misc/utils.js +32 -2
- data/app/frontend/editor/services/api.js +2 -2
- data/app/frontend/editor/spec/__mocks__/page.js +36 -36
- data/app/frontend/editor/spec/__mocks__/section.js +29 -29
- data/app/helpers/maglev/editor_helper.rb +1 -1
- data/app/helpers/maglev/page_preview_helper.rb +5 -1
- data/app/helpers/maglev/sitemap_helper.rb +13 -0
- data/app/models/concerns/maglev/sections_concern.rb +10 -0
- data/app/models/maglev/page/path_concern.rb +8 -1
- data/app/models/maglev/section/setting.rb +5 -0
- data/app/models/maglev/site/locales_concern.rb +8 -0
- data/app/services/concerns/maglev/get_page_sections/transform_collection_item_concern.rb +8 -1
- data/app/services/maglev/app_container.rb +2 -0
- data/app/services/maglev/fetch_collection_items.rb +6 -2
- data/app/services/maglev/persist_page.rb +23 -4
- data/app/services/maglev/setup_pages.rb +41 -5
- data/app/views/maglev/api/pages/_show.json.jbuilder +1 -2
- data/app/views/maglev/sitemap/index.xml.builder +21 -0
- data/config/routes.rb +1 -0
- data/db/migrate/20210830085101_create_maglev_page_paths.rb +1 -1
- data/db/migrate/20210906102712_add_canonical_to_pages.rb +1 -1
- data/db/migrate/20211008064437_add_locales_to_sites.rb +1 -1
- data/db/migrate/20211013210954_translate_section_content.rb +1 -1
- data/db/migrate/20211101205001_add_lock_version_to_maglev_pages.rb +1 -1
- data/db/migrate/20211116161121_better_page_path_canonical_indices.rb +1 -1
- data/db/migrate/20211124101005_fix_page_path_indices.rb +1 -1
- data/db/migrate/20211203224112_add_open_graph_tags_to_pages.rb +1 -1
- data/db/migrate/20220612092235_add_style_to_sites.rb +1 -1
- data/lib/generators/maglev/install_generator.rb +3 -2
- data/lib/generators/maglev/section_generator.rb +2 -1
- data/lib/generators/maglev/templates/section/app/theme/sections/%category%/%file_name%.yml.tt +13 -9
- data/lib/maglev/engine.rb +8 -2
- data/lib/maglev/version.rb +1 -1
- data/package.json +3 -3
- data/yarn.lock +799 -565
- metadata +14 -7
- data/app/frontend/editor/components/kit/color-picker.vue +0 -81
- /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.
|
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:
|
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-
|
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>
|
File without changes
|