From f51be31c621facfbfb740190b3a68e102f93ef35 Mon Sep 17 00:00:00 2001 From: JaquelineVictal <››jaquelinevictal@gmail,com> Date: Mon, 15 Aug 2022 20:33:19 -0300 Subject: [PATCH 1/5] Feature Edit Event --- editar-evento.html | 2 +- js/admin.js | 18 ++++++++++++++++++ js/editar-evento.js | 46 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 1 deletion(-) diff --git a/editar-evento.html b/editar-evento.html index 500c6b4..a57e7f6 100644 --- a/editar-evento.html +++ b/editar-evento.html @@ -59,7 +59,7 @@

Editar evento

-
+
diff --git a/js/admin.js b/js/admin.js index e69de29..8291c64 100644 --- a/js/admin.js +++ b/js/admin.js @@ -0,0 +1,18 @@ + + +const tableListEvent = document.getElementById('table'); + +tableListEvent.addEventListener('click', (event) =>{ + const button= event.path[0].innerText + const id = event.path[0].id + + if(button == 'Editar'){ + PutEventById(id) + } + if(button == 'Excluir'){ + deletarEvento(id) + } + if(button == 'ver reservas'){ + xxxxxx(id); + } +}) diff --git a/js/editar-evento.js b/js/editar-evento.js index e69de29..9e20924 100644 --- a/js/editar-evento.js +++ b/js/editar-evento.js @@ -0,0 +1,46 @@ +const SOUND_URL = "https://xp41-soundgarden-api.herokuapp.com" + +const FormEditEvent = document.getElementById('EditEvent'); + +FormEditEvent.addEventListener('submit', (event) =>{ + + const inputNome = document.getElementById("nome") + const inputBanner = document.getElementById("banner") + const inputAtracoes = document.getElementById("atracoes") + const inputDescricao = document.getElementById("descricao") + const inputData = document.getElementById("data") + const inputLotacao = document.getElementById("lotacao") + + const fullDateTime = new Date(inputData.value) + + const EditEvent = { + "name": inputNome.value, + "poster": inputBanner.value, + "attractions": inputAtracoes.value.split(","), + "description": inputDescricao.value, + "scheduled": fullDateTime, + "number_tickets": inputLotacao.value + } + + PutEventById(EditEvent,id); + + +}) + + +const PutEventById = (EditEvent,id) => { + console.log(EditEvent) + return fetch(`${SOUND_URL}/events/${id}`,{ + method: "PUT", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(EditEvent) + }) + .then((response) => console.log(response)) + .then(() => { + alert("Evento criado") + window.location.href("admin.html") + }) + .catch(error => console.error(error)) +}; \ No newline at end of file From 7b5ffe797d9a01796957b58411e8ffd0c0e8d26e Mon Sep 17 00:00:00 2001 From: JaquelineVictal <››jaquelinevictal@gmail,com> Date: Mon, 15 Aug 2022 20:54:06 -0300 Subject: [PATCH 2/5] Feature Edit Event --- admin.html | 6 ++-- js/admin.js | 8 +++-- js/editar-evento.js | 83 ++++++++++++++++++++++++++++++++++----------- 3 files changed, 71 insertions(+), 26 deletions(-) diff --git a/admin.html b/admin.html index d299ff1..cb266b3 100644 --- a/admin.html +++ b/admin.html @@ -78,7 +78,7 @@

Gerenciamento de eventos

Miley Cyrus, Liniker, Smashing Pumpkins ver reservas - editar + editar excluir @@ -89,7 +89,7 @@

Gerenciamento de eventos

Arctic Monkeys, The Kooks, Hiatus Kaiyote ver reservas - editar + editar excluir @@ -100,7 +100,7 @@

Gerenciamento de eventos

Esperanza Spalding, Zimbo Trio, Serial Funkers ver reservas - editar + editar excluir diff --git a/js/admin.js b/js/admin.js index 8291c64..53d7af6 100644 --- a/js/admin.js +++ b/js/admin.js @@ -1,4 +1,5 @@ +import { EdicaoEvent } from "./editar-evento"; const tableListEvent = document.getElementById('table'); @@ -6,10 +7,11 @@ tableListEvent.addEventListener('click', (event) =>{ const button= event.path[0].innerText const id = event.path[0].id - if(button == 'Editar'){ - PutEventById(id) + if(button == 'editar'){ + EdicaoEvento(id) + } - if(button == 'Excluir'){ + if(button == 'excluir'){ deletarEvento(id) } if(button == 'ver reservas'){ diff --git a/js/editar-evento.js b/js/editar-evento.js index 9e20924..11e8668 100644 --- a/js/editar-evento.js +++ b/js/editar-evento.js @@ -1,31 +1,47 @@ const SOUND_URL = "https://xp41-soundgarden-api.herokuapp.com" -const FormEditEvent = document.getElementById('EditEvent'); +const EdicaoEvento = (id) => { + console.log(id) -FormEditEvent.addEventListener('submit', (event) =>{ + // Obtendo as informações do evento pelo metodo GET - const inputNome = document.getElementById("nome") - const inputBanner = document.getElementById("banner") - const inputAtracoes = document.getElementById("atracoes") - const inputDescricao = document.getElementById("descricao") - const inputData = document.getElementById("data") - const inputLotacao = document.getElementById("lotacao") + getEvent().then((dados) => { + dados.forEach(element => { + if(element.id == id){ + AdicionaParametroNoInput(element); + } + + }); + }) - const fullDateTime = new Date(inputData.value) + const FormEditEvent = document.getElementById('EditEvent'); - const EditEvent = { - "name": inputNome.value, - "poster": inputBanner.value, - "attractions": inputAtracoes.value.split(","), - "description": inputDescricao.value, - "scheduled": fullDateTime, - "number_tickets": inputLotacao.value - } + FormEditEvent.addEventListener('submit', (event) =>{ - PutEventById(EditEvent,id); + const inputNome = document.getElementById("nome") + const inputBanner = document.getElementById("banner") + const inputAtracoes = document.getElementById("atracoes") + const inputDescricao = document.getElementById("descricao") + const inputData = document.getElementById("data") + const inputLotacao = document.getElementById("lotacao") + const fullDateTime = new Date(inputData.value) -}) + const EditEvent = { + "name": inputNome.value, + "poster": inputBanner.value, + "attractions": inputAtracoes.value.split(","), + "description": inputDescricao.value, + "scheduled": fullDateTime, + "number_tickets": inputLotacao.value + } + + PutEventById(EditEvent,id); + + + }) + +} const PutEventById = (EditEvent,id) => { @@ -43,4 +59,31 @@ const PutEventById = (EditEvent,id) => { window.location.href("admin.html") }) .catch(error => console.error(error)) -}; \ No newline at end of file +}; + + +const getEvent = () => { + return fetch(SOUND_URL).then((response) => { + if(response.status != 200){ + console.log("Erro no servidor: ${response.status}") + } + else { + return response.json() + } + }); +}; + +const AdicionaParametroNoInput = (objeto) => { + + const FormEditEvent = document.getElementById('EditEvent'); + + + FormEditEvent.getElementById('nome').value = objeto.nome + FormEditEvent.getElementById('banner').value = objeto.banner + FormEditEvent.getElementById('atracoes').value = objeto.atracoes + FormEditEvent.getElementById('descricao').value = objeto.descricao + FormEditEvent.getElementById('data').value = objeto.data + FormEditEvent.getElementById('lotacao').value = objeto.lotacao + +} + From e2b9ec76ac62c0acb4b98efd7f06bf5f84f1a08e Mon Sep 17 00:00:00 2001 From: JaquelineVictal <››jaquelinevictal@gmail,com> Date: Tue, 16 Aug 2022 22:22:57 -0300 Subject: [PATCH 3/5] Feature to Edit Event --- admin.html | 1 + editar-evento.html | 2 +- js/admin.js | 57 +++++++++++++------ js/editar-evento.js | 132 ++++++++++++++++++++++---------------------- 4 files changed, 110 insertions(+), 82 deletions(-) diff --git a/admin.html b/admin.html index cb266b3..5968097 100644 --- a/admin.html +++ b/admin.html @@ -114,6 +114,7 @@

Gerenciamento de eventos

+ \ No newline at end of file diff --git a/editar-evento.html b/editar-evento.html index a57e7f6..95311cd 100644 --- a/editar-evento.html +++ b/editar-evento.html @@ -96,7 +96,7 @@

Editar evento

- + \ No newline at end of file diff --git a/js/admin.js b/js/admin.js index 53d7af6..33abab9 100644 --- a/js/admin.js +++ b/js/admin.js @@ -1,20 +1,45 @@ -import { EdicaoEvent } from "./editar-evento"; +const SOUND_URL = 'https://xp41-soundgarden-api.herokuapp.com/events'; -const tableListEvent = document.getElementById('table'); +const listarEventos = async () => { -tableListEvent.addEventListener('click', (event) =>{ - const button= event.path[0].innerText - const id = event.path[0].id - - if(button == 'editar'){ - EdicaoEvento(id) - + const eventos = await fetch(SOUND_URL, { + method: "GET", + mode: "cors", + headers: { + "Content-Type": "application/json" } - if(button == 'excluir'){ - deletarEvento(id) - } - if(button == 'ver reservas'){ - xxxxxx(id); - } -}) + }).then((resposta) => { + + //retorna lista em array de objetos + return resposta.json(); + }); + + // console.log(eventos); + + const tbody = document.querySelector('.lista-eventos tbody'); + + let htmlEventos = ""; + + eventos.forEach(evento => { + htmlEventos += ` + + # + ${evento.scheduled} + ${evento.name} + ${evento.attractions.join(', ')} + + ver reservas + editar + excluir + + + `; + }); + + tbody.innerHTML = htmlEventos; + + +} + +listarEventos(); \ No newline at end of file diff --git a/js/editar-evento.js b/js/editar-evento.js index 11e8668..044edf8 100644 --- a/js/editar-evento.js +++ b/js/editar-evento.js @@ -1,89 +1,91 @@ const SOUND_URL = "https://xp41-soundgarden-api.herokuapp.com" -const EdicaoEvento = (id) => { - console.log(id) + + exibirDetalhesEvento(); + + const findID = () => { + + const url = new URL(window.location.href); + const id = url.searchParams.get('id'); + + return id; + } // Obtendo as informações do evento pelo metodo GET - getEvent().then((dados) => { - dados.forEach(element => { - if(element.id == id){ - AdicionaParametroNoInput(element); - } - - }); - }) + - const FormEditEvent = document.getElementById('EditEvent'); +const exibirDetalhesEvento = async () => { + const dadosEvento = + await fetch('https://xp41-soundgarden-api.herokuapp.com/events/' + findID(), { + method: "GET", + mode: "cors", + headers: { + "Content-Type": "application/json" + } + }).then((response) => response.json()); + + console.log(dadosEvento); + + const inputNome = document.getElementById("nome"); + const inputAtracoes = document.getElementById("atracoes"); + const inputDescricao = document.getElementById("descricao"); + const inputData = document.getElementById("data"); + const inputLotacao = document.getElementById("lotacao"); + const inputBanner = document.getElementById("banner"); + + inputNome.value = dadosEvento.name; + inputAtracoes.value = dadosEvento.attractions.join(', '); + inputBanner.value = dadosEvento.poster; + inputDescricao.value = dadosEvento.description; + inputData.value = dadosEvento.scheduled; + inputLotacao.value = dadosEvento.number_tickets; +} - FormEditEvent.addEventListener('submit', (event) =>{ +const EditEvent = document.getElementById('EditEvent') +EditEvent.addEventListener('submit', async (event) => { + + event.preventDefault(); - const inputNome = document.getElementById("nome") - const inputBanner = document.getElementById("banner") - const inputAtracoes = document.getElementById("atracoes") - const inputDescricao = document.getElementById("descricao") - const inputData = document.getElementById("data") - const inputLotacao = document.getElementById("lotacao") + const inputNome = document.getElementById("nome"); + const inputAtracoes = document.getElementById("atracoes"); + const inputDescricao = document.getElementById("descricao"); + const inputData = document.getElementById("data"); + const inputLotacao = document.getElementById("lotacao"); + const inputBanner = document.getElementById("banner"); - const fullDateTime = new Date(inputData.value) + // conversão de data para padrão do banco de dados + const fullDateTime = new Date(inputData.value); - const EditEvent = { + // criando objeto com os dados do evento + const EditEventObj = { "name": inputNome.value, "poster": inputBanner.value, "attractions": inputAtracoes.value.split(","), "description": inputDescricao.value, - "scheduled": fullDateTime, + "scheduled": fullDateTime.toISOString(), "number_tickets": inputLotacao.value - } + }; - PutEventById(EditEvent,id); + // convertendo Obj para JSON + const EditEventoJSON = JSON.stringify(EditEventObj); + resposta() - - }) - -} - - -const PutEventById = (EditEvent,id) => { - console.log(EditEvent) - return fetch(`${SOUND_URL}/events/${id}`,{ + // conexão com API para cadastrar novo evento + // salvando resposta na const + const resposta = await fetch('https://xp41-soundgarden-api.herokuapp.com/events/' + findID(), { method: "PUT", + mode: "cors", headers: { - "Content-Type": "application/json" + "Content-Type": "application/json", }, - body: JSON.stringify(EditEvent) - }) - .then((response) => console.log(response)) - .then(() => { - alert("Evento criado") + body: EditEventoJSON + }).then((response) => { + console.log(response) + }).then((responseOBJ) => { + alert("Evento Atualizado") window.location.href("admin.html") - }) - .catch(error => console.error(error)) -}; - - -const getEvent = () => { - return fetch(SOUND_URL).then((response) => { - if(response.status != 200){ - console.log("Erro no servidor: ${response.status}") - } - else { - return response.json() - } }); -}; - -const AdicionaParametroNoInput = (objeto) => { - - const FormEditEvent = document.getElementById('EditEvent'); - - FormEditEvent.getElementById('nome').value = objeto.nome - FormEditEvent.getElementById('banner').value = objeto.banner - FormEditEvent.getElementById('atracoes').value = objeto.atracoes - FormEditEvent.getElementById('descricao').value = objeto.descricao - FormEditEvent.getElementById('data').value = objeto.data - FormEditEvent.getElementById('lotacao').value = objeto.lotacao - -} +}); From a6a38dee8d6af65677af4f811bde22c077313c38 Mon Sep 17 00:00:00 2001 From: JaquelineVictal <››jaquelinevictal@gmail,com> Date: Tue, 16 Aug 2022 23:22:19 -0300 Subject: [PATCH 4/5] Feature to Edit Event --- admin.html | 2 +- js/editar-evento.js | 22 +++++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/admin.html b/admin.html index 5968097..a6ce527 100644 --- a/admin.html +++ b/admin.html @@ -60,7 +60,7 @@

Gerenciamento de eventos

Novo Evento
- +
diff --git a/js/editar-evento.js b/js/editar-evento.js index 044edf8..1bf1e44 100644 --- a/js/editar-evento.js +++ b/js/editar-evento.js @@ -1,7 +1,7 @@ const SOUND_URL = "https://xp41-soundgarden-api.herokuapp.com" - exibirDetalhesEvento(); + const findID = () => { @@ -42,6 +42,8 @@ const exibirDetalhesEvento = async () => { inputLotacao.value = dadosEvento.number_tickets; } +exibirDetalhesEvento(); + const EditEvent = document.getElementById('EditEvent') EditEvent.addEventListener('submit', async (event) => { @@ -69,7 +71,19 @@ EditEvent.addEventListener('submit', async (event) => { // convertendo Obj para JSON const EditEventoJSON = JSON.stringify(EditEventObj); - resposta() + + //Pegando a Pagina admin + + const findAdim = () => { + + + //const Adim = window.location.hostname + '/admin.html' + const Adim = "file:///D:/Documentos/PROJETOS/soundgarden/admin.html" + + return Adim; + } + + // conexão com API para cadastrar novo evento // salvando resposta na const @@ -84,8 +98,10 @@ EditEvent.addEventListener('submit', async (event) => { console.log(response) }).then((responseOBJ) => { alert("Evento Atualizado") - window.location.href("admin.html") + //window.location.href = findAdim() }); + + }); From 9ea3cf4a62680007b44e77bca8a3c617409e6870 Mon Sep 17 00:00:00 2001 From: JaquelineVictal <››jaquelinevictal@gmail,com> Date: Wed, 17 Aug 2022 18:44:38 -0300 Subject: [PATCH 5/5] Feature List Events --- eventos.html | 3 ++- js/eventos.js | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/eventos.html b/eventos.html index a8024be..a87736b 100644 --- a/eventos.html +++ b/eventos.html @@ -22,7 +22,7 @@

Todos os Eventos

-
+

nome do evento - 05/03/2022

Arctic Monkeys, The Kooks, Hiatus Kaiyote

@@ -121,6 +121,7 @@

A Sound Garden

+ \ No newline at end of file diff --git a/js/eventos.js b/js/eventos.js index e69de29..02e3efa 100644 --- a/js/eventos.js +++ b/js/eventos.js @@ -0,0 +1,41 @@ +const SOUND_URL = 'https://xp41-soundgarden-api.herokuapp.com/events'; + +const listarEventos = async () => { + + const eventos = await fetch(SOUND_URL, { + method: "GET", + mode: "cors", + headers: { + "Content-Type": "application/json" + } + }).then((resposta) => { + + //retorna lista em array de objetos + return resposta.json(); + }); + + //console.log(eventos); + + const tbody = document.getElementById("Listar_Eventos") + + let htmlEventos = ""; + + eventos.forEach(evento => { + htmlEventos += ` +
+

${evento.name} - ${evento.scheduled}

+

${evento.attractions.join(', ')}

+

${evento.description}

+ reservar ingresso +
+ `; + }); + + console.log(htmlEventos) + + tbody.innerHTML = htmlEventos; + + +} + +listarEventos(); \ No newline at end of file
#