lesli 5.0.0 → 5.0.1

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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/lesli/users/sessions.js +1 -786
  3. data/app/controllers/lesli/application_lesli_controller.rb +1 -1
  4. data/app/controllers/lesli/interfaces/application/logger.rb +36 -11
  5. data/app/helpers/lesli/navigation_helper.rb +3 -3
  6. data/app/lib/lesli/system.rb +4 -2
  7. data/app/models/lesli/account/request.rb +37 -0
  8. data/app/models/lesli/account.rb +1 -0
  9. data/app/models/lesli/system_controller.rb +65 -0
  10. data/app/models/lesli/user/request.rb +1 -0
  11. data/app/views/lesli/partials/_application-lesli-engines.html.erb +2 -2
  12. data/app/views/lesli/partials/_application-lesli-header.html.erb +2 -2
  13. data/db/migrate/v1.0/0010001210_create_lesli_account_activities.rb +1 -1
  14. data/db/migrate/v1.0/0010001510_create_lesli_account_requests.rb +45 -0
  15. data/db/migrate/v1.0/{0010003310_create_lesli_user_requests.rb → 0010003810_create_lesli_user_requests.rb} +3 -7
  16. data/lib/lesli/version.rb +2 -32
  17. data/lib/sass/lesli/layouts/application-component.scss +6 -17
  18. data/lib/sass/lesli/{elements/content.scss → layouts/application-container.scss} +0 -6
  19. data/lib/sass/lesli/layouts/application-engines.scss +57 -87
  20. data/lib/sass/lesli/layouts/application-header.scss +5 -0
  21. data/lib/sass/lesli/templates/application.scss +13 -5
  22. data/lib/sass/lesli/templates/dashboards.scss +16 -3
  23. data/lib/tasks/db.rb +1 -0
  24. data/lib/tasks/lesli_tasks.rake +6 -0
  25. data/lib/vue/application.js +53 -51
  26. data/lib/vue/layouts/application-component.vue +38 -0
  27. data/lib/vue/layouts/{dashboard-component.vue → application-container.vue} +2 -24
  28. data/lib/vue/layouts/application-engines.vue +8 -8
  29. data/lib/webpack/base.js +1 -1
  30. data/lib/webpack/engines.js +3 -5
  31. data/lib/webpack/version.js +38 -0
  32. metadata +17 -111
  33. /data/db/migrate/v1.0/{0010001310_create_lesli_account_logs.rb → 0010001410_create_lesli_account_logs.rb} +0 -0
  34. /data/db/migrate/v1.0/{0010004010_create_lesli_user_agents.rb → 0010003910_create_lesli_user_agents.rb} +0 -0
  35. /data/db/migrate/v1.0/{0010003610_create_lesli_user_logs.rb → 0010004010_create_lesli_user_logs.rb} +0 -0
@@ -93,7 +93,6 @@ Building a better future, one line of code at a time.
93
93
  // · Lesli vue components
94
94
  @import "lesli/elements/autocomplete";
95
95
  @import "lesli/elements/avatar";
96
- @import "lesli/elements/content";
97
96
  @import "lesli/elements/empty";
98
97
  @import "lesli/elements/file-uploader";
99
98
  @import "lesli/elements/gallery";
@@ -113,7 +112,6 @@ Building a better future, one line of code at a time.
113
112
  @import "lesli/elements/card";
114
113
 
115
114
 
116
-
117
115
  html,
118
116
  body {
119
117
  color: var(--lesli-font-color);
@@ -127,15 +125,25 @@ body {
127
125
  }
128
126
 
129
127
 
128
+ // ·
129
+ #lesli-application {
130
+ display: flex;
131
+ flex-wrap: wrap;
132
+ }
133
+
134
+
135
+ // · titles
130
136
  h1, h2, h3, h4, h5, h6 {
131
137
  font-family: "Montserrat", $family-primary;
132
138
  }
133
139
 
134
140
 
135
- // Vue Animation component
141
+ // · Vue Animation component
136
142
  .v-enter-active, .v-leave-active { transition: opacity 0.5s ease; }
137
143
  .v-enter-from, .v-leave-to { opacity: 0; }
138
144
 
139
145
 
140
-
141
- //@import "flag-icon"; import only where it is needed :)
146
+ // · Hide vue until vue finishes compilation
147
+ [v-cloak] {
148
+ display: none !important;
149
+ }
@@ -17,7 +17,7 @@ GNU General Public License for more details.
17
17
  You should have received a copy of the GNU General Public License
18
18
  along with this program. If not, see http://www.gnu.org/licenses/.
19
19
 
20
- Lesli · Ruby on Rails SaaS development platform.
20
+ Lesli · Ruby on Rails SaaS Development Framework.
21
21
 
22
22
  Made with ♥ by https://www.lesli.tech
23
23
  Building a better future, one line of code at a time.
@@ -27,6 +27,19 @@ Building a better future, one line of code at a time.
27
27
  @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
28
 
29
29
  // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
- // ·
31
-
30
+ // ·
32
31
  */
32
+
33
+
34
+ // ·
35
+ @import "lesli-css";
36
+
37
+
38
+ // · Configuration & variables
39
+ @import "lesli/settings/variables";
40
+
41
+
42
+ // ·
43
+ aside.lesli-application-sidebar {
44
+ display: none !important;
45
+ }
data/lib/tasks/db.rb CHANGED
@@ -71,5 +71,6 @@ def seed
71
71
 
72
72
  Lesli::Engine.load_seed
73
73
  LesliBell::Engine.load_seed if defined?(LesliBell)
74
+ LesliAudit::Engine.load_seed if defined?(LesliAudit)
74
75
 
75
76
  end
@@ -20,4 +20,10 @@ namespace :lesli do
20
20
  seed()
21
21
  end
22
22
  end
23
+ namespace :babel do
24
+ desc "Scan and register labels"
25
+ task :build => :environment do |task, args|
26
+ Rake::Task['lesli_babel:scan'].invoke
27
+ end
28
+ end
23
29
  end
@@ -42,15 +42,16 @@ window.debug = debug
42
42
 
43
43
 
44
44
  // · Loading application layout components
45
- import componentApplicationHeader from "Lesli/layouts/application-header.vue"
46
- import componentApplicationEngines from "Lesli/layouts/application-engines.vue"
45
+ import lesliApplicationHeader from "Lesli/layouts/application-header.vue"
46
+ import lesliApplicationEngines from "Lesli/layouts/application-engines.vue"
47
+ import lesliApplicationContainer from "Lesli/layouts/application-container.vue"
48
+ import lesliApplicationComponent from "Lesli/layouts/application-component.vue"
49
+
47
50
  /*
48
51
  import componentApplicationFooter from "Lesli/layouts/application-footer.vue"
49
52
  import componentApplicationSearch from "Lesli/layouts/application-search.vue"
50
53
  import componentApplicationSidebar from "Lesli/layouts/application-sidebar.vue"
51
-
52
54
  import componentApplicationAnnouncement from "Lesli/layouts/application-announcements.vue"
53
-
54
55
  import componentApplicationPanelTasks from "Lesli/panels/panel-tasks.vue"
55
56
  import componentApplicationPanelFiles from "Lesli/panels/panel-files.vue"
56
57
  import componentApplicationPanelTickets from "Lesli/panels/panel-tickets.vue"
@@ -61,14 +62,12 @@ import componentApplicationPanelAnnouncements from "Lesli/panels/panel-announcem
61
62
 
62
63
  // · Loading global layout components
63
64
  import {
64
- lesliElementApplication,
65
65
  lesliElementAutocomplete,
66
66
  lesliElementAvatar,
67
67
  lesliElementButton,
68
68
  lesliElementCalendar,
69
69
  lesliElementCard,
70
70
  lesliElementCollapse,
71
- lesliElementContent,
72
71
  lesliElementControl,
73
72
  lesliElementDropdown,
74
73
  lesliElementEmpty,
@@ -123,8 +122,8 @@ export default (engine, routes=[]) => {
123
122
 
124
123
  // · Loading Lesli local layout components
125
124
  appbuilder["components"] = {
126
- "application-component-header": componentApplicationHeader,
127
- "application-component-engines": componentApplicationEngines,
125
+ "lesli-application-header": lesliApplicationHeader,
126
+ "lesli-application-engines": lesliApplicationEngines,
128
127
  /*
129
128
  "application-component-footer": componentApplicationFooter,
130
129
  "application-component-search": componentApplicationSearch,
@@ -154,7 +153,7 @@ export default (engine, routes=[]) => {
154
153
 
155
154
 
156
155
  // · Global vue router
157
- var router = createRouter({
156
+ const router = createRouter({
158
157
  history: createWebHistory(base_path),
159
158
  routes: routes.map(route => {
160
159
  // concat the base path to all routes
@@ -188,68 +187,71 @@ export default (engine, routes=[]) => {
188
187
  .join("-"); // create a string joined by dashes
189
188
 
190
189
  // add the css class to the body
191
- if (cssclass) { document.body.classList.add("cloud_".concat(cssclass)) }
190
+ if (cssclass) { document.body.classList.add("lesli-".concat(cssclass)) }
192
191
 
193
192
  })
194
193
  })
195
194
 
196
195
 
197
196
  // · Create a beautiful Vue 3 app
198
- let app = createApp(appbuilder)
197
+ const application = createApp(appbuilder)
199
198
 
200
199
 
201
200
  // · Provide composables to make them available in all the components
202
- app.provide('msg', useLesliMsg())
203
- app.provide('url', useLesliUrl())
204
- app.provide('http', useLesliHttp())
205
- app.provide('date', useLesliDate())
206
- app.provide('date', useLesliDate())
207
- app.provide('utils', useLesliUtils())
208
- app.provide('dialog', useLesliDialog())
201
+ application.provide('msg', useLesliMsg())
202
+ application.provide('url', useLesliUrl())
203
+ application.provide('http', useLesliHttp())
204
+ application.provide('date', useLesliDate())
205
+ application.provide('date', useLesliDate())
206
+ application.provide('utils', useLesliUtils())
207
+ application.provide('dialog', useLesliDialog())
209
208
 
210
209
 
211
210
  // · Extending vue
212
- app.use(pinia)
213
- app.use(router)
211
+ application.use(pinia)
212
+ application.use(router)
213
+
214
+
215
+ // · Register global layouts
216
+ application.component("lesli-application-container", lesliApplicationContainer)
217
+ application.component("lesli-application-component", lesliApplicationComponent)
214
218
 
215
219
 
216
220
  // · Loading Lesli handmade global components
217
- app.component("lesli-application", lesliElementApplication)
218
- app.component("lesli-icon", lesliElementIcon)
219
- app.component("lesli-empty", lesliElementEmpty)
220
- app.component("lesli-header", lesliElementHeader)
221
- app.component("lesli-select", lesliElementSelect)
222
- app.component("lesli-toolbar", lesliElementToolbar)
223
- app.component("lesli-loading", lesliElementLoading)
224
- app.component("lesli-table", lesliElementTable)
225
- app.component("lesli-collapse", lesliElementCollapse)
226
- app.component("lesli-tab-item", lesliElementTabItem)
227
- app.component("lesli-tabs", lesliElementTabs)
228
- app.component("lesli-panel", lesliElementPanel)
229
- app.component("lesli-button", lesliElementButton)
230
- app.component("lesli-calendar", lesliElementCalendar)
231
- app.component("lesli-input-tag", lesliElementInputTag)
232
- app.component("lesli-file-uploader", lesliElementFileUploader)
233
- app.component("lesli-navigation-list", lesliElementNavigationList)
234
- app.component("lesli-avatar", lesliElementAvatar)
235
- app.component("lesli-toggle", lesliElementToggle)
236
- app.component("lesli-dropdown", lesliElementDropdown)
237
- app.component("lesli-map", lesliElementMap)
238
- //app.component("lesli-gallery", lesliElementGallery)
239
- app.component("lesli-autocomplete", lesliElementAutocomplete)
240
- app.component("lesli-pagination", lesliElementPagination)
241
- app.component("lesli-form", lesliElementForm)
242
- app.component("lesli-input", lesliElementInput)
243
- app.component("lesli-control", lesliElementControl)
244
- app.component("lesli-card", lesliElementCard)
245
- app.component("lesli-content", lesliElementContent)
221
+ application.component("lesli-icon", lesliElementIcon)
222
+ application.component("lesli-empty", lesliElementEmpty)
223
+ application.component("lesli-header", lesliElementHeader)
224
+ application.component("lesli-select", lesliElementSelect)
225
+ application.component("lesli-toolbar", lesliElementToolbar)
226
+ application.component("lesli-loading", lesliElementLoading)
227
+ application.component("lesli-table", lesliElementTable)
228
+ application.component("lesli-collapse", lesliElementCollapse)
229
+ application.component("lesli-tab-item", lesliElementTabItem)
230
+ application.component("lesli-tabs", lesliElementTabs)
231
+ application.component("lesli-panel", lesliElementPanel)
232
+ application.component("lesli-button", lesliElementButton)
233
+ application.component("lesli-calendar", lesliElementCalendar)
234
+ application.component("lesli-input-tag", lesliElementInputTag)
235
+ application.component("lesli-file-uploader", lesliElementFileUploader)
236
+ application.component("lesli-navigation-list", lesliElementNavigationList)
237
+ application.component("lesli-avatar", lesliElementAvatar)
238
+ application.component("lesli-toggle", lesliElementToggle)
239
+ application.component("lesli-dropdown", lesliElementDropdown)
240
+ application.component("lesli-map", lesliElementMap)
241
+ //application.component("lesli-gallery", lesliElementGallery)
242
+ application.component("lesli-autocomplete", lesliElementAutocomplete)
243
+ application.component("lesli-pagination", lesliElementPagination)
244
+ application.component("lesli-form", lesliElementForm)
245
+ application.component("lesli-input", lesliElementInput)
246
+ application.component("lesli-control", lesliElementControl)
247
+ application.component("lesli-card", lesliElementCard)
246
248
 
247
249
 
248
250
  // · Mount app once DOM is ready
249
251
  document.addEventListener("DOMContentLoaded", () => {
250
252
 
251
253
  // · mount the app on the main html tag
252
- app.mount("#lesli-application")
254
+ application.mount("#lesli-application")
253
255
 
254
256
  // · development message about vue app loaded
255
257
  if (lesli_application_development) {
@@ -265,5 +267,5 @@ export default (engine, routes=[]) => {
265
267
 
266
268
  });
267
269
 
268
- return app;
270
+ return application;
269
271
  }
@@ -0,0 +1,38 @@
1
+ <script setup>
2
+ /*
3
+
4
+ Lesli
5
+
6
+ Copyright (c) 2023, Lesli Technologies, S. A.
7
+
8
+ This program is free software: you can redistribute it and/or modify
9
+ it under the terms of the GNU General Public License as published by
10
+ the Free Software Foundation, either version 3 of the License, or
11
+ (at your option) any later version.
12
+
13
+ This program is distributed in the hope that it will be useful,
14
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ GNU General Public License for more details.
17
+
18
+ You should have received a copy of the GNU General Public License
19
+ along with this program. If not, see http://www.gnu.org/licenses/.
20
+
21
+ Lesli · Ruby on Rails SaaS Development Framework.
22
+
23
+ Made with ♥ by https://www.lesli.tech
24
+ Building a better future, one line of code at a time.
25
+
26
+ @contact hello@lesli.tech
27
+ @website https://www.lesli.tech
28
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
29
+
30
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
+ // ·
32
+ */
33
+ </script>
34
+ <template>
35
+ <div class="lesli-application-component">
36
+ <slot></slot>
37
+ </div>
38
+ </template>
@@ -32,31 +32,9 @@ Building a better future, one line of code at a time.
32
32
 
33
33
  */
34
34
 
35
-
36
-
37
- // · import vue tools
38
- import { onMounted, inject, ref } from "vue"
39
-
40
-
41
- // ·
42
- const props = defineProps({
43
- title: {
44
- type: String,
45
- require: false,
46
- default: ""
47
- },
48
- transparent: {
49
- type: Boolean,
50
- require: false,
51
- default: false
52
- }
53
- })
54
35
  </script>
55
36
  <template>
56
- <div :class="['dashboard-component', 'help', { 'transparent':props.transparent }]">
57
- <h6 class="title is-6 has-text-centered mb-3">
58
- {{ props.title }}
59
- </h6>
37
+ <section class="lesli-application-container container">
60
38
  <slot></slot>
61
- </div>
39
+ </section>
62
40
  </template>
@@ -50,16 +50,16 @@ const storeLayout = useLayout()
50
50
  v-if="storeLayout.showEngines"
51
51
  class="lesli-application-engines"
52
52
  @click="storeLayout.toggleEngines()">
53
- <div class="engines">
54
- <div class="container">
53
+ <div class="engines-container">
54
+ <div class="engines">
55
55
  <slot></slot>
56
- <button class="button is-hidden-tablet">
57
- <span class="icon">
58
- <i class="ri-close-line"></i>
59
- </span>
60
- <span>close</span>
61
- </button>
62
56
  </div>
57
+ <button class="button is-hidden-tablet">
58
+ <span class="icon">
59
+ <i class="ri-close-line"></i>
60
+ </span>
61
+ <span>close</span>
62
+ </button>
63
63
  </div>
64
64
  </section>
65
65
  </Transition>
data/lib/webpack/base.js CHANGED
@@ -113,6 +113,7 @@ module.exports = env => {
113
113
  // Set aliases as shortcuts to import modules
114
114
  Lesli: path.resolve("lib", "vue"),
115
115
  LesliAdmin: path.resolve("../", "LesliAdmin", "lib", "vue"),
116
+ LesliAudit: path.resolve("../", "LesliAudit", "lib", "vue"),
116
117
  LesliBabel: path.resolve("../", "LesliBabel", "lib", "vue"),
117
118
  LesliVault: path.resolve("../", "LesliVault", "lib", "vue"),
118
119
  LesliBell: path.resolve("../", "LesliBell", "lib", "vue"),
@@ -124,7 +125,6 @@ module.exports = env => {
124
125
  CloudTime: path.resolve("engines", "cloud_time", "lib", "vue"),
125
126
  CloudHelp: path.resolve("engines", "cloud_help", "lib", "vue"),
126
127
  CloudWork: path.resolve("engines", "cloud_work", "lib", "vue"),
127
- CloudAudit: path.resolve("engines", "cloud_audit", "lib", "vue"),
128
128
  CloudBabel: path.resolve("engines", "cloud_babel", "lib", "vue"),
129
129
  CloudFocus: path.resolve("engines", "cloud_focus", "lib", "vue"),
130
130
  CloudMailer: path.resolve("engines", "cloud_mailer", "lib", "vue"),
@@ -32,9 +32,8 @@ Building a better future, one line of code at a time.
32
32
 
33
33
 
34
34
  // · Including plugins and dependencies
35
- var fs = require("fs")
36
- var path = require("path")
37
- var yaml = require("js-yaml")
35
+ const fs = require("fs")
36
+ const path = require("path")
38
37
 
39
38
 
40
39
  // · set the path to the engines folder
@@ -152,8 +151,7 @@ module.exports = (env, requestedEngines) => {
152
151
  // check if the engine has vue apps to compile
153
152
  if (Object.keys(config.entry).length <= 0) { return }
154
153
 
155
-
156
- entries.push({ code: engine.dir, config })
154
+ entries.push({ code: engine.code, dir: engine.dir, config })
157
155
 
158
156
  })
159
157
 
@@ -0,0 +1,38 @@
1
+
2
+ const fs = require("fs")
3
+ const debug = require("lesli-js/debug/nodejs")
4
+ const dayjs = require("dayjs")
5
+ const advancedFormat = require("dayjs/plugin/advancedFormat")
6
+ dayjs.extend(advancedFormat)
7
+
8
+ // · Update compilation version for frontend and backend
9
+ module.exports = (env, engine) => {
10
+
11
+ // do not change if development
12
+ if (env.mode != "production") {
13
+ return
14
+ }
15
+
16
+
17
+ // set the path to the engine version file by default
18
+ let engine_version_file = `../../engines/${engine.dir}/lib/${engine.code}/version.rb`
19
+
20
+ fs.readFile(engine_version_file, "utf8", (err, data) => {
21
+
22
+ if (err) {
23
+ return console.log(err)
24
+ }
25
+
26
+ let build = dayjs().format("X")
27
+
28
+ data = data.split("\n")
29
+ data[2] = ` BUILD = "${build}\"`
30
+
31
+ fs.writeFile(engine_version_file, data.join("\n"), "utf8", function (err) {
32
+ if (err) return console.log(err)
33
+ })
34
+
35
+ debug.info(`update version of: ${engine.dir}, to: ${build}`)
36
+
37
+ })
38
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lesli
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 5.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Lesli Development Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-25 00:00:00.000000000 Z
11
+ date: 2023-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,106 +24,7 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '7'
27
- - !ruby/object:Gem::Dependency
28
- name: sprockets-rails
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '='
32
- - !ruby/object:Gem::Version
33
- version: 3.4.2
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '='
39
- - !ruby/object:Gem::Version
40
- version: 3.4.2
41
- - !ruby/object:Gem::Dependency
42
- name: sassc-rails
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '='
46
- - !ruby/object:Gem::Version
47
- version: 2.1.2
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '='
53
- - !ruby/object:Gem::Version
54
- version: 2.1.2
55
- - !ruby/object:Gem::Dependency
56
- name: rails-i18n
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '='
60
- - !ruby/object:Gem::Version
61
- version: 7.0.6
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '='
67
- - !ruby/object:Gem::Version
68
- version: 7.0.6
69
- - !ruby/object:Gem::Dependency
70
- name: i18n-js
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '='
74
- - !ruby/object:Gem::Version
75
- version: 3.9.2
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '='
81
- - !ruby/object:Gem::Version
82
- version: 3.9.2
83
- - !ruby/object:Gem::Dependency
84
- name: pg
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '='
88
- - !ruby/object:Gem::Version
89
- version: 1.5.3
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '='
95
- - !ruby/object:Gem::Version
96
- version: 1.5.3
97
- - !ruby/object:Gem::Dependency
98
- name: L2
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - '='
102
- - !ruby/object:Gem::Version
103
- version: 0.5.2
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - '='
109
- - !ruby/object:Gem::Version
110
- version: 0.5.2
111
- - !ruby/object:Gem::Dependency
112
- name: devise
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - '='
116
- - !ruby/object:Gem::Version
117
- version: 4.9.2
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - '='
123
- - !ruby/object:Gem::Version
124
- version: 4.9.2
125
- description: 'Lesli provides all the necessary tools to build your SaaS, empowering
126
- you and your team to focus on business and what makes your software special. '
27
+ description: Ruby on Rails SaaS Development Framework.
127
28
  email:
128
29
  - hello@lesli.tech
129
30
  executables: []
@@ -241,6 +142,7 @@ files:
241
142
  - app/models/concerns/user_polyfill.rb
242
143
  - app/models/lesli/account.rb
243
144
  - app/models/lesli/account/log.rb
145
+ - app/models/lesli/account/request.rb
244
146
  - app/models/lesli/application_lesli_record.rb
245
147
  - app/models/lesli/profile.rb
246
148
  - app/models/lesli/system_controller.rb
@@ -312,11 +214,12 @@ files:
312
214
  - db/migrate/v1.0/0010000610_create_lesli_system_controllers.rb
313
215
  - db/migrate/v1.0/0010000710_create_lesli_system_controller_actions.rb
314
216
  - db/migrate/v1.0/0010001210_create_lesli_account_activities.rb
315
- - db/migrate/v1.0/0010001310_create_lesli_account_logs.rb
217
+ - db/migrate/v1.0/0010001410_create_lesli_account_logs.rb
218
+ - db/migrate/v1.0/0010001510_create_lesli_account_requests.rb
316
219
  - db/migrate/v1.0/0010003210_create_lesli_user_sessions.rb
317
- - db/migrate/v1.0/0010003310_create_lesli_user_requests.rb
318
- - db/migrate/v1.0/0010003610_create_lesli_user_logs.rb
319
- - db/migrate/v1.0/0010004010_create_lesli_user_agents.rb
220
+ - db/migrate/v1.0/0010003810_create_lesli_user_requests.rb
221
+ - db/migrate/v1.0/0010003910_create_lesli_user_agents.rb
222
+ - db/migrate/v1.0/0010004010_create_lesli_user_logs.rb
320
223
  - db/seed/development.rb
321
224
  - db/seed/development/accounts.rb
322
225
  - db/seed/development/users.rb
@@ -381,7 +284,6 @@ files:
381
284
  - lib/sass/lesli/elements/avatar.scss
382
285
  - lib/sass/lesli/elements/calendar.scss
383
286
  - lib/sass/lesli/elements/card.scss
384
- - lib/sass/lesli/elements/content.scss
385
287
  - lib/sass/lesli/elements/empty.scss
386
288
  - lib/sass/lesli/elements/file-uploader.scss
387
289
  - lib/sass/lesli/elements/form.scss
@@ -404,6 +306,7 @@ files:
404
306
  - lib/sass/lesli/helpers/tooltip.scss
405
307
  - lib/sass/lesli/layouts/application-announcements.scss
406
308
  - lib/sass/lesli/layouts/application-component.scss
309
+ - lib/sass/lesli/layouts/application-container.scss
407
310
  - lib/sass/lesli/layouts/application-engines.scss
408
311
  - lib/sass/lesli/layouts/application-footer.scss
409
312
  - lib/sass/lesli/layouts/application-header.scss
@@ -471,13 +374,14 @@ files:
471
374
  - lib/vue/devise/registrations.js
472
375
  - lib/vue/devise/sessions.js
473
376
  - lib/vue/layouts/application-announcements.vue
377
+ - lib/vue/layouts/application-component.vue
378
+ - lib/vue/layouts/application-container.vue
474
379
  - lib/vue/layouts/application-engines.vue
475
380
  - lib/vue/layouts/application-footer.vue
476
381
  - lib/vue/layouts/application-header.vue
477
382
  - lib/vue/layouts/application-navbar.vue
478
383
  - lib/vue/layouts/application-search.vue
479
384
  - lib/vue/layouts/application-sidebar.vue
480
- - lib/vue/layouts/dashboard-component.vue
481
385
  - lib/vue/pages/errors/app.js
482
386
  - lib/vue/pages/invites/app.js
483
387
  - lib/vue/pages/mfas/application.js
@@ -524,14 +428,16 @@ files:
524
428
  - lib/webpack/base.js
525
429
  - lib/webpack/core.js
526
430
  - lib/webpack/engines.js
431
+ - lib/webpack/version.js
527
432
  - license
528
433
  - readme.md
529
434
  homepage: https://www.lesli.dev/
530
- licenses: []
435
+ licenses:
436
+ - GPL-3.0
531
437
  metadata:
532
438
  homepage_uri: https://www.lesli.dev/
533
- source_code_uri: https://github.com/LesliTech/Lesli
534
439
  changelog_uri: https://github.com/LesliTech/Lesli
440
+ source_code_uri: https://github.com/LesliTech/Lesli
535
441
  post_install_message:
536
442
  rdoc_options: []
537
443
  require_paths:
@@ -550,5 +456,5 @@ requirements: []
550
456
  rubygems_version: 3.3.7
551
457
  signing_key:
552
458
  specification_version: 4
553
- summary: Ruby on Rails SaaS development platform.
459
+ summary: Ruby on Rails SaaS Development Framework.
554
460
  test_files: []