plugin emergente (JS JavaScript) cerrar cierra botones accion. Se incluye codigo para acceder al contenido una vez que está listo.
Un emergente de tipo alert, pero con la cabecera verde en vez de roja como en un alert
$().plugins("emergente", {
"titulo": "Muchas gracias",
"contenido": "<p>Hemos recibido el anuncio. Se publicará cuando los moderadores lo revisen</p>",
"botones": {
"cerrar": "Cerrar",
}
});//Para reaccionar a eventos del contenido de un emergente, lo ideal
//es dentro de un on, lo cual garantiza que ya se ha creado el contenido
$().plugins("emergente",{
"api":{
"api":"SgicReuniones.configurarTurnosPalabra",
"carga_id":idReunion
},
"modo":"modal",
"posicion":"center",
"abierto":"true",
"botonCerrar":false,
"sinBorde":true,
"titulo":"Asignar tiempos a los convocados",
"margen":"30px",
"anchura":"800px"
}).on("modificado",function(e,valores){
var ops = {};
ops["api"] = "SgicReuniones.reasignaTiemposConvocados";
ops["idregistro"] = idReunion;
ops["var_valores"] = valores;
api(ops);
}).on("pause", function(e,loquesea){
//loquesea, los eventos de los quontroles hijos se propagan
}).on("abierto", function(e){
console.log("Contenido del emergente está listo");
});
//Emergente que se autocierra y responde a eventos de botones de su barra
$().plugins("emergente", {
"titulo": "titulo emergente",
"api": {
"api": "InventariosEquiposInformaticos.fichaEquipoInformatico",
"carga_id": idEquipo
},
"botones": {
"eliminar": {
"rotulo": "Borrar datos",
"tipo" : "cancelar",
"ayuda": "Eliminar todos los datos de equipo informático asociados a ese artículo"},
"cerrar": "Cerrar",
}
}).on("accion", function(e, btn) {
if(btn == "eliminar"){
//LLamamos a la api y en el callback destruimos el emergente
api( {"api":"InventariosEquiposInformaticos.borra", "carga_id":idEquipo} ,function(json){
quontrol.dispara("equipoInformaticoEliminado");
//$(this).destruye(); //lo elimina del dom
$(this).accion("cierra"); //lo cierra
});
}
});
Un emergente no funciona como un quontrol normal, en el que podemos hacer un find() para encontrar su contenido y descendientes. Como se crea fuera de lugar en el DOM, para poder indagar en su contenido primero tenemos que invocar a accion("contenedor")
$().plugins("emergente", opc)
.on("accion", function(e, btn) {
if (btn == "enviar") {
var contenedor = subemergente.accion("contenedor"); //accedemos al contenedor
const subquontrol = contenedor.find(".loquesea");
subquontrol.accion("envia");
}
}
});
//acceder al contenido del emergente una vez cargado, quizas util si es HTML:
$().plugins("emergente", {
"titulo": q.data("strTituloEmergente"),
"contenido": html,
"botones": {
"eliminar": {
"rotulo": "Borrar datos",
"tipo" : "cancelar"
},
"cerrar": "Cerrar",
}
}).on("action", function(e, btn) {
if(btn == "eliminar"){
$(this).accion("cierra");
}
}).on("close", function(e){
//el close se dispara cada vez que se cierra el emergente, incluso aunque se haya cerrado por código. Genial!
console.log("se ha cerrado el emergente");
}).on("abierto", function(e){
var contenido = $(this).accion("contenedor").find(".pluginRecortadorContenido");
console.log("hola");
console.log(contenido.length);
});