From aa8b643fb2d93167e70e47a49e353537a7797729 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Thu, 17 Aug 2023 06:37:40 -0400 Subject: [PATCH] job manage pages --- REMEMBER.txt | 7 +- src/app/app-routing.module.ts | 12 + src/app/pages/family/family.page.html | 64 +-- .../pages/familylogin/familylogin.page.html | 2 +- .../jobactive/jobactive-routing.module.ts | 17 + src/app/pages/jobactive/jobactive.module.ts | 20 + src/app/pages/jobactive/jobactive.page.html | 9 + src/app/pages/jobactive/jobactive.page.scss | 385 ++++++++++++++++++ .../pages/jobactive/jobactive.page.spec.ts | 24 ++ src/app/pages/jobactive/jobactive.page.ts | 15 + src/app/pages/jobmanager/jobmanager.page.html | 166 ++++---- src/app/pages/jobmanager/jobmanager.page.ts | 9 + .../jobpastdue/jobpastdue-routing.module.ts | 17 + src/app/pages/jobpastdue/jobpastdue.module.ts | 20 + src/app/pages/jobpastdue/jobpastdue.page.html | 258 ++++++++++++ src/app/pages/jobpastdue/jobpastdue.page.scss | 385 ++++++++++++++++++ .../pages/jobpastdue/jobpastdue.page.spec.ts | 24 ++ src/app/pages/jobpastdue/jobpastdue.page.ts | 38 ++ .../jobreview/jobreview-routing.module.ts | 17 + src/app/pages/jobreview/jobreview.module.ts | 20 + src/app/pages/jobreview/jobreview.page.html | 9 + src/app/pages/jobreview/jobreview.page.scss | 385 ++++++++++++++++++ .../pages/jobreview/jobreview.page.spec.ts | 24 ++ src/app/pages/jobreview/jobreview.page.ts | 15 + .../pages/marketdetail/marketdetail.page.html | 338 +++++++-------- src/app/pages/my-course/my-course.page.html | 50 +-- src/app/pages/mytasks/mytasks.page.html | 217 +++++----- src/app/pages/profile/profile.page.html | 243 +++++++---- src/app/pages/profile/profile.page.ts | 7 +- src/app/pages/tabs/tabs.page.html | 88 ++-- src/app/pages/tabs/tabs.page.ts | 14 +- .../pages/transaction/transaction.page.html | 101 ++--- src/global.scss | 6 + 33 files changed, 2421 insertions(+), 585 deletions(-) create mode 100644 src/app/pages/jobactive/jobactive-routing.module.ts create mode 100644 src/app/pages/jobactive/jobactive.module.ts create mode 100644 src/app/pages/jobactive/jobactive.page.html create mode 100644 src/app/pages/jobactive/jobactive.page.scss create mode 100644 src/app/pages/jobactive/jobactive.page.spec.ts create mode 100644 src/app/pages/jobactive/jobactive.page.ts create mode 100644 src/app/pages/jobpastdue/jobpastdue-routing.module.ts create mode 100644 src/app/pages/jobpastdue/jobpastdue.module.ts create mode 100644 src/app/pages/jobpastdue/jobpastdue.page.html create mode 100644 src/app/pages/jobpastdue/jobpastdue.page.scss create mode 100644 src/app/pages/jobpastdue/jobpastdue.page.spec.ts create mode 100644 src/app/pages/jobpastdue/jobpastdue.page.ts create mode 100644 src/app/pages/jobreview/jobreview-routing.module.ts create mode 100644 src/app/pages/jobreview/jobreview.module.ts create mode 100644 src/app/pages/jobreview/jobreview.page.html create mode 100644 src/app/pages/jobreview/jobreview.page.scss create mode 100644 src/app/pages/jobreview/jobreview.page.spec.ts create mode 100644 src/app/pages/jobreview/jobreview.page.ts diff --git a/REMEMBER.txt b/REMEMBER.txt index 90c346a..68a7947 100644 --- a/REMEMBER.txt +++ b/REMEMBER.txt @@ -10,4 +10,9 @@ ionic generate page activetask ionic generate page mytask ionic generate page jobmanager -ionic generate page jobinterest \ No newline at end of file +ionic generate page jobinterest + + +ionic generate page jobreview +ionic generate page jobpastdue +ionic generate page jobactive diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index a67f39f..7aaf5b0 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -170,6 +170,18 @@ const routes: Routes = [ path: 'myfiles', loadChildren: () => import('./pages/myfiles/myfiles.module').then(m => m.MyfilesPageModule) }, + { + path: 'jobreview', + loadChildren: () => import('./pages/jobreview/jobreview.module').then(m => m.JobreviewPageModule) + }, + { + path: 'jobpastdue', + loadChildren: () => import('./pages/jobpastdue/jobpastdue.module').then(m => m.JobpastduePageModule) + }, + { + path: 'jobactive', + loadChildren: () => import('./pages/jobactive/jobactive.module').then(m => m.JobactivePageModule) + }, ]; @NgModule({ diff --git a/src/app/pages/family/family.page.html b/src/app/pages/family/family.page.html index b0d496b..ce05b30 100644 --- a/src/app/pages/family/family.page.html +++ b/src/app/pages/family/family.page.html @@ -111,15 +111,41 @@ - -
-
- - {{suggestion_total}} Items +
+
+
+ + {{suggestion_total}} Items +
+
- -
+
+
+
+
+
+ {{item.title}} +
+
+
+
+ + {{item.status_text}} +
+ +
+
+ {{item.description}} + + + +
+
@@ -152,31 +178,7 @@ -
-
-
-
-
- {{item.title}} -
-
-
-
- - {{item.status_text}} -
- -
-
- {{item.description}} - - -
diff --git a/src/app/pages/familylogin/familylogin.page.html b/src/app/pages/familylogin/familylogin.page.html index 24a67d6..d61f259 100644 --- a/src/app/pages/familylogin/familylogin.page.html +++ b/src/app/pages/familylogin/familylogin.page.html @@ -11,7 +11,7 @@ Family Login - + diff --git a/src/app/pages/jobactive/jobactive-routing.module.ts b/src/app/pages/jobactive/jobactive-routing.module.ts new file mode 100644 index 0000000..f11e54a --- /dev/null +++ b/src/app/pages/jobactive/jobactive-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { JobactivePage } from './jobactive.page'; + +const routes: Routes = [ + { + path: '', + component: JobactivePage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class JobactivePageRoutingModule {} diff --git a/src/app/pages/jobactive/jobactive.module.ts b/src/app/pages/jobactive/jobactive.module.ts new file mode 100644 index 0000000..a4fc87e --- /dev/null +++ b/src/app/pages/jobactive/jobactive.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 { JobactivePageRoutingModule } from './jobactive-routing.module'; + +import { JobactivePage } from './jobactive.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + JobactivePageRoutingModule + ], + declarations: [JobactivePage] +}) +export class JobactivePageModule {} diff --git a/src/app/pages/jobactive/jobactive.page.html b/src/app/pages/jobactive/jobactive.page.html new file mode 100644 index 0000000..02cfefa --- /dev/null +++ b/src/app/pages/jobactive/jobactive.page.html @@ -0,0 +1,9 @@ + + + jobactive + + + + + + diff --git a/src/app/pages/jobactive/jobactive.page.scss b/src/app/pages/jobactive/jobactive.page.scss new file mode 100644 index 0000000..1c3cf7a --- /dev/null +++ b/src/app/pages/jobactive/jobactive.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/jobactive/jobactive.page.spec.ts b/src/app/pages/jobactive/jobactive.page.spec.ts new file mode 100644 index 0000000..9cd5bfc --- /dev/null +++ b/src/app/pages/jobactive/jobactive.page.spec.ts @@ -0,0 +1,24 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { JobactivePage } from './jobactive.page'; + +describe('JobactivePage', () => { + let component: JobactivePage; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ JobactivePage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(JobactivePage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/jobactive/jobactive.page.ts b/src/app/pages/jobactive/jobactive.page.ts new file mode 100644 index 0000000..f462e48 --- /dev/null +++ b/src/app/pages/jobactive/jobactive.page.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-jobactive', + templateUrl: './jobactive.page.html', + styleUrls: ['./jobactive.page.scss'], +}) +export class JobactivePage implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/pages/jobmanager/jobmanager.page.html b/src/app/pages/jobmanager/jobmanager.page.html index ab11e89..915745f 100644 --- a/src/app/pages/jobmanager/jobmanager.page.html +++ b/src/app/pages/jobmanager/jobmanager.page.html @@ -7,114 +7,118 @@
-
- Jobs Manager - -
+
-
- ..... -
- - - My Jobs +
+ Jobs Manager +
-
- - -
-
- - {{total_active}} Active +
+ ..... +
+ + + My Jobs +
-
- - {{total_review}} Review + + + +
+
+ + {{total_active}} Active +
+
+ + {{total_review}} Review +
+
+ + {{total_pastdue}} Past Due +
-
- - {{total_pastdue}} Past Due -
-
- - - Active - - - Review - - - Past Due - - + + + Active + + + Review + + + Past Due + + -
- Currently Active +
+ Currently Active -
-
-
+
+
+
-
- {{item.title}} - {{item.description}} - {{item.contract}} {{item.price*0.01}} {{item.currency}} - Due Date: {{item.delivery_date}} +
+ {{item.title}} + {{item.description}} + {{item.contract}} {{item.price*0.01}} {{item.currency}} + Due Date: {{item.delivery_date}} +
+
+
+
-
- -
+ +
+
+ Jobs Ready for Review -
+
+
+
-
- Jobs Ready for Review - -
-
-
- -
- {{item.title}} - {{item.description}} - {{item.contract}} {{item.price*0.01}} {{item.currency}} - Due Date: {{item.delivery_date}} +
+ {{item.title}} + {{item.description}} + {{item.contract}} {{item.price*0.01}} {{item.currency}} + Due Date: {{item.delivery_date}} +
+
+
+
-
- -
+
-
+
+ Jobs Past Due Date -
- Jobs Past Due Date +
+
+
-
-
-
- -
- {{item.title}} - {{item.description}} - {{item.contract}} {{item.price*0.01}} {{item.currency}} - Due Date: {{item.delivery_date}} +
+ {{item.title}} + {{item.description}} + {{item.contract}} {{item.price*0.01}} {{item.currency}} + Due Date: {{item.delivery_date}} +
+
+
+
-
- -
-
+
+
diff --git a/src/app/pages/jobmanager/jobmanager.page.ts b/src/app/pages/jobmanager/jobmanager.page.ts index a710f93..c07e315 100644 --- a/src/app/pages/jobmanager/jobmanager.page.ts +++ b/src/app/pages/jobmanager/jobmanager.page.ts @@ -95,4 +95,13 @@ export class JobmanagerPage implements OnInit { } + jobActive(item){ + this.router.navigate(['jobactive'],{state: item}); + } + jobReview(item){ + this.router.navigate(['jobreview'],{state: item}); + } + jobPastDue(item){ + this.router.navigate(['jobpastdue'],{state: item}); + } } diff --git a/src/app/pages/jobpastdue/jobpastdue-routing.module.ts b/src/app/pages/jobpastdue/jobpastdue-routing.module.ts new file mode 100644 index 0000000..cfc87e6 --- /dev/null +++ b/src/app/pages/jobpastdue/jobpastdue-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { JobpastduePage } from './jobpastdue.page'; + +const routes: Routes = [ + { + path: '', + component: JobpastduePage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class JobpastduePageRoutingModule {} diff --git a/src/app/pages/jobpastdue/jobpastdue.module.ts b/src/app/pages/jobpastdue/jobpastdue.module.ts new file mode 100644 index 0000000..31a16da --- /dev/null +++ b/src/app/pages/jobpastdue/jobpastdue.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 { JobpastduePageRoutingModule } from './jobpastdue-routing.module'; + +import { JobpastduePage } from './jobpastdue.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + JobpastduePageRoutingModule + ], + declarations: [JobpastduePage] +}) +export class JobpastduePageModule {} diff --git a/src/app/pages/jobpastdue/jobpastdue.page.html b/src/app/pages/jobpastdue/jobpastdue.page.html new file mode 100644 index 0000000..6791c07 --- /dev/null +++ b/src/app/pages/jobpastdue/jobpastdue.page.html @@ -0,0 +1,258 @@ + + +
+
+ +
+
+ +
+
+
+ Past Due Task + +
+
+ {{jobData.title}} +
+ +
+ {{jobData.offer_code}} +
+ + Due date: {{jobData.delivery_date}} +
+
+ + Price: {{jobData.price*0.01}} {{jobData.currency}} + +
+
+ + Timeline: {{jobData.timeline_days}} days +
+ + + + +
+ + + + Task Actions + + + This task is already past the due date. You can extend the timeline or cancel the job. + + + Extend Due Date + Cancel Task + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Activities + + + + + + Send Message + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + Load messages + + + + + ... + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + Send Message to task owner + + + + + + + Send Message + {{interest_msg_status}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + +
+ Return +
+
+
+ diff --git a/src/app/pages/jobpastdue/jobpastdue.page.scss b/src/app/pages/jobpastdue/jobpastdue.page.scss new file mode 100644 index 0000000..1c3cf7a --- /dev/null +++ b/src/app/pages/jobpastdue/jobpastdue.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/jobpastdue/jobpastdue.page.spec.ts b/src/app/pages/jobpastdue/jobpastdue.page.spec.ts new file mode 100644 index 0000000..dc19523 --- /dev/null +++ b/src/app/pages/jobpastdue/jobpastdue.page.spec.ts @@ -0,0 +1,24 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { JobpastduePage } from './jobpastdue.page'; + +describe('JobpastduePage', () => { + let component: JobpastduePage; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ JobpastduePage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(JobpastduePage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/jobpastdue/jobpastdue.page.ts b/src/app/pages/jobpastdue/jobpastdue.page.ts new file mode 100644 index 0000000..23efa50 --- /dev/null +++ b/src/app/pages/jobpastdue/jobpastdue.page.ts @@ -0,0 +1,38 @@ +import { Component, OnInit } from '@angular/core'; +import {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-jobpastdue', + templateUrl: './jobpastdue.page.html', + styleUrls: ['./jobpastdue.page.scss'], +}) +export class JobpastduePage implements OnInit { + jobData: any; + tabs = 'activities'; + + constructor( + private navctr: NavController, + private router: Router, + public sessionDataProviderService: SessionDataProviderService, + private wrenchService: WrenchService + ) { + + 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); + } + + + ngOnInit() { + } + + onBack() { + this.navctr.back(); + } + + +} diff --git a/src/app/pages/jobreview/jobreview-routing.module.ts b/src/app/pages/jobreview/jobreview-routing.module.ts new file mode 100644 index 0000000..3975dcb --- /dev/null +++ b/src/app/pages/jobreview/jobreview-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { JobreviewPage } from './jobreview.page'; + +const routes: Routes = [ + { + path: '', + component: JobreviewPage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class JobreviewPageRoutingModule {} diff --git a/src/app/pages/jobreview/jobreview.module.ts b/src/app/pages/jobreview/jobreview.module.ts new file mode 100644 index 0000000..13cb9e1 --- /dev/null +++ b/src/app/pages/jobreview/jobreview.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 { JobreviewPageRoutingModule } from './jobreview-routing.module'; + +import { JobreviewPage } from './jobreview.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + JobreviewPageRoutingModule + ], + declarations: [JobreviewPage] +}) +export class JobreviewPageModule {} diff --git a/src/app/pages/jobreview/jobreview.page.html b/src/app/pages/jobreview/jobreview.page.html new file mode 100644 index 0000000..1eff38f --- /dev/null +++ b/src/app/pages/jobreview/jobreview.page.html @@ -0,0 +1,9 @@ + + + jobreview + + + + + + diff --git a/src/app/pages/jobreview/jobreview.page.scss b/src/app/pages/jobreview/jobreview.page.scss new file mode 100644 index 0000000..1c3cf7a --- /dev/null +++ b/src/app/pages/jobreview/jobreview.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/jobreview/jobreview.page.spec.ts b/src/app/pages/jobreview/jobreview.page.spec.ts new file mode 100644 index 0000000..44a47ae --- /dev/null +++ b/src/app/pages/jobreview/jobreview.page.spec.ts @@ -0,0 +1,24 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { JobreviewPage } from './jobreview.page'; + +describe('JobreviewPage', () => { + let component: JobreviewPage; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ JobreviewPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(JobreviewPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/jobreview/jobreview.page.ts b/src/app/pages/jobreview/jobreview.page.ts new file mode 100644 index 0000000..a81ac22 --- /dev/null +++ b/src/app/pages/jobreview/jobreview.page.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-jobreview', + templateUrl: './jobreview.page.html', + styleUrls: ['./jobreview.page.scss'], +}) +export class JobreviewPage implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/pages/marketdetail/marketdetail.page.html b/src/app/pages/marketdetail/marketdetail.page.html index 2409d9e..c25ac4a 100644 --- a/src/app/pages/marketdetail/marketdetail.page.html +++ b/src/app/pages/marketdetail/marketdetail.page.html @@ -7,196 +7,200 @@
-
- {{jobData.title}} - -
- -
- {{jobData.offer_code}} -
- - ({{jobData.interest_count}} interest) +
+
+ {{jobData.title}} +
-
- Price: {{jobData.price*0.01}} {{jobData.currency}} - -
-
- - Timeline: {{jobData.timeline_days}} days -
- - - - -
- - - - Details - - - Show Interest - - - Message - - - -
- {{jobData.offer_code}} - - -
-
-
-
- Expires - {{jobData.expire}} -
+
+ {{jobData.offer_code}} +
+ + ({{jobData.interest_count}} interest)
-
- Description - {{jobData.job_description}} - + Price: {{jobData.price*0.01}} {{jobData.currency}} - Delivery Details - {{jobData.description}} - -
+
+
+ + Timeline: {{jobData.timeline_days}} days +
+ + + + +
-
- - - - + + + Details + + + Show Interest + + + Message + + + +
+ {{jobData.offer_code}} + + +
+
+
+
+ Expires + {{jobData.expire}} +
+
+ +
+ + Description + {{jobData.job_description}} + + + Delivery Details + {{jobData.description}} + +
+ +
+ + + + - - - - + + + + - - - Interested in the task? - + + + Interested in the task? + - - Send Interest Request to task + + Send Interest Request to task {{interest_status}} - + - + - - - + + + - - - - - - - - - + + + + + + + + + +
+ +
+ + + + Send Message to task owner + + + + + + + Send Message + {{interest_msg_status}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-
- - - Send Message to task owner - - - - - - - Send Message - {{interest_msg_status}} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/src/app/pages/my-course/my-course.page.html b/src/app/pages/my-course/my-course.page.html index c0e3690..7e349d1 100644 --- a/src/app/pages/my-course/my-course.page.html +++ b/src/app/pages/my-course/my-course.page.html @@ -11,38 +11,42 @@ - - - Available - - - Last Minute - - +
-
+ + + Available + + + Last Minute + + -
-
-
- {{item.title}} - {{item.price*0.01}} {{item.currency}} - Timeline: {{item.timeline_days}} days +
+ +
+
+
+ {{item.title}} + {{item.price*0.01}} {{item.currency}} + Timeline: {{item.timeline_days}} days +
+
-
+
-
- -
-
-
- {{item.title}} - available till : {{item.expire}} +
+
+
+ {{item.title}} + available till : {{item.expire}} +
+
diff --git a/src/app/pages/mytasks/mytasks.page.html b/src/app/pages/mytasks/mytasks.page.html index 37bcdb3..3df3b23 100644 --- a/src/app/pages/mytasks/mytasks.page.html +++ b/src/app/pages/mytasks/mytasks.page.html @@ -12,129 +12,132 @@ - - - Active - - - Past Due - - - In Review - - +
+ + + Active + + + Past Due + + + In Review + + + +
+
+ + WrenchBoard Tasks + + Current Tasks + + + + + You currently have no active tasks or shores. Visit the Market to find anything interesting to you. + + +
+ + +
+
+
+
+ {{item.title}} +
+ {{item.job_description}} + +
+
+
+ {{item.delivery_date}} +
+
+
+
+ + + +
+
+
+ +
-
-
- WrenchBoard Tasks + WrenchBoard Past Due - Current Tasks - + Past Due + - You currently have no active tasks or shores. Visit the Market to find anything interesting to you. + You do not have any task past due. -
+
+
+
+
+ {{item.title}} +
+ {{item.job_description}} -
-
-
-
- {{item.title}} -
- {{item.job_description}} - -
-
-
- {{item.delivery_date}} +
+
+
+ {{item.delivery_date}} +
+
+ + + +
-
- - - +
+ +
+ + + Silhouette of mountains + + In Review + + + + + No task is currently in review. + + + +
+
+
+
+ {{item.title}} +
+ {{item.job_description}} + +
+
+
+ {{item.delivery_date}} +
+
+
+
+ + + +
-
- - - WrenchBoard Past Due - - Past Due - - - - - You do not have any task past due. - - - -
-
-
-
- {{item.title}} -
- {{item.job_description}} - -
-
-
- {{item.delivery_date}} -
-
-
-
- - - -
-
-
- -
- - - Silhouette of mountains - - In Review - - - - - No task is currently in review. - - - -
-
-
-
- {{item.title}} -
- {{item.job_description}} - -
-
-
- {{item.delivery_date}} -
-
-
-
- - - -
-
-
diff --git a/src/app/pages/profile/profile.page.html b/src/app/pages/profile/profile.page.html index b6e1d45..98cfdba 100644 --- a/src/app/pages/profile/profile.page.html +++ b/src/app/pages/profile/profile.page.html @@ -9,86 +9,177 @@ + -
-
-
- +
+
+
+
+
+ +
+
+
+ {{firstname}} {{lastname}} + {{email}} +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Privacy Policy + + + + + + My Files + + + + + + + + + + + + Logout + +
-
- {{firstname}} {{lastname}} - {{email}} -
+ +
+
+
+ +
+
+
+ {{firstname}} {{lastname}} + {{email}} +
+
+ +
+ + + Edit Profile + + + + + + Family Profile + + + + + + Notifications + + + + + + + + + + + + Security + + + + + + + + + + + + Privacy Policy + + + + + + My Files + + + + + + + + + + + + Logout + + +
+
+
-
- - - Edit Profile - - - - - Family Profile - - - - - - Notifications - - - - - - - - - - - - Security - - - - - - - - - - - - Privacy Policy - - - - - - My Files - - - - - - - - - - - - Logout - - -
diff --git a/src/app/pages/profile/profile.page.ts b/src/app/pages/profile/profile.page.ts index 4b5569f..8425213 100644 --- a/src/app/pages/profile/profile.page.ts +++ b/src/app/pages/profile/profile.page.ts @@ -11,10 +11,15 @@ export class ProfilePage implements OnInit { firstname:string=''; lastname:string=''; email:string=''; + + accountType:string="FULL"; + constructor( private router: Router, public sessionDataProviderService:SessionDataProviderService - ) { } + ) { + this.accountType = sessionDataProviderService.account_type; + } ngOnInit() { this.firstname = this.sessionDataProviderService.firstname; diff --git a/src/app/pages/tabs/tabs.page.html b/src/app/pages/tabs/tabs.page.html index 639f17d..4f801c1 100644 --- a/src/app/pages/tabs/tabs.page.html +++ b/src/app/pages/tabs/tabs.page.html @@ -1,31 +1,69 @@ +
- -
- - - - Home - + +
+ + + + Home + - - - Market - + + + Suggest + - - - Tasks - + + + Tasks + - - - Wallet - + + + Wallet + + + + + more + + +
+
- - - more - -
-
+ + + +
+ + + + Home + + + + + Market + + + + + Tasks + + + + + Wallet + + + + + more + + +
+
+ +
+ diff --git a/src/app/pages/tabs/tabs.page.ts b/src/app/pages/tabs/tabs.page.ts index ee19178..83439e4 100644 --- a/src/app/pages/tabs/tabs.page.ts +++ b/src/app/pages/tabs/tabs.page.ts @@ -1,12 +1,5 @@ -/* - Authors : initappz (Rahul Jograna) - Website : https://initappz.com/ - App Name : E-Learning App Template - This App Template Source code is licensed as per the - terms found in the Website https://initappz.com/license - Copyright and Good Faith Purchasers © 2021-present initappz. -*/ import { Component } from '@angular/core'; +import {SessionDataProviderService} from "../../store/session-data-provider.service"; @Component({ selector: 'app-tabs', @@ -14,7 +7,10 @@ import { Component } from '@angular/core'; styleUrls: ['tabs.page.scss'] }) export class TabsPage { +accountType:string="FULL"; - constructor() { } + constructor(public sessionDataProviderService: SessionDataProviderService) { + this.accountType = sessionDataProviderService.account_type; + } } diff --git a/src/app/pages/transaction/transaction.page.html b/src/app/pages/transaction/transaction.page.html index e9ad9da..14656b7 100644 --- a/src/app/pages/transaction/transaction.page.html +++ b/src/app/pages/transaction/transaction.page.html @@ -6,72 +6,47 @@ - - - {{item.description}} - Balance {{item.amount*0.01}} - +
+ + + {{item.description}} + Balance {{item.amount*0.01}} + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + Recent Transactions + + + - - - Recent Transactions - - - - -
-
-
- - -
- - -
-
- - -
- -
-
-
+
+
+
+ + +
+ +
+
+ + +
+
+
+
+
diff --git a/src/global.scss b/src/global.scss index 990a1ee..079702f 100644 --- a/src/global.scss +++ b/src/global.scss @@ -113,4 +113,10 @@ ion-modal.custom_modal_bottom { font-size: 14px; font-weight: bolder; margin-left: 50px; +} + +.bold_text_red { + font-size: 20px; + font-family: 'bold'; + color:red; } \ No newline at end of file