Fairoj : Certificate Social Media Share and issues Fixes

This commit is contained in:
venbatechnologies@gmail.com 2019-10-21 19:52:03 +05:30
parent b3345404bf
commit 83725caed0
38 changed files with 761 additions and 85 deletions

View File

@ -702,6 +702,43 @@
} }
} }
}, },
"@fortawesome/angular-fontawesome": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.5.0.tgz",
"integrity": "sha512-5IR/jNMddiEpgApcqSMfp7l5kZqOtxQYzkSLW6iZ4MZHbQQ+Kc9tu9qi2hro6VFSk/sPxeYEzkzGZUNrMYiwOg==",
"requires": {
"tslib": "^1.9.0"
}
},
"@fortawesome/fontawesome-common-types": {
"version": "0.2.25",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.25.tgz",
"integrity": "sha512-3RuZPDuuPELd7RXtUqTCfed14fcny9UiPOkdr2i+cYxBoTOfQgxcDoq77fHiiHcgWuo1LoBUpvGxFF1H/y7s3Q=="
},
"@fortawesome/fontawesome-svg-core": {
"version": "1.2.25",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.25.tgz",
"integrity": "sha512-MotKnn53JKqbkLQiwcZSBJVYtTgIKFbh7B8+kd05TSnfKYPFmjKKI59o2fpz5t0Hzl35vVGU6+N4twoOpZUrqA==",
"requires": {
"@fortawesome/fontawesome-common-types": "^0.2.25"
}
},
"@fortawesome/free-brands-svg-icons": {
"version": "5.11.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.11.2.tgz",
"integrity": "sha512-wKK5znpHiZ2S0VgOvbeAnYuzkk3H86rxWajD9PVpfBj3s/kySEWTFKh/uLPyxiTOx8Tsd0OGN4En/s9XudVHLQ==",
"requires": {
"@fortawesome/fontawesome-common-types": "^0.2.25"
}
},
"@fortawesome/free-solid-svg-icons": {
"version": "5.11.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.11.2.tgz",
"integrity": "sha512-zBue4i0PAZJUXOmLBBvM7L0O7wmsDC8dFv9IhpW5QL4kT9xhhVUsYg/LX1+5KaukWq4/cbDcKT+RT1aRe543sg==",
"requires": {
"@fortawesome/fontawesome-common-types": "^0.2.25"
}
},
"@ngtools/webpack": { "@ngtools/webpack": {
"version": "8.2.2", "version": "8.2.2",
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.2.2.tgz", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.2.2.tgz",
@ -726,6 +763,30 @@
} }
} }
}, },
"@ngx-share/button": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ngx-share/button/-/button-7.1.4.tgz",
"integrity": "sha512-XgmrQhpnB8CuRSdLYPWZgSz/zcJC7dNdK40MUjZA/0Z5tzMVkhcvrig6MRD0JBoBDbLd2HPG3XlfoWQqMZicZQ==",
"requires": {
"tslib": "^1.9.0"
}
},
"@ngx-share/buttons": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ngx-share/buttons/-/buttons-7.1.4.tgz",
"integrity": "sha512-dcJm2qY5IvJH7FuzpyRTeBXpg86WkSqXfEaHMGHCKWwptM8twZxyyZwVorDLrtsMEHabUzw1mhqlX6DsiqSobA==",
"requires": {
"tslib": "^1.9.0"
}
},
"@ngx-share/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ngx-share/core/-/core-7.1.4.tgz",
"integrity": "sha512-N6j1/7/I27Wfz1Uoy15uQ8fpRkPZXF1g9+dKrkEh6yi9jKmqNjr1hHB59DHfxrTGivxAgEEFgZMgnPzTd+2kcQ==",
"requires": {
"tslib": "^1.9.0"
}
},
"@ngx-translate/core": { "@ngx-translate/core": {
"version": "10.0.2", "version": "10.0.2",
"resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-10.0.2.tgz", "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-10.0.2.tgz",
@ -1226,6 +1287,11 @@
"tslib": "^1.9.0" "tslib": "^1.9.0"
} }
}, },
"angular-socialshare": {
"version": "2.3.11",
"resolved": "https://registry.npmjs.org/angular-socialshare/-/angular-socialshare-2.3.11.tgz",
"integrity": "sha1-BTKLM9mF/Zt+FQAmPCCpqg+ELJk="
},
"angular-sortablejs": { "angular-sortablejs": {
"version": "2.7.0", "version": "2.7.0",
"resolved": "https://registry.npmjs.org/angular-sortablejs/-/angular-sortablejs-2.7.0.tgz", "resolved": "https://registry.npmjs.org/angular-sortablejs/-/angular-sortablejs-2.7.0.tgz",
@ -7520,6 +7586,14 @@
"tslib": "^1.9.0" "tslib": "^1.9.0"
} }
}, },
"ngx-social-button": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/ngx-social-button/-/ngx-social-button-1.0.4.tgz",
"integrity": "sha512-4viKbk68w0cZx2njg6gdrSi5e9ndqtSdAst+eWn1dW2C46QlIe/bTRLECZzBzkMm3YzinZMMgwzWG+6ZEcM32A==",
"requires": {
"tslib": "^1.9.0"
}
},
"nice-try": { "nice-try": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",

View File

@ -14,7 +14,7 @@
"dependencies": { "dependencies": {
"@agm/core": "^1.0.0-beta.5", "@agm/core": "^1.0.0-beta.5",
"@angular/animations": "^8.2.2", "@angular/animations": "^8.2.2",
"@angular/cdk": "^7.0.3", "@angular/cdk": "^7.3.7",
"@angular/common": "^8.2.2", "@angular/common": "^8.2.2",
"@angular/compiler": "^8.2.2", "@angular/compiler": "^8.2.2",
"@angular/core": "^8.2.2", "@angular/core": "^8.2.2",
@ -24,10 +24,18 @@
"@angular/platform-browser": "^8.2.2", "@angular/platform-browser": "^8.2.2",
"@angular/platform-browser-dynamic": "^8.2.2", "@angular/platform-browser-dynamic": "^8.2.2",
"@angular/router": "^8.2.2", "@angular/router": "^8.2.2",
"@fortawesome/angular-fontawesome": "^0.5.0",
"@fortawesome/fontawesome-svg-core": "^1.2.25",
"@fortawesome/free-brands-svg-icons": "^5.11.2",
"@fortawesome/free-solid-svg-icons": "^5.11.2",
"@ngx-share/button": "^7.1.4",
"@ngx-share/buttons": "^7.1.4",
"@ngx-share/core": "^7.1.4",
"@ngx-translate/core": "^10.0.2", "@ngx-translate/core": "^10.0.2",
"@ngx-translate/http-loader": "^3.0.1", "@ngx-translate/http-loader": "^3.0.1",
"@swimlane/ngx-datatable": "^15.0.2", "@swimlane/ngx-datatable": "^15.0.2",
"angular-calendar": "^0.26.4", "angular-calendar": "^0.26.4",
"angular-socialshare": "^2.3.11",
"angular-sortablejs": "^2.6.0", "angular-sortablejs": "^2.6.0",
"angular-tree-component": "^8.4.0", "angular-tree-component": "^8.4.0",
"chart.js": "^2.7.3", "chart.js": "^2.7.3",
@ -53,6 +61,7 @@
"ngx-cookie-service": "^2.2.0", "ngx-cookie-service": "^2.2.0",
"ngx-perfect-scrollbar": "5.0.0-7", "ngx-perfect-scrollbar": "5.0.0-7",
"ngx-slick-carousel": "^0.4.6", "ngx-slick-carousel": "^0.4.6",
"ngx-social-button": "^1.0.4",
"perfect-scrollbar": "^1.4.0", "perfect-scrollbar": "^1.4.0",
"quill": "^1.3.6", "quill": "^1.3.6",
"rxjs": "^6.3.3", "rxjs": "^6.3.3",

View File

@ -51,7 +51,7 @@ import { AuthGuardService } from './shared/guards/auth-guard.service';
import { MatTableDataSource, MatTableModule, MatSlideToggleModule, MatRadioModule, MatButtonModule } from '@angular/material'; import { MatTableDataSource, MatTableModule, MatSlideToggleModule, MatRadioModule, MatButtonModule } from '@angular/material';
import { SchoolDetailsService } from './shared/school-details.service'; import { SchoolDetailsService } from './shared/school-details.service';
// import { AddEventModule } from './add-event.module'; // import { AddEventModule } from './add-event.module';
import {HashLocationStrategy,LocationStrategy} from '@angular/common'; import {HashLocationStrategy,LocationStrategy,PathLocationStrategy} from '@angular/common';
import {CookieService} from 'ngx-cookie-service' import {CookieService} from 'ngx-cookie-service'
import { LoginComponent } from './components/login/login.component'; import { LoginComponent } from './components/login/login.component';
import { RegisterComponent } from './components/register/register.component'; import { RegisterComponent } from './components/register/register.component';
@ -59,8 +59,14 @@ import { ReqListComponent } from './components/req-list/req-list.component';
import { UserProfileComponent } from './components/user-profile/user-profile.component'; import { UserProfileComponent } from './components/user-profile/user-profile.component';
import { SuccessComponent } from './components/payment-status/success/success.component'; import { SuccessComponent } from './components/payment-status/success/success.component';
import { FailureComponent } from './components/payment-status/failure/failure.component'; import { FailureComponent } from './components/payment-status/failure/failure.component';
import { UserCertificateComponent } from './components/user-certificate/user-certificate.component'; import { UserCertificateComponent, userCertificateDisplay } from './components/user-certificate/user-certificate.component';
import { PrivacyPolicyComponent } from './components/privacy-policy/privacy-policy.component'; import { PrivacyPolicyComponent } from './components/privacy-policy/privacy-policy.component';
import {
NgxSocialButtonModule,
SocialServiceConfig
} from "ngx-social-button";
import { PasswordChangeComponent } from './components/password-change/password-change.component';
import { ShareButtonsModule } from '@ngx-share/buttons';
export function HttpLoaderFactory(http: HttpClient) { export function HttpLoaderFactory(http: HttpClient) {
@ -70,6 +76,13 @@ export function HttpLoaderFactory(http: HttpClient) {
export function createTranslateLoader(http: HttpClient) { export function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json'); return new TranslateHttpLoader(http, './assets/i18n/', '.json');
} }
export function getAuthServiceConfigs() {
let config = new SocialServiceConfig()
.addFacebook("Your-Facebook-app-id")
.addGoogle("Your-Google-Client-Id")
.addLinkedIn("Your-LinkedIn-Client-Id");
return config;
}
const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = { const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
suppressScrollX: true suppressScrollX: true
@ -95,6 +108,8 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
FailureComponent, FailureComponent,
UserCertificateComponent, UserCertificateComponent,
PrivacyPolicyComponent, PrivacyPolicyComponent,
PasswordChangeComponent,
userCertificateDisplay
// ProjectListComponent // ProjectListComponent
], ],
@ -139,6 +154,8 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
MatSlideToggleModule, MatSlideToggleModule,
MatProgressBarModule, MatProgressBarModule,
// MDBBootstrapModule.forRoot() // MDBBootstrapModule.forRoot()
NgxSocialButtonModule,
ShareButtonsModule
], ],
providers: [ providers: [
TranslateService, TranslateService,
@ -153,8 +170,12 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
multi: true multi: true
},AuthGuardService, },AuthGuardService,
SchoolDetailsService, SchoolDetailsService,
{
provide: SocialServiceConfig,
useFactory: getAuthServiceConfigs
},
], ],
entryComponents: [], entryComponents: [PasswordChangeComponent,UserCertificateComponent],
bootstrap: [AppComponent] bootstrap: [AppComponent]
}) })
export class AppModule { } export class AppModule { }

View File

@ -15,7 +15,7 @@ import { Component } from '@angular/core';
import { UserProfileComponent } from './components/user-profile/user-profile.component'; import { UserProfileComponent } from './components/user-profile/user-profile.component';
import { SuccessComponent } from './components/payment-status/success/success.component'; import { SuccessComponent } from './components/payment-status/success/success.component';
import { FailureComponent } from './components/payment-status/failure/failure.component'; import { FailureComponent } from './components/payment-status/failure/failure.component';
import { UserCertificateComponent } from './components/user-certificate/user-certificate.component'; import { UserCertificateComponent, userCertificateDisplay } from './components/user-certificate/user-certificate.component';
import { PrivacyPolicyComponent } from './components/privacy-policy/privacy-policy.component'; import { PrivacyPolicyComponent } from './components/privacy-policy/privacy-policy.component';
export const AppRoutes: Routes = [{ export const AppRoutes: Routes = [{
path: '', path: '',
@ -67,7 +67,7 @@ export const AppRoutes: Routes = [{
}, },
{ {
path:'user-certificate', path:'user-certificate',
component:UserCertificateComponent component:userCertificateDisplay
}, },
{ {
canActivate:[AuthGuardService], canActivate:[AuthGuardService],

View File

@ -203,5 +203,5 @@
<!-- </div> --> <!-- </div> -->
</div> </div>
<footer class="footer"> <footer class="footer">
<h5>&#9400; TN Schools, All rights reserved &nbsp;&nbsp;<span ><a class="footer-privacy" href="#/privacy-policy" target="_blank">Privacy Policy</a></span></h5> <h5>&#9400; TN Schools, All rights reserved &nbsp;&nbsp;|<span class="footer-web"><a class="footer-privacy" href="#/privacy-policy" target="_blank">Privacy Policy</a></span></h5>
</footer> </footer>

View File

@ -125,12 +125,13 @@ a {
// bottom: 10px; // bottom: 10px;
top:20px; top:20px;
// margin:0; // margin:0;
width: 97%; width: 100%;
padding-left:10px; padding-left:10px;
/* Set the fixed height of the footer here */ /* Set the fixed height of the footer here */
height: 40px; height: 40px;
line-height: 60px; line-height: 60px;
background-color:rgb(69, 189, 189); background-color:rgb(69, 189, 189);
z-index: 3;
} }
.footer-privacy{ .footer-privacy{
@ -149,6 +150,16 @@ a {
-webkit-transform: translateX(-50%) translateY(-50%); -webkit-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%); transform: translateX(-50%) translateY(-50%);
} }
.footer-privacy{
color:blue;
text-decoration: underline;
cursor: pointer;
}
.footer-web{
margin-left: 15px;
}
.quote{ .quote{
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
font-size: 16px; font-size: 16px;

View File

@ -0,0 +1,30 @@
<div fxLayout="column">
<div fxFlex="100" fxFlex.xs="100" fxFlex.sm="100" style="margin:10px">
<div class="close_icon" (click)="closeDialog()">
<mat-icon >close</mat-icon>
</div>
<header> <h4>Password Change</h4></header>
<!-- <mat-card style="width:100%">
<mat-card-header>
<mat-card-title>
</mat-card-title>
</mat-card-header> -->
<form [formGroup]="passwordChangeForm">
<mat-form-field appearance="outline" style="width:100%">
<input matInput type="password" placeholder="Password" formControlName="password" autocomplete="off">
</mat-form-field>
<mat-form-field appearance="outline" style="width:100%">
<input matInput type="password" placeholder="Confirm Password" formControlName="confirm_password" autocomplete="off" (keyup)="checkValidators($event.target.value,'pass')">
</mat-form-field>
<div style="color:red;font-size: 12px;margin-bottom: 5px;" *ngIf="pass_pattern_error"> Password & Confirm Password does not match.</div><br/>
<button style="float:right;" class="mat-red" mat-raised-button (click)="csrUserRegistration()">Update</button> <br/>
</form>
<!-- </mat-card> -->
</div>
</div>

View File

@ -0,0 +1,15 @@
.mat-card,mat-card{
background-color:rgba(255, 255, 255, 0.493);
}
.close_icon{
// float: right;
text-align: right;
color: gray;
margin: 0px;
padding: 0px;
}
.close_icon:hover {
transition: transform 1.5s;
// color: blue;
cursor: pointer;
}

View File

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

View File

@ -0,0 +1,90 @@
import { Component, OnInit, Inject } from '@angular/core';
import {environment} from 'environments/environment'
import { ApiService } from 'app/shared/api.service';
import { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';
import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material';
import { Router } from '@angular/router';
@Component({
selector: 'app-password-change',
templateUrl: './password-change.component.html',
styleUrls: ['./password-change.component.scss']
})
export class PasswordChangeComponent implements OnInit {
passwordChangeForm:FormGroup
pass_pattern_error: boolean;
go_reg: any;
constructor(private restApi:ApiService,private fb:FormBuilder,private dialogRef:MatDialog,@Inject(MAT_DIALOG_DATA) public data:any,private router:Router) {
console.log(data)
}
ngOnInit() {
this.passwordChangeForm=this.fb.group({
id:[this.data,Validators.compose([Validators.required])],
password:['',Validators.compose([Validators.required])],
confirm_password:['',Validators.compose([Validators.required])]
// name:[''],
// email:[{value:'',disabled:true}],
// mobile:[{value:'',disabled:true}],
// password:[null],
// user_type:new FormControl(''),
// org_info: this.fb.group({
// id:[''],
// orgname: new FormControl(''),
// org_address: new FormControl(''),
// org_pan: new FormControl(''),
// }),
// profile_share:['',{disabled:true}],
// notify_pref:['',{disable:true}]
})
}
checkValidators(value,option){
if(option == 'pass'){
if(value == this.passwordChangeForm.value.password){
this.pass_pattern_error=false
}
else{
this.pass_pattern_error=true
}
}
}
csrUserRegistration()
{
if(this.pass_pattern_error){
return;
}
if(this.passwordChangeForm.invalid){
alert("Please fill the password and confirm password")
return;
}
// this.go_reg.removeControl('confirm_password')
// this.go_reg.removeControl('cofirm_email')
// console.log(this.go_reg.value);return false;
let url = `${environment.apiUrl}${'csrUserRegistration'}`;
console.log("dd",url)
let data = this.passwordChangeForm.value;
delete data.confirm_email
delete data.confirm_password
this.restApi.post(url,data).subscribe(schDet=>
{
console.log("result",schDet)
alert("Password Updated Successfully, Please Login Again..")
this.dialogRef.closeAll()
this.signOut()
// this.router.navigate(['/authentication/login']);
})
}
signOut(){
this.restApi.signOut()
this.router.navigateByUrl('/')
}
closeDialog(){
this.dialogRef.closeAll()
}
}

View File

@ -28,7 +28,7 @@
<mat-card> <mat-card>
<mat-card-header> <mat-card-header>
<mat-card-title> <mat-card-title>
Review <h5>Review</h5>
</mat-card-title> </mat-card-title>
</mat-card-header> </mat-card-header>
<mat-card-content> <mat-card-content>
@ -94,7 +94,11 @@
<div *ngIf="payment_mode == '2' && contribute_type != '2'" class="ac_det"> <div *ngIf="payment_mode == '2' && contribute_type != '2'" class="ac_det">
<div fxLayout="row" fxLayout.xs="column" fxLayoutGap.lg="0" class="p-2"> <div fxLayout="row" fxLayout.xs="column" fxLayoutGap.lg="0" class="p-2">
<div fxFlex="50" fxFlex.xs="100" fxFlex.sm="100" > <div fxFlex="50" fxFlex.xs="100" fxFlex.sm="100" >
<mat-card class="p-2"> <mat-card class="add-text">
<mat-card-header>
<mat-card-title>Account Details</mat-card-title>
</mat-card-header>
<mat-card-content>
<p>A/C Name : Tamil Nadu State Parent Teacher Association - CSR Funds <br> <p>A/C Name : Tamil Nadu State Parent Teacher Association - CSR Funds <br>
<!-- <p>Association : CSR Funds</p> --> <!-- <p>Association : CSR Funds</p> -->
A/C Number : 142301000022944 <br> A/C Number : 142301000022944 <br>
@ -102,6 +106,7 @@
IFSC : IOBA0001423<br> IFSC : IOBA0001423<br>
Bank : Indian Overseas Bank<br> Bank : Indian Overseas Bank<br>
Branch : College Road, Chennai Branch : College Road, Chennai
</mat-card-content>
</mat-card> </mat-card>
</div> </div>
<div fxFlex="50" fxFlex.xs="100" fxFlex.sm="100" > <div fxFlex="50" fxFlex.xs="100" fxFlex.sm="100" >
@ -116,22 +121,22 @@
</mat-form-field> </mat-form-field>
<div *ngIf="offlineDetForm.value.payment_type == '1' && offlineDetForm.controls['check_branch_bank']"> <div *ngIf="offlineDetForm.value.payment_type == '1' && offlineDetForm.controls['check_branch_bank']">
<div fxLayout="row"> <div fxLayout="row" fxLayout.xs="column">
<mat-form-field style="width: 50%;" class="mr-1"> <mat-form-field class="mr-1" fxFlex.xs="100" fxFlex="50" >
<input matInput type="text" formControlName="payment_ref" placeholder="Cheque / DD Number"> <input matInput type="text" formControlName="payment_ref" placeholder="Cheque / DD Number">
</mat-form-field> </mat-form-field>
<mat-form-field style="width: 50%;"> <mat-form-field fxFlex.xs="100" fxFlex="50">
<input matInput [matDatepicker]="picker" placeholder="Date" formControlName="check_date"> <input matInput [matDatepicker]="picker" placeholder="Date" formControlName="check_date">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker> <mat-datepicker #picker></mat-datepicker>
</mat-form-field> </mat-form-field>
</div> </div>
<div fxLayout="row"> <div fxLayout="row" fxLayout.xs="column">
<mat-form-field style="width: 50%;" class="mr-1"> <mat-form-field fxFlex.xs="100" fxFlex="50" class="mr-1">
<input matInput type="text" formControlName="check_branch_bank" placeholder="Drawn on Bank and Branch"> <input matInput type="text" formControlName="check_branch_bank" placeholder="Drawn on Bank and Branch">
</mat-form-field> </mat-form-field>
<mat-form-field style="width: 50%;"> <mat-form-field fxFlex.xs="100" fxFlex="50">
<mat-select placeholder="Mode of deposit" formControlName="check_deposit_mode"> <mat-select placeholder="Mode of deposit" formControlName="check_deposit_mode">
<mat-option *ngFor="let value of deposit_mode_data" [value]="value.id">{{value.name}}</mat-option> <mat-option *ngFor="let value of deposit_mode_data" [value]="value.id">{{value.name}}</mat-option>
@ -142,13 +147,13 @@
<div fxLayout="row"> <div fxLayout="row">
<div fxFlex="100" fxFlex.xs="100" fxFlex.sm="100" > <div fxFlex="100" fxFlex.xs="100" fxFlex.sm="100" >
<div *ngIf="offlineDetForm.value.check_deposit_mode == '1' && offlineDetForm.controls['check_deposit_mode']"> <div *ngIf="offlineDetForm.value.check_deposit_mode == '1' && offlineDetForm.controls['check_deposit_mode']">
<p>Please despatch your Cheque / DD to the below address :<br> <p style="font-weight:100">Please despatch your Cheque / DD to the below address :<br>
<span class="add-text">
The Secretary,<br> The Secretary,<br>
Tamil Nadu State Parent Teachers Association<br> Tamil Nadu State Parent Teachers Association<br>
6, College Rd, Subba Road Avenue, <br> 6, College Rd, Subba Road Avenue, <br>
Nungambakkam, Chennai 600006<br> Nungambakkam, Chennai 600006<br>
Tamil Nadu</p> Tamil Nadu</span></p>
</div> </div>
<div *ngIf="offlineDetForm.value.check_deposit_mode == '2' && offlineDetForm.controls['check_deposit_mode']"> <div *ngIf="offlineDetForm.value.check_deposit_mode == '2' && offlineDetForm.controls['check_deposit_mode']">
<mat-form-field style="width: 100%;"> <mat-form-field style="width: 100%;">
@ -259,3 +264,7 @@
</form> </form>
</mat-card> </mat-card>
<footer class="footer">
<h5>&#9400; TN Schools, All rights reserved &nbsp;&nbsp;|<span class="footer-web"><a class="footer-privacy" href="#/privacy-policy" target="_blank">Privacy Policy</a></span></h5>
</footer>

View File

@ -204,3 +204,41 @@ $product-bg-color-hover: rgba(103, 58, 183, 0.7);
.half-field{ .half-field{
width: 40%; width: 40%;
} }
.footer {
margin:0;
width:100%;
overflow: hidden;
position: relative;
// bottom: 10px;
top:20px;
// margin:0;
width: 100%;
padding-left:10px;
/* Set the fixed height of the footer here */
height: 40px;
line-height: 60px;
background-color:rgb(69, 189, 189);
}
.footer h5{
font-size: 13px;
color:white;
font-weight: bold;
position: absolute;
top: 1%;
left: 50%;
-moz-transform: translateX(-50%) translateY(-50%);
-webkit-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
}
.footer-privacy{
color:blue;
text-decoration: underline;
}
.footer-web{
margin-left: 15px;
}
.add-text{
//font-family: monospace;
font-weight: 500;
}

View File

@ -118,7 +118,7 @@ export class PaymentComponent implements OnInit {
} }
proceed_for_payment(){ proceed_for_payment(){
if(this.payment_mode == ''){ if(this.payment_mode == '' && this.contribute_type != '2'){
alert('Please Choose the Payment Option') alert('Please Choose the Payment Option')
return; return;
} }

View File

@ -479,3 +479,6 @@ updated and became immediately effective on October, 16th 2019</FONT></FONT></P>
</BODY> </BODY>
</HTML> </HTML>
</mat-card-content></mat-card> </mat-card-content></mat-card>
<footer class="footer">
<h5>&#9400; TN Schools, All rights reserved &nbsp;&nbsp;|<span class="footer-web"><a class="footer-privacy" href="#/privacy-policy" target="_blank">Privacy Policy</a></span></h5>
</footer>

View File

@ -0,0 +1,35 @@
.footer {
margin:0;
width:100%;
overflow: hidden;
position: relative;
// bottom: 10px;
top:20px;
// margin:0;
width: 100%;
padding-left:10px;
/* Set the fixed height of the footer here */
height: 40px;
line-height: 60px;
background-color:rgb(69, 189, 189);
}
.footer h5{
font-size: 13px;
color:white;
font-weight: bold;
position: absolute;
top: 1%;
left: 50%;
-moz-transform: translateX(-50%) translateY(-50%);
-webkit-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
}
.footer-privacy{
color:blue;
text-decoration: underline;
}
.footer-web{
margin-left: 15px;
}

View File

@ -1,5 +1,11 @@
<!-- <app-layout-admin></app-layout-admin> --> <!-- <app-layout-admin></app-layout-admin> -->
<div id="top"></div> <div id="top"></div>
<head>
<meta property="og:description" content="description" />
<meta property="og:image" content="http://cdn.some.com/random.jpg" />
<div id='hidden' style='display:none;'><img src="http://cdn.some.com/random.jpg"></div>
</head>
<mat-card class="p-2 main-detail-product"> <mat-card class="p-2 main-detail-product">
<div fxLayout="row wrap"> <div fxLayout="row wrap">
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="30" fxFlex.lg="50" fxFlex.xl="30"> <div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="30" fxFlex.lg="50" fxFlex.xl="30">
@ -494,5 +500,5 @@
</div> </div>
</mat-card> </mat-card>
<footer class="footer"> <footer class="footer">
<h5>&#9400; TN Schools, All rights reserved &nbsp;&nbsp;<span ><a class="footer-privacy" href="#/privacy-policy" target="_blank">Privacy Policy</a></span></h5> <h5>&#9400; TN Schools, All rights reserved &nbsp;&nbsp;|<span class="footer-web"><a class="footer-privacy" href="#/privacy-policy" target="_blank">Privacy Policy</a></span></h5>
</footer> </footer>

View File

@ -156,6 +156,10 @@ table {
text-decoration: underline; text-decoration: underline;
} }
.footer-web{
margin-left: 15px;
}
.support_mat{ .support_mat{
border:2px solid gray; border:2px solid gray;
border-radius: 10px; border-radius: 10px;

View File

@ -445,5 +445,5 @@
<!-- </div> --> <!-- </div> -->
</div> </div>
<footer class="footer"> <footer class="footer">
<h5>&#9400; TN Schools, All rights reserved &nbsp;&nbsp;<span ><a class="footer-privacy" href="#/privacy-policy" target="_blank">Privacy Policy</a></span></h5> <h5>&#9400; TN Schools, All rights reserved &nbsp;&nbsp;|<span class="footer-web"><a class="footer-privacy" href="#/privacy-policy" target="_blank">Privacy Policy</a></span></h5>
</footer> </footer>

View File

@ -178,3 +178,7 @@ $product-bg-color-hover: rgba(103, 58, 183, 0.7);
text-decoration: underline; text-decoration: underline;
} }
.footer-web{
margin-left: 15px;
}

View File

@ -19,7 +19,7 @@
<input matInput placeholder="E Mail" type="email" name="email" formControlName="email" required > <input matInput placeholder="E Mail" type="email" name="email" formControlName="email" required >
</mat-form-field> </mat-form-field>
<mat-form-field style="width: 100%"> <mat-form-field style="width: 100%">
<input matInput placeholder="Confirm E Mail" type="email" name="confirm_email" formControlName="confirm_email" required (change)="checkValidators($event.target.value,'email')"> <input matInput placeholder="Confirm E Mail" type="email" name="confirm_email" formControlName="confirm_email" required (keyup)="checkValidators($event.target.value,'email')">
</mat-form-field> </mat-form-field>
<div style="color:red;font-size: 14px;float: right" *ngIf="email_pattern_error"> Email & Confirm Email does not match.</div> <div style="color:red;font-size: 14px;float: right" *ngIf="email_pattern_error"> Email & Confirm Email does not match.</div>
<mat-form-field style="width: 100%"> <mat-form-field style="width: 100%">
@ -35,7 +35,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field style="width: 100%"> <mat-form-field style="width: 100%">
<input matInput placeholder="Confirm Password" type="password" name="confirm_password" formControlName="confirm_password" required (change)="checkValidators($event.target.value,'pass')"> <input matInput placeholder="Confirm Password" type="password" name="confirm_password" formControlName="confirm_password" required (keyup)="checkValidators($event.target.value,'pass')">
</mat-form-field> </mat-form-field>
<div style="color:red;font-size: 14px;float: right" *ngIf="pass_pattern_error"> Password & Confirm Password does not match.</div> <div style="color:red;font-size: 14px;float: right" *ngIf="pass_pattern_error"> Password & Confirm Password does not match.</div>
<!-- <div fxLayout="row" fxLayoutAlign="start center" class="mb-2"> <!-- <div fxLayout="row" fxLayoutAlign="start center" class="mb-2">
@ -59,20 +59,20 @@
<div fxLayout="column" fxLayoutAlign="start stretch" formGroupName="org_info"> <div fxLayout="column" fxLayoutAlign="start stretch" formGroupName="org_info">
<div *ngIf="slide1"> <div *ngIf="slide1">
<mat-form-field style="width: 100%"> <mat-form-field style="width: 100%">
<input matInput placeholder="Organisation Name" type="text" name="orgname" formControlName="orgname" required> <input matInput placeholder="Organisation Name" type="text" name="orgname" formControlName="orgname" >
</mat-form-field> </mat-form-field>
<mat-form-field style="width: 100%;"> <mat-form-field style="width: 100%;">
<textarea matInput placeholder="Registered Address" name="org_address" formControlName="org_address" required></textarea> <textarea matInput placeholder="Registered Address" name="org_address" formControlName="org_address" ></textarea>
</mat-form-field> </mat-form-field>
</div> </div>
<div class="mt-1 mb-1"> <div class="mt-1 mb-1">
<label class="mr-1">Do you want to avail 80G Exemption</label> <label class="mr-1">Do you want to avail 80G Exemption</label>
<mat-slide-toggle name="slideToggle" (change)="change_fun2($event)" required> <mat-slide-toggle name="slideToggle" (change)="change_fun2($event)" >
</mat-slide-toggle> </mat-slide-toggle>
</div> </div>
<div *ngIf="slide2"> <div *ngIf="slide2">
<mat-form-field style="width: 100%"> <mat-form-field style="width: 100%">
<input matInput placeholder="PAN of the Organisation" type="text" name="org_pan" max="10" maxlength="10" formControlName="org_pan" required> <input matInput placeholder="PAN of the Organisation" type="text" name="org_pan" max="10" maxlength="10" formControlName="org_pan" >
</mat-form-field> </mat-form-field>
</div> </div>
</div> </div>

View File

@ -38,13 +38,13 @@ export class RegisterComponent {
this.go_reg = this.fb.group( this.go_reg = this.fb.group(
{ {
id: new FormControl(''), id: new FormControl(''),
name: new FormControl(''), name: new FormControl('',Validators.compose([Validators.required])),
email: new FormControl('',Validators.email), email: new FormControl('',Validators.compose([Validators.required,Validators.email])),
confirm_email:new FormControl('',Validators.email), confirm_email:new FormControl('',Validators.compose([Validators.required,Validators.email])),
mobile: new FormControl(''), mobile: new FormControl(''),
// user_dob:new FormControl(''), // user_dob:new FormControl(''),
password: new FormControl(''), password: new FormControl('',Validators.compose([Validators.required])),
confirm_password:new FormControl(''), confirm_password:new FormControl('',Validators.compose([Validators.required])),
user_type:new FormControl('1'), user_type:new FormControl('1'),
org_info: this.fb.group({ org_info: this.fb.group({
orgname: new FormControl(''), orgname: new FormControl(''),
@ -129,7 +129,10 @@ export class RegisterComponent {
} }
csrUserRegistration() csrUserRegistration()
{ {
if(this.go_reg.invalid){
alert("Please fill all the mandatory fields marked with '*'")
return;
}
// this.go_reg.removeControl('confirm_password') // this.go_reg.removeControl('confirm_password')
// this.go_reg.removeControl('cofirm_email') // this.go_reg.removeControl('cofirm_email')
// console.log(this.go_reg.value);return false; // console.log(this.go_reg.value);return false;

View File

@ -44,14 +44,14 @@
<!-- price Column --> <!-- price Column -->
<ng-container matColumnDef="Cost_Per_Unit"> <ng-container matColumnDef="Cost_Per_Unit">
<mat-header-cell *matHeaderCellDef > Cost Per Unit<br> (in Rs) </mat-header-cell> <mat-header-cell *matHeaderCellDef > Cost Per Unit<br> (in Rs) </mat-header-cell>
<mat-cell data-label="Cost/Qty" style="text-align: right;" *matCellDef="let row;" > {{row.cost_per_unit === null?0:row.cost_per_unit}} </mat-cell> <mat-cell data-label="Cost/Qty" *matCellDef="let row;" > {{row.cost_per_unit === null?0:row.cost_per_unit}} </mat-cell>
<!-- <td mat-footer-cell *matFooterCellDef> Total </td> --> <!-- <td mat-footer-cell *matFooterCellDef> Total </td> -->
</ng-container> </ng-container>
<!-- Total Column --> <!-- Total Column -->
<ng-container matColumnDef="Amount"> <ng-container matColumnDef="Amount">
<mat-header-cell *matHeaderCellDef > Amount <br/>(in Rs) </mat-header-cell> <mat-header-cell *matHeaderCellDef > Amount <br/>(in Rs) </mat-header-cell>
<mat-cell data-label="Amount" style="text-align: right;" *matCellDef="let row ;let i=index" style="text-align: right;">{{row.amount}}</mat-cell> <mat-cell class="amount-mob" data-label="Amount" *matCellDef="let row ;let i=index">{{row.amount}}</mat-cell>
<!-- <td mat-footer-cell *matFooterCellDef> {{somethingChanged()}} </td> --> <!-- <td mat-footer-cell *matFooterCellDef> {{somethingChanged()}} </td> -->
</ng-container> </ng-container>

View File

@ -60,14 +60,21 @@
.mat-table .mat-cell:first-child { .mat-table .mat-cell:first-child {
margin-top: 4%; margin-top: 4%;
} }
.mat-column-Item_Need{
margin:0px;
padding: 0px;
flex: 0 0 18%;
}
} }
.mat-column-School{ .mat-column-School{
flex: 0 0 18%; flex: 0 0 18%;
} }
.mat-column-Item_Need{ .mat-column-Item_Need{
flex: 0 0 18%; flex: 0 0 18%;
} }
.mat-column-Required_Qty{ .mat-column-Required_Qty{
justify-content: center; justify-content: center;
@ -81,14 +88,18 @@
justify-content: center; justify-content: center;
} }
.mat-column-Sponsor_Qty{
justify-content: center;
}
.mat-column-Cost_Per_Unit{ .mat-column-Cost_Per_Unit{
flex: 0 0 12%; // flex: 0 0 12%;
justify-content: flex-end !important; justify-content: flex-end !important;
} }
.mat-column-Amount{ .mat-column-Amount{
margin:0px;
padding: 0px;
justify-content: flex-end ; justify-content: flex-end ;
align-items: flex-end;
text-align: right;
} }
@media(max-width:768px) { @media(max-width:768px) {
.main-detail-product { .main-detail-product {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -27,7 +27,7 @@
<!-- <div class=""> --> <!-- <div class=""> -->
<!-- <div class=""> --> <!-- <div class=""> -->
<div fxLayoutAlign="start" > <div fxLayoutAlign="start" #table_element >
<mat-tab-group class="mt-2"> <mat-tab-group class="mt-2">
<mat-tab class="tab-group" > <mat-tab class="tab-group" >
@ -41,7 +41,7 @@
<!-- <p>We would need some of your information to facilitate your contributions and keep you updated on the progress of the projects or new projects</p> --> <!-- <p>We would need some of your information to facilitate your contributions and keep you updated on the progress of the projects or new projects</p> -->
<form [formGroup]="profile_form"> <form [formGroup]="profile_form">
<div fxLayout="row" fxLayoutAlign="center center" fxLayoutAlign="flex-start" fxLayoutGap="10px" fxLayout.xs="column"> <div fxLayout="row" fxLayoutAlign="center center" fxLayoutAlign="flex-start" fxLayoutGap="10px" fxLayout.xs="column">
<mat-form-field style=" justify-content:center;align-content: center;" fxFlex.xs="100" fxFlex="70"> <mat-form-field style=" justify-content:center;align-content: center;" fxFlex.xs="100" fxFlex="100">
<input matInput placeholder="Name" type="text" name="name" formControlName="name" required> <input matInput placeholder="Name" type="text" name="name" formControlName="name" required>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex.xs="100" fxFlex="60"> <mat-form-field fxFlex.xs="100" fxFlex="60">
@ -105,7 +105,12 @@
<mat-radio-button value="no">No</mat-radio-button> <mat-radio-button value="no">No</mat-radio-button>
</mat-radio-group><br/><br/> --> </mat-radio-group><br/><br/> -->
<br/><br/> <br/><br/>
<!-- <button class="mat-red" mat-raised-button (click)="csrUserRegistration()">Register</button> --> <div style="float:right;">
<span style="margin-right: 20px;">
<a (click)="changePassword_fun()">Change Password</a>
</span>
<button style="float:right;" class="mat-red" mat-raised-button (click)="csrUserRegistration()">Update</button>
</div>
<!-- <div> <!-- <div>
<p>Sign Up Using</p> <a href="#" class="shared-icon mr-1 mat-blue"><i class="fa fa-facebook fa-lg mr-1"></i> Facebook</a><a href="#" class="shared-icon mat-red"><i class="fa fa-google fa-lg mr-1"></i>Google</a> <p>Sign Up Using</p> <a href="#" class="shared-icon mr-1 mat-blue"><i class="fa fa-facebook fa-lg mr-1"></i> Facebook</a><a href="#" class="shared-icon mat-red"><i class="fa fa-google fa-lg mr-1"></i>Google</a>
@ -144,12 +149,12 @@
<ng-template mat-tab-label>Contributions</ng-template> <ng-template mat-tab-label>Contributions</ng-template>
<h2 class="base-border">Contributions</h2> <h2 class="base-border">Contributions</h2>
<div *ngIf="contribution_data.length > 0"> <div *ngIf="contribution_data.length > 0">
<div style="text-align: right;"> <div style="text-align: right;" *ngIf="certificate_success_date != null && certificate_success_date!= ''">
<button mat-raised-button class="mb-1" color="primary" (click)="certificateDialog()">Certificate</button> <button mat-raised-button class="mb-1" color="primary" (click)="certificateDialog()">Certificate</button>
</div> </div>
<div id="table_element"> <div [ngClass]="{'example-container mat-elevation-z8':clientWidth <= 500}" >
<!--[ngClass]="{'example-container mat-elevation-z8':clientWidth <= 500}"--> <!--[ngClass]="{'example-container mat-elevation-z8':clientWidth <= 500}"-->
<table mat-table class="example-container mat-elevation-z8" <table mat-table
[dataSource]="dataSource" multiTemplateDataRows [dataSource]="dataSource" multiTemplateDataRows
> >
<ng-container matColumnDef="Date"> <ng-container matColumnDef="Date">
@ -315,3 +320,8 @@
</body> </body>
</html> </html>
</div> </div>
<footer class="footer">
<h5>&#9400; TN Schools, All rights reserved &nbsp;&nbsp;|<span class="footer-web"><a class="footer-privacy" href="#/privacy-policy" target="_blank">Privacy Policy</a></span></h5>
</footer>

View File

@ -179,4 +179,43 @@
} }
} }
.footer {
margin:0;
width:100%;
overflow: hidden;
position: relative;
// bottom: 10px;
top:20px;
// margin:0;
width: 100%;
padding-left:10px;
/* Set the fixed height of the footer here */
height: 40px;
line-height: 60px;
background-color:rgb(69, 189, 189);
}
.footer h5{
font-size: 13px;
color:white;
font-weight: bold;
position: absolute;
top: 1%;
left: 50%;
-moz-transform: translateX(-50%) translateY(-50%);
-webkit-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
}
.footer-privacy{
color:blue;
text-decoration: underline;
}
.footer-web{
margin-left: 15px;
}
.html2canvas-container { width: 3000px !important; height: 3000px !important; }
a{
text-decoration: underline;
color: blue;
}

View File

@ -4,10 +4,12 @@ import { FormGroup, FormBuilder, FormControl } from '@angular/forms';
import {animate, state, style, transition, trigger} from '@angular/animations'; import {animate, state, style, transition, trigger} from '@angular/animations';
import { MatTableDataSource, MatSnackBar, MatDialog } from '@angular/material'; import { MatTableDataSource, MatSnackBar, MatDialog } from '@angular/material';
import * as jspdf from 'jspdf'; import * as jspdf from 'jspdf';
import {environment} from 'environments/environment'
import html2canvas from 'html2canvas'; import html2canvas from 'html2canvas';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { UserCertificateComponent } from '../user-certificate/user-certificate.component'; import { UserCertificateComponent } from '../user-certificate/user-certificate.component';
import { PasswordChangeComponent } from '../password-change/password-change.component';
@Component({ @Component({
selector: 'app-user-profile', selector: 'app-user-profile',
@ -35,17 +37,21 @@ export class UserProfileComponent implements OnInit {
slide2: boolean; slide2: boolean;
@ViewChild('table_element',{static:true}) table_element @ViewChild('table_element',{static:true}) table_element
clientWidth: any; clientWidth: any;
certificate_success_date: any='';
constructor(private apiService:ApiService,private _fb:FormBuilder,private matSnackBar:MatSnackBar,public router:Router,private matDialog:MatDialog) { } constructor(private apiService:ApiService,private _fb:FormBuilder,private matSnackBar:MatSnackBar,public router:Router,private matDialog:MatDialog,private restApi:ApiService) { }
ngOnInit() { ngOnInit() {
this.getProfile() this.getProfile()
this.profile_form=this._fb.group({ this.profile_form=this._fb.group({
name:['',{disabled:true}], id:[''],
email:['',{disabled:true}], name:[''],
mobile:['',{disabled:true}], email:[{value:'',disabled:true}],
mobile:[{value:'',disabled:true}],
password:[null],
user_type:new FormControl(''), user_type:new FormControl(''),
org_info: this._fb.group({ org_info: this._fb.group({
id:[''],
orgname: new FormControl(''), orgname: new FormControl(''),
org_address: new FormControl(''), org_address: new FormControl(''),
org_pan: new FormControl(''), org_pan: new FormControl(''),
@ -73,12 +79,24 @@ export class UserProfileComponent implements OnInit {
this.user_data.user_type == '2' ? this.slide1 =true : this.slide1=false this.user_data.user_type == '2' ? this.slide1 =true : this.slide1=false
this.profile_form.patchValue(this.user_data) this.profile_form.patchValue(this.user_data)
this.profile_form.controls['org_info'].patchValue(this.user_data); this.profile_form.controls['org_info'].patchValue(this.user_data);
this.profile_form.controls['org_info']['controls'].id.setValue(this.user_data.org_id)
this.contribution_data=res['records'].contribution_data this.contribution_data=res['records'].contribution_data
this.contribution_data.forEach(element=>{ this.contribution_data.forEach(element=>{
element.detailRow=true; element.detailRow=true;
}) })
console.log("con",this.contribution_data,this.isExpansionDetailRow); console.log("con",this.contribution_data,this.isExpansionDetailRow);
this.contribution_data=this.contribution_data.filter(val=>val.payment_mode !='0') this.contribution_data=this.contribution_data.filter(val=>{
if(val.payment_mode == '0' && val.cont_type !=2){
}
else{
return val;
}
})
this.certificate_success_date=this.contribution_data.filter(val=>val.txnstatus == 'SUCCESS').map(val=>val.contribute_date)[0];
console.log(this.certificate_success_date)
this.dataSource=this.contribution_data; this.dataSource=this.contribution_data;
} }
}) })
@ -111,6 +129,9 @@ export class UserProfileComponent implements OnInit {
performOperation(data){ performOperation(data){
console.log(data) console.log(data)
this.matSnackBar.open("Processing Please Wait...",'', {
duration: 3000,
})
let param={ "merchant_txn_id":data.merchant_txn_id,"flag":""} let param={ "merchant_txn_id":data.merchant_txn_id,"flag":""}
if(data.txnstatus == 'SUCCESS'){ if(data.txnstatus == 'SUCCESS'){
param.flag="PDF" param.flag="PDF"
@ -135,6 +156,18 @@ export class UserProfileComponent implements OnInit {
}) })
} }
} }
else{
if(result['msg']){
this.matSnackBar.open(result['msg'],'', {
duration: 6000,
})
}
else{
this.matSnackBar.open("something went wrong try again later ",'', {
duration: 6000,
})
}
}
}) })
} }
generatePDF(){ generatePDF(){
@ -172,7 +205,34 @@ export class UserProfileComponent implements OnInit {
"height":"630px", "height":"630px",
"width":"820px", "width":"820px",
panelClass: 'custom-modalbox', panelClass: 'custom-modalbox',
data:{org_name:this.user_data.orgname,logged_user_name:user_name,latest_contribute_date:this.contribution_data[0].contribute_date} data:{org_name:this.user_data.orgname,logged_user_name:user_name,latest_contribute_date:this.certificate_success_date}
})
}
csrUserRegistration()
{
// this.go_reg.removeControl('confirm_password')
// this.go_reg.removeControl('cofirm_email')
// console.log(this.go_reg.value);return false;
let url = `${environment.apiUrl}${'csrUserRegistration'}`;
console.log("dd",url)
let data = this.profile_form.value;
delete data.confirm_email
delete data.confirm_password
this.restApi.post(url,data).subscribe(schDet=>
{
console.log("result",schDet)
alert("Updated Successfully")
// this.router.navigate(['/authentication/login']);
})
}
changePassword_fun(){
this.matDialog.open(PasswordChangeComponent,{
"height":"360px",
"width":"320px",
panelClass: 'custom-modalbox',
data:this.profile_form.value.id
}) })
} }

View File

@ -232,8 +232,6 @@ showCaptions="true"
</mat-card> --> </mat-card> -->
<footer class="footer"> <footer class="footer">
<h5>&#9400; TN Schools, All rights reserved &nbsp;&nbsp;<span ><a class="footer-privacy" href="#/privacy-policy" target="_blank">Privacy Policy</a></span></h5> <h5>&#9400; TN Schools, All rights reserved &nbsp;&nbsp;|<span class="footer-web"><a class="footer-privacy" href="#/privacy-policy" target="_blank">Privacy Policy</a></span></h5>
</footer> </footer>

View File

@ -752,6 +752,9 @@ hr{
text-decoration: underline; text-decoration: underline;
} }
.footer-web{
margin-left: 15px;
}
html body{ html body{
margin:0; margin:0;

View File

@ -134,6 +134,7 @@
<a [routerLink]="['/'+menuitem.state]" *ngIf="menuitem.type === 'sub' && menuitem.name == 'My Account' && user_name != ''"> <a [routerLink]="['/'+menuitem.state]" *ngIf="menuitem.type === 'sub' && menuitem.name == 'My Account' && user_name != ''">
<!-- <mat-icon>{{ menuitem.icon }}</mat-icon> --> <!-- <mat-icon>{{ menuitem.icon }}</mat-icon> -->
<span style="text-transform: capitalize;"><strong>{{ menuitem.name == 'My Account' ? user_name == '' ? menuitem.name : user_name : menuitem.name | translate }}</strong></span> <span style="text-transform: capitalize;"><strong>{{ menuitem.name == 'My Account' ? user_name == '' ? menuitem.name : user_name : menuitem.name | translate }}</strong></span>
<mat-icon class="menu-caret">arrow_drop_down</mat-icon>
</a> </a>
<ul class="dropdown" *ngIf="menuitem.type === 'sub' && user_name != ''"> <ul class="dropdown" *ngIf="menuitem.type === 'sub' && user_name != ''">

View File

@ -46,7 +46,10 @@ Author: TrendSetter Themes
@import "scss/utilities/utilities"; @import "scss/utilities/utilities";
.custom-modalbox { .custom-modalbox {
mat-dialog-container { mat-dialog-container {
padding: 0; padding: 0px;
margin: 0px;
} }
} }
@import '~@ngx-share/button/themes/default/default-theme';

View File

@ -44,7 +44,7 @@
body .login-session{ body .login-session{
position: relative; position: relative;
z-index: 99; z-index: 0;
padding: 2rem !important; padding: 2rem !important;
} }
.text-white { .text-white {

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

33
ng8-seed/src/icon.ts Normal file
View File

@ -0,0 +1,33 @@
import { library } from '@fortawesome/fontawesome-svg-core';
import { faFacebookF } from '@fortawesome/free-brands-svg-icons/faFacebookF';
import { faTwitter } from '@fortawesome/free-brands-svg-icons/faTwitter';
import { faRedditAlien } from '@fortawesome/free-brands-svg-icons/faRedditAlien';
import { faLinkedinIn } from '@fortawesome/free-brands-svg-icons/faLinkedinIn';
import { faGooglePlusG } from '@fortawesome/free-brands-svg-icons/faGooglePlusG';
import { faTumblr } from '@fortawesome/free-brands-svg-icons/faTumblr';
import { faPinterestP } from '@fortawesome/free-brands-svg-icons/faPinterestP';
import { faWhatsapp } from '@fortawesome/free-brands-svg-icons/faWhatsapp';
import { faVk } from '@fortawesome/free-brands-svg-icons/faVk';
import { faFacebookMessenger } from '@fortawesome/free-brands-svg-icons/faFacebookMessenger';
import { faTelegramPlane } from '@fortawesome/free-brands-svg-icons/faTelegramPlane';
import { faMix } from '@fortawesome/free-brands-svg-icons/faMix';
import { faXing } from '@fortawesome/free-brands-svg-icons/faXing';
import { faLine } from '@fortawesome/free-brands-svg-icons/faLine';
import { faCommentAlt } from '@fortawesome/free-solid-svg-icons/faCommentAlt';
import { faMinus } from '@fortawesome/free-solid-svg-icons/faMinus';
import { faEllipsisH } from '@fortawesome/free-solid-svg-icons/faEllipsisH';
import { faLink } from '@fortawesome/free-solid-svg-icons/faLink';
import { faExclamation } from '@fortawesome/free-solid-svg-icons/faExclamation';
import { faPrint } from '@fortawesome/free-solid-svg-icons/faPrint';
import { faCheck } from '@fortawesome/free-solid-svg-icons/faCheck';
import { faEnvelope } from '@fortawesome/free-solid-svg-icons/faEnvelope';
const icons = [
faFacebookF, faTwitter, faLinkedinIn, faGooglePlusG, faPinterestP, faRedditAlien, faTumblr,
faWhatsapp, faVk, faFacebookMessenger, faTelegramPlane, faMix, faXing, faCommentAlt, faLine,
faEnvelope, faCheck, faPrint, faExclamation, faLink, faEllipsisH, faMinus
];
library.add(...icons);

View File

@ -2,7 +2,15 @@
<html> <html>
<head> <head>
<!-- <head> -->
<meta property="og:description" content="Alone we can do so little,
together we can do so much " />
<meta property="og:image" content="https://contribute.tnschools.gov.in/certificate.jpg" />
<!-- </head> -->
<base href="./"> <base href="./">
<meta property="og:image" content="certificate.jpg" />
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">

View File

@ -3,6 +3,7 @@ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module'; import { AppModule } from './app/app.module';
import { environment } from './environments/environment'; import { environment } from './environments/environment';
import './icon.ts';
if (environment.production) { if (environment.production) {
enableProdMode(); enableProdMode();