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.
Files changed (166) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/lesli_manifest.js +2 -1
  3. data/app/assets/javascripts/lesli/users/confirmations.js +32 -0
  4. data/app/assets/javascripts/lesli/users/passwords.js +3 -3
  5. data/app/assets/javascripts/lesli/users/registrations.js +2 -2
  6. data/app/assets/javascripts/lesli/users/sessions.js +2 -2
  7. data/app/assets/stylesheets/lesli/users/confirmations.scss +28 -6
  8. data/app/controllers/lesli/abouts_controller.rb +66 -0
  9. data/app/controllers/lesli/interfaces/application/authorization.rb +2 -2
  10. data/app/controllers/lesli/interfaces/application/logger.rb +14 -38
  11. data/app/controllers/lesli/roles_controller.rb +3 -1
  12. data/app/controllers/users/confirmations_controller.rb +63 -27
  13. data/app/controllers/users/passwords_controller.rb +70 -30
  14. data/app/controllers/users/sessions_controller.rb +2 -4
  15. data/app/lib/lesli/system.rb +13 -5
  16. data/app/mailers/lesli/application_lesli_mailer.rb +8 -19
  17. data/app/mailers/lesli/devise_mailer.rb +29 -3
  18. data/app/models/concerns/account_initializer.rb +91 -0
  19. data/app/models/concerns/{user_guard.rb → user_security.rb} +7 -8
  20. data/app/models/lesli/account.rb +8 -26
  21. data/app/models/lesli/application_lesli_record.rb +1 -0
  22. data/app/models/lesli/descriptor/privilege.rb +38 -0
  23. data/app/models/lesli/descriptor.rb +18 -1
  24. data/app/models/lesli/role/power.rb +70 -0
  25. data/app/models/lesli/role/privilege.rb +38 -0
  26. data/app/models/lesli/role.rb +20 -15
  27. data/app/models/lesli/user/{role.rb → power.rb} +1 -1
  28. data/app/{services/lesli/role_service.rb → models/lesli/user/setting.rb} +10 -9
  29. data/app/models/lesli/user.rb +11 -20
  30. data/app/operators/lesli/descriptor_privilege_operator.rb +75 -0
  31. data/app/operators/lesli/role_power_operator.rb +108 -0
  32. data/app/operators/lesli/user_registration_operator.rb +121 -0
  33. data/app/services/lesli/user_service.rb +2 -4
  34. data/app/services/lesli/{user/session_service.rb → user_session_service.rb} +11 -4
  35. data/app/views/devise/confirmations/new.html.erb +0 -14
  36. data/app/views/devise/confirmations/show.html.erb +63 -0
  37. data/app/views/devise/passwords/edit.html.erb +78 -24
  38. data/app/views/devise/passwords/new.html.erb +1 -2
  39. data/app/views/lesli/emails/devise_mailer/confirmation_instructions.html.erb +1 -1
  40. data/app/views/lesli/emails/devise_mailer/reset_password_instructions.html.erb +23 -0
  41. data/app/views/lesli/partials/_application-lesli-header.html.erb +3 -1
  42. data/config/initializers/devise.rb +2 -0
  43. data/config/routes.rb +2 -0
  44. data/db/migrate/v1.0/0010000110_create_lesli_accounts.rb +2 -0
  45. data/db/{tables/0010001010_create_account_settings.rb → migrate/v1.0/0010001010_create_lesli_account_settings.rb} +5 -5
  46. data/db/{tables/0010003110_create_user_settings.rb → migrate/v1.0/0010003110_create_lesli_user_settings.rb} +4 -4
  47. data/db/migrate/v1.0/0010003210_create_lesli_user_sessions.rb +6 -2
  48. data/db/migrate/v1.0/{0010003410_create_lesli_user_roles.rb → 0010003410_create_lesli_user_powers.rb} +4 -4
  49. data/db/migrate/v1.0/0010005010_create_lesli_descriptors.rb +1 -1
  50. data/db/migrate/v1.0/{0010003910_create_lesli_user_agents.rb → 0010005510_create_lesli_role_powers.rb} +7 -9
  51. data/db/{tables/0010005710_create_role_privileges.rb → migrate/v1.0/0010005710_create_lesli_role_privileges.rb} +6 -6
  52. data/db/seed/development/users.rb +4 -4
  53. data/db/seed/tools.rb +4 -4
  54. data/lib/lesli/engine.rb +33 -10
  55. data/lib/lesli/version.rb +1 -1
  56. data/lib/sass/lesli/bulma/loader.scss +3 -0
  57. data/lib/sass/lesli/pages/devise-simple.scss +2 -1
  58. data/lib/tasks/lesli/controllers.rake +3 -6
  59. data/lib/tasks/lesli/db.rake +11 -1
  60. data/lib/tasks/lesli/role.rake +54 -0
  61. data/lib/vue/application.js +9 -2
  62. data/lib/vue/devise/passwords.js +3 -3
  63. data/lib/vue/layouts/application-header.vue +10 -3
  64. data/lib/webpack/core.js +2 -1
  65. data/readme.md +23 -7
  66. data/vendor/bulma/LICENSE +21 -0
  67. data/vendor/bulma/bulma.sass +10 -0
  68. data/vendor/bulma/css/bulma-rtl.css +11851 -0
  69. data/vendor/bulma/css/bulma-rtl.min.css +1 -0
  70. data/vendor/bulma/css/bulma.css +11851 -0
  71. data/vendor/bulma/css/bulma.min.css +1 -0
  72. data/vendor/bulma/sass/base/_all.sass +6 -0
  73. data/vendor/bulma/sass/base/animations.sass +5 -0
  74. data/vendor/bulma/sass/base/generic.sass +145 -0
  75. data/vendor/bulma/sass/base/helpers.sass +1 -0
  76. data/vendor/bulma/sass/base/minireset.sass +79 -0
  77. data/vendor/bulma/sass/components/_all.sass +15 -0
  78. data/vendor/bulma/sass/components/breadcrumb.sass +77 -0
  79. data/vendor/bulma/sass/components/card.sass +103 -0
  80. data/vendor/bulma/sass/components/dropdown.sass +83 -0
  81. data/vendor/bulma/sass/components/level.sass +79 -0
  82. data/vendor/bulma/sass/components/media.sass +59 -0
  83. data/vendor/bulma/sass/components/menu.sass +59 -0
  84. data/vendor/bulma/sass/components/message.sass +101 -0
  85. data/vendor/bulma/sass/components/modal.sass +117 -0
  86. data/vendor/bulma/sass/components/navbar.sass +446 -0
  87. data/vendor/bulma/sass/components/pagination.sass +167 -0
  88. data/vendor/bulma/sass/components/panel.sass +121 -0
  89. data/vendor/bulma/sass/components/tabs.sass +176 -0
  90. data/vendor/bulma/sass/elements/_all.sass +16 -0
  91. data/vendor/bulma/sass/elements/box.sass +26 -0
  92. data/vendor/bulma/sass/elements/button.sass +357 -0
  93. data/vendor/bulma/sass/elements/container.sass +29 -0
  94. data/vendor/bulma/sass/elements/content.sass +162 -0
  95. data/vendor/bulma/sass/elements/form.sass +1 -0
  96. data/vendor/bulma/sass/elements/icon.sass +46 -0
  97. data/vendor/bulma/sass/elements/image.sass +73 -0
  98. data/vendor/bulma/sass/elements/notification.sass +52 -0
  99. data/vendor/bulma/sass/elements/other.sass +31 -0
  100. data/vendor/bulma/sass/elements/progress.sass +73 -0
  101. data/vendor/bulma/sass/elements/table.sass +134 -0
  102. data/vendor/bulma/sass/elements/tag.sass +140 -0
  103. data/vendor/bulma/sass/elements/title.sass +70 -0
  104. data/vendor/bulma/sass/form/_all.sass +9 -0
  105. data/vendor/bulma/sass/form/checkbox-radio.sass +22 -0
  106. data/vendor/bulma/sass/form/file.sass +184 -0
  107. data/vendor/bulma/sass/form/input-textarea.sass +66 -0
  108. data/vendor/bulma/sass/form/select.sass +88 -0
  109. data/vendor/bulma/sass/form/shared.sass +60 -0
  110. data/vendor/bulma/sass/form/tools.sass +215 -0
  111. data/vendor/bulma/sass/grid/_all.sass +5 -0
  112. data/vendor/bulma/sass/grid/columns.sass +513 -0
  113. data/vendor/bulma/sass/grid/tiles.sass +36 -0
  114. data/vendor/bulma/sass/helpers/_all.sass +12 -0
  115. data/vendor/bulma/sass/helpers/color.sass +39 -0
  116. data/vendor/bulma/sass/helpers/flexbox.sass +35 -0
  117. data/vendor/bulma/sass/helpers/float.sass +10 -0
  118. data/vendor/bulma/sass/helpers/other.sass +14 -0
  119. data/vendor/bulma/sass/helpers/overflow.sass +2 -0
  120. data/vendor/bulma/sass/helpers/position.sass +7 -0
  121. data/vendor/bulma/sass/helpers/spacing.sass +31 -0
  122. data/vendor/bulma/sass/helpers/typography.sass +103 -0
  123. data/vendor/bulma/sass/helpers/visibility.sass +122 -0
  124. data/vendor/bulma/sass/layout/_all.sass +6 -0
  125. data/vendor/bulma/sass/layout/footer.sass +11 -0
  126. data/vendor/bulma/sass/layout/hero.sass +153 -0
  127. data/vendor/bulma/sass/layout/section.sass +17 -0
  128. data/vendor/bulma/sass/utilities/_all.sass +9 -0
  129. data/vendor/bulma/sass/utilities/animations.sass +1 -0
  130. data/vendor/bulma/sass/utilities/controls.sass +49 -0
  131. data/vendor/bulma/sass/utilities/derived-variables.sass +114 -0
  132. data/vendor/bulma/sass/utilities/extends.sass +25 -0
  133. data/vendor/bulma/sass/utilities/functions.sass +135 -0
  134. data/vendor/bulma/sass/utilities/initial-variables.sass +79 -0
  135. data/vendor/bulma/sass/utilities/mixins.sass +303 -0
  136. data/vendor/lesli-css/_index.scss +34 -0
  137. data/vendor/lesli-css/lesli.scss +51 -0
  138. data/vendor/lesli-css/license +28 -0
  139. data/vendor/lesli-css/src/base/fonts.scss +50 -0
  140. data/vendor/lesli-css/src/base/normalize.scss +118 -0
  141. data/vendor/lesli-css/src/components/blockquote.scss +61 -0
  142. data/vendor/lesli-css/src/components/columns.scss +92 -0
  143. data/vendor/lesli-css/src/components/container.scss +47 -0
  144. data/vendor/lesli-css/src/components/grid.scss +0 -0
  145. data/vendor/lesli-css/src/components/navigation.scss +59 -0
  146. data/vendor/lesli-css/src/functions/colors.scss +184 -0
  147. data/vendor/lesli-css/src/helpers/units.scss +44 -0
  148. data/vendor/lesli-css/src/mixins/breakpoint.scss +184 -0
  149. data/vendor/lesli-css/src/mixins/flex.scss +80 -0
  150. data/vendor/lesli-css/src/mixins/scrollbar.scss +46 -0
  151. data/vendor/lesli-css/src/settings/variables.scss +26 -0
  152. data/vendor/lesli-css/tests/base/normalize.spec.scss +125 -0
  153. data/vendor/lesli-css/tests/functions/colors.spec.scss +117 -0
  154. data/vendor/lesli-css/tests/mixins/breakpoint.spec.scss +429 -0
  155. data/vendor/lesli-css/tests/mixins/scrollbar.spec.scss +82 -0
  156. data/vendor/lesli-css/vendor/normalize.scss +351 -0
  157. data/vendor/remixicon/License +201 -0
  158. data/vendor/remixicon/fonts/remixicon.css +2583 -0
  159. metadata +116 -18
  160. data/app/models/concerns/account_engines.rb +0 -249
  161. data/app/models/concerns/user_polyfill.rb +0 -134
  162. data/config/locales/translations.en.yml +0 -7
  163. data/config/locales/translations.es.yml +0 -7
  164. data/db/migrate/v1.0/0010001510_create_lesli_account_requests.rb +0 -45
  165. data/db/migrate/v1.0/0010003810_create_lesli_user_requests.rb +0 -44
  166. 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
- # Lesli standard engine configuration
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
- # register engine migrations path
78
- unless app.root.to_s.match root.to_s
79
- config.paths["db/migrate"].expanded.each do |expanded_path|
80
- app.config.paths["db/migrate"] << expanded_path
81
- end
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
@@ -1,4 +1,4 @@
1
1
  module Lesli
2
- VERSION = "5.0.2"
2
+ VERSION = "5.0.4"
3
3
  BUILD = "1697000148"
4
4
  end
@@ -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
 
@@ -41,8 +41,9 @@ main {
41
41
  .hero-head {
42
42
  padding: 8rem 0 4rem;
43
43
 
44
- .app-logo {
44
+ .lesli-logo {
45
45
  max-width: 130px;
46
+ margin-bottom: 1rem;
46
47
  }
47
48
  }
48
49
 
@@ -80,11 +80,8 @@ namespace :lesli do
80
80
 
81
81
  # Global container
82
82
  controller_list = {
83
- "core" => {}
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["core"][route[:controller]] = [] unless controller_list["core"][route[:controller]]
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["core"][route[:controller]].push(route[:action])
100
+ controller_list["app"][route[:controller]].push(route[:action])
104
101
 
105
102
  end
106
103
 
@@ -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
- Rake::Task['lesli:controllers:build'].invoke
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
@@ -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-control", lesliElementControl)
247
- application.component("lesli-card", lesliElementCard)
252
+ application.component("lesli-link", lesliElementLink)
253
+
254
+
248
255
 
249
256
 
250
257
  // · Mount app once DOM is ready
@@ -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
- <figure class="image lesli-brand">
118
- <img alt="App logo" class="is-hidden-touch" src="/assets/lesli/brand/app-logo.svg">
119
- </figure>
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
- "users/confirmations": "LesliApp/users/confirmations.js",
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" alt="Gem Version" height="20">
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
- <img style="width:100%; border-radius: 6px;" alt="Lesli logo" src="./docs/screenshot.png" />
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
- * [Core database](./docs/database.md)
52
- * [Main documentation](https://www.lesli.dev/documentation/)
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"