fix socket in app

This commit is contained in:
CHIEFSOFT\ameye
2024-08-03 13:06:43 -04:00
parent ddd23345c7
commit 62a2e4af45
13 changed files with 208 additions and 87 deletions
@@ -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';
+8 -1
View File
@@ -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);
@@ -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);
}
+5 -3
View File
@@ -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 );
}
+41 -11
View File
@@ -153,19 +153,49 @@
</div>
<div *ngIf="tabs =='message'" class="lesson">
<ion-card>
<ion-card-header>
<ion-card-subtitle>Send Message to task owner</ion-card-subtitle>
</ion-card-header>
<ion-card style="margin: 0px;">
<ion-card-content style="padding: 1px;">
<ion-textarea
style="background-color: aliceblue; margin: 0px; min-height: 120px"
label="Your Message to Job Owner"
placeholder="Enter your updates message here"
[(ngModel)]='yourmessage' ></ion-textarea>
</ion-card-content>
<ion-grid>
<ion-row>
<ion-col style="text-align: left;">
<ion-button fill="outline" size="small" color="secondary" (click)="pickFiles(100)">
<ion-icon name="document-attach-outline"></ion-icon> Send File
</ion-button>
</ion-col>
<ion-col>
<ion-button style="margin-left: 20px;"
size="small"
color="secondary"
expand="block"
(click)="sendActiveJobMessage()">Send Updates</ion-button>
</ion-col>
</ion-row>
</ion-grid>
<ion-card-content>
<ion-textarea label="Your Message to Job Owner" placeholder="Type something here" [(ngModel)]='yourmessage' ></ion-textarea>
</ion-card-content>
<ion-label class="message-result">{{interest_msg_status}}
</ion-label>
</ion-card>
<ion-button color="secondary" expand="block" (click)="sendJobmarketMessage()">Send Message</ion-button>
<ion-label class="description">{{interest_msg_status}}
</ion-label>
</ion-card>
<!-- <ion-card>-->
<!-- <ion-card-header>-->
<!-- <ion-card-subtitle>Send Message to task owner</ion-card-subtitle>-->
<!-- </ion-card-header>-->
<!-- <ion-card-content>-->
<!-- <ion-textarea label="Your Message to Job Owner" placeholder="Type something here" [(ngModel)]='yourmessage' ></ion-textarea>-->
<!-- </ion-card-content>-->
<!-- <ion-button color="secondary" expand="block" (click)="sendJobmarketMessage()">Send Message</ion-button>-->
<!-- <ion-label class="description">{{interest_msg_status}}-->
<!-- </ion-label>-->
<!-- </ion-card>-->
<!-- <div class="video">-->
+115 -2
View File
@@ -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);
}
);
}
}
}
+6 -2
View File
@@ -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);
}
+1 -1
View File
@@ -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);
}
/*
+2 -27
View File
@@ -77,6 +77,8 @@
<ion-select-option value="6">6 Days</ion-select-option>
<ion-select-option value="7">1 Week</ion-select-option>
<ion-select-option value="14">2 Weeks</ion-select-option>
<ion-select-option value="21">3 Weeks</ion-select-option>
<ion-select-option value="28">4 Weeks</ion-select-option>
</ion-select>
</ion-col>
</ion-row>
@@ -153,35 +155,8 @@
<div *ngIf="tabs =='manage'" class="lesson">
</div>
<!-- <div *ngIf="tabs =='about'" class="about">-->
<!-- <ion-label class="head_text">{{jobData.offer_code}}</ion-label>-->
<!-- &lt;!&ndash; <div class="mentor" (click)="onMentor()">&ndash;&gt;-->
<!-- <div class="mentor">-->
<!-- <div class="left">-->
<!-- <div class="bg_image men_image" [style.backgroundImage]="'url(assets/images/taskbanners/default.jpg)'"></div>-->
<!-- <div style="margin-left: 10px;">-->
<!-- <ion-label class="bold">Expires</ion-label>-->
<!-- <ion-label class="grey">{{jobData.expire}}</ion-label>-->
<!-- </div>-->
<!-- </div>-->
<!-- &lt;!&ndash; <ion-icon name="chatbubble-ellipses-outline" color="primary"></ion-icon>&ndash;&gt;-->
<!-- </div>-->
<!-- <ion-label class="head_text">Description</ion-label>-->
<!-- <ion-label class="description">{{jobData.job_description}}-->
<!-- </ion-label>-->
<!-- <ion-label class="head_text">Delivery Details</ion-label>-->
<!-- <ion-label class="description">{{jobData.description}}-->
<!-- </ion-label>-->
<!-- </div>-->
</div>
+6 -3
View File
@@ -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);
+16 -34
View File
@@ -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<boolean>;
connected$: Observable<boolean>;
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<boolean> {
console.log("********************* MONITORING-SOCKETS *******");
@@ -69,19 +52,18 @@ export class SocketToolsService {
this.connectionSubject = new BehaviorSubject<boolean>(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);
});
+1 -1
View File
@@ -144,7 +144,7 @@ export class WrenchService {
getBlogData(blogReq){
//const blogReq=[];
return this.getPostData('blogdata',blogReq);
return this.getPostData('mobileblogdata',blogReq);
//blogdata
}
+5
View File
@@ -35,4 +35,9 @@ export class MarketDataService {
);
}
socketRefreshJobsData(data){
console.log("BAD REFESH NEED TO FIX ", data);
this.getJobsData();
}
}