Commit 33ae663c authored by Romain DELEAU's avatar Romain DELEAU

verify errors + fix on paste Role

parent 9b08323b
<!--
<h2 mat-dialog-title>{{'dialog_clear_title' | translate}}</h2>
<mat-dialog-content>{{'dialog_clear_content' | translate}} ?</mat-dialog-content>
<mat-dialog-actions align="end">
<button mat-button mat-dialog-close>{{'dialog_button_no' | translate}}</button>
<button mat-button [mat-dialog-close]="true" cdkFocusInitial>{{'dialog_button_yes' | translate}}</button>
</mat-dialog-actions>
-->
<!--
<mat-dialog-content>
<div *ngFor="let mission of scenario.missions, let missionIndex = index">
<div *ngFor="let symbol of getMissionSymbols(mission), let symbolIndex = index">
<div *ngFor="let role of mission.roles, let roleIndex = index">
<div *ngIf="verifyRoleSymbolsMax(role,roleIndex,symbol) > 0">
min{{verifyRoleSymbolsMin(role,roleIndex,symbol)}} max{{verifyRoleSymbolsMax(role,roleIndex,symbol)}}
<mat-icon [fontIcon]="getAsSymbol(symbol[0]).symbol" [style.color]="getAsSymbol(symbol[0]).color"></mat-icon>
</div>
</div>
</div>
<div *ngFor="let role of mission.roles, let roleIndex = index">
min{{verifyRolesMin(role)}} max{{verifyRoleMax(role)}}
</div>
</div>
</mat-dialog-content>
-->
<h1 mat-dialog-title>{{'verify_title' | translate}}</h1>
<mat-dialog-content>
<div class="info">
......@@ -35,15 +10,18 @@
<div *ngFor="let role of mission.roles, let roleIndex = index">
<div *ngFor="let symbol2 of getRoleSymbolsAndIndex(mission)">
<p *ngIf="getAsSymbol(symbol2[0]).symbol == symbol.symbol && getAsSymbol(symbol2[0]).color == symbol.color && verifyRoleSymbolsMax(role,roleIndex,symbol2)">
[{{getRoleName(missionIndex,roleIndex)}}] {{'verify_role_symbol_part1' | translate}} [{{verifyRoleSymbolsMin(role,roleIndex,symbol2)}} {{getDurationUnit()}}] {{'verify_role_symbol_part2' | translate}} [{{verifyRoleSymbolsMax(role,roleIndex,symbol2)}} {{getDurationUnit()}}]
{{'verify_role_symbol_part3' | translate}} [<mat-icon [fontIcon]="getAsSymbol(symbol2[0]).symbol" [style.color]="getAsSymbol(symbol2[0]).color"></mat-icon>]
{{getRoleName(missionIndex,roleIndex)}} {{'verify_role_symbol_part1' | translate}} {{verifyRoleSymbolsMin(role,roleIndex,symbol2)}} {{getDurationUnit()}} {{'verify_role_symbol_part2' | translate}} {{verifyRoleSymbolsMax(role,roleIndex,symbol2)}} {{getDurationUnit()}}
{{'verify_role_symbol_part3' | translate}} <mat-icon [fontIcon]="getAsSymbol(symbol2[0]).symbol" [style.color]="getAsSymbol(symbol2[0]).color"></mat-icon>
</p>
</div>
</div>
<p *ngIf="getSymbolMaxOfMin(mission,symbol) <= getSymbolMinOfMax(mission,symbol) && getNumberOfSymbol(mission,symbol) != 1">{{'verify_role_symbol_recap_part1' | translate}} <mat-icon [fontIcon]="symbol.symbol" [style.color]="symbol.color"></mat-icon> {{'verify_role_symbol_recap_part2' | translate}} {{getSymbolMaxOfMin(mission,symbol)}} {{'verify_role_symbol_recap_part3' | translate}} {{getSymbolMinOfMax(mission,symbol)}} {{getDurationUnit()}}</p>
<p class="mission-symbol-error" *ngIf="getSymbolMaxOfMin(mission,symbol) > getSymbolMinOfMax(mission,symbol) && getNumberOfSymbol(mission,symbol) != 1">{{'verify_role_symbol_recap_error1_part1' | translate}} <mat-icon [fontIcon]="symbol.symbol" [style.color]="symbol.color"></mat-icon> {{'verify_role_symbol_recap_error1_part2' | translate}}</p>
<p class="mission-symbol-error" *ngIf="getNumberOfSymbol(mission,symbol) == 1">{{'verify_role_symbol_recap_error2' | translate}} <mat-icon [fontIcon]="symbol.symbol" [style.color]="symbol.color"></mat-icon></p>
</div>
<div class="mission-role">
<p *ngFor="let role of mission.roles, let roleIndex = index">
{{'verify_role_part1' | translate}} [{{getRoleName(missionIndex,roleIndex)}}] {{'verify_role_part2' | translate}} [{{verifyRolesMin(role)}} {{getDurationUnit()}}] {{'verify_role_part3' | translate}} [{{verifyRoleMax(role)}} {{getDurationUnit()}}]
{{'verify_role_part1' | translate}} {{getRoleName(missionIndex,roleIndex)}} {{'verify_role_part2' | translate}} {{verifyRolesMin(role)}} {{getDurationUnit()}} {{'verify_role_part3' | translate}} {{verifyRoleMax(role)}} {{getDurationUnit()}}
</p>
</div>
......
......@@ -24,6 +24,10 @@ mat-dialog-content {
top: 50%;
transform: translateY(40%);
}
&-error {
color: rgb(202, 0, 0)
}
}
&-role {
......
......@@ -180,4 +180,48 @@ export class VerifyDialogComponent implements OnInit {
}
return durationUnit;
}
getSymbolMaxOfMin(mission: Mission,symbol: Symbol): number {
let time: number = 0;
mission.roles.forEach((role, roleIndex) => {
this.getRoleSymbolsAndIndex(mission).forEach(symbol2 => {
if(this.getAsSymbol(symbol2[0]).symbol == symbol.symbol && this.getAsSymbol(symbol2[0]).color == symbol.color && this.verifyRoleSymbolsMax(role,roleIndex,symbol2)) {
let tmp: number = this.verifyRoleSymbolsMin(role,roleIndex,symbol2);
if (time == 0 || time < tmp) {
time = tmp;
}
}
});
});
return time;
}
getSymbolMinOfMax(mission: Mission, symbol: Symbol): number {
let time: number = 0;
mission.roles.forEach((role, roleIndex) => {
this.getRoleSymbolsAndIndex(mission).forEach(symbol2 => {
if(this.getAsSymbol(symbol2[0]).symbol == symbol.symbol && this.getAsSymbol(symbol2[0]).color == symbol.color && this.verifyRoleSymbolsMax(role,roleIndex,symbol2)) {
let tmp: number = this.verifyRoleSymbolsMax(role,roleIndex,symbol2);
if (time == 0 || time > tmp) {
time = tmp;
}
}
});
});
return time;
}
getNumberOfSymbol(mission: Mission, symbol: Symbol): number {
let number: number = 0;
mission.roles.forEach((role, roleIndex) => {
this.getRoleSymbolsAndIndex(mission).forEach(symbol2 => {
if (this.getAsSymbol(symbol2[0]).symbol == symbol.symbol && this.getAsSymbol(symbol2[0]).color == symbol.color && this.verifyRoleSymbolsMax(role,roleIndex,symbol2)) {
number = number + 1;
}
});
});
return number;
}
}
......@@ -86,7 +86,9 @@ export class RoleComponent implements OnInit {
this.role.ressources = (this.copyRoleService.role as Role).ressources.map((ressourceData: any) => Object.assign(new Ressource(), ressourceData));
this.role.supplementaryRoles = (this.copyRoleService.role as Role).supplementaryRoles.map((supplementaryRoleData: any) => Object.assign(new SupplementaryRole(), supplementaryRoleData));
this.role.tasks = [[new Task('normal')], []];
this.role.educationnalObjectives = [new RoleEducationnalObjective()];
this.intituleIsAlreadyUsed();
this.minimapService.reset();
}
onClickErase(): void {
......
......@@ -335,6 +335,12 @@
"verify_role_symbol_part1": "needs between",
"verify_role_symbol_part2": "and",
"verify_role_symbol_part3": "to acceed to the common task",
"verify_role_symbol_recap_part1": "It is necessary to plan that the",
"verify_role_symbol_recap_part2": "task will be achievable between",
"verify_role_symbol_recap_part3": "and",
"verify_role_symbol_recap_error1_part1": "Attention, the common task",
"verify_role_symbol_recap_error1_part2": "cannot be completed simultaneously between roles. Add tasks (side tasks) to the role with the least TU to access this common task until it becomes possible to complete it simultaneously",
"verify_role_symbol_recap_error2": "There is only one common task",
"verify_role_part1": "The quest of",
"verify_role_part2": "needs between",
"verify_role_part3": "and",
......
......@@ -16,7 +16,7 @@
"enableHelp_label": "Activer les aides",
"enableHelp_tooltip": "Descriptif de chaque élément du RLG Maker.",
"unity_label": "Intégrer le jeu sous Unity (WIP)",
"unity_tooltip": "Utilisation dans un template de jeu précis. Contacter gaelle.guigon@imt-nord-europe.fr pour plus dinformations. Non disponible dans cette version.",
"unity_tooltip": "Utilisation dans un template de jeu précis. Contacter gaelle.guigon@imt-nord-europe.fr pour plus d'informations. Non disponible dans cette version.",
"download_tooltip": "Télécharger une sauvegarde du scénario.",
"upload_tooltip": "Importer une sauvegarde du scénario.",
"manual_tooltip": "Télécharger le manuel d'utilisation",
......@@ -53,7 +53,7 @@
"gameEducationnalObjective_title": "Objectif(s) pédagogique",
"gameEducationnalObjective_objective_label": "Commun pour le jeu",
"gameEducationnalObjective_objective_placeholder": "- Améliorer les softskills\n- Apprendre à coopérer",
"gameEducationnalObjective_objective_tooltip": "Ce que lon veut atteindre en situation de formation. Commencer chaque objectif par un verbe. Si votre jeu est composé de plusieurs missions, distinguez les objectifs globaux du jeu et les objectifs de chaque mission.",
"gameEducationnalObjective_objective_tooltip": "Ce que l'on veut atteindre en situation de formation. Commencer chaque objectif par un verbe. Si votre jeu est composé de plusieurs missions, distinguez les objectifs globaux du jeu et les objectifs de chaque mission.",
"gameContext_title": "Contexte du jeu",
"gameContext_universe_label": "Univers",
"gameContext_universe_placeholder": "Réaliste",
......@@ -66,9 +66,9 @@
"gameContext_duration_tooltip": "Combien de temps va durer le jeu ? Sachant que le jeu comporte 1 ou plusieurs missions. Une mission peut être la durée d’une séance de cours et le jeu se déroulerait sur plusieurs séances de cours.",
"gameContext_intrigue_label": "Intrigue",
"gameContext_intrigue_placeholder": "Vous êtes stagiaire dans une agence de communication et devez faire vos preuves pour être embauché.e",
"gameContext_intrigue_tooltip": "Quelle est l’histoire du jeu ? Quel est l’enjeu pour les joueurs ?",
"gameContext_intrigue_tooltip": "Quelle est l'histoire du jeu ? Quel est l'enjeu pour les joueurs ?",
"gameContext_other_label": "Contexte d'utilisation",
"gameContext_other_placeholder": "Contexte dutilisation : lieu, présence de tuteur/formateur, à quel moment du cursus utiliser ce jeu, matériel nécessaire",
"gameContext_other_placeholder": "Contexte d'utilisation : lieu, présence de tuteur/formateur, à quel moment du cursus utiliser ce jeu, matériel nécessaire",
"gameContext_other_tooltip": "Tout autre élément que vous souhaiteriez prendre en compte dans le jeu et non défini dans les tuiles",
"mission": "Mission",
......@@ -81,7 +81,7 @@
"missionEducationnalObjective_title": "Objectif(s) pédagogique",
"missionEducationnalObjective_objective_label": "Commun pour la mission",
"missionEducationnalObjective_objective_placeholder": "Comprendre les rôles impliqués dans la conception d'un site web",
"missionEducationnalObjective_objective_tooltip": "Ce que lon veut atteindre en situation de formation. Commencer chaque objectif par un verbe. Si votre jeu est composé de plusieurs missions, distinguez les objectifs globaux du jeu et les objectifs de chaque mission",
"missionEducationnalObjective_objective_tooltip": "Ce que l'on veut atteindre en situation de formation. Commencer chaque objectif par un verbe. Si votre jeu est composé de plusieurs missions, distinguez les objectifs globaux du jeu et les objectifs de chaque mission",
"missionContext_clean_part1": "Contexte de la mission",
"missionContext_clean_part2": "",
"missionContext_title_part1": "Contexte de la mission",
......@@ -91,12 +91,12 @@
"missionContext_duration_tooltip": "Combien de temps va durer la mission ?",
"missionContext_intrigue_label": "Intrigue",
"missionContext_intrigue_placeholder": "Concevez un site web ergonomique pour votre premier client",
"missionContext_intrigue_tooltip": "Quelle est l’histoire de la mission ? Quel est l’enjeu pour les joueurs ?",
"missionContext_intrigue_tooltip": "Quelle est l'histoire de la mission ? Quel est l'enjeu pour les joueurs ?",
"missionContext_communication_label": "Moyen(s) de communication",
"missionContext_communication_placeholder": "Chat en ligne, vocal en ligne, face à face, talkie walkie, pigeon voyageur...",
"missionContext_communication_tooltip": "Comment les joueurs vont-ils communiquer entre eux : à l'oral, par chat, en vocal sur ordinateur, par messages, etc.",
"missionContext_other_label": "Contexte d'utilisation",
"missionContext_other_placeholder": "Contexte dutilisation : lieu, présence de tuteur/formateur, à quel moment du cursus utiliser ce jeu, matériel nécessaire, public cible",
"missionContext_other_placeholder": "Contexte d'utilisation : lieu, présence de tuteur/formateur, à quel moment du cursus utiliser ce jeu, matériel nécessaire, public cible",
"missionContext_other_tooltip": "Tout autre élément que vous souhaiteriez prendre en compte dans la mission et non défini dans les tuiles",
"role_add_tooltip": "Ajouter un rôle.",
......@@ -335,6 +335,12 @@
"verify_role_symbol_part1": "met entre",
"verify_role_symbol_part2": "et",
"verify_role_symbol_part3": "pour accéder à la tâche commune",
"verify_role_symbol_recap_part1": "Il faut donc prévoir que la tâche",
"verify_role_symbol_recap_part2": "sera réalisable entre",
"verify_role_symbol_recap_part3": "et",
"verify_role_symbol_recap_error1_part1": "Attention la tâche commune",
"verify_role_symbol_recap_error1_part2": "ne peut pas être réalisée simultanément entre les rôles. Ajoutez des tâches (annexes) au rôle ayant le moins d'UT pour accéder à cette tâche commune jusqu'à ce qu'il soit possible de la réaliser simultanément",
"verify_role_symbol_recap_error2": "Il n'y a qu'une seule tâche commune",
"verify_role_part1": "La quête de",
"verify_role_part2": "met entre",
"verify_role_part3": "et",
......
Markdown is supported
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