lesli 5.0.4 → 5.0.5

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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/lesli/brand/app-logo2.svg +52 -0
  3. data/app/assets/javascripts/lesli/users/passwords.js +3 -3
  4. data/app/assets/javascripts/lesli/users/registrations.js +3 -3
  5. data/app/assets/javascripts/lesli/users/sessions.js +3 -3
  6. data/app/controllers/lesli/application_controller.rb +3 -3
  7. data/app/controllers/lesli/application_lesli_controller.rb +2 -2
  8. data/app/controllers/lesli/interfaces/application/authorization.rb +1 -1
  9. data/app/controllers/lesli/interfaces/application/requester.rb +1 -1
  10. data/app/controllers/lesli/shared/dashboards_controller.rb +308 -0
  11. data/app/controllers/users/confirmations_controller.rb +1 -1
  12. data/app/controllers/users/passwords_controller.rb +7 -10
  13. data/app/helpers/lesli/general_helper.rb +1 -1
  14. data/app/helpers/lesli/navigation_helper.rb +17 -16
  15. data/app/lib/lesli/system.rb +2 -1
  16. data/app/mailers/lesli/devise_mailer.rb +1 -1
  17. data/app/models/concerns/account_initializer.rb +9 -0
  18. data/app/models/lesli/account.rb +1 -0
  19. data/app/models/lesli/application_lesli_record.rb +1 -1
  20. data/app/models/lesli/shared/dashboard.rb +162 -0
  21. data/app/models/lesli/system_controller.rb +1 -0
  22. data/app/operators/lesli/controller_operator.rb +148 -0
  23. data/app/views/devise/passwords/new.html.erb +1 -1
  24. data/app/views/lesli/partials/_application-lesli-engines.html.erb +1 -1
  25. data/app/views/lesli/partials/_application-lesli-icons.html.erb +1 -1
  26. data/config/locales/translations.en.yml +17 -0
  27. data/config/locales/translations.es.yml +17 -0
  28. data/config/routes.rb +4 -2
  29. data/db/seed/development/users.rb +0 -1
  30. data/db/seeds.rb +16 -29
  31. data/lib/lesli/version.rb +1 -1
  32. data/lib/mailer_previews/devise_mailer_preview.rb +7 -0
  33. data/lib/sass/lesli/layouts/application-navbar.scss +1 -1
  34. data/lib/tasks/lesli/controllers.rake +1 -91
  35. data/lib/tasks/lesli/db.rake +36 -6
  36. data/lib/tasks/lesli/dev.rake +66 -0
  37. data/lib/tasks/lesli/engine.rake +59 -0
  38. data/lib/tasks/lesli/{role.rake → privileges.rake} +3 -3
  39. data/lib/tasks/lesli_tasks.rake +5 -0
  40. data/lib/vue/application.js +2 -1
  41. data/lib/vue/devise/passwords.js +8 -8
  42. data/lib/vue/devise/registrations.js +2 -2
  43. data/lib/vue/devise/sessions.js +11 -6
  44. data/lib/vue/layouts/application-header.vue +6 -1
  45. data/lib/vue/shared/dashboards/apps/edit.vue +215 -0
  46. data/lib/vue/{apps → shared}/dashboards/apps/index.vue +3 -5
  47. data/lib/vue/{apps → shared}/dashboards/apps/show.vue +26 -16
  48. data/lib/vue/{apps → shared}/dashboards/components/form.vue +31 -43
  49. data/lib/vue/shared/stores/dashboard.js +251 -0
  50. data/lib/vue/stores/translations.json +24 -72
  51. data/lib/vue/stores/{user.js → users.js} +1 -1
  52. data/lib/webpack/base.js +3 -2
  53. data/readme.md +1 -1
  54. metadata +46 -52
  55. data/lib/vue/apps/dashboards/apps/edit.vue +0 -105
  56. data/lib/vue/apps/dashboards/components/preview.vue +0 -172
  57. /data/app/assets/icons/lesli/{cloud-vault.svg → cloud-guard.svg} +0 -0
  58. /data/lib/vue/{apps → shared}/cloudobjects/action.vue +0 -0
  59. /data/lib/vue/{apps → shared}/cloudobjects/discussion/content.vue +0 -0
  60. /data/lib/vue/{apps → shared}/cloudobjects/discussion/element.vue +0 -0
  61. /data/lib/vue/{apps → shared}/cloudobjects/discussion/filters.vue +0 -0
  62. /data/lib/vue/{apps → shared}/cloudobjects/discussion/new.vue +0 -0
  63. /data/lib/vue/{apps → shared}/cloudobjects/discussion.vue +0 -0
  64. /data/lib/vue/{apps → shared}/cloudobjects/file/grid.vue +0 -0
  65. /data/lib/vue/{apps → shared}/cloudobjects/file/list.vue +0 -0
  66. /data/lib/vue/{apps → shared}/cloudobjects/file.vue +0 -0
  67. /data/lib/vue/{apps → shared}/dashboards/apps/new.vue +0 -0
  68. /data/lib/vue/{apps → shared}/workflows2/apps/actions/form.vue +0 -0
  69. /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/chatroom-form.vue +0 -0
  70. /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/cloud-object-clone-form.vue +0 -0
  71. /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/cloud-object-file-form.vue +0 -0
  72. /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/email-form.vue +0 -0
  73. /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/notification-form.vue +0 -0
  74. /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/send-cloud-object-file.vue +0 -0
  75. /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/task-form.vue +0 -0
  76. /data/lib/vue/{apps → shared}/workflows2/apps/actions/index.vue +0 -0
  77. /data/lib/vue/{apps → shared}/workflows2/apps/checks/form.vue +0 -0
  78. /data/lib/vue/{apps → shared}/workflows2/apps/checks/index.vue +0 -0
  79. /data/lib/vue/{apps → shared}/workflows2/apps/index.vue +0 -0
  80. /data/lib/vue/{apps → shared}/workflows2/apps/new.vue +0 -0
  81. /data/lib/vue/{apps → shared}/workflows2/apps/show.vue +0 -0
  82. /data/lib/vue/{apps → shared}/workflows2/components/associations.vue +0 -0
  83. /data/lib/vue/{apps → shared}/workflows2/components/chart.vue +0 -0
  84. /data/lib/vue/{apps → shared}/workflows2/components/workflow-form.vue +0 -0
  85. /data/lib/vue/{apps → shared}/workflows2/components/workflow-status-dropdown.vue +0 -0
@@ -1,105 +0,0 @@
1
- <script setup>
2
- /*
3
-
4
- Lesli
5
-
6
- Copyright (c) 2023, Lesli Technologies, S. A.
7
-
8
- This program is free software: you can redistribute it and/or modify
9
- it under the terms of the GNU General Public License as published by
10
- the Free Software Foundation, either version 3 of the License, or
11
- (at your option) any later version.
12
-
13
- This program is distributed in the hope that it will be useful,
14
- but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- GNU General Public License for more details.
17
-
18
- You should have received a copy of the GNU General Public License
19
- along with this program. If not, see http://www.gnu.org/licenses/.
20
-
21
- Lesli · Your Smart Business Assistant.
22
-
23
- Made with ♥ by https://www.lesli.tech
24
- Building a better future, one line of code at a time.
25
-
26
- @contact hello@lesli.tech
27
- @website https://lesli.tech
28
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
29
-
30
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
- // ·
32
-
33
- */
34
-
35
-
36
-
37
- // · import vue tools
38
- import { onMounted, inject } from "vue"
39
- import { useRouter, useRoute } from "vue-router"
40
-
41
-
42
- // · import stores
43
- import { useDashboard } from "Lesli/shared/stores/dashboard"
44
-
45
-
46
- // · import components
47
- import dashboardForm from "../components/form.vue"
48
- import dashboardPreview from "../components/preview.vue"
49
-
50
-
51
- // ·
52
- const router = useRouter()
53
- const url = inject("url")
54
-
55
-
56
- // · defining props
57
- const props = defineProps({
58
- engine: {
59
- type: String,
60
- required: true,
61
- },
62
- components: {
63
- type: Object,
64
- required: true,
65
- }
66
- })
67
-
68
-
69
- // · implement stores
70
- const storeDashboard = useDashboard()
71
-
72
-
73
- // · translations
74
- const translations = {
75
- main: I18n.t(`${props.engine}.dashboards`),
76
- dashboards: I18n.t('core.dashboards'),
77
- core: I18n.t('core.shared')
78
- }
79
-
80
-
81
- const onDeleteDashboard = () => {
82
- storeDashboard.deleteDashboard().then(()=> {
83
- router.push(url[props.engine]('dashboards').s)
84
- })
85
- }
86
-
87
-
88
- onMounted(() => {
89
- storeDashboard.engine = props.engine
90
- storeDashboard.getDashboardOptions()
91
- })
92
-
93
- </script>
94
- <template>
95
- <section class="application-component">
96
- <lesli-header :title="storeDashboard.dashboard.name">
97
- <lesli-button icon="list" :to="url[props.engine]('dashboards')">
98
- {{ translations.core.view_btn_list }}
99
- </lesli-button>
100
- </lesli-header>
101
-
102
- <dashboard-form :engine="props.engine" is-editable></dashboard-form>
103
- <dashboard-preview :engine="props.engine" :components="props.components"></dashboard-preview>
104
- </section>
105
- </template>
@@ -1,172 +0,0 @@
1
- <script setup>
2
- /*
3
-
4
- Lesli
5
-
6
- Copyright (c) 2023, Lesli Technologies, S. A.
7
-
8
- This program is free software: you can redistribute it and/or modify
9
- it under the terms of the GNU General Public License as published by
10
- the Free Software Foundation, either version 3 of the License, or
11
- (at your option) any later version.
12
-
13
- This program is distributed in the hope that it will be useful,
14
- but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- GNU General Public License for more details.
17
-
18
- You should have received a copy of the GNU General Public License
19
- along with this program. If not, see http://www.gnu.org/licenses/.
20
-
21
- Lesli · Your Smart Business Assistant.
22
-
23
- Made with ♥ by https://www.lesli.tech
24
- Building a better future, one line of code at a time.
25
-
26
- @contact hello@lesli.tech
27
- @website https://lesli.tech
28
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
29
-
30
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
- // ·
32
-
33
- */
34
-
35
-
36
-
37
- // · import vue tools
38
- import { onMounted, computed } from "vue"
39
-
40
-
41
- // · import lesli stores
42
- import { useDashboard } from "Lesli/shared/stores/dashboard"
43
-
44
-
45
- // · implement stores
46
- const storeDashboard = useDashboard()
47
-
48
-
49
- // ·
50
- const props = defineProps({
51
- engine: {
52
- type: String,
53
- require: true
54
- },
55
- components: {
56
- type: Object,
57
- require: true
58
- }
59
- })
60
-
61
-
62
- // ·
63
- function sizeIncrease(component) {
64
- if (component.layout >= 12) {
65
- return
66
- }
67
- component.layout++
68
- }
69
-
70
-
71
- // ·
72
- function sizeDecrease(component) {
73
- if (component.layout <= 3) {
74
- return
75
- }
76
- component.layout--
77
- }
78
-
79
-
80
- // ·
81
- function remove(component) {
82
-
83
- component._destroy = true
84
- }
85
-
86
- </script>
87
- <template>
88
- <div class="columns is-multiline is-variable is-4 dashboard-components">
89
- <template v-for="(component, index) in storeDashboard.dashboard.components" :key="index">
90
- <div :class="['column', 'is-' + component?.layout]" v-if="!component._destroy">
91
-
92
- <!-- Dashboard widget component when in edition mode -->
93
- <div class="edit">
94
-
95
-
96
- <!-- Dashboard widget preview -->
97
- <component :component.sync="component" :is="props.components[component.component_id]">
98
- </component>
99
-
100
-
101
- <!-- Edition controls -->
102
- <div class="mt-4 mb-2">
103
- <div class="field has-addons is-justify-content-center">
104
- <p class="control">
105
- <button class="button is-small" @click="sizeDecrease(component)">
106
- <span class="icon is-small">
107
- <span class="material-icons">
108
- remove
109
- </span>
110
- </span>
111
- </button>
112
- </p>
113
- <p class="control control-label has-text-centered">
114
- size
115
- </p>
116
- <p class="control">
117
- <button class="button is-small" @click="sizeIncrease(component)">
118
- <span class="icon is-small">
119
- <span class="material-icons">
120
- add
121
- </span>
122
- </span>
123
- </button>
124
- </p>
125
- </div>
126
-
127
- <div class="field has-addons is-justify-content-center">
128
- <p class="control">
129
- <button class="button is-small" @click="sizeDecrease(component)">
130
- <span class="icon is-small">
131
- <span class="material-icons">
132
- chevron_left
133
- </span>
134
- </span>
135
- </button>
136
- </p>
137
- <p class="control control-label has-text-centered px-4">
138
- position
139
- </p>
140
- <p class="control">
141
- <button class="button is-small" @click="sizeIncrease(component)">
142
- <span class="icon is-small">
143
- <span class="material-icons">
144
- chevron_right
145
- </span>
146
- </span>
147
- </button>
148
- </p>
149
- </div>
150
-
151
- <div class="has-text-centered">
152
- <lesli-button small danger icon="delete" @click="remove(component)">
153
- remove
154
- </lesli-button>
155
- </div>
156
- </div>
157
- </div>
158
- </div>
159
- </template>
160
- </div>
161
- </template>
162
- <style>
163
- .dashboard-components .edit {
164
- border-radius: 6px;
165
- padding: 1.2rem 1.4rem;
166
- border: 1px solid #CCC;
167
- background-color: #FFF8F8;
168
- }
169
- .dashboard-components .edit .control-label {
170
- width: 100px;
171
- }
172
- </style>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes