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.
- checksums.yaml +4 -4
- data/app/assets/images/lesli/brand/app-logo2.svg +52 -0
- data/app/assets/javascripts/lesli/users/passwords.js +3 -3
- data/app/assets/javascripts/lesli/users/registrations.js +3 -3
- data/app/assets/javascripts/lesli/users/sessions.js +3 -3
- data/app/controllers/lesli/application_controller.rb +3 -3
- data/app/controllers/lesli/application_lesli_controller.rb +2 -2
- data/app/controllers/lesli/interfaces/application/authorization.rb +1 -1
- data/app/controllers/lesli/interfaces/application/requester.rb +1 -1
- data/app/controllers/lesli/shared/dashboards_controller.rb +308 -0
- data/app/controllers/users/confirmations_controller.rb +1 -1
- data/app/controllers/users/passwords_controller.rb +7 -10
- data/app/helpers/lesli/general_helper.rb +1 -1
- data/app/helpers/lesli/navigation_helper.rb +17 -16
- data/app/lib/lesli/system.rb +2 -1
- data/app/mailers/lesli/devise_mailer.rb +1 -1
- data/app/models/concerns/account_initializer.rb +9 -0
- data/app/models/lesli/account.rb +1 -0
- data/app/models/lesli/application_lesli_record.rb +1 -1
- data/app/models/lesli/shared/dashboard.rb +162 -0
- data/app/models/lesli/system_controller.rb +1 -0
- data/app/operators/lesli/controller_operator.rb +148 -0
- data/app/views/devise/passwords/new.html.erb +1 -1
- data/app/views/lesli/partials/_application-lesli-engines.html.erb +1 -1
- data/app/views/lesli/partials/_application-lesli-icons.html.erb +1 -1
- data/config/locales/translations.en.yml +17 -0
- data/config/locales/translations.es.yml +17 -0
- data/config/routes.rb +4 -2
- data/db/seed/development/users.rb +0 -1
- data/db/seeds.rb +16 -29
- data/lib/lesli/version.rb +1 -1
- data/lib/mailer_previews/devise_mailer_preview.rb +7 -0
- data/lib/sass/lesli/layouts/application-navbar.scss +1 -1
- data/lib/tasks/lesli/controllers.rake +1 -91
- data/lib/tasks/lesli/db.rake +36 -6
- data/lib/tasks/lesli/dev.rake +66 -0
- data/lib/tasks/lesli/engine.rake +59 -0
- data/lib/tasks/lesli/{role.rake → privileges.rake} +3 -3
- data/lib/tasks/lesli_tasks.rake +5 -0
- data/lib/vue/application.js +2 -1
- data/lib/vue/devise/passwords.js +8 -8
- data/lib/vue/devise/registrations.js +2 -2
- data/lib/vue/devise/sessions.js +11 -6
- data/lib/vue/layouts/application-header.vue +6 -1
- data/lib/vue/shared/dashboards/apps/edit.vue +215 -0
- data/lib/vue/{apps → shared}/dashboards/apps/index.vue +3 -5
- data/lib/vue/{apps → shared}/dashboards/apps/show.vue +26 -16
- data/lib/vue/{apps → shared}/dashboards/components/form.vue +31 -43
- data/lib/vue/shared/stores/dashboard.js +251 -0
- data/lib/vue/stores/translations.json +24 -72
- data/lib/vue/stores/{user.js → users.js} +1 -1
- data/lib/webpack/base.js +3 -2
- data/readme.md +1 -1
- metadata +46 -52
- data/lib/vue/apps/dashboards/apps/edit.vue +0 -105
- data/lib/vue/apps/dashboards/components/preview.vue +0 -172
- /data/app/assets/icons/lesli/{cloud-vault.svg → cloud-guard.svg} +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/action.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/discussion/content.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/discussion/element.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/discussion/filters.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/discussion/new.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/discussion.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/file/grid.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/file/list.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/file.vue +0 -0
- /data/lib/vue/{apps → shared}/dashboards/apps/new.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/chatroom-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/cloud-object-clone-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/cloud-object-file-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/email-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/notification-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/send-cloud-object-file.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/task-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/index.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/checks/form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/checks/index.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/index.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/new.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/show.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/components/associations.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/components/chart.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/components/workflow-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/components/workflow-status-dropdown.vue +0 -0
@@ -0,0 +1,251 @@
|
|
1
|
+
/*
|
2
|
+
|
3
|
+
Lesli
|
4
|
+
|
5
|
+
Copyright (c) 2023, Lesli Technologies, S. A.
|
6
|
+
|
7
|
+
This program is free software: you can redistribute it and/or modify
|
8
|
+
it under the terms of the GNU General Public License as published by
|
9
|
+
the Free Software Foundation, either version 3 of the License, or
|
10
|
+
(at your option) any later version.
|
11
|
+
|
12
|
+
This program is distributed in the hope that it will be useful,
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
GNU General Public License for more details.
|
16
|
+
|
17
|
+
You should have received a copy of the GNU General Public License
|
18
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
19
|
+
|
20
|
+
Lesli · Your Smart Business Assistant.
|
21
|
+
|
22
|
+
Made with ♥ by https://www.lesli.tech
|
23
|
+
Building a better future, one line of code at a time.
|
24
|
+
|
25
|
+
@contact hello@lesli.tech
|
26
|
+
@website https://lesli.tech
|
27
|
+
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
28
|
+
|
29
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
30
|
+
// ·
|
31
|
+
|
32
|
+
*/
|
33
|
+
|
34
|
+
|
35
|
+
// ·
|
36
|
+
import { defineStore } from "pinia"
|
37
|
+
|
38
|
+
|
39
|
+
// ·
|
40
|
+
export const useDashboard = defineStore("shared.dashboard", {
|
41
|
+
state: () => {
|
42
|
+
return {
|
43
|
+
|
44
|
+
engine: null,
|
45
|
+
loading: false,
|
46
|
+
|
47
|
+
dashboards: [],
|
48
|
+
|
49
|
+
dashboard: {
|
50
|
+
components: []
|
51
|
+
},
|
52
|
+
|
53
|
+
options: {
|
54
|
+
component_ids: []
|
55
|
+
},
|
56
|
+
|
57
|
+
selected_dashboard_component: {},
|
58
|
+
deleted_components: [],
|
59
|
+
default_component_configuration:{
|
60
|
+
index: 1,
|
61
|
+
layout: 4
|
62
|
+
},
|
63
|
+
new_component_id: ""
|
64
|
+
}
|
65
|
+
},
|
66
|
+
actions: {
|
67
|
+
|
68
|
+
setEngine(engine) {
|
69
|
+
this.engine = engine.replace("lesli_", "")
|
70
|
+
},
|
71
|
+
|
72
|
+
getDashboard(id="default") {
|
73
|
+
this.http.get(this.url[this.engine]("dashboards/:id", id)).then(result => {
|
74
|
+
let components = result.components
|
75
|
+
this.dashboard = result
|
76
|
+
this.dashboard.components = []
|
77
|
+
|
78
|
+
// Parse components so they can be rendered
|
79
|
+
components.forEach((component) => {
|
80
|
+
component.component_id = component.component_id.replaceAll('_','-')
|
81
|
+
this.dashboard.components.push(component)
|
82
|
+
})
|
83
|
+
})
|
84
|
+
},
|
85
|
+
|
86
|
+
getDashboardOptions(){
|
87
|
+
|
88
|
+
const url = this.url[this.engine]('dashboards/options')
|
89
|
+
|
90
|
+
this.http.get(url).then(result => {
|
91
|
+
result["component_ids"].forEach((component)=>{
|
92
|
+
this.options["component_ids"].push({
|
93
|
+
label: component.text.replaceAll('_','-'),
|
94
|
+
value: component.value
|
95
|
+
})
|
96
|
+
})
|
97
|
+
}).catch(error => {
|
98
|
+
this.msg.danger(I18n.t("core.shared.messages_danger_internal_error"))
|
99
|
+
})
|
100
|
+
},
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
/**
|
108
|
+
* @description This action is used to fetch the list of dashboards
|
109
|
+
*/
|
110
|
+
fetchDashboards(url) {
|
111
|
+
this.loading = true
|
112
|
+
|
113
|
+
if (!url) url = this.url[this.engine]('dashboards')
|
114
|
+
|
115
|
+
this.http.get(url).then(result => {
|
116
|
+
this.loading = false
|
117
|
+
this.dashboards = result.dashboards.map(dashboard => {
|
118
|
+
dashboard.created_at = this.date2(dashboard.created_at).dateTime().toString()
|
119
|
+
dashboard.updated_at = this.date2(dashboard.updated_at).dateTime().toString()
|
120
|
+
return dashboard
|
121
|
+
})
|
122
|
+
}).catch(error => {
|
123
|
+
this.msg.danger(I18n.t("core.shared.messages_danger_internal_error"))
|
124
|
+
})
|
125
|
+
},
|
126
|
+
/**
|
127
|
+
* @param {string} search_string String to search for
|
128
|
+
* @description This action is used to search for a string in the dashboards
|
129
|
+
*/
|
130
|
+
searchDashboards(search_string){
|
131
|
+
const url = this.url[this.engine]('dashboards').search(search_string)
|
132
|
+
this.fetchDashboards(url)
|
133
|
+
},
|
134
|
+
/**
|
135
|
+
* @description This action is used to reset the dashboard
|
136
|
+
*/
|
137
|
+
resetDashboard(){
|
138
|
+
this.dashboard = {
|
139
|
+
components: []
|
140
|
+
}
|
141
|
+
this.deleted_components = []
|
142
|
+
this.selected_dashboard_component = {}
|
143
|
+
this.new_component_id = ""
|
144
|
+
},
|
145
|
+
/**
|
146
|
+
* @description This action is used to update a dashboard
|
147
|
+
*/
|
148
|
+
updateDashboard(){
|
149
|
+
this.loading = true
|
150
|
+
let data = {
|
151
|
+
dashboard: {
|
152
|
+
name: this.dashboard.name,
|
153
|
+
default: this.dashboard.default,
|
154
|
+
roles_id: this.dashboard.roles_id,
|
155
|
+
components_attributes: this.dashboard.components.map((component)=>{
|
156
|
+
let parsed_component = {...component}
|
157
|
+
// We check if the id is a valid integer or a placeholder. If it is a placeholder, we set it to null
|
158
|
+
if(isNaN(parsed_component.id)){
|
159
|
+
parsed_component.id = null
|
160
|
+
}
|
161
|
+
|
162
|
+
return parsed_component
|
163
|
+
})
|
164
|
+
}
|
165
|
+
}
|
166
|
+
|
167
|
+
data.dashboard.components_attributes = data.dashboard.components_attributes.concat(this.deleted_components)
|
168
|
+
|
169
|
+
const url = this.url[this.engine](`dashboards/${this.dashboard.id}`)
|
170
|
+
|
171
|
+
return this.http.put(url, data).then(result => {
|
172
|
+
this.msg.success(I18n.t("core.users.messages_success_operation"))
|
173
|
+
this.loading = false
|
174
|
+
}).catch(error => {
|
175
|
+
this.msg.danger(I18n.t("core.shared.messages_danger_internal_error"))
|
176
|
+
})
|
177
|
+
},
|
178
|
+
/**
|
179
|
+
* @description This action is used to post a dashboard
|
180
|
+
*/
|
181
|
+
async postDashboard(){
|
182
|
+
this.loading = true
|
183
|
+
let data = {
|
184
|
+
dashboard: {
|
185
|
+
name: this.dashboard.name,
|
186
|
+
default: this.dashboard.default,
|
187
|
+
roles_id: this.dashboard.roles_id,
|
188
|
+
components_attributes: this.dashboard.components.map((component)=>{
|
189
|
+
let parsed_component = {...component}
|
190
|
+
parsed_component.id = null
|
191
|
+
|
192
|
+
return parsed_component
|
193
|
+
})
|
194
|
+
}
|
195
|
+
}
|
196
|
+
|
197
|
+
const url = this.url[this.engine]('dashboards')
|
198
|
+
|
199
|
+
return this.http.post(url, data).then(result => {
|
200
|
+
this.msg.success(I18n.t("core.users.messages_success_operation"))
|
201
|
+
this.loading = false
|
202
|
+
}).catch(error => {
|
203
|
+
this.msg.danger(I18n.t("core.shared.messages_danger_internal_error"))
|
204
|
+
})
|
205
|
+
},
|
206
|
+
/**
|
207
|
+
* @description This action is used to get dashboard options
|
208
|
+
*/
|
209
|
+
|
210
|
+
/**
|
211
|
+
* @description This action is used to get the information for a dashboard
|
212
|
+
*/
|
213
|
+
fetchDashboard(dashboard_id){
|
214
|
+
|
215
|
+
this.loading = true
|
216
|
+
|
217
|
+
const url = this.url[this.engine]('dashboards/:dashboardId', { dashboardId: dashboard_id })
|
218
|
+
|
219
|
+
return this.http.get(url).then(result => {
|
220
|
+
|
221
|
+
let components = result.components
|
222
|
+
this.dashboard = result
|
223
|
+
this.dashboard.components = []
|
224
|
+
|
225
|
+
// Parse components so they can be rendered
|
226
|
+
components.forEach((component) => {
|
227
|
+
component.component_id = component.component_id.replaceAll('_','-')
|
228
|
+
this.dashboard.components.push(component)
|
229
|
+
})
|
230
|
+
|
231
|
+
this.loading = false
|
232
|
+
}).catch(error => {
|
233
|
+
this.msg.danger(I18n.t("core.shared.messages_danger_internal_error"))
|
234
|
+
})
|
235
|
+
},
|
236
|
+
/**
|
237
|
+
* @description This action is used to delete a dashboard
|
238
|
+
*/
|
239
|
+
async deleteDashboard(){
|
240
|
+
this.loading = true
|
241
|
+
const url = this.url[this.engine]('dashboards/:dashboardId', { dashboardId: this.dashboard.id })
|
242
|
+
|
243
|
+
return this.http.delete(url).then(result => {
|
244
|
+
this.msg.success(I18n.t("core.users.messages_success_operation"))
|
245
|
+
this.loading = false
|
246
|
+
}).catch(error => {
|
247
|
+
this.msg.danger(I18n.t("core.shared.messages_danger_internal_error"))
|
248
|
+
})
|
249
|
+
}
|
250
|
+
}
|
251
|
+
})
|
@@ -2,84 +2,36 @@
|
|
2
2
|
"en": {
|
3
3
|
"lesli": {
|
4
4
|
"shared": {
|
5
|
-
"
|
6
|
-
|
7
|
-
|
8
|
-
"
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
"
|
14
|
-
},
|
15
|
-
"users": {
|
16
|
-
"
|
17
|
-
}
|
18
|
-
},
|
19
|
-
"lesli_audit": {
|
20
|
-
"shared": {
|
21
|
-
"title_lesli": ":lesli.shared.title_lesli:"
|
22
|
-
},
|
23
|
-
"users": {
|
24
|
-
"title_users": "Users"
|
25
|
-
}
|
26
|
-
},
|
27
|
-
"lesli_babel": {
|
28
|
-
"shared": {
|
29
|
-
"title_lesli": ":lesli.shared.title_lesli:"
|
30
|
-
},
|
31
|
-
"users": {
|
32
|
-
"title_users": "Users"
|
33
|
-
}
|
34
|
-
},
|
35
|
-
"lesli_driver": {
|
36
|
-
"shared": {
|
37
|
-
"title_lesli": ":lesli.shared.title_lesli:"
|
38
|
-
},
|
39
|
-
"users": {
|
40
|
-
"title_users": "Users"
|
5
|
+
"button_add_new": "Add new",
|
6
|
+
"button_delete": "Delete",
|
7
|
+
"button_edit": "Edit",
|
8
|
+
"button_list": "List",
|
9
|
+
"button_reload": "Reload",
|
10
|
+
"button_save": "Save",
|
11
|
+
"view_discussions": "Discussions",
|
12
|
+
"view_files": "Files",
|
13
|
+
"view_quick_actions": "Quick actions"
|
14
|
+
},
|
15
|
+
"users/sessions": {
|
16
|
+
"view_username": "Username"
|
41
17
|
}
|
42
18
|
}
|
43
19
|
},
|
44
20
|
"es": {
|
45
21
|
"lesli": {
|
46
22
|
"shared": {
|
47
|
-
"
|
48
|
-
|
49
|
-
|
50
|
-
"
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
"
|
56
|
-
},
|
57
|
-
"users": {
|
58
|
-
"
|
59
|
-
}
|
60
|
-
},
|
61
|
-
"lesli_audit": {
|
62
|
-
"shared": {
|
63
|
-
"title_lesli": "Lesli en español "
|
64
|
-
},
|
65
|
-
"users": {
|
66
|
-
"title_users": "Usuarios"
|
67
|
-
}
|
68
|
-
},
|
69
|
-
"lesli_babel": {
|
70
|
-
"shared": {
|
71
|
-
"title_lesli": "Lesli en español "
|
72
|
-
},
|
73
|
-
"users": {
|
74
|
-
"title_users": "Usuarios"
|
75
|
-
}
|
76
|
-
},
|
77
|
-
"lesli_driver": {
|
78
|
-
"shared": {
|
79
|
-
"title_lesli": "Lesli en español "
|
80
|
-
},
|
81
|
-
"users": {
|
82
|
-
"title_users": "Usuarios"
|
23
|
+
"button_add_new": "Agregar nuevo",
|
24
|
+
"button_delete": "Eliminar",
|
25
|
+
"button_edit": "Editar",
|
26
|
+
"button_list": "Lista",
|
27
|
+
"button_reload": "Recargar",
|
28
|
+
"button_save": "Guardar",
|
29
|
+
"view_discussions": "Discusiones",
|
30
|
+
"view_files": "Archivos",
|
31
|
+
"view_quick_actions": "Acciones rapidas"
|
32
|
+
},
|
33
|
+
"users/sessions": {
|
34
|
+
"view_username": "Usuario"
|
83
35
|
}
|
84
36
|
}
|
85
37
|
}
|
data/lib/webpack/base.js
CHANGED
@@ -113,18 +113,19 @@ module.exports = env => {
|
|
113
113
|
// Set aliases as shortcuts to import modules
|
114
114
|
Lesli: path.resolve("lib", "vue"),
|
115
115
|
LesliBell: path.resolve("../", "LesliBell", "lib", "vue"),
|
116
|
+
LesliHelp: path.resolve("../", "Leslihelp", "lib", "vue"),
|
116
117
|
LesliAdmin: path.resolve("../", "LesliAdmin", "lib", "vue"),
|
117
118
|
LesliAudit: path.resolve("../", "LesliAudit", "lib", "vue"),
|
118
119
|
LesliBabel: path.resolve("../", "LesliBabel", "lib", "vue"),
|
119
|
-
|
120
|
+
LesliGuard: path.resolve("../", "LesliGuard", "lib", "vue"),
|
120
121
|
LesliDriver: path.resolve("../", "LesliDriver", "lib", "vue"),
|
122
|
+
|
121
123
|
|
122
124
|
|
123
125
|
CloudAdmin: path.resolve("app", "vue", "admin"),
|
124
126
|
CloudTalk: path.resolve("engines", "cloud_talk", "lib", "vue"),
|
125
127
|
CloudTeam: path.resolve("engines", "cloud_team", "lib", "vue"),
|
126
128
|
CloudTime: path.resolve("engines", "cloud_time", "lib", "vue"),
|
127
|
-
CloudHelp: path.resolve("engines", "cloud_help", "lib", "vue"),
|
128
129
|
CloudWork: path.resolve("engines", "cloud_work", "lib", "vue"),
|
129
130
|
CloudBabel: path.resolve("engines", "cloud_babel", "lib", "vue"),
|
130
131
|
CloudFocus: path.resolve("engines", "cloud_focus", "lib", "vue"),
|
data/readme.md
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lesli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Lesli Development Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -114,20 +114,6 @@ dependencies:
|
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: 1.2.2
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
name: L2
|
119
|
-
requirement: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: 0.5.2
|
124
|
-
type: :runtime
|
125
|
-
prerelease: false
|
126
|
-
version_requirements: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - "~>"
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: 0.5.2
|
131
117
|
- !ruby/object:Gem::Dependency
|
132
118
|
name: devise
|
133
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -213,6 +199,7 @@ files:
|
|
213
199
|
- app/assets/icons/lesli/cloud-dispatcher.svg
|
214
200
|
- app/assets/icons/lesli/cloud-driver.svg
|
215
201
|
- app/assets/icons/lesli/cloud-focus.svg
|
202
|
+
- app/assets/icons/lesli/cloud-guard.svg
|
216
203
|
- app/assets/icons/lesli/cloud-help.svg
|
217
204
|
- app/assets/icons/lesli/cloud-kb.svg
|
218
205
|
- app/assets/icons/lesli/cloud-leaf.svg
|
@@ -227,7 +214,6 @@ files:
|
|
227
214
|
- app/assets/icons/lesli/cloud-talk.svg
|
228
215
|
- app/assets/icons/lesli/cloud-team.svg
|
229
216
|
- app/assets/icons/lesli/cloud-time.svg
|
230
|
-
- app/assets/icons/lesli/cloud-vault.svg
|
231
217
|
- app/assets/icons/lesli/cloud-word.svg
|
232
218
|
- app/assets/icons/lesli/icon-module.svg
|
233
219
|
- app/assets/icons/lesli/logo-android.svg
|
@@ -247,6 +233,7 @@ files:
|
|
247
233
|
- app/assets/images/lesli/brand/app-auth.svg
|
248
234
|
- app/assets/images/lesli/brand/app-icon.svg
|
249
235
|
- app/assets/images/lesli/brand/app-logo.svg
|
236
|
+
- app/assets/images/lesli/brand/app-logo2.svg
|
250
237
|
- app/assets/images/lesli/brand/favicon.png
|
251
238
|
- app/assets/images/lesli/brand/favicon.svg
|
252
239
|
- app/assets/images/lesli/brand/login-background.jpg
|
@@ -269,6 +256,7 @@ files:
|
|
269
256
|
- app/controllers/lesli/interfaces/application/requester.rb
|
270
257
|
- app/controllers/lesli/interfaces/application/responder.rb
|
271
258
|
- app/controllers/lesli/roles_controller.rb
|
259
|
+
- app/controllers/lesli/shared/dashboards_controller.rb
|
272
260
|
- app/controllers/lesli/users_controller.rb
|
273
261
|
- app/controllers/users/confirmations_controller.rb
|
274
262
|
- app/controllers/users/omniauth_callbacks_controller.rb
|
@@ -299,6 +287,7 @@ files:
|
|
299
287
|
- app/models/lesli/role.rb
|
300
288
|
- app/models/lesli/role/power.rb
|
301
289
|
- app/models/lesli/role/privilege.rb
|
290
|
+
- app/models/lesli/shared/dashboard.rb
|
302
291
|
- app/models/lesli/system_controller.rb
|
303
292
|
- app/models/lesli/system_controller/action.rb
|
304
293
|
- app/models/lesli/user.rb
|
@@ -309,6 +298,7 @@ files:
|
|
309
298
|
- app/models/lesli/user/request.rb
|
310
299
|
- app/models/lesli/user/session.rb
|
311
300
|
- app/models/lesli/user/setting.rb
|
301
|
+
- app/operators/lesli/controller_operator.rb
|
312
302
|
- app/operators/lesli/descriptor_privilege_operator.rb
|
313
303
|
- app/operators/lesli/role_power_operator.rb
|
314
304
|
- app/operators/lesli/user_registration_operator.rb
|
@@ -363,6 +353,8 @@ files:
|
|
363
353
|
- config/initializers/devise.rb
|
364
354
|
- config/initializers/lesli.rb
|
365
355
|
- config/locales/devise.en.yml
|
356
|
+
- config/locales/translations.en.yml
|
357
|
+
- config/locales/translations.es.yml
|
366
358
|
- config/routes.rb
|
367
359
|
- db/migrate/v1.0/0010000110_create_lesli_accounts.rb
|
368
360
|
- db/migrate/v1.0/0010000210_create_lesli_roles.rb
|
@@ -482,43 +474,12 @@ files:
|
|
482
474
|
- lib/sass/lesli/templates/public.scss
|
483
475
|
- lib/tasks/lesli/controllers.rake
|
484
476
|
- lib/tasks/lesli/db.rake
|
477
|
+
- lib/tasks/lesli/dev.rake
|
478
|
+
- lib/tasks/lesli/engine.rake
|
485
479
|
- lib/tasks/lesli/git.rake
|
486
|
-
- lib/tasks/lesli/
|
480
|
+
- lib/tasks/lesli/privileges.rake
|
487
481
|
- lib/tasks/lesli_tasks.rake
|
488
482
|
- lib/vue/application.js
|
489
|
-
- lib/vue/apps/cloudobjects/action.vue
|
490
|
-
- lib/vue/apps/cloudobjects/discussion.vue
|
491
|
-
- lib/vue/apps/cloudobjects/discussion/content.vue
|
492
|
-
- lib/vue/apps/cloudobjects/discussion/element.vue
|
493
|
-
- lib/vue/apps/cloudobjects/discussion/filters.vue
|
494
|
-
- lib/vue/apps/cloudobjects/discussion/new.vue
|
495
|
-
- lib/vue/apps/cloudobjects/file.vue
|
496
|
-
- lib/vue/apps/cloudobjects/file/grid.vue
|
497
|
-
- lib/vue/apps/cloudobjects/file/list.vue
|
498
|
-
- lib/vue/apps/dashboards/apps/edit.vue
|
499
|
-
- lib/vue/apps/dashboards/apps/index.vue
|
500
|
-
- lib/vue/apps/dashboards/apps/new.vue
|
501
|
-
- lib/vue/apps/dashboards/apps/show.vue
|
502
|
-
- lib/vue/apps/dashboards/components/form.vue
|
503
|
-
- lib/vue/apps/dashboards/components/preview.vue
|
504
|
-
- lib/vue/apps/workflows2/apps/actions/form.vue
|
505
|
-
- lib/vue/apps/workflows2/apps/actions/forms/chatroom-form.vue
|
506
|
-
- lib/vue/apps/workflows2/apps/actions/forms/cloud-object-clone-form.vue
|
507
|
-
- lib/vue/apps/workflows2/apps/actions/forms/cloud-object-file-form.vue
|
508
|
-
- lib/vue/apps/workflows2/apps/actions/forms/email-form.vue
|
509
|
-
- lib/vue/apps/workflows2/apps/actions/forms/notification-form.vue
|
510
|
-
- lib/vue/apps/workflows2/apps/actions/forms/send-cloud-object-file.vue
|
511
|
-
- lib/vue/apps/workflows2/apps/actions/forms/task-form.vue
|
512
|
-
- lib/vue/apps/workflows2/apps/actions/index.vue
|
513
|
-
- lib/vue/apps/workflows2/apps/checks/form.vue
|
514
|
-
- lib/vue/apps/workflows2/apps/checks/index.vue
|
515
|
-
- lib/vue/apps/workflows2/apps/index.vue
|
516
|
-
- lib/vue/apps/workflows2/apps/new.vue
|
517
|
-
- lib/vue/apps/workflows2/apps/show.vue
|
518
|
-
- lib/vue/apps/workflows2/components/associations.vue
|
519
|
-
- lib/vue/apps/workflows2/components/chart.vue
|
520
|
-
- lib/vue/apps/workflows2/components/workflow-form.vue
|
521
|
-
- lib/vue/apps/workflows2/components/workflow-status-dropdown.vue
|
522
483
|
- lib/vue/devise/confirmations.js
|
523
484
|
- lib/vue/devise/passwords.js
|
524
485
|
- lib/vue/devise/registrations.js
|
@@ -556,6 +517,39 @@ files:
|
|
556
517
|
- lib/vue/panels/panel-tasks.vue
|
557
518
|
- lib/vue/panels/panel-tickets.vue
|
558
519
|
- lib/vue/public.js
|
520
|
+
- lib/vue/shared/cloudobjects/action.vue
|
521
|
+
- lib/vue/shared/cloudobjects/discussion.vue
|
522
|
+
- lib/vue/shared/cloudobjects/discussion/content.vue
|
523
|
+
- lib/vue/shared/cloudobjects/discussion/element.vue
|
524
|
+
- lib/vue/shared/cloudobjects/discussion/filters.vue
|
525
|
+
- lib/vue/shared/cloudobjects/discussion/new.vue
|
526
|
+
- lib/vue/shared/cloudobjects/file.vue
|
527
|
+
- lib/vue/shared/cloudobjects/file/grid.vue
|
528
|
+
- lib/vue/shared/cloudobjects/file/list.vue
|
529
|
+
- lib/vue/shared/dashboards/apps/edit.vue
|
530
|
+
- lib/vue/shared/dashboards/apps/index.vue
|
531
|
+
- lib/vue/shared/dashboards/apps/new.vue
|
532
|
+
- lib/vue/shared/dashboards/apps/show.vue
|
533
|
+
- lib/vue/shared/dashboards/components/form.vue
|
534
|
+
- lib/vue/shared/stores/dashboard.js
|
535
|
+
- lib/vue/shared/workflows2/apps/actions/form.vue
|
536
|
+
- lib/vue/shared/workflows2/apps/actions/forms/chatroom-form.vue
|
537
|
+
- lib/vue/shared/workflows2/apps/actions/forms/cloud-object-clone-form.vue
|
538
|
+
- lib/vue/shared/workflows2/apps/actions/forms/cloud-object-file-form.vue
|
539
|
+
- lib/vue/shared/workflows2/apps/actions/forms/email-form.vue
|
540
|
+
- lib/vue/shared/workflows2/apps/actions/forms/notification-form.vue
|
541
|
+
- lib/vue/shared/workflows2/apps/actions/forms/send-cloud-object-file.vue
|
542
|
+
- lib/vue/shared/workflows2/apps/actions/forms/task-form.vue
|
543
|
+
- lib/vue/shared/workflows2/apps/actions/index.vue
|
544
|
+
- lib/vue/shared/workflows2/apps/checks/form.vue
|
545
|
+
- lib/vue/shared/workflows2/apps/checks/index.vue
|
546
|
+
- lib/vue/shared/workflows2/apps/index.vue
|
547
|
+
- lib/vue/shared/workflows2/apps/new.vue
|
548
|
+
- lib/vue/shared/workflows2/apps/show.vue
|
549
|
+
- lib/vue/shared/workflows2/components/associations.vue
|
550
|
+
- lib/vue/shared/workflows2/components/chart.vue
|
551
|
+
- lib/vue/shared/workflows2/components/workflow-form.vue
|
552
|
+
- lib/vue/shared/workflows2/components/workflow-status-dropdown.vue
|
559
553
|
- lib/vue/stores/account.js
|
560
554
|
- lib/vue/stores/cloudobjects/action.js
|
561
555
|
- lib/vue/stores/cloudobjects/discussion.js
|
@@ -573,7 +567,7 @@ files:
|
|
573
567
|
- lib/vue/stores/services/firebase.js
|
574
568
|
- lib/vue/stores/services/translator.js
|
575
569
|
- lib/vue/stores/translations.json
|
576
|
-
- lib/vue/stores/
|
570
|
+
- lib/vue/stores/users.js
|
577
571
|
- lib/vue/translation.js
|
578
572
|
- lib/webpack/base.js
|
579
573
|
- lib/webpack/core.js
|