Files
Jorge Luis caudillo esparza e8160eefba --documentos
2026-09-27 14:44:12 -07:00

87 lines
3.0 KiB
JavaScript

(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));