From b68bd0c27b53951f507ccd106be18785d94e4939 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mois=C3=A9s=20de=20Jes=C3=BAs=20Cort=C3=A9s=20Castellanos?= <96152034+notsoweb@users.noreply.github.com> Date: Fri, 3 Jan 2025 12:55:25 -0600 Subject: [PATCH] ADD: Historial de acciones (#5) --- package.json | 2 +- src/components/Holos/Paginable.vue | 87 ++++++++++ .../Skeleton/Sidebar/Notification/Item.vue | 2 +- src/components/Holos/Timeline/Item.vue | 91 +++++++++++ src/lang/es.js | 19 ++- src/layouts/AppLayout.vue | 8 +- src/pages/Admin/Activities/Index.vue | 151 ++++++++++++++++++ src/pages/Admin/Activities/Modals/Event.vue | 62 +++++++ src/pages/Admin/Activities/Modals/Show.vue | 71 ++++++++ src/pages/Admin/Activities/Module.js | 21 +++ src/pages/Admin/Roles/Index.vue | 4 +- src/pages/Admin/Roles/Modals/Permissions.vue | 5 +- src/pages/Admin/Roles/Module.js | 2 +- src/pages/Admin/Users/Index.vue | 17 +- src/pages/Admin/Users/Module.js | 2 +- src/pages/Changelogs.vue | 12 ++ src/pages/Dashboard/Index.vue | 2 +- src/pages/Render.vue | 1 + src/router/Index.js | 16 ++ src/services/Api.js | 1 - 20 files changed, 559 insertions(+), 17 deletions(-) create mode 100644 src/components/Holos/Paginable.vue create mode 100644 src/components/Holos/Timeline/Item.vue create mode 100644 src/pages/Admin/Activities/Index.vue create mode 100644 src/pages/Admin/Activities/Modals/Event.vue create mode 100644 src/pages/Admin/Activities/Modals/Show.vue create mode 100644 src/pages/Admin/Activities/Module.js diff --git a/package.json b/package.json index 570624e..866bc37 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "notsoweb.frontend", "copyright": "Notsoweb Software Inc.", "private": true, - "version": "0.9.4", + "version": "0.9.5", "type": "module", "scripts": { "dev": "vite", diff --git a/src/components/Holos/Paginable.vue b/src/components/Holos/Paginable.vue new file mode 100644 index 0000000..57446d8 --- /dev/null +++ b/src/components/Holos/Paginable.vue @@ -0,0 +1,87 @@ + + + \ No newline at end of file diff --git a/src/components/Holos/Skeleton/Sidebar/Notification/Item.vue b/src/components/Holos/Skeleton/Sidebar/Notification/Item.vue index c6388e7..45c1a29 100644 --- a/src/components/Holos/Skeleton/Sidebar/Notification/Item.vue +++ b/src/components/Holos/Skeleton/Sidebar/Notification/Item.vue @@ -70,7 +70,7 @@ defineProps({ class="text-xs text-gray-400 truncate" />
diff --git a/src/components/Holos/Timeline/Item.vue b/src/components/Holos/Timeline/Item.vue new file mode 100644 index 0000000..821ac05 --- /dev/null +++ b/src/components/Holos/Timeline/Item.vue @@ -0,0 +1,91 @@ + + + \ No newline at end of file diff --git a/src/lang/es.js b/src/lang/es.js index 4e6ff6e..09efedf 100644 --- a/src/lang/es.js +++ b/src/lang/es.js @@ -69,9 +69,14 @@ export default { title: 'Cuenta', }, actions:'Acciones', + activity:'Actividad', add: 'Agregar', admin: { title: 'Administración', + activity: { + title: 'Historial de acciones', + description: 'Historial de acciones realizadas por los usuarios en orden cronológico.' + } }, app: { theme: { @@ -115,6 +120,7 @@ export default { notifySendVerification: 'Se ha enviado un nuevo enlace de verificación a su dirección de correo electrónico.', }, }, + author:'Autor', code:'Código', contracted_at: 'Fecha contratación', cancel:'Cancelar', @@ -347,7 +353,9 @@ export default { }, startDate:'Fecha de inicio', status:'Estado', - system:'Sistema', + system:{ + title:'Núcleo de Holos', + }, target: { title: 'Meta', total: 'Meta total' @@ -381,6 +389,10 @@ export default { unreaded:'No leído', user:'Usuario', users:{ + activity: { + title: 'Actividad del usuario', + description: 'Historial de acciones realizadas por el usuario.', + }, create:{ title:'Crear usuario', description:'Permite crear nuevos usuarios. No olvides otorgarle roles para que pueda acceder a las partes del sistema deseados.', @@ -388,6 +400,7 @@ export default { onError:'Ocurrió un error al crear el usuario' }, deleted:'Usuario eliminado', + remove: 'Remover usuario', edit: { title: 'Editar usuario' }, @@ -398,7 +411,7 @@ export default { }, notFount:'Usuario no encontrado', password: { - description:'Permite actualizar las contraseñas de los usuarios sobre escribiendola.', + description:'Permite actualizar las contraseñas de los usuarios sobre escribiéndola.', title:'Actualizar contraseña', }, roles: { @@ -420,7 +433,7 @@ export default { title:'Usuarios', }, version:'Versión', - welcome: 'Bienvenido {name}.', + welcome: 'Bienvenido', workstation: 'Puesto de trabajo', workstations: { create: { diff --git a/src/layouts/AppLayout.vue b/src/layouts/AppLayout.vue index 927d47e..d33531b 100644 --- a/src/layouts/AppLayout.vue +++ b/src/layouts/AppLayout.vue @@ -32,7 +32,7 @@ onMounted(() => { { name="roles.title" to="admin.roles.index" /> + diff --git a/src/pages/Admin/Activities/Index.vue b/src/pages/Admin/Activities/Index.vue new file mode 100644 index 0000000..6b63d79 --- /dev/null +++ b/src/pages/Admin/Activities/Index.vue @@ -0,0 +1,151 @@ + + + + \ No newline at end of file diff --git a/src/pages/Admin/Activities/Modals/Event.vue b/src/pages/Admin/Activities/Modals/Event.vue new file mode 100644 index 0000000..1b2bb2f --- /dev/null +++ b/src/pages/Admin/Activities/Modals/Event.vue @@ -0,0 +1,62 @@ + + \ No newline at end of file diff --git a/src/pages/Admin/Activities/Modals/Show.vue b/src/pages/Admin/Activities/Modals/Show.vue new file mode 100644 index 0000000..54586ad --- /dev/null +++ b/src/pages/Admin/Activities/Modals/Show.vue @@ -0,0 +1,71 @@ + + \ No newline at end of file diff --git a/src/pages/Admin/Activities/Module.js b/src/pages/Admin/Activities/Module.js new file mode 100644 index 0000000..5dacdc3 --- /dev/null +++ b/src/pages/Admin/Activities/Module.js @@ -0,0 +1,21 @@ +import { lang } from '@Lang/i18n'; +import { hasPermission } from '@Plugins/RolePermission.js'; + +// Ruta API +const apiTo = (name, params = {}) => route(`admin.activities.${name}`, params) + +// Ruta visual +const viewTo = ({ name = '', params = {}, query = {} }) => view({ name: `admin.activities.${name}`, params, query }) + +// Obtener traducción del componente +const transl = (str) => lang(`activities.${str}`) + +// Determina si un usuario puede hacer algo no en base a los permisos +const can = (permission) => hasPermission(`activities.${permission}`) + +export { + can, + viewTo, + apiTo, + transl +} \ No newline at end of file diff --git a/src/pages/Admin/Roles/Index.vue b/src/pages/Admin/Roles/Index.vue index ea332c2..00c09ff 100644 --- a/src/pages/Admin/Roles/Index.vue +++ b/src/pages/Admin/Roles/Index.vue @@ -22,7 +22,7 @@ const modelModal = ref(Modal.modelModal); const models = ref([]); const searcher = useSearcher({ - url: route('roles.index'), + url: apiTo('index'), onSuccess: (r) => models.value = r.models, onError: () => models.value = [] }); @@ -59,7 +59,7 @@ onMounted(() => {