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
}).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
});
}
});
Si tenemos botones en la barra, y queremos interactuar con la logica de dentro
no se puede de manera inemdiata, ya que está fuera del control y no tenemos
acceso directo (porque el emergente está en otro lugar no anidado en jerarquicamente)
Por ello, hay que obtener una referencia al lugar en el que está el emergente, para
acceder al quontrol hijo:
var subemergente = $().plugins("emergente", opc)
.on("accion", function(e, btn) {
if (btn == "enviar") {
var contenedor = subemergente.accion("contenedor"); //accedemos al contenedor
solicitud = contenedor.find(".QuontrolPersonalReconocimiento_enviarSolicitudReconocimiento");
if (solicitud) {
solicitud.accion("envia"); //suponiendo que el quontrol hijo tenga un método 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);
});