From 62a2e4af45d425cbe49ab9896341aa30984de94a Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Sat, 3 Aug 2024 13:06:43 -0400 Subject: [PATCH] fix socket in app --- .../familyhome/familyhome.component.ts | 2 +- src/app/pages/activetask/activetask.page.ts | 9 +- src/app/pages/familylogin/familylogin.page.ts | 2 +- src/app/pages/jobactive/jobactive.page.ts | 8 +- src/app/pages/jobpastdue/jobpastdue.page.html | 52 ++++++-- src/app/pages/jobpastdue/jobpastdue.page.ts | 117 +++++++++++++++++- src/app/pages/jobreview/jobreview.page.ts | 8 +- src/app/pages/login/login.page.ts | 2 +- src/app/pages/ownersjob/ownersjob.page.html | 29 +---- src/app/pages/ownersjob/ownersjob.page.ts | 9 +- src/app/services/socket-tools.service.ts | 50 +++----- src/app/services/wrench.service.ts | 2 +- src/app/store/market-data.service.ts | 5 + 13 files changed, 208 insertions(+), 87 deletions(-) diff --git a/src/app/components/familyhome/familyhome.component.ts b/src/app/components/familyhome/familyhome.component.ts index d7fd754..14ad699 100644 --- a/src/app/components/familyhome/familyhome.component.ts +++ b/src/app/components/familyhome/familyhome.component.ts @@ -47,7 +47,7 @@ export class FamilyhomeComponent implements OnInit { pageToNavigate = '/tabs/mytasks'; break; case "pastdue": - pageToNavigate = 'joboffers'; + pageToNavigate = '/tabs/mytasks'; break; case "pending": pageToNavigate = 'joboffers'; diff --git a/src/app/pages/activetask/activetask.page.ts b/src/app/pages/activetask/activetask.page.ts index 00c875e..32f9b0e 100644 --- a/src/app/pages/activetask/activetask.page.ts +++ b/src/app/pages/activetask/activetask.page.ts @@ -8,6 +8,7 @@ import {Camera, CameraResultType, CameraSource} from "@capacitor/camera"; import {TasksDataService} from "../../store/tasks-data.service"; import {FilePicker} from "@capawesome/capacitor-file-picker"; import {MediaConnectService} from "../../services/media-connect.service"; +import {SocketToolsService} from "../../services/socket-tools.service"; @Component({ selector: 'app-activetask', @@ -20,6 +21,7 @@ export class ActivetaskPage implements OnInit { status_description:string=''; session_image_server:string=''; curr_session:string=''; + socket_room:string=''; jobData: any; constructor( @@ -31,7 +33,8 @@ export class ActivetaskPage implements OnInit { public tasksDataService:TasksDataService, public blogDataService: BlogDataService, private loadingCtrl: LoadingController, - private mediaConnectService: MediaConnectService + private mediaConnectService: MediaConnectService, + private socketToolsService: SocketToolsService ) { this.yourmessage=''; this.jobData = this.router.getCurrentNavigation().extras.state; @@ -42,6 +45,8 @@ export class ActivetaskPage implements OnInit { if ( this.jobData == undefined || this.jobData.status_description==''){ this.onBack(); } + this.socket_room = `${this.jobData.contract}-${this.jobData.contract_uid}`; + this.socketToolsService.joinSocketRoom(this.socket_room ); } ngOnInit() { @@ -157,6 +162,8 @@ export class ActivetaskPage implements OnInit { },5000); this.yourmessage =''; const event = new Event("app-taskactivities-refresh"); + this.yourmessage = ''; + this.socketToolsService.emmitSocketEvent("send_message",this.yourmessage, this.socket_room); // Dispatch the event. dispatchEvent(event); diff --git a/src/app/pages/familylogin/familylogin.page.ts b/src/app/pages/familylogin/familylogin.page.ts index 68e8f80..09ca14a 100644 --- a/src/app/pages/familylogin/familylogin.page.ts +++ b/src/app/pages/familylogin/familylogin.page.ts @@ -61,7 +61,7 @@ export class FamilyloginPage implements OnInit { this.socketToolsService.stop(); setTimeout(()=>{ this.socketToolsService.setupSocket("NO-NEED-SEND"); - this.socketToolsService.joinSocketRoom("full-market-jobs" ); + this.socketToolsService.joinSocketRoom("full-markets-jobs" ); }, 5000); } diff --git a/src/app/pages/jobactive/jobactive.page.ts b/src/app/pages/jobactive/jobactive.page.ts index b37f271..be098af 100644 --- a/src/app/pages/jobactive/jobactive.page.ts +++ b/src/app/pages/jobactive/jobactive.page.ts @@ -34,10 +34,12 @@ export class JobactivePage implements OnInit { ) { this.jobData = this.router.getCurrentNavigation().extras.state; this.item_banner = this.jobData.banner; - this.socket_room = `${this.jobData.contract}-${this.jobData.contract_uid}`; - // debugger; - // joinRoom(`${props.details.contract}-${props.details.contract_uid}`) + if ( this.jobData == undefined){ + this.onBack(); + } + debugger; + this.socket_room = `${this.jobData.contract}-${this.jobData.contract_uid}`; this.socketToolsService.joinSocketRoom(this.socket_room ); } diff --git a/src/app/pages/jobpastdue/jobpastdue.page.html b/src/app/pages/jobpastdue/jobpastdue.page.html index 10719c5..269911d 100644 --- a/src/app/pages/jobpastdue/jobpastdue.page.html +++ b/src/app/pages/jobpastdue/jobpastdue.page.html @@ -153,19 +153,49 @@
- - - Send Message to task owner - + + + + + + + + + Send File + + + + Send Updates + + + - - - + {{interest_msg_status}} + + - Send Message - {{interest_msg_status}} - - + + + + + + + + + + + + + + diff --git a/src/app/pages/jobpastdue/jobpastdue.page.ts b/src/app/pages/jobpastdue/jobpastdue.page.ts index 955546c..963906f 100644 --- a/src/app/pages/jobpastdue/jobpastdue.page.ts +++ b/src/app/pages/jobpastdue/jobpastdue.page.ts @@ -1,8 +1,11 @@ -import { Component, OnInit } from '@angular/core'; +import {Component, OnInit, ViewChild} from '@angular/core'; import {AlertController, LoadingController, NavController} from "@ionic/angular"; import {Router} from "@angular/router"; import {SessionDataProviderService} from "../../store/session-data-provider.service"; import {WrenchService} from "../../services/wrench.service"; +import {SocketToolsService} from "../../services/socket-tools.service"; +import {FilePicker} from "@capawesome/capacitor-file-picker"; +import {MediaConnectService} from "../../services/media-connect.service"; @Component({ selector: 'app-jobpastdue', @@ -10,21 +13,31 @@ import {WrenchService} from "../../services/wrench.service"; styleUrls: ['./jobpastdue.page.scss'], }) export class JobpastduePage implements OnInit { + @ViewChild('yourmessage') yourmessage; jobData: any; tabs = 'activities'; item_banner:string = 'default.jpg'; session_image_server:string=''; curr_session:string=''; + socketRoom: string =''; constructor( private navctr: NavController, private router: Router, private alertController:AlertController, private loadingCtrl: LoadingController, public sessionDataProviderService: SessionDataProviderService, - private wrenchService: WrenchService + private wrenchService: WrenchService, + private socketToolsService: SocketToolsService, + private mediaConnectService: MediaConnectService ) { this.jobData = this.router.getCurrentNavigation().extras.state; this.item_banner = this.jobData.banner; + + if ( this.jobData == undefined){ + this.onBack(); + } + this.socketRoom = this.jobData.contract+'-'+this.jobData.contract_uid; + this.socketToolsService.joinSocketRoom(this.socketRoom); } @@ -153,4 +166,104 @@ export class JobpastduePage implements OnInit { }); await alert.present(); } + + reqDataMessage: { + action:number, member_id: number, uid: string, sessionid: string, msg_type:string, + contract:string, + message:string + }; + + interest_status:string = ""; + interest_msg_status:string = ""; + + msgReqResult:any; + async sendActiveJobMessage(){ + if (this.yourmessage == undefined || this.yourmessage?.length < 5){ + alert("Enter Message to send"); + return; + } + + const loading = await this.loadingCtrl.create({ + message: 'Sending...', + duration: 2500, + }); + this.reqDataMessage = {action:14010, + member_id: this.sessionDataProviderService.member_id, + uid: this.sessionDataProviderService.member_uid, + sessionid: this.sessionDataProviderService.session , + msg_type: "TEXT", + contract:this.jobData.contract, + message: this.yourmessage + } + + await loading.present(); + this.wrenchService.sendTaskMessage(this.reqDataMessage).subscribe( + reqResult => { + this.msgReqResult = reqResult; + console.log("msgReqResult RETURN->", this.msgReqResult); + this.interest_msg_status = this.msgReqResult?.status; + this.yourmessage = ''; + const event = new Event("app-taskactivities-refresh"); + // Dispatch the event. + dispatchEvent(event); + this.socketToolsService.emmitSocketEvent("send_message",this.yourmessage, this.socketRoom); + } + ); + } + + uploadResult:any; + uploadFormData: { + action:number, + member_id: number, + uid: string, + contract: string, + sessionid: string, + msg_type:'FILE' + }; + + async pickFiles (fileMode) { + const result = await FilePicker.pickFiles({ + types: ['image/png','image/jpeg','video/mp4'], + multiple: false, + readData:true + }); + + const loading = await this.loadingCtrl.create({ + message: 'Uploading...', + duration: 5000, + }); + + if(result){ + console.log(result); + // debugger; + this.uploadFormData={ + action:14010, + member_id: this.sessionDataProviderService.member_id, + uid: this.sessionDataProviderService.member_uid, + contract: this.jobData.contract, + sessionid: this.sessionDataProviderService.session , + msg_type:'FILE' + }; + + console.log(this.uploadFormData); + for (const [key, value] of Object.entries( this.uploadFormData )) { + console.log(`${key}: ${value}`); + } + + var blob = new Blob([ result.files[0].data ], { type: result.files[0].mimeType }); + var file = new File([blob], result.files[0].name, {type: result.files[0].mimeType }); +//return; + await loading.present(); + this.mediaConnectService.uploadtaskFile(this.uploadFormData, file).subscribe( + uploadResult => { + loading.dismiss(); + this.uploadResult = uploadResult; + console.log("this.mediaConnectService.uploadFile RETURN DATA->", this.uploadFormData); + const event = new Event("app-taskactivities-refresh"); + // Dispatch the event. + dispatchEvent(event); + } + ); + } + } } diff --git a/src/app/pages/jobreview/jobreview.page.ts b/src/app/pages/jobreview/jobreview.page.ts index 14e1308..24c8981 100644 --- a/src/app/pages/jobreview/jobreview.page.ts +++ b/src/app/pages/jobreview/jobreview.page.ts @@ -6,7 +6,7 @@ import {WrenchService} from "../../services/wrench.service"; import {Camera, CameraResultType, CameraSource} from "@capacitor/camera"; import { FilePicker } from '@capawesome/capacitor-file-picker'; import {MediaConnectService} from "../../services/media-connect.service"; - +import {SocketToolsService} from "../../services/socket-tools.service"; @Component({ selector: 'app-jobreview', templateUrl: './jobreview.page.html', @@ -19,6 +19,7 @@ export class JobreviewPage implements OnInit { item_banner:string = 'default.jpg'; session_image_server:string=''; curr_session:string=''; + socketRoom: string =''; constructor( private navctr: NavController, private router: Router, @@ -26,7 +27,8 @@ export class JobreviewPage implements OnInit { private wrenchService: WrenchService, private alertController:AlertController, private loadingCtrl: LoadingController, - private mediaConnectService: MediaConnectService + private mediaConnectService: MediaConnectService, + private socketToolsService: SocketToolsService ) { this.jobData = this.router.getCurrentNavigation().extras.state; this.item_banner = this.jobData.banner; @@ -34,6 +36,8 @@ export class JobreviewPage implements OnInit { if ( this.jobData == undefined){ this.onBack(); } + this.socketRoom = this.jobData.contract+'-'+this.jobData.contract_uid; + this.socketToolsService.joinSocketRoom(this.socketRoom); } diff --git a/src/app/pages/login/login.page.ts b/src/app/pages/login/login.page.ts index 26666c0..0741f03 100644 --- a/src/app/pages/login/login.page.ts +++ b/src/app/pages/login/login.page.ts @@ -591,7 +591,7 @@ getBlogData(){ this.socketToolsService.stop(); setTimeout(()=>{ this.socketToolsService.setupSocket("NO-NEED-SEND"); - this.socketToolsService.joinSocketRoom("full-market-jobs" ); + this.socketToolsService.joinSocketRoom("full-markets-jobs" ); }, 5000); } /* diff --git a/src/app/pages/ownersjob/ownersjob.page.html b/src/app/pages/ownersjob/ownersjob.page.html index e29936d..259ace1 100644 --- a/src/app/pages/ownersjob/ownersjob.page.html +++ b/src/app/pages/ownersjob/ownersjob.page.html @@ -77,6 +77,8 @@ 6 Days 1 Week 2 Weeks + 3 Weeks + 4 Weeks @@ -153,35 +155,8 @@
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/src/app/pages/ownersjob/ownersjob.page.ts b/src/app/pages/ownersjob/ownersjob.page.ts index 1696b72..a32feaf 100644 --- a/src/app/pages/ownersjob/ownersjob.page.ts +++ b/src/app/pages/ownersjob/ownersjob.page.ts @@ -34,7 +34,8 @@ export class OwnersjobPage implements OnInit { if (this.jobData== undefined){ this.onBack(); } - //this.socketToolsService.joinSocketRoom("full-market-jobs" ); + this.socketToolsService.joinSocketRoom("full-markets-jobs" ); + this.socketToolsService.joinSocketRoom("market" ); //debugger; } onBack() { @@ -151,7 +152,7 @@ if ( this.job_duration== undefined || this.job_duration < 1){ assign_mode: 110022 }; // console.log('XXX-> ', this.reqData ); - // debugger; + //debugger; const loading = await this.loadingCtrl.create({ message: 'Sending...', @@ -169,7 +170,9 @@ if ( this.job_duration== undefined || this.job_duration < 1){ const event = new Event("app-myjob-offers-refresh"); // Dispatch the event. dispatchEvent(event); - this.socketToolsService.emmitSocketEvent("send_message","market", "full-market-jobs"); + // debugger; + // this.socketToolsService.emmitSocketEvent("send_message","market", "full-market-jobs"); // + this.socketToolsService.emmitSocketEvent("marketjob_added","market", "full-markets-jobs"); setTimeout(() => { this.assign_mak_result =''; }, 3000); diff --git a/src/app/services/socket-tools.service.ts b/src/app/services/socket-tools.service.ts index 4e8e8d5..4989129 100644 --- a/src/app/services/socket-tools.service.ts +++ b/src/app/services/socket-tools.service.ts @@ -2,13 +2,13 @@ import { Injectable } from '@angular/core'; import { io, Socket } from 'socket.io-client'; import { BehaviorSubject, Observable, Subject } from 'rxjs'; import { environment } from 'src/environments/environment'; - +import { MarketDataService } from '../store/market-data.service' @Injectable({ providedIn: 'root' }) export class SocketToolsService { - constructor() { + constructor(public marketDataService: MarketDataService ) { // this.setup('NO-NEED-FOR-NOW'); } private socket: Socket; @@ -18,50 +18,33 @@ export class SocketToolsService { private connectionSubject: Subject; connected$: Observable; setupSocket(authToken: string): void { - // this.socket = io(environment.socketURL, { - // path: '/chat/', - // reconnection: true, - // autoConnect: false, - // extraHeaders: { - // Authorization: 'Bearer ' + authToken - // } - // }); - this.socket = io(environment.socketURL,{autoConnect: false ,reconnection: true}); this.connected$ = this.monitorConnection(); this.socket.connect(); - // this.connected$ = this.monitorConnection(); + //this.joinSocketRoom("full-markets-jobs") +/* + console.log("START JOIN DEFAULT ROOM ********* *** 001"); + this.joinSocketRoom("received_refreshmarket_jobs"); + console.log("END JOIN DEFAULT ROOM ********* *** 001"); + this.socket.on('receive_message', () => { - console.log("app-taskactivities-refresh 001"); - const event = new Event("app-taskactivities-refresh"); - alert("app-taskactivities-refresh 000"); - dispatchEvent(event); + console.log("app-taskactivities-refresh MOBILE *** 001"); }); this.socket.on('received_refreshmarket_jobs', (data) => { - console.log("received_refreshmarket_jobs 002"); - alert("received_refreshmarket_jobs 002"); - debugger + console.log("received_refreshmarket_jobs MOBILE *** 002"); }); - - + */ } -// useEffect(() => { -// this.socket.on("receive_message", (data) => { -// // setSocketMsgReceived(data.message); -// //dispatch(tableReload({type:'CHATMESSAGELIST'})) -// }); -// }, [this.socket]); - public joinSocketRoom(socketRoom){ this.socket.emit("join_room", socketRoom); } public emmitSocketEvent(socketGroup, message, socketRoom){ - this.socket.emit(socketGroup, { message, socketRoom }); + this.socket.emit(socketGroup, { 'message':message, 'room': socketRoom }); } private monitorConnection(): Observable { console.log("********************* MONITORING-SOCKETS *******"); @@ -69,19 +52,18 @@ export class SocketToolsService { this.connectionSubject = new BehaviorSubject(false); this.socket.on('receive_message', () => { - console.log("app-taskactivities-refresh"); + console.log("app-taskactivities-refresh MOBILE APP ****"); const event = new Event("app-taskactivities-refresh"); dispatchEvent(event); }); this.socket.on('received_refreshmarket_jobs', (data) => { - console.log("received_refreshmarket_jobs"); - // debugger + // console.log("received_refreshmarket_jobs MOBILE APP****", data); + this.marketDataService.socketRefreshJobsData(data); }); - this.socket.on('connect', () => { - console.log("********************* MONITORING-SOCKETS ON CONNNECT *******"); + console.log("********************* MONITORING-SOCKETS ON CONNECT *******"); // debugger; this.connectionSubject.next(true); }); diff --git a/src/app/services/wrench.service.ts b/src/app/services/wrench.service.ts index 02a535b..23bb627 100644 --- a/src/app/services/wrench.service.ts +++ b/src/app/services/wrench.service.ts @@ -144,7 +144,7 @@ export class WrenchService { getBlogData(blogReq){ //const blogReq=[]; - return this.getPostData('blogdata',blogReq); + return this.getPostData('mobileblogdata',blogReq); //blogdata } diff --git a/src/app/store/market-data.service.ts b/src/app/store/market-data.service.ts index 8e7b67a..5aef06a 100644 --- a/src/app/store/market-data.service.ts +++ b/src/app/store/market-data.service.ts @@ -35,4 +35,9 @@ export class MarketDataService { ); } + + socketRefreshJobsData(data){ + console.log("BAD REFESH NEED TO FIX ", data); + this.getJobsData(); + } }