fix open shared publication folder

This commit is contained in:
Peter Maquiran
2024-03-01 15:37:52 +01:00
13 changed files with 273 additions and 93 deletions
@@ -33,6 +33,7 @@ import { checkFileTypeService } from 'src/app/services/checkFileType.service';
import { FileValidatorService } from "src/app/services/file/file-validator.service"
import { App } from '@capacitor/app';
import { Router } from '@angular/router';
import { VideoconvertService } from 'src/app/services/videoconvert.service'
const config = {
@@ -139,6 +140,7 @@ export class NewPublicationPage implements OnInit {
public checkFileType: checkFileTypeService,
private FileValidatorService: FileValidatorService,
private router: Router,
private videoconvertService: VideoconvertService
) {
this.publicationType = this.navParams.get('publicationType');
@@ -255,46 +257,9 @@ export class NewPublicationPage implements OnInit {
try {
if (this.platform.is('ios')) {
const result = await Filesystem.writeFile({
path: 'video.mov',
data: element.fullPath,
directory: FilesystemDirectory.Data,
encoding: FilesystemEncoding.UTF8
})
console.log('Wrote file', result);
Filesystem.readFile({ path: result.uri })
.then(async (content) => {
console.log(content.data)
this.filecontent = true;
let fileObject = {
FileBase64: 'data:video/mp4;base64,' + content.data,
FileExtension: 'mp4',
OriginalFileName: 'video'
}
this.seletedContent.push(fileObject)
})
.catch((err) => console.error(err));
this.recordevideoIos(element.fullPath)
} else {
const savedFile = await Filesystem.copy({
from: Capacitor.convertFileSrc(element.fullPath), // directory prop removed, Capacitor parses filename for us
to: "video.mp4",
toDirectory: FilesystemDirectory.Data
});
console.log(savedFile.uri)
Filesystem.readFile({ path: savedFile.uri })
.then(async (content) => {
this.filecontent = true;
let fileObject = {
FileBase64: 'data:video/mp4;base64,' + content.data,
FileExtension: 'mp4',
OriginalFileName: 'video'
}
this.seletedContent.push(fileObject)
})
.catch((err) => console.error(err));
}
} catch (e) {
@@ -583,7 +548,16 @@ export class NewPublicationPage implements OnInit {
await this.publications.CreatePublication(this.folderId, this.publication).toPromise();
this.httpErrorHandle.httpsSucessMessagge('Criar publicação')
if (window["sharedContent"]) {
this.router.navigate(['/home/publications', this.folderId]);
window["sharedContent"] = null
window["openFolder"] = true
if(window.innerWidth <= 700) {
this.router.navigate(['/home/publications', this.folderId]);
} else if(window.innerWidth >= 701){
this.router.navigate(['/home/publications?folderId='+this.folderId]);
}
return
}
@@ -842,5 +816,58 @@ export class NewPublicationPage implements OnInit {
App.exitApp()
}
async recordevideoIos(fullPath) {
try {
const directory = await Filesystem.getUri({
directory: Directory.Cache,
path: '',
});
this.videoconvertService.convertVideo(fullPath,directory.uri,'mp4');
Filesystem.readFile({ path: `${directory.uri}output.mp4`})
.then(async (content) => {
console.log(content.data)
this.filecontent = true;
let fileObject = {
FileBase64: 'data:video/mp4;base64,' + content.data,
FileExtension: 'mp4',
OriginalFileName: 'video'
}
this.seletedContent.push(fileObject)
})
.catch((erro) => console.error('read converted video erro ', erro));
} catch (error) {
console.log('record video ios erro, ', error)
}
}
async recordVideoAndroid(fullPath) {
try {
const savedFile = await Filesystem.copy({
from: Capacitor.convertFileSrc(fullPath),
to: "video.mp4",
toDirectory: FilesystemDirectory.Data
});
console.log(savedFile.uri)
Filesystem.readFile({ path: savedFile.uri })
.then(async (content) => {
this.filecontent = true;
let fileObject = {
FileBase64: 'data:video/mp4;base64,' + content.data,
FileExtension: 'mp4',
OriginalFileName: 'video'
}
this.seletedContent.push(fileObject)
})
.catch((error) => console.error('reade converted video erro ',error));
} catch (error) {
console.log('record video android erro ', error)
}
}
}
@@ -1,6 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';
import { ModalController, NavParams } from '@ionic/angular';
import { AlertController, ModalController, NavParams } from '@ionic/angular';
import { PublicationFolder } from 'src/app/models/publicationfolder';
import { PublicationsService } from 'src/app/services/publications.service';
import { NewActionPage } from './new-action/new-action.page';
@@ -78,6 +78,7 @@ export class PublicationsPage implements OnInit {
private StreamService:StreamService,
private http: HttpClient,
) {
this.months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
this.days = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"];
@@ -87,14 +88,30 @@ export class PublicationsPage implements OnInit {
}
checkQueryParameter() {
var urlSearchParams = new URLSearchParams(window.location.search);
var folderId = urlSearchParams.get('folderId');
if (folderId !== null && window["openFolder"]) {
window["openFolder"] = false
this.goToPublicationsList(folderId)
} else {
console.log('Folder ID::', folderId);
}
}
ngOnInit() {
const pathname = window.location.pathname
this.getActions();
this.checkQueryParameter()
this.router.events.forEach((event) => {
if (event instanceof NavigationEnd && event.url == pathname) {
this.getActions();
this.checkQueryParameter()
}
});