Commit e2ead23e by Muhammad Usman

@CodeReview fixes

parent 9caa9a62
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { McSharedModule } from '../mc-shared/mc-shared.module';
import { AssessmentRouting } from './assessment.routing';
import { WorkStyleComponent } from './work-style/work-style.component';
import { WorkPreferenceComponent } from './work-preference/work-preference.component';
import { DiversityProfileComponent } from './diversity-profile/diversity-profile.component';
import { McSharedModule } from '../mc-shared/mc-shared.module';
import { WorkPreferenceComponent } from './work-preference/work-preference.component';
import { WorkStyleComponent } from './work-style/work-style.component';
@NgModule({
imports: [
......
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { WorkStyleComponent } from './work-style/work-style.component';
import { WorkPreferenceComponent } from './work-preference/work-preference.component';
import { RouterModule, Routes } from '@angular/router';
import { DiversityProfileComponent } from './diversity-profile/diversity-profile.component';
import { WorkPreferenceComponent } from './work-preference/work-preference.component';
import { WorkStyleComponent } from './work-style/work-style.component';
const routes: Routes = [
{
......
<div class="assessment-wrapper row">
<div class="col-12" style="padding: 0;">
<div class="assessment-header">
<div class="header-logo" *ngIf="!isMobileView">
<img src="assets/my-career-web/images/MATCHD_LOGO.jpg" alt="">
</div>
<div class="header-actions">
<span class="auto-saved" *ngIf="autoSaveLabel">Auto saved {{autoSaveLabel}}</span>
<button pButton [label]="isComplete ? 'Complete' : 'Save & exit'" [disabled]="isSaving" (click)="exit()" class="ui-button-info"></button>
</div>
</div>
<app-assessment-header [isMobileView]="isMobileView" [autoSaveLabel]="autoSaveLabel" (exit)="exit()">
</app-assessment-header>
<div class="assessment-body container">
......
// @CodeReview : G008 : Similar style is been used as in "work-preference.component.scss", it must be reused (manage similar thing in whole applicaiton)
@import "../../../../styles/my-career-styles/variables";
.assessment-wrapper {
......@@ -8,83 +6,9 @@
.assessment {
&-header {
height: 76px;
background: $darkColor;
display: flex;
justify-content: space-between;
align-items: center;
.header-logo {
width: 260px;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
height: 100%;
img {
width: 164px;
height: 32px;
}
}
.header-actions {
padding: 0 24px;
font-weight: 600;
.auto-saved {
color: #FFFFFF;
font-family: $bodyFont;
font-size: 14px;
}
button {
margin-left: 24px;
}
}
}
&-body {
margin-top: 32px;
&-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 8px;
.assessment-heading {
color: $darkColor;
font-family: $headingFont;
font-size: 24px;
font-weight: bold;
}
.assessment-estimation {
color: $darkColor;
font-family: $bodyFont;
font-size: 14px;
.fa {
font-size: 16px;
color: $primaryColor;
margin-right: 8px;
}
}
}
&-description {
color: $darkColor;
font-family: $bodyFont;
font-size: 18px;
}
&-question-wrapper {
margin-top: 32px;
position: relative;
.question-wrapper {
margin-bottom: 32px;
......@@ -129,15 +53,6 @@
@media only screen and (max-width: 768px) {
.header-actions {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 12px;
width: 100%;
}
.assessment-body {
margin-top: 16px !important;
......@@ -163,26 +78,9 @@
&-question-wrapper {
margin-top: 24px !important;
.question-title {
margin-bottom: 16px !important;
width: 80% !important;
}
.question-completed {
position: absolute;
right: 0 !important;
top: -18px !important;
font-weight: bold;
}
.question-tag {
margin-bottom: 24px !important;
}
.answer-wrapper {
position: relative;
.extreme-label-right, .extreme-label-left {
font-size: 12px !important;
......
// @CodeReview : A008 : imports to be in proper order (already informed to use typehero plugin, which do the same), do this on all pages in system
import { Component, OnInit } from '@angular/core';
import { BaseComponent } from '../../base/base.component';
import { AssessmentService } from '../../services/assessment.service';
import { Router } from '@angular/router';
import { takeUntil } from 'rxjs/operators';
import * as moment from 'moment';
import { DiversityProfileQuestionModel } from '../../models/diversity-profile-question.model';
import { UtilsService } from '../../../oneit/services/utils.service';
import { AssessmentBaseComponent } from '../../base/assessment-base.component';
import { DiversityProfileQuestionModel } from '../../models/diversity-profile-question.model';
import { AssessmentService } from '../../services/assessment.service';
import { ToasterService } from '../../services/toaster.service';
@Component({
......@@ -15,16 +12,10 @@ import { ToasterService } from '../../services/toaster.service';
templateUrl: './diversity-profile.component.html',
styleUrls: ['./diversity-profile.component.scss']
})
export class DiversityProfileComponent extends BaseComponent implements OnInit {
export class DiversityProfileComponent extends AssessmentBaseComponent implements OnInit {
diversityProfiles: DiversityProfileQuestionModel[] = [];
diversityProfiles: Array<DiversityProfileQuestionModel> = [];
assocs = ['Answers'];
autoSaveInterval;
autoSavedOn;
// @CodeReview : G008 : Similar variable is been defined in other pages as well, please define in common place and reuse it
autoSaveLabel = 'a few seconds ago';
selectedAnswers = [];
constructor(
......@@ -36,7 +27,7 @@ export class DiversityProfileComponent extends BaseComponent implements OnInit {
super();
}
ngOnInit() {
ngOnInit(): void {
this.initiateDiversityProfile();
this.setAutoSaveInterval();
}
......@@ -58,18 +49,14 @@ export class DiversityProfileComponent extends BaseComponent implements OnInit {
setAnswers(): void {
this.diversityProfiles.forEach(div => {
if (!div.MultipleAnswers) {
this.selectedAnswers[div.ObjectID] = div.Answers.find(a => a.IsSelected);
} else {
this.selectedAnswers[div.ObjectID] = div.Answers.filter(a => a.IsSelected).map(a => a.ObjectID);
}
this.selectedAnswers[div.ObjectID] = !div.MultipleAnswers ?
div.Answers.find(a => a.IsSelected) : div.Answers.filter(a => a.IsSelected).map(a => a.ObjectID)
});
}
get isComplete(): boolean {
return this.diversityProfiles.every(div => {
return div.MultipleAnswers ? this.selectedAnswers[div.ObjectID].length > 0 : !!this.selectedAnswers[div.ObjectID];
});
return this.diversityProfiles.every(div =>
div.MultipleAnswers ? this.selectedAnswers[div.ObjectID].length > 0 : !!this.selectedAnswers[div.ObjectID]);
}
exit(): void {
......@@ -96,19 +83,4 @@ export class DiversityProfileComponent extends BaseComponent implements OnInit {
});
}
// @CodeReview : G008 : Similar method setAutoSaveInterval is been created in other pages as well, please define in common place and reuse it
setAutoSaveInterval(): void {
if (!this.autoSaveInterval) {
this.autoSave();
setInterval(() => {
this.autoSave();
}, 60000);
}
}
// @CodeReview : G008 : Similar method setAutoSaveInterval is been created in other pages as well, please define in common place and reuse it
autoSave(): void {
this.autoSaveLabel = moment(this.autoSavedOn).fromNow();
}
}
<div class="assessment-wrapper row">
<div class="col-12" style="padding: 0;">
<div class="assessment-header">
<div class="header-logo" *ngIf="!isMobileView">
<img src="assets/my-career-web/images/MATCHD_LOGO.jpg" alt="">
</div>
<div class="header-actions">
<span class="auto-saved" *ngIf="autoSaveLabel">Auto saved {{autoSaveLabel}}</span>
<app-assessment-header [isMobileView]="isMobileView" [autoSaveLabel]="autoSaveLabel" (exit)="exit()">
</app-assessment-header>
<button pButton label="Save & exit" (click)="exit()" class="ui-button-info"></button>
</div>
</div>
<p-progressBar [value]="workPreferenceQuestion.Percentage"></p-progressBar>
<div class="assessment-body container">
......
......@@ -6,99 +6,11 @@
.assessment {
&-header {
height: 76px;
background: $darkColor;
display: flex;
justify-content: space-between;
align-items: center;
.header-logo {
width: 260px;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
height: 100%;
img {
width: 164px;
height: 32px;
}
}
.header-actions {
padding: 0 24px;
font-weight: 600;
.auto-saved {
color: #FFFFFF;
font-family: $bodyFont;
font-size: 14px;
}
button {
margin-left: 24px;
white-space: nowrap;
}
}
}
&-body {
margin-top: 32px;
&-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 8px;
.assessment-heading {
color: $darkColor;
font-family: $headingFont;
font-size: 24px;
font-weight: bold;
}
.assessment-estimation {
color: $darkColor;
font-family: $bodyFont;
font-size: 14px;
.fa {
font-size: 16px;
color: $primaryColor;
margin-right: 8px;
}
}
}
&-description {
color: $darkColor;
font-family: $bodyFont;
font-size: 18px;
}
&-question-wrapper {
margin-top: 32px;
position: relative;
.question-completed {
color: $darkColor;
font-family: $bodyFont;
font-size: 18px;
position: absolute;
right: 24px;
top: 24px;
}
.answer-options {
//display: flex;question-completed
//justify-content: space-between;
//align-items: center;
.answer-option {
margin-bottom: 10px;
......@@ -128,62 +40,25 @@
@media only screen and (max-width: 768px) {
@media only screen and (max-width: 1024px) {
.header-actions {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 12px;
width: 100%;
}
.assessment-heading {
white-space: normal !important;
}
.assessment-body {
margin-top: 16px !important;
&-header {
padding: 0 4px;
margin-bottom: 16px !important;
.assessment-estimation {
margin-left: 32px;
text-align: center;
position: relative;
.fa {
position: absolute;
left: -16px;
}
}
}
&-description {
text-align: center;
}
&-question-wrapper {
margin-top: 24px !important;
.question-title {
margin-bottom: 16px !important;
width: 80% !important;
}
.question-completed {
position: absolute;
right: 0 !important;
top: -18px !important;
font-weight: bold;
}
.question-tag {
margin-bottom: 24px !important;
top: -28px !important;
}
.answer-wrapper {
position: relative;
.extreme-label-right, .extreme-label-left {
font-size: 12px !important;
......@@ -200,17 +75,6 @@
left: 0;
}
.answer-options {
justify-content: space-between;
width: 100%;
.option-value {
width: unset;
height: unset;
border: none !important;
margin: 0 !important;
}
}
}
}
}
......
// @CodeReview : A008 : imports to be in proper order (already informed to use typehero plugin, which do the same), do this on all pages in system
import { Component, OnDestroy, OnInit } from '@angular/core';
import { BaseComponent } from '../../base/base.component';
import * as moment from 'moment';
import { WorkPreferenceQuestionModel } from '../../models/work-preference-question.model';
import { takeUntil } from 'rxjs/operators';
import { AssessmentService } from '../../services/assessment.service';
import { Router } from '@angular/router';
import { QuestionModel } from '../../models/question.model';
import { takeUntil } from 'rxjs/operators';
import { UtilsService } from '../../../oneit/services/utils.service';
import { AssessmentBaseComponent } from '../../base/assessment-base.component';
import { QuestionModel } from '../../models/question.model';
import { WorkPreferenceQuestionModel } from '../../models/work-preference-question.model';
import { AssessmentService } from '../../services/assessment.service';
import { ToasterService } from '../../services/toaster.service';
@Component({
......@@ -17,14 +14,11 @@ import { ToasterService } from '../../services/toaster.service';
styleUrls: ['./work-preference.component.scss']
})
export class WorkPreferenceComponent extends BaseComponent implements OnInit, OnDestroy {
export class WorkPreferenceComponent extends AssessmentBaseComponent implements OnInit, OnDestroy {
workPreferenceQuestion = new WorkPreferenceQuestionModel();
assocs = ['CultureElement', 'CultureElement.Questions', 'SelectedQuestion'];
wasUpdated = false;
autoSaveInterval;
autoSavedOn;
autoSaveLabel = 'a few seconds ago';
selectedAns;
isBack;
......@@ -37,7 +31,7 @@ export class WorkPreferenceComponent extends BaseComponent implements OnInit, On
super();
}
ngOnInit() {
ngOnInit(): void {
this.initiateWorkPreference();
this.setAutoSaveInterval();
}
......@@ -66,18 +60,6 @@ export class WorkPreferenceComponent extends BaseComponent implements OnInit, On
});
}
setAutoSaveInterval(): void {
if (!this.autoSaveInterval) {
setInterval(() => {
this.autoSave();
}, 60000);
}
}
autoSave(): void {
this.autoSaveLabel = moment(this.autoSavedOn).fromNow();
}
exit(): void {
if (this.wasUpdated) {
this.toasterService.success('Preferences updated!');
......@@ -110,11 +92,4 @@ export class WorkPreferenceComponent extends BaseComponent implements OnInit, On
});
}
ngOnDestroy(): void {
super.ngOnDestroy();
if (this.autoSaveInterval) {
clearInterval(this.autoSaveInterval);
}
}
}
<div class="assessment-wrapper row">
<div class="col-12" style="padding: 0;">
<div class="assessment-header">
<div class="header-logo" *ngIf="!isMobileView">
<img src="assets/my-career-web/images/MATCHD_LOGO.jpg" alt="">
</div>
<div class="header-actions">
<span class="auto-saved" *ngIf="autoSaveLabel">Auto saved {{autoSaveLabel}}</span>
<app-assessment-header [isMobileView]="isMobileView" [autoSaveLabel]="autoSaveLabel" (exit)="exit()">
</app-assessment-header>
<button pButton label="Save & exit" (click)="exit()" class="ui-button-info"></button>
</div>
</div>
<p-progressBar [value]="workStyleQuestion.Percentage"></p-progressBar>
<div class="assessment-body container">
......
// @CodeReview : : Similar style is been used as in "work-preference.component.scss", it must be reused
@import "../../../../styles/my-career-styles/variables";
.assessment-wrapper {
......@@ -8,84 +6,10 @@
.assessment {
&-header {
height: 76px;
background: $darkColor;
display: flex;
justify-content: space-between;
align-items: center;
.header-logo {
width: 260px;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
height: 100%;
img {
width: 164px;
height: 32px;
}
}
.header-actions {
padding: 0 24px;
font-weight: 600;
.auto-saved {
color: #FFFFFF;
font-family: $bodyFont;
font-size: 14px;
}
button {
margin-left: 24px;
}
}
}
&-body {
margin-top: 32px;
&-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 8px;
.assessment-heading {
color: $darkColor;
font-family: $headingFont;
font-size: 24px;
font-weight: bold;
}
.assessment-estimation {
color: $darkColor;
font-family: $bodyFont;
font-size: 14px;
.fa {
font-size: 16px;
color: $primaryColor;
margin-right: 8px;
}
}
}
&-description {
color: $darkColor;
font-family: $bodyFont;
font-size: 18px;
}
&-question-wrapper {
margin-top: 32px;
position: relative;
.question {
......@@ -179,69 +103,18 @@
@media only screen and (max-width: 1024px) {
.header-actions {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 12px;
width: 100%;
button {
white-space: nowrap;
}
}
.assessment-body {
margin-top: 16px !important;
&-header {
padding: 0 4px;
margin-bottom: 16px !important;
.assessment-heading {
white-space: nowrap;
}
.assessment-estimation {
margin-left: 32px;
text-align: center;
position: relative;
.fa {
position: absolute;
left: -16px;
}
}
}
&-description {
text-align: center;
}
&-question-wrapper {
margin-top: 24px !important;
.question-title {
margin-bottom: 16px !important;
width: 80% !important;
}
.question-completed {
position: absolute;
right: 0 !important;
top: 6px !important;
font-weight: bold;
}
.question-tag {
margin-bottom: 24px !important;
text-transform: uppercase;
}
.answer-wrapper {
position: relative;
display: block !important;
.answer-option-labels {
......@@ -274,5 +147,4 @@
}
}
}
}
// @CodeReview : A008 : imports to be in proper order (already informed to use typehero plugin, which do the same)
import { Component, OnDestroy, OnInit } from '@angular/core';
import { BaseComponent } from '../../base/base.component';
import { AssessmentService } from '../../services/assessment.service';
import { takeUntil } from 'rxjs/operators';
import { WorkStyleQuestionModel } from '../../models/work-style-question.model';
import { Router } from '@angular/router';
import * as moment from 'moment';
import { takeUntil } from 'rxjs/operators';
import { UtilsService } from '../../../oneit/services/utils.service';
import { AssessmentBaseComponent } from '../../base/assessment-base.component';
import { WorkStyleQuestionModel } from '../../models/work-style-question.model';
import { AssessmentService } from '../../services/assessment.service';
import { ToasterService } from '../../services/toaster.service';
@Component({
......@@ -15,14 +12,12 @@ import { ToasterService } from '../../services/toaster.service';
templateUrl: './work-style.component.html',
styleUrls: ['./work-style.component.scss']
})
export class WorkStyleComponent extends BaseComponent implements OnInit, OnDestroy {
export class WorkStyleComponent extends AssessmentBaseComponent implements OnInit, OnDestroy {
workStyleQuestion = new WorkStyleQuestionModel();
assocs = ['Question', 'SelectedQuestion'];
answerScales = [];
autoSaveInterval;
autoSavedOn;
autoSaveLabel = 'a few seconds ago';
wasUpdated = false;
isBack = false;
selectedAns;
......@@ -36,7 +31,7 @@ export class WorkStyleComponent extends BaseComponent implements OnInit, OnDestr
super();
}
ngOnInit() {
ngOnInit(): void {
this.initiateWorkStyle();
this.setAutoSaveInterval();
}
......@@ -106,23 +101,4 @@ export class WorkStyleComponent extends BaseComponent implements OnInit, OnDestr
this.router.navigate(['/my-career-web/dashboard/home']);
}
setAutoSaveInterval(): void {
if (!this.autoSaveInterval) {
setInterval(() => {
this.autoSave();
}, 60000);
}
}
autoSave(): void {
this.autoSaveLabel = moment(this.autoSavedOn).fromNow();
}
ngOnDestroy(): void {
super.ngOnDestroy();
if (this.autoSaveInterval) {
clearInterval(this.autoSaveInterval);
}
}
}
import { Component, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms';
import { takeUntil } from 'rxjs/operators';
import { UtilsService } from '../../../oneit/services/utils.service';
import { BaseComponent } from '../../base/base.component';
import { EXTERNAL_LINKS } from '../../config/constants';
import { AuthService } from '../../services/auth.service';
import { ToasterService } from '../../services/toaster.service';
import { UtilsService } from '../../../oneit/services/utils.service';
import { HelperService } from '../../services/helper.service';
import { ToasterService } from '../../services/toaster.service';
@Component({
selector: 'app-forgot-password',
......
......@@ -3,10 +3,10 @@ import { NgForm } from '@angular/forms';
import { Router } from '@angular/router';
import { takeUntil } from 'rxjs/operators';
import { AppService } from '../../../app.service';
import { UtilsService } from '../../../oneit/services/utils.service';
import { BaseComponent } from '../../base/base.component';
import { EXTERNAL_LINKS } from '../../config/constants';
import { AuthService } from '../../services/auth.service';
import { UtilsService } from '../../../oneit/services/utils.service';
import { HelperService } from '../../services/helper.service';
@Component({
......
......@@ -2,12 +2,12 @@ import { Component, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms';
import { Router } from '@angular/router';
import { takeUntil } from 'rxjs/operators';
import { UtilsService } from '../../../oneit/services/utils.service';
import { BaseComponent } from '../../base/base.component';
import { EXTERNAL_LINKS } from '../../config/constants';
import { AuthService } from '../../services/auth.service';
import { ToasterService } from '../../services/toaster.service';
import { UtilsService } from '../../../oneit/services/utils.service';
import { HelperService } from '../../services/helper.service';
import { ToasterService } from '../../services/toaster.service';
@Component({
selector: 'app-register',
......
......@@ -2,12 +2,12 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { takeUntil } from 'rxjs/operators';
import { UtilsService } from '../../../oneit/services/utils.service';
import { BaseComponent } from '../../base/base.component';
import { AuthService } from '../../services/auth.service';
import { ToasterService } from '../../services/toaster.service';
import { EXTERNAL_LINKS } from '../../config/constants';
import { UtilsService } from '../../../oneit/services/utils.service';
import { AuthService } from '../../services/auth.service';
import { HelperService } from '../../services/helper.service';
import { ToasterService } from '../../services/toaster.service';
@Component({
selector: 'app-reset-password',
......
import { OnDestroy } from '@angular/core';
import * as moment from 'moment';
import { BaseComponent } from './base.component';
export class AssessmentBaseComponent extends BaseComponent implements OnDestroy {
autoSaveInterval;
autoSavedOn;
autoSaveLabel = 'a few seconds ago';
setAutoSaveInterval(): void {
if (!this.autoSaveInterval) {
this.autoSave();
setInterval(() => {
this.autoSave();
}, 60000);
}
}
autoSave(): void {
this.autoSaveLabel = moment(this.autoSavedOn).fromNow();
}
ngOnDestroy(): void {
super.ngOnDestroy();
if (this.autoSaveInterval) {
clearInterval(this.autoSaveInterval);
}
}
}
import { BaseComponent } from './base.component';
import { EventEmitter, Output } from '@angular/core';
import { BaseComponent } from './base.component';
export class BaseModalComponent extends BaseComponent {
......
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { McSharedModule } from '../mc-shared/mc-shared.module';
import { CareerHistoryRouting } from './career-history.routing';
import { CareerHistoryComponent } from './career-history/career-history.component';
import { McSharedModule } from '../mc-shared/mc-shared.module';
import { WorkHistoryComponent } from './career-history/work-history/work-history.component';
import { EducationComponent } from './career-history/education/education.component';
import { SkillsComponent } from './career-history/skills/skills.component';
import { ReferencesComponent } from './career-history/references/references.component';
import { PublishComponent } from './career-history/publish/publish.component';
import { ReferencesComponent } from './career-history/references/references.component';
import { SkillsComponent } from './career-history/skills/skills.component';
import { WorkHistoryComponent } from './career-history/work-history/work-history.component';
@NgModule({
imports: [
......
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { RouterModule, Routes } from '@angular/router';
import { CareerHistoryComponent } from './career-history/career-history.component';
import { PublishComponent } from './career-history/publish/publish.component';
......
<div class="assessment-wrapper row">
<div class="col-12" style="padding: 0;">
<!-- @CodeReview : G008 : Header is been added in all pages separately, better to move this portion to common area, so that will not be redundant -->
<div class="assessment-header">
<div class="header-logo" *ngIf="!isMobileView">
<img src="assets/my-career-web/images/MATCHD_LOGO.jpg" alt="">
</div>
<div class="header-actions">
<span class="auto-saved">Auto saved 1 min ago</span>
<app-assessment-header [isExiting]="isExiting" [isMobileView]="isMobileView" (exit)="exit()">
</app-assessment-header>
<button [disabled]="isExiting" pButton label="Save & exit" (click)="exit()" class="ui-button-info"></button>
</div>
</div>
<p-progressBar [value]="20"></p-progressBar>
<div class="assessment-body container position-relative">
......
// @CodeReview : : Similar style is been used in assessments as well
@import "../../../../styles/my-career-styles/variables";
.assessment-wrapper {
......@@ -8,77 +6,9 @@
.assessment {
&-header {
height: 76px;
background: $darkColor;
display: flex;
justify-content: space-between;
align-items: center;
.header-logo {
width: 260px;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
height: 100%;
img {
width: 164px;
height: 32px;
}
}
.header-actions {
padding: 0 24px;
font-weight: 600;
.auto-saved {
color: #FFFFFF;
font-family: $bodyFont;
font-size: 14px;
}
button {
margin-left: 24px;
}
}
}
&-body {
margin-top: 32px;
&-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 8px;
.assessment-heading {
color: $darkColor;
font-family: $headingFont;
font-size: 24px;
font-weight: bold;
}
.assessment-estimation {
color: $darkColor;
font-family: $bodyFont;
font-size: 14px;
.fa {
font-size: 16px;
color: $primaryColor;
margin-right: 8px;
}
}
}
&-description {
color: $darkColor;
font-family: $bodyFont;
font-size: 18px;
margin-bottom: 32px;
}
......@@ -90,15 +20,7 @@
@media only screen and (max-width: 768px) {
.header-actions {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 12px;
width: 100%;
}
@media only screen and (max-width: 1024px) {
.assessment-body {
......@@ -112,16 +34,6 @@
white-space: nowrap;
}
.assessment-estimation {
margin-left: 32px;
text-align: center;
position: relative;
.fa {
position: absolute;
left: -16px;
}
}
}
&-description {
......
// @CodeReview : A008 : imports to be in proper order (already informed to use typehero plugin, which do the same), do this on all pages in system
import { Component, OnInit, ViewChild } from '@angular/core';
import { BaseComponent } from '../../base/base.component';
import { ActivatedRoute, Router } from '@angular/router';
import { takeUntil } from 'rxjs/operators';
import { UtilsService } from '../../../oneit/services/utils.service';
import { BaseComponent } from '../../base/base.component';
import { PersonalDetailsComponent } from '../../mc-shared/personal-details/personal-details.component';
import { WorkHistoryComponent } from './work-history/work-history.component';
import { EducationComponent } from './education/education.component';
import { SkillsComponent } from './skills/skills.component';
import { ReferencesComponent } from './references/references.component';
import { CareerProfileModel } from '../../models/career-profile.model';
import { PersonalDetailsService } from '../../services/personal-details.service';
import { UtilsService } from '../../../oneit/services/utils.service';
import { EducationComponent } from './education/education.component';
import { ReferencesComponent } from './references/references.component';
import { SkillsComponent } from './skills/skills.component';
import { WorkHistoryComponent } from './work-history/work-history.component';
@Component({
selector: 'app-career-history',
......
import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';
import { PersonalDetailsService } from '../../../services/personal-details.service';
import { CareerProfileModel } from '../../../models/career-profile.model';
import { UtilsService } from '../../../../oneit/services/utils.service';
import { ConfirmationService } from 'primeng/api';
import { NgForm } from '@angular/forms';
import { BaseComponent } from '../../../base/base.component';
import { Router } from '@angular/router';
import { ConfirmationService } from 'primeng/api';
import { takeUntil } from 'rxjs/operators';
import { CertificationModel, EducationModel } from '../../../models/education.model';
import { environment } from '../../../../../environments/environment';
import { Router } from '@angular/router';
import { HelperService } from '../../../services/helper.service';
import { UtilsService } from '../../../../oneit/services/utils.service';
import { BaseComponent } from '../../../base/base.component';
import { CAREER_TABS } from '../../../config/constants';
import { CareerProfileModel } from '../../../models/career-profile.model';
import { CertificationModel, EducationModel } from '../../../models/education.model';
import { HelperService } from '../../../services/helper.service';
import { PersonalDetailsService } from '../../../services/personal-details.service';
@Component({
selector: 'app-education',
......
......@@ -29,9 +29,6 @@
<button class="mc-btn-primary" pButton label="Preview Profile"></button>
</div>
<!-- @CodeReview : : please remove such empty lines from whole application, if it's not placed intentionally -->
<h4 *ngIf="!asChild" style="font-weight: bold;">Update Career Profile</h4>
......@@ -76,8 +73,6 @@
<div class="row mt-4" *ngIf="careerProfile?.PublishProfile">
<div class="col-md-6 d-flex justify-content-between">
<span class="ml-4" style="white-space: nowrap;">Share URL</span>
<!-- @CodeReview : G000 : Why this hard coded share URL is been placed here ? -->
<a target="_blank" style="word-break: break-all; margin-left: 80px;" href="#">http://career.matchd.com/john+peters4</a>
</div>
</div>
......
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { PersonalDetailsService } from '../../../services/personal-details.service';
import { CareerProfileModel } from '../../../models/career-profile.model';
import { Router } from '@angular/router';
import { takeUntil } from 'rxjs/operators';
import { UtilsService } from '../../../../oneit/services/utils.service';
import { BaseComponent } from '../../../base/base.component';
import { takeUntil } from 'rxjs/operators';
import { ToasterService } from '../../../services/toaster.service';
import { Router } from '@angular/router';
import { CAREER_TABS } from '../../../config/constants';
import { CareerProfileModel } from '../../../models/career-profile.model';
import { PersonalDetailsService } from '../../../services/personal-details.service';
import { ToasterService } from '../../../services/toaster.service';
@Component({
selector: 'app-publish',
......
import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';
import { PersonalDetailsService } from '../../../services/personal-details.service';
import { CareerProfileModel } from '../../../models/career-profile.model';
import { UtilsService } from '../../../../oneit/services/utils.service';
import { ConfirmationService } from 'primeng/api';
import { NgForm } from '@angular/forms';
import { BaseComponent } from '../../../base/base.component';
import { Router } from '@angular/router';
import { ConfirmationService } from 'primeng/api';
import { takeUntil } from 'rxjs/operators';
import { RefereeModel } from '../../../models/referee.model';
import { environment } from '../../../../../environments/environment';
import { Router } from '@angular/router';
import { UtilsService } from '../../../../oneit/services/utils.service';
import { BaseComponent } from '../../../base/base.component';
import { CAREER_TABS } from '../../../config/constants';
import { CareerProfileModel } from '../../../models/career-profile.model';
import { RefereeModel } from '../../../models/referee.model';
import { HelperService } from '../../../services/helper.service';
import { PersonalDetailsService } from '../../../services/personal-details.service';
import { ToasterService } from '../../../services/toaster.service';
import { CAREER_TABS } from '../../../config/constants';
@Component({
selector: 'app-references',
......
import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';
import { BaseComponent } from '../../../base/base.component';
import { CareerProfileModel } from '../../../models/career-profile.model';
import { NgForm } from '@angular/forms';
import { PersonalDetailsService } from '../../../services/personal-details.service';
import { UtilsService } from '../../../../oneit/services/utils.service';
import { Router } from '@angular/router';
import { ConfirmationService } from 'primeng/api';
import { takeUntil } from 'rxjs/operators';
import { UtilsService } from '../../../../oneit/services/utils.service';
import { BaseComponent } from '../../../base/base.component';
import { CAREER_TABS } from '../../../config/constants';
import { CareerProfileModel } from '../../../models/career-profile.model';
import { CareerSkillModel, SkillModel } from '../../../models/career-skill.model';
import { Router } from '@angular/router';
import { HelperService } from '../../../services/helper.service';
import { CAREER_TABS } from '../../../config/constants';
import { PersonalDetailsService } from '../../../services/personal-details.service';
@Component({
selector: 'app-skills',
......
// @CodeReview : A008 : imports to be in proper order (already informed to use typehero plugin, which do the same), do this on all pages in system
import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';
import { BaseComponent } from '../../../base/base.component';
import { NgForm } from '@angular/forms';
import { Router } from '@angular/router';
import { ConfirmationService } from 'primeng/api';
import { takeUntil } from 'rxjs/operators';
import { CareerProfileModel } from '../../../models/career-profile.model';
import { PersonalDetailsService } from '../../../services/personal-details.service';
import { UtilsService } from '../../../../oneit/services/utils.service';
import { BaseComponent } from '../../../base/base.component';
import { CAREER_TABS } from '../../../config/constants';
import { CareerProfileModel } from '../../../models/career-profile.model';
import { WorkExperienceModel } from '../../../models/work-experience.model';
import { NgForm } from '@angular/forms';
import { ConfirmationService } from 'primeng/api';
import { Router } from '@angular/router';
import { HelperService } from '../../../services/helper.service';
import { PersonalDetailsService } from '../../../services/personal-details.service';
import { ToasterService } from '../../../services/toaster.service';
import { CAREER_TABS } from '../../../config/constants';
@Component({
selector: 'app-work-history',
......
import { Component, OnDestroy, OnInit } from '@angular/core';
import { HelperService } from '../../services/helper.service';
import { BaseComponent } from '../../base/base.component';
import { HelperService } from '../../services/helper.service';
@Component({
selector: 'app-account',
......
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { McSharedModule } from '../mc-shared/mc-shared.module';
import { AccountComponent } from './account/account.component';
import { DashboardRouting } from './dashboard.routing';
import { DashboardComponent } from './dashboard/dashboard.component';
import { GoPremiumComponent } from './go-premium/go-premium.component';
import { HomeComponent } from './home/home.component';
import { LeftSidebarComponent } from './left-sidebar/left-sidebar.component';
import { ProfileTasksComponent } from './profile-tasks/profile-tasks.component';
import { GoPremiumComponent } from './go-premium/go-premium.component';
import { SummaryReportComponent } from './summary-report/summary-report.component';
import { AccountComponent } from './account/account.component';
@NgModule({
imports: [
......
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { DashboardComponent } from './dashboard/dashboard.component';
import { HomeComponent } from './home/home.component';
import { PersonalDetailsComponent } from '../mc-shared/personal-details/personal-details.component';
import { AccountComponent } from './account/account.component';
import { DashboardComponent } from './dashboard/dashboard.component';
import { GoPremiumComponent } from './go-premium/go-premium.component';
import { HomeComponent } from './home/home.component';
import { SummaryReportComponent } from './summary-report/summary-report.component';
import { AccountComponent } from './account/account.component';
const routes: Routes = [
{
......
import { ChangeDetectorRef, Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { BaseComponent } from '../../base/base.component';
import { AuthService } from '../../services/auth.service';
import { takeUntil } from 'rxjs/operators';
import { PersonalDetailsService } from '../../services/personal-details.service';
import { CareerProfileModel } from '../../models/career-profile.model';
import { environment } from '../../../../environments/environment';
import { BaseComponent } from '../../base/base.component';
import { CareerProfileModel } from '../../models/career-profile.model';
import { AuthService } from '../../services/auth.service';
import { HelperService } from '../../services/helper.service';
import { PersonalDetailsService } from '../../services/personal-details.service';
@Component({
selector: 'app-dashboard',
......
import { Component, OnInit } from '@angular/core';
import { BaseComponent } from '../../base/base.component';
import { takeUntil } from 'rxjs/operators';
import { PersonalDetailsService } from '../../services/personal-details.service';
import { CareerProfileModel } from '../../models/career-profile.model';
import { UtilsService } from '../../../oneit/services/utils.service';
import { BaseComponent } from '../../base/base.component';
import { CareerProfileModel } from '../../models/career-profile.model';
import { PersonalDetailsService } from '../../services/personal-details.service';
@Component({
selector: 'app-home',
......
import { Component, OnInit } from '@angular/core';
import { takeUntil } from 'rxjs/operators';
import { AuthService } from '../../services/auth.service';
import { Router } from '@angular/router';
import { takeUntil } from 'rxjs/operators';
import { environment } from '../../../../environments/environment';
import { BaseComponent } from '../../base/base.component';
import { EXTERNAL_LINKS } from '../../config/constants';
import { PersonalDetailsService } from '../../services/personal-details.service';
import { CareerProfileModel } from '../../models/career-profile.model';
import { environment } from '../../../../environments/environment';
import { AuthService } from '../../services/auth.service';
import { PersonalDetailsService } from '../../services/personal-details.service';
@Component({
selector: 'app-left-sidebar',
......
import { Component } from '@angular/core';
import { BaseComponent } from '../../base/base.component';
import { PersonalDetailsService } from '../../services/personal-details.service';
import { takeUntil } from 'rxjs/operators';
import { UtilsService } from '../../../oneit/services/utils.service';
import { CareerProfileModel } from '../../models/career-profile.model';
import { BaseComponent } from '../../base/base.component';
import { PROFILE_TASKS } from '../../config/constants';
import { CareerProfileModel } from '../../models/career-profile.model';
import { PersonalDetailsService } from '../../services/personal-details.service';
@Component({
selector: 'app-profile-tasks',
......
// @CodeReview : A008 : imports to be in proper order (already informed to use typehero plugin, which do the same), do this on all pages in system
import { Component, OnInit } from '@angular/core';
import * as FileSaver from 'file-saver';
import { takeUntil } from 'rxjs/operators';
......@@ -17,9 +15,6 @@ import { HelperService } from '../../services/helper.service';
export class SummaryReportComponent extends BaseComponent implements OnInit {
showBody = false;
// @CodeReview : : Try to manage 'colorClasses' in html / scss (as style in "ts" is not good way),
// but considering compleity of this report, leave it if can't be.
colorClasses = {
'percent-yellow-b': {incompleteColor: '#e5e8eb', completeColor: '#fedd6f'}
};
......
......@@ -52,8 +52,9 @@
<div class="exp-row">
<i class="fa fa-bars" pReorderableRowHandle></i>
<!-- @CodeReview : A004 : break line, if it's going out of view (whenever possible) -->
<p-checkbox [binary]="true" [(ngModel)]="ILWorkExperience.IsSelected" name="EXP{{index}}" [label]="ILWorkExperience?.WorkExperience?.ActualJobTitle + ' - ' + ILWorkExperience?.WorkExperience?.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>
......
import { Component, OnInit, ViewChild } from '@angular/core';
import { BaseComponent } from '../../base/base.component';
import { IntroductionLetterModel } from '../../models/introduction-letter.model';
import { NgForm } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import * as FileSaver from 'file-saver';
import { takeUntil } from 'rxjs/operators';
import { UtilsService } from '../../../oneit/services/utils.service';
import { PersonalDetailsService } from '../../services/personal-details.service';
import { BaseComponent } from '../../base/base.component';
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';
import * as FileSaver from 'file-saver';
import { ILWorkExperienceModel } from '../../models/il-work-experience.model';
import { IntroductionLetterModel } from '../../models/introduction-letter.model';
import { HelperService } from '../../services/helper.service';
import { IntroLetterService } from '../../services/intro-letter.service';
import { PersonalDetailsService } from '../../services/personal-details.service';
import { ToasterService } from '../../services/toaster.service';
@Component({
......@@ -76,8 +76,8 @@ export class IntroLetterComponent extends BaseComponent implements OnInit {
getIntroLetter(download = false): void {
this.isLoading = true;
// @CodeReview : A004 : break line, if it's going out of view (whenever possible)
const sub = download ? this.introLetterService.downloadIntroLetter(this.introLetterId) : this.introLetterService.getIntroLetter(this.introLetterId, ['WorkExperiences.WorkExperience', 'Skills.Skill']);
const sub = download ? this.introLetterService.downloadIntroLetter(this.introLetterId) :
this.introLetterService.getIntroLetter(this.introLetterId, ['WorkExperiences.WorkExperience', 'Skills.Skill']);
sub
.pipe(takeUntil(this.componentInView))
.subscribe(response => {
......
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { McSharedModule } from '../mc-shared/mc-shared.module';
import { IntroLetterComponent } from './intro-letter/intro-letter.component';
import { IntroLettersRouting } from './intro-letters.routing';
import { IntroLettersComponent } from './intro-letters/intro-letters.component';
import { IntroLetterComponent } from './intro-letter/intro-letter.component';
import { McSharedModule } from '../mc-shared/mc-shared.module';
import { ListIntroLettersComponent } from './list-intro-letters/list-intro-letters.component';
@NgModule({
imports: [
......@@ -13,7 +13,7 @@ import { McSharedModule } from '../mc-shared/mc-shared.module';
IntroLettersRouting
],
declarations: [
IntroLettersComponent,
ListIntroLettersComponent,
IntroLetterComponent
]
})
......
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { IntroLettersComponent } from './intro-letters/intro-letters.component';
import { RouterModule, Routes } from '@angular/router';
import { IntroLetterComponent } from './intro-letter/intro-letter.component';
import { ListIntroLettersComponent } from './list-intro-letters/list-intro-letters.component';
const routes: Routes = [
{
path: '',
component: IntroLettersComponent
component: ListIntroLettersComponent
},
{
path: ':id',
......
import { Component, OnInit } from '@angular/core';
import { BaseComponent } from '../../base/base.component';
import { IntroLetterService } from '../../services/intro-letter.service';
import { takeUntil } from 'rxjs/operators';
import { IntroductionLetterModel } from '../../models/introduction-letter.model';
import { UtilsService } from '../../../oneit/services/utils.service';
import { BaseComponent } from '../../base/base.component';
import { IntroductionLetterModel } from '../../models/introduction-letter.model';
import { IntroLetterService } from '../../services/intro-letter.service';
@Component({
selector: 'app-intro-letters',
templateUrl: './intro-letters.component.html',
styleUrls: ['./intro-letters.component.scss']
templateUrl: './list-intro-letters.component.html',
styleUrls: ['./list-intro-letters.component.scss']
})
export class IntroLettersComponent extends BaseComponent implements OnInit {
export class ListIntroLettersComponent extends BaseComponent implements OnInit {
introLetters: IntroductionLetterModel[] = [];
// @CodeReview : G000 : Please give proper name to package (this seems : "list into letters"), please update relevant variables as well (if any).
constructor(
private introLetterService: IntroLetterService,
private utilService: UtilsService
......
import { Component, OnInit, ViewChild } from '@angular/core';
import { BaseComponent } from '../../../base/base.component';
import { ApplicantJobModel } from '../../../models/applicant-job.model';
import { JobService } from '../../../services/job.service';
import { NgForm } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { takeUntil } from 'rxjs/operators';
import { UtilsService } from '../../../../oneit/services/utils.service';
import { ActivatedRoute, Router } from '@angular/router';
import { NgForm } from '@angular/forms';
import { BaseComponent } from '../../../base/base.component';
import { ApplicantJobModel } from '../../../models/applicant-job.model';
import { CareerProfileModel } from '../../../models/career-profile.model';
import { HelperService } from '../../../services/helper.service';
import { ToasterService } from '../../../services/toaster.service';
import { JobService } from '../../../services/job.service';
import { PersonalDetailsService } from '../../../services/personal-details.service';
import { CareerProfileModel } from '../../../models/career-profile.model';
import { ToasterService } from '../../../services/toaster.service';
@Component({
selector: 'app-job',
......
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { JobsRouting } from './jobs.routing';
import { JobsComponent } from './jobs/jobs.component';
import { NgModule } from '@angular/core';
import { McSharedModule } from '../mc-shared/mc-shared.module';
import { JobDetailsComponent } from './job/job-details/job-details.component';
import { JobProfileComponent } from './job/job-profile/job-profile.component';
import { JobWorkHistoryComponent } from './job/job-work-history/job-work-history.component';
import { JobEducationComponent } from './job/job-education/job-education.component';
import { JobSkillsComponent } from './job/job-skills/job-skills.component';
import { JobProfileComponent } from './job/job-profile/job-profile.component';
import { JobRefereesComponent } from './job/job-referees/job-referees.component';
import { JobSkillsComponent } from './job/job-skills/job-skills.component';
import { JobWorkHistoryComponent } from './job/job-work-history/job-work-history.component';
import { JobsRouting } from './jobs.routing';
import { JobsComponent } from './jobs/jobs.component';
@NgModule({
imports: [
......
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { JobsComponent } from './jobs/jobs.component';
import { RouterModule, Routes } from '@angular/router';
import { JobDetailsComponent } from './job/job-details/job-details.component';
import { JobProfileComponent } from './job/job-profile/job-profile.component';
import { JobsComponent } from './jobs/jobs.component';
const routes: Routes = [
{
......
import { Component, OnInit } from '@angular/core';
import { BaseComponent } from '../../base/base.component';
import { JobService } from '../../services/job.service';
import { takeUntil } from 'rxjs/operators';
import { UtilsService } from '../../../oneit/services/utils.service';
import { BaseComponent } from '../../base/base.component';
import { ApplicantJobModel } from '../../models/applicant-job.model';
import { JobService } from '../../services/job.service';
@Component({
selector: 'app-jobs',
......
import { animate, style, transition, trigger } from '@angular/animations';
import { Component, OnInit } from '@angular/core';
import { MsgsService } from '../../../oneit/services/msgs.service';
import { takeUntil } from 'rxjs/operators';
import { MsgsService } from '../../../oneit/services/msgs.service';
import { BaseComponent } from '../../base/base.component';
import { ToasterService } from '../../services/toaster.service';
......
<div class="assessment-header">
<div class="header-logo" *ngIf="!isMobileView">
<img src="assets/my-career-web/images/MATCHD_LOGO.jpg" alt="">
</div>
<div class="header-actions">
<span class="auto-saved" *ngIf="autoSaveLabel">Auto saved {{autoSaveLabel}}</span>
<button [disabled]="isExiting" pButton label="Save & exit" (click)="exit.emit()" class="ui-button-info"></button>
</div>
</div>
import { Component, EventEmitter, Input, Output } from '@angular/core';
@Component({
selector: 'app-assessment-header',
templateUrl: './assessment-header.component.html',
styleUrls: ['./assessment-header.component.scss']
})
export class AssessmentHeaderComponent {
@Input() isMobileView = false;
@Input() isExiting = false;
@Input() autoSaveLabel = '1 min ago';
@Output() exit = new EventEmitter();
}
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ConfirmDialogModule } from 'primeng/confirmdialog';
import { TableModule } from 'primeng/table';
import { TooltipModule } from 'primeng/tooltip';
import { PrimeNGModules } from '../../utils/common.modules.import';
import { AssessmentService } from '../services/assessment.service';
import { IntroLetterService } from '../services/intro-letter.service';
import { JobService } from '../services/job.service';
import { PersonalDetailsService } from '../services/personal-details.service';
import { ToasterService } from '../services/toaster.service';
import { AssessmentHeaderComponent } from './assessment-header/assessment-header.component';
import { FormControlComponent } from './form-control/form-control.component';
import { GooglePlacesAutocompleteDirective } from './google-places-autocomplete.directive';
import { IconReplacerDirective } from './icon-replacer.directive';
import { OverlayComponent } from './overlay/overlay.component';
import { PersonalDetailsComponent } from './personal-details/personal-details.component';
import { TruncatePipe } from './truncate.pipe';
import { ConfirmDialogModule } from 'primeng/confirmdialog';
import { TooltipModule } from 'primeng/tooltip';
import { IntroLetterService } from '../services/intro-letter.service';
import { TableModule } from 'primeng/table';
import { IconReplacerDirective } from './icon-replacer.directive';
import { JobService } from '../services/job.service';
import { TemplatesComponent } from './templates/templates.component';
import { TruncatePipe } from './truncate.pipe';
const MODULES = [
ReactiveFormsModule,
......@@ -31,7 +32,8 @@ const COMPONENTS = [
FormControlComponent,
OverlayComponent,
PersonalDetailsComponent,
TemplatesComponent
TemplatesComponent,
AssessmentHeaderComponent
];
const DIRECTIVES = [
......
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms';
import { Router } from '@angular/router';
import { takeUntil } from 'rxjs/operators';
import { AppService } from '../../../app.service';
import { UtilsService } from '../../../oneit/services/utils.service';
import { BaseComponent } from '../../base/base.component';
import { CAREER_TABS } from '../../config/constants';
import { CareerProfileModel } from '../../models/career-profile.model';
import { HelperService } from '../../services/helper.service';
import { PersonalDetailsService } from '../../services/personal-details.service';
import { ToasterService } from '../../services/toaster.service';
import { Router } from '@angular/router';
import { UtilsService } from '../../../oneit/services/utils.service';
import { HelperService } from '../../services/helper.service';
import { CAREER_TABS } from '../../config/constants';
@Component({
selector: 'app-personal-details',
......
import { Component, EventEmitter, OnInit, Output } from '@angular/core';
import { BaseComponent } from '../../base/base.component';
import { CareerProfileModel } from '../../models/career-profile.model';
import { PersonalDetailsService } from '../../services/personal-details.service';
import { UtilsService } from '../../../oneit/services/utils.service';
import { takeUntil } from 'rxjs/operators';
import { environment } from '../../../../environments/environment';
import { SaveService } from '../../../oneit/services/save.service';
import { UtilsService } from '../../../oneit/services/utils.service';
import { BaseComponent } from '../../base/base.component';
import { CareerProfileModel } from '../../models/career-profile.model';
import { PersonalDetailsService } from '../../services/personal-details.service';
@Component({
selector: 'app-templates',
......@@ -51,11 +51,7 @@ export class TemplatesComponent extends BaseComponent implements OnInit {
|| t.Availability === this.tempalteStatus.INCLUDED_IN_PREMIUM;
t.ImgPath = this.apiBase + t.FullImageURI
});
// @CodeReview : A101 : Sorting can be done by util's method, please try to use that (if possible)
// this.utilsService.sort(this.careerProfile.Candidate.AllTempletes, ['SortOrder'], [1]);
this.careerProfile.Candidate.AllTempletes.sort((t1, t2) => t1.SortOrder - t2.SortOrder);
this.utilsService.sort(this.careerProfile.Candidate.AllTempletes, ['SortOrder'], [1]);
}
this.careerProfileLoaded.emit(this.careerProfile);
}, err => {
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
export class ApplicantJobModel extends BaseModel {
ObjectClass = CLASSES.ApplicantJob;
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
export class CandidateTemplateModel extends BaseModel {
ObjectClass = CLASSES.CandidateTemplate;
......
import { UserModel } from './user.model';
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
import { CandidateTemplateModel } from './candidate-template.model';
import { UserModel } from './user.model';
export class CandidateModel extends BaseModel {
ObjectClass = CLASSES.CANDIDATE;
......
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
import { CandidateModel } from './candidate.model';
import { CLASSES } from '../config/constants';
import { WorkExperienceModel } from './work-experience.model';
import { EducationModel } from './education.model';
import { CareerSkillModel } from './career-skill.model';
import { EducationModel } from './education.model';
import { RefereeModel } from './referee.model';
import { WorkExperienceModel } from './work-experience.model';
export class CareerProfileModel extends BaseModel {
ObjectClass = CLASSES.CAREER_PROFILE;
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
export class CareerSkillModel extends BaseModel {
ObjectClass = CLASSES.CAREER_SKILL;
......
import { QuestionModel } from './question.model';
import { BaseModel } from './base.model';
import { QuestionModel } from './question.model';
export class CultureElementModel extends BaseModel {
Description?: string;
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
export class EducationModel extends BaseModel {
ObjectClass = CLASSES.EDUCATION;
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
export class ILSkillModel extends BaseModel {
ObjectClass = CLASSES.ILSkill;
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
export class ILWorkExperienceModel extends BaseModel {
ObjectClass = CLASSES.ILWorkExperience;
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { ILWorkExperienceModel } from './il-work-experience.model';
import { BaseModel } from './base.model';
import { ILSkillModel } from './il-skill.model';
import { ILWorkExperienceModel } from './il-work-experience.model';
export class IntroductionLetterModel extends BaseModel {
ObjectClass = CLASSES.INTRO;
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
export class QuestionModel extends BaseModel {
Description: string;
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
export class RefereeModel extends BaseModel {
ObjectClass = CLASSES.REFEREE;
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
export class UserModel extends BaseModel {
ObjectClass = CLASSES.USER;
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
import { CultureElementModel } from './culture-element.model';
import { QuestionModel } from './question.model';
......
import { BaseModel } from './base.model';
import { CLASSES } from '../config/constants';
import { BaseModel } from './base.model';
import { QuestionModel } from './question.model';
export class WorkStyleQuestionModel extends BaseModel {
......
......@@ -4,13 +4,13 @@ import { MessageService } from 'primeng/api';
import { HomeGuard } from './guards/home.guard';
import { PublicGuard } from './guards/public.guard';
import { OneITModule } from '../oneit/oneit.module';
import { WrapperComponent } from './layouts/wrapper/wrapper.component';
import { McSharedModule } from './mc-shared/mc-shared.module';
import { MyCareerWebRouting } from './my-career-web.routing';
import { AuthService } from './services/auth.service';
import { WelcomeComponent } from './welcome/welcome.component';
import { OneITModule } from '../oneit/oneit.module';
import { HelperService } from './services/helper.service';
import { WelcomeComponent } from './welcome/welcome.component';
@NgModule({
imports: [
......
import { Injectable } from '@angular/core';
import { UtilsService } from '../../oneit/services/utils.service';
import { SearchService } from '../../oneit/services/search.service';
import { Observable } from 'rxjs';
import { SERVICES } from '../config/constants';
import { SaveService } from '../../oneit/services/save.service';
import { SearchService } from '../../oneit/services/search.service';
import { UtilsService } from '../../oneit/services/utils.service';
import { SERVICES } from '../config/constants';
import { IntroductionLetterModel } from '../models/introduction-letter.model';
@Injectable()
......
......@@ -13,6 +13,7 @@
@import "components/profile-builder";
@import "components/mc-accordion";
@import "components/assessment";
@import "primeng/radio";
@import "primeng/checkbox";
......
.assessment-wrapper {
background: #FAFCFD;
min-height: 100vh;
.assessment {
&-header {
height: 76px;
background: $darkColor;
display: flex;
justify-content: space-between;
align-items: center;
.header-logo {
width: 260px;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
height: 100%;
img {
width: 164px;
height: 32px;
}
}
.header-actions {
padding: 0 24px;
font-weight: 600;
.auto-saved {
color: #FFFFFF;
font-family: $bodyFont;
font-size: 14px;
}
button {
margin-left: 24px;
white-space: nowrap;
}
}
}
&-body {
margin-top: 32px;
&-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 8px;
.assessment-heading {
color: $darkColor;
font-family: $headingFont;
font-size: 24px;
font-weight: bold;
}
.assessment-estimation {
color: $darkColor;
font-family: $bodyFont;
font-size: 14px;
.fa {
font-size: 16px;
color: $primaryColor;
margin-right: 8px;
}
}
}
&-description {
color: $darkColor;
font-family: $bodyFont;
font-size: 18px;
}
&-question-wrapper {
margin-top: 32px;
position: relative;
.question-completed {
color: $darkColor;
font-family: $bodyFont;
font-size: 18px;
position: absolute;
right: 24px;
top: 24px;
}
.question {
&-title, &-completed, &-tag {
color: $darkColor;
font-family: $bodyFont;
font-size: 18px;
}
&-title {
margin-bottom: 32px;
}
&-tag {
color: $white;
text-align: center;
font-weight: 600;
background: $primaryColor;
padding: 12px;
margin-bottom: 56px;
text-transform: uppercase;
}
&-completed {
position: absolute;
right: 24px;
top: 24px;
}
}
.answer-wrapper {
display: flex;
justify-content: space-between;
align-items: center;
span {
color: $darkColor;
font-family: $bodyFont;
font-size: 18px;
width: 250px;
max-width: 250px;
}
.extreme-label-left {
margin-right: 10px;
}
.extreme-label-right {
margin-left: 10px;
text-align: right;
}
.answer-options {
display: flex;
align-items: center;
justify-content: center;
flex: 1;
.option-value {
width: 40px;
height: 40px;
border: 1px solid $primaryColor;
border-radius: 3px;
display: flex;
align-items: center;
justify-content: center;
transition: .3s;
font-weight: 600;
color: $darkColor;
cursor: pointer;
&:not(:last-child) {
margin-right: 23px;
}
&:hover, &.selected {
background: $primaryColor;
color: $white;
}
}
}
}
}
}
}
}
@media only screen and (max-width: 1024px) {
.header-actions {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 12px;
width: 100%;
button {
white-space: nowrap;
}
}
.assessment-body {
margin-top: 16px !important;
&-header {
padding: 0 4px;
margin-bottom: 16px !important;
.assessment-heading {
white-space: nowrap;
}
.assessment-estimation {
margin-left: 32px;
text-align: center;
position: relative;
.fa {
position: absolute;
left: -16px;
}
}
}
&-description {
text-align: center;
}
&-question-wrapper {
margin-top: 24px !important;
.question-title {
margin-bottom: 16px !important;
width: 80% !important;
}
.question-completed {
position: absolute;
right: 0 !important;
top: 6px !important;
font-weight: bold;
}
.question-tag {
margin-bottom: 24px !important;
text-transform: uppercase;
}
.answer-wrapper {
position: relative;
display: block !important;
.answer-option-labels {
display: flex;
justify-content: space-between;
.extreme-label-right, .extreme-label-left {
font-size: 12px !important;
font-family: $bodyFont;
flex: 0.8;
max-width: 140px;
}
}
.answer-options {
justify-content: space-between;
width: 100%;
.option-value {
width: unset;
height: unset;
border: none !important;
margin: 0 !important;
&:hover {
background: transparent;
}
}
}
}
}
}
}
......@@ -48,6 +48,7 @@
"multiline",
"singleline",
"doc"
]
],
"ordered-imports": true
}
}
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