Skip to content

Commit

Permalink
Slot Management ...
Browse files Browse the repository at this point in the history
  • Loading branch information
PhilippeCorreges committed Aug 14, 2018
1 parent a5c1234 commit ebd332e
Show file tree
Hide file tree
Showing 9 changed files with 147 additions and 107 deletions.
21 changes: 11 additions & 10 deletions src/app/components/calendar-slot/calendar-slot.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@ import {duration, utc} from 'moment';
import {CourseSlot} from '../../model/model.course-slots';
import {User} from '../../model/model.user';
import {CreneauService} from '../../services/creneau.service';
import {Creneau} from '../../shared/sdk/models';
import {UserService} from '../../services/user.service';
import {Router} from '@angular/router';
import {UtilisateurApi} from '../../shared/sdk';
import {Utilisateur, AccessToken} from '../../shared/sdk/models';
import {Creneau} from '../../shared/sdk/models';
import {CreneauApi} from '../../shared/sdk/';
import {AuthGuard} from '../../shared/auth.guard';


Expand All @@ -20,14 +21,14 @@ export class CalendarSlotComponent implements OnInit {

currentUser: Utilisateur;
@Output() onDeleteEvent = new EventEmitter<any>();
administrateur: boolean = false;
deletedSlot: CourseSlot;
@Input() private slotValue: CourseSlot;
administrateur: boolean;
deletedSlot: Creneau;
@Input() private slotValue: Creneau;

constructor(private userService: UtilisateurApi, private creneauService: CreneauService, private router: Router) {
this.currentUser = this.userService.getCachedCurrent();

if (this.currentUser.privilege == 'Administrateur') {
if (this.currentUser.privilege === 'Administrateur') {
this.administrateur = true;
}
}
Expand All @@ -37,8 +38,8 @@ export class CalendarSlotComponent implements OnInit {
}

public get teachers(): String[] {
let arrayToReturn: String[] = [];
for (let currentTeacher of this.slotValue.professeurs) {
const arrayToReturn: String[] = [];
for (const currentTeacher of this.slotValue.professeursCreneau) {
arrayToReturn.push(`${currentTeacher.nom} ${currentTeacher.prenom}`);
}
return arrayToReturn;
Expand All @@ -64,7 +65,7 @@ export class CalendarSlotComponent implements OnInit {
if (this.currentUser.privilege === 'Administrateur') {
adresse = `creneau/${this.slotValue.idCreneau}`;
}
else if (this.currentUser.privilege === "Professeur") {
else if (this.currentUser.privilege === 'professeur') {
adresse = `liste-appel/${this.slotValue.idCreneau}`;
}
else adresse = undefined;
Expand All @@ -75,8 +76,8 @@ export class CalendarSlotComponent implements OnInit {
}

allerSurPageCreneau() {
if (this.currentUser.privilege === "Administrateur"
|| this.currentUser.privilege === "Professeur") {
if (this.currentUser.privilege === 'Administrateur'
|| this.currentUser.privilege === 'professeur') {
this.router.navigate([this.adresseCreneau]);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/app/components/liste-appel/liste-appel.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {User} from '../../model/model.user';
import {CreneauService} from '../../services/creneau.service';
import {CourseSlot} from '../../model/model.courseslot';
import {Room} from '../../model/model.room';
import {UtilisateurApi} from '../../shared/sdk';
import {Salle, UtilisateurApi} from '../../shared/sdk';
import {AuthGuard} from '../../shared/auth.guard';
import {Utilisateur} from '../../shared/sdk/models';

Expand All @@ -30,7 +30,7 @@ export class ListeAppelComponent implements OnInit {
listeProfesseurs: String;
dateDebut: number;
dateFin: number;
salle: Room;
salle: Salle;


constructor(private route: ActivatedRoute,
Expand Down
40 changes: 24 additions & 16 deletions src/app/components/liste-utilisateur/liste-utilisateur.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {SubscribeOnObservable} from 'rxjs/internal-compatibility';
import {Location} from '@angular/common';
import * as $ from 'jquery';
import * as _ from 'underscore';
import {EleveClassesPipe} from '../../pipes/eleve-classes.pipe'
import {EleveClassesPipe} from '../../pipes/eleve-classes.pipe';

@Component({
selector: 'app-liste-utilisateur',
Expand Down Expand Up @@ -48,7 +48,7 @@ export class ListeUtilisateurComponent implements OnInit {
filterParClasse = 'Toutes';
filterParNom: string;
selectedUtilisateurs: Utilisateur[] = [];
isSelected: boolean = false;
isSelected = false;
actionDemandee: string;

constructor(
Expand Down Expand Up @@ -84,9 +84,9 @@ export class ListeUtilisateurComponent implements OnInit {
this.utilisateurs$.forEach(arrayClasseUtilisateur => {
arrayClasseUtilisateur.forEach(utilisateur => {
if (this.classeDisponibles.indexOf(String(utilisateur.classeName)) === -1) {
this.classeDisponibles.push(utilisateur.classeName);
this.classeDisponibles.push(utilisateur.classeName, '');
// Dynamically add a column to the model (added in memory because no need to data persist it
utilisateur.selected = false;
utilisateur['selected'] = false;
}
});
});
Expand Down Expand Up @@ -149,7 +149,7 @@ export class ListeUtilisateurComponent implements OnInit {
this.selectedUtilisateurs.splice(0, this.selectedUtilisateurs.length);
this.utilisateurs$.forEach(utilisateurs => {
utilisateurs.forEach(utilisateur => {
utilisateur.selected = false;
utilisateur['selected'] = false;
});
});
}
Expand All @@ -159,13 +159,13 @@ export class ListeUtilisateurComponent implements OnInit {
}

if (this.filterParNom != null) {
var regex = new RegExp('.*' + this.filterParNom + '.*', 'i');
let regex = new RegExp('.*' + this.filterParNom + '.*', 'i');
this.selectedUtilisateurs = this.selectedUtilisateurs.filter(s => regex.test(s.nom));
}
console.log('longueur de this.selectedUtilisateurs.length'+ this.selectedUtilisateurs.length);
console.log('longueur de this.selectedUtilisateurs.length' + this.selectedUtilisateurs.length);

this.selectedUtilisateurs.forEach(utilisateur => {
utilisateur.selected = true;
utilisateur['selected'] = false;
});
}

Expand All @@ -191,9 +191,10 @@ export class ListeUtilisateurComponent implements OnInit {
actionsGroupees() {
// const event = document.getElementById('selectAction').nodeValue;
console.log(this.actionDemandee);
if (this.actionDemandee == 'supprimer') {
if (confirm('Voulez-vous vraiment supprimer ' + this.selectedUtilisateurs.length + " " + this.typeUtilisateur + "(s) ?")) {
this.userService.deleteUsers(this.typeUtilisateur, this.currentUser.idEtablissement, this.selectedUtilisateurs);
if (this.actionDemandee === 'supprimer') {
if (confirm('Voulez-vous vraiment supprimer ' + this.selectedUtilisateurs.length + ' ' + this.typeUtilisateur + '(s) ?')) {
// this.userService.deleteUsers(this.typeUtilisateur, this.currentUser.idEtablissement, this.selectedUtilisateurs);
this.userService.deleteById(this.selectedUtilisateurs);
this.userService.getUsers(this.typeUtilisateur, this.currentUser.idEtablissement).subscribe(newUsers => {
this.utilisateurs$.next(newUsers);
});
Expand All @@ -202,25 +203,32 @@ export class ListeUtilisateurComponent implements OnInit {
}
}

if (this.actionDemandee == 'disponible') {
if (this.actionDemandee === 'disponible') {
this.selectedUtilisateurs.forEach(utilisateur => {
utilisateur.disponible = true;
const newid = utilisateur.id;
this.userService.updateAttributes(utilisateur.id, {'disponible': true});
});
this.userService.updateUsers(this.typeUtilisateur, this.currentUser.idEtablissement, this.selectedUtilisateurs);


// updateUsers(this.typeUtilisateur, this.currentUser.idEtablissement, this.selectedUtilisateurs);
}

if (this.actionDemandee == 'indisponible') {
if (this.actionDemandee === 'indisponible') {
this.selectedUtilisateurs.forEach(utilisateur => {
utilisateur.disponible = false;
const newid = utilisateur.id;
this.userService.updateAttributes(utilisateur.id, {'disponible': false});
});

this.userService.updateUsers(this.typeUtilisateur, this.currentUser.idEtablissement, this.selectedUtilisateurs);

// this.userService.updateUsers(this.typeUtilisateur, this.currentUser.idEtablissement, this.selectedUtilisateurs);

}

console.log('collect : ' + this.selectedUtilisateurs.length);

console.log("action : " + event);
console.log('action : ' + event);
//document.forms["actiongroupee"].reset();
}

Expand Down
114 changes: 64 additions & 50 deletions src/app/components/page-creneau/page-creneau.component.ts
Original file line number Diff line number Diff line change
@@ -1,31 +1,19 @@
import { Component, OnInit, ViewEncapsulation, IterableDiffers, Input, EventEmitter } from '@angular/core';
import { User } from '../../model/model.user';
import { Router } from '@angular/router';
import { AppComponent } from '../../app.component';
import { AuthService } from '../../services/auth.service';
import { Observable } from 'rxjs';
import { map} from 'rxjs/operators';
import { MatListOption, MatSelectionList } from '@angular/material/list';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { FormControl, ReactiveFormsModule, FormsModule } from '@angular/forms';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { Time } from '@angular/common';
import {Component, Input, OnInit} from '@angular/core';
import {User} from '../../model/model.user';
import {ActivatedRoute, Router} from '@angular/router';
import {Observable} from 'rxjs';
import {FormControl} from '@angular/forms';
import * as moment from 'moment';
import { environment } from '../../../environments/environment';
import { CreneauService } from '../../services/creneau.service';
import { UserService } from '../../services/user.service';
import { Room } from '../../model/model.room';
import { RoomService } from '../../services/room.service';
import { ActivatedRoute } from '@angular/router';
import { CourseSlot } from '../../model/model.courseslot';
import { Utilisateur, AccessToken } from '../../shared/sdk/models';
import { UtilisateurApi } from '../../shared/sdk/services';
import {CreneauService} from '../../services/creneau.service';
import {Room} from '../../model/model.room';
import {RoomService} from '../../services/room.service';
import {CourseSlot} from '../../model/model.courseslot';
import {Utilisateur} from '../../shared/sdk/models';
import {UtilisateurApi} from '../../shared/sdk/services';
import {AuthGuard} from '../../shared/auth.guard';
import {EtablissementApi} from '../../shared/sdk';



@Component({
selector: 'app-page-creneau',
templateUrl: './page-creneau.component.html',
Expand Down Expand Up @@ -82,12 +70,10 @@ export class PageCreneauComponent implements OnInit {
}


// this.listProfesseur = this.userService.getUsers("professeur", this.currentUser.idEtablissement);
// this.listProfesseur = this.userService.getUsers("professeur", this.currentUser.idEtablissement);
// this.listEleve = this.userService.getUsers("eleve", this.currentUser.idEtablissement);
this.listProfesseur = this.etablissementAPI.getUtilisateurs(this.currentUser.numero_uai, {where: {'privilege': 'professeur'}} );
this.listEleve = this.etablissementAPI.getUtilisateurs(this.currentUser.numero_uai, {where: {'privilege': 'eleve'}} );


this.listProfesseur = this.etablissementAPI.getUtilisateurs(this.currentUser.numero_uai, {where: {'privilege': 'professeur'}});
this.listEleve = this.etablissementAPI.getUtilisateurs(this.currentUser.numero_uai, {where: {'privilege': 'eleve'}});


this.listEleve.forEach(arrayNomUtilisateur => {
Expand All @@ -100,10 +86,10 @@ export class PageCreneauComponent implements OnInit {


// EDITION CRENEAU
if (this.route.snapshot.params.id != null) {
if (this.route.snapshot.paramMap.get('id') !== null) {
this.pageModeCreation = false;
// this.idCreneau = parseInt(this.route.snapshot.params.get('id'), 10);
this.idCreneau = this.route.snapshot.params.id;
//this.idCreneau = parseInt(this.route.snapshot.paramMap.get('id'), 10);
this.idCreneau = this.route.snapshot.paramMap.get('id');
this.getSlot();

// this.roomsv.getAll(this.currentUser.idEtablissement)
Expand All @@ -126,7 +112,7 @@ export class PageCreneauComponent implements OnInit {
this.titre = 'Nouveau créneau';

this.roomsv.getAll(this.currentUser.numero_uai)
.subscribe( data => {
.subscribe(data => {
this.allSalleEtb = data;
});

Expand All @@ -142,26 +128,50 @@ export class PageCreneauComponent implements OnInit {
}
}

ngOnInit() {}
ngOnInit() {
}

updateTitre(dateDebut) {
// Titre
const titreDateMois = moment.unix(dateDebut).format('MM');
// console.log(titreDateMois);
let moisString = '';
switch (titreDateMois) {
case '01': moisString = 'janvier'; break;
case '02': moisString = 'février'; break;
case '03': moisString = 'mars'; break;
case '04': moisString = 'avril'; break;
case '05': moisString = 'mai'; break;
case '06': moisString = 'juin'; break;
case '07': moisString = 'juillet'; break;
case '08': moisString = 'août'; break;
case '09': moisString = 'septembre'; break;
case '10': moisString = 'octobre'; break;
case '11': moisString = 'novembre'; break;
default: moisString = 'décembre';
case '01':
moisString = 'janvier';
break;
case '02':
moisString = 'février';
break;
case '03':
moisString = 'mars';
break;
case '04':
moisString = 'avril';
break;
case '05':
moisString = 'mai';
break;
case '06':
moisString = 'juin';
break;
case '07':
moisString = 'juillet';
break;
case '08':
moisString = 'août';
break;
case '09':
moisString = 'septembre';
break;
case '10':
moisString = 'octobre';
break;
case '11':
moisString = 'novembre';
break;
default:
moisString = 'décembre';
}

// console.log(this.editedCreneau.dateDebut);
Expand Down Expand Up @@ -223,7 +233,9 @@ export class PageCreneauComponent implements OnInit {

}

majTitre() { this.titre = 'Création du créneau du ' + this.date_creneau.toString(); }
majTitre() {
this.titre = 'Création du créneau du ' + this.date_creneau.toString();
}

onSend() {
this.courseservice.createSlot(
Expand Down Expand Up @@ -268,7 +280,9 @@ export class PageCreneauComponent implements OnInit {
this.router.navigate(['/profile']);
}

onChangeNom(optionDuMenu) { this.filterParNom = optionDuMenu; }
onChangeNom(optionDuMenu) {
this.filterParNom = optionDuMenu;
}

displayFn(user: User): string {
// return user ? user.nom + " " + user.prenom : user.nom + " " + user.prenom;
Expand Down Expand Up @@ -297,8 +311,8 @@ export class PageCreneauComponent implements OnInit {
this.creneauId = data.idCreneau;
this.editedCreneau.professeurs = data.professeurs;
this.date_creneau = moment.unix(this.editedCreneau.dateDebut).format('YYYY-MM-DD');
this.heure_debut = moment.unix(this.editedCreneau.dateDebut).format('HH:mm');
this.heure_fin = moment.unix(this.editedCreneau.dateFin).format('HH:mm');
this.heure_debut = moment.unix(this.editedCreneau.dateDebut).format('HH:mm');
this.heure_fin = moment.unix(this.editedCreneau.dateFin).format('HH:mm');
this.selectedSallePut = this.editedCreneau.salle;
this.selectedProfesseurs = this.editedCreneau.professeurs;
this.selectedEleves = this.editedCreneau.eleves;
Expand All @@ -310,7 +324,7 @@ export class PageCreneauComponent implements OnInit {

// Salles : liste & selected in edition
this.roomsv.getAll(this.currentUser.numero_uai)
.subscribe( data => {
.subscribe(data => {
this.allSalleEtb = data;

this.allSalleEtb.forEach((salle) => {
Expand Down
5 changes: 3 additions & 2 deletions src/app/model/model.course-slots.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { User } from "./model.user";
import { Room } from "./model.room";
import {Utilisateur} from '../shared/sdk/models';
import {Salle} from '../shared/sdk/models';

export class CourseSlot {
idCreneau: number;
dateDebut: number;
dateFin: number;
professeurs: Utilisateur[];
eleves: Utilisateur[];
salle: Room;
}
salle: Salle;
}
Loading

0 comments on commit ebd332e

Please sign in to comment.