Job owner pages

This commit is contained in:
CHIEFSOFT\ameye
2023-08-06 07:38:41 -04:00
parent 13c9f3a529
commit 6f9eb0e25e
19 changed files with 1504 additions and 54 deletions
+4 -1
View File
@@ -7,4 +7,7 @@ ionic generate page familylogin
ionic generate page blogdetail
ionic generate page marketdetail
ionic generate page activetask
ionic generate page mytask
ionic generate page mytask
ionic generate page jobmanager
ionic generate page jobinterest
+8
View File
@@ -154,6 +154,14 @@ const routes: Routes = [
path: 'mytasks',
loadChildren: () => import('./pages/mytasks/mytasks.module').then(m => m.MytasksPageModule)
},
{
path: 'jobmanager',
loadChildren: () => import('./pages/jobmanager/jobmanager.module').then(m => m.JobmanagerPageModule)
},
{
path: 'jobinterest',
loadChildren: () => import('./pages/jobinterest/jobinterest.module').then(m => m.JobinterestPageModule)
},
];
@NgModule({
+2 -1
View File
@@ -211,7 +211,8 @@
<div class="like">
<!-- <ion-icon slot="start" name="heart" color="danger" class="heart"></ion-icon>-->
<ion-label class="count">{{item.firstname}} </ion-label>
<ion-label class="bg_text">{{item.firstname}} </ion-label>
<ion-label class="bg_text">3D Design</ion-label>
<ion-label class="time">{{item.added}}</ion-label>
</div>
</div>
+12
View File
@@ -84,6 +84,18 @@ export class HomePage implements OnInit {
break;
case 'my-review-jobs':
pageToNavigate = 'jobmanager';
break
case 'my-pastdue-jobs':
pageToNavigate = 'jobmanager';
break
case 'offer-interest':
pageToNavigate = 'jobinterest';
break
case 'acc-family':
pageToNavigate = 'family';
break;
+57 -50
View File
@@ -13,70 +13,77 @@
<ion-segment [(ngModel)]="tabs">
<ion-segment-button value="about">
<ion-segment-button value="refer">
<ion-label>Refer</ion-label>
</ion-segment-button>
<ion-segment-button value="lesson">
<ion-segment-button value="history">
<ion-label>History</ion-label>
</ion-segment-button>
</ion-segment>
<ion-card>
<ion-card-header>
<ion-card-title>Card Title</ion-card-title>
<ion-card-subtitle>Card Subtitle</ion-card-subtitle>
</ion-card-header>
<div *ngIf="tabs =='refer'" class="refer">
<ion-card>
<ion-card-header>
<ion-card-title>Card Title</ion-card-title>
<ion-card-subtitle>Card Subtitle</ion-card-subtitle>
</ion-card-header>
<ion-card-content>
<ion-item lines="none">
<ion-icon slot="start" name="mail-outline"></ion-icon>
<ion-input type="email" placeholder="Email" [(ngModel)]='email'></ion-input>
</ion-item>
<ion-card-content>
<ion-item lines="none">
<ion-icon slot="start" name="mail-outline"></ion-icon>
<ion-input type="email" placeholder="Email" [(ngModel)]='email'></ion-input>
</ion-item>
<ion-item lines="none">
<ion-icon slot="start" name="lock-closed-outline"></ion-icon>
<ion-input type="text" placeholder="firstname" [(ngModel)]='firstname'></ion-input>
</ion-item>
<ion-item lines="none">
<ion-icon slot="start" name="lock-closed-outline"></ion-icon>
<ion-input type="text" placeholder="firstname" [(ngModel)]='firstname'></ion-input>
</ion-item>
<ion-item lines="none">
<ion-icon slot="start" name="lock-closed-outline"></ion-icon>
<ion-input type="text" placeholder="lastname" [(ngModel)]='lastname'></ion-input>
</ion-item>
<ion-item lines="none">
<ion-icon slot="start" name="lock-closed-outline"></ion-icon>
<ion-input type="text" placeholder="lastname" [(ngModel)]='lastname'></ion-input>
</ion-item>
<ion-grid>
<ion-row>
<ion-col>
</ion-col>
<ion-col>
<ion-button expand="block" (click)="sendRefer()">
Send
</ion-button>
</ion-col>
</ion-row>
</ion-grid>
</ion-card-content>
</ion-card>
<div class="chat" *ngFor="let item of referData">
<div class="flex">
<div class="bg_image back_image" [style.backgroundImage]="'url(assets/images/p3.jpg)'"></div>
<div style="margin-left: 10px;">
<ion-label class="bold_text"> {{item.firstname}} {{item.lastname}} </ion-label>
<div style="display: flex;">
<ion-label class="grey_text"> {{item.email}} </ion-label>
<ion-grid>
<ion-row>
<ion-col>
</ion-col>
<ion-col>
<ion-button expand="block" (click)="sendRefer()">
Send
</ion-button>
</ion-col>
</ion-row>
</ion-grid>
</ion-card-content>
</ion-card>
</div>
<div *ngIf="tabs =='history'" class="history">
<div class="chat" *ngFor="let item of referData">
<div class="flex">
<div class="bg_image back_image" [style.backgroundImage]="'url(assets/images/p3.jpg)'"></div>
<div style="margin-left: 10px;">
<ion-label class="bold_text"> {{item.firstname}} {{item.lastname}} </ion-label>
<div style="display: flex;">
<ion-label class="grey_text"> {{item.email}} </ion-label>
</div>
</div>
</div>
</div>
<div class="column">
<ion-label class="invite"> {{item.status}}</ion-label>
<div class="column">
<ion-label class="invite"> {{item.status}}</ion-label>
</div>
</div>
</div>
</ion-content>
<!--
+1
View File
@@ -14,6 +14,7 @@ export class InvitePage implements OnInit {
@ViewChild('firstname') firstname;
@ViewChild('lastname') lastname;
@ViewChild('email') email;
tabs = 'refer';
constructor(
private navctr: NavController,
@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { JobinterestPage } from './jobinterest.page';
const routes: Routes = [
{
path: '',
component: JobinterestPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class JobinterestPageRoutingModule {}
@@ -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 { JobinterestPageRoutingModule } from './jobinterest-routing.module';
import { JobinterestPage } from './jobinterest.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
JobinterestPageRoutingModule
],
declarations: [JobinterestPage]
})
export class JobinterestPageModule {}
@@ -0,0 +1,227 @@
<ion-content>
<div class="bg_image back_image" [style.backgroundImage]="'url(assets/images/p4.jpg)'">
<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="flex">
<ion-label class="bold_text">Intro UI/UX Design</ion-label>
<ion-icon slot="end" name="bookmark-outline" color="primary"></ion-icon>
</div>
<div class="row">
<ion-label class="bg_text">3D Design</ion-label>
<div class="rate">
<ion-icon name="star-half-outline" color="warning"></ion-icon>
<ion-label class="review">4.8 (4478 reviews)</ion-label>
</div>
</div>
<ion-label class="color_text">$40</ion-label>
<div class="items">
<div class="stud">
<ion-icon slot="start" name="people" color="primary"></ion-icon>
<ion-label>9876 Students</ion-label>
</div>
<div class="stud">
<ion-icon slot="start" name="time" color="primary"></ion-icon>
<ion-label>2.5 hours</ion-label>
</div>
<div class="stud">
<ion-icon slot="start" name="document-text" color="primary"></ion-icon>
<ion-label>Certificate</ion-label>
</div>
</div>
<ion-segment [(ngModel)]="tabs">
<ion-segment-button value="about">
<ion-label>About</ion-label>
</ion-segment-button>
<ion-segment-button value="lesson">
<ion-label>Lessons</ion-label>
</ion-segment-button>
<ion-segment-button value="review">
<ion-label>Reviews</ion-label>
</ion-segment-button>
</ion-segment>
<div *ngIf="tabs =='about'" class="about">
<ion-label class="head_text">Mentor</ion-label>
<div class="mentor" (click)="onMentor()">
<div class="left">
<div class="bg_image men_image" [style.backgroundImage]="'url(assets/images/p3.jpg)'"></div>
<div style="margin-left: 10px;">
<ion-label class="bold">Jonathon Williams</ion-label>
<ion-label class="grey">Senier UI/UX designer at google</ion-label>
</div>
</div>
<ion-icon name="chatbubble-ellipses-outline" color="primary"></ion-icon>
</div>
<ion-label class="head_text">About Course</ion-label>
<ion-label class="description">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, dolor, quasi
commodi
</ion-label>
<ion-label class="description">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, dolor, quasi
commodi
</ion-label>
<ion-label class="description">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, dolor, quasi
commodi
</ion-label>
<ion-label class="head_text">Tools</ion-label>
<ion-label>Figma</ion-label>
</div>
<div *ngIf="tabs =='lesson'" 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">Section 1 - Introduction</ion-label>
<ion-label class="color">15 min</ion-label>
</div>
<div class="video" *ngFor="let item of [1,2]">
<div class="left">
<div class="bg_image men_image" [style.backgroundImage]="'url(assets/images/line.png)'"></div>
<div class="text">
<ion-label class="bold_text">Why Using Figma ?</ion-label>
<ion-label class="grey_text">10 mins</ion-label>
</div>
</div>
<div class="right">
<ion-icon name="lock-closed-outline"></ion-icon>
</div>
</div>
<div class="sec">
<ion-label class="grey">Section 2 - Figma Basic</ion-label>
<ion-label class="color">60 min</ion-label>
</div>
<div class="video" *ngFor="let item of [1,2,3,4,5,6]">
<div class="left">
<div class="bg_image men_image" [style.backgroundImage]="'url(assets/images/line.png)'"></div>
<div class="text">
<ion-label class="bold_text">Why Using Figma ?</ion-label>
<ion-label class="grey_text">10 mins</ion-label>
</div>
</div>
<div class="right">
<ion-icon name="lock-closed-outline"></ion-icon>
</div>
</div>
<div class="sec">
<ion-label class="grey">Section 3 - Let's Practice</ion-label>
<ion-label class="color">75 min</ion-label>
</div>
<div class="video" *ngFor="let item of [1,2,3,4,5,6]">
<div class="left">
<div class="bg_image men_image" [style.backgroundImage]="'url(assets/images/line.png)'"></div>
<div class="text">
<ion-label class="bold_text">Why Using Figma ?</ion-label>
<ion-label class="grey_text">10 mins</ion-label>
</div>
</div>
<div class="right">
<ion-icon name="lock-closed-outline"></ion-icon>
</div>
</div>
</div>
<div *ngIf="tabs =='review'" class="review_tab">
<div class="total">
<div class="star-rate">
<ion-icon name="star-half-outline" color="warning"></ion-icon>
<ion-label class="bold">4.8 (5456 Reviews)</ion-label>
</div>
<ion-label class="color">See all</ion-label>
</div>
<div class="story-item">
<div class="menu">
<div class="text">
<div class="select show">
<ion-icon slot="start" name="star" color="light" class="star_icon"></ion-icon>
<ion-label class="rate_num white">All</ion-label>
</div>
<div class="select">
<ion-icon slot="start" name="star" color="primary" class="star_icon"></ion-icon>
<ion-label class="rate_num">1</ion-label>
</div>
<div class="select">
<ion-icon slot="start" name="star" color="primary" class="star_icon"></ion-icon>
<ion-label class="rate_num">2</ion-label>
</div>
<div class="select">
<ion-icon slot="start" name="star" color="primary" class="star_icon"></ion-icon>
<ion-label class="rate_num">3</ion-label>
</div>
<div class="select">
<ion-icon slot="start" name="star" color="primary" class="star_icon"></ion-icon>
<ion-label class="rate_num">4</ion-label>
</div>
<div class="select">
<ion-icon slot="start" name="star" color="primary" class="star_icon"></ion-icon>
<ion-label class="rate_num">5</ion-label>
</div>
</div>
</div>
</div>
<div class="reviw_list" *ngFor="let item of [1,2,3,4,5]">
<div class="profile">
<div class="left">
<div class="bg_image men_image" [style.backgroundImage]="'url(assets/images/p2.jpg)'"></div>
<div style="margin-left: 10px;">
<ion-label class="bold">Jonathon Williams</ion-label>
</div>
</div>
<div class="right">
<div class="select">
<ion-icon slot="start" name="star" color="primary" class="star_icon"></ion-icon>
<ion-label class="rate_num">5</ion-label>
</div>
<ion-icon name="ellipsis-horizontal-circle-outline"></ion-icon>
</div>
</div>
<ion-label>The course is very good. the experience of the menter is very clear and easy to understand
</ion-label>
<div class="like">
<ion-icon slot="start" name="heart" color="danger" class="heart"></ion-icon>
<ion-label class="count">330</ion-label>
<ion-label class="time">2 Days ago</ion-label>
</div>
</div>
</div>
</div>
</ion-content>
<ion-footer>
<ion-toolbar>
<div class="button" (click)="onEnroll()">
<ion-label class="text">Enroll Course - $40</ion-label>
</div>
</ion-toolbar>
</ion-footer>
@@ -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;
}
}
}
}
@@ -0,0 +1,24 @@
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { JobinterestPage } from './jobinterest.page';
describe('JobinterestPage', () => {
let component: JobinterestPage;
let fixture: ComponentFixture<JobinterestPage>;
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ JobinterestPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(JobinterestPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,35 @@
import { Router } from '@angular/router';
import { Component, OnInit } from '@angular/core';
import { NavController } from '@ionic/angular';
@Component({
selector: 'app-jobinterest',
templateUrl: './jobinterest.page.html',
styleUrls: ['./jobinterest.page.scss'],
})
export class JobinterestPage implements OnInit {
tabs = 'about';
constructor(
private navctr: NavController,
private router: Router
) { }
ngOnInit() {
}
onBack() {
this.navctr.back();
}
onMentor() {
this.router.navigate(['mentor']);
}
onEnroll() {
this.router.navigate(['enroll']);
}
}
@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { JobmanagerPage } from './jobmanager.page';
const routes: Routes = [
{
path: '',
component: JobmanagerPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class JobmanagerPageRoutingModule {}
@@ -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 { JobmanagerPageRoutingModule } from './jobmanager-routing.module';
import { JobmanagerPage } from './jobmanager.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
JobmanagerPageRoutingModule
],
declarations: [JobmanagerPage]
})
export class JobmanagerPageModule {}
@@ -0,0 +1,227 @@
<ion-content>
<div class="bg_image back_image" [style.backgroundImage]="'url(assets/images/p4.jpg)'">
<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="flex">
<ion-label class="bold_text">Intro UI/UX Design</ion-label>
<ion-icon slot="end" name="bookmark-outline" color="primary"></ion-icon>
</div>
<div class="row">
<ion-label class="bg_text">3D Design</ion-label>
<div class="rate">
<ion-icon name="star-half-outline" color="warning"></ion-icon>
<ion-label class="review">4.8 (4478 reviews)</ion-label>
</div>
</div>
<ion-label class="color_text">$40</ion-label>
<div class="items">
<div class="stud">
<ion-icon slot="start" name="people" color="primary"></ion-icon>
<ion-label>9876 Students</ion-label>
</div>
<div class="stud">
<ion-icon slot="start" name="time" color="primary"></ion-icon>
<ion-label>2.5 hours</ion-label>
</div>
<div class="stud">
<ion-icon slot="start" name="document-text" color="primary"></ion-icon>
<ion-label>Certificate</ion-label>
</div>
</div>
<ion-segment [(ngModel)]="tabs">
<ion-segment-button value="about">
<ion-label>About</ion-label>
</ion-segment-button>
<ion-segment-button value="lesson">
<ion-label>Lessons</ion-label>
</ion-segment-button>
<ion-segment-button value="review">
<ion-label>Reviews</ion-label>
</ion-segment-button>
</ion-segment>
<div *ngIf="tabs =='about'" class="about">
<ion-label class="head_text">Mentor</ion-label>
<div class="mentor" (click)="onMentor()">
<div class="left">
<div class="bg_image men_image" [style.backgroundImage]="'url(assets/images/p3.jpg)'"></div>
<div style="margin-left: 10px;">
<ion-label class="bold">Jonathon Williams</ion-label>
<ion-label class="grey">Senier UI/UX designer at google</ion-label>
</div>
</div>
<ion-icon name="chatbubble-ellipses-outline" color="primary"></ion-icon>
</div>
<ion-label class="head_text">About Course</ion-label>
<ion-label class="description">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, dolor, quasi
commodi
</ion-label>
<ion-label class="description">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, dolor, quasi
commodi
</ion-label>
<ion-label class="description">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, dolor, quasi
commodi
</ion-label>
<ion-label class="head_text">Tools</ion-label>
<ion-label>Figma</ion-label>
</div>
<div *ngIf="tabs =='lesson'" 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">Section 1 - Introduction</ion-label>
<ion-label class="color">15 min</ion-label>
</div>
<div class="video" *ngFor="let item of [1,2]">
<div class="left">
<div class="bg_image men_image" [style.backgroundImage]="'url(assets/images/line.png)'"></div>
<div class="text">
<ion-label class="bold_text">Why Using Figma ?</ion-label>
<ion-label class="grey_text">10 mins</ion-label>
</div>
</div>
<div class="right">
<ion-icon name="lock-closed-outline"></ion-icon>
</div>
</div>
<div class="sec">
<ion-label class="grey">Section 2 - Figma Basic</ion-label>
<ion-label class="color">60 min</ion-label>
</div>
<div class="video" *ngFor="let item of [1,2,3,4,5,6]">
<div class="left">
<div class="bg_image men_image" [style.backgroundImage]="'url(assets/images/line.png)'"></div>
<div class="text">
<ion-label class="bold_text">Why Using Figma ?</ion-label>
<ion-label class="grey_text">10 mins</ion-label>
</div>
</div>
<div class="right">
<ion-icon name="lock-closed-outline"></ion-icon>
</div>
</div>
<div class="sec">
<ion-label class="grey">Section 3 - Let's Practice</ion-label>
<ion-label class="color">75 min</ion-label>
</div>
<div class="video" *ngFor="let item of [1,2,3,4,5,6]">
<div class="left">
<div class="bg_image men_image" [style.backgroundImage]="'url(assets/images/line.png)'"></div>
<div class="text">
<ion-label class="bold_text">Why Using Figma ?</ion-label>
<ion-label class="grey_text">10 mins</ion-label>
</div>
</div>
<div class="right">
<ion-icon name="lock-closed-outline"></ion-icon>
</div>
</div>
</div>
<div *ngIf="tabs =='review'" class="review_tab">
<div class="total">
<div class="star-rate">
<ion-icon name="star-half-outline" color="warning"></ion-icon>
<ion-label class="bold">4.8 (5456 Reviews)</ion-label>
</div>
<ion-label class="color">See all</ion-label>
</div>
<div class="story-item">
<div class="menu">
<div class="text">
<div class="select show">
<ion-icon slot="start" name="star" color="light" class="star_icon"></ion-icon>
<ion-label class="rate_num white">All</ion-label>
</div>
<div class="select">
<ion-icon slot="start" name="star" color="primary" class="star_icon"></ion-icon>
<ion-label class="rate_num">1</ion-label>
</div>
<div class="select">
<ion-icon slot="start" name="star" color="primary" class="star_icon"></ion-icon>
<ion-label class="rate_num">2</ion-label>
</div>
<div class="select">
<ion-icon slot="start" name="star" color="primary" class="star_icon"></ion-icon>
<ion-label class="rate_num">3</ion-label>
</div>
<div class="select">
<ion-icon slot="start" name="star" color="primary" class="star_icon"></ion-icon>
<ion-label class="rate_num">4</ion-label>
</div>
<div class="select">
<ion-icon slot="start" name="star" color="primary" class="star_icon"></ion-icon>
<ion-label class="rate_num">5</ion-label>
</div>
</div>
</div>
</div>
<div class="reviw_list" *ngFor="let item of [1,2,3,4,5]">
<div class="profile">
<div class="left">
<div class="bg_image men_image" [style.backgroundImage]="'url(assets/images/p2.jpg)'"></div>
<div style="margin-left: 10px;">
<ion-label class="bold">Jonathon Williams</ion-label>
</div>
</div>
<div class="right">
<div class="select">
<ion-icon slot="start" name="star" color="primary" class="star_icon"></ion-icon>
<ion-label class="rate_num">5</ion-label>
</div>
<ion-icon name="ellipsis-horizontal-circle-outline"></ion-icon>
</div>
</div>
<ion-label>The course is very good. the experience of the menter is very clear and easy to understand
</ion-label>
<div class="like">
<ion-icon slot="start" name="heart" color="danger" class="heart"></ion-icon>
<ion-label class="count">330</ion-label>
<ion-label class="time">2 Days ago</ion-label>
</div>
</div>
</div>
</div>
</ion-content>
<ion-footer>
<ion-toolbar>
<div class="button" (click)="onEnroll()">
<ion-label class="text">Enroll Course - $40</ion-label>
</div>
</ion-toolbar>
</ion-footer>
@@ -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;
}
}
}
}
@@ -0,0 +1,24 @@
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { JobmanagerPage } from './jobmanager.page';
describe('JobmanagerPage', () => {
let component: JobmanagerPage;
let fixture: ComponentFixture<JobmanagerPage>;
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ JobmanagerPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(JobmanagerPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,37 @@
import { Router } from '@angular/router';
import { Component, OnInit } from '@angular/core';
import { NavController } from '@ionic/angular';
@Component({
selector: 'app-jobmanager',
templateUrl: './jobmanager.page.html',
styleUrls: ['./jobmanager.page.scss'],
})
export class JobmanagerPage implements OnInit {
tabs = 'about';
constructor(
private navctr: NavController,
private router: Router
) { }
ngOnInit() {
}
onBack() {
this.navctr.back();
}
onMentor() {
this.router.navigate(['mentor']);
}
onEnroll() {
this.router.navigate(['enroll']);
}
}
+2 -2
View File
@@ -77,7 +77,7 @@
</ion-card-content>
</ion-card>
<div class="chat" *ngFor="let item of jobsPastDueData;" (click)="onMessage()">
<div class="chat" *ngFor="let item of jobsPastDueData;" >
<div class="flex">
<div class="bg_image back_image" [style.backgroundImage]="'url(assets/images/taskbanners/'+item.banner+')'"></div>
<div style="margin-left: 10px;">
@@ -114,7 +114,7 @@
</ion-card-content>
</ion-card>
<div class="chat" *ngFor="let item of jobsInReviewData;" (click)="onMessage()">
<div class="chat" *ngFor="let item of jobsInReviewData;">
<div class="flex">
<div class="bg_image back_image" [style.backgroundImage]="'url(assets/images/taskbanners/'+item.banner+')'"></div>
<div style="margin-left: 10px;">