<XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
</XMI.header>
<XMI.content>
- <docsettings viewid="412" documentation="" uniqueid="509" />
+ <docsettings viewid="412" documentation="" uniqueid="510" />
<umlobjects>
<UML:Class stereotype="" package="" xmi.id="413" abstract="0" documentation="Servicio." name="Servicio" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="465" type="void" abstract="0" documentation="" name="Servicio" static="0" scope="200" >
<UML:Class stereotype="" package="" xmi.id="504" abstract="0" documentation="x2c:extern" name="DB" static="0" scope="200" />
<UML:Class stereotype="" package="" xmi.id="507" abstract="0" documentation="Formularios para el Administrador de Intranet." name="AIForm" static="0" scope="200" >
<UML:Operation stereotype="" package="" xmi.id="509" type="void" abstract="0" documentation="Construye un formulario para el objecto especificado." name="iniciar" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="2" value="" type="int" abstract="0" documentation="Tipo de formulario a crear. Puede ser GRUPO, SERVICIO o SISTEMA." name="tipo" static="0" scope="200" />
- <UML:Parameter stereotype="" package="" xmi.id="3" value="" type="int" abstract="0" documentation="Accion que realizará el formulario a crear. Puede ser ALTA, BAJA o MODIFICACION." name="accion" static="0" scope="200" />
<UML:Parameter stereotype="" package="" xmi.id="4" value="" type="&object" abstract="0" documentation="Objeto con el cual rellenar el formulario. Puede ser GrupoSecciones, Servicio o Sistema." name="obj" static="0" scope="200" />
+ <UML:Parameter stereotype="" package="" xmi.id="5" value="ALTA" type="int" abstract="0" documentation="Accion que realizará el formulario a crear. Puede ser ALTA, BAJA o MODIFICACION." name="accion" static="0" scope="200" />
+ </UML:Operation>
+ <UML:Operation stereotype="" package="" xmi.id="510" type="void" abstract="0" documentation="Llena un objeto con los datos del formulario." name="llenarObjeto" static="0" scope="200" >
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&mixed" abstract="0" documentation="Objeto a llenar con los datos del formulario. Puede ser GrupoSecciones, Servicio o Sistema." name="obj" static="0" scope="200" />
</UML:Operation>
</UML:Class>
<UML:Class stereotype="" package="MECON/HTML" xmi.id="508" abstract="0" documentation="x2c:extern" name="QuickForm" static="0" scope="200" />
<widgets>
<UML:ConceptWidget usesdiagramfillcolour="0" width="193" showattsigs="601" usesdiagramusefillcolour="0" x="270" linecolour="#ff0000" y="20" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="238" usefillcolor="1" showattributes="1" xmi.id="413" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="184" showattsigs="601" usesdiagramusefillcolour="0" x="30" linecolour="#ff0000" y="250" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="154" usefillcolor="1" showattributes="1" xmi.id="416" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
- <UML:ConceptWidget usesdiagramfillcolour="0" width="256" showattsigs="601" usesdiagramusefillcolour="0" x="233" linecolour="#ff0000" y="369" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="35" usefillcolor="1" showattributes="1" xmi.id="469" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
- <UML:ConceptWidget usesdiagramfillcolour="0" width="73" showattsigs="601" usesdiagramusefillcolour="0" x="325" linecolour="#ff0000" y="270" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="24" usefillcolor="1" showattributes="0" xmi.id="471" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="256" showattsigs="601" usesdiagramusefillcolour="0" x="233" linecolour="#ff0000" y="347" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="35" usefillcolor="1" showattributes="1" xmi.id="469" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="73" showattsigs="601" usesdiagramusefillcolour="0" x="325" linecolour="#ff0000" y="273" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="24" usefillcolor="1" showattributes="0" xmi.id="471" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
<UML:ConceptWidget usesdiagramfillcolour="0" width="211" showattsigs="601" usesdiagramusefillcolour="0" x="30" linecolour="#ff0000" y="20" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="210" usefillcolor="1" showattributes="1" xmi.id="486" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
- <UML:ConceptWidget usesdiagramfillcolour="0" width="117" showattsigs="601" usesdiagramusefillcolour="0" x="347" linecolour="#ff0000" y="490" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="35" usefillcolor="1" showattributes="1" xmi.id="503" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
- <UML:ConceptWidget usesdiagramfillcolour="0" width="46" showattsigs="601" usesdiagramusefillcolour="0" x="382" linecolour="#ff0000" y="420" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="24" usefillcolor="1" showattributes="0" xmi.id="504" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
- <UML:ConceptWidget usesdiagramfillcolour="0" width="261" showattsigs="601" usesdiagramusefillcolour="0" x="48" linecolour="#ff0000" y="490" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="35" usefillcolor="1" showattributes="1" xmi.id="507" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
- <UML:ConceptWidget usesdiagramfillcolour="0" width="66" showattsigs="601" usesdiagramusefillcolour="0" x="145" linecolour="#ff0000" y="420" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="24" usefillcolor="1" showattributes="0" xmi.id="508" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="117" showattsigs="601" usesdiagramusefillcolour="0" x="57" linecolour="#ff0000" y="481" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="35" usefillcolor="1" showattributes="1" xmi.id="503" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="46" showattsigs="601" usesdiagramusefillcolour="0" x="92" linecolour="#ff0000" y="418" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="24" usefillcolor="1" showattributes="0" xmi.id="504" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="254" showattsigs="601" usesdiagramusefillcolour="0" x="233" linecolour="#ff0000" y="467" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="49" usefillcolor="1" showattributes="1" xmi.id="507" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="66" showattsigs="601" usesdiagramusefillcolour="0" x="327" linecolour="#ff0000" y="399" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="24" usefillcolor="1" showattributes="0" xmi.id="508" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
</widgets>
<messages/>
<associations>
<UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="471" widgetaid="469" documentation="" type="500" >
<linepath>
- <startpoint startx="361" starty="369" />
- <endpoint endx="361" endy="294" />
+ <startpoint startx="361" starty="347" />
+ <endpoint endx="361" endy="297" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="504" widgetaid="503" documentation="" type="500" >
<linepath>
- <startpoint startx="405" starty="490" />
- <endpoint endx="405" endy="444" />
+ <startpoint startx="115" starty="481" />
+ <endpoint endx="115" endy="442" />
</linepath>
</UML:AssocWidget>
<UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="508" widgetaid="507" documentation="" type="500" >
<linepath>
- <startpoint startx="178" starty="490" />
- <endpoint endx="178" endy="444" />
+ <startpoint startx="360" starty="467" />
+ <endpoint endx="360" endy="423" />
</linepath>
</UML:AssocWidget>
</associations>
</listitem>
<listitem open="0" type="813" id="507" label="AIForm" >
<listitem open="0" type="815" id="509" label="iniciar" />
+ <listitem open="0" type="815" id="510" label="llenarObjeto" />
</listitem>
<listitem open="0" type="813" id="486" label="GrupoSecciones" >
<listitem open="0" type="814" id="492" label="antiguedad" />
require_once 'MECON/HTML/QuickForm.php';
// ~X2C
-// Tipo de elementos a manipular.
-define('GRUPO', 1);
-define('SERVICIO', 2);
-define('SISTEMA', 4);
-
-// Acciones.
+// Definicion de acciones.
define('ALTA', 1);
define('BAJA', 2);
define('MODIFICACION', 4);
/**
* Construye un formulario para el objecto especificado.
*
- * @param int $tipo Tipo de formulario a crear. Puede ser GRUPO, SERVICIO o SISTEMA.
- * @param int $accion Accion que realizar?el formulario a crear. Puede ser ALTA, BAJA o MODIFICACION.
* @param object &$obj Objeto con el cual rellenar el formulario. Puede ser GrupoSecciones, Servicio o Sistema.
+ * @param int $accion Accion que realizar?el formulario a crear. Puede ser ALTA, BAJA o MODIFICACION.
*
* @return void
* @access public
*/
- function iniciar($tipo, $accion, &$obj) // ~X2C
+ function iniciar(&$obj, $accion = ALTA) // ~X2C
{
- switch ($tipo) {
- case GRUPO:
- $s_tipo = 'grupo';
- break;
- case SERVICIO:
- $s_tipo = 'servicio';
- break;
- case SISTEMA:
- $s_tipo = 'sistema';
- break;
- }
- $s_padre = $s_tipo.'_padre';
+ $clase = get_class($obj);
+ $padre = $clase.'_padre';
switch ($accion) {
case BAJA:
$s_accion = 'Borrar';
$this->addElement('header','cabecera', "$s_accion Servicio");
// Elementos.
if ($accion & (BAJA | MODIFICACION)) {
- $fId =& $this->addElement('text', $s_tipo, 'Identificador');
- $fId->setValue($obj->servicio);
+ $fId =& $this->addElement('text', $clase, 'Identificador');
+ $fId->setValue($obj->$clase);
$fId->freeze();
}
- if ($tipo & (GRUPO | SERVICIO)) {
- $fPadre =& $this->addElement('text', $s_padre, 'Servicio padre');
+ if ($clase == 'grupo' or $clase == 'servicio') {
+ $fPadre =& $this->addElement('text', $padre, 'Servicio padre');
$fNombre =& $this->addElement('text', 'nombre', 'Nombre');
// Validación.
$this->addRule('nombre','Debe ingresar un nombre.', 'required');
- $this->addRule($s_padre, 'Debe ingresar un servicio padre.', 'required');
- $this->addRule($s_padre, 'El servicio padre debe ser un número natural.',
+ $this->addRule($padre, 'Debe ingresar un servicio padre.', 'required');
+ $this->addRule($padre, 'El servicio padre debe ser un número natural.',
'regex', '/^\d*$/');
// Carga datos.
if ($accion & (BAJA | MODIFICACION)) {
- $fPadre->setValue($obj->$s_padre);
+ $fPadre->setValue($obj->$padre);
$fNombre->setValue($obj->nombre);
}
}
- if ($tipo & SERVICIO) {
+ if ($clase == 'servicio') {
$fDescripcion =& $this->addElement('text', 'descripcion', 'Descripción');
$fLogueo =& $this->addElement('checkbox','logueo', 'Necesita login');
// Validación
$fLogueo->setValue($obj->necesita_logueo);
}
}
- if ($tipo & (SERVICIO | SISTEMA)) {
+ if ($clase == 'servicio' or $clase == 'sistema') {
$fLink =& $this->addElement('text', 'link', 'Enlace');
$fLinkAyuda =& $this->addElement('text', 'link_ayuda', 'Enlace de la ayuda');
$fIcono =& $this->addElement('text', 'icono', 'Ícono');
// Botones.
$fBtnAccion =& parent::createElement('submit', 'aceptar' , $s_accion);
if ($accion & MODIFICACION) {
- $fBtnCancelar =& parent::createElement('submit', 'cancelar' , 'Borrar');
- $fBtnCancelar =& parent::createElement('submit', 'cancelar' , 'Borrar');
- }
- if ($accion & ALTA) {
- $fBtnCancelar =& parent::createElement('reset', 'cancelar', 'Limpiar');
- }
- if ($accion & BAJA) {
- $fBtnCancelar =& parent::createElement('submit', 'cancelar', 'Cancelar');
+ $fBtnCancelar =& parent::createElement('submit', 'modificar' , 'Borrar');
+ } elseif ($accion & ALTA) {
+ $fBtnCancelar =& parent::createElement('reset', 'agregar', 'Limpiar');
+ } elseif ($accion & BAJA) {
+ $fBtnCancelar =& parent::createElement('submit', 'borrar', 'Cancelar');
}
$grupo = array(
&$fBtnAccion,
}
// -X2C
+ // +X2C Operation 510
+ /**
+ * Llena un objeto con los datos del formulario.
+ *
+ * @param mixed &$obj Objeto a llenar con los datos del formulario. Puede ser GrupoSecciones, Servicio o Sistema.
+ *
+ * @return void
+ * @access public
+ */
+ function llenarObjeto(&$obj) // ~X2C
+ {
+ $clase = get_class($obj);
+ $padre = $clase.'_padre';
+ // Elementos.
+ $obj->$clase = $this->getSubmitValue($clase);
+ $obj->habilitado = $this->getSubmitValue('habilitado');
+ if ($clase == 'grupo' or $clase == 'servicio') {
+ $obj->$padre = $this->getSubmitValue($padre);
+ $obj->nombre = $this->getSubmitValue('nombre');
+ }
+ if ($clase == 'servicio') {
+ $obj->descripcion = $this->getSubmitValue('descripcion');
+ $obj->necesita_logueo = $this->getSubmitValue('logueo');
+ }
+ if ($clase == 'servicio' or $clase == 'sistema') {
+ $obj->link = $this->getSubmitValue('link');
+ $obj->link_ayuda = $this->getSubmitValue('link_ayuda');
+ $obj->icono = $this->getSubmitValue('icono');
+ }
+ }
+ // -X2C
+
} // -X2C Class :AIForm
?>
<?php
-// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
+// vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker:
// +--------------------------------------------------------------------+
// | Ministerio de Economía |
// | AI (Administrador de Intranet) |
// $Id$
//
+// Requires. {{{
require_once 'MECON/HTML/Arbol/ArbolDB.php';
require_once 'AIForm.php';
require_once 'Servicio.php';
+// }}}
-// Dibujo el menu de arbol.
+// Creo el árbol con los servicios. {{{
$dbdata = array(
'db' => &$DB,
'tabla' => 'servicio',
'prepend_link' => 'servicios?accion='.MODIFICACION.'&id='
);
$arbol = new HTML_ArbolDB($dbdata, '/MECON/images/arbol_noticias.gif');
+// }}}
-// Creo un servicio y seteo su id.
+// Creo un servicio y seteo su id. {{{
$servicio = new Servicio;
$servicio->servicio = @$_REQUEST['id'];
+// }}}
-// Verifico que la accion sea válida.
+// Creo formulario. {{{
+$form =& new AIForm;
+// }}}
+
+// Verifico que la accion sea válida. {{{
switch(@$_REQUEST['accion']) {
case BAJA:
case MODIFICACION:
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':
+// 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 'borrar':
+ case 'modificar_borrar':
+ // Viene de modificar, hay que confirmar primero.
+ $a_confirmar = true;
+ case 'aceptar_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':
+ case 'borrar_cancelar':
+ // Indico que viene de un formulario cancelado.
+ $cancelado = true;
+ case 'aceptar_modificar':
$accion = MODIFICACION;
$servicio->servicio = $form->getSubmitValue('servicio');
break;
}
+// }}}
-// Cargo datos de ser necesario.
+// Inicio el formulario, cargando datos de ser necesario. {{{
if ($accion & (BAJA | MODIFICACION)) {
$err =& $servicio->cargar($DB);
if (PEAR::isError($err)) {
die($err->getMessage());
}
- $form->iniciar(SERVICIO, $accion, $servicio);
+ $form->iniciar($servicio, $accion);
} else {
$accion = ALTA;
- $form->iniciar(SERVICIO, ALTA, $servicio);
+ $form->iniciar($servicio);
}
+// }}}
-// Freezo de ser necesario.
-if ($freeze) {
+// Freezo de ser necesario. {{{
+if (@$a_confirmar) {
$form->freeze();
}
+// }}}
-// Me fijo si se cargo un formulalrio y si es válido.
+// 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();
+ $form->llenarObjeto($servicio);
+ $err =& $servicio->guardar($DB);
+ if (PEAR::isError($err)) {
+ die($err->getMessage());
+ }
+ header(sprintf('Location: servicios?accion=%d&id=%d',
+ MODIFICACION, $servicio->servicio));
+ exit;
break;
case BAJA:
- if ($form->isFrozen()) {
- $form->freeze();
- $body = 'Tengo que borrar!!!' . $form->toHtml();
- } else {
- $form->freeze();
- $body =& $form;
+ if (!@$a_confirmar) {
+ $form->llenarObjeto($servicio);
+ $err =& $servicio->borrar($DB);
+ if (PEAR::isError($err)) {
+ die($err->getMessage());
+ }
+ header('Location: servicios');
+ exit;
}
break;
case MODIFICACION:
- $form->freeze();
- $body = 'Tengo que modificar!!!' . $form->toHtml();
+ if (!@$cancelado) {
+ $form->llenarObjeto($servicio);
+ $err =& $servicio->guardar($DB);
+ if (PEAR::isError($err)) {
+ die($err->getMessage());
+ }
+ header(sprintf('Location: servicios?accion=%d&id=%d',
+ MODIFICACION, $servicio->servicio));
+ exit;
+ }
break;
}
-} else {
- $body =& $form;
}
+$body =& $form;
+// }}}
-// Dibujo.
+// Dibujo. {{{
$LAYOUT->setCellContents(0, 0, $arbol);
$LAYOUT->setCellContents(0, 2, $body);
$MARCO->addBody($LAYOUT);
$MARCO->display();
+// }}}
?>