Commit 151fa4ed by Harsh Shah

Applicant portal - initial commit

parent c92fbc0a
...@@ -11,6 +11,8 @@ import { AppService } from './app.service'; ...@@ -11,6 +11,8 @@ import { AppService } from './app.service';
import { AdminIframePageComponent } from './components/admin-portal/admin-iframe-page/admin-iframe-page.component'; import { AdminIframePageComponent } from './components/admin-portal/admin-iframe-page/admin-iframe-page.component';
import { AdminPortalLayoutComponent } from './components/admin-portal/admin-portal-layout/admin-portal-layout.component'; import { AdminPortalLayoutComponent } from './components/admin-portal/admin-portal-layout/admin-portal-layout.component';
import { AdminPortalLayoutService } from './components/admin-portal/admin-portal-layout/admin-portal-layout.service'; import { AdminPortalLayoutService } from './components/admin-portal/admin-portal-layout/admin-portal-layout.service';
import { ApplicantPortalLayoutComponent } from './components/applicant-portal/applicant-portal-layout/applicant-portal-layout.component';
import { ApplicantPortalLayoutService } from './components/applicant-portal/applicant-portal-layout/applicant-portal-layout.service';
import { EditMessageTemplateComponent } from './components/edit-message-template/edit-message-template.component'; import { EditMessageTemplateComponent } from './components/edit-message-template/edit-message-template.component';
import { EditMessageTemplateService } from './components/edit-message-template/edit-message-template.service'; import { EditMessageTemplateService } from './components/edit-message-template/edit-message-template.service';
import { EditWorkflowTemplateComponent } from './components/edit-workflow-template/edit-workflow-template.component'; import { EditWorkflowTemplateComponent } from './components/edit-workflow-template/edit-workflow-template.component';
...@@ -41,12 +43,14 @@ import { OneITModule } from './oneit/oneit.module'; ...@@ -41,12 +43,14 @@ import { OneITModule } from './oneit/oneit.module';
ListWorkFlowsComponent, ListWorkFlowsComponent,
EditWorkflowTemplateComponent, EditWorkflowTemplateComponent,
SelectTwoComponent, SelectTwoComponent,
ErrorMessageComponent ErrorMessageComponent,
ApplicantPortalLayoutComponent
], ],
providers: [ providers: [
FormBuilder, FormBuilder,
ConfirmationService, ConfirmationService,
AdminPortalLayoutService, AdminPortalLayoutService,
ApplicantPortalLayoutService,
AppService, AppService,
EditMessageTemplateService, EditMessageTemplateService,
EditWorkflowTemplateService EditWorkflowTemplateService
......
...@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core'; ...@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router'; import { RouterModule, Routes } from '@angular/router';
import { AdminIframePageComponent } from './components/admin-portal/admin-iframe-page/admin-iframe-page.component'; import { AdminIframePageComponent } from './components/admin-portal/admin-iframe-page/admin-iframe-page.component';
import { AdminPortalLayoutComponent } from './components/admin-portal/admin-portal-layout/admin-portal-layout.component'; import { AdminPortalLayoutComponent } from './components/admin-portal/admin-portal-layout/admin-portal-layout.component';
import { ApplicantPortalLayoutComponent } from './components/applicant-portal/applicant-portal-layout/applicant-portal-layout.component';
import { EditMessageTemplateComponent } from './components/edit-message-template/edit-message-template.component'; import { EditMessageTemplateComponent } from './components/edit-message-template/edit-message-template.component';
import { EditWorkflowTemplateComponent } from './components/edit-workflow-template/edit-workflow-template.component'; import { EditWorkflowTemplateComponent } from './components/edit-workflow-template/edit-workflow-template.component';
import { ListMessageTemplateComponent } from './components/list-message-template/list-message-template.component'; import { ListMessageTemplateComponent } from './components/list-message-template/list-message-template.component';
...@@ -91,6 +92,21 @@ export const routes: Routes = [ ...@@ -91,6 +92,21 @@ export const routes: Routes = [
canActivate: [AuthGuard] canActivate: [AuthGuard]
} }
] ]
},
{
path: 'applicant/:job/:key',
component: ApplicantPortalLayoutComponent,
canActivate: [AuthGuard],
data: {
"privs" : ["TL_AccessApplicantPortal"],
"redirectPage" : "ApplicantPortal-ApplyJob.htm"
},
children: [
{
path: 'home',
component: HomeComponent
}
]
} }
]; ];
......
...@@ -93,6 +93,7 @@ ...@@ -93,6 +93,7 @@
</ul> </ul>
</div> </div>
</div> </div>
<p-growl [value]="successMsgs" [life]="3000"></p-growl>
<router-outlet (activate)="onRouteUpdate()"></router-outlet> <router-outlet (activate)="onRouteUpdate()"></router-outlet>
</div> </div>
</div> </div>
......
...@@ -14,8 +14,7 @@ import { AdminPortalLayoutService } from './admin-portal-layout.service'; ...@@ -14,8 +14,7 @@ import { AdminPortalLayoutService } from './admin-portal-layout.service';
@Component({ @Component({
selector: 'app-admin-portal-layout', selector: 'app-admin-portal-layout',
templateUrl: './admin-portal-layout.component.html', templateUrl: './admin-portal-layout.component.html'
styleUrls: ['./admin-portal-layout.component.css']
}) })
export class AdminPortalLayoutComponent implements OnInit, OnDestroy { export class AdminPortalLayoutComponent implements OnInit, OnDestroy {
......
<div class="container">
<div class="row">
<p-growl [value]="successMsgs" [life]="3000"></p-growl>
<router-outlet (activate)="onRouteUpdate()"></router-outlet>
<p-progressSpinner animationDuration="1s" *ngIf="showLoader"></p-progressSpinner>
</div>
</div>
<footer class="power-footer">
<div class="power-by">
Powered by
</div>
<div class="footer-site-logo">
<a href="https://www.matchd.com/candidates-about-matchd/">
<img src="assets/images/logo.png">
</a>
</div>
<div class="footer-link text-center">
<ul>
<li><a href="https://www.matchd.com/candidates-about-matchd/">&copy; {{ year }} Matchd</a></li>
<li><a href="https://www.matchd.com/privacy/" target="_blank">Privacy Policy</a></li>
</ul>
</div>
</footer>
\ No newline at end of file
import { Message } from '@angular/compiler/src/i18n/i18n_ast';
import { Component, OnDestroy, OnInit } from '@angular/core';
import { Title } from '@angular/platform-browser';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { Subscription } from 'rxjs';
import { MsgsService } from '../../../oneit/services/msgs.service';
import { UserService } from '../../../oneit/services/user.service';
import { UtilsService } from '../../../oneit/services/utils.service';
import { ApplicantPortalLayoutService } from './applicant-portal-layout.service';
@Component({
selector: 'app-applicant-portal-layout',
templateUrl: './applicant-portal-layout.component.html'
})
export class ApplicantPortalLayoutComponent implements OnInit, OnDestroy {
showLoader: boolean;
subscriptions: Array<Subscription> = [];
successMsgs: Message[] = [];
pageTitle: string;
jobId: string;
key: string;
year = new Date().getFullYear();
constructor(
private msgsService: MsgsService,
private userService: UserService,
private utilsService: UtilsService,
private titleService: Title,
private router: Router,
private activatedRoute: ActivatedRoute,
private applicantPortalLayoutService: ApplicantPortalLayoutService,
) { }
ngOnInit() {
this.subscriptions.push(
this.msgsService.successMsgsUpdated.subscribe(
data => {
this.successMsgs = data;
}
)
);
this.subscriptions.push(this.activatedRoute.params
.subscribe(
(params: Params) => {
if (params.job) {
this.jobId = params.job;
}
if (params.key) {
this.key = params.key;
}
this.loadData();
}
)
);
this.titleService.setTitle('Matchd');
this.subscribeToUserData();
}
onRouteUpdate() {
this.loadData();
}
loadData() {
this.userService.reloadUserDetails();
this.msgsService.clearErrorMessages();
this.applicantPortalLayoutService.reloadApplicantUserDetails(this.jobId, this.key);
}
subscribeToUserData() {
this.subscriptions.push(this.applicantPortalLayoutService.userDataUpdated.subscribe(
data => {
if(data.PageTitle) {
this.titleService.setTitle(data.PageTitle);
} else {
this.titleService.setTitle('Matchd');
}
},
error => {
this.utilsService.handleError(error);
}
));
}
ngOnDestroy() {
this.utilsService.unsubscribeSubscriptions(this.subscriptions);
}
}
\ No newline at end of file
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
import { environment } from '../../../../environments/environment';
import { ApiService } from '../../../oneit/services/api.service';
import { UtilsService } from '../../../oneit/services/utils.service';
@Injectable()
export class ApplicantPortalLayoutService {
userDataUpdated = new Subject<any>();
userData: any;
constructor(
private apiService: ApiService,
private utilsService: UtilsService
) {
}
reloadApplicantUserDetails (job, key) {
if(job && key) {
let params = {
environment: environment.envName,
Job: job,
Key: key
}
this.apiService.post(`svc/ApplicantUserDetails`, params).subscribe(
(data) => {
if (this.utilsService.isSuccessfulResponse(data)) {
this.userData = data;
this.userDataUpdated.next(data);
}
});
}
}
}
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