From: Leandro Lucarella Date: Fri, 4 Jul 2003 21:34:42 +0000 (+0000) Subject: Se completa la primera alfa. Ahora se hace todo desde el index.php. X-Git-Tag: svn_import~61 X-Git-Url: https://git.llucax.com/mecon/ai.git/commitdiff_plain/4d96a4e9e14558cb4b0d546041300ae0fa499d65?ds=sidebyside Se completa la primera alfa. Ahora se hace todo desde el index.php. --- diff --git a/sistema/local_lib/AIForm.php b/sistema/local_lib/AIForm.php index 6eff1b0..4c6b423 100644 --- a/sistema/local_lib/AIForm.php +++ b/sistema/local_lib/AIForm.php @@ -58,6 +58,10 @@ class AIForm extends MECON_HTML_QuickForm { function iniciar(&$obj, $accion = ALTA) // ~X2C { $clase = get_class($obj); + $s_clase = ucfirst($clase); + if ($clase == 'gruposecciones') { + $s_clase = 'Grupo de Secciones'; + } $padre = $clase.'_padre'; switch ($accion) { case BAJA: @@ -72,20 +76,20 @@ class AIForm extends MECON_HTML_QuickForm { } // Construyo con el padre y seteos generales. $this->setRendererOpts(array('width' => '400')); - $this->addElement('header','cabecera', "$s_accion Servicio"); + $this->addElement('header','cabecera', $s_accion . ' ' . $s_clase); // Elementos. if ($accion & (BAJA | MODIFICACION)) { $fId =& $this->addElement('text', $clase, 'Identificador'); $fId->setValue($obj->$clase); $fId->freeze(); } - if ($clase == 'grupo' or $clase == 'servicio') { - $fPadre =& $this->addElement('text', $padre, 'Servicio padre'); + if ($clase == 'gruposecciones' or $clase == 'servicio') { + $fPadre =& $this->addElement('text', $padre, 'Padre'); $fNombre =& $this->addElement('text', 'nombre', 'Nombre'); // Validación. $this->addRule('nombre','Debe ingresar un nombre.', 'required'); - $this->addRule($padre, 'Debe ingresar un servicio padre.', 'required'); - $this->addRule($padre, 'El servicio padre debe ser un número natural.', + $this->addRule($padre, 'Debe ingresar un padre.', 'required'); + $this->addRule($padre, 'El padre debe ser un número natural.', 'regex', '/^\d*$/'); // Carga datos. if ($accion & (BAJA | MODIFICACION)) { diff --git a/sistema/www/index.php b/sistema/www/index.php index b49b766..fd28d80 100644 --- a/sistema/www/index.php +++ b/sistema/www/index.php @@ -1,5 +1,5 @@ setEspacios(false); -$MARCO->addBody(new HTML_Image('images/home', 'Adminitrador de Intranet')); +// Averiguo si estoy administrando algún tipo de objeto. {{{ +$tipo = null; +if (@$_SERVER['PATH_INFO']) { + $tmp = ltrim($_SERVER['PATH_INFO'], '/'); + if ($tmp == 'grupo') { + $tipo = $tmp; + $clase = 'GrupoSecciones'; + $tabla = 'grupo_secciones'; + } elseif ($tmp == 'servicio') { + $tipo = $tmp; + $clase = 'Servicio'; + $tabla = $tipo; + } elseif ($tmp == 'sistema') { + $tipo = $tmp; + $clase = 'Sistema'; + $tabla = $tipo; + } else { // No hay un objeto válido para administrar. + header('Location: '.$_SERVER['SCRIPT_NAME']); + } +} +// }}} + +// Si tiene una clase, estamos editando algo. {{{ +if ($tipo) { + // Creo el árbol con los servicios. {{{ + $dbdata = array( + 'db' => &$DB, + 'tabla' => $tabla, + 'id' => $tipo, + 'nombre' => $tipo, + 'prepend_link' => $tipo . '?accion='.MODIFICACION.'&id=' + ); + if ($tipo == 'grupo' or $tipo == 'servicio') { + $dbdata['nombre'] = 'nombre'; + $dbdata['id_padre'] = $tipo . '_padre'; + } + $arbol = new HTML_ArbolDB($dbdata, '/MECON/images/arbol_noticias.gif'); + // }}} + + // Creo un objeto y seteo su id. {{{ + require_once "$clase.php"; + $obj = new $clase; + $obj->$tipo = @$_REQUEST['id']; + // }}} + + // Creo formulario. {{{ + $form =& new AIForm; + // }}} + + // Verifico que la acción sea válida. {{{ + switch(@$_REQUEST['accion']) { + case BAJA: + case MODIFICACION: + $accion = $_REQUEST['accion']; + break; + default: + $accion = ALTA; + } + // }}} + + // Verifico si ya se envio el formulario. {{{ + $botones = $form->getSubmitValue('botones'); + if ($boton = @join('', array_keys($botones))) { + $boton = $boton . '_' . strtolower($botones[$boton]); + } + switch ($boton) { + case 'aceptar_agregar': + $accion = ALTA; + break; + case 'modificar_borrar': + // Viene de modificar, hay que confirmar primero. + $a_confirmar = true; + case 'aceptar_borrar': + $accion = BAJA; + $obj->$tipo = $form->getSubmitValue($tipo); + break; + case 'borrar_cancelar': + // Indico que viene de un formulario cancelado. + $cancelado = true; + case 'aceptar_modificar': + $accion = MODIFICACION; + $obj->$tipo = $form->getSubmitValue($tipo); + break; + } + // }}} + + // Inicio el formulario, cargando datos de ser necesario. {{{ + if ($accion & (BAJA | MODIFICACION)) { + $err =& $obj->cargar($DB); + if (PEAR::isError($err)) { + die($err->getMessage()); + } + $form->iniciar($obj, $accion); + } else { + $accion = ALTA; + $form->iniciar($obj); + } + // }}} + + // Freezo de ser necesario. {{{ + if (@$a_confirmar) { + $form->freeze(); + } + // }}} + + // Me fijo si se cargo un formulalrio y si es válido. {{{ + if ($form->validate()) { + switch ($accion) { + case ALTA: // {{{ + $form->llenarObjeto($obj); + $err =& $obj->guardar($DB); + if (PEAR::isError($err)) { + die($err->getMessage()); + } + header(sprintf('Location: %s?accion=%d&id=%d', + $tipo, MODIFICACION, $obj->$tipo)); + exit; + break; + // }}} + case BAJA: // {{{ + if (!@$a_confirmar) { + $form->llenarObjeto($obj); + $err =& $obj->borrar($DB); + if (PEAR::isError($err)) { + die($err->getMessage()); + } + header("Location: $tipo"); + exit; + } + break; + // }}} + case MODIFICACION: // {{{ + if (!@$cancelado) { + $form->llenarObjeto($obj); + $err =& $obj->guardar($DB); + if (PEAR::isError($err)) { + die($err->getMessage()); + } + header(sprintf('Location: %s?accion=%d&id=%d', + $tipo, MODIFICACION, $obj->$tipo)); + exit; + } + break; + // }}} + } + } + // }}} + + // Agrego al cuerpo de la página las cosas que voy a dibujar. {{{ + $LAYOUT->setCellContents(0, 0, $arbol); + $LAYOUT->setCellContents(0, 2, $form); + $MARCO->addBody($LAYOUT); + // }}} +// }}} + +// No se está editando nada, agrego al cuerpo de la página la pantalla de entrada {{{ +} else { + require_once 'HTML/Image.php'; + $MARCO->setEspacios(false); + $MARCO->addBody(new HTML_Image('images/home', 'Adminitrador de Intranet')); +} +// }}} + +// Dibujo. {{{ $MARCO->display(); +// }}} ?> diff --git a/sistema/www/sistemas.php b/sistema/www/sistemas.php index 8309c38..60a4630 100644 --- a/sistema/www/sistemas.php +++ b/sistema/www/sistemas.php @@ -1,5 +1,5 @@ addBody("SISTEMAS"); +// Requires. {{{ +require_once 'MECON/HTML/Arbol/ArbolDB.php'; +require_once 'AIForm.php'; +require_once 'Sistema.php'; +// }}} + +// Creo el árbol con los servicios. {{{ +$dbdata = array( + 'db' => &$DB, + 'tabla' => 'sistema', + 'id' => 'sistema', + 'nombre' => 'sistema', + 'prepend_link' => 'sistema?accion='.MODIFICACION.'&id=' +); +$arbol = new HTML_ArbolDB($dbdata, '/MECON/images/arbol_noticias.gif'); +// }}} + +// Creo un servicio y seteo su id. {{{ +$sistema = new Sistema; +$sistema->sistema = @$_REQUEST['id']; +// }}} + +// Creo formulario. {{{ +$form =& new AIForm; +// }}} + +// Verifico que la accion sea válida. {{{ +switch(@$_REQUEST['accion']) { + case BAJA: + case MODIFICACION: + $accion = $_REQUEST['accion']; + break; + default: + $accion = ALTA; +} +// }}} + +// Verifico si ya se envio el formulario. {{{ +$botones = $form->getSubmitValue('botones'); +if ($boton = @join('', array_keys($botones))) { + $boton = $boton . '_' . strtolower($botones[$boton]); +} +switch ($boton) { + case 'aceptar_agregar': + $accion = ALTA; + break; + case 'modificar_borrar': + // Viene de modificar, hay que confirmar primero. + $a_confirmar = true; + case 'aceptar_borrar': + $accion = BAJA; + $sistema->sistema = $form->getSubmitValue('sistema'); + break; + case 'borrar_cancelar': + // Indico que viene de un formulario cancelado. + $cancelado = true; + case 'aceptar_modificar': + $accion = MODIFICACION; + $sistema->sistema = $form->getSubmitValue('sistema'); + break; +} +// }}} + +// Inicio el formulario, cargando datos de ser necesario. {{{ +if ($accion & (BAJA | MODIFICACION)) { + $err =& $sistema->cargar($DB); + if (PEAR::isError($err)) { + die($err->getMessage()); + } + $form->iniciar($sistema, $accion); +} else { + $accion = ALTA; + $form->iniciar($sistema); +} +// }}} + +// Freezo de ser necesario. {{{ +if (@$a_confirmar) { + $form->freeze(); +} +// }}} + +// Me fijo si se cargo un formulalrio y si es válido. {{{ +if ($form->validate()) { + switch ($accion) { + case ALTA: + $form->llenarObjeto($sistema); + $err =& $sistema->guardar($DB); + if (PEAR::isError($err)) { + die($err->getMessage()); + } + header(sprintf('Location: sistema?accion=%d&id=%d', + MODIFICACION, $sistema->sistema)); + exit; + break; + case BAJA: + if (!@$a_confirmar) { + $form->llenarObjeto($sistema); + $err =& $sistema->borrar($DB); + if (PEAR::isError($err)) { + die($err->getMessage()); + } + header('Location: sistema'); + exit; + } + break; + case MODIFICACION: + if (!@$cancelado) { + $form->llenarObjeto($sistema); + $err =& $sistema->guardar($DB); + if (PEAR::isError($err)) { + die($err->getMessage()); + } + header(sprintf('Location: sistema?accion=%d&id=%d', + MODIFICACION, $sistema->sistema)); + exit; + } + break; + } +} +$body =& $form; +// }}} + +// Dibujo. {{{ +$LAYOUT->setCellContents(0, 0, $arbol); +$LAYOUT->setCellContents(0, 2, $body); +$MARCO->addBody($LAYOUT); $MARCO->display(); +// }}} ?>