lesli 5.0.11 → 5.0.12

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