function generar_layout() { //--- Barra SVN echo "<div class='editor-vista-previa'>" . $this->controlador()->get_info_archivo(); echo '<div>'; $this->generar_botones_eventos(true); echo '</div></div>'; //--- Barra de convenciones $mensajes_linea = array(); $modelo = toba_editor::get_modelo_proyecto(); $estandar = $modelo->get_estandar_convenciones(); $path = $this->controlador()->get_path_archivo(); if (file_exists($path)) { $resultado = $estandar->validar(array($path)); $titulo = '<strong>Convenciones</strong>'; $cant_errores = $resultado['totals']['errors']; $cant_warnings = $resultado['totals']['warnings']; $extra = ''; if ($cant_errores === 0 && $cant_warnings === 0) { $nivel = 'info'; $salida = 'Ok!'; } else { $nivel = $cant_errores !== 0 ? 'error' : 'warning'; $salida = "{$cant_errores} "; $salida .= $cant_errores !== 1 ? 'errores' : 'error'; $salida .= " / {$cant_warnings} "; $salida .= $cant_warnings !== 1 ? 'avisos' : 'aviso'; foreach ($resultado['files'][$path]['messages'] as $linea => $columnas) { $textos = array(); foreach ($columnas as $column => $mensajes) { foreach ($mensajes as $mensaje) { //$extra .= "<strong>$linea</strong>:{$mensaje['message']}"; $imagen = $mensaje['type'] == 'ERROR' ? 'error.gif' : 'warning.gif'; $textos[] = $estandar->parsear_mensaje($mensaje['message']); //Cambia el id de la convencion por una url } } $ayuda = implode('<br><br>', $textos); $ayuda = str_replace("'", "`", $ayuda); $mensajes_linea[$linea] = toba_recurso::imagen_toba($imagen, true, null, null, $ayuda); } } $this->generar_html_descripcion("{$titulo}: {$salida} {$extra}", $nivel); } //-- Vista previa echo "<div class='editor-vista-previa-codigo'>"; $codigo = $this->controlador()->get_previsualizacion(); require_once toba_dir() . '/php/3ros/PHP_Highlight.php'; $h = new PHP_Highlight(false); $h->loadString($codigo); $formato_linea = "<span class='editor-linea-codigo'>%02d</span> "; echo @$h->toHtml(true, true, $formato_linea, true, $mensajes_linea); echo '</div>'; }
function get_generador() { $url = $this->s__opciones['host'] . $this->s__opciones['url']; $proyecto = toba_editor::get_proyecto_cargado(); $generador = new toba_testing_selenium($proyecto, $url); $version = toba_editor::get_modelo_proyecto()->get_version_proyecto(); $version = $version->__toString(); if ($this->s__opciones['test'] == 'operaciones') { $generador->set_titulo("{$proyecto} {$version} - Cobertura de Operaciones"); $generador->test_operaciones($this->s__opciones['ir_pagina_inicial']); } return $generador; }
function chequear_sincro_svn() { $this->chequeado = true; $proy = toba_editor::get_modelo_proyecto(); try { $proy->chequear_actualizacion_prematura(); } catch (toba_error_def $e) { //Hubo update prematuro $msg = $e->getMessage(); $msg = str_replace("\\", "\\\\", $msg); $msg = nl2br($msg); toba::notificacion()->agregar($msg, 'error'); //Muestro msg de error si los hubiera $tags_js = toba::memoria()->get_servicio_solicitado() != 'html_parcial'; toba::notificacion()->mostrar($tags_js); } catch (toba_error $e) { } }
function conf__cuadro(toba_ei_cuadro $cuadro) { if (!isset($this->s__datos) || $this->filtrar) { $carpeta = toba::instancia()->get_path_proyecto(toba_editor::get_proyecto_cargado()) . '/php'; $carpeta = toba_manejador_archivos::path_a_plataforma($carpeta); $extra = ''; if (isset($this->s__filtro['nombre'])) { $extra = "{$this->s__filtro['nombre']}.*"; } $archivos = toba_manejador_archivos::get_archivos_directorio($carpeta, "/{$extra}\\.php\$/", true); $modelo = toba_editor::get_modelo_proyecto(); $estandar = $modelo->get_estandar_convenciones(); $datos = array(); foreach ($archivos as $archivo) { $path_relativo = substr($archivo, strlen($carpeta) + 1); $nombre = basename($archivo); if (strlen($nombre) > 30) { $nombre = substr($nombre, 0, 30) . '...'; } $info = array('archivo' => $nombre, 'path' => $path_relativo); if (isset($this->s__filtro['convenciones']) && $this->s__filtro['convenciones']) { $errores = $estandar->validar(array($archivo)); $info['errores'] = $errores['totals']['errors']; $info['warnings'] = $errores['totals']['warnings']; } $datos[] = $info; } $this->s__datos = rs_ordenar_por_columna($datos, 'archivo'); } if (isset($this->s__filtro['convenciones']) && $this->s__filtro['convenciones']) { $columnas = array(); $columnas[0]['clave'] = 'errores'; $columnas[0]['titulo'] = toba_recurso::imagen_toba('error.gif', true); $columnas[0]['estilo'] = 'col-num-p1'; $columnas[1]['clave'] = 'warnings'; $columnas[1]['titulo'] = toba_recurso::imagen_toba('warning.gif', true); $columnas[1]['estilo'] = 'col-num-p1'; $cuadro->agregar_columnas($columnas); } $cuadro->desactivar_modo_clave_segura(); $cuadro->set_datos($this->s__datos); }
function evt__procesar() { //Seteo los datos asociados al uso de este editor $basicos = $this->get_entidad()->tabla('base'); $basicos->set_fila_columna_valor(0, 'proyecto', toba_editor::get_proyecto_cargado()); $es_temporal = $basicos->get_columna('item') == id_temporal; if ($es_temporal) { //Reemplazar el automático por la secuencia $basicos->set_columna_valor('item', toba::instancia()->get_db()->recuperar_nuevo_valor_secuencia('apex_item_seq')); } //Sincronizo el DBT $this->get_entidad()->sincronizar(); $datos = $this->get_entidad()->tabla('base')->get(); //Si el proyecto usa esquema de permisos por tabla $modelo_proyecto = toba_editor::get_modelo_proyecto(); try { $modelo_proyecto->generar_roles_db($datos['item']); } catch (toba_error_db $e) { toba::notificacion()->error('Error al actualizar los roles postgres para esta operación', $e->get_mensaje_log()); } if (!isset($this->s__id_item)) { //Si el item es nuevo admin_util::refrescar_editor_item($datos['item']); admin_util::redirecionar_a_editor_item($datos['proyecto'], $datos['item']); } }
<?php /* * Este archivo manejara los chequeos que realice el editor para ver si * hubo un update de metadatos antes de realizar la exportacion de * los mismos, en ese caso se devuelve un msg informando el problema. */ $parametro = toba::memoria()->get_parametro('chequeo_exportacion'); //Si viene en 1 entonces chequeo la exportacion if (isset($parametro) && $parametro == '1') { $proy = toba_editor::get_modelo_proyecto(); $ajx_response = new toba_ajax_respuesta('H'); //Unicamente informo si hubo un update prematuro, osea si salta la excepcion try { $proy->chequear_actualizacion_prematura(); } catch (toba_error_def $e) { //Hubo update prematuro $msg = $e->getMessage(); $ajx_response->set($msg); $ajx_response->comunicar(); } catch (toba_error $e) { } }