diff --git a/app.ts b/app.ts
index 4db3a55..461c10c 100644
--- a/app.ts
+++ b/app.ts
@@ -1,10 +1,11 @@
let express = require('express');
let app = express();
-
app.use(express.static('dist'));
+
+// Que era history??
// @ts-ignore
-app.use(history());
+// app.use(history());
app.use(express.urlencoded());
app.use(express.json());
@@ -14,4 +15,14 @@ app.get("/");
app.post('/links', require('./srv/LinksAnimes/obtenerLinks').obtenerLinks);
app.put('/links', require('./srv/LinksAnimes/modificarLink').modificarLinks);
-app.listen(8080);
\ No newline at end of file
+app.put('/a/', require('./srv/Admin/crearAnime').crearAnime);
+app.get('/a/', require('./srv/Admin/obtenerTodosAnimes').obtenerTodosAnimes);
+
+app.get('/op/:id', require('./srv/Admin/OP/obtenerOPs').obtenerOPs);
+app.post('/op/', require('./srv/Admin/OP/nuevoOP').nuevoOP);
+
+app.get('/eps/variantes/:anime_ID', require('./srv/Admin/Eps/obtenerVariantes').obtenerVariantes);
+app.get('/eps/links/:opcion_ID', require('./srv/Admin/Eps/obtenerLinks').obtenerLinks);
+app.post('/eps/links/', require('./srv/Admin/Eps/crearLink').crearLink);
+
+app.listen(8080);
diff --git a/package.json b/package.json
index 5fe24db..d5068bb 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,8 @@
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"express": "vue-cli-service express:watch",
- "express:run": "vue-cli-service express:run"
+ "express:run": "vue-cli-service express:run",
+ "deploy": "gcloud app deploy"
},
"dependencies": {
"@types/express": "^4.16.0",
diff --git a/src/components/Administracion/lista-animes.vue b/src/components/Administracion/lista-animes.vue
index fe9907b..9578ce3 100644
--- a/src/components/Administracion/lista-animes.vue
+++ b/src/components/Administracion/lista-animes.vue
@@ -13,7 +13,8 @@
{{ anime["anime_ID"] }} |
{{ anime["titulo"] }} |
- | |
+ |
+ |
|
@@ -124,6 +125,15 @@
formCrear.appendChild(form);
elemNuevo.appendChild(formCrear);
+ const botonCerrar = document.createElement("button");
+ botonCerrar.className = "btn red";
+ botonCerrar.addEventListener("click", () => {
+ elemActual.parentNode.removeChild(marco);
+ });
+ botonCerrar.innerText = "Cerrar.";
+ elemNuevo.appendChild(document.createElement("br"));
+ elemNuevo.appendChild(botonCerrar);
+
elemNuevo.style.padding = "30px";
const xhr = new XMLHttpRequest();
@@ -148,12 +158,256 @@
marcof.appendChild(elemNuevo);
elemActual.parentNode.insertBefore(marco, elemActual.nextSibling);
+ },
+ verLinks (elemId, animeID) {
+ console.log("Viendo los links.");
+ /* TODO: Usar los datos para crear:
+ * Form para crear Variantes (usando un xhr)
+ * Form para crear links que se adecue a cada variante (usando un xhr diferente)
+ * con 2 peticiones xhr
+ * */
+ const crear = data => {
+ const elemActual = document.getElementById(elemId);
+
+ const marco = document.createElement("tr");
+ marco.appendChild(document.createElement("td"));
+ const marcof = document.createElement("td");
+ marco.appendChild(marcof);
+ marco.appendChild(document.createElement("td"));
+
+ const elemNuevo = document.createElement("div");
+
+ for (const varianteID in data) {
+ if (data.hasOwnProperty(varianteID)) {
+
+ const variante = data[varianteID];
+
+ const contenedor = document.createElement("div");
+
+ const varianteSpan = document.createElement("span");
+ varianteSpan.className = "variante";
+ varianteSpan.innerText = variante.formato;
+ contenedor.appendChild(varianteSpan);
+
+ const resSpan = document.createElement("span");
+ resSpan.className = "res";
+ resSpan.innerText = variante.res;
+ contenedor.appendChild(resSpan);
+
+ const servidorSpan = document.createElement("span");
+ servidorSpan.className = "servidor";
+ servidorSpan.innerText = variante.servidor;
+ contenedor.appendChild(servidorSpan);
+
+ const botonVerVariante = document.createElement("span");
+ botonVerVariante.className = "ver-variante";
+ botonVerVariante.innerText = "Ver mas";
+ let contenedorLinks;
+ const verLinks = () => {
+ botonVerVariante.innerText = "Cerrar";
+ botonVerVariante.removeEventListener("click", verLinks);
+ botonVerVariante.addEventListener("click", ocultarLinks);
+
+ const generarListaEps = data => {
+ contenedorLinks.innerHTML = "";
+
+ for (const epID in data) {
+ if (data.hasOwnProperty(epID)) {
+ const ep = data[epID];
+
+ const epDiv = document.createElement("div");
+ epDiv.className = "eps-div";
+ epDiv.innerHTML = `Ep. ${ep.num_ep}, ${ep.peso} y ${ep.visitas} visitas ->
+ ${ep.link.substr(0, 50)}...`;
+ contenedorLinks.appendChild(epDiv);
+
+ }
+ }
+
+ const agregarEpForm = document.createElement("form");
+ agregarEpForm.class = "agregar-ep-form";
+ agregarEpForm.onsubmit = () => false;
+
+ const numEp = document.createElement("input");
+ numEp.className = "agregar-ep-form__num-ep";
+ numEp.placeholder = "Ep num";
+ agregarEpForm.appendChild(numEp);
+
+ const visitas = document.createElement("input");
+ visitas.className = "agregar-ep-form__visitas";
+ visitas.placeholder = "Visitas";
+ visitas.value = '0';
+ agregarEpForm.appendChild(visitas);
+
+ const peso = document.createElement("input");
+ peso.className = "agregar-ep-form__peso";
+ peso.placeholder = "Peso";
+ agregarEpForm.appendChild(peso);
+
+ const link = document.createElement("input");
+ link.className = "agregar-ep-form__link";
+ link.placeholder = "link";
+ agregarEpForm.appendChild(link);
+
+ const botonCrear = document.createElement("button");
+ botonCrear.className = "agregar-ep-form__boton-crear";
+ botonCrear.innerText = "Crear ep";
+ botonCrear.addEventListener("click", () => {
+
+ const xhr = new XMLHttpRequest();
+ xhr.open("POST", "/eps/links/");
+ xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+ xhr.onload = () => {
+ const respuesta = YAML.parse(xhr.responseText);
+ if (!respuesta.error) {
+ numEp.value = visitas.value = peso.value = link.value = "";
+ } else {
+ console.log("Error :c");
+ }
+ };
+ const dataAEnviar = {
+ opcion_ID: variante.opcion_ID,
+ num_ep: numEp.value,
+ visitas: visitas.value,
+ link: link.value,
+ peso: peso.value
+ };
+ xhr.send(`params=${YAML.stringify(dataAEnviar)}`);
+
+ });
+ agregarEpForm.appendChild(botonCrear);
+
+ contenedorLinks.appendChild(agregarEpForm);
+ };
+
+ contenedorLinks = document.createElement("div");
+ contenedorLinks.className = "identado";
+ contenedorLinks.innerHTML = "Cargando...";
+ contenedor.insertBefore(contenedorLinks, botonVerVariante.nextSibling);
+
+ const xhr = new XMLHttpRequest();
+ xhr.open("GET", `/eps/links/${variante.opcion_ID}`);
+ xhr.onload = () => {
+ generarListaEps(YAML.parse(xhr.responseText));
+ console.log(xhr.responseText);
+ };
+ xhr.send();
+ };
+ function ocultarLinks() {
+ botonVerVariante.innerText = "Ver mas";
+ botonVerVariante.removeEventListener("click", ocultarLinks);
+ botonVerVariante.addEventListener("click", verLinks);
+
+ contenedor.removeChild(contenedorLinks);
+ }
+ botonVerVariante.addEventListener("click", verLinks);
+ contenedor.appendChild(botonVerVariante);
+
+ elemNuevo.appendChild(contenedor);
+ }
+
+ }
+
+ const botonCerrar = document.createElement("button");
+ botonCerrar.className = "btn red";
+ botonCerrar.innerText = "Cerrar.";
+ botonCerrar.addEventListener("click", () => {
+ elemActual.parentNode.removeChild(marco);
+ });
+ elemNuevo.appendChild(document.createElement("br"));
+ elemNuevo.appendChild(botonCerrar);
+
+ marcof.appendChild(elemNuevo);
+ elemActual.parentNode.insertBefore(marco, elemActual.nextSibling);
+ };
+
+ const xhr = new XMLHttpRequest();
+ xhr.open("GET", `/eps/variantes/${animeID}`);
+ xhr.onload = () => {
+ const data = YAML.parse(xhr.responseText);
+ console.log(xhr.responseText);
+ crear(data);
+ };
+ xhr.send();
+
}
}
}
-