diff --git a/src/layouts/Sidebar.svelte b/src/layouts/Sidebar.svelte index 7588e84..6710986 100644 --- a/src/layouts/Sidebar.svelte +++ b/src/layouts/Sidebar.svelte @@ -96,6 +96,13 @@ Roles + + + + + Cargos + + diff --git a/src/pages/operadores/ModalOperador.svelte b/src/pages/operadores/ModalOperador.svelte index effd77b..ffc8f4e 100644 --- a/src/pages/operadores/ModalOperador.svelte +++ b/src/pages/operadores/ModalOperador.svelte @@ -6,6 +6,18 @@ updateOperador, deleteOperador, } from "$/services/operadores"; + import { + createRol + } + from "$/services/roles"; + import { + createRolOperador + } + from "$/services/roles_operadores"; + import { + createRolyaplicacion + } + from "$/services/roles_aplicaciones"; import { createEventDispatcher } from "svelte"; import TabOperador from "./TabOperador.svelte"; import "./modal.css"; @@ -20,6 +32,7 @@ let loading = false; let tab = 0; + $: tab === 0 && begin(operador.id_operador); $: tab === 1 && fetchLineas() @@ -35,7 +48,7 @@ async function fetchLineas() { try { lineas = [] - const data = await getLineas({ ordering: 'route_long_name' }) + const data = await getLineas({ vigente:true, ordering: 'route_long_name' }) lineas = data.filter(linea => linea.id_operador === operador.id_operador || linea.id_operador === null ); @@ -49,14 +62,32 @@ } } + async function onSave() { + let formRol={}; try { loading = true; if (operador.id_operador) { form = await updateOperador(form); } else { - form = await createOperador(form); + + formRol.nombre_rol=form.nombre_operador; + formRol = await createRol(formRol); + form.id_rol = formRol.id_rol + form = await createOperador(form); + formRol= await createRolOperador(form); + + formRol={}; + formRol.id_rol = form.id_rol; + formRol.id_aplicacion=1; + formRol = await createRolyaplicacion(formRol); + + formRol.id_aplicacion=2; + formRol = await createRolyaplicacion(formRol); + + } + globalThis.toast.success("Se ha guardado el Operador"); dispatch("refresh"); dispatch("close"); @@ -83,6 +114,7 @@ } async function onSaveLineas() { + try { loading = true; @@ -93,7 +125,7 @@ if (operador.id_operador) { for (let ln of lineasModificadas) { - form = await updateLinea(ln); + form = await updateLinea(ln); } } diff --git a/src/pages/tipo_cargo/Admin.svelte b/src/pages/tipo_cargo/Admin.svelte new file mode 100644 index 0000000..16f9c56 --- /dev/null +++ b/src/pages/tipo_cargo/Admin.svelte @@ -0,0 +1,122 @@ + + +Tipos de Cargos + +
+
+ {#if escritura} + + {/if} +
+
+
+ + + + + + + + + + {#each redes as app, index} + + + + + + + {/each} + +
Nro + onOrderBy('id_cargo')}>ID + {#if ordering === 'id_cargo'}{/if} + {#if ordering === '-id_cargo'}{/if} + + onOrderBy('descripcion')}>Descripcion + {#if ordering === 'descripcion'}{/if} + {#if ordering === '-descripcion'}{/if} +
{offset + index + 1}{app.id_cargo} onEdita(app)}>{app.descripcion}
+
+
+ +
+ +{#if cargo} + cargo= null} + on:refresh={() => onPage(page)} + /> +{/if} + + \ No newline at end of file diff --git a/src/pages/tipo_cargo/ModalTipoCargo.svelte b/src/pages/tipo_cargo/ModalTipoCargo.svelte new file mode 100644 index 0000000..02cb4e9 --- /dev/null +++ b/src/pages/tipo_cargo/ModalTipoCargo.svelte @@ -0,0 +1,94 @@ + + +
+ dispatch('close')}> +
+
+
ID
+
+ + + +
+
+
+
Descripcion
+
+ +
+
+ +
+ + {#if escritura} + + + {/if} + +
+
+ + \ No newline at end of file diff --git a/src/routes/user.routes.js b/src/routes/user.routes.js index bf3f589..8c19f43 100644 --- a/src/routes/user.routes.js +++ b/src/routes/user.routes.js @@ -20,6 +20,7 @@ import PageParaderos from '$/pages/paraderos/Home.svelte' import PageRutas from "$/pages/rutas/Home.svelte"; import { getPermisosApp } from '$/services/usuarios' import { storePermisos } from '$/stores/global' +import PageTipoCargo from '$/pages/tipo_cargo/Admin.svelte' export const routes_base = [ { path: '/', component: PageHome, public: true }, @@ -41,6 +42,7 @@ export const routes_base = [ { path: '/mapas/rutas', component: PageMapaRutas }, { path: '/paraderos', component: PageParaderos }, { path: '/rutas', component: PageRutas }, + { path: '/tipo-cargo', component: PageTipoCargo }, { path: '*', component: PageError, public: true }, ]; diff --git a/src/services/tipo_cargo.js b/src/services/tipo_cargo.js new file mode 100644 index 0000000..59b630f --- /dev/null +++ b/src/services/tipo_cargo.js @@ -0,0 +1,47 @@ +import { base, getToken } from './_config' + +export async function getTipoCargo(params) { + const query = !params ? '' : '?' + (new URLSearchParams(params).toString()); + const res = await fetch(`${base}/tipo-cargo/${query}`, { + headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } + }) + if (!res.ok) throw await res.json() + return res.json() +} + +export async function getTipoCargoId(id) { + const res = await fetch(`${base}/tipo-cargo/${id}/`, { + headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } + }) + if (!res.ok) throw await res.json() + return res.json() +} + +export async function createTipoCargo(data) { + const res = await fetch(`${base}/tipo-cargo/`, { + method: 'POST', + body: JSON.stringify(data), + headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } + }) + if (!res.ok) throw await res.json() + return res.json() +} + +export async function updateTipoCargo({ id_cargo: id = null, ...data }) { + const res = await fetch(`${base}/tipo-cargo/${id}/`, { + method: 'PATCH', + body: JSON.stringify(data), + headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } + }) + if (!res.ok) throw await res.json() + return res.json() +} + +export async function deleteTipoCargo(id) { + const res = await fetch(`${base}/tipo-cargo/${id}/`, { + method: 'DELETE', + headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } + }) + if (!res.ok) throw await res.json() + return res.text() +} \ No newline at end of file