Beispiel #1
0
 function conf__arbol(toba_ei_arbol $arbol)
 {
     //-- Se obtienen los nodos que formarán parte del arbol
     require_once 'contrib/catalogo_items_menu/toba_catalogo_items_menu.php';
     $catalogo = new toba_catalogo_items_menu();
     $raiz = '1000206';
     $catalogo->cargar(array(), $raiz);
     $nodos = $catalogo->get_hijos($raiz);
     //-- Se configura el arbol
     $arbol->set_mostrar_filtro_rapido(true);
     $arbol->set_mostrar_ayuda(false);
     $arbol->set_nivel_apertura(0);
     $arbol->set_datos($nodos);
 }
 function extender_objeto_js()
 {
     parent::extender_objeto_js();
     $id_js = $this->objeto_js;
     $id_gral = $this->_submit;
     $img_acceso = toba_recurso::imagen_toba('aplicar.png', false);
     $img_sin_acceso = toba_recurso::imagen_toba('prohibido.png', false);
     //Busco el estado de cada uno de los hijos involucrados en el pedido de pagina
     $estado = array('activos' => array(), 'inactivos' => array());
     if (isset($this->_nodos_inicial) && !empty($this->_nodos_inicial)) {
         $raiz = $this->_nodos_inicial[0];
         if ($raiz->tiene_hijos_cargados()) {
             foreach ($raiz->get_hijos() as $nodo) {
                 $aux = $nodo->recuperar_estado_recursivo();
                 $estado['activos'] = array_merge($estado['activos'], $aux['activos']);
                 $estado['inactivos'] = array_merge($estado['inactivos'], $aux['inactivos']);
             }
         }
     }
     //Genero un par de arreglos que van a servir como lista en js
     $ids_activos = !empty($estado['activos']) ? array_fill_keys($estado['activos'], true) : array();
     $ids_desactivados = !empty($estado['inactivos']) ? array_fill_keys($estado['inactivos'], true) : array();
     echo ' var ' . $id_js . '_items_activos = ' . toba_js::arreglo($ids_activos, true) . "; \n";
     echo ' var ' . $id_js . '_items_desactivados = ' . toba_js::arreglo($ids_desactivados, true) . "; \n";
     echo "\t\t\t\n\t\t\t{$id_js}.cambiar_acceso = function(id_input)\n\t\t\t{\n\t\t\t\tvar id_elemento = '{$id_gral}' + '_' + id_input; \t\t\t\t\t\n\t\t\t\tif (isset({$this->objeto_js}_items_activos[id_input])) {\t\t\t//Esta visible, hay que ocultarlo\t\t\t\t\t\n\t\t\t\t\tdelete({$this->objeto_js}_items_activos[id_input]);\n\t\t\t\t\t{$this->objeto_js}_items_desactivados[id_input] = true;\n\t\t\t\t\t\$\$(id_elemento + '_acceso_img').src = '{$img_sin_acceso}';\t\t\t\t\t\t\n\t\t\t\t} else if (isset({$this->objeto_js}_items_desactivados[id_input])) {\t\t//Esta oculto, hay que mostrarlo\t\t\t\t\t\n\t\t\t\t\tdelete({$this->objeto_js}_items_desactivados[id_input]);\n\t\t\t\t\t{$this->objeto_js}_items_activos[id_input] = true;\n\t\t\t\t\t\$\$(id_elemento + '_acceso_img').src = '{$img_acceso}';\t\t\t\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t{$id_js}.marcar = function(id_input, valor)\n\t\t\t{\t\t\t\t\n\t\t\t\tvar id_final = '{$id_gral}' + '_' + id_input + '_carpeta';\n\t\t\t\tvar padre = \$\$(id_final).parentNode.parentNode;\t\t\n\t\t\t\tvar nodo = this.buscar_primer_marca(padre, 'UL');\n\t\t\t\tif (nodo) {\t\t\n\t\t\t\t\tfor (var i=0; i < nodo.childNodes.length; i++) {\n\t\t\t\t\t\tvar hijo = nodo.childNodes[i];\n\t\t\t\t\t\tif (hijo.tagName && (hijo.tagName == 'LI')) {\n\t\t\t\t\t\t\tif (! this.buscar_primer_marca(hijo, 'UL')) {\n\t\t\t\t\t\t\t\tthis.cambiar_estado_acceso(hijo, valor);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.marcar_recursivo(hijo, valor);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t\n\t\t\t{$id_js}.marcar_recursivo = function(carpeta, valor) \n\t\t\t{\n\t\t\t\tvar marca_carpeta = this.buscar_primer_marca(carpeta, 'SPAN');\n\t\t\t\tif (marca_carpeta) {\n\t\t\t\t\tfor (var i=0; i < marca_carpeta.childNodes.length; i++) {\n\t\t\t\t\t\tvar hc = marca_carpeta.childNodes[i];\n\t\t\t\t\t\tif (hc.tagName && (hc.tagName == 'INPUT')) {\n\t\t\t\t\t\t\t\$\$(hc.id).value = valor;\n\t\t\t\t\t\t\t\$\$(hc.id).checked = (valor == 0) ? true : false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar nodo = this.buscar_primer_marca(carpeta, 'UL');\t\t\n\t\t\t\tfor (var i=0; i < nodo.childNodes.length; i++) {\n\t\t\t\t\tvar hijo = nodo.childNodes[i];\n\t\t\t\t\tif (hijo.tagName && (hijo.tagName == 'LI')) {\n\t\t\t\t\t\tif (!this.buscar_primer_marca(hijo, 'UL')) {\n\t\t\t\t\t\t\tthis.cambiar_estado_acceso(hijo, valor);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.marcar_recursivo(hijo, valor);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t{$id_js}.cambiar_estado_acceso = function(nodo, valor)\n\t\t\t{\n\t\t\t\tfor (var i=0; i < nodo.childNodes.length; i++) {\n\t\t\t\t\tif (nodo.childNodes[i].tagName == 'SPAN') {\n\t\t\t\t\t\tvar hijo = nodo.childNodes[i];\n\t\t\t\t\t\tfor (var j=0; j < hijo.childNodes.length; j++) {\n\t\t\t\t\t\t\tif (hijo.childNodes[j].tagName == 'IMG') {\t\n\t\t\t\t\t\t\t\thijo.childNodes[j].onclick();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t{$id_js}.buscar_primer_marca = function (nodo, marca) {\n\t\t\t\tfor (var i=0; i < nodo.childNodes.length; i++) {\n\t\t\t\t\tif (nodo.childNodes[i].tagName == marca) {\n\t\t\t\t\t\treturn nodo.childNodes[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t\n\t\t\t{$id_js}.submit = function()\n\t\t\t{\t\t\t\t\n\t\t\t\tvar padre_esta_en_proceso = this.controlador && !this.controlador.en_submit();\n\t\t\t\tif (padre_esta_en_proceso) {\n\t\t\t\t\treturn this.controlador.submit();\n\t\t\t\t}\n\t\t\t\tif (this._evento) {\n\t\t\t\t\t//Si es la selección de una semana marco la semana\n\t\t\t\t\tif (this._evento.id == 'ver_propiedades') {\n\t\t\t\t\t\tdocument.getElementById(this._input_submit + '__seleccion').value = this._evento.parametros;\n\t\t\t\t\t}\n\t\t\t\t\t//Marco la ejecucion del evento para que la clase PHP lo reconozca\n\t\t\t\t\tdocument.getElementById(this._input_submit).value = this._evento.id;\t\t\t\n\t\t\t\t}\n\t\t\t\tdocument.getElementById(this._input_submit + '__apertura_datos').value = this.datos_apertura();\t\t\t\t\n\n\t\t\t\t//Agrego como lista los nodos seleccionados y deseleccionados\n\t\t\t\tvar claves = [];\n\t\t\t\tfor (var i in {$id_js}_items_activos) {\n\t\t\t\t\tclaves.push(i);\n\t\t\t\t}\n\t\t\t\tdocument.getElementById('{$id_gral}__nodos_seleccionados').value = claves.join(toba_hilo_separador_interno);\n\n\t\t\t\tvar claves = [];\t\t\t\t\n\t\t\t\tfor (var i in {$id_js}_items_desactivados) {\n\t\t\t\t\tclaves.push(i);\n\t\t\t\t}\n\t\t\t\tdocument.getElementById('{$id_gral}__nodos_deseleccionados').value = claves.join(toba_hilo_separador_interno);\t\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t";
 }
 function extender_objeto_js()
 {
     parent::extender_objeto_js();
     $img_oculto = toba_recurso::imagen_toba('no-visible.png', false);
     $img_visible = toba_recurso::imagen_toba('visible.png', false);
     $img_solo_lectura = toba_recurso::imagen_toba('no-editable.gif', false);
     $img_editable = toba_recurso::imagen_toba('editable.gif', false);
     echo "var {$this->objeto_js}_nodo_rf_activas = []; \n";
     echo "var {$this->objeto_js}_nodo_rf_inactivas = [];\n";
     echo "\t\t\t\n\t\t\t{$this->objeto_js}.agregar_activos = function(nuevos)\n\t\t\t{\n\t\t\t\tfor (var key in nuevos) {\n\t\t\t\t\t{$this->objeto_js}_nodo_rf_activas[key] = nuevos[key];\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t{$this->objeto_js}.agregar_inactivos = function(nuevos)\n\t\t\t{\n\t\t\t\tfor (var key in nuevos) {\n\t\t\t\t\t{$this->objeto_js}_nodo_rf_inactivas[key] = nuevos[key];\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\n\t\t\t{$this->objeto_js}.cambiar_oculto = function(id_nodo)\n\t\t\t{\n\t\t\t\tvar activos = {$this->objeto_js}_nodo_rf_activas;\n\t\t\t\tvar inactivos = {$this->objeto_js}_nodo_rf_inactivas;\n\t\t\t\tvar id_input = '{$this->_submit}_' + id_nodo + '_oculto_img';\n\n\t\t\t\tif (isset(activos[id_nodo])) {\t\t\t\t\t\t\t//Esta visible, hay que ocultarlo\n\t\t\t\t\tdelete( {$this->objeto_js}_nodo_rf_activas[id_nodo]);\n\t\t\t\t\t {$this->objeto_js}_nodo_rf_inactivas[id_nodo] = true;\t\t\t\t\t\t\t\t\n\t\t\t\t\t\$\$(id_input).src = '{$img_oculto}';\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t} else if (isset(inactivos[id_nodo])) {\t\t\t\t\t\t//Esta oculto, hay que mostrarlo\n\t\t\t\t\tdelete( {$this->objeto_js}_nodo_rf_inactivas[id_nodo]);\n\t\t\t\t\t {$this->objeto_js}_nodo_rf_activas[id_nodo] = true;\t\t\t\t\t\t\t\n\t\t\t\t\t\$\$(id_input).src = '{$img_visible}';\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t{$this->objeto_js}.cambiar_editable = function(id_input) \n\t\t\t{\n\t\t\t\tvar valor_actual = \$\$(id_input).value;\n\t\t\t\tif (valor_actual == 1) {\t\t\t\t\t//Esta oculto, hay que mostrarlo\t\t\t\t\t\n\t\t\t\t\t\$\$(id_input + '_img').src = '{$img_editable}';\n\t\t\t\t\t\$\$(id_input).value = 0;\n\t\t\t\t} else {\t\t\t\t\t\t\t\t//Esta visible, hay que ocultarlo\t\t\t\t\t\n\t\t\t\t\t\$\$(id_input + '_img').src = '{$img_solo_lectura}';\n\t\t\t\t\t\$\$(id_input).value = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\n\t\t\t{$this->objeto_js}.submit = function()\n\t\t\t{\t\t\t\n\t\t\t\tvar padre_esta_en_proceso = this.controlador && !this.controlador.en_submit();\n\t\t\t\tif (padre_esta_en_proceso) {\n\t\t\t\t\treturn this.controlador.submit();\n\t\t\t\t}\n\t\t\t\tif (this._evento) {\n\t\t\t\t\t//Si es la selección de una semana marco la semana\n\t\t\t\t\tif (this._evento.id == 'ver_propiedades') {\n\t\t\t\t\t\tdocument.getElementById(this._input_submit + '__seleccion').value = this._evento.parametros;\n\t\t\t\t\t}\n\t\t\t\t\t//Marco la ejecucion del evento para que la clase PHP lo reconozca\n\t\t\t\t\tdocument.getElementById(this._input_submit).value = this._evento.id;\t\t\t\n\t\t\t\t}\n\t\t\t\tdocument.getElementById(this._input_submit + '__apertura_datos').value = this.datos_apertura();\t\t\t\t\n\n\t\t\t\t//Agrego como lista los nodos seleccionados y deseleccionados\n\t\t\t\tvar claves = [];\n\t\t\t\tfor (var i in {$this->objeto_js}_nodo_rf_activas) {\n\t\t\t\t\tclaves.push(i);\n\t\t\t\t}\n\t\t\t\tdocument.getElementById('{$this->_submit}__nodos_visibles').value = claves.join(toba_hilo_separador_interno);\n\n\t\t\t\tvar claves = [];\t\t\t\t\n\t\t\t\tfor (var i in {$this->objeto_js}_nodo_rf_inactivas) {\n\t\t\t\t\tclaves.push(i);\n\t\t\t\t}\n\t\t\t\tdocument.getElementById('{$this->_submit}__nodos_invisibles').value = claves.join(toba_hilo_separador_interno);\n\t\t\t}\n\t\t\t\n\n\t\t\t{$this->objeto_js}.retorno_expansion = function(resultado)\n\t\t\t{\n\t\t\t\tvar partes = toba.analizar_respuesta_servicio(resultado);\t\t\t\t\t\t\t//Tengo que separar el HTML del JS aca\n\t\t\t\tif (partes === false) {\n\t\t\t\t\tnotificacion.agregar('Se produjo un error de comunicación, intente reiniciar la operación');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvar nodo = resultado.argument;\t\t\t\t//Busco el lugar donde insertar la respuesta\n\t\t\t\tvar ul = this.buscar_primer_ul(nodo.parentNode);\t\t\n\t\t\t\tif (ul) {\n\t\t\t\t\tif (partes[1] != '') {ejecutar_scripts(partes[1]); }\n\t\t\t\t\tul.innerHTML = partes[0];\t\t\t\t\t\n\t\t\t\t\tthis.toggle_expansion(nodo,ul);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t};";
     if (!empty($this->_nodos_inicial)) {
         echo $this->actualizar_estado_js($this->_nodos_inicial[0]);
     }
 }
Beispiel #4
0
 function conf__arbol(toba_ei_arbol $componente)
 {
     $catalogo = new catalogo_general();
     $componente->set_datos($catalogo->get_hijos());
 }