Commit e2ead23e by Muhammad Usman

@CodeReview fixes

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