|
-
+
{{ model.department.name }}
|
{{ model.name }} |
- {{ model.cost }} {{ model.currency }} |
+ {{ model.cost }} {{ model.cost_currency }} |
{
|
{{ model.status_ek }}
diff --git a/src/pages/Courses/Modals/Show.vue b/src/pages/Courses/Admin/Modals/Show.vue
similarity index 100%
rename from src/pages/Courses/Modals/Show.vue
rename to src/pages/Courses/Admin/Modals/Show.vue
diff --git a/src/pages/Courses/Module.js b/src/pages/Courses/Admin/Module.js
similarity index 100%
rename from src/pages/Courses/Module.js
rename to src/pages/Courses/Admin/Module.js
diff --git a/src/pages/Courses/Coordinator/Index.vue b/src/pages/Courses/Coordinator/Index.vue
new file mode 100644
index 0000000..d2339cc
--- /dev/null
+++ b/src/pages/Courses/Coordinator/Index.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+ {{ $t('courses.description') }}
+
+
+
+
+
+
+
+
+
+ searcher.search(x)">
+
+
+
+
+
+ searcher.pagination(page)">
+
+ |
+ |
+ |
+ |
+ |
+
+
+
+
+ | {{ model.name }} |
+ {{ model.cost }} {{ model.cost_currency }} |
+
+
+ Ver curso
+
+ -
+ |
+
+
+ {{ model.status_ek }}
+
+ |
+
+
+
+
+ |
+
+
+
+
+
+
+
+ No se encontraron cursos
+ Intenta ajustar los filtros de búsqueda
+
+ |
+
+
+
+
+
+
diff --git a/src/pages/Courses/Coordinator/Modals/Show.vue b/src/pages/Courses/Coordinator/Modals/Show.vue
new file mode 100644
index 0000000..720bb9a
--- /dev/null
+++ b/src/pages/Courses/Coordinator/Modals/Show.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+ {{ $t('details') }}
+
+
+ {{ $t('name') }}:
+ {{ model.name }}
+
+
+ {{ $t('certification_type') }}:
+ {{ model.certification_type ?? '-' }}
+
+
+ {{ $t('cost') }}:
+ {{ model.cost }} {{ model.cost_currency }}
+
+
+ {{ $t('duration') }}:
+ {{ model.duration ?? '-' }} días
+
+
+ {{ $t('description') }}:
+ {{ model.description ?? '-' }}
+
+
+ {{ $t('url') }}:
+
+ {{ model.url }}
+
+
+
+ {{ $t('certification_name') }}:
+ {{ model.certification_name ?? '-' }}
+
+
+ {{ $t('status') }}:
+
+ {{ model.status_ek }}
+
+
+
+ {{ $t('department') }}:
+ {{ model.department?.name ?? '-' }}
+
+
+ {{ $t('created_at') }}:
+ {{ getDateTime(model.created_at) }}
+
+
+ {{ $t('updated_at') }}:
+ {{ getDateTime(model.updated_at) }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/Courses/Coordinator/Module.js b/src/pages/Courses/Coordinator/Module.js
new file mode 100644
index 0000000..d0c2ed5
--- /dev/null
+++ b/src/pages/Courses/Coordinator/Module.js
@@ -0,0 +1,21 @@
+import { lang } from '@Lang/i18n';
+import { hasPermission } from '@Plugins/RolePermission.js';
+
+// Ruta API
+const apiTo = (name, params = {}) => route(`courses.coordinator.${name}`, params)
+
+// Ruta visual
+const viewTo = ({ name = '', params = {}, query = {} }) => view({ name: `courses.coordinator.${name}`, params, query })
+
+// Obtener traducción del componente
+const transl = (str) => lang(`courses.${str}`)
+
+// Determina si un usuario puede hacer algo no en base a los permisos
+const can = (permission) => hasPermission(`courses.${permission}`)
+
+export {
+ can,
+ viewTo,
+ apiTo,
+ transl
+}
\ No newline at end of file
diff --git a/src/pages/Courses/Coordinator/Request.vue b/src/pages/Courses/Coordinator/Request.vue
new file mode 100644
index 0000000..7051e96
--- /dev/null
+++ b/src/pages/Courses/Coordinator/Request.vue
@@ -0,0 +1,267 @@
+
+
+
+
+
+
+
+
+
+
+ Completa la información para solicitar un nuevo curso de capacitación
+
+
+
+
+
diff --git a/src/pages/Courses/Request.vue b/src/pages/Courses/Request.vue
deleted file mode 100644
index 27149d2..0000000
--- a/src/pages/Courses/Request.vue
+++ /dev/null
@@ -1,232 +0,0 @@
-
-
-
-
-
-
-
-
- Completa la información para solicitar un nuevo curso de capacitación
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/pages/Vacations/Admin/Create.vue b/src/pages/Vacations/Admin/Create.vue
deleted file mode 100644
index c1692d9..0000000
--- a/src/pages/Vacations/Admin/Create.vue
+++ /dev/null
@@ -1,181 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- Solicitar Vacaciones
- Completa el formulario para solicitar tus días de vacaciones.
-
-
-
-
-
-
-
-
-
- Detalles de la Solicitud
- Selecciona las fechas y proporciona información adicional.
-
-
-
-
-
-
-
-
- Resumen de Solicitud
- Revisa los detalles antes de enviar.
-
-
-
- {{ availableDays }}
- Días Disponibles
-
-
-
-
-
-
- Período {{ index + 1 }}:
-
-
- Inicio: {{ period.start_date }}
- Fin: {{ period.end_date }}
-
- Días en período {{ index + 1 }}:
-
- {{ period.number_of_days }} día{{ period.number_of_days > 1 ? 's' : '' }}
-
-
-
-
-
-
-
-
-
- Total de días:
-
- {{ totalSelectedDays }} día{{ totalSelectedDays > 1 ? 's' : '' }}
-
-
-
- Días restantes:
-
- {{ remainingDays }} día{{ remainingDays !== 1 ? 's' : '' }}
-
-
-
-
-
-
-
-
-
- Excedes tus días disponibles por {{ Math.abs(remainingDays) }} día{{ Math.abs(remainingDays) > 1 ? 's' : '' }}
-
-
-
-
-
-
- Recordatorios:
-
-
-
- Las solicitudes deben hacerse con 15 días de anticipación
-
-
-
- Tu coordinador revisará y aprobará la solicitud
-
-
-
- Recibirás una notificación con la decisión
-
-
-
- Los días se descontarán una vez aprobados
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/pages/Vacations/Admin/Form.vue b/src/pages/Vacations/Admin/Form.vue
deleted file mode 100644
index 4ac48cb..0000000
--- a/src/pages/Vacations/Admin/Form.vue
+++ /dev/null
@@ -1,236 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/src/router/Index.js b/src/router/Index.js
index a1c43b3..6231bee 100644
--- a/src/router/Index.js
+++ b/src/router/Index.js
@@ -107,19 +107,33 @@ const router = createRouter({
},
{
path: 'vacations',
- name: 'vacations.coordinator',
+ name: 'vacations.coordinator.index',
meta: {
title: 'Vacaciones',
icon: 'calendar_month',
},
+ component: () => import('@Pages/Vacations/Coordinator/Index.vue'),
+ },
+ {
+ path: 'courses',
+ name: 'courses.coordinator',
+ meta: {
+ title: 'Capacitaciones',
+ icon: 'info',
+ },
children: [
{
path: '',
- name: 'vacations.coordinator.index',
- component: () => import('@Pages/Vacations/Coordinator/Index.vue'),
+ name: 'courses.coordinator.index',
+ component: () => import('@Pages/Courses/Coordinator/Index.vue'),
+ },
+ {
+ path: 'request',
+ name: 'courses.coordinator.request',
+ component: () => import('@Pages/Courses/Coordinator/Request.vue'),
}
- ]
- },
+ ],
+ }
]
},
{
@@ -169,22 +183,17 @@ const router = createRouter({
{
path: '',
name: 'admin.courses.index',
- component: () => import('@Pages/Courses/Index.vue'),
+ component: () => import('@Pages/Courses/Admin/Index.vue'),
},
{
path: ':id/assignamment',
name: 'admin.courses.assignamment',
- component: () => import('@Pages/Courses/Assignamment.vue'),
- },
- {
- path: 'request',
- name: 'admin.courses.request',
- component: () => import('@Pages/Courses/Request.vue'),
+ component: () => import('@Pages/Courses/Admin/Assignamment.vue'),
},
{
path: 'calendar',
name: 'admin.courses.calendar',
- component: () => import('@Pages/Courses/Calendar.vue'),
+ component: () => import('@Pages/Courses/Admin/Calendar.vue'),
},
]
},
|