//
require_once 'MECON/HTML/Arbol/ArbolDB.php';
-require_once 'MECON/HTML/QuickForm.php';
+require_once 'AIForm.php';
require_once 'Servicio.php';
// Dibujo el menu de arbol.
$dbdata = array(
- 'db' => &$db,
+ 'db' => &$DB,
'tabla' => 'servicio',
'id' => 'servicio',
'nombre' => 'nombre',
'id_padre' => 'servicio_padre',
- 'prepend_link' => 'servicios?id='
+ 'prepend_link' => 'servicios?accion='.MODIFICACION.'&id='
);
$arbol = new HTML_ArbolDB($dbdata, '/MECON/images/arbol_noticias.gif');
-// Creo el formulario.
-$form =& new MECON_HTML_QuickForm();
-$form->setRendererOpts(array('width' => '400'));
-$form->addElement('header','cabecera', 'Agregar Servicio');
-$fServicio =& $form->addElement('static' ,'servicio' , 'Identificador' );
-$fPadre =& $form->addElement('text' ,'padre' , 'Servicio padre' );
-$fNombre =& $form->addElement('text' ,'nombre' , 'Nombre' );
-$fDescripcion =& $form->addElement('text' ,'descripcion' , 'Descripción' );
-$fLink =& $form->addElement('text' ,'link' , 'Enlace' );
-$fLinkAyuda =& $form->addElement('text' ,'linkayuda' , 'Enlace de la ayuda' );
-$fIcono =& $form->addElement('text' ,'icono' , 'Ícono' );
-$fLogueo =& $form->addElement('checkbox' ,'logueo' , 'Necesita login' );
-$fHabilitado =& $form->addElement('checkbox' ,'habilitado' , 'Está habilitado', '', array('checked' => 'checked'));
-$fBtnAceptar =& HTML_QuickForm::createElement('submit' , 'aceptar' , 'Aceptar' );
-$fBtnDeshacer =& HTML_QuickForm::createElement('reset' , 'deshacer', 'Deshacer');
-$fBtnCancelar =& HTML_QuickForm::createElement('submit' , 'cancelar', 'Cancelar');
-$grupo = array(
- &$fBtnAceptar,
- &$fBtnDeshacer,
- &$fBtnCancelar,
-);
-$form->addGroup($grupo, 'botones');
-// Agrego reglas de validación.
-$form->addRule('padre' , 'Debe ingresar un servicio padre.' , 'required');
-$form->addRule('nombre' , 'Debe ingresar un nombre.' , 'required');
-$form->addRule('descripcion', 'Debe ingresar una descripción.' , 'required');
-#$form->addRule('link' , 'Debe ingresar un enlace.' , 'required');
-$form->addRule('padre' , 'El servicio padre debe ser un número natural.' , 'regex' , '/^\d*$/');
-
-// Creo un servicio.
+// Creo un servicio y seteo su id.
$servicio = new Servicio;
+$servicio->servicio = @$_REQUEST['id'];
+
+// Verifico que la accion sea válida.
+switch(@$_REQUEST['accion']) {
+ case BAJA:
+ case MODIFICACION:
+ $accion = $_REQUEST['accion'];
+ break;
+ default:
+ $accion = ALTA;
+}
+
+// Creo formulario.
+$form =& new AIForm;
+
+// Verifico si ya se envio el formulario.
+$freeze = false;
+switch (@strtolower(join('', ($form->getSubmitValue('botones'))))) {
+ case 'agregar':
+ $accion = ALTA;
+ break;
+ case 'borrar':
+ $accion = BAJA;
+ $servicio->servicio = $form->getSubmitValue('servicio');
+ // Es la primera "llamada" a borrar asi que indico que hay que
+ // freezarlo primero para confirmar.
+ $freeze = true;
+ break;
+ case 'modificar':
+ case 'cancelar':
+ $accion = MODIFICACION;
+ $servicio->servicio = $form->getSubmitValue('servicio');
+ break;
+}
-// Si viene un servicio por REQUEST, lo cargo.
-if (@$_REQUEST['id']) {
- $servicio->servicio = $_REQUEST['id'];
- $err =& $servicio->cargar($db);
+// Cargo datos de ser necesario.
+if ($accion & (BAJA | MODIFICACION)) {
+ $err =& $servicio->cargar($DB);
if (PEAR::isError($err)) {
die($err->getMessage());
}
- $fServicio->setValue($servicio->servicio);
- $fPadre->setValue($servicio->padre);
- $fNombre->setValue($servicio->nombre);
- $fDescripcion->setValue($servicio->descripcion);
- $fLink->setValue($servicio->link);
- $fLinkAyuda->setValue($servicio->linkAyuda);
- $fIcono->setValue($servicio->icono);
- $fLogueo->setValue($servicio->necesitaLogueo);
- $fHabilitado->setValue($servicio->habilitado);
+ $form->iniciar(SERVICIO, $accion, $servicio);
+} else {
+ $accion = ALTA;
+ $form->iniciar(SERVICIO, ALTA, $servicio);
+}
+
+// Freezo de ser necesario.
+if ($freeze) {
+ $form->freeze();
+}
+
+// Me fijo si se cargo un formulalrio y si es válido.
+if ($form->validate()) {
+/* $botones =& $form->getElement('botones');
+ $botones =& $botones->getElements();
+ $btnAceptar =& $botones[0];
+ $btnCancelar =& $botones[1];
+ $body = $btnAceptar->getValue() . '<BR>' . $btnCancelar->getValue() . '<BR>';
+ switch (strtolower($btnAceptar->getValue())) {
+ case 'agregar':
+ $body .= 'Tengo que agregar!!!';
+ break;
+ case 'modificar':
+ if (strtolower($btnCancelar->getValue()) == 'borrar') {
+ $body .= 'Tengo que poner confirmación para borrar!!!';
+ } else {
+ $body .= 'Tengo que modificar!!!';
+ }
+ break;
+ case 'borrar':
+ if (strtolower($btnCancelar->getValue()) == 'cancelar') {
+ $body .= 'Tengo que poner para modificar de nuevo!!!';
+ } else {
+ $body .= 'Tengo que borrar!!!';
+ }
+ break;
+ }*/
+ switch ($accion) {
+ case ALTA:
+ $form->freeze();
+ $body = 'Tengo que agregar!!!' . $form->toHtml();
+ break;
+ case BAJA:
+ if ($form->isFrozen()) {
+ $form->freeze();
+ $body = 'Tengo que borrar!!!' . $form->toHtml();
+ } else {
+ $form->freeze();
+ $body =& $form;
+ }
+ break;
+ case MODIFICACION:
+ $form->freeze();
+ $body = 'Tengo que modificar!!!' . $form->toHtml();
+ break;
+ }
+} else {
+ $body =& $form;
}
// Dibujo.
$LAYOUT->setCellContents(0, 0, $arbol);
-$LAYOUT->setCellContents(0, 2, $form->toHtml());
+$LAYOUT->setCellContents(0, 2, $body);
$MARCO->addBody($LAYOUT);
$MARCO->display();