role.component.html 17.1 KB
Newer Older
1
<div class="piece" (mouseover)="displayMenu='show'" (mouseleave)="displayMenu='hide'" (click)="onClickPiece()"
Romain DELEAU's avatar
Romain DELEAU committed
2
[class]="pieceDetailsService.piece == role ? 'isActive' : 'border'"
3
[matTooltip]="translate.instant('role_tooltip')"
Romain DELEAU's avatar
Romain DELEAU committed
4
matTooltipPosition="left" [matTooltipDisabled]="!tooltipService.activatedTooltips || i != 0">
Romain DELEAU's avatar
Romain DELEAU committed
5 6 7 8
    <div class="piece-attach piece-attach-left-top"></div>
    <div class="piece-attach piece-attach-right"></div>
    <div class="piece-attach piece-attach-left-bottom"></div>

Romain DELEAU's avatar
Romain DELEAU committed
9
    <div class="piece-menu" [class]="displayMenu">
10
        <mat-icon fontIcon="add" (click)="onClickAdd()"
11
        [matTooltip]="translate.instant('role_add_tooltip')"
12
        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"></mat-icon>
Romain DELEAU's avatar
Romain DELEAU committed
13 14 15 16 17 18
        <mat-icon fontIcon="content_copy" (click)="onClickCopy()"
        [matTooltip]="translate.instant('role_copy_tooltip')"
        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"></mat-icon>
        <mat-icon fontIcon="content_paste" (click)="onClickPaste()" *ngIf="copyRoleService.role && mission != copyRoleService.mission"
        [matTooltip]="translate.instant('role_paste_tooltip')"
        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"></mat-icon>
19
        <mat-icon fontIcon="backspace" (click)="onClickErase()"
20
        [matTooltip]="translate.instant('clearPiece_tooltip')"
21 22
        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"></mat-icon>
        <mat-icon fontIcon="delete" (click)="onClickDelete()" *ngIf="canDelete()"
23
        [matTooltip]="translate.instant('role_delete_tooltip')"
24
        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"></mat-icon>
Romain DELEAU's avatar
Romain DELEAU committed
25 26
    </div>

Romain DELEAU's avatar
Romain DELEAU committed
27
    <div class="piece-form">
28
        <div class="piece-form-title">{{role.intitule ? role.intitule : translate.instant('role_title')+' '+(i+1)}}</div>
Romain DELEAU's avatar
Romain DELEAU committed
29
        <mat-icon class="piece-form-comment" fontIcon="comment" *ngIf="role.comments.length > 0"></mat-icon>
30 31
        <img src="./assets/background-images/role_opacity0.png" draggable="false" *ngIf="i == 0"/>
        <img src="./assets/background-images/role2_opacity0.png" draggable="false" *ngIf="i == 1"/>
Romain DELEAU's avatar
Romain DELEAU committed
32
        <div class="piece-form-intitule">
33
            <label for="intitule">{{'role_intitule_label' | translate}}</label>
Romain DELEAU's avatar
Romain DELEAU committed
34
            <input name="intitule" type="text" [(ngModel)]="role.intitule" (change)="intituleIsAlreadyUsed(); editTrace($event, 'name');; validTutorialPhase4();" [placeholder]="translate.instant('role_intitule_placeholder')"
35
            [matTooltip]="translate.instant('role_intitule_tooltip')"
36
            matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"/>   
Romain DELEAU's avatar
Romain DELEAU committed
37 38
        </div>
        <div class="piece-form-name">
39
            <label for="name">{{'role_name_label' | translate}}</label>
Romain DELEAU's avatar
Romain DELEAU committed
40
            <input name="name" type="text" [(ngModel)]="role.questName" (change)="editTrace($event,'quest_name'); validTutorialPhase5();" [placeholder]="translate.instant('role_name_placeholder')"
41
            [matTooltip]="translate.instant('role_name_tooltip')"
42
            matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"/>   
Romain DELEAU's avatar
Romain DELEAU committed
43
        </div>
Romain DELEAU's avatar
Romain DELEAU committed
44
        <div class="piece-form-description">
45
            <label for="description">{{'role_description_label' | translate}}</label>
46
            <textarea name="description" [(ngModel)]="role.description" (change)="editTrace($event,'description_r')"
47
            [matTooltip]="translate.instant('role_description_tooltip')"
48
            matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"></textarea>
Romain DELEAU's avatar
Romain DELEAU committed
49
        </div>
Romain DELEAU's avatar
Romain DELEAU committed
50
        <div class="piece-form-objectives">
51
            <label for="objective">{{'role_objective_label' | translate}}</label>
Romain DELEAU's avatar
Romain DELEAU committed
52
            <div class="piece-form-objectives-objective" *ngFor="let objective of role.educationnalObjectives, let i = index">
53 54
                <input name="objective" type="text" [(ngModel)]="role.educationnalObjectives[i].objective" (change)="editTrace($event, 'Obj_['+(i)+']')" [placeholder]="translate.instant('role_objective_placeholder')"
                [matTooltip]="translate.instant('role_objective_tooltip')"
55
                matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"/>
Romain DELEAU's avatar
Romain DELEAU committed
56
                <button mat-button *ngIf="role.educationnalObjectives.length > 1" (click)="removeEducationnalObjective(i)"><mat-icon fontIcon="remove"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
57
            </div>
Romain DELEAU's avatar
Romain DELEAU committed
58
            <button mat-button class="piece-form-objectives-add" (click)="addEducationnalObjective()"><mat-icon fontIcon="add"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
59
        </div>
Romain DELEAU's avatar
Romain DELEAU committed
60
        <div class="piece-form-rewards">
61
            <label for="reward">{{'role_reward_label' | translate}}</label>
Romain DELEAU's avatar
Romain DELEAU committed
62
            <div class="piece-form-rewards-reward" *ngFor="let reward of role.rewards, let i = index">
Romain DELEAU's avatar
Romain DELEAU committed
63
                <div class="piece-form-rewards-reward-type">
64
                    <label>{{'role_reward_type_label' | translate}}</label>
65
                    <select [(ngModel)]="reward.type" (change)="changeRewardType(i, reward.type)"
66
                    [matTooltip]="translate.instant('role_reward_tooltip')"
67
                    matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips">
68 69
                        <option value="quest">{{'role_reward_type_newQuest' | translate}}</option>
                        <option value="skill">{{'role_reward_type_skill' | translate}}</option>
70
                        <!--<option value="character">Récupérer le contact d'un PNJ</option>-->
71 72
                        <option value="objective">{{'role_reward_type_objective' | translate}}</option>
                        <option value="objects">{{'role_reward_type_object' | translate}}</option>
Romain DELEAU's avatar
Romain DELEAU committed
73
                        <!--<option value="discuss">Changer de discussion</option>-->
74
                        <option value="other">{{'role_reward_type_other' | translate}}</option>
Romain DELEAU's avatar
Romain DELEAU committed
75 76
                    </select>                    
                </div>
Romain DELEAU's avatar
Romain DELEAU committed
77 78
                <div class="piece-form-rewards-reward-objects" *ngIf="reward.type == 'objects'">
                    <div class="piece-form-rewards-reward-objects-object" *ngFor="let object of getObjectsReward(i).objects, let j = index">
79
                        <input type="number" [(ngModel)]="object.number" (change)="editTrace($event, 'Reward_['+i+']_object_['+j+']_quantity')"/>
80
                        <input type="text" [(ngModel)]="object.name" (change)="editTrace($event, 'Reward_['+i+']_object_['+j+']_name')" [placeholder]="translate.instant('role_reward_type_object_placeholder')"/>
Romain DELEAU's avatar
Romain DELEAU committed
81
                        <button mat-button (click)="removeObject(i,j)"><mat-icon fontIcon="remove"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
82
                    </div>
Romain DELEAU's avatar
Romain DELEAU committed
83
                    <button mat-button class="piece-form-rewards-reward-objects-add" (click)="addObject(i)"><mat-icon fontIcon="add"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
84
                </div>
85
                <!--
Romain DELEAU's avatar
Romain DELEAU committed
86 87
                <div class="piece-form-rewards-reward-character" *ngIf="reward.type == 'character'">
                    <select [(ngModel)]="getCharacterReward(i).character">
Romain DELEAU's avatar
Romain DELEAU committed
88
                        <option [ngValue]="character" *ngFor="let character of scenario.characters">{{character.name}}</option>
Romain DELEAU's avatar
Romain DELEAU committed
89
                    </select>
Romain DELEAU's avatar
Romain DELEAU committed
90
                    <button mat-button (click)="removeReward(i)"><mat-icon fontIcon="remove"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
91
                </div>
92
                
Romain DELEAU's avatar
Romain DELEAU committed
93
                <div class="piece-form-rewards-reward-discussion" *ngIf="reward.type == 'discuss'">
Romain DELEAU's avatar
Romain DELEAU committed
94 95 96
                    <select>
                        <option>Discussion 1</option>
                    </select>
Romain DELEAU's avatar
Romain DELEAU committed
97
                    <button mat-button><mat-icon fontIcon="remove"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
98
                </div>
Romain DELEAU's avatar
Romain DELEAU committed
99 100
                -->
                <div class="piece-form-rewards-reward-skill" *ngIf="reward.type == 'skill'">
101
                    <input type="number" [(ngModel)]="getSkillReward(i).quantity" (change)="editTrace($event, 'Reward_['+i+']_quantity')"/>
Romain DELEAU's avatar
Romain DELEAU committed
102
                    <select [(ngModel)]="getSkillReward(i).skill" (change)="editTrace($event, 'Reward_['+i+']_skill')"
103
                    [matTooltip]="translate.instant('role_reward_type_skill_tooltip')"
Romain DELEAU's avatar
Romain DELEAU committed
104
                    matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips">
Romain DELEAU's avatar
Romain DELEAU committed
105 106 107
                        <ng-container *ngFor="let skill of role.ressources">
                            <option [ngValue]="skill" *ngIf="skill.type == 'attribut'">{{skill.name}}</option>
                        </ng-container>
Romain DELEAU's avatar
Romain DELEAU committed
108
                    </select>
Romain DELEAU's avatar
Romain DELEAU committed
109
                    <button mat-button (click)="removeReward(i)"><mat-icon fontIcon="remove"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
110
                </div>
Romain DELEAU's avatar
Romain DELEAU committed
111
                <div class="piece-form-rewards-reward-quest" *ngIf="reward.type == 'quest'">
Romain DELEAU's avatar
Romain DELEAU committed
112
                    <select (change)="changeQuestReward(i, $event)"
113
                    [matTooltip]="translate.instant('role_reward_type_newQuest_tooltip')"
Romain DELEAU's avatar
Romain DELEAU committed
114
                    matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips">
115 116 117 118 119 120 121
                        <ng-container *ngFor="let mission of scenario.missions; let indexMission = index">
                            <ng-container *ngFor="let quest of mission.roles; let indexRole = index">
                                <option [ngValue]="quest.questName" [selected]="getQuestReward(i).intitule == quest.intitule && getQuestReward(i).questName == quest.questName"
                                    *ngIf="role.intitule && quest.questName && role.intitule == quest.intitule && role.questName != quest.questName">
                                    {{quest.questName}}
                                </option>
                            </ng-container>
Romain DELEAU's avatar
Romain DELEAU committed
122
                        </ng-container>
Romain DELEAU's avatar
Romain DELEAU committed
123
                    </select>
Romain DELEAU's avatar
Romain DELEAU committed
124
                    <button mat-button (click)="removeReward(i)"><mat-icon fontIcon="remove"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
125
                </div>
Romain DELEAU's avatar
Romain DELEAU committed
126
                <div class="piece-form-rewards-reward-objective" *ngIf="reward.type == 'objective'">
Romain DELEAU's avatar
Romain DELEAU committed
127
                    <select [(ngModel)]="getObjectiveReward(i).objective" (change)="editTrace($event, 'Reward_['+i+']_objective')"
128
                    [matTooltip]="translate.instant('role_reward_type_objective_tooltip')"
Romain DELEAU's avatar
Romain DELEAU committed
129
                    matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips">
Romain DELEAU's avatar
Romain DELEAU committed
130
                        <option [ngValue]="objective" *ngFor="let objective of role.educationnalObjectives">{{objective.objective}}</option>
Romain DELEAU's avatar
Romain DELEAU committed
131
                    </select>
Romain DELEAU's avatar
Romain DELEAU committed
132
                    <button mat-button (click)="removeReward(i)"><mat-icon fontIcon="remove"></mat-icon></button>
133
                </div>
Romain DELEAU's avatar
Romain DELEAU committed
134
                <div class="piece-form-rewards-reward-other" *ngIf="reward.type == 'other'">
135
                    <textarea [(ngModel)]="getOtherReward(i).text" (change)="editTrace($event, 'Reward_['+i+']_other')"></textarea>
Romain DELEAU's avatar
Romain DELEAU committed
136
                    <button mat-button (click)="removeReward(i)"><mat-icon fontIcon="remove"></mat-icon></button>
137
                </div>
Romain DELEAU's avatar
Romain DELEAU committed
138
            </div>  
Romain DELEAU's avatar
Romain DELEAU committed
139 140 141
            <div class="piece-form-rewards-add">
                <button mat-button (click)="addReward()"><mat-icon fontIcon="add"></mat-icon></button>
            </div>
142 143 144
        </div>

        <div class="piece-form-personnalization">
145
            <div class="piece-form-title">{{'role_personnalization_title' | translate}}</div>
146
            <div class="piece-form-personnalization-appearance">
147
                <label>{{'role_personnalization_label' | translate}}</label>
148
                <textarea [(ngModel)]="role.stuff" (change)="editTrace($event, 'equipment')"
149
                [matTooltip]="translate.instant('role_personnalization_tooltip')"
150
                matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"></textarea>
151 152 153
            </div>
        </div>

154
        <div class="piece-form-ressources"
155
        [matTooltip]="translate.instant('role_ressource_tooltip')"
156
        matTooltipPosition="before" [matTooltipDisabled]="!tooltipService.activatedTooltips">
157
            <div class="piece-form-title">{{'role_ressource_title' | translate}}</div>
Romain DELEAU's avatar
Romain DELEAU committed
158
            <div class="piece-form-ressources-ressource" *ngFor="let ressource of role.ressources, let i = index">
159
                <div class="piece-form-ressources-ressource-name">
160
                    <label for="name">{{'role_ressource_name_label' | translate}}</label>
161
                    <input name="name" type="text" [(ngModel)]="ressource.name" (change)="editTrace($event, 'Skill/Ressource_['+i+']_name')"/>
162 163
                </div>
                <div class="piece-form-ressources-ressource-quantity">
164
                    <label for="quantity">{{'role_ressource_quantity_label' | translate}}</label>
165
                    <input name="quantity" type="text" [(ngModel)]="ressource.number" (change)="editTrace($event, 'Skill/Ressource_['+i+']_stats')">
Romain DELEAU's avatar
Romain DELEAU committed
166 167
                </div>
                <div class="piece-form-ressources-ressource-quantity">
168
                    <label for="type">{{'role_ressource_type_label' |translate}}</label>
169
                    <select name="type" [(ngModel)]="ressource.type" (change)="editTrace($event, 'Skill/Ressource_['+i+']_type')">
170 171
                        <option value="ressource">{{'role_ressource_type_object' | translate}}</option>
                        <option value="attribut">{{'role_ressource_type_skill' | translate}}</option>
172
                    </select>
Romain DELEAU's avatar
Romain DELEAU committed
173
                </div>
Romain DELEAU's avatar
Romain DELEAU committed
174
                <button mat-button><mat-icon fontIcon="remove" (click)="removeRessource(i)"></mat-icon></button> 
175
            </div>
Romain DELEAU's avatar
Romain DELEAU committed
176
            <button mat-button class="piece-form-ressources-add" (click)="addRessource()"><mat-icon fontIcon="add"></mat-icon></button>
177
        </div>
Romain DELEAU's avatar
Romain DELEAU committed
178

179
        <div class="piece-form-title">{{'role_supplementaryRole_title' | translate}}</div>
180
        <div class="piece-form-supplementary" [style.background]="'linear-gradient(302deg, '+supplementaryRole.color+' 0%, '+supplementaryRole.color+' 50%, #9ad5ec 50%, #9ad5ec 100%)'"
181
        *ngFor="let supplementaryRole of role.supplementaryRoles, let i = index">
182 183 184
            <div class="piece-form-supplementary-form">
                <div>
                    <div class="piece-form-supplementary-form-name">
185
                        <label for="name">{{'role_supplementaryRole_name_label' | translate}}</label>
186
                        <input name="name" type="text" [(ngModel)]="supplementaryRole.name" (change)="editTrace($event, 'Secondary_role_['+i+']_name')"
187
                        [matTooltip]="translate.instant('role_supplementaryRole_name_tooltip')"
188
                        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"/>
189
                    </div>
190
                    <div class="piece-form-supplementary-form-color">
191
                        <label for="color">{{'role_supplementaryRole_color_label' | translate}}</label>
Romain DELEAU's avatar
Romain DELEAU committed
192
                        <input name="color" type="color" [(ngModel)]="supplementaryRole.color" (change)="editTrace($event, 'Secondary_role_['+i+']_color')"
193
                        [matTooltip]="translate.instant('role_supplementaryRole_color_tooltip')"
Romain DELEAU's avatar
Romain DELEAU committed
194
                        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"/>
195
                    </div>
196
                    <div class="piece-form-supplementary-form-textarea">
197
                        <label for="objectives">{{'role_supplementaryRole_objective_label' | translate}}</label>
198
                        <textarea name="objectives" [(ngModel)]="supplementaryRole.objectives" (change)="editTrace($event, 'Secondary_role_['+i+']_obj')"
199
                        [matTooltip]="translate.instant('role_supplementaryRole_objective_tooltip')"
200
                        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"></textarea>
201 202
                    </div>
                    <div class="piece-form-supplementary-form-textarea">
203
                        <label for="skills">{{'role_supplementaryRole_skill_label' | translate}}</label>
204
                        <textarea name="skills" [(ngModel)]="supplementaryRole.skills" (change)="editTrace($event, 'Secondary_role_['+i+']_skill')"
205
                        [matTooltip]="translate.instant('role_supplementaryRole_skill_tooltip')"
206
                        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"></textarea>
207 208
                    </div>
                    <div class="piece-form-supplementary-form-textarea">
209
                        <label for="rules">{{'role_supplementaryRole_rule_label' | translate}}</label>
210
                        <textarea name="rules" [(ngModel)]="supplementaryRole.rules" (change)="editTrace($event, 'Secondary_role_['+i+']_rule')"
211
                        [matTooltip]="translate.instant('role_supplementaryRole_rule_tooltip')"
212
                        matTooltipPosition="above" [matTooltipDisabled]="!tooltipService.activatedTooltips"></textarea>
213
                    </div>
Romain DELEAU's avatar
Romain DELEAU committed
214
                    <button mat-button (click)="removeSupplementaryRole(i)"><mat-icon fontIcon="remove"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
215 216 217
                </div>
            </div>
        </div>
Romain DELEAU's avatar
Romain DELEAU committed
218
        <button mat-button class="piece-form-supplementary-form-add" (click)="addSupplementaryRole()"><mat-icon fontIcon="add"></mat-icon></button>
Romain DELEAU's avatar
Romain DELEAU committed
219 220
    </div>
</div>