mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-21 05:45:50 +00:00
Merge branch 'developer-c' of https://bitbucket.org/equilibriumito/gabinete-digital into developer
This commit is contained in:
@@ -34,3 +34,7 @@ npm-debug.log*
|
|||||||
# Custom
|
# Custom
|
||||||
/android
|
/android
|
||||||
/package-lock.json
|
/package-lock.json
|
||||||
|
|
||||||
|
|
||||||
|
src/app/architect/
|
||||||
|
src/environments/environment.e2e.ts
|
||||||
@@ -372,6 +372,7 @@
|
|||||||
(setIntervenient)="setIntervenient($event)"
|
(setIntervenient)="setIntervenient($event)"
|
||||||
(setIntervenientCC)="setIntervenientCC($event)"
|
(setIntervenientCC)="setIntervenientCC($event)"
|
||||||
></app-new-event>
|
></app-new-event>
|
||||||
|
|
||||||
<!-- Edit -->
|
<!-- Edit -->
|
||||||
<app-edit-event *ngIf="mobileComponent.showEditEvent"
|
<app-edit-event *ngIf="mobileComponent.showEditEvent"
|
||||||
[taskParticipants]="taskParticipants"
|
[taskParticipants]="taskParticipants"
|
||||||
|
|||||||
@@ -14,196 +14,194 @@
|
|||||||
</ion-header>
|
</ion-header>
|
||||||
</div>
|
</div>
|
||||||
<ion-item-sliding class="overflow-y-auto">
|
<ion-item-sliding class="overflow-y-auto">
|
||||||
|
|
||||||
|
|
||||||
<div class="px-20">
|
<div class="px-20">
|
||||||
<div class="ion-item-container width-100">
|
<div class="ion-item-container width-100">
|
||||||
<ion-input placeholder="Assunto" [(ngModel)]="postEvent.Subject"></ion-input>
|
<ion-input placeholder="Assunto" [(ngModel)]="postEvent.Subject"></ion-input>
|
||||||
</div>
|
|
||||||
<div class="container-div width-100">
|
|
||||||
<div class="ion-item-class-2">
|
|
||||||
<div class="ion-icon-class">
|
|
||||||
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
|
|
||||||
</div>
|
|
||||||
<div class="ion-input-class">
|
|
||||||
<ion-input placeholder="Localização" [(ngModel)]="postEvent.Location"></ion-input>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Error messages -->
|
|
||||||
<!-- <span class="error ion-padding" >
|
|
||||||
Campo obrigatório
|
|
||||||
</span> -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container-div width-100">
|
|
||||||
<div class="ion-item-class-2">
|
|
||||||
<div class="ion-icon-class">
|
|
||||||
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
|
|
||||||
</div>
|
|
||||||
<div class="ion-input-class">
|
|
||||||
<ion-select disabled placeholder="Selecione agenda"
|
|
||||||
selectedText="{{postEvent.CalendarName}}"
|
|
||||||
[(ngModel)]="postEvent.CalendarName"
|
|
||||||
interface="action-sheet" Cancel-text="Cancelar"
|
|
||||||
required>
|
|
||||||
<ion-select-option value="Oficial">Oficial</ion-select-option>
|
|
||||||
<ion-select-option value="Pessoal">Pessoal</ion-select-option>
|
|
||||||
</ion-select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container-div width-100">
|
|
||||||
<div class="ion-item-class-2">
|
|
||||||
<div class="ion-icon-class">
|
|
||||||
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
|
|
||||||
</div>
|
|
||||||
<div class="ion-input-class">
|
|
||||||
<ion-select placeholder="Selecione tipo"
|
|
||||||
[(ngModel)]="postEvent.Categories[0]"
|
|
||||||
selectedText="{{postEvent.Categories[0]}}"
|
|
||||||
interface="action-sheet"
|
|
||||||
Cancel-text="Cancelar" required>
|
|
||||||
<ion-select-option value="Reunião">Reunião</ion-select-option>
|
|
||||||
<ion-select-option value="Viagem">Viagem</ion-select-option>
|
|
||||||
<ion-select-option value="Conferência">Conferência</ion-select-option>
|
|
||||||
<ion-select-option value="Encontro">Encontro</ion-select-option>
|
|
||||||
</ion-select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container-div width-100">
|
|
||||||
<div class="ion-item-class-2 width-100">
|
|
||||||
<div class="ion-icon-class">
|
|
||||||
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
|
|
||||||
</div>
|
|
||||||
<div class="ion-input-class width-100">
|
|
||||||
<ion-datetime
|
|
||||||
placeholder="Início"
|
|
||||||
[(ngModel)]="postEvent.StartDate"
|
|
||||||
displayFormat="D MMM YYYY H:mm"
|
|
||||||
minuteValues="0,15,30,45"
|
|
||||||
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
|
|
||||||
min="2018"
|
|
||||||
max="2022"
|
|
||||||
>
|
|
||||||
</ion-datetime>
|
|
||||||
<!-- <ion-input placeholder="Data início" [(ngModel)]="postData.StartDate"></ion-input> -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container-div width-100">
|
|
||||||
<div class="ion-item-class-2">
|
|
||||||
<div class="ion-icon-class">
|
|
||||||
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
|
|
||||||
</div>
|
|
||||||
<div class="ion-input-class">
|
|
||||||
<ion-datetime
|
|
||||||
placeholder="Fim"
|
|
||||||
[(ngModel)]="postEvent.EndDate"
|
|
||||||
displayFormat="D MMM YYYY H:mm"
|
|
||||||
minuteValues="0,15,30,45"
|
|
||||||
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
|
|
||||||
min="2018"
|
|
||||||
max="2022"
|
|
||||||
>
|
|
||||||
</ion-datetime>
|
|
||||||
<!-- <ion-input placeholder="Data fim" [(ngModel)]="postData.EndDate"></ion-input> -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container-div width-100">
|
|
||||||
<div class="ion-item-class-2">
|
|
||||||
<div class="ion-icon-class">
|
|
||||||
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
|
||||||
</div>
|
|
||||||
<div class="ion-input-class">
|
|
||||||
<ion-select placeholder="Selecione repetição"
|
|
||||||
[(ngModel)]="postEvent.IsRecurring"
|
|
||||||
selectedText="{{isRecurring}}"
|
|
||||||
interface="action-sheet"
|
|
||||||
Cancel-text="Cancelar" required>
|
|
||||||
<ion-select-option value="false">Não se repete</ion-select-option>
|
|
||||||
<ion-select-option value="true">Repete</ion-select-option>
|
|
||||||
</ion-select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="width-100">
|
|
||||||
|
|
||||||
<div class="container-div width-50">
|
|
||||||
<div class="ion-item-class-2">
|
|
||||||
<div class="ion-icon-class">
|
|
||||||
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
|
|
||||||
</div>
|
|
||||||
<div class="ion-input-class-no-height d-flex">
|
|
||||||
<div class="list-people flex-grow-1">
|
|
||||||
<ion-item lines="none">
|
|
||||||
<ion-list>
|
|
||||||
<ion-label *ngIf="taskParticipants.length == 0" class="list-people-title">Adicionar intervenientes</ion-label>
|
|
||||||
<ion-label *ngFor="let participant of taskParticipants">{{participant.Name}}</ion-label>
|
|
||||||
</ion-list>
|
|
||||||
</ion-item>
|
|
||||||
</div>
|
|
||||||
<div class="add-people">
|
|
||||||
<ion-icon (click)="addParticipants()" slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container-div width-50">
|
|
||||||
<div class="ion-item-class-2">
|
|
||||||
<div class="ion-icon-class">
|
|
||||||
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
|
|
||||||
</div>
|
|
||||||
<div class="ion-input-class-no-height d-flex">
|
|
||||||
<div class="list-people flex-grow-1">
|
|
||||||
<ion-item lines="none">
|
|
||||||
<ion-list>
|
|
||||||
<ion-label *ngIf="taskParticipantsCc.length == 0" class="list-people-title">Adicionar intervenientes</ion-label>
|
|
||||||
<ion-label *ngFor="let participant of taskParticipantsCc">{{participant.Name}}</ion-label>
|
|
||||||
</ion-list>
|
|
||||||
</ion-item>
|
|
||||||
</div>
|
|
||||||
<div class="add-people">
|
|
||||||
<ion-icon (click)="addParticipantsCC()" slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="container-div width-100">
|
||||||
<div class="container-div width-100 pb-20">
|
<div class="ion-item-class-2">
|
||||||
<div class="ion-item-class-2 d-flex">
|
|
||||||
<div class="ion-icon-class">
|
<div class="ion-icon-class">
|
||||||
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
|
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
<div class="ion-input-class-no-height width-100">
|
<div class="ion-input-class">
|
||||||
<ion-textarea placeholder="Detalhes" [(ngModel)]="postEvent.Body.Text" rows="6" cols="20"></ion-textarea>
|
<ion-input placeholder="Localização" [(ngModel)]="postEvent.Location"></ion-input>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Error messages -->
|
||||||
<div hidden class="ion-item-container-no-border">
|
<!-- <span class="error ion-padding" >
|
||||||
<ion-label>
|
Campo obrigatório
|
||||||
<div class="attach-icon">
|
</span> -->
|
||||||
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
|
|
||||||
</div>
|
|
||||||
<div class="attach-document">
|
|
||||||
<ion-label>Anexar Documentos</ion-label>
|
|
||||||
</div>
|
|
||||||
</ion-label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div width-100">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class">
|
||||||
|
<ion-select disabled placeholder="Selecione agenda"
|
||||||
|
selectedText="{{postEvent.CalendarName}}"
|
||||||
|
[(ngModel)]="postEvent.CalendarName"
|
||||||
|
interface="action-sheet" Cancel-text="Cancelar"
|
||||||
|
required>
|
||||||
|
<ion-select-option value="Oficial">Oficial</ion-select-option>
|
||||||
|
<ion-select-option value="Pessoal">Pessoal</ion-select-option>
|
||||||
|
</ion-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div width-100">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class">
|
||||||
|
<ion-select placeholder="Selecione tipo"
|
||||||
|
[(ngModel)]="postEvent.Categories[0]"
|
||||||
|
selectedText="{{postEvent.Categories[0]}}"
|
||||||
|
interface="action-sheet"
|
||||||
|
Cancel-text="Cancelar" required>
|
||||||
|
<ion-select-option value="Reunião">Reunião</ion-select-option>
|
||||||
|
<ion-select-option value="Viagem">Viagem</ion-select-option>
|
||||||
|
<ion-select-option value="Conferência">Conferência</ion-select-option>
|
||||||
|
<ion-select-option value="Encontro">Encontro</ion-select-option>
|
||||||
|
</ion-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div width-100">
|
||||||
|
<div class="ion-item-class-2 width-100">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class width-100">
|
||||||
|
<ion-datetime
|
||||||
|
placeholder="Início"
|
||||||
|
[(ngModel)]="postEvent.StartDate"
|
||||||
|
displayFormat="D MMM YYYY H:mm"
|
||||||
|
minuteValues="0,15,30,45"
|
||||||
|
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
|
||||||
|
min="2018"
|
||||||
|
max="2022"
|
||||||
|
>
|
||||||
|
</ion-datetime>
|
||||||
|
<!-- <ion-input placeholder="Data início" [(ngModel)]="postData.StartDate"></ion-input> -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div width-100">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class">
|
||||||
|
<ion-datetime
|
||||||
|
placeholder="Fim"
|
||||||
|
[(ngModel)]="postEvent.EndDate"
|
||||||
|
displayFormat="D MMM YYYY H:mm"
|
||||||
|
minuteValues="0,15,30,45"
|
||||||
|
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
|
||||||
|
min="2018"
|
||||||
|
max="2022"
|
||||||
|
>
|
||||||
|
</ion-datetime>
|
||||||
|
<!-- <ion-input placeholder="Data fim" [(ngModel)]="postData.EndDate"></ion-input> -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div width-100">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class">
|
||||||
|
<ion-select placeholder="Selecione repetição"
|
||||||
|
[(ngModel)]="postEvent.IsRecurring"
|
||||||
|
selectedText="{{isRecurring}}"
|
||||||
|
interface="action-sheet"
|
||||||
|
Cancel-text="Cancelar" required>
|
||||||
|
<ion-select-option value="false">Não se repete</ion-select-option>
|
||||||
|
<ion-select-option value="true">Repete</ion-select-option>
|
||||||
|
</ion-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="width-100">
|
||||||
|
|
||||||
|
<div class="container-div width-50">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class-no-height d-flex">
|
||||||
|
<div class="list-people flex-grow-1">
|
||||||
|
<ion-item lines="none">
|
||||||
|
<ion-list>
|
||||||
|
<ion-label *ngIf="taskParticipants.length == 0" class="list-people-title">Adicionar intervenientes</ion-label>
|
||||||
|
<ion-label *ngFor="let participant of taskParticipants">{{participant.Name}}</ion-label>
|
||||||
|
</ion-list>
|
||||||
|
</ion-item>
|
||||||
|
</div>
|
||||||
|
<div class="add-people">
|
||||||
|
<ion-icon (click)="addParticipants()" slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div width-50">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class-no-height d-flex">
|
||||||
|
<div class="list-people flex-grow-1">
|
||||||
|
<ion-item lines="none">
|
||||||
|
<ion-list>
|
||||||
|
<ion-label *ngIf="taskParticipantsCc.length == 0" class="list-people-title">Adicionar intervenientes</ion-label>
|
||||||
|
<ion-label *ngFor="let participant of taskParticipantsCc">{{participant.Name}}</ion-label>
|
||||||
|
</ion-list>
|
||||||
|
</ion-item>
|
||||||
|
</div>
|
||||||
|
<div class="add-people">
|
||||||
|
<ion-icon (click)="addParticipantsCC()" slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div width-100 pb-20">
|
||||||
|
<div class="ion-item-class-2 d-flex">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class-no-height width-100">
|
||||||
|
<ion-textarea placeholder="Detalhes" [(ngModel)]="postEvent.Body.Text" rows="6" cols="20"></ion-textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div hidden class="ion-item-container-no-border">
|
||||||
|
<ion-label>
|
||||||
|
<div class="attach-icon">
|
||||||
|
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="attach-document">
|
||||||
|
<ion-label>Anexar Documentos</ion-label>
|
||||||
|
</div>
|
||||||
|
</ion-label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<div hidden>
|
<div hidden>
|
||||||
<ion-item>
|
<ion-item>
|
||||||
|
|||||||
+2
-2
@@ -56,7 +56,7 @@
|
|||||||
<div class="list-people">
|
<div class="list-people">
|
||||||
<ion-item lines="none">
|
<ion-item lines="none">
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<ion-label *ngIf="!taskParticipants && taskParticipants.length >= 1" class="list-people-title">Adicionar intervenientes</ion-label>
|
<ion-label *ngIf="taskParticipants.length == 0" class="list-people-title">Adicionar intervenientes</ion-label>
|
||||||
<ion-label *ngFor="let participant of taskParticipants">{{participant.Name}}</ion-label>
|
<ion-label *ngFor="let participant of taskParticipants">{{participant.Name}}</ion-label>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
<div class="list-people">
|
<div class="list-people">
|
||||||
<ion-item lines="none">
|
<ion-item lines="none">
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<ion-label *ngIf="!taskParticipantsCc && taskParticipantsCc.length >= 1" class="list-people-title">Com conhecimento</ion-label>
|
<ion-label *ngIf="taskParticipantsCc.length == 0" class="list-people-title">Com conhecimento</ion-label>
|
||||||
<ion-label *ngFor="let participant of taskParticipantsCc">{{participant.Name}}</ion-label>
|
<ion-label *ngFor="let participant of taskParticipantsCc">{{participant.Name}}</ion-label>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|||||||
@@ -116,10 +116,10 @@ export class NewEventPage implements OnInit {
|
|||||||
|
|
||||||
this.postEvent.Attendees = this.taskParticipants;
|
this.postEvent.Attendees = this.taskParticipants;
|
||||||
|
|
||||||
if(this.profile=='mdgpr'){
|
if(this.profile=='mdgpr') {
|
||||||
this.eventService.postEventMd(this.postEvent, this.postEvent.CalendarName).subscribe();
|
this.eventService.postEventMd(this.postEvent, this.postEvent.CalendarName).subscribe();
|
||||||
}
|
}
|
||||||
else if(this.profile=='pr'){
|
else if(this.profile=='pr') {
|
||||||
this.eventService.postEventPr(this.postEvent, this.postEvent.CalendarName).subscribe();
|
this.eventService.postEventPr(this.postEvent, this.postEvent.CalendarName).subscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,6 +134,9 @@ export class NewEventPage implements OnInit {
|
|||||||
|
|
||||||
|
|
||||||
async addParticipants() {
|
async addParticipants() {
|
||||||
|
|
||||||
|
this.saveTemporaryData();
|
||||||
|
|
||||||
this.openAttendeesComponent.emit({
|
this.openAttendeesComponent.emit({
|
||||||
type: "intervenient"
|
type: "intervenient"
|
||||||
});
|
});
|
||||||
@@ -142,6 +145,9 @@ export class NewEventPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async addParticipantsCc() {
|
async addParticipantsCc() {
|
||||||
|
|
||||||
|
this.saveTemporaryData();
|
||||||
|
|
||||||
this.openAttendeesComponent.emit({
|
this.openAttendeesComponent.emit({
|
||||||
type: "CC"
|
type: "CC"
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user