Example #1
0
    function cargar_info($editable = null)
    {
        //Carga el EDITABLE que se va a manejar dentro de la ZONA
        $sql = '	SELECT	o.*,
							o.subclase_archivo as 			archivo,
							c.icono as						clase_icono,
							c.editor_proyecto as			clase_editor_proyecto,
							c.editor_item as				clase_editor,
							c.instanciador_proyecto as		clase_instanciador_proyecto,
							c.instanciador_item as			clase_instanciador,
							c.archivo as					clase_archivo,
							c.plan_dump_objeto as 			clase_plan_sql,
							c.vinculos as					clase_vinculos
					FROM	apex_objeto o,
							apex_clase c
					WHERE	o.clase = c.clase
					AND		o.proyecto=' . quote($this->editable_id[0]) . '
					AND		o.objeto=' . quote($this->editable_id[1]);
        $rs = consultar_fuente($sql);
        if (empty($rs)) {
            echo ei_mensaje('ZONA-OBJETO: El editable solicitado no existe', 'info');
            return false;
        } else {
            $this->editable_info = current($rs);
            $this->editable_id = array($this->editable_id[0], $this->editable_id[1]);
            $this->editable_cargado = true;
            return true;
        }
    }
Example #2
0
 function generar_layout()
 {
     $solicitud = $this->controlador->get_solicitud();
     if (isset($solicitud)) {
         $this->mostrar_solicitud($this->controlador->get_solicitud());
     } else {
         echo ei_mensaje('No hay solicitudes cronometradas', 'info');
     }
 }
Example #3
0
 function analizar()
 {
     toba_editor::iniciar_contexto_proyecto_cargado();
     require_once $this->meta_clase->get_clase_archivo();
     $this->archivo->incluir();
     try {
         $molde = $this->meta_clase->get_molde_subclase();
         $molde->set_muestra_analisis(new ReflectionClass($this->nombre()));
         return $molde->get_analisis();
     } catch (Exception $e) {
         echo ei_mensaje("No se encuentra la clase " . $this->nombre() . " en este archivo.", "error");
     }
 }
Example #4
0
    function cargar_info($editable = null)
    {
        //Carga el EDITABLE que se va a manejar dentro de la ZONA
        $sql = '	SELECT	*
					FROM	apex_usuario
					WHERE	usuario=' . quote($this->editable_id);
        $rs = toba::db()->consultar($sql);
        if (!$rs) {
            echo ei_mensaje('ZONA-USUARIO: El editable solicitado no existe', 'info');
            return false;
        } else {
            $this->editable_info = $rs[0];
            //ei_arbol($this->editable_info,"EDITABLE");
            return true;
        }
    }
Example #5
0
    function cargar_info($editable = null)
    {
        //Carga el EDITABLE que se va a manejar dentro de la ZONA
        $sql = '	SELECT	i.*
					FROM	apex_item i
					WHERE	i.proyecto=' . quote($this->editable_id[0]) . '
					AND		item=' . quote($this->editable_id[1]) . ';';
        $rs = toba::db()->consultar($sql);
        if (!$rs) {
            echo ei_mensaje('ZONA-ITEM: El editable solicitado no existe', 'info');
            return false;
        } else {
            $this->editable_info = $rs[0];
            //ei_arbol($this->editable_info,"EDITABLE");
            $this->editable_id = array($this->editable_id[0], $this->editable_id[1]);
            $this->editable_cargado = true;
            return true;
        }
    }
Example #6
0
    function cargar_info($editable = null)
    {
        //Carga el EDITABLE que se va a manejar dentro de la ZONA
        $sql = '	SELECT	descripcion
					FROM	apex_fuente_datos
					WHERE	proyecto=' . quote($this->editable_id[0]) . '
					AND		fuente_datos=' . quote($this->editable_id[1]) . ';';
        //echo $sql;
        $rs = toba::db()->consultar($sql);
        if (!$rs) {
            echo ei_mensaje('ZONA-FUENTE: El editable solicitado no existe', 'info');
            return false;
        } else {
            $this->editable_info = $rs[0];
            //ei_arbol($this->editable_info,"EDITABLE");
            $this->editable_cargado = true;
            return true;
        }
    }
 /**
  * Genera el html que el cuadro muestra cuando no tiene datos cargados
  * @param string $texto Texto a mostrar en base a la definición del componente
  */
 function html_mensaje_cuadro_vacio($texto)
 {
     $this->_cuadro->resetear_claves_enviadas();
     $info_cuadro = $this->_cuadro->get_informacion_basica_cuadro();
     $colapsado = $this->_cuadro->es_cuadro_colapsado();
     $objeto_js = $this->_cuadro->get_id_objeto_js();
     $this->html_generar_campos_hidden();
     $ancho = isset($info_cuadro["ancho"]) ? $info_cuadro["ancho"] : "";
     //-- Tabla BASE
     $ancho = convertir_a_medida_tabla($ancho);
     echo "\n<table class='ei-base ei-cuadro-base' {$ancho}>\n";
     echo "<tr><td style='padding:0;'>\n";
     echo $this->get_html_barra_editor();
     $this->generar_html_barra_sup(null, true, "ei-cuadro-barra-sup");
     $ancho = isset($info_cuadro["ancho"]) ? $info_cuadro["ancho"] : "";
     $colapsado = isset($colapsado) && $colapsado ? "display:none;" : '';
     echo "<div class='ei-cuadro-scroll ei-cuadro-cuerpo' style='width: {$ancho}; {$colapsado}' id='cuerpo_{$objeto_js}'>\n";
     echo ei_mensaje($texto);
     if ($this->_cuadro->hay_botones() && $this->_cuadro->botonera_abajo()) {
         $this->generar_botones();
     }
     echo '</div></td></tr></table>';
 }
Example #8
0
 function obtener_html($mostrar_cabecera = true, $titulo = null)
 {
     //Reproduccion del titulo
     if (isset($titulo)) {
         $this->memoria["titulo"] = $titulo;
         $this->memorizar();
     } else {
         if (isset($this->memoria["titulo"])) {
             $titulo = $this->memoria["titulo"];
             $this->memorizar();
         }
     }
     //Manejo del EOF
     if ($this->filas == 0) {
         //La consulta no devolvio datos!
         if ($this->info_cuadro["eof_invisible"] != 1) {
             if (trim($this->info_cuadro["eof_customizado"]) != "") {
                 echo ei_mensaje($this->info_cuadro["eof_customizado"]);
             } else {
                 echo ei_mensaje("La consulta no devolvio datos!");
             }
         }
     } else {
         if (!($ancho = $this->info_cuadro["ancho"])) {
             $ancho = "80%";
         }
         //echo "<br>\n";
         //--Scroll
         if ($this->info_cuadro["scroll"]) {
             $ancho = isset($this->info_cuadro["ancho"]) ? $this->info_cuadro["ancho"] : "500";
             $alto = isset($this->info_cuadro["alto"]) ? $this->info_cuadro["alto"] : "auto";
             echo "<div style='overflow: scroll; height: {$alto}; width: {$ancho}; border: 1px inset; padding: 0px;'>";
             //	echo "<table class='tabla-0'>\n";
         } else {
             $ancho = isset($this->info_cuadro["ancho"]) ? $this->info_cuadro["ancho"] : "100";
             //	echo "<table width='$ancho' class='tabla-0'>\n";
         }
         echo "<table class='objeto-base' width='{$ancho}'>\n\n\n";
         if ($mostrar_cabecera) {
             echo "<tr><td>";
             $this->barra_superior(null, true, "objeto-ei-barra-superior");
             echo "</td></tr>\n";
         }
         if ($this->info_cuadro["subtitulo"] != "") {
             echo "<tr><td class='lista-subtitulo'>" . $this->info_cuadro["subtitulo"] . "</td></tr>\n";
         }
         echo "<tr><td>";
         echo "<TABLE width='100%' class='tabla-0'>";
         //------------------------ Genero los titulos
         echo "<tr>\n";
         for ($a = 0; $a < $this->cantidad_columnas; $a++) {
             if (isset($this->info_cuadro_columna[$a]["ancho"])) {
                 $ancho = " width='" . $this->info_cuadro_columna[$a]["ancho"] . "'";
             } else {
                 $ancho = "";
             }
             echo "<td class='lista-col-titulo' {$ancho}>\n";
             $this->cabecera_columna($this->info_cuadro_columna[$a]["titulo"], $this->info_cuadro_columna[$a]["valor_sql"], $a);
             echo "</td>\n";
         }
         //-- Evento FIJO de seleccion
         echo "<td class='lista-col-titulo'>\n";
         echo "</td>\n";
         echo "</tr>\n";
         //-------------------------------------------------------------------------
         //----------------------- Genero VALORES del CUADRO -----------------------
         //-------------------------------------------------------------------------
         for ($f = 0; $f < $this->filas; $f++) {
             $resaltado = "";
             $clave_fila = $this->get_clave_fila($f);
             //$this->clave_seleccionada
             //$resaltado = "_s";
             echo "<tr>\n";
             for ($a = 0; $a < $this->cantidad_columnas; $a++) {
                 //----------> Comienzo una CELDA!!
                 //*** 1) Recupero el VALOR
                 if (isset($this->info_cuadro_columna[$a]["valor_sql"])) {
                     $valor = $this->datos[$f][$this->info_cuadro_columna[$a]["valor_sql"]];
                     //Hay que formatear?
                     if (isset($this->info_cuadro_columna[$a]["valor_sql_formato"])) {
                         $funcion = "formato_" . $this->info_cuadro_columna[$a]["valor_sql_formato"];
                         //Formateo el valor
                         $valor = $funcion($valor);
                     }
                     //Hay que hacer un formateo externo
                     if (trim($this->info_cuadro_columna[$a]["valor_proceso_parametros"]) != "") {
                         $funcion = $this->info_cuadro_columna[$a]["valor_proceso_parametros"];
                         //Formateo el valor
                         $valor = $funcion($valor);
                     }
                 } elseif (isset($this->info_cuadro_columna[$a]["valor_fijo"])) {
                     $valor = $this->info_cuadro_columna[$a]["valor_fijo"];
                 } else {
                     $valor = "";
                 }
                 //*** 2) PRoceso la columna
                 //Esto no se utiliza desde el instanciador
                 if (!$this->solicitud->hilo->entorno_instanciador()) {
                     if (isset($this->info_cuadro_columna[$a]["valor_proceso"])) {
                         $metodo_procesamiento = $this->info_cuadro_columna[$a]["valor_proceso"];
                         $valor = $this->{$metodo_procesamiento}($f, $valor);
                     }
                 }
                 //*** 3) Generacion de VINCULOS!
                 if (trim($this->info_cuadro_columna[$a]["vinculo_indice"]) != "") {
                     $id_fila = $this->get_clave_fila($f);
                     //Genero el VINCULO
                     $vinculo = $this->solicitud->vinculador->get_vinculo_de_objeto($this->id, $this->info_cuadro_columna[$a]["vinculo_indice"], $id_fila, true, $valor);
                     //El vinculador puede no devolver nada en dos casos:
                     //No hay permisos o el indice no existe
                     if (isset($vinculo)) {
                         $valor = $vinculo;
                     }
                 }
                 //*** 4) Genero el HTML
                 echo "<td class='" . $this->info_cuadro_columna[$a]["estilo"] . $resaltado . "'>\n";
                 echo $valor;
                 echo "</td>\n";
                 //----------> Termino la CELDA!!
             }
             //-- Evento FIJO de seleccion
             echo "<td class='lista-col-titulo'>\n";
             echo toba_form::image($this->submit . $clave_fila, toba_recurso::imagen_toba("doc.gif"), "onClick='seleccionar(\"{$this->datos[$f]['id']}\", \"{$this->datos[$f]['descripcion']}\")';");
             echo "</td>\n";
             //----------------------------
             echo "</tr>\n";
         }
         //----------------------- Genero totales??
         $this->generar_html_totales();
         echo "</table>\n";
         echo "</td></tr>\n";
         echo "</table>\n";
         //Y por cierto......... si esto tenia scroll, cierro el div !!!
         if ($this->info_cuadro["scroll"]) {
             echo "</div>";
         }
         //echo "<br>\n";
     }
 }
Example #9
0
 function generar_layout()
 {
     $selecciones = $this->controlador->get_selecciones();
     echo "<div style='background-color: white; border: 1px solid black; text-align: left; padding: 15px'>";
     try {
         //Se construye un suite por categoria que tenga test seleccionados
         foreach (toba_test_lista_casos::get_categorias() as $categoria) {
             $test = new GroupTest($categoria['nombre']);
             $hay_uno = false;
             foreach (toba_test_lista_casos::get_casos() as $caso) {
                 if ($caso['categoria'] == $categoria['id'] && in_array($caso['id'], $selecciones['casos'])) {
                     $hay_uno = true;
                     require_once $caso['archivo'];
                     $test->addTestCase(new $caso['id']($caso['nombre']));
                 }
             }
             if ($hay_uno) {
                 //--- COBERTURA DE CODIGO (OPCIONAL) ----
                 if (function_exists('xdebug_start_code_coverage')) {
                     xdebug_start_code_coverage();
                 }
                 //-------
                 $test->run(new toba_test_reporter());
                 //--- COBERTURA DE CODIGO (OPCIONAL) ----
                 $arch = 'PHPUnit2/Util/CodeCoverage/Renderer.php';
                 $existe = toba_manejador_archivos::existe_archivo_en_path($arch);
                 if (function_exists('xdebug_start_code_coverage') && $existe) {
                     require_once $arch;
                     $cubiertos = xdebug_get_code_coverage();
                     //Se limpian las referencias a simpletest y a librerias de testing en gral.
                     $archivos = array();
                     foreach (array_keys($cubiertos) as $archivo) {
                         if (!strpos($archivo, 'simpletest') && !strpos($archivo, 'PHPUnit') && !strpos($archivo, 'testing_automatico/') && !strpos($archivo, '/test_')) {
                             $archivos[$archivo] = $cubiertos[$archivo];
                         }
                     }
                     $cc = PHPUnit2_Util_CodeCoverage_Renderer::factory('HTML', array('tests' => $archivos));
                     $path_temp = toba::proyecto()->get_path_temp_www();
                     $salida = $path_temp['real'] . '/cobertura.html';
                     $cc->renderToFile($salida);
                     echo "<a href='{$path_temp['browser']}/cobertura.html' target='_blank'>Ver cobertura de código</a>";
                 }
                 //-------
             }
         }
     } catch (Exception $e) {
         if (method_exists($e, 'mensaje_web')) {
             echo ei_mensaje($e->mensaje_web(), 'error');
         } else {
             echo $e;
         }
     }
     echo '</div><br>';
     $this->dep('lista_archivos')->generar_html();
 }
Example #10
0
function ei_arbol($arbol, $identificador = "DUMPEO de VALORES", $ancho = "50%", $colapsado = false)
{
    //Me estan llamando por consola??
    if (toba::solicitud() != null && toba::solicitud()->get_tipo() == 'consola') {
        //echo "<pre>";
        print_r($arbol);
        //echo "</pre>";
        return;
    }
    //Javascript de colapsado de niveles (esto no es bello, pero funciona)
    static $js = 0;
    // Para que entre una sola vez
    if ($js == 0) {
        echo "<script language='javascript'>function ei_arbol_colapsar_nivel(id, img){\n\t\t\t\t\tnodo = document.getElementById(id);\n\t\t\t\t\tif(nodo.style.display == 'none'){\n\t\t\t\t\t\t//Abrir\n\t\t\t\t\t\tnodo.style.display = '';\n\t\t\t\t\t\timg.src = '" . toba_recurso::imagen_toba('nucleo/contraer.gif', false) . "';\n\t\t\t\t\t}else{\n\t\t\t\t\t\t//Cerrar\n\t\t\t\t\t\tnodo.style.display = 'none';\n\t\t\t\t\t\timg.src = '" . toba_recurso::imagen_toba('nucleo/expandir.gif', false) . "';\n\t\t\t\t\t}\n\t\t\t\t}</script>";
    }
    $js++;
    //Es un array?
    if (is_array($arbol)) {
        echo "<div  align='center'><br>";
        echo "<table class='tabla-0' width='{$ancho}'>";
        echo "<tr><td class='arbol-titulo'><b>{$identificador}</b></td></tr>\n";
        echo "<tr><td class='arbol-valor-array'>\n";
        ei_arbol_nivel($arbol, $colapsado);
        echo "</td></tr>\n";
        echo "</table>\n";
        echo "</div><br>";
    } elseif (is_object($arbol)) {
        echo ei_mensaje("CLASE&nbsp;<b>" . get_class($arbol) . "</b>", null, $identificador);
    } else {
        echo ei_mensaje($arbol, null, $identificador);
    }
}
Example #11
0
 function generar_html_fs()
 {
     if (!$this->controlador->existe_archivo_log()) {
         echo ei_mensaje('No hay logs registrados para el proyecto ' . "<strong>{$this->controlador->get_proyecto()}</strong>");
         return;
     }
     $seleccion = $this->controlador->s__seleccion;
     $niveles = toba::logger()->get_niveles();
     $niveles = array_reverse($niveles);
     $res = $this->controlador->get_analizador()->get_pedido($seleccion);
     $encabezado = $this->controlador->get_analizador()->analizar_encabezado($res);
     ///CON ESTO PUEDO SACAR OPERACION, PROYECTO, IP, USUARIO ETC
     //--- Opciones
     $selec = $seleccion == 'ultima' ? 'Última solicitud' : "Solicitud {$seleccion}";
     echo '<div>';
     echo "<span class='logger-proyecto' title='{$this->controlador->get_analizador()->get_archivo_nombre()}' style='text-align:right;'>";
     echo ucfirst($this->controlador->get_proyecto());
     echo "<span class='logger-selec'>{$selec}</span>";
     //--- Botones anterior/siguiente
     if ($seleccion != 1) {
         $this->generar_boton('anterior');
     }
     if ($seleccion != 'ultima') {
         $this->generar_boton('siguiente');
         $this->generar_boton('ultima');
     }
     echo '</span>';
     echo "<br><div id='logger_info_operacion'>";
     echo $this->generar_html_info_operacion($res);
     echo '</div>';
     $valor_check = 0;
     if ($this->controlador->get_estado_encabezados() === true) {
         $valor_check = 1;
     }
     $check = toba_form::checkbox('con_encabezados', $valor_check, 1, 'ef-checkbox', " onclick=\"{$this->objeto_js}.evt__con_encabezados__click(this)\" ");
     echo "<label>{$check} Ver Encabezados</label><br>";
     echo "</div><hr style='clear:both' />";
     echo "<div style='clear:both;width:100%;overflow:auto;'>\n";
     list($detalle, $cant_por_nivel) = $this->generar_html_detalles($res);
     $display_encabezados = 'none';
     if ($this->controlador->get_estado_encabezados() === true) {
         $display_encabezados = '';
     }
     //--- Encabezado
     echo "<ul id='logger_encabezados' style='display:{$display_encabezados};list-style-type: none;padding: 0;margin: 0'>";
     echo $this->generar_html_encabezado($res);
     echo '</ul>';
     //---- Niveles
     echo "<div style='clear:both;float:right;margin-left:10px;text-align:center;'>";
     echo '<strong>Niveles</strong>';
     echo "<ul class='logger-opciones'>";
     foreach ($niveles as $nivel) {
         $img = toba_recurso::imagen_proyecto('logger/' . strtolower($nivel) . '.gif', true, null, null, "Filtrar el nivel: {$nivel}");
         $cant = $cant_por_nivel[$nivel] != 0 ? "[{$cant_por_nivel[$nivel]}]" : '';
         echo "<li id='nivel_{$nivel}'><a href='#' onclick='mostrar_nivel(\"{$nivel}\")'>{$img}</a> ";
         echo "<span id='nivel_cant_{$nivel}'>{$cant}</span></li>\n";
     }
     echo '</ul>';
     echo '</div>';
     $proyecto_actual = $this->controlador->get_proyecto();
     $mostrar = $this->controlador->get_seleccion_modo_detalle();
     $lista_valida = array($proyecto_actual => ucfirst($proyecto_actual), 'toba' => 'Nucleo', 'no_seteado' => 'Todos');
     //echo toba_recurso::imagen_proyecto('logger/ver_texto.gif', true, 16, 16, "Ver el texto original del log");
     echo "<div style='clear:both;float:right;margin-left:10px;text-align:center;'><br>";
     echo '<strong>Mostrar mensajes</strong>';
     echo "<ul id='logger_proyectos' class='logger-opciones'>";
     echo '<li>' . toba_form::select('opciones_proyectos', $mostrar, $lista_valida, null, "onchange='{$this->objeto_js}.mostrar_proyecto()'") . '</li>';
     echo '</ul>';
     echo '</div>';
     //--- Detalles
     echo "<ol id='logger_detalle' style='list-style-type:none;padding:0;margin:0;margin-top:10px;'>";
     echo $detalle;
     echo "</ol>\n";
     echo '</div>';
 }
$boton_post = 'asignar_permisos';
$boton_post_nombre = 'Guardar';
$prefijo_items = 'item_';
//Prefijo de los checkbox
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST[$boton_post])) {
    if ($_POST[$boton_post] == $boton_post_nombre) {
        //SI hay un POST, y estuvo disparado por este formulario
        $items = array();
        foreach ($_POST as $etiqueta => $valor) {
            if (substr($etiqueta, 0, strlen($prefijo_items)) == $prefijo_items) {
                $nodo = trim(substr($etiqueta, strlen($prefijo_items)));
                $items[] = $nodo;
            }
        }
        $arbol->cambiar_permisos($items, $grupo);
        echo ei_mensaje('Los permisos han sido actualizados correctamente');
    }
}
//--------------------------------------------------------------------------
//--------------<  INTERFACE DE ASIGNACION de PERMISOS  >-------------------
//--------------------------------------------------------------------------
echo "<br>\n";
echo "<div align='center'>\n";
?>
	<form  enctype='application/x-www-form-urlencoded' name='<?php 
echo $formulario;
?>
' method='POST' action='<?php 
echo toba::vinculador()->generar_solicitud(null, null, null, true);
?>
'>
Example #13
0
 /**
  * Carga los datos de una fila específica a partir de los valores de los efs de esa fila
  * @ignore 
  */
 protected function cargar_ef_a_registro($id_registro)
 {
     $this->_id_fila_actual = $id_registro;
     foreach ($this->_lista_ef as $ef) {
         //Aplano el estado del EF en un array
         $dato = $this->_elemento_formulario[$ef]->get_dato();
         $estado = $this->_elemento_formulario[$ef]->get_estado();
         if (is_array($dato)) {
             //El EF maneja	DATO COMPUESTO
             if (count($dato) != count($estado)) {
                 //Error	de	consistencia interna	del EF
                 echo ei_mensaje("Error de consistencia\tinterna en el EF etiquetado: " . $this->_elemento_formulario[$ef]->get_etiqueta(), "error");
             }
             for ($x = 0; $x < count($dato); $x++) {
                 $this->_datos[$id_registro][$dato[$x]] = $estado[$dato[$x]];
             }
         } else {
             //El EF maneja	un	DATO SIMPLE
             $this->_datos[$id_registro][$dato] = $estado;
         }
     }
 }