diff --git a/config.xml b/config.xml index 09d2165cb..721c9620c 100644 --- a/config.xml +++ b/config.xml @@ -134,7 +134,7 @@ 0 - 8.0.0.00-20210214-154410 + 8.0.0.00-20210308-063916 diff --git a/package-lock.json b/package-lock.json index 646fdb778..73e1c0b20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11294,6 +11294,28 @@ "sjcl": "^1.0.8" } }, + "ibm-mfp-web-sdk": { + "version": "8.0.2021021706", + "resolved": "https://registry.npmjs.org/ibm-mfp-web-sdk/-/ibm-mfp-web-sdk-8.0.2021021706.tgz", + "integrity": "sha512-lk87kZzmBow7Ie+wll5zXsQo0Dok3sj7DeltHUl3rOJ0ia+5sqYOfDGJAyky8pYagGfkAEHUAoleuv8S/GwPpw==", + "requires": { + "jssha": "2.2.0", + "promiz": "1.0.5", + "sjcl": "1.0.3" + }, + "dependencies": { + "jssha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jssha/-/jssha-2.2.0.tgz", + "integrity": "sha1-h9z2CCHcO+xZPzhVu+vM0naqzBw=" + }, + "sjcl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sjcl/-/sjcl-1.0.3.tgz", + "integrity": "sha1-TtSGSY7Wt0K11KIZAiaBFvBUpwk=" + } + } + }, "ical.js": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ical.js/-/ical.js-1.4.0.tgz", diff --git a/package.json b/package.json index cc5ca799b..f2a435fe0 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "date-fns": "^2.17.0", "depd": "^2.0.0", "ibm-mfp-web-push": "^8.0.2020052213", + "ibm-mfp-web-sdk": "^8.0.2021021706", "ionic-angular": "^3.9.10", "ionic-selectable": "^4.7.1", "ionic2-alpha-scroll": "^2.0.1", diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts index ffe9e2064..d401b6aa2 100644 --- a/src/app/home/home.page.ts +++ b/src/app/home/home.page.ts @@ -6,7 +6,7 @@ import { Event } from '../models/event.model'; import { ProcessesService } from '../services/processes.service'; import { NotificationsService } from '../services/notifications.service'; import { ModalController, AlertController, AnimationController, Platform } from '@ionic/angular'; -import { NavigationExtras,Router } from '@angular/router'; +import { NavigationExtras,Router,ActivatedRoute } from '@angular/router'; import { ToastService } from '../services/toast.service'; @Component({ @@ -53,7 +53,8 @@ export class HomePage implements OnInit { private toastService: ToastService, private animationController: AnimationController, private notificatinsservice: NotificationsService, - private platform: Platform) { + private platform: Platform, + private activeroute: ActivatedRoute) { this.router.events.subscribe((val) => { document.querySelectorAll('ion-modal').forEach((e: any) => e.remove()) @@ -66,6 +67,7 @@ export class HomePage implements OnInit { } ngOnInit() { + console.log('Active route ',this.router.url) if(this.platform.is('desktop') || this.platform.is('mobileweb')) { console.log('Notifications not supported') } else { diff --git a/src/app/pages/gabinete-digital/despachos/despachos.page.ts b/src/app/pages/gabinete-digital/despachos/despachos.page.ts index 6c8b1e5de..576d2efac 100644 --- a/src/app/pages/gabinete-digital/despachos/despachos.page.ts +++ b/src/app/pages/gabinete-digital/despachos/despachos.page.ts @@ -124,6 +124,7 @@ export class DespachosPage implements OnInit { } async GoToDespacho(serialNumber:any) { + console.log('Despachos serial',serialNumber) this.router.navigate(['/home/gabinete-digital/despachos',serialNumber,'gabinete-digital']); } diff --git a/src/app/pages/publications/publications.page.html b/src/app/pages/publications/publications.page.html index 2d9063d32..24adc235f 100644 --- a/src/app/pages/publications/publications.page.html +++ b/src/app/pages/publications/publications.page.html @@ -35,7 +35,7 @@
- @@ -79,7 +79,7 @@
--> - { if( window.innerWidth < 801) { this.hideRefreshBtn = false; + this.showSlidingOptions = false; } else{ this.hideRefreshBtn = true; + this.showSlidingOptions = true; } } if(window.innerWidth < 801){ - console.log('YASS'); this.hideRefreshBtn = false; + this.showSlidingOptions = false; + } + else{ + this.hideRefreshBtn = true; + this.showSlidingOptions = true; } } diff --git a/src/app/services/notifications.service.ts b/src/app/services/notifications.service.ts index 35a30756c..30a02bc15 100644 --- a/src/app/services/notifications.service.ts +++ b/src/app/services/notifications.service.ts @@ -1,5 +1,6 @@ /// -import { Inject, Injectable, NgZone } from '@angular/core'; +import { Injectable, NgZone } from '@angular/core'; +import { ActivatedRoute } from '@angular/router' import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { environment } from 'src/environments/environment'; import { StorageService } from 'src/app/services/storage.service'; @@ -27,7 +28,8 @@ export class NotificationsService { private platform: Platform, private router: Router, private toastService: ToastService, - private zone: NgZone) { } + private zone: NgZone, + private activeroute: ActivatedRoute) { } getTokenByUserIdAndId(user, userID) { const geturl = environment.apiURL + 'notifications/user/' + userID; @@ -42,11 +44,11 @@ export class NotificationsService { const geturl = environment.apiURL + 'notifications/token'; - window['WLAuthorizationManager'].obtainAccessToken("push.mobileclient").then( + window['WLAuthorizationManager'].obtainAccessToken("push.mobileclient").then( (token) => { console.log('Push Notification: Success ' + token); - MFPPush.initialize( + window['MFPPush'].initialize( function (successResponse) { console.log("Push notification Successfully Service intialized: " + successResponse); }, @@ -55,7 +57,7 @@ export class NotificationsService { } ); - MFPPush.registerDevice(null, (successResponse) => { + window['MFPPush'].registerDevice(null, (successResponse) => { console.log("Successfully registered: " + JSON.stringify(successResponse)); console.log('token: ', successResponse.deviceId) this.storageService.store(username, successResponse.deviceId); @@ -95,10 +97,10 @@ export class NotificationsService { (token) => { console.log('Push Notification: Success ' + token); - MFPPush.initialize( + window['MFPPush'].initialize( function (successResponse) { console.log("Push notification Successfully intialized: " + successResponse); - MFPPush.registerNotificationsCallback(notificationReceived); + window['MFPPush'].registerNotificationsCallback(notificationReceived); }, function (failureResponse) { console.log("Push notification failure intialized: " + failureResponse); @@ -135,30 +137,25 @@ export class NotificationsService { else if (data.Service === "gabinete-digital" && data.Object === "event-list") { this.zone.run(() => this.router.navigate(['/home/gabinete-digital/event-list/approve-event',data.IdObject, 'gabinete-digital'])); }else if (data.Service === "gabinete-digital" && data.Object === "despachos") { + + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/despachos',data.IdObject,'gabinete-digital'],{replaceUrl: true})); + } + else if (data.Service === "gabinete-digital" && data.Object === "parecer") { + + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos',data.IdObject,'gabinete-digital'])); + } + else if (data.Service === "gabinete-digital" && data.Object === "deferimento") { + + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos',data.IdObject,'gabinete-digital'])); + } + else if (data.Service === "gabinete-digital" && data.Object === "despachos-pr") { + let navigationExtras: NavigationExtras = { queryParams: { "serialNumber": data.IdObject, - } - }; - this.zone.run(() => this.router.navigate(['/home/gabinete-digital/despachos/despacho'], navigationExtras)); - } - else if (data.Service === "gabinete-digital" && data.Object === "parecer") { - let navigationExtras: NavigationExtras = { - queryParams: { - enterAnimation: "", - serialNumber: data.IdObject, } }; - this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos/pedido'], navigationExtras)); - } - else if (data.Service === "gabinete-digital" && data.Object === "deferimento") { - let navigationExtras: NavigationExtras = { - queryParams: { - enterAnimation: "", - serialNumber: data.IdObject, - } - }; - this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos/pedido'], navigationExtras)); + this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/despachos-pr/despacho-pr'], navigationExtras)); } else if (data.Service === "accoes" && data.Object === "accao") { this.zone.run(() => this.router.navigate(['/home/publications',data.IdObject])); @@ -166,6 +163,20 @@ export class NotificationsService { else if (data.Service === "accoes" && data.Object === "publicacao") { this.zone.run(() => this.router.navigate(['/home/publications/view-publications',data.FolderId,data.IdObject])); } + else if (data.Service === "gabinete-digital" && data.Object === "diplomas") { + this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/diplomas', data.IdObject, 'gabinete-digital'])); + } + else if (data.Service === "gabinete-digital" && data.Object === "diplomas-assinar") { + let navigationExtras: NavigationExtras = { + queryParams: { + "serialNumber": data.IdObject, + } + }; + this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/diplomas-assinar/diploma-assinar'], navigationExtras)); + } + else if (data.Service === "gabinete-digital" && data.Object === "expedientes-pr") { + this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/expedientes-pr',data.IdObject,'gabinete-digital'])); + } } platformVerify() { diff --git a/src/app/services/webnotifications.service.spec.ts b/src/app/services/webnotifications.service.spec.ts new file mode 100644 index 000000000..5af6818b3 --- /dev/null +++ b/src/app/services/webnotifications.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { WebNotificationsService } from './webnotifications.service'; + +describe('WebNotificationsService', () => { + let service: WebNotificationsService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(WebNotificationsService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/webnotifications.service.ts b/src/app/services/webnotifications.service.ts new file mode 100644 index 000000000..62b85d74d --- /dev/null +++ b/src/app/services/webnotifications.service.ts @@ -0,0 +1,230 @@ +import { Injectable, NgZone } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; +import { environment } from 'src/environments/environment'; +import { StorageService } from 'src/app/services/storage.service'; +import { AuthConnstants } from 'src/app/config/auth-constants'; +import { Token } from '../models/token.model'; +import { ModalController, AlertController, AnimationController, Platform } from '@ionic/angular'; +import { NavigationExtras,Router } from '@angular/router'; +import { ToastService } from './toast.service'; +import MFPPush from 'ibm-mfp-web-push'; + +@Injectable({ + providedIn: 'root' +}) +export class WebNotificationsService { + + adding: "intervenient" | "CC" = "intervenient"; + folderId: string; + + constructor( + private http: HttpClient, + private storageService: StorageService, + private modalController: ModalController, + public modalCtrl: AlertController, + private animationController: AnimationController, + private platform: Platform, + private router: Router, + private toastService: ToastService, + private zone: NgZone) { } + + + webconnection() { + + + MFPPush.initialize({ + appId: "com.gpr.gabinetedigital", + mfpContextRoot: "/mfp", + }); + + MFPPush.registerDevice() + .then((res) => { + alert("WEB Successfully Registered Device..."); + }) + .catch((err) => { + console.log("WEB Registration Failed" + err); + }); + } + +async onReceviNotificationWeb() { + window['WLAuthorizationManager'].obtainAccessToken("push.mobileclient").then( + (token) => { + console.log('Push Notification: Success ' + token); + + MFPPush.initialize( + function (successResponse) { + console.log("Push notification Successfully intialized: " + successResponse); + MFPPush.registerNotificationsCallback(notificationReceived); + }, + function (failureResponse) { + console.log("Push notification failure intialized: " + failureResponse); + } + ); + var notificationReceived = (message) => { + console.log(message); + var data = JSON.parse(message.payload); + console.log(data.Service); + console.log(data.IdObject); + console.log(data.Object); + + if(message.actionName){ + //this.notificatinsRoutes(data); + } else { + //this.toastService.notificationMessage(message.alert,this.notificatinsRoutes, data); + } + + } + }, (error) => { + console.log('Push notification recived: failure ' + error.responseText); + console.log(JSON.stringify(error)); + } + ); +} + + /* getTokenByUserIdAndId(user, userID) { + const geturl = environment.apiURL + 'notifications/user/' + userID; + + return this.http.get(`${geturl}`); + } */ + + /* getAndpostToken(username) { + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + console.log('Notifications not supported') + } else { + + const geturl = environment.apiURL + 'notifications/token'; */ +/* + window['WLAuthorizationManager'].obtainAccessToken("push.mobileclient").then( + (token) => { + console.log('Push Notification: Success ' + token); + + MFPPush.initialize( + function (successResponse) { + console.log("Push notification Successfully Service intialized: " + successResponse); + }, + function (failureResponse) { + console.log("Push notification failure Service intialized: " + failureResponse); + } + ); + + MFPPush.registerDevice(null, (successResponse) => { + console.log("Successfully registered: " + JSON.stringify(successResponse)); + console.log('token: ', successResponse.deviceId) + this.storageService.store(username, successResponse.deviceId); + this.storageService.get(username).then(value => { + console.log('STORAGE TOKEN', value) + this.storageService.get(AuthConnstants.USER).then(res => { + console.log('USERID', res); + const headers = { 'Authorization': 'Basic cGF1bG8ucGludG9AZ2FiaW5ldGVkaWdpdGFsLmxvY2FsOnRhYnRlc3RlQDAwNg==' }; + const body = { + UserId: res.UserId, + TokenId: successResponse.deviceId, + Status: 1, + Service: 1 + }; + this.http.post(`${geturl}`, body, { headers }).subscribe(data => { + console.log('TOKEN USER MIDLE', data); + }) + }); + + }); + }, + function (failureResponse) { + console.log("Successfully failue: " + JSON.stringify(failureResponse)); + } + ); + }, (error) => { + console.log('Push notification recived: failure ' + error.responseText); + console.log(JSON.stringify(error)); + } + ); + } + + } */ +/* + async onReceviNotification() { + window['WLAuthorizationManager'].obtainAccessToken("push.mobileclient").then( + (token) => { + console.log('Push Notification: Success ' + token); + + MFPPush.initialize( + function (successResponse) { + console.log("Push notification Successfully intialized: " + successResponse); + MFPPush.registerNotificationsCallback(notificationReceived); + }, + function (failureResponse) { + console.log("Push notification failure intialized: " + failureResponse); + } + ); + var notificationReceived = (message) => { + console.log(message); + var data = JSON.parse(message.payload); + console.log(data.Service); + console.log(data.IdObject); + console.log(data.Object); + + if(message.actionName){ + this.notificatinsRoutes(data); + } else { + this.toastService.notificationMessage(message.alert,this.notificatinsRoutes, data); + } + + } + }, (error) => { + console.log('Push notification recived: failure ' + error.responseText); + console.log(JSON.stringify(error)); + } + ); + } */ + + /* notificatinsRoutes = (data) => { + if (data.Service === "agenda") { + this.zone.run(() => this.router.navigate(['/home/agenda', data.IdObject, 'agenda'])); + } + else if (data.Service === "gabinete-digital" && data.Object === "expediente") { + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/expediente',data.IdObject,'gabinete-digital'])); + } + else if (data.Service === "gabinete-digital" && data.Object === "event-list") { + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/event-list/approve-event',data.IdObject, 'gabinete-digital'])); + }else if (data.Service === "gabinete-digital" && data.Object === "despachos") { + let navigationExtras: NavigationExtras = { + queryParams: { + "serialNumber": data.IdObject, + } + }; + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/despachos/despacho'], navigationExtras)); + } + else if (data.Service === "gabinete-digital" && data.Object === "parecer") { + let navigationExtras: NavigationExtras = { + queryParams: { + enterAnimation: "", + serialNumber: data.IdObject, + } + }; + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos/pedido'], navigationExtras)); + } + else if (data.Service === "gabinete-digital" && data.Object === "deferimento") { + let navigationExtras: NavigationExtras = { + queryParams: { + enterAnimation: "", + serialNumber: data.IdObject, + } + }; + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos/pedido'], navigationExtras)); + } + else if (data.Service === "accoes" && data.Object === "accao") { + this.zone.run(() => this.router.navigate(['/home/publications',data.IdObject])); + } + else if (data.Service === "accoes" && data.Object === "publicacao") { + this.zone.run(() => this.router.navigate(['/home/publications/view-publications',data.FolderId,data.IdObject])); + } + } + + platformVerify() { + + if (this.platform.is('cordova')) { + } else { + } + } */ + +} diff --git a/src/index.html b/src/index.html index c85c54d3d..f1e90bcc6 100644 --- a/src/index.html +++ b/src/index.html @@ -7,9 +7,11 @@ + + - -->