diff --git a/src/pages/operadores/Admin.svelte b/src/pages/operadores/Admin.svelte index fffc119..bf09615 100644 --- a/src/pages/operadores/Admin.svelte +++ b/src/pages/operadores/Admin.svelte @@ -3,6 +3,7 @@ import { getOperadores } from "$/services/operadores"; import PageTitle from "$/components/PageTitle.svelte"; import ModalOperador from "./ModalOperador.svelte"; + import ModalOperadorLineas from "./ModalOperadorLineas.svelte"; import { useLocation } from "svelte-navigator"; import { getPermisosPath } from "$/services/usuarios"; @@ -13,6 +14,7 @@ let ordering = 'id_operador' let operadores = [] let operador = null + let verLineas =null let loading = false; let escritura = false; let location = useLocation() @@ -21,12 +23,11 @@ .then(data => escritura = data.escritura) .catch(error => console.log({ error })) - $: onPage(page) - + $: onPage(page) async function onPage(p) { try { loading = true - offset = (p - 1) * limit; + offset = (p - 1) * limit; const data = await getOperadores({ offset, limit, ordering }) operadores = data.results; count = data.count; @@ -41,6 +42,11 @@ operador = item; } + function onVerLineas(item){ + verLineas = item; + operador = item; + } + function onNuevo() { operador = {} } @@ -83,6 +89,7 @@ {#if ordering === 'vigente'}{/if} {#if ordering === '-vigente'}{/if} + Lineas @@ -92,6 +99,8 @@ {app.id_operador} onEdita(app)}>{app.nombre_operador} {app.vigente ? '✅':'🚫'} + onVerLineas(app)}> + {/each} @@ -111,12 +120,22 @@ -{#if operador} - operador = null} - on:refresh={() => onPage(page)} +{#if verLineas} + {#if operador} + operador = null} + on:close={() => verLineas = null} + on:refresh={() => onPage(page)} + /> + {/if} +{:else if operador} + operador = null} + on:refresh={() => onPage(page)} /> {/if} diff --git a/src/pages/operadores/ModalOperadorLineas.svelte b/src/pages/operadores/ModalOperadorLineas.svelte new file mode 100644 index 0000000..260779a --- /dev/null +++ b/src/pages/operadores/ModalOperadorLineas.svelte @@ -0,0 +1,148 @@ + + +
+ dispatch('close')} > + +
+ + + + Linea + Asociada + + + + {#each lineas as linea} + + {linea.route_long_name} + +
+ toggleCheckbox(linea, event)} + id={`check-linea-${linea.id_linea}`}> + + +
+ + + {/each} + +
+
+ + + {#if escritura} + + {/if} + +
+
+ + \ No newline at end of file diff --git a/src/services/lineas.js b/src/services/lineas.js index 63aac0d..3a7ae5d 100644 --- a/src/services/lineas.js +++ b/src/services/lineas.js @@ -1,7 +1,7 @@ import { base, getToken } from './_config' -export async function getLineas(params) { + export async function getLineas(params) { const query = !params ? '' : '?' + (new URLSearchParams(params).toString()); const res = await fetch(`${base}/lineas/${query}`, { headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } @@ -9,6 +9,8 @@ export async function getLineas(params) { if (!res.ok) throw await res.text() return res.json() } + + export async function getLinea(id) { const res = await fetch(`${base}/lineas/${id}/`, {