Пример #1
0
 function generar_layout()
 {
     //El archivo original esta en formato Windows CR/LF
     $nombre = toba::proyecto()->get_path_php() . '/varios/line_endings/archivo_windows.php';
     //Verifico que el archivo original tiene el CR
     assert(strrchr(file_get_contents($nombre), 13) !== false);
     $archivo = new toba_archivo_php($nombre);
     $archivo->edicion_inicio();
     $codigo_actual = $archivo->contenido();
     //Verifico que el codigo original no tiene CR al ser cargado en toba_archivo_php
     assert(strrchr($codigo_actual, 13) === false);
     $metodo = new toba_codigo_metodo_php('extender_objeto_js');
     $metodo->set_contenido("alert('soy un alert nuevo'); \n alert(4);");
     $nuevo_codigo = $archivo->codigo_agregar_metodo($codigo_actual, $metodo->get_codigo());
     $archivo->insertar($nuevo_codigo);
     $archivo->insertar_al_final("function cargo_algo(\$id) \n { echo 'Ingrese \$id'; \n}");
     //Verifico que el nuevo codigo que obtuve tampoco tiene CR antes de ser grabado
     assert(strrchr($archivo->contenido(), 13) === false);
     //Aca grabe el archivo
     $archivo->edicion_fin();
     assert(strrchr(file_get_contents($nombre), 13) === false);
     assert(strrchr(file_get_contents($nombre), PHP_EOL) !== false);
     echo 'El test parece que funco!, revirtiendo archivo....';
     $tsvn = new toba_svn();
     $tsvn->revert($nombre);
 }
Пример #2
0
 function extender_objeto_js()
 {
     if ($this->existe_evento('trac_ver')) {
         $path = $this->controlador()->get_path_archivo();
         $svn = new toba_svn();
         $url = $svn->get_url($path);
         $proyecto = toba_editor::get_proyecto_cargado();
         $url = preg_replace('/svn\\/(\\w+)/i', 'trac/$1/browser', $url);
         echo "\n\t\t\t\t{$this->objeto_js}.evt__trac_ver = function() {\n\t\t\t\t\tvar opciones = {'scrollbars' : 1, 'resizable': 1};\n\t\t\t\t\tabrir_popup('trac', '{$url}', opciones);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t";
     }
 }
Пример #3
0
 function resolver_tipo()
 {
     if (is_dir($this->dir) && toba_svn::es_copia_trabajo($this->dir)) {
         return 'svn';
     } else {
         return 'fs';
     }
 }
Пример #4
0
 /**
  * Permite modificar la forma en que se grafica la pantalla, por defecto un componente sobre el otro
  */
 function generar_layout()
 {
     $nombre = toba::proyecto()->get_path_php() . '/varios/line_endings/archivo_linux.php';
     //Verifico que no tiene el CHR 13 de movida
     assert(strrchr(file_get_contents($nombre), 13) === false);
     $archivo = new toba_archivo_php($nombre);
     $archivo->edicion_inicio();
     $codigo_actual = $archivo->contenido();
     assert(strrchr($codigo_actual, 13) === false);
     $metodo = new toba_codigo_metodo_php('extender_objeto_js');
     $metodo->set_contenido("echo \"alert('soy un alert nuevo');" . "\n" . "alert(4);\"");
     $nuevo_codigo = $archivo->codigo_agregar_metodo($codigo_actual, $metodo->get_codigo());
     $archivo->insertar(toba_archivo_php::codigo_sacar_tags_php($nuevo_codigo));
     //Verifico que el nuevo codigo que obtuve tampoco tiene CR antes de ser grabado
     assert(strrchr($archivo->contenido(), 13) === false);
     //Aca grabe el archivo
     $archivo->edicion_fin();
     assert(strrchr(file_get_contents($nombre), 13) === false);
     assert(strrchr(file_get_contents($nombre), PHP_EOL) !== false);
     $archivo->mostrar();
     echo 'El test parece que funco!, revirtiendo archivo....';
     $tsvn = new toba_svn();
     $tsvn->revert($nombre);
 }
Пример #5
0
 function conf__pant_vista_previa()
 {
     $path = $this->s__path_archivo;
     $svn = new toba_svn();
     if (!isset($this->comando_svn)) {
         $codigo = $this->get_codigo_vista_previa();
     } else {
         switch ($this->comando_svn) {
             case 'blame':
                 $codigo = $svn->blame($path);
                 if ($codigo == '') {
                     toba::notificacion()->error('No se pudo realizar el blame, posiblemente porque el repositorio tiene restricciones de permisos y el usuario de apache no tiene cargadas las credenciales');
                 }
                 break;
             case 'diff':
                 $codigo = $svn->diff($path);
                 break;
             case 'revert':
                 $svn->revert($path);
                 $codigo = $this->get_codigo_vista_previa();
                 break;
             case 'add':
                 $svn->add($path);
                 $codigo = $this->get_codigo_vista_previa();
                 break;
         }
     }
     //-- Info del archivo
     $estado = $svn->get_estado($path);
     $svn_blame = true;
     $svn_diff = false;
     $svn_add = false;
     switch ($estado) {
         case 'unversioned':
             $svn_blame = false;
             $svn_add = true;
             $nombre = 'sin versionar';
             $img = toba_recurso::imagen_proyecto('svn/unversioned.png', true, 16, 16, $nombre);
             break;
         case 'modified':
         case 'missing':
             $svn_diff = true;
             $nombre = 'modificado';
             $img = toba_recurso::imagen_proyecto('svn/modified.png', true, 16, 16, $nombre);
             break;
         case 'added':
             $svn_blame = false;
             $nombre = 'agregado';
             $img = toba_recurso::imagen_proyecto('svn/added.png', true, 16, 16, $nombre);
             break;
         case 'normal':
             $nombre = 'sin modificar';
             $img = toba_recurso::imagen_proyecto('svn/normal.png', true, 16, 16, $nombre);
             break;
         case 'conflicted':
             $nombre = 'En Conflicto';
             $img = toba_recurso::imagen_proyecto('svn/conflict.png', true, 16, 16, $nombre);
             break;
         case 'deleted':
             $nombre = 'borrado';
             $img = toba_recurso::imagen_proyecto('svn/deleted.png', true, 16, 16, $nombre);
             break;
         case 'locked':
             $nombre = 'locked';
             $img = toba_recurso::imagen_proyecto('svn/locked.png', true, 16, 16, $nombre);
             break;
         case 'ignored':
             $svn_add = true;
             $svn_blame = false;
             $nombre = 'ignorado';
             $img = toba_recurso::imagen_proyecto('svn/ignored.png', true, 16, 16, $nombre);
             break;
     }
     $this->info_archivo = "{$path} <span style='font-size: 9px; color:gray'>({$nombre})</span>";
     $this->previsualizacion = $codigo;
     $existe_archivo = file_exists($path);
     $ver_comandos_svn = $svn->hay_cliente_svn();
     if (!$svn->hay_cliente_svn()) {
         $ver_comandos_svn = false;
     }
     //-- Oculta boton eliminar
     if (!$existe_archivo) {
         $this->pantalla()->eliminar_evento('eliminar');
         $this->pantalla()->eliminar_evento('abrir');
     }
     if (!$ver_comandos_svn || !$svn_blame) {
         $this->pantalla()->eliminar_evento('svn_blame');
     }
     if (!$ver_comandos_svn || !$svn_diff) {
         $this->pantalla()->eliminar_evento('svn_diff');
         $this->pantalla()->eliminar_evento('svn_revert');
     }
     if (!$ver_comandos_svn || !$svn_add || !$existe_archivo) {
         $this->pantalla()->eliminar_evento('svn_add');
     }
     if (!$ver_comandos_svn || !$existe_archivo || $svn_add) {
         $this->pantalla()->eliminar_evento('trac_ver');
     }
 }
Пример #6
0
 private function recuperar_revision_recursos()
 {
     $svn = new toba_svn();
     if (!toba::memoria()->existe_dato_instancia('toba_revision_recursos_cliente')) {
         $path_recursos = $this->toba_dir() . '/www';
         if (toba::instalacion()->es_produccion() || !$svn->hay_cliente_svn() || !$svn->es_copia_trabajo($path_recursos)) {
             $version = toba::instalacion()->get_version()->__toString();
         } else {
             $version = $svn->get_revision($path_recursos);
         }
         toba::memoria()->set_dato_instancia('toba_revision_recursos_cliente', $version);
     }
     if (!toba::memoria()->existe_dato_instancia('proyecto_revision_recursos_cliente')) {
         $path_recursos = toba::proyecto()->get_path() . '/www';
         if (toba::instalacion()->es_produccion() || !$svn->hay_cliente_svn() || !$svn->es_copia_trabajo($path_recursos)) {
             $version = toba::proyecto()->get_version()->__toString();
         } else {
             $version = $svn->get_revision($path_recursos);
         }
         toba::memoria()->set_dato_instancia('proyecto_revision_recursos_cliente', $version);
     }
 }
Пример #7
0
 function generar_estado_codigo()
 {
     //Se cambia el chequeo de propiedades svn a checksum de archivos
     $this->manejador_interface->mensaje("Calculando revisiones {$this->identificador} ", false);
     $this->generar_checksum();
     //Esto simplemente se calcula para darle una idea al pobre chango de cual
     //fue la ultima revision que cargo en la base,util para el revert
     $svn = new toba_svn();
     if ($svn->hay_cliente_svn()) {
         $max_rev = 0;
         $revisiones = $svn->get_revisiones_dir_recursivos($this->get_dir_dump());
         $max_rev = 0;
         if (!empty($revisiones)) {
             foreach ($revisiones as $revision) {
                 if (isset($revision['error'])) {
                     throw new toba_error_def($revision['error']);
                 }
                 if ($max_rev < intval($revision['revision'])) {
                     $max_rev = intval($revision['revision']);
                 }
             }
         }
         $this->manejador_interface->progreso_avanzar();
         $this->instancia->set_revision_proyecto($this->identificador, $max_rev);
     }
     $this->manejador_interface->progreso_fin();
 }