Advertisement
Guest User

asdasd

a guest
Nov 18th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Esta es una variable global, que nos indica si estamos creando o editando una cancha.
  2. var EsNuevaCancha = true;
  3.  
  4. $(document).ready(function () {
  5.     getCanchas();
  6.  
  7.     // Cuando hacemos click en el botón nueva cancha, mostramos el modal con el formulario.
  8.     $("#nueva-cancha-btn").click(function () {
  9.         EsNuevaCancha = true;
  10.  
  11.         $("#cancha-modal").show();
  12.     });
  13.  
  14.     // Cuando hacemos click en el botón Guardar del modal, si es una nueva cancha, llamamos al crear, y sino, al guardar.
  15.     $("#guardar-cancha-btn").click(function () {
  16.         if (EsNuevaCancha) {
  17.             crearCancha();
  18.         } else {
  19.             guardarCancha();
  20.         }
  21.     });
  22. });
  23.  
  24. function getCanchas() {
  25.     $.ajax({
  26.         url: "/api/",
  27.         success: function (canchas) {
  28.             // result = [{"nombre":"cuarta amarilla","direccion":"av calchaqui 3240","id":1},{"nombre":"la roca","direccion":"av irigoyen 23","id":3},{"nombre":"complejo SOS","direccion":"av calchaqui 3460","id":5},{"nombre":"sol de bosques","direccion":"ruta nacional 2 km 56","id":9},{"nombre":"stadio","direccion":"av san martin 3360","id":18},{"nombre":"planeta futbol","direccion":"miguel cane 330","id":24},{"nombre":"Cancha 5","direccion":"Francia 2622","id":25}];
  29.             canchas.forEach(function (cancha) {
  30.                 // row = {"nombre":"cuarta amarilla","direccion":"av calchaqui 3240","id":1};
  31.                 agregarFila(cancha);
  32.             });
  33.         }
  34.     });
  35. }
  36.  
  37. function agregarFila(cancha) {
  38.     // esta función, recibe la row, es decir, {"nombre":"cuarta amarilla","direccion":"av calchaqui 3240","id":1}
  39.     var fila = getFilaDeCancha(cancha);
  40.     $("#tabla-canchas").append(fila);
  41. }
  42.  
  43. function getFilaDeCancha(cancha) {
  44.     // lo importante acá, es que el id de cada fila, va a ser el id de la cancha. Así la podemos manipular después.
  45.     return "<tr id='t-" + cancha.id + "'>" +
  46.         "<td class='cancha-id'>" + cancha.id + "</td>" +
  47.         "<td class='cancha-nombre'>" + cancha.nombre + "</td>" +
  48.         "<td class='cancha-direccion'>" + cancha.direccion + "</td>" +
  49.         "</tr>";
  50. }
  51.  
  52. function templateBotonesDeAccion(id) {
  53.     return "<td>" +
  54.         "<span class='glyphicon glyphicon-trash' onclick=borrarCancha(" + id + ")></span>" +
  55.         "<span class='glyphicon glyphicon-pencil' onclick=editarCancha(" + id + ")></span>" +
  56.         "</td>";
  57. }
  58.  
  59. function editarCancha(id) {
  60.     // Seteamos esta variable en false, para saber que estamos editando una cancha al guardar.
  61.     EsNuevaCancha = false;
  62.    
  63.     // Primero obtenemos la fila que queremos editar por el id.
  64.     var fila = $("#" + id);
  65.  
  66.     // Dentro de la fila, buscamos por el nombre de la cancha, por la clase, y agarramos el texto.
  67.     var nombre = fila.find(".cancha-nombre").text();
  68.     var direccion = fila.find(".cancha-direccion").text();
  69.  
  70.     $("#nombre").val(nombre);
  71.     $("#direccion").val(nombre);
  72.  
  73.     $("#cancha-modal").modal("show");
  74. }
  75.  
  76. function guardarCancha() {
  77.     // armamos un objeto con los valores requeridos por la api, levantando los valores de los inputs del modal.
  78.     var cancha = {
  79.         nombre: $("#nombre").val(),
  80.         direccion: $("#direccion").val(),
  81.         id: $("#id").val()
  82.     };
  83.  
  84.     $.ajax({
  85.         url: "/api/cancha",
  86.         type: "PUT",
  87.         data: cancha,
  88.         success: function (resultado) {
  89.             limpiarFormulario();
  90.  
  91.             // Llamamos a getCanchas para que nos refresque el listado de canchas (podrías hacerte el pija y actualizar la fila así no hace un request)
  92.             getCanchas();
  93.  
  94.             // cerramos el modal
  95.             $("#canchas-modal").modal("hide");
  96.         }
  97.     });
  98. }
  99.  
  100. function limpiarFormulario() {
  101.     // limpiamos cada input del formulario
  102.     $("#nombre").val("");
  103.     $("#direccion").val("");
  104.     $("#id").val("");
  105. }
  106.  
  107. function crearCancha() {
  108.     // armamos un objeto con los valores requeridos por la api, levantando los valores de los inputs del modal.
  109.     var cancha = {
  110.         nombre: $("#nombre").val(),
  111.         direccion: $("#direccion").val()
  112.     };
  113.  
  114.     $.ajax({
  115.         url: "/api/cancha",
  116.         type: "POST",
  117.         data: cancha,
  118.         success: function (resultado) {
  119.             // se supone que el resultado, debería ser el id de la cancha creada.
  120.             cancha.id = resultado;
  121.  
  122.             // agregamos la cancha que recién creamos
  123.             agregarFila(cancha);
  124.  
  125.             limpiarFormulario();
  126.  
  127.             // cerramos el modal
  128.             $("#canchas-modal").modal("hide");
  129.         }
  130.     });
  131. }
  132.  
  133. function borrarCancha(id) {
  134.     // es una llamada ajax pedorra.
  135.     $.ajax({
  136.         url: "/api/cancha/" + id,
  137.         type: "DELETE",
  138.         success: function (result) {
  139.             // Si la llamada fue exitosa, borro la fila entera con el método remove.
  140.             $("#t-" + id).remove();
  141.         }
  142.     });
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement