Update professor module

This commit is contained in:
Reynaldo Reyes
2016-06-07 22:46:09 -04:00
parent ceedb84c90
commit a904766db6
8 changed files with 165 additions and 58 deletions

View File

@@ -0,0 +1,41 @@
<div class="modal-header">
<h3 class="modal-title">Nueva Contraseña</h3>
</div>
<div style="text-align: center" class="modal-body">
{{ vm.mensaje }}
</div>
<div class="modal-footer">
<div class="col-md-6 column" ng-show="vm.showFields">
<label style="text-align: center" for="password">Contraseña</label>
<input type="password" name="password" class="form-control" ng-model="vm.Password1" maxlength="20" required/>
<div class="error" ng-show="vm.invalid">
<small class="error"
ng-show="vm.invalid">
Las Contraseñas deben coincidir.
</small>
</div>
</div>
<div class="col-md-6 column" ng-show="vm.showFields">
<label style="text-align: center" for="password">Repetir Contraseña</label>
<input type="password" name="password" class="form-control" ng-model="vm.Password2" maxlength="20" required/>
<div class="error" ng-show="vm.invalid">
<small class="error"
ng-show="vm.invalid">
Las Contraseñas deben coincidir.
</small>
</div>
</div>
<button class="btn btn-primary"
type="button"
ng-click="vm.checkPassword()"
ng-show="vm.showFields"
style="margin-top:20px;">
Cambiar Contraseña
</button>
<div ng-show="!vm.showFields">
<button class="btn btn-primary"
ng-show="vm.botonOk"
type="button"
ng-click="ok()">OK</button>
</div>
</div>

View File

@@ -4,6 +4,7 @@
angular angular
.module('app.professor') .module('app.professor')
.factory('professors', professors) .factory('professors', professors)
.factory('passwordReset', passwordReset)
.value('selectedCourse',{}) .value('selectedCourse',{})
.value('selectedSection',{}) .value('selectedSection',{})
.value('selectedStudent',{}) .value('selectedStudent',{})
@@ -40,4 +41,15 @@
} }
}); });
}; };
passwordReset.$inject = ['$resource','$rootScope','authentication'];
function passwordReset($resource, $rootScope, authentication){
return $resource('http://'+$rootScope.domainUrl+'/reset/:id', {}, {
update: {
method: 'PUT',
headers: {
Authorization: 'Bearer '+ authentication.getToken()
}
}
});
};
})(); })();

View File

@@ -47,6 +47,8 @@
vm.mensaje = vm.mensaje =
"Error al agregar al profesor " + vm.profesor.Apellido + ", " + vm.profesor.Nombre; "Error al agregar al profesor " + vm.profesor.Apellido + ", " + vm.profesor.Nombre;
}); });
}else{
vm.submitted = true;
} }
} }

View File

@@ -65,26 +65,33 @@
</small> </small>
</div> </div>
</div> </div>
<div class="col-md-4 column">
<label for="password">Contraseña *</label>
<input type="password" name="password" class="form-control" ng-model="vm.profesor.Password" maxlength="20" required/>
<div class="error" ng-show="vm.submitted &&
vm.data_input_form.password.$invalid">
<small class="error"
ng-show="vm.data_input_form.password.$error.required">
La Contraseña del Profesor es obligatoria.
</small>
</div>
</div>
<div class="col-md-4 column"> <div class="col-md-4 column">
<label for="telefono">Número de Teléfono</label> <label for="telefono">Número de Teléfono</label>
<input type="telefono" class="form-control" <input type="telefono" class="form-control"
name="telefono" ng-model="vm.profesor.Telefono" name="telefono" ng-model="vm.profesor.Telefono"
ng-pattern="/\d{13}/" maxlength="13" ng-minlength="7" ng-maxlength="13"
placeholder="04241239876"/> placeholder="04241239876"/>
<small class="error" <small class="error"
ng-show="vm.data_input_form.telefono.$error.pattern"> ng-show="vm.data_input_form.telefono.$error.minlength">
El Formato del Número de Teléfono es incorrecto. La longitud del Número de Teléfono es de 7 números mínimo.
</small>
<small class="error"
ng-show="vm.data_input_form.telefono.$error.maxlength">
La longitud del Número de Teléfono es de 13 números máximo.
</small> </small>
</div> </div>
<div class="col-md-4 column">
<label for="password">Contraseña *</label>
<input type="password" class="form-control" ng-model="vm.profesor.Password" maxlength="20" required/>
<div class="error" ng-show="vm.submitted && vm.data_input_form.password.$invalid">
<small class="error" ng-show="vm.data_input_form.password.$error.required">
La Contraseña del Profesor es obligatorio.
</small>
</div>
</div>
</div> </div>
</div> </div>
<label> * Estos campos son obligatorios.</label> <label> * Estos campos son obligatorios.</label>

View File

@@ -6,8 +6,8 @@
.controller('ProfessorListCtrl', ProfessorListCtrl) .controller('ProfessorListCtrl', ProfessorListCtrl)
ProfessorListCtrl.$inject = ProfessorListCtrl.$inject =
[ '$scope', '$state', 'professors', '$modal', 'profesorSeleccionado' ]; [ '$scope', '$state', 'professors', '$modal', 'profesorSeleccionado','data' ];
function ProfessorListCtrl( $scope, $state, professors, $modal, profesorSeleccionado ){ function ProfessorListCtrl( $scope, $state, professors, $modal, profesorSeleccionado, data ){
var vm = this; var vm = this;
vm.lista = true; vm.lista = true;
@@ -15,17 +15,8 @@
var profesorArray = []; var profesorArray = [];
professors.query( professors.query(
function (successResult){ function (successResult){
vm.profesor = successResult; vm.professors = successResult;
angular.forEach(vm.profesor, function (value){ vm.listaProfesor = vm.professors;
profesorArray.push({
Cedula:value.id,
Nombre:value.name,
Apellido:value.lastname,
Telefono:value.number,
Correo: value.email
});
});
vm.listaProfesor = profesorArray;
}, },
function(){ function(){
@@ -53,15 +44,15 @@
vm.acceptButton = true; vm.acceptButton = true;
vm.botonCancelar = false; vm.botonCancelar = false;
professors.delete({id: vm.profesor[index]._id}, professors.delete({id: vm.professors[index]._id},
function () { function () {
vm.rsplice = true; vm.rsplice = true;
vm.mensaje = vm.mensaje =
"Profesor " + vm.profesor[index].name + " eliminado"; "Profesor " + vm.professors[index].name + " eliminado";
}, },
function () { function () {
vm.mensaje = vm.mensaje =
"Error eliminando al Profesor " + vm.profesor[index].name; "Error eliminando al Profesor " + vm.professors[index].name;
}); });
}; };
@@ -73,12 +64,7 @@
}; };
vm.modificarProfesor = function (index) { vm.modificarProfesor = function (index) {
profesorSeleccionado._id = vm.profesor[index]._id; data.professorId = vm.professors[index]._id;
profesorSeleccionado.Cedula = vm.profesor[index].id;
profesorSeleccionado.Nombre = vm.profesor[index].name;
profesorSeleccionado.Apellido = vm.profesor[index].lastname;
profesorSeleccionado.Telefono = vm.profesor[index].number;
profesorSeleccionado.Correo = vm.profesor[index].email;
$state.go('ProfessorUpdate'); $state.go('ProfessorUpdate');
}; };

View File

@@ -5,13 +5,13 @@
<table class="table table-bordered table-striped"> <table class="table table-bordered table-striped">
<thead> <thead>
<tr> <tr>
<th width="20%"> <th width="20%" style="text-align: center">
Cedula Cedula
</th> </th>
<th width="20%"> <th width="20%" style="text-align: center">
Nombre Nombre
</th> </th>
<th width="20%"> <th width="20%" style="text-align: center">
Apellido Apellido
</th> </th>
<th width="20%" style="text-align: center"> <th width="20%" style="text-align: center">
@@ -24,9 +24,9 @@
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="profesor in vm.listaProfesor"> <tr ng-repeat="profesor in vm.listaProfesor">
<td style="vertical-align:middle">{{ profesor.Cedula }}</td> <td style="vertical-align:middle">{{ profesor.id }}</td>
<td style="vertical-align:middle">{{ profesor.Nombre }}</td> <td style="vertical-align:middle">{{ profesor.name }}</td>
<td style="vertical-align:middle">{{ profesor.Apellido }}</td> <td style="vertical-align:middle">{{ profesor.lastname }}</td>
<td style="text-align: center"> <td style="text-align: center">
<span title="Haga click para Modificar un Profesor" <span title="Haga click para Modificar un Profesor"
class="glyphicon glyphicon-edit" class="glyphicon glyphicon-edit"

View File

@@ -6,13 +6,23 @@
.controller('ProfessorUpdateCtrl', ProfessorUpdateCtrl) .controller('ProfessorUpdateCtrl', ProfessorUpdateCtrl)
ProfessorUpdateCtrl.$inject = ProfessorUpdateCtrl.$inject =
['$scope', '$state', 'professors', '$modal', 'profesorSeleccionado' ]; ['$scope', '$state', 'professors', '$modal', 'profesorSeleccionado', 'data', 'passwordReset' ];
function ProfessorUpdateCtrl ( $scope, $state, professors, $modal, profesorSeleccionado ){ function ProfessorUpdateCtrl ( $scope, $state, professors, $modal, profesorSeleccionado, data, passwordReset){
var vm = this; var vm = this;
vm.botonOk = false; vm.botonOk = false;
vm.id = data.professorId;
vm.mensaje = ""; vm.mensaje = "";
vm.profesor = profesorSeleccionado; vm.profesor = null;
professors.get({id:vm.id},
function(success){
vm.profesor = success;
//vm.profesor.Password
},
function(){
console.log("Error obteniendo profesor");
})
vm.submit = function() { vm.submit = function() {
@@ -30,7 +40,7 @@
$scope.modalInstance = $modal.open({ $scope.modalInstance = $modal.open({
templateUrl: 'partials/professor/modal/update_professor_modal.html', templateUrl: 'partials/professor/modal/update_professor_modal.html',
scope: $scope, scope: $scope,
size: 'sm', size: 'sm'
}); });
professors.update({ id: vm.profesor._id}, professor, professors.update({ id: vm.profesor._id}, professor,
@@ -47,6 +57,48 @@
"Error al modificar al profesor " + vm.profesor.Apellido + ", " + vm.profesor.Nombre; "Error al modificar al profesor " + vm.profesor.Apellido + ", " + vm.profesor.Nombre;
}); });
} }
vm.newPassword = function (){
vm.mensaje = "Inserte el nuevo Password del profesor "+ vm.profesor.lastname;
vm.invalid = false;
vm.showFields = true;
vm.showButton = false;
$scope.modalInstance = $modal.open({
templateUrl: 'partials/professor/modal/new_password_modal.html',
scope: $scope,
size: 'md'
});
}
vm.checkPassword = function (){
if(vm.Password1!=vm.Password2){
vm.invalid = true;
}else{
vm.invalid = false;
vm.showFields = false;
vm.showButton = true;
var updatedProfessor = {
"id": vm.profesor.id,
"name": vm.profesor.name,
"lastname": vm.profesor.lastname,
"email": vm.profesor.email,
"number": vm.profesor.number,
"role": "professor",
"password": vm.Password1
};
passwordReset.update({ id: vm.profesor._id}, updatedProfessor,
function(){
vm.botonOk = true;
vm.mensaje =
"Contraseña actualizada";
},
function(){
vm.botonOk = true;
vm.mensaje =
"Error al modificar contraseña";
});
}
}
$scope.ok = function () { $scope.ok = function () {
$state.go('ProfessorList'); $state.go('ProfessorList');

View File

@@ -10,15 +10,15 @@
<div class="row"> <div class="row">
<div class="col-md-4 column"> <div class="col-md-4 column">
<label for="cedula">Cedula</label> <label for="cedula">Cedula</label>
<input type="numeric" class="form-control" name="cedula" readonly="readonly" ng-model="vm.profesor.Cedula"/> <input type="numeric" class="form-control" name="cedula" readonly="readonly" ng-model="vm.profesor.id"/>
</div> </div>
<div class="col-md-4 column"> <div class="col-md-4 column">
<label for="nombre">Nombre</label> <label for="nombre">Nombre</label>
<input type="text" class="form-control" name="nombre" readonly="readonly" ng-model="vm.profesor.Nombre"/> <input type="text" class="form-control" name="nombre" readonly="readonly" ng-model="vm.profesor.name"/>
</div> </div>
<div class="col-md-4 column"> <div class="col-md-4 column">
<label for="apellido">Apellido</label> <label for="apellido">Apellido</label>
<input type="text" class="form-control" name="apellido" readonly="readonly" ng-model="vm.profesor.Apellido"/> <input type="text" class="form-control" name="apellido" readonly="readonly" ng-model="vm.profesor.lastname"/>
</div> </div>
</div> </div>
<div class="row clearfix"><div class="col-md-12 column"><br><br> <div class="row clearfix"><div class="col-md-12 column"><br><br>
@@ -27,7 +27,7 @@
<div class="col-md-4 column"> <div class="col-md-4 column">
<label for="email">Dirección de Correo Electronico</label> <label for="email">Dirección de Correo Electronico</label>
<input type="email" class="form-control" name="email" <input type="email" class="form-control" name="email"
ng-model="vm.profesor.Correo" ng-model="vm.profesor.email"
ng-pattern="/^[a-z]+[a-z0-9._]+@[a-z]+\.[a-z.]{2,5}$/" placeholder="me@example.com"/> ng-pattern="/^[a-z]+[a-z0-9._]+@[a-z]+\.[a-z.]{2,5}$/" placeholder="me@example.com"/>
<small class="error" <small class="error"
ng-show="vm.data_input_form.correo.$error.pattern"> ng-show="vm.data_input_form.correo.$error.pattern">
@@ -36,13 +36,21 @@
</div> </div>
<div class="col-md-4 column"> <div class="col-md-4 column">
<label for="telefono">Número de Teléfono</label> <label for="telefono">Número de Teléfono</label>
<input type="phone" class="form-control" <input type="telefono" class="form-control"
name="telefono" ng-model="vm.profesor.Telefono" name="telefono" ng-model="vm.profesor.number"
ng-pattern="/\d{4}-\d{3}-\d{4}/" maxlength="13" ng-minlength="7" ng-maxlength="13"
placeholder="0212-574-1234"/> placeholder="04241239876"/>
<small class="error" ng-show="vm.data_input_form.telefono.$error.pattern"> <small class="error"
El formato del Teléfono debe ser: 0212-789-5551. ng-show="vm.data_input_form.telefono.$error.minlength">
La longitud del Número de Teléfono es de 7 números mínimo.
</small> </small>
<small class="error"
ng-show="vm.data_input_form.telefono.$error.maxlength">
La longitud del Número de Teléfono es de 13 números máximo.
</small>
</div>
<div class="col-md-offset-1 col-md-2 column">
<button type="button" class="btn-primary btn" style="margin: 10px" ng-click="vm.newPassword()">Cambiar Contraseña</button>
</div> </div>
</div> </div>
</div> </div>
@@ -54,7 +62,6 @@
<p class="input-group"> <p class="input-group">
<span class="input-group-btn"> <span class="input-group-btn">
<button type="submit" class="btn-success btn">Modificar Profesor</button> <button type="submit" class="btn-success btn">Modificar Profesor</button>
<button type="button" class="btn-warning btn" style="margin: 10px" ng-click="vm.back()">Regresar</button>
</span> </span>
</p> </p>
</div> </div>