This commit is contained in:
Eudes Inácio
2024-01-29 08:25:27 +01:00
parent 300b488174
commit ba464a4f73
8 changed files with 129 additions and 13 deletions
+1 -1
View File
@@ -62,7 +62,7 @@
"@capacitor/push-notifications": "^5.1.0", "@capacitor/push-notifications": "^5.1.0",
"@capacitor/share": "^4.1.0", "@capacitor/share": "^4.1.0",
"@capacitor/storage": "^1.2.5", "@capacitor/storage": "^1.2.5",
"@capawesome/capacitor-file-picker": "^5.1.1", "@capawesome/capacitor-file-picker": "^5.3.0",
"@fortawesome/angular-fontawesome": "^0.9.0", "@fortawesome/angular-fontawesome": "^0.9.0",
"@fortawesome/fontawesome-free": "^5.15.3", "@fortawesome/fontawesome-free": "^5.15.3",
"@fortawesome/fontawesome-svg-core": "^1.2.35", "@fortawesome/fontawesome-svg-core": "^1.2.35",
@@ -479,6 +479,8 @@ export class DiplomaAssinarPage implements OnInit {
try { try {
const resd = await this.processes.GetDraftByID(strg).toPromise(); const resd = await this.processes.GetDraftByID(strg).toPromise();
console.log('DRAFT FFF',resd)
let object = { let object = {
"ApplicationId": "", "ApplicationId": "",
"Assunto": resd.data.description, "Assunto": resd.data.description,
@@ -537,6 +537,7 @@ export class DiplomaPage implements OnInit {
console.log('List of ids', strg) console.log('List of ids', strg)
const resd = await this.processes.GetDraftByID(strg).toPromise() const resd = await this.processes.GetDraftByID(strg).toPromise()
console.log('DRAFT FFF',resd)
let object = { let object = {
"ApplicationId": "", "ApplicationId": "",
"Assunto": resd.data.description, "Assunto": resd.data.description,
@@ -195,7 +195,8 @@ export class NewPublicationPage implements OnInit {
this.photoOrVideo = false; this.photoOrVideo = false;
let fileObject = { let fileObject = {
FileBase64: this.removeTextBeforeSlash(picture, ','), FileBase64: this.removeTextBeforeSlash(picture, ','),
FileExtension: capturedImage.format FileExtension: capturedImage.format,
OriginalFileName: 'image'
} }
this.seletedContent.push(fileObject) this.seletedContent.push(fileObject)
@@ -253,7 +254,7 @@ export class NewPublicationPage implements OnInit {
let fileObject = { let fileObject = {
FileBase64: content.data, FileBase64: content.data,
FileExtension: 'mp4', FileExtension: 'mp4',
OriginalFileName: 'record' OriginalFileName: 'video'
} }
this.seletedContent.push(fileObject) this.seletedContent.push(fileObject)
}) })
@@ -293,7 +294,8 @@ export class NewPublicationPage implements OnInit {
this.filecontent = true; this.filecontent = true;
let fileObject = { let fileObject = {
FileBase64: content.data, FileBase64: content.data,
FileExtension: this.removeTextBeforeSlash(element.mimeType, '/') FileExtension: this.removeTextBeforeSlash(element.mimeType, '/'),
OriginalFileName: 'video'
} }
this.seletedContent.push(fileObject) this.seletedContent.push(fileObject)
}) })
@@ -485,7 +487,7 @@ export class NewPublicationPage implements OnInit {
Title: this.pub.Title, Title: this.pub.Title,
Message: this.pub.Message, Message: this.pub.Message,
DatePublication: date, DatePublication: date,
OriginalFileName: this.capturedImageTitle, OriginalFileName: this.capturedImageTitle || 'foto',
Files: this.seletedContent, Files: this.seletedContent,
/* FileExtension: 'jpeg', */ /* FileExtension: 'jpeg', */
} }
@@ -513,6 +515,7 @@ export class NewPublicationPage implements OnInit {
this.close(); this.close();
this.httpErrorHandle.httpsSucessMessagge('Criar publicação') this.httpErrorHandle.httpsSucessMessagge('Criar publicação')
window["sharedContent"] = null; window["sharedContent"] = null;
window["endSharedContent"] = null;
this.close(); this.close();
} catch (error) { } catch (error) {
@@ -81,7 +81,7 @@ export class PublicationsPage implements OnInit {
) { ) {
this.months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"]; 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"]; this.days = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"];
this.intent = window["sharedContent"]
} }
+13
View File
@@ -218,6 +218,8 @@ GetIdsPublicationNext(id:any){
//my last tries //my last tries
CreatePublication(folderId:any,body:any){ CreatePublication(folderId:any,body:any){
console.log('body publi', body) console.log('body publi', body)
const geturl = environment.apiURL + 'presidentialActions/'+folderId+'/v2/posts'; const geturl = environment.apiURL + 'presidentialActions/'+folderId+'/v2/posts';
let params = new HttpParams(); let params = new HttpParams();
@@ -226,6 +228,17 @@ GetIdsPublicationNext(id:any){
headers: this.headers, headers: this.headers,
/* params: params */ /* params: params */
}; };
/* this.http.post<any>(`${geturl}`, body, options).subscribe(
(resposta) => {
console.log('Resposta da solicitação POST:', resposta);
},
(erro) => {
console.error('Erro na solicitação POST:', erro);
});
*/
return this.http.post<any>(`${geturl}`, body, options) return this.http.post<any>(`${geturl}`, body, options)
} }
@@ -70,11 +70,16 @@
></mat-progress-bar> ></mat-progress-bar>
</div> --> </div> -->
<video *ngIf="checkFileType.checkFileType(seleted.FileExtension) == 'video'" width="70" height="70" <video *ngIf="checkFileType.checkFileType(seleted.FileExtension) == 'video' && checkDesktop() == true" width="70" height="70"
preload="metadata" webkit-playsinline="webkit-playsinline"> preload="metadata" webkit-playsinline="webkit-playsinline">
<source type="video/mp4" [src]="seleted.FileBase64"> <source type="video/mp4" [src]="seleted.FileBase64">
</video> </video>
<video *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.FileBase64">
</video>
</div> </div>
@@ -102,7 +107,7 @@
<div style="display: flex;"> <div *ngIf="checkTableDivice()" style="display: flex;">
<div (click)="chossePhotoOrVideo()"> <div (click)="chossePhotoOrVideo()">
<div class="attach-icon"> <div class="attach-icon">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " <ion-icon *ngIf="ThemeService.currentTheme == 'default' "
@@ -122,7 +127,21 @@
<button id="container-multiselect" class="multiselect-button" (click)="startVideoRecording()">Video</button> <button id="container-multiselect" class="multiselect-button" (click)="startVideoRecording()">Video</button>
</div> </div>
<div >
<div *ngIf="checkTableDivice()" >
<ion-label (click)="loadVideoTablet()" 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 *ngIf="checkDesktop()" >
<ion-label (click)="loadVideo()" class="cursor-pointer"> <ion-label (click)="loadVideo()" class="cursor-pointer">
<div class="attach-icon"> <div class="attach-icon">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-add-photos.svg"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-add-photos.svg"></ion-icon>
@@ -19,6 +19,7 @@ import { CMAPIService } from "src/app/shared/repository/CMAPI/cmapi.service";
import { CaptureError, CaptureImageOptions, MediaCapture, MediaFile } from '@awesome-cordova-plugins/media-capture/ngx'; import { CaptureError, CaptureImageOptions, MediaCapture, MediaFile } from '@awesome-cordova-plugins/media-capture/ngx';
import { Filesystem, Directory, Encoding, FilesystemDirectory } from '@capacitor/filesystem'; import { Filesystem, Directory, Encoding, FilesystemDirectory } from '@capacitor/filesystem';
import { Platform } from '@ionic/angular'; import { Platform } from '@ionic/angular';
import { Capacitor } from '@capacitor/core';
enum ActionType { enum ActionType {
newRapid = "1", newRapid = "1",
@@ -184,7 +185,8 @@ export class NewPublicationPage implements OnInit {
this.photoOrVideo = false; this.photoOrVideo = false;
let fileObject = { let fileObject = {
FileBase64: picture, FileBase64: picture,
FileExtension: this.removeTextBeforeSlash('jpeg', '/') FileExtension: this.removeTextBeforeSlash('jpeg', '/'),
OriginalFileName: 'imagem'
} }
const FileExtension = this.removeTextBeforeSlash('jpeg', '/') const FileExtension = this.removeTextBeforeSlash('jpeg', '/')
@@ -228,7 +230,8 @@ export class NewPublicationPage implements OnInit {
).then((picture) => { ).then((picture) => {
let fileObject = { let fileObject = {
FileBase64: picture, FileBase64: picture,
FileExtension: this.removeTextBeforeSlash('jpeg', '/') FileExtension: this.removeTextBeforeSlash('jpeg', '/'),
OriginalFileName: 'image'
} }
const FileExtension = this.removeTextBeforeSlash('jpeg', '/') const FileExtension = this.removeTextBeforeSlash('jpeg', '/')
@@ -260,9 +263,22 @@ export class NewPublicationPage implements OnInit {
result.files.forEach(async blobFile => { result.files.forEach(async blobFile => {
console.log(blobFile) console.log(blobFile)
if (this.checkFileType.checkFileType(blobFile.mimeType) == 'image' || this.checkFileType.checkFileType(blobFile.mimeType) == 'video') { if (this.checkFileType.checkFileType(blobFile.mimeType) == 'image' || this.checkFileType.checkFileType(blobFile.mimeType) == 'video') {
console.log() /* console.log('converte new way',this.getBase64(blobFile)) */
/* const blob = await fetch(
Capacitor.convertFileSrc(blobFile.path)
).then(r => r.blob()); */
/* console.log(await blob.arrayBuffer());
console.log("base64 :data:video/mp4;base64,",this.arrayBufferToBase64(await blob.arrayBuffer())) */
this.convertBlobToBase64(blobFile.blob).then((value) => { this.convertBlobToBase64(blobFile.blob).then((value) => {
console.log(value)
this.filesSizeSum = this.filesSizeSum + blobFile.size this.filesSizeSum = this.filesSizeSum + blobFile.size
if (this.fileSizeToMB(this.filesSizeSum) <= 20) { if (this.fileSizeToMB(this.filesSizeSum) <= 20) {
@@ -290,6 +306,8 @@ export class NewPublicationPage implements OnInit {
this.httpErroHandle.validationMessagge('filessize'); this.httpErroHandle.validationMessagge('filessize');
} }
}).catch((erro) => {
console.log(erro)
}) })
} else { } else {
this.httpErroHandle.validationMessagge('filetype'); this.httpErroHandle.validationMessagge('filetype');
@@ -297,6 +315,9 @@ export class NewPublicationPage implements OnInit {
}); });
/* this.capturedImage = 'data:image/jpeg;base64,' +capturedImage.base64String; /* this.capturedImage = 'data:image/jpeg;base64,' +capturedImage.base64String;
this.capturedImageTitle = 'foto'; this.capturedImageTitle = 'foto';
@@ -320,6 +341,49 @@ export class NewPublicationPage implements OnInit {
}; };
async loadVideoTablet() {
const result = await FilePicker.pickMedia
({
multiple: true,
});
console.log(result.files)
result.files.forEach(element => {
this.filesSizeSum = this.filesSizeSum + element.size
if (this.fileSizeToMB(this.filesSizeSum) <= 20) {
if (this.checkFileType.checkFileType(element.mimeType) == 'image' || this.checkFileType.checkFileType(element.mimeType) == 'video') {
let resultUrl = decodeURIComponent(element.path);
try {
Filesystem.readFile({ path: resultUrl })
.then(async (content) => {
console.log(result)
console.log(content)
this.filecontent = true;
let fileObject = new PublicationAttachmentEntity ({
base64: content.data,
extension: this.removeTextBeforeSlash(element.mimeType, '/'),
OriginalFileName: 'video',
FileType: this.checkFileType.checkFileType( this.removeTextBeforeSlash(element.mimeType, '/'))
})
this.seletedContent.push(fileObject)
})
.catch((err) => console.error(err));
} catch (error) {
console.log('upload video error: ', error)
}
}
} else {
if (this.seletedContent.length === 0)
this.filesSizeSum = 0
this.httpErrorHandle.validationMessagge('filessize')
}
});
};
runValidation() { runValidation() {
this.validateFrom = true this.validateFrom = true
@@ -551,9 +615,18 @@ export class NewPublicationPage implements OnInit {
resolve(reader.result) resolve(reader.result)
} }
reader.readAsDataURL(blob) reader.readAsDataURL(blob)
}) },)
} }
getBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
}
removeTextBeforeSlash(inputString, mark) { removeTextBeforeSlash(inputString, mark) {
if (inputString.includes(mark)) { if (inputString.includes(mark)) {
const parts = inputString.split(mark); const parts = inputString.split(mark);
@@ -957,6 +1030,11 @@ export class NewPublicationPage implements OnInit {
if (!this.platform.is('desktop')) if (!this.platform.is('desktop'))
return true; return true;
} }
checkDesktop() {
if (this.platform.is('desktop'))
return true;
}
} }
// class UploadFileUseCase { // class UploadFileUseCase {