job history compo

This commit is contained in:
CHIEFSOFT\ameye
2024-01-22 05:11:46 -05:00
parent 18c844911c
commit 524d3f8209
4 changed files with 509 additions and 0 deletions
@@ -0,0 +1,62 @@
<!--<div class="lesson">-->
<!-- <p>-->
<!-- history-completed-jobs works!-->
<!-- </p>-->
<!-- <div class="video" *ngFor="let item of jobsPastDueData;" >-->
<!-- <div class="flex">-->
<!-- <div class="bg_image back_image" [style.backgroundImage]="'url('+session_image_server+'/'+curr_session+'/job/'+item.job_uid+')'"></div>-->
<!-- <div style="margin-left: 10px;">-->
<!-- <ion-label class="bold_text"> {{item.title}}</ion-label>-->
<!-- <div style="display: flex;">-->
<!-- <div class="grey_text" [innerHTML]="item.job_description"></div>-->
<!-- </div>-->
<!-- <div>-->
<!-- <ion-label class="due_date">Completed : {{item.delivery_date |date}}</ion-label>-->
<!-- <ion-label *ngIf="item.ext_request !=''; " class="due_date"> Extension Request: {{item.ext_request | date}}</ion-label>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="column">-->
<!-- <ion-icon name="chevron-forward-outline"></ion-icon>-->
<!-- </div>-->
<!-- </div>-->
<!--</div>-->
<div class="ion-padding">
<div class="lesson">
<div class="flex">
<ion-label class="bold">Completed Task(s)</ion-label>
<ion-label class="color">.</ion-label>
</div>
<div class="video" *ngFor="let item of jobsCompletedData;">
<div class="left">
<!-- <div class="bg_image men_image" [style.backgroundImage]="'url(assets/images/line.png)'"></div>-->
<div class="bg_image back_image" [style.backgroundImage]="'url('+session_image_server+'/'+curr_session+'/job/'+item.origin_job_uid+')'"></div>
<div class="text">
<ion-label class="bold_text"> {{item.title}}</ion-label>
<div class="grey_text" [innerHTML]="item.job_description"></div>
<!-- <ion-label class="grey_text">10 mins</ion-label>-->
<ion-label class="due_date">Completed : {{item.delivery_date |date}}</ion-label>
</div>
</div>
<div class="right">
<!-- <ion-icon name="lock-closed-outline"></ion-icon>-->
</div>
</div>
</div>
</div>
@@ -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 { HistoryCompletedJobsComponent } from './history-completed-jobs.component';
describe('HistoryCompletedJobsComponent', () => {
let component: HistoryCompletedJobsComponent;
let fixture: ComponentFixture<HistoryCompletedJobsComponent>;
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ HistoryCompletedJobsComponent ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(HistoryCompletedJobsComponent);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,38 @@
import { Component, OnInit } from '@angular/core';
import {SessionDataProviderService} from "../../../store/session-data-provider.service";
import {TasksDataService} from "../../../store/tasks-data.service";
@Component({
selector: 'app-history-completed-jobs',
templateUrl: './history-completed-jobs.component.html',
styleUrls: ['./history-completed-jobs.component.scss'],
})
export class HistoryCompletedJobsComponent implements OnInit {
session_image_server:string='';
curr_session:string='';
pastdue_job_count:number =0;
jobsTotalPastDueData:any;
jobsCompletedData: [];
constructor(
public sessionDataProviderService:SessionDataProviderService,
public tasksDataService:TasksDataService,) {
this.tasksDataService.getJobsHistoryData();
this.curr_session=this.sessionDataProviderService.session;
//this.refreshJobsData();
}
async refreshJobsData(){
//this.tasksDataService.getJobsHistoryData();
setInterval(()=>{
this.jobsCompletedData = this.tasksDataService.jobsCompletedData;
this.session_image_server = this.tasksDataService.session_image_server;
this.pastdue_job_count = this.tasksDataService.pastdue_job_count;
}, 5000);
}
ngOnInit() {
this.refreshJobsData();
}
}