|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- import { Component, OnInit } from '@angular/core';
- import { PartnerProfileService } from '../../services/partner-profile.service';
- import { Router } from '@angular/router';
- import * as Papa from 'papaparse';
- import * as XLSX from 'xlsx'
-
- @Component({
- selector: 'app-table',
- templateUrl: './table.component.html',
- styleUrls: ['./table.component.scss']
- })
-
- export class TableComponent implements OnInit {
- userData: Array<any> = [];
- tempUserData: Array<any> = [];
- showExportOptions: boolean = false;
- shouldHaveImplementationData: boolean = false;
- searchText: string = '';
- selectedPartnerList: Array<any> = [];
-
- constructor(
- private partnerProfileService: PartnerProfileService,
- private router: Router
- ) { }
-
- ngOnInit(): void {
- this.getFilteredData();
- }
-
- getFilteredData() {
- this.partnerProfileService.getPartnersData().then((data: any) => {
- this.userData = data;
-
- if (this.shouldHaveImplementationData) {
- this.userData = this.userData.filter(user => {
- return (user.surveyCtoData.hiiData && user.surveyCtoData.hiiData.length > 0) ||
- (user.surveyCtoData.spData && user.surveyCtoData.spData.length > 0) ||
- (user.surveyCtoData.spSchemeData && user.surveyCtoData.spSchemeData.length > 0)
- });
- }
-
- if (this.searchText) {
- this.userData = this.userData.filter(user => {
- return user.organizationBasicInfo.name && user.organizationBasicInfo.name.toLowerCase().trim().includes(this.searchText.toLowerCase().trim());
- })
- }
-
- this.partialLoad(this.userData.slice(0, 10))
-
- console.log(this.userData);
- }, (e) => console.log(e));
- }
-
- partialLoad(data: Array<any>) {
- this.tempUserData = data;
- console.log(this.tempUserData);
- }
-
- loadMore() {
- this.partialLoad(this.userData.slice(0, this.tempUserData.length + 10));
- }
-
- showPartnerDetails(partner: any) {
- this.router.navigate(['dashboard/partners/partner-details'], { queryParams: { data: JSON.stringify(partner) } });
- }
-
- selectPartner(partner: any) {
- if (this.selectedPartnerList) {
- console.log(!this.checkedInput(partner))
- if (this.selectedPartnerList.some(x => JSON.stringify(x) === JSON.stringify(partner))) {
- this.selectedPartnerList = this.selectedPartnerList.filter(x => JSON.stringify(x) !== JSON.stringify(partner))
- } else this.selectedPartnerList.push(partner)
- }
- }
-
- loadExportData() {
- let tempArray = [];
- for (const partner of this.selectedPartnerList) {
- let csvArray = [{
- "PortalID": partner.portalId ? partner.portalId : '-',
-
- // Primary Contact
-
- "Primary Name": partner.primaryContact.contactNumber,
- "Primary Contact Number": partner.primaryContact.contactNumber,
- "Primary Email": partner.primaryContact.contactNumber,
- "Primary Designation": partner.primaryContact.contactNumber,
-
- // Basic Info
-
- "areasOfWork": partner.organizationBasicInfo.areasOfWork ? partner.organizationBasicInfo.areasOfWork.toString() : '',
- "name": partner.organizationBasicInfo.name,
- "reasonForBecomingMember": partner.organizationBasicInfo.reasonForBecomingMember,
- "referralName": partner.organizationBasicInfo.referralName,
- "source": partner.organizationBasicInfo.source,
- "type": partner.organizationBasicInfo.type,
- "website": partner.organizationBasicInfo.website,
- "wouldLikeUpdates": partner.organizationBasicInfo.wouldLikeUpdates,
-
- // Alternative Contact
-
- 'Alternative Name': partner.alternateContact.name,
- 'Alternative ContactNumber': partner.alternateContact.contactNumber,
- 'Alternative Email': partner.alternateContact.email,
- 'Alternative Designation': partner.alternateContact.designation,
-
- // Detailed Profile
-
- 'Bio': partner.detailedProfile.bio,
- 'Branch Location Countries': partner.detailedProfile.branchLocationCountries ? partner.detailedProfile.branchLocationCountries.toString() : '',
- "Communities": partner.detailedProfile.communities ? partner.detailedProfile.communities.toString() : '',
- "District": partner.detailedProfile.district,
- "Districts": partner.detailedProfile.districts ? partner.detailedProfile.districts.toString() : '',
- "Files": partner.detailedProfile.files,
- "Have Branches In Other Districts": partner.detailedProfile.haveBranchesInOtherDistricts,
- "Logo": partner.detailedProfile.logo,
- "Partner Location": partner.detailedProfile.partnerLocation,
- "Preferred Languages": partner.detailedProfile.preferredLanguages ? partner.detailedProfile.preferredLanguages.toString() : '',
- "Preferred Mode Of Communications": partner.detailedProfile.preferredModeOfCommunications ? partner.detailedProfile.preferredModeOfCommunications.toString() : '',
- "State": partner.detailedProfile.state,
- "States": partner.detailedProfile.states ? partner.detailedProfile.states.toString() : '',
- "Total Reach Of Organization": partner.detailedProfile.totalReachOfOrganization,
- "Year Of Establishment": partner.detailedProfile.yearOfEstablishment,
-
- // Strength
-
- "Other Specific Support Required": partner.strengthAndCapability.otherSpecificSupportRequired,
- "Primary Areas Of Support Offered": partner.strengthAndCapability.otherSpecificSupportRequired ? partner.strengthAndCapability.otherSpecificSupportRequired.toString() : '',
- "Primary Areas Of Support Offered Description": partner.strengthAndCapability.primaryAreasOfSupportOffered,
- "Primary Areas Of Support Offered Other": partner.strengthAndCapability.primaryAreasOfSupportOfferedDescription,
- "Primary Areas Of Support Required": partner.strengthAndCapability.primaryAreasOfSupportOfferedOther ? partner.strengthAndCapability.primaryAreasOfSupportOfferedOther.toString() : '',
- "Primary Areas Of Support Required Description": partner.strengthAndCapability.primaryAreasOfSupportRequired,
- "Primary Areas Of Support Required Other": partner.strengthAndCapability.primaryAreasOfSupportRequiredOther,
- }]
-
- tempArray.push(csvArray[0])
- }
- return tempArray;
- }
-
- checkedInput(partner: any) {
- return this.selectedPartnerList.some(x => JSON.stringify(x) === JSON.stringify(partner))
- }
-
- checkedAllInput() {
- return JSON.stringify(this.selectedPartnerList) === JSON.stringify(this.tempUserData)
- }
-
- selectAllPartner() {
- if (JSON.stringify(this.selectedPartnerList) === JSON.stringify(this.tempUserData)) {
- this.selectedPartnerList = []
- } else this.selectedPartnerList = this.tempUserData
- }
-
- exportProfileData(index: number) {
- let fileTypeXLS = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
- let fileTypeCSV = 'text/csv;charset=utf-8;';
- let fileExtension = index === 0 ? '.csv' : '.xlsx';
- let element = document.createElement('a');
- let blob;
-
- if (index === 0) {
- let csvData = Papa.unparse(this.loadExportData());
- blob = new Blob([csvData], { type: fileTypeCSV });
- } else {
- let ws = XLSX.utils.json_to_sheet(this.loadExportData());
- let wb = { Sheets: { 'data': ws }, SheetNames: ['data'] };
- let excelBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
- blob = new Blob([excelBuffer], { type: fileTypeXLS });
- }
- let url = URL.createObjectURL(blob);
- element.href = url;
- element.setAttribute('download', 'PartnerProfile' + fileExtension);
- element.click();
- }
-
-
- }
|