This commit is contained in:
tiago.kayaya
2021-05-18 14:37:43 +01:00
parent e47920cdfc
commit 6997295a31
10 changed files with 108 additions and 82 deletions
+7 -1
View File
@@ -16001,6 +16001,11 @@
} }
} }
}, },
"rxjs-compat": {
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.6.7.tgz",
"integrity": "sha512-szN4fK+TqBPOFBcBcsR0g2cmTTUF/vaFEOZNuSdfU8/pGFnNmmn2u8SystYXG1QMrjOPBc6XTKHMVfENDf6hHw=="
},
"safe-buffer": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -18827,7 +18832,8 @@
}, },
"ssri": { "ssri": {
"version": "6.0.1", "version": "6.0.1",
"resolved": "", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
"integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
"dev": true, "dev": true,
"requires": { "requires": {
"figgy-pudding": "^3.5.1" "figgy-pudding": "^3.5.1"
+1
View File
@@ -58,6 +58,7 @@
"moment": "^2.29.1", "moment": "^2.29.1",
"ngx-socket-io": "^3.2.0", "ngx-socket-io": "^3.2.0",
"rxjs": "~6.6.3", "rxjs": "~6.6.3",
"rxjs-compat": "^6.6.7",
"sharp": "^0.25.4", "sharp": "^0.25.4",
"socket.io-client": "^2.3.0", "socket.io-client": "^2.3.0",
"tslib": "^2.0.0", "tslib": "^2.0.0",
+4
View File
@@ -0,0 +1,4 @@
export interface Message {
author: string;
message: string;
}
+29 -49
View File
@@ -21,6 +21,9 @@ import { NewchatPage } from './newchat/newchat.page';
import { Storage } from '@ionic/storage'; import { Storage } from '@ionic/storage';
import { AlertService } from 'src/app/services/alert.service'; import { AlertService } from 'src/app/services/alert.service';
import { EditGroupPage } from 'src/app/shared/chat/edit-group/edit-group.page'; import { EditGroupPage } from 'src/app/shared/chat/edit-group/edit-group.page';
import * as Rx from "rxjs/Rx";
import { Message } from 'src/app/models/message.model';
import { Observable, Subject } from "rxjs/Rx";
@Component({ @Component({
selector: 'app-chat', selector: 'app-chat',
@@ -78,8 +81,15 @@ export class ChatPage implements OnInit {
*/ */
SERVER_URL = 'wss://www.tabularium.pt/websocket'; subject: any;
ws:any; public messages: Subject<any>;
message = {
"msg": "connect",
"version": "1",
"support": ["1"]
};
/* Fim websockets variables*/ /* Fim websockets variables*/
constructor( constructor(
@@ -89,12 +99,13 @@ export class ChatPage implements OnInit {
private authService: AuthService, private authService: AuthService,
private storage:Storage, private storage:Storage,
private resolver: ComponentFactoryResolver, private resolver: ComponentFactoryResolver,
){
) {
this.headers = new HttpHeaders(); this.headers = new HttpHeaders();
/* this.headers = this.headers.set('X-User-Id', 'GqjNWiLrGEHRna7Zn'); chatService.messages.subscribe(msg => {
this.headers = this.headers.set('X-Auth-Token', 'SJwIgtlqfloPK696fpc2VBvyDluipuIHKB_0Q6-9ycJ'); */ console.log("Response from websocket: " + msg);
});
} }
ngOnInit() { ngOnInit() {
this.segment = "Contactos"; this.segment = "Contactos";
@@ -103,49 +114,16 @@ export class ChatPage implements OnInit {
console.log(this.loggedUser); console.log(this.loggedUser);
this.load(); this.load();
}); });
this.storage.get('userDataKey').then(val=> {
let t = JSON.parse(unescape(atob(val)));
this.loggedUser=t;
//this.load();
})
console.log(this.roomId);
this.connect();
}
/* websocket functions */ /* websocket functions */
connect() { //this.sendMsg();
this.ws = new WebSocket(this.SERVER_URL, []);
console.log(this.ws);
/* this.ws.onmessage = handleMessageReceived; /* Fim websocket functions */
this.ws.onerror = handleError; */ }
} sendMsg() {
handleMessageReceived(data) { console.log("new message from client to websocket: ", this.message);
// Simply call logMessage(), passing the received data. this.chatService.messages.next(this.message);
/* logMessage(data.data); */ this.message.msg = "";
}
handleConnected(data) {
// Create a log message which explains what has happened and includes
// the url we have connected too.
var logMsg = 'Connected to server: ' + data.target.url;
// Add the message to the log.
/* logMessage(logMsg) */
}
handleError(err) {
// Print the error to the console so we can debug it.
console.log("Error: ", err);
}
logMessage(msg) {
// $apply() ensures that the elements on the page are updated
// with the new message.
/* $scope.$apply(function() { */
//Append out new message to our message log. The \n means new line.
/* $scope.messageLog = $scope.messageLog + msg + "\n"; */
// Update the scrolling (defined below).
/*updateScrolling();*/
/* S */
} }
@@ -178,7 +156,7 @@ export class ChatPage implements OnInit {
} }
openMessagesPage(rid) { openMessagesPage(rid) {
if( window.innerWidth <= 1024){ if( window.innerWidth <= 1024){
this.openMessagesModal(rid); //this.openMessagesModal(rid);
} }
else{ else{
this.closeAllDesktopComponents(); this.closeAllDesktopComponents();
@@ -236,9 +214,8 @@ export class ChatPage implements OnInit {
onSegmentChange(){ onSegmentChange(){
this.load(); this.load();
} }
doRefresh(ev:any){ doRefresh(){
this.load(); this.load();
ev.target.complete();
} }
load(){ load(){
switch (this.segment) switch (this.segment)
@@ -310,6 +287,7 @@ export class ChatPage implements OnInit {
await modal.present(); await modal.present();
modal.onDidDismiss(); modal.onDidDismiss();
} }
async selectContact(){ async selectContact(){
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: ContactsPage, component: ContactsPage,
@@ -318,6 +296,7 @@ export class ChatPage implements OnInit {
await modal.present(); await modal.present();
modal.onDidDismiss(); modal.onDidDismiss();
} }
async newGroup(){ async newGroup(){
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: NewGroupPage, component: NewGroupPage,
@@ -383,4 +362,5 @@ export class ChatPage implements OnInit {
await modal.present(); await modal.present();
modal.onDidDismiss(); modal.onDidDismiss();
} }
} }
@@ -76,13 +76,12 @@ openExpedientDetailPage(data){
async LoadList(){ async LoadList(){
let result = await this.processes.GetTasksList("Despacho", false).toPromise(); let result = await this.processes.GetTasksList("Despacho", false).toPromise();
let despachos = result.reverse().filter(data => data.activityInstanceName == "Despacho (Paralelo)");
console.log(result); console.log(result);
this.despachoList = new Array(); await despachos.forEach( (element, index) => {
await result.forEach( (element, index) => {
let task = { let task = {
"SerialNumber": element.serialNumber, "SerialNumber": element.serialNumber,
@@ -158,7 +158,8 @@ export class GabineteDigitalPage implements OnInit {
let expedientes = await this.processesbackend.GetTasksList("Expediente", false).toPromise(); let expedientes = await this.processesbackend.GetTasksList("Expediente", false).toPromise();
this.count_exp_dailywork = Object.keys(expedientes.filter(data => data.workflowInstanceDataFields.Status == "Active")).length; this.count_exp_dailywork = Object.keys(expedientes.filter(data => data.workflowInstanceDataFields.Status == "Active")).length;
let despachos = await this.processesbackend.GetTasksList("Despacho", false).toPromise(); let result = await this.processesbackend.GetTasksList("Despacho", false).toPromise();
let despachos = result.reverse().filter(data => data.activityInstanceName == "Despacho (Paralelo)");
this.count_desp_dailywork = Object.keys(despachos).length; this.count_desp_dailywork = Object.keys(despachos).length;
let pareceres = await this.processesbackend.GetTasksList("Pedido de Parecer", false).toPromise(); let pareceres = await this.processesbackend.GetTasksList("Pedido de Parecer", false).toPromise();
+20 -5
View File
@@ -1,12 +1,14 @@
import { HttpHeaders, HttpParams } from '@angular/common/http'; import { HttpHeaders, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Observable } from "rxjs"
import { AuthService } from './auth.service'; import { AuthService } from './auth.service';
import { HttpService } from './http.service'; import { HttpService } from './http.service';
import { StorageService } from './storage.service'; import { StorageService } from './storage.service';
import { HttpClient, HttpHeaderResponse } from '@angular/common/http'; import { HttpClient, HttpHeaderResponse } from '@angular/common/http';
import { environment } from 'src/environments/environment'; import { environment } from 'src/environments/environment';
import { Storage } from '@ionic/storage'; import { Storage } from '@ionic/storage';
import { Message } from 'src/app/models/message.model';
import { Observable, Subject } from "rxjs/Rx";
import { WebsocketService } from './websocket.service';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@@ -18,17 +20,20 @@ export class ChatService {
X_User_Id:any; X_User_Id:any;
X_Auth_Token:any; X_Auth_Token:any;
SERVER_URL = 'wss://www.tabularium.pt/websocket';
public messages: Subject<any>;
constructor( constructor(
private http:HttpClient, private http:HttpClient,
private httpService: HttpService, private httpService: HttpService,
private authService: AuthService, private authService: AuthService,
private storage: Storage, private storage: Storage,
private storageService:StorageService,) { private storageService:StorageService,
private wsService: WebsocketService,
)
{
this.headers = new HttpHeaders(); this.headers = new HttpHeaders();
/* this.headers = this.headers.set('X-User-Id', 'GqjNWiLrGEHRna7Zn');
this.headers = this.headers.set('X-Auth-Token', 'dAM0ZOTAy8jzQA_vS25z2IrnSc6sYLfi5rmaa35YNUz'); */
-
this.authService.userData$.subscribe((res:any)=>{ this.authService.userData$.subscribe((res:any)=>{
this.headers = this.headers.set('X-User-Id', res.userId); this.headers = this.headers.set('X-User-Id', res.userId);
this.headers = this.headers.set('X-Auth-Token', res.authToken); this.headers = this.headers.set('X-Auth-Token', res.authToken);
@@ -36,6 +41,16 @@ export class ChatService {
this.options = { this.options = {
headers: this.headers, headers: this.headers,
}; };
this.messages = <Subject<any>>this.wsService.connect(this.SERVER_URL).map((response: MessageEvent): any => {
let data = JSON.parse(response.data);
console.log(data);
return {
id: data.id,
msg: data.msg
};
});
} }
/* getUser(){ /* getUser(){
+28 -6
View File
@@ -1,7 +1,5 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import * as io from 'socket.io-client'; import * as Rx from "rxjs/Rx";
import { Observable } from 'rxjs';
import { Socket } from 'ngx-socket-io';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@@ -11,11 +9,35 @@ export class WebsocketService {
message = ''; message = '';
messages = []; messages = [];
currentUser = ''; currentUser = '';
private subject: Rx.Subject<MessageEvent>;
constructor(private socket: Socket) { } constructor() { }
connect(){ public connect(url): Rx.Subject<MessageEvent> {
return this.socket.connect(); if (!this.subject) {
this.subject = this.create(url);
console.log("Successfully connected: " + url);
}
return this.subject;
}
private create(url): Rx.Subject<MessageEvent> {
let ws = new WebSocket(url);
let observable = Rx.Observable.create((obs: Rx.Observer<MessageEvent>) => {
ws.onmessage = obs.next.bind(obs);
ws.onerror = obs.error.bind(obs);
ws.onclose = obs.complete.bind(obs);
return ws.close.bind(ws);
});
let observer = {
next: (data: Object) => {
if (ws.readyState === WebSocket.OPEN) {
ws.send(JSON.stringify(data));
}
}
};
return Rx.Subject.create(observer, observable);
} }
} }
@@ -77,10 +77,11 @@ export class DespachosPage implements OnInit {
this.despachoList = new Array(); this.despachoList = new Array();
let result = await this.processes.GetTasksList("Despacho", false).toPromise(); let result = await this.processes.GetTasksList("Despacho", false).toPromise();
let despachos = result.reverse().filter(data => data.activityInstanceName == "Despacho (Paralelo)");
console.log(result); console.log(result);
await result.forEach( (element, index) => { await despachos.forEach( (element, index) => {
let task = { let task = {
"SerialNumber": element.serialNumber, "SerialNumber": element.serialNumber,
+8 -11
View File
@@ -18,19 +18,16 @@ export class HeaderPage implements OnInit {
loggeduser: User; loggeduser: User;
constructor( constructor(
private router: Router,private modalController: ModalController, private router: Router,
private modalController: ModalController,
private animationController: AnimationController, private animationController: AnimationController,
authService: AuthService) { authService: AuthService
) {
this.loggeduser = authService.ValidatedUser; this.loggeduser = authService.ValidatedUser;
router.events.subscribe((val) => {
this.showSearch=false;
router.events.subscribe((val) => { //this.modalController.dismiss();
this.showSearch=false; });
this.modalController.dismiss()
});
} }
ngOnInit() { ngOnInit() {