fix socket in app
This commit is contained in:
@@ -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,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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
|
||||
|
||||
@@ -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">-->
|
||||
|
||||
@@ -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,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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
/*
|
||||
|
||||
@@ -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>-->
|
||||
|
||||
<!-- <!– <div class="mentor" (click)="onMentor()">–>-->
|
||||
<!-- <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>-->
|
||||
<!-- <!– <ion-icon name="chatbubble-ellipses-outline" color="primary"></ion-icon>–>-->
|
||||
<!-- </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>
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -144,7 +144,7 @@ export class WrenchService {
|
||||
|
||||
getBlogData(blogReq){
|
||||
//const blogReq=[];
|
||||
return this.getPostData('blogdata',blogReq);
|
||||
return this.getPostData('mobileblogdata',blogReq);
|
||||
//blogdata
|
||||
}
|
||||
|
||||
|
||||
@@ -35,4 +35,9 @@ export class MarketDataService {
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
socketRefreshJobsData(data){
|
||||
console.log("BAD REFESH NEED TO FIX ", data);
|
||||
this.getJobsData();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user