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.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/lesli_manifest.js +0 -13
  3. data/app/assets/icons/lesli/engine-security.svg +1 -0
  4. data/app/assets/icons/lesli/engine-shield.svg +1 -0
  5. data/app/assets/images/lesli/lesli-logo.svg +4 -0
  6. data/app/assets/stylesheets/lesli/templates/application.css +21862 -209
  7. data/app/assets/stylesheets/lesli/templates/public.css +19098 -1
  8. data/app/assets/stylesheets/lesli/users/confirmations.css +19219 -0
  9. data/app/assets/stylesheets/lesli/users/passwords.css +19202 -0
  10. data/app/assets/stylesheets/lesli/users/registrations.css +19594 -0
  11. data/app/assets/stylesheets/lesli/users/sessions.css +19594 -1
  12. data/app/controllers/lesli/abouts_controller.rb +12 -18
  13. data/app/controllers/lesli/application_controller.rb +25 -25
  14. data/app/controllers/lesli/application_lesli_controller.rb +5 -6
  15. data/app/controllers/lesli/interfaces/application/authorization.rb +1 -1
  16. data/app/controllers/lesli/interfaces/application/customization.rb +1 -1
  17. data/app/controllers/lesli/interfaces/application/requester.rb +2 -2
  18. data/app/controllers/lesli/interfaces/application/responder.rb +8 -8
  19. data/app/controllers/lesli/interfaces/controllers/actions.rb +250 -0
  20. data/app/controllers/lesli/interfaces/controllers/activities.rb +215 -0
  21. data/app/controllers/lesli/interfaces/controllers/discussions.rb +270 -0
  22. data/app/controllers/lesli/interfaces/controllers/files.rb +467 -0
  23. data/app/controllers/lesli/interfaces/controllers/subscribers.rb +234 -0
  24. data/app/helpers/lesli/assets_helper.rb +4 -4
  25. data/app/helpers/lesli/navigation_helper.rb +38 -81
  26. data/app/lib/lesli/system.rb +4 -3
  27. data/app/models/concerns/account_initializer.rb +46 -42
  28. data/{lib/scss/devise/registrations.scss → app/models/lesli/account/detail.rb} +7 -3
  29. data/app/models/lesli/account.rb +12 -5
  30. data/app/models/lesli/cloud_object/action.rb +70 -0
  31. data/app/models/lesli/cloud_object/activity.rb +311 -0
  32. data/app/models/lesli/cloud_object/custom_field.rb +158 -0
  33. data/app/models/lesli/cloud_object/discussion.rb +219 -0
  34. data/app/models/lesli/cloud_object/subscriber.rb +186 -0
  35. data/app/models/lesli/shared/dashboard.rb +16 -5
  36. data/app/models/lesli/user/session.rb +0 -2
  37. data/app/models/lesli/user.rb +13 -13
  38. data/app/operators/lesli/user_registration_operator.rb +3 -3
  39. data/app/views/lesli/layouts/application-devise.html.erb +6 -6
  40. data/app/views/lesli/layouts/application-lesli.html.erb +1 -1
  41. data/app/views/lesli/partials/_application-data.html.erb +2 -1
  42. data/app/views/lesli/partials/_application-lesli-engines.html.erb +14 -39
  43. data/app/views/lesli/partials/_application-lesli-header.html.erb +4 -4
  44. data/app/views/lesli/partials/_application-lesli-icons.html.erb +1 -1
  45. data/app/views/lesli/partials/_application-lesli-panels.html.erb +7 -7
  46. data/app/views/lesli/wrappers/_application-devise.html.erb +5 -7
  47. data/config/initializers/devise.rb +335 -335
  48. data/config/initializers/lesli.rb +2 -1
  49. data/config/locales/translations.en.yml +4 -0
  50. data/config/locales/translations.es.yml +4 -0
  51. data/config/locales/translations.fr.yml +28 -0
  52. data/config/locales/translations.it.yml +28 -0
  53. data/config/locales/translations.pt.yml +28 -0
  54. data/config/routes.rb +1 -10
  55. data/db/migrate/{v1.0/0010003010_create_lesli_user_details.rb → v1/0010000110_create_lesli_accounts.rb} +19 -13
  56. data/db/migrate/{v1.0/0010000110_create_lesli_accounts.rb → v1/0010001010_create_lesli_account_details.rb} +5 -7
  57. data/db/migrate/{v1.0/0010001010_create_lesli_account_settings.rb → v1/0010001110_create_lesli_account_settings.rb} +2 -2
  58. data/db/seed/development/accounts.rb +10 -7
  59. data/db/seed/development/users.rb +20 -20
  60. data/db/seed/production/accounts.rb +10 -7
  61. data/lib/lesli/engine.rb +2 -12
  62. data/lib/lesli/version.rb +2 -2
  63. data/lib/lesli.rb +0 -1
  64. data/lib/scss/cloud-objects/discussion.scss +8 -5
  65. data/lib/scss/layouts/application-header.scss +3 -1
  66. data/lib/scss/layouts/application-navbar.scss +2 -1
  67. data/lib/scss/{elements/msg.scss → overrides/notification.scss} +16 -18
  68. data/lib/scss/pages/devise-simple.scss +4 -2
  69. data/lib/scss/pages/devise.scss +111 -107
  70. data/lib/scss/panels/panel-notification.scss +1 -1
  71. data/lib/scss/panels/{panel-ticket.scss → panel-support-ticket.scss} +3 -4
  72. data/lib/scss/templates/application.scss +7 -5
  73. data/lib/tasks/lesli/controllers.rake +1 -1
  74. data/lib/tasks/lesli/db.rake +24 -12
  75. data/lib/tasks/lesli_tasks.rake +6 -6
  76. data/lib/vue/application.js +13 -12
  77. data/lib/vue/{refactor/shared/cloudobjects → cloudobjects}/discussion/content.vue +10 -8
  78. data/lib/vue/cloudobjects/discussion/element.vue +170 -0
  79. data/lib/vue/{refactor/shared/cloudobjects → cloudobjects}/discussion/filters.vue +1 -1
  80. data/lib/vue/{refactor/shared/cloudobjects → cloudobjects}/discussion/new.vue +20 -16
  81. data/lib/vue/{refactor/shared/cloudobjects → cloudobjects}/discussion.vue +25 -24
  82. data/lib/vue/{refactor/stores/cloudobjects → cloudobjects/stores}/discussion.js +7 -16
  83. data/lib/vue/layouts/application-header.vue +5 -5
  84. data/lib/vue/panels/{panel-notifications.vue → panel-bell-notifications.vue} +15 -19
  85. data/lib/vue/panels/panel-support-tickets.vue +161 -0
  86. data/lib/vue/panels/stores/bell-notifications.js +46 -0
  87. data/lib/vue/panels/stores/support-tickets.js +103 -0
  88. data/lib/vue/shared/dashboards/apps/edit.vue +10 -10
  89. data/lib/vue/shared/dashboards/components/form.vue +31 -40
  90. data/lib/vue/shared/stores/dashboard.js +2 -0
  91. data/lib/vue/shared/stores/layout.js +2 -1
  92. data/lib/{scss/devise/confirmations.scss → vue/shared/stores/users.js} +22 -21
  93. data/lib/vue/stores/translations.json +109 -2
  94. data/lib/webpack/base.js +9 -8
  95. data/lib/webpack/core.js +8 -6
  96. data/readme.md +16 -15
  97. metadata +49 -76
  98. data/app/assets/icons/lesli/engine-guard.svg +0 -1
  99. data/app/assets/javascripts/lesli/users/sessions.js +0 -1
  100. data/app/controllers/users/confirmations_controller.rb +0 -66
  101. data/app/controllers/users/omniauth_callbacks_controller.rb +0 -30
  102. data/app/controllers/users/passwords_controller.rb +0 -71
  103. data/app/controllers/users/registrations_controller.rb +0 -141
  104. data/app/controllers/users/sessions_controller.rb +0 -141
  105. data/app/controllers/users/unlocks_controller.rb +0 -30
  106. data/app/views/devise/confirmations/new.html.erb +0 -2
  107. data/app/views/devise/confirmations/show.html.erb +0 -63
  108. data/app/views/devise/mailer/confirmation_instructions.html.erb +0 -5
  109. data/app/views/devise/mailer/email_changed.html.erb +0 -7
  110. data/app/views/devise/mailer/password_change.html.erb +0 -3
  111. data/app/views/devise/mailer/reset_password_instructions.html.erb +0 -8
  112. data/app/views/devise/mailer/unlock_instructions.html.erb +0 -7
  113. data/app/views/devise/passwords/edit.html.erb +0 -79
  114. data/app/views/devise/passwords/new.html.erb +0 -75
  115. data/app/views/devise/registrations/edit.html.erb +0 -43
  116. data/app/views/devise/registrations/new.html.erb +0 -147
  117. data/app/views/devise/sessions/new.html.erb +0 -114
  118. data/app/views/devise/shared/_demo.html.erb +0 -7
  119. data/app/views/devise/shared/_error_messages.html.erb +0 -15
  120. data/app/views/devise/shared/_links.html.erb +0 -96
  121. data/app/views/devise/unlocks/new.html.erb +0 -16
  122. data/db/migrate/v1.0/0010000210_create_lesli_roles.rb +0 -59
  123. data/db/migrate/v1.0/0010000310_create_lesli_users.rb +0 -97
  124. data/db/migrate/v1.0/0010003110_create_lesli_user_settings.rb +0 -44
  125. data/db/migrate/v1.0/0010003210_create_lesli_user_sessions.rb +0 -55
  126. data/db/migrate/v1.0/0010003410_create_lesli_user_powers.rb +0 -43
  127. data/db/migrate/v1.0/0010004010_create_lesli_user_logs.rb +0 -45
  128. data/db/migrate/v1.0/0010005010_create_lesli_descriptors.rb +0 -44
  129. data/db/migrate/v1.0/0010005110_create_lesli_descriptor_privileges.rb +0 -45
  130. data/db/migrate/v1.0/0010005210_create_lesli_descriptor_activities.rb +0 -49
  131. data/db/migrate/v1.0/0010005510_create_lesli_role_powers.rb +0 -51
  132. data/db/migrate/v1.0/0010005710_create_lesli_role_privileges.rb +0 -45
  133. data/lib/lesli/routing.rb +0 -26
  134. data/lib/scss/components/editor-richtext.scss +0 -88
  135. data/lib/scss/devise/oauth.scss +0 -34
  136. data/lib/scss/devise/passwords.scss +0 -33
  137. data/lib/scss/devise/sessions.scss +0 -35
  138. data/lib/scss/elements/avatar.scss +0 -48
  139. data/lib/scss/elements/calendar.scss +0 -47
  140. data/lib/scss/elements/toggle.scss +0 -102
  141. data/lib/vue/devise/confirmations.js +0 -33
  142. data/lib/vue/devise/passwords.js +0 -137
  143. data/lib/vue/devise/registrations.js +0 -157
  144. data/lib/vue/devise/sessions.js +0 -148
  145. data/lib/vue/panels/panel-tickets.vue +0 -181
  146. data/lib/vue/refactor/shared/cloudobjects/discussion/element.vue +0 -132
  147. data/lib/vue/shared/stores/account.js +0 -113
  148. /data/app/assets/icons/lesli/{engine-driver.svg → engine-calendar.svg} +0 -0
  149. /data/db/migrate/{v1.0 → v1}/0010000610_create_lesli_system_controllers.rb +0 -0
  150. /data/db/migrate/{v1.0 → v1}/0010000710_create_lesli_system_controller_actions.rb +0 -0
  151. /data/db/migrate/{v1.0 → v1}/0010001210_create_lesli_account_activities.rb +0 -0
  152. /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="(component, index) in storeDashboard.dashboard.components" :key="index">
130
- <div :class="['column', 'is-' + component?.layout]">
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="component"
138
- :is="props.components[component.component_id]">
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(component)">
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(component)">
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(component)">
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(component)">
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(component)">
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
- dashboards: I18n.t('core.dashboards'),
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
- {{ "translations.dashboards.column_name" }}
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">{{ "translations.dashboards.column_default" }}</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="field">
232
- <label class="label">
233
- {{ "translations.dashboards.view_title_add_component" }}
234
- </label>
235
- <div class="control">
236
- <lesli-select
237
- v-model="storeDashboard.new_component_id"
238
- :options="storeDashboard.options.component_ids"
239
- @change="addComponent">
240
- </lesli-select>
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
- <!-- Save button -->
245
- <div class="buttons">
246
- <lesli-button icon="save" :loading="storeDashboard.loading">
247
- {{ translations.dashboards.view_btn_save_dashboard }}
248
- </lesli-button>
249
- <lesli-button danger icon="delete" @click="onDeleteDashboard">
250
- {{ translations.dashboards.view_btn_delete_dashboard }}
251
- </lesli-button>
252
- </div>
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
- div.confirmation-message {
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
- "title": "Dashboards"
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
- "title": "Dashboards"
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 https://www.lesli.tech
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 0.98 MB
64
+ // Set max size limit for JS bundles to 1.5 MiB
65
65
  performance: {
66
- maxAssetSize: 1100000,
67
- maxEntrypointSize: 1100000
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
- LesliGuard: path.resolve("../", "LesliGuard", "lib"),
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 === 'trix-editor'
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__: true
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/registrations": "Lesli/devise/registrations.js",
67
- "lesli/users/confirmations": "Lesli/devise/confirmations.js",
68
- "lesli/users/passwords": "Lesli/devise/passwords.js"
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: 'javascripts/[name].js'
80
+ filename: "javascripts/[name].js"
79
81
  }
80
82
  }
81
83