* @author Keka: * @author Vero: * @author Raquel: * @author Toni: * @package gvHIDRA **/ class IgepSmarty { public $preScript; public $v_eventosPesos; public $v_eventos; public $postScript; public $scriptLoadIgep; public $scriptLoadUsuario; public function __construct() { $this->IgepSmarty(); } //FIN constructor public function IgepSmarty() { $this->preScript=''; $this->postScript=''; $this->v_eventos = array(); $this->v_eventosPesos = array(); $configuration = ConfigFramework::getConfig(); $customDirname = $configuration->getCustomDirName(); define("APP_PATH",''); define("IMG_PATH_CUSTOM",APP_PATH.'custom/'.$customDirname.'/images/'); } //FIN constructor public function inicioVentana() { $cadenaJs = "var padre = $(window.parent.document);"; $this->preScript .= $cadenaJs; } //FIN addPreScript public function addPreScript($script) { $this->preScript .= $script."\n"; } //FIN addPreScript public function getPreScript($conCabecera=true) { $retorno =''; if ($this->preScript!='') { if ($conCabecera) { $retorno.="\n"; } else { $retorno.= $this->preScript; } } return ($retorno); } //FIN getPreScript public function addPostScript($script) { $this->postScript .= $script."\n"; } //FIN addPostScript public function getPostScript($conCabecera=true) { $retorno =''; if ($this->postScript!='') { if ($conCabecera) { $retorno.="\n"; } else { $retorno.=$this->postScript; } } return($retorno); } //FIN getPostScript /** * Esta función se encarga de almacenar el script que se ejecutará en el evento onLoad. * @param string $script String el codigo que se quiere añadir al evento OnLoad * @param string $escIni Indica el tipo de Script. Por definición de IGEP tenemos dos tipos: IGEP y USUARIO. * El primero corresponde con los scripts puntuales que IGEP tiene que inyectar en la ventana. El segundo * responde a los scripts que el usuario quiere que se carguen en la ventana durante toda su ejecución. * @access public */ public function addScriptLoad($script, $tipo='IGEP') { if($tipo=='USUARIO') $this->scriptLoadUsuario.=$script; else $this->scriptLoadIgep.=$script; }//Fin addScriptLoad public function getScriptLoad($conCabecera=true) { $script=''; if (($this->scriptLoadUsuario!='')or($this->scriptLoadIgep!='')) { if ($conCabecera) { $script .="\n"; } else $script .= $this->scriptLoadIgep."\n".';'.$this->scriptLoadUsuario; $this->scriptLoadIgep = ''; return $script; } else return ''; }//Fin de getScriptLoad /** * _validaEvento: Esta función se asegura de que el evento Javascript exista y este correctamente escrito * @param string $evento Cadena de texto con el nombre del evento * @access private */ public function _validaEvento(&$evento) { $v_eventos = array ( 'onfocus' => 'onFocus', 'onblur' => 'onBlur', 'onchange' => 'onChange', 'onabort' => 'onAbort', 'onclick' => 'onClick', 'ondblclick' => 'onDblClick', 'ondragdrop' => 'onDragDrop', 'onerror' => 'onError', 'onfocus' => 'onFocus', 'onkeydown' => 'onKeyDown', 'onkeypress' => 'onKeyPress', 'onkeyup' => 'onKeyUp', 'onload' => 'onLoad', 'onmousedown' => 'onMouseDown', 'onmousemove' => 'onMouseMove', 'onmouseout' => 'onMouseOut', 'onmouseover' => 'onMouseOver', 'onmouseup' => 'onMouseUp', 'onmove' => 'onMove', 'onresize' => 'onResize', 'onreset' => 'onReset', 'onselect' => 'onSelect', 'onsubmit' => 'onSubmit', 'onunload' => 'onUnLoad' ); if (array_key_exists(trim(strtolower($evento)), $v_eventos)) { $evento = $v_eventos[trim(strtolower($evento))]; return true; } else { $evento ='EVENTOINEXISTENTE'; return false; } } /** * addAccionEvento: Esta función registra una llamada a una función * javaScript en un evento determinado, opcionalmente puede introducirse * "importancia" o peso que servira para ordenar las distintas invocaciones * asociadas a un mismo evento * @param string $evento Cadena de texto con el nombre del Evento * @param string $script Cadena de texto con el nombre del Evento * @param int $pesoAccion Importancia o peso del script. Ordena los scrips asociados a un evento * @access public */ public function addAccionEvento($evento, $script, $pesoAccion=-1) { if (!$this->_validaEvento($evento)) die ('Error JAVASCRIPT, evento '.$evento.' inexistente.'); if ($pesoAccion== -1) { if (!is_array($this->v_eventos[$evento])) { $this->v_eventos[$evento] = array(); } array_push($this->v_eventos[$evento], $script); } else { while (isset($this->v_eventosPesos[$evento][$pesoAccion])) { ++$pesoAccion; } $this->v_eventosPesos[$evento][$pesoAccion] = $script; } } //FIN addAccionEvento public function _getAccion($nombreEvento, $v_Scripts) { $script=' '; if (is_array($v_Scripts) ) { foreach($v_Scripts as $accion) { $script.= $accion.';'; } //Añadimos la comprobacion de estado, si soy READONLY no disparo acciones: $iniScriptEstado = "if (this.readOnly != true) {"; $script = $nombreEvento.'="javascript:'.$iniScriptEstado.$script.'};" '; } return($script); } //FIN _getAccion public function getAcciones() { $script = ' '; $v_eventosFinal = array(); foreach($this->v_eventosPesos as $evento=>$vScriptPesos) { krsort($vScriptPesos); $v_eventosFinal[$evento] = $vScriptPesos; } foreach($this->v_eventos as $evento=>$valor) { foreach($valor as $scriptEjecutable){ if(empty($v_eventosFinal[$evento])) $v_eventosFinal[$evento] = array(); array_push($v_eventosFinal[$evento], $scriptEjecutable); } } $numEventos = count($v_eventosFinal); if ($numEventos>0) $v_nombreEvento = array_keys($v_eventosFinal); for($i=0; $i<$numEventos; $i++) { $nombreEvento = $v_nombreEvento[$i]; $script.=$this->_getAccion($nombreEvento,$v_eventosFinal[$nombreEvento]); } return($script); } //FIN getAcciones /** * escapeIgep: Funcion para sustituir carácteres especiales. * La funcion sustituye los carácteres problemáticos por una cadena * formada por un prefijo ($escIni), la raiz (letra de representación * del carácter) y un sufijo ($escFin) * Los carácteres a sustituir son: * \b Backspace raíz: b * \f Form feed raíz: f * \r Retorno de carro raíz: r * \n Linea Nueva raíz: n * \t Tabulador raíz: t * \' Comilla simple raíz: cs * \" Comilla doble raíz: cd * \\ Contrabarra raíz: cb * * La funcion antagónica es desescapeIGEP. * Existen funciones similares en javascript para poder enviar * o recibir cadenas problemáticas en entre los dos lenguajes * @access public * @param string $cadena String donde se realiza el reemplazo * @param string $escIni Prefijo de sustitución para el caracter * @param string $escFin Sufijo de sustitución para el caracter */ public static function escapeIGEP(&$cadena, $escIni="!_", $escFin="_!") { $cadena = str_replace("\b", $escIni.'b'.$escFin, $cadena); $cadena = str_replace("\f", $escIni.'f'.$escFin, $cadena); $cadena = str_replace("\r", $escIni.'r'.$escFin, $cadena); $cadena = str_replace("\n", $escIni.'n'.$escFin, $cadena); $cadena = str_replace('\t', $escIni.'t'.$escFin, $cadena); $cadena = str_replace("'", $escIni.'cs'.$escFin, $cadena); $cadena = str_replace("\"", $escIni.'cd'.$escFin, $cadena); $cadena = str_replace("\\", $escIni.'cb'.$escFin, $cadena); return($cadena); } //FIN escapeIGEP /** * desescapeIgep: Funcion para restablecer los carácteres especiales. * La funcion restablece los carácteres problemáticos de una cadena donde * se ha llevado acabo una sustituyción especial de escapeIgep() * Los carácteres remplazados son: * \b Backspace raíz: b * \f Form feed raíz: f * \r Retorno de carro raíz: r * \n Linea Nueva raíz: n * \t Tabulador raíz: t * \' Comilla simple raíz: cs * \" Comilla doble raíz: cd * \\ Contrabarra raíz: cb * * La funcion antagónica es escapeIGEP. * Existen funciones similares en javascript para poder enviar * o recibir cadenas problemáticas en entre los dos lenguajes * * @access public * @param string $cadena String donde se realiza el reemplazo * @param string $escIni Prefijo de sustitución para el caracter * @param string $escFin Sufijo de sustitución para el caracter */ public function desescapeIGEP(&$cadena, $escIni="!_", $escFin="_!") { $cadena = str_replace($escIni.'b'.$escFin, "\b", $cadena); $cadena = str_replace($escIni.'f'.$escFin, "\f", $cadena); $cadena = str_replace($escIni.'r'.$escFin, "\r", $cadena); $cadena = str_replace($escIni.'n'.$escFin, "\n", $cadena); $cadena = str_replace($escIni.'t'.$escFin, "\t", $cadena); $cadena = str_replace($escIni.'cs'.$escFin, "'", $cadena); $cadena = str_replace($escIni.'cd'.$escFin, "\"", $cadena); $cadena = str_replace($escIni.'cb'.$escFin, "\\", $cadena); return($cadena); } //FIN escapeIGEP /** * Método que genera el javascript para actualizar un componente CWCheckBox desde una acción de interfaz. * @param string idCheck nombre del check * @param boolean check Checked si o no * @param string hiddenName Nombre del hidden creado por el CWCheckBox * @param string value Valor del si o no * @return void */ public static function getJsSetCheck($idCheck, $check, $hiddenName, $value) { if ($check == '') $check = 0; $cadenaJs = <<comma_separated ".print_r($comma_separated,true).""); $cadenaJs = << 0) { $('#$campoDestino', window.parent.document).removeClass(); $('#$campoDestino', window.parent.document).addClass(newVal); } \n jquery; return $cadenaJs; } /** * IgepSmarty::getJsSetIcon * * @access * @param * @return */ public static function getJsSetIcon($campoDestino, $valor='') { $valueEsc = '"'.IgepSmarty::escapeIGEP($valor).'"'; $cadenaJs = << 0) { $('#icon_$campoDestino', window.parent.document).removeClass(); $('#icon_$campoDestino', window.parent.document).addClass(newVal); } \n jquery; return $cadenaJs; } /** * IgepSmarty::getJsSetCampoTexto * * @access * @param * @return */ public static function getJsSetCampoTexto($campoDestino, $nombreDestino, $campoOrigen, $valor='',$valueIcon='') { $valueEsc = '"'.IgepSmarty::escapeIGEP($valor).'"'; $valueIcon = '"'.IgepSmarty::escapeIGEP($valueIcon).'"'; $cadenaJs = << 0) { tipo = $('#icon_$campoDestino', window.parent.document).attr('data-gvhLabel'); if (tipo == 'icon') { $('#icon_$campoDestino', window.parent.document).removeClass(); $('#icon_$campoDestino', window.parent.document).addClass(newVal); } }*/ if ($('#$campoDestino', window.parent.document).length > 0) { if ($('textarea[id=$campoDestino]', window.parent.document).parent().parent().find(".jqte_editor").length > 0) { $('textarea[id=$campoDestino]', window.parent.document).parent().parent().find(".jqte_editor").html(newVal) } else { if ($('label[id=$campoDestino]', window.parent.document).length > 0) { $('#$campoDestino', window.parent.document).text(newVal); /*if ($('#icon_$campoDestino', window.parent.document).length > 0) { tipo = $('#icon_$campoDestino', window.parent.document).attr('data-gvhLabel'); if (tipo == 'label') { $('#icon_$campoDestino', window.parent.document).removeClass(); $('#icon_$campoDestino', window.parent.document).addClass(newVal2); } }*/ } else { $('#$campoDestino', window.parent.document).val(newVal); } } } \n jquery; $cadenaJs .= << 0) { $("#$campoDestino", window.parent.document).focus(); };\n jquery; /* else { $("input:text:visible:first", window.parent.document).focus(); //1er campo visible } */ return $cadenaJs; } /** * IgepSmarty::getJsSetSrcImg * * @access * @param * @return */ public static function getJsSetSrcImg($campoDestino, $nombreDestino, $campoOrigen, $valor='',$valueIcon='') { $valueEsc = '"'.IgepSmarty::escapeIGEP($valor).'"'; $valueIcon = '"'.IgepSmarty::escapeIGEP($valueIcon).'"'; $cadenaJs = << 0) { $('#$campoDestino', window.parent.document).attr('src',newVal); $('#bumpbox_$campoDestino', window.parent.document).attr('href',newVal); } \n jquery; return $cadenaJs; } /** * IgepSmarty::getJsMensaje Genera un mensaje HTML/Js a partir de un objeto mensaje de * REVIEW Queda pendiente de discutir con el equipo de negocio si se deja aquí, * o se lleva a otra clase intermedia (IgepPantalla... etc...) * * @access public * @param Object $objMensaje Objeto Mansaje de gvHidra * @return string Cadena JavaScrip HTML correspondiente al mensaje */ public static function getJsMensaje(&$objMensaje) { $cadenaJS =""; $codigo = $objMensaje->getCodigo(); $titulo = $objMensaje->getDescripcionCorta(); $titulo = IgepSmarty::escapeIGEP($titulo); $descripcion = $objMensaje->getDescripcionLarga(); $descripcion = IgepSmarty::escapeIGEP($descripcion); //var alertify = parent.alertify; $cadenaJS = <<getTipo()); switch ($tipo) { case 'error': $cadenaJS .= "parent.alertify.error(codigo,titulo,descripcion);\n"; break; case 'aviso': $cadenaJS .= "parent.alertify.notice(codigo,titulo,descripcion);\n"; break; case 'sugerencia': $cadenaJS .= "parent.alertify.suggest(codigo,titulo,descripcion);\n"; break; case 'alerta': $cadenaJS .= "parent.alertify.alert(codigo,titulo,descripcion);\n"; break; case 'confirm': $cadenaJS .= "parent.alertify.confirm(codigo,titulo,descripcion);\n"; break; case 'prompt': $cadenaJS .= "parent.alertify.prompt(codigo,titulo,descripcion);\n"; break; } return $cadenaJS; } /** * IgepSmarty::getJsChecksMarcados * * @access * @param * @return */ public static function getJsChecksMarcados($checksMarcados) { $js=''; foreach ($checksMarcados as $check) $js .= "$('#$check',window.parent.document).prop('checked',true);"; return $js; } /** * IgepSmarty::getJsNuevo * * @access * @param * @return */ public static function getJsNuevo($esMaestro,$esDetalle,$actuaSobre) { $panel = '-'; $patron = ''; if ($actuaSobre == 'ficha') $panel = 'edi'; if ($actuaSobre == 'tabla') $panel = 'lis'; if ($esDetalle!='') { $panel = $panel."Detalle"; $patron = 'detalle'; } $cadenaJs .= << 0) { idBtn = $('button[id^=bttlInsertar_]',window.parent.document).not('[data-gvhPatronPanel = detalle]').attr('id'); panel = $(padre).find('#'+idBtn).attr('data-gvhActSobre'); patron = $('button[id='+idBtn+']',window.parent.document).attr('data-gvhPatronPanel'); claseM = $(padre).find('#'+idBtn).attr('data-gvhClaseManejadora'); } else { if ($('#P_edi').length > 0) { idBtn = $('#P_edi').attr('id'); panel = 'edi'; patron = $('#P_edi').attr('data-gvhMD'); if (patron == '') patron = 'simple'; claseM = $('#P_edi').attr('data-gvhClaseManejadora'); } else if ($('#P_lis').length > 0) { idBtn = $('#P_lis').attr('id'); panel = 'lis'; patron = $('#P_lis').attr('data-gvhMD'); if (patron == '') patron = 'simple'; claseM = $('#P_lis').attr('data-gvhClaseManejadora'); } else if ($('#P_ediDetalle').length > 0) { idBtn = $('#P_ediDetalle').attr('id'); panel = 'ediDetalle'; patron = 'detalle'; claseM = $('#P_ediDetalle').attr('data-gvhClaseManejadora'); } else if ($('#P_lisDetalle').length > 0) { idBtn = $('#P_lisDetalle').attr('id'); panel = 'lisDetalle'; patron = 'detalle'; claseM = $('#P_lisDetalle').attr('data-gvhClaseManejadora'); } } } else { idBtn = 'bttlInsertar_$panel'; panel = '$panel'; patron = $('button[id='+idBtn+']',window.parent.document).attr('data-gvhPatronPanel'); claseM = $(padre).find('#'+idBtn).attr('data-gvhClaseManejadora'); } } $('#'+idBtn,window.parent.document).formOnInsert({ id: idBtn, panel: panel, action: 'nuevo', patron: patron, claseM: claseM }) js; return $cadenaJs; } /** * IgepSmarty::getJsSetBttlState Establece el estado del boton Tooltip situado en la barra superior del panel * correspondiente a activado (true) o desactivado (false) * @access public * @param String $panel Indica el panel sobre el que se sitúa el botonTooltip ||| * @param String $nameBttl Nombre del boton tooltip * @param Boolean $on True para activar, false para desahabilitar * @return String JavaScript HTML correspondiente al mensaje */ /* VERO: jQuery Faltará crear un nuevo método para habilitar/inhabilitar botones tooltip en el interior de la tabla/ficha * necesitará componer el nombre completo del botón ej. cam___nomCampo___panel_reg */ public static function getJsSetBttlState($idPanel, $nameBttl, $on=true) { $cadenaJs = << 0) { prefijo = $(padre).find('#$campoDestino').attr('id').substr(0,4); if ( (prefijo == 'cam_') || (prefijo == 'ccam')) { estado = "modificada"; } else if ((prefijo == 'ins_') || (prefijo == 'cins')) { estado = "insertada"; } if ('$nombreDestino' != '$campoOrigen') { window.parent.$('#$campoDestino').changeState({ id: $(padre).find('#$campoDestino').attr('id'), panel: $(padre).find('#$campoDestino').attr('data-gvhPanelOn'), estado: estado }) } } jquery; return $cadenaJs; } /** * IgepSmarty::getJsFijarFichaActiva * * @access * @param * @return */ public static function getJsFijarFichaActiva($nombrePanel,$claseManejadora,$fichaActiva) { $paginador = $nombrePanel.'_paginacion'; $cadenaJs = << 0) $('#$campoDestino',window.parent.document).attr('tabindex',$orden); jquery; return $cadenaJs; }//Fin getJsSetOrder /** * IgepSmarty::getJsSetVisible * * @access * @param * @return */ public static function getJsSetVisible($campoDestino, $valor='0') { $cadenaJs = ""; if (($valor == 1) || ($valor)) { $cadenaJs .= << 0) { if (!$(padre).find('#IGEPVisible$campoDestino').is(":visible")) { $(padre).find('#IGEPVisible$campoDestino').show(); } } if (($(padre).find('button[id=vs_$campoDestino]').length) > 0) { $(padre).find('button[id=vs_$campoDestino]').show(); } if (($(padre).find('button[id=$campoDestino]').length) > 0) { $(padre).find('button[id=$campoDestino]').show(); } jquery; } else { $cadenaJs .= << 0) { if ($(padre).find('#IGEPVisible$campoDestino').is(":visible")) { $(padre).find('#IGEPVisible$campoDestino').hide(); } } if (($(padre).find('button[id=$campoDestino]').length) > 0) { $(padre).find('button[id=$campoDestino]').hide(); } if (($(padre).find('button[id=vs_$campoDestino]').length) > 0) { $(padre).find('button[id=vs_$campoDestino]').hide(); } jquery; } return $cadenaJs; }//Fin getJsSetVisible /** * IgepSmarty::getJsSetEnable * * @access * @param * @return */ public static function getJsSetEnable($campoDestino, $valor='0', $tipoComp=null) { if (($valor == 1) || ($valor)) { $cadenaJs .= << 0) { $(padre).find("#$campoDestino").removeClass("disabled"); $('button[id=$campoDestino]',window.parent.document).prop('disabled',false); tabindex = $('button[id=$campoDestino]',window.parent.document).attr('tabindex')*(-1); $('button[id=$campoDestino]',window.parent.document).attr('tabindex',tabindex); } // RADIO BUTTON if ($('input[name=$campoDestino]',window.parent.document).is(':radio')) { // Cambio de estilos para el campo $('input[name=$campoDestino]',window.parent.document).each( function () { $(this).addClass('modify'); if ($(this).hasClass('noEdit')) { $(this).removeClass('noEdit'); $(this).addClass('edit'); tabindex = $(padre).find('#$campoDestino').attr('tabindex')*(-1); $(padre).find('#$campoDestino').attr('tabindex',tabindex); } // Activar el campo $(this).removeAttr('readonly'); $(this).prop('disabled',false); }); } else { fieldLength = $('#$campoDestino',window.parent.document).length; if (fieldLength > 0) { // CWLabel aLength = $(padre).find('a#$campoDestino').length; if (aLength > 0) { $(padre).find("#$campoDestino").attr("disabled",false); $(padre).find("#$campoDestino").removeClass("linkDisabled"); $(padre).find("#$campoDestino").addClass("link"); $(padre).find("#$campoDestino").css('cursor','hand'); $(padre).find("#$campoDestino").click(function() { return ($(padre).find("#$campoDestino").attr('disabled')) ? false : true; }); tabindex = $(padre).find('#$campoDestino').attr('tabindex')*(-1); $(padre).find('#$campoDestino').attr('tabindex',tabindex); } else { // Cambio de estilos para el campo $(padre).find('#$campoDestino').addClass('modify'); if ($(padre).find('#$campoDestino').hasClass('noEdit')) { $(padre).find('#$campoDestino').removeClass('noEdit'); $(padre).find('#$campoDestino').addClass('edit'); tabindex = $(padre).find('#$campoDestino').attr('tabindex')*(-1); $(padre).find('#$campoDestino').attr('tabindex',tabindex); } // Activar el campo $(padre).find('#$campoDestino').removeAttr('readonly'); $(padre).find('#$campoDestino').prop('disabled',false); // BOTONES CALENDARIO asociados al campo if ($(padre).find('#calDT_$campoDestino').length > 0) { $(padre).find('#calDT_$campoDestino').prop('disabled',false); tabindex = $(padre).find('#calDT_$campoDestino').attr('tabindex')*(-1); $(padre).find('#calDT_$campoDestino').attr('tabindex',tabindex); } if ($(padre).find('#calT_$campoDestino').length > 0) { $(padre).find('#calT_$campoDestino').prop('disabled',false); tabindex = $(padre).find('#calT_$campoDestino').attr('tabindex')*(-1); $(padre).find('#calT_$campoDestino').attr('tabindex',tabindex); } if ($(padre).find('#calD_$campoDestino').length > 0) { $(padre).find('#calD_$campoDestino').prop('disabled',false); tabindex = $(padre).find('#calD_$campoDestino').attr('tabindex')*(-1); $(padre).find('#calD_$campoDestino').attr('tabindex',tabindex); } if ($(padre).find('#vs_$campoDestino').length > 0) { $(padre).find('#vs_$campoDestino').prop('disabled',false); tabindex = $(padre).find('#vs_$campoDestino').attr('tabindex')*(-1); $(padre).find('#vs_$campoDestino').attr('tabindex',tabindex); } } } // EDITOR DE TEXTO ENRIQUECIDO editorLength = $(padre).find('#editor_$campoDestino').length; if (editorLength > 0) { $(padre).find('#editor_$campoDestino').attr('contenteditable','true'); tabindex = $(padre).find('#editor_$campoDestino').attr('tabindex')*(-1); $(padre).find('#editor_$campoDestino').attr('tabindex',tabindex); } // FILE UPLOAD fileLength = $(padre).find('#file_$campoDestino').length; if (fileLength > 0) { $(padre).find('#file_$campoDestino').removeClass('disabled'); tabindex = $(padre).find('#file_$campoDestino').attr('tabindex')*(-1); $(padre).find('#file_$campoDestino').attr('tabindex',tabindex); $(padre).find('#IgepVisible$campoDestino').removeClass('disabled'); } } jquery; } else { $cadenaJs .= << 0) { $(padre).find("#$campoDestino").addClass("disabled"); $('button[id=$campoDestino]',window.parent.document).prop('disabled',true); tabindex = $('button[id=$campoDestino]',window.parent.document).attr('tabindex')*(-1); $('button[id=$campoDestino]',window.parent.document).attr('tabindex',tabindex); } // RADIO BUTTON if ($('input[name=$campoDestino]',window.parent.document).is(':radio')) { // Cambio de estilos para el campo $('input[name=$campoDestino]',window.parent.document).each( function () { $(this).removeClass('modify'); if ($(this).hasClass('edit')) { $(this).removeClass('edit'); $(this).addClass('noEdit'); tabindex = $('input[name=$campoDestino]',window.parent.document).attr('tabindex')*(-1); $('input[name=$campoDestino]',window.parent.document).attr('tabindex',tabindex); } // Activar el campo $(this).prop('readonly',true); }); } else { fieldLength = $('#$campoDestino',window.parent.document).length; if (fieldLength > 0) { // Cambio de estilos para el campo $(padre).find('#$campoDestino').removeClass('modify'); if ($(padre).find('#$campoDestino').hasClass('edit')) { $(padre).find('#$campoDestino').removeClass('edit'); $(padre).find('#$campoDestino').addClass('noEdit'); tabindex = $('#$campoDestino',window.parent.document).attr('tabindex')*(-1); $('#$campoDestino',window.parent.document).attr('tabindex',tabindex); } // Activar el campo $(padre).find('#$campoDestino').prop('readonly',true); CWSource = $(padre).find('#$campoDestino').attr('data-gvhcwsource'); if ((CWSource == 'CWCheckBox') || (CWSource == 'CWLista')) $(padre).find('#$campoDestino').prop('disabled',true); // BOTONES CALENDARIO asociados al campo calDTLength = $(padre).find('#calDT_$campoDestino').length; if (calDTLength > 0) { $(padre).find('#calDT_$campoDestino').prop('disabled',true); tabindex = $(padre).find('#calDT_$campoDestino').attr('tabindex')*(-1); $(padre).find('#calDT_$campoDestino').attr('tabindex',tabindex); } calTLength = $(padre).find('#calT_$campoDestino').length; if (calTLength > 0) { $(padre).find('#calT_$campoDestino').prop('disabled',true); tabindex = $(padre).find('#calT_$campoDestino').attr('tabindex')*(-1); $(padre).find('#calT_$campoDestino').attr('tabindex',tabindex); } calDLength = $(padre).find('#calD_$campoDestino').length; if (calDLength > 0) { $(padre).find('#calD_$campoDestino').prop('disabled',true); tabindex = $(padre).find('#calD_$campoDestino').attr('tabindex')*(-1); $(padre).find('#calD_$campoDestino').attr('tabindex',tabindex); } vsLength = $(padre).find('#vs_$campoDestino').length; if (vsLength > 0) { $(padre).find('#vs_$campoDestino').prop('disabled',true); tabindex = $(padre).find('#vs_$campoDestino').attr('tabindex')*(-1); $(padre).find('#vs_$campoDestino').attr('tabindex',tabindex); } // CWLabel if ($(padre).find('a#$campoDestino').length > 0) { $(padre).find("#$campoDestino").attr("disabled",true); $(padre).find("#$campoDestino").addClass("linkDisabled"); $(padre).find("#$campoDestino").removeClass("link"); $(padre).find("#$campoDestino").css('cursor','default'); $(padre).find("#$campoDestino").click(function() { return ($(padre).find("#$campoDestino").attr('disabled')) ? false : true; }); } } // EDITOR DE TEXTO ENRIQUECIDO if ($(padre).find('#editor_$campoDestino').length > 0) { $(padre).find('#editor_$campoDestino').attr('contenteditable','false'); tabindex = $(padre).find('#editor_$campoDestino').attr('tabindex')*(-1); $(padre).find('#editor_$campoDestino').attr('tabindex',tabindex); } // FILE UPLOAD if ($(padre).find('#file_$campoDestino').length > 0) { $(padre).find('#file_$campoDestino').addClass('disabled'); $(padre).find('#IgepVisible$campoDestino').addClass('disabled'); tabindex = $(padre).find('#IgepVisible$campoDestino').attr('tabindex')*(-1); $(padre).find('#IgepVisible$campoDestino').attr('tabindex',tabindex); } $(padre).find('#vs_$campoDestino').prop('disabled',true); $(padre).find('#vs_$campoDestino').addClass('disabled'); } jquery; } return $cadenaJs; }//Fin getJsSetEnable /** * IgepSmarty::getJsOpenModalWindow * * @access * @param * @return */ public static function getJsOpenModalWindow($path,$returnPath,$nomForm,$width,$height,$claseM,$strict) { $strictJS = 'true'; if ($strict == false) $strictJS = 'false'; $cadenaJs = << $value) { if (is_array($value)) { $result[$key] = self::utf8_encode_recursive($value); } else if (is_string($value)) { $result[$key] = utf8_encode($value); } else { $result[$key] = $value; } } return $result; } //A partir de un resultado genera el JavaScript necesario para que la lista se recargue por el oculto public static function getJsLista($campoDestinoJs, $resultado) { $jsAddOption = ''; if (count($resultado['lista']) == 0) { $jsAddOption .= <<', { value: '', text: '', selected: 1 }));\n jsAddOption; } else { $jsAddOption .= <<', { value: '$valor', text: desescapeIGEPjs('$descripcion'), class: 'text edit' }));\n jsAddOption; if (is_array($resultado['seleccionado'])) { // Lista múltiple for($i=0;$i option[value="$valor"]').attr('selected', 'selected');\n jsAddOption; } } } else { if ($resultado['seleccionado'] == $valor) { $jsAddOption .= << option[value="$valor"]').attr('selected', 'selected');\n $(padre).find('#$campoDestinoJs').val("$valor").trigger("change"); $(padre).find('#l$campoDestinoJs').val(""); jsAddOption; } } } } $jsAddOption .= << option[value="$valor"]').trigger('change');\n $(padre).find('#$campoDestinoJs > option[value="$valor"]').filter('[data-gvhActualizaA]').on('change',window.parent.$('#$campoDestinoJs').changeField({ id: '$campoDestinoJs', type: 'select' }));\n*/ jsAddOption; //$jsAddOption .= ""; return $jsAddOption; }//Fin de getJsLista }//Fin Class IgepSmarty ?>