Commit 9b4b9581 by Pankaj

CodeReview : VQODE : Sprint 1 : Code is well managed for different modules but…

CodeReview : VQODE : Sprint 1 : Code is well managed for different modules but still code can be reused and imports to be arranged properly
parent 4fed1e5b
...@@ -166,6 +166,7 @@ export const routes: Routes = [ ...@@ -166,6 +166,7 @@ export const routes: Routes = [
redirectPage: 'editor/index.jsp' redirectPage: 'editor/index.jsp'
}, },
children: [ children: [
// @CodeReview : G000 : accessible for MC_Admin only
{ {
path: 'my-career-users', path: 'my-career-users',
component: MyCareerUsersComponent component: MyCareerUsersComponent
......
@import "~styles/my-career-styles/variables"; @import "~styles/my-career-styles/variables";
/* @CodeReview : G002 : Rather than creating same css again, please reuse it, (duplicate css classes in here and login.component.scss & register.component.scss, reset-password.component.scss)
*/
.bck-link { .bck-link {
position: absolute; position: absolute;
color: #12A8DE; color: #12A8DE;
......
...@@ -2,10 +2,10 @@ import { Component, ViewChild } from '@angular/core'; ...@@ -2,10 +2,10 @@ 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 { BaseComponent } from '../../base/base.component'; import { BaseComponent } from '../../base/base.component';
import { EXTERNAL_LINKS } from '../../config/constants';
import { AuthService } from '../../services/auth.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'; import { ToasterService } from '../../services/toaster.service';
import { EXTERNAL_LINKS } from '../../config/constants';
@Component({ @Component({
selector: 'app-forgot-password', selector: 'app-forgot-password',
......
...@@ -5,9 +5,9 @@ import { takeUntil } from 'rxjs/operators'; ...@@ -5,9 +5,9 @@ import { takeUntil } from 'rxjs/operators';
import { environment } from '../../../../../environments/environment'; import { environment } from '../../../../../environments/environment';
import { AppService } from '../../../../app.service'; import { AppService } from '../../../../app.service';
import { BaseComponent } from '../../base/base.component'; import { BaseComponent } from '../../base/base.component';
import { EXTERNAL_LINKS } from '../../config/constants';
import { AuthService } from '../../services/auth.service'; import { AuthService } from '../../services/auth.service';
import { HelperService } from '../../services/helper.service'; import { HelperService } from '../../services/helper.service';
import { EXTERNAL_LINKS } from '../../config/constants';
@Component({ @Component({
selector: 'app-login', selector: 'app-login',
...@@ -61,6 +61,8 @@ export class LoginComponent extends BaseComponent { ...@@ -61,6 +61,8 @@ export class LoginComponent extends BaseComponent {
environment: environment.envName, environment: environment.envName,
nextPage: window.location.href.split('/#/')[0] + '/#/my-career-web/dashboard/home' nextPage: window.location.href.split('/#/')[0] + '/#/my-career-web/dashboard/home'
}; };
/* @CodeReview : : As all API names defined in constatns.ts, better to have these API names also to be defined there
*/
const svc = type === 'linkedIn' ? 'LoginWithLinkedIn' : 'LoginWithGoogle'; const svc = type === 'linkedIn' ? 'LoginWithLinkedIn' : 'LoginWithGoogle';
this.isLoading = true; this.isLoading = true;
this.aps.socicalMediaLogin(svc, params) this.aps.socicalMediaLogin(svc, params)
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
<i class="fa" [ngClass]="showPassword ? 'fa-eye' : 'fa-eye-slash'" (click)="showPassword = !showPassword"></i> <i class="fa" [ngClass]="showPassword ? 'fa-eye' : 'fa-eye-slash'" (click)="showPassword = !showPassword"></i>
</app-form-control> </app-form-control>
</div> </div>
<div class="was-referred form-group"> <div class="was-referred form-group">
<span>Were you referred by another member?</span> <span>Were you referred by another member?</span>
<div class="mt-sm-top" style="white-space: nowrap;"> <div class="mt-sm-top" style="white-space: nowrap;">
......
...@@ -48,6 +48,8 @@ export class RegisterComponent extends BaseComponent implements OnInit { ...@@ -48,6 +48,8 @@ export class RegisterComponent extends BaseComponent implements OnInit {
if (this.form.invalid) { if (this.form.invalid) {
return this.hs.validateAllFormFields(this.form); return this.hs.validateAllFormFields(this.form);
} }
// @CodeReview : G002 : Have to grab firstname & lastname from email (part before '@')
this.registerForm.firstname = 'AA'; this.registerForm.firstname = 'AA';
this.registerForm.lastname = 'BB'; this.registerForm.lastname = 'BB';
this.registerForm.email = this.registerForm.username; this.registerForm.email = this.registerForm.username;
......
...@@ -22,14 +22,16 @@ ...@@ -22,14 +22,16 @@
<div class="col-md-6 form-group"> <div class="col-md-6 form-group">
<label>Email</label> <label>Email</label>
<app-form-control> <app-form-control>
<input type="email" email="" class="form-control" placeholder="Email Address" required name="Email" [(ngModel)]="careerProfile.Candidate.User.Email"> <input type="email" email="" class="form-control" placeholder="Email Address" required name="Email"
[(ngModel)]="careerProfile.Candidate.User.Email">
</app-form-control> </app-form-control>
</div> </div>
<div class="col-md-6 form-group"> <div class="col-md-6 form-group">
<label>Mobile</label> <label>Mobile</label>
<app-form-control> <app-form-control>
<p-inputMask (focusout)="checkMobilePattern()" slotChar="-" [unmask]="true" [autoClear]="true" mask="9999 999 9999" styleClass="form-control" placeholder="Mobile No" [(ngModel)]="careerProfile.Mobile" name="Mobile"> <p-inputMask (focusout)="checkMobilePattern()" slotChar="-" [unmask]="true" [autoClear]="true" mask="9999 999 9999"
styleClass="form-control" placeholder="Mobile No" [(ngModel)]="careerProfile.Mobile" name="Mobile">
</p-inputMask> </p-inputMask>
</app-form-control> </app-form-control>
<div class="mobile-no-msg" *ngIf="!careerProfile.Mobile || careerProfile.Mobile.length < 11"> <div class="mobile-no-msg" *ngIf="!careerProfile.Mobile || careerProfile.Mobile.length < 11">
...@@ -40,7 +42,8 @@ ...@@ -40,7 +42,8 @@
<div class="col-md-12 form-group"> <div class="col-md-12 form-group">
<label>Address</label> <label>Address</label>
<app-form-control> <app-form-control>
<input type="text" appGooglePlacesAutocomplete (change)="changedAddress()" (addressSelected)="updateAddress($event)" class="form-control" placeholder="Address" required [(ngModel)]="careerProfile.GoogleAddress" name="Address"> <input type="text" appGooglePlacesAutocomplete (change)="changedAddress()" (addressSelected)="updateAddress($event)"
class="form-control" placeholder="Address" required [(ngModel)]="careerProfile.GoogleAddress" name="Address">
</app-form-control> </app-form-control>
</div> </div>
...@@ -54,7 +57,8 @@ ...@@ -54,7 +57,8 @@
<div class="col-md-6 form-group"> <div class="col-md-6 form-group">
<label>Occupation Preference</label> <label>Occupation Preference</label>
<p-autoComplete placeholder="Occupation Preference" (completeMethod)="getJobTitles($event)" [forceSelection]="true" field="JobTitle" [suggestions]="jobTitles" name="OccupationPreference" [(ngModel)]="careerProfile.Candidate.OccupationPreference" dataKey="ObjectID"> <p-autoComplete placeholder="Occupation Preference" (completeMethod)="getJobTitles($event)" [forceSelection]="true" field="JobTitle"
[suggestions]="jobTitles" name="OccupationPreference" [(ngModel)]="careerProfile.Candidate.OccupationPreference" dataKey="ObjectID">
</p-autoComplete> </p-autoComplete>
</div> </div>
...@@ -63,7 +67,8 @@ ...@@ -63,7 +67,8 @@
<div class="row"> <div class="row">
<div class="col-sm-12" *ngIf="isLoadingPreferences"><i class="pi pi-spin pi-spinner"></i></div> <div class="col-sm-12" *ngIf="isLoadingPreferences"><i class="pi pi-spin pi-spinner"></i></div>
<div class="col-sm-6" *ngFor="let preference of employmentPreferences; let i = index;"> <div class="col-sm-6" *ngFor="let preference of employmentPreferences; let i = index;">
<p-checkbox [label]="preference.Description" [value]="preference.Value" [(ngModel)]="careerProfile.Candidate.EmploymentPreference" name="pref-{{i}}"> <p-checkbox [label]="preference.Description" [value]="preference.Value" [(ngModel)]="careerProfile.Candidate.EmploymentPreference"
name="pref-{{i}}">
</p-checkbox> </p-checkbox>
</div> </div>
</div> </div>
...@@ -72,7 +77,9 @@ ...@@ -72,7 +77,9 @@
<div class="col-md-6 form-group"> <div class="col-md-6 form-group">
<label>Employment Status</label> <label>Employment Status</label>
<p-dropdown placeholder="Employment Status" [options]="employmentStatuses" [dropdownIcon]="isLoadingStatuses ? 'pi pi-spin pi-spinner' : 'pi pi-chevron-down'" optionLabel="Description" name="EmploymentStatus" [(ngModel)]="careerProfile.Candidate.EmploymentStatus" dataKey="Value"> <p-dropdown placeholder="Employment Status" [options]="employmentStatuses"
[dropdownIcon]="isLoadingStatuses ? 'pi pi-spin pi-spinner' : 'pi pi-chevron-down'"
optionLabel="Description" name="EmploymentStatus" [(ngModel)]="careerProfile.Candidate.EmploymentStatus" dataKey="Value">
</p-dropdown> </p-dropdown>
</div> </div>
...@@ -87,16 +94,19 @@ ...@@ -87,16 +94,19 @@
</div> </div>
<div class="col-md-6 mt-4 d-flex justify-content-center"> <div class="col-md-6 mt-4 d-flex justify-content-center">
<button type="button" pButton label="Connect With Google" class="ui-button-google" (click)="connectWithSocial('GOOGLE')" *ngIf="!careerProfile.IsGoogleConnected"></button> <button type="button" pButton label="Connect With Google" class="ui-button-google" (click)="connectWithSocial('GOOGLE')"
*ngIf="!careerProfile.IsGoogleConnected"></button>
</div> </div>
<div class="col-md-6 mt-4 d-flex justify-content-center"> <div class="col-md-6 mt-4 d-flex justify-content-center">
<button type="button" pButton label="Connect With LinkedIn" class="ui-button-facebook" (click)="connectWithSocial('LINKEDIN')" *ngIf="!careerProfile.IsLinkedInConnected"></button> <button type="button" pButton label="Connect With LinkedIn" class="ui-button-facebook" (click)="connectWithSocial('LINKEDIN')"
*ngIf="!careerProfile.IsLinkedInConnected"></button>
</div> </div>
<div class="col-md-12 d-flex justify-content-end mt-5"> <div class="col-md-12 d-flex justify-content-end mt-5">
<button (click)="updateProfile()" pButton [icon]="isSaving ? 'pi pi-spin pi-spinner' : 'pi pi-save'" label="Update Information" class="ui-button-info update-info" [disabled]="isLoading || isSaving"> <button (click)="updateProfile()" pButton [icon]="isSaving ? 'pi pi-spin pi-spinner' : 'pi pi-save'" label="Update Information"
class="ui-button-info update-info" [disabled]="isLoading || isSaving">
</button> </button>
</div> </div>
</form> </form>
......
import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core'; import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
import { BaseComponent } from '../../base/base.component';
import { PersonalDetailsService } from '../../services/personal-details.service';
import { takeUntil } from 'rxjs/operators';
import { HelperService } from '../../services/helper.service';
import { CareerProfileModel } from '../../models/career-profile.model';
import { UtilsService } from '../../../../oneit/services/utils.service';
import { NgForm } from '@angular/forms'; import { NgForm } from '@angular/forms';
import { ToasterService } from '../../services/toaster.service'; import { takeUntil } from 'rxjs/operators';
import { environment } from '../../../../../environments/environment'; import { environment } from '../../../../../environments/environment';
import { AppService } from '../../../../app.service'; import { AppService } from '../../../../app.service';
import { UtilsService } from '../../../../oneit/services/utils.service';
import { BaseComponent } from '../../base/base.component';
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';
@Component({ @Component({
selector: 'app-personal-details', selector: 'app-personal-details',
...@@ -30,10 +30,8 @@ export class PersonalDetailsComponent extends BaseComponent implements OnInit { ...@@ -30,10 +30,8 @@ export class PersonalDetailsComponent extends BaseComponent implements OnInit {
constructor( constructor(
private ps: PersonalDetailsService, private ps: PersonalDetailsService,
private us: UtilsService,
private ts: ToasterService, private ts: ToasterService,
private hs: HelperService, private hs: HelperService,
private cdr: ChangeDetectorRef,
private aps: AppService, private aps: AppService,
) { ) {
super(); super();
...@@ -135,6 +133,7 @@ export class PersonalDetailsComponent extends BaseComponent implements OnInit { ...@@ -135,6 +133,7 @@ export class PersonalDetailsComponent extends BaseComponent implements OnInit {
this.careerProfile.GoogleAddress = $event.formatted; this.careerProfile.GoogleAddress = $event.formatted;
} }
// @CodeReview : G002 : can reuse alreayd created method
connectWithSocial(type): void { connectWithSocial(type): void {
const params = { const params = {
environment: environment.envName, environment: environment.envName,
......
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 { AutoCompleteModule } from 'primeng/autocomplete';
import { ButtonModule } from 'primeng/button';
import { CheckboxModule } from 'primeng/checkbox'; import { CheckboxModule } from 'primeng/checkbox';
import { DialogModule } from 'primeng/dialog';
import { DropdownModule } from 'primeng/dropdown';
import { InputMaskModule } from 'primeng/inputmask';
import { InputSwitchModule } from 'primeng/inputswitch';
import { ProgressBarModule } from 'primeng/progressbar';
import { RadioButtonModule } from 'primeng/radiobutton'; import { RadioButtonModule } from 'primeng/radiobutton';
import { ToastModule } from 'primeng/toast'; import { ToastModule } from 'primeng/toast';
import { AssessmentService } from '../services/assessment.service';
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 { FormControlComponent } from './form-control/form-control.component'; import { FormControlComponent } from './form-control/form-control.component';
import { OverlayComponent } from './overlay/overlay.component';
import { DropdownModule } from 'primeng/dropdown';
import { AutoCompleteModule } from 'primeng/autocomplete';
import { PersonalDetailsService } from '../services/personal-details.service';
import { InputSwitchModule } from 'primeng/inputswitch';
import { ButtonModule } from 'primeng/button';
import { GooglePlacesAutocompleteDirective } from './google-places-autocomplete.directive'; import { GooglePlacesAutocompleteDirective } from './google-places-autocomplete.directive';
import { InputMaskModule } from 'primeng/inputmask'; import { OverlayComponent } from './overlay/overlay.component';
import { ProgressBarModule } from 'primeng/progressbar';
import { AssessmentService } from '../services/assessment.service';
import { TruncatePipe } from './truncate.pipe'; import { TruncatePipe } from './truncate.pipe';
import { DialogModule } from 'primeng/dialog';
import { TabViewModule } from 'primeng/primeng'; import { TabViewModule } from 'primeng/primeng';
const MODULES = [ const MODULES = [
......
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
<button pButton type="button" label="Save" icon="ui-icon-save" (click)="saveUser(false)"></button> <button pButton type="button" label="Save" icon="ui-icon-save" (click)="saveUser(false)"></button>
</div> </div>
<div class="ui-toolbar-group-right"> <div class="ui-toolbar-group-right">
<button pButton type="button" icon="ui-icon-cancel" label="Cancel" [routerLink]="['/my-career/my-career-users']" class="secondary-btn"></button> <button pButton type="button" icon="ui-icon-cancel" label="Cancel" [routerLink]="['/my-career/my-career-users']"
class="secondary-btn"></button>
</div> </div>
</p-toolbar> </p-toolbar>
</div> </div>
...@@ -48,7 +49,8 @@ ...@@ -48,7 +49,8 @@
</div> </div>
<div class="ui-g-12 ui-md-3" *ngIf="careerUser.Candidate.ReferredBy"> <div class="ui-g-12 ui-md-3" *ngIf="careerUser.Candidate.ReferredBy">
<p-button label="Remove Referred By" (onClick)="removeReferredBy()" icon="ui-icon-delete"></p-button> <p-button label="Remove Referred By" (onClick)="removeReferredBy()" icon="ui-icon-delete"></p-button>
<a [routerLink]="['/my-career/view-career-user', careerUser.Candidate.ReferredBy.ObjectID]" class="data-link" style="">{{user?.Candidate?.ReferredBy?.Name}}</a> <a [routerLink]="['/my-career/view-career-user', careerUser.Candidate.ReferredBy.ObjectID]" class="data-link" style="">
{{user?.Candidate?.ReferredBy?.Name}}</a>
</div> </div>
</div> </div>
<div class="ui-g"> <div class="ui-g">
......
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