lesli 5.0.2 → 5.0.4
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/app/assets/config/lesli_manifest.js +2 -1
- data/app/assets/javascripts/lesli/users/confirmations.js +32 -0
- data/app/assets/javascripts/lesli/users/passwords.js +3 -3
- data/app/assets/javascripts/lesli/users/registrations.js +2 -2
- data/app/assets/javascripts/lesli/users/sessions.js +2 -2
- data/app/assets/stylesheets/lesli/users/confirmations.scss +28 -6
- data/app/controllers/lesli/abouts_controller.rb +66 -0
- data/app/controllers/lesli/interfaces/application/authorization.rb +2 -2
- data/app/controllers/lesli/interfaces/application/logger.rb +14 -38
- data/app/controllers/lesli/roles_controller.rb +3 -1
- data/app/controllers/users/confirmations_controller.rb +63 -27
- data/app/controllers/users/passwords_controller.rb +70 -30
- data/app/controllers/users/sessions_controller.rb +2 -4
- data/app/lib/lesli/system.rb +13 -5
- data/app/mailers/lesli/application_lesli_mailer.rb +8 -19
- data/app/mailers/lesli/devise_mailer.rb +29 -3
- data/app/models/concerns/account_initializer.rb +91 -0
- data/app/models/concerns/{user_guard.rb → user_security.rb} +7 -8
- data/app/models/lesli/account.rb +8 -26
- data/app/models/lesli/application_lesli_record.rb +1 -0
- data/app/models/lesli/descriptor/privilege.rb +38 -0
- data/app/models/lesli/descriptor.rb +18 -1
- data/app/models/lesli/role/power.rb +70 -0
- data/app/models/lesli/role/privilege.rb +38 -0
- data/app/models/lesli/role.rb +20 -15
- data/app/models/lesli/user/{role.rb → power.rb} +1 -1
- data/app/{services/lesli/role_service.rb → models/lesli/user/setting.rb} +10 -9
- data/app/models/lesli/user.rb +11 -20
- data/app/operators/lesli/descriptor_privilege_operator.rb +75 -0
- data/app/operators/lesli/role_power_operator.rb +108 -0
- data/app/operators/lesli/user_registration_operator.rb +121 -0
- data/app/services/lesli/user_service.rb +2 -4
- data/app/services/lesli/{user/session_service.rb → user_session_service.rb} +11 -4
- data/app/views/devise/confirmations/new.html.erb +0 -14
- data/app/views/devise/confirmations/show.html.erb +63 -0
- data/app/views/devise/passwords/edit.html.erb +78 -24
- data/app/views/devise/passwords/new.html.erb +1 -2
- data/app/views/lesli/emails/devise_mailer/confirmation_instructions.html.erb +1 -1
- data/app/views/lesli/emails/devise_mailer/reset_password_instructions.html.erb +23 -0
- data/app/views/lesli/partials/_application-lesli-header.html.erb +3 -1
- data/config/initializers/devise.rb +2 -0
- data/config/routes.rb +2 -0
- data/db/migrate/v1.0/0010000110_create_lesli_accounts.rb +2 -0
- data/db/{tables/0010001010_create_account_settings.rb → migrate/v1.0/0010001010_create_lesli_account_settings.rb} +5 -5
- data/db/{tables/0010003110_create_user_settings.rb → migrate/v1.0/0010003110_create_lesli_user_settings.rb} +4 -4
- data/db/migrate/v1.0/0010003210_create_lesli_user_sessions.rb +6 -2
- data/db/migrate/v1.0/{0010003410_create_lesli_user_roles.rb → 0010003410_create_lesli_user_powers.rb} +4 -4
- data/db/migrate/v1.0/0010005010_create_lesli_descriptors.rb +1 -1
- data/db/migrate/v1.0/{0010003910_create_lesli_user_agents.rb → 0010005510_create_lesli_role_powers.rb} +7 -9
- data/db/{tables/0010005710_create_role_privileges.rb → migrate/v1.0/0010005710_create_lesli_role_privileges.rb} +6 -6
- data/db/seed/development/users.rb +4 -4
- data/db/seed/tools.rb +4 -4
- data/lib/lesli/engine.rb +33 -10
- data/lib/lesli/version.rb +1 -1
- data/lib/sass/lesli/bulma/loader.scss +3 -0
- data/lib/sass/lesli/pages/devise-simple.scss +2 -1
- data/lib/tasks/lesli/controllers.rake +3 -6
- data/lib/tasks/lesli/db.rake +11 -1
- data/lib/tasks/lesli/role.rake +54 -0
- data/lib/vue/application.js +9 -2
- data/lib/vue/devise/passwords.js +3 -3
- data/lib/vue/layouts/application-header.vue +10 -3
- data/lib/webpack/core.js +2 -1
- data/readme.md +23 -7
- data/vendor/bulma/LICENSE +21 -0
- data/vendor/bulma/bulma.sass +10 -0
- data/vendor/bulma/css/bulma-rtl.css +11851 -0
- data/vendor/bulma/css/bulma-rtl.min.css +1 -0
- data/vendor/bulma/css/bulma.css +11851 -0
- data/vendor/bulma/css/bulma.min.css +1 -0
- data/vendor/bulma/sass/base/_all.sass +6 -0
- data/vendor/bulma/sass/base/animations.sass +5 -0
- data/vendor/bulma/sass/base/generic.sass +145 -0
- data/vendor/bulma/sass/base/helpers.sass +1 -0
- data/vendor/bulma/sass/base/minireset.sass +79 -0
- data/vendor/bulma/sass/components/_all.sass +15 -0
- data/vendor/bulma/sass/components/breadcrumb.sass +77 -0
- data/vendor/bulma/sass/components/card.sass +103 -0
- data/vendor/bulma/sass/components/dropdown.sass +83 -0
- data/vendor/bulma/sass/components/level.sass +79 -0
- data/vendor/bulma/sass/components/media.sass +59 -0
- data/vendor/bulma/sass/components/menu.sass +59 -0
- data/vendor/bulma/sass/components/message.sass +101 -0
- data/vendor/bulma/sass/components/modal.sass +117 -0
- data/vendor/bulma/sass/components/navbar.sass +446 -0
- data/vendor/bulma/sass/components/pagination.sass +167 -0
- data/vendor/bulma/sass/components/panel.sass +121 -0
- data/vendor/bulma/sass/components/tabs.sass +176 -0
- data/vendor/bulma/sass/elements/_all.sass +16 -0
- data/vendor/bulma/sass/elements/box.sass +26 -0
- data/vendor/bulma/sass/elements/button.sass +357 -0
- data/vendor/bulma/sass/elements/container.sass +29 -0
- data/vendor/bulma/sass/elements/content.sass +162 -0
- data/vendor/bulma/sass/elements/form.sass +1 -0
- data/vendor/bulma/sass/elements/icon.sass +46 -0
- data/vendor/bulma/sass/elements/image.sass +73 -0
- data/vendor/bulma/sass/elements/notification.sass +52 -0
- data/vendor/bulma/sass/elements/other.sass +31 -0
- data/vendor/bulma/sass/elements/progress.sass +73 -0
- data/vendor/bulma/sass/elements/table.sass +134 -0
- data/vendor/bulma/sass/elements/tag.sass +140 -0
- data/vendor/bulma/sass/elements/title.sass +70 -0
- data/vendor/bulma/sass/form/_all.sass +9 -0
- data/vendor/bulma/sass/form/checkbox-radio.sass +22 -0
- data/vendor/bulma/sass/form/file.sass +184 -0
- data/vendor/bulma/sass/form/input-textarea.sass +66 -0
- data/vendor/bulma/sass/form/select.sass +88 -0
- data/vendor/bulma/sass/form/shared.sass +60 -0
- data/vendor/bulma/sass/form/tools.sass +215 -0
- data/vendor/bulma/sass/grid/_all.sass +5 -0
- data/vendor/bulma/sass/grid/columns.sass +513 -0
- data/vendor/bulma/sass/grid/tiles.sass +36 -0
- data/vendor/bulma/sass/helpers/_all.sass +12 -0
- data/vendor/bulma/sass/helpers/color.sass +39 -0
- data/vendor/bulma/sass/helpers/flexbox.sass +35 -0
- data/vendor/bulma/sass/helpers/float.sass +10 -0
- data/vendor/bulma/sass/helpers/other.sass +14 -0
- data/vendor/bulma/sass/helpers/overflow.sass +2 -0
- data/vendor/bulma/sass/helpers/position.sass +7 -0
- data/vendor/bulma/sass/helpers/spacing.sass +31 -0
- data/vendor/bulma/sass/helpers/typography.sass +103 -0
- data/vendor/bulma/sass/helpers/visibility.sass +122 -0
- data/vendor/bulma/sass/layout/_all.sass +6 -0
- data/vendor/bulma/sass/layout/footer.sass +11 -0
- data/vendor/bulma/sass/layout/hero.sass +153 -0
- data/vendor/bulma/sass/layout/section.sass +17 -0
- data/vendor/bulma/sass/utilities/_all.sass +9 -0
- data/vendor/bulma/sass/utilities/animations.sass +1 -0
- data/vendor/bulma/sass/utilities/controls.sass +49 -0
- data/vendor/bulma/sass/utilities/derived-variables.sass +114 -0
- data/vendor/bulma/sass/utilities/extends.sass +25 -0
- data/vendor/bulma/sass/utilities/functions.sass +135 -0
- data/vendor/bulma/sass/utilities/initial-variables.sass +79 -0
- data/vendor/bulma/sass/utilities/mixins.sass +303 -0
- data/vendor/lesli-css/_index.scss +34 -0
- data/vendor/lesli-css/lesli.scss +51 -0
- data/vendor/lesli-css/license +28 -0
- data/vendor/lesli-css/src/base/fonts.scss +50 -0
- data/vendor/lesli-css/src/base/normalize.scss +118 -0
- data/vendor/lesli-css/src/components/blockquote.scss +61 -0
- data/vendor/lesli-css/src/components/columns.scss +92 -0
- data/vendor/lesli-css/src/components/container.scss +47 -0
- data/vendor/lesli-css/src/components/grid.scss +0 -0
- data/vendor/lesli-css/src/components/navigation.scss +59 -0
- data/vendor/lesli-css/src/functions/colors.scss +184 -0
- data/vendor/lesli-css/src/helpers/units.scss +44 -0
- data/vendor/lesli-css/src/mixins/breakpoint.scss +184 -0
- data/vendor/lesli-css/src/mixins/flex.scss +80 -0
- data/vendor/lesli-css/src/mixins/scrollbar.scss +46 -0
- data/vendor/lesli-css/src/settings/variables.scss +26 -0
- data/vendor/lesli-css/tests/base/normalize.spec.scss +125 -0
- data/vendor/lesli-css/tests/functions/colors.spec.scss +117 -0
- data/vendor/lesli-css/tests/mixins/breakpoint.spec.scss +429 -0
- data/vendor/lesli-css/tests/mixins/scrollbar.spec.scss +82 -0
- data/vendor/lesli-css/vendor/normalize.scss +351 -0
- data/vendor/remixicon/License +201 -0
- data/vendor/remixicon/fonts/remixicon.css +2583 -0
- metadata +116 -18
- data/app/models/concerns/account_engines.rb +0 -249
- data/app/models/concerns/user_polyfill.rb +0 -134
- data/config/locales/translations.en.yml +0 -7
- data/config/locales/translations.es.yml +0 -7
- data/db/migrate/v1.0/0010001510_create_lesli_account_requests.rb +0 -45
- data/db/migrate/v1.0/0010003810_create_lesli_user_requests.rb +0 -44
- data/db/tables/0010005510_create_role_descriptors.rb +0 -44
data/lib/lesli/engine.rb
CHANGED
|
@@ -39,6 +39,7 @@ require "L2"
|
|
|
39
39
|
require "devise"
|
|
40
40
|
require "useragent"
|
|
41
41
|
require "flag-icons-rails"
|
|
42
|
+
require "acts_as_paranoid"
|
|
42
43
|
|
|
43
44
|
module Lesli
|
|
44
45
|
class Engine < ::Rails::Engine
|
|
@@ -46,6 +47,21 @@ module Lesli
|
|
|
46
47
|
|
|
47
48
|
initializer :lesli do |app|
|
|
48
49
|
|
|
50
|
+
|
|
51
|
+
# Lesli standard engine configuration
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
# register assets manifest
|
|
55
|
+
config.assets.precompile += %w[lesli_manifest.js]
|
|
56
|
+
|
|
57
|
+
# register engine migrations path
|
|
58
|
+
unless app.root.to_s.match root.to_s
|
|
59
|
+
config.paths["db/migrate"].expanded.each do |expanded_path|
|
|
60
|
+
app.config.paths["db/migrate"] << expanded_path
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
|
|
49
65
|
# Lesli Framework configuration
|
|
50
66
|
|
|
51
67
|
|
|
@@ -65,21 +81,28 @@ module Lesli
|
|
|
65
81
|
# if this is not false Rails will fingerprint the assets by default and precompile is needed
|
|
66
82
|
config.assets.digest = false
|
|
67
83
|
|
|
84
|
+
|
|
85
|
+
# Lesli Framework Mailer configuration
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
# Development mailer by default
|
|
89
|
+
config.action_mailer.delivery_method ||= :letter_opener
|
|
90
|
+
|
|
91
|
+
# Add the Lesli root folder for email development tempaltes
|
|
68
92
|
config.action_mailer.preview_path = root.join("lib", "mailer_previews")
|
|
69
93
|
|
|
94
|
+
config.action_mailer.default_options ||= {
|
|
70
95
|
|
|
71
|
-
|
|
96
|
+
# Use the main email in the lesli settings as email sender
|
|
97
|
+
from: config.company.dig(:email)
|
|
98
|
+
}
|
|
72
99
|
|
|
73
|
-
|
|
74
|
-
# register assets manifest
|
|
75
|
-
config.assets.precompile += %w[lesli_manifest.js]
|
|
76
100
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
end
|
|
101
|
+
|
|
102
|
+
# Mailer url options for development
|
|
103
|
+
config.action_mailer.default_url_options ||= {
|
|
104
|
+
host: "http://0.0.0.0:3000"
|
|
105
|
+
}
|
|
83
106
|
end
|
|
84
107
|
end
|
|
85
108
|
end
|
data/lib/lesli/version.rb
CHANGED
|
@@ -52,18 +52,21 @@ $navbar-background-color: transparent;
|
|
|
52
52
|
|
|
53
53
|
@import "bulma/sass/form/all";
|
|
54
54
|
|
|
55
|
+
@import "bulma/sass/components/card";
|
|
55
56
|
@import "bulma/sass/components/tabs";
|
|
56
57
|
@import "bulma/sass/components/media";
|
|
57
58
|
@import "bulma/sass/components/level";
|
|
58
59
|
@import "bulma/sass/components/dropdown";
|
|
59
60
|
@import "bulma/sass/components/pagination";
|
|
60
61
|
|
|
62
|
+
@import "bulma/sass/elements/notification";
|
|
61
63
|
@import "bulma/sass/elements/container";
|
|
62
64
|
@import "bulma/sass/elements/button";
|
|
63
65
|
@import "bulma/sass/elements/image";
|
|
64
66
|
@import "bulma/sass/elements/title";
|
|
65
67
|
@import "bulma/sass/elements/table";
|
|
66
68
|
@import "bulma/sass/elements/icon";
|
|
69
|
+
@import "bulma/sass/elements/tag";
|
|
67
70
|
|
|
68
71
|
@import "bulma/sass/grid/columns";
|
|
69
72
|
|
|
@@ -80,11 +80,8 @@ namespace :lesli do
|
|
|
80
80
|
|
|
81
81
|
# Global container
|
|
82
82
|
controller_list = {
|
|
83
|
-
"
|
|
83
|
+
"app" => {}
|
|
84
84
|
}
|
|
85
|
-
|
|
86
|
-
# Get the name of the instance (builder engine)
|
|
87
|
-
instance = "lesli" #Rails.configuration.lesli.dig(:instance, :name)
|
|
88
85
|
|
|
89
86
|
# Get the list of controllers and actions of the core
|
|
90
87
|
Rails.application.routes.routes.each do |route|
|
|
@@ -97,10 +94,10 @@ namespace :lesli do
|
|
|
97
94
|
next if route[:controller].include? "active_storage"
|
|
98
95
|
|
|
99
96
|
# create a container for the actions related to a controller
|
|
100
|
-
controller_list["
|
|
97
|
+
controller_list["app"][route[:controller]] = [] unless controller_list["app"][route[:controller]]
|
|
101
98
|
|
|
102
99
|
# assign and group all the actions related to the controller
|
|
103
|
-
controller_list["
|
|
100
|
+
controller_list["app"][route[:controller]].push(route[:action])
|
|
104
101
|
|
|
105
102
|
end
|
|
106
103
|
|
data/lib/tasks/lesli/db.rake
CHANGED
|
@@ -72,17 +72,27 @@ namespace :lesli do
|
|
|
72
72
|
|
|
73
73
|
# Seed database (development only)
|
|
74
74
|
def seed
|
|
75
|
+
|
|
76
|
+
# do not execute this task if we are at production level
|
|
75
77
|
return if Rails.env.production?
|
|
78
|
+
|
|
76
79
|
L2.msg("Seed Lesli database for development")
|
|
77
80
|
|
|
81
|
+
# scan rails routes to build the controllers index
|
|
82
|
+
Rake::Task['lesli:controllers:build'].invoke
|
|
83
|
+
|
|
84
|
+
# load main app seeders
|
|
78
85
|
Rake::Task['db:seed'].invoke
|
|
79
86
|
|
|
87
|
+
# load Lesli* gems seeders
|
|
80
88
|
Lesli::Engine.load_seed
|
|
81
89
|
LesliBell::Engine.load_seed if defined?(LesliBell)
|
|
82
90
|
LesliAudit::Engine.load_seed if defined?(LesliAudit)
|
|
83
|
-
|
|
91
|
+
|
|
92
|
+
# scan rails routes to build the base of translations
|
|
84
93
|
Rake::Task['lesli:babel:build'].invoke if defined?(LesliBabel)
|
|
85
94
|
|
|
95
|
+
# print the lesli gems
|
|
86
96
|
Rake::Task['lesli:status'].invoke
|
|
87
97
|
end
|
|
88
98
|
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
|
|
3
|
+
Lesli
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2023, Lesli Technologies, S. A.
|
|
6
|
+
|
|
7
|
+
This program is free software: you can redistribute it and/or modify
|
|
8
|
+
it under the terms of the GNU General Public License as published by
|
|
9
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
10
|
+
(at your option) any later version.
|
|
11
|
+
|
|
12
|
+
This program is distributed in the hope that it will be useful,
|
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15
|
+
GNU General Public License for more details.
|
|
16
|
+
|
|
17
|
+
You should have received a copy of the GNU General Public License
|
|
18
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
|
19
|
+
|
|
20
|
+
Lesli · Ruby on Rails SaaS Development Framework.
|
|
21
|
+
|
|
22
|
+
Made with ♥ by https://www.lesli.tech
|
|
23
|
+
Building a better future, one line of code at a time.
|
|
24
|
+
|
|
25
|
+
@contact hello@lesli.tech
|
|
26
|
+
@website https://www.lesli.tech
|
|
27
|
+
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
|
28
|
+
|
|
29
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
|
30
|
+
// ·
|
|
31
|
+
=end
|
|
32
|
+
|
|
33
|
+
# ·
|
|
34
|
+
namespace :lesli do
|
|
35
|
+
namespace :role do
|
|
36
|
+
|
|
37
|
+
desc "Drop, build, migrate & seed Lesli database (development only)"
|
|
38
|
+
task :privileges => :environment do |task, args|
|
|
39
|
+
role_sync_privileges()
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Drop, build, migrate & seed database (development only)
|
|
44
|
+
def role_sync_privileges
|
|
45
|
+
|
|
46
|
+
L2.msg("Syncing privileges for all the available roles")
|
|
47
|
+
|
|
48
|
+
Lesli::Descriptor.where(:name => "owner").each do |descriptor|
|
|
49
|
+
descriptor.initialize_descriptor_privileges
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
Lesli::RolePowerOperator.new(Lesli::Role.all.pluck(:id)).synchronize
|
|
53
|
+
end
|
|
54
|
+
end
|
data/lib/vue/application.js
CHANGED
|
@@ -68,6 +68,8 @@ import {
|
|
|
68
68
|
lesliElementCalendar,
|
|
69
69
|
lesliElementCard,
|
|
70
70
|
lesliElementCollapse,
|
|
71
|
+
lesliElementColumn,
|
|
72
|
+
lesliElementColumns,
|
|
71
73
|
lesliElementControl,
|
|
72
74
|
lesliElementDropdown,
|
|
73
75
|
lesliElementEmpty,
|
|
@@ -226,6 +228,10 @@ export default (engine, routes=[]) => {
|
|
|
226
228
|
application.component("lesli-loading", lesliElementLoading)
|
|
227
229
|
application.component("lesli-table", lesliElementTable)
|
|
228
230
|
application.component("lesli-collapse", lesliElementCollapse)
|
|
231
|
+
application.component("lesli-column", lesliElementColumn)
|
|
232
|
+
application.component("lesli-columns", lesliElementColumns)
|
|
233
|
+
application.component("lesli-card", lesliElementCard)
|
|
234
|
+
application.component("lesli-control", lesliElementControl)
|
|
229
235
|
application.component("lesli-tab-item", lesliElementTabItem)
|
|
230
236
|
application.component("lesli-tabs", lesliElementTabs)
|
|
231
237
|
application.component("lesli-panel", lesliElementPanel)
|
|
@@ -243,8 +249,9 @@ export default (engine, routes=[]) => {
|
|
|
243
249
|
application.component("lesli-pagination", lesliElementPagination)
|
|
244
250
|
application.component("lesli-form", lesliElementForm)
|
|
245
251
|
application.component("lesli-input", lesliElementInput)
|
|
246
|
-
application.component("lesli-
|
|
247
|
-
|
|
252
|
+
application.component("lesli-link", lesliElementLink)
|
|
253
|
+
|
|
254
|
+
|
|
248
255
|
|
|
249
256
|
|
|
250
257
|
// · Mount app once DOM is ready
|
data/lib/vue/devise/passwords.js
CHANGED
|
@@ -51,8 +51,8 @@ application({
|
|
|
51
51
|
password: ""
|
|
52
52
|
},
|
|
53
53
|
password_edit: {
|
|
54
|
-
new_password: "",
|
|
55
|
-
new_password_confirmation: ""
|
|
54
|
+
new_password: "Tardis2023$",
|
|
55
|
+
new_password_confirmation: "Tardis2023$"
|
|
56
56
|
},
|
|
57
57
|
notification: {
|
|
58
58
|
message: "",
|
|
@@ -117,7 +117,7 @@ application({
|
|
|
117
117
|
}
|
|
118
118
|
}).then(response => {
|
|
119
119
|
this.showNotification(this.translations.main.notification_password_updated, "success")
|
|
120
|
-
setTimeout(() => { this.url.go("/login") }, 2000)
|
|
120
|
+
//setTimeout(() => { this.url.go("/login") }, 2000)
|
|
121
121
|
}).catch(error => {
|
|
122
122
|
this.showNotification(error.message, "danger")
|
|
123
123
|
}).finally(() => {
|
|
@@ -77,6 +77,11 @@ const props = defineProps({
|
|
|
77
77
|
type: Boolean,
|
|
78
78
|
default: false,
|
|
79
79
|
required: false
|
|
80
|
+
},
|
|
81
|
+
enginePath: {
|
|
82
|
+
type: String,
|
|
83
|
+
default: "/",
|
|
84
|
+
required: false
|
|
80
85
|
}
|
|
81
86
|
})
|
|
82
87
|
|
|
@@ -114,9 +119,11 @@ function toggleEngines() {
|
|
|
114
119
|
<template>
|
|
115
120
|
<header ref="lesliApplicationHeader" class="lesli-application-header">
|
|
116
121
|
<div class="lesli-application-header-container container">
|
|
117
|
-
<
|
|
118
|
-
<
|
|
119
|
-
|
|
122
|
+
<a :href="props.enginePath">
|
|
123
|
+
<figure class="image lesli-brand">
|
|
124
|
+
<img alt="App logo" class="is-hidden-touch" src="/assets/lesli/brand/app-logo.svg">
|
|
125
|
+
</figure>
|
|
126
|
+
</a>
|
|
120
127
|
<div class="lesli-application-header-left">
|
|
121
128
|
<div class="control is-medium has-icons-left has-text-grey">
|
|
122
129
|
<span class="icon is-left has-text-gray">
|
data/lib/webpack/core.js
CHANGED
|
@@ -46,7 +46,7 @@ module.exports = (env, requestedEngines) => {
|
|
|
46
46
|
"users/sessions": "LesliApp/users/sessions.js",
|
|
47
47
|
"users/passwords": "LesliApp/users/passwords.js",
|
|
48
48
|
"users/registrations": "LesliApp/users/registrations.js",
|
|
49
|
-
|
|
49
|
+
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
// alternative logins
|
|
@@ -64,6 +64,7 @@ module.exports = (env, requestedEngines) => {
|
|
|
64
64
|
},
|
|
65
65
|
entry: {
|
|
66
66
|
"lesli/users/registrations": "Lesli/devise/registrations.js",
|
|
67
|
+
"lesli/users/confirmations": "Lesli/devise/confirmations.js",
|
|
67
68
|
"lesli/users/passwords": "Lesli/devise/passwords.js",
|
|
68
69
|
"lesli/users/sessions": "Lesli/devise/sessions.js"
|
|
69
70
|
},
|
data/readme.md
CHANGED
|
@@ -7,10 +7,13 @@
|
|
|
7
7
|
<hr/>
|
|
8
8
|
<p align="center">
|
|
9
9
|
<a target="blank" href="https://rubygems.org/gems/lesli">
|
|
10
|
-
<img src="https://badge.fury.io/rb/lesli.svg"
|
|
10
|
+
<img height="22" alt="Gem Version" src="https://badge.fury.io/rb/lesli.svg"/>
|
|
11
11
|
</a>
|
|
12
12
|
<a href="https://codecov.io/github/LesliTech/Lesli">
|
|
13
|
-
<img src="https://codecov.io/github/LesliTech/Lesli/graph/badge.svg?token=2O12NENK5Y"/>
|
|
13
|
+
<img height="22" src="https://codecov.io/github/LesliTech/Lesli/graph/badge.svg?token=2O12NENK5Y"/>
|
|
14
|
+
</a>
|
|
15
|
+
<a href="https://codecov.io/github/LesliTech/Lesli">
|
|
16
|
+
<img height="22" src="https://sonarcloud.io/api/project_badges/measure?project=LesliTech_Lesli&metric=sqale_rating"/>
|
|
14
17
|
</a>
|
|
15
18
|
</p>
|
|
16
19
|
<hr/>
|
|
@@ -18,7 +21,11 @@
|
|
|
18
21
|
|
|
19
22
|
<br />
|
|
20
23
|
|
|
21
|
-
<
|
|
24
|
+
<div align="center">
|
|
25
|
+
<img
|
|
26
|
+
style="width:100%;max-width:800px;border-radius:6px;"
|
|
27
|
+
alt="Lesli logo" src="./docs/screenshot.png" />
|
|
28
|
+
</div>
|
|
22
29
|
|
|
23
30
|
### Introduction
|
|
24
31
|
|
|
@@ -39,17 +46,26 @@ Lesli is completely open source and comes with features and tools that can save
|
|
|
39
46
|
|
|
40
47
|
<br />
|
|
41
48
|
|
|
42
|
-
Lesli is officially released and supported as of version 5
|
|
49
|
+
Lesli is officially released and will be supported as of version 5.1
|
|
43
50
|
|
|
44
51
|
> Lesli goes beyond being just a starter-kit, template, admin panel or dashboard. Lesli is a Ruby on Rails gem that you can use to build modules (a.k.a. engines) and standard Rails applications leveraging its robust set of built-in features, generators, components, and industry standards. With Lesli, you have the flexibility to extend existing functionalities or develop fully customized software tailored to your specific needs.
|
|
45
52
|
|
|
46
53
|
|
|
54
|
+
<br />
|
|
55
|
+
|
|
56
|
+
### Demo
|
|
57
|
+
|
|
58
|
+
* online demo (soon)
|
|
59
|
+
* [docker demo](https://github.com/ldonis/lesli-docker-demo)
|
|
60
|
+
|
|
61
|
+
|
|
47
62
|
<br />
|
|
48
63
|
|
|
49
64
|
### Documentation
|
|
65
|
+
* [Website](https://www.lesli.dev/lesli/)
|
|
50
66
|
* [Roadmap](./docs/roadmap.md)
|
|
51
|
-
* [
|
|
52
|
-
* [
|
|
67
|
+
* [Database](./docs/database.md)
|
|
68
|
+
* [Documentation](https://www.lesli.dev/documentation/)
|
|
53
69
|
|
|
54
70
|
|
|
55
71
|
<br />
|
|
@@ -110,7 +126,7 @@ RAILS_SERVE_STATIC_FILES=true rails s --environment=production
|
|
|
110
126
|
|
|
111
127
|
<br />
|
|
112
128
|
|
|
113
|
-
### Get in touch
|
|
129
|
+
### Get in touch with Lesli
|
|
114
130
|
|
|
115
131
|
* [Website: https://www.lesli.tech](https://www.lesli.tech)
|
|
116
132
|
* [Email: hello@lesli.tech](hello@lesli.tech)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 Jeremy Thomas
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
@charset "utf-8"
|
|
2
|
+
/*! bulma.io v0.9.4 | MIT License | github.com/jgthms/bulma */
|
|
3
|
+
@import "sass/utilities/_all"
|
|
4
|
+
@import "sass/base/_all"
|
|
5
|
+
@import "sass/elements/_all"
|
|
6
|
+
@import "sass/form/_all"
|
|
7
|
+
@import "sass/components/_all"
|
|
8
|
+
@import "sass/grid/_all"
|
|
9
|
+
@import "sass/helpers/_all"
|
|
10
|
+
@import "sass/layout/_all"
|