* @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 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("\n", $escIni.'n'.$escFin, $cadena); $cadena = str_replace("'", $escIni.'cs'.$escFin, $cadena); $cadena = str_replace("\"", $escIni.'cd'.$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.'n'.$escFin, "\n", $cadena); $cadena = str_replace($escIni.'cs'.$escFin, "'", $cadena); $cadena = str_replace($escIni.'cd'.$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 string cadena de Javascript */ public static function getJsSetCheck($idCheck, $check, $hiddenName, $value) { if ($check == '') $check = 0; $cadenaJs = << 0) { campoDestino.removeClass(); campoDestino.addClass(newVal); } \n jquery; return $cadenaJs; } /** * IgepSmarty::getJsSetIcon * * @access * @param * @return */ public static function getJsSetIcon($campoDestino, $valor='') { $valueEsc = '"'.IgepSmarty::escapeIGEP($valor).'"'; $cadenaJs = << 0) { campoDestino.removeClass(); campoDestino.addClass(newVal); } \n jquery; return $cadenaJs; } /** * IgepSmarty::getJsSetFilterRules * * @access * @param * @return */ public static function getJsSetFilterRules($campoDestino, $rule) { IgepDebug::setDebug(DEBUG_USER, "
getJsSetFilterRules ".print_r($rule,true)."
"); $cadenaJs = << 0) { if ($('textarea[id=$campoDestino]').parent().parent().find(".jqte_editor").length > 0) { $('textarea[id=$campoDestino]').parent().parent().find(".jqte_editor").html(newVal); } else { if ($('label[id=$campoDestino]').length > 0) { $('label[id=$campoDestino]').text(newVal); } else { $('#$campoDestino').val(newVal); } } if ($('#$campoDestino').attr('readonly')) { // El campo está deshabilitado por lo que hay que lanzar el icono de modificación panel = $('#$campoDestino').attr('data-gvhPanelOn'); if (panel != 'fil') { $('#$campoDestino').iconUpdate({ id: '$campoDestino', panel: panel }); } } } \n jquery; $cadenaJs .= << 0) { $("#$campoDestino").focus(); };\n jquery; 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').attr('src',newVal); $('#bumpbox_$campoDestino').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; $tipo = strtolower($objMensaje->getTipo()); $cadenaJS = << 0) { idBtn = $('button[id^=bttlInsertar_]').filter('[data-gvhWindow='+ambito+']').not('[data-gvhPatronPanel = detalle]').attr('id'); btn = $('button[id^=bttlInsertar_]').filter('[data-gvhWindow='+ambito+']').not('[data-gvhPatronPanel = detalle]'); panel = btn.attr('data-gvhActSobre'); patron = btn.attr('data-gvhPatronPanel'); claseM = btn.attr('data-gvhClaseManejadora'); } else { panelEdiLength = $('#P_edi').filter('[data-gvhWindow='+ambito+']').length; panelEdiDetalleLength = $('#P_ediDetalle').filter('[data-gvhWindow='+ambito+']').length; panelLisLength = $('#P_lis').filter('[data-gvhWindow='+ambito+']').length; panelLisDetalleLength = $('#P_lisDetalle').filter('[data-gvhWindow='+ambito+']').length; if (panelEdiLength > 0) { idBtn = $('#P_edi').filter('[data-gvhWindow='+ambito+']').attr('id'); panel = 'edi'; patron = $('#P_edi').filter('[data-gvhWindow='+ambito+']').attr('data-gvhMD'); if (patron == '') patron = 'simple'; claseM = $('#P_edi').filter('[data-gvhWindow='+ambito+']').attr('data-gvhClaseManejadora'); } else if (panelLisLength > 0) { idBtn = $('#P_lis').filter('[data-gvhWindow='+ambito+']').attr('id'); panel = 'lis'; patron = $('#P_lis').filter('[data-gvhWindow='+ambito+']').attr('data-gvhMD'); if (patron == '') patron = 'simple'; claseM = $('#P_lis').filter('[data-gvhWindow='+ambito+']').attr('data-gvhClaseManejadora'); } else if (panelEdiDetalleLength > 0) { idBtn = $('#P_ediDetalle[data-gvhWindow='+ambito+']').attr('id'); panel = 'ediDetalle'; patron = 'detalle'; claseM = $('#P_ediDetalle').filter('[data-gvhWindow='+ambito+']').attr('data-gvhClaseManejadora'); } else if (panelLisDetalleLength > 0) { idBtn = $('#P_lisDetalle[data-gvhWindow='+ambito+']').attr('id'); panel = 'lisDetalle'; patron = 'detalle'; claseM = $('#P_lisDetalle').filter('[data-gvhWindow='+ambito+']').attr('data-gvhClaseManejadora'); } } } else { idBtn = 'bttlInsertar_$panel'; panel = '$panel'; patron = $('#'+idBtn).filter('[data-gvhWindow='+ambito+']').attr('data-gvhPatronPanel'); claseM = $('#'+idBtn).filter('[data-gvhWindow='+ambito+']').attr('data-gvhClaseManejadora'); } } if ((claseM == '') || (claseM === undefined)) claseM = '$claseManejadora'; if (idBtn != '') { $('#'+idBtn).filter('[data-gvhWindow='+ambito+']').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 = $('#$campoDestino').attr('id').substr(0,4); if ( (prefijo == 'cam_') || (prefijo == 'ccam')) { estado = "modificada"; } else if ((prefijo == 'ins_') || (prefijo == 'cins')) { estado = "insertada"; } if ('$nombreDestino' != '$campoOrigen') { $('#$campoDestino').changeField({ id: $('#$campoDestino').attr('id'), panel: $('#$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').attr('tabindex',$orden); jquery; return $cadenaJs; }//Fin getJsSetOrder /** * IgepSmarty::getJsSetVisible * * @access * @param * @return */ public static function getJsSetVisible($campoDestino, $valor='0') { $cadenaJs = << 0) { visible = $('#IGEPVisible$campoDestino').is(":visible"); if (visible == false) { $('#IGEPVisible$campoDestino').show(); } } if (buttonVSLength > 0) { $('#vs_$campoDestino').show(); } if (buttonLength > 0) { $('#$campoDestino').show(); } jquery; } else { $cadenaJs .= << 0) { visible = $('#IGEPVisible$campoDestino').is(":visible"); if (visible == true) { $('#IGEPVisible$campoDestino').hide(); } } if (buttonLength > 0) { $('#$campoDestino').hide(); } if (buttonVSLength > 0) { $('#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) { // Cambio de estilos para el campo $('input[name=$campoDestino]').map( function () { campoDestino.addClass('modify'); if (campoDestino.hasClass('noEdit')) { campoDestino.removeClass('noEdit'); campoDestino.addClass('edit'); tabindex = campoDestino.attr('tabindex')*(-1); campoDestino.attr('tabindex',tabindex); } // Activar el campo campoDestino.removeAttr('readonly'); campoDestino.prop('disabled',false); }); } else { // BOTÓN TOOLTIP var button = $('button[id=$campoDestino]'); var buttonLength = button.length; if (buttonLength > 0) { button.prop('disabled',false); button.removeClass("disabled"); tabindex = button.attr('tabindex')*(-1); button.attr('tabindex',tabindex); } else { var field = $('#$campoDestino'); var fieldLength = field.length; if (fieldLength > 0) { // CWLabel aLength = $('a#$campoDestino').length; if (aLength > 0) { field.attr("disabled",false); field.removeClass("linkDisabled"); field.addClass("link"); field.css('cursor','hand'); field.click(function() { return (field.attr('disabled')) ? false : true; }); tabindex = field.attr('tabindex')*(-1); field.attr('tabindex',tabindex); } else { // Cambio de estilos para el campo field.addClass('modify'); if (field.hasClass('noEdit')) { field.removeClass('noEdit'); field.addClass('edit'); tabindex = field.attr('tabindex')*(-1); field.attr('tabindex',tabindex); } // Activar el campo field.removeAttr('readonly'); field.prop('disabled',false); // BOTONES CALENDARIO asociados al campo var calDateTime = $('#calDT_$campoDestino'); var calDTLength = calDateTime.length; if (calDTLength > 0) { calDateTime.prop('disabled',false); tabindex = calDateTime.attr('tabindex')*(-1); calDateTime.attr('tabindex',tabindex); } var calTime = $('#calT_$campoDestino'); var calTLength = calTime.length; if (calTLength > 0) { calTime.prop('disabled',false); tabindex = calTime.attr('tabindex')*(-1); calTime.attr('tabindex',tabindex); } var calDate = $('#calD_$campoDestino'); var calDLength = calDate.length; if ( calDLength > 0) { calDate.prop('disabled',false); tabindex = calDate.attr('tabindex')*(-1); calDate.attr('tabindex',tabindex); } var vs = $('#vs_$campoDestino'); var vsLength = vs.length; if (vsLength > 0) { vs.prop('disabled',false); tabindex = vs.attr('tabindex')*(-1); vs.attr('tabindex',tabindex); } } } } // EDITOR DE TEXTO ENRIQUECIDO var editor = $('#editor_$campoDestino'); var editorLength = editor.length; if (editorLength > 0) { editor.attr('contenteditable','true'); tabindex = editor.attr('tabindex')*(-1); editor.attr('tabindex',tabindex); } // FILE UPLOAD var file = $('#file_$campoDestino'); var fileLength = file.length; if (fileLength > 0) { file.removeClass('disabled'); tabindex = file.attr('tabindex')*(-1); file.attr('tabindex',tabindex); $('#IgepVisible$campoDestino').removeClass('disabled'); } } jquery; } else { $cadenaJs .= << 0) { // Cambio de estilos para el campo $('input[name=$campoDestino]').map( function () { campoDestino.removeClass('modify'); if (campoDestino.hasClass('edit')) { campoDestino.removeClass('edit'); campoDestino.addClass('noEdit'); tabindex = campoDestino.attr('tabindex')*(-1); campoDestino.attr('tabindex',tabindex); } // Desactivar el campo campoDestino.prop('readonly',true); campoDestino.prop('disabled',true); }); } else { // BOTÓN TOOLTIP var button = $('button[id=$campoDestino]'); var buttonLength = button.length; if (buttonLength > 0) { button.addClass('disabled'); button.prop('disabled',true); tabindex = button.attr('tabindex')*(-1); button.attr('tabindex',tabindex); } else { var field = $('#$campoDestino'); var fieldLength = field.length; if ( fieldLength > 0) { // Cambio de estilos para el campo field.removeClass('modify'); if (field.hasClass('edit')) { field.removeClass('edit'); field.addClass('noEdit'); tabindex = field.attr('tabindex')*(-1); field.attr('tabindex',tabindex); } // Desactivar el campo field.prop('readonly',true); CWSource = field.attr('data-gvhcwsource'); if (CWSource == 'CWCheckBox') field.prop('disabled',true); // BOTONES CALENDARIO asociados al campo var calDateTime = $('#calDT_$campoDestino'); var calDTLength = calDateTime.length; if (calDTLength > 0) { calDateTime.prop('disabled',true); tabindex = calDateTime.attr('tabindex')*(-1); calDateTime.attr('tabindex',tabindex); } var calTime = $('#calT_$campoDestino'); var calTLength = calTime.length; if (calTLength > 0) { calTime.prop('disabled',true); tabindex = calTime.attr('tabindex')*(-1); calTime.attr('tabindex',tabindex); } var calDate = $('#calD_$campoDestino'); var calDLength = calDate.length; if (calDLength > 0) { calDate.prop('disabled',true); tabindex = calDate.attr('tabindex')*(-1); calDate.attr('tabindex',tabindex); } var vs = $('#vs_$campoDestino'); var vsLength = vs.length; if (vsLength > 0) { vs.prop('disabled',true); tabindex = vs.attr('tabindex')*(-1); vs.attr('tabindex',tabindex); } // CWLabel aLength = $('a#$campoDestino').length; if (aLength > 0) { field.attr("disabled",true); field.addClass("linkDisabled"); field.removeClass("link"); field.css('cursor','default'); field.click(function() { return (field.attr('disabled')) ? false : true; }); tabindex = field.attr('tabindex')*(-1); field.attr('tabindex',tabindex); } } } // EDITOR DE TEXTO ENRIQUECIDO var editor = $('#editor_$campoDestino'); var editorLength = editor.length; if (editorLength> 0) { editor.attr('contenteditable','false'); tabindex = editor.attr('tabindex')*(-1); editor.attr('tabindex',tabindex); } // FILE UPLOAD var file = $('#file_$campoDestino'); var fileUpLength = file.length; if (fileUpLength > 0) { file.addClass('disabled'); $('#IgepVisible$campoDestino').addClass('disabled'); tabindex = file.attr('tabindex')*(-1); file.attr('tabindex',tabindex); } } jquery; } return $cadenaJs; }//Fin getJsSetEnable /** * IgepSmarty::getJsOpenModalWindow * * @access * @param * @return */ public static function getJsOpenModalWindow($path,$returnPath,$nomForm,$width,$height,$strict) { $strictJS = 'true'; if ($strict == false) $strictJS = 'false'; $cadenaJs = << $v) { $resultado[$k] = self::utf8ize($v); } } elseif(is_object($vArr)) { $resultado = clone $vArr; foreach ($vArr as $k => $v) { $resultado->$k = self::utf8ize($v); } } else { $resultado = gvHidraUTF8::toUTF8($vArr); } return $resultado; }//Fin utf8ize //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 = "console.log('IgepSmarty.php - getJsLista()');\n"; $jsAddOption .= <<', { value: '', text: '', selected: 1 }));\n jsAddOption; } else { /* $jsAddOption .= <<";\n detachSelect.append(optionSelect);\n campoDestino.val("$valor").trigger("change");\n jsAddOption; } else { $jsAddOption .= <<";\n detachSelect.append(optionSelect);\n jsAddOption; } } $jsAddOption .= <<', { value: '$valor', text: desescapeIGEPjs('$descripcion'), class: 'text edit' }));\n jsAddOption; if ($resultado['seleccionado'] == $valor) { $jsAddOption .= << option[value="$valor"]').attr('selected', 'selected');\n $('#$campoDestinoJs').val("$valor").trigger("change"); jsAddOption; } } $jsAddOption .= << option[value="$valor"]').trigger('change');\n //alert('$campoDestinoJs'); $('#$campoDestinoJs > option[value="$valor"]').filter('[data-gvhActualizaA]').on('change',campoDestino.changeStatePanel({ id: '$campoDestinoJs', panel: campoDestino.attr('data-gvhPanelOn') }));\n } jsAddOption; } //$jsAddOption .= ""; return $jsAddOption; }//Fin de getJsLista }//Fin Class IgepSmarty ?>