new page
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
import { NgModule } from '@angular/core';
|
||||
import { Routes, RouterModule } from '@angular/router';
|
||||
|
||||
import { ManagependingoffersPage } from './managependingoffers.page';
|
||||
|
||||
const routes: Routes = [
|
||||
{
|
||||
path: '',
|
||||
component: ManagependingoffersPage
|
||||
}
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [RouterModule.forChild(routes)],
|
||||
exports: [RouterModule],
|
||||
})
|
||||
export class ManagependingoffersPageRoutingModule {}
|
||||
@@ -0,0 +1,20 @@
|
||||
import { NgModule } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
|
||||
import { IonicModule } from '@ionic/angular';
|
||||
|
||||
import { ManagependingoffersPageRoutingModule } from './managependingoffers-routing.module';
|
||||
|
||||
import { ManagependingoffersPage } from './managependingoffers.page';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
IonicModule,
|
||||
ManagependingoffersPageRoutingModule
|
||||
],
|
||||
declarations: [ManagependingoffersPage]
|
||||
})
|
||||
export class ManagependingoffersPageModule {}
|
||||
@@ -0,0 +1,136 @@
|
||||
<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>Manage Offers</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
|
||||
<ion-content>
|
||||
|
||||
<div class="bg_image back_image" [style.backgroundImage]="'url('+session_image_server+'/'+curr_session+'/job/'+jobData.job_uid+')'">
|
||||
<div class="ion-padding">
|
||||
<ion-icon slot="start" name="arrow-back" class="back" (click)="onBack()"></ion-icon>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ion-padding">
|
||||
<div class="boxed_contents">
|
||||
<div class="flex">
|
||||
<ion-label class="bold_text">{{jobData?.title}}</ion-label>
|
||||
<!-- <ion-icon slot="end" name="bookmark-outline" color="primary"></ion-icon>-->
|
||||
</div>
|
||||
|
||||
<!-- <div class="row">-->
|
||||
<!--<!– <ion-label class="bg_text">{{jobData.offer_code}}</ion-label>–>-->
|
||||
<!-- <div class="rate">-->
|
||||
<!-- <!– <ion-icon name="star-half-outline" color="warning"></ion-icon>–>-->
|
||||
<!-- <ion-label class="review"> ({{jobData.interest_count ?? 0 }} interest count)</ion-label>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<ion-label style="font-size: 16px; color: #0b5e86; font-weight: bolder;">Reward : {{jobData.price*0.01| number : '1.2-2'}} {{jobData.currency_code}}</ion-label>
|
||||
|
||||
<div class="items">
|
||||
<div class="stud">
|
||||
<ion-icon style="font-size: 14px;" slot="start" name="time" color="primary"></ion-icon>
|
||||
<ion-label>Timeline: {{jobData.timeline_days}} days</ion-label>
|
||||
</div>
|
||||
<div class="stud">
|
||||
<ion-icon slot="start" name="document-text" color="primary"></ion-icon>
|
||||
<ion-label>({{jobData.interest_count ?? 0 }} interest count)</ion-label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ion-card *ngIf="interestStatus==false;" style="margin: 0px 0px 15px 0px; background-color: aliceblue;">
|
||||
<ion-card-header>
|
||||
<div style="font-weight: bolder;">Are you interested in the task?</div>
|
||||
</ion-card-header>
|
||||
|
||||
<ion-card-content>
|
||||
<ion-button color="secondary" size="small" style="font-weight: bolder;" expand="block" (click)="sendJobInterestMessage()">Send Interest Request to Owner</ion-button>
|
||||
<ion-label class="description">{{interest_status}}
|
||||
</ion-label>
|
||||
</ion-card-content>
|
||||
</ion-card>
|
||||
|
||||
<div style="background-color: aliceblue">
|
||||
<ion-grid>
|
||||
<ion-row>
|
||||
<ion-col style="text-align: center">
|
||||
<ion-button
|
||||
color="success"
|
||||
(click)="pendingJobExtend()"
|
||||
shape="round"
|
||||
size="small"
|
||||
>
|
||||
Extend
|
||||
</ion-button>
|
||||
</ion-col>
|
||||
<ion-col style="text-align: center">
|
||||
<ion-button
|
||||
color="warning"
|
||||
(click)="pendingJobSendToMe()"
|
||||
shape="round"
|
||||
size="small"
|
||||
>
|
||||
Send to me
|
||||
</ion-button>
|
||||
</ion-col>
|
||||
<ion-col style="text-align: center">
|
||||
<ion-button
|
||||
color="danger"
|
||||
(click)="pendingJobCancel()"
|
||||
shape="round"
|
||||
size="small"
|
||||
>
|
||||
Cancel Offer
|
||||
</ion-button>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</ion-grid>
|
||||
<ion-grid>
|
||||
<ion-row>
|
||||
<ion-col>
|
||||
{{pendingActionResult}}
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</ion-grid>
|
||||
</div>
|
||||
|
||||
<div class="about">
|
||||
<div style="padding: 13px; width: 100%;">
|
||||
<div class="mentor">
|
||||
<div class="left">
|
||||
<div class="bg_image men_image" [style.backgroundImage]="'url('+session_image_server+'/'+curr_session+'/job/'+jobData.job_uid+')'"></div>
|
||||
<div style="margin-left: 10px;">
|
||||
<ion-label class="bold" style="color: black;">ID : {{jobData.offer_code}}</ion-label>
|
||||
<ion-label class="bold" style="color: red;">Expires {{jobData.expire | date}}</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" style="margin-left: 15px;">{{jobData.job_description}}
|
||||
</ion-label>
|
||||
|
||||
<ion-label class="head_text">Delivery Details</ion-label>
|
||||
<ion-label class="description" style="margin-left: 15px;">{{jobData.description}}
|
||||
</ion-label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</ion-content>
|
||||
@@ -0,0 +1,390 @@
|
||||
|
||||
ion-content {
|
||||
.back_image {
|
||||
width: 100%;
|
||||
height: 150px;
|
||||
max-height: 150px;
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
border-radius: 20px;
|
||||
|
||||
.back {
|
||||
font-size: 25px;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
.flex {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
ion-icon {
|
||||
font-size: 22px;
|
||||
}
|
||||
}
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 10px;
|
||||
|
||||
.bg_text {
|
||||
color: var(--ion-color-primary);
|
||||
background: #dfe1f3;
|
||||
font-size: 12px;
|
||||
padding: 2px 5px;
|
||||
border-radius: 5px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.rate {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.review {
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.color_text {
|
||||
margin-top: 10px;
|
||||
font-size: 22px;
|
||||
font-family: 'semi-bold';
|
||||
color: var(--ion-color-primary);
|
||||
}
|
||||
|
||||
.items {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 20px;
|
||||
border-bottom: 1px solid lightgrey;
|
||||
padding-bottom: 10px;
|
||||
|
||||
.stud {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
ion-icon {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
ion-label {
|
||||
color: grey;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.about {
|
||||
margin-top: 10px;
|
||||
|
||||
.head_text {
|
||||
font-size: 16px;
|
||||
font-family: 'semi-bold';
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.mentor {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
|
||||
.men_image {
|
||||
height: 50px;
|
||||
width: 50px;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-family: 'semi-bold';
|
||||
}
|
||||
|
||||
.grey {
|
||||
color: grey;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
ion-icon {
|
||||
font-size: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
.description {
|
||||
color: grey;
|
||||
margin-bottom: 5px;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.lesson {
|
||||
margin-top: 20px;
|
||||
|
||||
.bold {
|
||||
font-family: 'semi-bold';
|
||||
}
|
||||
|
||||
.color {
|
||||
color: var(--ion-color-primary);
|
||||
}
|
||||
|
||||
.grey {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
.sec {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.video {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background-color: white;
|
||||
padding: 15px;
|
||||
box-shadow: 0px 0px 20px 1px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 10px;
|
||||
margin-top: 20px;
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.men_image {
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
.text {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.bold_text {
|
||||
font-size: 16px;
|
||||
font-family: 'bold';
|
||||
}
|
||||
|
||||
.grey_text {
|
||||
font-size: 14px;
|
||||
color: grey;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.review_tab {
|
||||
margin-top: 20px;
|
||||
|
||||
.total {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
.star-rate {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.bold {
|
||||
font-size: 17px;
|
||||
font-family: 'semi-bold';
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.color {
|
||||
color: var(--ion-color-primary);
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.story-item {
|
||||
overflow: scroll;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-top: 20px;
|
||||
|
||||
.menu {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
.item {
|
||||
padding: 5px;
|
||||
margin: 5px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
|
||||
ion-thumbnail {
|
||||
border-radius: 15px;
|
||||
width: max-content;
|
||||
height: 60px;
|
||||
width: 60px;
|
||||
--border-radius: 50%;
|
||||
}
|
||||
|
||||
ion-label {
|
||||
font-size: 14px;
|
||||
font-family: "medium";
|
||||
color: var(--ion-color-medium);
|
||||
}
|
||||
}
|
||||
|
||||
.text {
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
|
||||
.select {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border: 1px solid var(--ion-color-primary);
|
||||
border-radius: 20px;
|
||||
padding: 2px 15px;
|
||||
margin-right: 10px;
|
||||
|
||||
.rate_num {
|
||||
margin-left: 5px;
|
||||
color: var(--ion-color-primary);
|
||||
}
|
||||
}
|
||||
|
||||
.show {
|
||||
background-color: var(--ion-color-primary);
|
||||
}
|
||||
|
||||
.white {
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
.choice {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.reviw_list {
|
||||
margin-top: 25px;
|
||||
|
||||
.profile {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.men_image {
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
|
||||
.bold {
|
||||
font-family: 'semi-bold';
|
||||
}
|
||||
|
||||
.grey {
|
||||
color: grey;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.select {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border: 1px solid var(--ion-color-primary);
|
||||
border-radius: 20px;
|
||||
padding: 2px 15px;
|
||||
margin-right: 10px;
|
||||
|
||||
.rate_num {
|
||||
margin-left: 5px;
|
||||
color: var(--ion-color-primary);
|
||||
}
|
||||
}
|
||||
|
||||
ion-icon {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.like {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 10px;
|
||||
|
||||
.heart {
|
||||
font-size: 25px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.count {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.time {
|
||||
color: grey;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.bold_text {
|
||||
font-size: 20px;
|
||||
font-family: 'bold';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ion-footer {
|
||||
--background: white;
|
||||
|
||||
ion-toolbar {
|
||||
--border-width: 0px;
|
||||
padding: 10px;
|
||||
align-items: center;
|
||||
|
||||
ion-icon {
|
||||
color: white;
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.button {
|
||||
background-color: var(--ion-color-primary);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
border-radius: 30px;
|
||||
padding: 12px 0;
|
||||
|
||||
.text {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||
import { IonicModule } from '@ionic/angular';
|
||||
|
||||
import { ManagependingoffersPage } from './managependingoffers.page';
|
||||
|
||||
describe('ManagependingoffersPage', () => {
|
||||
let component: ManagependingoffersPage;
|
||||
let fixture: ComponentFixture<ManagependingoffersPage>;
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ ManagependingoffersPage ],
|
||||
imports: [IonicModule.forRoot()]
|
||||
}).compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(ManagependingoffersPage);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
}));
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,201 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import {AlertController, NavController} from "@ionic/angular";
|
||||
import {Router} from "@angular/router";
|
||||
import {SessionDataProviderService} from "../../store/session-data-provider.service";
|
||||
import {WrenchService} from "../../services/wrench.service";
|
||||
|
||||
@Component({
|
||||
selector: 'app-managependingoffers',
|
||||
templateUrl: './managependingoffers.page.html',
|
||||
styleUrls: ['./managependingoffers.page.scss'],
|
||||
})
|
||||
export class ManagependingoffersPage implements OnInit {
|
||||
|
||||
session_image_server:string='';
|
||||
curr_session:string='';
|
||||
offer_code:string='';
|
||||
currentJobSelected:any;
|
||||
jobData: any;
|
||||
constructor(
|
||||
private navctr: NavController,
|
||||
private router: Router,
|
||||
public sessionDataProviderService: SessionDataProviderService,
|
||||
private wrenchService: WrenchService,
|
||||
private alertController:AlertController
|
||||
) {
|
||||
this.jobData = this.router.getCurrentNavigation().extras.state;
|
||||
console.log("XXXXX 1", this.router.getCurrentNavigation().extras);
|
||||
// console.log("XXXXX 2", this.router.getCurrentNavigation().extras.state);
|
||||
//console.log("XXXXX 3", this.router.getCurrentNavigation().extras.state.ID);
|
||||
if (this.jobData==undefined){
|
||||
this.onBack();
|
||||
}
|
||||
this.offer_code = this.jobData.offer_code;
|
||||
this.currentJobSelected = this.jobData;
|
||||
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.session_image_server = this.sessionDataProviderService.session_image_server;
|
||||
this.curr_session=this.sessionDataProviderService.session;
|
||||
}
|
||||
|
||||
onBack() {
|
||||
const event = new Event("app-myjob-offers-clear-modals");
|
||||
// Dispatch the event.
|
||||
dispatchEvent(event);
|
||||
this.navctr.back();
|
||||
}
|
||||
|
||||
|
||||
reqData: {
|
||||
action:number,
|
||||
member_id: number,
|
||||
uid: string,
|
||||
sessionid: string,
|
||||
job_uid: string,
|
||||
offer_code: string,
|
||||
mode: number,
|
||||
extend_days:number,
|
||||
reason:string
|
||||
};
|
||||
pendingActionResult:string='';
|
||||
async pendingJobExtend(){
|
||||
|
||||
this.reqData = {
|
||||
action:13041,
|
||||
member_id: this.sessionDataProviderService.member_id,
|
||||
uid: this.sessionDataProviderService.member_uid,
|
||||
sessionid: this.sessionDataProviderService.session,
|
||||
job_uid: this.currentJobSelected.job_uid,
|
||||
offer_code: this.currentJobSelected .offer_code,
|
||||
mode: 200,
|
||||
extend_days: 2,
|
||||
reason:''
|
||||
};
|
||||
|
||||
const alert = await this.alertController.create({
|
||||
header: "Extend Timeline",
|
||||
message: "Confirm you are ready to extend timeline now ?",
|
||||
buttons: [
|
||||
{
|
||||
text: "Cancel",
|
||||
role: "cancel",
|
||||
handler: () => {
|
||||
},
|
||||
},
|
||||
{
|
||||
text: "Extend Now",
|
||||
handler: () => {
|
||||
this.wrenchService.pendingJobExtend(this.reqData).subscribe(
|
||||
res => {
|
||||
if (res?.internal_return > 0){
|
||||
this.pendingActionResult = "Task due was extended 2 days from today";
|
||||
setTimeout(()=>{
|
||||
this.pendingActionResult ='';
|
||||
},3000);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
await alert.present();
|
||||
|
||||
// return this.getPostData("pendingjobextend", reqData);
|
||||
}
|
||||
|
||||
async pendingJobSendToMe(){
|
||||
this.reqData = {
|
||||
action:13042,
|
||||
member_id: this.sessionDataProviderService.member_id,
|
||||
uid: this.sessionDataProviderService.member_uid,
|
||||
sessionid: this.sessionDataProviderService.session,
|
||||
job_uid: this.currentJobSelected.job_uid,
|
||||
offer_code: this.currentJobSelected .offer_code,
|
||||
mode: 200,
|
||||
extend_days: 0,
|
||||
reason:''
|
||||
};
|
||||
const alert = await this.alertController.create({
|
||||
header: "Send Details.",
|
||||
message: "Confirm you want to send Task details to your email ?.",
|
||||
buttons: [
|
||||
{
|
||||
text: "Cancel",
|
||||
role: "cancel",
|
||||
handler: () => {
|
||||
// this.getMyOffersData();
|
||||
},
|
||||
},
|
||||
{
|
||||
text: "Send Now",
|
||||
handler: () => {
|
||||
|
||||
this.wrenchService.pendingJobSendToMe(this.reqData).subscribe(
|
||||
res => {
|
||||
if (res?.internal_return > 0){
|
||||
this.pendingActionResult = "Message Sent";
|
||||
setTimeout(()=>{
|
||||
this.pendingActionResult ='';
|
||||
},3000);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
await alert.present();
|
||||
// return this.getPostData("pendingjobsendtome", reqData);
|
||||
}
|
||||
//
|
||||
async pendingJobCancel(){
|
||||
|
||||
this.reqData = {
|
||||
action:13043,
|
||||
member_id: this.sessionDataProviderService.member_id,
|
||||
uid: this.sessionDataProviderService.member_uid,
|
||||
sessionid: this.sessionDataProviderService.session,
|
||||
job_uid: this.currentJobSelected.job_uid,
|
||||
offer_code: this.currentJobSelected .offer_code,
|
||||
mode: 200,
|
||||
extend_days: 0,
|
||||
reason:'Cancelled from app.'
|
||||
};
|
||||
|
||||
const alert = await this.alertController.create({
|
||||
header: "Cancel Offer",
|
||||
message: "Confirm you are ready cancel this offer?",
|
||||
buttons: [
|
||||
{
|
||||
text: "Cancel",
|
||||
role: "cancel",
|
||||
handler: () => {
|
||||
// this.getMyOffersData();
|
||||
},
|
||||
},
|
||||
{
|
||||
text: "Cancel Offer",
|
||||
handler: () => {
|
||||
this.wrenchService.pendingJobCancel(this.reqData).subscribe(
|
||||
res => {
|
||||
if (res?.internal_return > 0){
|
||||
this.pendingActionResult = "Offer Cancelled,";
|
||||
setTimeout(()=>{
|
||||
this.onBack();
|
||||
this.pendingActionResult ='';
|
||||
},3000);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
await alert.present();
|
||||
// return this.getPostData("pendingjobcancel", reqData);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user