diff --git a/src/main/webapp/js/view/pets.js b/src/main/webapp/js/view/pets.js index 7ac621a84ec53ca3c9af0939b9e7c246d6979f87..34412cb55b127d8408ec50f222f5796437185306 100644 --- a/src/main/webapp/js/view/pets.js +++ b/src/main/webapp/js/view/pets.js @@ -18,25 +18,33 @@ var PetsView = (function() { this.init = function() { $('#' + formContainerId).before('

Mascotas

'); + var daoPeople = new PeopleDAO(); dao.listPets(function(pets) { - $.each(pets, function(key, pet) { - - var daoPeople = new PeopleDAO(); + $.each(pets, function(key, pet) { daoPeople.getPeople(pet.idOwner, function(person) { - appendToTable(pet, person); + appendToTable(pet, person); }, showErrorMessage ); }); }); + daoPeople.listPeople(function(people) { + $.each(people, function(key, person) { + appendToFormSelect(person); + }); + }, + function() { + alert('No ha sido posible acceder al listado de personas.'); + }); + // La acción por defecto de enviar formulario (submit) se sobreescribe // para que el envío sea a través de AJAX $(formQuery).submit(function(event) { var pet = self.getPetInForm(); - + if (self.isEditing()) { dao.modifyPet(pet, function(pet) { @@ -52,8 +60,14 @@ var PetsView = (function() { } else { dao.addPet(pet, function(pet) { - appendToTable(pet); - self.resetForm(); + + daoPeople.getPeople(pet.idOwner, + function(person) { + appendToTable(pet, person); + self.resetForm(); + }, + showErrorMessage + ); }, showErrorMessage, self.enableForm @@ -71,7 +85,7 @@ var PetsView = (function() { $('#' + formContainerId).before('

Mascotas de ' + person.name + ' ' + person.surname + '

'); $('#person-name-th').remove(); - $('#person-surname-th').remove(); + $('#person-surname-th').remove(); dao.listPeoplePets(id, function(pets) { @@ -80,6 +94,19 @@ var PetsView = (function() { }); }); + var daoPeople = new PeopleDAO(); + daoPeople.listPeople(function(people) { + $.each(people, function(key, personSelect) { + appendToFormSelect(personSelect); + }); + $('#idOwner-select option[value="' + person.id + '"]').attr("selected",true); + + }, + function() { + alert('No ha sido posible acceder al listado de personas.'); + }); + + // La acción por defecto de enviar formulario (submit) se sobreescribe // para que el envío sea a través de AJAX $(formQuery).submit(function(event) { @@ -103,7 +130,7 @@ var PetsView = (function() { } else { dao.addPet(pet, function(pet) { - appendToTable(pet); + appendToTablePetsPerson(pet); self.resetForm(); if(pet.idOwner != id) { $('tr#pet-' + pet.id).remove(); @@ -119,15 +146,14 @@ var PetsView = (function() { $('#btnClearPet').click(this.resetForm); }; - - + this.getPetInForm = function() { var form = $(formQuery); return { 'id': form.find('input[name="idPet"]').val(), 'name': form.find('input[name="namePet"]').val(), 'specie': form.find('input[name="specie"]').val(), - 'idOwner': form.find('input[name="idOwner"]').val() + 'idOwner': form.find('select[name="idOwner"]').val() }; }; @@ -155,7 +181,7 @@ var PetsView = (function() { form.find('input[name="idPet"]').val(id); form.find('input[name="namePet"]').val(row.find('td.namePet').text()); form.find('input[name="specie"]').val(row.find('td.specie').text()); - form.find('input[name="idOwner"]').val(row.find('td.idOwner').text()); + form.find('select[name="idOwner"]').val(row.find('td.idOwner').text()); $('input#btnSubmitPet').val('Modificar'); } @@ -211,8 +237,8 @@ var PetsView = (function() { }; var insertPetsForm = function(parent) { - parent.append( - '
\ + + var formPets ='\ \
\
\ @@ -222,7 +248,8 @@ var PetsView = (function() { \
\
\ - \ + \ @@ -230,7 +257,9 @@ var PetsView = (function() {
\
\
' - ); + + + parent.append(formPets) }; var createPetRow = function(pet, person) { @@ -260,7 +289,6 @@ var PetsView = (function() { \ '; }; - var showErrorMessage = function(jqxhr, textStatus, error) { alert(textStatus + ": " + error); @@ -287,6 +315,14 @@ var PetsView = (function() { .append(createPetRowPetsPerson(pet)); addRowListeners(pet); }; + + var appendToFormSelect = function(person) { + $('#idOwner-select').append(createPersonOption(person)) + } + + var createPersonOption = function(person) { + return ''; + } return PetsView; })();