Update routes, mongoose schema and web flow

This commit is contained in:
Reynaldo Reyes
2016-03-27 23:24:28 -04:30
parent b8b65e64d7
commit 7fff896e43
34 changed files with 735 additions and 631 deletions

View File

@@ -46,7 +46,7 @@
<br><br></div></div>
<div class="row">
<div class="col-md-4 column">
<label for="correo">Direccion de Correo</label>
<label for="correo">Dirección de Correo</label>
<input type="correo" class="form-control"
name="correo" ng-model="vm.estudiante.Correo"
ng-pattern="/^[a-z]+[a-z0-9._]+@[a-z]+\.[a-z.]{2,5}$/" placeholder="me@example.com" required/>
@@ -62,17 +62,6 @@
</small>
</div>
</div>
<div class="col-md-4 column">
<label for="telefono">Numero de Telefono</label>
<input type="telefono" class="form-control"
name="telefono" ng-model="vm.estudiante.Telefono"
ng-pattern="/\d{4}-\d{3}-\d{4}/" maxlength="13"
placeholder="0424-123-9876"/>
<small class="error"
ng-show="vm.data_input_form.telefono.$error.pattern">
El Formato del Numero de Telefono es incorrecto.
</small>
</div>
</div>
</div>
</div>
@@ -83,11 +72,12 @@
<p class="input-group">
<span class="input-group-btn">
<button type="submit" class="btn-primary btn">
Agregar Alumno</button>
Agregar Alumno </button>
</span>
</p>
</div>
</div>
</div>
</form>
<a href="#actualizarMatricula" class="btn-warning btn" style=" margin: 10px">Regresar</a>
</div>

View File

@@ -0,0 +1,281 @@
(function(){
'use strict';
angular
.module('app.student')
.controller('listarEstudianteCtrl', listarEstudianteCtrl)
.controller('crearEstudianteCtrl', crearEstudianteCtrl)
.controller('actualizarEstudianteCtrl', actualizarEstudianteCtrl)
listarEstudianteCtrl.$inject = [ '$scope', '$rootScope', '$location', 'students', '$modal', 'estudianteSeleccionado' ];
function listarEstudianteCtrl( $scope, $rootScope, $location, students, $modal, estudianteSeleccionado ){
var vm = this;
vm.lista = true;
$rootScope.actOk = false;
$rootScope.loading = true;
$rootScope.table = false;
var estudiantesArray = [];
students.query(
function(data){
vm.estudiantes = data;
angular.forEach(vm.estudiantes, function (value){
estudiantesArray.push({
Cedula:value.id,
Nombre:value.name,
Apellido:value.lastname,
Telefono:value.number,
Correo: value.email
});
});
$rootScope.loading = false;
$rootScope.table = true;
vm.listaEstudiantes = estudiantesArray;
},
function(){
console.log("Error al obtener los datos.");
});
vm.eliminarEstudianteModal = function (index) {
$rootScope.index = index;
$rootScope.botonOK = true;
$rootScope.botonCancelar = true;
$rootScope.acceptButton = false;
$rootScope.rsplice = false;
$rootScope.listarEstudiantesLoading = true;
$rootScope.mensaje = "¿Seguro que desea eliminar el Estudiante?";
$scope.modalInstance = $modal.open({
animation: $rootScope.animationsEnabled,
templateUrl: 'partials/students/modal/list_students_modal.html',
scope: $scope,
size: 'sm',
resolve: {
items: function () {
return "";
}
}
});
};
vm.eliminarEstudiante = function (index) {
$rootScope.botonOK = false;
$rootScope.acceptButton = true;
$rootScope.botonCancelar = false;
$rootScope.urlLo = 'listarEstudiante';
$rootScope.listarEstudiantesLoading = true;
students.delete({id: vm.estudiantes[index]._id},
function (successResult) {
$rootScope.listarEstudiantesLoading = false;
$rootScope.rsplice = true;
$rootScope.mensaje = "Usuario " + vm.estudiantes[index].name + " eliminado";
},
function (errorResult) {
$rootScope.listarEstudiantesLoading = false;
$rootScope.mensaje = "Error eliminando al Usuario " + vm.estudiantes[index].name;
});
};
vm.removeEstudianteSplice = function(index, rsplice) {
if(rsplice){
vm.listaEstudiantes.splice(index, 1);
$rootScope.rsplice = false;
}
};
vm.modificarEstudiante = function (index) {
estudianteSeleccionado._id = vm.estudiantes[index]._id;
estudianteSeleccionado.Cedula = vm.estudiantes[index].id;
estudianteSeleccionado.Nombre = vm.estudiantes[index].name;
estudianteSeleccionado.Apellido= vm.estudiantes[index].lastname;
estudianteSeleccionado.Telefono = vm.estudiantes[index].number;
estudianteSeleccionado.Correo= vm.estudiantes[index].email;
$location.url('actualizarEstudiante');
};
$rootScope.open = function($event) {
$event.preventDefault();
$event.stopPropagation();
$rootScope.opened = true;
};
$scope.ok = function (urlLo) {
$location.url(urlLo);
$scope.modalInstance.dismiss('cancel');
};
$scope.cancel = function () {
$scope.modalInstance.dismiss('cancel');
};
return vm;
};
crearEstudianteCtrl.$inject = ['$scope', '$rootScope', '$location', 'professors', '$modal', 'selectedSection', 'selectedCourse'];
function crearEstudianteCtrl($scope, $rootScope, $location, professors, $modal, selectedSection, selectedCourse){
var vm = this;
var duplicated = false;
var professorid = '56f5fd3a20047f3c15b05f0e';
vm.professor = {};
$rootScope.mensaje = "";
$rootScope.actOk = false;
professors.get({ id: professorid },
function (successResult){
vm.professor = successResult;
},
function (){
console.log("Error al obtener los datos.");
});
vm.submit = function() {
if (vm.data_input_form.$valid){
var person = {
"id": vm.estudiante.Cedula,
"name": vm.estudiante.Nombre,
"lastname": vm.estudiante.Apellido,
"email": vm.estudiante.Correo
};
$rootScope.crearEstudianteLoading = true;
$rootScope.botonOk = false;
$scope.modalInstance = $modal.open({
animation: $rootScope.animationsEnabled,
templateUrl: 'partials/students/modal/create_students_modal.html',
scope: $scope,
size: 'sm',
resolve: {
items: function () {
return $rootScope.items;
}
}
});
angular.forEach (vm.professor.courses[selectedCourse.index].sections[selectedSection.index].students,
function (value){
if(value.id == vm.estudiante.Cedula) duplicated = true;
});
if (!duplicated){
vm.professor.courses[selectedCourse.index].sections[selectedSection.index].students.push(person);
professors.update({ id: professorid }, vm.professor,
function(){
$rootScope.botonOk = true;
$rootScope.urlLo = 'actualizarMatricula';
$rootScope.mensaje = "Estudiante " + vm.estudiante.Apellido + ", " + vm.estudiante.Nombre + " agregado";
$rootScope.crearEstudianteLoading = false;
},
function(){
$rootScope.botonOk = true;
$rootScope.urlLo = 'actualizarMatricula';
$rootScope.mensaje = "Error al agregar al estudiante " + vm.estudiante.Apellido + ", " + vm.estudiante.Nombre;
$rootScope.crearEstudianteLoading = false;
});
} else {
$rootScope.botonOk = true;
$rootScope.urlLo = 'actualizarMatricula';
$rootScope.mensaje = "Estudiante con cedula " + vm.estudiante.Cedula + " ya esta en la lista.";
$rootScope.crearEstudianteLoading = false;
}
}else{
vm.submitted = true;
}
}
$scope.ok = function (urlLo) {
$location.url(urlLo);
$scope.modalInstance.dismiss('cancel');
};
$scope.cancel = function () {
$scope.modalInstance.dismiss('cancel');
};
$rootScope.open = function($event) {
$event.preventDefault();
$event.stopPropagation();
$rootScope.opened = true;
};
return vm;
};
actualizarEstudianteCtrl.$inject = [ '$scope','$rootScope', '$location', 'students', '$modal', 'estudianteSeleccionado' ];
function actualizarEstudianteCtrl ( $scope, $rootScope, $location, students, $modal, estudianteSeleccionado ){
var vm = this;
vm.estudiante = estudianteSeleccionado;
$rootScope.mensaje = "";
$rootScope.actOk = false;
vm.submit = function() {
var student = {
"_id": vm.estudiante._id,
"id": vm.estudiante.Cedula,
"name": vm.estudiante.Nombre,
"lastname": vm.estudiante.Apellido,
"email": vm.estudiante.Correo,
"number": vm.estudiante.Telefono,
};
$rootScope.botonOk = false;
$rootScope.modificarEstudianteLoading = true;
$scope.modalInstance = $modal.open({
animation: $rootScope.animationsEnabled,
templateUrl: 'partials/students/modal/update_students_modal.html',
scope: $scope,
size: 'sm',
resolve: {
items: function () {
return $rootScope.items;
}
}
});
students.update(student,
function(){
$rootScope.botonOk = true;
$rootScope.botonCancelar = false;
$rootScope.urlLo = 'listarEstudiante';
$rootScope.mensaje = "Estudiante " + vm.estudiante.Apellido + ", " + vm.estudiante.Nombre + " actualizado";
},
function(){
$rootScope.botonOk = true;
$rootScope.botonCancelar = false;
$rootScope.urlLo = 'listarEstudiante';
$rootScope.mensaje = "Error al modificar al estudiante " + vm.estudiante.Apellido + ", " + vm.estudiante.Nombre;
});
}
$scope.ok = function (urlLo) {
$location.url(urlLo);
$scope.modalInstance.dismiss('cancel');
};
$scope.cancel = function () {
$scope.modalInstance.dismiss('cancel');
};
$rootScope.open = function($event) {
$event.preventDefault();
$event.stopPropagation();
$rootScope.opened = true;
};
return vm;
};
})();

View File

@@ -0,0 +1,75 @@
(function(){
'use strict';
angular
.module("app.student", ['ui.router', 'ui.bootstrap'])
.run(addStateToScope)
.config(getRoutes);
addStateToScope.$inject = ['$rootScope', '$state', '$stateParams'];
function addStateToScope($rootScope, $state, $stateParams){
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
};
getRoutes.$inject = ['$stateProvider', '$urlRouterProvider'];
function getRoutes($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise('/listarEstudiante');
$stateProvider
.state('listarEstudiante', {
url: '/listarEstudiante',
views: {
sidebar: {
templateUrl: 'partials/sidebar/sidebar.html',
controller: 'sidebarCtrl'
},
navbar: {
templateUrl: 'partials/sidebar/navbar.html'
},
content: {
templateUrl: 'partials/students/list_students.html',
controller: 'listarEstudianteCtrl',
controllerAs: 'vm'
}
}
})
.state('crearEstudiante', {
url: '/crearEstudiante',
views: {
sidebar: {
templateUrl: 'partials/sidebar/sidebar.html',
controller: 'sidebarCtrl'
},
navbar: {
templateUrl: 'partials/sidebar/navbar.html'
},
content: {
templateUrl: 'partials/students/create_students.html',
controller: 'crearEstudianteCtrl',
controllerAs: 'vm'
}
}
})
.state('actualizarEstudiante', {
url: '/actualizarEstudiante',
views: {
sidebar: {
templateUrl: 'partials/sidebar/sidebar.html',
controller: 'sidebarCtrl'
},
navbar: {
templateUrl: 'partials/sidebar/navbar.html'
},
content: {
templateUrl: 'partials/students/update_students.html',
controller: 'actualizarEstudianteCtrl',
controllerAs: 'vm'
}
}
})
};
})();

View File

@@ -0,0 +1,16 @@
(function(){
'use strict';
angular
.module('app.student')
.factory('students', students)
.value('estudianteSeleccionado',{});
students.$inject = ['$resource','$rootScope'];
function students($resource, $rootScope){
return $resource('http://'+$rootScope.domainUrl+'/students/:id', null,
{
'update': {method:'PUT'}
});
};
})();