lesli_dashboard 0.2.0 → 0.4.0

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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/lesli_dashboard/application.js +14 -1
  3. data/app/assets/stylesheets/lesli_dashboard/application.css +595 -0
  4. data/app/controllers/lesli_dashboard/dashboard/components_controller.rb +60 -0
  5. data/app/controllers/lesli_dashboard/dashboards_controller.rb +36 -0
  6. data/app/models/lesli_dashboard/account.rb +44 -0
  7. data/app/models/lesli_dashboard/dashboard/component.rb +50 -0
  8. data/app/models/lesli_dashboard/dashboard.rb +55 -0
  9. data/app/views/lesli_dashboard/dashboards/edit.html.erb +32 -0
  10. data/app/views/lesli_dashboard/dashboards/index.html.erb +32 -0
  11. data/app/views/lesli_dashboard/dashboards/new.html.erb +32 -0
  12. data/app/views/lesli_dashboard/dashboards/show.html.erb +2 -0
  13. data/config/locales/translations.en.yml +1 -19
  14. data/config/locales/translations.es.yml +1 -19
  15. data/config/locales/translations.fr.yml +2 -0
  16. data/config/locales/translations.it.yml +2 -0
  17. data/config/locales/translations.pt.yml +2 -0
  18. data/config/routes.rb +2 -1
  19. data/db/migrate/0306000110_create_lesli_dashboard_accounts.rb +37 -0
  20. data/db/migrate/0306050110_create_lesli_dashboard_dashboards.rb +37 -0
  21. data/lib/lesli_dashboard/engine.rb +6 -0
  22. data/lib/lesli_dashboard/version.rb +2 -2
  23. data/lib/scss/application.scss +13 -0
  24. data/lib/vue/application.js +25 -0
  25. data/lib/vue/apps/assistant/show.vue +26 -5
  26. data/lib/vue/apps/dashboards/components/lesli-version.vue +71 -0
  27. data/lib/vue/stores/translations.json +114 -0
  28. data/readme.md +24 -15
  29. metadata +20 -27
  30. data/app/controllers/lesli_dashboard/assistants_controller.rb +0 -60
  31. data/app/helpers/lesli_dashboard/assistants_helper.rb +0 -4
  32. data/app/models/lesli_dashboard/assistant.rb +0 -4
  33. data/app/views/lesli_dashboard/assistants/edit.html.erb +0 -10
  34. data/app/views/lesli_dashboard/assistants/index.html.erb +0 -14
  35. data/app/views/lesli_dashboard/assistants/new.html.erb +0 -9
  36. data/app/views/lesli_dashboard/assistants/show.html.erb +0 -1
  37. data/db/migrate/20240303035734_create_lesli_dashboard_assistants.rb +0 -8
  38. /data/app/assets/images/lesli_dashboard/{engine-dashboard.svg → dashboard-logo.svg} +0 -0
@@ -5,6 +5,12 @@
5
5
  "navigation_logout": "Logout",
6
6
  "navigation_my_profile": "My profile"
7
7
  },
8
+ "dashboards": {
9
+ "column_default": "Default",
10
+ "column_name": "Name",
11
+ "title": "Dashboards",
12
+ "view_add_component": "Add component"
13
+ },
8
14
  "shared": {
9
15
  "button_add_new": "Add new",
10
16
  "button_delete": "Delete",
@@ -14,6 +20,9 @@
14
20
  "button_save": "Save",
15
21
  "button_settings": "Settings",
16
22
  "button_show": "Show",
23
+ "message_operation_error": "Operation failed. Please try again.",
24
+ "message_operation_success": "Operation completed successfully",
25
+ "toolbar_search": "Search...",
17
26
  "view_discussions": "Discussions",
18
27
  "view_files": "Files",
19
28
  "view_quick_actions": "Quick actions",
@@ -28,6 +37,12 @@
28
37
  "navigation_logout": "Cerrar sesión",
29
38
  "navigation_my_profile": "Mi perfil"
30
39
  },
40
+ "dashboards": {
41
+ "column_default": "Default",
42
+ "column_name": "Nombre",
43
+ "title": "Dashboards",
44
+ "view_add_component": "Agregar componente"
45
+ },
31
46
  "shared": {
32
47
  "button_add_new": "Agregar nuevo",
33
48
  "button_delete": "Eliminar",
@@ -37,6 +52,9 @@
37
52
  "button_save": "Guardar",
38
53
  "button_settings": "Configuración",
39
54
  "button_show": "Ver",
55
+ "message_operation_error": "Operación fallida. Por favor, inténtelo de nuevo.",
56
+ "message_operation_success": "Operacion realizada satisfactoriamente",
57
+ "toolbar_search": "Buscar...",
40
58
  "view_discussions": "Discusiones",
41
59
  "view_files": "Archivos",
42
60
  "view_quick_actions": "Acciones rapidas",
@@ -44,5 +62,101 @@
44
62
  "view_status_inactive": "Inactivo"
45
63
  }
46
64
  }
65
+ },
66
+ "fr": {
67
+ "lesli": {
68
+ "application": {
69
+ "navigation_logout": ":lesli.application.navigation_logout:",
70
+ "navigation_my_profile": ":lesli.application.navigation_my_profile:"
71
+ },
72
+ "dashboards": {
73
+ "column_default": ":lesli.dashboards.column_default:",
74
+ "column_name": ":lesli.dashboards.column_name:",
75
+ "title": ":lesli.dashboards.title:",
76
+ "view_add_component": ":lesli.dashboards.view_add_component:"
77
+ },
78
+ "shared": {
79
+ "button_add_new": ":lesli.shared.button_add_new:",
80
+ "button_delete": ":lesli.shared.button_delete:",
81
+ "button_edit": ":lesli.shared.button_edit:",
82
+ "button_list": ":lesli.shared.button_list:",
83
+ "button_reload": ":lesli.shared.button_reload:",
84
+ "button_save": ":lesli.shared.button_save:",
85
+ "button_settings": ":lesli.shared.button_settings:",
86
+ "button_show": ":lesli.shared.button_show:",
87
+ "message_operation_error": ":lesli.shared.message_operation_error:",
88
+ "message_operation_success": ":lesli.shared.message_operation_success:",
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
+ }
97
+ },
98
+ "it": {
99
+ "lesli": {
100
+ "application": {
101
+ "navigation_logout": ":lesli.application.navigation_logout:",
102
+ "navigation_my_profile": ":lesli.application.navigation_my_profile:"
103
+ },
104
+ "dashboards": {
105
+ "column_default": ":lesli.dashboards.column_default:",
106
+ "column_name": ":lesli.dashboards.column_name:",
107
+ "title": ":lesli.dashboards.title:",
108
+ "view_add_component": ":lesli.dashboards.view_add_component:"
109
+ },
110
+ "shared": {
111
+ "button_add_new": ":lesli.shared.button_add_new:",
112
+ "button_delete": ":lesli.shared.button_delete:",
113
+ "button_edit": ":lesli.shared.button_edit:",
114
+ "button_list": ":lesli.shared.button_list:",
115
+ "button_reload": ":lesli.shared.button_reload:",
116
+ "button_save": ":lesli.shared.button_save:",
117
+ "button_settings": ":lesli.shared.button_settings:",
118
+ "button_show": ":lesli.shared.button_show:",
119
+ "message_operation_error": ":lesli.shared.message_operation_error:",
120
+ "message_operation_success": ":lesli.shared.message_operation_success:",
121
+ "toolbar_search": ":lesli.shared.toolbar_search:",
122
+ "view_discussions": ":lesli.shared.view_discussions:",
123
+ "view_files": ":lesli.shared.view_files:",
124
+ "view_quick_actions": ":lesli.shared.view_quick_actions:",
125
+ "view_status_active": ":lesli.shared.view_status_active:",
126
+ "view_status_inactive": ":lesli.shared.view_status_inactive:"
127
+ }
128
+ }
129
+ },
130
+ "pt": {
131
+ "lesli": {
132
+ "application": {
133
+ "navigation_logout": ":lesli.application.navigation_logout:",
134
+ "navigation_my_profile": ":lesli.application.navigation_my_profile:"
135
+ },
136
+ "dashboards": {
137
+ "column_default": ":lesli.dashboards.column_default:",
138
+ "column_name": ":lesli.dashboards.column_name:",
139
+ "title": ":lesli.dashboards.title:",
140
+ "view_add_component": ":lesli.dashboards.view_add_component:"
141
+ },
142
+ "shared": {
143
+ "button_add_new": ":lesli.shared.button_add_new:",
144
+ "button_delete": ":lesli.shared.button_delete:",
145
+ "button_edit": ":lesli.shared.button_edit:",
146
+ "button_list": ":lesli.shared.button_list:",
147
+ "button_reload": ":lesli.shared.button_reload:",
148
+ "button_save": ":lesli.shared.button_save:",
149
+ "button_settings": ":lesli.shared.button_settings:",
150
+ "button_show": ":lesli.shared.button_show:",
151
+ "message_operation_error": ":lesli.shared.message_operation_error:",
152
+ "message_operation_success": ":lesli.shared.message_operation_success:",
153
+ "toolbar_search": ":lesli.shared.toolbar_search:",
154
+ "view_discussions": ":lesli.shared.view_discussions:",
155
+ "view_files": ":lesli.shared.view_files:",
156
+ "view_quick_actions": ":lesli.shared.view_quick_actions:",
157
+ "view_status_active": ":lesli.shared.view_status_active:",
158
+ "view_status_inactive": ":lesli.shared.view_status_inactive:"
159
+ }
160
+ }
47
161
  }
48
162
  }
data/readme.md CHANGED
@@ -1,15 +1,25 @@
1
- <p align="center">
2
- <img width="90" alt="LesliDashboard logo" src="./app/assets/images/lesli_dashboard/dashboard-logo.svg" />
3
- <h3 align="center">Administration area for the Lesli Framework.</h3>
4
- </p>
1
+ <div align="center" class="documentation-header">
2
+ <img width="100" alt="LesliDashboard logo" src="./app/assets/images/lesli_dashboard/dashboard-logo.svg" />
3
+ <h3 align="center">Dashboard Management Lesli Framework.</h3>
4
+ </div>
5
5
 
6
+ <br />
6
7
  <hr/>
7
- <p align="center">
8
- <a target="blank" href="https://rubygems.org/gems/lesli_dashboard">
9
- <img src="https://badge.fury.io/rb/lesli_dashboard.svg" alt="Gem Version" height="24">
10
- </a>
11
- </p>
8
+
9
+ <div align="center" class="documentation-statics">
10
+ <a target="blank" href="https://rubygems.org/gems/lesli">
11
+ <img height="22" alt="Gem Version" src="https://badge.fury.io/rb/lesli.svg"/>
12
+ </a>
13
+ <a class="mx-2" href="https://codecov.io/github/LesliTech/Lesli">
14
+ <img height="22" src="https://codecov.io/github/LesliTech/Lesli/graph/badge.svg?token=2O12NENK5Y"/>
15
+ </a>
16
+ <a href="https://codecov.io/github/LesliTech/LesliBabel">
17
+ <img height="22" src="https://sonarcloud.io/api/project_badges/measure?project=LesliTech_LesliBabel&metric=sqale_rating"/>
18
+ </a>
19
+ </div>
20
+
12
21
  <hr/>
22
+ <br />
13
23
 
14
24
  ### Quick start
15
25
 
@@ -39,14 +49,14 @@ end
39
49
 
40
50
  ### Get in touch with Lesli
41
51
 
42
- * [Website: https://www.lesli.tech](https://www.lesli.tech)
43
52
  * [Email: hello@lesli.tech](hello@lesli.tech)
53
+ * [Website: https://www.lesli.tech](https://www.lesli.tech)
44
54
  * [Twitter: @LesliTech](https://twitter.com/LesliTech)
45
55
 
46
56
 
47
57
  ### License
48
58
  -------
49
- Copyright (c) 2023, Lesli Technologies, S. A.
59
+ Copyright (c) 2025, Lesli Technologies, S. A.
50
60
 
51
61
  This program is free software: you can redistribute it and/or modify
52
62
  it under the terms of the GNU General Public License as published by
@@ -64,8 +74,7 @@ along with this program. If not, see http://www.gnu.org/licenses/.
64
74
  <hr />
65
75
  <br />
66
76
 
67
- <p align="center">
77
+ <div align="center" class="has-text-centered">
68
78
  <img width="200" alt="Lesli logo" src="https://cdn.lesli.tech/lesli/brand/app-logo.svg" />
69
- <h4 align="center">Ruby on Rails SaaS Development Framework.</h4>
70
- </p>
71
-
79
+ <h4 align="center" class="mt-0">Ruby on Rails SaaS Development Framework.</h4>
80
+ </div>
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lesli_dashboard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
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: 2024-03-03 00:00:00.000000000 Z
11
+ date: 2025-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rails
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 7.0.6
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 7.0.6
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: lesli
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -47,26 +33,32 @@ extra_rdoc_files: []
47
33
  files:
48
34
  - Rakefile
49
35
  - app/assets/config/lesli_dashboard_manifest.js
50
- - app/assets/images/lesli_dashboard/engine-dashboard.svg
36
+ - app/assets/images/lesli_dashboard/dashboard-logo.svg
51
37
  - app/assets/javascripts/lesli_dashboard/application.js
52
38
  - app/assets/stylesheets/lesli_dashboard/application.css
53
39
  - app/controllers/lesli_dashboard/application_controller.rb
54
- - app/controllers/lesli_dashboard/assistants_controller.rb
40
+ - app/controllers/lesli_dashboard/dashboard/components_controller.rb
41
+ - app/controllers/lesli_dashboard/dashboards_controller.rb
55
42
  - app/helpers/lesli_dashboard/application_helper.rb
56
- - app/helpers/lesli_dashboard/assistants_helper.rb
57
43
  - app/jobs/lesli_dashboard/application_job.rb
58
44
  - app/mailers/lesli_dashboard/application_mailer.rb
45
+ - app/models/lesli_dashboard/account.rb
59
46
  - app/models/lesli_dashboard/application_record.rb
60
- - app/models/lesli_dashboard/assistant.rb
47
+ - app/models/lesli_dashboard/dashboard.rb
48
+ - app/models/lesli_dashboard/dashboard/component.rb
61
49
  - app/views/layouts/lesli_dashboard/application.html.erb
62
- - app/views/lesli_dashboard/assistants/edit.html.erb
63
- - app/views/lesli_dashboard/assistants/index.html.erb
64
- - app/views/lesli_dashboard/assistants/new.html.erb
65
- - app/views/lesli_dashboard/assistants/show.html.erb
50
+ - app/views/lesli_dashboard/dashboards/edit.html.erb
51
+ - app/views/lesli_dashboard/dashboards/index.html.erb
52
+ - app/views/lesli_dashboard/dashboards/new.html.erb
53
+ - app/views/lesli_dashboard/dashboards/show.html.erb
66
54
  - config/locales/translations.en.yml
67
55
  - config/locales/translations.es.yml
56
+ - config/locales/translations.fr.yml
57
+ - config/locales/translations.it.yml
58
+ - config/locales/translations.pt.yml
68
59
  - config/routes.rb
69
- - db/migrate/20240303035734_create_lesli_dashboard_assistants.rb
60
+ - db/migrate/0306000110_create_lesli_dashboard_accounts.rb
61
+ - db/migrate/0306050110_create_lesli_dashboard_dashboards.rb
70
62
  - lib/lesli_dashboard.rb
71
63
  - lib/lesli_dashboard/engine.rb
72
64
  - lib/lesli_dashboard/version.rb
@@ -74,6 +66,7 @@ files:
74
66
  - lib/tasks/lesli_dashboard_tasks.rake
75
67
  - lib/vue/application.js
76
68
  - lib/vue/apps/assistant/show.vue
69
+ - lib/vue/apps/dashboards/components/lesli-version.vue
77
70
  - lib/vue/stores/translations.json
78
71
  - license
79
72
  - readme.md
@@ -92,14 +85,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
92
85
  requirements:
93
86
  - - ">="
94
87
  - !ruby/object:Gem::Version
95
- version: '2.7'
88
+ version: '0'
96
89
  required_rubygems_version: !ruby/object:Gem::Requirement
97
90
  requirements:
98
91
  - - ">="
99
92
  - !ruby/object:Gem::Version
100
93
  version: '0'
101
94
  requirements: []
102
- rubygems_version: 3.3.7
95
+ rubygems_version: 3.4.19
103
96
  signing_key:
104
97
  specification_version: 4
105
98
  summary: Administration area for the Lesli Framework
@@ -1,60 +0,0 @@
1
- module LesliDashboard
2
- class AssistantsController < ApplicationController
3
- #before_action :set_assistant, only: %i[ show edit update destroy ]
4
-
5
- # GET /assistants
6
- def index
7
- @assistants = Assistant.all
8
- end
9
-
10
- # GET /assistants/1
11
- def show
12
- end
13
-
14
- # GET /assistants/new
15
- def new
16
- @assistant = Assistant.new
17
- end
18
-
19
- # GET /assistants/1/edit
20
- def edit
21
- end
22
-
23
- # POST /assistants
24
- def create
25
- @assistant = Assistant.new(assistant_params)
26
-
27
- if @assistant.save
28
- redirect_to @assistant, notice: "Assistant was successfully created."
29
- else
30
- render :new, status: :unprocessable_entity
31
- end
32
- end
33
-
34
- # PATCH/PUT /assistants/1
35
- def update
36
- if @assistant.update(assistant_params)
37
- redirect_to @assistant, notice: "Assistant was successfully updated.", status: :see_other
38
- else
39
- render :edit, status: :unprocessable_entity
40
- end
41
- end
42
-
43
- # DELETE /assistants/1
44
- def destroy
45
- @assistant.destroy
46
- redirect_to assistants_url, notice: "Assistant was successfully destroyed.", status: :see_other
47
- end
48
-
49
- private
50
- # Use callbacks to share common setup or constraints between actions.
51
- def set_assistant
52
- @assistant = Assistant.find(params[:id])
53
- end
54
-
55
- # Only allow a list of trusted parameters through.
56
- def assistant_params
57
- params.fetch(:assistant, {})
58
- end
59
- end
60
- end
@@ -1,4 +0,0 @@
1
- module LesliDashboard
2
- module AssistantsHelper
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- module LesliDashboard
2
- class Assistant < ApplicationRecord
3
- end
4
- end
@@ -1,10 +0,0 @@
1
- <h1>Editing assistant</h1>
2
-
3
- <%= render "form", assistant: @assistant %>
4
-
5
- <br>
6
-
7
- <div>
8
- <%= link_to "Show this assistant", @assistant %> |
9
- <%= link_to "Back to assistants", assistants_path %>
10
- </div>
@@ -1,14 +0,0 @@
1
- <p style="color: green"><%= notice %></p>
2
-
3
- <h1>Assistants</h1>
4
-
5
- <div id="assistants">
6
- <% @assistants.each do |assistant| %>
7
- <%= render assistant %>
8
- <p>
9
- <%= link_to "Show this assistant", assistant %>
10
- </p>
11
- <% end %>
12
- </div>
13
-
14
- <%= link_to "New assistant", new_assistant_path %>
@@ -1,9 +0,0 @@
1
- <h1>New assistant</h1>
2
-
3
- <%= render "form", assistant: @assistant %>
4
-
5
- <br>
6
-
7
- <div>
8
- <%= link_to "Back to assistants", assistants_path %>
9
- </div>
@@ -1 +0,0 @@
1
- <router-view></router-view>
@@ -1,8 +0,0 @@
1
- class CreateLesliDashboardAssistants < ActiveRecord::Migration[7.0]
2
- def change
3
- create_table :lesli_dashboard_assistants do |t|
4
-
5
- t.timestamps
6
- end
7
- end
8
- end