alvaro-prieto
4/26/2017 - 11:00 AM

plugin emergente (JS JavaScript)

plugin emergente (JS JavaScript) cerrar cierra botones accion

//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
});


//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
         }

      }
   });