Chat bug solved and presidente text removed

This commit is contained in:
Eudes Inácio
2022-07-06 09:59:22 +01:00
parent e3927bcc19
commit c78e179303
11 changed files with 151 additions and 100 deletions
@@ -16,5 +16,8 @@
"sound"
]
}
},
"server": {
"url": "http://192.168.1.6:8101"
}
}
@@ -9,16 +9,16 @@
</div>
<div *ngIf="ThemeService.currentTheme == 'gov'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content">
<p class="logo-description-text">Presidente da República</p>
<div class="add-line"></div>
<!-- <p class="logo-description-text">Presidente da República</p> -->
<p class="logo-description-text tp-5">GABINETE DIGITAL</p>
<div class="add-line"></div>
</div>
</div>
<div *ngIf="ThemeService.currentTheme == 'default'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content">
<p class="logo-description-text color-white">Presidente da República</p>
<div class="add-line-white"></div>
<!-- <p class="logo-description-text color-white">Presidente da República</p> -->
<p class="logo-description-text tp-5 color-white">GABINETE DIGITAL</p>
<div class="add-line-white"></div>
</div>
</div>
</div>
+4 -4
View File
@@ -8,16 +8,16 @@
</div>
<div *ngIf="ThemeService.currentTheme == 'gov'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content">
<p class="logo-description-text">Presidente da República</p>
<div class="add-line"></div>
<!-- <p class="logo-description-text">Presidente da República</p> -->
<p class="logo-description-text tp-5">GABINETE DIGITAL</p>
<div class="add-line"></div>
</div>
</div>
<div *ngIf="ThemeService.currentTheme == 'default'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content">
<p class="logo-description-text color-white">Presidente da República</p>
<div class="add-line-white"></div>
<!-- <p class="logo-description-text color-white">Presidente da República</p> -->
<p class="logo-description-text tp-5 color-white">GABINETE DIGITAL</p>
<div class="add-line-white"></div>
</div>
</div>
</div>
+1 -1
View File
@@ -36,7 +36,7 @@ export class ViewMediaPage implements OnInit {
}
ngOnInit() {
console.log(this.image)
this.base64Sanitize = this.sanitizer.bypassSecurityTrustResourceUrl(this.image);
}
@@ -31,6 +31,7 @@ import { MessageService } from 'src/app/services/chat/message.service';
import { File } from '@awesome-cordova-plugins/file/ngx';
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
import { SessionStore } from 'src/app/store/session.service';
import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page';
@Component({
selector: 'app-group-messages',
@@ -1105,18 +1106,22 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
this.downloadFileFromBrowser(msg.attachments[0].name, str)
/* const modal = await this.modalController.create({
component: ViewMediaPage,
cssClass: 'modal modal-desktop',
componentProps: {
image: str,
type: msg.file.type,
username: msg.u.name,
_updatedAt: msg._updatedAt
}
});
modal.present(); */
console.log(msg)
if (msg.file.type == "application/img") {
const modal = await this.modalController.create({
component: ViewMediaPage,
cssClass: 'modal modal-desktop',
componentProps: {
image: msg.attachments[0].image_url,
type: msg.file.type,
username: msg.u.name,
_updatedAt: msg._updatedAt
}
});
modal.present();
} else {
this.downloadFileFromBrowser("file", str)
}
} else {
this.openFile(str, msg.attachments[0].name);
+17 -12
View File
@@ -37,6 +37,7 @@ import { Camera, CameraResultType, CameraSource } from '@capacitor/camera';
import { DomSanitizer } from '@angular/platform-browser';
import { SessionStore } from 'src/app/store/session.service';
import { HttpErrorResponse } from '@angular/common/http';
import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page';
const IMAGE_DIR = 'stored-images';
@@ -992,18 +993,22 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
this.downloadFileFromBrowser(msg.attachments[0].name, str)
/* const modal = await this.modalController.create({
component: ViewMediaPage,
cssClass: 'modal modal-desktop',
componentProps: {
image: str,
type: msg.file.type,
username: msg.u.name,
_updatedAt: msg._updatedAt
}
});
modal.present(); */
console.log(msg)
if (msg.file.type == "application/img") {
const modal = await this.modalController.create({
component: ViewMediaPage,
cssClass: 'modal modal-desktop',
componentProps: {
image: msg.attachments[0].image_url,
type: msg.file.type,
username: msg.u.name,
_updatedAt: msg._updatedAt
}
});
modal.present();
} else {
this.downloadFileFromBrowser("file", str)
}
} else {
this.openFile(str, msg.attachments[0].name, msg.file.type);
+1 -1
View File
@@ -37,7 +37,7 @@
</div>
</form>
<div class="msg-bottom d-flex">
<p class="msg-bottom-p">Uma iniciativa do Gabinete do Presidente da República</p>
<!-- <p class="msg-bottom-p">Uma iniciativa do Gabinete do Presidente da República</p> -->
</div>
</div>
@@ -35,6 +35,7 @@ import { File } from '@awesome-cordova-plugins/file/ngx';
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
import { SessionStore } from 'src/app/store/session.service';
import { HttpErrorResponse } from '@angular/common/http';
import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page';
/*
@@ -1115,8 +1116,23 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
str = str.substring(1, ((str.length) - 1));
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
this.downloadFileFromBrowser(msg.attachments[0].name, str)
} else if (this.platform.is('tablet')) {
console.log(msg)
if (msg.file.type == "application/img") {
const modal = await this.modalController.create({
component: ViewMediaPage,
cssClass: 'modal modal-desktop',
componentProps: {
image: msg.attachments[0].image_url,
type: msg.file.type,
username: msg.u.name,
_updatedAt: msg._updatedAt
}
});
modal.present();
} else {
this.downloadFileFromBrowser("file", str)
}
} else {
this.openFile(str, msg.attachments[0].name, msg.file.type);
}
@@ -3,7 +3,7 @@
<div class="main-header">
<div class="header-top">
<div class="middle">
<ion-label class="title">{{ wsChatMethodsService.getDmRoom(roomId).name }}</ion-label>
<ion-label class="title">{{ this.wsChatMethodsService.getDmRoom(this.roomId).name }}</ion-label>
<!-- <span><ion-icon class="{{users.status}}" name="ellipse"></ion-icon></span> -->
</div>
<div hidden class="right">
+79 -57
View File
@@ -34,6 +34,7 @@ import { SessionStore } from 'src/app/store/session.service';
import { HttpErrorResponse } from '@angular/common/http';
import { Howl } from 'howler';
import { runInThisContext } from 'vm';
import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page';
const IMAGE_DIR = 'stored-images';
@@ -90,14 +91,15 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
durationDisplay = '';
duration = 0;
audioPermissionStatus: 'granted'| 'denied' | 'prompt' | null = null
audioPermissionStatus: 'granted' | 'denied' | 'prompt' | null = null
sessionStore = SessionStore
audioPlay: Howl = null;
isPlaying = false;
audioProgress = 0;
audioDuration = 0;
audioTimer:any;
@ViewChild('range', {static: false}) range: IonRange;
audioTimer: any;
@ViewChild('range', { static: false }) range: IonRange;
userName = "";
constructor(
public popoverController: PopoverController,
@@ -151,23 +153,25 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
async checkAudioPermission() {
const permissionStatus = await navigator.permissions.query({ name: 'microphone' } as any)
this.audioPermissionStatus = permissionStatus.state
permissionStatus.onchange = (data : any) => {
permissionStatus.onchange = (data: any) => {
//
//
}
}
ngOnInit() {
async ngOnInit() {
this.wsChatMethodsService.getAllRooms();
alert(this.wsChatMethodsService.getDmRoom(this.roomId).name)
this.chatService.refreshtoken();
this.scrollToBottom();
this.getChatMembers();
this.deleteRecording();
this.loadFiles();
}
@@ -179,11 +183,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
gestureName: 'long-press',
onStart: ev => {
this.longPressActive = true;
},
onEnd: ev => {
this.longPressActive = false;
}
});
}
@@ -274,11 +278,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
})
this.storage.get('recordData').then((recordData) => {
if (recordData?.value?.recordDataBase64.includes('data:audio')) {
this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData?.value?.recordDataBase64);
}
else if(recordData?.value?.mimeType && recordData?.value?.recordDataBase64) {
else if (recordData?.value?.mimeType && recordData?.value?.recordDataBase64) {
this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`);
}
});
@@ -286,11 +290,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
this.storage.get('recordData').then((recordData) => {
if (recordData?.value?.recordDataBase64?.includes('data:audio')) {
this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData.value.recordDataBase64);
}
else if(recordData?.value?.mimeType && recordData?.value?.recordDataBase64) {
else if (recordData?.value?.mimeType && recordData?.value?.recordDataBase64) {
this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`);
}
});
@@ -298,15 +302,15 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
async startRecording() {
VoiceRecorder.requestAudioRecordingPermission();
if(await VoiceRecorder.canDeviceVoiceRecord().then((result: GenericResponse) =>{return result.value})){
if(await VoiceRecorder.requestAudioRecordingPermission().then((result: GenericResponse) => {return result.value})){
if (await VoiceRecorder.canDeviceVoiceRecord().then((result: GenericResponse) => { return result.value })) {
if (await VoiceRecorder.requestAudioRecordingPermission().then((result: GenericResponse) => { return result.value })) {
//if(await this.hasAudioRecordingPermission()){
if (this.recording) {
return;
}
this.recording = true;
VoiceRecorder.startRecording();
this.calculateDuration();
if (this.recording) {
return;
}
this.recording = true;
VoiceRecorder.startRecording();
this.calculateDuration();
//}
}
else {
@@ -321,13 +325,13 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
stopRecording() {
this.deleteRecording();
this.allowTyping = false;
if (!this.recording) {
return;
}
this.recording = false;
VoiceRecorder.stopRecording().then(async (result: RecordingData) => {
this.recording = false;
if (result.value && result.value.recordDataBase64) {
const recordData = result.value.recordDataBase64;
@@ -336,7 +340,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
//Save file
this.storage.set('fileName', fileName);
this.storage.set('recordData', result).then(() => {
})
}
})
@@ -387,7 +391,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
});
await modal.present();
modal.onDidDismiss().then((res) => {
});
}
@@ -400,7 +404,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
const roomId = this.roomId
let audioFile;
this.storage.get('recordData').then((recordData) => {
audioFile = recordData;
if (recordData?.value?.recordDataBase64?.includes('data:audio')) {
@@ -412,7 +416,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
//Converting base64 to blob
const encodedData = btoa(this.audioRecorded);
const blob = this.base64toBlob(encodedData, recordData.value.mimeType)
const formData = new FormData();
formData.append("blobFile", blob);
@@ -438,10 +442,10 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
deleteMessage(msgId: string, msg: MessageService) {
this.wsChatMethodsService.getDmRoom(this.roomId).sendDeleteRequest(msgId)
if (msg.file.type == "application/webtrix") {
// this.openViewDocumentModal(msg.file);
// this.openViewDocumentModal(msg.file);
}
else {
var str = msg.attachments[0].image_url;
str = str.substring(1, ((str.length) - 1));
@@ -449,9 +453,9 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
let file = this.base64toBlob(encodedData, 'application/pdf')
let fileURL = URL.createObjectURL(file)
window.open(fileURL);
}
}
@@ -565,11 +569,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
openSendMessageOptions(ev?: any) {
if (window.innerWidth < 701) {
this.openChatOptions(ev);
}
else {
this._openChatOptions();
}
}
@@ -667,12 +671,12 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
const lastphoto: any = await this.fileService.loadFiles();
const { capturedImage, capturedImageTitle } = await this.fileService.loadFileData(lastphoto);
const base64 = await fetch(capturedImage);
const blob = await base64.blob();
const formData = new FormData();
formData.append("blobFile", blob);
this.wsChatMethodsService.getDmRoom(roomId).send({
file: {
@@ -710,7 +714,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
});
await modal.present();
modal.onDidDismiss().then(async res => {
const data = res.data;
const roomId = this.roomId
@@ -749,7 +753,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
resultType: CameraResultType.Base64,
source: CameraSource.Photos
});
//const imageData = await this.fileToBase64Service.convert(file)
//
@@ -782,13 +786,13 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
const roomId = this.roomId
const file: any = await this.fileService.getFileFromDevice(types);
if (file.type != "application/img" && file.type != "image/png" && file.type != "image/jpeg" && file.type != "image/gif") {
const encodedData = btoa(JSON.stringify(await this.getBase64(file)));
const blob = this.base64toBlob(encodedData, file.type)
const formData = new FormData();
formData.append("blobFile", blob);
@@ -809,7 +813,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
})
} else {
}
@@ -829,7 +833,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
resolve(reader.result)
};
reader.onerror = function (error) {
};
});
@@ -888,7 +892,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
});
await modal.present();
modal.onDidDismiss().then(async (res) => {
if (res['data'] == 'meeting') {
@@ -939,7 +943,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
}
async audioPreview(msg) {
if (!msg.attachments[0].title_link || msg.attachments[0].title_link === null || msg.attachments[0].title_link === '') {
this.downloadFileMsg(msg)
} else { }
@@ -971,6 +975,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
}
downloadFileFromBrowser(fileName: string, data: any): void {
console.log(fileName + data)
const linkSource = data;
const downloadLink = document.createElement("a");
downloadLink.href = linkSource;
@@ -979,7 +984,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
}
viewDocument(file: any, url?: string) {
if (file.type == "application/webtrix") {
this.openViewDocumentModal(file);
}
@@ -999,24 +1004,24 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
} else {
pathFile = this.file.externalRootDirectory
}
this.file
.writeFile(pathFile, fileName, contentFile, { replace: true })
.then(success => {
this.fileOpener
.open(pathFile + fileName, type)
.then(() => {})
.then(() => { })
.catch(e => console.error(e))
})
.catch(e => console.error(e))
}
async openPreview(msg) {
if(msg.file.type === "application/webtrix") {
if (msg.file.type === "application/webtrix") {
this.viewDocument(msg.file, msg.attachments.image_url)
} else {
@@ -1050,8 +1055,25 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
str = str.substring(1, ((str.length) - 1));
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
this.downloadFileFromBrowser(msg.attachments[0].name, str)
} else if (this.platform.is('tablet')) {
console.log(msg)
if (msg.file.type == "application/img") {
const modal = await this.modalController.create({
component: ViewMediaPage,
cssClass: 'modal modal-desktop',
componentProps: {
image: msg.attachments[0].image_url,
type: msg.file.type,
username: msg.u.name,
_updatedAt: msg._updatedAt
}
});
modal.present();
} else {
this.downloadFileFromBrowser("file", str)
}
} else {
this.openFile(str, msg.attachments[0].name, msg.file.type);
}
@@ -1071,7 +1093,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
}
start(track) {
if(this.audioPlay){
if (this.audioPlay) {
this.audioPlay.stop();
}
this.audioPlay = new Howl({
@@ -1086,7 +1108,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
this.isPlaying = false;
clearTimeout(this.audioTimer)
this.audioProgress = 0
},
})
this.audioPlay.play();
@@ -1094,12 +1116,12 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
togglePlayer(pause) {
this.isPlaying = !pause;
if(pause) {
if (pause) {
this.audioPlay.pause();
} else {
this.audioPlay.play();
}
}
}
seek() {
let newValue = +this.range.value;
@@ -1113,7 +1135,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
console.log(this.audioDuration)
this.audioTimer = setTimeout(() => {
this.updateProgress()
},1000)
}, 1000)
}
+6 -6
View File
@@ -24,16 +24,16 @@
</div>
<div *ngIf="ThemeService.currentTheme == 'gov'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content">
<p class="logo-description-text">Presidente da República</p>
<div class="add-line"></div>
<!-- <p class="logo-description-text">Presidente da República</p> -->
<p class="logo-description-text tp-5">GABINETE DIGITAL</p>
<div class="add-line"></div>
</div>
</div>
<div *ngIf="ThemeService.currentTheme == 'default'" class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content">
<p class="logo-description-text color-white">Presidente da República</p>
<div class="add-line-white"></div>
<!-- <p class="logo-description-text color-white">Presidente da República</p> -->
<p class="logo-description-text tp-5 color-white">GABINETE DIGITAL</p>
<div class="add-line-white"></div>
</div>
</div>
</div>
@@ -57,9 +57,9 @@
</div>
<div class="logo-description d-flex align-center justify-content-center">
<div class="logo-description-content">
<p class="logo-description-text">Presidente da República</p>
<div class="add-line"></div>
<!-- <p class="logo-description-text">Presidente da República</p> -->
<p class="logo-description-text">GABINETE DIGITAL</p>
<div class="add-line"></div>
</div>
</div>
</div>