lesli 5.0.11 → 5.0.13
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/brand/app-logo.png +0 -0
- data/app/assets/images/lesli/lesli-logo.svg +4 -0
- data/app/assets/javascripts/lesli/templates/application.js +14 -0
- data/app/assets/javascripts/lesli/templates/public.js +14 -0
- data/app/assets/stylesheets/lesli/templates/application.css +1365 -293
- data/app/assets/stylesheets/lesli/templates/public.css +1 -1
- data/app/controllers/lesli/abouts_controller.rb +12 -18
- data/app/controllers/lesli/application_controller.rb +26 -25
- data/app/controllers/lesli/application_lesli_controller.rb +5 -6
- data/app/controllers/lesli/interfaces/application/authorization.rb +2 -2
- 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 +26 -8
- data/app/helpers/lesli/navigation_helper.rb +53 -92
- data/app/lib/date2.rb +8 -0
- data/app/lib/lesli/system.rb +17 -4
- data/app/models/concerns/account_initializer.rb +46 -42
- data/app/models/concerns/user_extensions.rb +6 -0
- 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/controller_operator.rb +4 -1
- data/app/operators/lesli/user_registration_operator.rb +3 -3
- data/app/services/lesli/user_service.rb +1 -1
- data/app/views/lesli/layouts/application-devise.html.erb +6 -6
- data/app/views/lesli/layouts/application-lesli.html.erb +3 -1
- data/app/views/lesli/partials/_application-data.html.erb +5 -4
- data/app/views/lesli/partials/_application-lesli-engines.html.erb +14 -39
- data/app/views/lesli/partials/_application-lesli-header.html.erb +50 -25
- data/app/views/lesli/partials/_application-lesli-icons.html.erb +1 -1
- data/app/views/lesli/partials/_application-lesli-javascript.html.erb +2 -2
- data/app/views/lesli/partials/_application-lesli-navigation.html.erb +8 -1
- data/app/views/lesli/partials/_application-lesli-panels.html.erb +7 -7
- data/app/views/lesli/partials/_application-lesli-scss.html.erb +2 -2
- data/app/views/lesli/wrappers/_application-devise-simple.erb +1 -1
- data/app/views/lesli/wrappers/_application-devise.html.erb +5 -7
- data/config/initializers/devise.rb +335 -335
- data/config/initializers/lesli.rb +9 -2
- data/config/locales/translations.en.yml +9 -3
- data/config/locales/translations.es.yml +9 -3
- data/config/locales/translations.fr.yml +30 -0
- data/config/locales/translations.it.yml +30 -0
- data/config/locales/translations.pt.yml +30 -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/generators/application_lesli_generator.rb +164 -0
- data/lib/generators/lesli/spec/USAGE +8 -0
- data/lib/generators/lesli/spec/spec_generator.rb +25 -0
- data/lib/generators/lesli/spec/templates/spec-factory.template +17 -0
- data/lib/generators/lesli/spec/templates/spec-model.template +70 -0
- data/lib/lesli/configuration.rb +1 -1
- data/lib/lesli/engine.rb +3 -14
- data/lib/{scss/devise/passwords.scss → lesli/r_spec.rb} +12 -5
- data/lib/lesli/routing.rb +51 -20
- data/lib/lesli/version.rb +2 -2
- data/lib/lesli.rb +1 -0
- data/lib/scss/cloud-objects/discussion.scss +8 -5
- data/lib/scss/layouts/application-component.scss +1 -1
- data/lib/scss/{devise/sessions.scss → layouts/application-content.scss} +4 -4
- data/lib/scss/layouts/application-header.scss +38 -108
- data/lib/scss/layouts/{application-navbar.scss → application-navigation.scss} +23 -5
- data/lib/scss/layouts/application-search.scss +1 -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/settings/variables.scss +1 -1
- data/lib/scss/templates/application.scss +14 -41
- data/lib/scss/templates/public.scss +6 -4
- data/lib/tasks/lesli/controllers.rake +1 -1
- data/lib/tasks/lesli/db.rake +24 -12
- data/lib/tasks/lesli_tasks.rake +7 -7
- data/lib/vue/application.js +18 -15
- 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-component.vue +2 -2
- data/lib/vue/layouts/application-header.vue +109 -88
- data/lib/vue/panels/{panel-notifications.vue → panel-bell-notifications.vue} +15 -19
- data/lib/vue/panels/panel-support-tickets.vue +163 -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 +119 -2
- data/lib/webpack/base.js +18 -12
- data/lib/webpack/core.js +16 -12
- data/lib/webpack/engines.js +3 -1
- data/lib/webpack/root.js +105 -0
- data/lib/webpack/version.js +37 -0
- data/readme.md +16 -15
- metadata +58 -92
- data/app/assets/icons/lesli/engine-guard.svg +0 -1
- data/app/assets/javascripts/lesli/users/sessions.js +0 -1
- data/app/assets/stylesheets/lesli/users/sessions.css +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/scss/bulma/loader.scss +0 -92
- data/lib/scss/components/editor-richtext.scss +0 -88
- data/lib/scss/devise/oauth.scss +0 -34
- 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
|
@@ -66,8 +66,8 @@ const props = defineProps({
|
|
|
66
66
|
|
|
67
67
|
// · translations
|
|
68
68
|
const translations = {
|
|
69
|
+
dashboards: {}, //i 18n.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: {}, //i 18n.t("lesli.shared"),
|
|
71
|
+
dashboards: {}, //i 18n.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,9 @@
|
|
|
17
20
|
"button_save": "Save",
|
|
18
21
|
"button_settings": "Settings",
|
|
19
22
|
"button_show": "Show",
|
|
23
|
+
"message_operation_error": "Operation failed. Please try again.",
|
|
24
|
+
"message_operation_success": "Operation completed successfully",
|
|
25
|
+
"toolbar_search": "Search...",
|
|
20
26
|
"view_discussions": "Discussions",
|
|
21
27
|
"view_files": "Files",
|
|
22
28
|
"view_quick_actions": "Quick actions",
|
|
@@ -35,7 +41,10 @@
|
|
|
35
41
|
"navigation_my_profile": "Mi perfil"
|
|
36
42
|
},
|
|
37
43
|
"dashboards": {
|
|
38
|
-
"
|
|
44
|
+
"column_default": "Default",
|
|
45
|
+
"column_name": "Nombre",
|
|
46
|
+
"title": "Dashboards",
|
|
47
|
+
"view_add_component": "Agregar componente"
|
|
39
48
|
},
|
|
40
49
|
"shared": {
|
|
41
50
|
"button_add_new": "Agregar nuevo",
|
|
@@ -46,6 +55,9 @@
|
|
|
46
55
|
"button_save": "Guardar",
|
|
47
56
|
"button_settings": "Configuración",
|
|
48
57
|
"button_show": "Ver",
|
|
58
|
+
"message_operation_error": "Operación fallida. Por favor, inténtelo de nuevo.",
|
|
59
|
+
"message_operation_success": "Operacion realizada satisfactoriamente",
|
|
60
|
+
"toolbar_search": "Buscar...",
|
|
49
61
|
"view_discussions": "Discusiones",
|
|
50
62
|
"view_files": "Archivos",
|
|
51
63
|
"view_quick_actions": "Acciones rapidas",
|
|
@@ -56,5 +68,110 @@
|
|
|
56
68
|
"view_username": "Usuario"
|
|
57
69
|
}
|
|
58
70
|
}
|
|
71
|
+
},
|
|
72
|
+
"fr": {
|
|
73
|
+
"lesli": {
|
|
74
|
+
"application": {
|
|
75
|
+
"navigation_logout": ":lesli.application.navigation_logout:",
|
|
76
|
+
"navigation_my_profile": ":lesli.application.navigation_my_profile:"
|
|
77
|
+
},
|
|
78
|
+
"dashboards": {
|
|
79
|
+
"column_default": ":lesli.dashboards.column_default:",
|
|
80
|
+
"column_name": ":lesli.dashboards.column_name:",
|
|
81
|
+
"title": ":lesli.dashboards.title:",
|
|
82
|
+
"view_add_component": ":lesli.dashboards.view_add_component:"
|
|
83
|
+
},
|
|
84
|
+
"shared": {
|
|
85
|
+
"button_add_new": ":lesli.shared.button_add_new:",
|
|
86
|
+
"button_delete": ":lesli.shared.button_delete:",
|
|
87
|
+
"button_edit": ":lesli.shared.button_edit:",
|
|
88
|
+
"button_list": ":lesli.shared.button_list:",
|
|
89
|
+
"button_reload": ":lesli.shared.button_reload:",
|
|
90
|
+
"button_save": ":lesli.shared.button_save:",
|
|
91
|
+
"button_settings": ":lesli.shared.button_settings:",
|
|
92
|
+
"button_show": ":lesli.shared.button_show:",
|
|
93
|
+
"message_operation_error": ":lesli.shared.message_operation_error:",
|
|
94
|
+
"message_operation_success": ":lesli.shared.message_operation_success:",
|
|
95
|
+
"toolbar_search": ":lesli.shared.toolbar_search:",
|
|
96
|
+
"view_discussions": ":lesli.shared.view_discussions:",
|
|
97
|
+
"view_files": ":lesli.shared.view_files:",
|
|
98
|
+
"view_quick_actions": ":lesli.shared.view_quick_actions:",
|
|
99
|
+
"view_status_active": ":lesli.shared.view_status_active:",
|
|
100
|
+
"view_status_inactive": ":lesli.shared.view_status_inactive:"
|
|
101
|
+
},
|
|
102
|
+
"users/sessions": {
|
|
103
|
+
"view_username": ":lesli.users/sessions.view_username:"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"it": {
|
|
108
|
+
"lesli": {
|
|
109
|
+
"application": {
|
|
110
|
+
"navigation_logout": ":lesli.application.navigation_logout:",
|
|
111
|
+
"navigation_my_profile": ":lesli.application.navigation_my_profile:"
|
|
112
|
+
},
|
|
113
|
+
"dashboards": {
|
|
114
|
+
"column_default": ":lesli.dashboards.column_default:",
|
|
115
|
+
"column_name": ":lesli.dashboards.column_name:",
|
|
116
|
+
"title": ":lesli.dashboards.title:",
|
|
117
|
+
"view_add_component": ":lesli.dashboards.view_add_component:"
|
|
118
|
+
},
|
|
119
|
+
"shared": {
|
|
120
|
+
"button_add_new": ":lesli.shared.button_add_new:",
|
|
121
|
+
"button_delete": ":lesli.shared.button_delete:",
|
|
122
|
+
"button_edit": ":lesli.shared.button_edit:",
|
|
123
|
+
"button_list": ":lesli.shared.button_list:",
|
|
124
|
+
"button_reload": ":lesli.shared.button_reload:",
|
|
125
|
+
"button_save": ":lesli.shared.button_save:",
|
|
126
|
+
"button_settings": ":lesli.shared.button_settings:",
|
|
127
|
+
"button_show": ":lesli.shared.button_show:",
|
|
128
|
+
"message_operation_error": ":lesli.shared.message_operation_error:",
|
|
129
|
+
"message_operation_success": ":lesli.shared.message_operation_success:",
|
|
130
|
+
"toolbar_search": ":lesli.shared.toolbar_search:",
|
|
131
|
+
"view_discussions": ":lesli.shared.view_discussions:",
|
|
132
|
+
"view_files": ":lesli.shared.view_files:",
|
|
133
|
+
"view_quick_actions": ":lesli.shared.view_quick_actions:",
|
|
134
|
+
"view_status_active": ":lesli.shared.view_status_active:",
|
|
135
|
+
"view_status_inactive": ":lesli.shared.view_status_inactive:"
|
|
136
|
+
},
|
|
137
|
+
"users/sessions": {
|
|
138
|
+
"view_username": ":lesli.users/sessions.view_username:"
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
"pt": {
|
|
143
|
+
"lesli": {
|
|
144
|
+
"application": {
|
|
145
|
+
"navigation_logout": ":lesli.application.navigation_logout:",
|
|
146
|
+
"navigation_my_profile": ":lesli.application.navigation_my_profile:"
|
|
147
|
+
},
|
|
148
|
+
"dashboards": {
|
|
149
|
+
"column_default": ":lesli.dashboards.column_default:",
|
|
150
|
+
"column_name": ":lesli.dashboards.column_name:",
|
|
151
|
+
"title": ":lesli.dashboards.title:",
|
|
152
|
+
"view_add_component": ":lesli.dashboards.view_add_component:"
|
|
153
|
+
},
|
|
154
|
+
"shared": {
|
|
155
|
+
"button_add_new": ":lesli.shared.button_add_new:",
|
|
156
|
+
"button_delete": ":lesli.shared.button_delete:",
|
|
157
|
+
"button_edit": ":lesli.shared.button_edit:",
|
|
158
|
+
"button_list": ":lesli.shared.button_list:",
|
|
159
|
+
"button_reload": ":lesli.shared.button_reload:",
|
|
160
|
+
"button_save": ":lesli.shared.button_save:",
|
|
161
|
+
"button_settings": ":lesli.shared.button_settings:",
|
|
162
|
+
"button_show": ":lesli.shared.button_show:",
|
|
163
|
+
"message_operation_error": ":lesli.shared.message_operation_error:",
|
|
164
|
+
"message_operation_success": ":lesli.shared.message_operation_success:",
|
|
165
|
+
"toolbar_search": ":lesli.shared.toolbar_search:",
|
|
166
|
+
"view_discussions": ":lesli.shared.view_discussions:",
|
|
167
|
+
"view_files": ":lesli.shared.view_files:",
|
|
168
|
+
"view_quick_actions": ":lesli.shared.view_quick_actions:",
|
|
169
|
+
"view_status_active": ":lesli.shared.view_status_active:",
|
|
170
|
+
"view_status_inactive": ":lesli.shared.view_status_inactive:"
|
|
171
|
+
},
|
|
172
|
+
"users/sessions": {
|
|
173
|
+
"view_username": ":lesli.users/sessions.view_username:"
|
|
174
|
+
}
|
|
175
|
+
}
|
|
59
176
|
}
|
|
60
177
|
}
|
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
|
|
|
@@ -107,22 +107,25 @@ module.exports = env => ({
|
|
|
107
107
|
|
|
108
108
|
vue: "vue/dist/vue.esm-bundler.js",
|
|
109
109
|
|
|
110
|
-
// Set aliases as shortcuts to import modules
|
|
110
|
+
// Set aliases as shortcuts to import core modules
|
|
111
111
|
Lesli: path.resolve("lib"),
|
|
112
112
|
LesliVue: path.resolve("lib", "vue"),
|
|
113
113
|
LesliStyle: path.resolve("lib", "scss"),
|
|
114
114
|
|
|
115
|
+
// Set aliases as shortcuts to import engine modules
|
|
115
116
|
LesliBell: path.resolve("../", "LesliBell", "lib"),
|
|
116
117
|
LesliAdmin: path.resolve("../", "LesliAdmin", "lib"),
|
|
117
118
|
LesliAudit: path.resolve("../", "LesliAudit", "lib"),
|
|
118
119
|
LesliBabel: path.resolve("../", "LesliBabel", "lib"),
|
|
119
|
-
|
|
120
|
+
LesliShield: path.resolve("../", "LesliShield", "lib"),
|
|
120
121
|
LesliLetter: path.resolve("../", "LesliLetter", "lib"),
|
|
121
|
-
LesliDriver: path.resolve("../", "LesliDriver", "lib"),
|
|
122
122
|
LesliSupport: path.resolve("../", "LesliSupport", "lib"),
|
|
123
|
+
LesliSecurity: path.resolve("../", "LesliSecurity", "lib"),
|
|
124
|
+
LesliCalendar: path.resolve("../", "LesliCalendar", "lib"),
|
|
123
125
|
LesliDashboard: path.resolve("../", "LesliDashboard", "lib"),
|
|
124
126
|
|
|
125
|
-
|
|
127
|
+
// Set aliases as shortcuts to import root modules
|
|
128
|
+
Root: path.resolve("../", "../", "lib")
|
|
126
129
|
}
|
|
127
130
|
},
|
|
128
131
|
module: {
|
|
@@ -133,7 +136,9 @@ module.exports = env => ({
|
|
|
133
136
|
options: {
|
|
134
137
|
compilerOptions: {
|
|
135
138
|
// ignore custom html components & elements
|
|
136
|
-
isCustomElement: tag =>
|
|
139
|
+
isCustomElement: tag => {
|
|
140
|
+
return tag.startsWith('trix-')
|
|
141
|
+
}
|
|
137
142
|
}
|
|
138
143
|
}
|
|
139
144
|
}
|
|
@@ -152,7 +157,7 @@ module.exports = env => ({
|
|
|
152
157
|
presets: [["@babel/preset-env", { "targets": "defaults" }]]
|
|
153
158
|
}
|
|
154
159
|
}
|
|
155
|
-
},{
|
|
160
|
+
}, {
|
|
156
161
|
test: /\.(scss)$/,
|
|
157
162
|
use: [
|
|
158
163
|
MiniCssExtractPlugin.loader,
|
|
@@ -160,7 +165,7 @@ module.exports = env => ({
|
|
|
160
165
|
loader:'css-loader',
|
|
161
166
|
options: { url: false }
|
|
162
167
|
},
|
|
163
|
-
'sass-loader'
|
|
168
|
+
'sass-loader' // required to compile sass files with webpack
|
|
164
169
|
]
|
|
165
170
|
}]
|
|
166
171
|
},
|
|
@@ -179,7 +184,8 @@ module.exports = env => ({
|
|
|
179
184
|
lesli_application_development: JSON.stringify(!env.production),
|
|
180
185
|
lesli_application_version: JSON.stringify(dayjs().format("YYMMDD.HHmm")),
|
|
181
186
|
__VUE_OPTIONS_API__: true,
|
|
182
|
-
__VUE_PROD_DEVTOOLS__:
|
|
187
|
+
__VUE_PROD_DEVTOOLS__: false,
|
|
188
|
+
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false
|
|
183
189
|
})
|
|
184
190
|
]
|
|
185
191
|
})
|
data/lib/webpack/core.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
|
|
@@ -48,7 +48,6 @@ module.exports = (env, requestedEngines) => {
|
|
|
48
48
|
"users/registrations": "LesliApp/users/registrations.js",
|
|
49
49
|
|
|
50
50
|
|
|
51
|
-
|
|
52
51
|
// alternative logins
|
|
53
52
|
"mfas/application": "LesliApp/mfas/application.js",
|
|
54
53
|
"otps/application": "LesliApp/otps/application.js",
|
|
@@ -63,27 +62,32 @@ module.exports = (env, requestedEngines) => {
|
|
|
63
62
|
//"errors/application": "LesliApp/errors/app.js"
|
|
64
63
|
},
|
|
65
64
|
entry: {
|
|
66
|
-
"lesli/users/
|
|
67
|
-
|
|
68
|
-
"lesli/users/
|
|
65
|
+
"lesli/users/passwords": "Lesli/devise/passwords.js",
|
|
66
|
+
|
|
67
|
+
"lesli/users/registrations": ["Lesli/vue/devise/registrations.js", "Lesli/scss/devise/registrations.scss"],
|
|
68
|
+
"lesli/users/confirmations": ["Lesli/vue/devise/confirmations.js", "Lesli/scss/devise/confirmations.scss"],
|
|
69
|
+
"lesli/users/passwords": ["Lesli/vue/devise/passwords.js", "Lesli/scss/devise/passwords.scss"],
|
|
70
|
+
"lesli/users/sessions": ["Lesli/vue/devise/sessions.js", "Lesli/scss/devise/sessions.scss"]
|
|
69
71
|
},
|
|
70
72
|
entry: {
|
|
71
73
|
"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"]
|
|
74
|
+
"lesli/templates/application": "Lesli/scss/templates/application.scss"
|
|
74
75
|
},
|
|
76
|
+
|
|
77
|
+
// javascript output only,
|
|
78
|
+
// the output for stylesheets is defined in the webpack file itself
|
|
75
79
|
output: {
|
|
76
|
-
// the output for stylesheets is defined in the webpack file itself
|
|
77
80
|
path: path.resolve("app", "assets"),
|
|
78
|
-
filename:
|
|
81
|
+
filename: "javascripts/[name].js"
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
84
|
|
|
82
85
|
// do not include the core apps if specific engines were requested
|
|
83
|
-
if (requestedEngines.length > 0
|
|
84
|
-
|
|
86
|
+
if (requestedEngines.length > 0) {
|
|
87
|
+
if (!requestedEngines.includes("lesli")) {
|
|
88
|
+
config.entry = {}
|
|
89
|
+
}
|
|
85
90
|
}
|
|
86
91
|
|
|
87
92
|
return config
|
|
88
|
-
|
|
89
93
|
}
|
data/lib/webpack/engines.js
CHANGED
|
@@ -52,7 +52,9 @@ function installedEngines(requestedEngines) {
|
|
|
52
52
|
|
|
53
53
|
|
|
54
54
|
// remove the keep file from the engines directory
|
|
55
|
-
engines = engines
|
|
55
|
+
engines = engines
|
|
56
|
+
.filter(directory => directory != ".gitkeep")
|
|
57
|
+
.filter(directory => directory != ".DS_Store")
|
|
56
58
|
|
|
57
59
|
|
|
58
60
|
// filter found engines to get only the ones that are ready to work with vue
|