first commit

This commit is contained in:
Dhanraj
2024-09-22 10:21:52 +05:30
parent 9c6c3abc32
commit bd5119fc3c
697 changed files with 112184 additions and 10841 deletions

View File

@ -0,0 +1,67 @@
<div class="container mt-4">
<h2 class="mb-4">Detail Info</h2>
<div *ngIf="rowData" class="card">
<div class="card-body">
<h5 class="-title">Candidate Information</h5>
<!-- Display the labels based on their corresponding inputcaptionX values -->
<!-- Add the remaining fields here using the same pattern -->
<p class="card-text"><strong>ID:</strong> {{ rowData.id || "-NA-"}}</p>
<p class="card-text"><strong>Conference Code:</strong> {{ rowData.conferencecode || "-NA-"}}</p>
<p class="card-text"><strong>Conference Year:</strong> {{ rowData.conferenceyear || "-NA-"}}</p>
<p class="card-text"><strong>Bank Name:</strong> {{ rowData.bankname || "-NA-"}}</p>
<p class="card-text"><strong>Remote IP:</strong> {{ rowData.remoteip || "-NA-"}}</p>
<p class="card-text"><strong>Registration Number:</strong> {{ rowData.regno || "-NA-"}}</p>
<p class="card-text"><strong>Candidate Name:</strong> {{ rowData.candidatename || "-NA-"}}</p>
<p class="card-text"><strong>Name in Receipt:</strong> {{ rowData.nameinreceipt || "-NA-"}}</p>
<p class="card-text"><strong>Address 1:</strong> {{ rowData.address1 || "-NA-"}}</p>
<p class="card-text"><strong>Address 2:</strong> {{ rowData.address2 || "-NA-"}}</p>
<p class="card-text"><strong>Country:</strong> {{ rowData.country || "-NA-"}}</p>
<p class="card-text"><strong>Pincode:</strong> {{ rowData.pincode || "-NA-"}}</p>
<p class="card-text"><strong>Phone:</strong> {{ rowData.phone || "-NA-"}}</p>
<p class="card-text"><strong>Mobile:</strong> {{ rowData.mobile || "-NA-"}}</p>
<p class="card-text"><strong>Email:</strong> {{ rowData.email || "-NA-"}}</p>
<p class="card-text"><strong>Food Type:</strong> {{ rowData.foodtype || "-NA-"}}</p>
<p class="card-text"><strong>Participant Type:</strong> {{ rowData.participanttype || "-NA-"}}</p>
<p class="card-text"><strong>Practice Type:</strong> {{ rowData.practicetype || "-NA-"}}</p>
<p class="card-text"><strong>Accompany Members:</strong> {{ rowData.accompanymembers || "-NA-"}}</p>
<p class="card-text"><strong>External or CMC Staff: </strong>: {{ rowData.inputvalue5 || "-NA-"}}</p>
<p class="card-text"><strong>Payment Amount:</strong> {{ rowData.paymentamount || "-NA-"}}</p>
<p class="card-text"><strong>Has GST:</strong> {{ rowData.hasgst || "-NA-"}}</p>
<p class="card-text"><strong>GST Number:</strong> {{ rowData.gstnumber || "-NA-"}}</p>
<p class="card-text"><strong>GST Mobile Number:</strong> {{ rowData.gstmobileno || "-NA-"}}</p>
<p class="card-text"><strong>GST Email ID:</strong> {{ rowData.gstemailid || "-NA-"}}</p>
<p class="card-text"><strong>To Wards:</strong> {{ rowData.toWards || "-NA-"}}</p>
<p class="card-text"><strong>Allow 80G:</strong> {{ rowData.allow80G || "-NA-"}}</p>
<p class="card-text"><strong>Pan Card Number:</strong> {{ rowData.panCardNo || "-NA-"}}</p>
<p class="card-text"><strong>GST Registration:</strong> {{ rowData.gstreg || "-NA-"}}</p>
<!-- Add any additional fields as needed -->
<p class="card-text"><strong>CMC MISSION:</strong> {{ rowData.city || "-NA-"}}</p>
<p class="card-text"><strong>MISSION ID:</strong> {{ rowData.state || "-NA-"}}</p>
<p class="card-text"><strong>designation: </strong>: {{ rowData.inputvalue1 || "-NA-"}}</p>
<p class="card-text"><strong>placeOfWork: </strong>: {{ rowData.inputcaption2 || "-NA-"}}</p>
<p class="card-text"><strong>medicalCollegeName: </strong>: {{ rowData.inputvalue2 || "-NA-"}}</p>
<p class="card-text"><strong>hospitalName: </strong>: {{ rowData.inputcaption3 || "-NA-"}}</p>
<p class="card-text"><strong>istacMember: </strong>: {{ rowData.inputvalue3 || "-NA-"}}</p>
<p class="card-text"><strong>istacMemberID: </strong>: {{ rowData.inputcaption4 || "-NA-"}}</p>
<p class="card-text"><strong>registrationType: </strong>: {{ rowData.inputvalue4 || "-NA-"}}</p>
<p class="card-text"><strong>submitCase: </strong>: {{ rowData.inputcaption5 || "-NA-"}}</p>
<p class="card-text"><strong>isPaymentDone: </strong>: {{ rowData.inputcaption1 || "-NA-"}}</p>
<p class="card-text"><strong>Response Transaction ID:</strong> {{ rowData.responseTransid || "-NA-"}}</p>
<p class="card-text"><strong>Response Result Code:</strong> {{ rowData.responseResultCode || "-NA-"}}</p>
<p class="card-text"><strong>Response Result:</strong> {{ rowData.responseResult || "-NA-"}}</p>
<p class="card-text"><strong>Response URL:</strong> {{ rowData.responseURL || "-NA-"}}</p>
</div>
</div>
</div>

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { CandidateDetailsComponent } from './candidate-details.component';
describe('CandidateDetailsComponent', () => {
let component: CandidateDetailsComponent;
let fixture: ComponentFixture<CandidateDetailsComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ CandidateDetailsComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(CandidateDetailsComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,26 @@
import { Component, Input, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-candidate-details',
templateUrl: './candidate-details.component.html',
styleUrls: ['./candidate-details.component.scss']
})
export class CandidateDetailsComponent implements OnInit {
rowData: any; // Data for the selected row
constructor(private route: ActivatedRoute) { }
ngOnInit() {
// Retrieve the data object from the route's state
this.route.paramMap.subscribe(params => {
const dataString = params.get('data');
if (dataString) {
this.rowData = JSON.parse(dataString);
}
});
}
}

View File

@ -0,0 +1,147 @@
<div class="row p-3">
<div class="col-6">
<div class="card mb-3">
<div class="card-header">Registration Info</div>
<div class="card-body">
<form [formGroup]="detailForm" (ngSubmit)="detailFormSubmit()">
<div class="form-group">
<label for="phone">Mobile Number</label>
<input
type="text"
class="form-control"
id="phone"
formControlName="phone"
/>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
<div class="card" *ngIf="obj.id">
<div class="card-body">
<h5 class="card-title">Conference Information</h5>
<hr />
<table class="table">
<tbody>
<tr>
<th>ID</th>
<td>{{ obj.id }}</td>
</tr>
<tr>
<th>Conference Code</th>
<td>{{ obj.conferencecode }}</td>
</tr>
<tr>
<th>Conference Year</th>
<td>{{ obj.conferenceyear }}</td>
</tr>
<tr>
<th>Bank Name</th>
<td>{{ obj.bankname }}</td>
</tr>
<tr>
<th>Registration Number</th>
<td>{{ obj.regno }}</td>
</tr>
<tr>
<th>Response Transaction ID</th>
<td>{{ obj.responseTransid }}</td>
</tr>
<tr>
<th>Name </th>
<td>{{ obj.nameinreceipt }}</td>
</tr>
<tr>
<th>Address</th>
<td>{{ obj.address1 }}</td>
</tr>
<tr>
<th>Phone</th>
<td>{{ obj.phone }}</td>
</tr>
<tr>
<th>Payment Status</th>
<td>{{ obj.inputcaption1 }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-6">
<div class="card">
<div class="card-header">Transaction Status</div>
<div class="card-body">
<form [formGroup]="form" (ngSubmit)="onSubmit()">
<div class="form-group">
<label for="regno">Reg No</label>
<input
type="text"
class="form-control"
id="regno"
formControlName="regno"
/>
</div>
<div class="form-group">
<label for="transid">Transaction ID</label>
<input
type="text"
class="form-control"
id="transid"
formControlName="transid"
/>
</div>
<div class="form-group">
<label for="conference">Conference</label>
<input
type="text"
class="form-control"
id="conference"
formControlName="conference"
/>
</div>
<div class="form-group">
<label for="confyear">Conference Year</label>
<input
type="text"
class="form-control"
id="confyear"
formControlName="confyear"
/>
</div>
<div class="form-group">
<label for="bankname">Bank Name</label>
<input
type="text"
class="form-control"
id="bankname"
formControlName="bankname"
/>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
<div class="card mt-3" *ngIf="status.Transid">
<div class="card-body">
<h5 class="card-title">Transaction Details</h5>
<hr />
<table class="table">
<tbody>
<!-- <tr>
<th>Property</th>
<th>Value</th>
</tr> -->
<tr *ngFor="let property of status | keyvalue">
<th>{{ property.key }}</th>
<td>{{ property.value }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { CheckStatusComponent } from './check-status.component';
describe('CheckStatusComponent', () => {
let component: CheckStatusComponent;
let fixture: ComponentFixture<CheckStatusComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ CheckStatusComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(CheckStatusComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,69 @@
import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms";
import { DataService } from "src/app/data.service";
import { XmlParserService } from "src/app/xml-parser.service";
@Component({
selector: "app-check-status",
templateUrl: "./check-status.component.html",
styleUrls: ["./check-status.component.scss"],
})
export class CheckStatusComponent implements OnInit {
form: FormGroup;
detailForm: FormGroup;
constructor(
private fb: FormBuilder,
private dataService: DataService,
private parser: XmlParserService
) {}
ngOnInit() {
this.form = this.fb.group({
regno: ["", Validators.required],
transid: ["", Validators.required],
conference: ["", Validators.required],
confyear: ["", Validators.required],
bankname: ["", Validators.required],
});
this.detailForm = this.fb.group({
phone: ["", Validators.required],
});
}
status: any = {};
onSubmit() {
if (this.form.valid) {
// Handle form submission here
console.log(this.form.value);
this.dataService.sendSOAPRequestForStatus(this.form.value).subscribe(
(res) => {
console.log(res);
this.status = this.parser.parseXmlForStatus(res);
console.log(this.status);
},
(error) => alert("something went wrong " + error)
);
} else {
alert("all field values are required");
}
}
obj: any = {};
detailFormSubmit() {
if (this.detailForm.valid) {
// Handle form submission here
console.log(this.form.value);
this.dataService
.getConferenceDataByPhone(this.detailForm.get("phone").value)
.subscribe(
(res) => {
this.obj = res;
},
(error) => alert("something went wrong " + error)
);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { IndexComponent } from './index.component';
describe('IndexComponent', () => {
let component: IndexComponent;
let fixture: ComponentFixture<IndexComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ IndexComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(IndexComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,37 @@
import { Component, OnInit } from '@angular/core';
import { Injectable, Inject, PLATFORM_ID } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { isPlatformBrowser } from '@angular/common';
@Component({
selector: 'app-index',
templateUrl: './index.component.html',
styleUrls: ['./index.component.css']
})
export class IndexComponent implements OnInit {
ngOnInit(): void {
this.injectTags()
}
private filePath = '/src/extrascripts.html'; // Adjust the path as needed
constructor(private http: HttpClient, @Inject(PLATFORM_ID) private platformId: Object) {}
injectTags(): void {
if (isPlatformBrowser(this.platformId)) {
this.http.get(this.filePath, { responseType: 'text' }).subscribe(data => {
const head = document.head || document.getElementsByTagName('head')[0];
const tempDiv = document.createElement('div');
tempDiv.innerHTML = data;
Array.from(tempDiv.childNodes).forEach(child => head.appendChild(child));
});
}
}
}

View File

@ -0,0 +1,113 @@
<!-- STRAT NAVBAR -->
<nav class="navbar navbar-expand-lg fixed-top navbar-custom sticky sticky-dark" id="navbar"
(window:scroll)="windowScroll()">
<div class="container">
<a class="navbar-brand" href="#">CMC Vellore</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse"
aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" (click)="toggleMenu()">
<span class="ti-menu"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mx-auto" id="navbar-navlist">
<li class="nav-item" [ngClass]="{'active':currentSection === 'home'}">
<a [ngxScrollTo]="'#home'" class="nav-link" href="javascript: void(0);">Home</a>
</li>
<li class="nav-item" [ngClass]="{'active':currentSection === 'features'}">
<a [ngxScrollTo]="'#features'" class="nav-link" href="javascript: void(0);">Facility</a>
</li>
<li class="nav-item" [ngClass]="{'active':currentSection === 'team'}">
<a [ngxScrollTo]="'#team'" class="nav-link" href="javascript: void(0);">Faculties</a>
</li>
<li class="nav-item" [ngClass]="{'active':currentSection === 'pricing'}">
<a [ngxScrollTo]="'#pricing'" class="nav-link" href="javascript: void(0);">Events</a>
</li>
<!-- <li class="nav-item" [ngClass]="{'active':currentSection === 'testi'}">
<a [ngxScrollTo]="'#testi'" class="nav-link" href="javascript: void(0);">Client</a>
</li> -->
<li class="nav-item" [ngClass]="{'active':currentSection === 'faq'}">
<a [ngxScrollTo]="'#faq'" class="nav-link" href="javascript: void(0);">our Focus</a>
</li>
<li class="nav-item" [ngClass]="{'active':currentSection === 'services'}">
<a [ngxScrollTo]="'#services'" class="nav-link" href="javascript: void(0);">About us</a>
</li>
<li class="nav-item" [ngClass]="{'active':currentSection === 'contact'}">
<a [ngxScrollTo]="'#contact'" class="nav-link" href="javascript: void(0);">Contact</a>
</li>
<!--
<li class="nav-item" >
<a routerLink="/check-status" class="nav-link" href="javascript: void(0);">Registration status</a>
</li> -->
</ul>
<div>
<ul class="text-right list-unstyled list-inline mb-0 nav-social">
<li class="list-inline-item text-white nav-number"><i class="ti-mobile"></i> <span> 04172 224627 / 224626
</span></li>
<!-- <li class="list-inline-item"><a href="" class="facebook"><i class="ti-facebook"></i></a></li> -->
</ul>
</div>
</div>
</div>
</nav>
<!-- END NAVBAR -->
<div appScrollspy [spiedTags]="['SECTION']" (sectionChange)="onSectionChange($event)">
<!-- START HOME -->
<section class="back-slide" id="home">
<img name="silde" class="slide-img" id="isSlideImage" src="assets/images/cmc/drapt2.jpeg">
<div class="bg-overlay"></div>
<div class="home-center">
<div class="home-desc-center">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-10">
<div class="text-center">
<h1 class="text-white home-title mb-0">Christian Medical College, Vellore</h1>
<p class="text-white home-subtitle-center home-subtitle mt-4 mb-0 mx-auto">The Christian Medical College, Vellore, seeks to be a witness to the healing ministry of Christ, through excellence in education, service and research.</p>
<!-- <div class="text-center search-form mt-4">
<form action="#">
<input type="text" placeholder="Email">
<button type="submit" class="btn btn-primary">SubCribe</button>
</form>
</div> -->
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- END HOME -->
<app-features></app-features>
<app-team></app-team>
<app-pricing></app-pricing>
<!-- <app-client></app-client> -->
<app-faq></app-faq>
<app-services></app-services>
<app-contact></app-contact>
<app-footer></app-footer>
<!-- <app-switcher></app-switcher> -->
</div>

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Index6Component } from './index6.component';
describe('Index6Component', () => {
let component: Index6Component;
let fixture: ComponentFixture<Index6Component>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ Index6Component ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(Index6Component);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,109 @@
import { Component, OnInit } from '@angular/core';
import { StudentService } from 'src/app/student.service';
@Component({
selector: 'app-index6',
templateUrl: './index6.component.html',
styleUrls: ['./index6.component.scss']
})
/**
* Index-6 component
*/
export class Index6Component implements OnInit {
constructor(private studentService : StudentService) { }
currentSection = 'home';
students
student
ngOnInit() {
// this.students = this.studentService.getAllStudents();
// console.log("students : ",this.students);
// this.student = this.studentService.insertStudent();
// console.log("student : ",this.student);
// this.studentService.makeHttpRequest().subscribe(
// (response) => {
// // Handle the response here
// console.log(response);
// },
// (error) => {
// // Handle errors here
// console.error(error);
// }
// );
document.addEventListener("DOMContentLoaded", () => {
let i = 1;
setInterval(() => {
const slideImage = document.querySelector("#isSlideImage") as HTMLImageElement; // Cast to HTMLImageElement
if (!slideImage) {
return; // Exit if the element is not found
}
if (i === 1) {
slideImage.src = 'assets/images/cmc/drapt2.jpeg';
} else if (i === 2) {
slideImage.src = 'assets/images/cmc/CMCH_Vellore.jpeg';
} else {
slideImage.src = 'assets/images/cmc/ranipet-Kannigapuram-2022-06-15-main-entrance-signsWA-1.jpeg';
}
if (i >= 3) {
i = 0;
}
i++;
}, 2500);
});
// let i = 1;
// setInterval(() => {
// if (i === 1) { (<HTMLImageElement>document.querySelector("#isSlideImage")).src = 'assets/images/cmc/drapt2.jpeg'; }
// else if (i === 2) { (<HTMLImageElement>document.querySelector("#isSlideImage")).src = 'assets/images/cmc/CMCH_Vellore.jpeg'; }
// else { (<HTMLImageElement>document.querySelector("#isSlideImage")).src = 'assets/images/cmc/ranipet-Kannigapuram-2022-06-15-main-entrance-signsWA-1.jpeg'; }
// if (i >= 3) { i = 0; }
// i++;
// }, 2500);
}
/**
* Window scroll method
*/
// tslint:disable-next-line: typedef
windowScroll() {
const navbar = document.getElementById('navbar');
if (document.body.scrollTop > 40 || document.documentElement.scrollTop > 40) {
navbar.style.backgroundColor = '#1a1a1a';
navbar.style.padding = '15px 0px';
}
else {
navbar.style.backgroundColor = '';
navbar.style.padding = '20px';
}
}
/**
* Toggle navbar
*/
toggleMenu() {
document.getElementById('navbarCollapse').classList.toggle('show');
}
/**
* Section changed method
* @param sectionId specify the current sectionID
*/
onSectionChange(sectionId: string) {
this.currentSection = sectionId;
}
}

View File

@ -0,0 +1,59 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { Index6Component } from './index6/index6.component';
import { PasswordForgetComponent } from './password-forget/password-forget.component';
import { SignupComponent } from './signup/signup.component';
import { RegisterComponent } from './register/register.component';
import { RegistrationStatusComponent } from './registration-status/registration-status.component';
import { RegistedListComponent } from './registed-list/registed-list.component';
import { CandidateDetailsComponent } from './candidate-details/candidate-details.component';
import { CheckStatusComponent } from './check-status/check-status.component';
const routes: Routes = [
{
path: 'index',
component: Index6Component
},
{
path: 'registrationStatus',
component: RegistrationStatusComponent
},
{
path: 'check-status',
component: CheckStatusComponent
},
{
path: 'admin',
component: RegistedListComponent
},
{ path: 'detail', component: CandidateDetailsComponent },
{
path: 'password_forget',
component: PasswordForgetComponent
},
{
path: 'signup',
component: SignupComponent
},
{
path: 'register/:id',
component: RegisterComponent
},
{
path: '',
redirectTo: 'index',
pathMatch: 'full'
},
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class PagesRoutingModule { }

View File

@ -0,0 +1,46 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to';
import { NgxTypedJsModule } from 'ngx-typed-js';
// import { NgParticlesModule } from 'ng-particles';
import { CarouselModule } from 'ngx-owl-carousel-o';
import { PagesRoutingModule } from './pages-routing.module'
import { SharedModule } from '../shared/shared.module';
import { Index6Component } from './index6/index6.component';
import { PasswordForgetComponent } from './password-forget/password-forget.component';
import { SignupComponent } from './signup/signup.component';
import { RegisterComponent } from './register/register.component';
import { RegistrationStatusComponent } from './registration-status/registration-status.component';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';
import { RegistedListComponent } from './registed-list/registed-list.component';
import { CandidateDetailsComponent } from './candidate-details/candidate-details.component';
import { CheckStatusComponent } from './check-status/check-status.component';
import { BrowserModule } from '@angular/platform-browser';
import { IndexComponent } from './index/index.component';
@NgModule({
declarations: [Index6Component, PasswordForgetComponent, SignupComponent,RegisterComponent, RegistrationStatusComponent,RegistedListComponent, CandidateDetailsComponent, CheckStatusComponent, IndexComponent],
imports: [
// BrowserModule,
CommonModule,
SharedModule,
PagesRoutingModule,
ScrollToModule.forRoot(),
NgxTypedJsModule,
// NgParticlesModule,
CarouselModule,
ReactiveFormsModule,
// HttpClientModule,
FormsModule
]
})
export class PagesModule { }

View File

@ -0,0 +1,28 @@
<section class="bg-login d-flex align-items-center">
<div class="container">
<div class="row justify-content-center mt-4">
<div class="col-lg-4">
<div class="bg-white p-4 mt-5 rounded">
<div class="text-center">
<h4 class="fw-bold mb-3">Globing</h4>
</div>
<h6 class="text-center text-muted fw-normal forgot-pass-txt">Enter your email address
and we'll send you an email with instructions to reset your password.</h6>
<form class="login-form">
<div class="row">
<div class="col-lg-12 mt-3">
<input type="email" class="form-control" placeholder="Email" required="">
</div>
<div class="col-lg-12 mt-4 mb-2">
<button class="btn btn-primary w-100">Reset your Password</button>
</div>
</div>
</form>
</div>
<div class="text-center mt-3">
<p><small class="text-white me-2">Already have account?</small> <a routerLink="/login" class="text-white fw-bold">Sign in</a></p>
</div>
</div>
</div>
</div>
</section>

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { PasswordForgetComponent } from './password-forget.component';
describe('PasswordForgetComponent', () => {
let component: PasswordForgetComponent;
let fixture: ComponentFixture<PasswordForgetComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ PasswordForgetComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(PasswordForgetComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-password-forget',
templateUrl: './password-forget.component.html',
styleUrls: ['./password-forget.component.scss']
})
export class PasswordForgetComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

View File

@ -0,0 +1,123 @@
<div class="container mt-3" *ngIf="!showTable">
<!-- Secret key input form -->
<div class="form-group">
<label for="secretKey">Enter Secret Key:</label>
<input
class="form-control"
type="password"
id="secretKey"
[(ngModel)]="secretKey"
/>
<button (click)="checkSecretKey()">Submit</button>
</div>
</div>
<!-- Table - Display only if showTable is true -->
<div class="row p-2" *ngIf="showTable">
<button class="btn btn-sm btn-success float-end" (click)="exportToExcel()">
Export to Excel
</button>
<div class="table-responsive">
<table class="table" id="myTable">
<thead class="thead-dark">
<tr>
<th>ID</th>
<th>Registration Number</th>
<th>Transaction ID</th>
<th>Name in Receipt</th>
<!-- <th>Conference Code</th> -->
<th>Bank Name</th>
<th>Phone</th>
<th>Designation</th>
<th>Place of work</th>
<th>Name of the hospital, college</th>
<th>ISTAC member</th>
<th>CMC Mission</th>
<th>External or CMC staff</th>
<th>registration type</th>
<th>submit case</th>
<th>Email</th>
<th>Payment Amount</th>
<th>Payment Status</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<ng-container *ngFor="let payment of payments">
<tr>
<td>{{ payment.id || "NA"}}</td>
<td>{{ payment.regno || "NA"}}</td>
<td>{{ payment.responseTransid || payment.Transid || "NA"}}</td>
<td>{{ payment.nameinreceipt || "NA"}}</td>
<!-- <td>{{ payment.conferencecode || "NA"}}</td> -->
<td>{{ payment.bankname || "NA"}}</td>
<td>{{ payment.phone || "NA"}}</td>
<td>{{ payment.inputvalue1 || "NA"}}</td>
<td>{{ payment.inputcaption2 || "NA"}}</td>
<td>
<span *ngIf=" payment.inputcaption3">{{ payment.inputcaption3 }}</span
><span *ngIf=" payment.inputvalue2">{{ payment.inputvalue2 }}</span>
</td>
<td>{{ payment.inputvalue3 || "NA"}}</td>
<td>{{ payment.city || "NA"}}</td>
<td>{{payment.inputvalue5 == 'No Error' ? "NA" : payment.inputvalue5}}</td>
<td>{{payment.inputvalue4 || "NA"}}</td>
<td>{{ payment.inputcaption5 || "NA"}}</td>
<td>{{ payment.email || "NA"}}</td>
<td>{{ payment.paymentamount || "NA"}}</td>
<td>
<span
[ngClass]="{
success: payment.inputcaption1 === 'Y',
failed: payment.inputcaption1 === 'F',
unknown:
payment.inputcaption1 !== 'Y' &&
payment.inputcaption1 !== 'F'
}"
>
{{
payment.inputcaption1 === "Y"
? "Success"
: payment.inputcaption1 === "F"
? "Failed"
: "Unknown"
}}
</span>
</td>
<td>
<!-- <button class="mx-2" (click)="delete(payment.id)">
<i class="ti-trash"></i>
</button> -->
<button (click)="viewDetail(payment)">
<i class="ti-eye"></i>
</button>
</td>
</tr>
</ng-container>
</tbody>
</table>
</div>
</div>

View File

@ -0,0 +1,14 @@
/* CSS file (your-component.component.css) */
.success {
color: green;
}
.failed {
color: red;
}
.unknown {
color: gray;
}

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { RegistedListComponent } from './registed-list.component';
describe('RegistedListComponent', () => {
let component: RegistedListComponent;
let fixture: ComponentFixture<RegistedListComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ RegistedListComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(RegistedListComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,87 @@
import { Component, OnInit } from "@angular/core";
import { Router } from "@angular/router";
import { DataService } from "src/app/data.service";
import * as XLSX from "xlsx";
// import * as FileSaver from "file-saver";
@Component({
selector: "app-registed-list",
templateUrl: "./registed-list.component.html",
styleUrls: ["./registed-list.component.scss"],
})
export class RegistedListComponent implements OnInit {
secretKey: string = ""; // Property to store the secret key
showTable: boolean = false; // Flag to determine if the table should be displayed
payments = [
// Add more payment objects here
];
constructor(private dataService: DataService, private router: Router) {}
exportToExcel() {
const element = document.getElementById("myTable"); // Replace 'myTable' with the ID of your HTML table
const ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(element);
const wb: XLSX.WorkBook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
const excelBuffer: any = XLSX.write(wb, {
bookType: "xlsx",
type: "array",
});
const blob = new Blob([excelBuffer], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
});
// FileSaver.saveAs(blob, "myTable.xlsx"); // Specify the desired file name
}
viewDetail(rowData: any) {
this.router.navigate(["detail", { data: JSON.stringify(rowData) }]);
}
delete(id) {
if (this.confirmData())
this.dataService.deleteConferenceData(id).subscribe((res) => {
console.log(res);
this.getList()
});
}
confirmData(): boolean {
return confirm("Are you sure you want to delete?");
}
ngOnInit(): void {
this.getList()
}
getList(){
this.payments = []
this.dataService.getAllConferenceData().subscribe((res) => {
this.payments = res;
});
}
checkSecretKey() {
// Replace 'yourSecretKey' with the actual correct secret key
if (this.secretKey === "975312") {
this.showTable = true; // Show the table if the key is correct
} else {
this.showTable = false; // Hide the table if the key is incorrect
// Optionally, you can display an error message or take other actions.
}
}
updateStatus() {
for (const obj of this.payments) {
// Call the service method to update the object's status
// this.dataService.updateObjectStatus(obj).subscribe(
// (response: any) => {
// console.log(response)
// },
// (error) => {
// console.error('Error updating object status:', error);
// }
// );
}
}
}

View File

@ -0,0 +1,959 @@
<div *ngIf="paymentInfo.ResultCode != '0'" class="row mt-2">
<div class="col-lg">
<div class="container">
<div class="card">
<div class="card-body">
<h4 class="card-title">Registration Form</h4>
<hr />
<br />
<form [formGroup]="registrationForm" (ngSubmit)="onSubmit()">
<!-- Conference Code -->
<div class="form-group mb-3">
<label class="text-primary" for="conferencecode"
>Conference Code: *</label
>
<input
class="form-control"
type="text"
id="conferencecode"
formControlName="conferencecode"
/>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('conferencecode').hasError('required')
"
class="error-message"
>This field is required.</small
>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('conferencecode').hasError('maxLength')
"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Conference Year -->
<div class="form-group mb-3">
<label class="text-primary" for="conferenceyear"
>Conference Year: *</label
>
<input
class="form-control"
type="text"
id="conferenceyear"
formControlName="conferenceyear"
/>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('conferenceyear').hasError('required')
"
class="error-message"
>This field is required.</small
>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('conferenceyear').hasError('maxLength')
"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Client IP Address (Remote IP Address) -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="remoteip">Client IP Address:</label>
<input
class="form-control"
type="text"
id="remoteip"
formControlName="remoteip"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('remoteip').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Registration Number -->
<div class="form-group mb-3">
<label class="text-primary" for="regno"
>Registration Number: *</label
>
<input
class="form-control"
type="text"
id="regno"
formControlName="regno"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('regno').hasError('required')"
class="error-message"
>This field is required.</small
>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('regno').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Payee Name (Candidate Name) -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label class="text-primary" for="candidatename"
>Payee Name: *</label
>
<input
class="form-control"
type="text"
id="candidatename"
formControlName="candidatename"
/>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('candidatename').hasError('required')
"
class="error-message"
>This field is required.</small
>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('candidatename').hasError('maxLength')
"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Name to be printed in Receipt -->
<div class="form-group mb-3">
<label class="text-primary" for="nameinreceipt"
>Name to be printed on the certificate: *</label
>
<input
class="form-control"
type="text"
id="nameinreceipt"
formControlName="nameinreceipt"
/>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('nameinreceipt').hasError('required')
"
class="error-message"
>This field is required.</small
>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('nameinreceipt').hasError('maxLength')
"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<div class="form-group mb-3">
<label for="designation">Designation:</label>
<select
class="form-control"
id="designation"
formControlName="designation"
>
<option value="Undergraduate">Undergraduate</option>
<option value="Postgraduate">Postgraduate</option>
<option value="Consultant">Consultant</option>
</select>
</div>
<div class="form-group mb-3">
<label for="placeOfWork">Present place of work:</label>
<select
class="form-control"
id="placeOfWork"
formControlName="placeOfWork"
>
<option value="None">None</option>
<option value="PrivatePractice">Private practice</option>
<option value="MedicalCollege">Medical College</option>
<option value="Hospital">Hospital</option>
</select>
</div>
<!-- Conditional input field for Medical College -->
<div
class="form-group mb-3"
*ngIf="
registrationForm.get('placeOfWork').value === 'MedicalCollege'
"
>
<label for="medicalCollegeName">Name of Medical College:</label>
<input
class="form-control"
type="text"
id="medicalCollegeName"
formControlName="medicalCollegeName"
/>
</div>
<!-- Conditional input field for Hospital -->
<div
class="form-group mb-3"
*ngIf="registrationForm.get('placeOfWork').value === 'Hospital'"
>
<label for="hospitalName">Name of Hospital:</label>
<input
class="form-control"
type="text"
id="hospitalName"
formControlName="hospitalName"
/>
</div>
<!-- Address Line 1 -->
<div class="form-group mb-3">
<label for="address1">Address </label>
<textarea
class="form-control"
type="text"
id="address1"
formControlName="address1"
rows="3"
>
</textarea>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('address1').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Address Line 2 -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="address2">Address Line 2:</label>
<input
class="form-control"
type="text"
id="address2"
formControlName="address2"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('address2').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- City -->
<!-- <div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="city">City:</label>
<input
class="form-control"
type="text"
id="city"
formControlName="city"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('city').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div> -->
<!-- State -->
<!-- <div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="state">State:</label>
<input
class="form-control"
type="text"
id="state"
formControlName="state"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('state').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div> -->
<!-- Country -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="country">Country:</label>
<input
class="form-control"
type="text"
id="country"
formControlName="country"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('country').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Pincode -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="pincode">Pincode:</label>
<input
class="form-control"
type="text"
id="pincode"
formControlName="pincode"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('pincode').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Landline Number (Phone) -->
<div class="form-group mb-3" >
<label class="text-primary" for="phone">Mobile Number:</label>
<input
class="form-control"
type="text"
id="phone"
formControlName="phone"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('phone').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
<small class="form-text text-muted" *ngIf="registrationForm.get('phone').hasError('required')"
class="error-message">This field is required.</small>
</div>
<!-- Mobile Number -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="mobile">Mobile Number:</label>
<input
class="form-control"
type="text"
id="mobile"
formControlName="mobile"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('mobile').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Email ID -->
<div class="form-group mb-3">
<label for="email">Email ID:</label>
<input
class="form-control"
type="text"
id="email"
formControlName="email"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('email').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Food Type -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="foodtype">Food Type:</label>
<select
class="form-control"
id="foodtype"
formControlName="foodtype"
>
<option value="">Select Food Type</option>
<option value="V">V - Veg</option>
<option value="NV">NV - Non-Veg</option>
</select>
</div>
<!-- Participant Type -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="participanttype">Participant Type:</label>
<input
class="form-control"
type="text"
id="participanttype"
formControlName="participanttype"
/>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('participanttype').hasError('maxLength')
"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Practice Type -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="practicetype">Practice Type:</label>
<input
class="form-control"
type="text"
id="practicetype"
formControlName="practicetype"
/>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('practicetype').hasError('maxLength')
"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Accompany Persons -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="accompanymembers">Accompany Persons:</label>
<input
class="form-control"
type="text"
id="accompanymembers"
formControlName="accompanymembers"
/>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('accompanymembers').hasError('maxLength')
"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Registration Fees (Payment Amount) -->
<!-- <div class="form-group mb-3">
<label class="text-primary" for="paymentamount">Registration Fees: *</label>
<select class="form-control" id="paymentamount" formControlName="paymentamount">
<option *ngFor="let option of event.fee" [value]="option.cost">
{{ option.desc }} - <span class="text-primary"> (Rs. {{ option.cost }}) </span>
</option>
</select>
<small class="form-text text-muted" *ngIf="registrationForm.get('paymentamount').hasError('required')"
class="error-message">This field is required.</small>
</div> -->
<div class="card p-2 mb-3">
<div class="form-group mb-3">
<label>ISTAC Members:</label>
<div class="form-check">
<input
class="form-check-input"
type="radio"
id="istacMemberYes"
value="Yes"
formControlName="istacMember"
/>
<label class="form-check-label"> Yes </label>
</div>
<div class="form-check">
<input
class="form-check-input"
type="radio"
id="istacMemberNo"
value="No"
formControlName="istacMember"
/>
<label class="form-check-label"> No </label>
</div>
</div>
</div>
<div
class="form-group mb-3"
*ngIf="registrationForm.get('istacMember').value === 'Yes'"
>
<label for="istacMemberID">ISTAC Member ID:</label>
<input
type="text"
class="form-control"
id="istacMemberID"
formControlName="istacMemberID"
/>
</div>
<div class="card p-2 mb-3">
<div class="form-group mb-3">
<label> CMC Mission:</label>
<div class="form-check">
<input
class="form-check-input"
type="radio"
id="cityYes"
value="Yes"
formControlName="city"
/>
<label class="form-check-label"> Yes </label>
</div>
<div class="form-check">
<input
class="form-check-input"
type="radio"
id="cityNo"
value="No"
formControlName="city"
/>
<label class="form-check-label"> No </label>
</div>
</div>
</div>
<div
class="form-group mb-3"
*ngIf="registrationForm.get('city').value === 'Yes'"
>
<label for="stateID">CMC Mission ID:</label>
<input
type="text"
class="form-control"
id="stateID"
formControlName="state"
/>
</div>
<!-- <div class="form-group mb-3">
<label for="paymentamount">paymentamount:</label>
<input
type="text"
class="form-control"
id="paymentamount"
formControlName="paymentamount"
/>
</div> -->
<div class="form-group mb-3">
<label class="text-primary" for="inputvalue5">External or CMC Staff:</label>
<select class="form-control" id="inputvalue5" formControlName="inputvalue5" (change)="calculateTotalPrice()">
<option value="External">External</option>
<option value="CMCStaff">CMC Staff</option>
</select>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('inputvalue5').hasError('required')
"
class="error-message"
>This field is required.</small
>
</div>
<div class="form-group mb-3">
<label for="registrationType">Registration Type:</label>
<select
id="registrationType"
class="form-control"
formControlName="registrationType"
(change)="calculateTotalPrice()"
>
<!-- <option value="NA">NA</option> -->
<option
*ngIf="registrationForm.get('istacMember').value === 'Yes'"
value="Online"
>
Online ₹ 500 <span *ngIf="registrationForm.get('inputvalue5').value === 'External'">+ 18% GST</span>
</option>
<option value="Symposium">Symposium ₹ 1000 <span *ngIf="registrationForm.get('inputvalue5').value === 'External'">+ 18% GST</span></option>
<option value="Workshop">Workshop ₹ 3500 <span *ngIf="registrationForm.get('inputvalue5').value === 'External'">+ 18% GST</span></option>
<option value="SymposiumAndWorkshop">
Symposium & Workshop ₹ 4500 <span *ngIf="registrationForm.get('inputvalue5').value === 'External'">+ 18% GST</span>
</option>
</select>
</div>
<!-- Paying Towards -->
<div class="form-group mb-3">
<label class="text-primary" for="ToWards"
>Paying Towards: *</label
>
<input
class="form-control"
type="text"
placeholder="Workshop Fee"
id="ToWards"
formControlName="ToWards"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('ToWards').hasError('required')"
class="error-message"
>This field is required.</small
>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('ToWards').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Payment Through (Bank Name) -->
<div class="form-group mb-3">
<label class="text-primary" for="bankname"
>Payment Through: *</label
>
<select
id="bankname"
formControlName="bankname"
class="form-control"
>
<option value="">Select Payment Method</option>
<option value="PAYU">PAYU - Cards, UPI, Wallets, Netbanking</option>
<option value="HDFC">HDFC - Cards</option>
</select>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('bankname').hasError('required')"
class="error-message"
>This field is required.</small
>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('bankname').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<div class="card p-2 mb-3">
<div class="form-group mb-3">
<label for="submitCase"
>Are you interested in submitting a challenging or interesting
case?</label
>
<div class="form-check">
<input
class="form-check-input"
type="radio"
id="submitCaseYes"
value="Yes"
formControlName="submitCase"
/>
<label class="form-check-label" for="flexRadioDefault1">
Yes
</label>
</div>
<div class="form-check">
<input
class="form-check-input"
type="radio"
id="submitCaseNo"
value="No"
formControlName="submitCase"
/>
<label class="form-check-label" for="flexRadioDefault2">
No
</label>
</div>
</div>
</div>
<div *ngIf="registrationForm.get('submitCase').value === 'Yes'">
<p>
Submit your abstract to
<a href="mailto:traumasurg.academic@cmcvellore.ac.in"
>traumasurg.academic@cmcvellore.ac.in</a
>
</p>
</div>
<!-- User opt for 80G -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="Allow80G" class="text-primary"
>User opt for 80G: *</label
>
<select
class="form-control"
id="Allow80G"
formControlName="Allow80G"
>
<option value="Y">Y - Yes</option>
<option value="N">N - No</option>
</select>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('Allow80G').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- PAN Card No -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="PanCardNo">PAN Card No:</label>
<input
class="form-control"
type="text"
id="PanCardNo"
formControlName="PanCardNo"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('PanCardNo').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Amount Contains GST (hasgst) -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="hasgst" class="text-primary"
>Amount Contains GST:</label
>
<select class="form-control" id="hasgst" formControlName="hasgst">
<option value="Y">Y - Yes</option>
<option value="N">N - No</option>
</select>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('hasgst').hasError('required')"
class="error-message"
>This field is required.</small
>
</div>
<!-- GST Registered / Unregistered -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="GSTReg">GST Registered / Unregistered:</label>
<input
class="form-control"
type="text"
id="GSTReg"
formControlName="GSTReg"
/>
</div>
<!-- GST Number -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="gstnumber">GST Number:</label>
<input
class="form-control"
type="text"
id="gstnumber"
formControlName="gstnumber"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('gstnumber').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- GST Registered Mobile No -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="gstmobileno">GST Registered Mobile No:</label>
<input
class="form-control"
type="text"
id="gstmobileno"
formControlName="gstmobileno"
/>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('gstmobileno').hasError('maxLength')
"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- GST Registered Email ID -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="gstemailid">GST Registered Email ID:</label>
<input
class="form-control"
type="text"
id="gstemailid"
formControlName="gstemailid"
/>
<small
class="form-text text-muted"
*ngIf="registrationForm.get('gstemailid').hasError('maxLength')"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Additional Field Caption 1 -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="inputcaption1">Additional Field Caption 1:</label>
<input
class="form-control"
type="text"
id="inputcaption1"
formControlName="inputcaption1"
/>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('inputcaption1').hasError('maxLength')
"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Additional Field Caption 1 Value -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="inputvalue1">Additional Field Caption 1 Value:</label>
<input
class="form-control"
type="text"
id="inputvalue1"
formControlName="inputvalue1"
/>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('inputvalue1').hasError('maxLength')
"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Additional Field Caption 2 -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="inputcaption2">Additional Field Caption 2:</label>
<input
class="form-control"
type="text"
id="inputcaption2"
formControlName="inputcaption2"
/>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('inputcaption2').hasError('maxLength')
"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<!-- Additional Field Caption 2 Value -->
<div class="form-group mb-3" *ngIf="shouldDisplayElement">
<label for="inputvalue2">Additional Field Caption 2 Value:</label>
<input
class="form-control"
type="text"
id="inputvalue2"
formControlName="inputvalue2"
/>
<small
class="form-text text-muted"
*ngIf="
registrationForm.get('inputvalue2').hasError('maxLength')
"
class="error-message"
>Maximum length exceeded.</small
>
</div>
<div class="mb-3">
<p>Total Price : ₹ {{ totalPrice }}</p>
</div>
<div class="alert alert-danger mb-2" *ngIf="getInvalidFields().length > 0">
Please correct the following fields:
<ul>
<li *ngFor="let field of getInvalidFields()">
{{ field == 'inputvalue5' ? 'External or CMC Staff:' : field }}
</li>
</ul>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="row mt-3" *ngIf="paymentInfo.ResultCode == '0'">
<div class="col-lg">
<div class="container">
<div class="card">
<div class="card-body">
<h2 class="text-muted text-primary">
The payment link has been generated successfully. Kindly jot down
the information or capture a screenshot of the details, and then
proceed to click the provided link below.
</h2>
<br />
<div class="container">
<p>Registration: {{ paymentInfo.Registration }}</p>
<p>Transaction ID: {{ paymentInfo.Transid }}</p>
<p>Result Code: {{ paymentInfo.ResultCode }}</p>
<p>Result: {{ paymentInfo.Result }}</p>
<a class="btn btn-primary m-2" [href]="paymentInfo.URL">Payment URL</a>
<br>
<br>
<br>
<br>
<p>
<!-- <a href="/">Go Home</a> | -->
<a href="javascript:void(0);" (click)="printPage()">Print</a> |
<!-- <a href="javascript:void(0);" (click)="goBack()">Go Back</a> -->
</p>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { RegisterComponent } from './register.component';
describe('RegisterComponent', () => {
let component: RegisterComponent;
let fixture: ComponentFixture<RegisterComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ RegisterComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(RegisterComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,257 @@
import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms";
import { ActivatedRoute } from "@angular/router";
import { DataService, PaymentInfo } from "src/app/data.service";
import { XmlParserService } from "src/app/xml-parser.service";
@Component({
selector: "app-register",
templateUrl: "./register.component.html",
styleUrls: ["./register.component.scss"],
})
export class RegisterComponent implements OnInit {
registrationForm: FormGroup;
shouldDisplayElement = false;
totalPrice: number = 0;
constructor(
private fb: FormBuilder,
private route: ActivatedRoute,
private dataService: DataService,
private xmlParserService: XmlParserService
) {}
eventId: string;
event: any;
events = [];
paymentInfo: PaymentInfo;
ngOnInit() {
this.events = this.dataService.events;
this.paymentInfo = new PaymentInfo(); // Initialize the instance
this.route.params.subscribe((params) => {
this.eventId = params["id"]; // 'id' should match the route parameter name defined in your routing configuration
this.event = this.findEventById(this.eventId);
});
this.registrationForm = this.fb.group({
conferencecode: ["", [Validators.required, Validators.maxLength(10)]],
conferenceyear: ["", [Validators.required, Validators.maxLength(4)]],
bankname: ["", [Validators.required, Validators.maxLength(20)]],
remoteip: ["", [Validators.maxLength(15)]],
regno: ["", [Validators.required, Validators.maxLength(20)]],
candidatename: ["", [Validators.required, Validators.maxLength(80)]],
nameinreceipt: ["", [Validators.required, Validators.maxLength(150)]],
address1: ["", [Validators.maxLength(200)]],
address2: ["", [Validators.maxLength(200)]],
city: ["", [Validators.maxLength(100)]], // CMC Mission
state: ["12345", [Validators.maxLength(100)]], // CMC Mission ID
country: ["", [Validators.maxLength(100)]],
pincode: ["", [Validators.maxLength(10)]],
phone: ["", [Validators.required, Validators.maxLength(20)]],
mobile: ["", [Validators.maxLength(20)]],
email: ["", [Validators.maxLength(70)]],
foodtype: ["", [Validators.maxLength(2)]],
participanttype: ["", [Validators.maxLength(30)]],
practicetype: ["", [Validators.maxLength(80)]],
accompanymembers: ["", [Validators.maxLength(2)]],
paymentamount: ["", [Validators.required]],
ToWards: ["", [Validators.required, Validators.maxLength(200)]],
Allow80G: ["N", [Validators.required]],
PanCardNo: ["", [Validators.maxLength(10)]],
hasgst: ["N", [Validators.required]],
GSTReg: [""],
gstnumber: ["", [Validators.maxLength(20)]],
gstmobileno: ["", [Validators.maxLength(12)]],
gstemailid: ["", [Validators.maxLength(100)]],
inputcaption1: ["", [Validators.maxLength(50)]], // isPaymentDone
inputvalue1: ["", [Validators.maxLength(200)]], // designation
inputcaption2: ["", [Validators.maxLength(50)]], // placeOfWork
inputvalue2: ["", [Validators.maxLength(200)]], // medicalCollegeName
inputcaption3: ["", [Validators.maxLength(50)]], // hospitalName
inputvalue3: ["", [Validators.maxLength(200)]], // istacMember
inputcaption4: ["", [Validators.maxLength(50)]], // istacMemberID
inputvalue4: ["", [Validators.maxLength(200)]], // registrationType
inputcaption5: ["", [Validators.maxLength(50)]], // submitCase
inputvalue5: ["", [Validators.maxLength(200), Validators.required]], // External or CMC staff
isPaymentDone: ["N", Validators.required],
designation: [""],
placeOfWork: ["None"],
medicalCollegeName: [""],
hospitalName: [""],
istacMember: ["No"],
istacMemberID: [""],
registrationType: ["", Validators.required],
submitCase: ["No"],
});
// Set initial values for the form
this.registrationForm.patchValue({
conferencecode: this.event.code,
conferenceyear: this.event.year,
regno: this.generateRandomHash(9),
Allow80G: "N",
hasgst: "N",
});
this.registrationForm
.get("nameinreceipt")
.valueChanges.subscribe((newValue) => {
console.log("Input value changed:", newValue);
// You can perform actions here based on the new input value
this.registrationForm.patchValue({
candidatename: newValue,
});
});
}
findEventById(eventId): any {
return this.events.find((event) => event.id == eventId);
}
generateRandomHash(length: number): string {
const characters = "012345G0VARDHAN6789";
let randomHash = "";
for (let i = 0; i < length; i++) {
const randomIndex = Math.floor(Math.random() * characters.length);
randomHash += characters.charAt(randomIndex);
}
return randomHash;
}
calculateTotalPrice() {
const registrationType =
this.registrationForm.get("registrationType").value;
const isCmcStaff = this.registrationForm.get("inputvalue5").value;
if (isCmcStaff === "CMCStaff") {
// Exclude GST for CMC Staff
if (registrationType === "Online") {
this.totalPrice = 500;
} else if (registrationType === "Symposium") {
this.totalPrice = 1000;
} else if (registrationType === "Workshop") {
this.totalPrice = 3500;
} else if (registrationType === "SymposiumAndWorkshop") {
this.totalPrice = 4500;
} else {
this.totalPrice = 0;
}
} else {
// Apply GST for External
if (registrationType === "Online") {
this.totalPrice = 500 + 0.18 * 500; // ₹ 500 + 18% GST
} else if (registrationType === "Symposium") {
this.totalPrice = 1000 + 0.18 * 1000; // ₹ 1000 + 18% GST
} else if (registrationType === "Workshop") {
this.totalPrice = 3500 + 0.18 * 3500; // ₹ 3500 + 18% GST
} else if (registrationType === "SymposiumAndWorkshop") {
this.totalPrice = 4500 + 0.18 * 4500; // ₹ 4500 + 18% GST
} else {
this.totalPrice = 0;
}
}
this.registrationForm.patchValue({
paymentamount: this.totalPrice,
ToWards: registrationType,
});
}
confirmData(): boolean {
return confirm("Are you sure you want to proceed with the data?");
}
printPage() {
window.print(); // Opens the browser's print dialog
}
getInvalidFields() {
const invalidFields = [];
Object.keys(this.registrationForm.controls).forEach((controlName) => {
const control = this.registrationForm.get(controlName);
if (control.invalid) {
invalidFields.push(controlName);
}
});
return invalidFields;
}
onSubmit() {
const formData = this.registrationForm.value;
(formData.inputcaption1 = formData.isPaymentDone),
(formData.inputvalue1 = formData.designation),
(formData.inputcaption2 = formData.placeOfWork),
(formData.inputvalue2 = formData.medicalCollegeName),
(formData.inputcaption3 = formData.hospitalName),
(formData.inputvalue3 = formData.istacMember),
(formData.inputcaption4 = formData.istacMemberID),
(formData.inputvalue4 = formData.registrationType),
(formData.inputcaption5 = formData.submitCase),
// (formData.candidatename = formData.nameinreceipt);
console.log("formData ", formData);
setTimeout(() => {
if (this.registrationForm.valid) {
if (this.confirmData()) this.sendSOAPRequest(formData);
} else {
alert("Please fill out all required fields correctly.");
}
}, 500);
}
sendSOAPRequest(formData: any) {
this.dataService.sendSOAPRequest(formData).subscribe(
(res) => {
this.handleSOAPResponse(res);
},
(error) => {
this.handleSOAPError(error);
}
);
}
handleSOAPResponse(res: any) {
console.log(res);
this.paymentInfo = this.xmlParserService.parseXml(res);
if (this.paymentInfo.ResultCode == "0") {
const confData = {
...this.paymentInfo,
...this.registrationForm.value,
};
console.log("conf Data", confData);
this.insertConferenceData(confData);
}
}
handleSOAPError(error: any) {
alert("Something went wrong " + error);
console.error(error);
}
insertConferenceData(confData: any) {
this.dataService.insertConferenceData(confData).subscribe(
(response) => {
console.log("Response from API:", response);
// Handle the response from the API as needed
},
(error) => {
console.error("Error:", error);
// Handle errors
}
);
}
}

View File

@ -0,0 +1,83 @@
<div class="container" *ngIf="queryParams.inputcaption1">
<div class="row">
<div class="col-md-6 offset-md-3 mt-5">
<div class="card" *ngIf="confRegObj.id">
<div class="card-body">
<h5 class="card-title">Conference Information</h5>
<hr />
<table class="table">
<tbody>
<tr>
<th>ID</th>
<td>{{ confRegObj.id }}</td>
</tr>
<tr>
<th>Conference Code</th>
<td>{{ confRegObj.conferencecode }}</td>
</tr>
<tr>
<th>Name</th>
<td>{{ confRegObj.nameinreceipt }}</td>
</tr>
<tr>
<th>Address</th>
<td>{{ confRegObj.address1 }}</td>
</tr>
<tr>
<th>Phone</th>
<td>{{ confRegObj.phone }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-md-6 offset-md-3 mt-5">
<div class="card">
<div class="card-body">
<h5 class="card-title">
Payment successful! Your registration for the Symposium is complete.
</h5>
<p class="card-text">
Reg No: {{ queryParams.regno }}
<br />
Payment status:
<span class="text-info">{{
queryParams.inputcaption1 == "Y" ? "SUCCESS" : "UNKNOWN"
}}</span>
<br />
Transaction ID: {{ queryParams.responseTransid }}
</p>
<!-- Add the links here -->
<p>
<a href="/">Go Home</a> |
<a
href="javascript:void(0);"
class="btn btn-primary"
(click)="printPage()"
>Print</a
>
</p>
</div>
</div>
</div>
</div>
</div>
<div class="container" *ngIf="!queryParams.inputcaption1">
<div class="row">
<div class="col-md-6 offset-md-3 mt-5">
<div class="card">
<div class="card-body">
<h5 class="card-title">Something went wrong..</h5>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { RegistrationStatusComponent } from './registration-status.component';
describe('RegistrationStatusComponent', () => {
let component: RegistrationStatusComponent;
let fixture: ComponentFixture<RegistrationStatusComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ RegistrationStatusComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(RegistrationStatusComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,65 @@
import { Component, OnInit } from "@angular/core";
import { ActivatedRoute } from "@angular/router";
import { DataService } from "src/app/data.service";
@Component({
selector: "app-registration-status",
templateUrl: "./registration-status.component.html",
styleUrls: ["./registration-status.component.scss"],
})
export class RegistrationStatusComponent implements OnInit {
queryParams: any = {};
confRegObj: any = {};
constructor(
private route: ActivatedRoute,
private dataService: DataService
) {}
printPage() {
window.print(); // Opens the browser's print dialog
}
ngOnInit() {
// Access the query parameters
this.queryParams.regno = this.route.snapshot.queryParamMap.get("regno");
this.queryParams.inputcaption1 =
this.route.snapshot.queryParamMap.get("status");
this.queryParams.responseTransid =
this.route.snapshot.queryParamMap.get("transid");
// this.queryParams.inputvalue5 =
// this.route.snapshot.queryParamMap.get("message");
if (this.queryParams.inputcaption1 == "Y") {
this.dataService
.getConferenceDataByRegno(this.queryParams.regno)
.subscribe((res: any) => {
this.confRegObj = res;
console.log(res);
this.confRegObj = this.updateObject(
this.confRegObj,
this.queryParams
);
setTimeout(() => {
this.updateConf(this.confRegObj);
}, 1000);
});
}
}
updateObject(target: any, updates: Record<string, any>): any {
target = { ...target, ...updates };
return target;
}
updateConf(data: any) {
console.log("data ", data);
this.dataService.insertConferenceData(data).subscribe((res) => {
console.log(res);
});
}
}

View File

@ -0,0 +1,40 @@
<section class="bg-login d-flex align-items-center">
<div class="container">
<div class="row justify-content-center mt-4">
<div class="col-lg-4">
<div class="bg-white p-4 mt-5 rounded">
<div class="text-center">
<h4 class="fw-bold mb-3">Globing</h4>
</div>
<form class="login-form">
<div class="row">
<div class="col-lg-12 mt-2">
<input type="text" class="form-control" placeholder="First Name" required="">
</div>
<div class="col-lg-12 mt-2">
<input type="email" class="form-control" placeholder="Email" required="">
</div>
<div class="col-lg-12 mt-2">
<input type="password" class="form-control" placeholder="Password" required="">
</div>
<div class="col-lg-12 mt-2">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="flexCheckDefault">
<label class="form-check-label" for="flexCheckDefault">
I Accept <a href="#">Terms And Condition</a>
</label>
</div>
</div>
<div class="col-lg-12 mt-4">
<button class="btn btn-primary w-100">Register</button>
</div>
</div>
</form>
</div>
<div class="text-center mt-3">
<p><small class="text-white me-2">Already have an account ?</small> <a routerLink="/login" class="text-white fw-bold">Sign in</a></p>
</div>
</div>
</div>
</div>
</section>

View File

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { SignupComponent } from './signup.component';
describe('SignupComponent', () => {
let component: SignupComponent;
let fixture: ComponentFixture<SignupComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ SignupComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(SignupComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-signup',
templateUrl: './signup.component.html',
styleUrls: ['./signup.component.scss']
})
export class SignupComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}