]> git.llucax.com Git - mecon/ai.git/blobdiff - sistema/www/servicios.php
- Se crea una subclase de MECON_HTML_QuickForm que maneja todos los
[mecon/ai.git] / sistema / www / servicios.php
index 7ff6a8ef843cbbe5ebd5787fec189cf774321e6a..d4087ebd653d4fc3738ba2f6ea3fcbe102ca174a 100644 (file)
 //
 
 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();