From 036487ef3d64e2a4957ca456dcec79c13c2d31f3 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Tue, 20 Jul 2021 19:18:16 +0100 Subject: [PATCH 1/9] Add home's data to local storage --- src/app/store/calendar.service.ts | 9 +++- ...expediente-storage-service.service.spec.ts | 16 +++++++ .../expediente-storage-service.service.ts | 42 +++++++++++++++++++ src/app/store/localstore.service.ts | 2 + .../to-day-event-storage.service.spec.ts | 16 +++++++ src/app/store/to-day-event-storage.service.ts | 41 ++++++++++++++++++ 6 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 src/app/store/expediente-storage-service.service.spec.ts create mode 100644 src/app/store/expediente-storage-service.service.ts create mode 100644 src/app/store/to-day-event-storage.service.spec.ts create mode 100644 src/app/store/to-day-event-storage.service.ts diff --git a/src/app/store/calendar.service.ts b/src/app/store/calendar.service.ts index adb006069..9028b36bf 100644 --- a/src/app/store/calendar.service.ts +++ b/src/app/store/calendar.service.ts @@ -37,13 +37,20 @@ export class CalendarService { } ResetList(eventSource: eventSource[]) { - this._eventSource = eventSource + this._eventSource = eventSource + + setTimeout(() => { + this.localstoreService.set(this.keyName, this._eventSource) + }, 10) + } get eventSource() { return this._eventSource } + + removeRange(rangeStartDate, rangeEndDate, profile) { this._eventSource = this._eventSource.filter((e)=> { if(new Date(rangeStartDate).getTime() <= new Date(e.startTime).getTime() && diff --git a/src/app/store/expediente-storage-service.service.spec.ts b/src/app/store/expediente-storage-service.service.spec.ts new file mode 100644 index 000000000..274cd90d2 --- /dev/null +++ b/src/app/store/expediente-storage-service.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { ExpedienteStorageServiceService } from './expediente-storage-service.service'; + +describe('ExpedienteStorageServiceService', () => { + let service: ExpedienteStorageServiceService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ExpedienteStorageServiceService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/store/expediente-storage-service.service.ts b/src/app/store/expediente-storage-service.service.ts new file mode 100644 index 000000000..3b3de92ed --- /dev/null +++ b/src/app/store/expediente-storage-service.service.ts @@ -0,0 +1,42 @@ +import { Injectable } from '@angular/core'; +import { Event } from '../models/event.model'; +import { localstoreService } from './localstore.service' +import { AES, enc, SHA1 } from 'crypto-js' + +@Injectable({ + providedIn: 'root' +}) + +// shared data used in home and gabinete +class ExpedienteStorageServiceService { + + // main data + private _list: Event[] + // local storage keyName + private keyName: string; + + constructor() { + + this.keyName = (SHA1(this.constructor.name+ 'ExpedienteStorage/forAll')).toString() + let restore = localstoreService.get(this.keyName, []) + this._list = restore + + } + + get list() { + return this._list + } + + reset(list: any) { + this._list = list + + this.save(this._list) + } + + private save(list: any) { + localstoreService.set(this.keyName, list) + } +} + + +export const ExpedienteStorage = new ExpedienteStorageServiceService() \ No newline at end of file diff --git a/src/app/store/localstore.service.ts b/src/app/store/localstore.service.ts index 9bdb572d1..b51e0115a 100644 --- a/src/app/store/localstore.service.ts +++ b/src/app/store/localstore.service.ts @@ -56,3 +56,5 @@ export class LocalstoreService { } } + +export const localstoreService = new LocalstoreService() diff --git a/src/app/store/to-day-event-storage.service.spec.ts b/src/app/store/to-day-event-storage.service.spec.ts new file mode 100644 index 000000000..801f71da6 --- /dev/null +++ b/src/app/store/to-day-event-storage.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { ToDayEventStorageService } from './to-day-event-storage.service'; + +describe('ToDayEventStorageService', () => { + let service: ToDayEventStorageService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ToDayEventStorageService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/store/to-day-event-storage.service.ts b/src/app/store/to-day-event-storage.service.ts new file mode 100644 index 000000000..8b5115d13 --- /dev/null +++ b/src/app/store/to-day-event-storage.service.ts @@ -0,0 +1,41 @@ +import { Injectable } from '@angular/core'; +import { Event } from '../models/event.model'; +import { localstoreService } from './localstore.service' +import { AES, enc, SHA1 } from 'crypto-js' + +@Injectable({ + providedIn: 'root' +}) + +export class ToDayEventStorageService { + + // main data + private _eventsList: Event[] + // local storage keyName + private keyName: string; + + constructor() { + + this.keyName = (SHA1(this.constructor.name+ 'home/eventSource')).toString() + let restore = localstoreService.get(this.keyName, []) + this._eventsList = restore + + } + + get eventsList() { + return this._eventsList + } + + reset(eventsList: Event[]) { + this._eventsList = eventsList + + this.save(this._eventsList) + } + + private save(eventsList: Event[]) { + localstoreService.set(this.keyName,eventsList) + } + +} + +export const ToDayEventStorage = new ToDayEventStorageService() \ No newline at end of file From f80394d8307fdf8aa975d053784ac4552be6f03f Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Tue, 20 Jul 2021 19:19:40 +0100 Subject: [PATCH 2/9] Remove spacing --- .../pages/gabinete-digital/despachos-pr/despachos-pr.page.scss | 1 - src/app/pages/gabinete-digital/despachos/despachos.page.scss | 1 - .../gabinete-digital/diplomas-assinar/diplomas-assinar.page.scss | 1 - src/app/pages/gabinete-digital/diplomas/diplomas.page.scss | 1 - src/app/pages/gabinete-digital/expediente/expediente.page.scss | 1 - .../gabinete-digital/expedientes-pr/expedientes-pr.page.scss | 1 - .../shared/gabinete-digital/despachos-pr/despachos-pr.page.scss | 1 - src/app/shared/gabinete-digital/despachos/despachos.page.scss | 1 - .../gabinete-digital/diplomas-assinar/diplomas-assinar.page.scss | 1 - src/app/shared/gabinete-digital/diplomas/diplomas.page.scss | 1 - .../gabinete-digital/expedientes-pr/expedientes-pr.page.scss | 1 - src/app/shared/gabinete-digital/expedients/expedients.page.scss | 1 - src/app/shared/gabinete-digital/pedidos/pedidos.page.scss | 1 - src/app/shared/gabinete-digital/pendentes/pendentes.page.scss | 1 - 14 files changed, 14 deletions(-) diff --git a/src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page.scss b/src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page.scss index 229635992..dea8d7000 100644 --- a/src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page.scss +++ b/src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page.scss @@ -74,7 +74,6 @@ ion-item{ //box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07); //Sborder: solid 1px #e9e9e9; background-color: var(--white); - margin: 0 auto; //padding: 10px; margin-bottom: 10px; overflow: hidden; diff --git a/src/app/pages/gabinete-digital/despachos/despachos.page.scss b/src/app/pages/gabinete-digital/despachos/despachos.page.scss index f7540efa2..2a49ee468 100644 --- a/src/app/pages/gabinete-digital/despachos/despachos.page.scss +++ b/src/app/pages/gabinete-digital/despachos/despachos.page.scss @@ -57,7 +57,6 @@ ion-item{ background-color: var(--white); margin: 0 auto; //padding: 10px; - margin-bottom: 10px; overflow: hidden; } .div-content-expediente{ diff --git a/src/app/pages/gabinete-digital/diplomas-assinar/diplomas-assinar.page.scss b/src/app/pages/gabinete-digital/diplomas-assinar/diplomas-assinar.page.scss index c140a006a..db1c3b9fe 100644 --- a/src/app/pages/gabinete-digital/diplomas-assinar/diplomas-assinar.page.scss +++ b/src/app/pages/gabinete-digital/diplomas-assinar/diplomas-assinar.page.scss @@ -68,7 +68,6 @@ ion-item{ .item { background-color: var(--white); margin: 0 auto; - margin-bottom: 10px; overflow: hidden; } .div-content-expediente{ diff --git a/src/app/pages/gabinete-digital/diplomas/diplomas.page.scss b/src/app/pages/gabinete-digital/diplomas/diplomas.page.scss index 504ce1e1a..0870187c5 100644 --- a/src/app/pages/gabinete-digital/diplomas/diplomas.page.scss +++ b/src/app/pages/gabinete-digital/diplomas/diplomas.page.scss @@ -56,7 +56,6 @@ ion-item{ background-color: var(--white); margin: 0 auto; //padding: 10px; - margin-bottom: 10px; overflow: hidden; } .div-content-expediente{ diff --git a/src/app/pages/gabinete-digital/expediente/expediente.page.scss b/src/app/pages/gabinete-digital/expediente/expediente.page.scss index ffae6157b..9fcfa6835 100644 --- a/src/app/pages/gabinete-digital/expediente/expediente.page.scss +++ b/src/app/pages/gabinete-digital/expediente/expediente.page.scss @@ -52,7 +52,6 @@ ion-item{ background-color: var(--white); margin: 0 auto; //padding: 10px; - margin-bottom: 10px; overflow: auto; } .div-content-expediente{ diff --git a/src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.scss b/src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.scss index 7d537c102..47ef1f084 100644 --- a/src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.scss +++ b/src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.scss @@ -56,7 +56,6 @@ ion-item{ background-color: var(--white); margin: 0 auto; //padding: 10px; - margin-bottom: 10px; overflow: auto; } .div-content-expediente{ diff --git a/src/app/shared/gabinete-digital/despachos-pr/despachos-pr.page.scss b/src/app/shared/gabinete-digital/despachos-pr/despachos-pr.page.scss index 7b166bc33..d5c9b1208 100644 --- a/src/app/shared/gabinete-digital/despachos-pr/despachos-pr.page.scss +++ b/src/app/shared/gabinete-digital/despachos-pr/despachos-pr.page.scss @@ -60,7 +60,6 @@ ion-item{ background-color: var(--white); margin: 0 auto; //padding: 10px; - margin-bottom: 10px; overflow: hidden; } .div-content-expediente{ diff --git a/src/app/shared/gabinete-digital/despachos/despachos.page.scss b/src/app/shared/gabinete-digital/despachos/despachos.page.scss index 233a9605f..d8be65f71 100644 --- a/src/app/shared/gabinete-digital/despachos/despachos.page.scss +++ b/src/app/shared/gabinete-digital/despachos/despachos.page.scss @@ -44,7 +44,6 @@ ion-item{ background-color: var(--white); margin: 0 auto; //padding: 10px; - margin-bottom: 10px; overflow: hidden; } .div-content-expediente{ diff --git a/src/app/shared/gabinete-digital/diplomas-assinar/diplomas-assinar.page.scss b/src/app/shared/gabinete-digital/diplomas-assinar/diplomas-assinar.page.scss index d9c23a826..69e7608e5 100644 --- a/src/app/shared/gabinete-digital/diplomas-assinar/diplomas-assinar.page.scss +++ b/src/app/shared/gabinete-digital/diplomas-assinar/diplomas-assinar.page.scss @@ -54,7 +54,6 @@ ion-item{ .item { background-color: var(--white); margin: 0 auto; - margin-bottom: 10px; overflow: hidden; } .div-content-expediente{ diff --git a/src/app/shared/gabinete-digital/diplomas/diplomas.page.scss b/src/app/shared/gabinete-digital/diplomas/diplomas.page.scss index cec62ca66..f93c4bd0f 100644 --- a/src/app/shared/gabinete-digital/diplomas/diplomas.page.scss +++ b/src/app/shared/gabinete-digital/diplomas/diplomas.page.scss @@ -43,7 +43,6 @@ ion-item{ background-color: var(--white); margin: 0 auto; //padding: 10px; - margin-bottom: 10px; overflow: hidden; } .div-content-expediente{ diff --git a/src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.scss b/src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.scss index 4f2f62165..706482f8a 100644 --- a/src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.scss +++ b/src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.scss @@ -43,7 +43,6 @@ ion-item{ background-color: var(--white); margin: 0 auto; //padding: 10px; - margin-bottom: 10px; overflow: auto; } .div-content-expediente{ diff --git a/src/app/shared/gabinete-digital/expedients/expedients.page.scss b/src/app/shared/gabinete-digital/expedients/expedients.page.scss index 4f2f62165..706482f8a 100644 --- a/src/app/shared/gabinete-digital/expedients/expedients.page.scss +++ b/src/app/shared/gabinete-digital/expedients/expedients.page.scss @@ -43,7 +43,6 @@ ion-item{ background-color: var(--white); margin: 0 auto; //padding: 10px; - margin-bottom: 10px; overflow: auto; } .div-content-expediente{ diff --git a/src/app/shared/gabinete-digital/pedidos/pedidos.page.scss b/src/app/shared/gabinete-digital/pedidos/pedidos.page.scss index 5f7b728e6..a07a05438 100644 --- a/src/app/shared/gabinete-digital/pedidos/pedidos.page.scss +++ b/src/app/shared/gabinete-digital/pedidos/pedidos.page.scss @@ -43,7 +43,6 @@ ion-item{ background-color: var(--white); margin: 0 auto; //padding: 10px; - margin-bottom: 10px; overflow: hidden; } .div-content-expediente{ diff --git a/src/app/shared/gabinete-digital/pendentes/pendentes.page.scss b/src/app/shared/gabinete-digital/pendentes/pendentes.page.scss index 7f5b9496b..6bfd2870a 100644 --- a/src/app/shared/gabinete-digital/pendentes/pendentes.page.scss +++ b/src/app/shared/gabinete-digital/pendentes/pendentes.page.scss @@ -43,7 +43,6 @@ ion-item{ background-color: var(--white); margin: 0 auto; //padding: 10px; - margin-bottom: 10px; overflow: hidden; } .div-content-expediente{ From a3b753dad91c18ea372e42009ccfa48eb05de4cf Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Tue, 20 Jul 2021 19:22:11 +0100 Subject: [PATCH 3/9] Hot fix --- src/app/app-routing.module.ts | 7 +++-- src/app/home/home-routing.module.ts | 10 ------- .../eliminate-event-routing.module.ts | 17 +++++++++++ .../eliminate-event/eliminate-event.module.ts | 20 +++++++++++++ .../eliminate-event/eliminate-event.page.html | 19 ++++++++++++ .../eliminate-event/eliminate-event.page.scss | 27 +++++++++++++++++ .../eliminate-event.page.spec.ts | 24 +++++++++++++++ .../eliminate-event/eliminate-event.page.ts | 24 +++++++++++++++ .../models/agenda/eventrecurrence.model.ts | 4 +-- .../agenda/view-event/view-event.page.ts | 29 +++++++++++++++++++ .../agenda/edit-event/edit-event.page.ts | 5 ++++ .../shared/agenda/new-event/new-event.page.ts | 8 +++++ .../agenda/view-event/view-event.page.ts | 27 +++++++++++++++-- 13 files changed, 204 insertions(+), 17 deletions(-) create mode 100644 src/app/modals/eliminate-event/eliminate-event-routing.module.ts create mode 100644 src/app/modals/eliminate-event/eliminate-event.module.ts create mode 100644 src/app/modals/eliminate-event/eliminate-event.page.html create mode 100644 src/app/modals/eliminate-event/eliminate-event.page.scss create mode 100644 src/app/modals/eliminate-event/eliminate-event.page.spec.ts create mode 100644 src/app/modals/eliminate-event/eliminate-event.page.ts diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index ec5e14308..f08d68e49 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -148,10 +148,13 @@ const routes = [ path: 'edit-action', loadChildren: () => import('./shared/publication/edit-action/edit-action.module').then( m => m.EditActionPageModule) }, + { + path: 'eliminate-event', + loadChildren: () => import('./modals/eliminate-event/eliminate-event.module').then( m => m.EliminateEventPageModule) + }, - - /* { + /* path: 'chat', component: ChatPage } */ diff --git a/src/app/home/home-routing.module.ts b/src/app/home/home-routing.module.ts index cc9c5c97e..338ccf71b 100644 --- a/src/app/home/home-routing.module.ts +++ b/src/app/home/home-routing.module.ts @@ -1,15 +1,7 @@ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { AuthGuard } from '../guards/auth.guard'; -import { HomeGuard } from '../guards/home.guard'; -import { LoginGuard } from '../guards/login.guard'; -import { GroupMessagesPage } from '../pages/chat/group-messages/group-messages.page'; -import { MessagesPage } from '../pages/chat/messages/messages.page'; -import { PendentesResolverService } from '../resolvers/pendentes-resolver.service'; -import { ProcessesResolverService } from '../resolvers/processes-resolver.service'; import { UserDataResolver } from '../resolvers/userData.resolver'; -import { DiplomasPage } from '../shared/gabinete-digital/diplomas/diplomas.page'; - import { HomePage } from './home.page'; const routes: Routes = [ @@ -267,8 +259,6 @@ const routes: Routes = [ ] } ], - - }, { path: 'search', diff --git a/src/app/modals/eliminate-event/eliminate-event-routing.module.ts b/src/app/modals/eliminate-event/eliminate-event-routing.module.ts new file mode 100644 index 000000000..aeeafb0e7 --- /dev/null +++ b/src/app/modals/eliminate-event/eliminate-event-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { EliminateEventPage } from './eliminate-event.page'; + +const routes: Routes = [ + { + path: '', + component: EliminateEventPage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class EliminateEventPageRoutingModule {} diff --git a/src/app/modals/eliminate-event/eliminate-event.module.ts b/src/app/modals/eliminate-event/eliminate-event.module.ts new file mode 100644 index 000000000..32104b54c --- /dev/null +++ b/src/app/modals/eliminate-event/eliminate-event.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IonicModule } from '@ionic/angular'; + +import { EliminateEventPageRoutingModule } from './eliminate-event-routing.module'; + +import { EliminateEventPage } from './eliminate-event.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + EliminateEventPageRoutingModule + ], + declarations: [EliminateEventPage] +}) +export class EliminateEventPageModule {} diff --git a/src/app/modals/eliminate-event/eliminate-event.page.html b/src/app/modals/eliminate-event/eliminate-event.page.html new file mode 100644 index 000000000..b29c62d3b --- /dev/null +++ b/src/app/modals/eliminate-event/eliminate-event.page.html @@ -0,0 +1,19 @@ + + + + +
+
+

Deseja retirar este expediente da sua caixa de correspondência?

+
+
+
+

Nota: Ao efectuar esta operação, o tratamento deste expediente não poderá ser realizado a partir da caixa de correspondência

+
+
+ +
+ + +
+
diff --git a/src/app/modals/eliminate-event/eliminate-event.page.scss b/src/app/modals/eliminate-event/eliminate-event.page.scss new file mode 100644 index 000000000..0c8c7cac0 --- /dev/null +++ b/src/app/modals/eliminate-event/eliminate-event.page.scss @@ -0,0 +1,27 @@ +ion-content{ + --padding-top:15px; + --padding-start: 15px; + --padding-end: 15px; + } + .header-content{ + overflow: hidden; + margin: 0 auto; + align-items: center; + justify-content: center; + } + .header-title{ + font-family: Roboto; + font-size: 20px; + color:#000; + margin: 0 5px 0 5px; + } + .header-body{ + margin: 0 5px 0 5px; + } + + .buttons{ + display: flex; + justify-content: space-between; + padding: 15px 0 15px 0; + } + \ No newline at end of file diff --git a/src/app/modals/eliminate-event/eliminate-event.page.spec.ts b/src/app/modals/eliminate-event/eliminate-event.page.spec.ts new file mode 100644 index 000000000..e10f0264c --- /dev/null +++ b/src/app/modals/eliminate-event/eliminate-event.page.spec.ts @@ -0,0 +1,24 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { EliminateEventPage } from './eliminate-event.page'; + +describe('EliminateEventPage', () => { + let component: EliminateEventPage; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ EliminateEventPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(EliminateEventPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/modals/eliminate-event/eliminate-event.page.ts b/src/app/modals/eliminate-event/eliminate-event.page.ts new file mode 100644 index 000000000..1e03c2dab --- /dev/null +++ b/src/app/modals/eliminate-event/eliminate-event.page.ts @@ -0,0 +1,24 @@ +import { Component, OnInit } from '@angular/core'; +import { ModalController } from '@ionic/angular'; + +@Component({ + selector: 'app-eliminate-event', + templateUrl: './eliminate-event.page.html', + styleUrls: ['./eliminate-event.page.scss'], +}) +export class EliminateEventPage implements OnInit { + + constructor(private modalController: ModalController,) { } + + ngOnInit() { + } + + close(){ + this.modalController.dismiss('No'); + } + + save(){ + this.modalController.dismiss('Yes'); + } + +} diff --git a/src/app/models/agenda/eventrecurrence.model.ts b/src/app/models/agenda/eventrecurrence.model.ts index 4348dce5c..14f8a5de1 100644 --- a/src/app/models/agenda/eventrecurrence.model.ts +++ b/src/app/models/agenda/eventrecurrence.model.ts @@ -1,5 +1,5 @@ -export class EventRecurrence{ - Type: string; +export class EventRecurrence { + Type: string | number; Day?: number; DayOfWeek?:number; Month?: number; diff --git a/src/app/pages/agenda/view-event/view-event.page.ts b/src/app/pages/agenda/view-event/view-event.page.ts index 4d7378c27..e012e58b1 100644 --- a/src/app/pages/agenda/view-event/view-event.page.ts +++ b/src/app/pages/agenda/view-event/view-event.page.ts @@ -14,6 +14,7 @@ import { BookMeetingModalPage } from '../../gabinete-digital/expediente/book-mee import { OptsExpedientePage } from 'src/app/shared/popover/opts-expediente/opts-expediente.page'; import { ActivatedRoute, NavigationExtras, Router } from '@angular/router'; import { ToastService } from 'src/app/services/toast.service'; +import { EliminateEventPage } from 'src/app/modals/eliminate-event/eliminate-event.page'; @Component({ selector: 'app-view-event', @@ -143,6 +144,34 @@ export class ViewEventPage implements OnInit { }); } + + async OpenDeleteEventModal() { + + const modal = await this.modalController.create({ + component: EliminateEventPage, + componentProps: { + eventId: this.loadedEvent.EventId, + caller: this.caller, + }, + cssClass: 'discart-expedient-modal', + + }); + await modal.present(); + modal.onDidDismiss().then((res) => { + console.log(res); + + if(res){ + setTimeout(() => { + /* this.loadEvent(); */ + this.loadEvent() + this.getAttachments(); + }, 250); + this.isEventEdited = true; + } + }); + + } + getAttachments() { const loader = this.toastService.loading() diff --git a/src/app/shared/agenda/edit-event/edit-event.page.ts b/src/app/shared/agenda/edit-event/edit-event.page.ts index 279c9770e..6b3fbd484 100644 --- a/src/app/shared/agenda/edit-event/edit-event.page.ts +++ b/src/app/shared/agenda/edit-event/edit-event.page.ts @@ -182,6 +182,11 @@ export class EditEventPage implements OnInit { injectValidation() { + if (typeof(this.postEvent.EventRecurrence.Type) == 'number') { + const str: any = this.postEvent.EventRecurrence.Type.toString() + this.postEvent.EventRecurrence.Type = str + } + this.Form = new FormGroup({ Subject: new FormControl(this.postEvent.Subject, [ Validators.required, diff --git a/src/app/shared/agenda/new-event/new-event.page.ts b/src/app/shared/agenda/new-event/new-event.page.ts index 6cb7da1b5..7003f7664 100644 --- a/src/app/shared/agenda/new-event/new-event.page.ts +++ b/src/app/shared/agenda/new-event/new-event.page.ts @@ -24,6 +24,7 @@ import { ThemePalette } from '@angular/material/core'; import { NgZone, ViewChild } from '@angular/core'; import { FormGroup, Validators } from '@angular/forms'; import { NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker'; +import { EliminateEventPage } from 'src/app/modals/eliminate-event/eliminate-event.page'; const moment = _rollupMoment || _moment; @@ -227,6 +228,11 @@ export class NewEventPage implements OnInit { injectValidation() { + if (typeof(this.postEvent.EventRecurrence.Type) == 'number') { + const str: any = this.postEvent.EventRecurrence.Type.toString() + this.postEvent.EventRecurrence.Type = str + } + this.Form = new FormGroup({ Subject: new FormControl(this.postEvent.Subject, [ Validators.required, @@ -340,6 +346,8 @@ export class NewEventPage implements OnInit { } } + + async save() { this.injectValidation() diff --git a/src/app/shared/agenda/view-event/view-event.page.ts b/src/app/shared/agenda/view-event/view-event.page.ts index 52b9fa115..d6468e6a8 100644 --- a/src/app/shared/agenda/view-event/view-event.page.ts +++ b/src/app/shared/agenda/view-event/view-event.page.ts @@ -13,6 +13,7 @@ import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/ import { ChatPopoverPage } from '../../popover/chat-popover/chat-popover.page'; import { OptsExpedientePage } from '../../popover/opts-expediente/opts-expediente.page'; import { ToastService } from 'src/app/services/toast.service'; +import { EliminateEventPage } from 'src/app/modals/eliminate-event/eliminate-event.page'; @Component({ selector: 'app-view-event', @@ -109,12 +110,32 @@ export class ViewEventPage implements OnInit { ; } - deleteEvent(){ - this.eventsService.deleteEvent(this.loadedEvent.EventId, 0).subscribe(async () => - { + async deleteEvent(){ + + if (this.loadedEvent.IsRecurring) { + + } else { + this.eventsService.deleteEvent(this.loadedEvent.EventId, 0).subscribe(async () => { this.toastService.successMessage('Evento apagado'); this.close(); }); + } + + } + + async deleteRecurringEvent() { + + const modal = await this.modalController.create({ + component: EliminateEventPage, + componentProps: {}, + cssClass: 'discart-expedient-modal', + + }); + await modal.present(); + modal.onDidDismiss().then((res) => { + + }); + } getAttachments(eventId){ From a2f5324a9889237244d9c6a1bacd4cadca11e68e Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Tue, 20 Jul 2021 19:22:56 +0100 Subject: [PATCH 4/9] Add home's data to local storage --- src/app/home/home.page.ts | 7 +-- src/app/pages/agenda/agenda.page.ts | 2 - src/app/pages/events/events.page.html | 4 +- src/app/pages/events/events.page.ts | 70 +++++++++++++++------------ 4 files changed, 43 insertions(+), 40 deletions(-) diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts index 873093ac6..46a5cbbad 100644 --- a/src/app/home/home.page.ts +++ b/src/app/home/home.page.ts @@ -47,13 +47,8 @@ export class HomePage implements OnInit { folderId: string; constructor(private zone: NgZone, - private eventService: EventsService, - private processesbackend: ProcessesService, - private router: Router, - private modalController: ModalController, + private router: Router, public modalCtrl: AlertController, - private toastService: ToastService, - private animationController: AnimationController, private notificatinsservice: NotificationsService, private platform: Platform, private activeroute: ActivatedRoute) { diff --git a/src/app/pages/agenda/agenda.page.ts b/src/app/pages/agenda/agenda.page.ts index 4327ff6de..9d8a28548 100644 --- a/src/app/pages/agenda/agenda.page.ts +++ b/src/app/pages/agenda/agenda.page.ts @@ -454,8 +454,6 @@ export class AgendaPage implements OnInit { loadRangeEvents(startTime: Date, endTime: Date) { - this.eventSelectedDate = new Date(startTime); - this.showLoader = true; if(window.innerWidth < 800){ diff --git a/src/app/pages/events/events.page.html b/src/app/pages/events/events.page.html index 51a47dbab..a3185ad29 100644 --- a/src/app/pages/events/events.page.html +++ b/src/app/pages/events/events.page.html @@ -45,7 +45,7 @@
-
@@ -87,7 +87,7 @@
-
diff --git a/src/app/pages/events/events.page.ts b/src/app/pages/events/events.page.ts index 6331158f1..92f88a67e 100644 --- a/src/app/pages/events/events.page.ts +++ b/src/app/pages/events/events.page.ts @@ -18,7 +18,8 @@ import { ExpedienteDetailPage } from '../gabinete-digital/expediente/expediente- import { EditEventPage as EventEditPage } from './edit-event/edit-event.page'; import { GabineteDigitalPage } from '../gabinete-digital/gabinete-digital.page'; import { User } from 'src/app/models/user.model'; - +import { ToDayEventStorage } from 'src/app/store/to-day-event-storage.service'; +import { ExpedienteStorage } from 'src/app/store/expediente-storage-service.service' @Component({ selector: 'app-events', templateUrl: './events.page.html', @@ -62,6 +63,10 @@ export class EventsPage implements OnInit { taskslist:DailyWorkTask[] = []; expedientList:any; + // shared data + toDayEventStorage = ToDayEventStorage + expedienteStorage = ExpedienteStorage + @Output() openExpedientListPage:EventEmitter = new EventEmitter(); loggeduser: User; @@ -85,7 +90,7 @@ export class EventsPage implements OnInit { // list this.LoadList(); - } + } ngOnInit() { this.activatedRoute.data.subscribe(data => console.log(data)); @@ -107,18 +112,17 @@ export class EventsPage implements OnInit { }); } - doRefresh(event) { this.RefreshEvents(); this.LoadList(); event.target.complete(); } - onSegmentChange(){ + onSegmentChange() { this.RefreshEvents(); } - async RefreshEvents(){ + async RefreshEvents() { this.currentEvent = ""; this.showLoader = true; @@ -127,38 +131,42 @@ export class EventsPage implements OnInit { let start = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds(); let end = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" 23:59:59"; - - if(this.loggeduser.Profile == 'MDGPR'){ + + if(this.loggeduser.Profile == 'MDGPR') { let mdOficialEvents = await this.eventService.getAllMdOficialEvents(start, end).toPromise(); let mdPessoalEvents = await this.eventService.getAllMdPessoalEvents(start, end).toPromise(); + + const list = mdOficialEvents.concat(mdPessoalEvents); + + this.toDayEventStorage.reset(list) + + if(this.toDayEventStorage.eventsList.length > 0){ + this.currentEvent = this.toDayEventStorage.eventsList[0].Subject; + this.currentHoursMinutes = this.toDayEventStorage.eventsList[0].StartDate; + } + + this.totalEvent = this.toDayEventStorage.eventsList.length; + this.showLoader = false; - this.eventsList = mdOficialEvents.concat(mdPessoalEvents); - - if(this.eventsList.length > 0){ - this.currentEvent = this.eventsList[0].Subject; - this.currentHoursMinutes = this.eventsList[0].StartDate; - } - - this.totalEvent = this.eventsList.length; - this.showLoader = false; - } - else if (this.loggeduser.Profile == 'PR'){ + else if (this.loggeduser.Profile == 'PR') { let prOficialEvents= await this.eventService.getAllPrOficialEvents(start, end).toPromise(); let prPessoalEvents= await this.eventService.getAllPrPessoalEvents(start, end).toPromise(); - this.eventsList = prOficialEvents.concat(prPessoalEvents); - console.log(this.eventsList); + + const list = prOficialEvents.concat(prPessoalEvents); - if(this.eventsList.length > 0){ - this.currentEvent = this.eventsList[0].Subject; - this.currentHoursMinutes = this.eventsList[0].StartDate; - } + this.toDayEventStorage.reset(list) - this.totalEvent = this.eventsList.length; - this.showLoader = false; - + if(this.toDayEventStorage.eventsList.length > 0) { + this.currentEvent = this.toDayEventStorage.eventsList[0].Subject; + this.currentHoursMinutes = this.toDayEventStorage.eventsList[0].StartDate; + } + + this.totalEvent = this.toDayEventStorage.eventsList.length; + this.showLoader = false; + } @@ -283,16 +291,18 @@ export class EventsPage implements OnInit { } - LoadList(){ + LoadList() { switch (this.loggeduser.Profile) { case 'MDGPR': this.processes.GetTasksList("Expediente", false).subscribe(result => { - this.expedientList = result.reverse(); + const data = result.reverse(); + this.expedienteStorage.reset(data) }); break; case 'PR': this.processes.GetTasksList("Expediente do Presidente", false).subscribe(result => { - this.expedientList = result.reverse(); + const data = result.reverse(); + this.expedienteStorage.reset(data) }); break; default: From 5aa5288ae874aae924b91688fbac4735b4b04ee0 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Tue, 20 Jul 2021 19:37:02 +0100 Subject: [PATCH 5/9] set timeout --- .../store/expediente-storage-service.service.ts | 12 +++++++++--- src/app/store/to-day-event-storage.service.ts | 14 +++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/app/store/expediente-storage-service.service.ts b/src/app/store/expediente-storage-service.service.ts index 3b3de92ed..181a737a8 100644 --- a/src/app/store/expediente-storage-service.service.ts +++ b/src/app/store/expediente-storage-service.service.ts @@ -18,8 +18,11 @@ class ExpedienteStorageServiceService { constructor() { this.keyName = (SHA1(this.constructor.name+ 'ExpedienteStorage/forAll')).toString() - let restore = localstoreService.get(this.keyName, []) - this._list = restore + + setTimeout(()=>{ + let restore = localstoreService.get(this.keyName, []) + this._list = restore + }, 10) } @@ -34,7 +37,10 @@ class ExpedienteStorageServiceService { } private save(list: any) { - localstoreService.set(this.keyName, list) + setTimeout(()=>{ + localstoreService.set(this.keyName, list) + }, 10) + } } diff --git a/src/app/store/to-day-event-storage.service.ts b/src/app/store/to-day-event-storage.service.ts index 8b5115d13..ddcd3cb7b 100644 --- a/src/app/store/to-day-event-storage.service.ts +++ b/src/app/store/to-day-event-storage.service.ts @@ -17,8 +17,13 @@ export class ToDayEventStorageService { constructor() { this.keyName = (SHA1(this.constructor.name+ 'home/eventSource')).toString() - let restore = localstoreService.get(this.keyName, []) - this._eventsList = restore + + + setTimeout(()=>{ + let restore = localstoreService.get(this.keyName, []) + this._eventsList = restore + }, 10) + } @@ -33,7 +38,10 @@ export class ToDayEventStorageService { } private save(eventsList: Event[]) { - localstoreService.set(this.keyName,eventsList) + setTimeout(()=>{ + localstoreService.set(this.keyName,eventsList) + }, 10) + } } From 6460e1ce1a5e65c81e4b007737905ffbd1e14d41 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 21 Jul 2021 19:08:31 +0100 Subject: [PATCH 6/9] Add publication to localstorage --- src/app/pages/events/events.page.ts | 1 - .../pages/publications/publications.page.html | 9 ++-- .../pages/publications/publications.page.ts | 22 +++++---- .../view-publications.page.html | 5 +- .../view-publications.page.ts | 41 +++++++++++------ .../view-publications.page.ts | 10 ++-- .../expediente-storage-service.service.ts | 2 +- ...presidential-actions-store.service.spec.ts | 16 +++++++ .../presidential-actions-store.service.ts | 46 +++++++++++++++++++ .../publication-event-folder.service.spec.ts | 16 +++++++ .../store/publication-event-folder.service.ts | 43 +++++++++++++++++ .../store/publication-list.service.spec.ts | 16 +++++++ src/app/store/publication-list.service.ts | 42 +++++++++++++++++ .../publication-travel-folder.service.spec.ts | 16 +++++++ .../publication-travel-folder.service.ts | 46 +++++++++++++++++++ 15 files changed, 292 insertions(+), 39 deletions(-) create mode 100644 src/app/store/presidential-actions-store.service.spec.ts create mode 100644 src/app/store/presidential-actions-store.service.ts create mode 100644 src/app/store/publication-event-folder.service.spec.ts create mode 100644 src/app/store/publication-event-folder.service.ts create mode 100644 src/app/store/publication-list.service.spec.ts create mode 100644 src/app/store/publication-list.service.ts create mode 100644 src/app/store/publication-travel-folder.service.spec.ts create mode 100644 src/app/store/publication-travel-folder.service.ts diff --git a/src/app/pages/events/events.page.ts b/src/app/pages/events/events.page.ts index 92f88a67e..4be02690e 100644 --- a/src/app/pages/events/events.page.ts +++ b/src/app/pages/events/events.page.ts @@ -93,7 +93,6 @@ export class EventsPage implements OnInit { } ngOnInit() { - this.activatedRoute.data.subscribe(data => console.log(data)); //Inicializar segment this.segment = "Combinada"; //Initialize profile as mdgpr diff --git a/src/app/pages/publications/publications.page.html b/src/app/pages/publications/publications.page.html index d85ecac3f..0606c6531 100644 --- a/src/app/pages/publications/publications.page.html +++ b/src/app/pages/publications/publications.page.html @@ -38,7 +38,7 @@
+ *ngFor="let viagem of publicationTravelFolderService.list">
@@ -82,7 +82,8 @@
--> + *ngFor="let evento of publicationEventFolderStorage.list" + > @@ -200,10 +201,8 @@ > -
- - + \ No newline at end of file diff --git a/src/app/pages/publications/publications.page.ts b/src/app/pages/publications/publications.page.ts index 99a65d1f6..c49bc6570 100644 --- a/src/app/pages/publications/publications.page.ts +++ b/src/app/pages/publications/publications.page.ts @@ -6,13 +6,14 @@ import { PublicationsService } from 'src/app/services/publications.service'; import { NewActionPage } from './new-action/new-action.page'; import { ViewPublicationsPage } from './view-publications/view-publications.page'; -import { Animation, AnimationController } from '@ionic/angular'; -import { LoadingController } from '@ionic/angular'; +import { AnimationController } from '@ionic/angular'; import { LoadingService } from 'src/app/services/loading.service'; import { Publication } from 'src/app/models/publication'; import { ActionsOptionsPage } from 'src/app/shared/popover/actions-options/actions-options.page'; import { EditActionPage } from './edit-action/edit-action.page'; import { ToastService } from 'src/app/services/toast.service'; +import { PublicationEventFolderStorage } from 'src/app/store/publication-event-folder.service'; +import { PublicationTravelFolderStore } from 'src/app/store/publication-travel-folder.service'; @Component({ selector: 'app-publications', @@ -24,7 +25,6 @@ export class PublicationsPage implements OnInit { publicationFolder: PublicationFolder; publication: Publication; - publicationFolderList: PublicationFolder[]; publicationsEventFolderList: PublicationFolder[]; publicationsTravelFolderList: PublicationFolder[]; @@ -34,7 +34,9 @@ export class PublicationsPage implements OnInit { months: string[]; days:string[]; - + publicationEventFolderStorage = PublicationEventFolderStorage + publicationTravelFolderService = PublicationTravelFolderStore + desktopComponent: any = { showViewPublication: false, showAddNewPublication: false, @@ -57,9 +59,7 @@ export class PublicationsPage implements OnInit { private router: Router, private modalController: ModalController, private animationController: AnimationController, - private loading: LoadingService, private publications: PublicationsService, - private popoverController:PopoverController, private toastService: ToastService ) { this.months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"]; @@ -121,10 +121,10 @@ export class PublicationsPage implements OnInit { getActions() { this.showLoader = true; this.publications.GetPublicationFolderList().subscribe(res=>{ - this.publicationFolderList = res; - console.log(res); + this.publicationsEventFolderList = new Array(); this.publicationsTravelFolderList = new Array(); + res.forEach(data => { this.theDate = new Date(data.DateBegin); this.theEndDate = new Date(data.DateEnd); @@ -143,7 +143,12 @@ export class PublicationsPage implements OnInit { this.publicationsTravelFolderList.push(folder); } this.showLoader = false; + + this.publicationEventFolderStorage.reset(this.publicationsEventFolderList) + this.publicationTravelFolderService.reset(this.publicationsTravelFolderList) }); + + }); } @@ -319,7 +324,6 @@ export class PublicationsPage implements OnInit { this.getActions(); } - async closeDesktopComponent (xx?: any){ this.desktopComponent = { 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 b49b541c0..679a5a061 100644 --- a/src/app/pages/publications/view-publications/view-publications.page.html +++ b/src/app/pages/publications/view-publications/view-publications.page.html @@ -33,8 +33,9 @@
+ *ngFor="let publication of publicationList" + (click)="goToPublicationDetail(publication.DocumentId)" + >
image
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 1f5df530a..4995b61bb 100644 --- a/src/app/pages/publications/view-publications/view-publications.page.ts +++ b/src/app/pages/publications/view-publications/view-publications.page.ts @@ -5,6 +5,8 @@ import { Publication } from 'src/app/models/publication'; 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 { 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'; @@ -22,24 +24,27 @@ export class ViewPublicationsPage implements OnInit { folderId:string; error: any; + presidentialActionsStore = PresidentialActionsStore + publicationTravelFolderStore = PublicationTravelFolderStore + constructor( private loadingController: LoadingService, private modalController: ModalController, private publications: PublicationsService, private activatedRoute: ActivatedRoute, private router: Router ) { - this.item = new PublicationFolder(); - this.activatedRoute.paramMap.subscribe(params => { - console.log(params); - - if(params["params"]) { - this.folderId = params["params"].folderId; - console.log(params["params"]); - } - - }); - } + this.item = new PublicationFolder(); + this.activatedRoute.paramMap.subscribe(params => { + console.log(params); + + if(params["params"]) { + this.folderId = params["params"].folderId; + console.log(params["params"]); + } + + }); + } ngOnInit() { @@ -94,8 +99,10 @@ export class ViewPublicationsPage implements OnInit { this.showLoader = true; this.publications.GetPublications(this.folderId).subscribe(res=>{ - this.publicationList = new Array(); console.log(res); + + let data = []; + res.forEach(element => { let itemImage = { title: 'Title', @@ -114,15 +121,19 @@ export class ViewPublicationsPage implements OnInit { "OriginalFileName": '', "FileExtension": '', } - this.publicationList.push(item); + + // this.publicationList.push(item); + data.push(item) + }); - console.log(this.publicationList); + this.presidentialActionsStore.reset(data) + this.showLoader = false; }, (error)=>{ if(error.status == '404'){ this.error = 'Sem publicações disponíveis!'; - this.publicationList=null; + this.publicationList= []; } this.showLoader = false; 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 3cb0a5e9a..433f2dff6 100644 --- a/src/app/shared/publication/view-publications/view-publications.page.ts +++ b/src/app/shared/publication/view-publications/view-publications.page.ts @@ -34,7 +34,6 @@ export class ViewPublicationsPage implements OnInit { private publications: PublicationsService, ) { this.item = new PublicationFolder(); - } ngOnInit() { @@ -68,6 +67,7 @@ export class ViewPublicationsPage implements OnInit { event.target.complete(); }, 3000); } + close(){ this.closeDesktopComponent.emit(); } @@ -79,7 +79,7 @@ export class ViewPublicationsPage implements OnInit { }); } - getPublications(){ + getPublications() { this.showLoader = true; this.publications.GetPublications(this.folderId).subscribe(res=>{ @@ -116,8 +116,8 @@ export class ViewPublicationsPage implements OnInit { this.showLoader = false; - }); - + }) + } async AddPublication(publicationType:any, folderId:any) { @@ -145,7 +145,6 @@ export class ViewPublicationsPage implements OnInit { } - async viewPublicationDetail(publicationId:string) { console.log(publicationId); @@ -170,5 +169,4 @@ export class ViewPublicationsPage implements OnInit { } - } diff --git a/src/app/store/expediente-storage-service.service.ts b/src/app/store/expediente-storage-service.service.ts index 181a737a8..d4c91a99d 100644 --- a/src/app/store/expediente-storage-service.service.ts +++ b/src/app/store/expediente-storage-service.service.ts @@ -40,8 +40,8 @@ class ExpedienteStorageServiceService { setTimeout(()=>{ localstoreService.set(this.keyName, list) }, 10) - } + } diff --git a/src/app/store/presidential-actions-store.service.spec.ts b/src/app/store/presidential-actions-store.service.spec.ts new file mode 100644 index 000000000..eade32cff --- /dev/null +++ b/src/app/store/presidential-actions-store.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { PresidentialActionsStoreService } from './presidential-actions-store.service'; + +describe('PresidentialActionsStoreService', () => { + let service: PresidentialActionsStoreService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(PresidentialActionsStoreService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/store/presidential-actions-store.service.ts b/src/app/store/presidential-actions-store.service.ts new file mode 100644 index 000000000..9e48b54f5 --- /dev/null +++ b/src/app/store/presidential-actions-store.service.ts @@ -0,0 +1,46 @@ +import { Injectable } from '@angular/core'; +import { localstoreService } from './localstore.service' +import { AES, enc, SHA1 } from 'crypto-js' +import { Publication } from 'src/app/models/publication'; + +@Injectable({ + providedIn: 'root' +}) +export class PresidentialActionsStoreService { + + // main data + private _list: Publication[] = [] + // local storage keyName + private keyName: string; + + constructor() { + + this.keyName = (SHA1(this.constructor.name+ 'presidentialActions/local')).toString() + + setTimeout(()=>{ + let restore = localstoreService.get(this.keyName, []) + this._list = restore + }, 10) + + } + + get list() { + return this._list + } + + reset(list: Publication[]) { + this._list = list + + this.save(this._list) + } + + private save(list: Publication[]) { + setTimeout(()=> { + localstoreService.set(this.keyName, list) + }, 10) + } + +} + + +export const PresidentialActionsStore = new PresidentialActionsStoreService() \ No newline at end of file diff --git a/src/app/store/publication-event-folder.service.spec.ts b/src/app/store/publication-event-folder.service.spec.ts new file mode 100644 index 000000000..61516ad83 --- /dev/null +++ b/src/app/store/publication-event-folder.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { PublicationEventFolderService } from './publication-event-folder.service'; + +describe('PublicationEventFolderService', () => { + let service: PublicationEventFolderService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(PublicationEventFolderService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/store/publication-event-folder.service.ts b/src/app/store/publication-event-folder.service.ts new file mode 100644 index 000000000..cabdba605 --- /dev/null +++ b/src/app/store/publication-event-folder.service.ts @@ -0,0 +1,43 @@ +import { Injectable } from '@angular/core'; +import { localstoreService } from './localstore.service' +import { SHA1 } from 'crypto-js' +import { PublicationFolder } from '../models/publicationfolder'; + +@Injectable({ + providedIn: 'root' +}) +export class PublicationEventFolderService { + // main data + private _list: PublicationFolder[] = [] + // local storage keyName + private keyName: string; + + constructor() { + + this.keyName = (SHA1(this.constructor.name+ 'PublicationEventFolder/local')).toString() + + setTimeout(()=>{ + let restore = localstoreService.get(this.keyName, []) + this._list = restore + }, 10) + + } + + get list() { + return this._list + } + + reset(list: PublicationFolder[]) { + this._list = list + + this.save(this._list) + } + + private save(list: PublicationFolder[]) { + setTimeout(()=> { + localstoreService.set(this.keyName, list) + }, 10) + } +} + +export const PublicationEventFolderStorage = new PublicationEventFolderService() \ No newline at end of file diff --git a/src/app/store/publication-list.service.spec.ts b/src/app/store/publication-list.service.spec.ts new file mode 100644 index 000000000..c87726648 --- /dev/null +++ b/src/app/store/publication-list.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { PublicationListService } from './publication-list.service'; + +describe('PublicationListService', () => { + let service: PublicationListService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(PublicationListService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/store/publication-list.service.ts b/src/app/store/publication-list.service.ts new file mode 100644 index 000000000..3dc061079 --- /dev/null +++ b/src/app/store/publication-list.service.ts @@ -0,0 +1,42 @@ +import { Injectable } from '@angular/core' +import { Publication } from 'src/app/models/publication' +import { localstoreService } from './localstore.service' +import { SHA1 } from 'crypto-js' + +@Injectable({ + providedIn: 'root' +}) +export class PublicationListService { + + // main data + private _list: Publication[] = [] + // local storage keyName + private keyName: string; + + constructor() { + + this.keyName = (SHA1(this.constructor.name+ ' PublicationTravelFolder/local')).toString() + + setTimeout(()=>{ + let restore = localstoreService.get(this.keyName, []) + this._list = restore + }, 10) + + } + + get list() { + return this._list + } + + reset(list: Publication[]) { + this._list = list + + this.save(this._list) + } + + private save(list: Publication[]) { + setTimeout(()=> { + localstoreService.set(this.keyName, list) + }, 10) + } +} diff --git a/src/app/store/publication-travel-folder.service.spec.ts b/src/app/store/publication-travel-folder.service.spec.ts new file mode 100644 index 000000000..19bfb9971 --- /dev/null +++ b/src/app/store/publication-travel-folder.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { PublicationTravelFolderService } from './publication-travel-folder.service'; + +describe('PublicationTravelFolderService', () => { + let service: PublicationTravelFolderService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(PublicationTravelFolderService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/store/publication-travel-folder.service.ts b/src/app/store/publication-travel-folder.service.ts new file mode 100644 index 000000000..7bd4dadaa --- /dev/null +++ b/src/app/store/publication-travel-folder.service.ts @@ -0,0 +1,46 @@ +import { Injectable } from '@angular/core'; +import { localstoreService } from './localstore.service' +import { SHA1 } from 'crypto-js' +import { Publication } from 'src/app/models/publication'; +import { PublicationFolder } from '../models/publicationfolder'; + +@Injectable({ + providedIn: 'root' +}) +export class PublicationTravelFolderService { + + // main data + private _list: PublicationFolder[] = [] + // local storage keyName + private keyName: string; + + constructor() { + + this.keyName = (SHA1(this.constructor.name+ ' PublicationTravelFolder/local')).toString() + + setTimeout(()=>{ + let restore = localstoreService.get(this.keyName, []) + this._list = restore + }, 10) + + } + + get list() { + return this._list + } + + reset(list: PublicationFolder[]) { + this._list = list + + this.save(this._list) + } + + private save(list: PublicationFolder[]) { + setTimeout(()=> { + localstoreService.set(this.keyName, list) + }, 10) + } +} + + +export const PublicationTravelFolderStore = new PublicationTravelFolderService() \ No newline at end of file From f604c72575a4d326d873d8113825175395fd86f4 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 21 Jul 2021 20:26:41 +0100 Subject: [PATCH 7/9] Add publication to local storage --- .../pages/publications/publications.page.ts | 4 ++ .../view-publications.page.html | 2 +- .../view-publications.page.ts | 24 +++++----- src/app/services/publications.service.ts | 1 - .../view-publications.page.html | 2 +- .../view-publications.page.ts | 45 ++++++++++++------- src/app/store/publication-list.service.ts | 28 +++++++----- 7 files changed, 65 insertions(+), 41 deletions(-) diff --git a/src/app/pages/publications/publications.page.ts b/src/app/pages/publications/publications.page.ts index c49bc6570..0a6339a93 100644 --- a/src/app/pages/publications/publications.page.ts +++ b/src/app/pages/publications/publications.page.ts @@ -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() 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 679a5a061..f68f121d4 100644 --- a/src/app/pages/publications/view-publications/view-publications.page.html +++ b/src/app/pages/publications/view-publications/view-publications.page.html @@ -33,7 +33,7 @@
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 4995b61bb..ad9fa0fa1 100644 --- a/src/app/pages/publications/view-publications/view-publications.page.ts +++ b/src/app/pages/publications/view-publications/view-publications.page.ts @@ -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,9 +26,11 @@ 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, private publications: PublicationsService, @@ -71,7 +75,6 @@ export class ViewPublicationsPage implements OnInit { this.getPublications(); setTimeout(() => { - this.getPublications(); this.getPublicationDetail(); event.target.complete(); }, 3000); @@ -89,20 +92,18 @@ 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); let data = []; - + res.forEach(element => { let itemImage = { title: 'Title', @@ -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; }, diff --git a/src/app/services/publications.service.ts b/src/app/services/publications.service.ts index 9b5b4da46..f89044eaf 100644 --- a/src/app/services/publications.service.ts +++ b/src/app/services/publications.service.ts @@ -87,7 +87,6 @@ export class PublicationsService { params: params }; return this.http.get(`${geturl}`, options) - .pipe(catchError(this.handleError)); } GetPublicationById( publicationId: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 4a8950b02..b8b4f2aa0 100644 --- a/src/app/shared/publication/view-publications/view-publications.page.html +++ b/src/app/shared/publication/view-publications/view-publications.page.html @@ -34,7 +34,7 @@
image 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 433f2dff6..3b7e8a522 100644 --- a/src/app/shared/publication/view-publications/view-publications.page.ts +++ b/src/app/shared/publication/view-publications/view-publications.page.ts @@ -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(); @Output() goBacktoPublicationDetails = new EventEmitter(); + + + 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'] } - this.getPublications(); - this.getPublicationDetail(); + 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; diff --git a/src/app/store/publication-list.service.ts b/src/app/store/publication-list.service.ts index 3dc061079..cd507450b 100644 --- a/src/app/store/publication-list.service.ts +++ b/src/app/store/publication-list.service.ts @@ -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() \ No newline at end of file From fe211ae53db899f2b718f6a7518ce91bb4fa4c7e Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 21 Jul 2021 22:44:24 +0100 Subject: [PATCH 8/9] Add counter to localstorage --- src/app/home/home.page.html | 2 +- src/app/home/home.page.ts | 31 +++---------------- .../expediente/expediente.page.ts | 3 ++ .../pages/publications/publications.page.ts | 1 - .../view-publications.page.ts | 1 - .../expediente-storage-service.service.ts | 17 ++++++++-- 6 files changed, 23 insertions(+), 32 deletions(-) diff --git a/src/app/home/home.page.html b/src/app/home/home.page.html index cbba18d51..fb1a28344 100644 --- a/src/app/home/home.page.html +++ b/src/app/home/home.page.html @@ -3,7 +3,7 @@ - {{totalEvent}} + {{toDayEventStorage.eventsList.length}} Início diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts index 46a5cbbad..d60cc0446 100644 --- a/src/app/home/home.page.ts +++ b/src/app/home/home.page.ts @@ -10,6 +10,7 @@ import { NotificationsService } from '../services/notifications.service'; import { ModalController, AlertController, AnimationController, Platform } from '@ionic/angular'; import { NavigationExtras,Router,ActivatedRoute } from '@angular/router'; import { ToastService } from '../services/toast.service'; +import { ToDayEventStorage } from '../store/to-day-event-storage.service'; @Component({ selector: 'app-home', @@ -25,6 +26,9 @@ export class HomePage implements OnInit { totalExpediente = 0; profile: string; + + toDayEventStorage = ToDayEventStorage + adding: "intervenient" | "CC" = "intervenient"; mobileComponent = { showAddNewEvent: false, @@ -71,33 +75,6 @@ export class HomePage implements OnInit { this.mobilefirstConnect(); this.notificatinsservice.onReceviNotification(); } - this.count(); - - } - - async count() { - - // let date = new Date(); - // date.setMonth(date.getMonth() + 1); - // let start = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds(); - // let end = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() + " 23:59:59"; - - // this.profile = "mdgpr"; - // if (this.profile == "mdgpr") { - - // let mdOficialEvents = await this.eventService.getAllPrOficialEvents(start, end).toPromise(); - // let mdPessoalEvents = await this.eventService.getAllPrPessoalEvents(start, end).toPromise(); - // this.eventsList = mdOficialEvents.concat(mdPessoalEvents) - // this.totalEvent = this.eventsList.length; - - // } - // else { - // let prOficialEvents = await this.eventService.getAllPrOficialEvents(start, end).toPromise(); - // let prPessoalEvents = await this.eventService.getAllPrPessoalEvents(start, end).toPromise(); - // this.eventsList = prOficialEvents.concat(prPessoalEvents) - // this.totalEvent = this.eventsList.length; - - // } } diff --git a/src/app/pages/gabinete-digital/expediente/expediente.page.ts b/src/app/pages/gabinete-digital/expediente/expediente.page.ts index b7058ac9f..ad7abdaa8 100644 --- a/src/app/pages/gabinete-digital/expediente/expediente.page.ts +++ b/src/app/pages/gabinete-digital/expediente/expediente.page.ts @@ -5,6 +5,7 @@ import { ProcessesService } from 'src/app/services/processes.service'; import { ModalController } from '@ionic/angular'; import { AlertService } from 'src/app/services/alert.service'; import { ToastService } from 'src/app/services/toast.service'; +import { ExpedienteStorage } from 'src/app/store/expediente-storage-service.service'; @Component({ selector: 'app-expediente', @@ -21,6 +22,8 @@ export class ExpedientePage implements OnInit { taskslist:DailyWorkTask[] = []; serialNumber:string; + expedienteStorage = ExpedienteStorage + constructor( private processes:ProcessesService, private modalController: ModalController, diff --git a/src/app/pages/publications/publications.page.ts b/src/app/pages/publications/publications.page.ts index 0a6339a93..d864f1321 100644 --- a/src/app/pages/publications/publications.page.ts +++ b/src/app/pages/publications/publications.page.ts @@ -7,7 +7,6 @@ import { NewActionPage } from './new-action/new-action.page'; import { ViewPublicationsPage } from './view-publications/view-publications.page'; import { AnimationController } from '@ionic/angular'; -import { LoadingService } from 'src/app/services/loading.service'; import { Publication } from 'src/app/models/publication'; import { ActionsOptionsPage } from 'src/app/shared/popover/actions-options/actions-options.page'; import { EditActionPage } from './edit-action/edit-action.page'; 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 ad9fa0fa1..d523f38c3 100644 --- a/src/app/pages/publications/view-publications/view-publications.page.ts +++ b/src/app/pages/publications/view-publications/view-publications.page.ts @@ -5,7 +5,6 @@ import { Publication } from 'src/app/models/publication'; 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'; diff --git a/src/app/store/expediente-storage-service.service.ts b/src/app/store/expediente-storage-service.service.ts index d4c91a99d..9ea26c882 100644 --- a/src/app/store/expediente-storage-service.service.ts +++ b/src/app/store/expediente-storage-service.service.ts @@ -12,6 +12,7 @@ class ExpedienteStorageServiceService { // main data private _list: Event[] + private _count = 0 // local storage keyName private keyName: string; @@ -21,7 +22,8 @@ class ExpedienteStorageServiceService { setTimeout(()=>{ let restore = localstoreService.get(this.keyName, []) - this._list = restore + this._list = restore.list + this._count = restore.count }, 10) } @@ -30,15 +32,26 @@ class ExpedienteStorageServiceService { return this._list } + get count() { + return this._count + } + set count(value) { + this._count = value + } + reset(list: any) { this._list = list + this.count = this._list.length this.save(this._list) } private save(list: any) { setTimeout(()=>{ - localstoreService.set(this.keyName, list) + localstoreService.set(this.keyName, { + list: list, + count: this.count + }) }, 10) } From 547d0f9e84176a2d0bb07ec6a6881758b27cf8f3 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 21 Jul 2021 22:51:54 +0100 Subject: [PATCH 9/9] Improve counting --- .../expediente-storage-service.service.ts | 4 ++-- src/app/store/to-day-event-storage.service.ts | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/app/store/expediente-storage-service.service.ts b/src/app/store/expediente-storage-service.service.ts index 9ea26c882..759256a8e 100644 --- a/src/app/store/expediente-storage-service.service.ts +++ b/src/app/store/expediente-storage-service.service.ts @@ -22,8 +22,8 @@ class ExpedienteStorageServiceService { setTimeout(()=>{ let restore = localstoreService.get(this.keyName, []) - this._list = restore.list - this._count = restore.count + this._list = restore.list || [] + this._count = restore.count || 0 }, 10) } diff --git a/src/app/store/to-day-event-storage.service.ts b/src/app/store/to-day-event-storage.service.ts index ddcd3cb7b..5b44b1537 100644 --- a/src/app/store/to-day-event-storage.service.ts +++ b/src/app/store/to-day-event-storage.service.ts @@ -13,6 +13,7 @@ export class ToDayEventStorageService { private _eventsList: Event[] // local storage keyName private keyName: string; + private _count = 0 constructor() { @@ -20,26 +21,36 @@ export class ToDayEventStorageService { setTimeout(()=>{ - let restore = localstoreService.get(this.keyName, []) - this._eventsList = restore + let restore = localstoreService.get(this.keyName, {}) + this._eventsList = restore.eventsList || [] + this._count = restore.count || 0 }, 10) - } get eventsList() { return this._eventsList } + get count() { + return this._count + } + set count(value) { + this._count = value + } reset(eventsList: Event[]) { this._eventsList = eventsList + this.count = this._eventsList.length this.save(this._eventsList) } private save(eventsList: Event[]) { setTimeout(()=>{ - localstoreService.set(this.keyName,eventsList) + localstoreService.set(this.keyName,{ + eventsList, + count: this._eventsList + }) }, 10) }