Merge branch 'feature/viewer-attachment' of https://bitbucket.org/equilibriumito/gabinete-digital-fo into feature/viewer-attachment

This commit is contained in:
Eudes Inácio
2024-03-12 12:33:10 +01:00
22 changed files with 202 additions and 81 deletions
+10 -10
View File
@@ -15,7 +15,7 @@
504EC3121FED79650016851F /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 504EC3101FED79650016851F /* LaunchScreen.storyboard */; };
50B271D11FEDC1A000F3C39B /* public in Resources */ = {isa = PBXBuildFile; fileRef = 50B271D01FEDC1A000F3C39B /* public */; };
A084ECDBA7D38E1E42DFC39D /* Pods_App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF277DCFFFF123FFC6DF26C7 /* Pods_App.framework */; };
A9D8C5112B87AF2B00C95FBB /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = A9D8C5102B87AF2B00C95FBB /* GoogleService-Info.plist */; };
A99931862B9691C4001D9C4F /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = A99931852B9691C4001D9C4F /* GoogleService-Info.plist */; };
A9D8C5192B87B08300C95FBB /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9D8C5182B87B08300C95FBB /* ShareViewController.swift */; };
A9D8C51C2B87B08300C95FBB /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A9D8C51A2B87B08300C95FBB /* MainInterface.storyboard */; };
A9D8C5202B87B08300C95FBB /* Share.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = A9D8C5162B87B08300C95FBB /* Share.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
@@ -55,7 +55,7 @@
504EC3111FED79650016851F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
504EC3131FED79650016851F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
50B271D01FEDC1A000F3C39B /* public */ = {isa = PBXFileReference; lastKnownFileType = folder; path = public; sourceTree = "<group>"; };
A9D8C5102B87AF2B00C95FBB /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "../../../../Downloads/GoogleService-Info.plist"; sourceTree = "<group>"; };
A99931852B9691C4001D9C4F /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "../../../../Downloads/GoogleService-Info.plist"; sourceTree = "<group>"; };
A9D8C5162B87B08300C95FBB /* Share.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Share.appex; sourceTree = BUILT_PRODUCTS_DIR; };
A9D8C5182B87B08300C95FBB /* ShareViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareViewController.swift; sourceTree = "<group>"; };
A9D8C51B2B87B08300C95FBB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = "<group>"; };
@@ -117,8 +117,8 @@
504EC3061FED79650016851F /* App */ = {
isa = PBXGroup;
children = (
A99931852B9691C4001D9C4F /* GoogleService-Info.plist */,
A9D8C5252B888E8300C95FBB /* App.entitlements */,
A9D8C5102B87AF2B00C95FBB /* GoogleService-Info.plist */,
50379B222058CBB4000EE86E /* capacitor.config.json */,
504EC3071FED79650016851F /* AppDelegate.swift */,
504EC30B1FED79650016851F /* Main.storyboard */,
@@ -243,7 +243,7 @@
50379B232058CBB4000EE86E /* capacitor.config.json in Resources */,
504EC30D1FED79650016851F /* Main.storyboard in Resources */,
2FAD9763203C412B000D30F8 /* config.xml in Resources */,
A9D8C5112B87AF2B00C95FBB /* GoogleService-Info.plist in Resources */,
A99931862B9691C4001D9C4F /* GoogleService-Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -489,16 +489,16 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = App/App.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 81;
CURRENT_PROJECT_VERSION = 88;
DEVELOPMENT_TEAM = 94BRNM2LSS;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
INFOPLIST_FILE = App/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
IPHONEOS_DEPLOYMENT_TARGET = 16.3;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 3.1;
MARKETING_VERSION = 3.8;
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
PRODUCT_BUNDLE_IDENTIFIER = com.gpr.gabinetedigital.teste;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -516,16 +516,16 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = App/App.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 81;
CURRENT_PROJECT_VERSION = 88;
DEVELOPMENT_TEAM = 94BRNM2LSS;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
INFOPLIST_FILE = App/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
IPHONEOS_DEPLOYMENT_TARGET = 16.3;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 3.1;
MARKETING_VERSION = 3.8;
PRODUCT_BUNDLE_IDENTIFIER = com.gpr.gabinetedigital.teste;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "";
-1
View File
@@ -62,7 +62,6 @@
<string>This app requires access to the photo library.</string>
<key>UIBackgroundModes</key>
<array>
<string>processing</string>
<string>remote-notification</string>
</array>
<key>UILaunchStoryboardName</key>
+7 -7
View File
@@ -124,7 +124,7 @@
"cordova-plugin-filepath": "^1.5.8",
"cordova-plugin-multiple-documents-picker": "^1.0.0",
"cordova-plugin-okhttp": "^2.0.0",
"cordova-plugin-screen-orientation": "^3.0.2",
"cordova-plugin-screen-orientation": "^3.0.4",
"cordova-res": "^0.15.3",
"cordova-sqlite-storage": "^6.0.0",
"cross-env": "^7.0.3",
@@ -12878,9 +12878,9 @@
]
},
"node_modules/cordova-plugin-screen-orientation": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/cordova-plugin-screen-orientation/-/cordova-plugin-screen-orientation-3.0.2.tgz",
"integrity": "sha512-2w6CMC+HGvbhogJetalwGurL2Fx8DQCCPy3wlSZHN1/W7WoQ5n9ujVozcoKrY4VaagK6bxrPFih+ElkO8Uqfzg==",
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/cordova-plugin-screen-orientation/-/cordova-plugin-screen-orientation-3.0.4.tgz",
"integrity": "sha512-AswRuUKJ8J3HycUilTJsIB50aa9TLrwndPNBFG+wfAPhHEqIBF0HaD0q3HbAK7ypgmaj0cvbzk84qP51IcTfrQ==",
"engines": {
"cordovaDependencies": {
"4.0.0": {
@@ -53547,9 +53547,9 @@
"integrity": "sha512-k8Fr3Zcv2kcsTD7TYrPPBZX/kEDSCjnPQOtaQBOFmCS3IcJNgWQY8LYST57zkIijaTKeQR7JZo4DvW1Oda3o2Q=="
},
"cordova-plugin-screen-orientation": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/cordova-plugin-screen-orientation/-/cordova-plugin-screen-orientation-3.0.2.tgz",
"integrity": "sha512-2w6CMC+HGvbhogJetalwGurL2Fx8DQCCPy3wlSZHN1/W7WoQ5n9ujVozcoKrY4VaagK6bxrPFih+ElkO8Uqfzg=="
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/cordova-plugin-screen-orientation/-/cordova-plugin-screen-orientation-3.0.4.tgz",
"integrity": "sha512-AswRuUKJ8J3HycUilTJsIB50aa9TLrwndPNBFG+wfAPhHEqIBF0HaD0q3HbAK7ypgmaj0cvbzk84qP51IcTfrQ=="
},
"cordova-plugin-statusbar": {
"version": "2.4.3",
+1 -1
View File
@@ -140,7 +140,7 @@
"cordova-plugin-filepath": "^1.5.8",
"cordova-plugin-multiple-documents-picker": "^1.0.0",
"cordova-plugin-okhttp": "^2.0.0",
"cordova-plugin-screen-orientation": "^3.0.2",
"cordova-plugin-screen-orientation": "^3.0.4",
"cordova-res": "^0.15.3",
"cordova-sqlite-storage": "^6.0.0",
"cross-env": "^7.0.3",
+8 -3
View File
@@ -12,6 +12,7 @@ import { Storage } from '@ionic/storage';
import { ChatController } from './controller/chat';
import { register } from 'swiper/element/bundle';
import { DomSanitizer } from '@angular/platform-browser';
import {ScreenOrientation} from "@ionic-native/screen-orientation/ngx";
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
parse: {
@@ -41,7 +42,8 @@ export class AppComponent {
public ThemeService: ThemeService,
private storage: Storage,
private ChatSystemService: ChatSystemService,
private sanitizer: DomSanitizer
private sanitizer: DomSanitizer,
private screenOrientation: ScreenOrientation
) {
window["sanitizer"] = this.sanitizer
@@ -77,9 +79,12 @@ export class AppComponent {
if (this.platform.is("tablet")) {
window.screen.orientation.unlock();
} else if( this.platform.is("mobile")) {
// window.screen.orientation.lock('portrait');
if(this.platform.is('ios')){
this.screenOrientation.lock('portrait')
} else {
window.screen.orientation.lock('portrait');
}
}
});
}
}
+10 -18
View File
@@ -73,33 +73,25 @@
</div>
<div class="item-date font-13-em" [class.item-date-active]="room.id == idSelected">{{room.duration}}</div>
</div>
<div *ngIf="room.lastMessage" class="item-description" [class.item-description-active]="room.id == idSelected">
<div *ngIf="room.lastMessage" class="item-description d-flex align-items-center" [class.item-description-active]="room.id ==idSelected">
<div class="item-message font-13-em add-ellipsis white-space-nowrap" *ngIf="room.otherUserType == false"> {{room.lastMessage.msg}} </div>
<div class="font-13-em" *ngIf="room.otherUserType == true">está escrever ...</div>
<p class="font-13-em mb-0 add-ellipsis white-space-nowrap" *ngIf="room.lastMessage && room.otherUserType == false">{{room.lastMessage.msg}}</p>
<p class="font-13-em" *ngIf="room.otherUserType == true">está escrever...</p>
<!-- <ion-label *ngIf="room.lastMessage.file">
<fa-icon *ngIf="room.lastMessage.file.type != 'application/meeting'" icon="file-alt" class="file-icon" [class.set-active-item-font-to-white]="room.id == idSelected"></fa-icon>
</ion-label> -->
<div *ngIf="room.lastMessage.file">
<fa-icon *ngIf="room.lastMessage.file.type != 'application/meeting' && room.lastMessage.file.type != 'application/img' && room.lastMessage.file.type != 'application/audio'" icon="file-alt" class="file-icon" [class.set-active-item-font-to-white]="room.id == idSelected"></fa-icon>
<div class="item-files add-ellipsis" *ngIf="room.lastMessage.file">
<fa-icon *ngIf="room.lastMessage.file.type != 'application/meeting' && room.lastMessage.file.type != 'application/audio' && room.lastMessage.file.type != 'application/img'" icon="file-alt" class="file-icon" [class.set-active-item-font-to-white]="room.id == idSelected"></fa-icon>
<fa-icon *ngIf="room.lastMessage.file.type == 'application/audio'" icon="file-audio" class="file-icon" [class.set-active-item-font-to-white]="room.id == idSelected"></fa-icon>
<span class="font-13-em" *ngIf="room.lastMessage.file.type == 'application/audio'"> audio </span>
<span *ngIf="room.lastMessage.file.type == 'application/audio'" class="item-files-title font-13-em"> audio </span>
<fa-icon *ngIf="room.lastMessage.file.type == 'application/meeting'" icon="calendar-alt" class="file-icon" [class.set-active-item-font-to-white]="room.id == idSelected"></fa-icon>
<span *ngIf="room.lastMessage.file.type != 'application/audio' && room.lastMessage.attachments" class="item-files-title font-13-em add-ellipsis"> {{ room.lastMessage.attachments[0].title }}</span>
<fa-icon *ngIf="room.lastMessage.file.type == 'application/img' " icon="image" class="file-icon" [class.set-active-item-font-to-white]="room.id == idSelected"></fa-icon>
<span class="font-13-em"> {{room.lastMessage.file.name || room.lastMessage.file.subject || room.lastMessage.attachments[0].title}}</span>
</div>
<!-- <ion-label *ngIf="room.lastMessage.attachments">
<div *ngIf="room.lastMessage.attachments[0].image_url">
<div class="item-files" *ngIf="room.attachments">
<div *ngIf="room.value.lastMessage.attachments[0].image_url">
<fa-icon icon="image" class="file-icon" [class.set-active-item-font-to-white]="room.id == idSelected"></fa-icon>
<span class="font-13-em"> Fotografia</span>
</div>
</ion-label> -->
</div>
</div>
</div>
</div>
@@ -34,6 +34,7 @@ import { Camera, CameraResultType, CameraSource } from '@capacitor/camera';
import { RouteService } from 'src/app/services/route.service';
import { FileValidatorService } from "src/app/services/file/file-validator.service"
import { sanitize } from "sanitize-filename-ts";
import { FilePicker } from '@capawesome/capacitor-file-picker';
@Component({
selector: 'app-group-messages',
@@ -839,8 +840,47 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
async addFileToChat(types: typeof FileType[]) {
const roomId = this.roomId
if(this.platform.is('ios')) {
console.log('ios add file ')
const resultt = await FilePicker.pickFiles({
types: ['application/pdf'],
multiple: false,
readData: true,
});
console.log('RESULT', resultt.files[0])
const blobb = this.fileService.base64toBlob(resultt.files[0].data, resultt.files[0].mimeType)
const formDataa = new FormData();
formDataa.append('blobFile', blobb);
/* console.log('add file', fileBase64) */
this.ChatSystemService.getGroupRoom(roomId).send({
file: {
"type": resultt.files[0].mimeType,
"guid": '',
},
attachments: [{
"title": sanitize(resultt.files[0].name),
"name": sanitize(resultt.files[0].name),
// "text": "description",
"title_link_download": false,
}],
temporaryData: formDataa,
attachmentsModelData: {
fileBase64: '',
}
})
return
}
const file: any = await this.fileService.getFileFromDevice(types);
+55 -6
View File
@@ -29,12 +29,13 @@ import { SessionStore } from 'src/app/store/session.service';
import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page';
import { File } from '@awesome-cordova-plugins/file/ngx';
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
import { Filesystem, Directory } from '@capacitor/filesystem';
import { Filesystem, Directory, Encoding } from '@capacitor/filesystem';
import { NewEventPage } from '../../agenda/new-event/new-event.page';
import { NotificationsService } from 'src/app/services/notifications.service';
import { RochetChatConnectorService } from 'src/app/services/chat/rochet-chat-connector.service'
import { FileValidatorService } from "src/app/services/file/file-validator.service"
import { sanitize } from "sanitize-filename-ts";
import { FilePicker } from '@capawesome/capacitor-file-picker';
import { ChangeDetectorRef } from '@angular/core';
@@ -848,9 +849,46 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
}
async addFileToChat(types: typeof FileType[]) {
console.log('add file')
console.log('add file ')
const roomId = this.roomId
if(this.platform.is('ios')) {
console.log('ios add file ')
const resultt = await FilePicker.pickFiles({
types: ['application/pdf'],
multiple: false,
readData: true,
});
console.log('RESULT', resultt.files[0])
const blobb = this.fileService.base64toBlob(resultt.files[0].data, resultt.files[0].mimeType)
const formDataa = new FormData();
formDataa.append('blobFile', blobb);
/* console.log('add file', fileBase64) */
this.ChatSystemService.getDmRoom(roomId).send({
file: {
"type": resultt.files[0].mimeType,
"guid": '',
},
attachments: [{
"title": sanitize(resultt.files[0].name),
"name": sanitize(resultt.files[0].name),
// "text": "description",
"title_link_download": false,
}],
temporaryData: formDataa,
attachmentsModelData: {
fileBase64: '',
}
})
return
}
const file: any = await this.fileService.getFileFromDevice(types);
console.log(file)
@@ -1068,11 +1106,8 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
}
async openFile(pdfString, filename, type) {
const blob = this.b64toBlob(pdfString, type)
console.log(blob)
let pathFile = ''
const fileName = filename
const contentFile = blob
if (this.platform.is('ios')) {
pathFile = this.file.documentsDirectory
} else {
@@ -1084,13 +1119,16 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
await Filesystem.writeFile({
path: fileName,
data: pdfString,
directory: Directory.Data,
directory: Directory.Cache,
encoding: Encoding.UTF8,
}).then((dir) => {
console.log('DIR ', dir)
this.fileOpener
.open(dir.uri, type)
.then(() => console.log())
.catch(e => console.error(e))
}).catch((error) => {
console.log('error writing the file', error)
});
}
@@ -1248,6 +1286,17 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
});
}
dataURItoBlobIso(dataURI: any) {
const byteString = window.atob(dataURI);
const arrayBuffer = new ArrayBuffer(byteString.length);
const int8Array = new Uint8Array(arrayBuffer);
for (let i = 0; i < byteString.length; i++) {
int8Array[i] = byteString.charCodeAt(i);
}
const blob = new Blob([int8Array], { type: 'application/pdf' });
return blob;
}
}
@@ -315,7 +315,7 @@ ion-list {
float: left;
display: inline;
margin: 0 !important;
padding: 2.5px 10.5px 2.5px 10.5px;
padding: 2.5px 10.5px 2.5px 0px;
}
}
@@ -356,7 +356,7 @@ ion-list {
/* border: 1px solid red; */
ion-label {
padding: 2.5px 10.5px 2.5px 10.5px;
padding: 2.5px 10.5px 2.5px 0px;
margin: 0 !important;
}
}
@@ -371,7 +371,7 @@ ion-list {
//border: 1px solid blue;
ion-label {
padding: 2.5px 10.5px 2.5px 10.5px;
padding: 2.5px 10.5px 2.5px 0px;
margin: 0 !important;
}
}
@@ -809,4 +809,4 @@ ion-segment-button {
height: 11px;
min-width: 27px;
min-height: 27px;
}
}
+12 -2
View File
@@ -144,8 +144,18 @@ export class LoginPage implements OnInit {
if (attempt.ChatData) {
await this.authService.loginToChatWs();
this.ChatService.setheader()
try {
await MessageModel.deleteAll();
await DeleteMessageModel.deleteAll();
this.ChatSystemService.clearChat();
this.NotificationHolderService.clear()
await this.authService.loginToChatWs();
this.ChatService.setheader()
} catch(error) {
console.log("faild to clear chat")
}
}
@@ -40,7 +40,7 @@
<ion-img *ngIf="checkFileType.checkFileType(seleted.FileExtension) == 'image'" [(ngModel)]="capturedImage"
name="image" ngDefaultControl [src]="'data:image/jpg;base64,' + seleted.FileBase64"
name="image" ngDefaultControl [src]="seleted.FileBase64"
(click)="imageSize(capturedImage)" style="height: 69px;"></ion-img>
<video *ngIf="checkFileType.checkFileType(seleted.FileExtension) == 'video'" width="70" height="70"
@@ -758,7 +758,7 @@ console.log(stringGerada);
this.shareContentAndroid(resultUrl,FileExtension)
}
/*
/*
Filesystem.readFile({ path: resultUrl }).then(async (content) => {
let fileObject;
try {
@@ -809,7 +809,7 @@ console.log(stringGerada);
} else {
window["sharedContent"] = null
}
}
async recordevideoIos(fullPath) {
@@ -854,7 +854,7 @@ console.log(stringGerada);
.catch((erro) => console.error('read converted video erro ', erro));
});
} catch (error) {
console.log('record video ios erro, ', error)
}
@@ -906,7 +906,7 @@ console.log(stringGerada);
}
} else {
fileObject = {
FileBase64: content.data,
FileBase64: 'data:image/jpeg;base64,' + content.data,
FileExtension: this.removeTextBeforeSlash(element.mimeType, '/'),
OriginalFileName: 'image'
}
@@ -915,18 +915,18 @@ console.log(stringGerada);
this.seletedContent.push(fileObject)
})
.catch((err) => console.error(err));
}
gerarStringAleatoria() {
const caracteres = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let stringAleatoria = '';
for (let i = 0; i < 4; i++) {
const indiceAleatorio = Math.floor(Math.random() * caracteres.length);
stringAleatoria += caracteres.charAt(indiceAleatorio);
}
return stringAleatoria;
}
@@ -944,23 +944,23 @@ console.log(stringGerada);
OriginalFileName: 'shared',
}
console.log('shared base', content.data)
this.seletedContent.push(fileObject)
} catch (error) {
console.log('error shared filesystem', error)
}
})
} else if (this.checkFileType.checkFileType(FileExtension) == 'video') {
const directory = await Filesystem.getUri({
directory: Directory.Cache,
path: '',
});
let fileObject ={};
this.videoconvertService.convertVideo(fullPath,directory.uri,filename,'mp4').then(() => {
Filesystem.readFile({ path: `${directory.uri}output.mp4`})
.then(async (content) => {
console.log(content.data)
this.filecontent = true;
@@ -991,8 +991,8 @@ console.log(stringGerada);
});
}
} catch (error) {
console.log('record video ios erro, ', error)
}
@@ -1005,7 +1005,7 @@ console.log(stringGerada);
try {
if (this.checkFileType.checkFileType(FileExtension) == 'image') {
fileObject = {
FileBase64: this.removeTextBeforeSlash(content.data, ','),
FileBase64: 'data:image/jpeg;base64,' +this.removeTextBeforeSlash(content.data, ','),
FileExtension: FileExtension,
OriginalFileName: 'shared',
}
+1
View File
@@ -183,6 +183,7 @@ export class AuthService {
setTimeout(() => {
if (SessionStore.user.ChatData?.data) {
this.RochetChatConnectorService.logout();
this.RochetChatConnectorService.connect();
this.RochetChatConnectorService.login().then((message: any) => {
console.log('Chat login', message)
+1 -1
View File
@@ -157,7 +157,7 @@ export class ChatSystemService {
runMainChangeDetector() {
console.log("change")
this.mainChangeDetector()
// this.mainChangeDetector()
}
loadChat() {
+3
View File
@@ -448,6 +448,8 @@ export class MessageService {
let downloadFile = "";
this.AttachmentsService.downloadFile(this.file.guid).subscribe(async (event) => {
console.log('download file',event)
if (event.type === HttpEventType.DownloadProgress) {
} else if (event.type === HttpEventType.Response) {
@@ -456,6 +458,7 @@ export class MessageService {
} else if (this.file.type != "application/img") {
downloadFile = new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), '');
console.log('downloaded file', downloadFile)
}
+1 -1
View File
@@ -391,7 +391,7 @@ export class RoomService {
this.name = ChatMessage.msg
}
this.changeDetector()
// this.changeDetector()
setTimeout(() => {
done()
}, 5)
@@ -263,5 +263,17 @@ export class FileService {
return new File([u8arr], filename, {type:mime});
}
base64toBlobIos(base64Data, contentType) {
contentType = contentType || '';
const byteCharacters = atob(base64Data);
const byteArray = new Uint8Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
byteArray[i] = byteCharacters.charCodeAt(i);
}
return new Blob([byteArray], { type: contentType });
}
}
@@ -68,7 +68,7 @@ ion-button{
}
.upper-content-margin {
margin-left: 41px;
margin-left: 20px;
}
@@ -277,7 +277,7 @@ ion-button{
.upper-content {
margin-left: 41px;
margin-left: 20px;
}
.activity-instanceName {
+10
View File
@@ -43,6 +43,16 @@ export class HeaderPage implements OnInit {
notificationCount: number = 0;
profilePicture = "";
hideHeader = false
hideHeaderValidation() {
const result = this.HeaderSettingsService.hideHeader && this.ActiveTabService.pages.gabineteDetails
if(result != this.hideHeader) {
this.hideHeader = true
}
}
constructor(
private router: Router,
@@ -64,18 +64,13 @@
</div>
<ion-img *ngIf="checkFileType.checkFileType(seleted.FileExtension) == 'image'"
name="image" ngDefaultControl [src]="seleted.url" style="height: 69px;"></ion-img>
name="image" ngDefaultControl [src]="'data:image/jpg;base64,' + seleted.Base64" style="height: 69px;"></ion-img>
<video class="sdf" *ngIf="checkFileType.checkFileType(seleted.FileExtension) == 'video' && checkDesktop() == true" width="70" height="70"
preload="metadata" webkit-playsinline="webkit-playsinline">
<source type="video/mp4" [src]="seleted.url">
</video>
<video class="sdfsdf" *ngIf="checkFileType.checkFileType(seleted.FileExtension) == 'video' && checkTableDivice() == true" width="70" height="70"
preload="metadata" webkit-playsinline="webkit-playsinline">
<source type="video/mp4" [src]="'data:video/mp4;base64,' + seleted.Base64">
</video>
</div>
</div>
@@ -402,6 +402,7 @@ export class NewPublicationPage implements OnInit {
let time = new Date()
if (this.publicationFormMV.form.Files.length >= 1) {
const loader = this.toastService.loading()
const upload = await this.publicationFormMV.uploadVideosFiles()
@@ -410,8 +411,13 @@ export class NewPublicationPage implements OnInit {
if(e.FileType == 'video' && e.blobFile && e.toUpload) {
e.OriginalFileName = e.chucksManager.path.replace(".mp4", "")
e.FileExtension = "mp4"
e.Base64 = ""
}
if(e.FileType == 'video' ) {
e.Base64 = e.url
}
return e
})
@@ -420,7 +426,7 @@ export class NewPublicationPage implements OnInit {
const publication: any = Object.assign({}, this.publicationFormMV.form)
publication.Files = publication.Files.map( (e:PublicationAttachmentEntity) => ({
FileBase64: e.url,
FileBase64: e.Base64,
FileExtension: e.FileExtension,
OriginalFileName: e.OriginalFileName || 'foto'
}))
@@ -428,7 +434,7 @@ export class NewPublicationPage implements OnInit {
publication.DocumentId = null;
publication.ProcessId = this.folderId
const loader = this.toastService.loading()
try {
@@ -246,7 +246,6 @@ export class ViewPublicationsPage implements OnInit {
if(JSON.stringify(a) != JSON.stringify(b)) {
// console.log({a, b})
this.publicationFolderService.publicationList[folderId][findIndex] = publicationDetails
} else {
// console.log({publicationDetails})