You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

132 lines
3.6 KiB

//Funtions
function onSubmitAnimal(form){
var data = {};
$.map($(form).serializeArray(), function(n, i){
if(n['value']!= "") data[n['name']] = n['value'];
else data[n['name']] = null;
});
if(data._id){
$.ajax({
type: "PUT",
url: "/animal/"+data._id,
data: JSON.stringify(data),
success: function() { showAnimal(data._id) },
contentType : "application/json"
});
}else{
$.ajax({
type: "POST",
url: "/animal",
data: JSON.stringify(data),
success: function() { $("#animals").click() },
contentType : "application/json"
});
}
return false;
};
function editAnimal(id){
$( "#body" ).load( "/templates/animal-form.html", function(){
var animal;
$.get( "/animal/"+id, function( data ) {
animal = data.data
for(key in animal)
{
if(animal.hasOwnProperty(key)){
if(key == "father" || key == "mother" || key == "specie" || key == "sex"){
let a = key;
setTimeout(function(){
$('#a-'+a+' option[value='+animal[a]+']').attr('selected','selected');
}, 200)
}else{
$('input[name='+key+']').val( animal[key] ?animal[key].$numberDecimal ? animal[key].$numberDecimal : animal[key] : "");
}
}
}
set_animal_include(animal._id);
paint_male_female(animal.specie, animal._id);
});
});
}
function showAnimal(id){
$( "#body" ).load( "/templates/animal-show.html", function(){
var text = "<table>";
$.get( "/animal/"+ id, function( data ) {
var animal = data.data,
j = 1;
$.each(animal, function(i, val) {
if(i != "_id" && i != "__v" && i.indexOf("initial") < 0)
text += "<tr><td>"+i+"</td><td>"+(val ? val.$numberDecimal ? val.$numberDecimal : val : "")+"</td></tr>";
// if(j % 3 == 0) text += "</tr><tr>"
j++;
});
text += "</table>";
$("#button").html('<button class="btn btn-info btn-sm float-right" onclick="editAnimal(\''+ animal._id +'\')">Edit</button>')
$(".a-name").html( animal.name );
$("#data").append( text );
get_parrents(animal);
get_childrens(animal);
});
});
}
function removeAnimal(id){
if(confirm("¿Surely you want to erase this dino?")){
$.ajax({
url: '/animal/'+id,
type: 'DELETE',
success: function() { $("#animals").click() }
});
}
}
function paint_male_female(specie, id){
$(".option").remove();
$.get( "/animal/"+specie+"/Male", function( data ) {
data.data.map(function(item){
if(item._id != id) $("#a-father").append("<option class=\"option\" value='"+item._id+"'>"+item.name+" - "+ item.level +"</option>");
})
});
$.get( "/animal/"+specie+"/Female", function( data ) {
data.data.map(function(item){
if(item._id != id) $("#a-mother").append("<option class=\"option\" value='"+item._id+"'>"+item.name+" - "+ item.level +"</option>");
})
});
}
function get_parrents(animal){
$.get( "/animal/parrents/" + animal._id, function( data ) {
data.data.map(function(item){
$(item.sex == "Male" ? "#a-father" : "#a-mother").html("<button onclick=\"showAnimal('"+ item._id +"')\">" + item.name+" - "+ item.level + "</button>");
});
});
}
function get_childrens(animal){
$.get( "/animal/childrens/" + animal._id, function( data ) {
data.data.map(function(item){
$("#a-childrens").append("<div class=\"col-6\"><button class=\"" + item.sex + "\" onclick=\"showAnimal('"+ item._id +"')\">" + item.name + " - " + item.level + "</button></div>");
})
});
}
function set_animal_include(id){
$.get( "/species", function( data ) {
data.data.map(function(item){
$("#a-specie").append("<option value='"+item._id+"'>"+item.name+"</option>");
});
});
$("#a-specie").change(function(e){
paint_male_female($( this ).val(), id);
});
}