From 5adf98f455fe0cd6b2a94a18ff9b130bbb66d2b2 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Tue, 22 Aug 2023 15:49:48 -0400 Subject: [PATCH] Pending offers --- src/app/app-routing.module.ts | 4 + src/app/pages/jobactive/jobactive.page.html | 4 +- src/app/pages/jobmanager/jobmanager.page.html | 45 +- src/app/pages/jobmanager/jobmanager.page.ts | 4 + src/app/pages/jobpastdue/jobpastdue.page.html | 12 +- src/app/pages/jobreview/jobreview.page.html | 10 +- .../pendingoffers-routing.module.ts | 17 + .../pendingoffers/pendingoffers.module.ts | 20 + .../pendingoffers/pendingoffers.page.html | 66 +++ .../pendingoffers/pendingoffers.page.scss | 385 ++++++++++++++++++ .../pendingoffers/pendingoffers.page.spec.ts | 24 ++ .../pages/pendingoffers/pendingoffers.page.ts | 57 +++ src/app/pages/register/register.page.html | 4 +- src/app/pages/register/register.page.ts | 40 +- src/app/services/wrench.service.ts | 3 + 15 files changed, 663 insertions(+), 32 deletions(-) create mode 100644 src/app/pages/pendingoffers/pendingoffers-routing.module.ts create mode 100644 src/app/pages/pendingoffers/pendingoffers.module.ts create mode 100644 src/app/pages/pendingoffers/pendingoffers.page.html create mode 100644 src/app/pages/pendingoffers/pendingoffers.page.scss create mode 100644 src/app/pages/pendingoffers/pendingoffers.page.spec.ts create mode 100644 src/app/pages/pendingoffers/pendingoffers.page.ts diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 9269cd6..01fa5dc 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -198,6 +198,10 @@ const routes: Routes = [ path: 'joboffers', loadChildren: () => import('./pages/joboffers/joboffers.module').then(m => m.JoboffersPageModule) }, + { + path: 'pendingoffers', + loadChildren: () => import('./pages/pendingoffers/pendingoffers.module').then(m => m.PendingoffersPageModule) + }, ]; @NgModule({ diff --git a/src/app/pages/jobactive/jobactive.page.html b/src/app/pages/jobactive/jobactive.page.html index 2b360e5..851c041 100644 --- a/src/app/pages/jobactive/jobactive.page.html +++ b/src/app/pages/jobactive/jobactive.page.html @@ -16,10 +16,10 @@
- {{jobData.offer_code}} + {{jobData.contract}}
- Due date: {{jobData.delivery_date}} + Due date: {{jobData.delivery_date |date}}
diff --git a/src/app/pages/jobmanager/jobmanager.page.html b/src/app/pages/jobmanager/jobmanager.page.html index 6130941..381b4f9 100644 --- a/src/app/pages/jobmanager/jobmanager.page.html +++ b/src/app/pages/jobmanager/jobmanager.page.html @@ -14,14 +14,19 @@ -
- ..... -
- - - My Jobs -
-
+ + + + + + + + + + + + + @@ -31,24 +36,34 @@ {{total_active}} Active
- - {{total_review}} Review + + + + + + My Jobs +
- - {{total_pastdue}} Past Due + + + + + + Pending +
- Active + Active ({{total_active}}) - Review + Review ({{total_review}}) - Past Due + Past Due ( {{total_pastdue}} ) diff --git a/src/app/pages/jobmanager/jobmanager.page.ts b/src/app/pages/jobmanager/jobmanager.page.ts index c07e315..c8b9ea9 100644 --- a/src/app/pages/jobmanager/jobmanager.page.ts +++ b/src/app/pages/jobmanager/jobmanager.page.ts @@ -104,4 +104,8 @@ export class JobmanagerPage implements OnInit { jobPastDue(item){ this.router.navigate(['jobpastdue'],{state: item}); } + onMyPendingJobs(){ + this.router.navigate(['pendingoffers']); + + } } diff --git a/src/app/pages/jobpastdue/jobpastdue.page.html b/src/app/pages/jobpastdue/jobpastdue.page.html index 747b012..c422864 100644 --- a/src/app/pages/jobpastdue/jobpastdue.page.html +++ b/src/app/pages/jobpastdue/jobpastdue.page.html @@ -10,17 +10,17 @@
Past Due Task - +
{{jobData.title}}
- {{jobData.offer_code}} + {{jobData.contract}}
- Due date: {{jobData.delivery_date}} + Due date: {{jobData.delivery_date |date}}
@@ -38,9 +38,9 @@
- - Task Actions - + + + This task is already past the due date. You can extend the timeline or cancel the job. diff --git a/src/app/pages/jobreview/jobreview.page.html b/src/app/pages/jobreview/jobreview.page.html index b639de7..57d5164 100644 --- a/src/app/pages/jobreview/jobreview.page.html +++ b/src/app/pages/jobreview/jobreview.page.html @@ -17,10 +17,10 @@
- {{jobData.offer_code}} + {{jobData.contract}}
- Due date: {{jobData.delivery_date}} + Due date : {{jobData.delivery_date |date}}
@@ -38,9 +38,9 @@ - - Task is Completed - + + + This job is in review, you can accept or reject completion. diff --git a/src/app/pages/pendingoffers/pendingoffers-routing.module.ts b/src/app/pages/pendingoffers/pendingoffers-routing.module.ts new file mode 100644 index 0000000..124113d --- /dev/null +++ b/src/app/pages/pendingoffers/pendingoffers-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { PendingoffersPage } from './pendingoffers.page'; + +const routes: Routes = [ + { + path: '', + component: PendingoffersPage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class PendingoffersPageRoutingModule {} diff --git a/src/app/pages/pendingoffers/pendingoffers.module.ts b/src/app/pages/pendingoffers/pendingoffers.module.ts new file mode 100644 index 0000000..95c5753 --- /dev/null +++ b/src/app/pages/pendingoffers/pendingoffers.module.ts @@ -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 { PendingoffersPageRoutingModule } from './pendingoffers-routing.module'; + +import { PendingoffersPage } from './pendingoffers.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + PendingoffersPageRoutingModule + ], + declarations: [PendingoffersPage] +}) +export class PendingoffersPageModule {} diff --git a/src/app/pages/pendingoffers/pendingoffers.page.html b/src/app/pages/pendingoffers/pendingoffers.page.html new file mode 100644 index 0000000..6082214 --- /dev/null +++ b/src/app/pages/pendingoffers/pendingoffers.page.html @@ -0,0 +1,66 @@ + + + + + +
+
+ Pending Offers + +
+ + + + + + + + + + + +
+ + + + + + + + + + + + +
+ +
+
+
+
+ +
+ {{item.title}} + {{item.description}} + {{item.offer_code}} {{item.price*0.01}} {{item.currency}} + Expire: {{item.expire |date}} + Send to : {{item.job_to}} +
+
+
+ +
+
+
+ + +
+
+ + + +
+ Return +
+
+
diff --git a/src/app/pages/pendingoffers/pendingoffers.page.scss b/src/app/pages/pendingoffers/pendingoffers.page.scss new file mode 100644 index 0000000..1c3cf7a --- /dev/null +++ b/src/app/pages/pendingoffers/pendingoffers.page.scss @@ -0,0 +1,385 @@ + +ion-content { + .back_image { + width: 100%; + height: 230px; + + .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: 18px; + 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; + } + } + + .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; + } + } + } +} diff --git a/src/app/pages/pendingoffers/pendingoffers.page.spec.ts b/src/app/pages/pendingoffers/pendingoffers.page.spec.ts new file mode 100644 index 0000000..ad03c64 --- /dev/null +++ b/src/app/pages/pendingoffers/pendingoffers.page.spec.ts @@ -0,0 +1,24 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { PendingoffersPage } from './pendingoffers.page'; + +describe('PendingoffersPage', () => { + let component: PendingoffersPage; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ PendingoffersPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(PendingoffersPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/pendingoffers/pendingoffers.page.ts b/src/app/pages/pendingoffers/pendingoffers.page.ts new file mode 100644 index 0000000..081697b --- /dev/null +++ b/src/app/pages/pendingoffers/pendingoffers.page.ts @@ -0,0 +1,57 @@ +import { Router } from '@angular/router'; +import { Component, OnInit } from '@angular/core'; +import { NavController } from '@ionic/angular'; +import {SessionDataProviderService} from "../../store/session-data-provider.service"; +import {WrenchService} from "../../services/wrench.service"; + +@Component({ + selector: 'app-pendingoffers', + templateUrl: './pendingoffers.page.html', + styleUrls: ['./pendingoffers.page.scss'], +}) +export class PendingoffersPage implements OnInit { + + tabs = 'about'; + + constructor( + private navctr: NavController, + private router: Router, + public sessionDataProviderService: SessionDataProviderService, + private wrenchService: WrenchService + ) { } + + ngOnInit() { + this.getPendingOffersData(); + } + + onBack() { + this.navctr.back(); + } + + + usrData: { + action:number, member_id: number, uid: string, sessionid: string, limit:20, page:1,offset: 0 + }; + + jobManagerOffersTotalData:any; + jobManagerOffersData: []; + getPendingOffersData(){ + this.usrData = {action:11309, + member_id: this.sessionDataProviderService.member_id, + uid: this.sessionDataProviderService.member_uid, + sessionid: this.sessionDataProviderService.session , + limit:20, page:1,offset: 0} + + this.wrenchService.jobmanageroffers(this.usrData).subscribe( + jobManagerOffersTotalData => { + this.jobManagerOffersTotalData = jobManagerOffersTotalData; + console.log("jobManagerOffersTotalData RETURN->", this.jobManagerOffersTotalData); + this.jobManagerOffersData = this.jobManagerOffersTotalData.result_list; + // debugger; + console.log("jobManagerOffersData RETURN DATA->", this.jobManagerOffersTotalData); + } + ); + + } + +} diff --git a/src/app/pages/register/register.page.html b/src/app/pages/register/register.page.html index a826cd4..b8e48b0 100644 --- a/src/app/pages/register/register.page.html +++ b/src/app/pages/register/register.page.html @@ -85,11 +85,11 @@ Country - {{country}} + {{signup_country}} Username - {{username}} + {{signup_username}} Enter Confirmation Received In Email diff --git a/src/app/pages/register/register.page.ts b/src/app/pages/register/register.page.ts index 1a21225..ee2fc58 100644 --- a/src/app/pages/register/register.page.ts +++ b/src/app/pages/register/register.page.ts @@ -69,6 +69,9 @@ export class RegisterPage implements OnInit { signUpResult:any; signUpData: []; + signup_country :string=''; + signup_username :string=''; + onFillProfile() { if (this.username == null || this.username == '' || this.validateEmail(this.username) == false || this.password == null || this.password == '' @@ -101,7 +104,40 @@ export class RegisterPage implements OnInit { if (this.signUpResult.internal_return > 0 && this.signUpResult?.uid != ''){ this.pending_uid = this.signUpResult.uid; + this.signup_country = this.signUpResult.country; + this.signup_username = this.signUpResult.username; + this.random_text = ''; this.signup_state =2; + + /* + { + "action": "11010", + "added": "2023-08-22 19:28:05.991937", + "country": "NG", + "email": "ses66181+x1234@gmail.com", + "expire": "2023-09-21 19:28:05.991937", + "firstname": "Olu", + "id": "610", + "lastname": "Ameye", + "loc": "10.10.33.15", + "mobile": "MOBILE", + "news": "1", + "password": "d0fbea2563b377ea7074bced45c88dcb", + "pending_id": "610", + "phone": "", + "pid": "100", + "sessionid": "SSSSS-SSSSSS-SSSSSS", + "signup_random": "13635", + "status": "1", + "street1": "", + "terms": "1", + "uid": "07529070-79a6-4e34-835d-a3a50283e93d", + "username": "ses66181+x1234@gmail.com", + "verify_link": "WRENCHB-1176229640-1742094704-417159648", + "zipcode": "", + "internal_return": 610 +} + */ } else { this.presentToast('Unable to continue with this params', 'middle'); @@ -123,7 +159,7 @@ export class RegisterPage implements OnInit { onCompleteProfile(){ this.completeSignupData = { action:11010, - username: this.username, + username: this.signup_username, random_text: this.random_text, password: this.password, pending_uid: this.pending_uid, @@ -147,7 +183,7 @@ export class RegisterPage implements OnInit { ); // - alert(100); + // alert(100); } showAlert(mtitle: string, amessage: string) { /* let alert = this.alertCtrl.create({ diff --git a/src/app/services/wrench.service.ts b/src/app/services/wrench.service.ts index 4f6058c..b846de9 100644 --- a/src/app/services/wrench.service.ts +++ b/src/app/services/wrench.service.ts @@ -149,6 +149,9 @@ export class WrenchService { return this.getPostData("profilepasschange", reqData); } + jobmanageroffers(usrData){ + return this.getPostData("jobmanageroffers", usrData); + } /*