lesli 5.0.0 → 5.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []