Commit a587ea51 authored by D’jalmar Gutierrez Titirico's avatar D’jalmar Gutierrez Titirico 🚲
Browse files

Merge branch 'release-0.3.1' into 'master'

Release 0.3.1



See merge request !18
parents e3062666 1be81808
Pipeline #8 failed with stage
...@@ -811,7 +811,7 @@ module.exports = function (grunt) { ...@@ -811,7 +811,7 @@ module.exports = function (grunt) {
'ngAnnotate', 'ngAnnotate',
'copy:dist', 'copy:dist',
'babel:server', 'babel:server',
'cdnify', //'cdnify',
'cssmin', 'cssmin',
'uglify', 'uglify',
'filerev', 'filerev',
......
...@@ -129,7 +129,7 @@ postgres=# CREATE DATABASE moduloPersonalDb WITH OWNER usuarioPersonal; ...@@ -129,7 +129,7 @@ postgres=# CREATE DATABASE moduloPersonalDb WITH OWNER usuarioPersonal;
```sh ```sh
$ sudo su - usuarioPersonal $ sudo su - usuarioPersonal
$ cd ~ $ cd ~
$ git clone git@gitlab.geo.gob.bo:SistemaGestionAdministrativa/ModuloPersonal.git $ git clone git@gitlab.geo.gob.bo:SistemaGestionAdministrativa/ModuloPersonalCliente.git
$ cd ModuloPersonal $ cd ModuloPersonal
``` ```
......
# modulo-personal # modulo-personal-cliente
Este es el modulo de personal del sistema de gestion administrativa Este es el cliente del modulo de personal del sistema de gestion administrativa
## Desarrolladores ## Desarrolladores
- D'jalmar - D'jalmar
...@@ -14,7 +14,6 @@ Este es el modulo de personal del sistema de gestion administrativa ...@@ -14,7 +14,6 @@ Este es el modulo de personal del sistema de gestion administrativa
- [Bower](bower.io) (`npm install --global bower`) - [Bower](bower.io) (`npm install --global bower`)
- [Ruby](https://www.ruby-lang.org) and then `gem install sass` - [Ruby](https://www.ruby-lang.org) and then `gem install sass`
- [Grunt](http://gruntjs.com/) (`npm install --global grunt-cli`) - [Grunt](http://gruntjs.com/) (`npm install --global grunt-cli`)
- [Postgresql](http://www.postgresql.org.es/)
### Para iniciar el proyecto en desarrollo se deben ejecutar los siguientes comandos en la terminal ### Para iniciar el proyecto en desarrollo se deben ejecutar los siguientes comandos en la terminal
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
"name": "modulo-personal", "name": "modulo-personal",
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"angular": "~1.5.3", "angular": "~1.4.10",
"json3": "~3.3.1", "json3": "~3.3.1",
"es5-shim": "~3.0.1", "es5-shim": "~3.0.1",
"bootstrap-sass-official": "~3.1.1", "bootstrap-sass-official": "~3.1.1",
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
"font-awesome": ">=4.1.0", "font-awesome": ">=4.1.0",
"lodash": "~2.4.1", "lodash": "~2.4.1",
"angular-ui-router": "~0.2.18", "angular-ui-router": "~0.2.18",
"angular-validation-match": "~1.5.2", "angular-validation-match": "~1.4.0",
"angular-animate": "^1.5.3", "angular-animate": "^1.4.9",
"ng-tags-input": "^3.0.0" "ng-tags-input": "^3.0.0"
}, },
"devDependencies": { "devDependencies": {
......
...@@ -143,12 +143,15 @@ h4.color-primary { ...@@ -143,12 +143,15 @@ h4.color-primary {
@import 'cargos/cargos.scss'; @import 'cargos/cargos.scss';
@import 'comentarios/comentarios.scss'; @import 'comentarios/comentarios.scss';
@import 'datosPostulantes/datosPostulantes.scss'; @import 'datosPostulantes/datosPostulantes.scss';
@import 'entidades/entidades.scss';
@import 'main/main.scss'; @import 'main/main.scss';
@import 'postulaciones/postulaciones.scss'; @import 'postulaciones/postulaciones.scss';
@import 'postulantes/postulantes.scss'; @import 'postulantes/postulantes.scss';
@import 'tags/tags.scss'; @import 'tags/tags.scss';
@import 'tagsPostulantes/tagsPostulantes.scss'; @import 'tagsPostulantes/tagsPostulantes.scss';
@import 'tiposDato/tiposDato.scss'; @import 'tiposDato/tiposDato.scss';
@import 'tiposEntidad/tiposEntidad.scss';
@import '../components/footer/footer.scss'; @import '../components/footer/footer.scss';
@import '../components/modal/modal.scss'; @import '../components/modal/modal.scss';
@import '../components/organigrama/framework/jquery.orgchart.scss';
// endinjector // endinjector
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
color:#fff; color:#fff;
padding:9px 15px; padding:9px 15px;
border-bottom:1px solid #eee; border-bottom:1px solid #eee;
background-color: #5cb85c; background-color: $brand-success;
-webkit-border-top-left-radius: 5px; -webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px;
-moz-border-radius-topleft: 5px; -moz-border-radius-topleft: 5px;
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
color:#fff; color:#fff;
padding:9px 15px; padding:9px 15px;
border-bottom:1px solid #eee; border-bottom:1px solid #eee;
background-color: #f0ad4e; background-color: $brand-warning;
-webkit-border-top-left-radius: 5px; -webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px;
-moz-border-radius-topleft: 5px; -moz-border-radius-topleft: 5px;
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
color:#fff; color:#fff;
padding:9px 15px; padding:9px 15px;
border-bottom:1px solid #eee; border-bottom:1px solid #eee;
background-color: #d9534f; background-color: $brand-danger;
-webkit-border-top-left-radius: 5px; -webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px;
-moz-border-radius-topleft: 5px; -moz-border-radius-topleft: 5px;
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
color:#fff; color:#fff;
padding:9px 15px; padding:9px 15px;
border-bottom:1px solid #eee; border-bottom:1px solid #eee;
background-color: #5bc0de; background-color: $brand-info;
-webkit-border-top-left-radius: 5px; -webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px;
-moz-border-radius-topleft: 5px; -moz-border-radius-topleft: 5px;
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
color:#fff; color:#fff;
padding:9px 15px; padding:9px 15px;
border-bottom:1px solid #eee; border-bottom:1px solid #eee;
background-color: #428bca; background-color: $brand-primary;
-webkit-border-top-left-radius: 5px; -webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px;
-moz-border-radius-topleft: 5px; -moz-border-radius-topleft: 5px;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
class ComentarioService { class ComentarioService {
constructor($resource, appConfig) { constructor($resource, appConfig) {
this.resource = $resource(appConfig.serverAddress +'/api/comentarios/:id', {id: '@_id'}, { this.resource = $resource(appConfig.serverAddress + '/api/comentarios/:id', {id: '@_id'}, {
update: {method: 'PUT'}, update: {method: 'PUT'},
query: {isArray: false} query: {isArray: false}
}) })
......
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
this.datoPostulante = {fk_postulante: this.postulante._id} this.datoPostulante = {fk_postulante: this.postulante._id}
this.service = datoPostulanteService; this.service = datoPostulanteService;
tipoDatoService.getTiposDato().then(tiposDato=> { tipoDatoService.getTiposDato().then(tiposDato=> {
this.tiposDato = tiposDato; this.tiposDato = {rows: tiposDato.rows.filter(dato=>this.postulante.Datos.findIndex(x=>x.propiedad == dato.propiedad) == -1)};
this.tipoDatoSeleccionado = {}; // this.tipoDatoSeleccionado = {};
}) })
} }
......
...@@ -7,11 +7,13 @@ ...@@ -7,11 +7,13 @@
this.enviado = false; this.enviado = false;
this.modal = $uibModalInstance; this.modal = $uibModalInstance;
this.datoPostulante = Object.assign({}, parametro.tipoDato.DatoPostulante) this.datoPostulante = Object.assign({}, parametro.tipoDato.DatoPostulante)
this.postulante = parametro.postulante;
this.tipoDato = parametro.tipoDato; this.tipoDato = parametro.tipoDato;
this.service = datoPostulanteService; this.service = datoPostulanteService;
tipoDatoService.getTiposDato().then(tiposDato=> { tipoDatoService.getTiposDato().then(tiposDato=> {
this.tiposDato = tiposDato;
this.tipoDatoSeleccionado = tiposDato.rows.find(x=>x.propiedad === this.datoPostulante.propiedad); this.tipoDatoSeleccionado = tiposDato.rows.find(x=>x.propiedad === this.datoPostulante.propiedad);
this.tiposDato = {rows: tiposDato.rows.filter(dato=>this.postulante.Datos.findIndex(x=>x.propiedad == dato.propiedad) == -1)};
this.tiposDato.rows.push(this.tipoDatoSeleccionado);
}) })
} }
......
'use strict';
(()=> {
class EntidadController {
constructor($state, $uibModal, Modal, EntidadService) {
this.$state = $state;
this.entidades = [];
this.entidad = {};
this.alertas = [];
this.ordenarPor = "nombre";
this.ordenDescendente = false;
this.modal = $uibModal;
this.Modal = Modal;
this.service = EntidadService;
this.paginaActual = 1;
this.cambiarPagina();
}
organigrama(id) {
this.$state.go('entidades.organigrama', {entidadId: id});
}
cambiarPagina() {
this.service.getEntidades({
pagina: this.paginaActual,
elementos: 10,
ordenarPor: this.ordenarPor,
orden: this.ordenDescendente
})
.then(respuesta=> {
console.log(respuesta);
this.entidades = respuesta.rows;
this.totalElementos = respuesta.count;
})
}
}
angular.module('moduloPersonalApp')
.controller('EntidadCtrl', EntidadController);
})();
'use strict';
describe('Controller: EntidadesCtrl', function () {
// load the controller's module
beforeEach(module('moduloPersonalApp'));
var EntidadesCtrl, scope;
// Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) {
scope = $rootScope.$new();
EntidadesCtrl = $controller('EntidadesCtrl', {
$scope: scope
});
}));
it('should ...', function () {
expect(1).to.equal(1);
});
});
<div class="container">
<div ui-view></div>
</div>
'use strict';
angular.module('moduloPersonalApp')
.config(function ($stateProvider) {
$stateProvider
.state('entidades', {
abstract: true,
url: '/entidades',
templateUrl: 'app/entidades/entidades.html',
controller: 'EntidadCtrl',
controllerAs: 'vm'
})
.state('entidades.lista', {
url: '',
templateUrl: 'app/entidades/entidades.lista.html'
})
.state('entidades.organigrama', {
url: '/:entidadId/organigrama',
templateUrl: 'app/entidades/organigrama/entidades.organigrama.html',
controller: 'EntidadOrganigramaCtrl',
controllerAs: 'vm'
});
});
<div class="row">
<div class="container">
<div class="row">
<div class="col-sm-4 col-xs-6">
<h3>Entidades
<small><span class="label label-default">{{vm.totalElementos}}</span></small>
</h3>
</div>
<div class="col-sm-3 col-sm-offset-5">
<div class="pull-right">
<button class="btn btn-success-outline header-button" ng-click="vm.crear()">
<i class="fa fa-plus"></i> Crear Entidad
</button>
</div>
</div>
</div>
<uib-alert ng-repeat="alerta in vm.alertas" type="{{alerta.tipo}}" close="vm.alertas.splice($index,1)"
dismiss-on-timeout="3000">{{alerta.mensaje}}
</uib-alert>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th><a href="" ng-click="vm.ordenar('nombres')">Nombre</a></th>
<th><a href="" ng-click="vm.ordenar('siglas')">Sigla</a></th>
<th colspan="2" class="text-center">Opciones</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="entidad in vm.entidades">
<td>{{entidad.nombre}}</td>
<td>{{entidad.sigla}}</td>
<td class="text-center">
<div class="btn-group" role="group">
<a class="btn btn-primary-outline btn-xs" href="#" role="button"
ng-click="vm.organigrama(entidad._id)">
<i class="fa fa-sitemap fa-lg"></i>
</a>
<a class="btn btn-info-outline btn-xs" href="#" role="button" ng-click="vm.eliminar(entidad)">
<i class="fa fa-edit fa-lg"></i>
</a>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<uib-pagination
ng-hide="vm.totalElementos<10"
total-items="vm.totalElementos"
items-per-page="10"
max-size="8"
force-ellipses="true"
ng-model="vm.paginaActual"
ng-change="vm.cambiarPagina()"
next-text="Siguiente"
previous-Text="Anterior"></uib-pagination>
</div>
</div>
'use strict';
(()=> {
class EntidadService {
constructor($resource, appConfig) {
this.resource = $resource(appConfig.serverAddress + '/api/entidades/:id', {
id: '@_id'
}, {
update: {method: 'PUT'},
query: {isArray: false},
organigrama: {
method: 'GET',
url: appConfig.serverAddress + '/api/entidades/:id/organigrama'
}
})
}
getEntidades(parametros) {
return this.resource.query(parametros).$promise;
}
getOrganigrama(id) {
return this.resource.organigrama({id: id}).$promise;
}
}
angular.module('moduloPersonalApp')
.service('EntidadService', EntidadService);
})();
'use strict';
describe('Service: entidades', function () {
// load the service's module
beforeEach(module('moduloPersonalApp'));
// instantiate service
var entidades;
beforeEach(inject(function (_entidades_) {
entidades = _entidades_;
}));
it('should do something', function () {
expect(!!entidades).to.be.true;
});
});
/**
* Created by adsib on 03-05-16.
*/
'use strict';
(()=> {
class EntidadOrganigramaController {
constructor(EntidadService, $stateParams) {
this.service = EntidadService;
this.id = $stateParams.entidadId;
EntidadService.getOrganigrama(this.id).then(arbol => {
this.arbol = arbol;
$('#chart').orgchart({
'data': this.arbol,
'nodeTitle': 'name',
'nodeContent': 'title',
'draggable': true,
'createNode': function ($node, data) {
switch (data.tipo) {
case 'oficina':
$node.addClass('success');
break;
case 'unidadOrganizacional':
$node.addClass('warning');
break;
case 'cargo':
$node.addClass('danger');
break;
default:
break;
}
}
});
});
}
}
angular.module('moduloPersonalApp')
.controller('EntidadOrganigramaCtrl', EntidadOrganigramaController)
})();
<div class="container-fluid">
<div class="row">
<div id="chart" class="table-responsive orgchart-primary">
</div>
</div>
</div>
'use strict'; 'use strict';
(function() { (function () {
class MainController { class MainController {
constructor(Autenticacion, $state) {
constructor($http) { Autenticacion.inicioSesion(function (inicio) {
if (!inicio)
$state.go('login');
})
} }
} }
angular.module('moduloPersonalApp') angular.module('moduloPersonalApp')
.controller('MainController', MainController); .controller('MainController', MainController);
})(); })();
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment