maglevcms 1.8.0 → 2.0.0.beta1
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/.yarn/install-state.gz +0 -0
- data/README.md +4 -4
- data/Rakefile +2 -1
- data/app/components/maglev/block_component.rb +1 -1
- data/app/components/maglev/content/base.rb +1 -1
- data/app/components/maglev/content/link.rb +4 -0
- data/app/components/maglev/section_component.rb +2 -2
- data/app/controllers/concerns/maglev/fetchers_concern.rb +3 -1
- data/app/controllers/concerns/maglev/resource_id_concern.rb +10 -0
- data/app/controllers/concerns/maglev/standalone_sections_concern.rb +6 -0
- data/app/controllers/concerns/maglev/{ui_locale_concern.rb → user_interface_locale_concern.rb} +1 -1
- data/app/controllers/maglev/api/collection_items_controller.rb +7 -0
- data/app/controllers/maglev/api/page_clones_controller.rb +1 -2
- data/app/controllers/maglev/api_controller.rb +1 -1
- data/app/controllers/maglev/application_controller.rb +1 -5
- data/app/controllers/maglev/assets/active_storage_proxy_controller.rb +17 -0
- data/app/controllers/maglev/assets/proxy_controller.rb +21 -0
- data/app/controllers/maglev/editor_controller.rb +1 -1
- data/app/controllers/maglev/page_preview_controller.rb +3 -3
- data/app/frontend/admin/controllers/screenshot_controller.js +29 -1
- data/app/frontend/editor/assets/remixicons/clipboard-line.svg +1 -0
- data/app/frontend/editor/assets/remixicons/ri-draggable.svg +1 -0
- data/app/frontend/editor/assets/remixicons/ri-folders-line.svg +1 -0
- data/app/frontend/editor/assets/remixicons/ri-more-fill.svg +1 -0
- data/app/frontend/editor/assets/remixicons/ri-shadow-line.svg +1 -0
- data/app/frontend/editor/components/errors/forbidden.vue +24 -0
- data/app/frontend/editor/components/errors/stale-record.vue +2 -2
- data/app/frontend/editor/components/header-nav/device-toggler.vue +6 -3
- data/app/frontend/editor/components/header-nav/index.vue +13 -42
- data/app/frontend/editor/components/header-nav/locale-toggler/index.vue +1 -1
- data/app/frontend/editor/components/header-nav/page-info.vue +41 -0
- data/app/frontend/editor/components/header-nav/preview-button.vue +6 -1
- data/app/frontend/editor/components/header-nav/separator.vue +1 -1
- data/app/frontend/editor/components/image-library/index.vue +26 -29
- data/app/frontend/editor/components/kit/collection-item-input.vue +9 -0
- data/app/frontend/editor/components/kit/copy-paste-button.vue +26 -0
- data/app/frontend/editor/components/kit/dropdown.vue +5 -0
- data/app/frontend/editor/components/kit/icon-button.vue +24 -0
- data/app/frontend/editor/components/kit/icon.vue +2 -3
- data/app/frontend/editor/components/kit/index.js +4 -2
- data/app/frontend/editor/components/kit/link-input.vue +1 -1
- data/app/frontend/editor/components/kit/modal.vue +1 -1
- data/app/frontend/editor/components/kit/page-icon.vue +1 -1
- data/app/frontend/editor/components/kit/rich-text-input/link-buttons.vue +1 -1
- data/app/frontend/editor/components/kit/select-input.vue +4 -2
- data/app/frontend/editor/components/link-picker/actions.vue +1 -1
- data/app/frontend/editor/components/link-picker/index.vue +1 -1
- data/app/frontend/editor/components/link-picker/page.vue +2 -0
- data/app/frontend/editor/components/page/form/main.vue +1 -1
- data/app/frontend/editor/components/page/list/actions-button.vue +159 -0
- data/app/frontend/editor/components/page/list/index.vue +15 -24
- data/app/frontend/editor/components/page/list/list-item.vue +10 -61
- data/app/frontend/editor/components/section-highlighter/index.vue +47 -46
- data/app/frontend/editor/components/section-list/add-button.vue +39 -0
- data/app/frontend/editor/components/section-list/index.vue +30 -15
- data/app/frontend/editor/components/section-list/list-item.vue +23 -8
- data/app/frontend/editor/components/section-pane/block-list/index.vue +1 -0
- data/app/frontend/editor/components/section-pane/block-list/list-item.vue +9 -6
- data/app/frontend/editor/components/section-pane/block-tree/new-nested-block-button.vue +2 -2
- data/app/frontend/editor/components/section-pane/block-tree/tree-node.vue +2 -2
- data/app/frontend/editor/components/sidebar-nav/index.vue +102 -0
- data/app/frontend/editor/components/sidebar-nav/link.vue +60 -0
- data/app/frontend/editor/components/theme-section-list/category.vue +47 -0
- data/app/frontend/editor/components/theme-section-list/index.vue +7 -31
- data/app/frontend/editor/components/theme-section-list/list-item.vue +10 -3
- data/app/frontend/editor/design/components/modal.scss +1 -1
- data/app/frontend/editor/design/components/tooltip.scss +6 -0
- data/app/frontend/editor/design/transitions.scss +1 -1
- data/app/frontend/editor/layouts/app.vue +1 -1
- data/app/frontend/editor/layouts/default.vue +2 -2
- data/app/frontend/editor/layouts/slide-pane.vue +1 -1
- data/app/frontend/editor/locales/editor.ar.json +265 -0
- data/app/frontend/editor/locales/editor.en.json +23 -15
- data/app/frontend/editor/locales/editor.es.json +18 -10
- data/app/frontend/editor/locales/editor.fr.json +28 -13
- data/app/frontend/editor/locales/editor.pt-BR.json +18 -10
- data/app/frontend/editor/locales/index.js +3 -0
- data/app/frontend/editor/mixins/error-modal.js +7 -2
- data/app/frontend/editor/mixins/preview-transformation.js +0 -1
- data/app/frontend/editor/plugins/i18n.js +2 -17
- data/app/frontend/editor/services/__tests__/section.spec.js +6 -0
- data/app/frontend/editor/services/collection-item.js +8 -0
- data/app/frontend/editor/services/page.js +1 -1
- data/app/frontend/editor/services/section.js +30 -0
- data/app/frontend/editor/services/site.js +4 -4
- data/app/frontend/editor/services/theme.js +1 -0
- data/app/frontend/editor/spec/__mocks__/page.js +3 -1
- data/app/frontend/editor/spec/__mocks__/services.js +1 -0
- data/app/frontend/editor/store/__tests__/getters.spec.js +56 -1
- data/app/frontend/editor/store/actions/index.js +1 -0
- data/app/frontend/editor/store/actions/site.js +8 -4
- data/app/frontend/editor/store/getters.js +11 -0
- data/app/frontend/editor/views/page-preview.vue +2 -1
- data/app/frontend/images/favicon.svg +11 -0
- data/app/frontend/images/logo.svg +14 -0
- data/app/frontend/live-preview-client/iframe-decorator.js +17 -15
- data/app/frontend/live-preview-client/rails.js +1 -1
- data/app/helpers/maglev/application_helper.rb +7 -2
- data/app/helpers/maglev/editor_helper.rb +12 -5
- data/app/models/concerns/maglev/sections_concern.rb +4 -0
- data/app/models/maglev/asset.rb +13 -14
- data/app/models/maglev/page/path_concern.rb +23 -8
- data/app/models/maglev/page.rb +17 -18
- data/app/models/maglev/page_path.rb +18 -18
- data/app/models/maglev/section/setting.rb +1 -1
- data/app/models/maglev/section.rb +18 -9
- data/app/models/maglev/setting_types/link.rb +1 -1
- data/app/models/maglev/site.rb +13 -24
- data/app/services/maglev/app_container.rb +2 -2
- data/app/services/maglev/extract_locale.rb +3 -2
- data/app/services/maglev/fetch_page.rb +2 -0
- data/app/services/maglev/fetch_theme_layout.rb +2 -0
- data/app/services/maglev/get_page_fullpath.rb +1 -2
- data/app/services/maglev/remove_section_type.rb +50 -0
- data/app/services/maglev/rename_section_type.rb +57 -0
- data/app/services/maglev/search_pages.rb +2 -1
- data/app/views/layouts/maglev/admin/application.html.erb +1 -1
- data/app/views/maglev/admin/sections/previews/show.html.erb +16 -1
- data/app/views/maglev/api/collection_items/show.json.jbuilder +7 -0
- data/app/views/maglev/api/page_clones/create.json.jbuilder +3 -0
- data/app/views/maglev/editor/show.html.erb +6 -5
- data/config/locales/activerecord.ar.yml +13 -0
- data/config/locales/activerecord.en.yml +8 -2
- data/config/locales/activerecord.es.yml +4 -0
- data/config/locales/activerecord.fr.yml +6 -2
- data/config/locales/activerecord.pt-BR.yml +13 -0
- data/config/routes.rb +3 -4
- data/db/migrate/20200831101942_create_maglev_section_content.rb +10 -2
- data/db/migrate/20210819092740_switch_to_localized_page_fields.rb +13 -3
- data/db/migrate/20211008064437_add_locales_to_sites.rb +7 -1
- data/db/migrate/20211013210954_translate_section_content.rb +16 -2
- data/db/migrate/20211203224112_add_open_graph_tags_to_pages.rb +9 -3
- data/db/migrate/20220612092235_add_style_to_sites.rb +5 -1
- data/lib/commands/maglev/change_site_locales_command.rb +61 -0
- data/lib/commands/maglev/create_site_command.rb +28 -0
- data/lib/commands/maglev/sections/remove_command.rb +48 -0
- data/lib/commands/maglev/sections/rename_command.rb +49 -0
- data/lib/generators/maglev/templates/install/config/initializers/maglev.rb +4 -1
- data/lib/generators/maglev/templates/theme/app/views/theme/layout.html.erb.tt +8 -2
- data/lib/maglev/errors.rb +1 -0
- data/lib/maglev/preview_constraint.rb +5 -1
- data/lib/maglev/theme_filesystem_loader.rb +7 -0
- data/lib/maglev/version.rb +1 -1
- data/lib/maglev.rb +13 -3
- data/lib/tasks/maglev/icons.rake +123 -0
- data/lib/tasks/maglev/vite.rake +62 -0
- data/lib/tasks/maglev_tasks.rake +9 -107
- data/tailwind.config.js +1 -0
- metadata +48 -33
- data/app/controllers/maglev/assets_controller.rb +0 -10
- data/app/frontend/editor/components/kit/list-item-button.vue +0 -16
- data/app/frontend/editor/components/sidebar-nav.vue +0 -125
- data/app/frontend/editor/plugins/maglev_dummy.js +0 -2
- data/app/frontend/images/favicon.png +0 -0
- data/app/frontend/images/logo.png +0 -0
data/lib/tasks/maglev_tasks.rake
CHANGED
@@ -6,113 +6,15 @@ def within_engine_folder(&block)
|
|
6
6
|
Dir.chdir(File.join(__dir__, '..', '..'), &block)
|
7
7
|
end
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
task
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
desc 'Change site locales'
|
19
|
-
task change_site_locales: :environment do
|
20
|
-
site = Maglev::Site.first
|
21
|
-
|
22
|
-
unless site
|
23
|
-
puts "[Error] You don't seem to have an existing site. 🤔"
|
24
|
-
return
|
25
|
-
end
|
26
|
-
|
27
|
-
# without this, rake will run the ARGV arguments as if they were rake tasks
|
28
|
-
# rubocop:disable Style/BlockDelimiters
|
29
|
-
ARGV.each { |a| task a.to_sym => :environment do; end }
|
30
|
-
# rubocop:enable Style/BlockDelimiters
|
31
|
-
|
32
|
-
locales = (ARGV[1..] || []).map do |arg|
|
33
|
-
label, prefix = arg.split(':')
|
34
|
-
Maglev::Site::Locale.new(label: label, prefix: prefix)
|
35
|
-
end
|
36
|
-
|
37
|
-
if !locales.empty? && locales.any? { |locale| !locale.valid? }
|
38
|
-
puts "[Error] make sure your locales follows the 'label:prefix' pattern. 🤓"
|
39
|
-
return
|
40
|
-
end
|
41
|
-
|
42
|
-
if locales.empty?
|
43
|
-
locales = Maglev.config.default_site_locales.map do |attributes|
|
44
|
-
Maglev::Site::Locale.new(attributes)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
service = Maglev::ChangeSiteLocales.new
|
49
|
-
|
50
|
-
begin
|
51
|
-
service.call(site: site, locales: locales)
|
52
|
-
puts 'Success! 🎉🎉🎉'
|
53
|
-
rescue StandardError => e
|
54
|
-
puts "[Error] #{e.message}"
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
namespace :vite do
|
59
|
-
desc 'Bundle frontend entrypoints using ViteRuby'
|
60
|
-
task build: :'vite:verify_install' do
|
61
|
-
within_engine_folder do
|
62
|
-
Maglev::Engine.vite_ruby.commands.build_from_task
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
desc 'Bundle entrypoints using Vite Ruby (SSR only if enabled)'
|
67
|
-
task build_all: :'vite:verify_install' do
|
68
|
-
within_engine_folder do
|
69
|
-
Maglev::Engine.vite_ruby.commands.build_from_task
|
70
|
-
Maglev::Engine.vite_ruby.commands.build_from_task('--ssr') if ViteRuby.config.ssr_build_enabled
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
desc 'Ensure build dependencies like Vite are installed before bundling'
|
75
|
-
task install_dependencies: :environment do
|
76
|
-
within_engine_folder do
|
77
|
-
install_dev_dependencies = ENV['VITE_RUBY_SKIP_INSTALL_DEV_DEPENDENCIES'] == 'true'
|
78
|
-
# rubocop:disable Style/StringHashKeys
|
79
|
-
install_env_args = install_dev_dependencies ? {} : { 'NODE_ENV' => 'development' }
|
80
|
-
# rubocop:enable Style/StringHashKeys
|
81
|
-
cmd = Maglev::Engine.vite_ruby.commands.legacy_npm_version? ? 'npx ci --yes' : 'npx --yes ci'
|
82
|
-
result = system(install_env_args, cmd)
|
83
|
-
# Fallback to `yarn` if `npx` is not available.
|
84
|
-
system(install_env_args, 'yarn install --frozen-lockfile') if result.nil?
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
desc 'Verify if ViteRuby is properly installed in the app'
|
89
|
-
task verify_install: :environment do
|
90
|
-
within_engine_folder do
|
91
|
-
Maglev::Engine.vite_ruby.commands.verify_install
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
desc 'Remove old bundles created by ViteRuby'
|
96
|
-
task :clean, %i[keep age] => :'vite:verify_install' do |_, args|
|
97
|
-
within_engine_folder do
|
98
|
-
Maglev::Engine.vite_ruby.commands.clean_from_task(args)
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
desc 'Remove the build output directory for ViteRuby'
|
103
|
-
task clobber: :'vite:verify_install' do
|
104
|
-
within_engine_folder do
|
105
|
-
Maglev::Engine.vite_ruby.commands.clobber
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
desc "Provide information on ViteRuby's environment"
|
110
|
-
task info: :environment do
|
111
|
-
within_engine_folder do
|
112
|
-
Maglev::Engine.vite_ruby.commands.print_info
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
9
|
+
# Load all task files only if they haven't been loaded before
|
10
|
+
Dir[File.join(__dir__, 'maglev', '*.rake')].each do |file|
|
11
|
+
# Create a unique task loaded flag
|
12
|
+
task_name = File.basename(file, '.rake')
|
13
|
+
next if Rake::Task.task_defined?("maglev:#{task_name}:loaded")
|
14
|
+
|
15
|
+
load file
|
16
|
+
# Create a dummy task to mark this file as loaded
|
17
|
+
Rake::Task.define_task("maglev:#{task_name}:loaded")
|
116
18
|
end
|
117
19
|
|
118
20
|
unless ENV['VITE_RUBY_SKIP_ASSETS_PRECOMPILE_EXTENSION'] == 'true'
|
data/tailwind.config.js
CHANGED
metadata
CHANGED
@@ -1,29 +1,34 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: maglevcms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Didier Lafforgue
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: jbuilder
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
16
15
|
requirements:
|
17
|
-
- - "
|
16
|
+
- - "<"
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '3'
|
19
|
+
- - ">="
|
18
20
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2
|
21
|
+
version: '2'
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
23
25
|
requirements:
|
24
|
-
- - "
|
26
|
+
- - "<"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '3'
|
29
|
+
- - ">="
|
25
30
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2
|
31
|
+
version: '2'
|
27
32
|
- !ruby/object:Gem::Dependency
|
28
33
|
name: kaminari
|
29
34
|
requirement: !ruby/object:Gem::Requirement
|
@@ -61,7 +66,7 @@ dependencies:
|
|
61
66
|
version: '9'
|
62
67
|
- - ">="
|
63
68
|
- !ruby/object:Gem::Version
|
64
|
-
version: '
|
69
|
+
version: '7'
|
65
70
|
type: :runtime
|
66
71
|
prerelease: false
|
67
72
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -71,7 +76,7 @@ dependencies:
|
|
71
76
|
version: '9'
|
72
77
|
- - ">="
|
73
78
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
79
|
+
version: '7'
|
75
80
|
- !ruby/object:Gem::Dependency
|
76
81
|
name: vite_rails
|
77
82
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,20 +111,6 @@ dependencies:
|
|
106
111
|
- - ">="
|
107
112
|
- !ruby/object:Gem::Version
|
108
113
|
version: '3.5'
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
|
-
name: pg
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
112
|
-
requirements:
|
113
|
-
- - "~>"
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
version: 1.5.9
|
116
|
-
type: :development
|
117
|
-
prerelease: false
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
119
|
-
requirements:
|
120
|
-
- - "~>"
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: 1.5.9
|
123
114
|
description: " MaglevCMS integrates a powerful website/page builder with a polished
|
124
115
|
UX/UI into your Ruby on Rails application, backed by a flexible and robust CMS engine.\n"
|
125
116
|
email:
|
@@ -160,9 +151,10 @@ files:
|
|
160
151
|
- app/controllers/concerns/maglev/fetchers_concern.rb
|
161
152
|
- app/controllers/concerns/maglev/json_concern.rb
|
162
153
|
- app/controllers/concerns/maglev/rendering_concern.rb
|
154
|
+
- app/controllers/concerns/maglev/resource_id_concern.rb
|
163
155
|
- app/controllers/concerns/maglev/services_concern.rb
|
164
156
|
- app/controllers/concerns/maglev/standalone_sections_concern.rb
|
165
|
-
- app/controllers/concerns/maglev/
|
157
|
+
- app/controllers/concerns/maglev/user_interface_locale_concern.rb
|
166
158
|
- app/controllers/maglev/admin/base_controller.rb
|
167
159
|
- app/controllers/maglev/admin/dashboard_controller.rb
|
168
160
|
- app/controllers/maglev/admin/sections/previews_controller.rb
|
@@ -176,7 +168,8 @@ files:
|
|
176
168
|
- app/controllers/maglev/api/sites_controller.rb
|
177
169
|
- app/controllers/maglev/api_controller.rb
|
178
170
|
- app/controllers/maglev/application_controller.rb
|
179
|
-
- app/controllers/maglev/
|
171
|
+
- app/controllers/maglev/assets/active_storage_proxy_controller.rb
|
172
|
+
- app/controllers/maglev/assets/proxy_controller.rb
|
180
173
|
- app/controllers/maglev/editor_controller.rb
|
181
174
|
- app/controllers/maglev/page_preview_controller.rb
|
182
175
|
- app/controllers/maglev/sitemap_controller.rb
|
@@ -192,6 +185,7 @@ files:
|
|
192
185
|
- app/frontend/editor/assets/remixicons/arrow-drop-right.svg
|
193
186
|
- app/frontend/editor/assets/remixicons/arrow-up-s-line.svg
|
194
187
|
- app/frontend/editor/assets/remixicons/camera-line.svg
|
188
|
+
- app/frontend/editor/assets/remixicons/clipboard-line.svg
|
195
189
|
- app/frontend/editor/assets/remixicons/close-line.svg
|
196
190
|
- app/frontend/editor/assets/remixicons/computer-line.svg
|
197
191
|
- app/frontend/editor/assets/remixicons/delete-bin-line.svg
|
@@ -223,12 +217,14 @@ files:
|
|
223
217
|
- app/frontend/editor/assets/remixicons/ri-close-line.svg
|
224
218
|
- app/frontend/editor/assets/remixicons/ri-delete-column.svg
|
225
219
|
- app/frontend/editor/assets/remixicons/ri-delete-row.svg
|
220
|
+
- app/frontend/editor/assets/remixicons/ri-draggable.svg
|
226
221
|
- app/frontend/editor/assets/remixicons/ri-drop-line.svg
|
227
222
|
- app/frontend/editor/assets/remixicons/ri-external-link-line.svg
|
228
223
|
- app/frontend/editor/assets/remixicons/ri-eye-line.svg
|
229
224
|
- app/frontend/editor/assets/remixicons/ri-eye-off-line.svg
|
230
225
|
- app/frontend/editor/assets/remixicons/ri-file-copy-line.svg
|
231
226
|
- app/frontend/editor/assets/remixicons/ri-file-line.svg
|
227
|
+
- app/frontend/editor/assets/remixicons/ri-folders-line.svg
|
232
228
|
- app/frontend/editor/assets/remixicons/ri-global-line.svg
|
233
229
|
- app/frontend/editor/assets/remixicons/ri-insert-column-left.svg
|
234
230
|
- app/frontend/editor/assets/remixicons/ri-insert-column-right.svg
|
@@ -237,10 +233,12 @@ files:
|
|
237
233
|
- app/frontend/editor/assets/remixicons/ri-loader-4-line.svg
|
238
234
|
- app/frontend/editor/assets/remixicons/ri-mail-line.svg
|
239
235
|
- app/frontend/editor/assets/remixicons/ri-more-2-fill.svg
|
236
|
+
- app/frontend/editor/assets/remixicons/ri-more-fill.svg
|
240
237
|
- app/frontend/editor/assets/remixicons/ri-palette-line.svg
|
241
238
|
- app/frontend/editor/assets/remixicons/ri-pencil-line.svg
|
242
239
|
- app/frontend/editor/assets/remixicons/ri-play-list-add-line.svg
|
243
240
|
- app/frontend/editor/assets/remixicons/ri-settings-5-line.svg
|
241
|
+
- app/frontend/editor/assets/remixicons/ri-shadow-line.svg
|
244
242
|
- app/frontend/editor/assets/remixicons/ri-stack-line.svg
|
245
243
|
- app/frontend/editor/assets/remixicons/ri-table-2.svg
|
246
244
|
- app/frontend/editor/assets/remixicons/ri-table-line.svg
|
@@ -250,11 +248,13 @@ files:
|
|
250
248
|
- app/frontend/editor/assets/remixicons/tablet-line.svg
|
251
249
|
- app/frontend/editor/components/dynamic-form/dynamic-input.vue
|
252
250
|
- app/frontend/editor/components/dynamic-form/index.vue
|
251
|
+
- app/frontend/editor/components/errors/forbidden.vue
|
253
252
|
- app/frontend/editor/components/errors/stale-record.vue
|
254
253
|
- app/frontend/editor/components/header-nav/device-toggler.vue
|
255
254
|
- app/frontend/editor/components/header-nav/index.vue
|
256
255
|
- app/frontend/editor/components/header-nav/locale-toggler/index.vue
|
257
256
|
- app/frontend/editor/components/header-nav/locale-toggler/locale-link.vue
|
257
|
+
- app/frontend/editor/components/header-nav/page-info.vue
|
258
258
|
- app/frontend/editor/components/header-nav/preview-button.vue
|
259
259
|
- app/frontend/editor/components/header-nav/preview-toggler.vue
|
260
260
|
- app/frontend/editor/components/header-nav/publish-button.vue
|
@@ -273,15 +273,16 @@ files:
|
|
273
273
|
- app/frontend/editor/components/kit/color-input/preset-button.vue
|
274
274
|
- app/frontend/editor/components/kit/color-input/preset-dropdown.vue
|
275
275
|
- app/frontend/editor/components/kit/confirmation-button.vue
|
276
|
+
- app/frontend/editor/components/kit/copy-paste-button.vue
|
276
277
|
- app/frontend/editor/components/kit/divider.vue
|
277
278
|
- app/frontend/editor/components/kit/dropdown.vue
|
278
279
|
- app/frontend/editor/components/kit/hint.vue
|
280
|
+
- app/frontend/editor/components/kit/icon-button.vue
|
279
281
|
- app/frontend/editor/components/kit/icon-input.vue
|
280
282
|
- app/frontend/editor/components/kit/icon.vue
|
281
283
|
- app/frontend/editor/components/kit/image-input.vue
|
282
284
|
- app/frontend/editor/components/kit/index.js
|
283
285
|
- app/frontend/editor/components/kit/link-input.vue
|
284
|
-
- app/frontend/editor/components/kit/list-item-button.vue
|
285
286
|
- app/frontend/editor/components/kit/modal-root.vue
|
286
287
|
- app/frontend/editor/components/kit/modal.vue
|
287
288
|
- app/frontend/editor/components/kit/page-icon.vue
|
@@ -313,6 +314,7 @@ files:
|
|
313
314
|
- app/frontend/editor/components/page/edit.vue
|
314
315
|
- app/frontend/editor/components/page/form/main.vue
|
315
316
|
- app/frontend/editor/components/page/form/seo.vue
|
317
|
+
- app/frontend/editor/components/page/list/actions-button.vue
|
316
318
|
- app/frontend/editor/components/page/list/index.vue
|
317
319
|
- app/frontend/editor/components/page/list/list-item.vue
|
318
320
|
- app/frontend/editor/components/page/new.vue
|
@@ -322,6 +324,7 @@ files:
|
|
322
324
|
- app/frontend/editor/components/section-highlighter/index.vue
|
323
325
|
- app/frontend/editor/components/section-highlighter/top-left-actions.vue
|
324
326
|
- app/frontend/editor/components/section-highlighter/top-right-actions.vue
|
327
|
+
- app/frontend/editor/components/section-list/add-button.vue
|
325
328
|
- app/frontend/editor/components/section-list/index.vue
|
326
329
|
- app/frontend/editor/components/section-list/list-item.vue
|
327
330
|
- app/frontend/editor/components/section-pane/block-list/index.vue
|
@@ -332,8 +335,10 @@ files:
|
|
332
335
|
- app/frontend/editor/components/section-pane/block-tree/tree-node.vue
|
333
336
|
- app/frontend/editor/components/section-pane/index.vue
|
334
337
|
- app/frontend/editor/components/section-pane/setting-list.vue
|
335
|
-
- app/frontend/editor/components/sidebar-nav.vue
|
338
|
+
- app/frontend/editor/components/sidebar-nav/index.vue
|
339
|
+
- app/frontend/editor/components/sidebar-nav/link.vue
|
336
340
|
- app/frontend/editor/components/style-pane/index.vue
|
341
|
+
- app/frontend/editor/components/theme-section-list/category.vue
|
337
342
|
- app/frontend/editor/components/theme-section-list/index.vue
|
338
343
|
- app/frontend/editor/components/theme-section-list/list-item.vue
|
339
344
|
- app/frontend/editor/design/application.scss
|
@@ -347,6 +352,7 @@ files:
|
|
347
352
|
- app/frontend/editor/layouts/app.vue
|
348
353
|
- app/frontend/editor/layouts/default.vue
|
349
354
|
- app/frontend/editor/layouts/slide-pane.vue
|
355
|
+
- app/frontend/editor/locales/editor.ar.json
|
350
356
|
- app/frontend/editor/locales/editor.en.json
|
351
357
|
- app/frontend/editor/locales/editor.es.json
|
352
358
|
- app/frontend/editor/locales/editor.fr.json
|
@@ -365,7 +371,6 @@ files:
|
|
365
371
|
- app/frontend/editor/plugins/filters.js
|
366
372
|
- app/frontend/editor/plugins/i18n.js
|
367
373
|
- app/frontend/editor/plugins/index.js
|
368
|
-
- app/frontend/editor/plugins/maglev_dummy.js
|
369
374
|
- app/frontend/editor/plugins/tooltip.js
|
370
375
|
- app/frontend/editor/router/index.js
|
371
376
|
- app/frontend/editor/router/routes/base.js
|
@@ -418,8 +423,8 @@ files:
|
|
418
423
|
- app/frontend/entrypoints/editor.js
|
419
424
|
- app/frontend/entrypoints/live-preview-client.js
|
420
425
|
- app/frontend/entrypoints/live-preview-rails-client.js
|
421
|
-
- app/frontend/images/favicon.
|
422
|
-
- app/frontend/images/logo.
|
426
|
+
- app/frontend/images/favicon.svg
|
427
|
+
- app/frontend/images/logo.svg
|
423
428
|
- app/frontend/live-preview-client/iframe-decorator.js
|
424
429
|
- app/frontend/live-preview-client/index.js
|
425
430
|
- app/frontend/live-preview-client/message.js
|
@@ -490,6 +495,8 @@ files:
|
|
490
495
|
- app/services/maglev/get_page_sections.rb
|
491
496
|
- app/services/maglev/persist_page.rb
|
492
497
|
- app/services/maglev/persist_section_screenshot.rb
|
498
|
+
- app/services/maglev/remove_section_type.rb
|
499
|
+
- app/services/maglev/rename_section_type.rb
|
493
500
|
- app/services/maglev/search_pages.rb
|
494
501
|
- app/services/maglev/setup_pages.rb
|
495
502
|
- app/validators/maglev/collection_validator.rb
|
@@ -507,6 +514,8 @@ files:
|
|
507
514
|
- app/views/maglev/api/assets/show.json.jbuilder
|
508
515
|
- app/views/maglev/api/collection_items/_show.json.jbuilder
|
509
516
|
- app/views/maglev/api/collection_items/index.json.jbuilder
|
517
|
+
- app/views/maglev/api/collection_items/show.json.jbuilder
|
518
|
+
- app/views/maglev/api/page_clones/create.json.jbuilder
|
510
519
|
- app/views/maglev/api/pages/_show.json.jbuilder
|
511
520
|
- app/views/maglev/api/pages/index.json.jbuilder
|
512
521
|
- app/views/maglev/api/pages/show.json.jbuilder
|
@@ -521,9 +530,11 @@ files:
|
|
521
530
|
- config/initializers/filter_parameters_logging.rb
|
522
531
|
- config/initializers/kaminari.rb
|
523
532
|
- config/initializers/zeitwerk.rb
|
533
|
+
- config/locales/activerecord.ar.yml
|
524
534
|
- config/locales/activerecord.en.yml
|
525
535
|
- config/locales/activerecord.es.yml
|
526
536
|
- config/locales/activerecord.fr.yml
|
537
|
+
- config/locales/activerecord.pt-BR.yml
|
527
538
|
- config/routes.rb
|
528
539
|
- config/vite.json
|
529
540
|
- db/migrate/20200824085207_create_maglev_sites.rb
|
@@ -540,6 +551,10 @@ files:
|
|
540
551
|
- db/migrate/20211124101005_fix_page_path_indices.rb
|
541
552
|
- db/migrate/20211203224112_add_open_graph_tags_to_pages.rb
|
542
553
|
- db/migrate/20220612092235_add_style_to_sites.rb
|
554
|
+
- lib/commands/maglev/change_site_locales_command.rb
|
555
|
+
- lib/commands/maglev/create_site_command.rb
|
556
|
+
- lib/commands/maglev/sections/remove_command.rb
|
557
|
+
- lib/commands/maglev/sections/rename_command.rb
|
543
558
|
- lib/generators/maglev/install_generator.rb
|
544
559
|
- lib/generators/maglev/section_generator.rb
|
545
560
|
- lib/generators/maglev/templates/install/config/initializers/maglev.rb
|
@@ -562,6 +577,8 @@ files:
|
|
562
577
|
- lib/maglev/theme_filesystem_loader.rb
|
563
578
|
- lib/maglev/version.rb
|
564
579
|
- lib/maglevcms.rb
|
580
|
+
- lib/tasks/maglev/icons.rake
|
581
|
+
- lib/tasks/maglev/vite.rake
|
565
582
|
- lib/tasks/maglev_tasks.rake
|
566
583
|
- package.json
|
567
584
|
- postcss.config.cjs
|
@@ -572,7 +589,6 @@ homepage: https://www.maglev.dev/
|
|
572
589
|
licenses:
|
573
590
|
- MIT
|
574
591
|
metadata: {}
|
575
|
-
post_install_message:
|
576
592
|
rdoc_options: []
|
577
593
|
require_paths:
|
578
594
|
- lib
|
@@ -587,8 +603,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
587
603
|
- !ruby/object:Gem::Version
|
588
604
|
version: '0'
|
589
605
|
requirements: []
|
590
|
-
rubygems_version: 3.
|
591
|
-
signing_key:
|
606
|
+
rubygems_version: 3.6.7
|
592
607
|
specification_version: 4
|
593
608
|
summary: Website/page builder Ruby on Rails engine
|
594
609
|
test_files: []
|
@@ -1,16 +0,0 @@
|
|
1
|
-
<template>
|
2
|
-
<button
|
3
|
-
class="px-1 py-1 rounded-full bg-gray-600 bg-opacity-0 hover:text-gray-900 text-gray-600 focus:outline-none hover:bg-opacity-10 transition-colors duration-200"
|
4
|
-
>
|
5
|
-
<uikit-icon :name="iconName" size="1.25rem" />
|
6
|
-
</button>
|
7
|
-
</template>
|
8
|
-
|
9
|
-
<script>
|
10
|
-
export default {
|
11
|
-
name: 'UIKitListItemButton',
|
12
|
-
props: {
|
13
|
-
iconName: { type: String, required: true },
|
14
|
-
},
|
15
|
-
}
|
16
|
-
</script>
|
@@ -1,125 +0,0 @@
|
|
1
|
-
<template>
|
2
|
-
<nav class="w-16 flex flex-col justify-between">
|
3
|
-
<div
|
4
|
-
class="flex justify-center h-full w-full animate-pulse"
|
5
|
-
v-if="!currentPage"
|
6
|
-
>
|
7
|
-
<div class="w-6 bg-gray-200 rounded h-48 my-6"></div>
|
8
|
-
</div>
|
9
|
-
<ol class="divide-y divide-gray-300 px-4" v-else>
|
10
|
-
<li>
|
11
|
-
<router-link
|
12
|
-
:to="{ name: 'addSection' }"
|
13
|
-
class="flex justify-center py-5 -ml-4 -mr-4 hover:bg-editor-primary hover:bg-opacity-5 transition-colors duration-200"
|
14
|
-
:class="{
|
15
|
-
'bg-white': !isAddSectionPaneActive,
|
16
|
-
'bg-editor-primary bg-opacity-5': isAddSectionPaneActive,
|
17
|
-
}"
|
18
|
-
v-tooltip.right="$t('sidebarNav.addNewSectionTooltip')"
|
19
|
-
>
|
20
|
-
<uikit-icon name="add-box-line" size="1.5rem" />
|
21
|
-
</router-link>
|
22
|
-
</li>
|
23
|
-
<li>
|
24
|
-
<router-link
|
25
|
-
:to="{ name: 'listSections' }"
|
26
|
-
class="flex justify-center py-5 -ml-4 -mr-4 hover:bg-editor-primary hover:bg-opacity-5 transition-colors duration-200"
|
27
|
-
:class="{
|
28
|
-
'bg-white': !isSectionListPaneActive,
|
29
|
-
'bg-editor-primary bg-opacity-5': isSectionListPaneActive,
|
30
|
-
}"
|
31
|
-
v-tooltip.right="$t('sidebarNav.managePageSectionsTooltip')"
|
32
|
-
>
|
33
|
-
<uikit-icon name="ri-stack-line" size="1.5rem" />
|
34
|
-
</router-link>
|
35
|
-
</li>
|
36
|
-
<li v-if="hasStyle">
|
37
|
-
<router-link
|
38
|
-
:to="{ name: 'editStyle' }"
|
39
|
-
class="flex justify-center py-5 -ml-4 -mr-4 hover:bg-editor-primary hover:bg-opacity-5 transition-colors duration-200"
|
40
|
-
:class="{
|
41
|
-
'bg-white': !isEditStylePaneActive,
|
42
|
-
'bg-editor-primary bg-opacity-5': isEditStylePaneActive,
|
43
|
-
}"
|
44
|
-
v-tooltip.right="$t('sidebarNav.editStyleTooltip')"
|
45
|
-
>
|
46
|
-
<uikit-icon name="ri-drop-line" size="1.25rem" />
|
47
|
-
</router-link>
|
48
|
-
</li>
|
49
|
-
<li>
|
50
|
-
<a
|
51
|
-
href="#"
|
52
|
-
class="flex justify-center py-5 -ml-4 -mr-4 hover:bg-editor-primary hover:bg-opacity-5 transition-colors duration-200"
|
53
|
-
@click.prevent="openImageLibraryModal"
|
54
|
-
v-tooltip.right="$t('sidebarNav.openImageLibraryTooltip')"
|
55
|
-
>
|
56
|
-
<uikit-icon name="image-line" size="1.5rem" />
|
57
|
-
</a>
|
58
|
-
</li>
|
59
|
-
<li v-if="false">
|
60
|
-
<router-link
|
61
|
-
:to="{ name: 'test', params: { pageId: currentPage.path } }"
|
62
|
-
class="flex justify-center py-5 -ml-4 -mr-4 hover:bg-editor-primary hover:bg-opacity-5 transition-colors duration-200"
|
63
|
-
>
|
64
|
-
T
|
65
|
-
</router-link>
|
66
|
-
</li>
|
67
|
-
<li v-if="false">
|
68
|
-
<router-link
|
69
|
-
:to="{ name: 'test2', params: { pageId: currentPage.path } }"
|
70
|
-
class="flex justify-center py-5 -ml-4 -mr-4 hover:bg-editor-primary hover:bg-opacity-5 transition-colors duration-200"
|
71
|
-
>
|
72
|
-
T2
|
73
|
-
</router-link>
|
74
|
-
</li>
|
75
|
-
<li></li>
|
76
|
-
</ol>
|
77
|
-
|
78
|
-
<ol class="divide-y divide-gray-300 px-4">
|
79
|
-
<li></li>
|
80
|
-
<li>
|
81
|
-
<a
|
82
|
-
:href="leaveEditorUrl"
|
83
|
-
class="flex justify-center py-5 -ml-4 -mr-4 hover:bg-editor-primary hover:bg-opacity-5 transition-colors duration-200"
|
84
|
-
v-tooltip.right="$t('sidebarNav.leaveEditorTooltip')"
|
85
|
-
>
|
86
|
-
<uikit-icon name="logout-box-r-line" size="1.5rem" />
|
87
|
-
</a>
|
88
|
-
</li>
|
89
|
-
</ol>
|
90
|
-
</nav>
|
91
|
-
</template>
|
92
|
-
|
93
|
-
<script>
|
94
|
-
import ImageLibrary from '@/components/image-library/index.vue'
|
95
|
-
|
96
|
-
export default {
|
97
|
-
name: 'SidebarNav',
|
98
|
-
computed: {
|
99
|
-
hasStyle() {
|
100
|
-
return !this.isBlank(this.currentStyle)
|
101
|
-
},
|
102
|
-
isAddSectionPaneActive() {
|
103
|
-
return this.$route.name === 'addSection'
|
104
|
-
},
|
105
|
-
isSectionListPaneActive() {
|
106
|
-
return this.$route.name === 'listSections'
|
107
|
-
},
|
108
|
-
isEditStylePaneActive() {
|
109
|
-
return this.$route.name === 'editStyle'
|
110
|
-
},
|
111
|
-
leaveEditorUrl() {
|
112
|
-
return window.leaveUrl
|
113
|
-
},
|
114
|
-
},
|
115
|
-
methods: {
|
116
|
-
openImageLibraryModal() {
|
117
|
-
this.openModal({
|
118
|
-
title: this.$t('imageLibrary.title'),
|
119
|
-
component: ImageLibrary,
|
120
|
-
props: { modalClass: 'w-216' },
|
121
|
-
})
|
122
|
-
},
|
123
|
-
},
|
124
|
-
}
|
125
|
-
</script>
|
Binary file
|
Binary file
|