Compare commits

...

10 Commits

Author SHA1 Message Date
gandhimathi
d5ef706d35 Changed Local path 2020-01-13 11:41:51 +00:00
gandhimathi
70e5bf1b38 S3 bucket config added 2020-01-13 11:14:06 +00:00
gandhimathi
a24082962d bitbucket-pipelines.yml edited online with Bitbucket 2020-01-13 10:45:03 +00:00
gandhimathi
50a6375b52 Script change to Dev Build 2020-01-13 10:25:04 +00:00
gandhimathi
20a95cd416 changes reverted 2020-01-13 10:07:45 +00:00
venbatechnologies@gmail.com
56d5e3fb8b Root folder changed 2020-01-13 15:35:13 +05:30
gandhimathi
03e87afada editted for script changes 2020-01-13 09:42:36 +00:00
gandhimathi
44c3e382cb bitbucket-pipelines.yml edited online with Bitbucket 2020-01-13 09:27:53 +00:00
gandhimathi
eb227bf070 Initial Bitbucket Pipelines configuration 2020-01-13 09:24:37 +00:00
venbatechnologies@gmail.com
1e79988002 Code pulled from aws 2020-01-13 14:49:00 +05:30
558 changed files with 2413 additions and 3787 deletions

View File

37
bitbucket-pipelines.yml Normal file
View File

@ -0,0 +1,37 @@
# This is a sample build configuration for JavaScript.
# Check our guides at https://confluence.atlassian.com/x/14UWN for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: node:10.15.3
pipelines:
branches:
master:
- step:
caches:
- node
script: # Modify the commands below to build your repository.
- npm install
- npm install -g @angular/cli
- ng build
- ls -ltr
- cd dist
- echo "Number of files in dist"
- ls -l . | egrep -c '^-'
- pipe: atlassian/aws-s3-deploy:0.3.8
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: 'ap-south-1'
S3_BUCKET: 'autodeploy001'
LOCAL_PATH: $(pwd)
# CONTENT_ENCODING: '<string>' # Optional.
# ACL: '<string>' # Optional.
# STORAGE_CLASS: '<string>' # Optional.
# CACHE_CONTROL: '<string>' # Optional.
# EXPIRES: '<timestamp>' # Optional.
# DELETE_FLAG: '<boolean>' # Optional.
# EXTRA_ARGS: '<string>' # Optional.
# DEBUG: '<boolean>' # Optional.

View File

@ -1,223 +0,0 @@
<div id="top"></div>
<!--starts-->
<div fxLayout fxLayout="row" fxLayout.xs="column" >
<!-- <div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="40" fxFlex.lg="1000" fxFlex.xl="40"> -->
<mat-card class="p-2" fxFlex.lg="72.5%" fxFlex.xs="100" fxFlex.sm="70%" fxFlex.md="68%" fxFlex.xl="70%">
<mat-card-title class="mb-1"><h5 class="mt-0 text-center">Contribute to Specific Need </h5></mat-card-title>
<hr>
<form [formGroup]="Contribute">
<div fxLayout="row" fxLayout.sm="column" fxLayoutAlign="start center" class="mb-2 pt-1" >
<mat-form-field dividerColor="primary" class="ml-xs mr-xs" style="width: 40%;">
<mat-select placeholder="Select District" formControlName="district_id" (selectionChange)="getFilterValue($event.value,'school')">
<mat-option *ngFor="let item of district" [value]="item.district_id" >
{{ item.district_name }}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field dividerColor="accent" class="ml-xs mr-xs" style="width: 100%;" fxFlex.xs="50">
<mat-select placeholder="Select School" formControlName="schoold_id">
<mat-option *ngFor="let item of school" [value]="item.school_id" >
{{ item.school_name }}
</mat-option>
</mat-select>
</mat-form-field>
</div>
<div fxLayout="row" fxLayout.xs="column">
<mat-form-field dividerColor="warn" class="ml-xs mr-xs" style="width: 100%;">
<mat-select placeholder="Select Category" formControlName="cad_id" (selectionChange)="getFilterValue($event.value,'material')">
<mat-option *ngFor="let item of category" [value]="item.cat_id" >
{{ item.cat_name }}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field dividerColor="warn" class="ml-xs mr-xs" style="width: 100%;">
<mat-select placeholder="Material Name" formControlName="mat_id">
<mat-option *ngFor="let item of material_category.materials" [value]="item.mat_id" >
{{ item.material_name }}
</mat-option>
</mat-select>
</mat-form-field>
</div>
<div fxLayout fxLayout="row" style="text-align: right;" class="mb-2">
<div class="" fxFlex="100%" fxFlex.xs="100" fxFlex.sm="100">
<button mat-raised-button color="primary" (click)="refresh()">View All</button>
<button class="ml-2" mat-raised-button color="primary" (click)="reset()">Clear</button>
<button class="ml-2" mat-raised-button color="primary" (click)="getSchoolReqList()">Submit</button>
</div>
</div>
</form>
<!--*********************-->
<!-- [ngClass]="{'example-container mat-elevation-z8':clientWidth >= 500}" -->
<div #table_element>
<mat-table [dataSource]="dataSource" matSort *ngIf="dataStatus;else status">
<!-- Requirement Column -->
<!-- <ng-container matColumnDef="Requirement">
<th style="width: 15% !important;" mat-header-cell *matHeaderCellDef ></th>
<td style="width: 15% !important;" mat-cell *matCellDef="let row" class="product-thumbnail"><img src="{{row.img_url}}" onerror="this.onerror=null;this.src='assets/images/csr-img/error_img.jpg';" alt="School Img" width="70"></td>
</ng-container> -->
<!-- Item Need Column -->
<ng-container matColumnDef="Item_Need">
<mat-header-cell *matHeaderCellDef mat-sort-header>Item Needed</mat-header-cell>
<mat-cell *matCellDef="let row" data-label="Item Needed" class="product-thumbnail"><span> {{row.material_name}} </span></mat-cell>
</ng-container>
<!-- School Column -->
<ng-container matColumnDef="School">
<mat-header-cell *matHeaderCellDef mat-sort-header>School</mat-header-cell>
<mat-cell data-label="School" *matCellDef="let row"><span> <a (click)="goToProjectDet(row)">{{row.school_name}}</a>,<br/> {{row.block_name}} Block, {{row.district_name}} District.</span></mat-cell>
</ng-container>
<!-- Quantity Column -->
<ng-container matColumnDef="Required_Qty">
<mat-header-cell *matHeaderCellDef mat-sort-header> Required Qty </mat-header-cell>
<mat-cell data-label="Required Qty" *matCellDef="let row"> {{row.qty}}</mat-cell>
</ng-container>
<ng-container matColumnDef="Received_Qty">
<mat-header-cell *matHeaderCellDef > Received Qty </mat-header-cell>
<mat-cell data-label="Received Qty" *matCellDef="let row"> {{row.received_qty}}</mat-cell>
</ng-container>
<ng-container matColumnDef="balance_Qty">
<mat-header-cell *matHeaderCellDef > Balance Qty </mat-header-cell>
<mat-cell data-label="balance Qty" *matCellDef="let row"> {{row.qty-row.received_qty <= 0 ? '' : row.qty-row.received_qty }}</mat-cell>
</ng-container>
<!-- Sponsor Column -->
<ng-container matColumnDef="Sponsor_Qty">
<mat-header-cell *matHeaderCellDef > Sponsored Qty </mat-header-cell>
<mat-cell data-label="Sponsored Qty" *matCellDef="let row;let i = index"> <input OnlyNumber="true" step="1" min="1" max="" title="Qty" [(ngModel)]="sponsor_qty[i]" class="text" size="2" type="number" (change)="somethingChanged($event.target.value,i,row.cost_per_unit,row.mat_id,row)"
class="sponsor_input" > </mat-cell>
</ng-container>
<!-- price Column -->
<ng-container matColumnDef="Cost_Per_Unit">
<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>
<!-- <td mat-footer-cell *matFooterCellDef> Total </td> -->
</ng-container>
<!-- Total Column -->
<ng-container matColumnDef="Amount">
<mat-header-cell *matHeaderCellDef > Amount <br/>(in Rs) </mat-header-cell>
<mat-cell data-label="Amount" *matCellDef="let row ;let i=index" >{{Total[i]}} </mat-cell>
<!-- <td mat-footer-cell *matFooterCellDef> {{somethingChanged()}} </td> -->
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
<!-- <tr mat-footer-row *matFooterRowDef="tableColumns"></tr> -->
</mat-table>
<div class="clearfix order-total" style="padding-bottom: 0px !important;">
<div class="calculated-shipping" style="text-align: -webkit-right !important;">
<table class="table-responsive" cellspacing="0" style="width: 50% !important;" *ngIf="dataStatus">
<tr class="order-total" style="text-align: right;">
<td style="font-weight: bold;text-align: right">Total</td>
<td> <strong><span class="amount"><span class="currency-symbol">&#8377;</span>{{grandTotal}}</span></strong></td>
</tr>
</table>
</div>
</div>
<mat-paginator [pageSize]="pageSize" [pageSizeOptions]="[5, 10, 25, 50, 100]" showFirstLastButtons ></mat-paginator>
<div style="text-align: center;" *ngIf="dataStatus" fxLayoutAlign="center">
<mat-label style=" font-size: 1.25rem;">I am happy to contribute</mat-label>&nbsp;&nbsp;
<mat-radio-group [(ngModel)]="contribute_type" >&nbsp;&nbsp;&nbsp;
<mat-radio-button value="2" ><span style=" font-size: 1.25rem;">Material</span></mat-radio-button><br/>
<mat-radio-button value="1"><span style=" font-size: 1.25rem;">Funds</span></mat-radio-button>
</mat-radio-group><br/>
<!-- <mat-form-field appearance="outline" fxFlex="50" fxFlex.xs="100" class="select_cot_type">
<mat-label style=" font-size: 1.25rem;">I am happy to contribute</mat-label>
<mat-select color="secondary" placeholder="Select" [(ngModel)]="contribute_type" #username="ngModel">
<mat-option value="2"><span style=" font-size: 1.25rem;">Materials</span></mat-option>
<mat-option value="1"><span style=" font-size: 1.25rem;">Funds/Money</span></mat-option>
</mat-select>
<mat-error *ngIf="username.invalid && username.errors.required && (username.dirty || username.touched)">Contribute type is required</mat-error>
</mat-form-field> -->
</div>
<div class="pt-1 pr-1" style="text-align: right;" *ngIf="dataStatus">
<!-- <button mat-raised-button color="primary" (click)="finalSave(2)" class="mr-1 mb-1">I'd like to Contribute in Kind</button> -->
<button (click)="finalSave(contribute_type)" mat-raised-button style="background-color:rgb(69, 189, 189);color:white;font-weight: bold" >Submit</button>
</div>
</div>
<ng-template #status><h2>{{msg}}</h2></ng-template>
<!--*********************-->
<!-- <div class="clearfix order-total">
<div class="calculated-shipping">
<h4>Cart Totals</h4>
<table class="table-responsive" cellspacing="0">
<tr class="order-total">
<th>Total</th>
<td><strong><span class="amount"><span class="currency-symbol">&#8377;</span>{{somethingChanged()}}</span></strong> </td>
</tr>
</table>
<div class="order-checkout">
<button mat-raised-button color="primary" class="mr-1 mb-1">Will Contribute the above in kind</button>
<button [routerLink]="['../payment']" mat-raised-button style="background-color:rgb(69, 189, 189);color:white" >Proceed for Payment</button>
</div>
</div>
</div> -->
</mat-card>
<!-- <div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="40" fxFlex.lg="20" fxFlex.xl="40"> -->
<mat-card class="support_mat sidescroll" fxFlex="27%" fxFlex.xs="25%" fxFlex.sm="25%">
<!-- <mat-card-header style="padding: 0;margin: 0;"> -->
<!-- <mat-card-title> -->
<!--</mat-card-title> -->
<!-- </mat-card-header> -->
<mat-card-content>
<p class="quote" style="margin-top:4px;text-align: center">&#8221;Alone we can do so little,<br> together we can do so much&#8221; <br/>- Hellen Keller</p>
<h5 class="text-center"> Contribute to<br> State School Development Fund</h5>
<div fxLayout="column" fxLayoutAlign="start stretch">
<!-- <div fxLayout fxLayout="row" fxLayout.xs="column" fxLayoutGap.xs="0"> -->
<div class="text-center" fxFlex="100%" fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="40" fxFlex.lg="100" fxFlex.xl="100">
<mat-form-field appearance="outline" style="width: 70%;text-align: center;">
<input matInput type="tel" OnlyNumber="true" placeholder="Amount in Rs." [(ngModel)]="general_devlop_amt" maxlength="10" (change)="dev_fund_change($event.target.value)" onkeypress="return event.charCode >= 48 && event.charCode <= 57">
</mat-form-field>
<!-- </div> -->
</div>
<!-- <mat-radio-button name="group1" class="pb-1" checked>State School Development Fund</mat-radio-button> -->
<!--<mat-radio-button name="group1">District School Development Fund</mat-radio-button>
<mat-form-field style="width: 100%" class="pl-1">
<mat-select placeholder="Select District" >
<mat-option>
</mat-option>
</mat-select>
</mat-form-field>
<mat-radio-button name="group1">School Development Fund</mat-radio-button>
<mat-form-field style="width: 100%" class="pl-1">
<mat-select placeholder="Select District" >
<mat-option >
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field style="width: 100%" class="pl-1">
<mat-select placeholder="Select School">
<mat-option >
</mat-option>
</mat-select>
</mat-form-field> -->
<mat-form-field dividerColor="warn" class="ml-xs mr-xs" style="width: 100%;" appearance="outline">
<textarea matInput placeholder="Comments" rows="5" [(ngModel)]="gen_dev_fund_remarks"></textarea>
</mat-form-field>
<button mat-raised-button style="background-color:rgb(69, 189, 189);color:white" (click)="storeData_session()">Proceed to Contribute</button>
<p class="quote">&#8221;We make a living by what we get.<br> But we make a life by what we give&#8221; <br/>- Winston Churchill</p>
</div>
</mat-card-content>
</mat-card>
<!-- </div> -->
<!-- </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

@ -1,397 +0,0 @@
<mat-card >
<div fxLayout="row" fxLayout.xs="column" fxLayoutGap="20px" fxLayoutAlign.lg="center">
<div fxFlex.xl="50" fxFlex.lg="45" fxFlex.md="50" fxFlex.sm="50" fxFlex.xs="100">
<mat-card-header>
<mat-card-title>
<h4>About Knowledge Contribution</h4>
</mat-card-title>
</mat-card-header>
<mat-card-content >
<app-article-shrink>
<article style="text-align: justify;">
Knowledge is no longer a new concept to many businesses, partially due to the rise of the corporate portal as the latest must-have application. The portal has become synonymous with knowledge management. The problem is that technology by itself often doesnt solve a companys inherent problems with intellectual capital, knowledge and information management. Simply put, every solution takes people. Here, Pamela Holloway, a knowledge management practitioner and frequent speaker at KM events, suggests seven strategies for getting people to open up and share what they know
Is sharing a natural act? Traditional thinking holds that knowledge sharing is not a natural act. Many KM initiatives focus on how best to cajole unwilling participants into providing information. But how would it change things if we were to start from the premise that knowledge sharing really is a natural act? Just look around. People do it all the time - in the halls, over the phone, through e-mail, at the pub. How could anything that happens so frequently and easily not be a natural act? Perhaps it is our organizational structures that get in the way.
Take our school systems, for example. John Keeble, a colleague from Enterprise Oil in the UK, says, "Western societys educational systems dont condone knowledge sharing - they call it cheating." I think John is right. Most of us have been raised on the power of individual effort and encouraged to keep our mouths shut and our pens still. We have carried these values and belief systems into our businesses and incorporated them into our management styles.
Awareness is the first step to overcoming this reluctance. Understanding that we carry this baggage with us and recognizing the need to unlearn and rethink our models and paradigms is an essential skill.
Ultimately, it doesnt matter whether knowledge sharing is natural or unnatural; it just matters that we do it. Resist the urge to overanalyze or overplan, and just get on with it. Perhaps the process of simply doing it (albeit with some regularity) ultimately makes it part of the culture.
</article>
</app-article-shrink>
</mat-card-content>
</div>
<div fxFlex.xl="50" fxFlex.lg="50" fxFlex.md="50" fxFlex.sm="50" fxFlex.xs="100">
<mat-card-header>
<mat-card-title>
<h4>Knowledge Contribution</h4>
</mat-card-title>
</mat-card-header>
<mat-card-content padding >
<form [formGroup]="KGForm">
<div fxLayout="column" fxLayoutAlign="start stretch">
<div fxLayout="row" fxLayoutAlign="center center" fxLayoutAlign="flex-start" fxLayoutGap="10px"
fxLayout.xs="column">
<mat-form-field fxFlex="50" fxFlex.sm="100" fxFlex.xs="100">
<mat-select placeholder="Select District" formControlName="fk_district_id" (selectionChange)="getBlockByDistrict($event.value)">
<mat-option *ngFor="let val of districtList" [value]="val.district_id">{{val.district_name}}
</mat-option>
</mat-select>
<mat-error *ngIf="KGForm.controls['fk_district_id'].errors">District is Required</mat-error>
</mat-form-field>
<mat-form-field fxFlex="50" fxFlex.sm="100" fxFlex.xs="100" *ngIf="KGForm.value.fk_district_id != ''">
<mat-select placeholder="Select Block" formControlName="fk_block_id" (selectionChange)="getSchoolsByBlock($event.value)">
<mat-option *ngFor="let val of blockList" [value]="val.block_id">{{val.block_name}}
</mat-option>
</mat-select>
<mat-error *ngIf="KGForm.controls['fk_block_id'].errors">Block is Required</mat-error>
</mat-form-field>
</div>
<mat-form-field fxFlex="50" fxFlex.sm="100" fxFlex.xs="100" *ngIf="KGForm.value.fk_block_id != ''">
<mat-select placeholder="Select School" formControlName="fk_school_id" (selectionChange)="getSchoolInfo($event.value)">
<mat-option *ngFor="let val of schoolList" [value]="val.school_id">{{val.school_name}}
</mat-option>
</mat-select>
<mat-error *ngIf="KGForm.controls['fk_school_id'].errors">School is Required</mat-error>
</mat-form-field>
<div *ngIf="schoolInfo.hasOwnProperty('teacher_name')" style="margin-bottom: 10px;">
<mat-accordion>
<mat-expansion-panel (opened)="true" [expanded]="true">
<mat-expansion-panel-header>
<mat-panel-title>
School HM Contact Details
</mat-panel-title>
</mat-expansion-panel-header>
<div fxLayout="row wrap" fxLayoutGap="20px grid" fxLayout.xs="column">
<div fxLayout="row" fxLayoutGap="10px">
<span >
<mat-icon class="hm_icon">person_outline</mat-icon>
</span>
<span >
<h6 class="hm_info">{{schoolInfo.teacher_name}}</h6>
</span>
</div>
<div fxLayout="row" fxLayoutGap="10px">
<span >
<mat-icon class="hm_icon">local_post_office</mat-icon>
</span>
<span >
<h6 class="hm_info">{{schoolInfo.email_id}}</h6>
</span>
</div>
<div fxLayout="row" fxLayoutGap="10px">
<span >
<mat-icon class="hm_icon">phone_android</mat-icon>
</span>
<span >
<h6 class="hm_info">{{schoolInfo.mbl_nmbr}}</h6>
</span>
</div>
<div fxLayout="row" fxLayoutGap="10px">
<span >
<mat-icon class="hm_icon">my_location</mat-icon>
</span>
<span >
<h6 class="hm_info">{{schoolInfo.address}} - {{schoolInfo.pincode}}</h6>
</span>
</div>
</div>
</mat-expansion-panel>
</mat-accordion>
</div>
<div fxLayout="row wrap" fxLayoutAlign="center center" fxLayoutAlign="flex-start" fxLayoutGap="10px"
fxLayout.xs="column">
<mat-form-field fxFlex="50" fxFlex.sm="40" fxFlex.xs="100">
<input matInput placeholder="Name" type="text" name="name" formControlName="name" required>
<mat-error *ngIf="KGForm.controls['name'].errors">Name is Required</mat-error>
</mat-form-field>
<mat-form-field fxFlex="40" fxFlex.sm="35" fxFlex.xs="100">
<input matInput placeholder="E Mail" type="email" name="email" formControlName="email" required
(change)="checkExists($event.target.value,'email')">
<mat-error *ngIf="KGForm.controls['email'].hasError('required')">Email is required</mat-error>
<mat-error *ngIf="KGForm.controls['email'].hasError('email')">Invalid Email</mat-error>
<mat-error *ngIf="KGForm.controls['email'].hasError('email_compare')">Email & Confirm Email does not match</mat-error>
</mat-form-field>
<mat-form-field fxFlex="30" fxFlex.sm="40" fxFlex.xs="100" *ngIf="is_newuser">
<input matInput placeholder="Confirm E Mail" type="email" name="email" formControlName="email_confirm" required>
<mat-error *ngIf="KGForm.controls['email'].hasError('required')">Email is required</mat-error>
<mat-error *ngIf="KGForm.controls['email'].hasError('email')">Invalid Email</mat-error>
<mat-error *ngIf="KGForm.controls['email_confirm'].hasError('email_compare')">Email & Confirm Email does not match</mat-error>
</mat-form-field>
<mat-form-field fxFlex="30" fxFlex.sm="40" fxFlex.xs="100">
<input matInput placeholder="Phone Number" type="number" name="mobile" inputmode="numeric" pattern="[0-9]*"
OnlyNumber="true" formControlName="mobile" required min="10" max="12" minlength="10" maxlength="12" (change)="!is_newuser ? checkExists($event.target.value,'mobile') : updateCustomValidators()">
<mat-error *ngIf="KGForm.controls['mobile'].hasError('required')">mobile number is required</mat-error>
<mat-error *ngIf="KGForm.controls['mobile'].hasError('min')">minimum 10 digit required</mat-error>
<mat-error *ngIf="KGForm.controls['mobile'].hasError('max')">maximum 12 digit is allowed</mat-error>
</mat-form-field>
<mat-form-field fxFlex="30" fxFlex.sm="40" fxFlex.xs="100" *ngIf="is_newuser">
<input matInput placeholder="Confirm Phone Number" type="number" name="mobile" inputmode="numeric" pattern="[0-9]*"
OnlyNumber="true" formControlName="mobile_confirm" required min="10" max="12" minlength="10" maxlength="12">
<mat-error *ngIf="KGForm.controls['mobile_confirm'].hasError('required')">mobile number is required</mat-error>
<mat-error *ngIf="KGForm.controls['mobile_confirm'].hasError('min')">minimum 10 digit required</mat-error>
<mat-error *ngIf="KGForm.controls['mobile_confirm'].hasError('max')">maximum 12 digit is allowed</mat-error>
<mat-error *ngIf="KGForm.controls['mobile_confirm'].hasError('mobile_compare')">Mobile & Confirm Mobile does not match</mat-error>
</mat-form-field>
</div>
<div>
<br/>
<mat-label>Contribution Type*</mat-label><br/>
<mat-radio-group formControlName="con_type" (change)="onCont_typeChange($event.value)">
<mat-radio-button *ngFor="let val of KG_contribute_types" [value]="val.id">{{val.name}}</mat-radio-button>
</mat-radio-group>
<!-- <mat-error *ngIf="KGForm.controls['con_type'].hasError('required')">Contribution type is Required</mat-error> -->
<br/>
</div>
<div *ngIf="KGForm.value.con_type == '2'">
<br />
<mat-label>Choose the Device Type*</mat-label><br />
<mat-radio-group formControlName="con_sub_type">
<mat-radio-button *ngFor="let val of KG_subCont_types" [value]="val.id">{{val.name}}</mat-radio-button>
</mat-radio-group>
<!-- <mat-error *ngIf="KGForm.controls['con_sub_type'].hasError('required')">Electronics type is Required</mat-error> -->
<br /><br />
<div fxLayout="row">
<mat-form-field *ngIf="KGForm.value.con_sub_type == '3'" style="width:60%">
<input matInput type="text" placeholder="Specify Electronic" formControlName="electric_other">
<mat-error *ngIf="KGForm.controls['electric_other'].hasError('required')">Please Specify the Electronic</mat-error>
</mat-form-field>
</div>
<div *ngIf="KGForm.value.con_sub_type != ''">
<mat-card class="volunteer_info_class">
<mat-card-header style="padding-top:0px;margin-top:0px">
<mat-card-title style="padding-top:0px;margin-top:0px">
<h5>Electronic Information</h5>
</mat-card-title>
<hr />
</mat-card-header>
<div formArrayName="devices_info">
<div *ngFor="let device of KGForm.controls.devices_info['controls'];let d_i=index,let d_l=last"
[formGroupName]="d_i">
<mat-card-subtitle style="padding-top:0;margin-top:0" ><h6 >Device Information {{d_i+1}}</h6></mat-card-subtitle>
<hr/>
<mat-card-content no-padding fxLayout="column">
<div fxLayout="row" fxLayout.xs="column" fxLayoutGap="20px" fxLayoutGap.xs="0px">
<mat-form-field fxFlex="50">
<input matInput type="text" placeholder="Model" formControlName="model">
<mat-error *ngIf="device.controls['model'].hasError('required')">Model is required</mat-error>
</mat-form-field>
<mat-form-field fxFlex="50">
<input matInput type="text" placeholder="Serial No" formControlName="serial_no">
<mat-error *ngIf="device.controls['serial_no'].hasError('required')">Serial No is required</mat-error>
</mat-form-field>
</div>
<mat-form-field fxFlex="100">
<input matInput type="text" placeholder="Accessories" formControlName="accessoris">
<mat-error *ngIf="device.controls['accessoris'].hasError('required')">Accessories is required</mat-error>
</mat-form-field>
</mat-card-content>
<mat-card-actions align="end">
<div fxLayout="row" fxLayoutGap="40px" >
<div fxLayout="column" *ngIf="d_i > 0">
<button mat-icon-button mat-mini-fab class="danger" color="red" aria-label="Add Device Info" (click)="removeDeviceInfo(d_i)">
<mat-icon>delete</mat-icon>
</button>
</div>
<div fxLayout="column" *ngIf="d_l">
<button matTooltip="Add Device Info" mat-icon-button mat-mini-fab style="background-color: rgb(39, 191, 211);" color="light" aria-label="Add Device Info" (click)="addMoreDeviceInfo(device,d_i)">
<mat-icon>add</mat-icon>
</button>
</div>
</div>
</mat-card-actions>
</div>
</div>
</mat-card>
</div>
</div>
<div *ngIf="KGForm.value.con_type == '1' && KGForm.controls['books_info']">
<mat-card class="volunteer_info_class">
<mat-card-header style="padding-top:0px;margin-top:0px">
<mat-card-title style="padding-top:0px;margin-top:0px">
<h5>Books Information</h5>
</mat-card-title>
<hr />
</mat-card-header>
<div formArrayName="books_info">
<div *ngFor="let book_det of KGForm.controls.books_info['controls'];let b_i=index,let b_l=last"
[formGroupName]="b_i">
<mat-card-subtitle style="padding-top:0;margin-top:0">
<h6>Book Information {{b_i+1}}</h6>
</mat-card-subtitle>
<hr />
<mat-card-content no-padding fxLayout="column">
<div fxLayout="row" fxLayout.xs="column" fxLayoutGap="20px" fxLayoutGap.xs="0px">
<mat-form-field fxFlex="50">
<input matInput type="text" placeholder="Book Name" formControlName="book">
<mat-error *ngIf="book_det.controls['book'].hasError('required')">Book Name is required</mat-error>
</mat-form-field>
<mat-form-field fxFlex="50">
<input matInput type="text" placeholder="Author" formControlName="author">
<mat-error *ngIf="book_det.controls['author'].hasError('required')">Author is required</mat-error>
</mat-form-field>
</div>
<mat-form-field fxLayout="row" fxLayout.xs="column" fxFlex="40">
<input matInput type="tel" placeholder="Quantity" formControlName="qty">
<mat-error *ngIf="book_det.controls['qty'].hasError('required')">Quantity is required</mat-error>
<mat-error *ngIf="book_det.controls['qty'].hasError('pattern')">Invalid Quantity</mat-error>
</mat-form-field>
</mat-card-content>
<mat-card-actions align="end">
<div fxLayout="row" fxLayoutGap="40px">
<div fxLayout="column" *ngIf="b_i > 0">
<button mat-icon-button mat-mini-fab class="danger" color="red" aria-label="Add Book Info"
(click)="removeBookInfo(b_i)">
<mat-icon>delete</mat-icon>
</button>
</div>
<div fxLayout="column" *ngIf="b_l">
<button matTooltip="Add Book Info" mat-icon-button mat-mini-fab
style="background-color: rgb(39, 191, 211);" color="light" aria-label="Add Book Info"
(click)="addMoreBookInfo(book_det,b_i)">
<mat-icon>add</mat-icon>
</button>
</div>
</div>
</mat-card-actions>
</div>
</div>
</mat-card>
</div>
<div *ngIf="KGForm.value.con_type == '1' || KGForm.value.con_type == '2'">
<mat-form-field style="width: 100%">
<mat-label *ngIf="KGForm.value.con_type == '1'">Please share the details of the books you would like to contribute</mat-label>
<mat-label *ngIf="KGForm.value.con_type == '2'">Kindly ensure the devices are in working condition with all needed accessories. Please share their details.</mat-label>
<textarea matInput placeholder="Details" type="text" formControlName="description"></textarea>
</mat-form-field>
</div>
<div *ngIf="KGForm.value.con_type == '3'">
<mat-card class="volunteer_info_class">
<mat-card-header style="padding-top:0px;margin-top:0px" >
<mat-card-title style="padding-top:0px;margin-top:0px"><h5 >Volunteer Information</h5></mat-card-title>
<hr/>
</mat-card-header>
<div formArrayName="volunteer_info">
<div *ngFor="let volunteer of KGForm.controls.volunteer_info['controls'];let v_i=index,let v_l=last" [formGroupName]="v_i">
<!-- <mat-card-subtitle style="padding-top:0;margin-top:0" ><h6 >Volunteer Information {{v_i+1}}</h6></mat-card-subtitle> -->
<!-- <hr/> -->
<mat-card-content no-padding fxLayout="column">
<mat-label style="font-weight: bold">Availability Details</mat-label>
<br/>
<mat-label>Date</mat-label><br/>
<div fxLayout="row" fxLayout.xs="column">
<mat-form-field fxFlex="50" fxFlex.xs="50">
<input matInput [matDatepicker]="picker" [min]="maxDate" placeholder="From" formControlName="date_from" readonly required>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
<mat-error *ngIf="volunteer.controls['date_from'].hasError('required')">From Date is Required</mat-error>
</mat-form-field>&nbsp;&nbsp;&nbsp;&nbsp;
<mat-form-field fxFlex="50" fxFlex.xs="50">
<input matInput [matDatepicker]="date_to" [min]="volunteer.get('date_from').value" placeholder="To" formControlName="date_to" readonly (click)="date_to" required>
<mat-datepicker-toggle matSuffix [for]="date_to"></mat-datepicker-toggle>
<mat-datepicker #date_to></mat-datepicker>
<mat-error *ngIf="volunteer.controls['date_from'].hasError('required')">To Date is Required</mat-error>
</mat-form-field>
</div><br/>
<mat-label>Time</mat-label><br>
<div fxLayout="row" fxLayout.xs="column">
<mat-form-field fxFlex="50" fxFlex.xs="50">
<input matInput [owlDateTime]="dt1" [owlDateTimeTrigger]="dt1" placeholder="From" formControlName="time_from" readonly required>
<span style="
justify-content: flex-end;
position: absolute;
cursor: pointer;
right: 1px;" [owlDateTimeTrigger]="dt1"><mat-icon style="font-size: 18px;color: darkslategray;">access_time</mat-icon></span>
<owl-date-time [pickerType]="'timer'" #dt1></owl-date-time>
<mat-error *ngIf="volunteer.controls['time_from'].hasError('required')">From Time is Required</mat-error>
</mat-form-field>&nbsp;&nbsp;&nbsp;&nbsp;
<mat-form-field fxFlex="50" fxFlex.xs="50">
<input matInput [owlDateTime]="dt2" [min]="volunteer.get('time_from').value" [owlDateTimeTrigger]="dt2" placeholder="To" formControlName="time_to" readonly required>
<span style="
justify-content: flex-end;
position: absolute;
cursor: pointer;
right: 1px;" [owlDateTimeTrigger]="dt2"><mat-icon style="font-size: 18px;color: darkslategray;">access_time</mat-icon></span>
<owl-date-time [pickerType]="'timer'" #dt2></owl-date-time>
<mat-error *ngIf="volunteer.controls['time_from'].hasError('required')">To Time is Required</mat-error>
</mat-form-field>
</div>
<div fxLayout="row" fxLayout.xs="column" fxLayoutGap.lg="20px">
<mat-form-field [fxFlex]="(volunteer.value.subject).includes('0') ? '40' : '100' " fxFlex.xs="100">
<mat-select placeholder="Subject" formControlName="subject" multiple>
<mat-option *ngFor="let val of subjectList" [value]="val.id">{{val.subjects}}</mat-option>
</mat-select>
<mat-error *ngIf="volunteer.controls['subject'].hasError('required')">Subject is Required</mat-error>
</mat-form-field>
<mat-form-field fxFlex="55" *ngIf="(volunteer.value.subject).includes('0')">
<input matInput type="text" placeholder="Specity the Subject" formControlName="subject_others">
</mat-form-field>
</div>
<mat-form-field style="width: 100%">
<mat-label>Kindly give details about your expertise / areas of interest, experience and your availability for volunteering.</mat-label>
<textarea matInput placeholder="Details" type="text" formControlName="kt_type_desc"></textarea>
</mat-form-field>
<!-- <mat-form-field appearance="outline" style="width: 100%"> -->
<!-- <input [ngxTimepicker]="picker">
<ngx-material-timepicker #picker></ngx-material-timepicker> -->
<!-- </mat-form-field> -->
<!-- <material-timepicker color="primary" label="Hour 4" appearance="outline" [userTime]="exportTime">
</material-timepicker> -->
</mat-card-content>
<!-- <mat-card-actions align="end">
<div fxLayout="row" fxLayoutGap="40px" >
<div fxLayout="column" *ngIf="v_i > 0">
<button mat-icon-button mat-mini-fab class="danger" color="red" aria-label="Add Volunteer Info" (click)="removeVolunteerInfo(v_i)">
<mat-icon>delete</mat-icon>
</button>
</div>
<div fxLayout="column" *ngIf="v_l">
<button matTooltip="Add Volunteer Info" mat-icon-button mat-mini-fab style="background-color: rgb(39, 191, 211);" color="light" aria-label="Add Volunteer Info" (click)="addmoreVolunteerInfo(volunteer,v_i)">
<mat-icon>add</mat-icon>
</button>
</div>
</div>
</mat-card-actions> -->
</div>
</div>
</mat-card>
</div>
<br/>
<!-- </mat-form-field> -->
<mat-card-actions style="justify-content: flex-end">
<button align="end" fxFlex="20" mat-stroked-button color="light" class="button-cyan" (click)="onSubmit()">Submit</button>
</mat-card-actions>
</div>
</form>
</mat-card-content>
</div>
</div>
</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>
<notifier-container></notifier-container>

View File

@ -1,71 +0,0 @@
.mat-radio-button{
background-color: rgb(39, 191, 211);
padding: 10px;
margin: 5px;
white-space: pre-line;
border-radius: 10px;
}
.volunteer_info_class{
// margin: 0px;
box-shadow: 2px 2px 2px #888888;
// color: blue;
// background-color: lightgoldenrodyellow;
border: 1px solid lightgray;
border-radius: 10px;
}
.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;
}
.hm_info{
display: inline;
// white-space: pre-wrap;
// word-wrap:break-word;
white-space: pre;
}
// .hm_icon{
// // border-right: 2px solid black;
// // border-bottom-left-radius: 10px;
// // border-bottom-right-radius: 10px;
// }
@media(max-width:580px){
.hm_info{
display: inline;
font-size: 12px;
// word-wrap: break-word;
white-space: pre-wrap;
word-wrap:break-word;
// white-space: pre;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -12,22 +12,22 @@
},
"private": true,
"dependencies": {
"@agm/core": "^1.0.0-beta.5",
"@angular/animations": "^8.2.2",
"@agm/core": "^1.1.0",
"@angular/animations": "^8.2.14",
"@angular/cdk": "^7.3.7",
"@angular/common": "^8.2.2",
"@angular/compiler": "^8.2.2",
"@angular/core": "^8.2.2",
"@angular/common": "^8.2.14",
"@angular/compiler": "^8.2.14",
"@angular/core": "^8.2.14",
"@angular/flex-layout": "7.0.0-beta.19",
"@angular/forms": "^8.2.2",
"@angular/forms": "^8.2.14",
"@angular/material": "^7.0.3",
"@angular/platform-browser": "^8.2.2",
"@angular/platform-browser-dynamic": "^8.2.2",
"@angular/router": "^8.2.2",
"@angular/platform-browser": "^8.2.14",
"@angular/platform-browser-dynamic": "^8.2.14",
"@angular/router": "^8.2.14",
"@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",
"@fortawesome/fontawesome-svg-core": "^1.2.26",
"@fortawesome/free-brands-svg-icons": "^5.12.0",
"@fortawesome/free-solid-svg-icons": "^5.12.0",
"@ngx-share/button": "^7.1.4",
"@ngx-share/buttons": "^7.1.4",
"@ngx-share/core": "^7.1.4",
@ -38,9 +38,9 @@
"angular-notifier": "^6.0.1",
"angular-socialshare": "^2.3.11",
"angular-sortablejs": "^2.6.0",
"angular-tree-component": "^8.4.0",
"chart.js": "^2.7.3",
"core-js": "^2.5.7",
"angular-tree-component": "^8.5.2",
"chart.js": "^2.9.3",
"core-js": "^2.6.11",
"d3": "^4.9.1",
"date-fns": "^1.29.0",
"dragula": "^3.7.2",
@ -49,54 +49,56 @@
"html2canvas": "^1.0.0-rc.5",
"jquery": "^3.4.1",
"jspdf": "^1.5.3",
"leaflet": "^1.3.4",
"leaflet": "^1.6.0",
"leaflet-map": "^0.2.1",
"moment": "^2.22.2",
"ng-pick-datetime": "^7.0.0",
"ng-simple-slideshow": "^1.2.9",
"ng2-charts": "^1.6.0",
"ng2-dragula": "^2.1.1",
"ng2-file-upload": "^1.3.0",
"ng2-file-upload": "^1.4.0",
"ng2-tree": "^2.0.0-alpha.10",
"ng2-validation": "^4.2.0",
"ngx-color-picker": "^7.0.2",
"ngx-cookie-service": "^2.2.0",
"ngx-cookie-service": "^2.3.0",
"ngx-mat-select-search": "^2.1.0",
"ngx-perfect-scrollbar": "5.0.0-7",
"ngx-slick-carousel": "^0.4.6",
"ngx-slick-carousel": "^0.4.7",
"ngx-social-button": "^1.0.4",
"ngx-spinner": "^8.1.0",
"perfect-scrollbar": "^1.4.0",
"quill": "^1.3.7",
"rxjs": "^6.3.3",
"rxjs-compat": "^6.3.3",
"quill": "^1.3.6",
"rxjs": "^6.5.4",
"rxjs-compat": "^6.5.4",
"screenfull": "^3.3.3",
"simple-line-icons": "^2.4.1",
"slick-carousel": "^1.8.1",
"sortablejs": "^1.7.0",
"sortablejs": "^1.10.2",
"tether": "^1.4.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.803.22",
"@angular-devkit/build-angular": "~0.802.2",
"@angular/cli": "^8.3.20",
"@angular/compiler-cli": "^8.2.2",
"@angular/language-service": "^8.2.2",
"@angular/compiler-cli": "^8.2.14",
"@angular/language-service": "^8.2.14",
"@types/d3": "^3.5.41",
"@types/jasmine": "^2.8.11",
"@types/jquery": "^3.3.22",
"@types/node": "^10.12.6",
"@types/node": "^10.17.13",
"@types/nvd3": "^1.8.39",
"codelyzer": "^5.0.1",
"jasmine-core": "^3.3.0",
"codelyzer": "^5.2.1",
"jasmine-core": "^3.5.0",
"jasmine-spec-reporter": "^4.2.1",
"karma": "^4.2.0",
"karma": "^4.4.1",
"karma-chrome-launcher": "^2.2.0",
"karma-cli": "^1.0.1",
"karma-coverage-istanbul-reporter": "^2.0.4",
"karma-coverage-istanbul-reporter": "^2.1.1",
"karma-jasmine": "^1.1.2",
"karma-jasmine-html-reporter": "^1.4.0",
"karma-jasmine-html-reporter": "^1.5.1",
"protractor": "^5.4.1",
"ts-node": "^7.0.1",
"tslint": "^5.11.0",
"tslint": "^5.20.1",
"typescript": "3.5.3"
}
}

View File

@ -48,7 +48,7 @@ import { PaymentConfirmationComponent } from './components/payment-confirmation/
import { MyAccountComponent } from './components/my-account/my-account.component';
import { TokenInterceptorService } from './shared/guards/token-interceptor.service';
import { AuthGuardService } from './shared/guards/auth-guard.service';
import { MatTableDataSource, MatTableModule, MatSlideToggleModule, MatRadioModule, MatButtonModule, MatBottomSheetModule } from '@angular/material';
import { MatTableDataSource, MatTableModule, MatSlideToggleModule, MatRadioModule, MatButtonModule, MatBottomSheetModule, MatDialogModule } from '@angular/material';
import { SchoolDetailsService } from './shared/school-details.service';
// import { AddEventModule } from './add-event.module';
import {HashLocationStrategy,LocationStrategy,PathLocationStrategy} from '@angular/common';
@ -74,6 +74,10 @@ import { EditUserDetailsComponent } from 'app/edit-user-details/edit-user-detail
import { ConfirmationDialogComponent } from './common/confirmation-dialog/confirmation-dialog.component';
import { VolunteerInfoComponent } from './components/user-profile/volunteer-info/volunteer-info.component';
import { BottomSheetComponent } from './common/bottom-sheet/bottom-sheet.component';
import { NgxMatSelectSearchModule } from 'ngx-mat-select-search'
import { ContributeFundComponent } from './components/contribute/contribute-fund/contribute-fund.component';
import { NgxSpinnerModule } from "ngx-spinner";
import { ContactComponent } from './components/contact/contact.component';
// import { ArticleShrinkComponent } from './knowledge-sharing/article-shrink/article-shrink.component';
export function HttpLoaderFactory(http: HttpClient) {
@ -119,7 +123,9 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
userCertificateDisplay,
EditUserDetailsComponent,
VolunteerInfoComponent,
BottomSheetComponent
BottomSheetComponent,
ContributeFundComponent,
ContactComponent
// ProjectListComponent
@ -147,6 +153,9 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
MatTableModule,
DemoMaterialModule,
HttpClientModule,
MatDialogModule,
NgxMatSelectSearchModule,
NgxSpinnerModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
@ -189,7 +198,7 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
useFactory: getAuthServiceConfigs
},
],
entryComponents: [PasswordChangeComponent,UserCertificateComponent,EditUserDetailsComponent,BottomSheetComponent],
entryComponents: [PasswordChangeComponent,ContributeFundComponent,UserCertificateComponent,EditUserDetailsComponent,BottomSheetComponent],
bootstrap: [AppComponent]
})
export class AppModule { }

View File

@ -17,6 +17,7 @@ import { SuccessComponent } from './components/payment-status/success/success.co
import { FailureComponent } from './components/payment-status/failure/failure.component';
import { UserCertificateComponent, userCertificateDisplay } from './components/user-certificate/user-certificate.component';
import { PrivacyPolicyComponent } from './components/privacy-policy/privacy-policy.component';
import { ContactComponent } from './components/contact/contact.component';
export const AppRoutes: Routes = [{
path: '',
redirectTo: 'home',
@ -82,6 +83,10 @@ export const AppRoutes: Routes = [{
{
path:'privacy-policy',
component:PrivacyPolicyComponent
},
{
path:'contact',
component:ContactComponent
},{
path:'knowledge-sharing',
loadChildren:'./knowledge-sharing/knowledge-sharing.module#KnowledgeSharingModule'

View File

@ -0,0 +1,71 @@
<div class="title-block about-w hero contact-w text-center">
<div class="hero-overlay"></div>
<div fxLayout="row wrap" fxLayoutAlign="center start" class="mb-3">
<div fxFlex.gt-sm="100" fxFlex.gt-xs="100" fxFlex="100" class="m-gap p-gap relative">
<h2 class="text-white">
<span class="more-bold">Hey.</span>
</h2>
<h2 class="text-white">What can we help you with?</h2>
</div>
</div>
<div fxLayout="row wrap" fxLayoutAlign="center end">
<div fxFlex.gt-sm="50" fxFlex.gt-xs="100" fxFlex="100" fxLayoutAlign="center center" class="border-right">
<div class="text-white relative contact-info">
<!-- <h2 class="font-weight-bold text-white">Become a client.</h2> -->
<p class="text-white">Phone : +91 44 - 28279758</p>
</div>
</div>
<div fxFlex.gt-sm="50" fxFlex.gt-xs="100" fxFlex="100" fxLayoutAlign="center center">
<div class="text-white relative contact-info">
<!-- <h2 class="font-weight-bold text-white">Need Support.</h2> -->
<p class="text-white">Email: tnpta.csr@gmail.com</p>
</div>
</div>
</div>
<div fxLayout="row wrap" fxLayoutAlign="center end" class="mt-2">
<div fxFlex.gt-sm="50" fxFlex.gt-xs="100" fxFlex="100" fxLayoutAlign="center center">
<div class="text-white relative contact-info">
<!-- <h2 class="font-weight-bold text-white">Become a client.</h2> -->
<p class="text-white">The Secretary,</p>
<p class="text-white">Tamil Nadu State Parent Teacher Association</p>
<p class="text-white">DPI Campus, College Road,</p>
<p class="text-white">Nungambakkam,</p>
<p class="text-white">Chennai - 600006, India.</p>
</div>
</div>
</div>
</div>
<!-- <mat-card class="p-2">
<div class="mb-3">
<mat-card class="p-3">
<h2 class="font-weight-bold text-center mb-2">Drop us a Line</h2>
<form #form="ngForm">
<div fxLayout="column" fxLayoutAlign="start stretch">
<mat-form-field style="width: 100%">
<input matInput placeholder="Name" type="text" name="name" required>
</mat-form-field>
<mat-form-field style="width: 100%">
<input matInput placeholder="Company Name" type="text" name="cname" required>
</mat-form-field>
<mat-form-field style="width: 100%">
<input matInput placeholder="Country" type="text" name="ctry" required>
</mat-form-field>
<mat-form-field style="width: 100%">
<input matInput placeholder="E Mail" type="email" name="email" required>
</mat-form-field>
<mat-form-field style="width: 100%" class="mb-2">
<input matInput placeholder="Write Message" type="text" name="text1" required>
</mat-form-field>
<button style="width: 30%" class="mat-green" mat-raised-button>Send</button>
</div>
</form>
</mat-card>
</div>
<div>
<mat-card class="p-3 text-center">
<h2 class="mb-2">Follow Us On</h2>
<a href="#" class="shared-icon mr-1 mb-1 mat-blue"><i class="fa fa-facebook fa-lg"></i></a><a href="#" class="mr-1 mb-1 shared-icon mat-red"><i class="fa fa-google fa-lg"></i></a>
</mat-card>
</div>
</mat-card> -->

View File

@ -0,0 +1,7 @@
.contact-w {
background-image:url("assets/images/csr-img/contact.jpg");
}
.contact-w.about-w{
height: auto;
padding: 4rem 0;
}

View File

@ -0,0 +1,25 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ContactComponent } from './contact.component';
describe('ContactComponent', () => {
let component: ContactComponent;
let fixture: ComponentFixture<ContactComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ContactComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ContactComponent);
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-contact',
templateUrl: './contact.component.html',
styleUrls: ['./contact.component.scss']
})
export class ContactComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}

View File

@ -0,0 +1,43 @@
<div mat-dialog-content>
<p class="quote" style="margin-top:4px;text-align: center">&#8221;Alone we can do so little,<br> together we can do so much&#8221; <br/>- Hellen Keller</p>
<h5 class="text-center"> Contribute to<br> State School Development Fund</h5>
<div fxLayout="column" fxLayoutAlign="start stretch">
<!-- <div fxLayout fxLayout="row" fxLayout.xs="column" fxLayoutGap.xs="0"> -->
<div class="text-center" fxFlex="100%" fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="40" fxFlex.lg="100" fxFlex.xl="100">
<mat-form-field appearance="outline" style="width: 70%;text-align: center;">
<input matInput type="tel" OnlyNumber="true" placeholder="Amount in Rs." [(ngModel)]="general_devlop_amt" maxlength="10" (change)="dev_fund_change($event.target.value)" onkeypress="return event.charCode >= 48 && event.charCode <= 57">
</mat-form-field>
<!-- </div> -->
</div>
<!-- <mat-radio-button name="group1" class="pb-1" checked>State School Development Fund</mat-radio-button> -->
<!--<mat-radio-button name="group1">District School Development Fund</mat-radio-button>
<mat-form-field style="width: 100%" class="pl-1">
<mat-select placeholder="Select District" >
<mat-option>
</mat-option>
</mat-select>
</mat-form-field>
<mat-radio-button name="group1">School Development Fund</mat-radio-button>
<mat-form-field style="width: 100%" class="pl-1">
<mat-select placeholder="Select District" >
<mat-option >
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field style="width: 100%" class="pl-1">
<mat-select placeholder="Select School">
<mat-option >
</mat-option>
</mat-select>
</mat-form-field> -->
<mat-form-field dividerColor="warn" class="ml-xs mr-xs" style="width: 100%;" appearance="outline">
<textarea matInput placeholder="Comments" rows="5" [(ngModel)]="gen_dev_fund_remarks"></textarea>
</mat-form-field>
<button mat-raised-button style="background-color:rgb(69, 189, 189);color:white" (click)="onNoClick()">Proceed to Contribute</button>
<p class="quote">&#8221;We make a living by what we get.<br> But we make a life by what we give&#8221; <br/>- Winston Churchill</p>
</div>
</div>

View File

@ -0,0 +1,10 @@
.quote{
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
font-size: 16px;
color:gray;
text-align: center;
font-style: italic;
}
.mat-dialog-content{
max-height: 80vh !important;
}

View File

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

View File

@ -0,0 +1,72 @@
import { Component, OnInit, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { Router } from '@angular/router';
import { ApiService } from 'app/shared/api.service';
@Component({
selector: 'app-contribute-fund',
templateUrl: './contribute-fund.component.html',
styleUrls: ['./contribute-fund.component.scss']
})
export class ContributeFundComponent implements OnInit {
general_devlop_amt:string='';
gen_dev_fund_remarks:string
constructor(public dialogRef: MatDialogRef<ContributeFundComponent>,
@Inject(MAT_DIALOG_DATA) public data: any,public router:Router,private apiService:ApiService) { }
ngOnInit() {
}
dev_fund_change(value){
if(value != ''){
if(value<=0){
alert('Given value is Invalid');
this.general_devlop_amt=''
}
}
}
// storeData_session(){
// sessionStorage.removeItem('contribute-selected-list')
// if(!this.apiService.isToken()){
// this.router.navigate(['payment'])
// return
// }
// if(this.general_devlop_amt ==''){
// alert("Please Fill the Amount");
// return
// }
// let data = {'records':
// {
// 'id':'',
// 'user_id':'',
// "cont_type":1, //1-funds 2-materials
// "cont_towards":"1", //1-State Fund
// "amount":this.general_devlop_amt,
// "payment_mode":"",
// "payment_ref":"",
// "gen_dev_fund_remarks":this.gen_dev_fund_remarks,
// "contributions":[]
// }};
// console.log(data);
// sessionStorage.setItem('contribute',JSON.stringify(data))
// this.apiService.csrContribute(data).subscribe(result=>{
// if(result['dataStatus']){
// data.records.id=result['records']
// data.records.contributions=[]
// sessionStorage.setItem('contribute-params',JSON.stringify(data))
// sessionStorage.setItem('contribute_final_total',this.general_devlop_amt)
// this.router.navigate(['payment'],{replaceUrl:true})
// }
// else{
// }
// })
// }
onNoClick(): void {
this.dialogRef.close({'fund_contribute':this.general_devlop_amt,'fund_remark':this.gen_dev_fund_remarks});
}
}

View File

@ -0,0 +1,280 @@
<div id="top"></div>
<div>
<mat-card class="pt-1 pl-1 sidescroll" *ngIf="grandTotal !=0">
<div fxLayout fxLayout="row" fxLayout.xs="column" fxLayoutAlign.md="center center">
<div class="mb-1" fxFlex.lg="40%" fxFlex.xs="100" fxFlex.sm="100%" fxFlex.md="40%" fxFlex.xl="40%">
<div *ngIf="dataStatus">
<mat-label class="mobfont largefont">I am happy to contribute</mat-label>&nbsp;&nbsp;
<mat-radio-group [(ngModel)]="contribute_type" >&nbsp;&nbsp;&nbsp;
<mat-radio-button value="2" ><span class="mobfont largefont">Material</span></mat-radio-button>&nbsp;&nbsp;&nbsp;
<mat-radio-button value="1"><span class="mobfont largefont">Funds</span></mat-radio-button>
</mat-radio-group>
</div>
</div>
<div class="mb-1" fxFlex.lg="20%" fxFlex.xs="50" fxFlex.sm="50%" fxFlex.md="20%" fxFlex.xl="20%">
<div *ngIf="dataStatus">
<mat-label class="total_card_1 mobfont largefont">Total :</mat-label>
<span class="total_card_2 mobfont largefont"> <strong><span class="amount"><span class="currency-symbol">&#8377;</span>&nbsp;{{grandTotal}}</span></strong></span>
</div>
</div>
<div class="mb-1" fxFlex.lg="20%" fxFlex.xs="50" fxFlex.sm="50%" fxFlex.md="20%" fxFlex.xl="20%">
<div *ngIf="dataStatus">
<!-- <button mat-raised-button color="primary" (click)="finalSave(2)" class="mr-1 mb-1">I'd like to Contribute in Kind</button> -->
<button class="text mob_submit" (click)="finalSave(contribute_type)" mat-raised-button style="background-color:rgb(69, 189, 189);color:white;font-weight: bold"><span>Submit</span></button>
</div>
</div>
</div>
</mat-card>
</div>
<!--starts-->
<div fxLayout fxLayout="row" fxLayout.xs="column" [ngClass]="{'large_view_top':grandTotal !=0}">
<!-- <div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="40" fxFlex.lg="20" fxFlex.xl="40"> -->
<mat-card class="support_mat" fxFlex="27%" fxFlex.xs="25%" fxFlex.sm="25%">
<!-- <mat-card-header style="padding: 0;margin: 0;"> -->
<!-- <mat-card-title> -->
<!--</mat-card-title> -->
<!-- </mat-card-header> -->
<mat-card-content>
<form [formGroup]="Contribute">
<div fxLayout="column" fxLayoutAlign="start center" class="mb-2 pt-1" >
<mat-form-field appearance="outline" dividerColor="primary" class="ml-xs mr-xs" style="width: 100%;">
<mat-select formControlName="district_id" (selectionChange)="getFilterValue($event.value,'school')">
<mat-option>
<ngx-mat-select-search formControlName="districtSearch" (keyup)="searchFun(Contribute,'district')"
[placeholderLabel]="'Search District...'"
[noEntriesFoundLabel]="'no matching records found'"></ngx-mat-select-search>
</mat-option>
<mat-option *ngFor="let item of district" [value]="item.district_id" >
{{ item.district_name }}
</mat-option>
</mat-select>
<mat-label><mat-icon>search</mat-icon>Select District</mat-label>
</mat-form-field>
<mat-form-field appearance="outline" dividerColor="accent" class="ml-xs mr-xs" style="width: 100%;" fxFlex.xs="50">
<mat-select formControlName="schoold_id">
<mat-option>
<ngx-mat-select-search formControlName="schoolSearch" (keyup)="searchFun(Contribute,'school')"
[placeholderLabel]="'Search School...'"
[noEntriesFoundLabel]="'no matching records found'"></ngx-mat-select-search>
</mat-option>
<mat-option *ngFor="let item of school" [value]="item.school_id" >
{{ item.school_name }}
</mat-option>
</mat-select>
<mat-label><mat-icon>search</mat-icon>Select School</mat-label>
</mat-form-field>
<mat-form-field appearance="outline" dividerColor="warn" class="ml-xs mr-xs" style="width: 100%;">
<mat-select formControlName="cad_id" (selectionChange)="getFilterValue($event.value,'material')">
<mat-option>
<ngx-mat-select-search formControlName="categorySearch" (keyup)="searchFun(Contribute,'category')"
[placeholderLabel]="'Search Category...'"
[noEntriesFoundLabel]="'no matching records found'"></ngx-mat-select-search>
</mat-option>
<mat-option *ngFor="let item of category" [value]="item.cat_id" >
{{ item.cat_name }}
</mat-option>
</mat-select>
<mat-label><mat-icon>search</mat-icon>Select Category</mat-label>
</mat-form-field>
<mat-form-field appearance="outline" dividerColor="warn" class="ml-xs mr-xs" style="width: 100%;">
<mat-select formControlName="mat_id">
<mat-option>
<ngx-mat-select-search formControlName="materialsSearch" (keyup)="searchFun(Contribute,'material_category')"
[placeholderLabel]="'Search Material Category...'"
[noEntriesFoundLabel]="'no matching records found'"></ngx-mat-select-search>
</mat-option>
<mat-option *ngFor="let item of material_category.materials" [value]="item.mat_id" >
{{ item.material_name }}
</mat-option>
</mat-select>
<mat-label><mat-icon>search</mat-icon>Select Material</mat-label>
</mat-form-field>
</div>
<div fxLayout fxLayout="row" style="text-align: right;" class="mb-2">
<div class="" fxFlex="100%" fxFlex.xs="100" fxFlex.sm="100">
<button mat-raised-button color="primary" (click)="refresh()">View All</button>
<button class="ml-2" mat-raised-button color="primary" (click)="reset()">Clear</button>
<button class="ml-2" mat-raised-button color="primary" (click)="getSchoolReqList()">Submit</button>
</div>
</div>
</form>
</mat-card-content>
</mat-card>
<!-- </div> -->
<!-- <div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="40" fxFlex.lg="1000" fxFlex.xl="40"> -->
<mat-card class="p-2" fxFlex.lg="72.5%" fxFlex.xs="100" fxFlex.sm="70%" fxFlex.md="68%" fxFlex.xl="70%">
<div fxLayout fxLayout="row" fxLayout.xs="column">
<mat-card fxLayoutAlign="center center" class="box_card card_1" (click)="openDialog()" fxFlex.lg="25%" fxFlex.xs="50" fxFlex.sm="50%" fxFlex.md="25%" fxFlex.xl="25%">
<div class="text-center">
<i class="fa fa-university fa-3x"></i>
<div class="d-inline-block mt-1">
<h6 class="mt-0"><strong>Contribute to State School<br> Development Fund</strong></h6>
</div>
</div>
</mat-card>
<mat-card [routerLink]="['/knowledge-sharing']" fxLayoutAlign="center center" class="box_card card_2" fxFlex.lg="25%" fxFlex.xs="50" fxFlex.sm="50%" fxFlex.md="25%" fxFlex.xl="25%">
<div class="text-center">
<i class="fa fa-mobile fa-3x"></i>
<div class="d-inline-block mt-1">
<h6 class="mt-0"><strong>Contribute<br> Electronic Devices</strong></h6>
</div>
</div>
</mat-card>
<mat-card [routerLink]="['/knowledge-sharing']" fxLayoutAlign="center center" class="box_card card_3" fxFlex.lg="25%" fxFlex.xs="50" fxFlex.sm="50%" fxFlex.md="25%" fxFlex.xl="25%">
<div class="text-center">
<i class="fa fa-book fa-3x"></i>
<div class="d-inline-block mt-1">
<h6 class="mt-0"><strong>Contribute<br> Books</strong></h6>
</div>
</div>
</mat-card>
<mat-card [routerLink]="['/knowledge-sharing']" fxLayoutAlign="center center" class="box_card card_4" fxFlex.lg="25%" fxFlex.xs="50" fxFlex.sm="50%" fxFlex.md="25%" fxFlex.xl="25%">
<div class="text-center">
<i class="fa fa-child fa-3x"></i>
<div class="d-inline-block mt-1">
<h6 class="mt-0"><strong>Contribute<br> your Time</strong></h6>
</div>
</div>
</mat-card>
</div>
<!-- <div fxLayoutAlign="end">
<button style="font-size: 13px;" mat-raised-button color="primary" (click)="openDialog()"></button>Contribute to
State School Development Fund</button>
</div> -->
<!-- <div style="height: 60px;background-color: #4bb4cd;" *ngIf="dataStatus" fxLayoutAlign="start center">
<mat-radio-group>&nbsp;&nbsp;&nbsp;
<mat-radio-button value="2" (click)="openDialog()"><span style=" font-size: 1.25rem;">Contribute to
State School Development Fund</span></mat-radio-button><br/>
</mat-radio-group>
</div> -->
<mat-card-title class="mb-1 mt-1">
<div>
</div>
<h5 class="mt-0 text-center">Contribute to Specific Need </h5></mat-card-title>
<hr>
<!--*********************-->
<!-- [ngClass]="{'example-container mat-elevation-z8':clientWidth >= 500}" -->
<div #table_element>
<mat-table [dataSource]="dataSource" matSort *ngIf="dataStatus;else status">
<!-- Requirement Column -->
<!-- <ng-container matColumnDef="Requirement">
<th style="width: 15% !important;" mat-header-cell *matHeaderCellDef ></th>
<td style="width: 15% !important;" mat-cell *matCellDef="let row" class="product-thumbnail"><img src="{{row.img_url}}" onerror="this.onerror=null;this.src='assets/images/csr-img/error_img.jpg';" alt="School Img" width="70"></td>
</ng-container> -->
<!-- Item Need Column -->
<ng-container matColumnDef="Item_Need">
<mat-header-cell *matHeaderCellDef mat-sort-header>Item Needed</mat-header-cell>
<mat-cell *matCellDef="let row" data-label="Item Needed" class="product-thumbnail"><span> {{row.material_name}} </span></mat-cell>
</ng-container>
<!-- School Column -->
<ng-container matColumnDef="School">
<mat-header-cell *matHeaderCellDef mat-sort-header>School</mat-header-cell>
<mat-cell data-label="School" *matCellDef="let row"><span> <a (click)="goToProjectDet(row)">{{row.school_name}}</a>,<br/> {{row.block_name}} Block, {{row.district_name}} District.</span></mat-cell>
</ng-container>
<!-- Quantity Column -->
<ng-container matColumnDef="Required_Qty">
<mat-header-cell *matHeaderCellDef mat-sort-header> Required Qty </mat-header-cell>
<mat-cell data-label="Required Qty" *matCellDef="let row"> {{row.qty}}</mat-cell>
</ng-container>
<ng-container matColumnDef="Received_Qty">
<mat-header-cell *matHeaderCellDef > Received Qty </mat-header-cell>
<mat-cell data-label="Received Qty" *matCellDef="let row"> {{row.received_qty}}</mat-cell>
</ng-container>
<ng-container matColumnDef="balance_Qty">
<mat-header-cell *matHeaderCellDef > Balance Qty </mat-header-cell>
<mat-cell data-label="balance Qty" *matCellDef="let row"> {{row.qty-row.received_qty <= 0 ? '' : row.qty-row.received_qty }}</mat-cell>
</ng-container>
<!-- Sponsor Column -->
<ng-container matColumnDef="Sponsor_Qty">
<mat-header-cell *matHeaderCellDef > Sponsored Qty </mat-header-cell>
<mat-cell data-label="Sponsored Qty" *matCellDef="let row;let i = index"> <input OnlyNumber="true" step="1" min="1" max="" title="Qty" [(ngModel)]="sponsor_qty[i]" class="text" size="2" type="number" (change)="somethingChanged($event.target.value,i,row.cost_per_unit,row.mat_id,row)"
class="sponsor_input" > </mat-cell>
</ng-container>
<!-- price Column -->
<ng-container matColumnDef="Cost_Per_Unit">
<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>
<!-- <td mat-footer-cell *matFooterCellDef> Total </td> -->
</ng-container>
<!-- Total Column -->
<ng-container matColumnDef="Amount">
<mat-header-cell *matHeaderCellDef > Amount <br/>(in Rs) </mat-header-cell>
<mat-cell data-label="Amount" *matCellDef="let row ;let i=index" >{{Total[i]}} </mat-cell>
<!-- <td mat-footer-cell *matFooterCellDef> {{somethingChanged()}} </td> -->
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
<!-- <tr mat-footer-row *matFooterRowDef="tableColumns"></tr> -->
</mat-table>
<!-- <div class="clearfix order-total" style="padding-bottom: 0px !important;">
<div class="calculated-shipping" style="text-align: -webkit-right !important;">
<table class="table-responsive" cellspacing="0" style="width: 50% !important;" *ngIf="dataStatus">
<tr class="order-total" style="text-align: right;">
<td style="font-weight: bold;text-align: right">Total</td>
<td> <strong><span class="amount"><span class="currency-symbol">&#8377;</span>{{grandTotal}}</span></strong></td>
</tr>
</table>
</div>
</div> -->
<mat-paginator [pageSize]="pageSize" [pageSizeOptions]="[5, 10, 25, 50, 100]" showFirstLastButtons ></mat-paginator>
<!-- <div style="text-align: center;" *ngIf="dataStatus" fxLayoutAlign="center">
<mat-label style=" font-size: 1.25rem;">I am happy to contribute</mat-label>&nbsp;&nbsp;
<mat-radio-group [(ngModel)]="contribute_type" >&nbsp;&nbsp;&nbsp;
<mat-radio-button value="2" ><span style=" font-size: 1.25rem;">Material</span></mat-radio-button><br/>
<mat-radio-button value="1"><span style=" font-size: 1.25rem;">Funds</span></mat-radio-button>
</mat-radio-group><br/>
</div>
<div class="pt-1 pr-1" style="text-align: right;" *ngIf="dataStatus">
<button (click)="finalSave(contribute_type)" mat-raised-button style="background-color:rgb(69, 189, 189);color:white;font-weight: bold" >Submit</button>
</div> -->
</div>
<ng-template #status><h2>{{msg}}</h2></ng-template>
<ngx-spinner
bdOpacity = 0.9
bdColor = "#fff"
size = "medium"
color = "#f44336ba"
type = "square-jelly-box"
[fullScreen] = "false">
<p style="color: #111" > Fetching School Requirements... </p>
</ngx-spinner>
<!--*********************-->
<!-- <div class="clearfix order-total">
<div class="calculated-shipping">
<h4>Cart Totals</h4>
<table class="table-responsive" cellspacing="0">
<tr class="order-total">
<th>Total</th>
<td><strong><span class="amount"><span class="currency-symbol">&#8377;</span>{{somethingChanged()}}</span></strong> </td>
</tr>
</table>
<div class="order-checkout">
<button mat-raised-button color="primary" class="mr-1 mb-1">Will Contribute the above in kind</button>
<button [routerLink]="['../payment']" mat-raised-button style="background-color:rgb(69, 189, 189);color:white" >Proceed for Payment</button>
</div>
</div>
</div> -->
</mat-card>
<!-- </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

@ -1,19 +1,125 @@
.calculated-shipping[_ngcontent-gen-c13]{
padding: 0px !important;
}
.large_view_top{
margin-top:70px;
}
.largefont{
font-size: 1.25rem;
}
.text {
width: 100px;
transition: all 0.5s;
cursor: pointer;
}
.text span {
cursor: pointer;
display: inline-block;
position: relative;
transition: 0.5s;
}
.text span:after {
content: '\00bb';
position: absolute;
opacity: 0;
top: 0;
right: -20px;
transition: 0.5s;
}
.text:hover span {
padding-right: 25px;
}
.text:hover span:after {
opacity: 1;
right: 0;
}
.sidescroll{
// right: 45px !important;
height: fit-content;
// height: fit-content;
// position: fixed;
z-index: 0;
// z-index: 0;
width: 97%;
position: fixed;
z-index: 2;
top: 84px;
bottom: auto;
background-color: #f1605e3b;
// box-shadow: 0 0 5px 1px rgba(0,0,0,.1);
}
@media(max-width:580px){
.sidescroll{
height: auto;
position: unset;
// right: -20px;
.total_card_1{
background-color: #f1605e;
padding: 10px 0px 10px 10px;
border-radius: 10px 0px 0px 10px;
}
.total_card_2{
background-color: #f1605e;
padding: 10px 10px 10px 2px;
border-radius: 0px 10px 10px 0px;
}
.box_card{
height: 130px;
color: #fff;
border-radius: 10px;
}
.card_1{
background-color:#4caf50bf;
}
.card_2{
background-color:#ffa500d9;
}
.card_3{
background-color:#f44336ba;
}
.card_4{
background-color:#5ca6b0;
}
@media only screen and (min-width:960px){
mat-header-row{
background-color: #f8f4f4;
}
mat-row{
padding: 5px !important;
// margin-bottom: 1rem !important;
// height: 80px !important;
// margin-top: 1rem !important;
// border: 1px solid #d4bbbb !important;
// background-color: #f8f4f4;
// transition: transform 1.5s;
}
// mat-row:hover::after, mat-row:focus::after {
// opacity: 1;
// }
// mat-row:hover, mat-row:focus {
// // transform: scale3d(1.300, 1.300, 1);
// border-radius: 5px;
// box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0 rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2) !important;
// }
}
@media only screen and(max-width:580px){
// .mobileview{
// margin-top: 106px;
// }
.mobfont{
font-size: 12px;
}
.large_view_top{
margin-top:130px;
}
.mob_submit{
line-height: 30px;
padding: 0px;
}
// .sidescroll{
// height: auto;
// position: unset;
// // right: -20px;
// }
}
a {
text-decoration: underline;
@ -76,7 +182,7 @@ a {
.mat-table .mat-header-cell, mat-cell {
border: none;
// border-bottom: 1px solid #e9e9e9;
padding: 12px 16px 12px 0;
// padding: 12px 16px 12px 0;
vertical-align: middle;
}
@ -102,13 +208,13 @@ a {
}
}
@media(max-width:768px) {
@media only screen and (max-width:768px) {
.main-detail-product {
padding: 0.3rem !important;
}
}
@media(max-width:580px){
@media only screen and (max-width:580px){
.product-thumbnail {
display: none;
}
@ -167,7 +273,15 @@ a {
text-align: center;
font-style: italic;
}
@media (max-width: 992px) {
.container {
display: flex;
flex-wrap: nowrap;
height: 300px;
overflow-x: auto;
width: auto;
}
}
@media screen and (max-width: 960px) {
.mat-table {
border: 0;
@ -259,7 +373,7 @@ a {
width: 100% ;
text-align: center;
}
@media(max-width:580px){
@media only screen and (max-width:580px){
.sponsor_input{
width:30%;
text-align: left;

View File

@ -2,9 +2,13 @@ import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
import { environment } from '../../../environments/environment';
import { ApiService } from '../../shared/api.service';
import { FormGroup, FormBuilder, FormControl, Validators, } from '@angular/forms';
import { MatTableDataSource, MatPaginator, MatSort } from '@angular/material';
import { MatTableDataSource, MatPaginator, MatSort, MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { Router } from '@angular/router';
import { SchoolDetailsService } from 'app/shared/school-details.service';
import { ContributeFundComponent } from './contribute-fund/contribute-fund.component';
import { takeUntil } from 'rxjs/operators';
import { Subject } from 'rxjs';
import { NgxSpinnerService } from 'ngx-spinner';
@ -44,7 +48,12 @@ export class ContributeComponent implements OnInit {
@ViewChild('table_element',{static:true}) table_element : ElementRef
clientWidth: any;
contribute_type:any='';
constructor(public restApi:ApiService,public fb:FormBuilder,public router:Router,private apiService:ApiService,public schInfo:SchoolDetailsService) {
districtData: any = [];
protected _onDestroy = new Subject<void>();
schoolData: any = [];
categoryData: any = [];
materialsData: any = [];
constructor(private spinner: NgxSpinnerService,public dialog: MatDialog,public restApi:ApiService,public fb:FormBuilder,public router:Router,private apiService:ApiService,public schInfo:SchoolDetailsService) {
// Create 100 users
}
@ -90,7 +99,11 @@ export class ContributeComponent implements OnInit {
schoold_id: new FormControl(''),
district_id: new FormControl(''),
cad_id: new FormControl(''),
mat_id: new FormControl('')
mat_id: new FormControl(''),
districtSearch: new FormControl(''),
schoolSearch: new FormControl(''),
categorySearch: new FormControl(''),
materialsSearch: new FormControl('')
})
}
getFilterValue(value,option){
@ -105,6 +118,7 @@ export class ContributeComponent implements OnInit {
if(res['dataStatus'])
{
this.district = res['records'].filter(val=>val.district_name != null);
this.districtData = this.district;
}
})
break;
@ -116,6 +130,7 @@ export class ContributeComponent implements OnInit {
if(res['dataStatus'])
{
this.school = res['records'];
this.schoolData = this.school;
}
})
@ -127,6 +142,7 @@ export class ContributeComponent implements OnInit {
if(res['dataStatus'])
{
this.category = res['records'].filter(val=>val.cat_name != null);
this.categoryData = this.category;
}
})
break;
@ -134,6 +150,7 @@ export class ContributeComponent implements OnInit {
this.material_category = this.category.filter(cate=>cate.cat_id==value)[0];
console.log(this.material_category);
this.materialsData = this.material_category.materials;
break;
}
@ -141,6 +158,8 @@ export class ContributeComponent implements OnInit {
getSchoolReqList()
{
this.spinner.show();
this.finalData=[]
this.whole_contribute_list=[]
this.Total=[]
@ -194,6 +213,10 @@ export class ContributeComponent implements OnInit {
this.pageSize = 0;
this.msg = schDet.msg;
}
setTimeout(() => {
/** spinner ends after 5 seconds */
this.spinner.hide();
});
})
}
somethingChanged(e,i,item,mat_id,curr_data){
@ -273,14 +296,14 @@ export class ContributeComponent implements OnInit {
}
dev_fund_change(value){
if(value != ''){
if(value<=0){
alert('Given value is Invalid');
this.general_devlop_amt=''
}
}
}
// dev_fund_change(value){
// if(value != ''){
// if(value<=0){
// alert('Given value is Invalid');
// this.general_devlop_amt=''
// }
// }
// }
getSchoolReqList2()
{
@ -457,5 +480,118 @@ export class ContributeComponent implements OnInit {
window.location.reload();
}
openDialog(): void {
const dialogRef = this.dialog.open(ContributeFundComponent, {
width: '600px',
height: '600px',
});
dialogRef.afterClosed().subscribe(result => {
console.log('The dialog was closed',result);
this.gen_dev_fund_remarks=result.fund_remark;
this.general_devlop_amt=result.fund_contribute;
this.storeData_session();
});
}
searchFun(control:any,option){
console.log("control",control)
if (option == 'district') {
console.log(control)
control.controls['districtSearch'].valueChanges
.pipe(takeUntil(this._onDestroy))
.subscribe(()=>{
this.searchDistrict(control.controls['districtSearch'].value)
})
}
if (option == 'school') {
control.controls['schoolSearch'].valueChanges
.pipe(takeUntil(this._onDestroy))
.subscribe(() => {
this.SearchSchool(control.controls['schoolSearch'].value);
})
}
if (option == 'category') {
// console.log("category")
control.controls['categorySearch'].valueChanges
.pipe(takeUntil(this._onDestroy))
.subscribe(()=>{
this.searchCategory(control.controls['categorySearch'].value)
})
}
if (option == 'material_category') {
// console.log("material_category")
control.controls['materialsSearch'].valueChanges
.pipe(takeUntil(this._onDestroy))
.subscribe(()=>{
this.searchmaterials(control.controls['materialsSearch'].value)
})
}
}
searchDistrict(val: any) {
console.log("districtData")
if (!this.districtData) {
return
}
let searchVal = val
if (!searchVal) {
this.district=this.districtData.slice()
return
}
else {
searchVal = searchVal.toLowerCase()
}
this.district=this.districtData.filter(res => res.district_name.toLowerCase().indexOf(searchVal) > -1)
}
SearchSchool(val: any) {
console.log("schoolData")
if (!this.schoolData) {
return
}
let searchVal = val
if (!searchVal) {
this.school=this.schoolData.slice()
return
}
else {
searchVal = searchVal.toLowerCase()
}
this.school=this.schoolData.filter(res => res.school_name.toLowerCase().indexOf(searchVal) > -1)
}
searchCategory(val: any) {
console.log("categoryData")
if (!this.categoryData) {
return
}
let searchVal = val
if (!searchVal) {
this.category=this.categoryData.slice()
return
}
else {
searchVal = searchVal.toLowerCase()
}
this.category=this.categoryData.filter(res => res.cat_name.toLowerCase().indexOf(searchVal) > -1)
}
searchmaterials(val: any) {
console.log(this.materialsData)
if (!this.materialsData) {
return
}
let searchVal = val
if (!searchVal) {
this.material_category.materials=this.materialsData.slice()
return
}
else {
searchVal = searchVal.toLowerCase()
}
this.material_category.materials=this.materialsData.filter(res => res.material_name.toLowerCase().indexOf(searchVal) > -1)
}
}

Some files were not shown because too many files have changed in this diff Show More