Commit 09826c32 by Muhammad Usman

intro letters completed

parent b2f5f2ca
......@@ -27,7 +27,9 @@ export const CLASSES = {
SKILL: 'performa.orm.Skill',
REFEREE: 'performa.orm.Referee',
CandidateTemplate: 'performa.orm.CandidateTemplate',
INTRO: 'performa.orm.IntroductionLetter'
INTRO: 'performa.orm.IntroductionLetter',
ILWorkExperience: 'performa.orm.ILWorkExperience',
ILSkill: 'performa.orm.ILSkill',
};
export const SERVICES = {
......
......@@ -45,13 +45,13 @@
<app-overlay [isActive]="isLoadingSkillAndExp"></app-overlay>
<div class="col-md-6 mc-exp-table">
<h5>Work Experience</h5>
<p-table [columns]="[]" [value]="careerProfile.WorkExperiences" [reorderableColumns]="true">
<ng-template pTemplate="body" let-rowData let-columns="columns" let-index="rowIndex">
<p-table [columns]="[]" [value]="introductionLetter.WorkExperiences" [reorderableColumns]="true">
<ng-template pTemplate="body" let-ILWorkExperience let-columns="columns" let-index="rowIndex">
<tr [pReorderableRow]="index">
<td>
<div class="exp-row">
<i class="fa fa-bars" pReorderableRowHandle></i>
<p-checkbox [value]="rowData.ObjectID" [(ngModel)]="introductionLetter.WorkExperiences" name="EXP{{index}}" [label]="rowData?.ActualJobTitle + ' - ' + rowData?.Employer"></p-checkbox>
<p-checkbox [binary]="true" [(ngModel)]="ILWorkExperience.IsSelected" name="EXP{{index}}" [label]="ILWorkExperience?.WorkExperience?.ActualJobTitle + ' - ' + ILWorkExperience?.WorkExperience?.Employer"></p-checkbox>
</div>
</td>
</tr>
......@@ -61,13 +61,13 @@
<div class="col-md-6 mc-skill-table">
<h5>Skills</h5>
<p-table [columns]="[]" [value]="careerProfile.Skills" [reorderableColumns]="true">
<ng-template pTemplate="body" let-rowData let-columns="columns" let-index="rowIndex">
<p-table [columns]="[]" [value]="introductionLetter.Skills" [reorderableColumns]="true">
<ng-template pTemplate="body" let-ILSkill let-columns="columns" let-index="rowIndex">
<tr [pReorderableRow]="index">
<td>
<div class="skill-row">
<i class="fa fa-bars" pReorderableRowHandle></i>
<p-checkbox [value]="rowData.ObjectID" [(ngModel)]="introductionLetter.Skills" name="SKILLS{{index}}" [label]="rowData?.Skill?.Description"></p-checkbox>
<p-checkbox [binary]="true" [(ngModel)]="ILSkill.IsSelected" name="SKILLS{{index}}" [label]="ILSkill?.Skill?.Description"></p-checkbox>
</div>
</td>
</tr>
......
......@@ -9,6 +9,8 @@ import { CareerProfileModel } from '../../models/career-profile.model';
import { IntroLetterService } from '../../services/intro-letter.service';
import { NgForm } from '@angular/forms';
import { HelperService } from '../../services/helper.service';
import { ILWorkExperienceModel } from '../../models/il-work-experience.model';
import { ILSkillModel } from '../../models/il-skill.model';
@Component({
selector: 'app-intro-letter',
......@@ -50,7 +52,7 @@ export class IntroLetterComponent extends BaseComponent implements OnInit {
getCareerProfile(): void {
this.isLoadingSkillAndExp = true;
const assocs = ['WorkExperiences', 'WorkExperiences.WorkExperiences', 'Skills.Skill'];
const assocs = ['WorkExperiences', 'WorkExperiences', 'Skills.Skill'];
this.personalDetailsService.getCareerProfile(assocs)
.pipe(takeUntil(this.componentInView))
.subscribe(response => {
......@@ -60,8 +62,8 @@ export class IntroLetterComponent extends BaseComponent implements OnInit {
this.introductionLetter = new IntroductionLetterModel();
this.introductionLetter.Candidate = this.careerProfile.Candidate;
this.utilsService.createObject(this.introductionLetter, this.createdObjs);
this.initialProcessing();
}
console.log(this.careerProfile);
}, err => {
this.isLoadingSkillAndExp = false;
this.utilsService.handleError(err);
......@@ -70,7 +72,7 @@ export class IntroLetterComponent extends BaseComponent implements OnInit {
getIntroLetter(): void {
this.isLoading = true;
this.introLetterService.getIntroLetter(this.introLetterId)
this.introLetterService.getIntroLetter(this.introLetterId, ['WorkExperiences.WorkExperience', 'Skills.Skill'])
.pipe(takeUntil(this.componentInView))
.subscribe(response => {
this.isLoading = false;
......@@ -82,10 +84,37 @@ export class IntroLetterComponent extends BaseComponent implements OnInit {
})
}
initialProcessing(): void {
this.careerProfile.WorkExperiences.forEach((w, i) => {
const ilWorkExperience = new ILWorkExperienceModel();
ilWorkExperience.IntroductionLetter = this.introductionLetter.ObjectID;
ilWorkExperience.WorkExperience = w;
ilWorkExperience.SortOrder = i;
this.utilsService.addMultiRefObject(ilWorkExperience, this.introductionLetter, 'WorkExperiences', this.createdObjs);
});
this.careerProfile.Skills.forEach((s, i) => {
const ilSkillModel = new ILSkillModel();
ilSkillModel.IntroductionLetter = this.introductionLetter.ObjectID;
ilSkillModel.Skill = s.Skill;
ilSkillModel.SortOrder = i;
this.utilsService.addMultiRefObject(ilSkillModel, this.introductionLetter, 'Skills', this.createdObjs);
});
}
saveIntroLetter(): void {
if (this.form.invalid) {
return this.helperService.validateAllFormFields(this.form);
}
if (this.introductionLetter.WorkExperiences) {
this.introductionLetter.WorkExperiences.forEach((w, i) => {
w.SortOrder = i;
});
}
if (this.introductionLetter.Skills) {
this.introductionLetter.Skills.forEach((s, i) => {
s.SortOrder = i;
});
}
this.isLoading = true;
this.introLetterService.saveIntroLetters(this.createdObjs, this.updatedObjs, this.deletedObjs)
.pipe(takeUntil(this.componentInView))
......
......@@ -7,6 +7,7 @@ export class CareerSkillModel extends BaseModel {
SkillRating: string;
Skill: SkillModel;
CareerProfile?: string;
Selected: boolean;
}
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
export class ILSkillModel extends BaseModel {
ObjectClass = CLASSES.ILSkill;
SortOrder: number;
IsSelected: boolean;
Skill: any;
IntroductionLetter: any;
}
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
export class ILWorkExperienceModel extends BaseModel {
ObjectClass = CLASSES.ILWorkExperience;
SortOrder: number;
IsSelected: boolean;
WorkExperience: any;
IntroductionLetter: any;
}
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { ILWorkExperienceModel } from './il-work-experience.model';
import { ILSkillModel } from './il-skill.model';
export class IntroductionLetterModel extends BaseModel {
ObjectClass = CLASSES.INTRO;
......@@ -8,6 +10,6 @@ export class IntroductionLetterModel extends BaseModel {
Employer: string;
ContactName: string;
Candidate: any;
Skills: any[];
WorkExperiences: any[];
Skills: ILSkillModel[];
WorkExperiences: ILWorkExperienceModel[];
}
......@@ -14,4 +14,5 @@ export class WorkExperienceModel extends BaseModel {
JobRoleSummary: boolean;
ILOJobTitle: any;
CareerProfile: string;
Selected: boolean;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment