diff --git a/package-lock.json b/package-lock.json index 3775f7bdb..f6d0aa1b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3079,6 +3079,13 @@ "integrity": "sha512-Xeabtfjw/OCa8tZUh3yVqomVNMztwmg0hXYrcX18r3+Zq0XYRSgNtsBHrye1rBgNkXYqblWQHZQErwrAC2UNxQ==", "requires": { "@types/cordova": "^0.0.34" + }, + "dependencies": { + "@types/cordova": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", + "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" + } } }, "@ionic-native/local-notifications": { @@ -11805,6 +11812,26 @@ "resolved": "https://registry.npmjs.org/ionic-angular/-/ionic-angular-3.9.10.tgz", "integrity": "sha512-4nmGrdpu4Zy3SZwF0AaS/3gDrbFGU1dV+zn1eqInFgFj9q20N1cIITgvyIcoxUI/IoqYiohsJX1rGY5vB/HrhQ==" }, + "ionic-image-loader": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/ionic-image-loader/-/ionic-image-loader-6.3.3.tgz", + "integrity": "sha512-X7AbaY3Yt3q0+kOjodjqYwTkXNhRTs3/P/afffaWLBPk5frsd7JCNaFae9U8iErwfOIbJ7VZmCHYMApBZ3Aqew==" + }, + "ionic-image-loader-v5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ionic-image-loader-v5/-/ionic-image-loader-v5-1.0.2.tgz", + "integrity": "sha512-SsFRVjA4p6nloF+xljMctj3Uc1a74rG7HA4nDQ3zJNZgLa8S/6GqR9fr8qDb7/L3441i4ICrdQSKyfAkddbELQ==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, "ionic-selectable": { "version": "4.9.0", "resolved": "https://registry.npmjs.org/ionic-selectable/-/ionic-selectable-4.9.0.tgz", diff --git a/package.json b/package.json index 36b691f73..be5ff886f 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@ionic-native/http": "^5.31.1", "@ionic-native/image-picker": "^5.36.0", "@ionic-native/in-app-browser": "^5.28.0", - "@ionic-native/ionic-webview": "^5.35.0", + "@ionic-native/ionic-webview": "^5.36.0", "@ionic-native/local-notifications": "^4.20.0", "@ionic-native/media": "^5.36.0", "@ionic-native/media-capture": "^5.36.0", @@ -120,6 +120,8 @@ "hammerjs": "^2.0.8", "http-server": "^0.12.3", "ionic-angular": "^3.9.10", + "ionic-image-loader": "^6.3.3", + "ionic-image-loader-v5": "^1.0.2", "ionic-selectable": "^4.7.1", "ionic2-alpha-scroll": "^2.0.1", "ionic2-calendar": "^0.6.6", diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 3bbae25b0..574e0f741 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -67,6 +67,7 @@ import { StreamingMedia } from '@ionic-native/streaming-media/ngx'; import { PhotoViewer } from '@ionic-native/photo-viewer/ngx'; import {NgxImageCompressService} from 'ngx-image-compress'; import { CustomImageCachePageRoutingModule } from './services/file/custom-image-cache/custom-image-cache-routing.module'; +import { IonicImageLoaderComponent, IonicImageLoaderModule } from 'ionic-image-loader-v5'; /* import { FCM } from '@ionic-native/fcm/ngx'; import { FirebaseX } from '@ionic-native/firebase-x/ngx'; */ @@ -82,10 +83,13 @@ import { FirebaseX } from '@ionic-native/firebase-x/ngx'; */ provide: DateAdapter, useFactory: adapterFactory }), + + IonicImageLoaderModule, IonicModule.forRoot({animated: false}), IonicStorageModule.forRoot({ name: '__mydb', driverOrder: ['indexeddb', 'sqlite', 'websql'] + }), AppRoutingModule, diff --git a/src/app/pages/agenda/agenda.page.ts b/src/app/pages/agenda/agenda.page.ts index e67e9bf0c..a851161b5 100644 --- a/src/app/pages/agenda/agenda.page.ts +++ b/src/app/pages/agenda/agenda.page.ts @@ -9,6 +9,7 @@ import { momentG } from 'src/plugin/momentG'; import { DomSanitizer } from "@angular/platform-browser"; import { EventPerson } from 'src/app/models/eventperson.model'; import { removeDuplicate } from 'src/plugin/removeDuplicate.js'; +import { Storage } from '@ionic/storage'; // showTimeline import { setHours, setMinutes } from 'date-fns'; @@ -179,7 +180,8 @@ export class AgendaPage implements OnInit { private sqliteservice: SqliteService, private platform: Platform, private backgroundservice: BackgroundService, - public ThemeService: ThemeService + public ThemeService: ThemeService, + private storage:Storage ) { this.dateAdapter.setLocale('es'); @@ -770,6 +772,27 @@ export class AgendaPage implements OnInit { addEventToDB(response, profile) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + let responseArray = []; + response.forEach(element => { + let event = { + CalendarId: element.CalendarId, + CalendarName: element.CalendarName, + EndDate: element.EndDate, + EventId: element.EventId, + HasAttachments: element.HasAttachments, + HumanDate: element.HumanDate, + IsAllDayEvent: element.IsAllDayEvent, + Location: element.Location, + StartDate: element.StartDate, + Subject: element.Subject, + Profile: profile + } + responseArray.push(event) + + }); + this.storage.set('agendaResponse',responseArray).then(() => { + console.log('Agenda data saved') + }) } else { if (response.length > 0) { @@ -796,21 +819,35 @@ export class AgendaPage implements OnInit { getFromDB() { console.log('ALL EVENTS FROM DB AGENDA OFFLINE') - this.sqliteservice.getAllEvents().then((events: any[]) => { - console.log('ALL EVENTS FROM DB', events) - let eventArray = []; - - this.trasnformDataDB(events) - this.updateEventListBox() - - this.myCal.update(); - this.myCal.loadEvents(); - - this.showLoader = false; - this.showTimeline = true; - - - }) + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.get('agendaResponse').then((events) => { + this.trasnformDataDB(events) + this.updateEventListBox() + + this.myCal.update(); + this.myCal.loadEvents(); + + this.showLoader = false; + this.showTimeline = true; + }) + } else { + this.sqliteservice.getAllEvents().then((events: any[]) => { + console.log('ALL EVENTS FROM DB', events) + let eventArray = []; + + this.trasnformDataDB(events) + this.updateEventListBox() + + this.myCal.update(); + this.myCal.loadEvents(); + + this.showLoader = false; + this.showTimeline = true; + + + }) + } + } updateEventListBox() { 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 4175b8b86..4c9c36f76 100644 --- a/src/app/pages/agenda/view-event/view-event.page.ts +++ b/src/app/pages/agenda/view-event/view-event.page.ts @@ -21,6 +21,7 @@ import { BackgroundService } from 'src/app/services/background.service'; import { StorageService } from 'src/app/services/storage.service'; import { ThemeService } from 'src/app/services/theme.service' import { RouteService } from 'src/app/services/route.service'; +import { Storage } from '@ionic/storage'; @Component({ @@ -74,6 +75,7 @@ export class ViewEventPage implements OnInit { private storage: StorageService, public ThemeService: ThemeService, private RouteService: RouteService, + private ionicStorage: Storage ) { this.isEventEdited = false; this.loadedEvent = new Event(); @@ -394,6 +396,9 @@ export class ViewEventPage implements OnInit { addEventToDb(data) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.ionicStorage.set('eventDetails', data).then(() => { + console.log('Details event saved') + }) } else { let event = { Attendees: JSON.stringify(data.Attendees) || JSON.stringify(''), @@ -423,33 +428,40 @@ export class ViewEventPage implements OnInit { getFromDb() { const loader = this.toastService.loading(); - this.sqliteservice.getEventById(this.eventId).then((event) => { - let arrayevent = []; - console.log('EVENT ATTENDEES',event[0].Attendees) - let elemet = { - Attendees: (typeof JSON.parse(event[0].Attendees) === 'undefined') ? "" : JSON.parse(event[0].Attendees), - Body: JSON.parse(event[0].Body) || "", - CalendarId: event[0].CalendarId, - CalendarName: event[0].CalendarName, - Category: event[0].Category, - EndDate: event[0].EndDate, - EventId: event[0].EventId, - EventRecurrence: JSON.parse(event[0].EventRecurrence) || "", - EventType: event[0].EventType, - HasAttachments: event[0].HasAttachments, - IsAllDayEvent: event[0].IsAllDayEvent, - IsMeeting: event[0].IsMeeting, - IsRecurring: event[0].IsRecurring, - Location: event[0].Location, - Organizer: JSON.parse(event[0].Organizer) || "", - StartDate: event[0].StartDate, - Subject: event[0].Subject, - TimeZone: event[0].TimeZone - } - arrayevent.push(elemet); - this.loadedEvent = arrayevent[0]; - console.log("Event ditails local,", elemet) - }) + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.ionicStorage.get('eventDetails').then((events) =>{ + this.loadedEvent = events; + }) + } else { + this.sqliteservice.getEventById(this.eventId).then((event) => { + let arrayevent = []; + console.log('EVENT ATTENDEES',event[0].Attendees) + let elemet = { + Attendees: (typeof JSON.parse(event[0].Attendees) === 'undefined') ? "" : JSON.parse(event[0].Attendees), + Body: JSON.parse(event[0].Body) || "", + CalendarId: event[0].CalendarId, + CalendarName: event[0].CalendarName, + Category: event[0].Category, + EndDate: event[0].EndDate, + EventId: event[0].EventId, + EventRecurrence: JSON.parse(event[0].EventRecurrence) || "", + EventType: event[0].EventType, + HasAttachments: event[0].HasAttachments, + IsAllDayEvent: event[0].IsAllDayEvent, + IsMeeting: event[0].IsMeeting, + IsRecurring: event[0].IsRecurring, + Location: event[0].Location, + Organizer: JSON.parse(event[0].Organizer) || "", + StartDate: event[0].StartDate, + Subject: event[0].Subject, + TimeZone: event[0].TimeZone + } + arrayevent.push(elemet); + this.loadedEvent = arrayevent[0]; + console.log("Event ditails local,", elemet) + }) + } + loader.remove() } } diff --git a/src/app/pages/events/events.page.ts b/src/app/pages/events/events.page.ts index 056d5c9d8..e4055a9a8 100644 --- a/src/app/pages/events/events.page.ts +++ b/src/app/pages/events/events.page.ts @@ -21,6 +21,7 @@ import { NetworkConnectionService } from 'src/app/services/network-connection.se import { BackgroundService } from 'src/app/services/background.service'; import { momentG } from 'src/plugin/momentG'; import { ThemeService } from 'src/app/services/theme.service' +import { Storage } from '@ionic/storage'; @Component({ selector: 'app-events', templateUrl: './events.page.html', @@ -95,7 +96,8 @@ export class EventsPage implements OnInit { private sqliteservice: SqliteService, private networkconnection: NetworkConnectionService, private backgroundservice: BackgroundService, - public ThemeService: ThemeService + public ThemeService: ThemeService, + private storage: Storage ) { /* this.existingScreenOrientation = this.screenOrientation.type; console.log(this.existingScreenOrientation); */ @@ -317,6 +319,9 @@ export class EventsPage implements OnInit { addEventToDb(list) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.set('events', list).then(() => { + console.log('Init events saved') + }) } else { if (list.length > 0) { list.forEach(element => { @@ -359,6 +364,9 @@ export class EventsPage implements OnInit { addProcessToDb(list) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.set('process', list).then(() => { + console.log('Init process saved') + }) } else { if (list.length > 0) { list.forEach(element => { @@ -376,6 +384,23 @@ export class EventsPage implements OnInit { let dateToday = date.getFullYear() + "-" + month + "-" + date.getDate(); console.log('dateeeeee', dateToday) if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.get('events').then((events: any[]) => { + console.log('Today events',events) + let todayEvents = new Array() + this.listToPresent = events + this.totalEvent = this.listToPresent.length + this.currentEvent = this.listToPresent[0].Subject + this.currentHoursMinutes = this.listToPresent[0].StartDate + console.log("All events from local,", events) + }) + + this.storage.get('process').then((process: any[]) => { + console.log('OFOFOFOOF22222', process) + const ExpedienteTask = process.map(e => this.expedienteTaskPipe.transform(e)) + this.listToPresentexpediente = ExpedienteTask; + }) + + this.showLoader = false; } else { this.sqliteservice.getAllEvents().then((event: any[]) => { diff --git a/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts b/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts index 96efa78ed..231577b0f 100644 --- a/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts +++ b/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts @@ -19,6 +19,7 @@ import { Platform } from '@ionic/angular'; import { ThemeService } from 'src/app/services/theme.service' import { OfflineManagerService } from 'src/app/services/offline-manager.service'; import { RouteService } from 'src/app/services/route.service'; +import { Storage } from '@ionic/storage'; @Component({ selector: 'app-approve-event', @@ -63,7 +64,8 @@ export class ApproveEventPage implements OnInit { private platform: Platform, private backgroundservice: BackgroundService, public ThemeService: ThemeService, - private offlineManager: OfflineManagerService + private offlineManager: OfflineManagerService, + private storage: Storage ) { this.activatedRoute.paramMap.subscribe(params => { // console.log(params["params"]); @@ -110,6 +112,9 @@ export class ApproveEventPage implements OnInit { addProcessToDB(data) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.set('approve_event_detils', data).then(() => { + console.log('APPROVE EVENT DETAILS SAVED') + }) } else { this.sqliteservice.updateProcess(data); } @@ -117,69 +122,85 @@ export class ApproveEventPage implements OnInit { getProcessFromDB() { - this.platform.ready().then(() => { - - this.sqliteservice.getProcessById(this.serialNumber).then((process) => { - console.log('event aprove serial', process) - - var doc; - var action = []; - var origi = []; - var wordafi = {}; - if (process[0].Documents === "null" || process[0].Documents === "undefined") { - doc = [] - } else { - doc = JSON.parse(process[0].Documents) - } - - if (process[0].actions === "null" || process[0].actions === "undefined") { - action = [] - } else { - action = JSON.parse(process[0].Documents) - } - - if (process[0].originator === "null" || process[0].originator === "undefined") { - origi = [] - } else { - origi = JSON.parse(process[0].Documents) - } - if (process[0].workflowInstanceDataFields === "null" || process[0].workflowInstanceDataFields === "undefined") { - wordafi = [] - } else { - wordafi = JSON.parse(process[0].workflowInstanceDataFields) - } - - let task = { - "Documents": doc, - "actions": action, - "activityInstanceName": process[0].activityInstanceName, - "formURL": process[0].formURL, - "originator": origi, - "serialNumber": process[0].serialNumber, - "taskStartDate": process[0].taskStartDate, - "totalDocuments": process[0].totalDocuments, - "workflowDisplayName": process[0].workflowDisplayName, - "workflowID": process[0].workflowID, - "workflowInstanceDataFields": wordafi, - "workflowInstanceFolio": process[0].workflowInstanceFolio, - "workflowInstanceID": process[0].workflowInstanceID, - "workflowName": process[0].workflowInstanceID - - } - - this.loadedEvent = task - console.log('offline event', this.loadedEvent); - - this.today = new Date(this.loadedEvent.workflowInstanceDataFields.StartDate); - - this.customDate = this.days[this.today.getDay()] + ", " + this.today.getDate() + " de " + (this.months[this.today.getMonth()]); - - let instanceId = this.loadedEvent.workflowInstanceDataFields.InstanceId; - this.loadedAttachments = this.loadedEvent.Documents; - console.log('Attatara', this.loadedAttachments) - + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.get('approve_event_detils').then((event) => { + this.loadedEvent = event + console.log('offline event', this.loadedEvent); + + this.today = new Date(this.loadedEvent.workflowInstanceDataFields.StartDate); + + this.customDate = this.days[this.today.getDay()] + ", " + this.today.getDate() + " de " + (this.months[this.today.getMonth()]); + + let instanceId = this.loadedEvent.workflowInstanceDataFields.InstanceId; + this.loadedAttachments = this.loadedEvent.Documents; + console.log('Attatara', this.loadedAttachments) }) - }) + } else { + this.platform.ready().then(() => { + + this.sqliteservice.getProcessById(this.serialNumber).then((process) => { + console.log('event aprove serial', process) + + var doc; + var action = []; + var origi = []; + var wordafi = {}; + if (process[0].Documents === "null" || process[0].Documents === "undefined") { + doc = [] + } else { + doc = JSON.parse(process[0].Documents) + } + + if (process[0].actions === "null" || process[0].actions === "undefined") { + action = [] + } else { + action = JSON.parse(process[0].Documents) + } + + if (process[0].originator === "null" || process[0].originator === "undefined") { + origi = [] + } else { + origi = JSON.parse(process[0].Documents) + } + if (process[0].workflowInstanceDataFields === "null" || process[0].workflowInstanceDataFields === "undefined") { + wordafi = [] + } else { + wordafi = JSON.parse(process[0].workflowInstanceDataFields) + } + + let task = { + "Documents": doc, + "actions": action, + "activityInstanceName": process[0].activityInstanceName, + "formURL": process[0].formURL, + "originator": origi, + "serialNumber": process[0].serialNumber, + "taskStartDate": process[0].taskStartDate, + "totalDocuments": process[0].totalDocuments, + "workflowDisplayName": process[0].workflowDisplayName, + "workflowID": process[0].workflowID, + "workflowInstanceDataFields": wordafi, + "workflowInstanceFolio": process[0].workflowInstanceFolio, + "workflowInstanceID": process[0].workflowInstanceID, + "workflowName": process[0].workflowInstanceID + + } + + this.loadedEvent = task + console.log('offline event', this.loadedEvent); + + this.today = new Date(this.loadedEvent.workflowInstanceDataFields.StartDate); + + this.customDate = this.days[this.today.getDay()] + ", " + this.today.getDate() + " de " + (this.months[this.today.getMonth()]); + + let instanceId = this.loadedEvent.workflowInstanceDataFields.InstanceId; + this.loadedAttachments = this.loadedEvent.Documents; + console.log('Attatara', this.loadedAttachments) + + }) + }) + } + console.log('Offlineee') } diff --git a/src/app/pages/gabinete-digital/event-list/event-list.page.ts b/src/app/pages/gabinete-digital/event-list/event-list.page.ts index d4c6f126d..52ffc12d5 100644 --- a/src/app/pages/gabinete-digital/event-list/event-list.page.ts +++ b/src/app/pages/gabinete-digital/event-list/event-list.page.ts @@ -14,6 +14,7 @@ import { Platform } from '@ionic/angular'; import { SortService } from 'src/app/services/functions/sort.service'; import { ThemeService } from 'src/app/services/theme.service' import { RouteService } from 'src/app/services/route.service'; +import { Storage } from '@ionic/storage'; @Component({ selector: 'app-event-list', @@ -46,7 +47,8 @@ export class EventListPage implements OnInit { private sortService: SortService, private backgroundservice: BackgroundService, public ThemeService: ThemeService, - private RouteService: RouteService + private RouteService: RouteService, + private storage: Storage ) { } ngOnInit() { @@ -83,22 +85,37 @@ export class EventListPage implements OnInit { getEventToAproveFromDB() { - this.platform.ready().then(() => { + - this.sqliteservice.getListOfEventAprove('Agenda Oficial MDGPR', 'Agenda Pessoal MDGPR').then((event: any[]) => { - - this.eventsMDGPRList = this.sortService.sortDate(this.transformaDataDB(event), 'taskStartDate') - //this.eventsMDGPRList = this.eventsMDGPRList.filter(element => element.interveners != null) - console.log('MD event to aprove', this.eventsMDGPRList) + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.get('event-to-aproveMD').then((events) => { + this.eventsMDGPRList = events + }) + + this.storage.get('event-to-aprovePR').then((events) => { + this.eventsPRList = events + }) + } else { + this.platform.ready().then(() => { + this.sqliteservice.getListOfEventAprove('Agenda Oficial MDGPR', 'Agenda Pessoal MDGPR').then((event: any[]) => { + + this.eventsMDGPRList = this.sortService.sortDate(this.transformaDataDB(event), 'taskStartDate') + //this.eventsMDGPRList = this.eventsMDGPRList.filter(element => element.interveners != null) + console.log('MD event to aprove', this.eventsMDGPRList) + + }) + + this.sqliteservice.getListOfEventAprove('Agenda Oficial PR', 'Agenda Pessoal PR').then((event: any[]) => { + this.eventsPRList = this.sortService.sortDate(this.transformaDataDB(event), 'taskStartDate') + console.log('PR event to aprove', this.eventsPRList) + + }) }) - this.sqliteservice.getListOfEventAprove('Agenda Oficial PR', 'Agenda Pessoal PR').then((event: any[]) => { - this.eventsPRList = this.sortService.sortDate(this.transformaDataDB(event), 'taskStartDate') - console.log('PR event to aprove', this.eventsPRList) + } + - }) - }) console.log('Offlineee') } @@ -143,16 +160,24 @@ export class EventListPage implements OnInit { let mdEventsPessoal = await this.processes.GetTasksList('Agenda Pessoal MDGPR', false).toPromise(); this.eventsMDGPRList = mdEventsOficial.concat(mdEventsPessoal); this.eventsMDGPRList = this.sortService.sortDate(this.eventsMDGPRList, 'taskStartDate') + this.eventsMDGPRList = this.sortService.sortArrayByDate(this.eventsMDGPRList) console.log('MD EVENT TO APROVE ONLINE',this.eventsMDGPRList) - this.eventaprovacaostore.resetmd(this.sortService.sortArrayByDate(this.eventsMDGPRList).reverse()); + this.storage.set('event-to-aproveMD',this.eventsMDGPRList).then(() => { + console.log(' EVENTMD TO APROVE SAVED') + }) + //this.eventaprovacaostore.resetmd(this.sortService.sortArrayByDate(this.eventsMDGPRList).reverse()); } else if (this.segment == 'PR') { let prEventsOficial = await this.processes.GetTasksList('Agenda Oficial PR', false).toPromise(); let prEventsPessoal = await this.processes.GetTasksList('Agenda Pessoal PR', false).toPromise(); this.eventsPRList = prEventsOficial.concat(prEventsPessoal); this.eventsPRList = this.sortService.sortDate(this.eventsPRList, 'taskStartDate') + this.eventsPRList = this.sortService.sortArrayByDate(this.eventsPRList) console.log('PR EVENT TO APROVE ONLINE',this.eventsPRList) - this.eventaprovacaostore.resetpr(this.sortService.sortArrayByDate(this.eventsPRList).reverse()); + this.storage.set('event-to-aprovePR',this.eventsPRList).then(() => { + console.log(' EVENTPR TO APROVE SAVED') + }) + //this.eventaprovacaostore.resetpr(this.sortService.sortArrayByDate(this.eventsPRList).reverse()); } this.showLoader = false; this.skeletonLoader = false @@ -162,6 +187,8 @@ export class EventListPage implements OnInit { }) } + + async openApproveModal(eventSerialNumber, event) { const modal = await this.modalController.create({ component: ApproveEventModalPage, diff --git a/src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts b/src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts index c1a167d21..2ac4ac6ad 100644 --- a/src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts +++ b/src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts @@ -33,6 +33,7 @@ import { BackgroundService } from 'src/app/services/background.service'; import { NewGroupPage } from 'src/app/pages/chat/new-group/new-group.page'; import { DataService } from 'src/app/services/data.service'; import { RouteService } from 'src/app/services/route.service'; +import { Storage } from '@ionic/storage'; @Component({ selector: 'app-expediente-detail', @@ -82,6 +83,7 @@ export class ExpedienteDetailPage implements OnInit { private backgroundservice: BackgroundService, public ThemeService: ThemeService, private dataService: DataService, + private storage: Storage ) { this.activatedRoute.paramMap.subscribe(params => { if (params["params"].SerialNumber) { @@ -112,63 +114,106 @@ export class ExpedienteDetailPage implements OnInit { updateProcessDB(res) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.set('expediente_details',res).then(() =>{ + console.log('EXPEDIENTE DETAILS SAVED') + }) } else { this.sqliteservice.updateProcess(res) } } getFromDB() { - - this.platform.ready().then(() => { - this.onlinecheck = false; - this.sqliteservice.getProcessById(this.serialNumber).then((process) => { - console.log("expedient ditail", process) - - var workflow = JSON.parse(process[0].workflowInstanceDataFields); - var origina - if (process[0].originator === "undefined") { - origina = "" - } else { - origina = JSON.parse(process[0].originator) - } - + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.get('expediente_details').then((process) => { this.task = { - "SerialNumber": process[0].serialNumber, - "Folio": workflow.Subject, - "Senders": origina.email || process[0].originator, - "CreateDate": momentG(new Date(process[0].taskStartDate), 'yyyy-MM-dd HH:mm:ss'), - "DocumentURL": workflow.ViewerRequest, - "Remetente": workflow.Sender, - "Note": workflow.TaskMessage || workflow.Note, - "FolderId": workflow.FolderID, - "FsId": workflow.FsId, - "DocId": workflow.DocID, - "WorkflowName": process[0].workflowDisplayName, - "Status": workflow.Status, - "DispatchNumber": workflow.DispatchNumber, - "AttachmentsProcessLastInstanceID": workflow.AttachmentsProcessLastInstanceID, - "InstanceID": workflow.InstanceID + "SerialNumber": process.serialNumber, + "Folio": process.workflowInstanceDataFields.Subject, + "Senders": process.originator || process.originator, + "CreateDate": momentG(new Date(process.taskStartDate), 'yyyy-MM-dd HH:mm:ss'), + "DocumentURL": process.workflowInstanceDataFields.ViewerRequest, + "Remetente": process.workflowInstanceDataFields.Sender, + "Note": process.workflowInstanceDataFields.TaskMessage || process.workflowInstanceDataFields.Note, + "FolderId": process.workflowInstanceDataFields.FolderID, + "FsId": process.workflowInstanceDataFields.FsId, + "DocId": process.workflowInstanceDataFields.DocID, + "WorkflowName": process.workflowDisplayName, + "Status": process.workflowInstanceDataFields.Status, + "DispatchNumber": process.workflowInstanceDataFields.DispatchNumber, + "AttachmentsProcessLastInstanceID": process.workflowInstanceDataFields.AttachmentsProcessLastInstanceID, + "InstanceID": process.workflowInstanceDataFields.InstanceID } this.fulltask = { - Documents: JSON.parse(process[0].Documents), - actions: JSON.parse(process[0].actions), - activityInstanceName: process[0].activityInstanceName, - formURL: process[0].formURL, - interveners: process[0].interveners, - originator: JSON.parse(process[0].originator), - serialNumber: process[0].serialNumber, - taskStartDate: process[0].taskStartDate, - totalDocuments: process[0].totalDocuments, - workflowDisplayName: process[0].workflowDisplayName, - workflowID: process[0].workflowID, - workflowInstanceDataFields: JSON.parse(process[0].workflowInstanceDataFields), - workflowInstanceFolio: process[0].workflowInstanceFolio, - workflowInstanceID: process[0].workflowInstanceID, - workflowName: process[0].workflowName, + Documents: process.Documents, + actions: process.actions, + activityInstanceName: process.activityInstanceName, + formURL: process.formURL, + interveners: process.interveners, + originator: process.originator, + serialNumber: process.serialNumber, + taskStartDate: process.taskStartDate, + totalDocuments: process.totalDocuments, + workflowDisplayName: process.workflowDisplayName, + workflowID: process.workflowID, + workflowInstanceDataFields: process.workflowInstanceDataFields, + workflowInstanceFolio: process.workflowInstanceFolio, + workflowInstanceID: process.workflowInstanceID, + workflowName: process.workflowName, } - }) - }) + } else { + this.platform.ready().then(() => { + this.onlinecheck = false; + this.sqliteservice.getProcessById(this.serialNumber).then((process) => { + console.log("expedient ditail", process) + + var workflow = JSON.parse(process[0].workflowInstanceDataFields); + var origina + if (process[0].originator === "undefined") { + origina = "" + } else { + origina = JSON.parse(process[0].originator) + } + + this.task = { + "SerialNumber": process[0].serialNumber, + "Folio": workflow.Subject, + "Senders": origina.email || process[0].originator, + "CreateDate": momentG(new Date(process[0].taskStartDate), 'yyyy-MM-dd HH:mm:ss'), + "DocumentURL": workflow.ViewerRequest, + "Remetente": workflow.Sender, + "Note": workflow.TaskMessage || workflow.Note, + "FolderId": workflow.FolderID, + "FsId": workflow.FsId, + "DocId": workflow.DocID, + "WorkflowName": process[0].workflowDisplayName, + "Status": workflow.Status, + "DispatchNumber": workflow.DispatchNumber, + "AttachmentsProcessLastInstanceID": workflow.AttachmentsProcessLastInstanceID, + "InstanceID": workflow.InstanceID + } + + this.fulltask = { + Documents: JSON.parse(process[0].Documents), + actions: JSON.parse(process[0].actions), + activityInstanceName: process[0].activityInstanceName, + formURL: process[0].formURL, + interveners: process[0].interveners, + originator: JSON.parse(process[0].originator), + serialNumber: process[0].serialNumber, + taskStartDate: process[0].taskStartDate, + totalDocuments: process[0].totalDocuments, + workflowDisplayName: process[0].workflowDisplayName, + workflowID: process[0].workflowID, + workflowInstanceDataFields: JSON.parse(process[0].workflowInstanceDataFields), + workflowInstanceFolio: process[0].workflowInstanceFolio, + workflowInstanceID: process[0].workflowInstanceID, + workflowName: process[0].workflowName, + } + + }) + }) + } + } diff --git a/src/app/pages/gabinete-digital/expediente/expediente.page.ts b/src/app/pages/gabinete-digital/expediente/expediente.page.ts index fbb867aa7..1a01b95dc 100644 --- a/src/app/pages/gabinete-digital/expediente/expediente.page.ts +++ b/src/app/pages/gabinete-digital/expediente/expediente.page.ts @@ -9,6 +9,7 @@ import { Platform } from '@ionic/angular'; import { BackgroundService } from '../../../services/background.service'; import { ThemeService } from 'src/app/services/theme.service' import { SortService } from 'src/app/services/functions/sort.service'; +import {Storage } from '@ionic/storage'; @Component({ selector: 'app-expediente', @@ -40,6 +41,7 @@ export class ExpedientePage implements OnInit { private backgroundservice: BackgroundService, public ThemeService: ThemeService, private sortService: SortService, + private storage: Storage ) { } ngOnInit() { @@ -112,63 +114,48 @@ export class ExpedientePage implements OnInit { addProcessTODb(task) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.set('gabinete-expediente',task).then(() => { + console.log('GABINETE EXPEDIENTE SAVED') + }) } else { this.sqliteservice.addProcess(task); } } - SqliteAddExpediente(list) { - list.forEach((expediente) => { - let data = { - serialNumber: expediente.serialNumber, - workflowInstanceFolio: expediente.workflowInstanceFolio, - Documents: expediente.Documents, - actions: expediente.actions, - activityInstanceName: expediente.activityInstanceName, - formURL: expediente.formURL, - originator: expediente.originator, - taskStartDate: expediente.taskStartDate, - totalDocuments: expediente.totalDocuments, - workflowDisplayName: expediente.workflowDisplayName, - workflowID: expediente.workflowID, - workflowInstanceDataFields: expediente.workflowInstanceDataFields, - workflowInstanceID: expediente.workflowInstanceID, - workflowName: expediente.workflowName - } - - this.sqliteservice.addExpediente(data); - }) - - } - getEventsFromLocalDb() { - this.taskslist = new Array(); - this.sqliteservice.getprocessByworkflow("Expediente").then((expediente: any[]) => { - console.log("All expedientes from local,", expediente) - - expediente.forEach((element) => { - - var workflow = JSON.parse(element.workflowInstanceDataFields); - - let exped = { - "CreateDate": element.taskStartDate, - "DocumentsQty": element.totalDocuments, - "Senders": workflow.Senders, - "SerialNumber": element.serialNumber, - "Status": workflow.Status, - "Subject": workflow.Subject, - "WorkflowName": element.workflowDisplayName, - "activityInstanceName": element.activityInstanceName - } - - this.taskslist.push(exped) - - }); - - this.listToPresent = this.taskslist - - }) + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.get('gabinete-expediente').then((expediente) => { + this.listToPresent = expediente + }) + } else { + this.taskslist = new Array(); + this.sqliteservice.getprocessByworkflow("Expediente").then((expediente: any[]) => { + console.log("All expedientes from local,", expediente) + + expediente.forEach((element) => { + + var workflow = JSON.parse(element.workflowInstanceDataFields); + + let exped = { + "CreateDate": element.taskStartDate, + "DocumentsQty": element.totalDocuments, + "Senders": workflow.Senders, + "SerialNumber": element.serialNumber, + "Status": workflow.Status, + "Subject": workflow.Subject, + "WorkflowName": element.workflowDisplayName, + "activityInstanceName": element.activityInstanceName + } + + this.taskslist.push(exped) + + }); + + this.listToPresent = this.taskslist + + }) + } } } diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.ts b/src/app/pages/gabinete-digital/gabinete-digital.page.ts index c3c98059d..285af08d2 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.ts @@ -31,6 +31,7 @@ import { Platform } from '@ionic/angular'; import { BackgroundService } from 'src/app/services/background.service'; import { SortService } from 'src/app/services/functions/sort.service'; import { DataService } from 'src/app/services/data.service'; +import { Storage } from '@ionic/storage'; @Component({ selector: 'app-gabinete-digital', @@ -135,6 +136,7 @@ export class GabineteDigitalPage implements OnInit, DoCheck { public ThemeService: ThemeService, private sortService: SortService, private dataService: DataService, + private storage: Storage ) { this.loggeduser = authService.ValidatedUser; @@ -215,7 +217,9 @@ export class GabineteDigitalPage implements OnInit, DoCheck { addProcessToDB(data) { this.platform.ready().then(() => { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { - + this.storage.set('GabineteProcess', data).then(() => { + console.log('Gabinete process saved') + }) } else { data.forEach(element => { @@ -245,39 +249,77 @@ export class GabineteDigitalPage implements OnInit, DoCheck { getAllProcessFromDB() { this.hideRefreshButton(); + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.get('GabineteProcess').then((allprocess: any[]) => { + console.log('ALL PROCESS WEB',allprocess ) + allprocess.forEach(element => { + let date = new Date(element.taskStartDate); + date.setMonth(date.getMonth() + 1); + let taskDate = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds(); + + let task = { + "SerialNumber": element.serialNumber, + "Folio": element.workflowInstanceDataFields.Subject, + "Senders": element.workflowInstanceDataFields.Sender, + //"CreateDate": taskDate, + "CreateDate": new Date(element.taskStartDate), + "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, + "Remetente": element.workflowInstanceDataFields.Remetente, + "DocumentsQty": element.totalDocuments, + "DocId": element.workflowInstanceDataFields.DispatchDocId, + "FolderID": element.workflowInstanceDataFields.FolderID, + "WorkflowName": element.workflowDisplayName, + "activityInstanceName": element.activityInstanceName, + "Status": element.workflowInstanceDataFields.Status, + "Agenda": element.workflowInstanceDataFields.Agenda, + "customDate": this.setFormatDate(new Date(element.workflowInstanceDataFields.StartDate), new Date(element.workflowInstanceDataFields.EndDate), element.workflowInstanceDataFields.IsAllDayEvent), + } + + this.allProcessesList.push(task); + this.allProcessesList = removeDuplicate(this.allProcessesList); + this.allProcessesList = this.sortService.sortDate(this.allProcessesList, 'CreateDate') + + }); + }) + } else { + this.sqliteservice.getAllProcess().then((allprocess: any[]) => { + allprocess.forEach(element => { + let date = new Date(element.taskStartDate); + date.setMonth(date.getMonth() + 1); + let taskDate = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds(); + + var workflowInstanceDataFields = JSON.parse(element.workflowInstanceDataFields); + + let task = { + "SerialNumber": element.serialNumber, + "Folio": workflowInstanceDataFields.Subject, + "Senders": workflowInstanceDataFields.Sender, + "CreateDate": taskDate, + "DocumentURL": workflowInstanceDataFields.ViewerRequest, + "Remetente": workflowInstanceDataFields.Remetente, + "DocumentsQty": element.totalDocuments, + "DocId": workflowInstanceDataFields.DispatchDocId, + "FolderID": workflowInstanceDataFields.FolderID, + "WorkflowName": element.workflowDisplayName, + "activityInstanceName": element.activityInstanceName, + "Status": workflowInstanceDataFields.Status, + "Agenda": workflowInstanceDataFields.Agenda, + "customDate": this.setFormatDate(new Date(workflowInstanceDataFields.StartDate), new Date(workflowInstanceDataFields.EndDate), workflowInstanceDataFields.IsAllDayEvent), + } + + this.allProcessesList.push(task); + this.allProcessesList = removeDuplicate(this.allProcessesList) + this.allProcessesList = this.sortService.sortDate(this.allProcessesList, 'CreateDate') + + }); + console.log("All process from db ", allprocess) + }) + } - this.sqliteservice.getAllProcess().then((allprocess: any[]) => { - allprocess.forEach(element => { - let date = new Date(element.taskStartDate); - date.setMonth(date.getMonth() + 1); - let taskDate = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds(); + } - var workflowInstanceDataFields = JSON.parse(element.workflowInstanceDataFields); + dataTranform(data) { - let task = { - "SerialNumber": element.serialNumber, - "Folio": workflowInstanceDataFields.Subject, - "Senders": workflowInstanceDataFields.Sender, - "CreateDate": taskDate, - "DocumentURL": workflowInstanceDataFields.ViewerRequest, - "Remetente": workflowInstanceDataFields.Remetente, - "DocumentsQty": element.totalDocuments, - "DocId": workflowInstanceDataFields.DispatchDocId, - "FolderID": workflowInstanceDataFields.FolderID, - "WorkflowName": element.workflowDisplayName, - "activityInstanceName": element.activityInstanceName, - "Status": workflowInstanceDataFields.Status, - "Agenda": workflowInstanceDataFields.Agenda, - "customDate": this.setFormatDate(new Date(workflowInstanceDataFields.StartDate), new Date(workflowInstanceDataFields.EndDate), workflowInstanceDataFields.IsAllDayEvent), - } - - this.allProcessesList.push(task); - this.allProcessesList = removeDuplicate(this.allProcessesList) - this.allProcessesList = this.sortService.sortDate(this.allProcessesList, 'CreateDate') - - }); - console.log("All process from db ", allprocess) - }) } sortArrayISODate(myArray: any) { @@ -495,6 +537,7 @@ export class GabineteDigitalPage implements OnInit, DoCheck { let allProcessesList = allPreocesses_; allProcessesList = allProcessesList.filter(element => element.activityInstanceName != 'Conhecimento') + allProcessesList = allProcessesList.filter(element => element.activityInstanceName != 'Revisar Diploma') if (!this.p.userRole(['PR'])) { allProcessesList = allProcessesList.filter(element => element.activityInstanceName != 'Assinar Diplomas') diff --git a/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts b/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts index 06fb79049..7948de036 100644 --- a/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts +++ b/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts @@ -14,6 +14,7 @@ import { SqliteService } from 'src/app/services/sqlite.service'; import { BackgroundService } from 'src/app/services/background.service'; import { Platform } from '@ionic/angular'; import { SortService } from 'src/app/services/functions/sort.service'; +import { Storage } from '@ionic/storage'; @Component({ @@ -47,6 +48,7 @@ export class PendentesPage implements OnInit { private platform: Platform, private backgroundservices: BackgroundService, private sortService: SortService, + private storage: Storage ) { this.loggeduser = authService.ValidatedUser; this.profile = 'mdgpr'; @@ -104,6 +106,9 @@ export class PendentesPage implements OnInit { pendentesList = removeDuplicate(pendentesList) pendentesList = this.sortService.sortDate(pendentesList, 'CreateDate'); this.listToPresent = pendentesList; + this.storage.set('pendente-list',pendentesList).then(() => { + console.log('Pendente list SAVED') + }) this.skeletonLoader = false; }, (error) => { @@ -116,34 +121,41 @@ export class PendentesPage implements OnInit { getFromDb() { - this.platform.ready().then(() => { - this.sqliteservice.getAllProcess().then((process: any[]) => { - var pendingList = [] - console.log('Pendentes off off',process ) - process.forEach(element => { - var workflow = JSON.parse(element.workflowInstanceDataFields); - if (workflow.Status === "Pending") { - let task = { - "CreateDate": new Date(element.taskStartDate), - "DocumentsQty": element.totalDocuments, - "FolderID": workflow.FolderID, - "Folio": workflow.Subject, - "Senders": workflow.Sender, - "SerialNumber": element.serialNumber, - "Status": workflow.Status, - "WorkflowName": element.workflowDisplayName - - } - pendingList.push(task) - } - }); - - pendingList = this.sortService.sortDate(pendingList, 'CreateDate'); - this.listToPresent = pendingList; - console.log('pendentes', pendingList) - + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + this.storage.get('pendente-list').then((pendentes) => { + this.listToPresent =pendentes }) - }) + } else { + + this.platform.ready().then(() => { + this.sqliteservice.getAllProcess().then((process: any[]) => { + var pendingList = [] + console.log('Pendentes off off',process ) + process.forEach(element => { + var workflow = JSON.parse(element.workflowInstanceDataFields); + if (workflow.Status === "Pending") { + let task = { + "CreateDate": new Date(element.taskStartDate), + "DocumentsQty": element.totalDocuments, + "FolderID": workflow.FolderID, + "Folio": workflow.Subject, + "Senders": workflow.Sender, + "SerialNumber": element.serialNumber, + "Status": workflow.Status, + "WorkflowName": element.workflowDisplayName + + } + pendingList.push(task) + } + }); + + pendingList = this.sortService.sortDate(pendingList, 'CreateDate'); + this.listToPresent = pendingList; + console.log('pendentes', pendingList) + + }) + }) + } } async refreshing() { 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 32001f7d2..615e85d99 100644 --- a/src/app/pages/publications/view-publications/view-publications.page.html +++ b/src/app/pages/publications/view-publications/view-publications.page.html @@ -38,11 +38,15 @@ *ngFor="let publication of getpublication" (click)="goToPublicationDetail(publication.DocumentId)" > -