- Validación AJAX quitada

- Organización de candidato (pestaña Resumen y Capacidades Profesionales)

git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_IntranetNueva/trunk@34 77cfc57b-8ef4-1849-9df6-4a38aa5da120
This commit is contained in:
David Arranz 2012-03-27 14:43:43 +00:00
parent 0b8c8f8e3f
commit ebb10d87b0
27 changed files with 572 additions and 341 deletions

9
www/.htaccess Normal file
View File

@ -0,0 +1,9 @@
RewriteEngine on
RewriteBase /intranet/
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php

View File

@ -64,4 +64,13 @@ span.timestamp {
.disabled {
color: #999;
}
}
/**RESUMEN**/
.resumen { padding: 25px; position: relative; overflow: hidden; }
.resumen .title { color: #006699; }
.resumen_table { border-collape: collapse; }
.resumen_table thead td { border-bottom: 1px solid #ccc; padding: 5px 0; font-weight: bold; }
.resumen_table .subtotal td { font-weight: bold; }
.resumen_table tr td.line { border-bottom: 1px solid #ccc; }

19
www/css/gridview3.css Normal file
View File

@ -0,0 +1,19 @@
.sTable3 {
width: 100%;
border-collapse: collapse;
border-top: 1px solid #ccc;
}
.sTable3 thead th {
padding: 5px 10px;
background: #eee url(../images/thead.png) repeat-x top left;
border-bottom: 1px solid #ccc;
}
.sTable3 tbody tr td {
padding: 10px;
background: #fff;
border-top: 1px solid #eee;
border-left: 1px solid #eee;
}
.sTable3 tbody tr.even td {
background: #fcfcfc;
}

View File

@ -28,14 +28,14 @@
.ui-tabs-hide { display: none; }
.ui-tabs-panel { padding: 15px; }
/*
.tabs2 { border: 0; }
.tabs2 .ui-tabs-nav { padding: 5px 0 0 5px; border: 1px solid #6082AD; background: #688AB5 url(../../images/titlebg.png) repeat-x top left; }
.tabs2 .ui-tabs-nav li:last-child a { -moz-border-radius: 0 3px 0 0; -webkit-border-radius: 0 3px 0 0; border-radius: 0 3px 0 0; }
.tabs2 .ui-tabs-panel { border: 1px solid #ccc; border-top: 0; }
.tabs2 .ui-tabs-nav li a { background: #a8c0df; border: 0; color: #fff; margin-right: 1px; }
.tabs2 .ui-tabs-nav li.ui-state-active a { background: #fcfcfc; color: #688AB5; border-bottom: 1px solid #fcfcfc; }
*/
/** ACCORDION **/
.accordion { border: 1px solid #ccc; background: #fcfcfc; overflow: hidden; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }

View File

@ -11,6 +11,7 @@
@import url('plugins/jquery.alerts.css');
@import url('plugins/fullcalendar.css');
@import url('tabs.css');
@import url('custom.css');
html, body, div, span, applet, object, iframe,
@ -521,15 +522,6 @@ input[type=radio], input[type=checkbox] { margin: 0; padding: 0; vertical-align:
.iconlink2:hover { background-position: 0 -37px; text-decoration: none; }
.iconlink2 img { vertical-align: middle; display: inline-block; }
/**INVOICE**/
.invoice { border: 1px solid #ccc; background: #f7f7f7; -moz-box-shadow: 1px 1px 3px #ddd; -webkit-box-shadow: 1px 1px 3px #ddd; box-shadow: 1px 1px 3px #ddd; }
.invoice_inner { padding: 20px; position: relative; overflow: hidden; }
.invoice .title { font-size: 18px; float: right; }
.invoicetable { border-collape: collapse; }
.invoicetable thead td { border-bottom: 1px solid #ccc; padding: 5px 0; font-weight: bold; }
.invoicetable .subtotal td { font-weight: bold; }
.invoicetable tr td.line { border-bottom: 1px solid #ccc; }
/** FOOTER**/
.footer { background: #333; padding: 10px 0; }
.footerinner { padding: 0 20px; text-align: right; font-size: 11px; color: #ccc; }

11
www/css/tabs.css Normal file
View File

@ -0,0 +1,11 @@
.tabs { border: 1px solid #ccc; background: #fcfcfc; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }
.tabs { -moz-box-shadow: 1px 1px 2px #ddd; -webkit-box-shadow: 1px 1px 2px #ddd; box-shadow: 1px 1px 2px #ddd; }
.tabs-nav { list-style: none; background: #eee url(../images/thead.png) repeat-x top left; border-bottom: 1px solid #ccc; }
.tabs-nav { position: relative; height: 41px; -moz-border-radius: 3px 3px 0 0; -webkit-border-radius: 3px 3px 0 0; border-radius: 3px 3px 0 0; }
.tabs-nav li { display: inline-block; float: left; }
.tabs-nav li:first-child a { -moz-border-radius: 3px 0 0 0; -webkit-border-radius: 3px 0 0 0; border-radius: 3px 0 0 0; }
.tabs-nav li a { display: block; padding: 10px 20px; background: #eee; color: #333; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; }
.tabs-nav li a:hover { text-decoration: none; background: #e7e7e7; }
.tabs-nav li.current a { background: #fcfcfc; color: #069; border-bottom: 1px solid #fcfcfc; }
.tabs-hide { display: none; }
.tabs-panel { padding: 15px; }

View File

@ -33,12 +33,7 @@ jQuery(document).ready(function(){
}
});
/**
* Tab
**/
jQuery( "#tabs" ).tabs();
/**
* Accordion
**/

View File

@ -1 +0,0 @@
deny from all

View File

@ -33,14 +33,15 @@ $config = array(
'allowAutoLogin'=>true,
),
// uncomment the following to enable URLs in path-format
/*'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
/*'urlManager' => array(
'urlFormat' => 'path',
// Ocultar 'index.php' de las URL's.
// Hay que poner un fichero .htaccess con la redirección.
'showScriptName' => false,
'urlSuffix' => '.html',
'rules' => require(dirname(__FILE__) . '/url_rules.php'),
),*/
'errorHandler'=>array(
// use 'site/error' action to display errors
'errorAction'=>'site/error',

View File

@ -0,0 +1,43 @@
<?php
return array(
// REST patterns
/*array('api/list', 'pattern' => 'api/<model:\w+>', 'verb' => 'GET'),
array('api/view', 'pattern' => 'api/<model:\w+>/<id:\d+>', 'verb' => 'GET'),
array('api/update', 'pattern' => 'api/<model:\w+>/<id:\d+>', 'verb' => 'PUT'),
array('api/execute', 'pattern' => 'api/execute', 'verb' => 'POST'),
array('api/delete', 'pattern' => 'api/<model:\w+>/<id:\d+>', 'verb' => 'DELETE'),
array('api/create', 'pattern' => 'api/<model:\w+>', 'verb' => 'POST'),*/
'/usuarios/' => 'usuario/index',
'/candidatos/' => 'candidato/index',
'/candidato/<_a:(create)>' => 'candidato/<_a>', // <- ???????????????
'/candidatos/<id:\d+>' => 'candidato/view',
'/candidatos/<id:\d+>/capacidades' => 'candidatoCapacidad/index',
/*
'/projects/' => 'project/index',
'/project/<_a:(create)>' => 'project/<_a>',
'/projects/<identifier>' => 'project/view',
'/projects/<identifier>/issues' => 'issue/index',
'/projects/<identifier>/changesets' => 'changeset/index',
'/projects/<identifier>/issue/<_a:(create)>' => 'issue/<_a>',
'/projects/<identifier>/member/<_a:(create)>' => 'member/<_a>',
'/projects/<identifier>/milestone/<_a:(create)>' => 'milestone/<_a>',
'/projects/<identifier>/repository/<_a:(create)>' => 'repository/<_a>',
'/projects/<identifier>/issueCategory/<_a:(create)>' => 'issueCategory/<_a>',
'/projects/<identifier>/issue/<action:\w+>/<id:\d+>' => 'issue/<action>',
'/projects/<identifier>/issues/<action:\w+>/<id:\d+>' => 'issue/<action>',
'/projects/<identifier>/member/<action:\w+>/<id:\d+>' => 'member/<action>',
'/projects/<identifier>/milestone/<action:\w+>/<id:\d+>' => 'milestone/<action>',
'/projects/<identifier>/repository/<action:\w+>/<id:\d+>' => 'repository/<action>',
'/projects/<identifier>/issueCategory/<action:\w+>/<id:\d+>' => 'issueCategory/<action>',
'/projects/<identifier>/changeset/<action:\w+>/<id:\d+>' => 'changeset/<action>',
'/projects/<identifier>/<_a:(activity|roadmap|code|settings)>' => 'project/<_a>',
*/
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
//'candidatos/<identifier>/feed' => array('project/feed', 'urlSuffix' => '.xml', 'caseSensitive' => false),
//'/issues/' => 'issue/index',
);

View File

@ -48,29 +48,34 @@ class CandidatoCapacidadController extends Controller
}
/**
* Creates a new model.
* If creation is successful, the browser will be redirected to the 'view' page.
*/
public function actionCreate()
* Crea una nueva capacidad asociado al candidato indicado.
* @param integer $cid el ID del candidato
*/
public function actionCreate($cid)
{
$model=new CandidatoCapacidad;
$model=new CandidatoCapacidad;
$model->candidato_id = $cid;
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model);
$candidato = Candidato::model()->findByPk($cid);
if(isset($_POST['CandidatoCapacidad']))
{
print_r($_POST);
$model->attributes=$_POST['CandidatoCapacidad'];
if($model->save())
$this->redirect(array('view','id'=>$model->id));
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['CandidatoCapacidad']))
{
$model->attributes=$_POST['CandidatoCapacidad'];
if($model->save()) {
Yii::app()->user->setFlash('success', Yii::t('intranet', 'Capacidad creada correctamente.'));
$this->redirect(array('index', 'cid'=>$cid));
}
}
$this->render('create',array(
'model'=>$model,
));
$this->render('create',array(
'model'=>$model,
'candidato'=>$candidato,
));
}
/**
* Updates a particular model.
* If update is successful, the browser will be redirected to the 'view' page.
@ -78,21 +83,25 @@ class CandidatoCapacidadController extends Controller
*/
public function actionUpdate($id)
{
$model=$this->loadModel($id);
$model=$this->loadModel($id);
$candidato = Candidato::model()->findByPk($model->candidato_id);
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['CandidatoCapacidad']))
{
$model->attributes=$_POST['CandidatoCapacidad'];
if($model->save())
$this->redirect(array('view','id'=>$model->id));
if(isset($_POST['CandidatoCapacidad']))
{
$model->attributes=$_POST['CandidatoCapacidad'];
if($model->save()) {
Yii::app()->user->setFlash('success', Yii::t('intranet', 'Capacidad actualizada correctamente.'));
$this->redirect(array('index', 'cid'=>$candidato->id));
}
}
$this->render('update',array(
'model'=>$model,
));
$this->render('update',array(
'model'=>$model,
'candidato'=>$candidato,
));
}
/**
@ -102,28 +111,39 @@ class CandidatoCapacidadController extends Controller
*/
public function actionDelete($id)
{
if(Yii::app()->request->isPostRequest)
{
// we only allow deletion via POST request
$this->loadModel($id)->delete();
if(Yii::app()->request->isPostRequest)
{
// we only allow deletion via POST request
$this->loadModel($id)->delete();
Yii::app()->user->setFlash('success', Yii::t('intranet', 'Capacidad eliminada correctamente.'));
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if(!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
}
else
throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if(!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
}
else
throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
}
/**
* Lists all models.
*/
public function actionIndex()
public function actionIndex($cid)
{
$dataProvider=new CActiveDataProvider('CandidatoCapacidad');
$this->render('index',array(
'dataProvider'=>$dataProvider,
));
$this->layout = '//layouts/candidato';
$candidato = Candidato::model()->findByPk($cid);
$dataProvider = new CActiveDataProvider('CandidatoCapacidad', array(
'criteria'=>array(
'condition' => 'candidato_id='.$cid,
),
));
$this->render('index',array(
'dataProvider'=>$dataProvider,
'candidato'=>$candidato,
));
}
/**

View File

@ -7,14 +7,14 @@ class CandidatoController extends Controller
* using two-column layout. See 'protected/views/layouts/column2.php'.
*/
public $layout='//layouts/default';
/**
* @return array action filters
*/
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
'accessControl', // perform access control for CRUD operations
);
}
@ -26,6 +26,12 @@ class CandidatoController extends Controller
public function accessRules()
{
return array(
array('allow',
'actions' => array('index','view','create','update','delete','admin'),
'users' => array('*'),
),
);
/*return array(
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('index','view','create','update','delete','admin'),
'users'=>array('@'),
@ -33,7 +39,7 @@ class CandidatoController extends Controller
array('deny', // deny all users
'users'=>array('*'),
),
);
);*/
}
/**
@ -42,9 +48,10 @@ class CandidatoController extends Controller
*/
public function actionView($id)
{
$this->render('view',array(
'model'=>$this->loadModel($id),
));
$this->layout='//layouts/candidato';
$this->render('view',array(
'model'=>$this->loadModel($id),
));
}
/**
@ -63,49 +70,7 @@ class CandidatoController extends Controller
$titulacionesValidas = array();
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model);
/*if(isset($_POST['Candidato']))
{
$model->attributes=$_POST['Candidato'];
$foto=CUploadedFile::getInstance($model,'foto');
if ($model->validate())
{
$foundInvalidChild = false;
$arrayIdiomas = array();
if(isset($_POST['CandidatoIdioma']))
{
foreach ($_POST['CandidatoIdioma'] as $idioma)
{
$CandidatoIdioma = new CandidatoIdioma;
$CandidatoIdioma->attributes = $idioma;
if ($model->id)
$CandidatoIdioma->candidato_id = $model->id;
if (!$CandidatoIdioma->validate())
$foundInvalidChild = true;
$arrayIdiomas[] = $CandidatoIdioma;
}
}
}
if (!$foundInvalidChild && $model->save()) {
$this->guardarFoto($model->id, $foto);
// Guardar los idiomas
foreach($arrayIdiomas as $CandidatoIdioma)
{
$CandidatoIdioma->candidato_id = $model->id;
$CandidatoIdioma->save();
}
Yii::app()->user->setFlash('success', "Candidato dado de alta correctamente.");
$this->redirect(array('index'));
}
}*/
// $this->performAjaxValidation($model);
if (isset($_POST['Candidato'])) {
$model->attributes=$_POST['Candidato'];
@ -113,25 +78,40 @@ class CandidatoController extends Controller
$foundInvalidChild = false;
if ($model->validate()) {
if (!MultiModelForm::validate($idioma, $idiomasValidos, $idiomasBorrados))
$foundInvalidChild = true;
if (!MultiModelForm::validate($idioma, $idiomasValidos, $idiomasBorrados)) {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Algún idioma del candidato no es válido.'));
$foundInvalidChild = true;
}
if (!MultiModelForm::validate($titulacion, $titulacionesValidas, $titulacionesBorradas))
$foundInvalidChild = true;
if (!MultiModelForm::validate($titulacion, $titulacionesValidas, $titulacionesBorradas)) {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Alguna titulación del candidato no es válida.'));
$foundInvalidChild = true;
}
} else {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Algún dato del candidato no es válido.'));
}
if (!$foundInvalidChild && $model->save() ) {
$masterValues = array ('candidato_id'=>$model->id);
if (MultiModelForm::save($idioma, $idiomasValidos, $idiomasBorrados, $masterValues) &&
MultiModelForm::save($titulacion, $titulacionesValidas, $titulacionesBorradas, $masterValues))
{
if (!MultiModelForm::save($idioma, $idiomasValidos, $idiomasBorrados, $masterValues)) {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar los idiomas del candidato.'));
$foundInvalidChild = true;
}
if (!MultiModelForm::save($titulacion, $titulacionesValidas, $titulacionesBorradas, $masterValues)) {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar las titulaciones del candidato.'));
$foundInvalidChild = true;
}
if (!$foundInvalidChild) {
$this->guardarFoto($model->id, $foto);
Yii::app()->user->setFlash('success', "Candidato dado de alta correctamente.");
$url=$this->createUrl('index', array('id' => $model->id));
Yii::app()->user->setFlash('success', Yii::t('intranet', 'Candidato dado de alta correctamente.'));
$url=$this->createUrl('view', array('id' => $model->id));
$this->redirect($url);
}
}
} else {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar el candidato.'));
}
}
$this->render('create',array(
@ -160,92 +140,49 @@ class CandidatoController extends Controller
$titulacionesValidas = array();
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model);
/*if(isset($_POST['Candidato']))
{
$foto=CUploadedFile::getInstance($model,'foto');
$model->attributes=$_POST['Candidato'];
if ($model->validate())
{
$foundInvalidChild = false;
$arrayIdiomas = array();
if(isset($_POST['CandidatoIdioma']))
{
foreach ($_POST['CandidatoIdioma'] as $idioma)
{
//$CandidatoIdioma = CandidatoIdioma::model()->findB;
//CandidatoIdioma::model()->deleteAllByAttributes($arrayIdiomas)
$CandidatoIdioma->attributes = $idioma;
if ($model->id)
$CandidatoIdioma->candidato_id = $model->id;
if (!$CandidatoIdioma->validate())
$foundInvalidChild = true;
$arrayIdiomas[] = $CandidatoIdioma;
}
}
}
if (!$foundInvalidChild && $model->save()) {
$this->guardarFoto($model->id, $foto);
// Guardar los idiomas
foreach($arrayIdiomas as $CandidatoIdioma)
{
$CandidatoIdioma->candidato_id = $model->id;
$CandidatoIdioma->save();
}
Yii::app()->user->setFlash('success', "Candidato actualizado correctamente.");
//$this->redirect(array('view','id'=>$model->id));
}
}*/
// $this->performAjaxValidation($model);
if (isset($_POST['Candidato'])) {
$model->attributes=$_POST['Candidato'];
$foto=CUploadedFile::getInstance($model,'foto');
$foundInvalidChild = false;
if ($model->validate()) {
if (!MultiModelForm::validate($idioma, $idiomasValidos, $idiomasBorrados))
$foundInvalidChild = true;
if ($model->validate()) {
if (!MultiModelForm::validate($idioma, $idiomasValidos, $idiomasBorrados)) {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Algún idioma del candidato no es válido.'));
$foundInvalidChild = true;
}
if (!MultiModelForm::validate($titulacion, $titulacionesValidas, $titulacionesBorradas))
$foundInvalidChild = true;
if (!MultiModelForm::validate($titulacion, $titulacionesValidas, $titulacionesBorradas)) {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Alguna titulación del candidato no es válida.'));
$foundInvalidChild = true;
}
} else {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Algún dato del candidato no es válido.'));
}
if (!$foundInvalidChild && $model->save() ) {
$masterValues = array ('candidato_id'=>$model->id);
if (MultiModelForm::save($idioma, $idiomasValidos, $idiomasBorrados, $masterValues) &&
MultiModelForm::save($titulacion, $titulacionesValidas, $titulacionesBorradas, $masterValues))
{
$this->guardarFoto($model->id, $foto);
Yii::app()->user->setFlash('success', "Candidato actualizado correctamente.");
$this->redirect(array('index'));
if (!MultiModelForm::save($idioma, $idiomasValidos, $idiomasBorrados, $masterValues)) {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar los idiomas del candidato.'));
$foundInvalidChild = true;
}
}
}
/*if(isset($_POST['Candidato'])) {
//the value for the foreign key 'candidato_id'
$masterValues = array ('candidato_id'=>$model->id);
//Save the master model after saving valid members
if (MultiModelForm::save($idioma, $validatedIdiomas, $deleteIdiomas, $masterValues) && $model->save() ) {
$this->guardarFoto($model->id, $foto);
Yii::app()->user->setFlash('success', "Candidato actualizado correctamente.");
//$this->redirect(array('view','id'=>$model->id));
if (!MultiModelForm::save($titulacion, $titulacionesValidas, $titulacionesBorradas, $masterValues)) {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar las titulaciones del candidato.'));
$foundInvalidChild = true;
}
if (!$foundInvalidChild) {
$this->guardarFoto($model->id, $foto);
Yii::app()->user->setFlash('success', Yii::t('intranet', 'Candidato modificado correctamente.'));
$url=$this->createUrl('view', array('id' => $model->id));
$this->redirect($url);
}
} else {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar el candidato.'));
}
}*/
}
$this->render('update',array(
'model'=>$model,
@ -268,7 +205,7 @@ class CandidatoController extends Controller
// we only allow deletion via POST request
$this->loadModel($id)->delete();
$this->borrarFoto($id);
Yii::app()->user->setFlash('success', "Candidato eliminardo correctamente.");
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if(!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
@ -389,6 +326,24 @@ class CandidatoController extends Controller
}*/
$value = implode('<br/>', $lista);
return ($value == NULL) ? CHtml::tag("span", array("class"=>"nodata"), Yii::t('intranet', 'Sin capacidades')) : $value;
}
}
public function darListaTitulaciones($model)
{
$lista = array();
foreach ($model->titulaciones as $titulacion) {
$lista[] = $titulacion->titulacion;
}
return $lista;
}
public function darListaIdiomas($model)
{
$lista = array();
foreach ($model->idiomas as $idioma) {
$lista[] = $idioma->idioma;
}
return $lista;
}
}

View File

@ -66,6 +66,15 @@ class Candidato extends CActiveRecord
$this->_nombreCompleto = $value;
}
public function getRangoSalarial() {
return Yii::app()->numberFormatter->formatCurrency($this->salario_minimo,'EUR') . ' - ' .
Yii::app()->numberFormatter->formatCurrency($this->salario_maximo,'EUR');
}
public function getTieneVehiculoPropio() {
return Yii::app()->format->boolean($this->vehiculo_propio);
}
/**
* Devuelve la lista de géneros de un candidato.
* @return array lista de géneros permitidos
@ -144,7 +153,8 @@ class Candidato extends CActiveRecord
disponibilidad_proyectos_internacionales',
'length', 'max'=>255),
array('fecha_nacimiento', 'safe'),
array('fecha_nacimiento, observaciones', 'safe'),
array('estado', 'unsafe'),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('id, estado, dni, nombre, apellidos, email, telefono_fijo,

View File

@ -86,7 +86,7 @@ class CandidatoIdioma extends CActiveRecord
'candidato_id' => 'Id Candidato',
'idioma' => 'Idioma',
'conversacion' => 'Conversación',
'lectura_traduccion' => 'Lectura/traduccion',
'lectura_traduccion' => 'Lectura/traducción',
);
}

View File

@ -9,7 +9,7 @@
* @property string $titulacion
*
* The followings are the available model relations:
* @property Candidatos $candidato
* @property Candidato $candidato
*/
class CandidatoTitulacion extends CActiveRecord
{
@ -39,12 +39,10 @@ class CandidatoTitulacion extends CActiveRecord
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('candidato_id, titulacion', 'required'),
array('candidato_id', 'numerical', 'integerOnly'=>true),
array('titulacion', 'length', 'max'=>255),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('id, candidato_id, titulacion', 'safe', 'on'=>'search'),
array('titulacion', 'safe', 'on'=>'search'),
);
}
@ -56,7 +54,7 @@ class CandidatoTitulacion extends CActiveRecord
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'candidato' => array(self::BELONGS_TO, 'Candidatos', 'candidato_id'),
'candidato' => array(self::BELONGS_TO, 'Candidato', 'candidato_id'),
);
}
@ -67,7 +65,7 @@ class CandidatoTitulacion extends CActiveRecord
{
return array(
'id' => 'ID',
'candidato_id' => 'Candidato',
'candidato_id' => 'ID Candidato',
'titulacion' => 'Titulación',
);
}

View File

@ -1,10 +1,29 @@
<?php
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/custom/elements.js');
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/plugins/wysiwyg/jquery.wysiwyg.js');
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . 'js/plugins/wysiwyg/wysiwyg.image.js');
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . 'js/plugins/wysiwyg/wysiwyg.link.js');
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . 'js/plugins/wysiwyg/wysiwyg.table.js');
$script=<<<HTML
jQuery(document).ready(function() {
jQuery('#wysiwyg').wysiwyg({
initialContent: "",
controls: {
cut: { visible: true },
copy: { visible: true },
paste: { visible: true }
}
});
});
HTML;
Yii::app()->clientScript->registerScript('wysiwyg', $script, CClientScript::POS_END);
?>
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'candidato-form',
'enableAjaxValidation'=>true,
//'enableAjaxValidation'=>true,
'htmlOptions'=>array('enctype' => 'multipart/form-data'),
)); ?>
@ -176,14 +195,13 @@ Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/custom/e
<div class="widgetbox two_third last form_default">
<h3>
<span>
<legend><?php echo Yii::t('intranet', 'Datos académicos'); ?></legend>
<legend><?php echo Yii::t('intranet', 'Observaciones'); ?></legend>
</span>
</h3>
<?php /*$this->renderPartial('_capacidades', array(
'model'=>$model,
'capacidad'=>$capacidad,
'capacidadesValidas'=>$capacidadesValidas,
));*/ ?>
<div class="content nopadding">
<?php echo $form->textArea($model, 'observaciones', array('id'=>'wysiwyg', 'class'=>'ff')); ?>
<?php echo $form->error($model,'observaciones', array('class'=>'errortext')); ?>
</div>
</div>
<br clear="all" />
<div class="form_default">

View File

@ -1,66 +1,94 @@
<div class="view">
<?php
//Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/custom/elements.js');
?>
<b><?php echo CHtml::encode($data->getAttributeLabel('id')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->id), array('view', 'id'=>$data->id)); ?>
<br />
<div class="resumen">
<div class="one_half">
<div class="one_half alignright">
<?php
echo CHtml::image($data->foto, $data->nombre,
array("title" => $data->nombre, "width"=>"120", "height"=>"120")
); ?>
</div>
<div class="one_half last">
<h2><?php echo CHtml::encode($data->nombreCompleto); ?></h2>
<?php echo CHtml::link(CHtml::encode($data->estado), "#", array("class" => $data->cssClassEstado)); ?><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('sexo')); ?>:</strong>&nbsp;<?php echo CHtml::encode($data->sexo); ?><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('fecha_nacimiento')); ?>:</strong>&nbsp;<?php echo CHtml::encode($data->fecha_nacimiento); ?><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('lugar_nacimiento')); ?>:</strong>&nbsp;<?php echo CHtml::encode($data->lugar_nacimiento); ?><br/>
</div>
</div>
<div class="one_half last">
<div class="one_third alignright">
<strong><?php echo CHtml::encode($data->getAttributeLabel('dni')); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('localidad')); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('email')); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('telefono_fijo')); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('telefono_movil')); ?>:</strong><br/>
<b><?php echo CHtml::encode($data->getAttributeLabel('foto')); ?>:</b>
<?php echo CHtml::encode($data->foto); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('dni')); ?>:</b>
<?php echo CHtml::encode($data->dni); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('nombre')); ?>:</b>
<?php echo CHtml::encode($data->nombre); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('apellidos')); ?>:</b>
<?php echo CHtml::encode($data->apellidos); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('email')); ?>:</b>
<?php echo CHtml::encode($data->email); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('telefono_fijo')); ?>:</b>
<?php echo CHtml::encode($data->telefono_fijo); ?>
<br />
<?php /*
<b><?php echo CHtml::encode($data->getAttributeLabel('telefono_movil')); ?>:</b>
<?php echo CHtml::encode($data->telefono_movil); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('sexo')); ?>:</b>
<?php echo CHtml::encode($data->sexo); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('fecha_nacimiento')); ?>:</b>
<?php echo CHtml::encode($data->fecha_nacimiento); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('lugar_nacimiento')); ?>:</b>
<?php echo CHtml::encode($data->lugar_nacimiento); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('fecha_alta')); ?>:</b>
<?php echo CHtml::encode($data->fecha_alta); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('usuario_alta')); ?>:</b>
<?php echo CHtml::encode($data->usuario_alta); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('fecha_modificacion')); ?>:</b>
<?php echo CHtml::encode($data->fecha_modificacion); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('usuario_modificacion')); ?>:</b>
<?php echo CHtml::encode($data->usuario_modificacion); ?>
<br />
*/ ?>
</div>
</div>
<div class="two_third last">
<?php echo CHtml::encode($data->dni); ?><br/>
<?php echo CHtml::encode($data->localidad); ?><br/>
<?php echo CHtml::mailto($data->email); ?><br/>
<?php echo CHtml::encode($data->telefono_fijo); ?><br/>
<?php echo CHtml::encode($data->telefono_movil); ?><br/>
</div>
</div>
<br clear="all"/>
<br clear="all"/>
<div class="one_half ">
<div class="one_half alignright">
<h3 class="title">Disponibilidad</h3>
<strong><?php echo Yii::t('intranet', 'Incorporación'); ?>:</strong><br/>
<strong><?php echo Yii::t('intranet', 'Entrevistas'); ?>:</strong><br/>
<strong><?php echo Yii::t('intranet', 'Para guardias'); ?>:</strong><br/>
<strong><?php echo Yii::t('intranet', 'Para viajar'); ?>:</strong><br/>
<strong><?php echo Yii::t('intranet', 'Proyectos internacionales'); ?>:</strong><br/>
</div>
<div class="one_half last">
<br/>
<?php echo CHtml::encode($data->disponibilidad_incorporacion); ?><br/>
<?php echo CHtml::encode($data->disponibilidad_entrevistas); ?><br/>
<?php echo CHtml::encode($data->disponibilidad_guardias); ?><br/>
<?php echo CHtml::encode($data->disponibilidad_viajar); ?><br/>
<?php echo CHtml::encode($data->disponibilidad_proyectos_internacionales); ?><br/>
</div>
</div>
<div class="one_half last">
<div class="one_third alignright">
<strong><?php echo CHtml::encode($data->getAttributeLabel('carnet_conducir')); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('vehiculo_propio')); ?>:</strong><br/>
<strong><?php echo Yii::t('intranet', 'Rango salarial'); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('telefono_movil')); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('idiomas')); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('titulacciones')); ?>:</strong><br/>
</div>
<div class="two_third last">
<?php echo CHtml::encode($data->carnet_conducir); ?><br/>
<?php echo CHtml::encode($data->tieneVehiculoPropio); ?><br/>
<?php echo CHtml::encode($data->rangoSalarial); ?><br/>
<?php echo CHtml::encode($data->telefono_movil); ?><br/>
<?php echo implode(', <br/>', ($this->darListaIdiomas($data))); ?>
<?php echo implode(', <br/>', ($this->darListaTitulaciones($data))); ?>
</div>
</div>
<br clear="all"/>
<br clear="all"/>
<div class="one_half ">
<div class="one_half alignright">
<strong><?php echo CHtml::encode($data->getAttributeLabel('observaciones')); ?>:</strong>
</div>
<div class="one_half last">
<?php echo CHtml::encode($data->observaciones); ?>
</div>
</div>
<div class="one_half last">
<div class="one_half alignright">
</div>
<div class="one_half last">
</div>
</div>
</div>

View File

@ -1,7 +1,7 @@
<?php
$this->breadcrumbs=array(
'Candidatos'=>array('index'),
'Nuevo candidato',
Yii::t('intranet', 'Candidatos') => array('candidato/index'),
Yii::t('intranet', 'Nuevo candidato') => array('candidato/index'),
);
$this->menu=array(
array(
@ -10,7 +10,7 @@ $this->menu=array(
'linkOptions'=>array('class'=>'iconlink'),
),
);
$this->pageTitle='Nuevo candidato';
$this->pageTitle=Yii::t('intranet', 'Nuevo candidato');
?>
<?php echo $this->renderPartial('_form', array(

View File

@ -4,6 +4,7 @@ $this->breadcrumbs=array(
);
$this->menu=array(
'principal' => array(
array(
'label'=>'<img class="mgright5" alt="Nuevo candidato" src="' . Yii::app()->baseUrl . '/images/icons/small/white/user.png"/>Nuevo candidato',
'url'=>array('create'),
@ -14,6 +15,7 @@ $this->menu=array(
'url'=>array('#'),
'linkOptions'=>array('class'=>'iconlink search-button'),
),
),
);
$this->pageTitle=Yii::t('intranet', 'Gestión de candidatos');
@ -31,7 +33,6 @@ $('.search-form form').submit(function(){
});
");
?>
<div class="search-form" style="display:none">
@ -74,7 +75,7 @@ $('.search-form form').submit(function(){
array(
'type' => 'html',
'name' => 'nombreCompleto',
'value' => 'CHtml::link(CHtml::encode($data->nombreCompleto), array("update", "id"=>$data->id));',
'value' => 'CHtml::link(CHtml::encode($data->nombreCompleto), array("view", "id"=>$data->id));',
'headerHtmlOptions'=>array(
'class' => 'head0 sorting',
),
@ -83,7 +84,7 @@ $('.search-form form').submit(function(){
array(
'type' => 'html',
'name' => 'capacidad_tecnica_search',
'value'=>array($this, 'gridDataColumnCapacidadTecnica'),
'value'=> array($this, 'gridDataColumnCapacidadTecnica'),
'header' => 'Capacidad técnica',
'filter' => CHtml::listData(PerfilTecnico::model()->findAll(), 'id', 'descripcion'),
'cssClassExpression' => '"con0"',

View File

@ -1,6 +1,6 @@
<?php
$this->breadcrumbs=array(
'Candidatos'=>array('index'),
Yii::t('intranet', 'Candidatos') => array('candidato/index'),
$model->nombre . ' ' . $model->apellidos=>array('view','id'=>$model->id),
Yii::t('intranet', 'Modificación'),
);
@ -22,4 +22,5 @@ $this->pageTitle=Yii::t('intranet', 'Modificar candidato') . ' "' . $model->nomb
'idiomasValidos'=>$idiomasValidos,
'titulacionesValidas'=>$titulacionesValidas,
));
?>
?>

View File

@ -1,37 +1,13 @@
<?php
$this->breadcrumbs=array(
'Candidatos'=>array('index'),
$model->id,
$model->nombre . ' ' . $model->apellidos=>array('view','id'=>$model->id),
);
$this->menu=array(
array('label'=>'List Candidato', 'url'=>array('index')),
array('label'=>'Create Candidato', 'url'=>array('create')),
array('label'=>'Update Candidato', 'url'=>array('update', 'id'=>$model->id)),
array('label'=>'Delete Candidato', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model->id),'confirm'=>'Are you sure you want to delete this item?')),
array('label'=>'Manage Candidato', 'url'=>array('admin')),
);
$this->pageTitle=Yii::t('intranet', 'Candidato') . ' "' . $model->nombre . ' ' . $model->apellidos . '"';
?>
<h1>View Candidato #<?php echo $model->id; ?></h1>
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'id',
'foto',
'dni',
'nombre',
'apellidos',
'email',
'telefono_fijo',
'telefono_movil',
'sexo',
'fecha_nacimiento',
'lugar_nacimiento',
'fecha_alta',
'usuario_alta',
'fecha_modificacion',
'usuario_modificacion',
),
)); ?>
<?php echo $this->renderPartial('_view', array(
'data'=>$model,
));
?>

View File

@ -23,7 +23,7 @@ Yii::app()->clientScript->registerScript('wysiwyg', $script, CClientScript::POS_
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'candidato-capacidad-form',
'enableAjaxValidation'=>true,
//'enableAjaxValidation'=>true,
'clientOptions'=>array('validateOnSubmit'=>true, 'validateOnChange'=>true),
)); ?>

View File

@ -1,6 +1,8 @@
<?php
$this->breadcrumbs=array(
'Capacidades profesionales'=>array('index'),
Yii::t('intranet', 'Candidatos') => array('candidato/index'),
$candidato->nombre . ' ' . $candidato->apellidos => array('candidato/view','id'=>$candidato->id),
Yii::t('intranet', 'Capacidades profesionales') => array('candidatoCapacidad/index'),
Yii::t('intranet', 'Nueva capacidad profesional'),
);

View File

@ -1,17 +1,75 @@
<?php
$this->breadcrumbs=array(
'Candidato Capacidads',
Yii::t('intranet', 'Candidatos') => array('candidato/index'),
$candidato->nombre . ' ' . $candidato->apellidos => array('candidato/view','id'=>$candidato->id),
Yii::t('intranet', 'Capacidades profesionales'),
);
$this->menu=array(
array('label'=>'Create CandidatoCapacidad', 'url'=>array('create')),
array('label'=>'Manage CandidatoCapacidad', 'url'=>array('admin')),
);
$this->pageTitle=Yii::t('intranet', 'Gestión de capacidades profesionales');
$candidatoId = $this->actionParams['cid'];
?>
<h1>Candidato Capacidads</h1>
<?php
echo CHtml::link(
Yii::t('intranet', 'Nueva capacidad'),
$this->createUrl('candidatoCapacidad/create', array('cid'=>$candidatoId))
);
?>
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
)); ?>
<div class="widgetbox">
<div class="content nopadding ohidden">
<?php
$columns = array(
array(
'header'=>Yii::t('intranet', 'Acciones'),
'class'=>'CButtonColumn',
'headerHtmlOptions'=>array(
'style' => 'width:55px;',
'class' => 'head1',
),
'template'=>'{update}{delete}',
'cssClassExpression' => '"con0"',
),
array(
'type' => 'html',
'name' => 'perfilTecnico.descripcion',
'value' => 'CHtml::link(CHtml::encode($data->perfilTecnico->descripcion), array("update", "id"=>$data->id));',
'headerHtmlOptions'=>array(
'class' => 'head0 sorting',
),
'cssClassExpression' => '"con1"',
),
array(
'type' => 'html',
'name' => 'meses_perfil_tecnico',
//'value'=> array($this, 'gridDataColumnCapacidadTecnica'),
//'header' => 'Capacidad técnica',
//'filter' => CHtml::listData(PerfilTecnico::model()->findAll(), 'id', 'descripcion'),
'headerHtmlOptions'=>array(
'class' => 'head1 sorting',
),
'cssClassExpression' => '"con0"',
'htmlOptions'=>array(
'align' => 'right',
'width' => '50px',
)
),
);
$pageSize = Yii::app()->user->getState('pageSize', Yii::app()->params['defaultPageSize']);
$dataProvider->getPagination()->setPageSize($pageSize);
$this->widget('application.extensions.SelGridView', array(
'id'=>'capacidades-grid',
'dataProvider'=>$dataProvider,
'columns'=>$columns,
'cssFile' => Yii::app()->baseUrl . '/css/gridview3.css',
'itemsCssClass' => 'sTable3',
'pagerCssClass' => 'dataTables_paginate',
'template' => '{items}{pager}',
'emptyText' => Yii::t('intranet', 'Este candidato no tiene capacidades'),
'selectableRows' => 1,
));
?>
</div>
</div>

View File

@ -1,8 +1,9 @@
<?php
$this->breadcrumbs=array(
'Capacidades profesionales'=>array('index'),
$model->id=>array('view','id'=>$model->id),
Yii::t('intranet', 'Modificación'),
Yii::t('intranet', 'Candidatos') => array('candidato/index'),
$candidato->nombre . ' ' . $candidato->apellidos => array('candidato/view','id'=>$candidato->id),
Yii::t('intranet', 'Capacidades profesionales') => array('candidatoCapacidad/index'),
$model->perfilTecnico->descripcion,
);
$this->pageTitle=Yii::t('intranet', 'Modificar capacidad profesional');

View File

@ -0,0 +1,85 @@
<?php $this->beginContent('//layouts/default'); ?>
<?php
$candidatoId = (isset($this->actionParams['cid'])) ? $this->actionParams['cid'] : $this->actionParams['id'];
$editImg = CHtml::image(
Yii::app()->baseUrl . '/images/icons/small/white/edit.png',
Yii::t('intranet', 'Modificar'),
array('class' => 'mgright5'));
$deleteImg = CHtml::image(
Yii::app()->baseUrl . '/images/icons/small/white/close.png',
Yii::t('intranet', 'Eliminar'),
array('class' => 'mgright5'));
$botonesPrincipales = array(
array(
'label' => $editImg . Yii::t('intranet', 'Modificar'),
'url' => $this->createUrl('candidato/update', array('id'=>$candidatoId)),
'linkOptions' => array('class'=>'iconlink'),
),
array(
'label' => $deleteImg . Yii::t('intranet', 'Eliminar'),
'url' => '#',
'linkOptions' => array(
'class' => 'iconlink',
'submit' => $this->createUrl('candidato/delete', array('id'=>$candidatoId)),
'confirm' => Yii::t('intranet', '¿Desea eliminar este candidato?')
),
),
);
$pestañas = array(
array(
'label' => Yii::t('intranet', 'Resumen'),
'url' => $this->createUrl('candidato/view',array('id' => $candidatoId)),
'linkOptions' => array('class'=>'candidatos'),
'active' => ($this->getId() == 'candidato'),
),
array(
'label' => Yii::t('intranet', 'Capacidades profesionales'),
'url' => $this->createUrl('candidatoCapacidad/index', array('cid'=>$candidatoId)),
'active' => ($this->getId() == 'candidatoCapacidad'),
),
array(
'label' => Yii::t('intranet', 'Currículums'),
'url' => array('/usuario'),
'linkOptions' => array('class'=>'curriculum'),
'active' => ($this->getId() == 'curriculum')
),
array(
'label' => Yii::t('intranet', 'Historial'),
'url' => array('/site/index'),
'active' => ($this->getId() == 'solicitud'),
),
);
$this->menu=array(
'principal' => $botonesPrincipales,
'pestañas' => $pestañas,
);
?>
<div class="clear"></div>
<div class="two_third last">
<div id="tabs" class="tabs">
<?php if (isset($this->menu['pestañas'])) : ?>
<?php $this->widget('zii.widgets.CMenu',array(
'htmlOptions'=>array(
'class' => 'tabs-nav',
),
'activeCssClass'=>'current',
'linkLabelWrapper' => 'span',
'items' => $this->menu['pestañas'],
));
?>
<?php endif ?>
<div class="tabs-panel">
<?php echo $content; ?>
</div>
</div>
</div><!-- two_third last -->
<?php $this->endContent(); ?>

View File

@ -72,7 +72,7 @@
),
array(
'label'=>Yii::t('intranet', 'Candidatos'),
'url'=>array('/candidato'),
'url'=>array('/candidato/index'),
'linkOptions'=>array('class'=>'candidatos'),
'active' => ($this->getId() == 'candidato'),
),
@ -90,7 +90,7 @@
),
array(
'label'=>Yii::t('intranet', 'Sistema'),
'url'=>array('/usuario'),
'url'=>array('/usuario/index'),
'linkOptions'=>array('class'=>'sistema'),
'active' => ($this->getId() == 'usuario')
),
@ -129,9 +129,9 @@
<?php endif; ?>
<?php $flashMessages = Yii::app()->user->getFlashes(); ?>
<?php if ($flashMessages): ?>
<?php if (count($flashMessages) > 0) : ?>
<div class="two_third last">
<?php
<?php
foreach($flashMessages as $key => $message) {
switch($key) {
case 'error': $class = 'msgerror'; break;
@ -155,7 +155,7 @@
<div class="operations">
<?php
$this->widget('zii.widgets.CMenu', array(
'items'=>$this->menu,
'items'=> (isset($this->menu['principal'])) ? $this->menu['principal'] : $this->menu,
'encodeLabel' => false,
));
?>