Example #1
0
 function ini()
 {
     $this->proyecto = toba_editor::get_proyecto_cargado();
     //Obtengo el proyecto cargado en el editor
     if ($editable = toba::zona()->get_editable()) {
         $this->fuente = $editable[1];
         //La fuente a  editar viene por la zona
         if (!$this->dep('datos')->esta_cargada()) {
             $this->dep('datos')->cargar(array('fuente_datos' => $this->fuente, 'proyecto' => $this->proyecto));
             $datos = $this->dep('datos')->get();
             // Si no hay lote, saco la pantalla de la prueba
             if (trim($datos['lote']) == '') {
                 $this->set_pantalla('sql');
                 //Redireccion temprana a la pantalla correcta
                 $this->pantalla()->eliminar_tab('test');
             }
             // Seteo elegidos
             if (isset($datos['seleccionados']) && $datos['seleccionados'] != '') {
                 $this->s__sqls_elegidos = explode(',', $datos['seleccionados']);
             }
             // Seteo los parametros del TEST
             if (isset($datos['parametros']) && $datos['parametros'] != '') {
                 $this->s__detalle_test = unserialize($datos['parametros']);
             }
         }
     } else {
         throw new toba_error('ERROR: Esta operacion debe ser llamada desde la zona de fuentes');
     }
 }
Example #2
0
 function evt__guardar()
 {
     $this->dependencia('datos')->sincronizar();
     $clave = $this->dependencia('datos')->get_clave_valor(0);
     toba::zona()->cargar(array($clave['proyecto'], $clave['usuario_grupo_acc']));
     admin_util::refrescar_barra_lateral();
 }
Example #3
0
 function ini__operacion()
 {
     if ($editable = toba::zona()->get_editable()) {
         $clave['proyecto'] = toba_editor::get_proyecto_cargado();
         $clave['dimension'] = $editable[1];
         $this->s__carga_ok = $this->dependencia('datos')->cargar($clave);
     }
 }
Example #4
0
 function ini()
 {
     if ($editable = toba::zona()->get_editable()) {
         $this->fuente = $editable[1];
     } else {
         throw new toba_error('ERROR: Esta operacion debe ser llamada desde la zona de fuentes');
     }
 }
Example #5
0
 function ini()
 {
     if ($editable = toba::zona()->get_editable()) {
         $clave['proyecto'] = toba_editor::get_proyecto_cargado();
         $clave['consulta_php'] = $editable[1];
         $this->carga_ok = $this->dependencia('datos')->cargar($clave);
     }
 }
Example #6
0
 function ini__operacion()
 {
     $zona = toba::zona();
     if (!$zona->cargada()) {
         throw new toba_error('La zona de carpetas no fue cargada');
     }
     list($proyecto, $item) = $zona->get_editable();
     $this->dep('datos')->cargar(array('padre' => $item, 'padre_proyecto' => $proyecto));
 }
Example #7
0
 function ini()
 {
     if ($editable = toba::zona()->get_editable()) {
         $clave = array();
         $clave['proyecto'] = toba_editor::get_proyecto_cargado();
         $clave['servicio_web'] = $editable[1];
         $this->carga_ok = $this->dependencia('datos')->cargar($clave);
     }
 }
Example #8
0
 function ini()
 {
     if ($editable = toba::zona()->get_editable()) {
         $clave['proyecto'] = toba_editor::get_proyecto_cargado();
         $clave['fuente_datos'] = $editable[1];
         if (!$this->dependencia('datos')->esta_cargada()) {
             $this->s__carga_ok = $this->dependencia('datos')->cargar($clave);
         }
     }
 }
Example #9
0
 function evt__procesar()
 {
     $this->dependencia('datos')->sincronizar();
     if (!isset($this->usuario_actual)) {
         //Si era un alta
         $basicas = $this->dependencia('datos')->tabla('basicas')->get();
         $this->usuario_actual = $basicas['usuario'];
         //Hay que avisarle a la zona
         toba::zona()->cargar($this->usuario_actual);
     }
 }
Example #10
0
 function evt__eliminar()
 {
     $opciones = array();
     foreach ($this->lista_comp as $comp) {
         $opciones[$comp['componente']] = array('eliminar' => $comp['eliminar'], 'eliminar_archivo' => $comp['eliminar_archivo']);
     }
     $this->operacion->eliminar($this->eliminar_item, $opciones, true);
     toba::notificacion()->agregar('Los componentes seleccionados han sido eliminado', 'info');
     if ($this->eliminar_item) {
         toba::zona()->resetear();
     }
 }
Example #11
0
 function conf__form_molde()
 {
     //-- Asume los nombres a partir de la operación
     $datos = $this->dep('datos')->tabla('molde')->get();
     $nombre = strtolower(toba::zona()->get_info('nombre'));
     if (!isset($datos['prefijo_clases'])) {
         $datos['prefijo_clases'] = '_' . toba_texto::nombre_valido_clase($nombre);
     }
     if (!isset($datos['carpeta_archivos'])) {
         $datos['carpeta_archivos'] = toba_texto::nombre_valido_clase($nombre);
     }
     return $datos;
 }
Example #12
0
 function conf__opciones()
 {
     if (!isset($this->opciones)) {
         $this->opciones = array();
         list($proyecto_actual, $item_actual) = toba::zona()->get_editable();
         $id = array('proyecto' => $proyecto_actual, 'componente' => $item_actual);
         $sql = 'SELECT pagina_tipo_proyecto, pagina_tipo FROM apex_item WHERE proyecto = ' . quote($proyecto_actual) . ' AND item = ' . quote($item_actual);
         $datos = toba::db()->consultar_fila($sql);
         $this->opciones['proyecto'] = $proyecto_actual;
         $this->opciones['pagina_tipo_proyecto'] = $datos['pagina_tipo_proyecto'];
         $this->opciones['pagina_tipo'] = $datos['pagina_tipo'];
     }
     return $this->opciones;
 }
Example #13
0
 function ini()
 {
     $datos = toba::zona()->get_info();
     $this->recuperar_tipo_elemento();
     $this->recuperar_id_entidad($datos);
     $info = $this->get_metaclase();
     if (!isset($this->s__modo_pers)) {
         $hay_personalizacion = toba_personalizacion::get_personalizacion_iniciada(toba_editor::get_proyecto_cargado());
         $this->s__subclase_orig = toba::memoria()->get_parametro('subclase_pers');
         //Indica el nombre de la clase que se personaliza
         $this->s__modo_pers = $hay_personalizacion && !is_null($this->s__subclase_orig);
     }
     if (!$this->s__modo_pers) {
         if ($info->get_subclase_archivo() != '' && $info->get_subclase_nombre() != '') {
             $this->s__path_relativo = dirname($info->get_subclase_archivo());
             if ($this->s__path_relativo == '.') {
                 $this->s__path_relativo = '';
             }
             $this->s__datos_nombre = array('nombre' => basename($info->get_subclase_archivo(), '.php'));
             $this->set_pantalla('pant_generacion');
         }
     }
 }
Example #14
0
 /**
  * Elimina opcionalmente un conjunto de componentes pertencientes a la operación
  *
  * @param boolean $borrar_item Debe borrar el item una vez borradas sus dependencias
  * @param array $opciones Arreglo 'id_componente' => array('eliminar'=>true/false, 'eliminar_archivo'=>true/false)
  * @param boolean $con_transaccion Debe enmarcar la eliminación en una transaccion
  */
 function eliminar($borrar_item, $opciones, $con_transaccion = true)
 {
     $item = toba::zona()->get_info();
     $db = toba_contexto_info::get_db();
     $arbol_componentes = array_slice($this->arbol, 1);
     //--- Se eliminan metadatos
     if ($con_transaccion) {
         $db->abrir_transaccion();
     }
     foreach ($arbol_componentes as $comp) {
         $opcion = $opciones[$comp['componente']];
         if ($opcion['eliminar']) {
             //--- Elimina metadatos
             $id_dr = toba_info_editores::get_dr_de_clase($comp['tipo']);
             $componente = array('proyecto' => $id_dr[0], 'componente' => $id_dr[1]);
             $dr = toba_constructor::get_runtime($componente, 'toba_datos_relacion', false);
             $dr->inicializar();
             $dr->persistidor()->desactivar_transaccion();
             $dr->resetear();
             $dr->cargar(array('proyecto' => $this->id_proyecto, 'objeto' => $comp['componente']));
             $dr->eliminar_todo();
         }
     }
     //--Borro el item
     if ($borrar_item) {
         $id_dr = toba_info_editores::get_dr_de_clase('toba_item');
         $componente = array('proyecto' => $id_dr[0], 'componente' => $id_dr[1]);
         $dr = toba_constructor::get_runtime($componente, 'toba_datos_relacion', false);
         $dr->inicializar();
         $dr->persistidor()->desactivar_transaccion();
         $dr->resetear();
         $dr->cargar(array('proyecto' => $this->id_proyecto, 'item' => $this->id_item));
         $dr->eliminar_todo();
     }
     if ($con_transaccion) {
         $db->cerrar_transaccion();
     }
     //--- Se eliminan subclases
     foreach ($arbol_componentes as $comp) {
         $opcion = $opciones[$comp['componente']];
         if ($opcion['eliminar'] && $opcion['eliminar_archivo']) {
             $archivo = $this->get_path_archivo($comp);
             unlink($archivo);
         }
     }
 }
Example #15
0
 function evt__generar()
 {
     $this->asistente()->ejecutar(toba::zona()->get_info('item'), $this->s__opciones_generacion);
     admin_util::refrescar_editor_item(toba::zona()->get_info('item'));
 }
Example #16
0
 function evt__procesar()
 {
     if (!$this->componente_existe_en_db()) {
         //Seteo los datos asociados al uso de este editor
         $fijos = array('proyecto' => toba_editor::get_proyecto_cargado(), 'clase_proyecto' => 'toba', 'clase' => $this->get_clase_actual());
         $this->get_entidad()->tabla('base')->set($fijos);
     }
     //Sincronizo el DBT
     $this->get_entidad()->sincronizar();
     if ($this->componente_existe_en_db()) {
         //Algun cambio de valor del componente puede cambiar el display de la zona
         toba::zona()->recargar();
     }
     // Seteo el objeto INTERNO
     $datos = $this->get_entidad()->tabla('base')->get();
     $this->set_objeto(array('proyecto' => $datos['proyecto'], 'objeto' => $datos['objeto']));
 }
Example #17
0
 function evt__cuadro__cargar($seleccion)
 {
     toba::zona()->cargar($seleccion);
 }
<?php

$editable = toba::zona()->get_editable();
define('separador_camino', '_%_');
$grupo = $editable[1];
$arbol = new toba_catalogo_items(toba_editor::get_proyecto_cargado());
$arbol->cargar_todo();
$arbol->sacar_publicos();
$maximo = $arbol->profundidad();
$formulario = 'permisos';
$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  >-------------------
//--------------------------------------------------------------------------
Example #19
0
 function evt__procesar()
 {
     abrir_transaccion('instancia');
     $directorio = false;
     if ($this->datos['con_subclases']) {
         $directorio = $this->datos['carpeta_subclases'];
     }
     list($proyecto_actual, $comp_actual) = toba::zona()->get_editable();
     $id = array('proyecto' => $proyecto_actual, 'componente' => $comp_actual);
     $info = toba_constructor::get_info($id, null, $this->datos['profundidad']);
     $nuevos_datos = array('anexo_nombre' => $this->datos['anexo_nombre']);
     $clon = $info->clonar($nuevos_datos, $directorio, false);
     //--- Asignación
     if (isset($this->destino)) {
         $asignador = new asignador_objetos($clon, $this->destino);
         $asignador->asignar();
     }
     cerrar_transaccion('instancia');
     admin_util::redireccionar_a_editor_objeto($clon['proyecto'], $clon['objeto']);
 }
Example #20
0
 function ini__operacion()
 {
     list($proyecto, $fuente) = toba::zona()->get_editable();
     $this->s__catalogo = new catalogo_tablas($proyecto, $fuente);
     $this->s__catalogo->cargar();
 }
Example #21
0
 /**
  * Retorna el querystring propagando la zona actual (si es que hay y está cargada)
  * @return string
  */
 function get_qs_zona()
 {
     $qs = '';
     $solicitud_actual = toba::solicitud();
     if ($solicitud_actual->hay_zona() && toba::zona()->cargada()) {
         if (toba::zona()->get_modo_url()) {
             $editable = $this->variable_a_url(toba::zona()->get_editable());
             $qs .= '&' . apex_hilo_qs_zona . "=" . $editable;
         } else {
             $qs .= '&' . apex_hilo_qs_zona . '=1';
             toba::zona()->propagar_id();
         }
     }
     return $qs;
 }
Example #22
0
 function evt__eliminar()
 {
     $this->get_entidad()->eliminar();
     toba::notificacion()->agregar('La operación ha sido eliminada', 'info');
     toba::zona()->resetear();
     admin_util::refrescar_editor_item();
 }
Example #23
0
 /**
  * Retorna el html y js localizado de un componente y sus dependencias.
  * Pensado como respuesta a una solicitud AJAX
  */
 protected function servicio__html_parcial($objetos)
 {
     echo "[--toba--]";
     //-- Se reenvia el encabezado
     $this->tipo_pagina()->barra_superior();
     echo "</div>";
     //--- Parte superior de la zona
     if (toba::solicitud()->hay_zona() && toba::zona()->cargada()) {
         toba::zona()->generar_html_barra_superior();
     }
     //--- Se incluyen botones en la botonera de la operacion
     $this->generar_html_botonera_sup($objetos);
     echo "[--toba--]";
     $ok = true;
     try {
         //--- Se envia el HTML
         foreach ($objetos as $objeto) {
             $objeto->generar_html();
         }
     } catch (toba_error $e) {
         $ok = false;
         toba::logger()->error($e, 'toba');
         $mensaje = $e->get_mensaje();
         $mensaje_debug = null;
         if (toba::logger()->modo_debug()) {
             $mensaje_debug = $e->get_mensaje_log();
         }
         toba::notificacion()->error($mensaje, $mensaje_debug);
     }
     echo "[--toba--]";
     //-- Se envia info de debug
     if (toba_editor::modo_prueba()) {
         $item = toba::solicitud()->get_datos_item('item');
         $accion = toba::solicitud()->get_datos_item('item_act_accion_script');
         toba_editor::generar_zona_vinculos_item($item, $accion, false);
     }
     echo "[--toba--]";
     //--- Se envian los consumos js
     $consumos = array();
     foreach ($objetos as $objeto) {
         $consumos = array_merge($consumos, $objeto->get_consumo_javascript());
     }
     echo "toba.incluir(" . toba_js::arreglo($consumos, false) . ");\n";
     echo "[--toba--]";
     //--- Se envia el javascript
     //Se actualiza el vinculo del form
     $autovinculo = toba::vinculador()->get_url();
     echo "document.formulario_toba.action='{$autovinculo}'\n";
     toba::vinculador()->generar_js();
     toba_js::cargar_definiciones_runtime();
     if ($ok) {
         try {
             foreach ($objetos as $objeto) {
                 //$objeto->servicio__html_parcial();
                 $objeto_js = $objeto->generar_js();
                 echo "\nwindow.{$objeto_js}.iniciar();\n";
             }
         } catch (toba_error $e) {
             toba::logger()->error($e, 'toba');
             $mensaje_debug = null;
             if (toba::logger()->modo_debug()) {
                 $mensaje_debug = $e->get_mensaje_log();
             }
             toba::notificacion()->error($e->get_mensaje(), $mensaje_debug);
         }
     }
     toba::notificacion()->mostrar(false);
     toba::acciones_js()->generar_js();
     $this->generar_analizador_estadistico();
 }