Commit e5c9f7fe authored by D’jalmar Gutierrez Titirico's avatar D’jalmar Gutierrez Titirico 🚲

se modificaron los controladores que consumen los servicios modificados,...

se modificaron los controladores que consumen los servicios modificados, tambien se repararon algunos bugs en los controladores
parent 62d47735
......@@ -6,6 +6,7 @@
this.$state = $state;
this.cargos = [];
this.cargo = {};
this.alertas = [];
this.service = cargoService;
this.postulanteService = postulanteService;
this.postulacionService = postulacionService;
......@@ -14,43 +15,32 @@
this.cambiarPagina();
}
detalle(id) {
this.cargo = this.cargos.find(x=>x._id == id);
this.$state.go('cargos.detalle', {cargoId: this.cargo._id})
}
postulantes(idCargo) {
this.postulacionService.getPostulacionesCargo(idCargo).then(postulantes=> {
this.cargo.postulantes = postulantes;
});
this.$state.go('cargos.detalle.postulantes');
}
cambiarPagina() {
this.service.getCargos(this.paginaActual).then(respuesta=> {
this.cargos = respuesta.rows;
this.totalElementos = respuesta.count;
});
this.service.getCargos({pagina: this.paginaActual, elementos: 15, ordenarPor: 'nombre'})
.then(respuesta=> {
this.cargos = respuesta.rows;
this.totalElementos = respuesta.count;
});
}
editar(id) {
this.cargo = this.cargos.find(x=>x._id == id);
this.$state.go('cargos.editar', {cargoId: this.cargo._id});
this.$state.go('cargos.editar', {cargoId: id});
}
crearCargos() {
this.modal.open({
templateUrl: 'app/cargos/modals/cargos.crear.modal.html',
controller: 'CargosCreaModalCtrl',
controllerAs: 'vm',
resolve: {
//parametro: {cargo: this.cargo}
}
controllerAs: 'vm'
}).result.then(cargo=> {
this.alertas.push({
tipo: 'success',
mensaje: 'Se creo corectamente el cargo: ' + cargo.nombre
})
})
}
}
angular.module('moduloPersonalApp')
.controller('CargosCtrl', CargoController);
})();
<h4>{{vm.cargo.nombre}}
<!--<i class="fa fa-{{vm.postulante.genero}} {{vm.postulante.genero}}"></i>-->
</h4>
<div>
<button class="btn btn-primary">Editar</button>
<button class="btn btn-danger">Eliminar</button>
</div>
<hr>
<div class="input-group">
<button class="btn btn-link" ng-click="vm.postulantes(vm.cargo._id)">Ver postulantes</button>
<button class="btn btn-link" ui-sref="cargos.lista">Regresar</button>
</div>
</div>
<div ui-view=""></div>
......@@ -12,9 +12,10 @@
getCargos(parametros) {
return this.resource.query(parametros).$promise;
}
getCargo(id, parametros) {
return this.resource.get({id: id, parametros});
getCargo(id, parametros = {}) {
parametros.id = id;
return this.resource.get(parametros).$promise;
}
editarCargo(id, cargo) {
......
......@@ -9,7 +9,7 @@
this.modal = $uibModal;
this.Modal = Modal;
this.cargoService = cargoService;
this.cargoService.getCargo(this.id)
this.cargoService.getCargo(this.id, {incluye: ['Postulantes']})
.then(cargo=> {
this.cargo = cargo;
});
......@@ -33,7 +33,7 @@
eliminarPostulacion(cargo) {
this.Modal.confirm.eliminar(cargo => {
this.postulacionService.eliminaPostulacion(cargo.Postulacion._id)
this.postulacionService.eliminarPostulacion(cargo.Postulacion._id)
.then(()=> {
this.cargo.Postulantes.splice(this.cargo.Postulantes.indexOf(cargo), 1)
})
......
'use strict';
(()=> {
class ComentarioController {
constructor($state, comentarioService, postulanteService) {
this.state = $state;
this.comentarios = [];
this.comentario = {};
this.servicio = comentarioService;
this.postulanteService = postulanteService;
this.paginaActual = 1;
this.cambiarPagina();
}
detalle(id) {
this.comentario = this.comentarios.find(x=>x._id == id);
this.state.go('comentarios.detalle', {comentarioId: this.comentario._id})
}
//postulante(id) {
// this.state.go('comentarios.detalle.postulante', {potulanteId: this.comentario.fk_postulante});
//}
cambiarPagina() {
this.servicio.getComentarios(this.paginaActual).then(respuesta=> {
this.comentarios = respuesta.rows;
this.totalElementos = respuesta.count;
})
}
}
angular.module('moduloPersonalApp')
.controller('ComentariosCtrl', ComentarioController);
})();
'use strict';
describe('Controller: ComentariosCtrl', function () {
// load the controller's module
beforeEach(module('moduloPersonalApp'));
var ComentariosCtrl, scope;
// Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) {
scope = $rootScope.$new();
ComentariosCtrl = $controller('ComentariosCtrl', {
$scope: scope
});
}));
it('should ...', function () {
expect(1).to.equal(1);
});
});
<div class="row">
<h4>
{{vm.comentario.contenido}}
</h4>
<div>
<button class="btn btn-primary">Editar</button>
<button class="btn btn-danger">Eliminar</button>
</div>
<hr>
<div class="input-group">
<button class="btn btn-link" ng-click="vm.postulante(vm.comentario.fk_postulante)">Ver postulante{{comentario.fk_postulante}}</button>
<button class="btn btn-link" ui-sref="comentarios.lista">Regresar</button>
</div>
</div>
<div ui-view></div>
<div class="row">
<div ui-view class="container"></div>
</div>
'use strict';
angular.module('moduloPersonalApp')
.config(function ($stateProvider) {
$stateProvider
.state('comentarios', {
abstract: true,
url: '/comentarios',
templateUrl: 'app/comentarios/comentarios.html',
controller: 'ComentariosCtrl',
controllerAs: 'vm'
})
.state('comentarios.lista',{
url: '',
templateUrl: 'app/comentarios/comentarios.lista.html'
})
.state('comentarios.detalle', {
url: '/:comentarioId',
templateUrl: 'app/comentarios/comentarios.detalle.html'
})
.state('comentario.detalle.postulante', {
url: '/postulantes',
templateUrl: 'app/postulantes/postulantes.comentario.html'
})
});
<div class="row">
<h2 class="sub-header">Comentarios</h2>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Contenido del Comentario</th>
<th colspan="3" style="text-align: center;">Opciones</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="comentario in vm.comentarios">
<td>{{comentario.contenido}}</td>
<td><a ng-click="vm.detalle(comentario._id)">Detalles</a></td>
<td><a ng-click="vm.editar(comentario._id)">Editar</a></td>
<!--Mostrar un dialogo de eliminar-->
<td><a ng-click="vm.eliminar(comentario._id)">Eliminar</a></td>
</tr>
</tbody>
</table>
</div>
<uib-pagination
total-items="vm.totalElementos"
items-per-page="15"
max-size="8"
force-ellipses="true"
ng-model="vm.paginaActual"
ng-change="vm.cambiarPagina()"
next-text="Siguiente"
previous-Text="Anterior"></uib-pagination>
</div>
(()=>{
'use strict';
class DatoPostulanteController {
constructor($state, datoPostulanteService) {
this.state = $state;
this.servicio = datoPostulanteService;
this.datosPostulantes = [];
this.datoPostulante = {};
this.paginaActual = 1;
this.cambiarPagina();
}
detalle(id){
this.datoPostulante = this.datosPostulantes.find(x=>x._id ==id);
this.state.go('datosPostulantes.detalle',{datoPostulanteId:id});
}
cambiarPagina(){
this.servicio.getDatosPostulantes(this.paginaActual).then(respuesta=> {
this.datosPostulantes = respuesta.rows;
this.totalElementos = respuesta.count;
});
}
}
angular.module('moduloPersonalApp')
.controller('DatosPostulantesCtrl', DatoPostulanteController);
})();
'use strict';
describe('Controller: DatosPostulantesCtrl', function () {
// load the controller's module
beforeEach(module('moduloPersonalApp'));
var DatosPostulantesCtrl, scope;
// Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) {
scope = $rootScope.$new();
DatosPostulantesCtrl = $controller('DatosPostulantesCtrl', {
$scope: scope
});
}));
it('should ...', function () {
expect(1).to.equal(1);
});
});
<div class="row">
<div ui-view class="container"></div>
</div>
'use strict';
angular.module('moduloPersonalApp')
.config(function ($stateProvider) {
$stateProvider
.state('datosPostulantes', {
url: '/datosPostulantes',
abstract:true,
templateUrl: 'app/datosPostulantes/datosPostulantes.html',
controller: 'DatosPostulantesCtrl',
controllerAs:'vm'
})
.state('datosPostulantes.lista',{
url:'',
templateUrl:'app/datosPostulantes/datosPostulantes.lista.html'
});
});
<div class="row">
<h2 class="sub-header">Datos de los Postulantes</h2>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Postulante</th>
<th>Propiedad</th>
<th>Valor</th>
<th>Id Postulante</th>
<th colspan="2">Opciones</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="datoPostulante in vm.datosPostulantes">
<td>{{datoPostulante.Postulante.nombres}} {{datoPostulante.Postulante.apellidos}}</td>
<td>{{datoPostulante.propiedad}}</td>
<td>{{datoPostulante.valor}}</td>
<td>{{datoPostulante.fk_postulante}}</td>
<td><a ng-click="vm.detalle(datoPostulante._id)">Detalles</a></td>
<td><a ng-click="vm.editar(datoPostulante._id)">Editar</a></td>
<!--Mostrar un dialogo de eliminar-->
<td><a ng-click="vm.eliminar(datoPostulante._id)">Eliminar</a></td>
</tr>
</tbody>
</table>
</div>
<uib-pagination
total-items="vm.totalElementos"
items-per-page="15"
max-size="8"
force-ellipses="true"
ng-model="vm.paginaActual"
ng-change="vm.cambiarPagina()"
next-text="Siguiente"
previous-Text="Anterior"></uib-pagination>
</div>
......@@ -10,7 +10,7 @@
this.service = postulanteService;
this.postulacion = {fk_cargo: this.cargo._id};
this.service = postulacionService;
postulanteService.getPostulantes(1, 2000, 'nombres')
postulanteService.getPostulantes({ordenarPor: 'nombres'})
.then(postulantes=> {
this.postulantes = postulantes;
this.postulanteSeleccionado = {};
......
......@@ -4,7 +4,7 @@
class PostulacionesCrearModalController {
constructor($uibModalInstance, postulante, cargoService, postulacionService) {
this.enviado = false;
this.errores={};
this.errores = {};
this.modal = $uibModalInstance;
this.postulante = postulante;
this.postulacion = {fk_postulante: this.postulante._id};
......
<div class="row">
<h4 class="sub-header">Postulantes</h4>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Nombre y apellidos</th>
<th>Fecha de Postulacion</th>
<th>Presentacion</th>
<th colspan="2">Opciones</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="postulante in vm.cargo.postulantes">
<td>{{postulante.nombres}} {{postulante.apellidos}}</td>
<td>{{postulante.Postulacion.fecha_creacion | date:'dd/MM/yyyy'}}</td>
<td>{{postulante.Postulacion.presentacion}}</td>
<td><a ng-click="vm.editar(postulante._id)">Editar</a></td>
<!--Mostrar un dialogo de eliminar-->
<td><a ng-click="vm.eliminar(postulante._id)">Eliminar</a></td>
</tr>
</tbody>
</table>
</div>
</div>
(()=> {
'use strict';
class PostulacionController {
constructor($state, postulacionService) {
this.state = $state;
this.servicio = postulacionService;
this.postulaciones = [];
this.postulacion = {};
this.paginaActual = 1;
this.cambiarPagina();
}
detalle(id) {
this.postulacion = this.postulaciones.find(x=>x._id == id);
this.state.go('postulaciones.detalle', {postulacionId: id});
}
cambiarPagina() {
this.servicio.getPostulaciones(this.paginaActual).then(respuesta=> {
this.postulaciones = respuesta.rows;
this.totalElementos = respuesta.count;
})
}
}
angular.module('moduloPersonalApp')
.controller('PostulacionesCtrl', PostulacionController);
})();
'use strict';
describe('Controller: PostulacionesCtrl', function () {
// load the controller's module
beforeEach(module('moduloPersonalApp'));
var PostulacionesCtrl, scope;
// Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) {
scope = $rootScope.$new();
PostulacionesCtrl = $controller('PostulacionesCtrl', {
$scope: scope
});
}));
it('should ...', function () {
expect(1).to.equal(1);
});
});
<div class="row">
<div ui-view class="container"></div>
</div>
'use strict';
angular.module('moduloPersonalApp')
.config(function ($stateProvider) {
$stateProvider
.state('postulaciones', {
url: '/postulaciones',
abstract:true,
templateUrl: 'app/postulaciones/postulaciones.html',
controller: 'PostulacionesCtrl',
controllerAs:'vm'
})
.state('postulaciones.lista',{
url:'',
templateUrl:'app/postulaciones/postulaciones.lista.html'
});
});
<div class="row">
<h2 class="sub-header">Postulaciones</h2>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Postulante</th>
<th>Cargo</th>
<th>presentacion</th>
<th colspan="3">Opciones</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="postulacion in vm.postulaciones">
<td>{{postulacion.Postulante.nombres}} {{postulacion.Postulante.apellidos}}</td>
<td>{{postulacion.Cargo.nombre}} </td>
<td>{{postulacion.presentacion}}</td>
<td><a ng-click="vm.detalle(cargo._id)">Detalles</a></td>
<td><a ng-click="vm.editar(cargo._id)">Editar</a></td>
<!--Mostrar un dialogo de eliminar-->
<td><a ng-click="vm.eliminar(cargo._id)">Eliminar</a></td>
</tr>
</tbody>
</table>
</div>
<uib-pagination
total-items="vm.totalElementos"
items-per-page="15"
max-size="8"
force-ellipses="true"
ng-model="vm.paginaActual"
ng-change="vm.cambiarPagina()"
next-text="Siguiente"
previous-Text="Anterior"></uib-pagination>
</div>
<div class="row">
<h4 class="sub-header">Postulaciones</h4>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Cargo</th>
<th>Fecha de Postulacion</th>
<th>Presentacion</th>
<th colspan="2">Opciones</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="cargo in vm.postulante.postulaciones">
<td>{{cargo.nombre}}</td>
<td>{{cargo.Postulacion.fecha_creacion | date:'dd/MM/yyyy'}}</td>
<td>{{cargo.Postulacion.presentacion}}</td>
<td><a ng-click="vm.editar(postulante._id)">Editar</a></td>
<!--Mostrar un dialogo de eliminar-->
<td><a ng-click="vm.eliminar(postulante._id)">Eliminar</a></td>
</tr>
</tbody>
</table>
</div>
</div>
/**
* Created by adsib on 11-04-16.
*/
'use strict';
(()=> {
class PostulanteDetalleController {
constructor($stateParams, postulanteService) {
postulanteService.getPostulante($stateParams.postulanteId).then(postulante=> {
console.log(postulante);
this.postulante = postulante;
});
}
}
angular.module('moduloPersonalApp')
.controller('PostulantesDetalleCtrl', PostulanteDetalleController);
})();
<div class="row">
<h4><a ui-sref="postulantes.lista"><span class="fa fa-arrow-left"></span></a> {{vm.postulante.nombres}} {{vm.postulante.apellidos}}
</h4>
<hr>
<div class="row">
<label class="col-sm-3">CI :</label>
<label class="col-sm-7 control-label usr-light">{{vm.postulante.ci}}</label>
</div>
<div class="row" ng-repeat="dato in vm.postulante.Datos">
<label class="col-sm-3">{{dato.nombre}} :</label>
<label class="col-sm-7 control-label usr-light">{{dato.DatoPostulante.valor}}</label>
</div>
<hr>
<div class="row">
<div class="col-lg-12">
<button type="button" class="btn btn-info" ui-sref="postulantes.editar">Editar</button>
<button type="button" class="btn btn-danger" >Eliminar</button>
</div>
</div>
<!--TODO añadir tags, postulaciones y comentarios ?-->
<hr>
</div>
<div class="container" ui-view></div>
......@@ -4,7 +4,7 @@
class PostulanteEditarController {
constructor($stateParams, postulanteService, datoPostulanteService, tipoDatoService, $uibModal, Modal, tagService, tagPostulanteService, postulacionService, comentarioService) {
this.errores = {}; // lista de errores
this.postulanteEnviado = false; // se refiere a si se intento enviar el formulario del postulante
this.enviado= false; // se refiere a si se intento enviar el formulario del postulante
this.Modal = Modal;
this.modal = $uibModal;
this.service = postulanteService;
......@@ -16,7 +16,7 @@
this.comentarioService = comentarioService;
this.id = $stateParams.postulanteId;
this.tags = [];
this.service.getPostulante(this.id).then(postulante=> {
this.service.getPostulante(this.id, {incluye: ['Tags', 'Postulaciones', 'Comentarios', 'Datos']}).then(postulante=> {
this.postulante = postulante;
console.log(postulante);
});
......@@ -112,10 +112,11 @@
autoCompletarTags(query) {
console.log(this.tags)
if (this.tags.length == 0) {
this.tagService.getTags(1, 100).then(tags=> {
this.tags = tags;
return this.tags.rows.filter(x=>x.includes(query));
})
this.tagService.getTags()
.then(tags=> {
this.tags = tags;
return this.tags.rows.filter(x=>x.includes(query));
})
}
else return this.tags.rows.filter(x=>x.nombre.includes(query));
}
......
'use strict';
(()=> {
class PostulanteCrearControllerModal {
constructor($uibModalInstance, postulanteService) {
this.enviado = false;
this.errores = {};
this.modal = $uibModalInstance;
this.service = postulanteService;
this.postulante = {};
}
guardar(form) {
this.enviado = true;
if (form.$valid) {
this.service.crearPostulante(this.postulante)
.then(postulante=> {
this.modal.close(postulante);
})
}
}
}
angular.module('moduloPersonalApp')
.controller('PostulanteCrearModalCtrl', PostulanteCrearControllerModal);
})();
<form class="form" name="form" ng-submit="vm.guardar(form)" novalidate>
<div class="modal-header">
<button type="button" ng-click="vm.modal.dismiss()" class="close">&times;</button>
<h4 class="modal-title">Postulante</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-10">
<label>Nombres</label>
<div class="">
<input type="text" name="nombres" class="form-control" ng-model="vm.postulante.nombres" required>
<p class="help-block" ng-show="form.nombres.$error.required && vm.enviado">
Ingrese los nombres del postulante
</p>
</div>
</div>
<div class="col-md-10">
<label>Apellidos</label>
<div class="">
<input type="text" name="apellidos" class="form-control" ng-model="vm.postulante.apellidos" required>
<p class="help-block" ng-show="form.apellidos.$error.required && vm.enviado">
Ingrese los apellidos del postulante
</p>