Commit 60457198 authored by miferreiro's avatar miferreiro

Changes in the form of pets

The list of existing people in a pet owner field has been added to better identify the person we want to select.
In addition, it has been added that in the view of a person's pets, the name of that person appears by default in the form of adding / editing the information of a pet.
parent e9c2ea00
...@@ -18,25 +18,33 @@ var PetsView = (function() { ...@@ -18,25 +18,33 @@ var PetsView = (function() {
this.init = function() { this.init = function() {
$('#' + formContainerId).before('<h1 class="display-5 mt-3 mb-3" id="pets-tittle">Mascotas</h1>'); $('#' + formContainerId).before('<h1 class="display-5 mt-3 mb-3" id="pets-tittle">Mascotas</h1>');
var daoPeople = new PeopleDAO();
dao.listPets(function(pets) { dao.listPets(function(pets) {
$.each(pets, function(key, pet) { $.each(pets, function(key, pet) {
var daoPeople = new PeopleDAO();
daoPeople.getPeople(pet.idOwner, daoPeople.getPeople(pet.idOwner,
function(person) { function(person) {
appendToTable(pet, person); appendToTable(pet, person);
}, },
showErrorMessage 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 // La acción por defecto de enviar formulario (submit) se sobreescribe
// para que el envío sea a través de AJAX // para que el envío sea a través de AJAX
$(formQuery).submit(function(event) { $(formQuery).submit(function(event) {
var pet = self.getPetInForm(); var pet = self.getPetInForm();
if (self.isEditing()) { if (self.isEditing()) {
dao.modifyPet(pet, dao.modifyPet(pet,
function(pet) { function(pet) {
...@@ -52,8 +60,14 @@ var PetsView = (function() { ...@@ -52,8 +60,14 @@ var PetsView = (function() {
} else { } else {
dao.addPet(pet, dao.addPet(pet,
function(pet) { function(pet) {
appendToTable(pet);
self.resetForm(); daoPeople.getPeople(pet.idOwner,
function(person) {
appendToTable(pet, person);
self.resetForm();
},
showErrorMessage
);
}, },
showErrorMessage, showErrorMessage,
self.enableForm self.enableForm
...@@ -71,7 +85,7 @@ var PetsView = (function() { ...@@ -71,7 +85,7 @@ var PetsView = (function() {
$('#' + formContainerId).before('<h1 class="display-5 mt-3 mb-3" id="pets-tittle">Mascotas de ' + person.name + ' ' + person.surname + '</h1>'); $('#' + formContainerId).before('<h1 class="display-5 mt-3 mb-3" id="pets-tittle">Mascotas de ' + person.name + ' ' + person.surname + '</h1>');
$('#person-name-th').remove(); $('#person-name-th').remove();
$('#person-surname-th').remove(); $('#person-surname-th').remove();
dao.listPeoplePets(id, dao.listPeoplePets(id,
function(pets) { function(pets) {
...@@ -80,6 +94,19 @@ var PetsView = (function() { ...@@ -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 // La acción por defecto de enviar formulario (submit) se sobreescribe
// para que el envío sea a través de AJAX // para que el envío sea a través de AJAX
$(formQuery).submit(function(event) { $(formQuery).submit(function(event) {
...@@ -103,7 +130,7 @@ var PetsView = (function() { ...@@ -103,7 +130,7 @@ var PetsView = (function() {
} else { } else {
dao.addPet(pet, dao.addPet(pet,
function(pet) { function(pet) {
appendToTable(pet); appendToTablePetsPerson(pet);
self.resetForm(); self.resetForm();
if(pet.idOwner != id) { if(pet.idOwner != id) {
$('tr#pet-' + pet.id).remove(); $('tr#pet-' + pet.id).remove();
...@@ -119,15 +146,14 @@ var PetsView = (function() { ...@@ -119,15 +146,14 @@ var PetsView = (function() {
$('#btnClearPet').click(this.resetForm); $('#btnClearPet').click(this.resetForm);
}; };
this.getPetInForm = function() { this.getPetInForm = function() {
var form = $(formQuery); var form = $(formQuery);
return { return {
'id': form.find('input[name="idPet"]').val(), 'id': form.find('input[name="idPet"]').val(),
'name': form.find('input[name="namePet"]').val(), 'name': form.find('input[name="namePet"]').val(),
'specie': form.find('input[name="specie"]').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() { ...@@ -155,7 +181,7 @@ var PetsView = (function() {
form.find('input[name="idPet"]').val(id); form.find('input[name="idPet"]').val(id);
form.find('input[name="namePet"]').val(row.find('td.namePet').text()); 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="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'); $('input#btnSubmitPet').val('Modificar');
} }
...@@ -211,8 +237,8 @@ var PetsView = (function() { ...@@ -211,8 +237,8 @@ var PetsView = (function() {
}; };
var insertPetsForm = function(parent) { var insertPetsForm = function(parent) {
parent.append(
'<form id="' + formId + '" class="mb-5 mb-11">\ var formPets ='<form id="' + formId + '" class="mb-5 mb-11">\
<input name="idPet" type="hidden" value=""/>\ <input name="idPet" type="hidden" value=""/>\
<div class="row">\ <div class="row">\
<div class="col-sm-3">\ <div class="col-sm-3">\
...@@ -222,7 +248,8 @@ var PetsView = (function() { ...@@ -222,7 +248,8 @@ var PetsView = (function() {
<input name="specie" type="text" value="" placeholder="Especie" class="form-control" required/>\ <input name="specie" type="text" value="" placeholder="Especie" class="form-control" required/>\
</div>\ </div>\
<div class="col-sm-3">\ <div class="col-sm-3">\
<input name="idOwner" type="number" value="" placeholder="Propietario" class="form-control" required/>\ <select id="idOwner-select" name="idOwner" value="" class="form-control" required/>\
<option value=""></option>\
</div>\ </div>\
<div class="col-sm-3">\ <div class="col-sm-3">\
<input id="btnSubmitPet" type="submit" value="Crear" class="btn btn-primary" />\ <input id="btnSubmitPet" type="submit" value="Crear" class="btn btn-primary" />\
...@@ -230,7 +257,9 @@ var PetsView = (function() { ...@@ -230,7 +257,9 @@ var PetsView = (function() {
</div>\ </div>\
</div>\ </div>\
</form>' </form>'
);
parent.append(formPets)
}; };
var createPetRow = function(pet, person) { var createPetRow = function(pet, person) {
...@@ -260,7 +289,6 @@ var PetsView = (function() { ...@@ -260,7 +289,6 @@ var PetsView = (function() {
</td>\ </td>\
</tr>'; </tr>';
}; };
var showErrorMessage = function(jqxhr, textStatus, error) { var showErrorMessage = function(jqxhr, textStatus, error) {
alert(textStatus + ": " + error); alert(textStatus + ": " + error);
...@@ -287,6 +315,14 @@ var PetsView = (function() { ...@@ -287,6 +315,14 @@ var PetsView = (function() {
.append(createPetRowPetsPerson(pet)); .append(createPetRowPetsPerson(pet));
addRowListeners(pet); addRowListeners(pet);
}; };
var appendToFormSelect = function(person) {
$('#idOwner-select').append(createPersonOption(person))
}
var createPersonOption = function(person) {
return '<option value="' + person.id + '">'+ person.name + ' ' + person.surname + '</option>';
}
return PetsView; return PetsView;
})(); })();
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment