mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
185 lines
8.6 KiB
HTML
185 lines
8.6 KiB
HTML
<ion-header class="ion-no-border">
|
|
<ion-toolbar class="header-toolbar">
|
|
<div class="main-header">
|
|
<div class="header-top">
|
|
<div class="middle">
|
|
<ion-label class="title">{{roomName}}</ion-label>
|
|
</div>
|
|
<div class="right">
|
|
<button class="btn-no-color" (click)="openGroupMessagesOptions()">
|
|
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-menu.svg"></ion-icon>
|
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " src="assets/images/theme/gov/icons-menu.svg"></ion-icon>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div (click)="openGroupContactsPage()" class="header-bottom">
|
|
<div class="header-bottom-icon">
|
|
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/icon/icons-user.svg"></ion-icon>
|
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " src="assets/icon/theme/gov/icons-user.svg"></ion-icon>
|
|
</div>
|
|
<div class="header-bottom-contacts">
|
|
<ion-label class="contacts-list" *ngFor="let member of members" >
|
|
{{member.name}},
|
|
</ion-label>
|
|
</div>
|
|
</div>
|
|
<div *ngIf="room.customFields.countDownDate" class="d-flex align-items-center yellow-orange pl-10">
|
|
<i class="far fa-clock font-15" ></i>
|
|
<ion-label class="font-15 pl-10" color="warning">{{countDownDate()}}</ion-label>
|
|
</div>
|
|
</div>
|
|
</ion-toolbar>
|
|
</ion-header>
|
|
|
|
<ion-content>
|
|
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
|
|
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
|
|
<ion-refresher-content>
|
|
</ion-refresher-content>
|
|
</ion-refresher>
|
|
|
|
<div class="messages" #scrollMe>
|
|
<div class="welcome-text">
|
|
<ion-label> Esta conversa passou a grupo</ion-label><br />
|
|
<ion-label>A conversa original mantêm-se como chat individual</ion-label>
|
|
</div>
|
|
|
|
<div class="messages-list-item-wrapper container-width-100" *ngFor="let msg of messages; let last = last">
|
|
<div class="message-item incoming-{{msg.u.username!=loggedUser.me.username}} max-width-45" *ngIf="msg.t != 'r' && msg.t != 'ul' && msg.t != 'ru'" >
|
|
<div class="message-item-options d-flex justify-content-end">
|
|
<fa-icon [matMenuTriggerFor]="beforeMenu" icon="chevron-down" class="message-options-icon cursor-pointer"></fa-icon>
|
|
<mat-menu #beforeMenu="matMenu" xPosition="before">
|
|
<button (click)="deleteMessage(msg._id)" class="menuButton">Apagar mensagem</button>
|
|
</mat-menu>
|
|
</div>
|
|
<div class="title">
|
|
<ion-label>{{msg.u.name}}</ion-label>
|
|
<span class="time">{{showDateDuration(msg._updatedAt)}}</span>
|
|
</div>
|
|
<div class="message">
|
|
<ion-label>{{msg.msg}}</ion-label>
|
|
<div *ngIf="msg.attachments" class="message-attachments">
|
|
<div *ngFor="let file of msg.attachments">
|
|
<div (click)="openPreview(msg)">
|
|
<img *ngIf="file.image_url" src="{{file.image_url}}" alt="image">
|
|
</div>
|
|
<div>
|
|
<div>
|
|
<div class="file">
|
|
<!-- <canvas id="pdf_canvas"></canvas> -->
|
|
<div (click)="viewDocument(msg.file, file.title_link)" class="file-details add-ellipsis cursor-pointer" *ngIf="msg.file">
|
|
<span *ngIf="msg.file.type">
|
|
<fa-icon *ngIf="msg.file.type == 'application/pdf'" icon="file-pdf" class="pdf-icon"></fa-icon>
|
|
<fa-icon *ngIf="msg.file.type == 'application/word'" icon="file-word" class="word-icon"></fa-icon>
|
|
<fa-icon *ngIf="msg.file.type == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'" icon="file-word" class="excel-icon"></fa-icon>
|
|
<ion-icon *ngIf="msg.file.type == 'application/webtrix'" src="assets/icon/webtrix.svg"></ion-icon>
|
|
</span>
|
|
<ion-label class="file-title">{{file.title}}</ion-label>
|
|
</div>
|
|
</div>
|
|
<div class="file-details-optional">
|
|
<ion-label *ngIf="msg.file">
|
|
<span *ngIf="file.description">{{file.description}}</span>
|
|
<span *ngIf="file.description && msg.file.type != 'application/webtrix'"> • </span>
|
|
<span *ngIf="msg.file.type != 'application/webtrix'">{{msg.file.type.replace('application/','').toUpperCase()}}</span>
|
|
</ion-label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{last ? scrollToBottom() : ''}}
|
|
</div>
|
|
</div>
|
|
<div *ngIf="msg.t == 'r'" class="info-text">
|
|
<ion-label>Alterou o nome do grupo para "{{msg.msg.split('-').join(' ')}}"</ion-label><br />
|
|
{{last ? scrollToBottom() : ''}}
|
|
</div>
|
|
<div *ngIf="msg.t == 'ul'" class="info-text-leave">
|
|
<div *ngFor="let user of allUsers">
|
|
<div *ngIf="msg.msg == user.username">
|
|
<ion-label>{{user.name}} saiu do grupo</ion-label><br />
|
|
</div>
|
|
</div>
|
|
{{last ? scrollToBottom() : ''}}
|
|
</div>
|
|
<div *ngIf="msg.t == 'ru'" class="info-text-leave">
|
|
<div *ngFor="let user of allUsers">
|
|
<div *ngIf="msg.msg == user.username">
|
|
<ion-label>{{user.name}} foi removido do grupo</ion-label><br />
|
|
</div>
|
|
</div>
|
|
{{last ? scrollToBottom() : ''}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<ion-fab horizontal="end" vertical="bottom" slot="fixed">
|
|
<ion-fab-button *ngIf="scrollToBottomBtn" (click)="scrollToBottomClicked()" color="light" size="small">
|
|
<ion-icon name="chevron-down"></ion-icon>
|
|
</ion-fab-button>
|
|
<!-- <ion-fab-list side="start">
|
|
<ion-fab-button color="light">
|
|
<ion-icon name="chevron-down"></ion-icon>
|
|
</ion-fab-button>
|
|
<ion-fab-button color="light">
|
|
<ion-icon name="logo-twitter"></ion-icon>
|
|
</ion-fab-button>
|
|
<ion-fab-button color="light">
|
|
<ion-icon name="logo-vimeo"></ion-icon>
|
|
</ion-fab-button>
|
|
</ion-fab-list> -->
|
|
</ion-fab>
|
|
|
|
</ion-content>
|
|
|
|
<ion-footer>
|
|
<div class="container width-100 d-flex">
|
|
<div>
|
|
<!-- <button class="btn-no-color" (click)="openSendGroupMessageOptions()">
|
|
<ion-icon class="chat-icon-options" src="assets/images/icons-add.svg"></ion-icon>
|
|
</button> -->
|
|
<ion-fab horizontal="start" vertical="bottom" slot="fixed">
|
|
<ion-fab-button color="light" size="small">
|
|
<ion-icon name="add"></ion-icon>
|
|
</ion-fab-button>
|
|
<ion-fab-list side="top">
|
|
<ion-fab-button (click)="bookMeeting()" color="light">
|
|
<ion-icon name="calendar"></ion-icon>
|
|
</ion-fab-button>
|
|
<!-- <ion-fab-button (click)="addFile()" color="light">
|
|
<ion-icon name="document"></ion-icon>
|
|
</ion-fab-button> -->
|
|
<!-- <ion-fab-button (click)="addImage()" color="light">
|
|
<ion-icon name="image"></ion-icon>
|
|
</ion-fab-button> -->
|
|
<!-- <ion-fab-button class="hide-desktop" (click)="takePicture()" color="light">
|
|
<ion-icon name="camera"></ion-icon>
|
|
</ion-fab-button> -->
|
|
<ion-fab-button (click)="addFileWebtrix()" color="light">
|
|
<ion-icon src="assets/icon/webtrix.svg"></ion-icon>
|
|
</ion-fab-button>
|
|
</ion-fab-list>
|
|
</ion-fab>
|
|
</div>
|
|
<div class="width-80">
|
|
<ion-item class="ion-no-padding type-message" lines="none">
|
|
<ion-textarea clearOnEdit="true" placeholder="Escrever uma mensagem" class="message-input" rows="1" [(ngModel)]="message"></ion-textarea>
|
|
<button hidden class="btn-no-color">
|
|
<ion-icon slot="end" src="assets/icon/icons-chat-mic.svg"></ion-icon>
|
|
</button>
|
|
</ion-item>
|
|
</div>
|
|
<div>
|
|
<button *ngIf="message" class="btn-no-color" (click)="sendMessage()">
|
|
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="chat-icon-send" src="assets/icon/theme/gov/icons-chat-send.svg"></ion-icon>
|
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="chat-icon-send" src="assets/icon/theme/gov/icons-chat-send.svg"></ion-icon>
|
|
</button>
|
|
<button *ngIf="!message" class="btn-no-color">
|
|
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="chat-icon-send" src="assets/icon/theme/gov/icons-chat-send.svg"></ion-icon>
|
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="chat-icon-send" src="assets/icon/theme/gov/icons-chat-send.svg"></ion-icon>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</ion-footer>
|
|
|