This commit is contained in:
tiago.kayaya
2021-10-20 12:02:15 +01:00
14 changed files with 457 additions and 409 deletions
+10 -26
View File
@@ -81,7 +81,6 @@ export class HomePage implements OnInit {
private inativityService: InativityService, private inativityService: InativityService,
private storageService: StorageService, private storageService: StorageService,
private webNotificationPopupService: WebNotificationPopupService, private webNotificationPopupService: WebNotificationPopupService,
private network: Network,
private backgroundservice: BackgroundService, private backgroundservice: BackgroundService,
private offlinemanager: OfflineManagerService, private offlinemanager: OfflineManagerService,
private storage: Storage, private storage: Storage,
@@ -118,37 +117,20 @@ export class HomePage implements OnInit {
window.addEventListener('online', () => { window.addEventListener('online', () => {
console.log('Became online') console.log('Became online')
this.backgroundservice.online() this.backgroundservice.online()
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
this.webnotification.webconnection();
this.webnotification.register();
} else {
this.mobilefirstConnect();
this.notificationsService.onReceviNotification();
this.offlinemanager.synchnize()
}
}); });
window.addEventListener('offline', () => { window.addEventListener('offline', () => {
console.log('Became offline') console.log('Became offline')
this.backgroundservice.offline() this.backgroundservice.offline()
}); });
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
this.webnotification.webconnection();
this.webnotification.register();
} else {
window.addEventListener('online', (on) => {
console.log('Became online',on)
this.storage.get('storedreq').then((req) =>{
console.log('STORED REQUEST', req)
req.forEach(element => {
this.eventservice.editEvent(element,2,3).subscribe((res) =>{
console.log('REQUEST RESULT', res)
})
});
})
this.backgroundservice.online()
});
window.addEventListener('offline', (off) => {
console.log('Became offline',off)
this.backgroundservice.offline()
});
this.mobilefirstConnect();
this.notificationsService.onReceviNotification();
}
this.updateList() this.updateList()
var myWorker = new Worker(new URL('./nice.worker.js', import.meta.url)); var myWorker = new Worker(new URL('./nice.worker.js', import.meta.url));
@@ -197,6 +179,8 @@ export class HomePage implements OnInit {
} }
} }
updateList() { updateList() {
this.notificationsService.registerCallback( this.notificationsService.registerCallback(
@@ -209,6 +209,7 @@ export class EditEventPage implements OnInit {
this.toastService.successMessage(); this.toastService.successMessage();
}, error => { }, error => {
if(error.status != 0)
this.toastService.badRequest() this.toastService.badRequest()
}); });
@@ -18,6 +18,7 @@ import { DocumentSetUpMeetingPage } from 'src/app/modals/document-set-up-meeting
import { ExpedientTaskModalPage } from '../../gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page'; import { ExpedientTaskModalPage } from '../../gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page';
import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page'; import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page';
import { BackgroundService } from 'src/app/services/background.service'; import { BackgroundService } from 'src/app/services/background.service';
import { StorageService } from 'src/app/services/storage.service';
@Component({ @Component({
selector: 'app-view-event', selector: 'app-view-event',
@@ -66,7 +67,8 @@ export class ViewEventPage implements OnInit {
private location: Location, private location: Location,
public platform: Platform, public platform: Platform,
private sqliteservice: SqliteService, private sqliteservice: SqliteService,
private backgroundservice: BackgroundService private backgroundservice: BackgroundService,
private storage: StorageService
) { ) {
this.isEventEdited = false; this.isEventEdited = false;
this.loadedEvent = new Event(); this.loadedEvent = new Event();
@@ -100,6 +102,22 @@ export class ViewEventPage implements OnInit {
this.loadEvent(); this.loadEvent();
this.backgroundservice.registerBackService('Online', () => { this.backgroundservice.registerBackService('Online', () => {
this.storage.get('eventEdit').then((req) => {
JSON.parse(req).forEach(element => {
this.eventsService.editEvent(element, 2, 3).subscribe((res) => {
this.storage.remove('eventEdit')
console.log('eventEdit synchnize', res)
})
});
})
this.storage.get('eventDelete').then((req) => {
JSON.parse(req).forEach(element => {
this.eventsService.editEvent(element, 2, 3).subscribe((res) => {
this.storage.remove('eventDelete')
console.log('eventEdit synchnize', res)
})
});
})
this.loadEvent(); this.loadEvent();
}); });
+50 -42
View File
@@ -19,6 +19,7 @@ import { ExpedienteGdStore } from 'src/app/store/expedientegd-store.service';
import { SqliteService } from 'src/app/services/sqlite.service'; import { SqliteService } from 'src/app/services/sqlite.service';
import { NetworkConnectionService } from 'src/app/services/network-connection.service' import { NetworkConnectionService } from 'src/app/services/network-connection.service'
import { BackgroundService } from 'src/app/services/background.service'; import { BackgroundService } from 'src/app/services/background.service';
import { momentG } from 'src/plugin/momentG';
@Component({ @Component({
selector: 'app-events', selector: 'app-events',
@@ -107,16 +108,12 @@ export class EventsPage implements OnInit {
// console.log('Resize event detected'); // console.log('Resize event detected');
}); });
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
try { try {
this.sqliteservice.databaseConn(); this.sqliteservice.databaseConn();
} catch (error) { } catch (error) {
console.log("Error creating local database: ", error) console.log("Error creating local database: ", error)
} }
} }
}
ngOnInit() { ngOnInit() {
@@ -208,18 +205,9 @@ export class EventsPage implements OnInit {
const list = mdOficialEvents.concat(mdPessoalEvents); const list = mdOficialEvents.concat(mdPessoalEvents);
console.log("getAllMdOficialPessoalEvents", list) console.log("getAllMdOficialPessoalEvents", list)
if (this.platform.is('desktop') || this.platform.is('mobileweb')) { this.addEventToDb(list);
} else {
if (list.length > 0) {
list.forEach(element => {
this.sqliteservice.addEvent(element)
});
}
}
this.listToPresent = list this.listToPresent = list
if (list.length > 0) { if (list.length > 0) {
this.currentEvent = list[0].Subject; this.currentEvent = list[0].Subject;
this.currentHoursMinutes = list[0].StartDate; this.currentHoursMinutes = list[0].StartDate;
@@ -236,14 +224,7 @@ export class EventsPage implements OnInit {
const list = prOficialEvents.concat(prPessoalEvents); const list = prOficialEvents.concat(prPessoalEvents);
console.log("getAllPrOficialPessoalEvents", list) console.log("getAllPrOficialPessoalEvents", list)
if (this.platform.is('desktop') || this.platform.is('mobileweb')) { this.addEventToDb(list);
} else {
if (list.length > 0) {
list.forEach(element => {
this.sqliteservice.addEvent(element)
});
}
}
if (list.length > 0) { if (list.length > 0) {
this.currentEvent = list[0].Subject; this.currentEvent = list[0].Subject;
this.currentHoursMinutes = list[0].StartDate; this.currentHoursMinutes = list[0].StartDate;
@@ -326,38 +307,65 @@ export class EventsPage implements OnInit {
} */ } */
} }
addEventToDb(list) {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
if (list.length > 0) {
list.forEach(element => {
this.sqliteservice.addEvent(element)
});
}
}
}
getEventsFromLocalDb() { getEventsFromLocalDb() {
/* window.addEventListener('online', (on) => { let date = new Date();
this.showGreeting(); date.setMonth(date.getMonth() + 1);
let dateToday = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate();
this.router.events.forEach((event) => { console.log('dateeeeee', dateToday)
if (event instanceof NavigationEnd && event.url == '/home/events') {
this.RefreshEvents();
setTimeout(() => {
this.LoadList();
}, 1500)
}
});
this.hideSearch();
}); */
// window.addEventListener('offline', (off) => {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else { } else {
this.sqliteservice.getAllEvents().then((event: any[]) => { this.sqliteservice.getAllEvents().then((event: any[]) => {
this.listToPresent = event let todayEvents = new Array()
event.forEach((element) => {
let eventObject = {
AppointmentState: element.AppointmentState,
Attachments: element.Attachments,
Attendees: element.Attendees,
CalendarId: element.CalendarId,
CalendarName: element.CalendarName,
Category: element.Category,
EndDate: element.EndDate,
EventId: element.EventId,
EventRecurrence: element.EventRecurrence,
EventType: element.EventType,
HasAttachments: element.HasAttachments,
HumanDate: element.HumanDate,
IsAllDayEvent: element.IsAllDayEvent,
IsMeeting: element.IsMeeting,
IsRecurring: element.IsRecurring,
Location: element.Location,
Organizer: element.Organizer,
Profile: element.Profile,
StartDate: element.StartDate,
Subject: element.Subject
}
let starteDate = momentG(new Date(element.StartDate), 'yyyy-MM-dd');
console.log('startTOdayyy', starteDate)
if (dateToday == starteDate) {
todayEvents.push(eventObject);
}
})
this.listToPresent = todayEvents
this.totalEvent = this.listToPresent.length this.totalEvent = this.listToPresent.length
this.currentEvent = this.listToPresent[0].Subject this.currentEvent = this.listToPresent[0].Subject
this.currentHoursMinutes = this.listToPresent[0].StartDate this.currentHoursMinutes = this.listToPresent[0].StartDate
console.log("All events from local,", event) console.log("All events from local,", event)
}) })
this.sqliteservice.getAllProcess().then((res) => {
console.log('INICION ALL EVENTs', res)
})
this.sqliteservice.getprocessByworkflow("Expediente").then((process: any[]) => { this.sqliteservice.getprocessByworkflow("Expediente").then((process: any[]) => {
console.log('OFOFOFOOF', process) console.log('OFOFOFOOF', process)
@@ -19,7 +19,7 @@ import { ToastService } from 'src/app/services/toast.service';
import { Location } from '@angular/common' import { Location } from '@angular/common'
import { DespachoService } from 'src/app/Rules/despacho.service'; import { DespachoService } from 'src/app/Rules/despacho.service';
import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page'; import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page';
import { Platform } from '@ionic/angular';
import { SqliteService } from 'src/app/services/sqlite.service'; import { SqliteService } from 'src/app/services/sqlite.service';
import { BackgroundService } from 'src/app/services/background.service'; import { BackgroundService } from 'src/app/services/background.service';
@@ -57,7 +57,8 @@ export class DespachoPrPage implements OnInit {
private location: Location, private location: Location,
private despachoService: DespachoService, private despachoService: DespachoService,
private sqliteservice: SqliteService, private sqliteservice: SqliteService,
private backgroundservice: BackgroundService private backgroundservice: BackgroundService,
private platform: Platform,
) { ) {
this.activatedRoute.paramMap.subscribe(params => { this.activatedRoute.paramMap.subscribe(params => {
if (params["params"].SerialNumber) { if (params["params"].SerialNumber) {
@@ -123,16 +124,14 @@ export class DespachoPrPage implements OnInit {
console.log(this.task); console.log(this.task);
console.log('GetTask', res); console.log('GetTask', res);
this.sqliteservice.updateProcess(res) this.updateProcessOnDB(res);
let thedate = new Date(this.task.CreateDate); let thedate = new Date(this.task.CreateDate);
this.customDate = this.days[thedate.getDay()] + ", " + thedate.getDate() + " de " + (this.months[thedate.getMonth()]); this.customDate = this.days[thedate.getDay()] + ", " + thedate.getDate() + " de " + (this.months[thedate.getMonth()]);
this.processes.GetTaskParticipants(this.task.FolderId).subscribe(users => { this.processes.GetTaskParticipants(this.task.FolderId).subscribe(users => {
this.sqliteservice.updateProcessInterveners(JSON.stringify(this.serialNumber), JSON.stringify(users)).then(() => { this.updateProcessInterveners(users)
console.log('internen despacho pr ')
})
this.intervenientes = users.filter(user => { this.intervenientes = users.filter(user => {
return user.Type == 'I'; return user.Type == 'I';
}); });
@@ -162,6 +161,19 @@ export class DespachoPrPage implements OnInit {
}); });
} }
updateProcessOnDB(res) {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.updateProcess(res);
}
}
updateProcessInterveners(users) {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.updateProcessInterveners(JSON.stringify(this.serialNumber), JSON.stringify(users))
}
}
getFromDB() { getFromDB() {
this.sqliteservice.getProcessById(this.serialNumber).then((process: any[]) => { this.sqliteservice.getProcessById(this.serialNumber).then((process: any[]) => {
@@ -144,14 +144,14 @@ export class DespachoPage implements OnInit {
"Status": res.workflowInstanceDataFields.Status, "Status": res.workflowInstanceDataFields.Status,
} }
this.sqliteservice.updateProcess(res); this.updateProcessOnDB(res);
this.fulltask = res; this.fulltask = res;
let thedate = new Date(this.task.CreateDate); let thedate = new Date(this.task.CreateDate);
this.customDate = this.days[thedate.getDay()] + ", " + thedate.getDate() + " de " + (this.months[thedate.getMonth()]); this.customDate = this.days[thedate.getDay()] + ", " + thedate.getDate() + " de " + (this.months[thedate.getMonth()]);
this.processes.GetTaskParticipants(this.task.FolderID).subscribe(users => { this.processes.GetTaskParticipants(this.task.FolderID).subscribe(users => {
this.sqliteservice.updateProcessInterveners(JSON.stringify(this.serialnumber), JSON.stringify(users)) this.updateProcessInterveners(users)
console.log('interveniers online', users) console.log('interveniers online', users)
this.intervenientes = users.filter(user => { this.intervenientes = users.filter(user => {
@@ -177,9 +177,24 @@ export class DespachoPage implements OnInit {
}); });
} }
updateProcessOnDB(res) {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.updateProcess(res);
}
}
updateProcessInterveners(users) {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.updateProcessInterveners(JSON.stringify(this.serialnumber), JSON.stringify(users))
}
}
getFromDb() { getFromDb() {
this.platform.ready().then(() => { this.platform.ready().then(() => {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.getProcessById(this.serialnumber).then((process) => { this.sqliteservice.getProcessById(this.serialnumber).then((process) => {
var workflow = JSON.parse(process[0].workflowInstanceDataFields); var workflow = JSON.parse(process[0].workflowInstanceDataFields);
@@ -243,6 +258,7 @@ export class DespachoPage implements OnInit {
}); });
}) })
}
}) })
} }
@@ -76,6 +76,8 @@ export class DespachosPage implements OnInit {
getFromDb() { getFromDb() {
this.platform.ready().then(() => { this.platform.ready().then(() => {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.getprocessByworkflow('Despacho').then((process: any[]) => { this.sqliteservice.getprocessByworkflow('Despacho').then((process: any[]) => {
var listtopresent = []; var listtopresent = [];
process.forEach(element => { process.forEach(element => {
@@ -102,6 +104,7 @@ export class DespachosPage implements OnInit {
console.log('Tarefas de despach', this.listToPresent) console.log('Tarefas de despach', this.listToPresent)
}) })
}
}) })
} }
@@ -12,7 +12,7 @@ import { DeplomaOptionsPage } from 'src/app/shared/popover/deploma-options/deplo
import { ToastService } from 'src/app/services/toast.service'; import { ToastService } from 'src/app/services/toast.service';
import { Location } from '@angular/common'; import { Location } from '@angular/common';
import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page'; import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page';
import { Platform } from '@ionic/angular';
import { SqliteService } from 'src/app/services/sqlite.service'; import { SqliteService } from 'src/app/services/sqlite.service';
import { BackgroundService } from 'src/app/services/background.service'; import { BackgroundService } from 'src/app/services/background.service';
@@ -47,7 +47,8 @@ export class DiplomaPage implements OnInit {
private toastService: ToastService, private toastService: ToastService,
private location: Location, private location: Location,
private sqliteservice: SqliteService, private sqliteservice: SqliteService,
private backgroundservice: BackgroundService private backgroundservice: BackgroundService,
private platform: Platform,
) { ) {
this.activatedRoute.paramMap.subscribe(params => { this.activatedRoute.paramMap.subscribe(params => {
// console.log(params["params"]); // console.log(params["params"]);
@@ -134,15 +135,13 @@ export class DiplomaPage implements OnInit {
"activityInstanceName": res.activityInstanceName, "activityInstanceName": res.activityInstanceName,
} }
this.fulltask = res; this.fulltask = res;
this.sqliteservice.updateProcess(res) this.updateProcessOnDB(res)
let thedate = new Date(this.task.CreateDate); let thedate = new Date(this.task.CreateDate);
this.customDate = this.days[thedate.getDay()] + ", " + thedate.getDate() + " de " + (this.months[thedate.getMonth()]); this.customDate = this.days[thedate.getDay()] + ", " + thedate.getDate() + " de " + (this.months[thedate.getMonth()]);
this.processes.GetTaskParticipants(this.task.FolderId).subscribe(users => { this.processes.GetTaskParticipants(this.task.FolderId).subscribe(users => {
this.sqliteservice.updateProcessInterveners(JSON.stringify(this.serialNumber), JSON.stringify(users)).then(() => { this.updateProcessInterveners(users)
console.log('internen diploma ')
})
this.intervenientes = users.filter(user => { this.intervenientes = users.filter(user => {
return user.Type == 'I'; return user.Type == 'I';
}); });
@@ -167,6 +166,19 @@ export class DiplomaPage implements OnInit {
} }
updateProcessOnDB(res) {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.updateProcess(res);
}
}
updateProcessInterveners(users) {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.updateProcessInterveners(JSON.stringify(this.serialNumber), JSON.stringify(users))
}
}
getFromDb() { getFromDb() {
this.sqliteservice.getProcessById(this.serialNumber).then((process) => { this.sqliteservice.getProcessById(this.serialNumber).then((process) => {
@@ -268,6 +268,9 @@ export class GabineteDigitalPage implements OnInit, DoCheck {
addProcessToDB(data) { addProcessToDB(data) {
this.platform.ready().then(() => { this.platform.ready().then(() => {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
data.forEach(element => { data.forEach(element => {
let process = { let process = {
@@ -289,6 +292,7 @@ export class GabineteDigitalPage implements OnInit, DoCheck {
this.sqliteservice.addProcess(process); this.sqliteservice.addProcess(process);
}); });
}
}); });
} }
@@ -16,7 +16,7 @@ import { AuthService } from 'src/app/services/auth.service';
import { LoginUserRespose } from 'src/app/models/user.model'; import { LoginUserRespose } from 'src/app/models/user.model';
import { ToastService } from 'src/app/services/toast.service'; import { ToastService } from 'src/app/services/toast.service';
import { ForwardPage } from 'src/app/modals/forward/forward.page'; import { ForwardPage } from 'src/app/modals/forward/forward.page';
import { Platform } from '@ionic/angular';
import { Location } from '@angular/common'; import { Location } from '@angular/common';
import { PedidoService } from 'src/app/Rules/pedido.service'; import { PedidoService } from 'src/app/Rules/pedido.service';
@@ -62,7 +62,8 @@ export class PedidoPage implements OnInit {
private location: Location, private location: Location,
private pedidoService: PedidoService, private pedidoService: PedidoService,
private sqliteservice: SqliteService, private sqliteservice: SqliteService,
private backgroundservices: BackgroundService private backgroundservices: BackgroundService,
private platform: Platform
) { ) {
this.loggeduser = authService.ValidatedUser; this.loggeduser = authService.ValidatedUser;
@@ -127,7 +128,7 @@ export class PedidoPage implements OnInit {
"Status": res.workflowInstanceDataFields.Status, "Status": res.workflowInstanceDataFields.Status,
} }
console.log(this.task); console.log(this.task);
this.sqliteservice.updateProcess(res); this.updateProcess(res);
} }
else if (res.workflowDisplayName == 'Pedido de Deferimento') { else if (res.workflowDisplayName == 'Pedido de Deferimento') {
@@ -152,16 +153,14 @@ export class PedidoPage implements OnInit {
"activityInstanceName": res.activityInstanceName, "activityInstanceName": res.activityInstanceName,
"Status": res.workflowInstanceDataFields.Status, "Status": res.workflowInstanceDataFields.Status,
} }
this.sqliteservice.updateProcess(res); this.updateProcess(res)
} }
let thedate = new Date(res.taskStartDate); let thedate = new Date(res.taskStartDate);
this.customDate = this.days[thedate.getDay()] + ", " + thedate.getDate() + " de " + (this.months[thedate.getMonth()]); this.customDate = this.days[thedate.getDay()] + ", " + thedate.getDate() + " de " + (this.months[thedate.getMonth()]);
this.processes.GetTaskParticipants(res.workflowInstanceDataFields.FolderID).subscribe(users => { this.processes.GetTaskParticipants(res.workflowInstanceDataFields.FolderID).subscribe(users => {
this.sqliteservice.updateProcessInterveners(JSON.stringify(this.serialnumber), JSON.stringify(users)).then(() => { this.updateProcessInterveners(users)
console.log('Pedido ')
})
this.intervenientes = users.filter(user => { this.intervenientes = users.filter(user => {
return user.Type == 'I'; return user.Type == 'I';
}); });
@@ -186,8 +185,23 @@ export class PedidoPage implements OnInit {
}); });
} }
getfromDb() { updateProcess(res) {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.updateProcess(res);
}
}
updateProcessInterveners(users) {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.updateProcessInterveners(JSON.stringify(this.serialnumber), JSON.stringify(users));
}
}
getfromDb() {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.getProcessById(this.serialnumber).then((process) => { this.sqliteservice.getProcessById(this.serialnumber).then((process) => {
console.log('PROCESS BY ID', process, this.serialnumber) console.log('PROCESS BY ID', process, this.serialnumber)
@@ -274,6 +288,7 @@ export class PedidoPage implements OnInit {
}) })
} }
}
getDocumentDetails(forlderId: string, applicationId: string) { getDocumentDetails(forlderId: string, applicationId: string) {
this.processes.GetDocumentDetails(forlderId, applicationId).subscribe(res => { this.processes.GetDocumentDetails(forlderId, applicationId).subscribe(res => {
@@ -1,6 +1,6 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router'; import { Router, NavigationEnd } from '@angular/router';
import { ModalController } from '@ionic/angular'; import { ModalController, Platform } from '@ionic/angular';
import { PublicationFolder } from 'src/app/models/publicationfolder'; import { PublicationFolder } from 'src/app/models/publicationfolder';
import { PublicationsService } from 'src/app/services/publications.service'; import { PublicationsService } from 'src/app/services/publications.service';
import { NewActionPage } from './new-action/new-action.page'; import { NewActionPage } from './new-action/new-action.page';
@@ -65,7 +65,8 @@ export class PublicationsPage implements OnInit {
private publications: PublicationsService, private publications: PublicationsService,
private toastService: ToastService, private toastService: ToastService,
private sqliteservice: SqliteService, private sqliteservice: SqliteService,
private backgroundservice: BackgroundService private backgroundservice: BackgroundService,
private platform: Platform
) { ) {
this.months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"]; this.months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
this.days = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"]; this.days = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"];
@@ -150,7 +151,7 @@ export class PublicationsPage implements OnInit {
ActionType: data.ActionType, ActionType: data.ActionType,
} }
this.sqliteservice.addactions(folder); this.addActionToDB(folder)
if (data.ActionType == "Evento") { if (data.ActionType == "Evento") {
console.log('Evento', folder) console.log('Evento', folder)
@@ -172,8 +173,17 @@ export class PublicationsPage implements OnInit {
}); });
} }
addActionToDB(folder) {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.addactions(folder);
}
}
getFromDB() { getFromDB() {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.sqliteservice.getAllActions().then((actions: any[]) => { this.sqliteservice.getAllActions().then((actions: any[]) => {
console.log('offline publi', actions) console.log('offline publi', actions)
@@ -202,6 +212,7 @@ export class PublicationsPage implements OnInit {
}) })
} }
}
async editAction(folderId?: string) { async editAction(folderId?: string) {
const modal = await this.modalController.create({ const modal = await this.modalController.create({
+14 -2
View File
@@ -346,7 +346,7 @@ export class EventsService {
return this.http.put<Event>(`${puturl}`, event, options).pipe( return this.http.put<Event>(`${puturl}`, event, options).pipe(
catchError(err => { catchError(err => {
this.offlinemanager.storeRequest(puturl, 'PUT', arrayReq); this.offlinemanager.storeRequestData('eventEdit', arrayReq);
throw new Error(err); throw new Error(err);
}) })
) )
@@ -432,6 +432,13 @@ export class EventsService {
} }
deleteEvent(eventid: string, eventDeleteType: number, calendarName: string) { deleteEvent(eventid: string, eventDeleteType: number, calendarName: string) {
let arrayReq = [];
let Object = {
eventid: eventid,
eventDeleteType: eventDeleteType,
calendarName: calendarName
}
arrayReq.push(Object)
const puturl = environment.apiURL + 'calendar/DeleteEvent'; const puturl = environment.apiURL + 'calendar/DeleteEvent';
let params = new HttpParams(); let params = new HttpParams();
@@ -472,7 +479,12 @@ export class EventsService {
break; break;
} }
return this.http.delete(`${puturl}`, options) return this.http.delete(`${puturl}`, options).pipe(
catchError(err => {
this.offlinemanager.storeRequestData('eventDelete', arrayReq);
throw new Error(err);
})
)
} }
postExpedientEvent(docId: any, body: any, sharedagenda: string, serialNumber: any, applicationID: any) { postExpedientEvent(docId: any, body: any, sharedagenda: string, serialNumber: any, applicationID: any) {
const geturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'CreateEventExpediente') + '/event'; const geturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'CreateEventExpediente') + '/event';
+18 -69
View File
@@ -4,91 +4,40 @@ import { Observable, from, of, forkJoin } from 'rxjs';
import { switchMap, finalize } from 'rxjs/operators'; import { switchMap, finalize } from 'rxjs/operators';
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { ToastController } from '@ionic/angular'; import { ToastController } from '@ionic/angular';
const STORAGE_REQ_KEY = 'storedreq'; import { BackgroundService } from 'src/app/services/background.service';
import { EventsService } from 'src/app/services/events.service';
interface StoredRequest {
url: string,
type: string,
data: any,
time: number,
id: string
}
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
export class OfflineManagerService { export class OfflineManagerService {
/* eventservice: EventsService */
constructor( constructor(
private storage: Storage, private storage: Storage,
private http: HttpClient, /* private backgroundservice: BackgroundService */) { }
private toastController: ToastController) { }
checkForEvents(): Observable<any> { synchnize() {
return from(this.storage.get(STORAGE_REQ_KEY)).pipe( /* this.backgroundservice.registerBackService('Online', () => {
switchMap(storedOperations => { this.storage.get('eventEdit').then((req) => {
let storedObj = JSON.parse(storedOperations); JSON.parse(req).forEach(element => {
if (storedObj && storedObj.length > 0) { this.eventservice.editEvent(element, 2, 3).subscribe((res) => {
return this.sendRequests(storedObj).pipe( this.storage.remove('eventEdit')
finalize(() => { console.log('eventEdit synchnize', res)
let toast = this.toastController.create({
message: `Local data succesfully synced to API!`,
duration: 3000,
position: 'bottom'
});
toast.then(toast => toast.present());
this.storage.remove(STORAGE_REQ_KEY);
}) })
); });
} else {
console.log('no local events to sync');
return of(false);
}
}) })
) }) */
} }
storeRequest(url, type, data) { storeRequestData(key, data) {
let toast = this.toastController.create({ return this.storage.set(key, JSON.stringify(data));
message: `Your data is stored locally because you seem to be offline.`,
duration: 3000,
position: 'bottom'
});
toast.then(toast => toast.present());
let action: StoredRequest = {
url: url,
type: type,
data: data,
time: new Date().getTime(),
id: Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 5)
};
return this.storage.get(STORAGE_REQ_KEY).then(storedOperations => {
let storedObj = JSON.parse(storedOperations);
if (storedObj) {
storedObj.push(action);
} else {
storedObj = [action];
}
// Save old & new local transactions back to Storage
return this.storage.set(STORAGE_REQ_KEY, JSON.stringify(storedObj));
});
} }
sendRequests(operations: StoredRequest[]) { sendRequestData(key) {
let obs = []; return this.storage.get(key)
for (let op of operations) {
console.log('Make one request: ', op);
let oneObs = this.http.request(op.type, op.url, op.data);
obs.push(oneObs);
} }
// Send out all local events and return once they are finished
return forkJoin(obs);
}
} }
+3
View File
@@ -26,6 +26,8 @@ export class SqliteService {
} }
databaseConn() { databaseConn() {
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
} else {
this.platform.ready().then(async () => { this.platform.ready().then(async () => {
await this.sqlite.create({ await this.sqlite.create({
name: this.db_name, name: this.db_name,
@@ -125,6 +127,7 @@ export class SqliteService {
.catch((error) => console.log(JSON.stringify(error))); .catch((error) => console.log(JSON.stringify(error)));
}); });
} }
}
//addactions //addactions
public addactions(data) { public addactions(data) {