From 7e5039b4fac3a44e5a039acd69dcba79b2a984b0 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Mon, 27 Feb 2023 21:24:34 +0100 Subject: [PATCH] fix slow publication --- .../pages/publications/publications.page.ts | 17 +- .../view-publications.page.html | 18 +- .../view-publications.page.ts | 208 ++++++------------ .../view-publications.page.html | 20 +- .../view-publications.page.ts | 88 ++++---- version/git-version.ts | 12 +- 6 files changed, 147 insertions(+), 216 deletions(-) diff --git a/src/app/pages/publications/publications.page.ts b/src/app/pages/publications/publications.page.ts index 74511f859..19405fbf5 100644 --- a/src/app/pages/publications/publications.page.ts +++ b/src/app/pages/publications/publications.page.ts @@ -79,6 +79,7 @@ export class PublicationsPage implements OnInit { ngOnInit() { const pathname = window.location.pathname + this.getActions(); this.router.events.forEach((event) => { if (event instanceof NavigationEnd && event.url == pathname) { @@ -140,10 +141,10 @@ export class PublicationsPage implements OnInit { getActions() { - this.showLoader = false + this.showLoader = true this.publications.GetPublicationFolderList().subscribe(async res => { - this.showLoader = true; + this.showLoader = false; const folders: PublicationFolder[] = this.getPublicationFolderMap(res) this.publicationsEventFolderList = folders.filter((e)=>e.ActionType == 'Evento') @@ -166,13 +167,13 @@ export class PublicationsPage implements OnInit { } - addActionToStorage(events, viagens) { + // addActionToStorage(events, viagens) { - if (this.platform.is('desktop') || this.platform.is('mobileweb')) { - this.storage.set('actionsEvents', events); - this.storage.set('actionsViagens', viagens); - } - } + // if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + // this.storage.set('actionsEvents', events); + // this.storage.set('actionsViagens', viagens); + // } + // } addActionToDB(folder) { diff --git a/src/app/pages/publications/view-publications/view-publications.page.html b/src/app/pages/publications/view-publications/view-publications.page.html index 033a353ec..5e41c9ca6 100644 --- a/src/app/pages/publications/view-publications/view-publications.page.html +++ b/src/app/pages/publications/view-publications/view-publications.page.html @@ -11,12 +11,12 @@ -
- {{item.Description}} -

{{item.Detail}}

- +
+ {{publicationItem[folderId].Description}} +

{{publicationItem[folderId].Detail}}

+
-
+
@@ -27,14 +27,14 @@ - +
- - + diff --git a/src/app/pages/publications/view-publications/view-publications.page.ts b/src/app/pages/publications/view-publications/view-publications.page.ts index 9ea07b9cf..bf8915d50 100644 --- a/src/app/pages/publications/view-publications/view-publications.page.ts +++ b/src/app/pages/publications/view-publications/view-publications.page.ts @@ -14,6 +14,7 @@ import { forkJoin } from 'rxjs'; import { ToastService } from 'src/app/services/toast.service'; import { PermissionService } from 'src/app/services/permission.service'; import { HttpErrorHandle } from 'src/app/services/http-error-handle.service'; +import { Storage } from '@ionic/storage'; @Component({ selector: 'app-view-publications', @@ -24,8 +25,9 @@ export class ViewPublicationsPage implements OnInit { showLoader = true; loading: any; - publicationList: Publication[] = new Array(); - item: PublicationFolder; + publicationList: {[key: string]: Publication[] } = {}; + publicationItem: {[key: string]: PublicationFolder } = {}; + defaultImage = "/assets/icon/icon-no-image.svg"; folderId: string; id: string; @@ -46,9 +48,16 @@ export class ViewPublicationsPage implements OnInit { public ThemeService: ThemeService, private toastService: ToastService, public p: PermissionService, - private httpErroHandle: HttpErrorHandle) { + private httpErroHandle: HttpErrorHandle, + private storage: Storage,) { + + if(!this.publicationList[this.folderId]) { + this.publicationList[this.folderId] = [] + this.publicationItem[this.folderId] = new PublicationFolder(); + } + + this.getFromDB(); - this.item = new PublicationFolder(); this.activatedRoute.paramMap.subscribe(params => { @@ -66,6 +75,14 @@ export class ViewPublicationsPage implements OnInit { if (typeof (this.folderId) == 'object') { this.folderId = this.folderId['ProcessId'] } + + + if(!this.publicationList[this.folderId]) { + this.publicationList[this.folderId] = [] + this.publicationItem[this.folderId] = new PublicationFolder(); + } + + this.getFromDB(); //this.testForkJoin() this.getPublicationDetail(); this.getPublicationsIds(); @@ -87,22 +104,22 @@ export class ViewPublicationsPage implements OnInit { this.folderId = this.folderId['ProcessId'] } - // if (typeof (this.id == 'object') { - // this.id = this.id['ProcessId'] - // } - //this.testForkJoin() - //this.getPublicationDetail(); - // this.getPublications(); + if(!this.publicationList[this.folderId]) { + this.publicationList[this.folderId] = [] + this.publicationItem[this.folderId] = new PublicationFolder(); + } + + this.getFromDB(); } doRefresh = (event) => { //setTimeout(() => { - //this.testForkJoin() - this.getPublicationDetail(); - this.getPublicationsIds(); - try { - event?.target?.complete(); -} catch(error) {} + //this.testForkJoin() + this.getPublicationDetail(); + this.getPublicationsIds(); + try { + event?.target?.complete(); + } catch(error) {} //}, 3000); } @@ -117,147 +134,52 @@ export class ViewPublicationsPage implements OnInit { } getPublicationDetail() { - this.publications.GetPresidentialAction(this.folderId).subscribe(res => { - - this.item = res; - this.sqliteservice.updatePublicationsDetails(this.folderId, JSON.stringify(res)); - }, (error) => { - this.httpErroHandle.httpStatusHandle(error) - }); - } - - // goes to fork - // getPublicationsIds() { - - // this.showLoader = true; - // const folderId = this.folderId - - // this.publications.GetIdsPublicationsImages(this.id).subscribe(res => { - - // - - // this.publicationList = new Array(); - - getPublicationsIds() { - this.showLoader = true; const folderId = this.folderId - this.publications.GetPublicationsImages(this.folderId).subscribe(res => { - - - this.publicationList = new Array(); - - res.forEach(element => { - - this.publications.GetPublicationById(element).subscribe(ress => { - - let item: Publication = this.publicationPipe.itemList(ress) - - this.publicationList.push(item); - }) - - }); - - this.sqliteservice.updateactions(this.folderId, JSON.stringify(this.publicationList)); - - - this.getpublication = this.publicationList; + this.publications.GetPresidentialAction(folderId).subscribe(res=>{ this.showLoader = false; - + this.publicationItem[folderId] = res + this.storage.set(folderId+"name", res) }, (error) => { this.showLoader = false; - if(error.status == 0) { - this.getFromDB() - } else { - this.httpErroHandle.httpStatusHandle(error) - } - + // this.httpErroHandle.httpStatusHandle(error) }); } - getPublications() { - - this.showLoader = true; - const folderId = this.folderId - this.getFromDB(); - this.publications.GetPublications(this.folderId).subscribe(res => { - - - - this.publicationList = new Array(); - - res.forEach(element => { - - let item: Publication = this.publicationPipe.itemList(element) - this.publicationList.push(item); - - - }); - this.sqliteservice.updateactions(this.folderId, JSON.stringify(this.publicationList)); - - this.getpublication = this.publicationList; - - this.showLoader = false; - }, (error) => { - - if (error.status == '0') { - this.getFromDB(); - } - if (error.status == '404') { - this.error = 'Sem publicações disponíveis!'; - this.publicationList = []; - } else { - this.httpErroHandle.httpStatusHandle(error) - } - this.showLoader = false; - }); - } - - testForkJoin() { - forkJoin([ - this.getPublicationsIds(), - this.getPublications(), - - - ]).subscribe(allResults => { - this.publicationList = allResults[2] - }) - } - getFromDB() { - - this.sqliteservice.getActionById(this.folderId).then((publications) => { - - this.item = this.isJson(publications[0].publicationsDetails); - - let publicationArray = []; - this.isJson(publications[0].publications).forEach(element => { - let publicationlis = { - DateIndex: element.DateIndex, - DatePublication: element.DatePublication, - DocumentId: element.DocumentId, - FileBase64: element.FileBase64, - FileExtension: element.FileExtension, - Message: element.Message, - OrganicEntityId: element.OrganicEntityId, - OriginalFileName: element.OriginalFileName, - ProcessId: element.ProcessId - } - publicationArray.push(publicationlis); - - }); - - this.publicationList = publicationArray; + 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 }) } - isJson(str) { + async getPublicationsIds() { + + this.showLoader = true; + const folderId = this.folderId + try { - JSON.parse(str); - } catch (e) { - return str; + const res = await this.publications.GetPublicationsImages(folderId).toPromise(); + let publicationList = [] + + for (let element of res) { + let ress = await this.publications.GetPublicationById(element).toPromise(); + let item: Publication = this.publicationPipe.itemList(ress) + publicationList.push(item); + } + + this.showLoader = false; + + this.publicationList[folderId] = publicationList + this.storage.set(folderId, publicationList); + this.getpublication = publicationList; + } catch(error) { + this.showLoader = false; } - return JSON.parse(str); + } async AddPublication(publicationType: any, folderId: any) { diff --git a/src/app/shared/publication/view-publications/view-publications.page.html b/src/app/shared/publication/view-publications/view-publications.page.html index 6dd065cc9..79986c91e 100644 --- a/src/app/shared/publication/view-publications/view-publications.page.html +++ b/src/app/shared/publication/view-publications/view-publications.page.html @@ -1,18 +1,18 @@
-
+
- {{item.Description}} + {{publicationItem[folderId].Description}}
- -
-

{{item.Detail}}

- +

{{publicationItem[folderId].Detail}}

+
@@ -35,8 +35,8 @@ -
- +
@@ -84,8 +84,8 @@ -->
- - + + diff --git a/src/app/shared/publication/view-publications/view-publications.page.ts b/src/app/shared/publication/view-publications/view-publications.page.ts index 4ecd8b2c4..db777e3df 100644 --- a/src/app/shared/publication/view-publications/view-publications.page.ts +++ b/src/app/shared/publication/view-publications/view-publications.page.ts @@ -22,8 +22,8 @@ export class ViewPublicationsPage implements OnInit { showLoader: boolean; loading: any; - publicationList: Publication[]; - item: PublicationFolder; + publicationList: {[key: string]: Publication[] } = {}; + publicationItem: {[key: string]: PublicationFolder } = {}; getpublication = []; error: any; @@ -47,7 +47,10 @@ export class ViewPublicationsPage implements OnInit { public p:PermissionService, private httpErrorHandle: HttpErrorHandle ) { - this.item = new PublicationFolder(); + if(!this.publicationList[this.folderId]) { + this.publicationList[this.folderId] = [] + this.publicationItem[this.folderId] = new PublicationFolder(); + } } ngOnInit() { @@ -55,10 +58,12 @@ export class ViewPublicationsPage implements OnInit { this.folderId = this.folderId['ProcessId'] } - //this.getPublicationsIds(); + if(!this.publicationList[this.folderId]) { + this.publicationList[this.folderId] = [] + this.publicationItem[this.folderId] = new PublicationFolder(); + } window['app-view-publications-page-doRefresh'] = this.doRefresh - this.getPublicationDetail(); this.getFromDB(); } @@ -68,13 +73,16 @@ export class ViewPublicationsPage implements OnInit { if(typeof(this.folderId) == 'object') { this.folderId = this.folderId['ProcessId'] } - - this.getFromDB(); - //setTimeout(()=>{ - this.getPublicationDetail(); - this.getPublicationsIds(); - //}, 100) + if(!this.publicationList[this.folderId]) { + this.publicationList[this.folderId] = [] + this.publicationItem[this.folderId] = new PublicationFolder(); + } + + this.getFromDB(); + + this.getPublicationDetail(); + this.getPublicationsIds(); } @@ -82,7 +90,6 @@ export class ViewPublicationsPage implements OnInit { doRefresh =(event) => { this.getPublicationDetail(); - this.getPublicationsIds(); } @@ -92,50 +99,51 @@ export class ViewPublicationsPage implements OnInit { getPublicationDetail() { this.showLoader = true; - this.publications.GetPresidentialAction(this.folderId).subscribe(res=>{ + const folderId = this.folderId + this.publications.GetPresidentialAction(folderId).subscribe(res=>{ this.showLoader = false; - this.item = res; + this.publicationItem[folderId] = res + this.storage.set(folderId+"name", res) }, (error) => { this.showLoader = false; // this.httpErroHandle.httpStatusHandle(error) }); } - getPublicationsIds() { + async getPublicationsIds() { this.showLoader = true; const folderId = this.folderId - this.publications.GetPublicationsImages(this.folderId).subscribe(res => { - - this.publicationList = new Array(); - - res.forEach(element => { - - this.publications.GetPublicationById(element).subscribe(ress => { - - let item: Publication = this.publicationPipe.itemList(ress) - - this.publicationList.push(item); - }) - - }); - - this.storage.remove(folderId); - this.storage.set(this.folderId, this.publicationList); - - - this.getpublication = this.publicationList; + try { + const res = await this.publications.GetPublicationsImages(folderId).toPromise(); + let publicationList = [] + + for (let element of res) { + let ress = await this.publications.GetPublicationById(element).toPromise(); + let item: Publication = this.publicationPipe.itemList(ress) + publicationList.push(item); + } + this.showLoader = false; - },() => { + + this.publicationList[folderId] = publicationList + this.storage.set(folderId, publicationList); + this.getpublication = publicationList; + } catch(error) { this.showLoader = false; - this.getFromDB(); - }); + } + + } getFromDB() { - this.storage.get(this.folderId).then((viewPublications) => { - this.publicationList = viewPublications; + 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 }) } diff --git a/version/git-version.ts b/version/git-version.ts index 485993f89..c47ca6e10 100644 --- a/version/git-version.ts +++ b/version/git-version.ts @@ -1,12 +1,12 @@ export let versionData = { - "shortSHA": "f218b1a66", - "SHA": "f218b1a666a0f8cbeae975bc375279c14d5d8464", + "shortSHA": "9a1976f54", + "SHA": "9a1976f54373e5ed0686998c46bcc00e427d1b88", "branch": "no_bug_movemente", "lastCommitAuthor": "'Peter Maquiran'", - "lastCommitTime": "'Mon Feb 27 20:17:03 2023 +0100'", - "lastCommitMessage": "improve publication", - "lastCommitNumber": "4843", + "lastCommitTime": "'Mon Feb 27 20:17:47 2023 +0100'", + "lastCommitMessage": "fix", + "lastCommitNumber": "4844", "change": "", - "changeStatus": "On branch no_bug_movemente\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: src/environments/environment.ts", + "changeStatus": "On branch no_bug_movemente\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: src/app/pages/publications/publications.page.ts\n\tmodified: src/app/pages/publications/view-publications/view-publications.page.html\n\tmodified: src/app/pages/publications/view-publications/view-publications.page.ts\n\tmodified: src/app/shared/publication/view-publications/view-publications.page.html\n\tmodified: src/app/shared/publication/view-publications/view-publications.page.ts", "changeAuthor": "peter.maquiran" } \ No newline at end of file