This commit is contained in:
Peter Maquiran
2024-03-26 12:03:30 +01:00
parent 0b876e516b
commit ca0b968abe
32 changed files with 1016 additions and 794 deletions
@@ -9,6 +9,9 @@ import { NewPublicationPageRoutingModule } from './new-publication-routing.modul
import { NewPublicationPage } from './new-publication.page';
import '@teamhive/capacitor-video-recorder';
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { MatProgressBarModule } from '@angular/material/progress-bar';
@NgModule({
imports: [
CommonModule,
@@ -16,6 +19,7 @@ import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
IonicModule,
NewPublicationPageRoutingModule,
FontAwesomeModule,
MatProgressBarModule,
],
exports: [NewPublicationPage],
declarations: [NewPublicationPage]
@@ -11,7 +11,7 @@
<div class="overflow-y-auto padding">
<div *ngIf="publicationType!='1'" class="ion-item-container"
[class.input-error]="Form?.get('Subject')?.invalid && validateFrom ">
<ion-input autocomplete="on" autocorrect="on" spellcheck="true" [(ngModel)]="pub.Title" name="title"
<ion-input autocomplete="on" autocorrect="on" spellcheck="true" [(ngModel)]="PublicationFromMvService.form.Title" name="title"
ngDefaultControl placeholder="Título*"></ion-input>
</div>
@@ -21,41 +21,50 @@
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div>
<div class="ion-textarea-class" [class.input-error]="Form?.get('Message')?.invalid && validateFrom ">
<ion-textarea autocomplete="on" autocorrect="on" spellcheck="true" [(ngModel)]="pub.Message"
<ion-textarea autocomplete="on" autocorrect="on" spellcheck="true" [(ngModel)]="PublicationFromMvService.form.Message"
name="description" ngDefaultControl rows="12" cols="20" placeholder="Corpo de texto*"></ion-textarea>
</div>
</div>
</div>
<div *ngIf="seletedContent.length > 0" class="ion-item-container-no-border mb-20">
<div *ngIf="PublicationFromMvService.form.Files.length > 0" class="ion-item-container-no-border mb-20">
<ion-label class="attached-title pb-10">Fotografia Anexada</ion-label>
<div class="d-flex justify-content-between">
<div class="d-flex">
<div *ngFor="let seleted of seletedContent.slice(0, displayLimit), let i = index" lot="start" class="mr-10">
<div *ngFor="let seleted of PublicationFromMvService.form.Files.slice(0, displayLimit), let i = index" lot="start" class="mr-10">
<div class="text-center cursor-pointer" (click)="deleteFromSeletedContent(i)" style="font-weight: 700;color: #c63527;">
X
</div>
<div *ngIf="checkFileType.checkFileType(seleted.FileExtension) == 'video' && seleted.chucksManager">
<mat-progress-bar
mode="determinate"
[style.width]="seleted.chucksManager.uploadPercentage"
></mat-progress-bar>
</div>
<ion-img *ngIf="checkFileType.checkFileType(seleted.FileExtension) == 'image'" [(ngModel)]="capturedImage"
name="image" ngDefaultControl [src]="seleted.FileBase64"
name="image" ngDefaultControl [src]="seleted.url"
(click)="imageSize(capturedImage)" style="height: 69px;"></ion-img>
<video *ngIf="checkFileType.checkFileType(seleted.FileExtension) == 'video'" width="70" height="70"
controls="controls" preload="metadata" webkit-playsinline="webkit-playsinline">
<source type="video/mp4" [src]="seleted.FileBase64">
<source type="video/mp4" [src]="seleted.url">
</video>
</div>
<!-- Display the blurred image and count if there are more images -->
<ion-thumbnail *ngIf="seletedContent.length > displayLimit" lot="start">
<ion-img [src]="'data:image/jpg;base64,' + seletedContent[displayLimit - 1].base64"
<ion-thumbnail *ngIf="PublicationFromMvService.form.Files.length > displayLimit" lot="start">
<ion-img [src]="'data:image/jpg;base64,' + PublicationFromMvService.form.Files[displayLimit - 1].Base64"
style="filter: blur(5px);"></ion-img>
<p>mais {{ seletedContent.length - displayLimit }}</p>
<p>mais {{ PublicationFromMvService.form.Files.length - displayLimit }}</p>
</ion-thumbnail>
<ion-label class="pl-10">
<p>{{capturedImageTitle}}</p>
@@ -66,22 +75,6 @@
</div>
</div>
<!-- <div class="picture d-flex pb-5 hide-desktop"
*ngIf="publication && !( publication.Files[0].FileBase64 == 'data:image/jpg;base64,null' || publication.Files[0].FileBase64 == '' )">
<div class="post-img" *ngIf="publication.Files[0].FileBase64 ">
<img src="{{publication.Files[0].FileBase64 }}" alt="image">
</div>
<div class="d-flex flex-column pl-10" *ngIf="publication.Files[0].FileBase64 ">
<div class="picture-file-name">{{publication.OriginalFileName}}.{{publication.FileExtension}}</div>
<div class="size">75 Kb</div>
</div>
<div class="flex-grow-1 d-flex align-center justify-end font-25" *ngIf="publication.Files[0].FileBase64 "
(click)="deletePublicationImage()">
<ion-icon name="close"></ion-icon>
</div>
</div> -->
<div class="ion-item-container-no-border pt-10">
<ion-label (click)="takePicture()">
<div class="attach-icon">
@@ -111,51 +104,7 @@
</div>
</ion-label>
</div>
<!-- <div *ngIf="photoOrVideo" class="container-multiselect pt-10">
<button id="container-multiselect" class="multiselect-button" (click)="takePicture()">Fotografia</button>
<button id="container-multiselect" class="multiselect-button" (click)="startVideoRecording()">Video</button>
</div> -->
<!-- <div *ngIf="photoOrVideo" class="ion-item-container-no-border">
<ion-label (click)="takePicture()">
<div class="attach-icon">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' "
src="assets/images/icons-add-photo.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' "
src="assets/images/theme/gov/icons-add-photo.svg"></ion-icon>
</div>
<div class="attach-document">
<ion-label>Foto</ion-label>
</div>
</ion-label>
</div>
<div *ngIf="photoOrVideo" class="ion-item-container-no-border">
<ion-label (click)="startVideoRecording()">
<div class="attach-icon">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' "
src="assets/images/icons-add-photo.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' "
src="assets/images/theme/gov/icons-add-photo.svg"></ion-icon>
</div>
<div class="attach-document">
<ion-label>Video</ion-label>
</div>
</ion-label>
</div> -->
<!-- <div class="ion-item-container-no-border">
<ion-label (click)="laodPicture()" class="cursor-pointer">
<div class="attach-icon">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-add-photos.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " src="assets/images/theme/gov/icons-add-photos.svg"></ion-icon>
</div>
<div class="attach-document cursor-pointer">
<ion-label>Galeria</ion-label>
</div>
</ion-label>
</div> -->
<div class="ion-item-container-no-border">
<ion-label (click)="loadVideo()" class="cursor-pointer">
<div class="attach-icon">
@@ -27,14 +27,16 @@ import { FilePicker } from '@capawesome/capacitor-file-picker';
import { CapacitorVideoPlayer } from 'capacitor-video-player';
import { CaptureError, CaptureImageOptions, MediaCapture, MediaFile } from '@awesome-cordova-plugins/media-capture/ngx';
import { Capacitor } from '@capacitor/core';
import { File } from '@ionic-native/file/ngx';
import { File as IonicFile } from '@ionic-native/file/ngx';
import { Media } from '@ionic-native/media/ngx';
import { checkFileTypeService } from 'src/app/services/checkFileType.service';
import { FileValidatorService } from "src/app/services/file/file-validator.service"
import { App } from '@capacitor/app';
import { NavigationExtras, Router } from '@angular/router';
import { VideoconvertService } from 'src/app/services/videoconvert.service'
import { PublicationAttachmentEntity } from 'src/app/shared/publication/upload/upload-streaming.service';
import { PublicationFromMvService } from "src/app/shared/publication/upload/publication-from-mv.service"
import { File } from '../../../models/chatMethod';
const config = {
quality: 0.5,
@@ -88,8 +90,6 @@ export class NewPublicationPage implements OnInit {
validateFrom = false
showLoader: boolean;
publication: Publication;
pub: Publication = new Publication();
folderId: string;
image: Image = new Image();
@@ -117,7 +117,6 @@ export class NewPublicationPage implements OnInit {
photoOrVideo: boolean = false;
fileType = "";
filecontent: boolean;
seletedContent: any[] = []
// Set a limit for the number of images to display
displayLimit = 4;
filesSizeSum = 0;
@@ -140,22 +139,38 @@ export class NewPublicationPage implements OnInit {
public checkFileType: checkFileTypeService,
private FileValidatorService: FileValidatorService,
private router: Router,
private videoconvertService: VideoconvertService
private videoconvertService: VideoconvertService,
public PublicationFromMvService: PublicationFromMvService,
) {
this.publicationType = this.navParams.get('publicationType');
this.folderId = this.navParams.get('folderId');
this.publication = this.navParams.get('publication');
if (this.publication) {
this.seletedContent = this.publication.Files;
const publication = this.navParams.get('publication');
if (publication && typeof publication?.Files == 'object') {
this.filecontent = true;
const newFiles: PublicationAttachmentEntity[] = publication.Files.map(e => {
return new PublicationAttachmentEntity(
{
base64: e.FileBase64,
extension: e.FileExtension,
OriginalFileName: e.OriginalFileName,
FileType: this.checkFileType.checkFileType(e.FileExtension) as any
}
)
})
for(const files of newFiles) {
this.PublicationFromMvService.form.Files.push(files)
}
}
console.log('Edit', this.publication)
this.publicationTitle = 'Nova Publicação';
this.intent = this.navParams.get('intent');
this.convertBlobToBase64Worker = new Worker(new URL('./convertBlobToBase64.worker.js', import.meta.url));
this.PublicationFromMvService.clear()
}
ngOnInit() {
@@ -204,17 +219,22 @@ export class NewPublicationPage implements OnInit {
console.log('take picture', this.removeTextBeforeSlash(picture, ','),)
this.filecontent = true;
this.photoOrVideo = false;
let fileObject = {
FileBase64: this.removeTextBeforeSlash(picture, ','),
FileExtension: capturedImage.format,
OriginalFileName: 'image'
}
this.seletedContent.push(fileObject)
const newAttachment = new PublicationAttachmentEntity(
{
base64: this.removeTextBeforeSlash(picture, ','),
extension: capturedImage.format,
OriginalFileName: "image",
FileType: 'image'
}
)
this.PublicationFromMvService.form.Files.push(newAttachment)
});
} else {
if (this.seletedContent.length === 0)
if (this.PublicationFromMvService.form.Files.length === 0)
this.filesSizeSum = 0
this.httpErrorHandle.validationMessagge('filessize');
@@ -255,9 +275,9 @@ export class NewPublicationPage implements OnInit {
try {
if (this.platform.is('ios')) {
this.recordevideoIos(element.fullPath)
this.recordevideoIos(element.fullPath, element)
} else {
this.recordVideoAndroid(element.fullPath)
this.recordVideoAndroid(element.fullPath, element)
}
} catch (e) {
@@ -265,7 +285,7 @@ export class NewPublicationPage implements OnInit {
}
} else {
if (this.seletedContent.length === 0)
if (this.PublicationFromMvService.form.Files.length === 0)
this.filesSizeSum = 0
this.httpErrorHandle.validationMessagge('filessize')
@@ -277,35 +297,35 @@ export class NewPublicationPage implements OnInit {
}
}
async loadVideo() {
const result = await FilePicker.pickMedia ({ multiple: true, });
console.log(result.files)
result.files.forEach(async element => {
this.filesSizeSum = this.filesSizeSum + element.size
if (this.fileSizeToMB(this.filesSizeSum) <= 20) {
console.log('pass size verificartion')
async loadVideo() {
const result = await FilePicker.pickMedia ({ multiple: true, });
console.log(result.files)
result.files.forEach(async element => {
this.filesSizeSum = this.filesSizeSum + element.size
if (this.fileSizeToMB(this.filesSizeSum) <= 20) {
console.log('pass size verificartion')
if (this.checkFileType.checkFileType(element.mimeType) == 'video' && this.platform.is('ios')) {
let resultUrl = decodeURIComponent(element.path); console.log('pass type verification ', resultUrl)
try {
this.recordevideoIos(resultUrl)
} catch (error) {
console.log('upload video error: ', error)
}
} else if (this.checkFileType.checkFileType(element.mimeType) == 'image' || this.checkFileType.checkFileType(element.mimeType) == 'video') {
let resultUrl = decodeURIComponent(element.path); console.log('pass type verification ', resultUrl)
try {
this.recordevideoIos(resultUrl, element)
} catch (error) {
console.log('upload video error: ', error)
}
} else if (this.checkFileType.checkFileType(element.mimeType) == 'image' || this.checkFileType.checkFileType(element.mimeType) == 'video') {
let resultUrl = decodeURIComponent(element.path);
console.log('pass type verification ', resultUrl)
try {
this.loadVideoAndroid(resultUrl,element)
} catch (error) {
console.log('upload video error: ', error)
}
}
} else {
if (this.seletedContent.length === 0)
this.filesSizeSum = 0
try {
this.loadVideoAndroid(resultUrl,element)
} catch (error) {
console.log('upload video error: ', error)
}
}
} else {
if (this.PublicationFromMvService.form.Files.length === 0)
this.filesSizeSum = 0
this.httpErrorHandle.validationMessagge('filessize')
}
this.httpErrorHandle.validationMessagge('filessize')
}
});
};
@@ -367,14 +387,14 @@ export class NewPublicationPage implements OnInit {
injectValidation() {
this.Form = new FormGroup({
Subject: new FormControl(this.pub.Title, [
Subject: new FormControl(this.PublicationFromMvService.form.Title, [
Validators.required,
// Validators.minLength(4)
]),
capturedImage: new FormControl(this.capturedImage, [
]),
Message: new FormControl(this.pub.Message, [
Message: new FormControl(this.PublicationFromMvService.form.Message, [
Validators.required,
Validators.maxLength(1000)
@@ -390,172 +410,26 @@ export class NewPublicationPage implements OnInit {
if (this.Form.invalid) return false
if (this.seletedContent.length != 0) {
if (this.PublicationFromMvService.form.Files.length != 0) {
if (this.publicationType == '3') {
const loader = this.toastService.loading()
// has file
if (this.PublicationFolderService.PublicationHasImage(this.publication)) {
this.publication = {
DateIndex: this.publication.DateIndex,
DocumentId: this.publication.DocumentId,
ProcessId: this.publication.ProcessId,
Title: this.pub.Title,
Message: this.pub.Message,
DatePublication: this.publication.DatePublication,
OriginalFileName: this.publication.OriginalFileName,
Files: this.seletedContent,
}
/* } else if (this.capturedVideo != '' && this.capturedImage == '') {
this.publication = {
DateIndex: this.publication.DateIndex,
DocumentId: this.publication.DocumentId,
ProcessId: this.publication.ProcessId,
Title: this.pub.Title,
Message: this.pub.Message,
DatePublication: this.publication.DatePublication,
OriginalFileName: this.publication.OriginalFileName || 'video',
Files: this.seletedContent,
FileExtension: 'mp4',
}
} */
// no names
} else if (!this.PublicationFolderService.PublicationHasImage(this.publication)) {
this.publication = {
DateIndex: this.publication.DateIndex,
DocumentId: this.publication.DocumentId,
ProcessId: this.publication.ProcessId,
Title: this.pub.Title,
Message: this.pub.Message,
DatePublication: this.publication.DatePublication,
OriginalFileName: this.publication.OriginalFileName,
Files: this.seletedContent,
}
} /* else {
this.publication = {
DateIndex: this.publication.DateIndex,
DocumentId: this.publication.DocumentId,
ProcessId: this.publication.ProcessId,
Title: this.pub.Title,
Message: this.pub.Message,
DatePublication: this.publication.DatePublication,
OriginalFileName: this.publication.OriginalFileName,
FileBase64: this.publication.FileBase64,
FileExtension: this.publication.FileExtension || 'jpeg',
}
} */
try {
const response = await this.publications.UpdatePublication(this.publication.ProcessId, this.publication).toPromise()
this.httpErrorHandle.httpsSucessMessagge('Editar publicação')
console.log({ response })
this.close();
} catch (error) {
if (error.status == 404) {
this.PublicationFolderService.deletePost(this.publication.ProcessId, this.publication.DocumentId)
this.close();
}
this.httpErrorHandle.httpStatusHandle(error)
} finally {
loader.remove()
}
}
else {
const date = formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss')
/* this.seletedContent = this.seletedContent.map((e) => {
if(e.FileExtension == "mp4") {
return {
FileBase64: e.FileBase64,
FileExtension: 'data:video/mp4;base64,'+e.FileExtension,
OriginalFileName: "video",
}
}
return e
}) */
/* if (this.capturedImage != '') { */
this.publication = {
DateIndex: date,
DocumentId: null,
ProcessId: JSON.stringify(this.folderId),
Title: this.pub.Title,
Message: this.pub.Message,
DatePublication: date,
OriginalFileName: this.capturedImageTitle || 'foto',
Files: this.seletedContent,
/* FileExtension: 'jpeg', */
}
/* } else if (this.capturedVideo != '') {
this.publication = {
DateIndex: date,
DocumentId: null,
ProcessId: this.folderId,
Title: this.pub.Title,
Message: this.pub.Message,
DatePublication: date,
OriginalFileName: this.capturedImageTitle || 'video',
Files: this.seletedContent,
FileExtension: 'mp4',
}
} */
const loader = this.toastService.loading()
try {
await this.publications.CreatePublication(this.folderId, this.publication).toPromise();
this.httpErrorHandle.httpsSucessMessagge('Criar publicação')
if (window["sharedContent"]) {
window["sharedContent"] = null
window["openFolder"] = true
if(window.innerWidth <= 700) {
this.router.navigate(['/home/publications', this.folderId]);
} else if(window.innerWidth >= 701){
let navigationExtras: NavigationExtras = { queryParams: { "folderId": this.folderId, } };
this.router.navigate(['/home/publications']);
}
return
}
this.close();
} catch (error) {
this.httpErrorHandle.httpStatusHandle(error)
} finally {
loader.remove()
}
}
this.PublicationFolderService.getPublicationsIds(this.folderId)
this.close();
this.PublicationFromMvService.setFolderId(this.folderId)
await this.PublicationFromMvService.save()
} else {
this.httpErrorHandle.validationMessagge("noFileSelected")
}
}
ngOnDestroy() {
// if(!this.PublicationFromMvService.form.send) {
// this.PublicationFromMvService.cancel()
// }
}
close() {
this.modalController.dismiss(this.publication).then(() => {
this.modalController.dismiss(this.PublicationFromMvService.form).then(() => {
this.showLoader = true;
});
@@ -566,7 +440,7 @@ export class NewPublicationPage implements OnInit {
clear() {
this.capturedImageTitle = null;
this.seletedContent = [];
this.PublicationFromMvService.form.Files = [];
}
setTitle() {
@@ -578,8 +452,6 @@ export class NewPublicationPage implements OnInit {
}
else if (this.publicationType == '3') {
this.publicationTitle = 'Editar Publicação';
this.pub = this.navParams.get('publication');
}
}
@@ -603,7 +475,7 @@ export class NewPublicationPage implements OnInit {
deletePublicationImage() {
this.seletedContent = []
this.PublicationFromMvService.form.Files = []
}
async compressImageBase64(base64String: string, maxWidth: number, maxHeight: number, quality: number): Promise<string> {
@@ -794,7 +666,7 @@ console.log(stringGerada);
}
deleteFromSeletedContent(index) {
this.seletedContent.splice(index, 1)
this.PublicationFromMvService.form.Files.splice(index, 1)
}
closeApp() {
@@ -806,73 +678,84 @@ console.log(stringGerada);
}
async recordevideoIos(fullPath) {
console.log('fullpath', fullPath)
async recordevideoIos(fullPath, element) {
try {
const directory = await Filesystem.getUri({
directory: Directory.Cache,
path: '',
});
const directory = await Filesystem.getUri({
directory: Directory.Cache,
path: '',
});
const stringGerada = this.gerarStringAleatoria();
console.log(stringGerada);
let fileObject ={};
this.videoconvertService.convertVideo(fullPath,directory.uri,stringGerada,'mp4').then(async () => {
await Filesystem.readFile({ path: `${directory.uri}${stringGerada}.mp4`})
const stringGerada = this.gerarStringAleatoria();
.then(async (content) => {
this.filecontent = true;
fileObject = {}
console.log('First clean',fileObject)
fileObject = {
FileBase64: 'data:video/mp4;base64,' + content.data,
FileExtension: 'mp4',
OriginalFileName: stringGerada
}
console.log('what do we have',fileObject)
this.seletedContent.push(fileObject)
console.log('file object 1',fileObject)
fileObject ={};
const deleteSecretFile = async () => {
await Filesystem.deleteFile({
path: `${stringGerada}.mp4`,
directory: Directory.Cache,
});
};
await deleteSecretFile().then((value) => {
console.log('delete file',value)
fileObject ={};
console.log('file object 2',fileObject)
this.videoconvertService.convertVideo(fullPath,directory.uri,stringGerada,'mp4').then(async () => {
await Filesystem.readFile({ path: `${directory.uri}${stringGerada}.mp4`})
.then(async (content) => {
this.filecontent = true;
const file = new File([element.blob], element.name);
const newAttachment = new PublicationAttachmentEntity(
{
base64: 'data:video/mp4;base64,' + content.data,
extension: 'mp4',
blobFile: file,
FileType: this.checkFileType.checkFileType('mp4') as any,
OriginalFileName: 'load video'
}
)
this.PublicationFromMvService.form.Files.push(newAttachment)
const deleteSecretFile = async () => {
await Filesystem.deleteFile({
path: `${stringGerada}.mp4`,
directory: Directory.Cache,
});
};
await deleteSecretFile().then((value) => {
console.log('delete file',value)
})
})
})
.catch((erro) => console.error('read converted video erro ', erro));
});
.catch((erro) => console.error('read converted video erro ', erro));
});
} catch (error) {
} catch (error) {
console.log('record video ios erro, ', error)
}
}
}
async recordVideoAndroid(fullPath) {
async recordVideoAndroid(fullPath, element) {
try {
const savedFile = await Filesystem.copy({
from: fullPath,
to: "video.mp4",
toDirectory: FilesystemDirectory.Data
});
console.log(savedFile.uri)
Filesystem.readFile({ path: savedFile.uri })
const savedFile = await Filesystem.copy({
from: 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)
const file = new File([element.blob], element.name);
window['a'] = element
const newAttachment = new PublicationAttachmentEntity(
{
base64: 'data:video/mp4;base64,' + content.data,
extension: 'mp4',
blobFile: file,
FileType: this.checkFileType.checkFileType( 'mp4') as any,
OriginalFileName: 'load video'
}
)
this.PublicationFromMvService.form.Files.push(newAttachment)
})
.catch((error) => console.error('reade converted video erro ',error));
@@ -889,24 +772,38 @@ console.log(stringGerada);
Filesystem.readFile({ path: resultUrl })
.then(async (content) => {
console.log(content)
this.filecontent = true;
let fileObject;
if (this.removeTextBeforeSlash(element.mimeType, '/') == "mp4") {
fileObject = {
FileBase64: 'data:video/mp4;base64,' + content.data,
FileExtension: this.removeTextBeforeSlash(element.mimeType, '/'),
OriginalFileName: 'video'
}
const newAttachment = new PublicationAttachmentEntity(
{
base64: content.data,
extension: this.removeTextBeforeSlash(element.mimeType, '/'),
FileType: this.checkFileType.checkFileType( this.removeTextBeforeSlash(element.mimeType, '/')) as any,
OriginalFileName: 'load video'
}
)
newAttachment.needUpload()
this.PublicationFromMvService.form.Files.push(newAttachment)
} else {
fileObject = {
FileBase64: 'data:image/jpeg;base64,' + content.data,
FileExtension: this.removeTextBeforeSlash(element.mimeType, '/'),
OriginalFileName: 'image'
}
const newAttachment = new PublicationAttachmentEntity(
{
base64: 'data:image/jpeg;base64,' + content.data,
extension: this.removeTextBeforeSlash(element.mimeType, '/'),
FileType: this.checkFileType.checkFileType( this.removeTextBeforeSlash(element.mimeType, '/')) as any,
OriginalFileName: 'image'
}
)
this.PublicationFromMvService.form.Files.push(newAttachment)
}
this.seletedContent.push(fileObject)
})
.catch((err) => console.error(err));
@@ -939,7 +836,7 @@ console.log(stringGerada);
}
console.log('shared base', content.data)
this.seletedContent.push(fileObject)
this.PublicationFromMvService.form.Files.push(fileObject)
} catch (error) {
console.log('error shared filesystem', error)
}
@@ -963,12 +860,18 @@ console.log(stringGerada);
FileExtension: 'mp4',
OriginalFileName: 'shared',
} */
fileObject = {
FileBase64: 'data:video/mp4;base64,' + this.removeTextBeforeSlash(content.data, ','),
FileExtension: 'mp4',
OriginalFileName: 'shared',
}
this.seletedContent.push(fileObject)
const newAttachment = new PublicationAttachmentEntity(
{
base64: 'data:video/mp4;base64,' + this.removeTextBeforeSlash(content.data, ','),
extension: 'mp4',
FileType: this.checkFileType.checkFileType('mp4') as any,
OriginalFileName: 'shared'
}
)
newAttachment.needUpload()
this.PublicationFromMvService.form.Files.push(newAttachment)
fileObject ={};
const deleteSecretFile = async () => {
await Filesystem.deleteFile({
@@ -1014,7 +917,7 @@ console.log(stringGerada);
}
console.log('shared base', content.data)
this.seletedContent.push(fileObject)
this.PublicationFromMvService.form.Files.push(fileObject)
} catch (error) {
console.log('error shared filesystem', error)
}
@@ -21,6 +21,8 @@ import { StopvideoService } from "src/app/services/stopvideo.service"
import { Result } from 'neverthrow';
import { App } from '@capacitor/app';
import { ActiveTabService } from 'src/app/services/active-tab.service';
import { PublicationHolderService } from 'src/app/services/publication/publication-holder.service'
@Component({
selector: 'app-view-publications',
templateUrl: './view-publications.page.html',
@@ -71,7 +73,8 @@ export class ViewPublicationsPage implements OnInit {
private publicationVideoManagerService: PublicationVideoManagerService,
public stopvideoService: StopvideoService,
private platform: Platform,
public activeTabService: ActiveTabService) {
public activeTabService: ActiveTabService,
public PublicationHolderService: PublicationHolderService) {
/* this.publicationVideoManagerService.setContainer(this.VideoManager.nativeElement) */
@@ -311,20 +314,26 @@ export class ViewPublicationsPage implements OnInit {
}
async AddPublication(publicationType: any, folderId: any) {
const modal = await this.modalController.create({
component: NewPublicationPage,
componentProps: {
publicationType: publicationType,
folderId: this.folderId,
},
cssClass: 'new-publication modal modal-desktop',
backdropDismiss: false
});
modal.onDidDismiss().then(() => {
this.doRefresh(event);
});
await modal.present();
// if(this.PublicationHolderService.PublicationFormMV.length == 0) {
const modal = await this.modalController.create({
component: NewPublicationPage,
componentProps: {
publicationType: publicationType,
folderId: this.folderId,
},
cssClass: 'new-publication modal modal-desktop',
backdropDismiss: false
});
modal.onDidDismiss().then(() => {
this.doRefresh(event);
});
await modal.present();
//} else {
// this.toastService._successMessage('já existe uma publicação a ser processado');
//}
}
goToPublicationDetail(DocumentId: string, ProcessId: string) {