This commit is contained in:
Peter Maquiran
2023-08-11 16:38:23 +01:00
parent 19ddb18148
commit 0671471f59
25 changed files with 400 additions and 195 deletions
@@ -28,7 +28,10 @@
</div>
</div>
<div class="picture d-flex pb-5 hide-desktop" *ngIf="publication.FileBase64 && capturedImage ==''">
{{ capturedImage }}
{{ publication | json }}
<div class="picture d-flex pb-5 hide-desktop" *ngIf="publication.FileBase64 != 'data:image/jpg;base64,null' ">
<div class="post-img">
<img src="{{publication.FileBase64}}" alt="image" >
</div>
@@ -41,9 +44,9 @@
</div>
</div>
<div *ngIf="capturedImage != ''" class="ion-item-container-no-border">
<div *ngIf="capturedImage && capturedImageTitle" class="ion-item-container-no-border">
<ion-label class="attached-title">Fotografia Anexada</ion-label>
<ion-item lines="none">
<ion-item lines="none" *ngIf="capturedImage">
<ion-thumbnail slot="start">
<ion-img [(ngModel)]="capturedImage" name="image" ngDefaultControl [src]="capturedImage"></ion-img>
</ion-thumbnail>
@@ -8,7 +8,8 @@ import { ThemeService } from 'src/app/services/theme.service'
import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page';
import { PermissionService } from 'src/app/services/permission.service';
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
import { PublicationFolderService } from 'src/app/store/publication-folder.service';
import { AskModalPage } from 'src/app/modals/ask-modal/ask-modal.page'
@Component({
selector: 'app-publication-detail-shared',
templateUrl: './publication-detail.page.html',
@@ -31,7 +32,9 @@ export class PublicationDetailPage implements OnInit {
private toastService: ToastService,
public ThemeService: ThemeService,
public p:PermissionService,
private httpErrorHandle: HttpErrorHandle
private httpErrorHandle: HttpErrorHandle,
public publicationFolderService: PublicationFolderService,
public AskModalPage: AskModalPage
) {
/* this.folderId = this.navParams.get('folderIdId'); */
@@ -62,9 +65,9 @@ export class PublicationDetailPage implements OnInit {
}, 2000);
}
getPublicationDetail(){
getPublicationDetail() {
this.showLoader = true;
this.publications.GetPublicationById(this.publicationId).subscribe(res=>{
this.publications.GetPublicationById(this.publicationId).subscribe(res => {
this.publication = {
DateIndex: res.DateIndex,
@@ -78,10 +81,12 @@ export class PublicationDetailPage implements OnInit {
FileExtension: 'jpeg',
}
this.showLoader = false;
},(error) => {
if(window['_deletePublication']) {
window['_deletePublication'](this.folderId, this.publicationId)
}, (error) => {
if(error.status == 404) {
this.publicationFolderService.deletePost(this.folderId, this.publicationId)
}
this.goBack();
this.httpErrorHandle.httpStatusHandle(error)
});
@@ -99,9 +104,7 @@ export class PublicationDetailPage implements OnInit {
await this.publications.DeletePublication(this.folderId, this.publicationId).toPromise();
this.httpErrorHandle.httpsSucessMessagge('Eliminar publicação')
if(window['_deletePublication']) {
window['_deletePublication'](this.folderId, this.publicationId)
}
this.publicationFolderService.deletePost(this.folderId, this.publicationId)
if(window['app-view-publications-page-doRefresh']) {
window['app-view-publications-page-doRefresh']()
@@ -109,6 +112,11 @@ export class PublicationDetailPage implements OnInit {
this.goBackToViewPublications.emit();
} catch (error) {
if(error.status == 404) {
this.publicationFolderService.deletePost(this.folderId, this.publicationId)
}
this.httpErrorHandle.httpStatusHandle(error)
} finally {
laoder.remove()
@@ -1,18 +1,18 @@
<ion-header class="ion-no-border">
<div class="main-header">
<div class="title-content">
<div *ngIf="publicationItem[folderId]" class="div-title width-100 flex-grow-1">
<div *ngIf="publicationFolderService.FolderDetails[folderId]" class="div-title width-100 flex-grow-1">
<div class="title">
<ion-label>{{publicationItem[folderId].Description}}</ion-label>
<ion-label>{{publicationFolderService.FolderDetails[folderId].Description}}</ion-label>
</div>
<div class="actions-icon">
<!-- <ion-icon (click)="AddPublication('1',item.ProcessId)" slot="end" src='assets/images/icons-add-photo.svg'></ion-icon> -->
<button *ngIf="p.userPermission([p.permissionList.Actions.editPost])" class="btn-no-color" (click)="openEditPublication(publicationItem[folderId].ProcessId)">
<button *ngIf="p.userPermission([p.permissionList.Actions.editPost])" class="btn-no-color" (click)="openEditPublication(publicationFolderService.FolderDetails[folderId].ProcessId)">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="edit" slot="end" src="assets/images/icons-edit.svg" ></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="edit" slot="end" src="assets/images/theme/gov/icons-edit.svg" ></ion-icon>
</button>
<button *ngIf="p.userPermission([p.permissionList.Actions.deletePost])" class="btn-no-color" (click)="deletePublication(publicationItem[folderId].ProcessId)">
<button *ngIf="p.userPermission([p.permissionList.Actions.deletePost])" class="btn-no-color" (click)="deletePublication(publicationFolderService.FolderDetails[folderId].ProcessId)">
<ion-icon class="delete" src='assets/images/theme/gov/icons-delete.svg'></ion-icon>
</button>
<button class="btn-no-color cursor-pointer" (click)="doRefresh($event)">
@@ -20,9 +20,9 @@
</button >
</div>
</div>
<div class="div-body width-100" *ngIf="publicationItem[folderId]?.DateBegin != null">
<p class="item-content-detail">{{publicationItem[folderId].Detail}}</p>
<p class="item-content-date">{{ publicationItem[folderId].DateBegin | date: 'dd-MM-yy HH:mm'}}</p>
<div class="div-body width-100" *ngIf="publicationFolderService.FolderDetails[folderId]?.DateBegin != null">
<p class="item-content-detail">{{publicationFolderService.FolderDetails[folderId].Detail}}</p>
<p class="item-content-date">{{ publicationFolderService.FolderDetails[folderId].DateBegin | date: 'dd-MM-yy HH:mm'}}</p>
</div>
</div>
@@ -35,8 +35,8 @@
<ion-refresher-content>
</ion-refresher-content>
</ion-refresher>
<div class="main-container px-20" *ngIf="publicationItem[folderId]">
<ion-card *ngFor="let publication of publicationList[folderId] let i = index"
<div class="main-container px-20" *ngIf="publicationFolderService.FolderDetails[folderId]">
<ion-card *ngFor="let publication of publicationFolderService.publicationList[folderId] let i = index"
(click)="viewPublicationDetail(publication.DocumentId)">
<ion-card-content>
<div class="post-img">
@@ -57,7 +57,7 @@
</ion-card>
<!-- <ion-list>
<div class="post-item d-md-block mb-10 cursor-pointer"
*ngFor="let publication of publicationList"
*ngFor="let publication of publicationFolderService.publicationList"
(click)="viewPublicationDetail(publication.DocumentId)">
<div *ngIf="publication.FileBase64.length > 30" class="mb-10 post-img width-md-100">
<img src="{{publication.FileBase64}}" alt="image">
@@ -78,14 +78,14 @@
</div>
</div>
<div class="center height-100" *ngIf="!publicationList">
<div class="center height-100" *ngIf="!publicationFolderService.publicationList">
<p>{{error}}</p>
</div>
</ion-list> -->
</div>
<!-- fab placed to the bottom end -->
<ion-fab *ngIf="p.userPermission([p.permissionList.Actions.create]) && publicationItem[folderId]" vertical="bottom" horizontal="end">
<ion-fab-button title="Nova Publicação" (click)="AddPublication('2',publicationItem[folderId].ProcessId)">
<ion-fab *ngIf="p.userPermission([p.permissionList.Actions.create]) && publicationFolderService.FolderDetails[folderId]" vertical="bottom" horizontal="end">
<ion-fab-button title="Nova Publicação" (click)="AddPublication('2',publicationFolderService.FolderDetails[folderId].ProcessId)">
<ion-icon name="add"></ion-icon>
</ion-fab-button>
</ion-fab>
@@ -12,7 +12,8 @@ import { EditActionPage } from 'src/app/pages/publications/edit-action/edit-acti
import { Storage } from '@ionic/storage';
import { PermissionService } from 'src/app/services/permission.service';
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
// import { PublicationDetailsModel } from 'src/app/models/beast-orm';
import { PublicationFolderService } from 'src/app/store/publication-folder.service';
import { AskModalPage } from 'src/app/modals/ask-modal/ask-modal.page';
@Component({
selector: 'app-view-publications',
@@ -23,8 +24,6 @@ export class ViewPublicationsPage implements OnInit {
showLoader: boolean;
loading: any;
publicationList: {[key: string]: Publication[] } = {};
publicationItem: {[key: string]: PublicationFolder } = {};
error: any;
oldpublicationIds = []
@@ -46,10 +45,11 @@ export class ViewPublicationsPage implements OnInit {
private toastService: ToastService,
private storage: Storage,
public p:PermissionService,
private httpErrorHandle: HttpErrorHandle
private httpErrorHandle: HttpErrorHandle,
public publicationFolderService: PublicationFolderService
) {
this.createPublicationList()
}
}
ngOnInit() {
if(typeof(this.folderId) == 'object') {
@@ -64,6 +64,7 @@ export class ViewPublicationsPage implements OnInit {
}
this.getFromDB();
}
ngOnChanges(changes: any): void {
@@ -72,8 +73,8 @@ export class ViewPublicationsPage implements OnInit {
this.folderId = this.folderId['ProcessId']
}
if(!this.publicationList[this.folderId]) {
this.publicationItem[this.folderId] = new PublicationFolder();
if(!this.publicationFolderService.publicationList[this.folderId]) {
this.publicationFolderService.FolderDetails[this.folderId] = new PublicationFolder();
}
this.createPublicationList()
@@ -88,11 +89,11 @@ export class ViewPublicationsPage implements OnInit {
createPublicationList(folderId = this.folderId) {
if(!this.publicationList[this.folderId]) {
this.publicationList[this.folderId] = []
if(!this.publicationFolderService.publicationList[this.folderId]) {
this.publicationFolderService.publicationList[this.folderId] = []
}
if(!this.publicationItem[this.folderId]) {
this.publicationItem[this.folderId] = new PublicationFolder();
if(!this.publicationFolderService.FolderDetails[this.folderId]) {
this.publicationFolderService.FolderDetails[this.folderId] = new PublicationFolder();
}
}
@@ -112,7 +113,7 @@ export class ViewPublicationsPage implements OnInit {
this.publications.GetPresidentialAction(folderId).subscribe(res=>{
// PublicationDetailsModel.create(res)
this.publicationItem[folderId] = res
this.publicationFolderService.FolderDetails[folderId] = res
this.storage.set(folderId+"name", res)
}, (error) => {
this.showLoader = false;
@@ -127,7 +128,6 @@ export class ViewPublicationsPage implements OnInit {
try {
const publicationIds = await this.publications.GetPublicationsList(folderId).toPromise();
this.publicationList[folderId] = []
this.createPublicationList(folderId)
let loadLater = []
@@ -147,7 +147,7 @@ export class ViewPublicationsPage implements OnInit {
this.showLoader = false;
this.storage.set(folderId, this.publicationList[folderId]);
this.storage.set(folderId, this.publicationFolderService.publicationList[folderId]);
this.oldpublicationIds = publicationIds
} catch(error) {
@@ -158,20 +158,20 @@ export class ViewPublicationsPage implements OnInit {
_deletePublication = (folderId, publicationId) => {
this.publicationList[folderId] = this.publicationList[folderId].filter( e => e.DocumentId != publicationId)
this.publicationFolderService.publicationList[folderId] = this.publicationFolderService.publicationList[folderId].filter( e => e.DocumentId != publicationId)
console.log('this.publicationList[folderId]', this.publicationList[folderId].length)
console.log('this.publicationFolderService.publicationList[folderId]', this.publicationFolderService.publicationList[folderId].length)
}
publicationIsPresent(publicationId, folderId) {
return this.publicationList[folderId].find( e => e.DocumentId == publicationId )
return this.publicationFolderService.publicationList[folderId].find( e => e.DocumentId == publicationId )
}
publicationFind(publicationId, folderId) {
return this.publicationList[folderId].find( e => e.DocumentId == publicationId )
return this.publicationFolderService.publicationList[folderId].find( e => e.DocumentId == publicationId )
}
publicationFindIndex(publicationId, folderId) {
return this.publicationList[folderId].findIndex( e => e.DocumentId == publicationId )
return this.publicationFolderService.publicationList[folderId].findIndex( e => e.DocumentId == publicationId )
}
async loadPublication(publicationId, folderId) {
@@ -181,52 +181,20 @@ export class ViewPublicationsPage implements OnInit {
const findIndex = this.publicationFindIndex(publicationId, folderId)
const found = this.publicationIsPresent(publicationId, folderId)
if(!found) {
this.publicationList[folderId].push(publicationDetails)
this.publicationFolderService.publicationList[folderId].push(publicationDetails)
// PublicationModel.create(publicationDetails)
} else {
this.publicationList[folderId][findIndex] = publicationDetails
this.publicationFolderService.publicationList[folderId][findIndex] = publicationDetails
}
}
getFromDB() {
const folderId = this.folderId
this.storage.get(folderId).then((viewPublications) => {
this.publicationList[folderId] = viewPublications
})
this.storage.get(folderId+"name").then((viewPublications) => {
this.publicationItem[folderId] = viewPublications
})
this.publicationFolderService.getFromDB(folderId)
}
// getPublications() {
// this.showLoader = true;
// const folderId = this.folderId
// this.publicationList = new Array();
// this.publications.GetPublications(folderId).subscribe(async res=> {
// res.forEach(element => {
// let item: Publication = this.publicationPipe.itemList(element)
// this.publicationList.push(item);
// });
// this.showLoader = false;
// await this.storage.remove(folderId);
// await this.storage.set(folderId, this.publicationList);
// //this.getFromDB();
// },
// (error)=>{
// if(error.status == '404') {
// this.error = 'Sem publicações disponíveis!';
// this.publicationList= [];
// }
// this.showLoader = false;
// })
// }
async AddPublication(publicationType:any, folderId:any) {
@@ -278,41 +246,40 @@ export class ViewPublicationsPage implements OnInit {
}
async deletePublication(folderId?:any) {
const loader = this.toastService.loading();
try {
await this.publications.DeletePresidentialAction(folderId).toPromise();
this.httpErrorHandle.httpsSucessMessagge('Eliminar Acção')
} catch (error) {
this.httpErrorHandle.httpStatusHandle(error)
}
finally {
loader.remove()
}
this.close();
this.getActions.emit();
const modal = await this.modalController.create({
component: AskModalPage,
cssClass: 'discart-expedient-modal',
backdropDismiss: true,
componentProps: {
title: 'Deseja arquivar este acção?',
description: 'Nota: Ao Efetuar esta operação, o tratamento deste acção não poderá ser realizado a partir da lista de acções'
},
});
modal.onDidDismiss().then((res) => {
if(res.data == 'Yes') {
const loader = this.toastService.loading();
try {
this.publications.DeletePresidentialAction(folderId).toPromise();
this.httpErrorHandle.httpsSucessMessagge('Eliminar Acção')
} catch (error) {
this.httpErrorHandle.httpStatusHandle(error)
}
finally {
loader.remove()
}
this.close();
this.getActions.emit();
}
// Do nothing
});
await modal.present();
}
async viewPublicationDetail(publicationId:string) {
// if( window.innerWidth <= 1024) {
// const modal = await this.modalController.create({
// component: PublicationDetailPage,
// componentProps:{
// publicationId: publicationId,
// },
// cssClass: 'publication-detail modal modal-desktop',
// //backdropDismiss: false
// });
// await modal.present();
// modal.onDidDismiss().then(()=>{
// this.doRefresh(event);
// });
// } else {
// // open publication details
// this.openPublicationDetails.emit(publicationId);
// }
this.openPublicationDetails.emit(publicationId);
}