-
-
diff --git a/app/webroot/css/Cita/add_multiple.css b/app/webroot/css/Cita/add_multiple.css
index 5e7f1949..c284912f 100755
--- a/app/webroot/css/Cita/add_multiple.css
+++ b/app/webroot/css/Cita/add_multiple.css
@@ -36,3 +36,13 @@
.control-label {
font-weight: bold;
}
+
+#modalNuevaEspecie .modal-body,
+#modalEditarEspecie .modal-body {
+ height: 430px;
+}
+
+#modalNuevaEspecie .modal-body textarea,
+#modalEditarEspecie .modal-body textarea {
+ width: 560px;
+}
diff --git a/app/webroot/css/Elements/Especie/filaEspecie.css b/app/webroot/css/Elements/Especie/filaEspecie.css
deleted file mode 100755
index da7595ef..00000000
--- a/app/webroot/css/Elements/Especie/filaEspecie.css
+++ /dev/null
@@ -1,9 +0,0 @@
-#modalNuevaEspecie .modal-body,
-#modalEditarEspecie .modal-body {
- height: 430px;
-}
-
-#modalNuevaEspecie .modal-body textarea,
-#modalEditarEspecie .modal-body textarea {
- width: 560px;
-}
\ No newline at end of file
diff --git a/app/webroot/js/Cita/add_multiple.js b/app/webroot/js/Cita/add_multiple.js
index cbb62add..151d0c73 100755
--- a/app/webroot/js/Cita/add_multiple.js
+++ b/app/webroot/js/Cita/add_multiple.js
@@ -1,231 +1,572 @@
-/**
- *
- */
-
$(document).ready(function () {
- var $divNuevaCitaMultiple = $('#divNuevaCitaMultiple');
+ var $divNuevaCitaMultiple = $('#divNuevaCitaMultiple');
- /**
- * CRITERIOS GENERALES
- */
+ /**
+ * CRITERIOS GENERALES
+ */
- // Seleccionar fecha
- seleccionarFecha($divNuevaCitaMultiple);
+ // Seleccionar fecha
+ seleccionarFecha($divNuevaCitaMultiple);
// Seleccionar hora de alta
seleccionarHora($divNuevaCitaMultiple);
- // Seleccionar lugar
- seleccionarLugar($divNuevaCitaMultiple);
-
- // Vaciar lugar
- $divNuevaCitaMultiple.find(".btnVaciarLugar").click(function () {
- vaciarLugarSeleccioando($divNuevaCitaMultiple)
- });
-
- // Nuevo lugar
- $divNuevaCitaMultiple.find(".btnNuevoLugar").click(function() {
- limpiarFormularioLugar();
- $('#modalNuevoLugar').modal();
- });
-
- // Seleccionar observador
- seleccionarObservador($divNuevaCitaMultiple);
-
- // Nuevo colaborador
- $divNuevaCitaMultiple.find(".btnNuevoColaborador").click(function() {
- limpiarNuevoColaborador();
- $('#divNuevoColaborador').modal();
- });
-
- // Seleccionar colaborador
- seleccionarColaboradores($divNuevaCitaMultiple);
-
- // Limpiar colaboradores seleccioandos
- $divNuevaCitaMultiple.find("#btnVaciarColaboradores").click(function () {
- limpiarColaboradores($divNuevaCitaMultiple);
- });
-
- // Popup ayuda
- $divNuevaCitaMultiple.find('.badge-info').popover();
-
- // Insertar especie
- $divNuevaCitaMultiple.find("#btnInsertarEspecie").click(function() {
- limpiarFormularioEspecie();
- var $modalNuevaEspecie = $('#modalNuevaEspecie');
- $modalNuevaEspecie.modal();
-
- $modalNuevaEspecie.on('shown', function () {
- $modalNuevaEspecie.find('.modal-body').scrollTop(0);
- });
- });
-
- /* INICIO Validación de formulario */
- jQuery.validator.addMethod("isdate", function (value, element) {
- var validDate = /^(\d{2})\/(\d{2})\/(\d{4})?$/;
- return validDate.test(value)
- });
- jQuery.validator.addMethod("validarEspecie", function (value, element) {
- return $divNuevaCitaMultiple.find("input[name$='[especie_id]']").length > 0;
- }, "Debe insertar al menos una especie.");
-
- jQuery.validator.addMethod("validarLugar", function (value, element) {
- return $("#lugarId").val() != "";
- }, "Debe seleccionar un lugar.");
-
- jQuery.validator.addMethod("validarObservador", function (value, element) {
- return $("#observadoresSeleccionados").val() != "";
- }, "Debe seleccionar al menos un observador.");
-
- jQuery.validator.addMethod("dateBeforeOrEqualToday", function (value, element) {
-
- var fechaAlta = $.datepicker.parseDate("dd/mm/yy", value);
- var now = new Date();
-
- return (fechaAlta < now || fechaAlta == now);
- }, "Debe introducir una fecha de alta anterior o igual a la fecha de hoy.");
-
- $divNuevaCitaMultiple.find('#frmNuevaCitaMultiple').validate({
- rules: {
- "data[Cita][fechaAlta]": {
- required: true,
- date: false,
- isdate: true,
- dateBeforeOrEqualToday: true
- },
- lugar: {
- validarLugar: true
- },
- observadores: {
- validarObservador: true
- },
- hdnEspecies: {
- validarEspecie: true
- }
- },
- messages: {
- "data[Cita][fechaAlta]": {
- required: "Debe seleccionar una fecha de alta.",
- date: "Debe introducir una fecha de alta con formato correcto (dd/mm/aaaa)."
- }
- },
- ignore: [],
- errorContainer: "#errorMessages",
- errorLabelContainer: "#errorMessages ul",
- wrapper: "li",
- invalidHandler: function (event, validator) {
- $('html, body').animate({scrollTop: 0}, 'slow');
- },
- onfocusout: false
- });
- /* FIN Validación de formulario */
-
- /* INICIO guardar */
- $divNuevaCitaMultiple.find("#btnGuardar").click(function () {
-
- if ($divNuevaCitaMultiple.find('#frmNuevaCitaMultiple').valid()) {
-
- var especies = [],
- lugarId = $("#lugarId").val(),
- fechaAlta = $("#fechaAlta").val(),
- items = [];
-
- $divNuevaCitaMultiple.find("input[name$='[especie_id]']").each(function () {
- if ($(this).val() !== '') {
- especies.push($(this).val());
- }
- });
- especies = especies.join(',');
-
- $.ajax({
- url: "/cita/existenCitas",
- data: {"especies": especies, "lugarId": lugarId, "fechaAlta": fechaAlta},
- dataType: "json",
- success: function (response) {
-
- if (response.status === 0 && response.citasSimilares === false) {
- items = [];
- items.push("
");
- items.push("");
- items.push("Ya has creado previamente alguna cita para la misma fecha y lugar de alguna de las especies introducidas.");
- items.push("
¿Estás seguro de que deseas crear estas nuevas citas?
");
-
- bootbox.confirm(items.join(""), "Cancelar", "Aceptar", function (result) {
- if (result) {
- validarRarezaCitaMultiple(especies);
- }
- });
- } else {
- validarRarezaCitaMultiple(especies);
- }
- }
- });
- }
- });
- /* FIN guardar */
+ // Seleccionar lugar
+ seleccionarLugar($divNuevaCitaMultiple);
+
+ // Vaciar lugar
+ $divNuevaCitaMultiple.find(".btnVaciarLugar").click(function () {
+ vaciarLugarSeleccioando($divNuevaCitaMultiple)
+ });
+
+ // Nuevo lugar
+ $divNuevaCitaMultiple.find(".btnNuevoLugar").click(function () {
+ limpiarFormularioLugar();
+ $('#modalNuevoLugar').modal();
+ });
+
+ // Seleccionar observador
+ seleccionarObservador($divNuevaCitaMultiple);
+
+ // Nuevo colaborador
+ $divNuevaCitaMultiple.find(".btnNuevoColaborador").click(function () {
+ limpiarNuevoColaborador();
+ $('#divNuevoColaborador').modal();
+ });
+
+ // Seleccionar colaborador
+ seleccionarColaboradores($divNuevaCitaMultiple);
+
+ // Limpiar colaboradores seleccioandos
+ $divNuevaCitaMultiple.find("#btnVaciarColaboradores").click(function () {
+ limpiarColaboradores($divNuevaCitaMultiple);
+ });
+
+ // Popup ayuda
+ $divNuevaCitaMultiple.find('.badge-info').popover();
+
+ // Insertar especie
+ $divNuevaCitaMultiple.find("#btnInsertarEspecie").click(function () {
+ limpiarFormularioEspecie();
+ var $modalNuevaEspecie = $('#modalNuevaEspecie');
+ $modalNuevaEspecie.modal();
+
+ $modalNuevaEspecie.on('shown', function () {
+ $modalNuevaEspecie.find('.modal-body').scrollTop(0);
+ });
+ });
+
+ /* INICIO Validación de formulario */
+ jQuery.validator.addMethod("isdate", function (value, element) {
+ var validDate = /^(\d{2})\/(\d{2})\/(\d{4})?$/;
+ return validDate.test(value)
+ });
+ jQuery.validator.addMethod("validarEspecie", function (value, element) {
+ return $divNuevaCitaMultiple.find("input[name$='[especie_id]']").length > 0;
+ }, "Debe insertar al menos una especie.");
+
+ jQuery.validator.addMethod("validarLugar", function (value, element) {
+ return $("#lugarId").val() != "";
+ }, "Debe seleccionar un lugar.");
+
+ jQuery.validator.addMethod("validarObservador", function (value, element) {
+ return $("#observadoresSeleccionados").val() != "";
+ }, "Debe seleccionar al menos un observador.");
+
+ jQuery.validator.addMethod("dateBeforeOrEqualToday", function (value, element) {
+
+ var fechaAlta = $.datepicker.parseDate("dd/mm/yy", value);
+ var now = new Date();
+
+ return (fechaAlta < now || fechaAlta == now);
+ }, "Debe introducir una fecha de alta anterior o igual a la fecha de hoy.");
+
+ $divNuevaCitaMultiple.find('#frmNuevaCitaMultiple').validate({
+ rules: {
+ "data[Cita][fechaAlta]": {
+ required: true,
+ date: false,
+ isdate: true,
+ dateBeforeOrEqualToday: true
+ },
+ lugar: {
+ validarLugar: true
+ },
+ observadores: {
+ validarObservador: true
+ },
+ hdnEspecies: {
+ validarEspecie: true
+ }
+ },
+ messages: {
+ "data[Cita][fechaAlta]": {
+ required: "Debe seleccionar una fecha de alta.",
+ date: "Debe introducir una fecha de alta con formato correcto (dd/mm/aaaa)."
+ }
+ },
+ ignore: [],
+ errorContainer: "#errorMessages",
+ errorLabelContainer: "#errorMessages ul",
+ wrapper: "li",
+ invalidHandler: function (event, validator) {
+ $('html, body').animate({scrollTop: 0}, 'slow');
+ },
+ onfocusout: false
+ });
+ /* FIN Validación de formulario */
+
+ /* INICIO guardar */
+ $divNuevaCitaMultiple.find("#btnGuardar").click(function () {
+
+ if ($divNuevaCitaMultiple.find('#frmNuevaCitaMultiple').valid()) {
+
+ var especies = [],
+ lugarId = $("#lugarId").val(),
+ fechaAlta = $("#fechaAlta").val(),
+ items = [];
+
+ $divNuevaCitaMultiple.find("input[name$='[especie_id]']").each(function () {
+ if ($(this).val() !== '') {
+ especies.push($(this).val());
+ }
+ });
+ especies = especies.join(',');
+
+ $.ajax({
+ url: "/cita/existenCitas",
+ data: {"especies": especies, "lugarId": lugarId, "fechaAlta": fechaAlta},
+ dataType: "json",
+ success: function (response) {
+
+ if (response.status === 0 && response.citasSimilares === false) {
+ items = [];
+ items.push("
");
+ items.push("");
+ items.push("Ya has creado previamente alguna cita para la misma fecha y lugar de alguna de las especies introducidas.");
+ items.push("
");
- items.push("");
- items.push("Alguna de las especies que has introducido es una RAREZA NACIONAL.");
- items.push("
");
- items.push(" ");
- items.push("Para homologar esta cita debes seguir ");
- items.push("estas instrucciones.");
-
- bootbox.confirm(items.join(""), "Cancelar", "Continuar", function (result) {
- if (result) {
- $("#frmNuevaCitaMultiple").submit();
- }
- });
- } else if (indEsRareza == 2) {
- items = [];
- items.push("
");
- items.push("");
- items.push("Alguna de las especies que has introducido es una RAREZA LOCAL.");
- items.push("
");
- items.push(" ");
- items.push("Debido a la importancia de la cita, por favor, envíanos un correo electrónico a ");
- items.push("anuario@sao.albacete.org, ");
- items.push("describíendo con detalle el avistamiento y ampliando toda la información posible.");
- items.push(" ");
- items.push("Es importante que adjuntes fotografías aunque sean de mala calidad para apoyar la identificación de la especie.");
-
- bootbox.confirm(items.join(""), "Cancelar", "Continuar", function (result) {
- if (result) {
- $("#frmNuevaCitaMultiple").submit();
- }
- });
- } else {
- $("#frmNuevaCitaMultiple").submit();
- }
- }
- });
+function validarRarezaCitaMultiple(especies) {
+ var items = [];
+
+ $.ajax({
+ url: "/especie/sonRarezas",
+ data: {"especies": especies},
+ success: function (indEsRareza) {
+
+ if (indEsRareza == 1) {
+ items = [];
+ items.push("
");
+ items.push("");
+ items.push("Alguna de las especies que has introducido es una RAREZA NACIONAL.");
+ items.push("
");
+ items.push(" ");
+ items.push("Para homologar esta cita debes seguir ");
+ items.push("estas instrucciones.");
+
+ bootbox.confirm(items.join(""), "Cancelar", "Continuar", function (result) {
+ if (result) {
+ $("#frmNuevaCitaMultiple").submit();
+ }
+ });
+ } else if (indEsRareza == 2) {
+ items = [];
+ items.push("
");
+ items.push("");
+ items.push("Alguna de las especies que has introducido es una RAREZA LOCAL.");
+ items.push("
");
+ items.push(" ");
+ items.push("Debido a la importancia de la cita, por favor, envíanos un correo electrónico a ");
+ items.push("anuario@sao.albacete.org, ");
+ items.push("describíendo con detalle el avistamiento y ampliando toda la información posible.");
+ items.push(" ");
+ items.push("Es importante que adjuntes fotografías aunque sean de mala calidad para apoyar la identificación de la especie.");
+
+ bootbox.confirm(items.join(""), "Cancelar", "Continuar", function (result) {
+ if (result) {
+ $("#frmNuevaCitaMultiple").submit();
+ }
+ });
+ } else {
+ $("#frmNuevaCitaMultiple").submit();
+ }
+ }
+ });
+}
+
+/**
+ * Valida los datos introducidos en el formulario de especie y si son correctos,
+ * añade una nueva fila, si no, muestra los errores de validación
+ */
+function validarFormularioEspecie($div, $formulario, errorContainer, numeroFila) {
+ jQuery.validator.addMethod("validarEspeciePopup", function (value, element) {
+ return $div.find(".especieId").val() != "";
+ }, "Debe seleccionar una especie.");
+
+ jQuery.validator.addMethod("validarNumeroAves", function (value, element) {
+ var total_numero_aves = 0;
+ $div.find(".numero_aves").each(function () {
+ total_numero_aves += parseInt($(this).val());
+ });
+ return total_numero_aves > 0;
+ }, "El número de aves debe ser mayor que cero.");
+
+ $formulario.validate({
+ rules: {
+ especie: {
+ validarEspeciePopup: true
+ },
+ "data[claseEdadSexo][][4]": {
+ validarNumeroAves: true
+ },
+ "data[Cita][clase_reproduccion_id]": {
+ required: true
+ }
+ },
+ messages: {
+ "data[Cita][clase_reproduccion_id]": {
+ required: "Debe seleccionar un dato de reproducción."
+ }
+ },
+ errorContainer: "#" + errorContainer,
+ errorLabelContainer: "#" + errorContainer + " ul",
+ wrapper: "li",
+ onfocusout: false
+ });
+
+ if ($formulario.valid()) {
+
+ if (numeroFila) {
+ eliminarFilaEspecie(numeroFila);
+ }
+ insertarFilaEspecie($div, numeroFila);
+
+ ordenarTablaEspecies(document.getElementById("tablaEspecies").tBodies[0], 0, 1);
+
+ $div.modal('hide');
+ }
+}
+
+/**
+ * Inserta una nueva fila en la tabla de especies y sus hiddens correspondientes
+ * @param $div
+ * @param fila
+ */
+function insertarFilaEspecie($div, fila) {
+ var $tablaEspecies = $('#tablaEspecies'),
+ $indHabitatRaro = $div.find(".indHabitatRaro").is(":checked"),
+ $indCriaHabitatRaro = $div.find(".indCriaHabitatRaro").is(":checked"),
+ $indHerido = $div.find(".indHerido").is(":checked"),
+ $indComportamiento = $div.find(".indComportamiento").is(":checked"),
+ numeroFila = fila ? fila : $tablaEspecies.find('tbody tr').length,
+ $formulario = $('#frmNuevaCitaMultiple');
+
+ // Insertar fila en la tabla de especies
+ content = [];
+ content.push('