lesli 5.0.11 → 5.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/config/lesli_manifest.js +0 -13
- data/app/assets/icons/lesli/engine-security.svg +1 -0
- data/app/assets/icons/lesli/engine-shield.svg +1 -0
- data/app/assets/images/lesli/lesli-logo.svg +4 -0
- data/app/assets/stylesheets/lesli/templates/application.css +21862 -209
- data/app/assets/stylesheets/lesli/templates/public.css +19098 -1
- data/app/assets/stylesheets/lesli/users/confirmations.css +19219 -0
- data/app/assets/stylesheets/lesli/users/passwords.css +19202 -0
- data/app/assets/stylesheets/lesli/users/registrations.css +19594 -0
- data/app/assets/stylesheets/lesli/users/sessions.css +19594 -1
- data/app/controllers/lesli/abouts_controller.rb +12 -18
- data/app/controllers/lesli/application_controller.rb +25 -25
- data/app/controllers/lesli/application_lesli_controller.rb +5 -6
- data/app/controllers/lesli/interfaces/application/authorization.rb +1 -1
- data/app/controllers/lesli/interfaces/application/customization.rb +1 -1
- data/app/controllers/lesli/interfaces/application/requester.rb +2 -2
- data/app/controllers/lesli/interfaces/application/responder.rb +8 -8
- data/app/controllers/lesli/interfaces/controllers/actions.rb +250 -0
- data/app/controllers/lesli/interfaces/controllers/activities.rb +215 -0
- data/app/controllers/lesli/interfaces/controllers/discussions.rb +270 -0
- data/app/controllers/lesli/interfaces/controllers/files.rb +467 -0
- data/app/controllers/lesli/interfaces/controllers/subscribers.rb +234 -0
- data/app/helpers/lesli/assets_helper.rb +4 -4
- data/app/helpers/lesli/navigation_helper.rb +38 -81
- data/app/lib/lesli/system.rb +4 -3
- data/app/models/concerns/account_initializer.rb +46 -42
- data/{lib/scss/devise/registrations.scss → app/models/lesli/account/detail.rb} +7 -3
- data/app/models/lesli/account.rb +12 -5
- data/app/models/lesli/cloud_object/action.rb +70 -0
- data/app/models/lesli/cloud_object/activity.rb +311 -0
- data/app/models/lesli/cloud_object/custom_field.rb +158 -0
- data/app/models/lesli/cloud_object/discussion.rb +219 -0
- data/app/models/lesli/cloud_object/subscriber.rb +186 -0
- data/app/models/lesli/shared/dashboard.rb +16 -5
- data/app/models/lesli/user/session.rb +0 -2
- data/app/models/lesli/user.rb +13 -13
- data/app/operators/lesli/user_registration_operator.rb +3 -3
- data/app/views/lesli/layouts/application-devise.html.erb +6 -6
- data/app/views/lesli/layouts/application-lesli.html.erb +1 -1
- data/app/views/lesli/partials/_application-data.html.erb +2 -1
- data/app/views/lesli/partials/_application-lesli-engines.html.erb +14 -39
- data/app/views/lesli/partials/_application-lesli-header.html.erb +4 -4
- data/app/views/lesli/partials/_application-lesli-icons.html.erb +1 -1
- data/app/views/lesli/partials/_application-lesli-panels.html.erb +7 -7
- data/app/views/lesli/wrappers/_application-devise.html.erb +5 -7
- data/config/initializers/devise.rb +335 -335
- data/config/initializers/lesli.rb +2 -1
- data/config/locales/translations.en.yml +4 -0
- data/config/locales/translations.es.yml +4 -0
- data/config/locales/translations.fr.yml +28 -0
- data/config/locales/translations.it.yml +28 -0
- data/config/locales/translations.pt.yml +28 -0
- data/config/routes.rb +1 -10
- data/db/migrate/{v1.0/0010003010_create_lesli_user_details.rb → v1/0010000110_create_lesli_accounts.rb} +19 -13
- data/db/migrate/{v1.0/0010000110_create_lesli_accounts.rb → v1/0010001010_create_lesli_account_details.rb} +5 -7
- data/db/migrate/{v1.0/0010001010_create_lesli_account_settings.rb → v1/0010001110_create_lesli_account_settings.rb} +2 -2
- data/db/seed/development/accounts.rb +10 -7
- data/db/seed/development/users.rb +20 -20
- data/db/seed/production/accounts.rb +10 -7
- data/lib/lesli/engine.rb +2 -12
- data/lib/lesli/version.rb +2 -2
- data/lib/lesli.rb +0 -1
- data/lib/scss/cloud-objects/discussion.scss +8 -5
- data/lib/scss/layouts/application-header.scss +3 -1
- data/lib/scss/layouts/application-navbar.scss +2 -1
- data/lib/scss/{elements/msg.scss → overrides/notification.scss} +16 -18
- data/lib/scss/pages/devise-simple.scss +4 -2
- data/lib/scss/pages/devise.scss +111 -107
- data/lib/scss/panels/panel-notification.scss +1 -1
- data/lib/scss/panels/{panel-ticket.scss → panel-support-ticket.scss} +3 -4
- data/lib/scss/templates/application.scss +7 -5
- data/lib/tasks/lesli/controllers.rake +1 -1
- data/lib/tasks/lesli/db.rake +24 -12
- data/lib/tasks/lesli_tasks.rake +6 -6
- data/lib/vue/application.js +13 -12
- data/lib/vue/{refactor/shared/cloudobjects → cloudobjects}/discussion/content.vue +10 -8
- data/lib/vue/cloudobjects/discussion/element.vue +170 -0
- data/lib/vue/{refactor/shared/cloudobjects → cloudobjects}/discussion/filters.vue +1 -1
- data/lib/vue/{refactor/shared/cloudobjects → cloudobjects}/discussion/new.vue +20 -16
- data/lib/vue/{refactor/shared/cloudobjects → cloudobjects}/discussion.vue +25 -24
- data/lib/vue/{refactor/stores/cloudobjects → cloudobjects/stores}/discussion.js +7 -16
- data/lib/vue/layouts/application-header.vue +5 -5
- data/lib/vue/panels/{panel-notifications.vue → panel-bell-notifications.vue} +15 -19
- data/lib/vue/panels/panel-support-tickets.vue +161 -0
- data/lib/vue/panels/stores/bell-notifications.js +46 -0
- data/lib/vue/panels/stores/support-tickets.js +103 -0
- data/lib/vue/shared/dashboards/apps/edit.vue +10 -10
- data/lib/vue/shared/dashboards/components/form.vue +31 -40
- data/lib/vue/shared/stores/dashboard.js +2 -0
- data/lib/vue/shared/stores/layout.js +2 -1
- data/lib/{scss/devise/confirmations.scss → vue/shared/stores/users.js} +22 -21
- data/lib/vue/stores/translations.json +109 -2
- data/lib/webpack/base.js +9 -8
- data/lib/webpack/core.js +8 -6
- data/readme.md +16 -15
- metadata +49 -76
- data/app/assets/icons/lesli/engine-guard.svg +0 -1
- data/app/assets/javascripts/lesli/users/sessions.js +0 -1
- data/app/controllers/users/confirmations_controller.rb +0 -66
- data/app/controllers/users/omniauth_callbacks_controller.rb +0 -30
- data/app/controllers/users/passwords_controller.rb +0 -71
- data/app/controllers/users/registrations_controller.rb +0 -141
- data/app/controllers/users/sessions_controller.rb +0 -141
- data/app/controllers/users/unlocks_controller.rb +0 -30
- data/app/views/devise/confirmations/new.html.erb +0 -2
- data/app/views/devise/confirmations/show.html.erb +0 -63
- data/app/views/devise/mailer/confirmation_instructions.html.erb +0 -5
- data/app/views/devise/mailer/email_changed.html.erb +0 -7
- data/app/views/devise/mailer/password_change.html.erb +0 -3
- data/app/views/devise/mailer/reset_password_instructions.html.erb +0 -8
- data/app/views/devise/mailer/unlock_instructions.html.erb +0 -7
- data/app/views/devise/passwords/edit.html.erb +0 -79
- data/app/views/devise/passwords/new.html.erb +0 -75
- data/app/views/devise/registrations/edit.html.erb +0 -43
- data/app/views/devise/registrations/new.html.erb +0 -147
- data/app/views/devise/sessions/new.html.erb +0 -114
- data/app/views/devise/shared/_demo.html.erb +0 -7
- data/app/views/devise/shared/_error_messages.html.erb +0 -15
- data/app/views/devise/shared/_links.html.erb +0 -96
- data/app/views/devise/unlocks/new.html.erb +0 -16
- data/db/migrate/v1.0/0010000210_create_lesli_roles.rb +0 -59
- data/db/migrate/v1.0/0010000310_create_lesli_users.rb +0 -97
- data/db/migrate/v1.0/0010003110_create_lesli_user_settings.rb +0 -44
- data/db/migrate/v1.0/0010003210_create_lesli_user_sessions.rb +0 -55
- data/db/migrate/v1.0/0010003410_create_lesli_user_powers.rb +0 -43
- data/db/migrate/v1.0/0010004010_create_lesli_user_logs.rb +0 -45
- data/db/migrate/v1.0/0010005010_create_lesli_descriptors.rb +0 -44
- data/db/migrate/v1.0/0010005110_create_lesli_descriptor_privileges.rb +0 -45
- data/db/migrate/v1.0/0010005210_create_lesli_descriptor_activities.rb +0 -49
- data/db/migrate/v1.0/0010005510_create_lesli_role_powers.rb +0 -51
- data/db/migrate/v1.0/0010005710_create_lesli_role_privileges.rb +0 -45
- data/lib/lesli/routing.rb +0 -26
- data/lib/scss/components/editor-richtext.scss +0 -88
- data/lib/scss/devise/oauth.scss +0 -34
- data/lib/scss/devise/passwords.scss +0 -33
- data/lib/scss/devise/sessions.scss +0 -35
- data/lib/scss/elements/avatar.scss +0 -48
- data/lib/scss/elements/calendar.scss +0 -47
- data/lib/scss/elements/toggle.scss +0 -102
- data/lib/vue/devise/confirmations.js +0 -33
- data/lib/vue/devise/passwords.js +0 -137
- data/lib/vue/devise/registrations.js +0 -157
- data/lib/vue/devise/sessions.js +0 -148
- data/lib/vue/panels/panel-tickets.vue +0 -181
- data/lib/vue/refactor/shared/cloudobjects/discussion/element.vue +0 -132
- data/lib/vue/shared/stores/account.js +0 -113
- /data/app/assets/icons/lesli/{engine-driver.svg → engine-calendar.svg} +0 -0
- /data/db/migrate/{v1.0 → v1}/0010000610_create_lesli_system_controllers.rb +0 -0
- /data/db/migrate/{v1.0 → v1}/0010000710_create_lesli_system_controller_actions.rb +0 -0
- /data/db/migrate/{v1.0 → v1}/0010001210_create_lesli_account_activities.rb +0 -0
- /data/db/migrate/{v1.0 → v1}/0010001410_create_lesli_account_logs.rb +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2022, all rights reserved.
|
|
3
|
+
|
|
4
|
+
All the information provided by this platform is protected by international laws related to
|
|
5
|
+
industrial property, intellectual property, copyright and relative international laws.
|
|
6
|
+
All intellectual or industrial property rights of the code, texts, trade mark, design,
|
|
7
|
+
pictures and any other information belongs to the owner of this platform.
|
|
8
|
+
|
|
9
|
+
Without the written permission of the owner, any replication, modification,
|
|
10
|
+
transmission, publication is strictly forbidden.
|
|
11
|
+
|
|
12
|
+
For more information read the license file including with this software.
|
|
13
|
+
|
|
14
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
|
15
|
+
// ·
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
// ·
|
|
20
|
+
import { defineStore } from "pinia"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
// ·
|
|
24
|
+
export const useNotifications = defineStore("lesli.panelBellNotifications", {
|
|
25
|
+
state: () => {
|
|
26
|
+
return {
|
|
27
|
+
loading: false,
|
|
28
|
+
notifications: {
|
|
29
|
+
pagination: {},
|
|
30
|
+
records: []
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
actions: {
|
|
35
|
+
|
|
36
|
+
get() {
|
|
37
|
+
this.http.get(this.url.bell("notifications")).then(result => {
|
|
38
|
+
this.notifications.pagination = result.pagination
|
|
39
|
+
this.notifications.records = result.records
|
|
40
|
+
console.log(result)
|
|
41
|
+
}).catch(error => {
|
|
42
|
+
console.log(error)
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
})
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2022, all rights reserved.
|
|
3
|
+
|
|
4
|
+
All the information provided by this platform is protected by international laws related to
|
|
5
|
+
industrial property, intellectual property, copyright and relative international laws.
|
|
6
|
+
All intellectual or industrial property rights of the code, texts, trade mark, design,
|
|
7
|
+
pictures and any other information belongs to the owner of this platform.
|
|
8
|
+
|
|
9
|
+
Without the written permission of the owner, any replication, modification,
|
|
10
|
+
transmission, publication is strictly forbidden.
|
|
11
|
+
|
|
12
|
+
For more information read the license file including with this software.
|
|
13
|
+
|
|
14
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
|
15
|
+
// ·
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
// ·
|
|
20
|
+
import { defineStore } from "pinia"
|
|
21
|
+
//import { useLayout } from "LesliVue/stores/layout"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
// ·
|
|
25
|
+
export const useTickets = defineStore("lesli.panelSupportTickets", {
|
|
26
|
+
state: () => {
|
|
27
|
+
return {
|
|
28
|
+
loading: false,
|
|
29
|
+
loaded: false,
|
|
30
|
+
ticket: {
|
|
31
|
+
cloud_help_catalog_ticket_types_id: 2,
|
|
32
|
+
cloud_help_catalog_ticket_workspaces_id: null,
|
|
33
|
+
subject: "",
|
|
34
|
+
description: "",
|
|
35
|
+
reference_url: null
|
|
36
|
+
},
|
|
37
|
+
tickets: {},
|
|
38
|
+
options: {
|
|
39
|
+
types: [],
|
|
40
|
+
categories: [],
|
|
41
|
+
priorities: []
|
|
42
|
+
},
|
|
43
|
+
typesSelect : [],
|
|
44
|
+
workspaceSelect: [],
|
|
45
|
+
//storeLayout: useLayout()
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
actions: {
|
|
49
|
+
|
|
50
|
+
fetchTickets() {
|
|
51
|
+
this.loading = true
|
|
52
|
+
this.http.get(this.url.support("tickets")
|
|
53
|
+
.paginate(1,3) // Here we only fetch the last 3 tickets assigned to show in the support ticket panel
|
|
54
|
+
.filter({search_type: ['active'], user_type:['own']})
|
|
55
|
+
).then(result => {
|
|
56
|
+
this.tickets = result.records
|
|
57
|
+
}).catch(error => {
|
|
58
|
+
this.msg.danger(I18n.t("core.shared.messages_danger_internal_error"))
|
|
59
|
+
}).finally(() => {
|
|
60
|
+
this.loading = false
|
|
61
|
+
})
|
|
62
|
+
},
|
|
63
|
+
|
|
64
|
+
postTicket(){
|
|
65
|
+
this.loading = true
|
|
66
|
+
this.ticket.reference_url = window.location.href
|
|
67
|
+
|
|
68
|
+
this.http.post(this.url.support('tickets'), this.ticket).then(result => {
|
|
69
|
+
this.msg.success(I18n.t("core.users.messages_success_operation"))
|
|
70
|
+
this.resetForm()
|
|
71
|
+
//this.storeLayout.showTickets = false
|
|
72
|
+
}).catch(error => {
|
|
73
|
+
this.msg.danger(I18n.t("core.shared.messages_danger_internal_error"))
|
|
74
|
+
}).finally(() => {
|
|
75
|
+
this.loading = false
|
|
76
|
+
})
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
resetForm(){
|
|
80
|
+
this.ticket.subject = ''
|
|
81
|
+
this.ticket.description = ""
|
|
82
|
+
this.ticket.type = 2
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
getTicketOptions() {
|
|
86
|
+
this.loaded = true
|
|
87
|
+
this.http.get(this.url.support('tickets/options')).then(result => {
|
|
88
|
+
this.options = result
|
|
89
|
+
|
|
90
|
+
result.types.map((type)=>{
|
|
91
|
+
this.typesSelect.push({label: type.name, value: type.id})
|
|
92
|
+
})
|
|
93
|
+
|
|
94
|
+
result.workspaces.map((workspace)=>{
|
|
95
|
+
this.workspaceSelect.push({label: workspace.name, value: workspace.id})
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
}).catch(error => {
|
|
99
|
+
this.msg.danger(I18n.t("core.shared.messages_danger_internal_error"))
|
|
100
|
+
})
|
|
101
|
+
},
|
|
102
|
+
}
|
|
103
|
+
})
|
|
@@ -66,8 +66,8 @@ const props = defineProps({
|
|
|
66
66
|
|
|
67
67
|
// · translations
|
|
68
68
|
const translations = {
|
|
69
|
+
dashboards: i18n.t("lesli.dashboards"),
|
|
69
70
|
main: I18n.t(`${props.engine}.dashboards`),
|
|
70
|
-
dashboards: I18n.t('core.dashboards'),
|
|
71
71
|
core: I18n.t('core.shared')
|
|
72
72
|
}
|
|
73
73
|
|
|
@@ -126,23 +126,23 @@ onMounted(() => {
|
|
|
126
126
|
<!-- Dashboard components -->
|
|
127
127
|
<template v-if="storeDashboard.dashboard.components">
|
|
128
128
|
<div class="columns is-multiline is-variable is-4 dashboard-components">
|
|
129
|
-
<template v-for="(
|
|
130
|
-
<div :class="['column', 'is-' +
|
|
129
|
+
<template v-for="(_component, index) in storeDashboard.dashboard.components" :key="index">
|
|
130
|
+
<div :class="['column', 'is-' + _component?.layout]">
|
|
131
131
|
|
|
132
132
|
<!-- Dashboard widget component when in edition mode -->
|
|
133
133
|
<div class="edit">
|
|
134
134
|
|
|
135
135
|
<!-- Dashboard widget preview -->
|
|
136
136
|
<component
|
|
137
|
-
:component.sync="
|
|
138
|
-
:is="props.components[
|
|
137
|
+
:component.sync="_component"
|
|
138
|
+
:is="props.components[_component.component_id]">
|
|
139
139
|
</component>
|
|
140
140
|
|
|
141
141
|
<!-- Edition controls -->
|
|
142
142
|
<div class="mt-4 mb-2">
|
|
143
143
|
<div class="field has-addons is-justify-content-center">
|
|
144
144
|
<p class="control">
|
|
145
|
-
<button class="button is-small" @click="sizeDecrease(
|
|
145
|
+
<button class="button is-small" @click="sizeDecrease(_component)">
|
|
146
146
|
<span class="icon is-small">
|
|
147
147
|
<span class="material-icons">
|
|
148
148
|
remove
|
|
@@ -154,7 +154,7 @@ onMounted(() => {
|
|
|
154
154
|
size
|
|
155
155
|
</p>
|
|
156
156
|
<p class="control">
|
|
157
|
-
<button class="button is-small" @click="sizeIncrease(
|
|
157
|
+
<button class="button is-small" @click="sizeIncrease(_component)">
|
|
158
158
|
<span class="icon is-small">
|
|
159
159
|
<span class="material-icons">
|
|
160
160
|
add
|
|
@@ -166,7 +166,7 @@ onMounted(() => {
|
|
|
166
166
|
|
|
167
167
|
<div class="field has-addons is-justify-content-center">
|
|
168
168
|
<p class="control">
|
|
169
|
-
<button class="button is-small" @click="sizeDecrease(
|
|
169
|
+
<button class="button is-small" @click="sizeDecrease(_component)">
|
|
170
170
|
<span class="icon is-small">
|
|
171
171
|
<span class="material-icons">
|
|
172
172
|
chevron_left
|
|
@@ -178,7 +178,7 @@ onMounted(() => {
|
|
|
178
178
|
position
|
|
179
179
|
</p>
|
|
180
180
|
<p class="control">
|
|
181
|
-
<button class="button is-small" @click="sizeIncrease(
|
|
181
|
+
<button class="button is-small" @click="sizeIncrease(_component)">
|
|
182
182
|
<span class="icon is-small">
|
|
183
183
|
<span class="material-icons">
|
|
184
184
|
chevron_right
|
|
@@ -189,7 +189,7 @@ onMounted(() => {
|
|
|
189
189
|
</div>
|
|
190
190
|
|
|
191
191
|
<div class="has-text-centered">
|
|
192
|
-
<lesli-button small danger icon="delete" @click="remove(
|
|
192
|
+
<lesli-button small danger icon="delete" @click="remove(_component)">
|
|
193
193
|
remove
|
|
194
194
|
</lesli-button>
|
|
195
195
|
</div>
|
|
@@ -67,7 +67,9 @@ const props = defineProps({
|
|
|
67
67
|
|
|
68
68
|
// · translations
|
|
69
69
|
const translations = {
|
|
70
|
-
|
|
70
|
+
shared: i18n.t("lesli.shared"),
|
|
71
|
+
dashboards: i18n.t("lesli.dashboards"),
|
|
72
|
+
|
|
71
73
|
components: I18n.t('core.dashboard/components'),
|
|
72
74
|
core: I18n.t('core.shared'),
|
|
73
75
|
roles: I18n.t('core.roles'),
|
|
@@ -128,8 +130,9 @@ const onCreate = () => {
|
|
|
128
130
|
// ·
|
|
129
131
|
function addComponent(){
|
|
130
132
|
msg.warning(translations.dashboards.messages_warning_save_changes_reminder)
|
|
133
|
+
|
|
131
134
|
let new_component = {
|
|
132
|
-
id: `${storeDashboard.new_component_id}-${storeDashboard.default_component_configuration.index}`,
|
|
135
|
+
//id: `${storeDashboard.new_component_id}-${storeDashboard.default_component_configuration.index}`,
|
|
133
136
|
name: '',
|
|
134
137
|
component_id: storeDashboard.new_component_id.replaceAll("_", "-"),
|
|
135
138
|
layout: storeDashboard.default_component_configuration.layout,
|
|
@@ -192,7 +195,7 @@ onMounted(() => {
|
|
|
192
195
|
<div class="column is-4">
|
|
193
196
|
<div class="field">
|
|
194
197
|
<label class="label">
|
|
195
|
-
{{
|
|
198
|
+
{{ translations.dashboards.column_name }}
|
|
196
199
|
</label>
|
|
197
200
|
<div class="control">
|
|
198
201
|
<input class="input" type="text" v-model="storeDashboard.dashboard.name" required>
|
|
@@ -200,56 +203,44 @@ onMounted(() => {
|
|
|
200
203
|
</div>
|
|
201
204
|
</div>
|
|
202
205
|
|
|
203
|
-
<!-- Role -->
|
|
204
|
-
<div class="column is-4">
|
|
205
|
-
<div class="field">
|
|
206
|
-
<label class="label">{{ "translations.dashboards.column_roles_id" }}</label>
|
|
207
|
-
<div class="control">
|
|
208
|
-
<lesli-select
|
|
209
|
-
v-model="storeDashboard.dashboard.roles_id"
|
|
210
|
-
:options="storeDashboard.options.roles"
|
|
211
|
-
></lesli-select>
|
|
212
|
-
</div>
|
|
213
|
-
</div>
|
|
214
|
-
</div>
|
|
215
|
-
|
|
216
206
|
<!-- Default -->
|
|
217
207
|
<div class="column is-4">
|
|
218
208
|
<div class="field">
|
|
219
|
-
<label class="label">{{
|
|
209
|
+
<label class="label">{{ translations.dashboards.column_default }}</label>
|
|
220
210
|
<lesli-select
|
|
221
211
|
v-model="storeDashboard.dashboard.default"
|
|
222
212
|
:options="default_options">
|
|
223
213
|
</lesli-select>
|
|
224
214
|
</div>
|
|
225
215
|
</div>
|
|
226
|
-
</div>
|
|
227
|
-
|
|
228
|
-
<div class="is-flex is-justify-content-space-between">
|
|
229
216
|
|
|
230
217
|
<!-- Components -->
|
|
231
|
-
<div class="
|
|
232
|
-
<
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
<
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
218
|
+
<div class="column is-4">
|
|
219
|
+
<div class="field">
|
|
220
|
+
<label class="label">
|
|
221
|
+
{{ translations.dashboards.view_add_component }}
|
|
222
|
+
</label>
|
|
223
|
+
<div class="control">
|
|
224
|
+
<lesli-select
|
|
225
|
+
v-model="storeDashboard.new_component_id"
|
|
226
|
+
:options="storeDashboard.options.component_ids"
|
|
227
|
+
@change="addComponent">
|
|
228
|
+
</lesli-select>
|
|
229
|
+
</div>
|
|
241
230
|
</div>
|
|
242
|
-
</div>
|
|
231
|
+
</div>
|
|
232
|
+
</div>
|
|
243
233
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
</
|
|
234
|
+
<!-- Save button -->
|
|
235
|
+
<div class="buttons">
|
|
236
|
+
<lesli-button icon="save" :loading="storeDashboard.loading">
|
|
237
|
+
{{ translations.shared.button_save }}
|
|
238
|
+
</lesli-button>
|
|
239
|
+
<!--
|
|
240
|
+
<lesli-button danger icon="delete" @click="onDeleteDashboard">
|
|
241
|
+
{{ translations.dashboards.view_btn_delete_dashboard }}
|
|
242
|
+
</lesli-button>
|
|
243
|
+
-->
|
|
253
244
|
</div>
|
|
254
245
|
</lesli-form>
|
|
255
246
|
</template>
|
|
@@ -168,6 +168,8 @@ export const useDashboard = defineStore("shared.dashboard", {
|
|
|
168
168
|
|
|
169
169
|
const url = this.url[this.engine](`dashboards/${this.dashboard.id}`)
|
|
170
170
|
|
|
171
|
+
console.log(data)
|
|
172
|
+
|
|
171
173
|
return this.http.put(url, data).then(result => {
|
|
172
174
|
this.msg.success(I18n.t("core.users.messages_success_operation"))
|
|
173
175
|
this.loading = false
|
|
@@ -39,10 +39,11 @@ export const useLayout = defineStore("lesli.layout", {
|
|
|
39
39
|
state: () => {
|
|
40
40
|
return {
|
|
41
41
|
showEngines: false,
|
|
42
|
+
showSupportTickets: false,
|
|
43
|
+
|
|
42
44
|
showNotifications: false,
|
|
43
45
|
showTasks: false,
|
|
44
46
|
showFiles: false,
|
|
45
|
-
showTickets: false,
|
|
46
47
|
showProfile: false,
|
|
47
48
|
showAnnouncements: false,
|
|
48
49
|
header: {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/*
|
|
2
|
-
|
|
3
2
|
Lesli
|
|
4
3
|
|
|
5
4
|
Copyright (c) 2023, Lesli Technologies, S. A.
|
|
@@ -30,27 +29,29 @@ Building a better future, one line of code at a time.
|
|
|
30
29
|
// ·
|
|
31
30
|
*/
|
|
32
31
|
|
|
33
|
-
@import "lesli/pages/devise-simple";
|
|
34
|
-
|
|
35
32
|
|
|
36
33
|
// ·
|
|
37
|
-
|
|
38
|
-
//box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
|
|
39
|
-
padding: 4rem 0 5rem;
|
|
40
|
-
text-align: center;
|
|
41
|
-
max-width: 800px;
|
|
42
|
-
margin: 0 auto;
|
|
43
|
-
width: 90%;
|
|
44
|
-
|
|
45
|
-
svg {
|
|
46
|
-
max-width: 90px;
|
|
47
|
-
margin-bottom: 1rem;
|
|
48
|
-
fill: lesli-css-color(lime, 300);
|
|
49
|
-
}
|
|
34
|
+
import { defineStore } from "pinia"
|
|
50
35
|
|
|
51
|
-
p {
|
|
52
|
-
font-weight: 100;
|
|
53
|
-
font-size: 2rem;
|
|
54
|
-
}
|
|
55
36
|
|
|
56
|
-
|
|
37
|
+
// ·
|
|
38
|
+
export const useUsers = defineStore("lesli.users", {
|
|
39
|
+
state: () => {
|
|
40
|
+
return {
|
|
41
|
+
loading: false,
|
|
42
|
+
list: []
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
actions: {
|
|
46
|
+
list() {
|
|
47
|
+
this.loading = true
|
|
48
|
+
return this.http.get(this.url.admin("users/list")).then(response => {
|
|
49
|
+
this.list = response
|
|
50
|
+
}).catch(error => {
|
|
51
|
+
|
|
52
|
+
}).finally(() => {
|
|
53
|
+
this.loading = false
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
})
|
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
"navigation_my_profile": "My profile"
|
|
7
7
|
},
|
|
8
8
|
"dashboards": {
|
|
9
|
-
"
|
|
9
|
+
"column_default": "Default",
|
|
10
|
+
"column_name": "Name",
|
|
11
|
+
"title": "Dashboards",
|
|
12
|
+
"view_add_component": "Add component"
|
|
10
13
|
},
|
|
11
14
|
"shared": {
|
|
12
15
|
"button_add_new": "Add new",
|
|
@@ -17,6 +20,7 @@
|
|
|
17
20
|
"button_save": "Save",
|
|
18
21
|
"button_settings": "Settings",
|
|
19
22
|
"button_show": "Show",
|
|
23
|
+
"toolbar_search": "Search...",
|
|
20
24
|
"view_discussions": "Discussions",
|
|
21
25
|
"view_files": "Files",
|
|
22
26
|
"view_quick_actions": "Quick actions",
|
|
@@ -35,7 +39,10 @@
|
|
|
35
39
|
"navigation_my_profile": "Mi perfil"
|
|
36
40
|
},
|
|
37
41
|
"dashboards": {
|
|
38
|
-
"
|
|
42
|
+
"column_default": "Default",
|
|
43
|
+
"column_name": "Nombre",
|
|
44
|
+
"title": "Dashboards",
|
|
45
|
+
"view_add_component": "Agregar componente"
|
|
39
46
|
},
|
|
40
47
|
"shared": {
|
|
41
48
|
"button_add_new": "Agregar nuevo",
|
|
@@ -46,6 +53,7 @@
|
|
|
46
53
|
"button_save": "Guardar",
|
|
47
54
|
"button_settings": "Configuración",
|
|
48
55
|
"button_show": "Ver",
|
|
56
|
+
"toolbar_search": "Buscar...",
|
|
49
57
|
"view_discussions": "Discusiones",
|
|
50
58
|
"view_files": "Archivos",
|
|
51
59
|
"view_quick_actions": "Acciones rapidas",
|
|
@@ -56,5 +64,104 @@
|
|
|
56
64
|
"view_username": "Usuario"
|
|
57
65
|
}
|
|
58
66
|
}
|
|
67
|
+
},
|
|
68
|
+
"fr": {
|
|
69
|
+
"lesli": {
|
|
70
|
+
"application": {
|
|
71
|
+
"navigation_logout": ":lesli.application.navigation_logout:",
|
|
72
|
+
"navigation_my_profile": ":lesli.application.navigation_my_profile:"
|
|
73
|
+
},
|
|
74
|
+
"dashboards": {
|
|
75
|
+
"column_default": ":lesli.dashboards.column_default:",
|
|
76
|
+
"column_name": ":lesli.dashboards.column_name:",
|
|
77
|
+
"title": ":lesli.dashboards.title:",
|
|
78
|
+
"view_add_component": ":lesli.dashboards.view_add_component:"
|
|
79
|
+
},
|
|
80
|
+
"shared": {
|
|
81
|
+
"button_add_new": ":lesli.shared.button_add_new:",
|
|
82
|
+
"button_delete": ":lesli.shared.button_delete:",
|
|
83
|
+
"button_edit": ":lesli.shared.button_edit:",
|
|
84
|
+
"button_list": ":lesli.shared.button_list:",
|
|
85
|
+
"button_reload": ":lesli.shared.button_reload:",
|
|
86
|
+
"button_save": ":lesli.shared.button_save:",
|
|
87
|
+
"button_settings": ":lesli.shared.button_settings:",
|
|
88
|
+
"button_show": ":lesli.shared.button_show:",
|
|
89
|
+
"toolbar_search": ":lesli.shared.toolbar_search:",
|
|
90
|
+
"view_discussions": ":lesli.shared.view_discussions:",
|
|
91
|
+
"view_files": ":lesli.shared.view_files:",
|
|
92
|
+
"view_quick_actions": ":lesli.shared.view_quick_actions:",
|
|
93
|
+
"view_status_active": ":lesli.shared.view_status_active:",
|
|
94
|
+
"view_status_inactive": ":lesli.shared.view_status_inactive:"
|
|
95
|
+
},
|
|
96
|
+
"users/sessions": {
|
|
97
|
+
"view_username": ":lesli.users/sessions.view_username:"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"it": {
|
|
102
|
+
"lesli": {
|
|
103
|
+
"application": {
|
|
104
|
+
"navigation_logout": ":lesli.application.navigation_logout:",
|
|
105
|
+
"navigation_my_profile": ":lesli.application.navigation_my_profile:"
|
|
106
|
+
},
|
|
107
|
+
"dashboards": {
|
|
108
|
+
"column_default": ":lesli.dashboards.column_default:",
|
|
109
|
+
"column_name": ":lesli.dashboards.column_name:",
|
|
110
|
+
"title": ":lesli.dashboards.title:",
|
|
111
|
+
"view_add_component": ":lesli.dashboards.view_add_component:"
|
|
112
|
+
},
|
|
113
|
+
"shared": {
|
|
114
|
+
"button_add_new": ":lesli.shared.button_add_new:",
|
|
115
|
+
"button_delete": ":lesli.shared.button_delete:",
|
|
116
|
+
"button_edit": ":lesli.shared.button_edit:",
|
|
117
|
+
"button_list": ":lesli.shared.button_list:",
|
|
118
|
+
"button_reload": ":lesli.shared.button_reload:",
|
|
119
|
+
"button_save": ":lesli.shared.button_save:",
|
|
120
|
+
"button_settings": ":lesli.shared.button_settings:",
|
|
121
|
+
"button_show": ":lesli.shared.button_show:",
|
|
122
|
+
"toolbar_search": ":lesli.shared.toolbar_search:",
|
|
123
|
+
"view_discussions": ":lesli.shared.view_discussions:",
|
|
124
|
+
"view_files": ":lesli.shared.view_files:",
|
|
125
|
+
"view_quick_actions": ":lesli.shared.view_quick_actions:",
|
|
126
|
+
"view_status_active": ":lesli.shared.view_status_active:",
|
|
127
|
+
"view_status_inactive": ":lesli.shared.view_status_inactive:"
|
|
128
|
+
},
|
|
129
|
+
"users/sessions": {
|
|
130
|
+
"view_username": ":lesli.users/sessions.view_username:"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"pt": {
|
|
135
|
+
"lesli": {
|
|
136
|
+
"application": {
|
|
137
|
+
"navigation_logout": ":lesli.application.navigation_logout:",
|
|
138
|
+
"navigation_my_profile": ":lesli.application.navigation_my_profile:"
|
|
139
|
+
},
|
|
140
|
+
"dashboards": {
|
|
141
|
+
"column_default": ":lesli.dashboards.column_default:",
|
|
142
|
+
"column_name": ":lesli.dashboards.column_name:",
|
|
143
|
+
"title": ":lesli.dashboards.title:",
|
|
144
|
+
"view_add_component": ":lesli.dashboards.view_add_component:"
|
|
145
|
+
},
|
|
146
|
+
"shared": {
|
|
147
|
+
"button_add_new": ":lesli.shared.button_add_new:",
|
|
148
|
+
"button_delete": ":lesli.shared.button_delete:",
|
|
149
|
+
"button_edit": ":lesli.shared.button_edit:",
|
|
150
|
+
"button_list": ":lesli.shared.button_list:",
|
|
151
|
+
"button_reload": ":lesli.shared.button_reload:",
|
|
152
|
+
"button_save": ":lesli.shared.button_save:",
|
|
153
|
+
"button_settings": ":lesli.shared.button_settings:",
|
|
154
|
+
"button_show": ":lesli.shared.button_show:",
|
|
155
|
+
"toolbar_search": ":lesli.shared.toolbar_search:",
|
|
156
|
+
"view_discussions": ":lesli.shared.view_discussions:",
|
|
157
|
+
"view_files": ":lesli.shared.view_files:",
|
|
158
|
+
"view_quick_actions": ":lesli.shared.view_quick_actions:",
|
|
159
|
+
"view_status_active": ":lesli.shared.view_status_active:",
|
|
160
|
+
"view_status_inactive": ":lesli.shared.view_status_inactive:"
|
|
161
|
+
},
|
|
162
|
+
"users/sessions": {
|
|
163
|
+
"view_username": ":lesli.users/sessions.view_username:"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
59
166
|
}
|
|
60
167
|
}
|
data/lib/webpack/base.js
CHANGED
|
@@ -19,7 +19,7 @@ along with this program. If not, see http://www.gnu.org/licenses/.
|
|
|
19
19
|
|
|
20
20
|
Lesli · Ruby on Rails SaaS Development Framework.
|
|
21
21
|
|
|
22
|
-
Made with ♥ by
|
|
22
|
+
Made with ♥ by LesliTech
|
|
23
23
|
Building a better future, one line of code at a time.
|
|
24
24
|
|
|
25
25
|
@contact hello@lesli.tech
|
|
@@ -61,10 +61,10 @@ module.exports = env => ({
|
|
|
61
61
|
},
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
// Set max size limit for JS bundles to
|
|
64
|
+
// Set max size limit for JS bundles to 1.5 MiB
|
|
65
65
|
performance: {
|
|
66
|
-
maxAssetSize:
|
|
67
|
-
maxEntrypointSize:
|
|
66
|
+
maxAssetSize: 1572864,
|
|
67
|
+
maxEntrypointSize: 1572864
|
|
68
68
|
},
|
|
69
69
|
|
|
70
70
|
|
|
@@ -116,10 +116,11 @@ module.exports = env => ({
|
|
|
116
116
|
LesliAdmin: path.resolve("../", "LesliAdmin", "lib"),
|
|
117
117
|
LesliAudit: path.resolve("../", "LesliAudit", "lib"),
|
|
118
118
|
LesliBabel: path.resolve("../", "LesliBabel", "lib"),
|
|
119
|
-
|
|
119
|
+
LesliShield: path.resolve("../", "LesliShield", "lib"),
|
|
120
120
|
LesliLetter: path.resolve("../", "LesliLetter", "lib"),
|
|
121
|
-
LesliDriver: path.resolve("../", "LesliDriver", "lib"),
|
|
122
121
|
LesliSupport: path.resolve("../", "LesliSupport", "lib"),
|
|
122
|
+
LesliSecurity: path.resolve("../", "LesliSecurity", "lib"),
|
|
123
|
+
LesliCalendar: path.resolve("../", "LesliCalendar", "lib"),
|
|
123
124
|
LesliDashboard: path.resolve("../", "LesliDashboard", "lib"),
|
|
124
125
|
|
|
125
126
|
LesliBuilder: path.resolve("engines", "lesli_builder", "lib", "vue")
|
|
@@ -133,7 +134,7 @@ module.exports = env => ({
|
|
|
133
134
|
options: {
|
|
134
135
|
compilerOptions: {
|
|
135
136
|
// ignore custom html components & elements
|
|
136
|
-
isCustomElement: tag => tag
|
|
137
|
+
isCustomElement: tag => tag.startsWith('trix-')
|
|
137
138
|
}
|
|
138
139
|
}
|
|
139
140
|
}
|
|
@@ -179,7 +180,7 @@ module.exports = env => ({
|
|
|
179
180
|
lesli_application_development: JSON.stringify(!env.production),
|
|
180
181
|
lesli_application_version: JSON.stringify(dayjs().format("YYMMDD.HHmm")),
|
|
181
182
|
__VUE_OPTIONS_API__: true,
|
|
182
|
-
__VUE_PROD_DEVTOOLS__:
|
|
183
|
+
__VUE_PROD_DEVTOOLS__: false
|
|
183
184
|
})
|
|
184
185
|
]
|
|
185
186
|
})
|
data/lib/webpack/core.js
CHANGED
|
@@ -63,19 +63,21 @@ module.exports = (env, requestedEngines) => {
|
|
|
63
63
|
//"errors/application": "LesliApp/errors/app.js"
|
|
64
64
|
},
|
|
65
65
|
entry: {
|
|
66
|
-
"lesli/users/
|
|
67
|
-
|
|
68
|
-
"lesli/users/
|
|
66
|
+
"lesli/users/passwords": "Lesli/devise/passwords.js",
|
|
67
|
+
|
|
68
|
+
"lesli/users/registrations": ["Lesli/vue/devise/registrations.js", "Lesli/scss/devise/registrations.scss"],
|
|
69
|
+
"lesli/users/confirmations": ["Lesli/vue/devise/confirmations.js", "Lesli/scss/devise/confirmations.scss"],
|
|
70
|
+
"lesli/users/passwords": ["Lesli/vue/devise/passwords.js", "Lesli/scss/devise/passwords.scss"],
|
|
71
|
+
"lesli/users/sessions": ["Lesli/vue/devise/sessions.js", "Lesli/scss/devise/sessions.scss"]
|
|
69
72
|
},
|
|
70
73
|
entry: {
|
|
71
74
|
"lesli/templates/public": "Lesli/scss/templates/public.scss",
|
|
72
|
-
"lesli/templates/application": "Lesli/scss/templates/application.scss"
|
|
73
|
-
"lesli/users/sessions": ["Lesli/vue/devise/sessions.js", "Lesli/scss/devise/sessions.scss"]
|
|
75
|
+
"lesli/templates/application": "Lesli/scss/templates/application.scss"
|
|
74
76
|
},
|
|
75
77
|
output: {
|
|
76
78
|
// the output for stylesheets is defined in the webpack file itself
|
|
77
79
|
path: path.resolve("app", "assets"),
|
|
78
|
-
filename:
|
|
80
|
+
filename: "javascripts/[name].js"
|
|
79
81
|
}
|
|
80
82
|
}
|
|
81
83
|
|