Files
doneit-web/src/app/pages/chat/group-messages/group-messages.page.html
T

272 lines
17 KiB
HTML
Raw Normal View History

2020-12-28 10:11:00 +01:00
<ion-header class="ion-no-border">
<ion-toolbar class="header-toolbar">
<div class="main-header">
2020-12-29 12:40:19 +01:00
<div class="header-top">
<!-- <app-btn-modal-dismiss></app-btn-modal-dismiss> -->
<div class="left">
<button class="btn-no-color" (click)="close()">
<!-- <ion-icon slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon> -->
2021-11-16 16:00:14 +01:00
<fa-icon icon="chevron-left" class="header-top-btn font-awesome-1"></fa-icon>
</button>
</div>
<div class="middle-container" *ngIf="!showMessageOptions">
2021-09-30 15:53:55 +01:00
<div class="middle add-ellipsis">
2022-06-29 16:45:39 +01:00
<ion-label class="title">{{groupNameFormart}}</ion-label>
</div>
</div>
<div class="middle-container-options" *ngIf="showMessageOptions">
<fa-icon (click)="deleteMessage(selectedMsgId)" icon="trash" class="middle-container-options-icons"></fa-icon>
2020-12-28 10:11:00 +01:00
</div>
<div class="right">
2021-04-09 09:04:45 +01:00
<button class="btn-no-color" (click)="openOptions()">
<!-- <ion-icon src="assets/images/icons-menu.svg"></ion-icon> -->
2021-11-16 16:00:14 +01:00
<fa-icon icon="ellipsis-v" class="header-top-btn font-awesome-1"></fa-icon>
2021-04-09 09:04:45 +01:00
</button>
2021-07-23 14:43:51 +01:00
</div>
2020-12-28 10:11:00 +01:00
</div>
2021-01-22 15:28:52 +01:00
<div (click)="addContacts()" class="header-bottom">
2020-12-29 12:40:19 +01:00
<div class="header-bottom-icon">
2021-11-16 16:00:14 +01:00
<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>
2020-12-29 12:40:19 +01:00
</div>
<div class="header-bottom-contacts">
2021-09-21 14:05:59 +01:00
<ion-label class="contacts-list" *ngFor="let member of members" >
2021-03-12 13:13:50 +01:00
{{member.name}},
2020-12-29 12:40:19 +01:00
</ion-label>
</div>
</div>
2021-11-16 16:00:14 +01:00
<div *ngIf="roomCountDownDate" 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">{{roomCountDownDate}}</ion-label>
</div>
2020-12-28 10:11:00 +01:00
</div>
</ion-toolbar>
</ion-header>
2021-03-12 13:13:50 +01:00
2020-12-28 10:11:00 +01:00
<ion-content>
2021-07-26 14:34:52 +01:00
<div (click)="handleClick()" class="messages overflow-y-auto" #scrollMe>
2021-07-26 14:34:52 +01:00
<div class="welcome-text">
2022-01-14 14:22:31 +01:00
<ion-label>Esta conversa passou a grupo</ion-label><br />
2021-07-26 14:34:52 +01:00
<ion-label>A conversa original mantêm-se como chat individual</ion-label>
</div>
2022-01-28 16:26:21 +01:00
<div class="messages-list-item-wrapper container-width-100" *ngFor="let msg of wsChatMethodsService.getGroupRoom(roomId).messages; let last = last" [class.messages-list-item-wrapper-active]="msg._id == selectedMsgId">
2022-04-19 16:03:59 +01:00
<div class='message-container incoming-{{msg.u.username!=sessionStore.user.UserName}}' *ngIf="msg.t != 'r' && msg.t != 'ul' && msg.t != 'au' && msg.t != 'ru' && msg.msg !=''" (press)="handlePress(msg._id)">
2021-07-26 14:09:26 +01:00
<div class="title">
2022-01-13 17:28:35 +01:00
<ion-label>{{msg.u.name ?? ""}}</ion-label>
2022-02-10 15:50:11 +01:00
<span class="time">{{msg.duration}}</span>
2021-07-26 14:09:26 +01:00
</div>
2021-09-14 16:34:50 +01:00
<div class="message">
2022-03-21 21:06:54 +01:00
<ion-label *ngIf="msg.delate == false">{{msg.msg}}</ion-label>
<ion-label *ngIf="msg.delate == true">{{msg.msg}}</ion-label>
2022-03-30 14:52:02 +01:00
2022-04-26 14:34:52 +01:00
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
2022-03-30 14:52:02 +01:00
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
</ion-label>
{{last ? scrollToBottom() : ''}}
</div>
</div>
2021-12-06 16:00:57 +01:00
2022-01-27 18:29:09 +01:00
2022-03-21 21:06:54 +01:00
<div *ngIf="msg.file && msg.delate == false">
2022-04-26 14:34:52 +01:00
<div class='message-container incoming-{{msg.u.username!=sessionStore.user.UserName}}' class='message-container incoming-{{msg.u.username!=sessionStore.user.UserName}}' *ngIf="msg.t != 'r' && msg.t != 'ul' && msg.t != 'ru' && msg.file.type != 'application/meeting'" (press)="handlePress(msg._id)">
<div class="title">
2022-01-13 17:28:35 +01:00
<ion-label>{{msg.u.name ?? ""}}</ion-label>
2022-02-10 15:50:11 +01:00
<span class="time">{{msg.duration}}</span>
</div>
<div class="message">
<div *ngIf="msg.attachments" class="message-attachments">
<div *ngFor="let file of msg.attachments">
2022-03-27 15:18:54 +01:00
<div *ngIf="msg.file.type == 'application/img' && !msg.attachments[0].image_url">
NOT UPLOADED
</div>
<div *ngIf="msg.file.type == 'application/img' && msg.attachments[0].image_url" (click)="openPreview(msg)">
<div *ngIf="!msg.attachments[0].image_url">
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="image" class="file-icon"></ion-icon>
<ion-label>{{"Imagem"}}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
</ion-item>
</div>
2022-02-08 17:44:15 +01:00
<img *ngIf="msg.attachments[0].image_url" src="{{msg.attachments[0].image_url}}" alt="image" >
<ion-icon *ngIf="msg.attachments[0].image_url == null" name="download-outline"></ion-icon>
2022-04-26 14:34:52 +01:00
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
2022-03-30 14:52:02 +01:00
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
</ion-label>
</div>
2022-01-27 18:29:09 +01:00
<div *ngIf="msg.file.type != 'application/img'">
2022-03-18 16:43:15 +01:00
<div class="file add-attachment-bg-color" *ngIf="msg.file.type != 'application/audio'">
2022-03-03 08:21:22 +01:00
<div (click)="openPreview(msg)" class="file-details add-ellipsis cursor-pointer" *ngIf="msg.file">
<div *ngIf="!msg.attachments[0].image_url">
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
2022-08-02 15:08:01 +01:00
<ion-icon *ngIf="msg.attachments[0].type != 'webtrix'" name="document" class="file-icon"></ion-icon>
<ion-icon *ngIf="msg.attachments[0].type == 'webtrix'" src="assets/icon/webtrix.svg" class="file-icon"></ion-icon>
<ion-label>{{file.title}}</ion-label>
2022-08-02 15:08:01 +01:00
<ion-icon *ngIf="ThemeService.currentTheme == 'default' && msg.attachments[0].type != 'webtrix' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && msg.attachments[0].type != 'webtrix' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
</ion-item>
</div>
<div *ngIf="msg.attachments[0].image_url">
<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>
2022-04-07 15:33:22 +01:00
<fa-icon *ngIf="msg.file.type == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'" 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>
2022-04-24 20:20:04 +01:00
<div (click)="audioPreview(msg)" class="audio-contentainer" *ngIf="msg.file.type == 'application/audio' && !file.title_link">
2022-03-21 21:09:05 +01:00
<ion-item class="add-attachment-bg-color" shape="round" lines="none" type="button">
<ion-icon name="mic-outline" class="file-icon"></ion-icon>
<ion-label>{{"Mensagem de voz"}}</ion-label>
2022-03-21 21:09:05 +01:00
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon-download" src="assets/icon/theme/default/icons-download.svg" slot="end"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="icon-download" src="assets/icon/theme/gov/icons-download.svg" slot="end"></ion-icon>
</ion-item>
</div>
<div class="audio-contentainer" *ngIf="msg.file.type == 'application/audio' && file.title_link">
2022-03-14 17:11:00 +01:00
<audio [src]="file.title_link|safehtml" preload="metadata" class="d-flex width-100" controls controlsList="nodownload noplaybackrate"></audio>
</div>
<div class="file-details-optional add-attachment-bg-color">
<ion-label *ngIf="msg.file && msg.file != ''">
<span *ngIf="file.description">{{file.description}}</span>
<span *ngIf="file.description && msg.file.type != 'application/webtrix'"></span>
</ion-label>
2022-04-26 14:34:52 +01:00
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
2022-03-30 14:52:02 +01:00
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
</ion-label>
</div>
</div>
</div>
2021-09-13 12:37:58 +01:00
</div>
2021-08-23 16:31:06 +01:00
{{last ? scrollToBottom() : ''}}
2021-07-26 14:09:26 +01:00
</div>
</div>
2022-01-27 18:29:09 +01:00
<div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting">
<ion-label class="info-meeting-small">{{msg.u.name ?? ""}} criou esta reunião</ion-label><br />
<button (click)="goToEvent(msg.file.id)" class="btn-no-color info-meeting-normal"><ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label></button><br />
<ion-label class="info-meeting-medium"><ion-icon name="calendar-outline"></ion-icon> De {{showDateDuration(msg.file.start_date)}} a {{showDateDuration(msg.file.end_date)}}</ion-label><br />
<ion-label class="info-meeting-medium"><ion-icon></ion-icon><ion-icon name="location-outline"></ion-icon> {{msg.file.venue}}</ion-label><br />
</div>
</div>
2022-03-21 21:06:54 +01:00
<div *ngIf="msg.file && msg.delate == true">
Apagou a mensagem
</div>
2021-07-26 14:09:26 +01:00
<div *ngIf="msg.t == 'r'" class="info-text">
2021-09-09 11:47:49 +01:00
<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 *ngIf="msg.t == 'au'" class="info-text-leave">
<div *ngFor="let user of allUsers">
<div *ngIf="msg.msg == user.username">
<ion-label>Adicionou {{user.name}}</ion-label><br />
</div>
</div>
{{last ? scrollToBottom() : ''}}
</div>
2022-01-27 18:29:09 +01:00
<!-- <div *ngIf="msg.file">
<div *ngIf="msg.file.type == 'application/meeting'" class="info-meeting">
2022-01-13 17:28:35 +01:00
<ion-label class="info-meeting-small">{{msg.u.name ?? ""}} criou esta reunião</ion-label><br />
<button (click)="goToEvent(msg.file.id)" class="btn-no-color info-meeting-normal"><ion-label class="info-meeting-normal">{{msg.file.subject}}</ion-label></button><br />
<ion-label class="info-meeting-medium"><ion-icon name="calendar-outline"></ion-icon> De {{showDateDuration(msg.file.start_date)}} a {{showDateDuration(msg.file.end_date)}}</ion-label><br />
<ion-label class="info-meeting-medium"><ion-icon></ion-icon><ion-icon name="location-outline"></ion-icon> {{msg.file.venue}}</ion-label><br />
</div>
{{last ? scrollToBottom() : ''}}
2022-01-27 18:29:09 +01:00
</div> -->
</div>
</div>
2021-09-24 15:39:14 +01:00
<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>
2020-12-28 10:11:00 +01:00
2021-04-12 00:22:47 +01:00
</ion-content>
2021-03-29 16:01:58 +01:00
<ion-footer>
2022-03-21 21:09:05 +01:00
2022-03-18 16:29:10 +01:00
<div class="typing" *ngIf="wsChatMethodsService.getGroupRoom(roomId).otherUserType == true">
<ngx-letters-avatar *ngIf="showAvatar"
2022-02-24 15:32:23 +01:00
[avatarName]= "wsChatMethodsService.getGroupRoom(roomId).name"
2022-03-14 17:11:00 +01:00
[width]="30"
2022-02-24 15:32:23 +01:00
[circular]="true"
2022-02-24 16:21:26 +01:00
fontFamily="Roboto"></ngx-letters-avatar>
{{ wsChatMethodsService.getGroupRoom(roomId).userThatIsTyping }} está a escrever...
2022-02-24 15:32:23 +01:00
</div>
2022-03-14 17:11:00 +01:00
<div class="width-100 pl-20 pr-20">
<span *ngIf="!lastAudioRecorded">{{durationDisplay}}</span>
<audio [src]="audioRecorded" class="d-flex width-100 mt-10 mb-10" *ngIf="lastAudioRecorded" controls controlsList="nodownload noplaybackrate"></audio>
</div>
2021-03-29 16:01:58 +01:00
<div class="container width-100 d-flex">
<div>
2022-03-14 17:11:00 +01:00
<button *ngIf="!recording && !lastAudioRecorded && allowTyping" class="btn-no-color" (click)="openChatOptions()">
2021-11-16 16:00:14 +01:00
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="chat-icon-options" src="assets/images/icons-add.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="chat-icon-options" src="assets/images/theme/gov/icons-add.svg"></ion-icon>
2021-04-09 09:04:45 +01:00
</button>
2022-03-18 11:45:38 +01:00
<button *ngIf="recording || lastAudioRecorded || !allowTyping" class="btn-no-color" (click)="deleteRecording()">
2022-03-14 17:11:00 +01:00
<fa-icon class="icon-size-27" icon="trash"></fa-icon>
</button>
2021-03-29 16:01:58 +01:00
</div>
2021-08-18 09:23:53 +01:00
<div class="message-box width-80">
2022-03-14 17:11:00 +01:00
<div *ngIf="!recording && !lastAudioRecorded" class="type-message">
<ion-textarea *ngIf="allowTyping" autocomplete="on" autocorrect="on" spellcheck="true" clearOnEdit="true" placeholder="Escrever uma mensagem" auto-grow class="message-input" rows="1" [(ngModel)]="wsChatMethodsService.getGroupRoom(roomId).message" (ionChange)="wsChatMethodsService.getGroupRoom(roomId).sendTyping()"></ion-textarea>
</div>
<div *ngIf="recording" class="d-flex align-items-center justify-content-center">
<button (click)="stopRecording()" class="btn-no-color d-flex align-items-center justify-content-center">
<ion-icon class="icon-size-45" name="stop-circle-outline" color="danger"></ion-icon>
2021-04-13 14:14:55 +01:00
</button>
2022-03-14 17:11:00 +01:00
</div>
2021-03-29 16:01:58 +01:00
</div>
<div>
2022-03-14 17:11:00 +01:00
<button #recordbtn *ngIf="!wsChatMethodsService.getGroupRoom(roomId).message && !lastAudioRecorded" (click)="startRecording()" class="btn-no-color">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="chat-icon-send" src="assets/icon/theme/default/icons-chat-record-audio.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="chat-icon-send" src="assets/icon/theme/gov/icons-chat-record-audio.svg"></ion-icon>
</button>
2022-01-28 16:15:20 +01:00
<button *ngIf="wsChatMethodsService.getGroupRoom(roomId).message" class="btn-no-color" (click)="sendMessage()">
2021-11-16 16:00:14 +01:00
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="chat-icon-send" src="assets/icon/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>
2021-04-12 00:22:47 +01:00
</button>
2022-03-14 17:11:00 +01:00
<button *ngIf="!wsChatMethodsService.getGroupRoom(roomId).message && lastAudioRecorded" class="btn-no-color" (click)="sendAudio(lastAudioRecorded)">
2021-11-16 16:00:14 +01:00
<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>
2021-04-09 09:04:45 +01:00
</button>
2021-03-29 16:01:58 +01:00
</div>
</div>
2021-11-19 08:51:10 +01:00
2020-12-28 10:11:00 +01:00
</ion-footer>