diff --git a/app.ts b/app.ts index 461c10c..efa2b6b 100644 --- a/app.ts +++ b/app.ts @@ -21,6 +21,9 @@ 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('/ed/:anime_ID', require('./srv/Admin/ED/obtenerEDs').obtenerEDs); +app.post('/ed/', require('./srv/Admin/ED/nuevoED').nuevoED); + 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); diff --git a/public/animes.json b/public/animes.json index c40575a..85c57d3 100644 --- a/public/animes.json +++ b/public/animes.json @@ -5,6 +5,11 @@ "link": "/Anime/2018/Otono/IrozuKai", "imgUrl": "https://myanimelist.cdn-dena.com/images/anime/1424/93855.jpg", "descripcion": "Ambientada en la ciudad de Nagasaki, la historia tiene lugar en un mundo en el que una cantidad minúscula de magia permanece en la vida cotidiana. Hitomi Tsukishiro es una descendiente de 17 años de una familia de brujas que creció con emociones vivas, ya que perdió su sentido del color a una edad muy temprana. Sintiéndose mal por el futuro de su nieta, Kohaku, una gran bruja, envía a Hitomi al pasado, el año 2018. Mediante intercambios con su abuela de 17 años y los miembros de su club, la historia sigue el crecimiento de Hitomi como persona.", + "color": "#2f7090", + "onPagPrin": [true,1], + "key": 10001111, + + "estudio": "P.A. Works", "eps": "13", "alAire": "06 de Octubre a ?", @@ -12,15 +17,12 @@ "anio": 2018, "fuente": "Original", "generos": "Drama, Magia, Romance", - "color": "#2f7090", "OP": { "1": "17sai - Haruka to Miyuki" }, "ED": { "1": "Mimei no Kimi to Hakumei no Mahou - Yanagi Nagi" - }, - "onPagPrin": [true,1], - "key": 10001111 + } }, { "animeID": 28, diff --git a/src/components/Administracion/lista-animes.vue b/src/components/Administracion/lista-animes.vue index 9578ce3..3e09f4e 100644 --- a/src/components/Administracion/lista-animes.vue +++ b/src/components/Administracion/lista-animes.vue @@ -14,7 +14,8 @@ {{ anime["titulo"] }} | - | + | + @@ -49,46 +50,32 @@ const form = document.createElement("form"); - form.style.display = "inline-block"; - form.style.maxWidth = "450px"; form.onsubmit = () => false; const input = document.createElement("input"); input.placeholder = "Numero del OP"; + input.className = "OP-ED__num-ed colorTexto"; input.type = "number"; - input.style.display = "inline-block"; - input.style.maxWidth = "400px"; input.min = "1"; input.max = "50"; - input.name = "numOP"; - input.required = true; form.appendChild(input); const input2 = document.createElement("input"); input2.placeholder = "Nombre del OP"; + input2.className = "OP-ED__nombre colorTexto"; input2.type = "text"; - input2.name = "nombreOP"; - input2.style.display = "inline-block"; - input2.style.maxWidth = "400px"; - input2.required = true; form.appendChild(input2); const input3 = document.createElement("input"); input3.placeholder = "Artista del OP"; + input3.className = "OP-ED__artista colorTexto"; input3.type = "text"; - input3.name = "artistaOP"; - input3.style.display = "inline-block"; - input3.style.maxWidth = "400px"; - input3.required = true; form.appendChild(input3); const input4 = document.createElement("input"); input4.placeholder = "Episodios del OP (1 al 13)"; + input4.className = "OP-ED__eps colorTexto"; input4.type = "text"; - input4.name = "epsOP"; - input4.style.display = "inline-block"; - input4.style.maxWidth = "400px"; - input4.required = true; form.appendChild(input4); const botonEnviar = document.createElement("button"); @@ -115,8 +102,6 @@ }; xhr.send(`data=${YAML.stringify(data)}`); - console.log("YAML:\n" + YAML.stringify(data)); - }); botonEnviar.innerText = "Crear."; @@ -151,8 +136,121 @@ elemNuevo.appendChild(div); } + }; + xhr.send(); - console.log("El servidor respondió:\n" + xhr.responseText); + marcof.appendChild(elemNuevo); + elemActual.parentNode.insertBefore(marco, elemActual.nextSibling); + }, + revisarED (elemId, animeID) { + 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"); + + const formCrear = document.createElement("div"); + formCrear.appendChild(document.createTextNode("Crear un ED:")); + formCrear.appendChild(document.createElement("br")); + formCrear.appendChild(document.createElement("br")); + + const form = document.createElement("form"); + + form.onsubmit = () => false; + + const input = document.createElement("input"); + input.placeholder = "Num"; + input.className = "OP-ED__num-ed colorTexto"; + input.type = "number"; + input.min = "1"; + input.max = "50"; + form.appendChild(input); + + const input2 = document.createElement("input"); + input2.placeholder = "Nombre del ED"; + input2.className = "OP-ED__nombre colorTexto"; + input2.type = "text"; + form.appendChild(input2); + + const input3 = document.createElement("input"); + input3.placeholder = "Artista del ED"; + input3.className = "OP-ED__artista colorTexto"; + input3.type = "text"; + form.appendChild(input3); + + const input4 = document.createElement("input"); + input4.placeholder = "Episodios del ED (1 al 13)"; + input4.className = "OP-ED__eps colorTexto"; + input4.type = "text"; + form.appendChild(input4); + + form.appendChild(document.createElement("br")); + + const botonEnviar = document.createElement("button"); + botonEnviar.className = "btn"; + botonEnviar.addEventListener("click", () => { + botonEnviar.className = "btn disabled"; + + const data = { + anime_ID: animeID, + num_ED: input.value, + nombre: input2.value, + artista: input3.value, + eps: input4.value + }; + + const xhr = new XMLHttpRequest(); + xhr.open("POST", "/ed/"); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.onload = () => { + + botonEnviar.className = "btn"; + console.log("Resultado:\n" + xhr.responseText); + + }; + xhr.send(`data=${YAML.stringify(data)}`); + + }); + botonEnviar.innerText = "Crear."; + + form.appendChild(botonEnviar); + + 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(); + xhr.open("GET", `/ed/${animeID}`); + xhr.onload = () => { + + const data = YAML.parse(xhr.responseText); + if (Array.isArray(data)) { + for (const elemento of data) { + + const div = document.createElement("div"); + div.innerHTML = `
ED ${elemento['num_ED']}: ${elemento['nombre']} - ${elemento['artista']}
\ + Eps: ${elemento['eps']}`; + + elemNuevo.appendChild(div); + + } + } else { + M.toast({html: 'Error :c'}); + } }; xhr.send(); @@ -162,10 +260,8 @@ 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 - * */ + * Form para crear Variantes (usando un xhr) + * */ const crear = data => { const elemActual = document.getElementById(elemId); @@ -229,23 +325,23 @@ agregarEpForm.onsubmit = () => false; const numEp = document.createElement("input"); - numEp.className = "agregar-ep-form__num-ep"; + numEp.className = "colorTexto agregar-ep-form__num-ep"; numEp.placeholder = "Ep num"; agregarEpForm.appendChild(numEp); const visitas = document.createElement("input"); - visitas.className = "agregar-ep-form__visitas"; + visitas.className = "colorTexto 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.className = "colorTexto agregar-ep-form__peso"; peso.placeholder = "Peso"; agregarEpForm.appendChild(peso); const link = document.createElement("input"); - link.className = "agregar-ep-form__link"; + link.className = "colorTexto agregar-ep-form__link"; link.placeholder = "link"; agregarEpForm.appendChild(link); @@ -336,6 +432,26 @@