(function (ventana, documento, $) { "use strict"; if (ventana.SIGVisitas && ventana.SIGVisitas.inicializar) { return; } var arrastre = null; function mostrarModal(identificador) { $(documento.getElementById(identificador)).modal("show"); } function ocultarModal(identificador) { $(documento.getElementById(identificador)).modal("hide"); } function iniciarArrastre(evento) { var asa = $(this); arrastre = { clave: asa.attr("data-visita-clave"), grupo: asa.attr("data-visita-grupo"), tabla: asa.closest("[data-visita-orden]")[0] }; evento.originalEvent.dataTransfer.setData("text/plain", arrastre.clave); evento.originalEvent.dataTransfer.effectAllowed = "move"; } function permitirArrastre(evento) { if (arrastre && this === arrastre.tabla) { evento.preventDefault(); } } function soltar(evento) { if (!arrastre || this !== arrastre.tabla) { return; } var fila = $(evento.target).closest("tr"); var tabla = $(this); var asa = fila.find("[data-visita-clave]").first(); if (asa.attr("data-visita-grupo") !== arrastre.grupo || !asa.length || asa.attr("data-visita-clave") === arrastre.clave) { arrastre = null; return; } var entrada = documento.getElementById(tabla.attr("data-visita-entrada")); if (!entrada) { arrastre = null; return; } evento.preventDefault(); var despues = evento.originalEvent.clientY > fila[0].getBoundingClientRect().top + fila[0].offsetHeight / 2; entrada.value = tabla.attr("data-visita-orden") + "|" + arrastre.clave + "|" + asa.attr("data-visita-clave") + "|" + (despues ? "1" : "0"); arrastre = null; ventana.__doPostBack(tabla.attr("data-visita-destino"), ""); } function terminarArrastre() { arrastre = null; } function inicializar(raiz) { var contenedor = $(raiz || documento); var selector = "[data-visita-clave]:not([data-sig-arrastre-visita-inicializado='1'])"; contenedor.find(selector).addBack(selector).each(function () { $(this).on("dragstart.sigVisitas", iniciarArrastre) .on("dragend.sigVisitas", terminarArrastre) .attr("data-sig-arrastre-visita-inicializado", "1"); }); selector = "[data-visita-orden]:not([data-sig-orden-visita-inicializado='1'])"; contenedor.find(selector).addBack(selector).each(function () { $(this).on("dragover.sigVisitas", permitirArrastre) .on("drop.sigVisitas", soltar) .attr("data-sig-orden-visita-inicializado", "1"); }); } ventana.SIGVisitas = { mostrarModal: mostrarModal, ocultarModal: ocultarModal, inicializar: inicializar }; }(window, document, jQuery));