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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/lesli/users/sessions.js +1 -786
- data/app/controllers/lesli/application_lesli_controller.rb +1 -1
- data/app/controllers/lesli/interfaces/application/logger.rb +36 -11
- data/app/helpers/lesli/navigation_helper.rb +3 -3
- data/app/lib/lesli/system.rb +4 -2
- data/app/models/lesli/account/request.rb +37 -0
- data/app/models/lesli/account.rb +1 -0
- data/app/models/lesli/system_controller.rb +65 -0
- data/app/models/lesli/user/request.rb +1 -0
- data/app/views/lesli/partials/_application-lesli-engines.html.erb +2 -2
- data/app/views/lesli/partials/_application-lesli-header.html.erb +2 -2
- data/db/migrate/v1.0/0010001210_create_lesli_account_activities.rb +1 -1
- data/db/migrate/v1.0/0010001510_create_lesli_account_requests.rb +45 -0
- data/db/migrate/v1.0/{0010003310_create_lesli_user_requests.rb → 0010003810_create_lesli_user_requests.rb} +3 -7
- data/lib/lesli/version.rb +2 -32
- data/lib/sass/lesli/layouts/application-component.scss +6 -17
- data/lib/sass/lesli/{elements/content.scss → layouts/application-container.scss} +0 -6
- data/lib/sass/lesli/layouts/application-engines.scss +57 -87
- data/lib/sass/lesli/layouts/application-header.scss +5 -0
- data/lib/sass/lesli/templates/application.scss +13 -5
- data/lib/sass/lesli/templates/dashboards.scss +16 -3
- data/lib/tasks/db.rb +1 -0
- data/lib/tasks/lesli_tasks.rake +6 -0
- data/lib/vue/application.js +53 -51
- data/lib/vue/layouts/application-component.vue +38 -0
- data/lib/vue/layouts/{dashboard-component.vue → application-container.vue} +2 -24
- data/lib/vue/layouts/application-engines.vue +8 -8
- data/lib/webpack/base.js +1 -1
- data/lib/webpack/engines.js +3 -5
- data/lib/webpack/version.js +38 -0
- metadata +17 -111
- /data/db/migrate/v1.0/{0010001310_create_lesli_account_logs.rb → 0010001410_create_lesli_account_logs.rb} +0 -0
- /data/db/migrate/v1.0/{0010004010_create_lesli_user_agents.rb → 0010003910_create_lesli_user_agents.rb} +0 -0
- /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
|
-
|
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
|
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
data/lib/tasks/lesli_tasks.rake
CHANGED
data/lib/vue/application.js
CHANGED
@@ -42,15 +42,16 @@ window.debug = debug
|
|
42
42
|
|
43
43
|
|
44
44
|
// · Loading application layout components
|
45
|
-
import
|
46
|
-
import
|
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-
|
127
|
-
"application-
|
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
|
-
|
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("
|
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
|
-
|
197
|
+
const application = createApp(appbuilder)
|
199
198
|
|
200
199
|
|
201
200
|
// · Provide composables to make them available in all the components
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
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
|
-
|
213
|
-
|
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
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
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
|
-
|
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
|
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
|
-
<
|
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
|
-
</
|
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="
|
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"),
|
data/lib/webpack/engines.js
CHANGED
@@ -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
|
-
|
36
|
-
|
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.
|
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-
|
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
|
-
|
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/
|
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/
|
318
|
-
- db/migrate/v1.0/
|
319
|
-
- db/migrate/v1.0/
|
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
|
459
|
+
summary: Ruby on Rails SaaS Development Framework.
|
554
460
|
test_files: []
|
File without changes
|
File without changes
|
/data/db/migrate/v1.0/{0010003610_create_lesli_user_logs.rb → 0010004010_create_lesli_user_logs.rb}
RENAMED
File without changes
|