Add publication to local storage

This commit is contained in:
Peter Maquiran
2021-07-21 20:26:41 +01:00
parent 6460e1ce1a
commit f604c72575
7 changed files with 65 additions and 41 deletions
@@ -136,6 +136,7 @@ export class PublicationsPage implements OnInit {
DateEnd: this.theEndDate.getDate() +" de " + ( this.months[this.theEndDate.getMonth()])+" de " +this.theEndDate.getFullYear(),
ActionType: data.ActionType,
}
if(data.ActionType == "Evento") {
this.publicationsEventFolderList.push(folder);
}
@@ -209,6 +210,8 @@ export class PublicationsPage implements OnInit {
}
goToPublicationsList(folderId: string){
this.folderId = folderId
if( window.innerWidth <= 800){
this.router.navigate(['/home/publications',folderId]);
} else {
@@ -220,6 +223,7 @@ export class PublicationsPage implements OnInit {
}
async viewPublications(folderId: string) {
this.folderId = folderId
const enterAnimation = (baseEl: any) => {
const backdropAnimation = this.animationController.create()
@@ -33,7 +33,7 @@
<ion-list>
<!-- [routerLink]="['/home/publications/view-publications/publication-detail', publication.publicationId]" -->
<div class="post-item"
*ngFor="let publication of publicationList"
*ngFor="let publication of publicationListStorage.documents[folderId]"
(click)="goToPublicationDetail(publication.DocumentId)"
>
<div *ngIf="publication.FileBase64.length > 30" class="post-img">
@@ -6,6 +6,8 @@ import { PublicationFolder } from 'src/app/models/publicationfolder';
import { LoadingService } from 'src/app/services/loading.service';
import { PublicationsService } from 'src/app/services/publications.service';
import { PresidentialActionsStore } from 'src/app/store/presidential-actions-store.service';
import { PublicationEventFolderStorage } from 'src/app/store/publication-event-folder.service';
import { PublicationListStorage } from 'src/app/store/publication-list.service';
import { PublicationTravelFolderStore } from 'src/app/store/publication-travel-folder.service';
import { NewPublicationPage } from '../new-publication/new-publication.page';
import { PublicationDetailPage } from './publication-detail/publication-detail.page';
@@ -24,8 +26,10 @@ export class ViewPublicationsPage implements OnInit {
folderId:string;
error: any;
presidentialActionsStore = PresidentialActionsStore
publicationTravelFolderStore = PublicationTravelFolderStore
publicationListStorage = PublicationListStorage
//
publicationEventFolderStorage = PublicationEventFolderStorage
publicationTravelFolderService = PublicationTravelFolderStore
constructor( private loadingController: LoadingService,
private modalController: ModalController,
@@ -71,7 +75,6 @@ export class ViewPublicationsPage implements OnInit {
this.getPublications();
setTimeout(() => {
this.getPublications();
this.getPublicationDetail();
event.target.complete();
}, 3000);
@@ -89,15 +92,13 @@ export class ViewPublicationsPage implements OnInit {
}
getPublicationDetail() {
this.publications.GetPresidentialAction(this.folderId).subscribe(res=>{
console.log(res);
this.item = res;
});
let allActions = this.publicationEventFolderStorage.list.concat(this.publicationTravelFolderService.list)
this.item = allActions.find((e)=> e.ProcessId == this.folderId)
}
getPublications() {
this.showLoader = true;
const folderId = this.folderId
this.publications.GetPublications(this.folderId).subscribe(res=>{
console.log(res);
@@ -126,7 +127,8 @@ export class ViewPublicationsPage implements OnInit {
data.push(item)
});
this.presidentialActionsStore.reset(data)
this.publicationListStorage.add(folderId, this.publicationList)
this.showLoader = false;
},
-1
View File
@@ -87,7 +87,6 @@ export class PublicationsService {
params: params
};
return this.http.get<any>(`${geturl}`, options)
.pipe(catchError(this.handleError));
}
GetPublicationById( publicationId:any){
@@ -34,7 +34,7 @@
<ion-list>
<!-- [routerLink]="['/home/publications/view-publications/publication-detail', publication.publicationId]" -->
<div class="post-item d-md-block mb-10"
*ngFor="let publication of publicationList"
*ngFor="let publication of publicationListStorage.documents[folderId]"
(click)="viewPublicationDetail(publication.DocumentId)">
<div *ngIf="publication.FileBase64.length > 30" class="mb-10 post-img width-md-100">
<img src="{{publication.FileBase64}}" alt="image">
@@ -6,7 +6,9 @@ import { LoadingService } from 'src/app/services/loading.service';
import { PublicationsService } from 'src/app/services/publications.service';
import { PublicationDetailPage } from 'src/app/pages/publications/publication-detail/publication-detail.page';
import { NewPublicationPage } from 'src/app/pages/publications/new-publication/new-publication.page';
import { PublicationListStorage } from 'src/app/store/publication-list.service'
import { PublicationEventFolderStorage } from 'src/app/store/publication-event-folder.service';
import { PublicationTravelFolderStore } from 'src/app/store/publication-travel-folder.service';
@Component({
selector: 'app-view-publications',
templateUrl: './view-publications.page.html',
@@ -28,6 +30,13 @@ export class ViewPublicationsPage implements OnInit {
@Output() closeDesktopComponent = new EventEmitter<any>();
@Output() goBacktoPublicationDetails = new EventEmitter<any>();
publicationListStorage = PublicationListStorage
//
publicationEventFolderStorage = PublicationEventFolderStorage
publicationTravelFolderService = PublicationTravelFolderStore
constructor(
private loadingController: LoadingService,
private modalController: ModalController,
@@ -48,43 +57,47 @@ export class ViewPublicationsPage implements OnInit {
}
ngOnChanges(changes: any): void {
console.log(this.folderId)
if(typeof(this.folderId) == 'object') {
this.folderId = this.folderId['ProcessId']
}
setTimeout(()=>{
this.getPublications();
this.getPublicationDetail();
}, 100)
}
doRefresh(event) {
this.getPublications();
setTimeout(() => {
this.getPublications();
this.getPublicationDetail();
event.target.complete();
}, 3000);
}
close(){
close() {
this.closeDesktopComponent.emit();
}
getPublicationDetail() {
this.publications.GetPresidentialAction(this.folderId).subscribe(res=>{
console.log(res);
this.item = res;
});
let allActions = this.publicationEventFolderStorage.list.concat(this.publicationTravelFolderService.list)
this.item = allActions.find((e)=> e.ProcessId == this.folderId)
}
getPublications() {
this.showLoader = true;
this.publications.GetPublications(this.folderId).subscribe(res=>{
const folderId = this.folderId
this.publications.GetPublications(folderId).subscribe(res=> {
this.publicationList = new Array();
console.log(res);
res.forEach(element => {
let itemImage = {
title: 'Title',
@@ -105,13 +118,15 @@ export class ViewPublicationsPage implements OnInit {
}
this.publicationList.push(item);
});
console.log(this.publicationList);
this.publicationListStorage.add(folderId, this.publicationList)
this.showLoader = false;
},
(error)=>{
if(error.status == '404'){
if(error.status == '404') {
this.error = 'Sem publicações disponíveis!';
this.publicationList=null;
// this.publicationList = null;
}
this.showLoader = false;
+16 -12
View File
@@ -9,34 +9,38 @@ import { SHA1 } from 'crypto-js'
export class PublicationListService {
// main data
private _list: Publication[] = []
private _document: Publication[] = []
// local storage keyName
private keyName: string;
constructor() {
this.keyName = (SHA1(this.constructor.name+ ' PublicationTravelFolder/local')).toString()
this.keyName = (SHA1(this.constructor.name+ 'view-publication-list/local')).toString()
setTimeout(()=>{
let restore = localstoreService.get(this.keyName, [])
this._list = restore
this._document = restore
}, 10)
}
get list() {
return this._list
get documents() {
return this._document
}
reset(list: Publication[]) {
this._list = list
this.save(this._list)
getDocument(folderId: string) {
return this._document[folderId]
}
private save(list: Publication[]) {
add(folderId, document) {
this._document[folderId] = document
setTimeout(()=> {
localstoreService.set(this.keyName, list)
}, 10)
localstoreService.set(this.keyName, this._document)
}, 100)
}
}
export const PublicationListStorage = new PublicationListService()