active tasks

This commit is contained in:
CHIEFSOFT\ameye
2023-11-23 20:24:47 -05:00
parent f8a4409789
commit df25b2c59d
8 changed files with 181 additions and 152 deletions
@@ -1,4 +1,4 @@
.lesson { .task_activity {
margin-top: 20px; margin-top: 20px;
.bold { .bold {
@@ -13,6 +13,11 @@
color: grey; color: grey;
} }
.red {
color: red;
font-weight: bolder;
}
.sec { .sec {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -24,12 +29,14 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
background-color: white; //background-color: white;
padding: 15px; padding: 15px;
box-shadow: 0px 0px 20px 1px rgba(0, 0, 0, 0.1); box-shadow: 0px 0px 20px 1px rgba(0, 0, 0, 0.1);
border-radius: 10px; border-radius: 10px;
margin-top: 20px; margin-top: 20px;
.left { .left {
display: flex; display: flex;
} }
@@ -13,7 +13,12 @@ export class TaskactivitiesComponent implements OnInit {
constructor( constructor(
public sessionDataProviderService: SessionDataProviderService, public sessionDataProviderService: SessionDataProviderService,
private wrenchService: WrenchService private wrenchService: WrenchService
) { } ) {
addEventListener('app-taskactivities-refresh', () => {
this.activeJobMsgList();
});
}
ngOnInit() { ngOnInit() {
console.log("IN COMPO ACT", this.jobData); console.log("IN COMPO ACT", this.jobData);
+45 -46
View File
@@ -1,7 +1,17 @@
<ion-header mode="ios" class="ion-no-border">
<ion-toolbar>
<ion-buttons slot="start" (click)="onBack()">
<ion-button>
<ion-icon name="arrow-back-outline"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title>{{jobData.title}}</ion-title>
</ion-toolbar>
</ion-header>
<ion-content> <ion-content>
<div class="boxed_contents"> <div class="boxed_contents">
<div class="bg_image back_image" [style.backgroundImage]="'url(https://www.wrenchboard.com/assets/images/apps/jobs/default.jpg)'"> <div class="bg_image back_image" [style.backgroundImage]="'url('+session_image_server+'/'+curr_session+'/job/'+jobData.job_uid+')'">
<div class="ion-padding"> <div class="ion-padding">
<ion-icon slot="start" name="arrow-back" class="back" (click)="onBack()"></ion-icon> <ion-icon slot="start" name="arrow-back" class="back" (click)="onBack()"></ion-icon>
</div> </div>
@@ -33,14 +43,14 @@
<!-- </div>--> <!-- </div>-->
</div> </div>
<div *ngIf="status_description == 'ACTIVE'" > <div *ngIf="status_description == 'ACTIVE'" >
<ion-segment [(ngModel)]="tabs"> <ion-segment class="common_segment" [(ngModel)]="tabs">
<ion-segment-button value="activities">
<ion-label>Send Updates</ion-label>
</ion-segment-button>
<ion-segment-button value="about"> <ion-segment-button value="about">
<ion-label>Details</ion-label> <ion-label>Details</ion-label>
</ion-segment-button> </ion-segment-button>
<ion-segment-button value="lesson">
<ion-label>Send Updates</ion-label>
</ion-segment-button>
<ion-segment-button value="review"> <ion-segment-button value="review">
<ion-label>Actions</ion-label> <ion-label>Actions</ion-label>
</ion-segment-button> </ion-segment-button>
@@ -72,45 +82,37 @@
</div> </div>
<div *ngIf="tabs =='lesson'" class="lesson"> <div *ngIf="tabs =='activities'" class="lesson">
<!-- <div class="flex">-->
<!-- <ion-label class="bold">Most Popular Courses</ion-label>-->
<!-- <ion-label class="color">See all</ion-label>-->
<!-- </div>-->
<!-- <div class="sec">-->
<!-- <ion-label class="grey">Due Date:{{jobData.delivery_date}}</ion-label>-->
<!-- <ion-label class="color">{{jobData.contract}}</ion-label>-->
<!-- </div>-->
<ion-card> <ion-card>
<!-- <ion-card-header>--> <ion-card-content style="padding: 1px;">
<!-- <ion-card-subtitle>Send Updates</ion-card-subtitle>--> <ion-textarea
<!-- </ion-card-header>--> style="background-color: aliceblue; margin: 0px; min-height: 120px"
label="Your Message to Job Owner"
<ion-card-content> placeholder="Enter your updates message here"
<ion-textarea label="Your Message to Job Owner" placeholder="Type message here" [(ngModel)]='yourmessage' ></ion-textarea> [(ngModel)]='yourmessage' ></ion-textarea>
</ion-card-content> </ion-card-content>
<ion-grid>
<ion-row>
<ion-col style="text-align: left;">
<ion-button color="secondary">
<ion-icon slot="icon-only" name="camera-reverse-outline"></ion-icon>
</ion-button>
<ion-button style="margin-left: 10px;">
<ion-icon slot="icon-only" name="folder-outline"></ion-icon>
</ion-button>
</ion-col>
<ion-col>
<ion-button color="secondary" expand="block" (click)="sendActiveJobMessage()">Send Updates</ion-button>
</ion-col>
</ion-row>
</ion-grid>
<ion-button color="secondary" expand="block" (click)="sendActiveJobMessage()">Send Updates</ion-button>
<ion-label class="description">{{interest_msg_status}} <ion-label class="description">{{interest_msg_status}}
</ion-label> </ion-label>
</ion-card> </ion-card>
<!-- <div class="video {{item.who}}" *ngFor="let item of msgListData">-->
<!-- <div class="left">-->
<!-- <div class="bg_image men_image" [style.backgroundImage]="'url(https://www.wrenchboard.com/assets/images/apps/msg/TEXT.svg)'"></div>-->
<!-- <div class="text">-->
<!-- <ion-label class="bold_text">{{item.msg_firstname}}-{{item.msg_date}}</ion-label>-->
<!-- <ion-label class="grey_text">{{item.message}}</ion-label>-->
<!-- </div>-->
<!-- </div>-->
<!-- &lt;!&ndash; <div class="right">&ndash;&gt;-->
<!-- &lt;!&ndash;&lt;!&ndash; <ion-icon name="lock-closed-outline"></ion-icon>&ndash;&gt;&ndash;&gt;-->
<!-- &lt;!&ndash; </div>&ndash;&gt;-->
<!-- </div>-->
</div> </div>
<div *ngIf="tabs =='review'" class="review_tab"> <div *ngIf="tabs =='review'" class="review_tab">
@@ -168,7 +170,6 @@
</ion-card-content> </ion-card-content>
</ion-card> </ion-card>
</div> </div>
<div *ngIf="status_description == 'REVIEW'" > <div *ngIf="status_description == 'REVIEW'" >
<ion-card color="success"> <ion-card color="success">
<ion-card-header> <ion-card-header>
@@ -178,8 +179,6 @@
<ion-card-content> THis task is in review , the owner will give feedback soon. </ion-card-content> <ion-card-content> THis task is in review , the owner will give feedback soon. </ion-card-content>
</ion-card> </ion-card>
</div> </div>
<app-taskactivities [jobData]="jobData"></app-taskactivities> <app-taskactivities [jobData]="jobData"></app-taskactivities>
@@ -187,11 +186,11 @@
</div> </div>
</ion-content> </ion-content>
<ion-footer> <!--<ion-footer>-->
<ion-toolbar> <!-- <ion-toolbar>-->
<div class="button" (click)="onBack()"> <!-- <div class="button" (click)="onBack()">-->
<ion-label class="text">Return</ion-label> <!-- <ion-label class="text">Return</ion-label>-->
</div> <!-- </div>-->
</ion-toolbar> <!-- </ion-toolbar>-->
</ion-footer> <!--</ion-footer>-->
+45 -38
View File
@@ -12,9 +12,10 @@ import { WrenchService } from 'src/app/services/wrench.service';
}) })
export class ActivetaskPage implements OnInit { export class ActivetaskPage implements OnInit {
@ViewChild('yourmessage') yourmessage; @ViewChild('yourmessage') yourmessage;
tabs = 'about'; tabs = 'activities';
status_description:string=''; status_description:string='';
session_image_server:string='';
curr_session:string='';
jobData: any; jobData: any;
constructor( constructor(
@@ -25,16 +26,18 @@ export class ActivetaskPage implements OnInit {
private wrenchService: WrenchService, private wrenchService: WrenchService,
public blogDataService: BlogDataService public blogDataService: BlogDataService
) { ) {
this.yourmessage='';
this.jobData = this.router.getCurrentNavigation().extras.state; this.jobData = this.router.getCurrentNavigation().extras.state;
console.log("XXXXX 1", this.router.getCurrentNavigation().extras); console.log("XXXXX 1", this.router.getCurrentNavigation().extras);
console.log("XXXXX 2", this.router.getCurrentNavigation().extras.state); console.log("XXXXX 2", this.router.getCurrentNavigation().extras.state);
//console.log("XXXXX 3", this.router.getCurrentNavigation().extras.state.ID); //console.log("XXXXX 3", this.router.getCurrentNavigation().extras.state.ID);
this.status_description = this.jobData.status_description; this.status_description = this.jobData?.status_description;
} }
ngOnInit() { ngOnInit() {
this.activeJobMsgList(); this.curr_session = this.sessionDataProviderService.session;
this.session_image_server = this.sessionDataProviderService.session_image_server;
//this.activeJobMsgList();
} }
onBack() { onBack() {
@@ -60,37 +63,37 @@ export class ActivetaskPage implements OnInit {
*/ */
contrData: { // contrData: {
action:number, // action:number,
member_id: number, // member_id: number,
uid: string, // uid: string,
sessionid: string, // sessionid: string,
limit:20, // limit:20,
contract:string, // contract:string,
offset: 0 // offset: 0
}; // };
msgListTotalData:any; // msgListTotalData:any;
msgListData: []; // msgListData: [];
activeJobMsgList(){ // activeJobMsgList(){
this.contrData = { // this.contrData = {
action:14011, // action:14011,
member_id: this.sessionDataProviderService.member_id, // member_id: this.sessionDataProviderService.member_id,
uid: this.sessionDataProviderService.member_uid, // uid: this.sessionDataProviderService.member_uid,
sessionid: this.sessionDataProviderService.session , // sessionid: this.sessionDataProviderService.session ,
limit:20, // limit:20,
contract: this.jobData.contract, // contract: this.jobData.contract,
offset: 0} // offset: 0}
//
this.wrenchService.activeJobMsgList(this.contrData).subscribe( // this.wrenchService.activeJobMsgList(this.contrData).subscribe(
msgListTotalData => { // msgListTotalData => {
this.msgListTotalData = msgListTotalData; // this.msgListTotalData = msgListTotalData;
// console.log("REFER RETURN->", this.referTotalData); // // console.log("REFER RETURN->", this.referTotalData);
this.msgListData = this.msgListTotalData.result_list; // this.msgListData = this.msgListTotalData.result_list;
console.log("REFER RETURN DATA->", this.msgListData); // console.log("REFER RETURN DATA->", this.msgListData);
} // }
); // );
//
} // }
/* /*
'member_id' => int 1 'member_id' => int 1
@@ -113,7 +116,7 @@ export class ActivetaskPage implements OnInit {
msgReqResult:any; msgReqResult:any;
sendActiveJobMessage(){ sendActiveJobMessage(){
if (this.yourmessage.length < 5){ if (this.yourmessage == undefined || this.yourmessage?.length < 5){
alert("Enter Message to send"); alert("Enter Message to send");
return; return;
} }
@@ -132,7 +135,11 @@ export class ActivetaskPage implements OnInit {
this.msgReqResult = reqResult; this.msgReqResult = reqResult;
console.log("msgReqResult RETURN->", this.msgReqResult); console.log("msgReqResult RETURN->", this.msgReqResult);
this.interest_msg_status = this.msgReqResult?.status; this.interest_msg_status = this.msgReqResult?.status;
this.activeJobMsgList(); //this.activeJobMsgList();
const event = new Event("app-taskactivities-refresh");
// Dispatch the event.
dispatchEvent(event);
} }
); );
} }
+8 -2
View File
@@ -71,7 +71,7 @@ export class OwnersjobPage implements OnInit {
email: this.job_recipient, email: this.job_recipient,
assign_mode: 110033 assign_mode: 110033
}; };
console.log('XXX-> ', this.reqData ); // console.log('XXX-> ', this.reqData );
loading.present(); loading.present();
@@ -82,6 +82,9 @@ export class OwnersjobPage implements OnInit {
if ( this.assigResult != undefined && this.assigResult.internal_return > 0){ if ( this.assigResult != undefined && this.assigResult.internal_return > 0){
this.assign_ind_result = "Task sent to the email - " +this.job_recipient; this.assign_ind_result = "Task sent to the email - " +this.job_recipient;
this.job_recipient=''; this.job_recipient='';
const event = new Event("app-myjob-offers-refresh");
// Dispatch the event.
dispatchEvent(event);
setTimeout(() => { setTimeout(() => {
this.assign_ind_result =''; this.assign_ind_result ='';
}, 3000); }, 3000);
@@ -157,7 +160,10 @@ console.log('XXX-> ', this.reqData );
this.assigResult = assigResult; this.assigResult = assigResult;
console.log("assigResult RETURN->", this.assigResult); console.log("assigResult RETURN->", this.assigResult);
if ( this.assigResult != undefined && this.assigResult.internal_return > 0){ if ( this.assigResult != undefined && this.assigResult.internal_return > 0){
this.assign_mak_result = "Task sent to market;" this.assign_mak_result = "Task sent to market";
const event = new Event("app-myjob-offers-refresh");
// Dispatch the event.
dispatchEvent(event);
setTimeout(() => { setTimeout(() => {
this.assign_mak_result =''; this.assign_mak_result ='';
}, 3000); }, 3000);
@@ -7,6 +7,7 @@ import { IonicModule } from '@ionic/angular';
import { PendingoffersPageRoutingModule } from './pendingoffers-routing.module'; import { PendingoffersPageRoutingModule } from './pendingoffers-routing.module';
import { PendingoffersPage } from './pendingoffers.page'; import { PendingoffersPage } from './pendingoffers.page';
import {MyjobOffersComponent} from "../../components/myjob-offers/myjob-offers.component";
@NgModule({ @NgModule({
imports: [ imports: [
@@ -15,6 +16,6 @@ import { PendingoffersPage } from './pendingoffers.page';
IonicModule, IonicModule,
PendingoffersPageRoutingModule PendingoffersPageRoutingModule
], ],
declarations: [PendingoffersPage] declarations: [PendingoffersPage,MyjobOffersComponent]
}) })
export class PendingoffersPageModule {} export class PendingoffersPageModule {}
@@ -14,11 +14,15 @@
<div class="ion-padding"> <div class="ion-padding">
<div class="flex"> <div class="boxed_contents">
<ion-label class="bold_text">Pending Offers</ion-label> <div class="flex">
<!-- <ion-icon slot="end" name="bookmark-outline" color="primary"></ion-icon>--> <ion-label class="bold_text">Pending Offers</ion-label>
</div>
<app-myjob-offers></app-myjob-offers>
</div> </div>
<!-- <div class="row">--> <!-- <div class="row">-->
<!-- <ion-label class="bg_text">3D Design</ion-label>--> <!-- <ion-label class="bg_text">3D Design</ion-label>-->
<!-- <div class="rate">--> <!-- <div class="rate">-->
@@ -29,39 +33,39 @@
<!-- <ion-label class="color_text">$40</ion-label>--> <!-- <ion-label class="color_text">$40</ion-label>-->
<div class="items"> <!-- <div class="items">-->
<!-- <div class="stud">--> <!--&lt;!&ndash; <div class="stud">&ndash;&gt;-->
<!-- <ion-icon slot="start" name="people" color="primary"></ion-icon>--> <!--&lt;!&ndash; <ion-icon slot="start" name="people" color="primary"></ion-icon>&ndash;&gt;-->
<!-- <ion-label>9876 Students</ion-label>--> <!--&lt;!&ndash; <ion-label>9876 Students</ion-label>&ndash;&gt;-->
<!-- </div>--> <!--&lt;!&ndash; </div>&ndash;&gt;-->
<!-- <div class="stud">--> <!--&lt;!&ndash; <div class="stud">&ndash;&gt;-->
<!-- <ion-icon slot="start" name="time" color="primary"></ion-icon>--> <!--&lt;!&ndash; <ion-icon slot="start" name="time" color="primary"></ion-icon>&ndash;&gt;-->
<!-- <ion-label>2.5 hours</ion-label>--> <!--&lt;!&ndash; <ion-label>2.5 hours</ion-label>&ndash;&gt;-->
<!-- </div>--> <!--&lt;!&ndash; </div>&ndash;&gt;-->
<!-- <div class="stud">--> <!--&lt;!&ndash; <div class="stud">&ndash;&gt;-->
<!-- <ion-icon slot="start" name="document-text" color="primary"></ion-icon>--> <!--&lt;!&ndash; <ion-icon slot="start" name="document-text" color="primary"></ion-icon>&ndash;&gt;-->
<!-- <ion-label>Certificate</ion-label>--> <!--&lt;!&ndash; <ion-label>Certificate</ion-label>&ndash;&gt;-->
<!-- </div>--> <!--&lt;!&ndash; </div>&ndash;&gt;-->
</div> <!-- </div>-->
<div class="lesson"> <!-- <div class="lesson">-->
<div class="video" *ngFor="let item of jobManagerOffersData"> <!-- <div class="video" *ngFor="let item of jobManagerOffersData">-->
<div class="left"> <!-- <div class="left">-->
<div class="bg_image men_image" [style.backgroundImage]="'url('+session_image_server+'/'+curr_session+'/job/'+item.job_uid+')'"></div> <!-- <div class="bg_image men_image" [style.backgroundImage]="'url('+session_image_server+'/'+curr_session+'/job/'+item.job_uid+')'"></div>-->
<div class="text"> <!-- <div class="text">-->
<ion-label class="bold_text">{{item.title}}</ion-label> <!-- <ion-label class="bold_text">{{item.title}}</ion-label>-->
<ion-label class="grey_text">{{item.description}}</ion-label> <!-- <ion-label class="grey_text">{{item.description}}</ion-label>-->
<ion-label class="price_line">{{item.offer_code}} {{item.price*0.01}} {{item.currency}} </ion-label> <!-- <ion-label class="price_line">{{item.offer_code}} {{item.price*0.01}} {{item.currency}} </ion-label>-->
<ion-label class="due_date">Expire: {{item.expire |date}}</ion-label> <!-- <ion-label class="due_date">Expire: {{item.expire |date}}</ion-label>-->
<ion-label class="grey_text">Send to : {{item.job_to}}</ion-label> <!-- <ion-label class="grey_text">Send to : {{item.job_to}}</ion-label>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<div class="right"> <!-- <div class="right">-->
<ion-icon name="chevron-forward-outline" color="medium"></ion-icon> <!-- <ion-icon name="chevron-forward-outline" color="medium"></ion-icon>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
</div> </div>
</ion-content> </ion-content>
@@ -22,7 +22,7 @@ export class PendingoffersPage implements OnInit {
) { } ) { }
ngOnInit() { ngOnInit() {
this.getPendingOffersData(); // this.getPendingOffersData();
} }
onBack() { onBack() {
@@ -30,32 +30,32 @@ export class PendingoffersPage implements OnInit {
} }
usrData: { // usrData: {
action:number, member_id: number, uid: string, sessionid: string, limit:20, page:1,offset: 0 // action:number, member_id: number, uid: string, sessionid: string, limit:20, page:1,offset: 0
}; // };
//
jobManagerOffersTotalData:any; // jobManagerOffersTotalData:any;
jobManagerOffersData: []; // jobManagerOffersData: [];
getPendingOffersData(){ // getPendingOffersData(){
this.curr_session = this.sessionDataProviderService.session; // this.curr_session = this.sessionDataProviderService.session;
this.usrData = {action:11309, // this.usrData = {action:11309,
member_id: this.sessionDataProviderService.member_id, // member_id: this.sessionDataProviderService.member_id,
uid: this.sessionDataProviderService.member_uid, // uid: this.sessionDataProviderService.member_uid,
sessionid: this.sessionDataProviderService.session , // sessionid: this.sessionDataProviderService.session ,
limit:20, page:1,offset: 0} // limit:20, page:1,offset: 0}
//
this.wrenchService.jobmanageroffers(this.usrData).subscribe( // this.wrenchService.jobmanageroffers(this.usrData).subscribe(
jobManagerOffersTotalData => { // jobManagerOffersTotalData => {
this.jobManagerOffersTotalData = jobManagerOffersTotalData; // this.jobManagerOffersTotalData = jobManagerOffersTotalData;
console.log("jobManagerOffersTotalData RETURN->", this.jobManagerOffersTotalData); // console.log("jobManagerOffersTotalData RETURN->", this.jobManagerOffersTotalData);
this.jobManagerOffersData = this.jobManagerOffersTotalData.result_list; // this.jobManagerOffersData = this.jobManagerOffersTotalData.result_list;
this.session_image_server = this.jobManagerOffersTotalData.session_image_server; // this.session_image_server = this.jobManagerOffersTotalData.session_image_server;
//
// debugger; // // debugger;
console.log("jobManagerOffersData RETURN DATA->", this.jobManagerOffersTotalData); // console.log("jobManagerOffersData RETURN DATA->", this.jobManagerOffersTotalData);
} // }
); // );
//
} // }
} }