{"version":3,"sources":["./src/app/components/line-graph/line-graph.component.ts","./src/app/components/line-graph/line-graph.component.html","./src/app/components/company-stats/company-stats.component.ts","./src/app/components/company-stats/company-stats.component.html","./src/app/components/setup-roundtrip/setup-roundtrip.component.ts","./src/app/components/setup-roundtrip/setup-roundtrip.component.html","./src/app/components/detail-developer/detail-developer.component.ts","./src/app/components/detail-developer/detail-developer.component.html","./src/app/components/my-account/my-account.component.ts","./src/app/components/my-account/my-account.component.html","./src/app/components/company-billing/billing.service.ts","./src/app/components/provision-complete/provision-complete.component.ts","./src/app/components/provision-complete/provision-complete.component.html","./src/app/components/company-checker/company-checker.component.html","./src/app/components/company-checker/company-checker.component.ts","./src/app/components/sp-spinner/sp-spinner.component.ts","./src/app/components/sp-spinner/sp-spinner.component.html","./src/app/tree/example-data.ts","./src/app/components/compose/compose.component.ts","./src/app/components/compose/compose.component.html","./src/app/table/table.component.ts","./src/app/table/table.component.html","./src/app/components/company-logo/company-logo.component.ts","./src/app/components/company-logo/company-logo.component.html","./src/app/components/csv-download-dialog/csv-download-dialog.component.ts","./src/app/components/csv-download-dialog/csv-download-dialog.component.html","./src/app/components/line-graph2/line-graph2.component.ts","./src/app/components/line-graph2/line-graph2.component.html","./src/app/components/resources/resources.data.ts","./src/app/components/home/home.component.ts","./src/app/components/home/home.component.html","./src/app/components/setup-microsoft/setup-microsoft.component.ts","./src/app/components/setup-microsoft/setup-microsoft.component.html","./src/app/components/confirm-dialog/confirm-dialog.component.ts","./src/app/components/confirm-dialog/confirm-dialog.component.html","./src/app/messages/messages.component.html","./src/app/messages/messages.component.ts","./src/app/components/csv-update-dialog/csv-update-dialog.component.ts","./src/app/components/csv-update-dialog/csv-update-dialog.component.html","./src/app/components/company-setup-page/company-setup-page.component.ts","./src/app/components/company-setup-page/company-setup-page.component.html","./src/app/company.service.ts","./src/app/components/company-advanced/company-advanced.component.ts","./src/app/components/company-advanced/company-advanced.component.html","./src/app/components/company-setup-process/company-setup-process.component.ts","./src/app/components/company-setup-process/company-setup-process.component.html","./src/app/components/setup-google/setup-google.component.ts","./src/app/components/setup-google/setup-google.component.html","./src/app/login-two/login-two.component.ts","./src/app/login-two/login-two.component.html","./src/app/message.service.ts","./src/app/components/billing/billing.component.ts","./src/app/components/billing/billing.component.html","./src/app/components/setup-spf/setup-spf.component.ts","./src/app/components/setup-spf/setup-spf.component.html","./src/app/dashboard/dashboard.component.html","./src/app/dashboard/dashboard.component.ts","./src/app/components/setup-complete/setup-complete.component.ts","./src/app/components/setup-complete/setup-complete.component.html","./src/app/components/confirm-popup/confirm-popup.component.ts","./src/app/components/confirm-popup/confirm-popup.component.html","./src/app/components/company-billing/company-billing.component.ts","./src/app/components/company-billing/company-billing.component.html","./src/app/components/notifications/notifications.component.ts","./src/app/components/notifications/notifications.component.html","./src/app/components/company-setup/company-setup.component.ts","./src/app/components/company-setup/company-setup.component.html","./src/app/components/notifications/preferences/preferences.component.ts","./src/app/components/notifications/preferences/preferences.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/config.ts","./src/app/components/login/login.component.ts","./src/app/components/login/login.component.html","./src/app/components/edit-theme/edit-theme.component.ts","./src/app/components/edit-theme/edit-theme.component.html","./src/app/components/resources/resources.component.ts","./src/app/components/resources/resources.component.html","./src/app/components/company-hierarchy/company-hierarchy.component.ts","./src/app/components/company-hierarchy/company-hierarchy.component.html","./src/app/components/company-config/company-config.component.ts","./src/app/components/company-config/company-config.component.html","./src/app/app.module.ts","./src/app/components/my-company/my-company.component.ts","./src/app/components/my-company/my-company.component.html","./src/app/table/table-datasource.ts","./src/app/components/edit-password/edit-password.component.ts","./src/app/components/edit-password/edit-password.component.html","./src/app/components/error404/error404.component.ts","./src/app/components/error404/error404.component.html","./src/app/components/company-detail/company-detail.component.ts","./src/app/components/company-detail/company-detail.component.html","./src/app/components/add-user/matching-validator.directive.ts","./src/app/companies/companies.component.html","./src/app/companies/companies.component.ts","./src/app/navigation/navigation.component.ts","./src/app/navigation/navigation.component.html","./src/app/setupSteps.ts","./src/app/components/add-company/add-company.component.ts","./src/app/components/add-company/add-company.component.html","./src/app/tree/tree.component.ts","./src/app/tree/tree.component.html","./src/app/components/forgot-password/forgot-password.component.ts","./src/app/components/forgot-password/forgot-password.component.html","./src/app/components/company-logo/remove-logo/remove-logo.component.ts","./src/app/components/company-logo/remove-logo/remove-logo.component.html","./src/app/components/setup-dkim/setup-dkim.component.ts","./src/app/components/setup-dkim/setup-dkim.component.html","./src/app/components/contact-us/contact-us.component.ts","./src/app/components/contact-us/contact-us.component.html","./src/app/components/reset-password/reset-password.component.ts","./src/app/components/reset-password/reset-password.component.html","./src/app/app-resolver.service.ts","./src/app/components/user-list/user-list.component.ts","./src/app/components/user-list/user-list.component.html","./src/app/app-routing.module.ts","./src/app/globals.ts","./src/app/components/login/auth.guard.ts","./src/app/components/company-list/company-list.component.ts","./src/app/components/company-list/company-list.component.html","./src/app/components/add-user/add-user.component.ts","./src/app/components/add-user/add-user.component.html","./src/main.ts","./$_lazy_route_resource lazy namespace object","./src/app/components/developer/developer.component.ts","./src/app/components/developer/developer.component.html"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["import { SelectionModel } from '@angular/cdk/collections';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { Globals } from 'src/app/globals';\nimport { multi } from './line-data';\ninterface Chart {\n value: string;\n viewValue: string;\n}\nclass ChartStats {\n name: string;\n series:{\n name:string;\n value:number;\n }[];\n}\n@Component({\n selector: 'app-line-graph',\n templateUrl: './line-graph.component.html',\n styleUrls: ['./line-graph.component.css']\n})\nexport class LineGraphComponent implements OnInit{\n charts: Chart[] = [\n {value: 'recipientTotal', viewValue: 'Recipients'},\n {value: 'storageTotal', viewValue: 'Storage'},\n //{value: 'monthlyRetailPrice', viewValue: 'Monthly retail price'},\n {value: 'userTotal', viewValue: 'Users'},\n {value: 'emailSent24h', viewValue: 'Emails sent per day'},\n {value: 'emailSent7d', viewValue: 'Emails sent per week'},\n {value: 'emailSent28d', viewValue: 'Email sent per 28 days'},\n {value: 'emailSentTotal', viewValue: 'Cumulative emails sent'},\n {value: 'emailReceived24h', viewValue: 'Emails received per day'},\n {value: 'emailReceived7d', viewValue: 'Emails received per week'},\n {value: 'emailReceived28d', viewValue: 'Emails received per 28 days'},\n {value: 'emailReceivedTotal', viewValue: 'Cumulative emails received'}\n\n ];\n selectedChart = this.charts[0].value;\n\n multi: any;\n view: any[] = [700, 300];\n\n // options\n scaleMax:Number =50\n legend: boolean = true;\n showLabels: boolean = true;\n animations: boolean = true;\n xAxis: boolean = true;\n yAxis: boolean = true;\n showYAxisLabel: boolean = true;\n showXAxisLabel: boolean = true;\n xAxisLabel: string = 'Date';\n yAxisLabel: string = 'Population'; \n\n colorScheme = {\n domain: [localStorage.getItem('background-color')]\n };\n constructor(private http: HttpClient, private globals:Globals, private route: ActivatedRoute) {\n //Object.assign(this, { multi });\n }\n\n\n recipientTotalChart:ChartStats={name:\"Recipients\",series:[{name:\"\",value:0}]};\n storageTotalChart:ChartStats={name:\"Storage\",series:[{name:\"\",value:0}]};\n monthlyRetailPriceChart:ChartStats={name:\"Retail price\",series:[{name:\"\",value:0}]};\n userTotalChart:ChartStats={name:\"Users\",series:[{name:\"\",value:0}]};\n emailSent24hChart:ChartStats={name:\"Emails sent per day\",series:[{name:\"\",value:0}]};\n emailSent7dChart:ChartStats={name:\"Emails sent per week\",series:[{name:\"\",value:0}]};\n emailSent28dChart:ChartStats={name:\"Email sent per 28 days\",series:[{name:\"\",value:0}]};\n emailSentTotalChart:ChartStats={name:\"Total emails sent\",series:[{name:\"\",value:0}]};\n emailReceived24hChart:ChartStats={name:\"Emails received per day\",series:[{name:\"\",value:0}]};\n emailReceived7dChart:ChartStats={name:\"Emails received per week\",series:[{name:\"\",value:0}]};\n emailReceived28dChart:ChartStats={name:\"Email received per 28 days\",series:[{name:\"\",value:0}]};\n emailReceivedTotalChart:ChartStats={name:\"Total emails received\",series:[{name:\"\",value:0}]};\n\n \n async ngOnInit(){\n const currentDate = new Date();\n currentDate.setDate(currentDate.getDate()+1)\n const EndDate = currentDate.getFullYear()+\"-\"+(currentDate.getMonth()+1)+\"-\"+currentDate.getDate();\n \n let param = new HttpParams();\n param = param.append('AuthToken',await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n if(this.route.snapshot.params['id']){\n param = param.append('CompanyId',this.route.snapshot.params['id']);\n }else{\n }\n param = param.append('StartDate',\"1990-10-14\");\n param = param.append('EndDate',EndDate);\n this.http.get(this.globals.getApiUrl()+'api/getSPMailCompanyStats.php',{params:param}).subscribe({next: data => \n {\n \n //Recipient Total\n this.recipientTotalChart.name=\"Recipient Total\";\n for(let el of data.StatsList){\n this.recipientTotalChart.series.push({name:this.dateConverter(el.StatsDateUTC),value:Number(el.NumActiveRecipients)});\n } \n this.recipientTotalChart.series.splice(0,1) \n //User Total\n this.userTotalChart.name=\"User Total\";\n for(let el of data.StatsList){\n this.userTotalChart.series.push({name:this.dateConverter(el.StatsDateUTC),value:Number(el.NumActiveUsers)});\n } \n this.userTotalChart.series.splice(0,1) \n //Email Sent daily\n this.emailSent24hChart.name=\"Emails Sent Daily\"; \n for(let el of data.StatsList){\n this.emailSent24hChart.series.push({name:this.dateConverter(el.StatsDateUTC),value:Number(el.NumEmailsSentPeriod)}); \n } \n this.emailSent24hChart.series.splice(0,1)\n //Email Sent Weekly\n data.StatsList.reverse()\n this.emailSent7dChart.name=\"Emails Sent Weekly\";\n let i=0\n let firstEl\n for(let el of data.StatsList){\n i++ \n if(i==1){firstEl=el}\n if(i==8){\n this.emailSent7dChart.series.push({\n name:this.dateConverter(firstEl.StatsDateUTC),\n value:Number(firstEl.NumEmailsSentTotal-el.NumEmailsSentTotal)\n });\n firstEl=el;\n i=1;\n }\n }\n if(i!=0){\n if(i==1){\n this.emailSent7dChart.series.push({name:this.dateConverter(firstEl.StatsDateUTC),value:Number(firstEl.NumEmailsSentPeriod)}); \n }else{\n this.emailSent7dChart.series.push({\n name:this.dateConverter(firstEl.StatsDateUTC),\n value:Number(firstEl.NumEmailsSentTotal-data.StatsList[data.StatsList.length-1].NumEmailsSentTotal)\n });\n } \n i=0;\n } \n this.emailSent7dChart.series.splice(0,1) \n this.emailSent7dChart.series.reverse()\n data.StatsList.reverse()\n //Email Sent Monthly\n data.StatsList.reverse()\n this.emailSent28dChart.name=\"Emails Sent Monthly\"; \n i=0; \n firstEl=null \n for(let el of data.StatsList){\n i++ \n if(i==1){firstEl=el}\n if(i==29){\n this.emailSent28dChart.series.push({\n name:this.dateConverter(firstEl.StatsDateUTC),\n value:Number(firstEl.NumEmailsSentTotal-el.NumEmailsSentTotal) \n });\n firstEl=el;\n i=1;\n }\n }\n if(i!=0){\n if(i==1){\n this.emailSent28dChart.series.push({name:this.dateConverter(firstEl.StatsDateUTC),value:Number(firstEl.NumEmailsSentPeriod)}); \n }else{\n this.emailSent28dChart.series.push({\n name:this.dateConverter(firstEl.StatsDateUTC),\n value:Number(firstEl.NumEmailsSentTotal-data.StatsList[data.StatsList.length-1].NumEmailsSentTotal)\n });\n } \n i=0;\n } \n this.emailSent28dChart.series.splice(0,1) \n this.emailSent28dChart.series.reverse()\n data.StatsList.reverse()\n //Email Sent Total\n this.emailSentTotalChart.name=\"Emails Sent Total\"; \n for(let el of data.StatsList){\n this.emailSentTotalChart.series.push({name:this.dateConverter(el.StatsDateUTC),value:Number(el.NumEmailsSentTotal)}); \n } \n //Email Received daily\n this.emailReceived24hChart.name=\"Emails Received Daily\"; \n for(let el of data.StatsList){\n this.emailReceived24hChart.series.push({name:this.dateConverter(el.StatsDateUTC),value:Number(el.NumEmailsReceivedPeriod)}); \n } \n this.emailReceived24hChart.series.splice(0,1)\n //Email Received Weekly\n data.StatsList.reverse()\n this.emailReceived7dChart.name=\"Emails Received Weekly\";\n i=0\n firstEl\n for(let el of data.StatsList){\n i++ \n if(i==1){firstEl=el}\n if(i==8){\n this.emailReceived7dChart.series.push({\n name:this.dateConverter(firstEl.StatsDateUTC),\n value:Number(firstEl.NumEmailsReceivedTotal-el.NumEmailsReceivedTotal)\n });\n firstEl=el;\n i=1;\n }\n }\n if(i!=0){\n if(i==1){\n this.emailReceived7dChart.series.push({name:this.dateConverter(firstEl.StatsDateUTC),value:Number(firstEl.NumEmailsReceivedPeriod)}); \n }else{\n this.emailReceived7dChart.series.push({\n name:this.dateConverter(firstEl.StatsDateUTC),\n value:Number(firstEl.NumEmailsReceivedTotal-data.StatsList[data.StatsList.length-1].NumEmailsReceivedTotal)\n });\n } \n i=0;\n } \n this.emailReceived7dChart.series.splice(0,1) \n this.emailReceived7dChart.series.reverse()\n data.StatsList.reverse()\n //Email Received Monthly\n data.StatsList.reverse()\n this.emailReceived28dChart.name=\"Emails Received Monthly\"; \n i=0; \n firstEl=null \n for(let el of data.StatsList){\n i++ \n if(i==1){firstEl=el}\n if(i==29){\n this.emailReceived28dChart.series.push({\n name:this.dateConverter(firstEl.StatsDateUTC),\n value:Number(firstEl.NumEmailsReceivedTotal-el.NumEmailsReceivedTotal) \n });\n firstEl=el;\n i=1;\n }\n }\n if(i!=0){\n if(i==1){\n this.emailReceived28dChart.series.push({name:this.dateConverter(firstEl.StatsDateUTC),value:Number(firstEl.NumEmailsReceivedPeriod)}); \n }else{\n this.emailReceived28dChart.series.push({\n name:this.dateConverter(firstEl.StatsDateUTC),\n value:Number(firstEl.NumEmailsReceivedTotal-data.StatsList[data.StatsList.length-1].NumEmailsReceivedTotal)\n });\n } \n i=0;\n } \n this.emailReceived28dChart.series.splice(0,1) \n this.emailReceived28dChart.series.reverse()\n data.StatsList.reverse()\n //Email Received Total\n this.emailReceivedTotalChart.name=\"Emails Received Total\"; \n for(let el of data.StatsList){\n this.emailReceivedTotalChart.series.push({name:this.dateConverter(el.StatsDateUTC),value:Number(el.NumEmailsReceivedTotal)}); \n } \n this.emailReceivedTotalChart.series.splice(0,1)\n //Total Storage\n this.storageTotalChart.name=\"Total Storage\"; \n for(let el of data.StatsList){\n this.storageTotalChart.series.push({name:this.dateConverter(el.StatsDateUTC),value:Number(el.TotalStorageUsedMB)/1024}); \n } \n this.storageTotalChart.series.splice(0,1)\n //MonthlyChargeValue\n this.monthlyRetailPriceChart.name=\"MonthlyChargeValue\"; \n for(let el of data.StatsList){\n let PriceA = 10 + 2.50 * Math.max(0, Math.floor((Number(el.NumActiveRecipients)+24)/25)-4) + 2.50 * Math.max(0,Math.floor(Number(el.TotalStorageUsedMB)/10240)); \n let PriceB = 35 + 9.50 * Math.max(0, Math.floor((Number(el.NumActiveRecipients)+124)/125)-4) + 9.50 * Math.max(0,Math.floor(Number(el.TotalStorageUsedMB)/51200));\n let PriceC = 65 + 15 * Math.max(0, Math.floor((Number(el.NumActiveRecipients)+249)/250)-4) + 15 * Math.max(0,Math.floor(Number(el.TotalStorageUsedMB)/102400));\n let monthlyRetailPrice= Math.min(PriceA,PriceB,PriceC);\n this.monthlyRetailPriceChart.series.push({name:this.dateConverter(el.StatsDateUTC),value:Number(monthlyRetailPrice)}); \n } \n this.monthlyRetailPriceChart.series.splice(0,1) \n \n this.onSwitch();\n },\n error: error => \n {console.error('There was an error!');}\n })\n \n }\n\n dateConverter(unixTimestamp):string{\n var a = new Date(unixTimestamp * 1000);\n var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];\n var year = a.getFullYear();\n var month = months[a.getMonth()];\n var date = a.getDate();\n var time = date + ' ' + month + ' ' + year;\n return time;\n }\n \n\n onSwitch(){\n switch (this.selectedChart) {\n case 'recipientTotal':\n this.yAxisLabel = 'Recipients'; \n this.multi=JSON.parse(JSON.stringify(this.recipientTotalChart).replace(/^\\{(.*)\\}$/,\"[ { $1 }]\"));\n for(let el of this.recipientTotalChart.series)\n if(el.value<10){\n this.scaleMax=10\n }else{this.scaleMax=null;break;}\n break;\n case 'userTotal':\n this.yAxisLabel = 'Users';\n this.multi=JSON.parse(JSON.stringify(this.userTotalChart).replace(/^\\{(.*)\\}$/,\"[ { $1 }]\"));\n for(let el of this.userTotalChart.series)\n if(el.value<10){\n this.scaleMax=10\n }else{this.scaleMax=null;break;}\n break;\n case 'emailSent24h':\n this.yAxisLabel = 'Emails sent per day';\n this.multi=JSON.parse(JSON.stringify(this.emailSent24hChart).replace(/^\\{(.*)\\}$/,\"[ { $1 }]\"));\n for(let el of this.emailSent24hChart.series)\n if(el.value<10){\n this.scaleMax=10\n }else{this.scaleMax=null;break;}\n break;\n break;\n case 'emailSent7d':\n this.yAxisLabel = 'Email sent per week';\n this.multi=JSON.parse(JSON.stringify(this.emailSent7dChart).replace(/^\\{(.*)\\}$/,\"[ { $1 }]\"));\n for(let el of this.emailSent7dChart.series)\n if(el.value<10){\n this.scaleMax=10\n }else{this.scaleMax=null;break;}\n break;\n case 'emailSent28d':\n this.yAxisLabel = 'Email sent per 28 days';\n this.multi=JSON.parse(JSON.stringify(this.emailSent28dChart).replace(/^\\{(.*)\\}$/,\"[ { $1 }]\"));\n for(let el of this.emailSent28dChart.series)\n if(el.value<10){\n this.scaleMax=10\n }else{this.scaleMax=null; break;}\n break;\n case 'emailSentTotal':\n this.yAxisLabel = 'Total emails sent';\n this.multi=JSON.parse(JSON.stringify(this.emailSentTotalChart).replace(/^\\{(.*)\\}$/,\"[ { $1 }]\"));\n for(let el of this.emailSentTotalChart.series)\n if(el.value<10){\n this.scaleMax=10\n }else{this.scaleMax=null;break;}\n break; \n case 'emailReceived24h':\n this.yAxisLabel = 'Emails received per day';\n this.multi=JSON.parse(JSON.stringify(this.emailReceived24hChart).replace(/^\\{(.*)\\}$/,\"[ { $1 }]\"));\n for(let el of this.emailReceived24hChart.series)\n if(el.value<10){\n this.scaleMax=10\n }else{this.scaleMax=null;break;}\n break; \n case 'emailReceived7d':\n this.yAxisLabel = 'Emails received per week';\n this.multi=JSON.parse(JSON.stringify(this.emailReceived7dChart).replace(/^\\{(.*)\\}$/,\"[ { $1 }]\"));\n for(let el of this.emailReceived7dChart.series)\n if(el.value<10){\n this.scaleMax=10\n }else{this.scaleMax=null;break;}\n break; \n case 'emailReceived28d':\n this.yAxisLabel = 'Email received per 28 days';\n this.multi=JSON.parse(JSON.stringify(this.emailReceived28dChart).replace(/^\\{(.*)\\}$/,\"[ { $1 }]\"));\n for(let el of this.emailReceived28dChart.series)\n if(el.value<10){\n this.scaleMax=10\n }else{this.scaleMax=null;break;}\n break; \n case 'emailReceivedTotal':\n this.yAxisLabel = 'Total emails received';\n this.multi=JSON.parse(JSON.stringify(this.emailReceivedTotalChart).replace(/^\\{(.*)\\}$/,\"[ { $1 }]\"));\n for(let el of this.emailReceivedTotalChart.series)\n if(el.value<10){\n this.scaleMax=10\n }else{this.scaleMax=null;break;}\n break;\n case 'storageTotal':\n this.yAxisLabel = 'Storage (GB)';\n this.multi=JSON.parse(JSON.stringify(this.storageTotalChart).replace(/^\\{(.*)\\}$/,\"[ { $1 }]\"));\n for(let el of this.storageTotalChart.series)\n if(el.value<9){\n this.scaleMax=9\n }else{this.scaleMax=null;break;}\n break;\n case 'monthlyRetailPrice':\n this.yAxisLabel = 'Retail price';\n this.multi=JSON.parse(JSON.stringify(this.monthlyRetailPriceChart).replace(/^\\{(.*)\\}$/,\"[ { $1 }]\"));\n for(let el of this.monthlyRetailPriceChart.series)\n if(el.value<10){\n this.scaleMax=10\n }else{this.scaleMax=null;break;}\n break;\n default:\n break;\n }\n }\n\n}\n","\n Chart display\n \n \n {{chart.viewValue}}\n \n \n\n\n
\n \n \n \n\n\n
","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Globals } from 'src/app/globals';\n\n@Component({\n selector: 'app-company-stats',\n templateUrl: './company-stats.component.html',\n styleUrls: ['./company-stats.component.css']\n})\nexport class CompanyStatsComponent implements OnInit {\n\n constructor(private http: HttpClient, private globals: Globals, private route: ActivatedRoute) { }\n @Input() public setup: any;\n\n dateAccessed: Date\n recipientTotal: number\n userTotal: number\n emailSent24h: number\n emailSent7d: number\n emailSent28d: number\n emailSent30d: number\n emailSentTotal: number\n emailReceived24h: number\n emailReceived7d: number\n emailReceived28d: number\n emailReceivedTotal: number\n storageTotal: number\n monthlyRetailPrice: number\n\n emailsChecked: number = 0;\n emailsWithIgnore: number = 0;\n keywordUsers: number = 0;\n keywordEmails: number = 0;\n smartUsers: number = 0;\n smartEmails: number = 0;\n standardUsers: number = 0;\n standardEmails: number = 0;\n\n noStats = false;\n async ngOnInit(): Promise {\n const currentDate = new Date();\n currentDate.setDate(currentDate.getDate() + 1)\n const EndDate = currentDate.getFullYear() + \"-\" + (currentDate.getMonth() + 1) + \"-\" + currentDate.getDate();\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n if (this.route.snapshot.params['id']) {\n param = param.append('CompanyId', this.route.snapshot.params['id']);\n } else {\n }\n param = param.append('StartDate', \"1990-10-14\");\n param = param.append('EndDate', EndDate);\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyStats.php', { params: param }).subscribe({\n next: data => {\n if (data.StatsList[0] == null) {\n this.noStats = true\n }\n //Date Accessed\n this.dateAccessed = new Date(0);\n this.dateAccessed.setUTCSeconds(data.StatsList[data.StatsList.length - 1].StatsDateUTC)\n //Recipient Total\n this.recipientTotal = data.StatsList[data.StatsList.length - 1].NumActiveRecipients;\n //User Total\n this.userTotal = data.StatsList[data.StatsList.length - 1].NumActiveUsers;\n //Email Sent 24 Hours\n if (data.StatsList[data.StatsList.length - 2] != null) {\n this.emailSent24h = data.StatsList[data.StatsList.length - 1].NumEmailsSentTotal - data.StatsList[data.StatsList.length - 2].NumEmailsSentTotal;\n }\n //Email Sent 7 Days\n let checkingS7 = true\n let iS7 = 8;\n while (checkingS7 == true) {\n\n\n if (iS7 == 1) {\n checkingS7 = false\n } else {\n if (data.StatsList[data.StatsList.length - iS7] != null) {\n this.emailSent7d = data.StatsList[data.StatsList.length - 1].NumEmailsSentTotal - data.StatsList[data.StatsList.length - iS7].NumEmailsSentTotal;\n checkingS7 = false\n } else {\n iS7 = iS7 - 1;\n }\n }\n\n }\n //Email Sent 28 Days\n let checkingS28 = true\n let iS28 = 29;\n while (checkingS28 == true) {\n if (iS28 <= 1) {\n checkingS28 = false\n } else {\n if (data.StatsList[data.StatsList.length - iS28] != null) {\n this.emailSent28d = data.StatsList[data.StatsList.length - 1].NumEmailsSentTotal - data.StatsList[data.StatsList.length - iS28].NumEmailsSentTotal;\n checkingS28 = false\n } else {\n iS28--;\n }\n }\n }\n //Email Sent 30 Days\n let checkingS30 = true\n let iS30 = 31;\n while (checkingS30 == true) {\n if (iS30 <= 1) {\n checkingS30 = false\n } else {\n if (data.StatsList[data.StatsList.length - iS30] != null) {\n this.emailSent30d = data.StatsList[data.StatsList.length - 1].NumEmailsSentTotal - data.StatsList[data.StatsList.length - iS30].NumEmailsSentTotal;\n checkingS30 = false\n } else {\n iS30--;\n }\n }\n }\n\n //Email Sent Total\n this.emailSentTotal = data.StatsList[data.StatsList.length - 1].NumEmailsSentTotal;\n //Email Received 24 Hours\n if (data.StatsList[data.StatsList.length - 2] != null) {\n this.emailReceived24h = data.StatsList[data.StatsList.length - 1].NumEmailsReceivedTotal - data.StatsList[data.StatsList.length - 2].NumEmailsReceivedTotal;\n }\n //Email Received 7 Days\n let checkingR7 = true\n let iR7 = 8;\n while (checkingR7 == true) {\n if (iR7 <= 1) {\n checkingR7 = false\n } else {\n if (data.StatsList[data.StatsList.length - iR7] != null) {\n this.emailReceived7d = data.StatsList[data.StatsList.length - 1].NumEmailsReceivedTotal - data.StatsList[data.StatsList.length - iR7].NumEmailsReceivedTotal;\n checkingR7 = false\n } else {\n iR7--;\n }\n }\n\n }\n //Email Received 28 Days\n let checkingR28 = true\n let iR28 = 29;\n while (checkingR28 == true) {\n if (iR28 <= 1) {\n checkingR28 = false\n } else {\n if (data.StatsList[data.StatsList.length - iR28] != null) {\n this.emailReceived28d = data.StatsList[data.StatsList.length - 1].NumEmailsReceivedTotal - data.StatsList[data.StatsList.length - iR28].NumEmailsReceivedTotal;\n checkingR28 = false\n } else {\n iR28--;\n }\n }\n\n }\n //Email Received Total\n this.emailReceivedTotal = data.StatsList[data.StatsList.length - 1].NumEmailsReceivedTotal;\n //Storage Total\n this.storageTotal = data.StatsList[data.StatsList.length - 1].TotalStorageUsedMB / 1024;\n //Monthly Retail Price\n let PriceA = 10 + 2.50 * Math.max(0, Math.floor((Number(this.recipientTotal) + 24) / 25) - 4) + 2.50 * Math.max(0, Math.floor(Number(this.storageTotal) / 10));\n let PriceB = 35 + 9.50 * Math.max(0, Math.floor((Number(this.recipientTotal) + 124) / 125) - 4) + 9.50 * Math.max(0, Math.floor(Number(this.storageTotal) / 50));\n let PriceC = 65 + 15 * Math.max(0, Math.floor((Number(this.recipientTotal) + 249) / 250) - 4) + 15 * Math.max(0, Math.floor(Number(this.storageTotal) / 100));\n this.monthlyRetailPrice = Math.min(PriceA, PriceB, PriceC);\n if (data.EmailProcessStatsList &&data.EmailProcessStatsList[0]) {\n // emailsChecked:number\n this.emailsChecked = data.EmailProcessStatsList[data.EmailProcessStatsList.length - 1].NumCheckedEmails;\n // emailsWithIgnore:number\n this.emailsWithIgnore = data.EmailProcessStatsList[data.EmailProcessStatsList.length - 1].NumEmailsWithIgnore;\n // keywordUsers:number\n this.keywordUsers = data.EmailProcessStatsList[data.EmailProcessStatsList.length - 1].NumSPMSendersIfRX;\n // keywordEmails:number\n this.keywordEmails = data.EmailProcessStatsList[data.EmailProcessStatsList.length - 1].NumSentViaSPMIfRX;\n // smartUsers:number\n this.smartUsers = data.EmailProcessStatsList[data.EmailProcessStatsList.length - 1].NumSPMSendersIfSM;\n // smartEmails:number\n this.smartEmails = data.EmailProcessStatsList[data.EmailProcessStatsList.length - 1].NumSentViaSPMIfSM;\n // standardUsers:number\n this.standardUsers = data.EmailProcessStatsList[data.EmailProcessStatsList.length - 1].NumSPMSendersIfST;\n // standardEmails:number\n this.standardEmails = data.EmailProcessStatsList[data.EmailProcessStatsList.length - 1].NumSentViaSPMIfST;\n }\n },\n error: error => { console.error('There was an error!'); }\n })\n }\n\n}\n","\n

\n Usage statistics not yet available.

\n Please check again tomorrow.\n

\n
\n\n
\n
\n
\n
\n Company users:\n
\n
\n {{userTotal}}\n
\n
\n
\n
\n
\n
\n Recipients:\n
\n
\n {{recipientTotal}}\n
\n
\n
\n
\n
\n
\n Storage:\n
\n
\n {{storageTotal | number:'1.1-1'}}GB\n
\n
\n
\n \n
\n\n
\n
\n
\n
\n Emails sent\n
\n
\n
\n in last 24 hours:\n
\n
\n {{emailSent24h}}\n
\n
\n
\n
\n in last 7 days:\n
\n
\n {{emailSent7d}}\n
\n
\n
\n
\n in last 28 days:\n
\n
\n {{emailSent28d}}\n
\n
\n
\n
\n in total:\n
\n
\n {{emailSentTotal}}\n
\n
\n
\n
\n
\n
\n
\n Emails received\n
\n
\n
\n in last 24 hours:\n
\n
\n {{emailReceived24h}}\n
\n
\n
\n
\n in last 7 days:\n
\n
\n {{emailReceived7d}}\n
\n
\n
\n
\n in last 28 days:\n
\n
\n {{emailReceived28d}}\n
\n
\n
\n
\n in total:\n
\n
\n {{emailReceivedTotal}}\n
\n
\n
\n
\n
\n\n
\n
\n
\n as at {{dateAccessed}}\n
\n
\n
\n \n
\n\n\n\n\n\n
\n
\n
\n
\n person\n
\n
\n
\n
\n Company users
\n
Active in last 30 days
\n
\n
\n {{userTotal}}\n
\n
\n
\n
\n
\n
\n storage\n
\n
\n
\n
\n Storage
\n
Total storage used
\n
\n
\n {{storageTotal | number:'1.1-1'}}GB\n
\n
\n
\n
\n
\n
\n groups\n
\n
\n
\n\n
\n Recipients
\n
Total recipients contacted
\n
\n
\n {{recipientTotal}}\n
\n
\n
\n\n \n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n manage_search
\n
\n
\n
\n Emails checked
\n
in the last 30 days
\n
\n
\n {{emailsChecked}}\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n search_off
\n
\n
\n
\n #IGNORE emails
\n
sent in the last 30 days
\n
\n
\n {{emailsWithIgnore}}\n
\n
\n\n
\n
\n
\n
\n
\n \n
\n
\n send\n
\n
\n \n
\n Secure emails sent\n
\n
\n
\n
{{emailSent24h}}

\n in last 24 hours\n
\n
\n
{{emailSent7d}}

\n in last 7 days\n
\n
\n
{{emailSent30d}}

\n in last 30 days\n
\n
\n
{{emailSentTotal}}

\n in total\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
Current
\n
\n
statistics if using
\n Keyword Only\n
\n
\n
\n
{{keywordUsers}}
\n
Users
\n
\n
\n
{{keywordEmails}}
\n
Emails
\n
\n
\n
\n
in last 30 days
\n
\n
\n
\n
\n
\n
\n
\n
Current
\n
\n
statistics if using
\n Content Based\n
\n
\n
\n
{{smartUsers}}
\n
Users
\n
\n
\n
{{smartEmails}}
\n
Emails
\n
\n
\n
\n
in last 30 days
\n
\n
\n
\n
\n
\n
\n
\n
Current
\n
\n
statistics if using
\n Enforced\n
\n
\n
\n
{{standardUsers}}
\n
Users
\n
\n
\n
{{standardEmails}}
\n
Emails
\n
\n
\n
\n
in last 30 days
\n
\n
\n
\n
\n
\n
\n
\n as at {{dateAccessed}}\n
\n
\n
\n \n
","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { Globals } from 'src/app/globals';\nimport { MatStepper } from '@angular/material/stepper';\n\n@Component({\n selector: 'app-setup-roundtrip',\n templateUrl: './setup-roundtrip.component.html',\n styleUrls: ['./setup-roundtrip.component.css']\n})\nexport class SetupRoundtripComponent implements OnInit {\n\n constructor(\n private globals: Globals,\n private http: HttpClient,\n private router: Router,\n public route: ActivatedRoute,\n private clipboard: Clipboard,\n public dialog: MatDialog,\n private _snackBar: MatSnackBar\n ) { }\n @ViewChild('setupStepper') public myStepper: MatStepper;\n @ViewChild('standardStepper') public standardStepper: MatStepper;\n @ViewChild('microsoftStepper') public microsoftStepper: MatStepper;\n @ViewChild('googleStepper') public googleStepper: MatStepper;\n @Output() setupFinished = new EventEmitter();\n @Input() public eventEmit: any;\n @Input() public originStepper: MatStepper;\n @Input() public companyId: string;\n @Input() public isSignUp: boolean;\n @Input() public keyword: string;\n @Input() public domain: string;\n @Input() public companyName: string;\n link: string;\n\n ngOnInit(): void {\n this.route.queryParams.subscribe(params => {\n if (params['1']) {\n this.link = params['1']\n } else if (this.companyId) {\n let param = new HttpParams()\n param = param.append('companyId',this.companyId)\n this.http.get(this.globals.getServicesUrl() + 'company/createLink',{params:param}).subscribe({\n next: data => {\n this.link = data.id\n this.keyword=data.keyword\n this.domain=data.domain\n this.companyName=data.name\n\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n }\n });\n }\n finish(){\n this.setupFinished.emit()\n\n }\n copy(copyVariable) {\n this.clipboard.copy(copyVariable);\n this._snackBar.open(\"Copied!\", \"OK\", { duration: 3000 });\n }\n}\n","\n \n \n Standard Configuration\n \n
\n
\n
= 0)? 'current':''\"> Access
\n
= 1)? 'current':''\"> Outbound
\n
= 2)? 'current':''\"> Inbound
\n
= 3)? 'current':''\"> Replies
\n
= 4)? 'current':''\"> Enable
\n
\n
\n \n \n \n Access the Mail Server\n \n\n
\n You will require administrator access to your email server in order to configure it to work with\n StayPrivate.\n
\n \n
\n
\n \n \n
\n
\n
\n \n \n Create an outbound connector to StayPrivate\n \n
\n To connect with StayPrivate, outgoing secure emails need to be identified and relayed to https://sendsecure.stayprivate.com. For most\n email servers this means:\n
    \n
  • adding https://sendsecure.stayprivate.com as a host\n or connector; and
  • \n
  • creating a conditional routing rule to route emails to this host if the email has an external recipient \n and is not sent from the IP address 18.130.40.2\n
  • \n
\n \n For detailed instructions of how to do this for Microsoft email servers, click here.\n

\n \n For detailed instructions of how to do this in Google Workspace, click here.\n \n
\n\n
\n
\n \n \n
\n
\n
\n \n \n Accept inbound emails from StayPrivate\n \n
\n In the standard setup, StayPrivate sends secure emails back to your corporate email server for\n forwarding onto the recipient. Your corporate email server therefore needs to be configured to accept and\n relay secure emails sent by StayPrivate. You can identify secure emails in either of two ways:\n
    \n
  • by the sender IP address: 18.130.40.2; or\n
  • \n
  • by the certificate used to sign the emails: *.stayprivate.com.
  • \n
\n \n For detailed instructions of how to do this for Microsoft email servers, click here.\n

\n \n For detailed instructions of how to do this in Google Workspace, click here.\n \n
\n
\n
\n \n \n
\n
\n
\n \n \n Forward secure replies to StayPrivate\n \n
\n To ensure that secure replies from secure corporate domains are included in\n StayPrivate, incoming secure replies should\n be identified and blind copied to server@stayprivatemail.com. For most email servers\n this is achieved by adding a compliance rule to add the above address to the 'bcc' field if an incoming\n email contains the text:#stayprivate-secure-reply.\n \n

\n \n For detailed instructions of how to do this for Microsoft email servers, click here.\n

\n \n For detailed instructions of how to do this in Google Workspace, click here.\n \n
\n
\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n
\n
\n \n \n Standard Configuration for Microsoft\n \n \n \n \n \n \n \n \n Standard Configuration for Google\n \n \n \n \n \n \n
","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { Globals } from 'src/app/globals';\n\n@Component({\n selector: 'app-detail-developer',\n templateUrl: './detail-developer.component.html',\n styleUrls: ['./detail-developer.component.css']\n})\nexport class DetailDeveloperComponent implements OnInit {\n\n constructor(private http: HttpClient, private globals:Globals) { }\n token:string;\n payload:string;\n error=false;\n ngOnInit(): void {\n }\n authenticate(){ \n this.http.get(this.globals.getServicesUrl()+\"jwt/getJWT\").subscribe({\n next: data => {\n this.token=data.token;\n },\n error: error => { \n }\n });\n }\n verify(){\n let param = new HttpParams();\n param = param.append('JWToken', this.token+''); \n this.http.get(this.globals.getServicesUrl()+\"jwt/verifyJWT\",{params:param}).subscribe({\n next: data => {\n this.error=false;\n this.payload=JSON.stringify(data.authData);\n },\n error: error => { \n this.payload=null; \n this.error=true; \n }\n });\n }\n}\n","\n \n \n
\n JWT Token Example \n \n \n \n
\n \n
\n Public Key Endpoint \n \n \n \n
\n
\n
\n Verify JWT \n \n \n
Token is verified!\n
Here is the data:\n
{{payload}}\n
\n \n \n Token could not be verified. Please try again.\n \n \n
\n
\n \n \n
\n \n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Globals } from 'src/app/globals';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { EditPasswordComponent } from '../edit-password/edit-password.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Title } from '@angular/platform-browser';\n\n@Component({\n selector: 'app-my-account',\n templateUrl: './my-account.component.html',\n styleUrls: ['./my-account.component.css']\n})\n\nexport class MyAccountComponent implements OnInit {\n editMode= false;\n\n constructor(public dialog: MatDialog, private fb: FormBuilder,private globals:Globals,private http:HttpClient,private titleService: Title) {}\n \n myEmail:string;\n myUsername:string;\n myName:string;\n\n detailsForm = this.fb.group({\n emailAddress: [null],\n username:[null],\n name: [null, Validators.required], \n });\n \n async ngOnInit(): Promise {\n this.titleService.setTitle(\"My Account - STAY PRIVATE\");\n this.globals.refreshAuth(); \n let param = new HttpParams();\n param = param.append('AuthToken',await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n this.http.get(this.globals.getApiUrl()+'api/getSPMailCompanyUsers.php',{params:param}).subscribe({next: data => \n {\n \n for(let user of data.UserList){\n if(this.globals.getSystemUserName() == user.UserName){\n this.detailsForm = this.fb.group({\n emailAddress: [{value: user.EmailAddress,disabled:true}],\n username:[{value: user.LoginUserName,disabled:true}],\n name: [{value: user.PersonalName,disabled:true}, Validators.required] \n });\n this.myEmail=user.EmailAddress;\n this.myUsername=user.LoginUserName;\n this.myName=user.PersonalName;\n } \n }\n this.onChanges()\n },\n error: error => \n {console.error('There was an error!');}\n })\n \n }\n editClicked(){ \n this.detailsForm.controls['name'].enable();\n this.editMode=true;\n }\n onChanges(): void {\n \n this.detailsForm.valueChanges.subscribe(val2 => {\n if(val2.name==this.myName){\n this.detailsForm = this.fb.group({\n emailAddress: [{value: this.myEmail,disabled:true}],\n username:[{value: this.myUsername,disabled:true}],\n name: [ {value: this.myName,disabled:this.editMode}, Validators.required] \n });\n this.onChanges()\n }\n \n });\n }\n onCancel(){\n this.detailsForm = this.fb.group({\n emailAddress: [{value: this.myEmail,disabled:true}],\n username:[{value: this.myUsername,disabled:true}],\n name: [ {value: this.myName,disabled:this.editMode}, Validators.required] \n });\n this.onChanges()\n this.editMode=false; \n \n }\n onSubmit(){\n this.detailsForm.controls['name'].disable();\n this.editMode=false; \n let update = new FormData;\n update.append('AuthToken',localStorage.getItem(\"AuthToken\"));\n update.append('UserName',localStorage.getItem(\"systemUserName\"));\n update.append('PersonalName', this.detailsForm.value.name)\n \n this.http.post(this.globals.getApiUrl()+'api/editSPMailCompanyUser.php', update).subscribe({\n next: data => {\n this.myName = this.detailsForm.value.name\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n \n }\n \nopenEditPassword(){\n const dialogRef = this.dialog.open(EditPasswordComponent, {\n width: '350px',\n });\n\n dialogRef.afterClosed().subscribe(result => {\n \n });\n}\n\n}\n","\n \n My Account\n
\n \n \n \n \n
\n
\n \n
\n \n
\n Personal Name:\n
\n \n \n \n
\n \n
\n UserName:\n
\n \n \n \n
\n \n
\n Email address:\n
\n \n \n \n
\n
\n \n
\n
","import { Injectable } from '@angular/core';\n\n\n@Injectable()\nexport class BillingService {\n\n downloadFile(data, filename = 'data') {\n let csvData = this.ConvertToCSV(data, ['CompanyName', 'ContactName', 'EmailAddress']\n );\n\n let blob = new Blob(['\\ufeff' + csvData], { type: 'text/csv;charset=utf-8;' });\n let dwldLink = document.createElement(\"a\");\n let url = URL.createObjectURL(blob);\n let isSafariBrowser = navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1;\n if (isSafariBrowser) { //if Safari open in new window to save file with random filename.\n dwldLink.setAttribute(\"target\", \"_blank\");\n }\n dwldLink.setAttribute(\"href\", url);\n dwldLink.setAttribute(\"download\", filename + \".csv\");\n dwldLink.style.visibility = \"hidden\";\n document.body.appendChild(dwldLink);\n dwldLink.click();\n document.body.removeChild(dwldLink);\n }\n\n ConvertToCSV(objArray, headerList) {\n let array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;\n let str = '';\n let row = '';\n\n for (let index in headerList) {\n row += headerList[index] + ',';\n }\n row = row.slice(0, -1);\n str += row + '\\r\\n';\n for (let i = 1; i < array.length; i++) {\n let line = '';\n for (let index in headerList) {\n let head = headerList[index];\n\n line += this.strRep(array[i][head]) +',';\n }\n str += line + '\\r\\n';\n }\n return str;\n }\n strRep(data) {\n if (typeof data == \"string\") {\n let newData = data.replace(/,/g, \" \");\n return newData;\n }\n else if (typeof data == \"undefined\") {\n return \"-\";\n }\n else if (data == null) {\n return \"-\";\n }\n else if (typeof data == \"number\") {\n return data.toString();\n }\n else {\n return data;\n }\n }\n}","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CompanySetupProcessComponent } from '../company-setup-process/company-setup-process.component';\n\n@Component({\n selector: 'app-provision-complete',\n templateUrl: './provision-complete.component.html',\n styleUrls: ['./provision-complete.component.css']\n})\nexport class ProvisionCompleteComponent implements OnInit {\n\n constructor(public dialogRef: MatDialogRef,\n // @Inject(MAT_DIALOG_DATA) public data: {keyword: string,domain: string}\n ) { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n \n \n \n \n
\nCompany Provisioned\nYour company has now been provisioned.\nClick 'Next' to configure your company email server and get started using StayPrivate.\n
\n \n
","
\n We just need to verify\n your email\n \n
\n
\n

Checking your\n domains...

\n

Error checking\n domain!

\n

Domain check\n complete!

\n
\n\n
\n
\n

\n {{record.name}}

\n
\n \n \n Please enter your email to verify with. \n
\n \n \n @{{record.name}}\n \n\n
\n \n\n
\n \n Please enter your 6-digit verification code. \n
\n \n \n \n \n \n \n \n done\n
\n \n
\n
\n
\n \n \n {{record.googleError}}.\n \n
\n
\n \n

\n {{record.name}}

\n

SPF Check:\n done\n close\n \n \n

\n

\n DKIM Check:\n done\n close\n \n \n

\n \n {{record.spfError}}.\n \n \n {{record.dkimError}}.\n \n {{message}}\n\n
\n\n
\n\n\n\n

Please click Setup Company to finish your setup.

\n
\n\n
\n\n \n \n \n
\n","import { HttpClient } from '@angular/common/http';\nimport { Component, Inject, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatStepper } from '@angular/material/stepper';\nimport { Router } from '@angular/router';\nimport { Globals } from 'src/app/globals';\nimport { AddCompanyComponent } from '../add-company/add-company.component';\n\nclass Record { name: string; \n spfBool: boolean; spfError: string; spfLoading: boolean\n dkimBool: boolean; dkimError: string; dkimLoading: boolean; \n googleBool: boolean; googleError: string; googleLoading: boolean};\n\n@Component({\n selector: 'app-company-checker',\n templateUrl: './company-checker.component.html',\n styleUrls: ['./company-checker.component.css']\n})\nexport class CompanyCheckerComponent implements OnInit {\n records: Record[]\n @Input() public domains: FormGroup;\n @Input() public stepper: MatStepper;\n @Input() public id: string;\n @Input() public state: string;\n constructor(\n private http: HttpClient,\n private router: Router,\n private globals: Globals,\n ) {\n\n }\n valid: boolean;\n message: string;\n back() {\n if(this.state=='google'){\n this.stepper.selectedIndex = 9;\n \n }else if(this.state=='roundTrip'){\n this.stepper.selectedIndex = 11;\n \n }else{\n this.stepper.selectedIndex = 7;\n }\n }\n ngOnInit(): void {\n if(this.domains.value.Domain!=null){\n let el = this.domains.value.Domain\n if (el != null && el != \"\") {\n let temp: Record = { name: el, \n spfBool: null, spfError: null, spfLoading: true,\n dkimBool: null, dkimError: null, dkimLoading: true,\n googleBool: null, googleError: null, googleLoading: true,\n }\n if (this.records == null) {\n this.records = [temp];\n } else {\n this.records.push(temp)\n }\n }\n } else{\n for (let el of this.domains.value.DomainList) {\n if (el != null && el != \"\") {\n let temp: Record = { name: el, \n spfBool: null, spfError: null, spfLoading: true,\n dkimBool: null, dkimError: null, dkimLoading: true,\n googleBool: null, googleError: null, googleLoading: true,\n }\n if (this.records == null) {\n this.records = [temp];\n } else {\n this.records.push(temp)\n }\n }\n }\n }\n \n if (this.records != null) {\n if (this.state=='google') {\n this.googleChecker();\n this.loadChecker();\n } else if (this.state=='spf') {\n this.spfChecker();\n this.dkimChecker();\n this.loadChecker();\n }\n\n }\n else {\n this.message = \"At least one domain is required to use the StayPrivate platform.\"\n this.valid = false;\n }\n }\n // onNoClick(){this.dialogRef.close();}\n async onSubmit() {\n let form = new FormData;\n\n\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('CompanyId', this.id);\n form.append('DomainList', this.domains.value.DomainList.join(';'));\n form.append('ApiSendDomainList', this.domains.value.DomainList.join(';'));\n\n\n this.http.post(this.globals.getApiUrl() + 'api/editSPMailCompany.php', form).subscribe({\n next: data => {\n this.router.navigate(['/detail/' + this.id]);\n\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n }\n loadChecker() {\n for (let record of this.records) {\n if (this.state=='google') {\n if (record.googleLoading == false) {\n if (record.googleBool == false) {\n this.message = \"Something went wrong with the domains supplied.\"\n this.valid = false;\n } else {\n if(this.valid == false){\n\n }else{\n this.valid = true;\n\n }\n }\n }\n } else if (this.state=='spf') {\n if (record.dkimLoading == false && record.spfLoading == false) {\n if (record.spfBool == false || record.dkimBool == false) {\n this.message = \"Something went wrong with the domains supplied.\"\n this.valid = false;\n } else {\n if(this.valid == false){\n\n }else{\n this.valid = true;\n\n }\n }\n }\n } \n }\n }\n googleChecker() {\n if(this.domains.value.Domain!=null){\n let el = this.domains.value.Domain\n let domain = new FormData;\n domain.append('domain', el);\n this.http.post(this.globals.getServicesUrl() + \"dns/googleCheck\", domain).subscribe({\n next: data => {\n for (let record of this.records) {\n if (record.name == el) {\n record.googleBool = true;\n record.googleLoading = false;\n this.loadChecker();\n }\n }\n },\n error: error => {\n for (let record of this.records) {\n if (record.name == el) {\n record.googleBool = false;\n record.googleLoading = false;\n record.googleError = error.error.ErrorMsg\n \n this.loadChecker();\n }\n }\n }\n });\n } else{\n for (let el of this.domains.value.DomainList) {\n let domain = new FormData;\n domain.append('domain', el);\n this.http.post(this.globals.getServicesUrl() + \"dns/googleCheck\", domain).subscribe({\n next: data => {\n for (let record of this.records) {\n if (record.name == el) {\n record.googleBool = true;\n record.googleLoading = false;\n this.loadChecker();\n }\n }\n },\n error: error => {\n for (let record of this.records) {\n if (record.name == el) {\n record.googleBool = false;\n record.googleLoading = false;\n record.googleError = error.error.ErrorMsg\n \n this.loadChecker();\n }\n }\n }\n });\n \n }\n }\n \n }\n spfChecker() {\n for (let el of this.domains.value.DomainList) {\n let domain = new FormData;\n domain.append('domain', el);\n this.http.post(this.globals.getServicesUrl() + \"dns/spfCheck\", domain).subscribe({\n next: data => {\n for (let record of this.records) {\n if (record.name == el) {\n record.spfBool = true;\n record.spfLoading = false;\n this.loadChecker();\n }\n }\n },\n error: error => {\n for (let record of this.records) {\n if (record.name == el) {\n record.spfBool = false;\n record.spfLoading = false;\n this.loadChecker();\n }\n }\n }\n });\n\n }\n }\n dkimChecker() {\n for (let el of this.domains.value.DomainList) {\n let domain = new FormData;\n domain.append('domain', el);\n this.http.post(this.globals.getServicesUrl() + \"dns/dkimCheck\", domain).subscribe({\n next: data => {\n for (let record of this.records) {\n if (record.name == el) {\n record.dkimBool = true;\n record.dkimLoading = false;\n this.loadChecker();\n }\n }\n },\n error: error => {\n for (let record of this.records) {\n if (record.name == el) {\n record.dkimBool = false;\n record.dkimError = error.error.ErrorMsg\n record.dkimLoading = false;\n this.loadChecker();\n }\n }\n }\n });\n\n }\n }\n}\n","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit, OnDestroy, HostListener } from '@angular/core';\n\n@Component({\n selector: 'app-sp-spinner',\n templateUrl: './sp-spinner.component.html',\n styleUrls: ['./sp-spinner.component.css']\n})\nexport class SpSpinnerComponent implements OnInit, AfterViewInit,OnDestroy {\n\n constructor() { }\n @ViewChild('parallelogram', {static: false}) canvas: ElementRef;\n myCanvas: ElementRef;\n\n public context: CanvasRenderingContext2D;\n\n ngOnInit(): void {\n console.log('spinner created')\n }\n intervalID\n favChanger\n ngAfterViewInit(): void {\n this.context = this.canvas.nativeElement.getContext('2d');\n // this.intervalID = setTimeout(this.drawReverse, 10, this.canvas, -36, 30, 30, Math.PI * 5/6, 12, 12);\n // this.favChanger = setTimeout(this.updateFavicon, 1000);\n this.drawReverse(this.canvas, -36, 30, 30, Math.PI * 5/6, 12, 12)\n }\n @HostListener('unloaded')\n destroyed=false\n ngOnDestroy() {\n this.destroyed=true\n console.log('Items destroyed');\n }\n\n \n \n updateFavicon() {\n };\n \n // to stop the animation clearTimeout(intervalID) and remove the element;\n \n draw(canvas, count, h1, h2, theta, stepsfadein, stepswaitagain) {\n \n var ctx = canvas.nativeElement.getContext('2d');\n ctx.clearRect(0, 0, canvas.nativeElement.width, canvas.nativeElement.height);\n \n const scaling = canvas.nativeElement.clientWidth / 100;\n \n const steps1 = 24;\n const steps2 = 18;\n const steps3 = 12;\n const steps4 = 12;\n const steps5 = 18;\n const c1 = 22.5 * scaling;\n const r1 = 35.43 * scaling;\n const c2 = 66 * scaling;\n const r2 = 41.4 * scaling;\n const sinphi = 1/Math.sqrt(3);\n const h1start = 30;\n const h2start = 30;\n const h1end = 0;\n const h2end = 30;\n const hh = 36 * scaling;\n const centre = 50 * scaling;\n \n let opacity = 0;\n \n let theta1 = theta;\n let theta2 = theta1 + Math.PI * 2/3;\n let theta3 = theta2 + Math.PI * 2/3;\n \n if (count < -stepsfadein-stepswaitagain) {\n opacity = 0;\n } else if (count < -stepswaitagain) {\n opacity = (count + stepsfadein + stepswaitagain) / stepsfadein;\n } else {\n opacity = 1;\n }\n \n ctx.globalAlpha = opacity;\n \n let x1 = centre + Math.cos(theta1)*r1;\n let y1 = c1 - Math.sin(theta1)*r1*sinphi + h1 * scaling;\n let x2 = centre + Math.cos(theta2)*r1;\n let y2 = c1 - Math.sin(theta2)*r1*sinphi + h1 * scaling;\n let x3 = centre + Math.cos(theta3)*r1;\n let y3 = c1 - Math.sin(theta3)*r1*sinphi + h1 * scaling;\n let ymax = Math.max(y1, y2, y3);\n let ymin = Math.min(y1, y2, y3);\n \n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.lineTo(x3, y3);\n ctx.closePath();\n \n var grd = ctx.createLinearGradient(0,ymin,0,ymax);\n \n grd.addColorStop(0,'#4F97C1');\n grd.addColorStop(1,'#4D95BF');\n \n ctx.fillStyle = '#4482af';\n \n ctx.fill();\n \n x1 = centre + Math.cos(theta1)*r2;\n y1 = c2 - Math.sin(theta1)*r2*sinphi + h2 * scaling;\n x2 = centre + Math.cos(theta2)*r2;\n y2 = c2 - Math.sin(theta2)*r2*sinphi + h2 * scaling;\n x3 = centre + Math.cos(theta3)*r2;\n y3 = c2 - Math.sin(theta3)*r2*sinphi + h2 * scaling;\n ymax = Math.max(y1, y2, y3);\n ymin = Math.min(y1, y2, y3) - hh;\n \n if (theta1 > Math.PI * 2/3) {\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.lineTo(x3, y3);\n ctx.lineTo(x3, y3-hh);\n ctx.lineTo(x2, y2-hh);\n ctx.lineTo(x1, y1-hh);\n ctx.closePath();\n } else if (theta1 >= Math.PI * 1/3) { \n ctx.beginPath();\n ctx.moveTo(x2, y2);\n ctx.lineTo(x3, y3);\n ctx.lineTo(x3, y3-hh);\n ctx.lineTo(x2, y2-hh);\n ctx.closePath(); \n } else { \n ctx.beginPath();\n ctx.moveTo(x2, y2);\n ctx.lineTo(x3, y3);\n ctx.lineTo(x1, y1);\n ctx.lineTo(x1, y1-hh);\n ctx.lineTo(x3, y3-hh);\n ctx.lineTo(x2, y2-hh);\n ctx.closePath(); \n }\n \n grd = ctx.createLinearGradient(0,ymin,0,ymax);\n grd.addColorStop(0,'#4D95BF');\n grd.addColorStop(1,'#4A8DB8');\n \n ctx.fillStyle = '#4482af';\n \n ctx.fill();\n let x = 0;\n let fx = 0;\n \n if (count < 0 ) {\n count++;\n } else if (count < steps1) {\n theta = theta - Math.PI * 2 / 3 / steps1;\n count++;\n } else if (count < steps1 + steps2) {\n count++;\n } else if (count < steps1 + steps2 + steps3) {\n x = (count - steps1 - steps2) / steps3;\n fx = 3 * x * x - 2 * x * x * x;\n h1 = h1 + (h1end - h1) * fx; \n h2 = h2 + (h2end - h2) * fx;\n count++; \n } else if (count < steps1 + steps2 + steps3 + steps4) {\n x = (count - steps1 - steps2 - steps3) / steps4;\n fx = 3 * x * x - 2 * x * x * x;\n h1 = h1 + (h1start - h1) * fx; \n h2 = h2 + (h2start - h2) * fx;\n count++;\n } else if (count < steps1 + steps2 + steps3 + steps4 + steps5) {\n count++; \n } else {\n theta = Math.PI * 5/6;\n count = 0;\n }\n \n this.intervalID = setTimeout(this.draw, 10, canvas, count, h1, h2, theta, stepsfadein, stepswaitagain);\n \n }\n \n \n drawReverse(canvas, count, h1, h2, theta, stepsfadein, stepswaitagain) {\n var ctx = canvas.nativeElement.getContext('2d');\n ctx.clearRect(0, 0, canvas.nativeElement.width, canvas.nativeElement.height);\n \n const scaling = canvas.nativeElement.clientWidth / 100;\n \n const steps1 = 24;\n const steps2 = 18;\n const steps3 = 24;\n const steps4 = 24;\n const steps5 = 18;\n const c1 = 22.5 * scaling;\n const r1 = 35.43 * scaling;\n const c2 = 66 * scaling;\n const r2 = 41.4 * scaling;\n const sinphi = 1/Math.sqrt(3);\n const h1start = 30;\n const h2start = 30;\n const h1end = 0;\n const h2end = 30;\n const hh = 36 * scaling;\n const centre = 50 * scaling;\n \n let opacity = 0;\n \n let theta1 = theta;\n let theta2 = theta1 + Math.PI * 2/3;\n let theta3 = theta2 + Math.PI * 2/3;\n \n if (count < -stepsfadein-stepswaitagain) {\n opacity = 0;\n } else if (count < -stepswaitagain) {\n opacity = (count + stepsfadein + stepswaitagain) / stepsfadein;\n } else {\n opacity = 1;\n }\n \n ctx.globalAlpha = opacity;\n let x1 = centre - Math.cos(theta1)*r1;\n let y1 = c1 - Math.sin(theta1)*r1*sinphi + h1 * scaling;\n let x2 = centre - Math.cos(theta2)*r1;\n let y2 = c1 - Math.sin(theta2)*r1*sinphi + h1 * scaling;\n let x3 = centre - Math.cos(theta3)*r1;\n let y3 = c1 - Math.sin(theta3)*r1*sinphi + h1 * scaling;\n let ymax = Math.max(y1, y2, y3);\n let ymin = Math.min(y1, y2, y3);\n \n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.lineTo(x3, y3);\n ctx.closePath();\n \n var grd = ctx.createLinearGradient(0,ymin,0,ymax);\n \n grd.addColorStop(0,'#4F97C1');\n grd.addColorStop(1,'#4D95BF');\n \n ctx.fillStyle = '#4482af';\n \n ctx.fill();\n \n x1 = centre - Math.cos(theta1)*r2;\n y1 = c2 - Math.sin(theta1)*r2*sinphi + h2 * scaling;\n x2 = centre - Math.cos(theta2)*r2;\n y2 = c2 - Math.sin(theta2)*r2*sinphi + h2 * scaling;\n x3 = centre - Math.cos(theta3)*r2;\n y3 = c2 - Math.sin(theta3)*r2*sinphi + h2 * scaling;\n ymax = Math.max(y1, y2, y3);\n ymin = Math.min(y1, y2, y3) - hh;\n \n if (theta1 > Math.PI * 2/3) {\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.lineTo(x3, y3);\n ctx.lineTo(x3, y3-hh);\n ctx.lineTo(x2, y2-hh);\n ctx.lineTo(x1, y1-hh);\n ctx.closePath();\n } else if (theta1 >= Math.PI * 1/3) { \n ctx.beginPath();\n ctx.moveTo(x2, y2);\n ctx.lineTo(x3, y3);\n ctx.lineTo(x3, y3-hh);\n ctx.lineTo(x2, y2-hh);\n ctx.closePath(); \n } else { \n ctx.beginPath();\n ctx.moveTo(x2, y2);\n ctx.lineTo(x3, y3);\n ctx.lineTo(x1, y1);\n ctx.lineTo(x1, y1-hh);\n ctx.lineTo(x3, y3-hh);\n ctx.lineTo(x2, y2-hh);\n ctx.closePath(); \n }\n \n grd = ctx.createLinearGradient(0,ymin,0,ymax);\n grd.addColorStop(0,'#4D95BF');\n grd.addColorStop(1,'#4A8DB8');\n \n ctx.fillStyle = '#4482af';\n \n ctx.fill();\n console.log(count)\n\n let x = 0;\n let fx = 0;\n \n if (count < 0 ) {\n count++;\n } else if (count < steps1) {\n theta = theta - Math.PI * 2 / 3 / steps1;\n count++;\n } else if (count < steps1 + steps2) {\n count++;\n } else if (count < steps1 + steps2 + steps3) {\n x = (count - steps1 - steps2) / steps3;\n fx = 3 * x * x - 2 * x * x * x;\n h1 = h1 + (h1end - h1) * fx; \n h2 = h2 + (h2end - h2) * fx;\n count++; \n } else if (count < steps1 + steps2 + steps3 + steps4) {\n x = (count - steps1 - steps2 - steps3) / steps4;\n fx = 3 * x * x - 2 * x * x * x;\n h1 = h1 + (h1start - h1) * fx; \n h2 = h2 + (h2start - h2) * fx;\n count++;\n } else if (count < steps1 + steps2 + steps3 + steps4 + steps5) {\n count++; \n } else {\n theta = Math.PI * 5/6;\n count = 0;\n }\n if(!this.destroyed){\n this.intervalID = setTimeout(() => {\n this.drawReverse( canvas, count, h1, h2, theta, stepsfadein, stepswaitagain);\n }, 10)\n }\n \n // this.intervalID = setTimeout(this.drawReverse, 10, canvas, count, h1, h2, theta, stepsfadein, stepswaitagain);\n \n }\n}\n","\n","/** Example file/folder data. */\nexport const files = [\n {\n name: 'components',\n size: '100',\n type: 'folder',\n children: [\n {\n name: 'src',\n size: '1076',\n type: 'folder',\n children: [\n {\n name: 'cdk',\n size: '21',\n type: 'folder',\n children: [\n { name: 'package.json', type: 'file' },\n { name: 'BUILD.bazel', type: 'file' },\n ]\n },\n { name: 'material', type: 'folder' }\n ]\n }\n ]\n },\n {\n name: 'angular',\n type: 'folder',\n children: [\n {\n name: 'packages',\n type: 'folder',\n children: [\n { name: '.travis.yml', type: 'file' },\n { name: 'firebase.json', type: 'file' }\n ]\n },\n { name: 'package.json', type: 'file' }\n ]\n },\n {\n name: 'angularjs',\n type: 'folder',\n children: [\n { name: 'gulpfile.js', type: 'file' },\n { name: 'README.md', type: 'file' }\n ]\n }\n];\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-compose',\n templateUrl: './compose.component.html',\n styleUrls: ['./compose.component.css']\n})\nexport class ComposeComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n public options: Object = {\n events: {\n 'froalaEditor.initialized': function (e, editor) {\n editor.edit.off();\n }\n },\n attribution: false,\n Key:'dKA5cC3C2B2H2E2B5A3D-17d1F1FOOLb2KOPQGe1CWCQVTDWXGcA5A4D4B3E4B2D2E3B1A1==',\n charCounterCount: false,\n fontSizeSelection: true,\n fontSize: ['8', '10', '11', '12', '14', '16', '18', '20', '22', '24', '26', '28', '30', '32', '34', '36', '40', '44', '48', '40', '52', '60', '72', '96'],\n fontFamily: {\n 'Arial,Helvetica,sans-serif': 'Arial',\n 'Georgia,serif': 'Georgia',\n 'Impact,Charcoal,sans-serif': 'Impact',\n 'Inconsolata,sans-serif': 'Inconsolata',\n 'Open Sans,sans-serif': 'Open Sans',\n \"'Poppins',sans-serif\": 'Poppins',\n 'Roboto Mono,sans-serif': 'Roboto Mono',\n 'Tahoma,Geneva,sans-serif': 'Tahoma',\n \"'Times New Roman',Times,serif\": 'Times New Roman',\n 'Verdana,Geneva,sans-serif': 'Verdana',\n },\n fontFamilySelection: true,\n fontFamilyDefaultSelection: 'Poppins',\n toolbarButtons: {\n 'moreText': {\n 'buttons': ['fontFamily', 'fontSize', 'bold', 'italic', 'underline', 'textColor', 'backgroundColor', 'strikeThrough', 'subscript', 'superscript', 'clearFormatting'],\n 'buttonsVisible': 0\n },\n 'moreParagraph': {\n 'buttons': ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify', 'formatOLSimple', 'formatUL', 'paragraphFormat', 'lineHeight', 'outdent', 'indent'],\n 'buttonsVisible': 0\n },\n 'moreRich': {\n 'buttons': ['insertHR', 'insertLink', 'insertImage', 'insertTable', 'emoticons', 'fontAwesome', 'specialCharacters', 'embedly'],\n 'buttonsVisible': 0\n }\n }\n };\n}\n","
\n \n New Email\n X \n
\n
\n
\n To\n \n
\n \n
\n \n
\n
\n
\n
\n
\n Send\n
\n
\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTable } from '@angular/material/table';\nimport { TableDataSource, TableItem } from './table-datasource';\n\n@Component({\n selector: 'app-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.css']\n})\nexport class TableComponent implements AfterViewInit, OnInit {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n @ViewChild(MatTable) table: MatTable;\n dataSource: TableDataSource;\n\n /** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */\n displayedColumns = ['id', 'name'];\n\n ngOnInit() {\n this.dataSource = new TableDataSource();\n }\n\n ngAfterViewInit() {\n this.dataSource.sort = this.sort;\n this.dataSource.paginator = this.paginator;\n this.table.dataSource = this.dataSource;\n }\n}\n","
\n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n
Id{{row.id}}Name{{row.name}}
\n\n \n \n
\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { Globals } from 'src/app/globals';\nimport { ConfirmPopupComponent } from '../confirm-popup/confirm-popup.component';\nimport { RemoveLogoComponent } from './remove-logo/remove-logo.component';\n\n@Component({\n selector: 'app-company-logo',\n templateUrl: './company-logo.component.html',\n styleUrls: ['./company-logo.component.css']\n})\nexport class CompanyLogoComponent implements OnInit {\n\n constructor(\n public globals: Globals,\n private http: HttpClient,\n private _snackBar: MatSnackBar,\n public dialog: MatDialog,\n private route: ActivatedRoute\n ) { }\n @Input() public thisCompanyName: String;\n @Input() public teir: any;\n @Input() public type: String;\n @Input() public companyState: string;\n\n loading = true\n logo = \"\";\n custlogo = \"\";\n logoupload;\n custlogoupload;\n custId = \"\"\n async ngOnInit(): Promise {\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n if (this.route.snapshot.params['id']) {\n param = param.append('CompanyId', this.route.snapshot.params['id']);\n }\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyTheme.php', { params: param }).subscribe({\n next: themedata => {\n if (themedata.logo) {\n this.logo = (this.globals.getImgUrl() + themedata.logo + \"logo-small.png?t=\" + new Date().getTime())\n }\n if (themedata[\"custom-logo-path\"]) {\n this.custlogo = (themedata[\"custom-logo-path\"] + \"?t=\" + new Date().getTime())\n }\n this.loading = false;\n },\n error: error => {\n console.error('There was an error!');\n this.loading = false;\n }\n });\n\n //Check stripe for subscription\n let param1 = new HttpParams();\n param1 = param1.append('AuthToken', await this.globals.getAuthToken());\n param1 = param1.append('UserName', this.globals.getSystemUserName());\n\n if (this.route.snapshot.params['id']) {\n param1 = param1.append('CompanyId', this.route.snapshot.params['id']);\n } else {\n param1 = param1.append('CompanyId', this.globals.getCompanyId());\n }\n this.http.get(this.globals.getServicesUrl() + 'stripe/getSub', { params: param1 }).subscribe({\n next: data => {\n if (data.subStatus == \"active\") {\n this.custId = data.customer\n } else {\n\n }\n\n\n },\n error: error => {\n if (error.error.text == \"No subscription data found\") {\n\n } if (error.error.error == \"Could not find valid subscription\") {\n } else {\n console.error('There was an error!');\n console.error(error);\n }\n }\n });\n }\n\n async uploadLogo(evt): Promise {\n if (this.companyState == \"A\") {\n this._snackBar.open(\"Uploading...\", \"OK\", { duration: 5000 });\n let imageForm = new FormData;\n imageForm.append('AuthToken', await this.globals.getAuthToken());\n imageForm.append('UserName', this.globals.getSystemUserName());\n imageForm.append('LogoType', \"S\");\n imageForm.append('UploadFileInd', evt.target.files[0]);\n if (this.route.snapshot.params['id']) {\n imageForm.append('CompanyId', this.route.snapshot.params['id']);\n }\n this.http.post(this.globals.getApiUrl() + 'api/uploadSPMailCompanyLogo.php', imageForm).subscribe({\n next: data => {\n this.logoupload = \"\"\n this.getLogo()\n let notificationForm = new FormData;\n notificationForm.append('type', \"Logo Uploaded\");\n notificationForm.append('message', \"Logo uploaded for \" + this.thisCompanyName);\n if (this.route.snapshot.params['id']) {\n notificationForm.append('companyId', this.route.snapshot.params['id']);\n } else { notificationForm.append('companyId', this.globals.getCompanyId()); }\n this.http.post(this.globals.getServicesUrl() + 'company/addNotification', notificationForm).subscribe({\n next: data => {\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n },\n error: error => {\n this.logoupload = \"\"\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n }\n\n }\n async uploadCustLogo(evt): Promise {\n if (this.companyState == \"A\") {\n this._snackBar.open(\"Uploading...\", \"OK\", { duration: 5000 });\n let imageForm = new FormData;\n let tempToken = await this.globals.getAuthToken()\n imageForm.append('AuthToken', tempToken);\n imageForm.append('UserName', this.globals.getSystemUserName());\n imageForm.append('LogoType', \"S\");\n imageForm.append('UploadFileInd', evt.target.files[0]);\n if (this.route.snapshot.params['id']) {\n imageForm.append('CompanyId', this.route.snapshot.params['id']);\n } else { imageForm.append('CompanyId', this.globals.getCompanyId()); }\n this.http.post(this.globals.getApiUrl() + 'api/uploadSPMailCompanyCustomLogo.php', imageForm).subscribe({\n next: data => {\n let form = new FormData;\n form.append('AuthToken', tempToken);\n form.append('UserName', this.globals.getSystemUserName());\n if (this.route.snapshot.params['id']) {\n form.append('CompanyId', this.route.snapshot.params['id']);\n }\n if (this.teir.linkedBrandingTier != null && this.teir.branding == false && this.type == \"C\") {\n if (this.custId != \"\") {\n this.addToStripe()\n }\n form.append('InitialTier', this.teir.linkedBrandingTier);\n this.http.post(this.globals.getApiUrl() + 'api/editSPMailCompany.php', form).subscribe({\n next: data => {\n this.custlogoupload = \"\"\n this.getLogo()\n let notificationForm = new FormData;\n notificationForm.append('type', \"Branding Added\");\n notificationForm.append('message', \"Co-branded logo added to \" + this.thisCompanyName);\n if (this.route.snapshot.params['id']) {\n notificationForm.append('companyId', this.route.snapshot.params['id']);\n } else { notificationForm.append('companyId', this.globals.getCompanyId()); }\n this.http.post(this.globals.getServicesUrl() + 'company/addNotification', notificationForm).subscribe({\n next: data => {\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n } else {\n this.custlogoupload = \"\"\n this.getLogo()\n let notificationForm = new FormData;\n notificationForm.append('type', \"Branding Added\");\n notificationForm.append('message', \"Co-branded logo added to \" + this.thisCompanyName);\n if (this.route.snapshot.params['id']) {\n notificationForm.append('companyId', this.route.snapshot.params['id']);\n } else { notificationForm.append('companyId', this.globals.getCompanyId()); }\n this.http.post(this.globals.getServicesUrl() + 'company/addNotification', notificationForm).subscribe({\n next: data => {\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n }\n },\n error: error => {\n this.custlogoupload = \"\"\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n }\n\n }\n async getLogo() {\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n if (this.route.snapshot.params['id']) {\n param = param.append('CompanyId', this.route.snapshot.params['id']);\n }\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyTheme.php', { params: param }).subscribe({\n next: themedata => {\n if (themedata.logo) {\n this.logo = (this.globals.getImgUrl() + themedata.logo + \"logo-small.png?t=\" + new Date().getTime())\n }\n else { this.logo = \"\" }\n if (themedata[\"custom-logo-path\"]) {\n this.custlogo = (themedata[\"custom-logo-path\"] + \"?t=\" + new Date().getTime())\n }\n else { this.custlogo = \"\" }\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n }\n removeLogo() {\n if (this.companyState == \"A\") {\n const dialogRef = this.dialog.open(RemoveLogoComponent, {\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n let resetForm = new FormData;\n let tempToken = await this.globals.getAuthToken()\n\n resetForm.append('AuthToken', tempToken);\n resetForm.append('UserName', this.globals.getSystemUserName());\n if (this.route.snapshot.params['id']) {\n resetForm.append('CompanyId', this.route.snapshot.params['id']);\n } else { resetForm.append('CompanyId', this.globals.getCompanyId()); }\n this.http.post(this.globals.getApiUrl() + 'api/resetSPMailCompanyThemeToDefault.php', resetForm).subscribe({\n next: data => {\n this.http.post(this.globals.getApiUrl() + 'api/removeSPMailCompanyCustomLogo.php', resetForm).subscribe({\n next: data => {\n let form = new FormData;\n form.append('AuthToken', tempToken);\n form.append('UserName', this.globals.getSystemUserName());\n if (this.route.snapshot.params['id']) {\n form.append('CompanyId', this.route.snapshot.params['id']);\n }\n if (this.teir.linkedBrandingTier != null && this.teir.branding == true && this.type == \"C\") {\n form.append('InitialTier', this.teir.linkedBrandingTier);\n this.http.post(this.globals.getApiUrl() + 'api/editSPMailCompany.php', form).subscribe({\n next: data => {\n\n this.getLogo()\n this._snackBar.open(\"Branding removed.\", \"OK\", { duration: 5000 });\n let notificationForm = new FormData;\n notificationForm.append('type', \"Branding Removed\");\n notificationForm.append('message', \"Branding removed from \" + this.thisCompanyName);\n if (this.route.snapshot.params['id']) {\n notificationForm.append('companyId', this.route.snapshot.params['id']);\n } else { notificationForm.append('companyId', this.globals.getCompanyId()); }\n this.http.post(this.globals.getServicesUrl() + 'company/addNotification', notificationForm).subscribe({\n next: data => {\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n } else {\n this.getLogo()\n this._snackBar.open(\"Branding removed.\", \"OK\", { duration: 5000 });\n let notificationForm = new FormData;\n notificationForm.append('type', \"Branding Removed\");\n notificationForm.append('message', \"Branding removed from \" + this.thisCompanyName);\n if (this.route.snapshot.params['id']) {\n notificationForm.append('companyId', this.route.snapshot.params['id']);\n } else { notificationForm.append('companyId', this.globals.getCompanyId()); }\n this.http.post(this.globals.getServicesUrl() + 'company/addNotification', notificationForm).subscribe({\n next: data => {\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n }\n\n\n\n\n\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n }\n\n });\n }\n\n\n }\n addToStripe() {\n\n const dialogRef = this.dialog.open(ConfirmPopupComponent, {\n autoFocus: false,\n data: {\n text: [\n 'Co-branded logo has been added.',\n 'Do you want this to be added to ' + this.thisCompanyName + \"'s Stripe subscription.\"\n ]\n },\n });\n\n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n //WHAT TO DO\n let form = new FormData();\n let tempToken = await this.globals.getAuthToken()\n form.append('systemUsername', this.globals.getSystemUserName());\n form.append('authToken', tempToken);\n form.append('compID', this.globals.getCompanyId());\n this.http.post(this.globals.getServicesUrl() + 'stripe/addBranding', form).subscribe({\n next: data => {\n \n },\n error: error => {\n console.error('There was an error!');\n }\n });\n //WHAT TO DO\n }\n });\n }\n\n}\n","
\n To apply custom branding to your StayPrivate encrypted emails, simply upload your logo below. The StayPrivate graphics team will then incorporate your logo with the text ‘powered by StayPrivate’ before pushing it live. This process typically takes 1 business day.\n Thank you for uploading your logo. The StayPrivate graphics team will add a co-branded version of your logo shortly.\n
\n Your logo\n \n
\n
\n \n
\n cloud_upload\n Click 'Upload logo' to add custom branding
Logo must be in .png format
\n
\n
\n \n \n
\n
\n Co-branded Logo\n \n
\n
\n \n
\n schedule\n Your co-branded logo will appear here soon\n
\n
\n \n \n
\n
\n Remove Branding\n This will remove the co-branded logo from all future secure email. Emails will instead be sent without any branding.
\n \n
\n\n \n\n
","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Globals } from 'src/app/globals';\n\n@Component({\n selector: 'app-csv-download-dialog',\n templateUrl: './csv-download-dialog.component.html',\n styleUrls: ['./csv-download-dialog.component.css']\n})\nexport class CsvDownloadDialogComponent implements OnInit {\n\n constructor(\n private http:HttpClient,\n private fb: FormBuilder,\n private globals:Globals,\n public dialogRef: MatDialogRef,\n private _snackBar: MatSnackBar\n ) { }\n\n ngOnInit(): void {\n \n }\n \n dbPasswordForm = this.fb.group({\n dbPassword: [null, Validators.required] \n });\n hidePassword = true;\n isLoading=false;\n\n download(){\n this.isLoading=true;\n\n let param = new HttpParams();\n param = param.append('pwd', this.dbPasswordForm.value.dbPassword );\n this.http.get(this.globals.getServicesUrl()+\"billing/download\", { params:param, responseType: 'blob' }).subscribe({\n next: data => {\n this.isLoading=false;\n\n let binaryData = [];\n binaryData.push(data);\n let downloadLink = document.createElement('a');\n downloadLink.href = window.URL.createObjectURL(new Blob([data], {type: 'text/csv;'}));\n downloadLink.setAttribute('download', \"Invoice Billing.csv\");\n document.body.appendChild(downloadLink);\n downloadLink.click();\n downloadLink.remove();\n this.dialogRef.close();\n },\n error: error => {\n this.isLoading=false;\n\n if(error.status==401){\n this._snackBar.open(\"Incorrect Password.\",\"OK\",{duration:5000} );\n }else{this._snackBar.open(\"Unknown Error.\",\"OK\",{duration:5000} );}\n\n }\n });\n }\n\n}\n","CSV Download
\n\n
\n \n Enter your password\n \n \n \n
\n \n arrow_forward \n \n ","import { SelectionModel } from '@angular/cdk/collections';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { Globals } from 'src/app/globals';\ninterface Chart {\n value: string;\n viewValue: string;\n}\nclass ChartStats {\n name: string;\n series: {\n name: string;\n value: number;\n }[];\n}\n\n@Component({\n selector: 'app-line-graph2',\n templateUrl: './line-graph2.component.html',\n styleUrls: ['./line-graph2.component.css']\n})\nexport class LineGraph2Component implements OnInit {\n\n charts: Chart[] = [\n { value: 'userTotal', viewValue: 'Company Users' },\n { value: 'emailsSent', viewValue: 'Emails Sent' },\n { value: 'emailsChecked', viewValue: 'Emails Checked' },\n // {value: 'recipientTotal', viewValue: 'Recipients'},\n // {value: 'storageTotal', viewValue: 'Storage'},\n // {value: 'monthlyRetailPrice', viewValue: 'Monthly retail price'},\n // {value: 'userTotal', viewValue: 'Users'},\n // {value: 'emailSent24h', viewValue: 'Emails sent per day'},\n // {value: 'emailSent7d', viewValue: 'Emails sent per week'},\n // {value: 'emailSent28d', viewValue: 'Email sent per 28 days'},\n // {value: 'emailSentTotal', viewValue: 'Cumulative emails sent'},\n // {value: 'emailReceived24h', viewValue: 'Emails received per day'},\n // {value: 'emailReceived7d', viewValue: 'Emails received per week'},\n // {value: 'emailReceived28d', viewValue: 'Emails received per 28 days'},\n // {value: 'emailReceivedTotal', viewValue: 'Cumulative emails received'}\n\n ];\n selectedChart = this.charts[0].value;\n\n multi: any;\n multiCount:number=0;\n view: any[] = [700, 300];\n tickCounter: number = 12;\n tickInterval: number = 4;\n\n // options\n scaleMax: Number = 50\n scaleMax1: Number = 12\n legend: boolean = true;\n showLabels: boolean = true;\n animations: boolean = true;\n xAxis: boolean = true;\n yAxis: boolean = true;\n showYAxisLabel: boolean = true;\n showXAxisLabel: boolean = true;\n xAxisLabel: string = 'Date';\n yAxisLabel: string = 'Population';\n sentView: boolean = false;\n sentViewValue: string = '30d';\n\n colorScheme = {\n domain: [localStorage.getItem('background-color')]\n };\n constructor(private http: HttpClient, private globals: Globals, private route: ActivatedRoute) {\n //Object.assign(this, { multi });\n }\n\n userTotalChart: ChartStats = { name: \"Users\", series: [{ name: \"\", value: 0 }] };\n emailsCheckedChart: ChartStats = { name: \"Emails checked\", series: [{ name: \"\", value: 0 }] };\n emailSent24hChart: ChartStats = { name: \"Emails sent per day\", series: [{ name: \"\", value: 0 }] };\n emailSent7dChart: ChartStats = { name: \"Emails sent per week\", series: [{ name: \"\", value: 0 }] };\n emailSent30dChart: ChartStats = { name: \"Email sent per 30 days\", series: [{ name: \"\", value: 0 }] };\n\n\n recipientTotalChart: ChartStats = { name: \"Recipients\", series: [{ name: \"\", value: 0 }] };\n storageTotalChart: ChartStats = { name: \"Storage\", series: [{ name: \"\", value: 0 }] };\n monthlyRetailPriceChart: ChartStats = { name: \"Retail price\", series: [{ name: \"\", value: 0 }] };\n emailSent28dChart: ChartStats = { name: \"Email sent per 28 days\", series: [{ name: \"\", value: 0 }] };\n emailSentTotalChart: ChartStats = { name: \"Total emails sent\", series: [{ name: \"\", value: 0 }] };\n emailReceived24hChart: ChartStats = { name: \"Emails received per day\", series: [{ name: \"\", value: 0 }] };\n emailReceived7dChart: ChartStats = { name: \"Emails received per week\", series: [{ name: \"\", value: 0 }] };\n emailReceived28dChart: ChartStats = { name: \"Email received per 28 days\", series: [{ name: \"\", value: 0 }] };\n emailReceivedTotalChart: ChartStats = { name: \"Total emails received\", series: [{ name: \"\", value: 0 }] };\n\n\n async ngOnInit() {\n const currentDate = new Date();\n currentDate.setDate(currentDate.getDate() + 1)\n const EndDate = currentDate.getFullYear() + \"-\" + (currentDate.getMonth() + 1) + \"-\" + currentDate.getDate();\n\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n if (this.route.snapshot.params['id']) {\n param = param.append('CompanyId', this.route.snapshot.params['id']);\n } else {\n }\n param = param.append('StartDate', \"1990-10-14\");\n param = param.append('EndDate', EndDate);\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyStats.php', { params: param }).subscribe({\n next: data => {\n \n\n\n //Recipient Total\n this.recipientTotalChart.name = \"Recipient Total\";\n for (let el of data.StatsList) {\n this.recipientTotalChart.series.push({ name: this.dateConverter(el.StatsDateUTC), value: Number(el.NumActiveRecipients) });\n }\n this.recipientTotalChart.series.splice(0, 1)\n //User Total\n this.userTotalChart.name = \"User Total\";\n for (let el of data.StatsList) {\n this.userTotalChart.series.push({ name: this.dateConverter(el.StatsDateUTC), value: Number(el.NumActiveUsers) });\n }\n this.userTotalChart.series.splice(0, 1)\n //Email Sent daily\n this.emailSent24hChart.name = \"Emails Sent Daily\";\n for (let el of data.StatsList) {\n this.emailSent24hChart.series.push({ name: this.dateConverter(el.StatsDateUTC), value: Number(el.NumEmailsSentPeriod) });\n }\n this.emailSent24hChart.series.splice(0, 1)\n //Email Sent Weekly\n data.StatsList.reverse()\n this.emailSent7dChart.name = \"Emails Sent Weekly\";\n let i = 0\n let firstEl\n for (let el of data.StatsList) {\n i++\n if (i == 1) { firstEl = el }\n if (i == 8) {\n this.emailSent7dChart.series.push({\n name: this.dateConverter(firstEl.StatsDateUTC),\n value: Number(firstEl.NumEmailsSentTotal - el.NumEmailsSentTotal)\n });\n firstEl = el;\n i = 1;\n }\n }\n if (i != 0) {\n if (i == 1) {\n this.emailSent7dChart.series.push({ name: this.dateConverter(firstEl.StatsDateUTC), value: Number(firstEl.NumEmailsSentPeriod) });\n } else {\n this.emailSent7dChart.series.push({\n name: this.dateConverter(firstEl.StatsDateUTC),\n value: Number(firstEl.NumEmailsSentTotal - data.StatsList[data.StatsList.length - 1].NumEmailsSentTotal)\n });\n }\n i = 0;\n }\n this.emailSent7dChart.series.splice(0, 1)\n this.emailSent7dChart.series.reverse()\n data.StatsList.reverse()\n //Email Sent Monthly\n data.StatsList.reverse()\n this.emailSent28dChart.name = \"Emails Sent Monthly\";\n i = 0;\n firstEl = null\n for (let el of data.StatsList) {\n i++\n if (i == 1) { firstEl = el }\n if (i == 29) {\n this.emailSent28dChart.series.push({\n name: this.dateConverter(firstEl.StatsDateUTC),\n value: Number(firstEl.NumEmailsSentTotal - el.NumEmailsSentTotal)\n });\n firstEl = el;\n i = 1;\n }\n }\n if (i != 0) {\n if (i == 1) {\n this.emailSent28dChart.series.push({ name: this.dateConverter(firstEl.StatsDateUTC), value: Number(firstEl.NumEmailsSentPeriod) });\n } else {\n this.emailSent28dChart.series.push({\n name: this.dateConverter(firstEl.StatsDateUTC),\n value: Number(firstEl.NumEmailsSentTotal - data.StatsList[data.StatsList.length - 1].NumEmailsSentTotal)\n });\n }\n i = 0;\n }\n this.emailSent28dChart.series.splice(0, 1)\n this.emailSent28dChart.series.reverse()\n data.StatsList.reverse()\n //Email Sent 30 Day\n data.StatsList.reverse()\n this.emailSent30dChart.name = \"Emails Sent Monthly\";\n i = 0;\n firstEl = null\n for (let el of data.StatsList) {\n i++\n if (i == 1) { firstEl = el }\n if (i == 31) {\n this.emailSent30dChart.series.push({\n name: this.dateConverter(firstEl.StatsDateUTC),\n value: Number(firstEl.NumEmailsSentTotal - el.NumEmailsSentTotal)\n });\n firstEl = el;\n i = 1;\n }\n }\n if (i != 0) {\n if (i == 1) {\n this.emailSent30dChart.series.push({ name: this.dateConverter(firstEl.StatsDateUTC), value: Number(firstEl.NumEmailsSentPeriod) });\n } else {\n this.emailSent30dChart.series.push({\n name: this.dateConverter(firstEl.StatsDateUTC),\n value: Number(firstEl.NumEmailsSentTotal - data.StatsList[data.StatsList.length - 1].NumEmailsSentTotal)\n });\n }\n i = 0;\n }\n this.emailSent30dChart.series.splice(0, 1)\n this.emailSent30dChart.series.reverse()\n data.StatsList.reverse()\n\n //Emails Chcked Monthly\n data.EmailProcessStatsList.reverse()\n this.emailsCheckedChart.name = \"Emails Sent Monthly\";\n i = 0;\n firstEl = null\n for (let el of data.EmailProcessStatsList) {\n i++\n if (i == 1) { firstEl = el }\n if (i == 31) {\n this.emailsCheckedChart.series.push({\n name: this.dateConverter(firstEl.StatsDateUTC),\n value: Number(firstEl.NumCheckedEmails - el.NumCheckedEmails)\n });\n firstEl = el;\n i = 1;\n }\n }\n if (i != 0) {\n if (i == 1) {\n this.emailsCheckedChart.series.push({ name: this.dateConverter(firstEl.StatsDateUTC), value: Number(firstEl.NumCheckedEmails) });\n } else {\n this.emailsCheckedChart.series.push({\n name: this.dateConverter(firstEl.StatsDateUTC),\n value: Number(firstEl.NumCheckedEmails - data.EmailProcessStatsList[data.EmailProcessStatsList.length - 1].NumCheckedEmails)\n });\n }\n i = 0;\n }\n this.emailsCheckedChart.series.splice(0, 1)\n this.emailsCheckedChart.series.reverse()\n data.EmailProcessStatsList.reverse()\n //Email Sent Total\n this.emailSentTotalChart.name = \"Emails Sent Total\";\n for (let el of data.StatsList) {\n this.emailSentTotalChart.series.push({ name: this.dateConverter(el.StatsDateUTC), value: Number(el.NumEmailsSentTotal) });\n }\n //Email Received daily\n this.emailReceived24hChart.name = \"Emails Received Daily\";\n for (let el of data.StatsList) {\n this.emailReceived24hChart.series.push({ name: this.dateConverter(el.StatsDateUTC), value: Number(el.NumEmailsReceivedPeriod) });\n }\n this.emailReceived24hChart.series.splice(0, 1)\n //Email Received Weekly\n data.StatsList.reverse()\n this.emailReceived7dChart.name = \"Emails Received Weekly\";\n i = 0\n firstEl\n for (let el of data.StatsList) {\n i++\n if (i == 1) { firstEl = el }\n if (i == 8) {\n this.emailReceived7dChart.series.push({\n name: this.dateConverter(firstEl.StatsDateUTC),\n value: Number(firstEl.NumEmailsReceivedTotal - el.NumEmailsReceivedTotal)\n });\n firstEl = el;\n i = 1;\n }\n }\n if (i != 0) {\n if (i == 1) {\n this.emailReceived7dChart.series.push({ name: this.dateConverter(firstEl.StatsDateUTC), value: Number(firstEl.NumEmailsReceivedPeriod) });\n } else {\n this.emailReceived7dChart.series.push({\n name: this.dateConverter(firstEl.StatsDateUTC),\n value: Number(firstEl.NumEmailsReceivedTotal - data.StatsList[data.StatsList.length - 1].NumEmailsReceivedTotal)\n });\n }\n i = 0;\n }\n this.emailReceived7dChart.series.splice(0, 1)\n this.emailReceived7dChart.series.reverse()\n data.StatsList.reverse()\n //Email Received Monthly\n data.StatsList.reverse()\n this.emailReceived28dChart.name = \"Emails Received Monthly\";\n i = 0;\n firstEl = null\n for (let el of data.StatsList) {\n i++\n if (i == 1) { firstEl = el }\n if (i == 29) {\n this.emailReceived28dChart.series.push({\n name: this.dateConverter(firstEl.StatsDateUTC),\n value: Number(firstEl.NumEmailsReceivedTotal - el.NumEmailsReceivedTotal)\n });\n firstEl = el;\n i = 1;\n }\n }\n if (i != 0) {\n if (i == 1) {\n this.emailReceived28dChart.series.push({ name: this.dateConverter(firstEl.StatsDateUTC), value: Number(firstEl.NumEmailsReceivedPeriod) });\n } else {\n this.emailReceived28dChart.series.push({\n name: this.dateConverter(firstEl.StatsDateUTC),\n value: Number(firstEl.NumEmailsReceivedTotal - data.StatsList[data.StatsList.length - 1].NumEmailsReceivedTotal)\n });\n }\n i = 0;\n }\n this.emailReceived28dChart.series.splice(0, 1)\n this.emailReceived28dChart.series.reverse()\n data.StatsList.reverse()\n //Email Received Total\n this.emailReceivedTotalChart.name = \"Emails Received Total\";\n for (let el of data.StatsList) {\n this.emailReceivedTotalChart.series.push({ name: this.dateConverter(el.StatsDateUTC), value: Number(el.NumEmailsReceivedTotal) });\n }\n this.emailReceivedTotalChart.series.splice(0, 1)\n //Total Storage\n this.storageTotalChart.name = \"Total Storage\";\n for (let el of data.StatsList) {\n this.storageTotalChart.series.push({ name: this.dateConverter(el.StatsDateUTC), value: Number(el.TotalStorageUsedMB) / 1024 });\n }\n this.storageTotalChart.series.splice(0, 1)\n //MonthlyChargeValue\n this.monthlyRetailPriceChart.name = \"MonthlyChargeValue\";\n for (let el of data.StatsList) {\n let PriceA = 10 + 2.50 * Math.max(0, Math.floor((Number(el.NumActiveRecipients) + 24) / 25) - 4) + 2.50 * Math.max(0, Math.floor(Number(el.TotalStorageUsedMB) / 10240));\n let PriceB = 35 + 9.50 * Math.max(0, Math.floor((Number(el.NumActiveRecipients) + 124) / 125) - 4) + 9.50 * Math.max(0, Math.floor(Number(el.TotalStorageUsedMB) / 51200));\n let PriceC = 65 + 15 * Math.max(0, Math.floor((Number(el.NumActiveRecipients) + 249) / 250) - 4) + 15 * Math.max(0, Math.floor(Number(el.TotalStorageUsedMB) / 102400));\n let monthlyRetailPrice = Math.min(PriceA, PriceB, PriceC);\n this.monthlyRetailPriceChart.series.push({ name: this.dateConverter(el.StatsDateUTC), value: Number(monthlyRetailPrice) });\n }\n this.monthlyRetailPriceChart.series.splice(0, 1)\n\n this.onSwitch();\n },\n error: error => { console.error('There was an error!'); }\n })\n\n }\n\n dateConverter(unixTimestamp): string {\n var a = new Date(unixTimestamp * 1000);\n var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n var year = a.getFullYear();\n var month = months[a.getMonth()];\n var date = a.getDate();\n var time = date + ' ' + month + ' ' + year;\n return time;\n }\n onSwitch(view?:string) {\n this.sentView = false;\n if(view){\n this.sentViewValue=view\n }\n switch (this.selectedChart) {\n case 'recipientTotal':\n this.yAxisLabel = 'Recipients';\n this.multi = JSON.parse(JSON.stringify(this.recipientTotalChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n \n for (let el of this.recipientTotalChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n case 'userTotal':\n this.yAxisLabel = 'Users';\n this.multi = JSON.parse(JSON.stringify(this.userTotalChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n\nthis.multiCount = this.multi[0].series\n for (let el of this.userTotalChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n case 'emailsChecked':\n this.yAxisLabel = 'Emails checked in last 30 days';\n this.multi = JSON.parse(JSON.stringify(this.emailsCheckedChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.emailsCheckedChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n case 'emailsSent':\n this.sentView = true;\n\n if (this.sentViewValue == '24h') {\n this.yAxisLabel = 'Emails sent per day';\n this.multi = JSON.parse(JSON.stringify(this.emailSent24hChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.emailSent24hChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n }\n if (this.sentViewValue == '7d') {\n this.yAxisLabel = 'Email sent per week';\n this.multi = JSON.parse(JSON.stringify(this.emailSent7dChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.emailSent7dChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n }\n if (this.sentViewValue == '30d') {\n this.yAxisLabel = 'Email sent per 30 days';\n this.multi = JSON.parse(JSON.stringify(this.emailSent30dChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.emailSent30dChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n }\n\n case 'emailSent24h':\n this.yAxisLabel = 'Emails sent per day';\n this.multi = JSON.parse(JSON.stringify(this.emailSent24hChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.emailSent24hChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n break;\n case 'emailSent7d':\n this.yAxisLabel = 'Email sent per week';\n this.multi = JSON.parse(JSON.stringify(this.emailSent7dChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.emailSent7dChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n case 'emailSent28d':\n this.yAxisLabel = 'Email sent per 28 days';\n this.multi = JSON.parse(JSON.stringify(this.emailSent28dChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.emailSent28dChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n case 'emailSentTotal':\n this.yAxisLabel = 'Total emails sent';\n this.multi = JSON.parse(JSON.stringify(this.emailSentTotalChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.emailSentTotalChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n case 'emailReceived24h':\n this.yAxisLabel = 'Emails received per day';\n this.multi = JSON.parse(JSON.stringify(this.emailReceived24hChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.emailReceived24hChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n case 'emailReceived7d':\n this.yAxisLabel = 'Emails received per week';\n this.multi = JSON.parse(JSON.stringify(this.emailReceived7dChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.emailReceived7dChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n case 'emailReceived28d':\n this.yAxisLabel = 'Email received per 28 days';\n this.multi = JSON.parse(JSON.stringify(this.emailReceived28dChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.emailReceived28dChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n case 'emailReceivedTotal':\n this.yAxisLabel = 'Total emails received';\n this.multi = JSON.parse(JSON.stringify(this.emailReceivedTotalChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.emailReceivedTotalChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n case 'storageTotal':\n this.yAxisLabel = 'Storage (GB)';\n this.multi = JSON.parse(JSON.stringify(this.storageTotalChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.storageTotalChart.series)\n if (el.value < 9) {\n this.scaleMax = 9\n } else { this.scaleMax = null; break; }\n break;\n case 'monthlyRetailPrice':\n this.yAxisLabel = 'Retail price';\n this.multi = JSON.parse(JSON.stringify(this.monthlyRetailPriceChart).replace(/^\\{(.*)\\}$/, \"[ { $1 }]\"));\n for (let el of this.monthlyRetailPriceChart.series)\n if (el.value < 10) {\n this.scaleMax = 10\n } else { this.scaleMax = null; break; }\n break;\n default:\n break;\n }\n }\n\n}\n","\n Chart display\n \n \n {{chart.viewValue}}\n \n \n\n\n
\n \n
\n \n \n \n
\n
\n\n \n \n\n
","import { Resource } from \"./resources.component\";\n\nexport const RESOURCES: Resource[] = [\n { \n docName: 'StayPrivate 2 Pager', \n docLink: 'https://stayprivate.com/documentation/StayPrivate-2-Pager.pdf',\n imageUrl: 'https://stayprivate.com/resources/Resources_Thumbnail_Png.png' \n },{ \n docName: 'StayPrivate FAQs', \n docLink: 'https://stayprivate.com/documentation/StayPrivate-FAQs.pdf',\n imageUrl: 'https://stayprivate.com/resources/Resources_Thumbnail_Png.png' \n },{ \n docName: 'StayPrivate Operational Manual', \n docLink: 'https://stayprivate.com/documentation/StayPrivate-Operational-Manual.pdf',\n imageUrl: 'https://stayprivate.com/resources/Resources_Thumbnail_Png.png' \n },{ \n docName: 'Template Letter to Customers', \n docLink: 'https://stayprivate.com/documentation/Template-Letter-to-Customers.docx',\n imageUrl: 'https://stayprivate.com/resources/Resources_Thumbnail_Doc.png' \n },{ \n docName: 'Template Sales Email', \n docLink: 'https://stayprivate.com/documentation/Template-Sales-Email.docx',\n imageUrl: 'https://stayprivate.com/resources/Resources_Thumbnail_Doc.png' \n },{ \n docName: 'Template Telephone Sales Pitch', \n docLink: 'https://stayprivate.com/documentation/Template-Telephone-Sales-Pitch.docx',\n imageUrl: 'https://stayprivate.com/resources/Resources_Thumbnail_Doc.png' \n },{ \n docName: 'StayPrivate Internal Sales Team Presentation', \n docLink: 'https://stayprivate.com/documentation/StayPrivate-Internal-Sales-Team-Presentation.pptx',\n imageUrl: '../../../../assets/images/Resources_Thumbnail_PPT.png' \n },\n ];","import { HttpClient } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Title } from '@angular/platform-browser';\nimport { Globals } from 'src/app/globals';\nimport { CsvDownloadDialogComponent } from '../csv-download-dialog/csv-download-dialog.component';\nimport { CsvUpdateDialogComponent } from '../csv-update-dialog/csv-update-dialog.component';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.css']\n})\n\nexport class HomeComponent implements OnInit {\n\n constructor(public globals:Globals,private http:HttpClient,private dialog:MatDialog,private titleService: Title\n ) {} \n myCompanyType = this.globals.getCompanyType();\n ngOnInit(): void {\n this.titleService.setTitle(\"Home - STAY PRIVATE\");\n this.globals.refreshAuth(); \n }\n \n\n\n \n}\n","\n \n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Globals } from 'src/app/globals';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { MatStepper } from '@angular/material/stepper';\nimport { io } from 'socket.io-client';\nimport { SetupCompleteComponent } from '../setup-complete/setup-complete.component';\nimport { domain } from 'process';\nimport { SetupSteps } from 'src/app/setupSteps';\n\nexport interface PowershellFlow {\n stage: string;\n status: string;\n}\nconst POWERSHELL_FLOW: PowershellFlow[] = [\n { stage: 'Authenticating', status: \"P\" },\n { stage: 'Verifying domain', status: \"W\" },\n { stage: 'Adding connectors', status: \"W\" },\n { stage: 'Adding mail-flow rules', status: \"W\" },\n { stage: 'Finishing up', status: \"W\" },\n];\n@Component({\n selector: 'app-setup-microsoft',\n templateUrl: './setup-microsoft.component.html',\n styleUrls: ['./setup-microsoft.component.css']\n})\nexport class SetupMicrosoftComponent implements OnInit {\n\n constructor(\n private fb: FormBuilder,\n private globals: Globals,\n private setupSteps: SetupSteps,\n private http: HttpClient,\n private router: Router,\n public route: ActivatedRoute,\n\n private clipboard: Clipboard,\n public dialog: MatDialog,\n private _snackBar: MatSnackBar\n ) { }\n @ViewChild('setupStepper') public myStepper: MatStepper;\n @ViewChild('microsoftStepper') public microsoftStepper: MatStepper;\n @Output() setupFinished = new EventEmitter();\n @Input() public eventEmit: any;\n @Input() public originStepper: MatStepper;\n @Input() public companyId: string;\n @Input() public isSignUp: boolean;\n @Input() public keyword: string;\n @Input() public domain: string;\n @Input() public companyName: string;\n\n autoDisabled = false;//True to grey out autosetup button\n powershellRules = {\n connect: '',\n outboundConnector: '',\n inboundConnector: '',\n identifyRule: '',\n replyRule: '',\n allowRule: ''\n }\n inputDomain = \"\";\n loading = false;\n displayedColumns: string[] = ['stage', 'status'];\n dataSource;\n msAuthToken: \"\";\n processing = false;\n personalRule = false;\n microsoftSetup;\n link: string;\n onTabChanged($event) {\n if ($event.selectedIndex === 0) {\n this.dataSource = [\n { stage: 'Authenticating', status: \"P\" },\n { stage: 'Verifying domain', status: \"W\" },\n { stage: 'Adding connectors', status: \"W\" },\n { stage: 'Adding mail-flow rules', status: \"W\" },\n { stage: 'Finishing up', status: \"W\" },\n ];\n if (this.inputDomain != \"\") {\n this.domain = \"\"\n this.inputDomain = \"\"\n }\n } else {\n }\n }\n ngOnInit(): void {\n this.dataSource = POWERSHELL_FLOW;\n this.route.queryParams.subscribe(params => {\n if (params['1']) {\n this.link = params['1']\n } else if (this.companyId) {\n let param = new HttpParams()\n param = param.append('companyId', this.companyId)\n this.http.get(this.globals.getServicesUrl() + 'company/createLink', { params: param }).subscribe({\n next: data => {\n this.link = data.id\n this.keyword = data.keyword\n this.domain = data.domain\n this.companyName = data.name\n this.powershellRules = {\n connect: 'Connect-ExchangeOnline -Device -DelegatedOrganization ' + this.domain,\n outboundConnector: 'New-OutboundConnector -Name \"Send to StayPrivate\" -UseMxRecord $false -SmartHosts sendsecure.stayprivate.com -IsTransportRuleScoped $true',\n inboundConnector: 'New-InboundConnector -Name \"Receive from StayPrivate\" -SenderDomains *.' + this.domain + ' -ConnectorType OnPremises -CloudServicesMailEnabled $true -RestrictDomainsToCertificate $true -RequireTls $true -TlsSenderCertificateName *.stayprivate.com',\n identifyRule: 'New-TransportRule \"Identify messages to send via StayPrivate\" -SentToScope \"NotInOrganization\" -SenderDomainIs \"' + this.domain + '\" -ExceptIfSenderIpRanges \"18.130.40.2\" -ExceptIfHeaderMatchesMessageHeader \"x-stayprivate-processed\" -ExceptIfHeaderMatchesPatterns \"true\" -RouteMessageOutboundConnector \"Send to StayPrivate\"',\n replyRule: 'New-TransportRule \"Send secure replies to StayPrivate\" -SubjectOrBodyMatchesPatterns \"#stayprivate-secure-reply\" -ExceptIfSenderDomainIs \"' + this.domain + '\" -ExceptIfSenderIpRanges \"18.130.40.2\" -BlindCopyTo server@stayprivatemail.com',\n allowRule: 'New-TransportRule \"StayPrivate Allow\" -SenderIpRanges \"18.130.40.2\" -SetSCL \"-1\"'\n }\n if(this.isSignUp){\n this.powershellRules.identifyRule = 'New-TransportRule \"Identify messages to send via StayPrivate\" -SubjectOrBodyMatchesPatterns \"#stayprivate\" -SenderDomainIs \"' + this.domain + '\" -ExceptIfSenderIpRanges \"18.130.40.2\" -ExceptIfHeaderMatchesMessageHeader \"x-stayprivate-processed\" -ExceptIfHeaderMatchesPatterns \"true\" -RouteMessageOutboundConnector \"Send to StayPrivate\"'\n }\n \n\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n }\n });\n\n this.microsoftSetup = this.setupSteps.getMicrosoftSteps(this.keyword);\n\n }\n setupCompany() {\n let addPer = \"N\"\n let standAlone =\"N\"\n if (this.personalRule == true) { addPer = \"Y\" } else { addPer = \"N\" }\n if (this.isSignUp == true) { standAlone = \"Y\" } else { standAlone = \"N\" }\n\n if (!this.domain) { this.domain = this.inputDomain; this.keyword = \"#stayprivate\" }\n // this.domain=this.inputDomain\n this.myStepper.selectedIndex = 4\n\n if (this.domain) {\n const socket = io(this.globals.getServicesUrl(), {\n query: {\n \"Domain\": this.domain,\n \"Keyword\": this.keyword,\n \"Personal\": addPer,\n \"StandAlone\": standAlone\n }\n });\n this.loading = true;\n socket.on('authToken', (data) => {\n this.msAuthToken = data;\n this.loading = false;\n })\n let fetchedDomains;\n socket.on('domains', (data) => {\n fetchedDomains = data;\n\n })\n socket.on('message', (data) => {\n if (data === \"Authenticated\") { this.dataSource[0].status = \"S\"; this.dataSource[1].status = \"P\" }\n if (data === \"Domain verified\") { this.dataSource[1].status = \"S\"; this.dataSource[2].status = \"P\" }\n if (data === \"Connectors Added\") { this.dataSource[2].status = \"S\"; this.dataSource[3].status = \"P\" }\n if (data === \"Rules Added\") { this.dataSource[3].status = \"S\"; this.dataSource[4].status = \"P\" }\n if (data === \"Finished Up\") { this.dataSource[4].status = \"S\"; this.finish() }\n })\n socket.on('error', (data) => {\n if (data === \"Error authenticating\") {\n this.dataSource[0].status = \"F\"\n socket.disconnect()\n socket.close()\n this.myStepper.selectedIndex = 0\n this._snackBar.open(\"There was an issue authenticating your domain. Please contact support@stayprivate.com.\", \"OK\", { duration: 3000 });\n\n }\n if (data === \"Domain not found in server\") {\n this.dataSource[0].status = \"F\"\n socket.disconnect()\n socket.close()\n this.myStepper.selectedIndex = 0\n this._snackBar.open(\"Your domain was not found. Please try again or contact support@stayprivate.com.\", \"OK\", { duration: 3000 });\n }\n if (data === \"Error adding connectors\") { this.dataSource[2].status = \"F\"; this.dataSource[3].status = \"P\" }\n if (data === \"Error adding rules\") { this.dataSource[3].status = \"F\"; this.dataSource[4].status = \"P\" }\n if (data === \"Session Expired\") {\n this.dataSource[0].status = \"F\"\n socket.disconnect()\n socket.close()\n this.myStepper.selectedIndex = 0\n this._snackBar.open(\"Your session has timed out. Please try again.\", \"OK\", { duration: 3000 });\n }\n })\n socket.on('json', (data) => {\n })\n socket.on(\"disconnect\", (reason) => {\n socket.disconnect()\n socket.close()\n console.log('disconnect', reason)\n });\n\n }\n }\n copy(copyVariable) {\n this.clipboard.copy(copyVariable);\n this._snackBar.open(\"Copied!\", \"OK\", { duration: 3000 });\n }\n finish() {\n this.setupFinished.emit({ domain: this.domain, keyword: this.keyword })\n\n }\n openAuth() {\n this.processing = true;\n window.open(\"https://microsoft.com/devicelogin\", \"\", \"top=100,left=100,width=500,height=600\");\n }\n}\n","\n \n \n \n \n To configure your company email server, select 'Automatic Configuration'. Or if you prefer to do it yourself,\n select\n 'Manual Configuration' and follow the instructions on the next page.\n \n\n
\n \n
\n\n \n
\n \n \n \n
\n \n \n \n \n \n Microsoft Email Server Configuration\n \n
\n
\n
= 0)? 'current':''\"> Access
\n
= 1)? 'current':''\"> Outbound\n
\n
= 2)? 'current':''\"> Inbound
\n
= 3)? 'current':''\"> Rules
\n
= 4)? 'current':''\"> Replies
\n
= 5)? 'current':''\"> Enable
\n
\n
\n \n \n\n \n Access the Exchange Admin area\n \n\n
\n You will require administrator access to your Microsoft 365 account or mail server in order to\n configure it to work with StayPrivate:\n
    \n
  • From the Office 365 home page, in the left-hand menu, select 'Admin'.
  • \n
  • In the left-hand menu, select 'Show all'.
  • \n
  • Scroll down and under 'Admin centers' select 'Exchange'.
  • \n
\n We recommend that you use the latest version of the Microsoft Exchange Admin Center. If you are using\n the 'Classic' Exchange Admin Center you can still follow the instructions below, but please be aware that\n there are one or two slight differences in wording and layout.\n
\n \n
\n
\n \n \n
\n
\n
\n \n \n Add an outbound connector to StayPrivate\n \n
\n The first step is to add a secure connector to the StayPrivate relay server:\n
    \n
  • In the left-hand menu, select 'Mail flow'. Then select 'Connectors'.
  • \n
  • Click on '+ Add a connector'.
  • \n
  • Under 'Connection from' select 'Office 365'. Under 'Connection to' select 'Partner organization'. Then\n click 'Next'.
  • \n
  • Enter the name: Send to StayPrivate\n and ensure 'Turn it on' is selected. Then click 'Next'.
  • \n
  • Select 'Only when I have a transport rule set up that redirects messages to this connector'. Then\n click 'Next'.
  • \n
  • Select 'Route email through these smart hosts'. Then enter the domain name: sendsecure.stayprivate.com and click '+'. Then\n Click 'Next'.
  • \n
  • Ensure that 'Always use Transport Layer Security...' and 'Issued by a trusted certificate authority\n (CA)' are selected. Click 'Next'.
  • \n
  • To validate the connector, enter the test email address support@stayprivate.com and click '+'.
  • \n
  • Click 'Validate'. Office 365 will validate the new connector. This may take a minute or so. When it\n has finished, click 'Next'.
  • \n
  • Click 'Create connector'.
  • \n
  • Click 'Done'.
  • \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n Add an inbound connector from StayPrivate\n \n
\n Next add a secure connector to allow StayPrivate to send secure emails back to your corporate email\n server for delvering to the recipient.\n
    \n
  • In the left-hand menu, select 'Mail flow'. Then select 'Connectors'.
  • \n
  • Click on '+ Add a connector'.
  • \n
  • Under 'From:' select ‘Your organization’s email server'. Then click 'Next'.
  • \n
  • Enter the name: Receive from\n StayPrivate
  • \n
  • Ensure that 'Turn it on' is selected and click 'Next'.
  • \n
  • Select 'By verifying that the subject name on the certificate….'. Then enter the text: *.stayprivate.com
  • \n
  • Click 'Next'.
  • \n
  • Click 'Create connector'.
  • \n
  • Click 'Done'.
  • \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n Add the StayPrivate rule for outbound emails.\n \n
\n The next step is to add a rule so that the mail server can identify which emails to send to\n StayPrivate:\n
    \n
  • In 'Mail flow', select 'Rules'.
  • \n
  • Select '+ Add a rule' and 'Create a new rule'.
  • \n
  • Enter the name: Identify messages to send via\n StayPrivate
  • \n\n
  • Under 'Apply this rule if' select 'The recipient'.
  • \n
  • Then, to the right, select 'is external/internal'. Then choose 'Outside the organization' and click 'Save'.
  • \n
  • Under 'Apply this rule if' select 'The subject or body'.
  • \n
  • Then, to the right, select 'subject or body includes any of these words'. Then enter #stayprivate and click 'Add' then click 'Save'.
  • \n \n
  • Under 'Do the following' select 'Redirect the message to'. Then, to the right, select 'the following connector'. Select 'Send to StayPrivate' and click 'Save'.
  • \n
  • Under 'Except if' select 'The sender'. Then, to the right, select 'IP address is in any of these\n ranges or exactly matches'. Enter 18.130.40.2\n in the box.
  • \n
  • Click 'Add'.
  • \n
  • Tick the box next to 18.130.40.2. Click 'Save'.
  • \n
  • Click 'Next'.
  • \n
  • Ensure that 'Enforce' is selected, then click 'Next'.
  • \n
  • Click 'Finish'. It may take a few seconds for the rule to be saved.
  • \n
  • Click 'Done'.
  • \n
\n Next add a rule to ensure that secure emails are not incorrectly identified as spam:\n
    \n
  • In 'Mail flow', select 'Rules'.
  • \n
  • Select '+ Add a rule' and then 'Bypass spam filtering'.
  • \n
  • Enter the name: StayPrivate Allow\n
  • \n
  • Under 'Apply this rule if' select 'The sender'. Then, to the right, select 'IP address is in any of\n these ranges or exactly matches'. Enter 18.130.40.2 in the\n box. Then click 'Add'.
  • \n
  • Tick the box next to 18.130.40.2. Then click 'Save'.
  • \n
  • Click 'Next'.
  • \n
  • Ensure that 'Enforce' is selected, then click 'Next'.
  • \n
  • Click 'Finish'. It may take a few seconds for the rule to be saved.
  • \n
  • Click 'Done'.
  • \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n Add a rule to ensure inbound secure emails are copied to StayPrivate\n \n
\n To ensure that direct replies from secure corporate domains are included in StayPrivate channels,\n incoming secure replies are identified and blind copied to server@stayprivatemail.com. Firstly, set up a\n new contact:\n
    \n
  • In the left-hand menu, select 'Recipients' then select 'Contacts'.
  • \n
  • Select 'Add a mail contact'.
  • \n
  • Under Contact type select 'Mail contact'.
  • \n
  • Under 'Display name' enter: StayPrivateServer
  • \n
  • Under 'Alias' enter: StayPrivateServer
  • \n
  • Under 'External email address' enter: server@stayprivatemail.com
  • \n
  • Click 'Next'.
  • \n
  • Click 'Next' again, then click 'Create'.
  • \n
  • Click 'Done'.
  • \n
\n Now add a rule to ensure that secure emails are copied to server@stayprivatemail.com:\n
    \n
  • In the left-hand menu, select 'Mail flow' and select 'Rules'.
  • \n
  • Select '+ Add a rule' and 'Create a new rule'.
  • \n
  • Enter the name: Send secure\n replies to StayPrivate
  • \n
  • Under 'Apply this rule if' select 'The subject or body'.
  • \n
  • Then select 'subject or body matches these text patterns' and enter #stayprivate-secure-reply.
  • \n
  • Click 'Add'.
  • \n
  • Tick the box next to #stayprivate-secure-reply. Then click 'Save'.
  • \n
  • Under 'Do the following' select 'Add Recipients' then, to the right, select 'to the Bcc box'.
  • \n
  • Find 'StayPrivateServer' in the list and tick the box next to it. Click 'Save'.
  • \n
  • Under 'Except if' select 'The sender' then, to the right, select 'domain is'. Enter\n your email domain (for example, mycompany.com) in the box.
  • \n
  • Under 'Except if' select 'The sender' then, to the right, select 'domain is'. Enter\n {{domain}} in the box.
  • \n
  • Tick the box next to your domain. Then click 'Save'.
  • \n
  • Tick the box next to {{domain}}. Then click 'Save'.
  • \n
  • Click the blue '+' next to the box with the text 'domain is'.
  • \n
  • Under 'And' select 'The sender'. Then, to the right, select 'IP address is in any of these ranges or\n exactly matches'.
  • \n
  • Enter 18.130.40.2 in the box. Then click\n 'Add'.
  • \n
  • Tick the box next to 18.130.40.2. Then click 'Save'.
  • \n
  • Click 'Next'.
  • \n
  • Check that 'Enforce' is selected, then click 'Next'.
  • \n
  • Click 'Finish'. It may take a few seconds for the rule to be saved.
  • \n
  • Click 'Done'.
  • \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n Enable the rules\n \n
\n The final step is simply to ensure that the rules set up above are enabled.\n
    \n
  • In the left-hand menu, select 'Rules'.
  • \n
  • Find the rule 'Identify messages to send via StayPrivate'. Click on the word 'Disabled' next to the\n rule.
  • \n
  • Click on the switch under 'Enable or disable rule' to enable the rule.
  • \n
  • Click on the close button top right. It will take a few seconds for the page to update.
  • \n
  • Find the rule 'StayPrivate Allow'. Click on the word 'Disabled' next to the rule.
  • \n
  • Click on the switch under 'Enable or disable rule' to enable the rule.
  • \n
  • Click on the close button top right. It will take a few seconds for the page to update.
  • \n
  • Find the rule 'Send secure replies to StayPrivate'. Click on the word 'Disabled' next to the rule.\n
  • \n
  • Click on the switch under 'Enable or disable rule' to enable the rule.
  • \n
  • Click on the close button top right. It will take a few seconds for the page to update.
  • \n
\n That is it! StayPrivate will start working right away.\n
\n
\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n
\n
\n\n
\n \n \n To use the Automated Configuration, enter your corporate email domain (such as company.com):\n \n
\n \n \n \n \n
\n \n Please note that the domain needs to be provisioned with StayPrivate for the service to operate. You can check\n this by logging into the StayPrivate dashboard at https://dashboard.stayprivate.com.\n \n
\n \n \n

\n
\n \n \n\n \n For those with experience with PowerShell, our solution can be easily intergrated using PowerShell and the Exchange Online PowerShell Module.

\n You will need to have done the following before continuing:\n
\n
    \n
  • Have PowerShell installed. We recommend PowerShell 7.
  • \n
  • Have installed the ExchangeOnlineManagement module.
  • \n
  • Have administrator access to your Microsoft 365 account.
  • \n
  • Ensure there are no StayPrivate mailflow rules currently in place.
  • \n
\n Further details can be found here:
https://learn.microsoft.com/en-us/powershell/exchange/connect-to-exchange-online-powershell?view=exchange-ps
\n
\n
\n \n \n
\n \n \n
\n
\n\n\n \n \n Copy and Paste the following commands into your PowerShell.\n
\n
    \n
  • {{powershellRules.connect}}
  • \n
  • Copy the code given and enter it at; https://microsoft.com/devicelogin, and follow the steps.
  • \n
  • Wait for your powershell session to be authenticated
  • \n
  • {{powershellRules.outboundConnector}}
  • \n
  • {{powershellRules.inboundConnector}}
  • \n
  • {{powershellRules.identifyRule}}
  • \n
  • {{powershellRules.replyRule}}
  • \n
  • {{powershellRules.allowRule}}
  • \n\n
\n
\n
\n
\n \n \n
\n
\n\n \n \n \n \n StayPrivate requires temporary access to configure your company's Microsoft mail flow settings.

Copy the\n code and\n then click 'Authenticate' to open a Microsoft authentication window. Then follow the instructions to grant access.\n
\n\n \n
\n
\n Authentication Code
\n \n \n \n \n
\n
\n \n \n

\n \n \n \n \n \n \n \n \n \n \n \n
Stage {{step.stage}} Status \n \n done\n close\n
\n
\n \n Or if you would rather update the settings yourself, simply follow the instructions\n here.\n
\n \n
\n\n\n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DeveloperComponent } from '../developer/developer.component';\n\n@Component({\n selector: 'app-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.css']\n})\nexport class ConfirmDialogComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: {heading: string,text: string}\n ) { }\n\n ngOnInit(): void {\n }\n\n}\n","

{{data.heading}}

\n

{{line}}

\n
\n \n \n\n
","
\n\n

Messages

\n \n
{{message}}
\n \n
\n","import { Component, OnInit } from '@angular/core';\n\nimport { MessageService } from '../message.service';\n\n@Component({\n selector: 'app-messages',\n templateUrl: './messages.component.html',\n styleUrls: ['./messages.component.css']\n})\nexport class MessagesComponent implements OnInit {\n\n constructor(public messageService: MessageService) { }\n\n ngOnInit(): void {\n }\n\n}\n","import { formatCurrency } from '@angular/common';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Globals } from 'src/app/globals';\n\n@Component({\n selector: 'app-csv-update-dialog',\n templateUrl: './csv-update-dialog.component.html',\n styleUrls: ['./csv-update-dialog.component.css']\n})\nexport class CsvUpdateDialogComponent implements OnInit {\n\n constructor( \n private http:HttpClient,\n private fb: FormBuilder,\n public dialogRef: MatDialogRef,\n private _snackBar: MatSnackBar,\n private globals:Globals\n ) { }\n\n isLoading=false;\n lastAccessed:string;\n \n ngOnInit(): void {\n this.isLoading=true;\n let param = new HttpParams();\n this.http.get(this.globals.getServicesUrl()+\"billing/getLastAcc\",{params:param}).subscribe({\n next: data => {\n this.isLoading=false;\n this.lastAccessed=data.lastAccessed.lastAccessedString\n },\n error: error => {\n this.isLoading=false;\n this._snackBar.open(error.error.ErrorMsg,\"OK\",{duration:5000} ); \n }\n });\n }\n\n async updateDB(){\n this.isLoading=true;\n let domain = new FormData;\n domain.append('UserName',this.globals.getSystemUserName());\n domain.append('AuthToken',await this.globals.getAuthToken());\n this.http.post(this.globals.getServicesUrl()+\"billing/generateBilling\",domain).subscribe({\n next: data => {\n this.isLoading=false; \n this._snackBar.open(data.data,\"OK\",{duration:5000} ); \n this.dialogRef.close();\n },\n error: error => {\n this.isLoading=false;\n this._snackBar.open(error.error.ErrorMsg,\"OK\",{duration:5000} ); \n }\n });\n }\n}\n","Generate Usage and Invoices
\n\n
\n Usage reports and invoices were last generated on {{lastAccessed}}.

Do you wish to generate again.

\n\n \n \n
\n\n\n\n\n\n ","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Globals } from 'src/app/globals';\nimport { FormArray, FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { Company } from 'src/app/company.model';\nimport { Title } from '@angular/platform-browser';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n@Component({\n selector: 'app-company-setup-page',\n templateUrl: './company-setup-page.component.html',\n styleUrls: ['./company-setup-page.component.css']\n})\nexport class CompanySetupPageComponent implements OnInit {\n\n constructor(\n public globals: Globals,\n private route: ActivatedRoute,\n private http: HttpClient, \n private fb: FormBuilder, \n private titleService: Title\n ) { }\n\n \n companyID = this.globals.getCompanyId();\n company: Company;\n\n addCompanyForm = this.fb.group({\n CompanyIdent: [null, Validators.required],\n CompanyName: [null, Validators.required],\n CompanyType: [null, Validators.required],\n CompanyAddress: [null],\n CompanyTelNo: [null],\n CompanyVatNo: [null],\n InitialTier: [null],\n ContactName: [null],\n ContactEmail: [null],\n StatusInd: [null],\n ContactTelNo: [null],\n DataCountryCode: [null],\n AllowMsgAutoDeleteFlag:[null],\n DomainList: new FormArray([]),\n SetUpUserEmail: [null],\n SeatCount: [null]\n });\n\n async ngOnInit(): Promise {\n this.globals.refreshAuth();\n this.company = { Name: \"\", Id: \"\", CompanyId: \"\", CompanyIdent: \"\", CompanyName: \"\", ParentCompanyId: \"\", IsDealerFlag: \"\",MsgAutoDeleteTag:\"\", SPMCompanyType: \"\",AllowMsgAutoDeleteFlag:\"\",MaxTimeToDeleteInd:\"\",TimeToDeleteAfterReadInd:\"\",DataCountryCode:\"\", StatusInd:\"\" }\n\n let param = new HttpParams();\n param = param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n param = param.append('CompanyId', this.companyID);\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: data => {\n this.company = data\n\n try {\n this.company.InitialTier = this.globals.getTier(this.company.InitialTier).name;\n \n } catch (error) {\n this.company.InitialTier = \"Unknown\"\n \n }\n let deleteTime=this.company.MaxTimeToDeleteInd.split(\":\")\n let deleteRead=this.company.TimeToDeleteAfterReadInd.split(\":\")\n this.titleService.setTitle(\"Company Setup - STAY PRIVATE\");\n this.addCompanyForm = this.fb.group({\n CompanyIdent: [{ value: this.company.CompanyIdent }, Validators.required],\n CompanyName: [{ value: this.company.CompanyName }, Validators.required],\n CompanyType: [{ value: 'Customer'}, Validators.required],\n CompanyAddress: [{ value: this.company.CompanyAddress }],\n CompanyTelNo: [{ value: this.company.CompanyTelNo }],\n CompanyVatNo: [{ value: this.company.CompanyVatNo }],\n InitialTier: [{ value: this.company.InitialTier }],\n DataCountryCode: [{ value: this.company.DataCountryCode }],\n StatusInd:[{ value: this.company.StatusInd }],\n ContactName: [{ value: this.company.ContactName }],\n ContactEmail: [{ value: this.company.ContactEmail }],\n ContactTelNo: [{ value: this.company.ContactTelNo }],\n AllowMsgAutoDeleteFlag: [{ value: this.company.AllowMsgAutoDeleteFlag.includes(\"Y\") }],\n MaxTimeToDeleteInd: [{ value: deleteTime[1] }],\n MaxTimeToDeleteIndFormat: [{ value: deleteTime[0] }],\n TimeToDeleteAfterReadInd: [{ value: deleteRead[1] }],\n TimeToDeleteAfterReadIndFormat: [{ value: deleteRead[0] }],\n DomainList: [{ value: this.company.DomainList }],\n SeatCount:[{value: 0}]\n });\n },\n error: error => { console.error('There was an error!'); }\n });\n }\n\n}\n","\n \n Company Setup
\n
\n \n \n
Account Suspended
Please contact\n support for more information.
\n \n
","import { Injectable } from '@angular/core';\n\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\nimport { Observable, of } from 'rxjs';\n\nimport { Company } from './company';\nimport { COMPANIES } from './mock-companies';\n\nimport { MessageService } from './message.service';\n\nimport { catchError, map, tap } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class CompanyService {\n\n constructor(\n private http: HttpClient,\n private messageService: MessageService\n ) { }\n\n private companiesUrl = 'api/companies'; // URL to web api\n\n getCompanies(): Observable {\n return this.http.get(this.companiesUrl)\n .pipe(\n tap(_ => this.log('fetched companies')),\n catchError(this.handleError('getCompanies', []))\n );\n }\n\n /** GET hero by id. Will 404 if id not found */\n getCompany(id: number): Observable {\n const url = `${this.companiesUrl}/${id}`;\n return this.http.get(url).pipe(\n tap(_ => this.log(`fetched company id=${id}`)),\n catchError(this.handleError(`getCompany id=${id}`))\n );\n }\n\n /**\n * Handle Http operation that failed.\n * Let the app continue.\n * @param operation - name of the operation that failed\n * @param result - optional value to return as the observable result\n */\n private handleError(operation = 'operation', result?: T) {\n return (error: any): Observable => {\n\n // TODO: send the error to remote logging infrastructure\n console.error(error); // log to console instead\n\n // TODO: better job of transforming error for user consumption\n this.log(`${operation} failed: ${error.message}`);\n\n // Let the app keep running by returning an empty result.\n return of(result as T);\n };\n }\n\n private log(message: string) {\n this.messageService.add(`CompanyService: ${message}`);\n }\n\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, NgModule, OnInit } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\nimport { Globals } from 'src/app/globals';\nimport { ConfirmPopupComponent } from '../confirm-popup/confirm-popup.component';\ninterface SelectorType {\n value: string;\n viewValue?: string;\n}\nexport class TierCheck {\n public id: Number;\n public name: string;\n public description: string;\n public checked: boolean;\n}\n\n@Component({\n selector: 'app-company-advanced',\n templateUrl: './company-advanced.component.html',\n styleUrls: ['./company-advanced.component.css']\n})\n\nexport class CompanyAdvancedComponent implements OnInit {\n\n constructor(\n public globals: Globals,\n private fb: FormBuilder,\n private http: HttpClient,\n private route: ActivatedRoute,\n public dialog: MatDialog\n ) { }\n currencyTypes: SelectorType[] = [\n { value: 'GBP' },\n { value: 'EUR' },\n { value: 'USD' },\n { value: 'AUD' },\n ];\n countryCodes: SelectorType[] = [\n { value: 'GB', viewValue: 'United Kingdom' },\n { value: 'DE', viewValue: 'European Union' },\n { value: 'US', viewValue: 'United States' },\n ];\n flagData;\n companyFlagsForm = this.fb.group({\n OnlyEmailLogoIfCustomFlag: [null],\n IdentResellerInEmailFooterFlag: [null],\n CanUseApiFlag: [null],\n ApiSendDomainList: [null],\n DataCountryCode: [null],\n InitialTier: [null],\n SendFromPersEmailIfRecFlag:[null]\n });\n billingData;\n companyBillingForm = this.fb.group({\n billingAddress: [null, [Validators.pattern(\"^[a-z0-9._%+-]{2,}@[a-z0-9.-]+\\\\.[a-z]{2,4}$\")]],\n billingCurrency: [null],\n discount: [null],\n firstProvisionDate: [null],\n canAutoDeleteFlag: [null],\n isWebSignup: [null],\n showStripeFlag:[null],\n tierFlags: this.fb.array([])\n\n });\n selectedTierArray: TierCheck[];\n activeTierList:SelectorType[];\n companyId = this.route.snapshot.params['id'];\n loading1 = true;\n loading2 = true;\n formTiers=null;\n async ngOnInit(): Promise {\n for(let tier of this.globals.getTiers()){\n if (!this.activeTierList){this.activeTierList=[{value:''+tier.id,viewValue:tier.name}]}\n else{this.activeTierList.push({value:''+tier.id,viewValue:tier.name})} \n }\n\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n param = param.append('CompanyId', this.companyId);\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: data => {\n this.flagData = data;\n this.companyFlagsForm.setValue({\n OnlyEmailLogoIfCustomFlag: data.OnlyEmailLogoIfCustomFlag.includes(\"Y\"),\n IdentResellerInEmailFooterFlag: data.IdentResellerInEmailFooterFlag.includes(\"Y\"),\n CanUseApiFlag: data.CanUseApiFlag.includes(\"Y\"),\n ApiSendDomainList: data.ApiSendDomainList,\n DataCountryCode: data.DataCountryCode,\n InitialTier: data.InitialTier,\n SendFromPersEmailIfRecFlag: data.SendFromPersEmailIfRecFlag.includes(\"Y\")\n\n })\n this.loading1 = false;\n },\n error: error => { console.error('There was an error!'); this.loading1 = false; }\n });;\n \n param = param.append('companyId', this.companyId);\n param = param.delete('CompanyId')\n this.http.get(this.globals.getServicesUrl() + 'company/getCompanyDetails', { params: param }).subscribe({\n next: data => {\n if (!data[0].autoDeleteFlag) { data[0].autoDeleteFlag = \"N\" }\n if (!data[0].showStripeFlag) { data[0].showStripeFlag = \"N\" }\n if (!data[0].webSignup) { data[0].webSignup = \"N\" }\n this.billingData = data\n this.companyBillingForm.setValue({\n discount: data[0].discount,\n billingCurrency: data[0].billingCurrency,\n billingAddress: data[0].billingAddress,\n firstProvisionDate: new Date(data[0].firstProvisionDate * 1000),\n canAutoDeleteFlag: data[0].autoDeleteFlag.includes(\"Y\"),\n isWebSignup: data[0].webSignup.includes(\"Y\"),\n showStripeFlag:data[0].showStripeFlag.includes(\"Y\"),\n tierFlags: []\n })\n\n if(!data[0].firstProvisionDate){\n this.companyBillingForm.get('firstProvisionDate').setValue(null)\n }\n \n this.formTiers=data[0].tiers;\n for (let tier of this.globals.getTiers()) {\n var foundTier = null\n if( data[0].tiers){\n foundTier = data[0].tiers.find((element) => element == tier.id);\n\n }\n if((!tier.name.includes(\"+ Branding\"))){\n if (this.selectedTierArray == null) {\n if(foundTier!=null){\n (this.companyBillingForm.get('tierFlags')).push(this.fb.control(true));\n }else{\n (this.companyBillingForm.get('tierFlags')).push(this.fb.control(false));\n }\n this.selectedTierArray = [{ id: tier.id, name: tier.name,description:tier.description, checked: false }]\n } else {\n if(foundTier!=null){\n (this.companyBillingForm.get('tierFlags')).push(this.fb.control(true));\n }else{\n (this.companyBillingForm.get('tierFlags')).push(this.fb.control(false));\n }\n this.selectedTierArray.push({ id: tier.id, name: tier.name,description:tier.description, checked: false });\n }\n }\n }\n this.loading2 = false;\n },\n error: error => { console.error('There was an error!'); this.loading2 = false; }\n });\n\n }\n\n getControls() {\n return (this.companyBillingForm.get('tierFlags')).controls;\n }\n\n resetForms() {\n this.companyFlagsForm.reset();\n this.companyFlagsForm.setValue({\n OnlyEmailLogoIfCustomFlag: this.flagData.OnlyEmailLogoIfCustomFlag.includes(\"Y\"),\n IdentResellerInEmailFooterFlag: this.flagData.IdentResellerInEmailFooterFlag.includes(\"Y\"),\n CanUseApiFlag: this.flagData.CanUseApiFlag.includes(\"Y\"),\n ApiSendDomainList: this.flagData.ApiSendDomainList,\n DataCountryCode: this.flagData.DataCountryCode,\n InitialTier: this.flagData.InitialTier,\n SendFromPersEmailIfRecFlag: this.flagData.SendFromPersEmailIfRecFlag.includes(\"Y\")\n\n })\n this.loading1=true\n this.companyBillingForm.reset();\n var resetTeirs = new FormArray([])\n for (let tier of this.globals.getTiers()) {\n var foundTier = this.formTiers.find((element) => element == tier.id);\n if((!tier.name.includes(\"+ Branding\"))){\n if (resetTeirs == null) {\n if(foundTier!=null){\n resetTeirs.push(this.fb.control(true));\n }else{\n resetTeirs.push(this.fb.control(false));\n }\n } else {\n if(foundTier!=null){\n resetTeirs.push(this.fb.control(true));\n }else{\n resetTeirs.push(this.fb.control(false));\n }\n }\n }\n }\n this.companyBillingForm.setValue({\n discount: this.billingData[0].discount,\n billingCurrency: this.billingData[0].billingCurrency,\n billingAddress: this.billingData[0].billingAddress,\n firstProvisionDate: new Date(this.billingData[0].firstProvisionDate * 1000),\n canAutoDeleteFlag: this.billingData[0].autoDeleteFlag.includes(\"Y\"),\n isWebSignup: this.billingData[0].webSignup.includes(\"Y\"),\n showStripeFlag:this.billingData[0].showStripeFlag.includes(\"Y\"),\n tierFlags:resetTeirs.value\n })\n this.loading1=false\n\n }\n\n async update() {\n let i = 0;\n if (this.companyFlagsForm.dirty) {\n let form = new FormData;\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('CompanyId', this.companyId);\n if (this.companyFlagsForm.value.OnlyEmailLogoIfCustomFlag == true) { form.append('OnlyEmailLogoIfCustomFlag', \"Y\"); } else { form.append('OnlyEmailLogoIfCustomFlag', \"N\"); }\n if (this.companyFlagsForm.value.IdentResellerInEmailFooterFlag == true) { form.append('IdentResellerInEmailFooterFlag', \"Y\"); } else { form.append('IdentResellerInEmailFooterFlag', \"N\"); }\n if (this.companyFlagsForm.value.CanUseApiFlag == true) { form.append('CanUseApiFlag', \"Y\"); } else { form.append('CanUseApiFlag', \"N\"); }\n if (this.companyFlagsForm.value.SendFromPersEmailIfRecFlag == true) { form.append('SendFromPersEmailIfRecFlag', \"Y\"); } else { form.append('SendFromPersEmailIfRecFlag', \"N\"); }\n form.append('DataCountryCode', this.companyFlagsForm.value.DataCountryCode);\n form.append('InitialTier', this.companyFlagsForm.value.InitialTier);\n this.http.post(this.globals.getApiUrl() + 'api/editSPMailCompany.php', form).subscribe({\n next: data => {\n i++;\n if (i == 2) {\n location.reload();\n }\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n } else {\n i++; if (i == 2) {\n location.reload();\n }\n }\n if (this.companyBillingForm.dirty) {\n if (this.companyBillingForm.valid) {\n let form = new FormData;\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('companyId', this.companyId);\n for (let i = 0; i < this.companyBillingForm.value.tierFlags.length; i++) {\n if (this.companyBillingForm.value.tierFlags[i] == true) {\n form.append('tiers', this.selectedTierArray[i].id.toString());\n }\n }\n \n if (this.companyBillingForm.value.canAutoDeleteFlag == true) { form.append('autoDeleteFlag', \"Y\"); } else { form.append('autoDeleteFlag', \"N\"); }\n if (this.companyBillingForm.value.isWebSignup == true) { form.append('webSignup', \"Y\"); } else { form.append('webSignup', \"N\"); }\n if (this.companyBillingForm.value.showStripeFlag == true) { form.append('showStripeFlag', \"Y\"); } else { form.append('showStripeFlag', \"N\"); }\n if (this.companyBillingForm.value.billingAddress != null) { form.append('billingAddress', this.companyBillingForm.value.billingAddress); }\n if (this.companyBillingForm.value.billingCurrency != null) { form.append('billingCurrency', this.companyBillingForm.value.billingCurrency); }\n if (this.companyBillingForm.value.discount != null) { form.append('discount', this.companyBillingForm.value.discount); }\n if (this.companyBillingForm.value.firstProvisionDate != null) { form.append('firstProvisionDate', Math.round(this.companyBillingForm.value.firstProvisionDate.getTime() / 1000) + 14400 + \"\"); }\n\n this.http.post(this.globals.getServicesUrl() + 'company/updateCompanyDetails', form).subscribe({\n next: data => {\n i++;\n if (i == 2) {\n location.reload();\n }\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n }\n } else {\n i++; if (i == 2) {\n location.reload();\n }\n }\n }\n async suspend() {\n // \n const dialogRef = this.dialog.open(ConfirmPopupComponent, {\n autoFocus: false,\n data: {\n text: [\n 'You are about to suspend the StayPrivate service for ' + this.flagData.CompanyName + '.',\n 'This will remove their ability to send secure emails via StayPrivate.'\n ]\n },\n });\n\n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n //WHAT TO DO\n let form = new FormData;\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('CompanyId', this.companyId);\n\n this.http.post(this.globals.getApiUrl() + 'api/deactivateSPMailCompany.php', form).subscribe({\n next: data => {\n location.reload();\n\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n //WHAT TO DO\n }\n });\n // \n\n }\n async unsuspend() {\n // \n const dialogRef = this.dialog.open(ConfirmPopupComponent, {\n autoFocus: false,\n data: {\n text: [\n 'You are about to unsuspend the StayPrivate service for ' + this.flagData.CompanyName + '.',\n 'Once unsuspended ' + this.flagData.CompanyName + ' can resume sending secure emails via StayPrivate.'\n ]\n },\n });\n\n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n //WHAT TO DO\n let form = new FormData;\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('CompanyId', this.companyId);\n\n this.http.post(this.globals.getApiUrl() + 'api/activateSPMailCompany.php', form).subscribe({\n next: data => {\n location.reload();\n\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n //WHAT TO DO\n }\n });\n // \n\n }\n async delete() {\n // \n const dialogRef = this.dialog.open(ConfirmPopupComponent, {\n autoFocus: false,\n data: {\n text: [\n 'You are about to delete ' + this.flagData.CompanyName + \"'s StayPrivate system.\",\n 'This will cancel their StayPrivate service.'\n ]\n },\n });\n\n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n //WHAT TO DO\n let form = new FormData;\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('CompanyId', this.companyId);\n\n this.http.post(this.globals.getApiUrl() + 'api/deleteSPMailCompany.php', form).subscribe({\n next: data => {\n location.reload();\n\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n //WHAT TO DO\n }\n });\n // \n\n }\n async restore() {\n // \n const dialogRef = this.dialog.open(ConfirmPopupComponent, {\n autoFocus: false,\n data: {\n text: [\n 'You are about to restore ' + this.flagData.CompanyName + \"'s StayPrivate system.\",\n 'This will reactivate their StayPrivate service.'\n ]\n },\n });\n\n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n //WHAT TO DO\n let form = new FormData;\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('CompanyId', this.companyId);\n\n this.http.post(this.globals.getApiUrl() + 'api/undoSPMailCompanyDeletion.php', form).subscribe({\n next: data => {\n location.reload();\n\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n //WHAT TO DO\n }\n });\n // \n\n }\n}\n","
\n Email Settings\n \n \n
\n Email Logo Flag\n
\n \n
\n Email Footer Flag\n
\n
\n Send From Personal Email\n
\n \n
\n Auto Delete Flag\n
\n
\n
\n
\n Is Web Signup\n
\n
\n\n Company Settings\n \n
\n
\n
\n \n {{selectedTierArray[i].name}} \n \n \n \n
\n {{selectedTierArray[i].description}}\n
\n
\n \n
\n
\n\n
\n
\n\n Active Tier
\n \n \n \n {{tier.viewValue}}\n \n \n \n
\n
\n\n Data location
\n \n \n \n {{code.viewValue}}\n \n \n \n
\n API Settings\n \n
\n API Access\n
\n \n
\n \n \n \n \n
\n There are no domains registered to send via the API\n
\n
\n Domains allowed to send via the API:

\n \n {{i+1}}) {{ domain\n }}\n
\n
\n \n\n
\n\n
\n Billing Settings\n \n \n \n
\n Billing Address\n \n \n \n Please provide a valid email address\n \n \n
\n \n
\n Discount (%)\n \n \n \n
\n \n
\n Billing Currency
\n \n \n \n {{currencyType.value}}\n \n \n \n
\n
\n Provision Date\n \n \n \n \n \n
\n
\n Show Stripe Billing\n
\n \n\n
\n\n
\n \n
\n \n\n \n\n \n\n \n
\n
\n
\n \n
\n\n \n \n
\n
\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, Input, OnInit, ViewChild, DoCheck, Output, EventEmitter } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Globals } from 'src/app/globals';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { io } from 'socket.io-client';\nimport { MatStepper } from '@angular/material/stepper';\nimport { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\nimport { SetupCompleteComponent } from '../setup-complete/setup-complete.component';\nimport { domain } from 'process';\nimport { SetupDkimComponent } from '../setup-dkim/setup-dkim.component';\nimport { ProvisionCompleteComponent } from '../provision-complete/provision-complete.component';\n\nexport interface PowershellFlow {\n stage: string;\n status: string;\n}\nconst POWERSHELL_FLOW: PowershellFlow[] = [\n { stage: 'Authenticating', status: \"P\" },\n { stage: 'Verifying domain', status: \"W\" },\n { stage: 'Adding connectors', status: \"W\" },\n { stage: 'Adding mail-flow rules', status: \"W\" },\n { stage: 'Finishing up', status: \"W\" },\n];\n@Component({\n selector: 'app-company-setup-process',\n templateUrl: './company-setup-process.component.html',\n styleUrls: ['./company-setup-process.component.css'],\n providers: [{\n provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false }\n }]\n})\nexport class CompanySetupProcessComponent implements OnInit, DoCheck {\n\n constructor(\n private fb: FormBuilder,\n private globals: Globals,\n private http: HttpClient,\n private router: Router,\n public route: ActivatedRoute,\n private clipboard: Clipboard,\n public dialog: MatDialog,\n private _snackBar: MatSnackBar\n ) { }\n @Output() setupFinished = new EventEmitter();\n @ViewChild('setupStepper') public myStepper: MatStepper;\n @Input() public tier: string;\n @Input() public createdId: string;\n @Input() public companyName: string;\n @Input() public companyState: string;\n @Input() public companyDomain: string;\n //PROVIDERS\n //microsoft: Roundtrip through Microsoft.\n //google: Roundtrip through Google.\n //othermx: Roundtrip through any other provider.\n //otherspf: Alternative to roundtrip. We send the email on their behalf.\n\n blankForm(form): any {\n return form = this.fb.group({\n Security: null,\n Provider: null,\n Keyword: null,\n Domain: [null, [Validators.required, Validators.pattern('^(?!.* .*)(?:[a-z0-9][a-z0-9-]{0,61}[a-z0-9]\\\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$')]],\n Connector: null\n });\n }\n setupInfo = this.fb.group({\n Security: null,\n Provider: null,\n Keyword: null,\n Domain: [null, [Validators.required, Validators.pattern('^(?!.* .*)(?:[a-z0-9][a-z0-9-]{0,61}[a-z0-9]\\\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$')]],\n Connector: null\n });\n currentInfo = this.fb.group({\n Security: null,\n Provider: null,\n Keyword: null,\n Domain: [null, [Validators.required, Validators.pattern('^(?!.* .*)(?:[a-z0-9][a-z0-9-]{0,61}[a-z0-9]\\\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$')]],\n Connector: null\n });\n\n loading = true;\n processing = false;\n isSignUp = false;\n landing = false;\n checked = null;\n showSecurityLevel = true;\n\n displayedColumns: string[] = ['stage', 'status'];\n dataSource = POWERSHELL_FLOW;\n msAuthToken: \"\";\n msSetupLink: string;\n\n\n ngDoCheck() {\n if (this.checked == false) {\n if (this.landing == false && this.myStepper) {\n \n this.myStepper.selectedIndex = 1\n if(this.isSignUp){\n this.setSecurity('RX')\n }\n this.checked = true\n }\n }\n }\n async ngOnInit(): Promise {\n console.log(this.tier)\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n if (this.route.snapshot.params['id']) {\n this.createdId = this.route.snapshot.params['id']\n param = param.append('CompanyId', this.createdId);\n param = param.append('companyId', this.createdId);\n } else { param = param.append('companyId', this.globals.getCompanyId()); }\n\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: companyData => {\n this.http.get(this.globals.getServicesUrl() + 'company/getCompanyDetails', { params: param }).subscribe({\n next: providerData => {\n let providerName: string;\n let securityLevel: string;\n let securityLevelInd: string;\n if (providerData[0].setupMethod == 'microsoft' || providerData[0].setupMethod == 'mx') { providerName = 'Microsoft 365';} else\n if (providerData[0].setupMethod == 'google') { providerName = 'Google Workspace'; } else\n if (providerData[0].setupMethod == 'othermx') { providerName = 'Other Standard' } else\n if (providerData[0].setupMethod == 'otherspf' || providerData[0].setupMethod == 'spf') { providerName = 'Other Direct' }\n if (companyData.EmailProcessRulesDomainList[0]) {\n securityLevelInd= companyData.EmailProcessRulesDomainList[0].RulesInd;\n if (securityLevelInd == 'RX') { securityLevel = 'Keyword Only' } else\n if (securityLevelInd == 'ST') { securityLevel = 'Enforced' } else\n if (securityLevelInd == 'SM') { securityLevel = 'Content Based' }\n }\n this.currentInfo.patchValue({\n Security: securityLevel,\n Provider: providerName,\n Keyword: companyData.CompanyKeyword,\n Domain: companyData.DomainList[0],\n })\n this.setupInfo.patchValue({\n Security: securityLevelInd,\n Provider: providerName,\n Keyword: companyData.CompanyKeyword,\n Domain: companyData.DomainList[0],\n })\n this.isSignUp = providerData[0].webSignup=='Y'\n \n this.landing = !!companyData.DomainList[0];\n this.checked = false;\n this.loading = false;\n },\n error: error => {\n console.error('There was an error!');\n this.landing = false;\n this.loading = false;\n this.checked = false;\n }\n });\n },\n error: error => {\n console.error('There was an error!');\n this.landing = false;\n this.loading = false;\n this.checked = false;\n }\n });\n\n }\n setSecurity(level: string) {\n this.setupInfo.patchValue({ Security: level })\n this.myStepper.next();\n }\n setProvider(provider: string) {\n this.setupInfo.patchValue({ Provider: provider })\n this.myStepper.selectedIndex = 5\n }\n goToInstructions(method: string) {\n this.myStepper.selectedIndex = 6\n }\n back() {\n let provider = this.setupInfo.controls.Provider.value\n if (provider=='otherspf'){this.myStepper.selectedIndex = 4}\n else if (provider=='othermx'){this.myStepper.selectedIndex = 3}\n else {this.myStepper.selectedIndex = 2}\n }\n verifyProvision() {\n if (this.companyState == \"A\") {\n let domain = new FormData;\n domain.append('domain', this.setupInfo.controls.Domain.value);\n if (this.setupInfo.controls.Provider.value == 'microsoft') {\n this.http.post(this.globals.getServicesUrl() + \"dns/mxCheck\", domain).subscribe({\n next: data => {\n if (data.type == 'microsoft365') {\n this.setupInfo.patchValue({ Connector: this.setupInfo.controls.Domain.value + ':M365C:' + data.mxRecord.exchange })\n this.provision()\n } else if (data.type == 'google') {\n this._snackBar.open(\"Sorry this looks like a Google domain! Please hit 'Back' and select Google as the email provider.\", \"OK\", { duration: 5000 });\n } else if (data.type == 'other') {\n this._snackBar.open(\"Sorry this does not look like a Microsoft domain! Please hit 'Back' and select Other as the email provider.\", \"OK\", { duration: 5000 });\n }\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n } else if (this.setupInfo.controls.Provider.value == 'spf') {\n this.http.post(this.globals.getServicesUrl() + \"dns/spfCheck\", domain).subscribe({\n next: data => {\n this.http.post(this.globals.getServicesUrl() + \"dns/dkimCheck\", domain).subscribe({\n next: data => {\n this.setupInfo.patchValue({ Connector: this.setupInfo.controls.Domain.value + ':' })\n this.provision()\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n } else if (this.setupInfo.controls.Provider.value == 'google') {\n this.http.post(this.globals.getServicesUrl() + \"dns/mxCheck\", domain).subscribe({\n next: data => {\n if (data.type == 'microsoft365') {\n this._snackBar.open(\"Sorry this looks like a Microsoft domain! Please hit 'Back' and select Microsoft as the email provider.\", \"OK\", { duration: 5000 });\n } else if (data.type == 'google') {\n this.setupInfo.patchValue({ Connector: this.setupInfo.controls.Domain.value + ':GWSR' })\n this.provision()\n } else if (data.type == 'other') {\n this._snackBar.open(\"Sorry this does not look like a Google domain! Please hit 'Back' and select Other as the email provider.\", \"OK\", { duration: 5000 });\n }\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n } if (this.setupInfo.controls.Provider.value == 'othermx') {\n this.http.post(this.globals.getServicesUrl() + \"dns/mxCheck\", domain).subscribe({\n next: data => {\n if (data.type == 'microsoft365') {\n this._snackBar.open(\"Sorry this looks like a Microsoft domain! Please hit 'Back' and select Microsoft as the email provider.\", \"OK\", { duration: 5000 });\n } else if (data.type == 'google') {\n this._snackBar.open(\"Sorry this looks like a Google domain! Please hit 'Back' and select Google as the email provider.\", \"OK\", { duration: 5000 });\n } else if (data.type == 'other') {\n this.setupInfo.patchValue({ Connector: this.setupInfo.controls.Domain.value + ':M365C:' + data.mxRecord.exchange })\n this.provision()\n }\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n }\n }\n\n }\n async provision() {\n\n let domain = new FormData;\n domain.append('AuthToken', await this.globals.getAuthToken());\n domain.append('UserName', this.globals.getSystemUserName());\n domain.append('CompanyId', this.createdId);\n domain.append('DomainList', this.setupInfo.controls.Domain.value);\n domain.append('ApiSendDomainList', this.setupInfo.controls.Domain.value);\n if(!this.setupInfo.controls.Keyword.value){this.setupInfo.patchValue({Keyword:'#stayprivate'})}\n domain.append('CompanyKeyword', this.setupInfo.controls.Keyword.value);\n domain.append('IgnoreKeyword', '#ignore');\n domain.append('EmailProcessRulesDomainList', this.setupInfo.controls.Domain.value + ':' + this.setupInfo.controls.Security.value);\n if (this.setupInfo.controls.Connector.value != null) {\n domain.append('CustomMailServerDomainList', this.setupInfo.controls.Connector.value);\n } else { domain.append('CustomMailServerDomainList', \"\") }\n this.http.post(this.globals.getApiUrl() + 'api/editSPMailCompany.php', domain).subscribe({\n next: data => {\n let form = new FormData;\n form.append('companyId', this.createdId);\n form.append('setupMethod', this.setupInfo.controls.Provider.value);\n form.append('keyword', this.setupInfo.controls.Keyword.value);\n form.append('domain', this.setupInfo.controls.Domain.value);\n this.http.post(this.globals.getServicesUrl() + 'company/updateCompanySetup', form).subscribe({\n next: data => {\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n const dialogRef = this.dialog.open(ProvisionCompleteComponent, {\n width: '400px',\n autoFocus: false\n });\n this.myStepper.next();\n let prov\n if (this.setupInfo.controls.Provider.value == 'microsoft' || this.setupInfo.controls.Provider.value == 'mx') { prov = 'Microsoft 365' } else\n if (this.setupInfo.controls.Provider.value == 'google') { prov = 'Google Workspace' } else\n if (this.setupInfo.controls.Provider.value == 'othermx') { prov = 'Other Standard' } else\n if (this.setupInfo.controls.Provider.value == 'otherspf' || this.setupInfo.controls.Provider.value == 'spf') { prov = 'Other Direct' }\n let secu\n if (this.setupInfo.controls.Security.value == 'RX') { secu = 'Keyword Only' } else\n if (this.setupInfo.controls.Security.value == 'ST') { secu = 'Enforced' } else\n if (this.setupInfo.controls.Security.value == 'SM') { secu = 'Content Based' }\n\n this.currentInfo.patchValue({\n Security: secu,\n Provider: prov,\n Keyword: this.setupInfo.controls.Keyword.value,\n Domain: this.setupInfo.controls.Domain.value,\n })\n\n\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n\n }\n });\n\n }\n\n loadDNS() {\n const dialogRef = this.dialog.open(SetupDkimComponent, {\n width: '650px',\n autoFocus: false\n });\n }\n finish(event) {\n if (event != null) {\n const dialogRef = this.dialog.open(SetupCompleteComponent, {\n width: '400px',\n data: {\n keyword: event.keyword,\n domain: event.domain\n },\n autoFocus: false\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result == true) {\n this.setupFinished.emit()\n }\n if (result == false) {\n }\n });\n } else {\n this.setupFinished.emit()\n }\n\n }\n copy(copyVariable) {\n this.clipboard.copy(copyVariable);\n this._snackBar.open(\"Copied!\", \"OK\", { duration: 3000 });\n }\n generateLink(form: FormGroup) {\n let img: string;\n this.myStepper.selectedIndex = 5\n if (localStorage.getItem(\"img-url\") != null) {\n img = (this.globals.getImgUrl() + localStorage.getItem(\"img-url\") + \"logo-small.png?t=\" + new Date().getTime())\n } else { img = \"https://stayprivate.com/SP_Logo_Icon+Text_Blue.svg\" }\n this.http.get(this.globals.getServicesUrl() + 'company/createLink', { params: { companyId: this.createdId, keyword: form.value.Keyword, domain: form.value.Domain, imageUrl: img } }).subscribe({\n next: data => {\n this.msSetupLink = \"https://dashboard.stayprivate.com/setup/\" + data.url\n },\n error: error => {\n console.error(error)\n }\n });\n }\n}\n","\n\n\n \n Current settings:\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Email server:{{currentInfo.controls['Provider'].value}}
Domain:{{currentInfo.controls['Domain'].value}}
Keyword:{{currentInfo.controls['Keyword'].value}}
Configuration:{{currentInfo.controls['Security'].value}}
\n \n \n \n \n \n
To configure your company email server, click here:
\n \n \n \n \n \n
To re-run the full setup process, click here:
\n \n \n \n \n \n
To re-run the full setup process, click here:
\n
\n
\n\n \n \n \n \n Select your security level:\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n Select your corporate email provider:\n \n
\n \n \n \n \n \n
\n \n \n
\n \n \n \n \n There are two ways of configuring StayPrivate to work with a corporate email server. The preferred approach is the\n 'Standard' configuration in which StayPrivate processes secure emails then returns them back to your corporate\n email server for forwarding to recipients.\n \n \n The 'Direct' configuration is designed for situations where your corporate email server is not able to accept\n return\n emails from StayPrivate. In this case, StayPrivate can be configured to send emails directly on behalf of your\n company. To enable this,\n your company DNS records first need to be updated to add StayPrivate as a permitted sender.\n \n \n Choose how you would like to configure StayPrivate:\n \n
\n \n \n \n
\n \n \n
\n \n\n\n \n \n \n \n Firstly, please follow the steps below to update your corporate DNS records to permit StayPrivate to send emails from your corporate domain.\n \n \n
\n
    \n
  1. Log into the DNS administration console.
  2. \n
  3. Find the current SPF record – this is a TXT record and normally starts with\n 'v=spf1' – and add the text: include:stayprivatemail.com before\n the trailing '-all'.
    OR, if you do not have an SPF record, add a new TXT record with the following:\n v=spf1 a mx\n include:stayprivatemail.com -all.\n
  4. \n
  5. Add a new CNAME record called stayprivate._domainkey with the\n value: stayprivate._domainkey.stayprivatemail.com.\n
  6. \n
\n
\n \n \n
\n
\n \n \n \n
\n\n\n \n \n \n \n \n Enter your corporate email domain (e.g. example.com) and choose a keyword to identify emails to send securely.\n Then\n click 'Provision' to provision your company on the StayPrivate platform.\n \n
\n
\n Domain
\n \n \n \n A domain is required.\n \n \n The domain must be valid. @ symbol is not required.\n \n \n
\n
\n Keyword (optional)\n \n \n \n \n A keyword is required\n \n \n
\n\n
\n \n \n \n
\n
\n \n \n
\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
\n\n\n\n
You can change the keyword or add further keywords later – or even build more complex\n rules based on sender, recipient, content etc.
\n
","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Globals } from 'src/app/globals';\nimport { MatStepper } from '@angular/material/stepper';\n\n@Component({\n selector: 'app-setup-google',\n templateUrl: './setup-google.component.html',\n styleUrls: ['./setup-google.component.css']\n})\nexport class SetupGoogleComponent implements OnInit {\n\n constructor(\n private globals: Globals,\n private http: HttpClient,\n private router: Router,\n public route: ActivatedRoute,\n private clipboard: Clipboard,\n public dialog: MatDialog,\n private _snackBar: MatSnackBar\n ) { }\n @Output() setupFinished = new EventEmitter();\n @ViewChild('googleStepper') public googleStepper: MatStepper;\n\n @Input() public eventEmit: any;\n @Input() public originStepper: MatStepper;\n @Input() public companyId: string;\n @Input() public isSignUp: boolean;\n @Input() public keyword: string;\n @Input() public domain: string;\n @Input() public companyName: string;\n link: string;\n\n ngOnInit(): void {\n this.route.queryParams.subscribe(params => {\n if (params['1']) {\n this.link = params['1']\n } else if (this.companyId) {\n let param = new HttpParams()\n param = param.append('companyId',this.companyId)\n this.http.get(this.globals.getServicesUrl() + 'company/createLink',{params:param}).subscribe({\n next: data => {\n this.link = data.id\n this.keyword=data.keyword\n this.domain=data.domain\n this.companyName=data.name\n\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n }\n });\n }\n finish(){\n this.setupFinished.emit({domain:this.domain,keyword:this.keyword})\n\n }\n copy(copyVariable) {\n this.clipboard.copy(copyVariable);\n this._snackBar.open(\"Copied!\", \"OK\", { duration: 3000 });\n }\n}\n","\n Google Configuration Process\n\n
\n
\n
= 0)? 'current':''\"> Access
\n
= 1)? 'current':''\"> Hosts
\n
= 2)? 'current':''\"> Rules 1
\n
= 3)? 'current':''\"> Rules 2
\n
= 4)? 'current':''\"> Inbound
\n
= 5)? 'current':''\"> Replies
\n
\n
\n\n \n \n Access the Google Admin area\n \n
\n You will require administrator access to your Google mail server in order to configure it to work with StayPrivate:\n
    \n
  • Log into the Google Admin console at: https://admin.google.com
  • \n
  • Select '\n Apps'.
  • \n
  • Select 'Google Workspace' and from the list, click on ' Gmail'.
  • \n
\n \n
\n
\n
\n \n\n \n
\n
\n
\n \n \n Add the StayPrivate secure server as a host\n \n
\n To send secure emails, StayPrivate needs to be first added as a host:\n
    \n
  • Click on 'Hosts'.
  • \n
  • Click on 'ADD ROUTE' to add a new mail route.
  • \n
  • Enter the name: StayPrivate
  • \n
  • In the 'Enter host name or IP' field enter sendsecure.stayprivate.com and in the numeric field next to it, enter the port number: 587
  • \n
  • Click 'Save'.
  • \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n Add the StayPrivate rule for outbound emails\n \n
\n The next step is to add two rules so that the email server can identify which emails to send via the StayPrivate host:\n
    \n
  • Go back to the Gmail settings page by clicking on 'Settings for Gmail' near the top.
  • \n
  • Scroll down to near the bottom and click on 'Compliance'. Then scroll down to 'Content compliance' and click 'CONFIGURE' (or if you already have a rule specified, click 'ADD ANOTHER RULE').
  • \n
  • Scroll down to 'Content compliance' and click 'CONFIGURE' (or if you already have a rule specified, click 'ADD ANOTHER RULE').
  • \n
  • Under 'Content compliance' enter the text: Identify messages to send via StayPrivate'
  • \n
  • Under '1. Email messages to affect' select 'Outbound'.
  • \n
  • Under '2. Add expressions that describe...' select 'If ALL of the following match the message'. Then click on 'ADD'.
  • \n
  • Click on 'Simple content match' and select 'Advanced content match'. Then under 'Location' select 'Body'.
  • \n
  • Under 'Content' enter the keyword #stayprivate.
  • \n
  • Click 'SAVE'.
  • \n
  • Then under '2. Add expressions that...' select 'ADD' again.
  • \n
  • Click on 'Simple content match' and select 'Advanced content match'. Then under 'Location' select 'Full Headers'.
  • \n
  • Under 'Match type' select 'Not contains text'.
  • \n
  • Under 'Content' enter the text: x-stayprivate-processed: true.
  • \n
  • Click 'SAVE'.
  • \n
  • In '3. If the above expressions match, do the following' under 'Route' select 'Change route'.
  • \n
  • Click on 'Normal routing' and select 'StayPrivate'.
  • \n
  • Then under 'Spam' select 'Bypass the spam filter for this message'.
  • \n
  • Click on 'SAVE' bottom right.
  • \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n Add a rule to accept incoming secure emails from StayPrivate\n \n
\n After processing, StayPrivate sends secure emails back to your corporate email server for delivering onto the recipient. The email server needs to be configured to accept and relay secure emails sent by StayPrivate:\n
    \n
  • Go back to the Gmail settings page by clicking on 'Settings for Gmail' near the top.
  • \n
  • Scroll down to the bottom and click on 'Routing'. Under 'Routing' scroll down and under 'SMTP relay service' click 'CONFIGURE' (or if you already have a rule specified, click 'ADD ANOTHER RULE').
  • \n
  • Under 'SMTP relay service' enter the text Receive from StayPrivate.
  • \n
  • Under '2. Authentication' select 'Only accept mail from the specified IP addresses'. Then click 'ADD'.
  • \n
  • Under 'Description' enter the text StayPrivate and under 'Enter IP address/range' enter the text: 18.130.40.2
  • \n
  • Click 'SAVE'.
  • \n
  • Under '3. Encryption' select 'Require TLS encryption',
  • \n
  • Click on 'SAVE' bottom right.
  • \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n Add a rule to ensure secure replies are handled by StayPrivate\n \n
\n To ensure that direct replies from secure corporate domains are included in StayPrivate, incoming secure replies are identified and blind copied to server@stayprivatemail.com. This is achieved by adding a further compliance rule:\n
    \n
  • Go to the Gmail settings page by clicking on 'Settings for Gmail' near the top.
  • \n
  • Scroll down to near the bottom and select 'Compliance'. Under 'Content compliance' click 'ADD ANOTHER RULE'.
  • \n
  • Under 'Content compliance' enter: Send secure replies to StayPrivate
  • \n
  • Under '1. Email messages to affect' select 'Inbound'.
  • \n
  • Under '2. Add expressions that...' select 'ADD'.
  • \n
  • Click on 'Simple content match' and select 'Advanced content match'. Then under 'Location' select 'Body'..
  • \n
  • Under 'Content' enter #stayprivate-secure-reply then click 'SAVE'.
  • \n
  • In '3. If the above expressions match, do the following' under 'Route' select 'Modify message'.
  • \n
  • Under 'Also deliver to' select 'Add more recipients' then select 'ADD'.
  • \n
  • Under 'Recipient address:' enter: server@stayprivatemail.com
  • \n
  • Select 'SAVE'.
  • \n
  • Finally, click on 'SAVE' bottom right. This is important - otherwise your changes may be lost.
  • \n
\n \n That's it! StayPrivate will start working automatically.\n \n
\n
\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n
","import { Component } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\n\n@Component({\n selector: 'app-login-two',\n templateUrl: './login-two.component.html',\n styleUrls: ['./login-two.component.css']\n})\n\nexport class LoginTwoComponent {\n addressForm = this.fb.group({\n email: [null, Validators.required],\n password: [null, Validators.required],\n pinCode: [null, Validators.compose([\n Validators.required, Validators.minLength(4), Validators.maxLength(4)])\n ],\n company: null,\n firstName: [null, Validators.required],\n lastName: [null, Validators.required],\n address: [null, Validators.required],\n address2: null,\n city: [null, Validators.required],\n state: [null, Validators.required],\n postalCode: [null, Validators.compose([\n Validators.required, Validators.minLength(5), Validators.maxLength(5)])\n ],\n shipping: ['free', Validators.required]\n });\n\n hide = true;\n\n hasUnitNumber = false;\n\n states = [\n {name: 'Alabama', abbreviation: 'AL'},\n {name: 'Alaska', abbreviation: 'AK'},\n {name: 'American Samoa', abbreviation: 'AS'},\n {name: 'Arizona', abbreviation: 'AZ'},\n {name: 'Arkansas', abbreviation: 'AR'},\n {name: 'California', abbreviation: 'CA'},\n {name: 'Colorado', abbreviation: 'CO'},\n {name: 'Connecticut', abbreviation: 'CT'},\n {name: 'Delaware', abbreviation: 'DE'},\n {name: 'District Of Columbia', abbreviation: 'DC'},\n {name: 'Federated States Of Micronesia', abbreviation: 'FM'},\n {name: 'Florida', abbreviation: 'FL'},\n {name: 'Georgia', abbreviation: 'GA'},\n {name: 'Guam', abbreviation: 'GU'},\n {name: 'Hawaii', abbreviation: 'HI'},\n {name: 'Idaho', abbreviation: 'ID'},\n {name: 'Illinois', abbreviation: 'IL'},\n {name: 'Indiana', abbreviation: 'IN'},\n {name: 'Iowa', abbreviation: 'IA'},\n {name: 'Kansas', abbreviation: 'KS'},\n {name: 'Kentucky', abbreviation: 'KY'},\n {name: 'Louisiana', abbreviation: 'LA'},\n {name: 'Maine', abbreviation: 'ME'},\n {name: 'Marshall Islands', abbreviation: 'MH'},\n {name: 'Maryland', abbreviation: 'MD'},\n {name: 'Massachusetts', abbreviation: 'MA'},\n {name: 'Michigan', abbreviation: 'MI'},\n {name: 'Minnesota', abbreviation: 'MN'},\n {name: 'Mississippi', abbreviation: 'MS'},\n {name: 'Missouri', abbreviation: 'MO'},\n {name: 'Montana', abbreviation: 'MT'},\n {name: 'Nebraska', abbreviation: 'NE'},\n {name: 'Nevada', abbreviation: 'NV'},\n {name: 'New Hampshire', abbreviation: 'NH'},\n {name: 'New Jersey', abbreviation: 'NJ'},\n {name: 'New Mexico', abbreviation: 'NM'},\n {name: 'New York', abbreviation: 'NY'},\n {name: 'North Carolina', abbreviation: 'NC'},\n {name: 'North Dakota', abbreviation: 'ND'},\n {name: 'Northern Mariana Islands', abbreviation: 'MP'},\n {name: 'Ohio', abbreviation: 'OH'},\n {name: 'Oklahoma', abbreviation: 'OK'},\n {name: 'Oregon', abbreviation: 'OR'},\n {name: 'Palau', abbreviation: 'PW'},\n {name: 'Pennsylvania', abbreviation: 'PA'},\n {name: 'Puerto Rico', abbreviation: 'PR'},\n {name: 'Rhode Island', abbreviation: 'RI'},\n {name: 'South Carolina', abbreviation: 'SC'},\n {name: 'South Dakota', abbreviation: 'SD'},\n {name: 'Tennessee', abbreviation: 'TN'},\n {name: 'Texas', abbreviation: 'TX'},\n {name: 'Utah', abbreviation: 'UT'},\n {name: 'Vermont', abbreviation: 'VT'},\n {name: 'Virgin Islands', abbreviation: 'VI'},\n {name: 'Virginia', abbreviation: 'VA'},\n {name: 'Washington', abbreviation: 'WA'},\n {name: 'West Virginia', abbreviation: 'WV'},\n {name: 'Wisconsin', abbreviation: 'WI'},\n {name: 'Wyoming', abbreviation: 'WY'}\n ];\n\n constructor(private fb: FormBuilder) {}\n\n onSubmit() {\n if(this.addressForm.valid) {\n alert('Thanks!');\n } else {\n alert('Fill it in, you idiot!');\n }\n }\n}\n\n","

Log In

\n\n\n\n
\n \n \n Shipping Information\n \n \n
\n
\n \n \n \n
\n
\n
\n
\n \n Enter your email\n \n \n Email is required\n \n \n
\n
\n
\n
\n \n Enter your password\n \n \n \n Password is required\n \n \n
\n
\n
\n
\n \n Enter your PIN\n \n \n \n Password is required\n \n \n
\n
\n
\n
\n \n \n \n First name is required\n \n \n
\n
\n \n \n \n Last name is required\n \n \n
\n
\n
\n
\n \n \n \n Address is required\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n \n City is required\n \n \n
\n
\n \n \n \n {{ state.name }}\n \n \n \n State is required\n \n \n
\n
\n
\n
\n \n \n {{postalCode.value.length}} / 5\n \n
\n
\n
\n
\n \n Free Shipping\n Priority Shipping\n Next Day Shipping\n \n
\n
\n
\n \n \n \n
\n
\n\n\n\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MessageService {\n messages: string[] = [];\n\n add(message: string) {\n this.messages.push(message);\n }\n\n clear() {\n this.messages = [];\n }\n}","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Globals } from 'src/app/globals';\ninterface SelectorType {\n value: string;\n viewValue: string;\n flag: string;\n}\n/*const currencies = [\n { type: \"GBP\",sign: \"£\", t100: { price:4, extraUsage: 5 }, t400: { price: 45, extraUsage: 11.25 }, tUnl: { price: 90, extraUsage: 22.50} },\n { type: \"USD\",sign: \"$\", t100: { price: 5, extraUsage: 6 }, t400: { price: 50, extraUsage: 12.50 }, tUnl: { price: 100, extraUsage: 25 } },\n { type: \"AUD\",sign: \"$\", t100: { price: 8, extraUsage: 10 }, t400: { price: 80, extraUsage: 20 }, tUnl: { price: 200, extraUsage: 50 } },\n { type: \"EUR\",sign: \"€\", t100: { price: 5, extraUsage: 6 }, t400: { price: 49, extraUsage: 12.25 }, tUnl: { price: 99, extraUsage: 24.75 } },\n]*/\nconst currencies = [\n { type: \"GBP\", sign: \"£\", t100: { price: 4, extraUsage: 5 }, t200: { price: 15, extraUsage: 2, p1:2, p2:1.75, p3:1.50 , p4:1.35 , p5:1.25 }, t300: { price: 35, extraUsage: 4, p1:4, p2:3.5, p3:3 , p4:2.7 , p5:2.5} },\n { type: \"USD\", sign: \"$\", t100: { price: 5, extraUsage: 6 }, t200: { price: 17.50, extraUsage: 2.50, p1:2.5, p2:2.1, p3:1.8 , p4:1.6 , p5:1.5 }, t300: { price: 40, extraUsage: 5,p1:5, p2:4.2, p3:3.6 , p4:3.25 , p5:3 } },\n { type: \"AUD\", sign: \"$\", t100: { price: 8, extraUsage: 10 }, t200: { price: 30, extraUsage: 4,p1:4, p2:3.5, p3:3 , p4:2.7 , p5:2.5 }, t300: { price: 70, extraUsage: 8, p1:8, p2:7, p3:6 , p4:5.4 , p5:5 } },\n { type: \"EUR\", sign: \"€\", t100: { price: 5, extraUsage: 6 }, t200: { price: 18.75, extraUsage: 2.50,p1:2.25, p2:1.9, p3:1.65 , p4:1.5 , p5:1.4 }, t300: { price: 40, extraUsage: 4.50, p1:4.5, p2:3.85, p3:3.3 , p4:3 , p5:2.75 } },\n]\n@Component({\n selector: 'app-billing',\n templateUrl: './billing.component.html',\n styleUrls: ['./billing.component.css']\n})\nexport class BillingComponent implements OnInit {\n\n constructor(private globals: Globals, private http: HttpClient, private router: Router) { }\n\n currencyTypes: SelectorType[] = [\n { value: 'GBP', viewValue: \"£ GBP\", flag: \"../../../../assets/images/gb.svg\" },\n { value: 'EUR', viewValue: \"€ EUR\", flag: \"../../../../assets/images/eu.svg\" },\n { value: 'USD', viewValue: \"$ USD\", flag: \"../../../../assets/images/us.svg\" },\n { value: 'AUD', viewValue: \"$ AUD\", flag: \"../../../../assets/images/au.svg\" },\n ];\n\n\n sliderval = 4\n incNumber = 5\n currentSeats = null;\n minLicense = 5;\n tierCost = 0\n loading1 = true;\n PriceA=0\n PriceA1=0\n PriceB=0\n PriceB1=0\n loading2 = true;\n subActive = false;\n branding: string;\n customerId: string;\n selectedTier = '';\n currentTier = '';\n details: any;\n currency = \"GBP\";\n currencyValues = currencies.find((element) => element.type === \"GBP\");\n async ngOnInit(): Promise {\n\n let param = new HttpParams();\n param = param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n param = param.append('CompanyId', this.globals.getCompanyId());\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: async data => {\n this.branding = data.HasCustomLogoFlag\n this.loading1 = false\n let param1 = new HttpParams();\n param1 = param1.append('AuthToken', await this.globals.getAuthToken());\n param1 = param1.append('UserName', this.globals.getSystemUserName());\n param1 = param1.append('CompanyId', this.globals.getCompanyId());\n this.http.get(this.globals.getServicesUrl() + 'stripe/getSub', { params: param1 }).subscribe({\n next: data2 => {\n console.log(data)\n\n if (data.InitialTier == \"102\") { this.selectedTier = '100' }\n else if (data.InitialTier == \"103\") { this.selectedTier = '100' }\n else if (data.InitialTier == \"400\") { this.selectedTier = '400' }\n else if (data.InitialTier == \"401\") { this.selectedTier = '400' }\n else if (data.InitialTier == \"1000\") { this.selectedTier = '1000' }\n else if (data.InitialTier == \"1\") { this.selectedTier = '' }\n else if (data.InitialTier == \"2\") { this.selectedTier = '' }\n else if (data.InitialTier == \"3\") { this.selectedTier = '' }\n else { this.selectedTier = '' }\n this.currencyValues = currencies.find((element) => element.type == data2.currency.toUpperCase())\n this.currency = data2.currency.toUpperCase();\n this.currentTier = data2.tier;\n this.customerId = data2.customer;\n this.details = data2.details;\n this.sliderval = data2.quantity;\n if (data2.quantity) {\n this.incNumber = data2.quantity;\n this.currentSeats = data2.quantity;\n }\n console.log(data2.subStatus)\n if (data2.subStatus == \"active\"||data2.subStatus == \"trialing\") {\n // this.selectedTier = null;\n this.subActive = true;\n } else {\n this.subActive = false;\n\n // this.currentTier=null\n }\n console.log(this.subActive)\n this.loading2 = false\n\n },\n error: error => {\n if (error.error.error == \"No subscription data found\") {\n this.loading2 = false\n\n } else if (error.error.error == \"Could not find valid subscription\") {\n this.customerId = error.error.customer;\n this.details = error.error.details;\n this.loading2 = false\n } else {\n console.error('There was an error!');\n console.error(error);\n\n }\n\n }\n });\n },\n error: error => { console.error('There was an error!'); }\n });\n console.log(this.currentTier)\n\n this.add(0)\n \n }\n add(val: number) {\n console.log('add')\n this.incNumber = this.incNumber + val\n if (this.selectedTier == '2' && this.incNumber < 5) {\n this.incNumber = 5\n }\n else if (this.selectedTier == '3' && this.incNumber < 10) {\n this.incNumber = 10\n }\n else if (this.currentTier == '2' && this.selectedTier == '' && this.incNumber < 5) {\n this.incNumber = 5\n }\n else if (this.currentTier == '3' && this.selectedTier == '' && this.incNumber < 10) {\n this.incNumber = 10\n }\n let tempAmount = this.incNumber\n this.PriceA = (this.incNumber*this.currencyValues.t200.p1)+this.currencyValues.t200.price\n if(tempAmount>5000){\n this.PriceA=3000*this.currencyValues.t200.p4+1500*this.currencyValues.t200.p3+400*this.currencyValues.t200.p2+100*this.currencyValues.t200.p1+((tempAmount-5000)*this.currencyValues.t200.p5)+this.currencyValues.t200.price\n }\n else if(tempAmount>2000){\n this.PriceA=1500*this.currencyValues.t200.p3+400*this.currencyValues.t200.p2+100*this.currencyValues.t200.p1+((tempAmount-2000)*this.currencyValues.t200.p4)+this.currencyValues.t200.price\n }\n else if(tempAmount>500){\n this.PriceA=400*this.currencyValues.t200.p2+100*this.currencyValues.t200.p1+((tempAmount-500)*this.currencyValues.t200.p3)+this.currencyValues.t200.price\n }\n else if(tempAmount>100){\n this.PriceA=100*this.currencyValues.t200.p1+((tempAmount-100)*this.currencyValues.t200.p2)+this.currencyValues.t200.price\n }\n else if(tempAmount>50){\n this.PriceA=50*this.currencyValues.t200.p1+((tempAmount-50)*this.currencyValues.t200.p1)+this.currencyValues.t200.price\n }\n\n tempAmount = this.currentSeats\n this.PriceA1 = (this.currentSeats*this.currencyValues.t200.p1)+this.currencyValues.t200.price\n if(tempAmount>5000){\n this.PriceA1=3000*this.currencyValues.t200.p4+1500*this.currencyValues.t200.p3+400*this.currencyValues.t200.p2+100*this.currencyValues.t200.p1+((tempAmount-5000)*this.currencyValues.t200.p5)+this.currencyValues.t200.price\n }\n else if(tempAmount>2000){\n this.PriceA1=1500*this.currencyValues.t200.p3+400*this.currencyValues.t200.p2+100*this.currencyValues.t200.p1+((tempAmount-2000)*this.currencyValues.t200.p4)+this.currencyValues.t200.price\n }\n else if(tempAmount>500){\n this.PriceA1=400*this.currencyValues.t200.p2+100*this.currencyValues.t200.p1+((tempAmount-500)*this.currencyValues.t200.p3)+this.currencyValues.t200.price\n }\n else if(tempAmount>100){\n this.PriceA1=100*this.currencyValues.t200.p1+((tempAmount-100)*this.currencyValues.t200.p2)+this.currencyValues.t200.price\n }\n else if(tempAmount>50){\n this.PriceA1=50*this.currencyValues.t200.p1+((tempAmount-50)*this.currencyValues.t200.p1)+this.currencyValues.t200.price\n }\n \n tempAmount = this.incNumber\n this.PriceB = (this.incNumber*this.currencyValues.t300.p1)+this.currencyValues.t300.price\n if(tempAmount>5000){\n this.PriceB=3000*this.currencyValues.t300.p4+1500*this.currencyValues.t300.p3+400*this.currencyValues.t300.p2+100*this.currencyValues.t300.p1+((tempAmount-5000)*this.currencyValues.t300.p5)+this.currencyValues.t300.price\n }\n else if(tempAmount>2000){\n this.PriceB=1500*this.currencyValues.t300.p3+400*this.currencyValues.t300.p2+100*this.currencyValues.t300.p1+((tempAmount-2000)*this.currencyValues.t300.p4)+this.currencyValues.t300.price\n }\n else if(tempAmount>500){\n this.PriceB=400*this.currencyValues.t300.p2+100*this.currencyValues.t300.p1+((tempAmount-500)*this.currencyValues.t300.p3)+this.currencyValues.t300.price\n }\n else if(tempAmount>100){\n this.PriceB=100*this.currencyValues.t300.p1+((tempAmount-100)*this.currencyValues.t300.p2)+this.currencyValues.t300.price\n }\n else if(tempAmount>50){\n this.PriceB=50*this.currencyValues.t300.p1+((tempAmount-50)*this.currencyValues.t300.p1)+this.currencyValues.t300.price\n }\n\n tempAmount = this.currentSeats\n this.PriceB1 = (this.currentSeats*this.currencyValues.t300.p1)+this.currencyValues.t300.price\n if(tempAmount>5000){\n this.PriceB1=3000*this.currencyValues.t300.p4+1500*this.currencyValues.t300.p3+400*this.currencyValues.t300.p2+100*this.currencyValues.t300.p1+((tempAmount-5000)*this.currencyValues.t300.p5)+this.currencyValues.t300.price\n }\n else if(tempAmount>2000){\n this.PriceB1=1500*this.currencyValues.t300.p3+400*this.currencyValues.t300.p2+100*this.currencyValues.t300.p1+((tempAmount-2000)*this.currencyValues.t300.p4)+this.currencyValues.t300.price\n }\n else if(tempAmount>500){\n this.PriceB1=400*this.currencyValues.t300.p2+100*this.currencyValues.t300.p1+((tempAmount-500)*this.currencyValues.t300.p3)+this.currencyValues.t300.price\n }\n else if(tempAmount>100){\n this.PriceB1=100*this.currencyValues.t300.p1+((tempAmount-100)*this.currencyValues.t300.p2)+this.currencyValues.t300.price\n }\n else if(tempAmount>50){\n this.PriceB1=50*this.currencyValues.t300.p1+((tempAmount-50)*this.currencyValues.t300.p1)+this.currencyValues.t300.price\n }\n\n }\n formatLabel(value: number) {\n this.sliderval = value\n if (value == 25) {\n return \"∞\";\n }\n return value;\n }\n currencyChange(e) {\n this.currencyValues = currencies.find((element) => element.type === e.value)\n this.currency = e.value\n this.add(0)\n }\n resetUserCount() {\n if (this.selectedTier == '3' && this.currentSeats < 10) {\n this.incNumber = 10\n } else if (this.selectedTier == '2' && this.currentSeats < 5) {\n this.incNumber = 5\n } else{\n this.incNumber = this.currentSeats\n }\n this.add(0)\n }\n tierSelect(tierName) {\n if (tierName == this.currentTier) {\n this.selectedTier = ''\n } else if (this.selectedTier == tierName) {\n this.selectedTier = ''\n }\n else {\n this.selectedTier = tierName;\n }\n\n\n // if (tierName == '') {\n // this.incNumber = 5\n // }\n\n if (this.selectedTier == '1') {\n this.incNumber = this.currentSeats\n }\n if (this.selectedTier == '2' && this.incNumber < 5) {\n this.incNumber = 5\n }\n else if (this.selectedTier == '3' && this.incNumber < 10) {\n this.incNumber = 10\n } else{this.incNumber = 5} \n this.add(0)\n\n // else if (this.currentTier == '2') {\n // if (this.currentSeats > 5) {\n // this.incNumber = this.currentSeats\n // } else { this.incNumber = 5 }\n // }\n // else if (this.currentTier == '3') {\n // if (this.currentSeats > 10) {\n // this.incNumber = this.currentSeats\n // } else { this.incNumber = 10 }\n // }\n console.log('|' + this.currentTier + '|', '|' + this.selectedTier + '|', '|' + tierName + '|')\n\n }\n checkout() {\n this.loading1 = true;\n let form = new FormData();\n form.append('product', this.selectedTier);\n form.append('licenses', this.incNumber.toString());\n form.append('currency', this.currency);\n form.append('branding', this.branding);\n if (this.customerId) { form.append('customer', this.customerId); }\n form.append('compID', this.globals.getCompanyId());\n //form.append('successUrl', `http://localhost:8000/billing`);\n //form.append('cancelUrl', `http://localhost:8000/billing`);\n form.append('successURL', `https://dashboard.stayprivate.com/billing?session_id={CHECKOUT_SESSION_ID}`);\n form.append('cancelURL', `https://dashboard.stayprivate.com/billing`);\n\n /*For DEV\n success_url: `http://localhost:8000/billing?session_id={CHECKOUT_SESSION_ID}`,\n cancel_url: `http://localhost:8000/billing`,\n */\n /*For LIVE\n success_url: `https://dashboard.stayprivate.com/billing?session_id={CHECKOUT_SESSION_ID}`,\n cancel_url: `https://dashboard.stayprivate.com/billing`,\n */\n this.http.post(this.globals.getServicesUrl() + 'stripe/checkout', form).subscribe({\n next: data => {\n window.location.href = data.url;\n\n },\n error: error => {\n console.error('There was an error!');\n this.loading1 = false;\n }\n });\n }\n subChange() {\n this.loading1 = true;\n let form = new FormData();\n if (this.selectedTier == \"standard\") {\n form.append('product', \"standard\");\n form.append('quantity', this.sliderval.toString());\n\n } else if (this.currentTier == \"1\" || this.currentTier == \"2\" || this.currentTier == \"3\") {\n if (this.selectedTier == \"1\" || this.selectedTier == \"2\" || this.selectedTier == \"3\") {\n form.append('product', this.selectedTier);\n } else {\n form.append('product', this.currentTier);\n }\n form.append('quantity', this.incNumber.toString());\n } else {\n form.append('product', this.selectedTier);\n\n }\n form.append('currency', this.currency);\n form.append('branding', this.branding);\n form.append('compID', this.globals.getCompanyId());\n this.http.post(this.globals.getServicesUrl() + 'stripe/subChange', form).subscribe({\n next: data => {\n this.loading1 = false;\n if (this.selectedTier == \"standard\") {\n this.currentSeats = this.sliderval\n } else if (this.currentTier == \"1\" || this.currentTier == \"2\" || this.currentTier == \"3\") {\n this.currentSeats = this.incNumber\n if(this.selectedTier){\n this.currentTier = this.selectedTier\n this.selectedTier = null;\n }\n // this.selectedTier=null;\n\n } else {\n this.currentTier = this.selectedTier;\n this.selectedTier = null;\n }\n },\n error: error => {\n console.error('There was an error!');\n this.loading1 = false;\n }\n });\n }\n infoChange() {\n this.loading1 = true;\n let form = new FormData();\n form.append('compID', this.globals.getCompanyId());\n this.http.post(this.globals.getServicesUrl() + 'stripe/infoChange', form).subscribe({\n next: data => {\n window.location.href = data.url;\n\n\n },\n error: error => {\n console.error('There was an error!');\n this.loading1 = false;\n }\n });\n }\n cancelSub() {\n this.loading1 = true;\n let form = new FormData();\n form.append('compID', this.globals.getCompanyId());\n this.http.post(this.globals.getServicesUrl() + 'stripe/cancelSub', form).subscribe({\n next: data => {\n this.loading1 = false;\n this.currentTier = this.selectedTier;\n this.selectedTier = null;\n\n },\n error: error => {\n console.error('There was an error!');\n this.loading1 = false;\n }\n });\n }\n\n}\n","\n \n\n\n \n Please select a tier:\n \n \n \"\"\n {{currencyType.viewValue}}\n \n \n \n \n \n \n
\n \n \n
\n \n \n \n Professional

\n \n {{this.currencyValues.sign}}{{PriceA1}}\n per month
\n
\n\n 4\" class=\"billing-font\">{{this.currencyValues.sign}}{{PriceA}}\n per month\n {{this.currencyValues.sign}}{{(5*this.currencyValues.t200.extraUsage)+this.currencyValues.t200.price}}\n per month\n
\n \n Includes 5 users
\n Includes 10GB of storage
\n Unlimited emails
\n Branding
\n Each additional user: {{this.currencyValues.sign}}{{currencyValues.t200.extraUsage}} per month
\n Extra units of 10GB storage: {{this.currencyValues.sign}}{{currencyValues.t100.extraUsage}}\n per month
\n
\n \n \n
\n Select
\n
Selected
\n
\n
\n
\n
\n \n \n \n Professional plus

\n \n 10&& selectedTier!='1' && currentTier!=''\"\n class=\"strike-billing\">{{this.currencyValues.sign}}{{PriceB1}}\n per month
\n
\n\n 9\" class=\"billing-font\">{{this.currencyValues.sign}}{{PriceB}}\n per month\n {{this.currencyValues.sign}}{{(10*this.currencyValues.t300.extraUsage)+this.currencyValues.t300.price}}\n per month\n
\n \n\n Includes 10 users
\n Includes 20GB of storage
\n Unlimited emails
\n Branding
\n Electronic document signing
\n Auto-deleting emails
\n Each additional user: {{this.currencyValues.sign}}{{currencyValues.t300.extraUsage}} per month
\n Extra units of 10GB storage: {{this.currencyValues.sign}}{{currencyValues.t100.extraUsage}}\n per month
\n
\n \n \n
\n Select
\n
Selected
\n
\n
\n
\n\n
\n \n \n \n \n\n \n\n Billing\n information\n \n
\n
\n Name: {{details.name}}
\n Email: {{details.email}}

\n Address:
\n {{details.address.line1}}
\n {{details.address.line2}}
\n {{details.address.city}}
\n {{details.address.state}}
\n {{details.address.country}}
\n {{details.address.postal_code}}
\n
\n\n
\n
\n \n \n
\n
\n
","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Globals } from 'src/app/globals';\nimport { MatStepper } from '@angular/material/stepper';\n\n@Component({\n selector: 'app-setup-spf',\n templateUrl: './setup-spf.component.html',\n styleUrls: ['./setup-spf.component.css']\n})\nexport class SetupSpfComponent implements OnInit {\n\n constructor(\n private globals: Globals,\n private http: HttpClient,\n private router: Router,\n public route: ActivatedRoute,\n private clipboard: Clipboard,\n public dialog: MatDialog,\n private _snackBar: MatSnackBar\n ) { }\n @ViewChild('spfStepper') public spfStepper: MatStepper;\n @ViewChild('microsoftStepper') public microsoftStepper: MatStepper;\n @ViewChild('googleStepper') public googleStepper: MatStepper;\n @Output() setupFinished = new EventEmitter();\n @Input() public eventEmit: any;\n @Input() public originStepper: MatStepper;\n @Input() public companyId: string;\n @Input() public isSignUp: boolean;\n @Input() public keyword: string;\n @Input() public domain: string;\n @Input() public companyName: string;\n link: string;\n\n ngOnInit(): void {\n this.route.queryParams.subscribe(params => {\n if (params['1']) {\n this.link = params['1']\n } else if (this.companyId) {\n let param = new HttpParams()\n param = param.append('companyId',this.companyId)\n this.http.get(this.globals.getServicesUrl() + 'company/createLink',{params:param}).subscribe({\n next: data => {\n this.link = data.id\n this.keyword=data.keyword\n this.domain=data.domain\n this.companyName=data.name\n\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n }\n });\n }\n finish(val:boolean){\n if(val==true){\n this.setupFinished.emit({domain:this.domain,keyword:this.keyword})\n\n }else{\n this.setupFinished.emit()\n\n }\n }\n copy(copyVariable) {\n this.clipboard.copy(copyVariable);\n this._snackBar.open(\"Copied!\", \"OK\", { duration: 3000 });\n }\n}\n","\n \n \n Direct Configuration\n \n
\n
\n
= 0)? 'current':''\"> Access
\n
= 1)? 'current':''\"> Outbound
\n
= 2)? 'current':''\"> Replies
\n
= 3)? 'current':''\"> Enable
\n
\n
\n \n \n \n Access the Mail Server\n \n\n
\n You will require administrator access to your email server in order to configure it to work with\n StayPrivate.\n
\n \n
\n
\n \n \n
\n
\n
\n \n \n Create an outbound connector to StayPrivate\n \n
\n To connect with StayPrivate, outgoing secure emails need to be identified and relayed to https://sendsecure.stayprivate.com. For most\n email servers this means:\n
    \n
  • adding https://sendsecure.stayprivate.com as a host\n or connector; and
  • \n
  • creating a conditional routing rule to route emails to this host if the email subject or body contains\n the keyword.
  • \n
\n \n For detailed instructions of how to do this for Microsoft email servers, click here.\n

\n \n For detailed instructions of how to do this in Google Workspace, click here.\n \n
\n
\n
\n \n \n
\n
\n
\n \n \n Forward secure replies to StayPrivate\n \n
\n To ensure that secure replies from secure corporate domains are included in\n StayPrivate, incoming secure replies should\n be identified and blind copied to server@stayprivatemail.com. For most email servers\n this is achieved by adding a compliance rule to add the above address to the 'bcc' field if an incoming\n email contains the text:#stayprivate-secure-reply.\n \n

\n \n For detailed instructions of how to do this for Microsoft email servers, click here.\n

\n \n For detailed instructions of how to do this in Google Workspace, click here.\n \n
\n
\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n
\n
\n \n \n Direct Configuration for Microsoft\n \n
\n
\n
= 0)? 'current':''\"> Access
\n
= 1)? 'current':''\"> Outbound
\n
= 2)? 'current':''\"> Rules
\n
= 3)? 'current':''\"> Replies
\n
\n
\n \n \n\n \n Access the Exchange Admin area\n \n\n
\n You will require administrator access to your Microsoft 365 account or mail server in order to configure\n it to work with StayPrivate:\n
    \n
  • From the Office 365 home page, in the left-hand menu, select 'Admin'.
  • \n
  • In the left-hand menu, select 'Show all'.
  • \n
  • Scroll down and under 'Admin centers' select 'Exchange'.
  • \n
\n We recommend that you use the latest version of the Microsoft Exchange Admin Center. If you are using\n the 'Classic' Exchange Admin Center you can still follow the instructions below, but please be aware that\n there are one or two slight differences in wording and layout.\n
\n \n
\n
\n \n \n
\n
\n
\n \n \n Add an outbound connector to StayPrivate\n \n
\n The first step is to add a secure connector to the StayPrivate relay server:\n
    \n
  • In the left-hand menu, select 'Mail flow'. Then select 'Connectors'.
  • \n
  • Click on '+ Add a connector'.
  • \n
  • Under 'Connection from' select 'Office 365'. Under 'Connection to' select 'Partner organization'. Then click 'Next'.
  • \n
  • Enter the name: Send to StayPrivate\n and ensure 'Turn it on' is selected. Then click 'Next'.
  • \n
  • Select 'Only when I have a transport rule set up that redirects messages to this connector'. Then click\n 'Next'.
  • \n
  • Select 'Route email through these smart hosts'. Then enter the domain name: sendsecure.stayprivate.com and click '+'. Then Click 'Next'.
  • \n
  • Ensure that 'Always use Transport Layer Security...' and 'Issued by a trusted certificate authority\n (CA)' are selected. Click 'Next'.
  • \n
  • To validate the connector, enter the test email address support@stayprivate.com and click '+'.
  • \n
  • Click 'Validate'. Office 365 will validate the new connector. This may take a minute or so. When it has\n finished, click 'Next'.
  • \n
  • Click 'Create connector'.
  • \n
  • Click 'Done'.
  • \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n Add the StayPrivate rule for outbound emails.\n \n
\n The next step is to add a rule so that the mail server can identify which emails to send to\n StayPrivate:\n \n
    \n
  • In 'Mail flow', select 'Rules'.
  • \n
  • Select '+ Add a rule' and 'Create a new rule'.
  • \n
  • Enter the name: Identify messages to send via\n StayPrivate
  • \n
  • Under 'Apply this rule if' select 'The recipient'.
  • \n
  • Then, to the right, select 'is external/internal'. Then choose 'Outside the organization' and click 'Save'.
  • \n
  • Under 'Do the following' select 'Redirect the message to'. Then, to the right, select 'the following connector'. Select 'Send to StayPrivate' and click 'Save'.
  • \n
  • Under 'Except if' select 'The sender'. Then, to the right, select 'IP address is in any of these\n ranges or exactly matches'. Enter 18.130.40.2\n in the box.
  • \n
  • Click 'Add'.
  • \n
  • Tick the box next to 18.130.40.2. Click 'Save'.
  • \n
  • Click 'Next'.
  • \n
  • Ensure that 'Enforce' is selected, then click 'Next'.
  • \n
  • Click 'Finish'. It may take a few seconds for the rule to be saved.
  • \n
  • Click 'Done'.
  • \n
\n Next add a rule to ensure that secure emails are not incorrectly identified as spam:\n
    \n
  • In 'Mail flow', select 'Rules'.
  • \n
  • Select '+ Add a rule' and then 'Bypass spam filtering'.
  • \n
  • Enter the name: StayPrivate Allow\n
  • \n
  • Under 'Apply this rule if' select 'The sender'. Then, to the right, select 'IP address is in any of\n these ranges or exactly matches'. Enter 18.130.40.2 in the\n box. Then click 'Add'.
  • \n
  • Tick the box next to 18.130.40.2. Then click 'Save'.
  • \n
  • Click 'Next'.
  • \n
  • Ensure that 'Enforce' is selected, then click 'Next'.
  • \n
  • Click 'Finish'. It may take a few seconds for the rule to be saved.
  • \n
  • Click 'Done'.
  • \n
\n
\n\n
\n
\n \n \n
\n
\n
\n \n \n Add a rule to ensure inbound secure emails are copied to StayPrivate\n \n
\n To ensure that direct replies from secure corporate domains are included in StayPrivate, incoming secure\n replies are identified and blind copied to server@stayprivatemail.com:\n
    \n
  • In the left-hand menu, select 'Recipients' then select 'Contacts'.
  • \n
  • Select 'Add a mail contact'.
  • \n
  • Under Contact type select 'Mail contact'.
  • \n
  • Under 'Display name' enter: StayPrivateServer
  • \n
  • Under 'Alias' enter: StayPrivateServer
  • \n
  • Under 'External email address' enter: server@stayprivatemail.com
  • \n
  • Click 'Next'.
  • \n
  • Click 'Next' again, then click 'Create'.
  • \n
  • Click 'Done'.
  • \n
\n Now add a rule to ensure that secure emails are copied to server@stayprivatemail.com:\n
    \n
  • In the left-hand menu, select 'Mail flow' and select 'Rules'.
  • \n
  • Select '+ Add a rule' and 'Create a new rule'.
  • \n
  • Enter the name: Send secure\n replies to StayPrivate
  • \n
  • Under 'Apply this rule if' select 'The subject or body'.
  • \n
  • Then select 'subject or body matches these text patterns' and enter #stayprivate-secure-reply.
  • \n
  • Click 'Add'.
  • \n
  • Tick the box next to #stayprivate-secure-repl. Then click 'Save'.
  • \n
  • Under 'Do the following' select 'Add Recipients' then, to the right, select 'to the Bcc box'.
  • \n
  • Find 'StayPrivateServer' in the list and tick the box next to it. Click 'Save'.
  • \n
  • Under 'Except if' select 'The sender' then, to the right, select 'domain is'. Enter\n your email domain (for example, mycompany.com) in the box.
  • \n
  • Under 'Except if' select 'The sender' then, to the right, select 'domain is'. Enter\n {{domain}} in the box.
  • \n
  • Tick the box next to your domain. Then click 'Save'.
  • \n
  • Tick the box next to {{domain}}. Then click 'Save'.
  • \n
  • Click the blue '+' next to the box with the text 'domain is'.
  • \n
  • Under 'And' select 'The sender'. Then, to the right, select 'IP address is in any of these ranges or\n exactly matches'.
  • \n
  • Enter 18.130.40.2 in the box. Then click\n 'Add'.
  • \n
  • Tick the box next to 18.130.40.2. Then click 'Save'.
  • \n
  • Click 'Next'.
  • \n
  • Check that 'Enforce' is selected, then click 'Next'.
  • \n
  • Click 'Finish'. It may take a few seconds for the rule to be saved.
  • \n
  • Click 'Done'.
  • \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n Enable the rules\n \n
\n The final step is simply to ensure that the rules set up above are enabled.\n
    \n
  • In the left-hand menu, select 'Rules'.
  • \n
  • Find the rule 'Identify messages to send via StayPrivate'. Click on the word 'Disabled' next to the rule.
  • \n
  • Click on the switch under 'Enable or disable rule' to enable the rule.
  • \n
  • Click on the close button top right. It will take a few seconds for the page to update.
  • \n
  • Find the rule 'Send secure replies to StayPrivate'. Click on the word 'Disabled' next to the rule.
  • \n
  • Click on the switch under 'Enable or disable rule' to enable the rule.
  • \n
  • Click on the close button top right. It will take a few seconds for the page to update.
  • \n
\n That is it! You can start using StayPrivate right away.\n
\n
\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n
\n
\n \n \n Direct Configuration for Google\n \n
\n
\n
= 0)? 'current':''\"> Access
\n
= 1)? 'current':''\"> Hosts
\n
= 2)? 'current':''\"> Rules 1
\n
= 3)? 'current':''\"> Rules 2
\n
= 4)? 'current':''\"> Inbound
\n
= 5)? 'current':''\"> Replies
\n
\n
\n \n \n \n Access the Google Admin area\n \n
\n You will require administrator access to your Google mail server in order to configure it to work with\n StayPrivate:\n
    \n
  • Log into the Google Admin console at: https://admin.google.com
  • \n
  • Select '\n Apps'.
  • \n
  • Select 'Google Workspace' and from the list, click on ' Gmail'.
  • \n
\n \n
\n
\n
\n \n\n \n
\n
\n
\n \n \n Add the StayPrivate secure server as a host\n \n
\n To send secure emails, StayPrivate needs to be first added as a host:\n
    \n
  • Click on 'Hosts'.
  • \n
  • Click on 'ADD ROUTE' to add a new mail route.
  • \n
  • Enter the name: StayPrivate
  • \n
  • In the 'Enter host name or IP' field enter sendsecure.stayprivate.com and in the numeric field\n next to it, enter the port number: 587
  • \n
  • Click 'Save'.
  • \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n Add the StayPrivate rule for outbound emails\n \n
\n The next step is to add two rules so that the email server can identify which emails to send via the StayPrivate host:\n
    \n
  • Go back to the Gmail settings page by clicking on 'Settings for Gmail' near the top.
  • \n
  • Scroll down to near the bottom and click on 'Compliance'. Then scroll down to 'Content compliance' and click 'CONFIGURE' (or if you already have a rule specified, click 'ADD ANOTHER RULE').
  • \n
  • Scroll down to 'Content compliance' and click 'CONFIGURE' (or if you already have a rule specified, click 'ADD ANOTHER RULE').
  • \n
  • Under 'Content compliance' enter the text: Identify messages to send via StayPrivate'
  • \n
  • Under '1. Email messages to affect' select 'Outbound'.
  • \n
  • Under '2. Add expressions that describe...' select 'If ALL of the following match the message'. Then click on 'ADD'.
  • \n
  • Click on 'Simple content match' and select 'Advanced content match'. Then under 'Location' select 'Full Headers'.
  • \n
  • Under 'Match type' select 'Not contains text'.
  • \n
  • Under 'Content' enter the text: x-stayprivate-processed: true.
  • \n
  • Click 'SAVE'.
  • \n
  • In '3. If the above expressions match, do the following' under 'Route' select 'Change route'.
  • \n
  • Click on 'Normal routing' and select 'StayPrivate'.
  • \n
  • Then under 'Spam' select 'Bypass the spam filter for this message'.
  • \n
  • Click on 'SAVE' bottom right.
  • \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n Add a rule to ensure secure replies are handled by StayPrivate\n \n
\n To ensure that direct replies from secure corporate domains are included in StayPrivate, incoming secure\n replies are identified and blind copied to server@stayprivatemail.com. This is achieved by adding\n a further compliance rule:\n
    \n
  • Go to the Gmail settings page by clicking on 'Settings for Gmail' near the top.
  • \n
  • Scroll down to near the bottom and select 'Compliance'. Under 'Content compliance' click 'ADD ANOTHER RULE'.
  • \n
  • Under 'Content compliance' enter: Send secure replies to StayPrivate
  • \n
  • Under '1. Email messages to affect' select 'Inbound'.
  • \n
  • Under '2. Add expressions that...' select 'ADD'.
  • \n
  • Click on 'Simple content match' and select 'Advanced content match'. Then under 'Location' select 'Body'..
  • \n
  • Under 'Content' enter #stayprivate-secure-reply then click 'SAVE'.
  • \n
  • In '3. If the above expressions match, do the following' under 'Route' select 'Modify message'.
  • \n
  • Under 'Also deliver to' select 'Add more recipients' then select 'ADD'.
  • \n
  • Under 'Recipient address:' enter: server@stayprivatemail.com
  • \n
  • Select 'SAVE'.
  • \n
  • Finally, click on 'SAVE' bottom right. This is important - otherwise your changes may be lost.
  • \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n
\n
\n
","

Top Companies

\n\n","import { Component, OnInit } from '@angular/core';\nimport { Company } from '../company';\nimport { CompanyService } from '../company.service';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: [ './dashboard.component.css' ]\n})\nexport class DashboardComponent implements OnInit {\n companies: Company[] = [];\n\n constructor(private companyService: CompanyService) { }\n\n ngOnInit() {\n this.getCompanies();\n }\n\n getCompanies(): void {\n this.companyService.getCompanies()\n .subscribe(companies => this.companies = companies.slice(1, 5));\n }\n}","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { CompanySetupProcessComponent } from '../company-setup-process/company-setup-process.component';\n\n@Component({\n selector: 'app-setup-complete',\n templateUrl: './setup-complete.component.html',\n styleUrls: ['./setup-complete.component.css']\n})\nexport class SetupCompleteComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: {keyword: string,domain: string}\n ) { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n \n \n \n \n
\nSetup Complete\nYou have completed the StayPrivate setup.\nAll email accounts on {{data.domain}} You can now send encrypted emails, simply by including the keyword: {{data.keyword}} \n
\n \n \n\n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DeveloperComponent } from '../developer/developer.component';\n\n@Component({\n selector: 'app-confirm-popup',\n templateUrl: './confirm-popup.component.html',\n styleUrls: ['./confirm-popup.component.css']\n})\nexport class ConfirmPopupComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: {heading: string,text: string}\n ) { }\n\n ngOnInit(): void {\n }\n confirm(){\n this.dialogRef.close(true)\n }\n cancel(){\n this.dialogRef.close()\n }\n}\n","
\n \"\"\n\n Are you sure?\n

{{line}}

\n
\n \n \n
\n\n
","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Globals } from 'src/app/globals';\nimport { BillingService } from './billing.service';\n\nexport interface File {\n name: string;\n link: string;\n date: string;\n}\n@Component({\n selector: 'app-company-billing',\n templateUrl: './company-billing.component.html',\n styleUrls: ['./company-billing.component.css']\n})\nexport class CompanyBillingComponent implements OnInit {\n\n constructor(\n private globals: Globals, \n private http: HttpClient,\n private route: ActivatedRoute, \n private billingService:BillingService\n\n ) { }\n displayedColumns: string[] = ['name', 'date','more'];\n dataSource;\n companyId;\n async ngOnInit(): Promise {\n if(this.route.snapshot.params['id']!=undefined){\n this.companyId=this.route.snapshot.params['id']\n }else{this.companyId=this.globals.getCompanyId()}\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken() );\n param = param.append('UserName', this.globals.getSystemUserName() );\n param = param.append('companyId', this.companyId );\n this.http.get(this.globals.getServicesUrl()+\"billing/getFiles\", { params:param}).subscribe({\n next: data => {\n this.dataSource = data;\n },\n error: error => {}\n\n \n });\n }\n download(fileKey:string){\n let fileType = fileKey.split('.');\n let param = new HttpParams();\n param = param.append('fileKey', fileKey );\n this.http.get(this.globals.getServicesUrl()+\"billing/download\", { params:param, responseType: 'blob' }).subscribe({\n next: data => {\n\n let binaryData = [];\n binaryData.push(data);\n let downloadLink = document.createElement('a');\n if(fileType[1]=='csv'){\n downloadLink.href = window.URL.createObjectURL(new Blob([data], {type: 'text/csv;'}));\n downloadLink.setAttribute('download', \"Usage.csv\");\n\n }else if(fileType[1]=='pdf'){\n downloadLink.href = window.URL.createObjectURL(new Blob([data], {type: 'application/pdf'}));\n downloadLink.setAttribute('download', \"Invoice.pdf\");\n }\n document.body.appendChild(downloadLink);\n downloadLink.click();\n downloadLink.remove();\n },\n error: error => {\n console.error(error)\n\n }\n });\n }\n download1(jsonData){\n this.billingService.downloadFile(jsonData, 'Usage');\n }\n\n}\n","\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Name {{element.fileName}} Date {{element.date}} \n \n
\n ","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatTab, MatTabGroup } from '@angular/material/tabs';\nimport { Title } from '@angular/platform-browser';\nimport { Globals } from 'src/app/globals';\n@Component({\n selector: 'app-notifications',\n templateUrl: './notifications.component.html',\n styleUrls: ['./notifications.component.css']\n})\nexport class NotificationsComponent implements OnInit {\n types = new FormControl();\n\n sortTypes: string[] = ['Company Added', 'Company Provisioned', 'Usage Exceeded', 'Logo Uploaded', 'Branding Added', 'Branding Removed', 'User Count Increased', 'User Count Decreased'];\n constructor(\n private titleService: Title,\n private http: HttpClient,\n private globals: Globals\n ) { }\n @ViewChild('tabGroup') public notificationTab: MatTabGroup;\n\n notifications = null\n searchTerm = \"\"\n notificationsList = []\n loading = true;\n collapse(i, notification) {\n var coll = document.getElementById(i);\n var collIcon = document.getElementById('i'+i);\n if (coll.style.maxHeight) {\n coll.style.maxHeight = null;\n coll.style.borderStyle = \"none\";\n // coll.style.display = \"none\";\n notification.Opened = false;\n } else {\n // coll.style.display = \"block\";\n coll.style.borderStyle = \"solid\";\n coll.style.maxHeight = coll.scrollHeight + \"px\";\n coll.style.opacity = \"1\";\n notification.Opened = true;\n }\n }\n collapseDate(i) {\n var coll = document.getElementById(i);\n var collIcon = document.getElementById('i'+i);\n \n if (coll.style.maxHeight!='0px') {\n coll.style.maxHeight = '0px';\n collIcon.classList.remove(\"notif-rotate\")\n } else {\n coll.style.maxHeight = coll.scrollHeight + \"px\";\n collIcon.classList.add(\"notif-rotate\")\n }\n }\n consoleL(el){\n console.log(el)\n }\n async ngOnInit(): Promise {\n\n this.titleService.setTitle(\"Notifications - STAY PRIVATE\");\n this.types.setValue(['Company Added', 'Company Provisioned', 'Usage Exceeded', 'Logo Uploaded', 'Branding Added', 'Branding Removed', 'User Count Increased', 'User Count Decreased']);\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n this.loading = true;\n this.http.get(this.globals.getServicesUrl() + 'company/getNotifications', { params: param }).subscribe({\n next: data => {\n this.loading = false;\n this.notifications = data\n this.filter()\n },\n error: error => {\n this.loading = false;\n console.error('There was an error!');\n }\n });\n }\n filter() {\n let filter = this.types.value\n let newList = []\n let i = 0\n for (let notification of this.notifications) {\n if (filter.find((element) => element === notification.Type)) {\n if (notification.Message.toLowerCase().includes(this.searchTerm.toLowerCase())) {\n notification.Hierarchy.reverse();\n if (notification.Currency && notification.NewPrice) {\n if (notification.Currency == \"GBP\") { notification.NewPrice = \"£\" + notification.NewPrice; notification.Currency = \"\" }\n if (notification.Currency == \"USD\") { notification.NewPrice = \"$\" + notification.NewPrice; notification.Currency = \"\" }\n if (notification.Currency == \"AUD\") { notification.NewPrice = \"$\" + notification.NewPrice; notification.Currency = \"\" }\n if (notification.Currency == \"EUR\") { notification.NewPrice = \"€\" + notification.NewPrice; notification.Currency = \"\" }\n }\n if (notification.NewLimit && notification.NewLimit.StorageLimit) {\n notification.NewLimit.StorageLimit = notification.NewLimit.StorageLimit / 1024\n notification.NewLimit.StorageLimitOld = notification.NewLimit.StorageLimitOld / 1024\n }\n notification.Opened = false;\n newList.push(notification)\n }\n }\n i++\n if (i == this.notifications.length) {\n const groups = newList.reduce((groups, notifi) => {\n let date = this.dateConvert(notifi.NotificationDateUTC)\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sept\", \"Oct\", \"Nov\", \"Dec\"];\n\n let todayD = new Date()\n let todayS = todayD.getDate() + \" \" + months[todayD.getMonth()] + \" \" + todayD.getFullYear();\n let yesterdayD = new Date()\n yesterdayD.setDate(todayD.getDate() - 1);\n let yesterdayS = yesterdayD.getDate() + \" \" + months[yesterdayD.getMonth()] + \" \" + yesterdayD.getFullYear();\n if (date == todayS) { date = \"Today\" }\n if (date == yesterdayS) { date = \"Yesterday\" }\n if (!groups[date]) {\n groups[date] = [];\n }\n groups[date].push(notifi);\n return groups;\n }, {});\n\n // Edit: to add it in the array format instead\n const groupArrays = Object.keys(groups).map((date) => {\n return {\n date,\n utc: groups[date][0].NotificationDateUTC,\n notifis: groups[date]\n };\n });\n groupArrays.sort(function (a, b) {\n return b.utc - a.utc;\n });\n for (let group of groupArrays) {\n group.notifis.sort(function (a, b) {\n return b.NotificationDateUTC - a.NotificationDateUTC;\n });\n }\n this.notificationsList = groupArrays\n }\n }\n }\n dateConvert(str) {\n let date = new Date(parseInt(str))\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sept\", \"Oct\", \"Nov\", \"Dec\"];\n return date.getDate() + \" \" + months[date.getMonth()] + \" \" + date.getFullYear();\n }\n timeConvert(str) {\n let date = new Date(parseInt(str))\n return date.toLocaleString('en-GB', { hour: 'numeric', hour12: false }) + \":\" + (date.getMinutes() < 10 ? '0' : '') + date.getMinutes()\n }\n goToPref() {\n this.notificationTab.selectedIndex = 1\n }\n\n}\n","\n \n \n \n Notification History\n \n \n \n

Your notification history is listed as individual items, starting with the most recent

\n
\n \n
\n search\n \n
\n
\n \n \n filter_list Filter \n \n \n {{sortType}}\n \n \n
\n\n
\n \n
\n
\n\n \n \n
\n \n
\n
\n trending_up\n
\n
\n add_business\n
\n
\n check_circle\n
\n
\n add_photo_alternate\n
\n
\n image\n
\n
\n hide_image\n
\n
\n group_add \n
\n
\n group_remove\n
\n
\n \n
\n
Company Hierarchy:\n \n {{name.CompanyName}}\n > \n \n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
Previous recipient allowance:\n {{notification.NewLimit.RecipientLimitOld}} New recipient allowance:\n {{notification.NewLimit.RecipientLimit}}
Previous storage allowance:\n {{notification.NewLimit.StorageLimitOld}}GBNew storage allowance: {{notification.NewLimit.StorageLimit}}GB\n
New billing amount: {{notification.NewPrice}}
\n Company Hierarchy:\n \n {{name.CompanyName}}\n > \n \n
\n
\n
\n\n
\n
\n\n
\n\n
\n\n\n\n\n
\n \"\"\n\n =0\">No\n notifications found!\n No\n notifications yet!\n All your\n notifications will be listed here\n
\n
\n \n \n \n \n \n
\n
","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\nimport { domain } from 'process';\nimport { Globals } from 'src/app/globals';\nimport { SetupCompleteComponent } from '../setup-complete/setup-complete.component';\n\n@Component({\n selector: 'app-company-setup',\n templateUrl: './company-setup.component.html',\n styleUrls: ['./company-setup.component.css']\n})\nexport class CompanySetupComponent implements OnInit {\n\n constructor(\n public route: ActivatedRoute,\n private globals: Globals,\n private http: HttpClient,\n public dialog: MatDialog,\n\n ) { }\n keyword : string;\n domain: string;\n companyName: string;\n link: string;\n standalon: Boolean;\n\n ngOnInit(): void {\n this.globals.checkTheme()\n\n this.route.queryParams.subscribe(params => {\n if (params['1']) {\n let param = new HttpParams()\n param = param.append('linkId', params['1'])\n this.http.get(this.globals.getServicesUrl() + 'company/setupLinkData', { params: param }).subscribe({\n next: data => {\n this.link = params['1']\n this.keyword = data.keyword\n this.domain = data.domain\n this.companyName = data.name\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n }\n if (params['2']) {\n if(params['2']=='Y') { this.standalon = false; } \n else{this.standalon=true;}\n } else{ this.standalon=true;}\n });\n }\n finish(event) {\n const dialogRef = this.dialog.open(SetupCompleteComponent, {\n width: '400px',\n data: {\n keyword: event.keyword,\n domain: event.domain\n },\n autoFocus: false\n });\n }\n}\n","
\n \n \n StayPrivate Configuration Instructions for {{companyName}} \n \n \n \n \n \n\n \n
","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { MatTabGroup } from '@angular/material/tabs';\nimport { Globals } from 'src/app/globals';\n\n@Component({\n selector: 'app-preferences',\n templateUrl: './preferences.component.html',\n styleUrls: ['./preferences.component.css']\n})\nexport class PreferencesComponent implements OnInit {\n\n constructor(\n private fb: FormBuilder,\n public globals: Globals,\n private http: HttpClient\n ) { }\n @Input() public notificationTab: MatTabGroup;\n loading = true;\n preferenceForm = this.fb.group({\n AddBrandCompanyTypeCFlag: [null],\n AddBrandCompanyTypeRFlag: [null],\n AddBrandCompanyTypeWFlag: [null],\n NewCompanyTypeCFlag: [null],\n NewCompanyTypeRFlag: [null],\n NewCompanyTypeWFlag: [null],\n ProvCompanyTypeCFlag: [null],\n ProvCompanyTypeRFlag: [null],\n ProvCompanyTypeWFlag: [null],\n RmvBrandCompanyTypeCFlag: [null],\n RmvBrandCompanyTypeRFlag: [null],\n RmvBrandCompanyTypeWFlag: [null],\n UsageOverHrchyCompanyTypeCFlag: [null],\n UsageOverHrchyCompanyTypeRFlag: [null],\n UsageOverHrchyCompanyTypeWFlag: [null],\n UsageOverOwnCompanyFlag: [null],\n ProvOwnCompanyFlag: [null],\n AddBrandOwnCompanyFlag : [null],\n RmvBrandOwnCompanyFlag: [null],\n });\n async ngOnInit(): Promise {\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n this.loading = true;\n this.http.get(this.globals.getApiUrl() + \"api/getSPMailCompanyUserNotifyFlags.php\", { params: param }).subscribe({\n next: data => {\n this.preferenceForm.setValue({\n AddBrandCompanyTypeCFlag: data.AddBrandCompanyTypeCFlag.includes(\"Y\"),\n AddBrandCompanyTypeRFlag: data.AddBrandCompanyTypeRFlag.includes(\"Y\"),\n AddBrandCompanyTypeWFlag: data.AddBrandCompanyTypeWFlag.includes(\"Y\"),\n NewCompanyTypeCFlag: data.NewCompanyTypeCFlag.includes(\"Y\"),\n NewCompanyTypeRFlag: data.NewCompanyTypeRFlag.includes(\"Y\"),\n NewCompanyTypeWFlag: data.NewCompanyTypeWFlag.includes(\"Y\"),\n ProvCompanyTypeCFlag: data.ProvCompanyTypeCFlag.includes(\"Y\"),\n ProvCompanyTypeRFlag: data.ProvCompanyTypeRFlag.includes(\"Y\"),\n ProvCompanyTypeWFlag: data.ProvCompanyTypeWFlag.includes(\"Y\"),\n RmvBrandCompanyTypeCFlag: data.RmvBrandCompanyTypeCFlag.includes(\"Y\"),\n RmvBrandCompanyTypeRFlag: data.RmvBrandCompanyTypeRFlag.includes(\"Y\"),\n RmvBrandCompanyTypeWFlag: data.RmvBrandCompanyTypeWFlag.includes(\"Y\"),\n UsageOverHrchyCompanyTypeCFlag: data.UsageOverHrchyCompanyTypeCFlag.includes(\"Y\"),\n UsageOverHrchyCompanyTypeRFlag: data.UsageOverHrchyCompanyTypeRFlag.includes(\"Y\"),\n UsageOverHrchyCompanyTypeWFlag: data.UsageOverHrchyCompanyTypeWFlag.includes(\"Y\"),\n UsageOverOwnCompanyFlag: data.UsageOverOwnCompanyFlag.includes(\"Y\"),\n ProvOwnCompanyFlag: data.ProvOwnCompanyFlag.includes(\"Y\"),\n AddBrandOwnCompanyFlag : data.AddBrandOwnCompanyFlag .includes(\"Y\"),\n RmvBrandOwnCompanyFlag: data.RmvBrandOwnCompanyFlag.includes(\"Y\"),\n })\n this.preferenceForm.get(\"AddBrandCompanyTypeCFlag\").valueChanges.subscribe(x => { this.update('AddBrandCompanyTypeCFlag',x) })\n this.preferenceForm.get(\"AddBrandCompanyTypeRFlag\").valueChanges.subscribe(x => { this.update('AddBrandCompanyTypeRFlag',x) })\n this.preferenceForm.get(\"AddBrandCompanyTypeWFlag\").valueChanges.subscribe(x => { this.update('AddBrandCompanyTypeWFlag',x) })\n this.preferenceForm.get(\"NewCompanyTypeCFlag\").valueChanges.subscribe(x => { this.update('NewCompanyTypeCFlag',x) })\n this.preferenceForm.get(\"NewCompanyTypeRFlag\").valueChanges.subscribe(x => { this.update('NewCompanyTypeRFlag',x) })\n this.preferenceForm.get(\"NewCompanyTypeWFlag\").valueChanges.subscribe(x => { this.update('NewCompanyTypeWFlag',x) })\n this.preferenceForm.get(\"ProvCompanyTypeCFlag\").valueChanges.subscribe(x => { this.update('ProvCompanyTypeCFlag',x) })\n this.preferenceForm.get(\"ProvCompanyTypeRFlag\").valueChanges.subscribe(x => { this.update('ProvCompanyTypeRFlag',x) })\n this.preferenceForm.get(\"ProvCompanyTypeWFlag\").valueChanges.subscribe(x => { this.update('ProvCompanyTypeWFlag',x) })\n this.preferenceForm.get(\"RmvBrandCompanyTypeCFlag\").valueChanges.subscribe(x => { this.update('RmvBrandCompanyTypeCFlag',x) })\n this.preferenceForm.get(\"RmvBrandCompanyTypeRFlag\").valueChanges.subscribe(x => { this.update('RmvBrandCompanyTypeRFlag',x) })\n this.preferenceForm.get(\"RmvBrandCompanyTypeWFlag\").valueChanges.subscribe(x => { this.update('RmvBrandCompanyTypeWFlag',x) })\n this.preferenceForm.get(\"UsageOverHrchyCompanyTypeCFlag\").valueChanges.subscribe(x => { this.update('UsageOverHrchyCompanyTypeCFlag',x) })\n this.preferenceForm.get(\"UsageOverHrchyCompanyTypeRFlag\").valueChanges.subscribe(x => { this.update('UsageOverHrchyCompanyTypeRFlag',x) })\n this.preferenceForm.get(\"UsageOverHrchyCompanyTypeWFlag\").valueChanges.subscribe(x => { this.update('UsageOverHrchyCompanyTypeWFlag',x) })\n this.preferenceForm.get(\"UsageOverOwnCompanyFlag\").valueChanges.subscribe(x => { this.update('UsageOverOwnCompanyFlag',x) })\n this.preferenceForm.get(\"ProvOwnCompanyFlag\").valueChanges.subscribe(x => { this.update('ProvOwnCompanyFlag',x) })\n this.preferenceForm.get(\"AddBrandOwnCompanyFlag\").valueChanges.subscribe(x => { this.update('AddBrandOwnCompanyFlag',x) })\n this.preferenceForm.get(\"RmvBrandOwnCompanyFlag\").valueChanges.subscribe(x => { this.update('RmvBrandOwnCompanyFlag',x) })\n this.loading = false;\n },\n error: error => {\n this.loading = false;\n console.error('There was an error!');\n }\n });\n \n }\n async update(flag,value){\n let form = new FormData;\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n if(value){form.append(flag, \"Y\");}\n if(!value){form.append(flag, \"N\");}\n\n this.http.post(this.globals.getApiUrl() + 'api/editSPMailCompanyUserNotifyFlags.php', form).subscribe({\n next: data => {\n\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n }\n\n goToNotif() {\n this.notificationTab.selectedIndex = 0\n }\n}\n","\n Notification Preferences\n \n \n\nSelect the notifications you would like to recieve via email. \n
\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n My Company\n \n Wholesaler Company\n \n Partner Company\n \n Customer Company\n
New Company Added\n \n \n \n \n \n \n
Company Provisioned\n \n \n \n \n \n \n \n
Branding Added\n \n \n \n \n \n \n \n
Branding Removed\n \n \n \n \n \n \n \n
Account Overage\n \n \n \n \n \n \n \n
\n
\n","import { Component } from '@angular/core';\nimport { Config } from './config';\nimport { Globals } from './globals';\ndeclare var $: any;\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n constructor(private globals: Globals, private config:Config){this.globals.start(this.config.getProdMode());}\n title = 'StayPrivate Dashboard';\n \n}\n","\n","import { Injectable, OnInit } from '@angular/core';\n\n@Injectable()\nexport class Config{\n private productionMode=true;\n\n getProdMode(){\n return this.productionMode;\n }\n}","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { Globals } from 'src/app/globals';\nimport {MatSnackBar} from '@angular/material/snack-bar';\nimport { Title } from '@angular/platform-browser';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\n\nexport class LoginComponent implements OnInit {\n\n constructor(\n private fb: FormBuilder, \n private http: HttpClient,\n private globals: Globals, \n private router: Router,\n private _snackBar: MatSnackBar,\n private titleService: Title\n\n ) {}\n loading=false;\n img:string\n loginForm = this.fb.group({\n UserName: [this.globals.defaultUsername, Validators.required],\n UserPwd: [this.globals.defaultUserPwd, Validators.required]\n });\n\n ngOnInit(): void {\n this.titleService.setTitle(\"STAY PRIVATE\");\n // if(localStorage.getItem(\"img-url\")!=null){\n // this.img=(this.globals.getImgUrl()+localStorage.getItem(\"img-url\")+\"logo-small.png?t=\"+new Date().getTime())\n // }else{\n this.img=\"https://stayprivate.com/SP_Logo_Icon+Text_Blue.svg\"\n // }\n this.globals.checkTheme();\n \n }\n\n hidePassword = true;\n\n onSubmit() {\n if(this.loginForm.valid) {\n this.loginSend(this.loginForm.value);\n } else {\n }\n \n }\n\n loginSend(loginData){\n this.loading=true;\n let login = new FormData;\n \n login.append('UserName',loginData.UserName);\n login.append('UserPwd',loginData.UserPwd);\n \n this.http.post(this.globals.getApiUrl()+'api/authSPMailUserLogin.php', login).subscribe({\n next: data => {\n \n this.getCompanyType(data.AuthToken,data.SystemUserName)\n //setGlobals\n this.globals.setAuthToken(data.AuthToken);\n this.globals.setSystemUserName(data.SystemUserName);\n this.globals.setUserName(loginData.UserName);\n \n },\n error: error => {\n this.loading=false;\n this._snackBar.open(error.error.ErrorMsg,\"OK\",{duration:5000} );\n }\n });\n\n }\n getTheme(authToken:string,userName:string){\n let param = new HttpParams();\n param = param.append('AuthToken',authToken);\n param = param.append('UserName', userName);\n \n this.http.get(this.globals.getApiUrl()+'api/getSPMailCompanyTheme.php', {params:param}).subscribe({\n next: themedata => { \n //setLocalStorage\n localStorage.setItem('background-color', themedata[\"background-color\"]);\n localStorage.setItem('foreground-color', themedata[\"foreground-color\"]);\n localStorage.setItem('highlight-color', themedata[\"highlight-color\"]);\n localStorage.setItem('border-color', themedata[\"border-color\"]);\n localStorage.setItem('img-url', themedata.logo);\n localStorage.setItem('app-name', themedata[\"app-name\"]);\n //navigate\n if(this.globals.getCompanyType()==\"Customer\"){\n this.router.navigate([\"/mycompany\"])\n } else {\n let pathCheck = this.globals.getLastPath()\n if(pathCheck){\n this.router.navigate([pathCheck])\n }else{\n this.router.navigate([\"/home\"])\n }\n }\n },\n error: error => {\n console.error('There was an error!');\n this.loading=false;\n }\n });\n }\n getCompanyType(authToken:string,userName:string){\n let param = new HttpParams();\n param = param =param.append('AuthToken',authToken);\n param = param.append('UserName', userName);\n this.http.get(this.globals.getApiUrl()+'api/getSPMailCompanyInfo.php', {params:param}).subscribe({next: data => \n { \n this.globals.setCompanyName(data.CompanyName)\n if (data.SPMCompanyType==\"S\"){this.globals.setCompanyType(\"Super\")}\n if (data.SPMCompanyType==\"W\"&&data.IsDealerFlag==\"N\"){this.globals.setCompanyType(\"Wholesaler\")}\n if (data.SPMCompanyType==\"W\"&&data.IsDealerFlag==\"Y\"){this.globals.setCompanyType(\"Wholesaler\")}\n if (data.SPMCompanyType==\"R\"){this.globals.setCompanyType(\"Partner\")}\n if (data.SPMCompanyType==\"C\"){this.globals.setCompanyType(\"Customer\")}\n this.globals.setOwner(data.Owner.UserName==userName)\n //getTheme before navigation\n this.getTheme(authToken,userName)\n },\n error: error => \n {console.error('There was an error!');\n this.loading=false;\n }\n });\n }\n}\n","
\n
\n
\n \n
\n \n
\n \n Dashboard Log In\n \n \n \n\n \n \n \n \n
\n
\n \n Enter your email\n \n \n Email is required\n \n \n
\n
\n
\n
\n \n Enter your password\n \n \n \n Password is required\n \n \n
\n
\n
\n \n
\n \n\n
\n
\n \n \n
\n
\n

By logging into this dashboard you accept that you will use it in accordance with the StayPrivate terms.

\n
\n
\n \n
\n\n\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router } from '@angular/router';\nimport { Globals } from 'src/app/globals';\n\n@Component({\n selector: 'app-edit-theme',\n templateUrl: './edit-theme.component.html',\n styleUrls: ['./edit-theme.component.css']\n})\nexport class EditThemeComponent implements OnInit {\n\n constructor(\n private fb: FormBuilder,\n private globals:Globals, \n private http:HttpClient,\n private _snackBar: MatSnackBar,\n private router: Router\n ) \n { }\n\n \n img: string;\n themeForm = this.fb.group({\n background: [localStorage.getItem('background-color'),[Validators.required,Validators.pattern(\"#[A-Fa-f0-9]{6}\")]],\n foreground: [localStorage.getItem('foreground-color'),[Validators.required,Validators.pattern(\"#[A-Fa-f0-9]{6}\")]],\n highlight: [localStorage.getItem('highlight-color'),[Validators.required,Validators.pattern(\"#[A-Fa-f0-9]{6}\")]],\n border: [localStorage.getItem('border-color'),[Validators.required,Validators.pattern(\"#[A-Fa-f0-9]{6}\")]],\n name : [localStorage.getItem('app-name')],\n \n });\n\n ngOnInit(): void {\n this.globals.refreshAuth();\n \n if(localStorage.getItem(\"img-url\")!=null){\n this.img=(this.globals.getImgUrl()+localStorage.getItem(\"img-url\")+\"logo-small.png?t=\"+new Date().getTime())\n }else{this.img=\"https://stayprivate.com/SP_Logo_Icon+Text_Blue.svg\"}\n \n }\n async onFileChange(evt): Promise {\n let imageForm = new FormData; \n imageForm.append('AuthToken',await this.globals.getAuthToken());\n imageForm.append('UserName',this.globals.getSystemUserName());\n imageForm.append('LogoType',\"S\");\n imageForm.append('UploadFileInd',evt.target.files[0]);\n this.http.post(this.globals.getApiUrl()+'api/uploadSPMailCompanyLogo.php', imageForm).subscribe({\n next: data => { \n \n this.getLogo() \n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg,\"OK\",{duration:5000} );\n }\n });\n }\n async getLogo(){\n let param = new HttpParams();\n param = param.append('AuthToken',await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n \n this.http.get(this.globals.getApiUrl()+'api/getSPMailCompanyTheme.php', {params:param}).subscribe({\n next: themedata => { \n localStorage.setItem('img-url', themedata.logo);\n this.img=(this.globals.getImgUrl()+localStorage.getItem(\"img-url\")+\"logo-small.png?t=\"+new Date().getTime()) \n },\n error: error => {\n console.error('There was an error!');\n }\n });\n }\n async onSubmit(){\n localStorage.setItem('background-color', this.themeForm.value.background);\n localStorage.setItem('foreground-color', this.themeForm.value.foreground);\n localStorage.setItem('highlight-color', this.themeForm.value.highlight);\n localStorage.setItem('border-color', this.themeForm.value.border);\n localStorage.setItem('app-name', this.themeForm.value.name);\n let form = new FormData; \n form.append('AuthToken',await this.globals.getAuthToken());\n form.append('UserName',this.globals.getSystemUserName());\n form.append('background-color',this.themeForm.value.background);\n form.append('foreground-color',this.themeForm.value.foreground);\n form.append('highlight-color',this.themeForm.value.highlight);\n form.append('border-color',this.themeForm.value.border); \n form.append('app-name',this.themeForm.value.name)\n this.themeForm.markAsPristine();\n\n this.http.post(this.globals.getApiUrl()+'api/editSPMailCompanyTheme.php', form).subscribe({\n next: data => {\n this.globals.checkTheme();\n document.getElementById(\"dashboard-title\").innerHTML = localStorage.getItem(\"app-name\");\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n }\n onClear(){\n this.themeForm=this.fb.group({\n background: [localStorage.getItem('background-color')],\n foreground: [localStorage.getItem('foreground-color')],\n highlight: [localStorage.getItem('highlight-color')],\n border: [localStorage.getItem('border-color')],\n name: [localStorage.getItem('app-name')],\n });\n }\n}\n","
\n \n Your theme\n \n
\n
\n
\n
\n

Button background:


\n \n Hex\n \n \n
\n
\n
\n
\n
\n

Title:


\n \n Hex\n \n \n
\n \n
\n
\n
\n
\n
\n
\n

Side bar:


\n \n Hex\n \n \n
\n
\n
\n
\n
\n

Top bar:


\n \n Hex\n \n \n
\n
\n
\n
\n
\n
\n
\n

Dashboard name:

\n \n \n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n

\n Your logo\n \n \n
\n \n
\n
\n \n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { RESOURCES } from './resources.data';\nexport interface Resource {\n docName: string;\n docLink: string;\n imageUrl?: string;\n}\n@Component({\n selector: 'app-resources',\n templateUrl: './resources.component.html',\n styleUrls: ['./resources.component.css']\n})\nexport class ResourcesComponent implements OnInit {\n\n constructor(private titleService: Title) { }\n resources=RESOURCES;\n displayedColumns: string[] = ['Thumbnail','DocName',];\n ngOnInit(): void {\n this.titleService.setTitle(\"Resources - STAY PRIVATE\");\n }\n\n}\n ","\n \n\n \n Resources\n \n \n list\n \n \n view_comfy\n \n \n \n\n \n \n
\n \n \n \n \n
\n \n \n 0\" style=\"width:100%;\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \"\" \n File Name \n {{resource.docName}} \n
\n\n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\nimport { FlatTreeControl } from '@angular/cdk/tree';\n\nexport interface tCompany {\n Name: string\n Id: string\n Ident: string\n\n}\n\n/** File node data with possible child nodes. */\nexport interface FileNode {\n Name: string;\n Id: string;\n DomainList?: string[];\n SPMCompanyType: string;\n InitialTier: string;\n StatusInd:String;\n children?: FileNode[];\n}\n\n/**\n * Flattened tree node that has been created from a FileNode through the flattener. Flattened\n * nodes include level index and whether they can be expanded or not.\n */\nexport interface FlatTreeNode {\n Name: string;\n //type: string;\n level: number;\n expandable: boolean;\n}\n@Component({\n selector: 'app-company-hierarchy',\n templateUrl: './company-hierarchy.component.html',\n styleUrls: ['./company-hierarchy.component.css']\n})\nexport class CompanyHierarchyComponent implements OnInit {\n\n @Input() public parents: any[];\n @Input() public children: any[];\n /** The TreeControl controls the expand/collapse state of tree nodes. */\n treeControl: FlatTreeControl;\n\n /** The TreeFlattener is used to generate the flat list of items from hierarchical data. */\n treeFlattener: MatTreeFlattener;\n\n /** The MatTreeFlatDataSource connects the control and flattener to provide data. */\n dataSource: MatTreeFlatDataSource;\n\n companyList: any[]\n fullCompanyList: any[]\n\n constructor() {\n this.treeFlattener = new MatTreeFlattener(\n this.transformer,\n this.getLevel,\n this.isExpandable,\n this.getChildren);\n\n this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);\n this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\n //this.ngOnInit();\n // \n\n }\n\n /** Transform the data to something the tree can read. */\n transformer(node: FileNode, level: number) {\n return {\n Name: node.Name,\n Id: node.Id,\n DomainList: node.DomainList,\n SPMCompanyType: node.SPMCompanyType,\n StatusInd:node.StatusInd,\n InitialTier: node.InitialTier,\n level: level,\n expandable: !!node.children\n };\n }\n\n /** Get the level of the node */\n getLevel(node: FlatTreeNode) {\n return node.level;\n }\n\n /** Get whether the node is expanded or not. */\n isExpandable(node: FlatTreeNode) {\n return node.expandable;\n }\n\n /** Get whether the node has children or not. */\n hasChild(index: number, node: FlatTreeNode) {\n return node.expandable;\n }\n\n /** Get the children for the node. */\n getChildren(node: FileNode): FileNode[] | null | undefined {\n return node.children;\n }\n currentId;\n processed = false;\n ngOnInit(): void {\n let tempParents = this.parents;\n\n if (!tempParents[0].processed) {\n\n this.currentId = this.parents[this.parents.length - 1].Id;\n tempParents[tempParents.length - 1].children = this.children;\n\n let i;\n for (i = (tempParents.length - 1); i >= 0; i--) {\n if (i > 0) {\n tempParents[i - 1].children = [tempParents[i]]\n tempParents.splice(i, 1)\n }\n if (i == 0) {\n try {\n tempParents[0].processed = this.currentId;\n this.dataSource.data = tempParents;\n this.treeControl.expandAll();\n } catch (error) {\n console.log(error)\n }\n\n }\n }\n } else {\n this.currentId = tempParents[0].processed;\n\n this.dataSource.data = tempParents; \n this.treeControl.expandAll();\n }\n }\n\n}\n","\n \n
\n \n\n {{node.Name}}\n {{node.Name}}\n\n \n \n \n \n
\n\n\n \n\n
\n\n \n
\n {{node.Name}}\n {{node.Name}}\n \n \n \n \n \n
\n
\n
","import { getSyntheticPropertyName } from '@angular/compiler/src/render3/util';\nimport { Component, EventEmitter, Input, OnInit, OnDestroy, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport 'froala-editor/js/plugins.pkgd.min.js';\nimport { domain } from 'process';\n// import 'froala-editor/js/third_party/spell_checker.min.js';\n\n@Component({\n selector: 'app-company-config',\n templateUrl: './company-config.component.html',\n styleUrls: ['./company-config.component.css']\n})\nexport class CompanyConfigComponent implements OnInit, OnDestroy {\n\n constructor(\n private fb: FormBuilder,\n ) { }\n @Input() public company: any;\n @Input() public editMode: boolean;\n @Output() public showConfigEdit = new EventEmitter();\n @Output() public configDirty = new EventEmitter();\n @Output() public configFormM = new EventEmitter();\n\n configForm = this.fb.group({\n CompanyKeyword: null,\n IgnoreKeyword: null,\n domains: null,\n RelaxedList: null,\n SmartList: null,\n StandardList: null,\n EnforcementType: null,\n EnforcementTypeFull: null,\n Statement: null,\n });\n\n ngOnInit(): void {\n this.showConfigEdit.emit(true);\n this.configForm.patchValue({\n CompanyKeyword: this.company.CompanyKeyword,\n IgnoreKeyword: this.company.IgnoreKeyword,\n domains: this.company.IgnoreKeyword,\n RelaxedList: this.company.EmailProcessRulesRelaxedList.join('\\n'),\n SmartList: this.company.EmailProcessRulesSmartList.join('\\n'),\n StandardList: this.company.EmailProcessRulesStandardList.join('\\n'),\n EnforcementType: this.company.EmailProcessRulesDomainList[0].RulesInd,\n EnforcementTypeFull: this.getTypeName(this.company.EmailProcessRulesDomainList[0].RulesInd),\n Statement: this.company.DefProtectSensitiveInfoText,\n })\n\n \n this.configForm.valueChanges.subscribe(val => {\n this.configDirty.emit(this.configForm.dirty);\n this.configFormM.emit(this.configForm.controls)\n })\n }\n ngOnChanges() {\n if (this.editMode) {\n this.configForm.enable()\n } else {\n this.configForm.disable()\n this.configForm.patchValue({\n CompanyKeyword: this.company.CompanyKeyword,\n IgnoreKeyword: this.company.IgnoreKeyword,\n domains: this.company.IgnoreKeyword,\n EnforcementType: this.company.EmailProcessRulesDomainList[0].RulesInd,\n EnforcementTypeFull: this.getTypeName(this.company.EmailProcessRulesDomainList[0].RulesInd),\n Statement: this.company.DefProtectSensitiveInfoText,\n })\n } \n\n }\n ngOnDestroy() {\n this.showConfigEdit.emit(false);\n }\n \n getTypeName(code: string) {\n if (code == 'RX') {\n return 'Keyword Only'\n } else if (code == 'SM') {\n return 'Content Based'\n } else if (code == 'ST') {\n return 'Enforced'\n }\n }\n //TEXT EDITOR OPTIONS\n public options: Object = {\n events: {\n 'froalaEditor.initialized': function (e, editor) {\n editor.edit.off();\n }\n },\n attribution: false,\n key:'dKA5cC3C2B2H2E2B5A3D-17d1F1FOOLb2KOPQGe1CWCQVTDWXGcA5A4D4B3E4B2D2E3B1A1==',\n charCounterCount: true,\n fontSizeSelection: true,\n fontSize: ['8', '10', '11', '12', '14', '16', '18', '20', '22', '24', '26', '28', '30', '32', '34', '36', '40', '44', '48', '40', '52', '60', '72', '96'],\n fontFamily: {\n 'Arial,Helvetica,sans-serif': 'Arial',\n 'Georgia,serif': 'Georgia',\n 'Impact,Charcoal,sans-serif': 'Impact',\n 'Inconsolata,sans-serif': 'Inconsolata',\n 'Open Sans,sans-serif': 'Open Sans',\n \"'Poppins',sans-serif\": 'Poppins',\n 'Roboto Mono,sans-serif': 'Roboto Mono',\n 'Tahoma,Geneva,sans-serif': 'Tahoma',\n \"'Times New Roman',Times,serif\": 'Times New Roman',\n 'Verdana,Geneva,sans-serif': 'Verdana',\n },\n toolbarButtons: {\n 'moreText': {\n 'buttons': ['fontFamily', 'fontSize', 'bold', 'italic', 'underline', 'textColor', 'backgroundColor', 'strikeThrough', 'subscript', 'superscript', 'clearFormatting'],\n 'buttonsVisible': 5\n },\n 'moreParagraph': {\n 'buttons': ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify', 'formatOLSimple', 'formatUL', 'paragraphFormat', 'lineHeight', 'outdent', 'indent'],\n 'buttonsVisible': 4\n },\n 'moreRich': {\n 'buttons': ['insertHR', 'insertLink', 'insertImage', 'insertTable', 'emoticons', 'fontAwesome', 'specialCharacters', 'embedly'],\n 'buttonsVisible': 0\n },\n 'moreMisc': {\n 'buttons': ['undo', 'redo', 'spellChecker', 'selectAll',], 'align': 'right'\n }\n }\n };\n\n}\n","
\n \n
\n Company Keyword\n \n\n \n \n \n
\n\n \n
\n Ignore Keyword\n \n\n \n \n \n
\n \n
\n Encryption Mode\n \n\n \n \n \n
\n
\n Encryption Mode\n \n \n \n Keyword Only\n Content Based\n Enforced\n \n \n
\n
\n\n
\n \n
\n Keyword Only Users\n \n \n \n \n
\n \n
\n Content Based Users\n \n \n \n \n
\n \n
\n Enforced Users\n \n \n \n \n
\n
\n\n Welcome Text\n \n
\n
\n
","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { AppComponent } from './app.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NgxChartsModule }from '@swimlane/ngx-charts';\n\nimport { CompaniesComponent } from './companies/companies.component';\nimport { CompanyDetailComponent } from './components/company-detail/company-detail.component';\nimport { MessagesComponent } from './messages/messages.component';\nimport { DashboardComponent } from './dashboard/dashboard.component';\nimport { LoginTwoComponent } from './login-two/login-two.component';\n\nimport { HttpClientInMemoryWebApiModule } from 'angular-in-memory-web-api';\nimport { InMemoryDataService } from './in-memory-data.service';\n\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { NavigationComponent } from './navigation/navigation.component';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatListModule } from '@angular/material/list';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { TableComponent } from './table/table.component';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSortModule } from '@angular/material/sort';\nimport { LoginComponent } from './components/login/login.component';\nimport { CompanyListComponent } from './components/company-list/company-list.component';\nimport { TreeComponent } from './tree/tree.component';\nimport { MatTreeModule } from '@angular/material/tree';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\nimport { HomeComponent } from './components/home/home.component';\nimport { LineGraphComponent } from './components/line-graph/line-graph.component';\nimport { Globals } from './globals';\nimport { AddCompanyComponent } from './components/add-company/add-company.component';\nimport { EditThemeComponent } from './components/edit-theme/edit-theme.component';\nimport { UserListComponent } from './components/user-list/user-list.component';\nimport { CompanyStatsComponent } from './components/company-stats/company-stats.component';\nimport { AddUserComponent } from './components/add-user/add-user.component';\nimport { MatchingValidatorDirective } from './components/add-user/matching-validator.directive';\nimport { MyAccountComponent } from './components/my-account/my-account.component';\nimport { MyCompanyComponent } from './components/my-company/my-company.component';\nimport { EditPasswordComponent } from './components/edit-password/edit-password.component';\nimport { ResetPasswordComponent } from './components/reset-password/reset-password.component';\nimport { CompanyCheckerComponent } from './components/company-checker/company-checker.component'\nimport { Config } from './config';\nimport { ResourcesComponent } from './components/resources/resources.component';\nimport { ContactUsComponent } from './components/contact-us/contact-us.component';\nimport { CsvDownloadDialogComponent } from './components/csv-download-dialog/csv-download-dialog.component';\nimport { CsvUpdateDialogComponent } from './components/csv-update-dialog/csv-update-dialog.component';\nimport { DetailDeveloperComponent } from './components/detail-developer/detail-developer.component';\nimport { CompanyBillingComponent } from './components/company-billing/company-billing.component';\nimport { CompanyAdvancedComponent } from './components/company-advanced/company-advanced.component';\nimport { DeveloperComponent } from './components/developer/developer.component';\nimport { ConfirmDialogComponent } from './components/confirm-dialog/confirm-dialog.component';\nimport { CompanySetupComponent } from './components/company-setup/company-setup.component';\nimport { CompanySetupProcessComponent } from './components/company-setup-process/company-setup-process.component';\nimport { CompanySetupPageComponent } from './components/company-setup-page/company-setup-page.component';\nimport { SetupMicrosoftComponent } from './components/setup-microsoft/setup-microsoft.component';\nimport { SetupGoogleComponent } from './components/setup-google/setup-google.component';\nimport { SetupSpfComponent } from './components/setup-spf/setup-spf.component';\nimport { SetupDkimComponent } from './components/setup-dkim/setup-dkim.component';\nimport { SetupRoundtripComponent } from './components/setup-roundtrip/setup-roundtrip.component';\nimport { SetupCompleteComponent } from './components/setup-complete/setup-complete.component';\nimport { SetupSteps } from './setupSteps';\nimport { ProvisionCompleteComponent } from './components/provision-complete/provision-complete.component';\nimport { BillingService } from './components/company-billing/billing.service';\nimport { CompanyLogoComponent } from './components/company-logo/company-logo.component';\nimport { NotificationsComponent } from './components/notifications/notifications.component';\nimport { RemoveLogoComponent } from './components/company-logo/remove-logo/remove-logo.component';\nimport { PreferencesComponent } from './components/notifications/preferences/preferences.component';\nimport { CompanyHierarchyComponent } from './components/company-hierarchy/company-hierarchy.component';\nimport { Error404Component } from './components/error404/error404.component';\nimport { ConfirmPopupComponent } from './components/confirm-popup/confirm-popup.component';\nimport { BillingComponent } from './components/billing/billing.component';\nimport { LineGraph2Component } from './components/line-graph2/line-graph2.component';\nimport { CompanyConfigComponent } from './components/company-config/company-config.component';\nimport { FroalaEditorModule, FroalaViewModule } from 'angular-froala-wysiwyg';\nimport { ComposeComponent } from './components/compose/compose.component';\nimport { SpSpinnerComponent } from './components/sp-spinner/sp-spinner.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n CompaniesComponent,\n CompanyDetailComponent,\n MessagesComponent,\n DashboardComponent,\n LoginTwoComponent,\n NavigationComponent,\n TableComponent,\n LoginComponent,\n CompanyListComponent,\n TreeComponent,\n ForgotPasswordComponent,\n HomeComponent,\n LineGraphComponent,\n AddCompanyComponent,\n EditThemeComponent,\n UserListComponent,\n CompanyStatsComponent,\n AddUserComponent,\n MatchingValidatorDirective,\n MyAccountComponent,\n MyCompanyComponent,\n EditPasswordComponent,\n ResetPasswordComponent,\n CompanyCheckerComponent,\n ResourcesComponent,\n ContactUsComponent,\n CsvDownloadDialogComponent,\n CsvUpdateDialogComponent,\n DetailDeveloperComponent,\n CompanyBillingComponent,\n CompanyAdvancedComponent,\n DeveloperComponent,\n ConfirmDialogComponent,\n CompanySetupComponent,\n CompanySetupProcessComponent,\n CompanySetupPageComponent,\n SetupMicrosoftComponent,\n SetupGoogleComponent,\n SetupSpfComponent,\n SetupDkimComponent,\n SetupRoundtripComponent,\n SetupCompleteComponent,\n ProvisionCompleteComponent,\n CompanyLogoComponent,\n NotificationsComponent,\n RemoveLogoComponent,\n PreferencesComponent,\n CompanyHierarchyComponent,\n Error404Component,\n ConfirmPopupComponent,\n BillingComponent,\n LineGraph2Component,\n CompanyConfigComponent,\n ComposeComponent,\n SpSpinnerComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n FormsModule,\n ReactiveFormsModule,\n AppRoutingModule,\n MatSliderModule,\n HttpClientModule,\n // The HttpClientInMemoryWebApiModule module intercepts HTTP requests\n // and returns simulated server responses.\n // Remove it when a real server is ready to receive requests.\n // HttpClientInMemoryWebApiModule.forRoot(\n // InMemoryDataService, { dataEncapsulation: false }\n // ),\n NgxChartsModule,\n FroalaEditorModule.forRoot(), \n FroalaViewModule.forRoot(),\n MatInputModule,\n MatButtonModule,\n MatSelectModule,\n MatRadioModule,\n MatMenuModule,\n MatCheckboxModule,\n MatCardModule,\n MatNativeDateModule,\n MatDividerModule,\n MatTooltipModule,\n MatExpansionModule,\n LayoutModule,\n MatToolbarModule, \n MatButtonToggleModule, \n MatProgressSpinnerModule,\n MatSidenavModule,\n MatIconModule,\n MatDatepickerModule,\n MatTabsModule,\n MatStepperModule,\n MatListModule,\n MatTableModule,\n MatPaginatorModule,\n MatSortModule,\n MatTreeModule,\n MatSnackBarModule,\n MatDialogModule\n ],\n providers: [Globals,SetupSteps,Config,BillingService,{ provide: MAT_DATE_LOCALE, useValue: 'en-GB' }],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Title } from '@angular/platform-browser';\nimport { Company } from 'src/app/company.model';\nimport { Globals } from 'src/app/globals';\nimport { CompanyCheckerComponent } from '../company-checker/company-checker.component';\nimport { CsvDownloadDialogComponent } from '../csv-download-dialog/csv-download-dialog.component';\ninterface SelectorType {\n value: string;\n viewValue: string;\n flag?:string;\n}\n@Component({\n selector: 'app-my-company',\n templateUrl: './my-company.component.html',\n styleUrls: ['./my-company.component.css'], \n encapsulation : ViewEncapsulation.None,\n})\nexport class MyCompanyComponent implements OnInit {\n \n constructor( \n private globals: Globals, \n private fb: FormBuilder, \n private http: HttpClient, \n public dialog: MatDialog,\n private titleService: Title\n ) { }\n tier = \"\";\n \n company: any;\n companytype:string;\n\n editMode=false;\n companyID = this.globals.getCompanyId();\n myCompanyType = this.globals.getCompanyType();\n companyIdentTitle;\n notFound = false;\n \n \n \n\n companyTypes: SelectorType[] = [\n {value: 'S', viewValue: 'Super', flag: 'N'},\n {value: 'W', viewValue: 'Wholesaler', flag: 'N'},\n {value: 'W', viewValue: 'Dealer', flag: 'Y'},\n {value: 'R', viewValue: 'Partner', flag: 'Y'},\n {value: 'C', viewValue: 'Customer', flag: 'N'},\n ];\n initialTiers: SelectorType[] = [\n {value: '0', viewValue: 'Not applicable'},\n {value: '100', viewValue: '100 Recipients'},\n {value: '101', viewValue: '100 Recipients + Branding'},\n {value: '500', viewValue: '500 Recipients'},\n {value: '501', viewValue: '500 Recipients + Branding'},\n {value: '1000', viewValue: '1,000 Recipients'},\n {value: '99999', viewValue: 'Unlimited'}\n ];\n timeFormats: SelectorType[] = [\n { value: 'D', viewValue: 'Days', },\n { value: 'H', viewValue: 'Hours', },\n { value: 'M', viewValue: 'Minutes' },\n { value: 'S', viewValue: 'Seconds' },\n ];\n addCompanyForm = this.fb.group({\n CompanyIdent: [null, Validators.required],\n CompanyName: [null, Validators.required],\n CompanyType: [null, Validators.required],\n CompanyAddress: [null],\n CompanyTelNo: [null],\n CompanyVatNo: [null],\n InitialTier: [null],\n ContactName: [null],\n ContactEmail: [null],\n StatusInd: [null],\n ContactTelNo: [null],\n DataCountryCode: [null],\n AllowMsgAutoDeleteFlag:[null],\n DomainList: new FormArray([]),\n SetUpUserEmail: [null],\n SeatCount: [null]\n });\n keyword:string;\n expireKeyword:string;\n\n setupMethod:string;\n canAutoDelete: boolean;\n showEdit=true;\n loading = true;\n onTabChanged($event) {\n if ($event.index === 0) {\n this.showEdit = true;\n //this.onCancel()\n\n this.update();\n this.addCompanyForm.disable();\n this.editMode = false;\n } else { this.showEdit = false;this.update(); }\n }\n ngOnInit(): void {\n this.titleService.setTitle(\"My Company - STAY PRIVATE\");\n this.editMode = false;\n this.globals.refreshAuth();\n this.company = { Name: \"\", Id: \"\", CompanyId: \"\", CompanyIdent: \"\", CompanyName: \"\", ParentCompanyId: \"\", IsDealerFlag: \"\",MsgAutoDeleteTag:\"\", SPMCompanyType: \"\",AllowMsgAutoDeleteFlag:\"\",MaxTimeToDeleteInd:\"\",TimeToDeleteAfterReadInd:\"\",DataCountryCode:\"\", StatusInd:\"\" }\n this.update()\n if (this.editMode) { this.addCompanyForm.enable(); }\n else { this.addCompanyForm.disable(); }\n }\n editClicked() {\n this.editMode = !this.editMode;\n this.addCompanyForm.enable();\n this.addCompanyForm.controls['CompanyIdent'].disable();\n this.addCompanyForm.controls['CompanyType'].disable();\n this.addCompanyForm.controls['DataCountryCode'].disable();\n if (!(this.tier == '0' || this.tier == '')) {\n this.addCompanyForm.controls['InitialTier'].disable();\n } else if (this.tier == '0') { this.addCompanyForm.controls['InitialTier'].setValue('0') }\n }\n seatCount = 0;\n currentSeatCount = 0;\n seatCountView;\n minSeat = 5;\n async update() {\n let param1 = new HttpParams();\n param1 = param1.append('AuthToken', await this.globals.getAuthToken());\n param1 = param1.append('UserName', this.globals.getSystemUserName());\n param1 = param1.append('companyId', this.companyID);\n this.http.get(this.globals.getServicesUrl() + 'company/getCompanyDetails', { params: param1 }).subscribe({\n next: data => {\n if (data[0] && data[0].keyword && data[0].keyword != \"\") {\n this.keyword = data[0].keyword\n if (this.expireKeyword == \"undefined-expire\") {\n this.expireKeyword = data[0].keyword + \"-expire\"\n }\n if (data[0].setupMethod == 'mx') {\n this.setupMethod = 'Microsoft 365';\n }\n if (data[0].setupMethod == 'google') {\n this.setupMethod = 'Google Workspace'\n }\n if (data[0].setupMethod == 'othermx') {\n this.setupMethod = 'Other'\n }\n if (data[0].setupMethod == 'spf') {\n this.setupMethod = 'Other'\n }\n }\n if (data[0] && data[0].autoDeleteFlag) {\n this.canAutoDelete = data[0].autoDeleteFlag.includes(\"Y\")\n }\n if (data[0] && data[0].seatCount) {\n this.seatCount=parseInt(data[0].seatCount)\n this.currentSeatCount=parseInt(data[0].seatCount)\n this.addCompanyForm.controls['SeatCount'].setValue(this.seatCount);\n if(this.seatCount<=3){this.seatCountView = \"Up to 3 Users\"}\n if(this.seatCount>3 && this.seatCount < 25){ this.seatCountView = this.seatCount+\" Users\"}\n if(this.seatCount>=25){this.seatCountView = \"Unlimtied Users\"}\n\n }\n },\n error: error => { console.error('There was an error!'); }\n });\n let param = new HttpParams();\n param = param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n param = param.append('CompanyId', this.companyID);\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: data => {\n this.company = data\n this.tier = this.company.InitialTier\n if (this.company.SPMCompanyType == \"S\") { this.companytype = \"Super\" }\n if (this.company.SPMCompanyType == \"W\" && this.company.IsDealerFlag == \"N\") { this.companytype = \"Wholesaler\" }\n if (this.company.SPMCompanyType == \"W\" && this.company.IsDealerFlag == \"Y\") { this.companytype = \"Wholesaler\" }\n if (this.company.SPMCompanyType == \"R\") { this.companytype = \"Partner\" }\n if (this.company.SPMCompanyType == \"C\") { this.companytype = \"Customer\" }\n\n try {\n this.company.InitialTier = this.globals.getTier(this.company.InitialTier).name;\n \n } catch (error) {\n this.company.InitialTier = \"Unknown\"\n \n }\n if (this.company.DataCountryCode == \"GB\") { this.company.DataCountryCode = \"United Kingdom\" }\n if (this.company.DataCountryCode == \"DE\") { this.company.DataCountryCode = \"European Union\" }\n if (this.company.DataCountryCode == \"US\") { this.company.DataCountryCode = \"United States\" }\n if (this.company.MaxTimeToDeleteInd == \"\") {this.company.MaxTimeToDeleteInd=\"D:7\"}\n if (this.company.TimeToDeleteAfterReadInd == \"\") {this.company.TimeToDeleteAfterReadInd=\"M:10\"}\n if (this.company.MsgAutoDeleteTag == \"\") {this.expireKeyword=this.keyword+\"-expire\"}else{this.expireKeyword=this.company.MsgAutoDeleteTag}\n let deleteTime=this.company.MaxTimeToDeleteInd.split(\":\")\n let deleteRead=this.company.TimeToDeleteAfterReadInd.split(\":\")\n this.titleService.setTitle(this.company.CompanyName+\" - STAY PRIVATE\");\n this.addCompanyForm = this.fb.group({\n CompanyIdent: [{ value: this.company.CompanyIdent, disabled: this.editMode }, Validators.required],\n CompanyName: [{ value: this.company.CompanyName, disabled: this.editMode }, Validators.required],\n CompanyType: [{ value: this.companytype, disabled: this.editMode }, Validators.required],\n CompanyAddress: [{ value: this.company.CompanyAddress, disabled: this.editMode }],\n CompanyTelNo: [{ value: this.company.CompanyTelNo, disabled: this.editMode }],\n CompanyVatNo: [{ value: this.company.CompanyVatNo, disabled: this.editMode }],\n InitialTier: [{ value: this.company.InitialTier, disabled: this.editMode }],\n DataCountryCode: [{ value: this.company.DataCountryCode, disabled: this.editMode }],\n StatusInd:[{ value: this.company.StatusInd, disabled: this.editMode }],\n ContactName: [{ value: this.company.ContactName, disabled: this.editMode }],\n ContactEmail: [{ value: this.company.ContactEmail, disabled: this.editMode }],\n ContactTelNo: [{ value: this.company.ContactTelNo, disabled: this.editMode }],\n AllowMsgAutoDeleteFlag: [{ value: this.company.AllowMsgAutoDeleteFlag.includes(\"Y\"), disabled: this.editMode }],\n MaxTimeToDeleteInd: [{ value: deleteTime[1], disabled: this.editMode }],\n MaxTimeToDeleteIndFormat: [{ value: deleteTime[0], disabled: this.editMode }],\n TimeToDeleteAfterReadInd: [{ value: deleteRead[1], disabled: this.editMode }],\n TimeToDeleteAfterReadIndFormat: [{ value: deleteRead[0], disabled: this.editMode }],\n DomainList: [{ value: this.company.DomainList, disabled: this.editMode }],\n EmailProcessRulesDomainList: [{ value: this.company.EmailProcessRulesDomainList, disabled: this.editMode }],\n SeatCount:[{value: this.seatCount,disabled:this.editMode}]\n });\n this.http.get(this.globals.getServicesUrl() + 'company/getCompanyDetails', { params: param1 }).subscribe({\n next: data => {\n if (data[0] && data[0].seatCount) {\n this.seatCount=data[0].seatCount\n\n this.addCompanyForm.controls['SeatCount'].setValue(this.seatCount);\n if(this.seatCount<=3){this.seatCountView = \"Up to 3 Users\"}\n if(this.seatCount>3 && this.seatCount < 25){ this.seatCountView = this.seatCount+\" Users\"}\n if(this.seatCount>=25){this.seatCountView = \"Unlimtied Users\"}\n }\n },\n error: error => { console.error('There was an error!'); }\n });\n if(this.addCompanyForm.value.InitialTier=='Professional'||this.addCompanyForm.value.InitialTier=='Professional Plus'||this.addCompanyForm.value.InitialTier=='Strict'){\n if(this.addCompanyForm.value.InitialTier=='Professional'){this.minSeat=5}\n if(this.addCompanyForm.value.InitialTier=='Professional Plus'){this.minSeat=10}\n if(this.addCompanyForm.value.InitialTier=='Strict'){this.minSeat=15}\n if(this.seatCount { console.error('There was an error!');this.notFound = true; this.loading = false; }\n });\n \n }\n\n\n onSubmit() {\n if(!this.addCompanyForm.dirty&&this.currentSeatCount!=this.seatCount ){\n this.updateSeatCount(this.addCompanyForm.value)\n }else if (this.addCompanyForm.dirty&&this.addCompanyForm.valid) {\n this.addCompanyForm.value.DomainList = \"\";\n this.addCompany(this.addCompanyForm.value);\n }\n }\n add(){\n console.log(this.seatCount,this.minSeat)\n if(this.seatCount(this.globals.getServicesUrl() + 'company/updateUserCount', form2).subscribe({\n next: data => {\n this.update();\n this.onCancel()\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n \n }\n async addCompany(formData) {\n this.loading = true\n\n let form = new FormData;\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('CompanyId', this.companyID);\n form.append('CompanyName', formData.CompanyName);\n if (formData.CompanyAddress != null) { form.append('CompanyAddress', formData.CompanyAddress); }\n if (formData.CompanyTelNo != null) { form.append('CompanyTelNo', formData.CompanyTelNo); }\n if (formData.CompanyVatNo != null) { form.append('CompanyVatNo', formData.CompanyVatNo); }\n if (formData.ContactName != null) { form.append('ContactName', formData.ContactName); }\n if (formData.ContactEmail != null) { form.append('ContactEmail', formData.ContactEmail); }\n if (formData.ContactTelNo != null) { form.append('ContactTelNo', formData.ContactTelNo); }\n if (formData.AllowMsgAutoDeleteFlag == true) { \n form.append('AllowMsgAutoDeleteFlag', \"Y\");\n form.append('MaxTimeToDeleteInd', formData.MaxTimeToDeleteIndFormat +\":\"+formData.MaxTimeToDeleteInd);\n form.append('TimeToDeleteAfterReadInd', formData.TimeToDeleteAfterReadIndFormat +\":\"+formData.TimeToDeleteAfterReadInd);\n form.append('MsgAutoDeleteTag', this.keyword+\"-expire\");\n } else { form.append('AllowMsgAutoDeleteFlag', \"N\"); }\n this.http.post(this.globals.getApiUrl() + 'api/editSPMailCompany.php', form).subscribe({\n next: async data => {\n if(formData.SeatCount!=this.seatCount &&this.myCompanyType!='Customer'){\n let form2 = new FormData;\n form2.append('AuthToken', await this.globals.getAuthToken());\n form2.append('UserName', this.globals.getSystemUserName());\n form2.append('CompanyId', this.companyID);\n form2.append('SeatCount', formData.SeatCount);\n this.http.post(this.globals.getServicesUrl() + 'company/updateUserCount', form2).subscribe({\n next: data => {\n this.update();\n this.onCancel()\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n }else{\n this.update();\n this.onCancel()\n }\n\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n }\n onCancel() {\n //this.addCompanyForm.reset();\n this.update();\n this.loading = true\n\n this.addCompanyForm.disable();\n this.editMode = false;\n }\n showConfigEdit = false;\n configDirty = false;\n editConfigMode = false;\n newConfig: any\n getConfig(form:FormGroup){\n this.newConfig = form;\n }\n showConfig(bool:boolean){ this.showConfigEdit = bool; this.editConfigMode = false; }\n onConfigDirty(bool:boolean) { this.configDirty = bool; }\n formatArray(val:any){\n // var temp = this.configForm.controls['domains'].value.replaceAll(' ', ';')\n var temp = val.replaceAll(' ', ';')\n temp = temp.replaceAll('\t', ';')\n temp = temp.replaceAll(',', ';')\n temp = temp.replaceAll('\\n', ';')\n temp = temp.split(';')\n temp = temp.filter(function (el) {\n if(el != null && el !=''){\n return el;\n }\n });\n return temp\n }\n editConfigClicked() {\n this.editConfigMode = !this.editConfigMode;\n }\n onConfigCancel() {\n this.editConfigMode = false;\n }\n async onConfigSubmit(){\n /*\n this.configForm.patchValue({\n CompanyKeyword: this.company.CompanyKeyword,\n IgnoreKeyword: this.company.IgnoreKeyword,\n domains: this.company.IgnoreKeyword,\n RelaxedList: this.company.EmailProcessRulesRelaxedList.join('\\n'),\n SmartList: this.company.EmailProcessRulesSmartList.join('\\n'),\n StandardList: this.company.EmailProcessRulesStandardList.join('\\n'),\n EnforcementType: this.company.EmailProcessRulesDomainList[0].RulesInd,\n EnforcementTypeFull: this.getTypeName(this.company.EmailProcessRulesDomainList[0].RulesInd),\n Statement: this.company.DefProtectSensitiveInfoText,\n })\n */\n var tempRelaxedList = this.formatArray(this.newConfig.RelaxedList.value);\n var tempSmartList = this.formatArray(this.newConfig.SmartList.value);\n var tempStandardList = this.formatArray(this.newConfig.StandardList.value);\n\n let form = new FormData;\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('CompanyId', this.companyID);\n\n if (this.company.CompanyKeyword != this.newConfig.CompanyKeyword.value || this.newConfig.CompanyKeyword.value =='') { \n if(this.newConfig.CompanyKeyword.value!=''){form.append('CompanyKeyword', this.newConfig.CompanyKeyword.value);}else{form.append('CompanyKeyword', '#stayprivate');}\n }\n if (this.company.IgnoreKeyword != this.newConfig.IgnoreKeyword.value || this.newConfig.IgnoreKeyword.value =='') { \n if(this.newConfig.IgnoreKeyword.value!=''){form.append('IgnoreKeyword', this.newConfig.IgnoreKeyword.value);}else{form.append('IgnoreKeyword', '#ignore');}\n }\n if (this.company.EmailProcessRulesRelaxedList != tempRelaxedList) { form.append('EmailProcessRulesRelaxedList', tempRelaxedList); }\n if (this.company.EmailProcessRulesSmartList != tempSmartList) { form.append('EmailProcessRulesSmartList', tempSmartList); }\n if (this.company.EmailProcessRulesStandardList != tempStandardList) { form.append('EmailProcessRulesStandardList', tempStandardList); }\n\n if (this.company.EmailProcessRulesDomainList[0].RulesInd != this.newConfig.EnforcementType.value) { form.append('EmailProcessRulesDomainList', this.company.EmailProcessRulesDomainList[0].Domain+':'+this.newConfig.EnforcementType.value); }\n if (this.company.DefProtectSensitiveInfoText != this.newConfig.Statement.value) { form.append('DefProtectSensitiveInfoText', this.newConfig.Statement.value); }\n\n this.http.post(this.globals.getApiUrl() + 'api/editSPMailCompany.php', form).subscribe({\n next: async data => { this.update(); this.editConfigMode=false},\n error: error => {\n console.error('There was an error!');\n }\n });\n \n }\n\n}\n\n","\n \n\n\n\n\n \n {{addCompanyForm.value.CompanyName}}\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n\n \n \n \n \n
\n\n \n
\n Company name\n \n \n \n \n Company name is required\n \n \n
\n \n
\n Unique company identifier\n \n \n \n Company identifier is required\n \n \n
\n \n
\n Company type\n \n \n \n
\n\n \n
\n Pricing tier\n \n \n \n
\n
\n Pricing tier\n \n \n \n \n {{initialTier.name}}\n \n \n \n
\n\n
\n Licenses\n \n \n Up to 3 Users\n 4 Users\n 5 Users\n 6 Users\n 7 Users\n 8 Users\n 9 Users\n 10 Users\n 11 Users\n 12 Users\n 13 Users\n 14 Users\n 15 Users\n 16 Users\n 17 Users\n 18 Users\n 19 Users\n 20 Users\n 21 Users\n 22 Users\n 23 Users\n 24 Users\n Unlimited Users\n \n \n
\n
\n Licenses\n \n \n \n
\n
\n User count\n \n \n \n
\n
\n User count\n \n \n \n
\n \n
\n Company domain\n \n \n \n \n \n
\n \n
\n Mail server\n \n \n \n
\n \n
\n Company keyword\n \n \n \n
\n
\n Data location\n \n \n \n Data location is required\n \n \n
\n \n \n \n \n \n Settings\n \n \n \n
\n Email auto-deletion enabled: \n \n
\n
\n Auto delete keyword\n \n \n \n
\n\n \n
\n Automatically delete emails after:\n \n \n \n \n\n \n \n \n {{timeFormat.viewValue}}\n \n \n \n \n
\n
\n Automatically delete read emails after:\n \n \n \n \n \n \n {{timeFormat.viewValue}}\n \n \n \n
\n
\n \n \n \n Contact Details\n \n \n \n \n
\n Contact name\n \n \n \n
\n \n
\n Contact email\n \n \n \n
\n \n
\n Contact telephone number\n \n \n \n
\n \n
\n Company telephone number\n \n \n \n
\n \n
\n VAT number\n \n \n \n
\n \n
\n Address\n \n \n \n
\n \n
\n
\n
\n
\n
Account Suspended
Please contact\n support for more information.
\n
\n \n \n \n
Account Suspended
Please contact support\n for more information.
\n
\n
\n \n \n \n
Account Suspended
Please contact\n support for more information.
\n
\n
\n \n \n \n \n
Account Suspended
Please contact support\n for more information.
\n
\n
\n \n \n \n \n \n
Account Suspended
Please contact support\n for more information.
\n
\n
\n \n \n \n \n \n \n \n \n
Account Suspended
Please contact\n support for more information.
\n
\n
\n
\n
","import { DataSource } from '@angular/cdk/collections';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { map } from 'rxjs/operators';\nimport { Observable, of as observableOf, merge } from 'rxjs';\n\n// TODO: Replace this with your own data model type\nexport interface TableItem {\n name: string;\n id: number;\n}\n\n// TODO: replace this with real data from your application\nconst EXAMPLE_DATA: TableItem[] = [\n {id: 1, name: 'Hydrogen'},\n {id: 2, name: 'Helium'},\n {id: 3, name: 'Lithium'},\n {id: 4, name: 'Beryllium'},\n {id: 5, name: 'Boron'},\n {id: 6, name: 'Carbon'},\n {id: 7, name: 'Nitrogen'},\n {id: 8, name: 'Oxygen'},\n {id: 9, name: 'Fluorine'},\n {id: 10, name: 'Neon'},\n {id: 11, name: 'Sodium'},\n {id: 12, name: 'Magnesium'},\n {id: 13, name: 'Aluminum'},\n {id: 14, name: 'Silicon'},\n {id: 15, name: 'Phosphorus'},\n {id: 16, name: 'Sulfur'},\n {id: 17, name: 'Chlorine'},\n {id: 18, name: 'Argon'},\n {id: 19, name: 'Potassium'},\n {id: 20, name: 'Calcium'},\n];\n\n/**\n * Data source for the Table view. This class should\n * encapsulate all logic for fetching and manipulating the displayed data\n * (including sorting, pagination, and filtering).\n */\nexport class TableDataSource extends DataSource {\n data: TableItem[] = EXAMPLE_DATA;\n paginator: MatPaginator;\n sort: MatSort;\n\n constructor() {\n super();\n }\n\n /**\n * Connect this data source to the table. The table will only update when\n * the returned stream emits new items.\n * @returns A stream of the items to be rendered.\n */\n connect(): Observable {\n // Combine everything that affects the rendered data into one update\n // stream for the data-table to consume.\n const dataMutations = [\n observableOf(this.data),\n this.paginator.page,\n this.sort.sortChange\n ];\n\n return merge(...dataMutations).pipe(map(() => {\n return this.getPagedData(this.getSortedData([...this.data]));\n }));\n }\n\n /**\n * Called when the table is being destroyed. Use this function, to clean up\n * any open connections or free any held resources that were set up during connect.\n */\n disconnect() {}\n\n /**\n * Paginate the data (client-side). If you're using server-side pagination,\n * this would be replaced by requesting the appropriate data from the server.\n */\n private getPagedData(data: TableItem[]) {\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n return data.splice(startIndex, this.paginator.pageSize);\n }\n\n /**\n * Sort the data (client-side). If you're using server-side sorting,\n * this would be replaced by requesting the appropriate data from the server.\n */\n private getSortedData(data: TableItem[]) {\n if (!this.sort.active || this.sort.direction === '') {\n return data;\n }\n\n return data.sort((a, b) => {\n const isAsc = this.sort.direction === 'asc';\n switch (this.sort.active) {\n case 'name': return compare(a.name, b.name, isAsc);\n case 'id': return compare(+a.id, +b.id, isAsc);\n default: return 0;\n }\n });\n }\n}\n\n/** Simple sort comparator for example ID/Name columns (for client-side sorting). */\nfunction compare(a: string | number, b: string | number, isAsc: boolean) {\n return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Globals } from 'src/app/globals';\n\n@Component({\n selector: 'app-edit-password',\n templateUrl: './edit-password.component.html',\n styleUrls: ['./edit-password.component.css']\n})\nexport class EditPasswordComponent implements OnInit {\n hidePasswordCurrent = true;\n hidePassword = true;\n hidePasswordConfirm = true;\n constructor(private fb:FormBuilder,private globals:Globals,private http:HttpClient,public dialogRef: MatDialogRef,private _snackBar: MatSnackBar) { dialogRef.disableClose = true;}\n passwordForm = this.fb.group({\n passwordCurrent: [null,Validators.required],\n password: [null,Validators.pattern(\"(?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z]).{8,}\")],\n passwordConfirm: [null,Validators.required ], \n }); \n ngOnInit(): void {\n }\n onNoClick(): void {\n this.dialogRef.close();\n }\n onSubmit(){\n if(this.passwordForm.value.passwordConfirm!=this.passwordForm.value.password){console.error(\"Password's do not match\")}\n else{\n let update = new FormData;\n update.append('AuthToken',localStorage.getItem(\"AuthToken\"));\n update.append('UserName',localStorage.getItem(\"systemUserName\"));\n update.append('OldUserPwd', this.passwordForm.value.passwordCurrent)\n update.append('NewUserPwd1', this.passwordForm.value.password)\n update.append('NewUserPwd2', this.passwordForm.value.passwordConfirm)\n \n this.http.post(this.globals.getApiUrl()+'api/editSPMailCompanyUserPwd.php', update).subscribe({\n next: data => {\n this.dialogRef.close();\n },\n error: error => {\n this._snackBar.open(error.error.FieldErrorList[0].FieldError,\"OK\",{duration:5000} );\n console.error('There was an error!');\n }\n });\n }\n }\n}\n","

Change Password

\n
\n
\n\n
\n Current Password\n \n \n \n \n A password is required\n \n \n Please provide your current password\n \n \n
\n
\n Password\n \n \n \n \n A password is required\n \n \n Requires both upper and lower case letters and at least one number\n \n \n
\n
\n Confirm Password\n \n \n \n \n A password is required\n \n \n Passwords must match\n \n \n
\n
\n
\n
\n \n \n \n\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-error404',\n templateUrl: './error404.component.html',\n styleUrls: ['./error404.component.css']\n})\nexport class Error404Component implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n
\n \"\"\n\n SOMETHING WENT WRONG

NOT FOUND ERROR 404
\n
\n
\n\n","import { Location } from '@angular/common';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit, ViewChild, DoCheck } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Company } from 'src/app/company.model';\nimport { Globals } from 'src/app/globals';\nimport { CompanyCheckerComponent } from '../company-checker/company-checker.component';\ninterface SelectorType {\n value: string;\n viewValue: string;\n flag?: string;\n}\n@Component({\n selector: 'app-company-detail',\n templateUrl: './company-detail.component.html',\n styleUrls: ['./company-detail.component.css']\n})\nexport class CompanyDetailComponent implements OnInit, DoCheck {\n\n constructor(\n public globals: Globals,\n private fb: FormBuilder,\n private http: HttpClient,\n private route: ActivatedRoute,\n private router: Router,\n private locations: Location,\n public dialog: MatDialog,\n private titleService: Title\n ) {\n route.params.subscribe(params => {\n\n if (this.companyID != params.id) {\n let currentUrl = this.router.url;\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n this.router.onSameUrlNavigation = 'reload';\n this.router.navigate([currentUrl]);\n // this.loading=true;location.reload();\n }\n\n\n })\n }\n @ViewChild('tabGroup') tabGroup;\n @ViewChild('setupTab') setupTab;\n @ViewChild('hierarchyTab') hierarchyTab;\n tabNumber=0;\n company: any;\n companytype: string;\n keyword: string;\n expireKeyword: string;\n setupMethod: string;\n canAutoDelete: boolean;\n editMode: boolean;\n tier = \"\";\n companyID = this.route.snapshot.params['id'];\n myCompanyType = this.globals.getCompanyType();\n companyIdentTitle;\n notFound = false;\n companyTypes: SelectorType[] = [\n { value: 'S', viewValue: 'Super', flag: 'N' },\n { value: 'W', viewValue: 'Wholesaler', flag: 'N' },\n { value: 'W', viewValue: 'Wholesaler', flag: 'Y' },\n { value: 'R', viewValue: 'Partner', flag: 'Y' },\n { value: 'C', viewValue: 'Customer', flag: 'N' },\n ];\n timeFormats: SelectorType[] = [\n { value: 'D', viewValue: 'Days', },\n { value: 'H', viewValue: 'Hours', },\n { value: 'M', viewValue: 'Minutes' },\n { value: 'S', viewValue: 'Seconds' },\n ];\n initialTiers = this.globals.getTiers();\n addCompanyForm = this.fb.group({\n CompanyIdent: [null, Validators.required],\n CompanyName: [null, Validators.required],\n CompanyType: [null, Validators.required],\n CompanyAddress: [null],\n CompanyTelNo: [null],\n CompanyVatNo: [null],\n InitialTier: [null],\n ContactName: [null],\n ContactEmail: [null],\n ContactTelNo: [null],\n DataCountryCode: [null],\n StatusInd: [null],\n AllowMsgAutoDeleteFlag: [null],\n DomainList: new FormArray([]),\n SetUpUserEmail: [null],\n SeatCount: [null]\n });\n showEdit = true;\n onTabChanged($event) {\n if ($event.index === 0) {\n this.route.snapshot.fragment = null\n this.showEdit = true;\n this.onCancel()\n\n this.update();\n this.addCompanyForm.disable();\n this.editMode = false;\n } else { this.showEdit = false; this.update(); }\n }\n checked = false;\n loading = true;\n hierarchy = []\n tempHierarchy = []\n childHeirarchy = []\n\n ngDoCheck() {\n if (this.checked == false) {\n if (this.route.snapshot.fragment == 'setup' && this.tabGroup) {\n const pathWithoutHash = this.locations.path(false);\n this.locations.replaceState(pathWithoutHash);\n this.tabGroup.animationDuration = 0;\n this.tabGroup.selectedIndex = this.setupTab.position\n let animationSub = this.tabGroup.animationDone.subscribe((event) => {\n this.tabGroup.animationDuration = 500;\n animationSub.unsubscribe()\n });\n this.checked = true\n }else if(this.tabGroup && this.hierarchyTab){this.tabNumber = this.hierarchyTab.position;this.checked = true}\n }\n }\n async ngOnInit(): Promise {\n this.editMode = false;\n this.globals.refreshAuth();\n this.company = { Name: \"\", Id: \"\", CompanyId: \"\", CompanyIdent: \"\", CompanyName: \"\", ParentCompanyId: \"\", MsgAutoDeleteTag: \"\", IsDealerFlag: \"\", SPMCompanyType: \"\", AllowMsgAutoDeleteFlag: \"\", MaxTimeToDeleteInd: \"\", TimeToDeleteAfterReadInd: \"\", DataCountryCode: \"\", StatusInd: \"\" }\n this.update()\n\n if (this.editMode) { this.addCompanyForm.enable(); }\n else { this.addCompanyForm.disable(); }\n\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n param = param.append('DataIncludeInd', 'F');\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyHierarchy.php', { params: param }).subscribe({\n next: data => {\n for (let company of data.CompanyList) {\n if (company.Id == this.companyID) {\n let cycle = [company]\n for (let companyCycle of cycle) {\n let i = 0;\n this.hierarchy.push(companyCycle)\n this.tempHierarchy.push(companyCycle)\n\n for (let parent of data.CompanyList) {\n if (parent.Id == companyCycle.ParentCompanyId) {\n cycle.push(parent)\n } else {\n i++; if (i == data.CompanyList.length) {\n this.hierarchy.reverse()\n this.tempHierarchy.reverse()\n // ------------------------------------\n for (let company of data.CompanyList) {\n if (company.Id == this.companyID) {\n let cycle = [company]\n let i = 0;\n let imax=0;\n\n for (let companyCycle of cycle) {\n imax++\n i=0\n\n for (let child of data.CompanyList) {\n i++;\n\n if (child.ParentCompanyId == companyCycle.Id) {\n this.childHeirarchy.push(child)\n cycle.push(child)\n } else {\n if (i == data.CompanyList.length&&imax==cycle.length) {\n \n // dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\n\n\n\n this.childHeirarchy.sort(function (x, y) {\n let a = x.Id.toUpperCase(),\n b = y.Id.toUpperCase();\n return a == b ? 0 : a > b ? 1 : -1;\n });\n\n\n\n // var iii, ii\n // for (iii = (this.childHeirarchy.length - 1); iii >= 0; iii--) {\n // if (this.childHeirarchy[iii].ParentCompanyId != this.globals.getCompanyId()) {\n // for (ii = (this.childHeirarchy.length - 1); ii >= 0; ii--) {\n // if (this.childHeirarchy[ii].Id == this.childHeirarchy[iii].ParentCompanyId) {\n\n // if (this.childHeirarchy[ii].children != null) {\n // this.childHeirarchy[ii].children.push(this.childHeirarchy[iii]);\n // this.childHeirarchy[ii].children.sort(function (x, y) {\n // let a = x.Name.toUpperCase(),\n // b = y.Name.toUpperCase();\n // return a == b ? 0 : a > b ? 1 : -1;\n // });\n\n // this.childHeirarchy.splice(iii, 1)\n // break;\n // }\n // if (this.childHeirarchy[ii].children == null) {\n // this.childHeirarchy[ii].children = [this.childHeirarchy[iii]];\n // this.childHeirarchy.splice(iii, 1)\n // break;\n // }\n // }\n // }\n // }\n // }\n\n\n\n\n var x, y\n for (x = (this.childHeirarchy.length - 1); x >= 0; x--) {\n if (this.childHeirarchy[x].ParentCompanyId != this.globals.getCompanyId()) {\n for (y = (this.childHeirarchy.length - 1); y >= 0; y--) {\n if (this.childHeirarchy[y].Id == this.childHeirarchy[x].ParentCompanyId) {\n\n if (this.childHeirarchy[y].children != null) {\n this.childHeirarchy[y].children.push(this.childHeirarchy[x]);\n this.childHeirarchy[y].children.sort(function (x, y) {\n let a = x.Name.toUpperCase(),\n b = y.Name.toUpperCase();\n return a == b ? 0 : a > b ? 1 : -1;\n });\n\n this.childHeirarchy.splice(x, 1)\n break;\n }\n if (this.childHeirarchy[y].children == null) {\n this.childHeirarchy[y].children = [this.childHeirarchy[x]];\n this.childHeirarchy.splice(x, 1)\n break;\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n // ------------------------------------\n }\n }\n }\n }\n\n }\n }\n\n },\n error: error => { console.error('There was an error!'); }\n })\n // this.tabNumber = this.hierarchyTab.position\n }\n editClicked() {\n this.editMode = !this.editMode;\n this.addCompanyForm.enable();\n this.addCompanyForm.controls['CompanyIdent'].disable();\n this.addCompanyForm.controls['DataCountryCode'].disable();\n this.addCompanyForm.controls['CompanyType'].disable();\n if (!(this.tier == '0' || this.tier == '')) {\n this.addCompanyForm.controls['InitialTier'].disable();\n } else if (this.tier == '0') { this.addCompanyForm.controls['InitialTier'].setValue('0') }\n }\n seatCount = 0;\n currentSeatCount = 0;\n seatCountView;\n minSeat = 5;\n\n async update() {\n \n let param1 = new HttpParams();\n param1 = param1.append('AuthToken', await this.globals.getAuthToken());\n param1 = param1.append('UserName', this.globals.getSystemUserName());\n param1 = param1.append('companyId', this.companyID);\n this.http.get(this.globals.getServicesUrl() + 'company/getCompanyDetails', { params: param1 }).subscribe({\n next: data => {\n if (data[0] && data[0].keyword && data[0].keyword != \"\") {\n this.keyword = data[0].keyword\n if (this.expireKeyword == \"undefined-expire\") {\n this.expireKeyword = data[0].keyword + \"-expire\"\n }\n if (data[0].setupMethod == 'mx') {\n this.setupMethod = 'Microsoft 365';\n }\n if (data[0].setupMethod == 'google') {\n this.setupMethod = 'Google Workspace'\n }\n if (data[0].setupMethod == 'othermx') {\n this.setupMethod = 'Other'\n }\n if (data[0].setupMethod == 'spf') {\n this.setupMethod = 'Other'\n }\n }\n if (data[0] && data[0].autoDeleteFlag) {\n this.canAutoDelete = data[0].autoDeleteFlag.includes(\"Y\")\n }\n if (data[0] && data[0].seatCount) {\n this.seatCount=parseInt(data[0].seatCount)\n this.currentSeatCount=parseInt(data[0].seatCount)\n this.addCompanyForm.controls['SeatCount'].setValue(this.seatCount);\n if(this.seatCount<=3){this.seatCountView = \"Up to 3 Users\"}\n if(this.seatCount>3 && this.seatCount < 25){ this.seatCountView = this.seatCount+\" Users\"}\n if(this.seatCount>=25){this.seatCountView = \"Unlimtied Users\"}\n\n }\n \n\n },\n error: error => { console.error('There was an error!'); }\n });\n let param = new HttpParams();\n param = param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n param = param.append('CompanyId', this.companyID);\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: data => {\n this.company = data\n this.tier = this.company.InitialTier\n if (this.company.SPMCompanyType == \"S\") { this.companytype = \"Super\" }\n if (this.company.SPMCompanyType == \"W\" && this.company.IsDealerFlag == \"N\") { this.companytype = \"Wholesaler\" }\n if (this.company.SPMCompanyType == \"W\" && this.company.IsDealerFlag == \"Y\") { this.companytype = \"Wholesaler\" }\n if (this.company.SPMCompanyType == \"R\") { this.companytype = \"Partner\" }\n if (this.company.SPMCompanyType == \"C\") { this.companytype = \"Customer\" }\n try {\n this.company.InitialTier = this.globals.getTier(this.company.InitialTier).name;\n \n } catch (error) {\n this.company.InitialTier = \"Unknown\"\n \n }\n // if (this.company.InitialTier == \"0\") { this.company.InitialTier = \"Not applicable\" }\n // if (this.company.InitialTier == \"100\") { this.company.InitialTier = \"100 Recipients\" }\n // if (this.company.InitialTier == \"101\") { this.company.InitialTier = \"100 Recipients + Branding\" }\n // if (this.company.InitialTier == \"500\") { this.company.InitialTier = \"500 Recipients\" }\n // if (this.company.InitialTier == \"501\") { this.company.InitialTier = \"500 Recipients + Branding\" }\n // if (this.company.InitialTier == \"1000\") { this.company.InitialTier = \"1,000 Recipients\" }\n // if (this.company.InitialTier == \"99999\") { this.company.InitialTier = \"Unlimited Recipients\" }\n if (this.company.DataCountryCode == \"GB\") { this.company.DataCountryCode = \"United Kingdom\" }\n if (this.company.DataCountryCode == \"DE\") { this.company.DataCountryCode = \"European Union\" }\n if (this.company.DataCountryCode == \"US\") { this.company.DataCountryCode = \"United States\" }\n if (this.company.MaxTimeToDeleteInd == \"\") { this.company.MaxTimeToDeleteInd = \"D:7\" }\n if (this.company.TimeToDeleteAfterReadInd == \"\") { this.company.TimeToDeleteAfterReadInd = \"M:10\" }\n if (this.company.MsgAutoDeleteTag == \"\") { this.expireKeyword = this.keyword + \"-expire\" } else { this.expireKeyword = this.company.MsgAutoDeleteTag }\n let deleteTime = this.company.MaxTimeToDeleteInd.split(\":\")\n let deleteRead = this.company.TimeToDeleteAfterReadInd.split(\":\")\n this.titleService.setTitle(this.company.CompanyName + \" - STAY PRIVATE\");\n this.addCompanyForm = this.fb.group({\n CompanyIdent: [{ value: this.company.CompanyIdent, disabled: this.editMode }, Validators.required],\n CompanyName: [{ value: this.company.CompanyName, disabled: this.editMode }, Validators.required],\n CompanyType: [{ value: this.companytype, disabled: this.editMode }, Validators.required],\n CompanyAddress: [{ value: this.company.CompanyAddress, disabled: this.editMode }],\n CompanyTelNo: [{ value: this.company.CompanyTelNo, disabled: this.editMode }],\n CompanyVatNo: [{ value: this.company.CompanyVatNo, disabled: this.editMode }],\n InitialTier: [{ value: this.company.InitialTier, disabled: this.editMode }],\n DataCountryCode: [{ value: this.company.DataCountryCode, disabled: this.editMode }],\n StatusInd: [{ value: this.company.StatusInd, disabled: this.editMode }],\n ContactName: [{ value: this.company.ContactName, disabled: this.editMode }],\n ContactEmail: [{ value: this.company.ContactEmail, disabled: this.editMode }],\n ContactTelNo: [{ value: this.company.ContactTelNo, disabled: this.editMode }],\n AllowMsgAutoDeleteFlag: [{ value: this.company.AllowMsgAutoDeleteFlag.includes(\"Y\"), disabled: this.editMode }],\n MaxTimeToDeleteInd: [{ value: deleteTime[1], disabled: this.editMode }],\n MaxTimeToDeleteIndFormat: [{ value: deleteTime[0], disabled: this.editMode }],\n TimeToDeleteAfterReadInd: [{ value: deleteRead[1], disabled: this.editMode }],\n TimeToDeleteAfterReadIndFormat: [{ value: deleteRead[0], disabled: this.editMode }],\n DomainList: [{ value: this.company.DomainList, disabled: this.editMode }],\n EmailProcessRulesDomainList: [{ value: this.company.EmailProcessRulesDomainList, disabled: this.editMode }],\n SeatCount:[{value: this.seatCount,disabled:this.editMode}]\n });\n this.http.get(this.globals.getServicesUrl() + 'company/getCompanyDetails', { params: param1 }).subscribe({\n next: data => {\n if (data[0] && data[0].seatCount) {\n this.seatCount=data[0].seatCount\n\n this.addCompanyForm.controls['SeatCount'].setValue(this.seatCount);\n if(this.seatCount<=3){this.seatCountView = \"Up to 3 Users\"}\n if(this.seatCount>3 && this.seatCount < 25){ this.seatCountView = this.seatCount+\" Users\"}\n if(this.seatCount>=25){this.seatCountView = \"Unlimtied Users\"}\n }\n },\n error: error => { console.error('There was an error!'); }\n });\n console.log(this.addCompanyForm.value.InitialTier)\n\n if(this.addCompanyForm.value.InitialTier=='Professional'||this.addCompanyForm.value.InitialTier=='Professional Plus'||this.addCompanyForm.value.InitialTier=='Strict'){\n if(this.addCompanyForm.value.InitialTier=='Professional'){this.minSeat=5}\n if(this.addCompanyForm.value.InitialTier=='Professional Plus'){this.minSeat=10}\n if(this.addCompanyForm.value.InitialTier=='Strict'){this.minSeat=15}\n if(this.seatCount { console.error('There was an error!'); this.notFound = true; this.loading = false; }\n });\n\n }\n add(){\n console.log(this.seatCount,this.minSeat)\n if(this.seatCount(this.globals.getApiUrl() + 'api/editSPMailCompany.php', form).subscribe({\n next: async data => {\n if(formData.SeatCount!=this.seatCount){\n let form2 = new FormData;\n form2.append('AuthToken', await this.globals.getAuthToken());\n form2.append('UserName', this.globals.getSystemUserName());\n form2.append('CompanyId', this.companyID);\n form2.append('SeatCount', formData.SeatCount);\n this.http.post(this.globals.getServicesUrl() + 'company/updateUserCount', form2).subscribe({\n next: data => {\n this.update();\n this.onCancel()\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n }else{\n this.update();\n this.onCancel()\n }\n \n\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n }\n\n async updateSeatCount(formData){\n this.loading = true\n let form2 = new FormData;\n form2.append('AuthToken', await this.globals.getAuthToken());\n form2.append('UserName', this.globals.getSystemUserName());\n form2.append('CompanyId', this.companyID);\n form2.append('SeatCount', this.seatCount.toString());\n this.http.post(this.globals.getServicesUrl() + 'company/updateUserCount', form2).subscribe({\n next: data => {\n this.update();\n this.onCancel()\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n \n }\n\n onCancel() {\n //this.addCompanyForm.reset();\n this.update();\n this.loading = true\n\n this.addCompanyForm.disable();\n this.editMode = false;\n }\n\n \n showConfigEdit = false;\n configDirty = false;\n editConfigMode = false;\n newConfig: any\n getConfig(form:FormGroup){\n this.newConfig = form;\n }\n showConfig(bool:boolean){ this.showConfigEdit = bool; this.editConfigMode = false; }\n onConfigDirty(bool:boolean) { this.configDirty = bool; }\n formatArray(val:any){\n // var temp = this.configForm.controls['domains'].value.replaceAll(' ', ';')\n var temp = val.replaceAll(' ', ';')\n temp = temp.replaceAll('\t', ';')\n temp = temp.replaceAll(',', ';')\n temp = temp.replaceAll('\\n', ';')\n temp = temp.split(';')\n temp = temp.filter(function (el) {\n if(el != null && el !=''){\n return el;\n }\n });\n return temp\n }\n editConfigClicked() {\n this.editConfigMode = !this.editConfigMode;\n }\n onConfigCancel() {\n this.editConfigMode = false;\n }\n async onConfigSubmit(){\n /*\n this.configForm.patchValue({\n CompanyKeyword: this.company.CompanyKeyword,\n IgnoreKeyword: this.company.IgnoreKeyword,\n domains: this.company.IgnoreKeyword,\n RelaxedList: this.company.EmailProcessRulesRelaxedList.join('\\n'),\n SmartList: this.company.EmailProcessRulesSmartList.join('\\n'),\n StandardList: this.company.EmailProcessRulesStandardList.join('\\n'),\n EnforcementType: this.company.EmailProcessRulesDomainList[0].RulesInd,\n EnforcementTypeFull: this.getTypeName(this.company.EmailProcessRulesDomainList[0].RulesInd),\n Statement: this.company.DefProtectSensitiveInfoText,\n })\n */\n var tempRelaxedList = this.formatArray(this.newConfig.RelaxedList.value);\n var tempSmartList = this.formatArray(this.newConfig.SmartList.value);\n var tempStandardList = this.formatArray(this.newConfig.StandardList.value);\n\n let form = new FormData;\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('CompanyId', this.companyID);\n\n if (this.company.CompanyKeyword != this.newConfig.CompanyKeyword.value || this.newConfig.CompanyKeyword.value =='') { \n if(this.newConfig.CompanyKeyword.value!=''){form.append('CompanyKeyword', this.newConfig.CompanyKeyword.value);}else{form.append('CompanyKeyword', '#stayprivate');}\n }\n if (this.company.IgnoreKeyword != this.newConfig.IgnoreKeyword.value || this.newConfig.IgnoreKeyword.value =='') { \n if(this.newConfig.IgnoreKeyword.value!=''){form.append('IgnoreKeyword', this.newConfig.IgnoreKeyword.value);}else{form.append('IgnoreKeyword', '#ignore');}\n }\n if (this.company.EmailProcessRulesRelaxedList != tempRelaxedList) { form.append('EmailProcessRulesRelaxedList', tempRelaxedList); }\n if (this.company.EmailProcessRulesSmartList != tempSmartList) { form.append('EmailProcessRulesSmartList', tempSmartList); }\n if (this.company.EmailProcessRulesStandardList != tempStandardList) { form.append('EmailProcessRulesStandardList', tempStandardList); }\n\n if (this.company.EmailProcessRulesDomainList[0].RulesInd != this.newConfig.EnforcementType.value) { form.append('EmailProcessRulesDomainList', this.company.EmailProcessRulesDomainList[0].Domain+':'+this.newConfig.EnforcementType.value); }\n if (this.company.DefProtectSensitiveInfoText != this.newConfig.Statement.value) { form.append('DefProtectSensitiveInfoText', this.newConfig.Statement.value); }\n\n this.http.post(this.globals.getApiUrl() + 'api/editSPMailCompany.php', form).subscribe({\n next: async data => { this.update(); this.editConfigMode=false},\n error: error => {\n console.error('There was an error!');\n }\n });\n \n }\n}\n","\n \n\n\n\n\n\n\n \n {{addCompanyForm.value.CompanyName}}\n \n\n \n \n \n \n \n \n \n\n \n \n \n \n\n \n\n \n \n \n \n \n\n \n \n \n home\n \n \n >{{name.Name}}\n \n \n \n \n \n
\n\n \n
\n Company name\n \n \n \n \n Company name is required\n \n \n
\n \n
\n Unique company identifier\n \n \n \n Company identifier is required\n \n \n
\n \n
\n Company type\n \n \n \n
\n\n \n
\n Pricing tier\n \n \n \n
\n
\n Pricing tier\n \n \n \n \n {{initialTier.name}}\n \n \n \n
\n\n\n
\n Licenses\n \n \n Up to 3 Users\n 4 Users\n 5 Users\n 6 Users\n 7 Users\n 8 Users\n 9 Users\n 10 Users\n 11 Users\n 12 Users\n 13 Users\n 14 Users\n 15 Users\n 16 Users\n 17 Users\n 18 Users\n 19 Users\n 20 Users\n 21 Users\n 22 Users\n 23 Users\n 24 Users\n Unlimited Users\n \n \n
\n
\n Licenses\n \n \n \n
\n
\n User count\n \n \n \n
\n
\n User count\n \n \n \n
\n \n
\n Company domain\n \n \n \n \n \n
\n \n
\n Mail server\n \n \n \n
\n \n
\n Company keyword\n \n \n \n
\n
\n Data location\n \n \n \n Data location is required\n \n \n
\n \n \n \n \n Settings\n \n \n \n
\n Email auto-deletion enabled: \n \n
\n
\n Auto delete keyword\n \n \n \n
\n\n \n
\n Automatically delete emails after:\n \n \n \n \n\n \n \n \n {{timeFormat.viewValue}}\n \n \n \n \n
\n
\n Automatically delete read emails after:\n \n \n \n \n \n \n {{timeFormat.viewValue}}\n \n \n \n
\n
\n \n \n \n Contact Details\n \n \n \n \n \n
\n Contact name\n \n \n \n
\n \n
\n Contact email\n \n \n \n
\n \n
\n Contact telephone number\n \n \n \n
\n \n
\n Company telephone number\n \n \n \n
\n \n
\n VAT number\n \n \n \n
\n \n
\n Address\n \n \n \n
\n
\n
\n
\n
\n
Account Suspended
Please contact\n support for more information.
\n
\n \n \n \n
Account Suspended
Please contact\n support for more information.
\n
\n
\n \n \n \n
Account Suspended
Please contact\n support for more information.
\n
\n
\n \n \n \n \n
Account Suspended
Please contact\n support for more information.
\n
\n
\n \n \n \n \n
Account Suspended
Please contact\n support for more information.
\n
\n
\n \n \n \n
Account Suspended
Please contact\n support for more information.
\n
\n
\n 0\" class=\"hiertab\">\n \n \n
Account Suspended
Please contact\n support for more information.
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n
","import { Directive, Input } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';\n\n@Directive({\n selector:'[matchingValidator]',\n providers:[{\n provide: NG_VALIDATORS,\n useExisting: MatchingValidatorDirective,\n multi: true\n }]\n\n})\nexport class MatchingValidatorDirective implements Validator{\n @Input() matchingValidator:string;\n validate(control: AbstractControl):{[key:string]: any} | null{\n const controlToCompare = control.parent.get(this.matchingValidator);\n if(controlToCompare&&controlToCompare.value!==control.value){\n return{'notEqual':true}\n }\n return null;\n }\n}","

My Companies

\n\n\n","import { Component, OnInit } from '@angular/core';\n\nimport { Company } from '../company';\nimport { CompanyService } from '../company.service';\nimport { MessageService } from '../message.service';\n\n@Component({\n selector: 'app-companies',\n templateUrl: './companies.component.html',\n styleUrls: ['./companies.component.css']\n})\nexport class CompaniesComponent implements OnInit {\n\n companies: Company[];\n\n constructor(private companyService: CompanyService, private messageService: MessageService) { }\n\n ngOnInit(): void {\n this.getCompanies();\n }\n\n getCompanies(): void {\n this.companyService.getCompanies()\n .subscribe(companies => this.companies = companies);\n }\n\n}\n","import { Component, DoCheck, OnInit } from '@angular/core';\nimport { BillingService } from '../components/company-billing/billing.service';\n\nimport { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout';\nimport { Globals } from '../globals';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FormControl } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CsvUpdateDialogComponent } from '../components/csv-update-dialog/csv-update-dialog.component';\nimport { io } from \"socket.io-client\";\n\n@Component({\n selector: 'app-navigation',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.css']\n})\nexport class NavigationComponent implements OnInit {\n\n\n constructor(\n public globals: Globals,\n private http: HttpClient,\n private breakpointObserver: BreakpointObserver,\n private billingService:BillingService,\n private router: Router,\n private dialog: MatDialog,\n private route: ActivatedRoute\n ) { }\n appName = localStorage.getItem('app-name')\n myCompanyType;\n parentId;\n myCompanyId = this.globals.getCompanyId();\n mode = new FormControl('side');\n start: string;\n isDeveloper = false;\n myCompanyState=\"\";\nuseStripeBilling=false;\n\n async ngOnInit(): Promise {\n this.globals.refreshAuth();\n this.globals.checkTheme();\n this.myCompanyType = this.globals.getCompanyType();\n this.breakpointObserver\n .observe([Breakpoints.Small, Breakpoints.HandsetPortrait])\n .subscribe((state: BreakpointState) => {\n if (state.matches) {\n this.mode = new FormControl('over');\n this.start = 'false';\n } else {\n this.mode = new FormControl('side');\n this.start = 'true';\n }\n });\n this.route.data.subscribe((data:{data:any})=>{\n // console.log('tiers:',data.data)\n })\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: data => {\n if (data.CanUseApiFlag == \"Y\") { this.isDeveloper = true }\n if (data.SPMCompanyType == \"S\") { this.myCompanyType = \"Super\" }\n if (data.SPMCompanyType == \"W\" && data.IsDealerFlag == \"N\") { this.myCompanyType = \"Wholesaler\" }\n if (data.SPMCompanyType == \"W\" && data.IsDealerFlag == \"Y\") { this.myCompanyType = \"Wholesaler\" }\n if (data.SPMCompanyType == \"R\") { this.myCompanyType = \"Partner\" }\n if (data.SPMCompanyType == \"C\") { this.myCompanyType = \"Customer\" }\n this.parentId=data.ParentCompanyId;\n if(this.route.snapshot.queryParams.session_id&&data.StatusInd=='I'){}\n else{this.myCompanyState=data.StatusInd;}\n\n },\n error: error => { console.error('There was an error!'); }\n });;\n let param1 = new HttpParams();\n param1 = param1.append('AuthToken', await this.globals.getAuthToken());\n param1 = param1.append('UserName', this.globals.getSystemUserName());\n param1 = param1.append('companyId', this.myCompanyId);\n this.http.get(this.globals.getServicesUrl() + 'company/getCompanyDetails', { params: param1 }).subscribe({\n next: data => {\n if (!data[0].showStripeFlag) { data[0].showStripeFlag = \"N\" }\n\n this.useStripeBilling= data[0].showStripeFlag.includes(\"Y\")\n \n },\n error: error => { console.error('There was an error!'); }\n });\n }\n async genCompanies() {\n let domain = new FormData;\n domain.append('UserName', this.globals.getSystemUserName());\n domain.append('AuthToken', await this.globals.getAuthToken());\n this.http.post(this.globals.getServicesUrl() + \"company/addAllCompanies\", domain).subscribe({\n next: data => {\n\n },\n error: error => {\n console.error(error)\n }\n });\n }\n async download() {\n let domain = new FormData;\n domain.append('EmailAddress', this.globals.getSystemUserName());\n domain.append('authToken', await this.globals.getAuthToken());\n this.http.post(this.globals.getServicesUrl() + \"utils/tracking\", domain).subscribe({\n next: data => {\n\n },\n error: error => {\n console.error(error)\n }\n });\n }\n async downloadCompanies() {\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n param = param.append('DataIncludeInd', 'F'); \n this.http.get(this.globals.getServicesUrl() + \"company/companySignUpList\", { params: param }).subscribe({\n next: data => {\n let date = new Date().toJSON().slice(0,10).split('-').reverse().join('-')\n console.log(data)\n this.billingService.downloadFile(data, 'CompanyList '+date);\n },\n error: error => {\n console.error(error)\n }\n });\n }\n update() {\n const dialogRef = this.dialog.open(CsvUpdateDialogComponent, {\n width: '325px',\n });\n\n dialogRef.afterClosed().subscribe(result => {\n });\n }\n logout() {\n let logout = new FormData;\n logout.append('AuthToken', localStorage.getItem(\"AuthToken\"));\n logout.append('UserName', localStorage.getItem(\"systemUserName\"));\n\n this.http.post(this.globals.getApiUrl() + 'api/recordSPMailUserLogOut.php', logout).subscribe({\n next: data => {\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n localStorage.removeItem(\"userName\")\n localStorage.removeItem(\"systemUserName\")\n localStorage.removeItem(\"AuthTokenExpiration\")\n localStorage.removeItem(\"AuthToken\")\n localStorage.removeItem(\"tokenType\")\n this.globals.resetTracker();\n this.router.navigate(['/login'])\n }\n test(){\n }\n}\n","\n \n \n\n \n \n \"\"\n \"\"\n\n
\n \n \n \n \n \n \n \n \n
\n\n
\n\n \n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n \n
\n \n
\n \n Auto logout in: {{globals.timeoutTrackerObj.time.minute}}:{{globals.timeoutTrackerObj.time.second}}\n \n
\n
\n\n \n
Your account is currently suspended. Please contact support for further information.
\n \n \n
\n
\n\n\n","import { Injectable, OnInit } from '@angular/core';\n\n@Injectable()\nexport class SetupSteps {\n getMicrosoftSteps(keyword: string) {\n return {\n access: [\n \"From your Office 365 home page, in the left-hand menu, select 'Admin'.\",\n \"In the left-hand menu, select 'Show all'.\",\n \"Scroll down and under 'Admin centers' select 'Exchange'.\",\n ],\n outbound: [\n \"In the left-hand menu, select 'Mail flow'. Then select ‘Connectors’.\",\n \"Click on '+ Add a connector'.\",\n \"Under 'Connection from' select 'Office 365'. Under 'Connection to' select 'Partner organization'. Then click 'Next'.\",\n \"Enter the name: 'Send to StayPrivate'. Ensure 'Turn it on' is selected. Then click 'Next'.\",\n \"Select 'Only when I have a transport rule set up that redirects messages to this connector'. Then click 'Next'.\",\n \"Select 'Route email through these smart hosts'.\",\n \"Enter the domain name ‘sendsecure.stayprivate.com'. Then click ‘+’. Then Click 'Next'.\",\n \"Ensure that 'Always use Transport Layer Security...' and 'Issued by a trusted certificate authority (CA)' are selected. Click 'Next'.\",\n \"To validate the connector, enter the test email address 'support@stayprivate.com' then click '+'.\",\n \"Click 'Validate'. Office 365 will validate the new connector. This may take a minute or so. When it has finished, click 'Next'.\",\n \"Click ‘Create connector’.\",\n \"Click ‘Done’.\",\n ],\n inbound: [\n \"In the left-hand menu, select 'Mail flow'. Then select ‘Connectors’.\",\n \"Click on '+ Add a connector'.\",\n \"Under 'From:' select ‘Your organization’s email server'. Then click 'Next'.\",\n \"Enter the name: 'Receive from StayPrivate'. Ensure 'Turn it on' is selected. Then click 'Next'.\",\n \"Select ‘By verifying that the subject name on the certificate….’. Then enter the text ‘*.stayprivate.com’. Click ‘Next’.\",\n \"Click ‘Create connector’.\",\n \"Click ‘Done’.\",\n ],\n rules: [\n \"In 'Mail flow', select 'Rules'.\",\n \"Select '+ Add a rule' and 'Create a new rule'.\",\n \"Enter the name 'Identify messages to send via StayPrivate'.\",\n \"Under 'Apply this rule if' select 'The subject or body'.\",\n \"Then, to the right, select 'subject or body matches these text patterns' and enter '\" + keyword + \"'. Then click 'Add'.\",\n \"Tick the box next to \" + keyword + \". Then click 'Save'.\",\n \"Now click on the blue '+' just to the right of the box with the text 'subject or body matches these...'.\",\n \"Under 'And' select 'The sender'. Then, to the right, select 'domain is'. Enter your email domain (for example, mycompany.com) in the box.\",\n \"Click 'Add'.\",\n \"Tick the box next to your domain. Then click 'Save'.\",\n \"Under 'Do the following' select 'Redirect the message to'. Then, to the right, select 'the following connector'. Select 'Send to StayPrivate' and click 'Save'.\",\n \"Choose the connector 'Send to StayPrivate'. Click 'OK'.\",\n \"Under 'Except if' select 'The sender'. Then, to the right, select 'IP address is in any of these ranges or exactly matches'. Enter 18.130.40.2 in the box.\",\n \"Click 'Add'.\",\n \"Tick the box next to 18.130.40.2. Click 'Save'.\",\n \"Click 'Next'.\",\n \"Ensure that 'Enforce' is selected, then click 'Next'.\",\n \"Click 'Finish'. It may take a few seconds for the new rule to save.\",\n \"Click 'Done'.\",\n ],\n replies: [\n \"In the left-hand menu, select 'Recipients' then select 'Contacts'.\",\n \"Select 'Add a mail contact'.\",\n \"Under Contact type select ‘Mail contact’.\",\n \"Under ‘Display name’ enter: 'StayPrivateServer'\",\n \"Under 'Alias' enter: 'StayPrivateServer'\",\n \"Under 'External email address' enter: 'server@stayprivatemail.com'\",\n \"Click 'Next'.\",\n \"Click 'Next' again, then click 'Create'.\",\n \"Click 'Done'.\",\n \"Now, back in the left-hand menu, select 'Mail flow' and select 'Rules'.\",\n \"Select '+ Add a rule' and 'Create a new rule'.\",\n \"Enter the name 'Send secure replies to StayPrivate'.\",\n \"Under 'Apply this rule if' select 'The subject or body'.\",\n \"Then select 'subject or body matches these text patterns' and enter the text '\" + keyword + \"'. Then click 'Add'.\",\n \"Tick the box next to \" + keyword + \". Then click 'Save'.\",\n \"Under 'Do the following' select 'Add Recipients' then, to the right, select 'to the Bcc box'.\",\n \"Find 'StayPrivateServer' in the list and tick the box next to it. Click 'Save'.\",\n \"Under 'Except if' select 'The sender' then, to the right, select 'domain is'. Enter your email domain (for example, mycompany.com) in the box.\",\n \"Tick the box next to your domain. Then click 'Save'.\",\n \"Click the blue '+' next to the box with the text 'domain is'.\",\n \"Under 'And' select 'The sender'. Then, to the right, select 'IP address is in any of these ranges or exactly matches'.\",\n \"Enter 18.130.40.2 in the box. Then click 'Add'.\",\n \"Click 'Next'.\",\n \"Check that 'Enforce' is selected, then click 'Next'.\",\n \"Click 'Finish'. It may take a few seconds for the rule to be saved.\",\n \"Click 'Done'.\",\n ],\n enable: [\n \"In the left-hand menu, select 'Rules'.\",\n \"Find the rule 'Identify messages to send via StayPrivate'. Click on the word 'Disabled' next to the rule.\",\n \"Click on the switch under 'Enable or disable rule' to enable the rule.\",\n \"Click on the close button top right. It will take a few seconds for the page to update.\",\n \"Find the rule 'StayPrivate Allow'. Click on the word 'Disabled' next to the rule.\",\n \"Click on the switch under 'Enable or disable rule' to enable the rule.\",\n \"Click on the close button top right. It will take a few seconds for the page to update.\",\n \"Find the rule 'Send secure replies to StayPrivate'. Click on the word 'Disabled' next to the rule.\",\n \"Click on the switch under 'Enable or disable rule' to enable the rule.\",\n \"Click on the close button top right. It will take a few seconds for the page to update.\",\n ]\n }\n }\n \n}","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormBuilder, Validators, FormArray, FormGroup } from '@angular/forms';\nimport { Globals } from 'src/app/globals';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CompanyCheckerComponent } from '../company-checker/company-checker.component';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatStepper } from '@angular/material/stepper';\nimport { io } from 'socket.io-client';\nimport { Title } from '@angular/platform-browser';\ninterface SelectorType {\n value: string;\n viewValue: string;\n flag?: string;\n code?: string;\n}\n\n\n@Component({\n selector: 'app-add-company',\n templateUrl: './add-company.component.html',\n styleUrls: ['./add-company.component.css']\n})\n\n\nexport class AddCompanyComponent implements OnInit {\n @ViewChild('stepper') public myStepper: MatStepper;\n\n constructor(\n private fb: FormBuilder,\n private globals: Globals,\n private http: HttpClient,\n private router: Router,\n private clipboard: Clipboard,\n public dialog: MatDialog,\n private _snackBar: MatSnackBar,\n private titleService: Title\n ) { }\n\n attemptNo = 1;\n myCompanyType = this.globals.getCompanyType();\n setUpType = \"\"\n adding = false;\n private createdId;\n childPartners: SelectorType[] = [\n ];\n companyTypes: SelectorType[] = [\n //{value: 'S', viewValue: 'Super', flag: 'N'},\n // { value: 'W', viewValue: 'Wholesaler', flag: 'Y' },\n //{value: 'W', viewValue: 'Dealer', flag: 'Y'},\n // { value: 'R', viewValue: 'Partner', flag: 'Y' },\n // { value: 'C', viewValue: 'Customer', flag: 'N' },\n ];\n initialTiers = this.globals.getTiers();\n displayTiers = [];\n loadingTiers = false;\n addCompanyForm = this.fb.group({\n CompanyIdent: [null],\n CompanyDomain:[null],\n ParentId: [null, Validators.required],\n CompanyName: [null, Validators.required],\n CompanyType: [null, Validators.required],\n InitialTier: [null, Validators.required],\n SeatCount: [null],\n DataCountryCode: [null, Validators.required],\n });\n\n\n\n\n async ngOnInit() {\n\n this.titleService.setTitle(\"Add Company - STAY PRIVATE\");\n this.globals.refreshAuth();\n let param = new HttpParams();\n let authT = await this.globals.getAuthToken()\n this.myCompanyType = this.globals.getCompanyType();\n param = param.append('AuthToken', authT);\n param = param.append('UserName', this.globals.getSystemUserName());\n param = param.append('DataIncludeInd', 'F');\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyHierarchy.php', { params: param }).subscribe({\n next: data => {\n let i = 0;\n if (data.CompanyList[0] != null && (this.myCompanyType == \"Wholesaler\" || this.myCompanyType == \"Super\")) {\n for (let company of data.CompanyList) {\n i++\n if (company.SPMCompanyType != \"C\" && company.StatusInd == \"A\") {\n if (company.SPMCompanyType == \"R\") {\n this.childPartners.push({ value: company.Id, viewValue: company.Name, flag: \"Y\", code: company.DataCountryCode })\n } else {\n this.childPartners.push({ value: company.Id, viewValue: company.Name, code: company.DataCountryCode })\n\n }\n if (i == data.CompanyList.length) {\n this.childPartners.sort(function (x, y) {\n let a = x.viewValue.toUpperCase(),\n b = y.viewValue.toUpperCase();\n return a == b ? 0 : a > b ? 1 : -1;\n });\n let param = new HttpParams();\n param = param = param.append('AuthToken', authT);\n param = param.append('UserName', this.globals.getSystemUserName());\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: data => {\n this.childPartners.unshift({ value: this.globals.getCompanyId(), viewValue: this.globals.getCompanyName(), code: data.DataCountryCode })\n if (this.childPartners.length == 1) {\n this.childPartners.unshift({ value: this.globals.getCompanyId(), viewValue: this.globals.getCompanyName(), code: data.DataCountryCode })\n this.addCompanyForm.controls['ParentId'].setValue(this.globals.getCompanyId());\n this.addCompanyForm.get('ParentId').disable();\n }\n },\n error: error => { console.error('There was an error!'); }\n });\n\n }\n\n } else {\n if (i == data.CompanyList.length) {\n this.childPartners.sort(function (x, y) {\n let a = x.viewValue.toUpperCase(),\n b = y.viewValue.toUpperCase();\n return a == b ? 0 : a > b ? 1 : -1;\n });\n let param = new HttpParams();\n param = param = param.append('AuthToken', authT);\n param = param.append('UserName', this.globals.getSystemUserName());\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: data => {\n this.childPartners.unshift({ value: this.globals.getCompanyId(), viewValue: this.globals.getCompanyName(), code: data.DataCountryCode })\n if (this.childPartners.length == 1) {\n this.childPartners.unshift({ value: this.globals.getCompanyId(), viewValue: this.globals.getCompanyName(), code: data.DataCountryCode })\n this.addCompanyForm.controls['ParentId'].setValue(this.globals.getCompanyId());\n this.addCompanyForm.get('ParentId').disable();\n\n }\n },\n error: error => { console.error('There was an error!'); }\n });\n }\n }\n }\n } else {\n let param = new HttpParams();\n param = param = param.append('AuthToken', authT);\n param = param.append('UserName', this.globals.getSystemUserName());\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: data => {\n this.childPartners.unshift({ value: this.globals.getCompanyId(), viewValue: this.globals.getCompanyName(), code: data.DataCountryCode })\n this.addCompanyForm.controls['ParentId'].setValue(this.globals.getCompanyId());\n this.addCompanyForm.get('ParentId').disable();\n\n },\n error: error => { console.error('There was an error!'); }\n });\n\n }\n },\n error: error => { console.error('There was an error!'); }\n })\n this.addCompanyForm.get('InitialTier').valueChanges.subscribe(value => {\n if (value == 113 || value == 2 || value == 3) {\n this.addCompanyForm.get('SeatCount').setValidators(Validators.required)\n if (value == '2' && this.addCompanyForm.controls['SeatCount'].value <= 5) {\n this.addCompanyForm.patchValue({\n SeatCount: 5\n })\n }\n if (value == '3' && this.addCompanyForm.controls['SeatCount'].value <= 10) {\n this.addCompanyForm.patchValue({\n SeatCount: 10\n })\n }\n } else {\n this.addCompanyForm.get('SeatCount').clearValidators();\n this.addCompanyForm.get('SeatCount').reset()\n this.addCompanyForm.updateValueAndValidity();\n }\n }\n );\n this.addCompanyForm.get('ParentId').valueChanges.subscribe(value => {\n this.displayTiers = [];\n this.initialTiers = [];\n this.loadingTiers = true;\n\n this.addCompanyForm.get('InitialTier').setValue(null);\n let paramGet = new HttpParams();\n paramGet = paramGet = paramGet.append('AuthToken', authT);\n paramGet = paramGet.append('UserName', this.globals.getSystemUserName());\n paramGet = paramGet.append('companyId', value);\n this.http.get(this.globals.getServicesUrl() + 'company/getUsableTiers', { params: paramGet }).subscribe({\n next: data => {\n\n this.initialTiers = data.avaliableTiers.sort((a, b) => {\n return a.id - b.id;\n });\n this.displayTiers = this.initialTiers;\n this.loadingTiers = false;\n console.log(this.displayTiers)\n if (this.addCompanyForm.get('CompanyType').value == 'Customer' && value != '9584') {\n //hide tiers based on type\n this.displayTiers = this.initialTiers.filter(function (value, index, arr) { return value.id != 0 })\n if (this.displayTiers.length == 1) { this.addCompanyForm.get('InitialTier').setValue(this.displayTiers[0].id); }\n }\n else {\n this.displayTiers = this.initialTiers\n if (this.displayTiers.length == 1) { this.addCompanyForm.get('InitialTier').setValue(this.displayTiers[0].id); }\n\n }\n\n },\n error: error => { console.error('There was an error!'); }\n });\n let parent = this.childPartners.find(partner => {\n return partner.value == value\n })\n this.addCompanyForm.controls['DataCountryCode'].setValue(parent.code);\n\n if (parent.flag == 'Y' || this.myCompanyType == \"Partner\") {\n this.companyTypes = [\n { value: 'C', viewValue: 'Customer', flag: 'N' },\n ];\n this.addCompanyForm.controls['CompanyType'].setValue(\"Customer\");\n\n } else {\n\n this.companyTypes = [\n //{value: 'S', viewValue: 'Super', flag: 'N'},\n { value: 'W', viewValue: 'Wholesaler', flag: 'Y' },\n //{value: 'W', viewValue: 'Dealer', flag: 'Y'},\n { value: 'R', viewValue: 'Partner', flag: 'Y' },\n { value: 'C', viewValue: 'Customer', flag: 'N' },\n ];\n\n }\n });\n\n //UPDATE TEIRS BASED ON COMPANY TYPE\n this.addCompanyForm.get('CompanyType').valueChanges.subscribe(value => {\n if (value == 'Customer') {\n //hide tiers based on type\n // this.initialTiers = this.globals.getTiers();\n\n this.displayTiers = this.initialTiers.filter(function (value, index, arr) { return value.id != 0 })\n if (this.displayTiers.length == 1) { this.addCompanyForm.get('InitialTier').setValue(this.displayTiers[0].id); }\n\n\n if (this.addCompanyForm.get('InitialTier').value == 0) { this.addCompanyForm.get('InitialTier').setValue(null); }\n }\n else {\n this.displayTiers = this.initialTiers\n if (this.displayTiers.length == 1) { this.addCompanyForm.get('InitialTier').setValue(this.displayTiers[0].id); }\n\n }\n });\n //AUTO SET TO CLIENT IF A PARTNER IS ADDING\n if (this.myCompanyType == \"Partner\") {\n\n this.addCompanyForm.controls['CompanyType'].setValue(\"Customer\");\n }\n }\n print(val) {\n console.log(val)\n }\n add() {\n console.log('add', this.addCompanyForm.controls['InitialTier'].value, this.addCompanyForm.controls['SeatCount'].value)\n if (this.addCompanyForm.controls['InitialTier'].value == '2' && this.addCompanyForm.controls['SeatCount'].value <= 5) {\n this.addCompanyForm.patchValue({\n SeatCount: 5\n })\n }\n if (this.addCompanyForm.controls['InitialTier'].value == '3' && this.addCompanyForm.controls['SeatCount'].value <= 10) {\n this.addCompanyForm.patchValue({\n SeatCount: 10\n })\n }\n }\n async addCompany(formSub: FormGroup) {\n this.adding = true;\n if (formSub.valid) {\n let formData = formSub.value\n formData.ParentId = formSub.get('ParentId').value\n let form = new FormData;\n let tempIdent = formData.CompanyName\n tempIdent = tempIdent.toLowerCase();\n tempIdent = tempIdent.replace(/[^a-zA-Z0-9]/g, \"\")\n tempIdent = tempIdent.substring(0, 11) + Math.floor(1000000 + Math.random() * 9000000).toString();\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('CompanyIdent', tempIdent);\n form.append('CompanyName', formData.CompanyName);\n form.append('ParentCompanyId', formData.ParentId);\n form.append('InitialTier', formData.InitialTier);\n if (formSub.get('ParentId').value == \"9584\") {\n form.append('Domain', formData.CompanyDomain);\n }\n\n if (formData.SeatCount != null) { form.append('SeatCount', formData.SeatCount); }\n form.append('DataCountryCode', formData.DataCountryCode);\n if (!this.globals.isSpUser() && formData.CompanyType === 'Customer') {\n form.append('IdentResellerInEmailFooterFlag', \"Y\");\n } else { form.append('IdentResellerInEmailFooterFlag', \"N\"); }\n if (formData.InitialTier === 'Unlimited') {\n form.append('CanUseApiFlag', 'Y');\n }\n if (this.myCompanyType == \"Partner\") {\n form.append('SPMCompanyType', 'C');\n form.append('IsDealerFlag', 'N');\n } else {\n if (formData.CompanyType === 'Super') {\n form.append('SPMCompanyType', 'S');\n form.append('IsDealerFlag', 'N');\n } else if (formData.CompanyType === 'Wholesaler') {\n form.append('SPMCompanyType', 'W');\n form.append('IsDealerFlag', 'Y');\n } else if (formData.CompanyType === 'Partner') {\n form.append('SPMCompanyType', 'R');\n form.append('IsDealerFlag', 'Y');\n } else if (formData.CompanyType === 'Customer') {\n form.append('SPMCompanyType', 'C');\n form.append('IsDealerFlag', 'N');\n }\n }\n this._snackBar.open(\"Adding Company...\", \"OK\", { duration: 5000 });\n this.http.post(this.globals.getServicesUrl() + 'company/addCompanyNew', form).subscribe({\n next: data => {\n this._snackBar.open(\"Company added!\", \"OK\", { duration: 5000 });\n this.router.navigate([\"/detail\", data.CompanyId], { fragment: 'setup' })\n },\n error: error => {\n this.adding = false;\n this._snackBar.open(\"Error adding company!\", \"OK\", { duration: 5000 });\n\n // this.retryAddingCompany(form);\n }\n });\n } else { this.adding = false; }\n }\n retryAddingCompany(form: FormData) {\n let tempIdent = form.get('CompanyName').toString();\n tempIdent = tempIdent.toLowerCase();\n tempIdent = tempIdent.replace(/[^a-zA-Z0-9]/g, \"\")\n tempIdent = tempIdent + this.attemptNo;\n form.append('CompanyIdent', tempIdent);\n this.http.post(this.globals.getApiUrl() + 'api/addSPMailCompany.php', form).subscribe({\n next: data => {\n this._snackBar.open(\"Company added!\", \"OK\", { duration: 5000 });\n let formB = new FormData;\n formB.append('UserName', this.globals.getSystemUserName());\n formB.append('companyName', form.get('CompanyName'));\n formB.append('companyIdent', tempIdent);\n formB.append('companyId', data.CompanyId);\n this.createdId = data.CompanyId;\n\n this.http.post(this.globals.getServicesUrl() + 'company/addCompany', formB).subscribe({\n next: data => {\n },\n error: error => {\n console.error(error)\n }\n });\n this.router.navigate([\"/detail\", data.CompanyId], { fragment: 'setup' })\n\n\n },\n error: error => {\n if (this.attemptNo < 8) {\n this.attemptNo++;\n this.retryAddingCompany(form);\n } else {\n this.attemptNo = 0;\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n }\n });\n }\n\n\n}\n","\n\n \n \n Add a new company\n \n \n \n
\n
\n \n
\n
\n Parent company\n \n \n \n {{childPartner.viewValue}}\n \n \n \n Parent company is required\n \n \n
\n
\n \n
\n
\n Company name\n \n \n \n Company name is required\n \n \n
\n
\n \n
\n
\n Company domain\n \n \n \n
\n
\n \n \n
=2\">\n
\n Company type\n \n \n \n {{companyType.viewValue}}\n \n \n \n Company type is required\n \n \n
\n
\n \n \n
1\">\n
\n Pricing tier\n
\n \n
\n
\n \n \n \n {{initialTier.name}}\n \n \n \n Company tier is required\n \n \n \n \n \n
Please choose a pricing tier. If the company does not intend to use the\n StayPrivate platform, then select 'Not applicable'.
\n
\n \n
\n \n
\n
\n
\n \n
\n
\n \n
\n User count\n
\n \n \n \n
\n
\n
\n \n
\n
\n Licenses\n
\n \n \n Up to 3 Users\n 4 Users\n 5 Users\n 6 Users\n 7 Users\n 8 Users\n 9 Users\n 10 Users\n 11 Users\n 12 Users\n 13 Users\n 14 Users\n 15 Users\n 16 Users\n 17 Users\n 18 Users\n 19 Users\n 20 Users\n 21 Users\n 22 Users\n 23 Users\n 24 Users\n Unlimited Users\n \n \n
\n
\n
\n\n
\n \n \n \n \n
\n
\n
","import { Component } from '@angular/core';\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { files } from './example-data';\n\n/** File node data with possible child nodes. */\nexport interface FileNode {\n name: string;\n type: string;\n children?: FileNode[];\n}\n\n/**\n * Flattened tree node that has been created from a FileNode through the flattener. Flattened\n * nodes include level index and whether they can be expanded or not.\n */\nexport interface FlatTreeNode {\n name: string;\n type: string;\n level: number;\n expandable: boolean;\n}\n\n@Component({\n selector: 'app-tree',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.css']\n})\nexport class TreeComponent {\n\n /** The TreeControl controls the expand/collapse state of tree nodes. */\n treeControl: FlatTreeControl;\n\n /** The TreeFlattener is used to generate the flat list of items from hierarchical data. */\n treeFlattener: MatTreeFlattener;\n\n /** The MatTreeFlatDataSource connects the control and flattener to provide data. */\n dataSource: MatTreeFlatDataSource;\n\n constructor() {\n this.treeFlattener = new MatTreeFlattener(\n this.transformer,\n this.getLevel,\n this.isExpandable,\n this.getChildren);\n\n this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);\n this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\n this.dataSource.data = files;\n }\n\n /** Transform the data to something the tree can read. */\n transformer(node: FileNode, level: number) {\n return {\n name: node.name,\n type: node.type,\n level: level,\n expandable: !!node.children\n };\n }\n\n /** Get the level of the node */\n getLevel(node: FlatTreeNode) {\n return node.level;\n }\n\n /** Get whether the node is expanded or not. */\n isExpandable(node: FlatTreeNode) {\n return node.expandable;\n }\n\n /** Get whether the node has children or not. */\n hasChild(index: number, node: FlatTreeNode) {\n return node.expandable;\n }\n\n /** Get the children for the node. */\n getChildren(node: FileNode): FileNode[] | null | undefined {\n return node.children;\n }\n}\n","\n \n \n \n {{ node.type === 'file' ? 'description' : 'folder' }}\n \n {{node.name}} \n dfsdafsd\n {{node.size}}\n \n\n \n \n \n {{ node.type ==='file' ? 'description' : 'folder' }}\n \n {{node.name}}\n www\n {{node.size}}\n \n\n","import { HttpClient } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router } from '@angular/router';\nimport { Globals } from 'src/app/globals';\n\n@Component({\n selector: 'app-forgot-password',\n templateUrl: './forgot-password.component.html',\n styleUrls: ['./forgot-password.component.css']\n})\nexport class ForgotPasswordComponent implements OnInit{\n\n forgotPasswordForm = this.fb.group({\n email: [null, Validators.required]\n });\n \n constructor(\n private fb: FormBuilder,\n private globals: Globals, \n private http: HttpClient, \n private _snackBar: MatSnackBar,\n private router: Router,\n ) {}\n\n ngOnInit(){\n this.globals.checkTheme();\n }\n onSubmit() {\n if(this.forgotPasswordForm.valid) {\n let form = new FormData;\n form.append('EmailAddress',this.forgotPasswordForm.value.email);\n \n this.http.post(this.globals.getApiUrl()+'api/genSPMailUserPasswordResetLink.php', form).subscribe({\n next: data => {\n this._snackBar.open(\"Link Sent!\",\"OK\",{duration:5000} );\n this.router.navigate([\"/login\"]);\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg,\"OK\",{duration:5000} );\n }\n });\n } else {\n } \n }\n}\n","
\n
\n
\n \n
\n \n
\n \n Forgotten Password\n \n \n
\n
\n \n Enter your email\n \n \n Email is required\n \n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n\n\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-remove-logo',\n templateUrl: './remove-logo.component.html',\n styleUrls: ['./remove-logo.component.css']\n})\nexport class RemoveLogoComponent implements OnInit {\n\n constructor(public dialogRef: MatDialogRef,) { }\n\n ngOnInit(): void {\n }\n confirm(){\n this.dialogRef.close(true)\n }\n cancel(){\n this.dialogRef.close()\n }\n}\n","
\n \"\"\n\n Are you sure?\n

\n You are about to remove custom branding from your StayPrivate account.
\n All secure emails will no longer carry your custom co-branded logo.\n

\n

To remove all custom branding from your system, select 'Confirm' below.

\n

To update your logo instead, press 'Cancel' then select 'Update logo'.

\n
\n \n \n
\n\n
","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { CompanySetupProcessComponent } from '../company-setup-process/company-setup-process.component';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n@Component({\n selector: 'app-setup-dkim',\n templateUrl: './setup-dkim.component.html',\n styleUrls: ['./setup-dkim.component.css']\n})\nexport class SetupDkimComponent implements OnInit {\n\n constructor(public dialogRef: MatDialogRef,\n private clipboard: Clipboard,\n private _snackBar: MatSnackBar) { }\n\n ngOnInit(): void {\n }\n copy(copyVariable) {\n this.clipboard.copy(copyVariable);\n this._snackBar.open(\"Copied!\", \"OK\", { duration: 3000 });\n }\n}\n","Configuring your company DNS\nUpdating the company DNS records allows StayPrivate to send private emails on\n behalf of the company:\n
\n
    \n
  1. Log into the DNS administration console.
  2. \n
  3. Find the current SPF record – this is a TXT record and normally starts with\n 'v=spf1' – and add the text: include:stayprivatemail.com before\n the trailing '-all'.
    OR, if you do not have an SPF record, add a new TXT record with the following:\n v=spf1 a mx include:stayprivatemail.com -all.
  4. \n \n
  5. Add a new CNAME record called stayprivate._domainkey with the\n value: stayprivate._domainkey.stayprivatemail.com.\n
  6. \n\n
\n
\n
\n \n \n\n
","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { Globals } from 'src/app/globals';\n\n@Component({\n selector: 'app-contact-us',\n templateUrl: './contact-us.component.html',\n styleUrls: ['./contact-us.component.css']\n})\nexport class ContactUsComponent implements OnInit {\n\n constructor(private globals: Globals, private http: HttpClient,private titleService: Title) { }\n myCompanyType:string;\n spChild=false;\n parentIds = ['543','9584','9585','9580']\n async ngOnInit(): Promise {\n this.myCompanyType = this.globals.getCompanyType();\n this.titleService.setTitle(\"Contact Us - STAY PRIVATE\");\n let param = new HttpParams();\n param = param =param.append('AuthToken',await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n this.http.get(this.globals.getApiUrl()+'api/getSPMailCompanyInfo.php', {params:param}).subscribe({next: data => \n {\n if(this.parentIds.find(id => id == data.ParentCompanyId)){\n this.spChild = true;\n }else{ this.spChild = false; } \n },\n error: error => \n {console.error('There was an error!');}\n });\n \n }\n\n}\n","\n \n Contact Us \n \n

\n Support Requests\n For any support requests please email us at support@stayprivate.com or call us on +44 (0)20 7101 5000.

\n Sales Queries\n For any sales queries please email us at \n partners@stayprivate.com\n sales@stayprivate.com\n or call us on +44 (0)20 7101 5000.\n

\n
\n\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Globals } from 'src/app/globals';\nimport { MatchingValidatorDirective } from '../add-user/matching-validator.directive';\n\n@Component({\n selector: 'app-reset-password',\n templateUrl: './reset-password.component.html',\n styleUrls: ['./reset-password.component.css']\n})\nexport class ResetPasswordComponent implements OnInit {\n hidePassword = true;\n hidePasswordConfirm = true;\n private userName:string;\n private validated:boolean=false;\n\n resetPasswordForm = this.fb.group({\n password: [null,Validators.pattern(\"(?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z]).{8,}\")],\n passwordConfirm: [null,[Validators.required] ], \n }); \n \n constructor(\n private fb: FormBuilder,\n private globals: Globals, \n private _snackBar: MatSnackBar,\n private http: HttpClient,\n private router: Router,\n private route: ActivatedRoute\n ) {}\n ngOnInit(){\n this.globals.checkTheme();\n let param = new HttpParams(); \n param = param.append('ResetCode', this.route.snapshot.queryParams.reset);\n this.http.get(this.globals.getApiUrl()+'api/checkSPMailUserPasswordResetCode.php',{params: param}).subscribe({\n next: data => {\n this.userName = data.LoginUserName;\n this.validated=true;\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg,\"OK\",{duration:5000} );\n this.resetPasswordForm.disable();\n }\n });\n }\n onSubmit() {\n if(this.validated){\n if(this.resetPasswordForm.value.passwordConfirm!=this.resetPasswordForm.value.password){console.error(\"Password's do not match\")}\n else{ \n if(this.resetPasswordForm.valid) {\n let update = new FormData;\n update.append('ResetCode',this.route.snapshot.queryParams.reset);\n update.append('UserName',this.userName);\n update.append('UserPwd1', this.resetPasswordForm.value.password)\n update.append('UserPwd2', this.resetPasswordForm.value.passwordConfirm)\n this.http.post(this.globals.getApiUrl()+'api/resetSPMailUserPasswordByCode.php',update).subscribe({\n next: data => {\n this.getCompanyType(data.AuthToken,data.SystemUserName)\n \n //setGlobals\n this.globals.setAuthToken(data.AuthToken);\n this.globals.setSystemUserName(data.SystemUserName);\n this.globals.setUserName(this.userName);\n\n this._snackBar.open(\"Password Reset Successfully\",\"OK\",{duration:5000} );\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg,\"OK\",{duration:5000} );\n }\n });\n\n } else {\n }\n }\n }\n }\n\n getTheme(authToken:string,userName:string){\n let param = new HttpParams();\n param = param.append('AuthToken',authToken);\n param = param.append('UserName', userName);\n\n this.http.get(this.globals.getApiUrl()+'api/getSPMailCompanyTheme.php', {params:param}).subscribe({\n next: themedata => { \n //setLocalStorage\n localStorage.setItem('background-color', themedata[\"background-color\"]);\n localStorage.setItem('foreground-color', themedata[\"foreground-color\"]);\n localStorage.setItem('highlight-color', themedata[\"highlight-color\"]);\n localStorage.setItem('border-color', themedata[\"border-color\"]);\n localStorage.setItem('img-url', themedata.logo);\n localStorage.setItem('app-name', themedata[\"app-name\"]);\n //navigate\n this.router.navigate([\"/home\"])\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n }\n getCompanyType(authToken:string,userName:string){\n let param = new HttpParams();\n param = param =param.append('AuthToken',authToken);\n param = param.append('UserName', userName);\n this.http.get(this.globals.getApiUrl()+'api/getSPMailCompanyInfo.php', {params:param}).subscribe({next: data => \n { \n if (data.SPMCompanyType==\"S\"){this.globals.setCompanyType(\"Super\")}\n if (data.SPMCompanyType==\"W\"&&data.IsDealerFlag==\"N\"){this.globals.setCompanyType(\"Wholesaler\")}\n if (data.SPMCompanyType==\"W\"&&data.IsDealerFlag==\"Y\"){this.globals.setCompanyType(\"Dealer\")}\n if (data.SPMCompanyType==\"R\"){this.globals.setCompanyType(\"Partner\")}\n if (data.SPMCompanyType==\"C\"){this.globals.setCompanyType(\"Customer\")}\n //getTheme before navigation\n this.getTheme(authToken,userName)\n },\n error: error => \n {console.error('There was an error!');}\n });\n}\n}\n","
\n
\n
\n \n
\n \n
\n \n Forgotten Password\n \n \n
\n
\n \n Password\n \n \n \n A password is required\n \n \n Requires both upper and lower case letters and at least one number\n \n \n Passwords must match\n \n \n \n \n \n Confirm Password\n \n \n \n A password is required\n \n \n Passwords must match\n \n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n\n\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { Globals } from './globals';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppResolverService implements Resolve {\n\n constructor(private globals:Globals) { }\n async resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise | Promise | any>{\n await this.globals.getAuthToken();\n return this.globals.loadTiers();\n };\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, Inject, Input, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\nimport { Globals } from 'src/app/globals';\nimport { AddUserComponent } from '../add-user/add-user.component';\nimport { ConfirmPopupComponent } from '../confirm-popup/confirm-popup.component';\n\nexport interface DialogData {\n emailAddress: string;\n name: string;\n}\n\n\n@Component({\n selector: 'app-user-list',\n templateUrl: './user-list.component.html',\n styleUrls: ['./user-list.component.css']\n})\nexport class UserListComponent implements OnInit {\n\n constructor(private http: HttpClient, private globals: Globals, private route: ActivatedRoute, public dialog: MatDialog) { }\n @Input() public owner: any;\n @Input() public companyState: string;\n\n companyDomain: boolean = false\n users = null;\n emailAddress: string;\n name: string;\n displayedColumns: string[] = ['LoginUserName', 'PersonalName', 'EmailAddress', 'Delete'];\n dataSource\n async ngOnInit(): Promise {\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n if (this.route.snapshot.params['id']) {\n param = param.append('CompanyId', this.route.snapshot.params['id']);\n } else {\n }\n\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyUsers.php', { params: param }).subscribe({\n next: data => {\n this.users = data.UserList\n this.dataSource = this.users;\n },\n error: error => { console.error('There was an error!'); }\n })\n /*this.http.get(this.globals.getApiUrl()+'api/getSPMailCompanyInfo.php', {params:param}).subscribe({next: data => \n {\n if(data.DomainList==\"\"){this.companyDomain=false}\n else{this.companyDomain=true}\n },\n error: error => \n {console.error('There was an error!');}\n });*/\n }\n openAddUser() {\n if(this.companyState==\"A\"){\n const dialogRef = this.dialog.open(AddUserComponent, {\n width: '350px',\n data: { route: this.route }\n });\n \n dialogRef.afterClosed().subscribe(async result => {\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n if (this.route.snapshot.params['id']) {\n param = param.append('CompanyId', this.route.snapshot.params['id']);\n } else {\n }\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyUsers.php', { params: param }).subscribe({\n next: data => {\n this.users = data.UserList\n \n },\n error: error => { console.error('There was an error!'); }\n })\n });\n }\n }\n async deleteUser(userDel: string,userName: string) {\n const dialogRef = this.dialog.open(ConfirmPopupComponent, {\n autoFocus: false,\n data: {\n text: [\n 'You are about to delete '+userName+\"'s access to the StayPrivate dashboard.\",\n 'This action is permanent and cannot be undone.'\n ]\n },\n });\n\n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n let postForm = new FormData;\n postForm.append('AuthToken', await this.globals.getAuthToken());\n postForm.append('UserName', this.globals.getSystemUserName());\n postForm.append('DeleteUserName', userDel);\n this.http.post(this.globals.getApiUrl() + 'api/deleteSPMailCompanyUser.php', postForm).subscribe({\n next: data => {\n let tempList = [...this.users]\n for (var i = 0; i < tempList.length; i++) {\n if (tempList[i].UserName === userDel) {\n tempList.splice(i, 1);\n this.users = [...tempList];\n }\n }\n },\n error: error => {\n }\n });\n }\n\n });\n\n\n\n }\n}\n\n","\n \n \n\n \n
\n
\n No users found\n
\n\n
\n 0\" class=\"mat-elevation-z2\">>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
User Name {{user.LoginUserName}} military_tech Personal Name {{user.PersonalName}} Email Address {{user.EmailAddress}} \n \n
\n
\n
\n\n
\n
","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { CompanyDetailComponent } from './components/company-detail/company-detail.component';\nimport { LoginComponent } from './components/login/login.component';\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\nimport { HomeComponent } from './components/home/home.component';\nimport { AddCompanyComponent } from './components/add-company/add-company.component';\nimport { EditThemeComponent } from './components/edit-theme/edit-theme.component';\nimport { AuthGuard } from './components/login/auth.guard';\nimport { MyAccountComponent } from './components/my-account/my-account.component';\nimport { MyCompanyComponent } from './components/my-company/my-company.component';\nimport { ResetPasswordComponent } from './components/reset-password/reset-password.component';\nimport { NavigationComponent } from './navigation/navigation.component';\nimport { CompanySetupProcessComponent } from './components/company-setup-process/company-setup-process.component';\nimport { ResourcesComponent } from './components/resources/resources.component';\nimport { ContactUsComponent } from './components/contact-us/contact-us.component';\nimport { DeveloperComponent } from './components/developer/developer.component';\nimport { CompanySetupComponent } from './components/company-setup/company-setup.component';\nimport { CompanySetupPageComponent } from './components/company-setup-page/company-setup-page.component';\nimport { CompanyLogoComponent } from './components/company-logo/company-logo.component';\nimport { NotificationsComponent } from './components/notifications/notifications.component';\nimport { Error404Component } from './components/error404/error404.component';\nimport { BillingComponent } from './components/billing/billing.component';\nimport { AppResolverService } from './app-resolver.service';\nconst routes: Routes = [\n { path: '', redirectTo: '/login', pathMatch: 'full' },\n { path: 'login', component: LoginComponent },\n { path: 'microsoftsetup', component: CompanySetupComponent },\n { path: 'googlesetup', component: CompanySetupComponent },\n { path: 'standardsetup', component: CompanySetupComponent },\n { path: 'directsetup', component: CompanySetupComponent },\n { path: 'forgot-password', component: ForgotPasswordComponent},\n { path: 'reset', component: ResetPasswordComponent},\n { path: 'notfound', component: Error404Component},\n \n { path: '', component: NavigationComponent,canActivate:[AuthGuard] ,resolve:{data:AppResolverService}, children:[\n { path: 'detail/:id', component: CompanyDetailComponent,canActivate:[AuthGuard] },\n { path: 'mycompany', component: MyCompanyComponent,canActivate:[AuthGuard] },\n { path: 'setup', component: CompanySetupPageComponent,canActivate:[AuthGuard] },\n { path: 'account', component: MyAccountComponent,canActivate:[AuthGuard] },\n { path: 'home', component: HomeComponent,canActivate:[AuthGuard] },\n { path: 'billing', component: BillingComponent,canActivate:[AuthGuard] },\n { path: 'add-company', component: AddCompanyComponent ,canActivate:[AuthGuard] },\n { path: 'edit-theme', component: EditThemeComponent ,canActivate:[AuthGuard] },\n { path: 'resources', component: ResourcesComponent ,canActivate:[AuthGuard] },\n { path: 'contact-us', component: ContactUsComponent ,canActivate:[AuthGuard] },\n { path: 'developer', component: DeveloperComponent ,canActivate:[AuthGuard] },\n { path: 'notifications', component: NotificationsComponent ,canActivate:[AuthGuard] },\n { path: 'not-found', component: Error404Component ,canActivate:[AuthGuard] },\n { path: '**', redirectTo: '/not-found', pathMatch: 'full' },\n ]},\n \n \n \n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy',onSameUrlNavigation: 'reload' })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable, OnInit } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nclass TierType {\n id: Number;\n name: string;\n order: number;\n description: string;\n baseRecipients?: Number;\n baseStorage?: Number;\n extraRecipients?: Number;\n extraStorage?: Number;\n branding?: Boolean;\n prices?: [{ currency: string, price: Number, extraUsage: Number }]\n}\n@Injectable()\nexport class Globals {\n constructor(\n private http: HttpClient,\n private _snackBar: MatSnackBar,\n private router: Router,\n ) { }\n defaultUsername;\n defaultUserPwd;\n\n\n private userName: string;\n private owner: boolean;\n private companyId: string;\n private companyType: string;\n private companyName: string;\n private authTokenExpire: string;\n\n private ApiUrl: string;\n private ServicesUrl: string;\n private ImgUrl: string;\n private SPUsers: string[];\n private lastPage: string;\n private tiers: TierType[];\n private darkMode: boolean;\n\n start(prodMode: boolean) {\n if (prodMode == true) {\n this.ApiUrl = \"https://app.stayprivate.com/ao_ws/\"\n // this.ServicesUrl=\"https://services.stayprivate.com/\"\n this.ServicesUrl = \"https://services2.stayprivate.com/\"\n this.ImgUrl = \"https://s3.eu-west-2.amazonaws.com/stayprivate.logos/\"\n this.defaultUsername = null;\n this.defaultUserPwd = null;\n this.SPUsers = [\"stayprivatesales:9584\", \"stayprivatewholesaler:9585\", \"spmliveuser1:9580\"]\n } else {\n this.defaultUsername = \"spmsupertest1\";\n this.defaultUserPwd = \"%SPM%Test%Usr1\";\n this.ApiUrl = \"https://www.econumysecure.com/ao_ws/\"\n this.ServicesUrl = \"http://localhost:3030/\"\n // this.ServicesUrl=\"http://services1.stayprivate.com:3000/\"\n this.ImgUrl = \"https://www.econumysecure.com\"\n this.SPUsers = [\"spmsupertest1:543\"]\n }\n\n if (localStorage.getItem(\"darkMode\") == 'true') { this.darkMode = true; this.toggleDarkMode('Y') } else\n if (localStorage.getItem(\"darkMode\") == 'false') { this.darkMode = false; this.toggleDarkMode('Y') } else { this.darkMode = null; }\n\n\n }\n //Set value to null when not testing\n\n isSpUser() {\n if (this.SPUsers.find(user => user == this.getSystemUserName())) {\n return true;\n } else { return false; }\n }\n loadTiers(): Observable {\n this.http.get(this.ServicesUrl + 'utils/getTiers').subscribe({\n next: data => {\n console.log(data.tiers)\n\n this.tiers = data.tiers.sort((a, b) => {\n return a.order - b.order;\n });\n },\n error: error => {\n }\n\n });\n return this.http.get(this.ServicesUrl + 'utils/getTiers')\n }\n getTiers() {\n console.log(this.tiers)\n return this.tiers;\n\n\n }\n getTier(tier) {\n console.log(this.tiers)\n\n return this.tiers.find((element) => element.id == tier);\n\n }\n getApiUrl() {\n return this.ApiUrl;\n }\n getServicesUrl() {\n return this.ServicesUrl;\n }\n getImgUrl() {\n return this.ImgUrl;\n }\n getUserName() {\n return this.userName;\n }\n setUserName(userInput: string) {\n this.userName = userInput\n }\n isOwner() {\n return this.owner;\n }\n setOwner(userInput: boolean) {\n this.owner = userInput\n }\n getCompanyName() {\n return this.companyName;\n }\n setCompanyName(userInput: string) {\n this.companyName = userInput\n }\n getCompanyType() {\n let typeCode = this.companyType\n if (typeCode == \"g4OIkUKDWdkk1y17v\") { typeCode = \"Super\" }\n else if (typeCode == \"4PZyCH4eOjxzsc\") { typeCode = \"Wholesaler\" }\n else if (typeCode == \"Y0bgmrKacmE3vRy7HC\") { typeCode = \"Partner\" }\n else if (typeCode == \"nagoYmhF9/TU7qheCQ=\") { typeCode = \"Dealer\" }\n else if (typeCode == \"LChykO8gZQwW93wxrUW8\") { typeCode = \"Customer\" }\n return typeCode;\n }\n setCompanyType(userInput: string) {\n let typeCode\n if (userInput == \"Super\") { typeCode = \"g4OIkUKDWdkk1y17v\" }\n else if (userInput == \"Wholesaler\") { typeCode = \"4PZyCH4eOjxzsc\" }\n else if (userInput == \"Partner\") { typeCode = \"Y0bgmrKacmE3vRy7HC\" }\n else if (userInput == \"Dealer\") { typeCode = \"nagoYmhF9/TU7qheCQ=\" }\n else if (userInput == \"Customer\") { typeCode = \"LChykO8gZQwW93wxrUW8\" }\n this.companyType = typeCode\n }\n\n getSystemUserName() {\n return localStorage.getItem(\"systemUserName\")\n }\n setSystemUserName(userInput: string) {\n localStorage.setItem(\"systemUserName\", userInput)\n }\n\n private timeoutTracker\n private timeoutTrackerHtml\n public timeoutTrackerObj = { time: { minute: 0, second: \"00\" }, limit: 0 }\n resetTracker() {\n if (this.timeoutTracker) {\n clearTimeout(this.timeoutTracker)\n clearInterval(this.timeoutTrackerHtml)\n }\n }\n getTracker() {\n return this.timeoutTrackerObj\n }\n refreshAuth() {\n this.authTokenExpire = JSON.stringify(new Date(new Date().getTime() + (60000 * 14.6)))\n\n if (this.timeoutTracker) {\n clearTimeout(this.timeoutTracker)\n }\n this.timeoutTracker = setTimeout(() => {\n this.logout()\n }, (60000 * 14.6))\n this.timeoutTrackerObj.limit = 60 * 14.6\n // this.timeoutTrackerObj.time = 60 * 14.6\n if (this.timeoutTrackerHtml) {\n clearInterval(this.timeoutTrackerHtml)\n }\n this.timeoutTrackerHtml = setInterval(() => {\n this.timeoutTrackerObj.limit--\n this.timeoutTrackerObj.time.minute = Math.floor(this.timeoutTrackerObj.limit / 60)\n this.timeoutTrackerObj.time.second = (this.timeoutTrackerObj.limit - (this.timeoutTrackerObj.time.minute * 60)).toLocaleString('en-US', {\n minimumIntegerDigits: 2,\n useGrouping: false\n })\n\n }, 1000)\n\n }\n checkTheme() {\n if (localStorage.getItem(\"background-color\") == null) { localStorage.setItem(\"background-color\", \"#407ba6\") }\n if (localStorage.getItem(\"foreground-color\") == null) { localStorage.setItem(\"foreground-color\", \"#407ba6\") }\n if (localStorage.getItem(\"highlight-color\") == null) { localStorage.setItem(\"foreground-color\", \"#407ba6\") }\n if (localStorage.getItem(\"border-color\") == null) { localStorage.setItem(\"foreground-color\", \"#407ba6\") }\n document.head.insertAdjacentHTML(\"beforeend\",\n \"\");\n }\n toggleDarkMode(start?: string) {\n if (start != 'Y') {\n this.darkMode = !this.darkMode\n localStorage.setItem(\"darkMode\", '' + this.darkMode)\n }\n if (this.darkMode) {\n document.getElementById(\"main-body-target\").classList.add('dark-mode');\n document.getElementById(\"main-body-target\").classList.remove('light-mode');\n } else {\n document.getElementById(\"main-body-target\").classList.add('light-mode');\n document.getElementById(\"main-body-target\").classList.remove('dark-mode');\n }\n }\n async getAuthToken() {\n if (this.authTokenExpire) {\n if (new Date() > new Date(JSON.parse(this.authTokenExpire))) {\n localStorage.removeItem(\"systemUserName\")\n localStorage.removeItem(\"AuthToken\")\n return null;\n } else {\n return localStorage.getItem(\"AuthToken\");\n }\n } else if (localStorage.getItem(\"systemUserName\") && localStorage.getItem(\"AuthToken\")) {\n let tempResp = null;\n await new Promise(async (resolve, reject) => {\n\n let param = new HttpParams();\n param = param = param.append('AuthToken', localStorage.getItem(\"AuthToken\"));\n param = param.append('UserName', localStorage.getItem(\"systemUserName\"));\n\n this.http.get(this.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: data => {\n this.refreshAuth()\n this.setCompanyName(data.CompanyName)\n if (data.SPMCompanyType == \"S\") { this.setCompanyType(\"Super\") }\n if (data.SPMCompanyType == \"W\" && data.IsDealerFlag == \"N\") { this.setCompanyType(\"Wholesaler\") }\n if (data.SPMCompanyType == \"W\" && data.IsDealerFlag == \"Y\") { this.setCompanyType(\"Wholesaler\") }\n if (data.SPMCompanyType == \"R\") { this.setCompanyType(\"Partner\") }\n if (data.SPMCompanyType == \"C\") { this.setCompanyType(\"Customer\") }\n this.setOwner(data.Owner.UserName == localStorage.getItem(\"systemUserName\"))\n tempResp = localStorage.getItem(\"AuthToken\");\n\n resolve(localStorage.getItem(\"AuthToken\"))\n },\n error: error => {\n console.error('There was an error!');\n localStorage.removeItem(\"systemUserName\")\n localStorage.removeItem(\"AuthToken\")\n tempResp = null;\n resolve(null)\n\n }\n });\n\n })\n return tempResp;\n\n\n\n }\n\n\n }\n setAuthToken(userInput: string) {\n localStorage.setItem(\"AuthToken\", userInput)\n this.refreshAuth();\n }\n\n getCompanyId() {\n let temp = localStorage.getItem(\"systemUserName\").split(\":\");\n let numeric_string = temp[temp.length - 1].replace(/[^0-9]/g, '');\n return numeric_string\n }\n getLastPath() {\n let temp = this.lastPage;\n this.lastPage = null;\n return temp;\n }\n private logout() {\n let logout = new FormData;\n logout.append('AuthToken', localStorage.getItem(\"AuthToken\"));\n logout.append('UserName', localStorage.getItem(\"systemUserName\"));\n this.http.post(this.getApiUrl() + 'api/recordSPMailUserLogOut.php', logout).subscribe({\n next: data => {\n localStorage.removeItem(\"systemUserName\")\n localStorage.removeItem(\"AuthToken\")\n\n this.userName = null\n this.companyType = null\n this.authTokenExpire = null\n this._snackBar.open(\"Logged out for inactivity.\", \"OK\", { duration: 5000 });\n this.lastPage = location.pathname;\n this.router.navigate(['/login'])\n },\n error: error => {\n localStorage.removeItem(\"systemUserName\")\n localStorage.removeItem(\"AuthToken\")\n\n this.userName = null\n this.companyType = null\n this.authTokenExpire = null\n this._snackBar.open(\"Logged out for inactivity.\", \"OK\", { duration: 5000 });\n this.lastPage = location.pathname;\n this.router.navigate(['/login'])\n console.error('There was an error!');\n }\n });\n\n }\n\n}","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { Globals } from 'src/app/globals';\n\n@Injectable({providedIn:'root'})\nexport class AuthGuard implements CanActivate{\n constructor(private globals:Globals, private router: Router){}\n\n canActivate(\n route:ActivatedRouteSnapshot,\n router:RouterStateSnapshot\n ):boolean|UrlTree|Promise|Observable\n {\n if (this.globals.getAuthToken()!=null){return true}\n else{return this.router.createUrlTree(['/login']) \n }\n }\n}","import { Component, OnInit } from '@angular/core';\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { files } from './example-data';\nimport { Globals } from 'src/app/globals';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Company } from 'src/app/company.model';\nimport { Subject } from 'rxjs';\n\nexport interface tCompany {\n Name: string\n Id: string\n Ident: string\n\n}\n\n/** File node data with possible child nodes. */\nexport interface FileNode {\n Name: string;\n Id: string;\n DomainList?: string[];\n SPMCompanyType: string;\n InitialTier: string;\n StatusInd: string;\n children?: FileNode[];\n}\n\n/**\n * Flattened tree node that has been created from a FileNode through the flattener. Flattened\n * nodes include level index and whether they can be expanded or not.\n */\nexport interface FlatTreeNode {\n Name: string;\n //type: string;\n level: number;\n expandable: boolean;\n}\n\n@Component({\n selector: 'app-company-list',\n templateUrl: './company-list.component.html',\n styleUrls: ['./company-list.component.css']\n})\nexport class CompanyListComponent implements OnInit {\n\n /** The TreeControl controls the expand/collapse state of tree nodes. */\n treeControl: FlatTreeControl;\n\n /** The TreeFlattener is used to generate the flat list of items from hierarchical data. */\n treeFlattener: MatTreeFlattener;\n\n /** The MatTreeFlatDataSource connects the control and flattener to provide data. */\n dataSource: MatTreeFlatDataSource;\n\n companyList: any[]\n fullCompanyList: any[]\n\n constructor(private globals: Globals, private http: HttpClient) {\n this.treeFlattener = new MatTreeFlattener(\n this.transformer,\n this.getLevel,\n this.isExpandable,\n this.getChildren);\n\n this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);\n this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\n //this.ngOnInit();\n // \n\n }\n\n /** Transform the data to something the tree can read. */\n transformer(node: FileNode, level: number) {\n return {\n Name: node.Name,\n Id: node.Id,\n DomainList: node.DomainList,\n SPMCompanyType: node.SPMCompanyType,\n InitialTier: node.InitialTier,\n StatusInd: node.StatusInd,\n level: level,\n expandable: !!node.children\n };\n }\n\n /** Get the level of the node */\n getLevel(node: FlatTreeNode) {\n return node.level;\n }\n\n /** Get whether the node is expanded or not. */\n isExpandable(node: FlatTreeNode) {\n return node.expandable;\n }\n\n /** Get whether the node has children or not. */\n hasChild(index: number, node: FlatTreeNode) {\n return node.expandable;\n }\n\n /** Get the children for the node. */\n getChildren(node: FileNode): FileNode[] | null | undefined {\n return node.children;\n }\n clients = 0;\n partners = 0;\n tClients = 0;\n tPartners = 0;\n pClients = 0;\n pPartners = 0;\n onlyActiveView;\n allView;\n loading = true;\n async ngOnInit(): Promise {\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n param = param.append('DataIncludeInd', 'F');\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyHierarchy.php', { params: param }).subscribe({\n next: data => {\n\n var filteredCompan = Array.from([...data.CompanyList]);\n this.onlyActiveView = this.buildTree(Array.from([...filteredCompan]).filter(function (value, index, arr) { return value.StatusInd != 'D' }), true)\n this.dataSource.data = Array.from(this.onlyActiveView);\n\n this.loading = false;\n },\n error: error => { console.error('There was an error!'); }\n })\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyHierarchy.php', { params: param }).subscribe({\n next: data => {\n\n var filteredCompan = Array.from([...data.CompanyList]);\n this.allView = this.buildTree(Array.from([...filteredCompan]), false)\n\n this.loading = false;\n },\n error: error => { console.error('There was an error!'); }\n })\n\n }\n viewDeleted = false;\n changeView() {\n this.loading = true;\n if (this.viewDeleted == false) {\n this.dataSource.data = this.allView;\n this.viewDeleted = true;\n this.loading = false;\n\n } else {\n\n this.dataSource.data = this.onlyActiveView;\n this.viewDeleted = false;\n this.loading = false;\n\n }\n }\n\n buildTree(companyLists, count: boolean) {\n var filteredCompanies = companyLists;\n var i, ii\n for (i = (filteredCompanies.length - 1); i >= 0; i--) {\n if (count) {\n if (filteredCompanies[i].SPMCompanyType == 'C') {\n this.tClients++\n } else {\n this.tPartners++\n }\n }\n\n if (filteredCompanies[i].ParentCompanyId != this.globals.getCompanyId()) {\n if (count) {\n if (filteredCompanies[i].SPMCompanyType == 'C') {\n this.pClients++\n } else {\n this.pPartners++\n }\n }\n for (ii = (filteredCompanies.length - 1); ii >= 0; ii--) {\n if (filteredCompanies[ii].Id == filteredCompanies[i].ParentCompanyId) {\n\n if (filteredCompanies[ii].children != null) {\n filteredCompanies[ii].children.push(filteredCompanies[i]);\n filteredCompanies[ii].children.sort(function (x, y) {\n let a = x.Name.toUpperCase(),\n b = y.Name.toUpperCase();\n return a == b ? 0 : a > b ? 1 : -1;\n });\n\n filteredCompanies.splice(i, 1)\n break;\n }\n if (filteredCompanies[ii].children == null) {\n filteredCompanies[ii].children = [filteredCompanies[i]];\n filteredCompanies.splice(i, 1)\n break;\n }\n }\n }\n } else {\n if (count) {\n if (filteredCompanies[i].SPMCompanyType == 'C') {\n this.clients++\n } else {\n this.partners++\n }\n }\n }\n }\n\n filteredCompanies.sort(function (x, y) {\n let a = x.Name.toUpperCase(),\n b = y.Name.toUpperCase();\n return a == b ? 0 : a > b ? 1 : -1;\n });\n return filteredCompanies;\n }\n async delete(id) {\n\n\n let form = new FormData;\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('CompanyId', id);\n\n this.http.post(this.globals.getApiUrl() + 'api/deleteSPMailCompany.php', form).subscribe({\n next: data => {\n // location.reload();\n\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n\n }\n\n}\n\n","\n Companies
\n
\n\n\n
\n

\n You have not added any companies yet.

\n Please use the menu on the left to add a new company.\n

\n \n\n
\n 0||tPartners>0\">You have\n 0\"> {{tClients}} client compan1\">iesy\n 0&&tPartners>0\"> and\n 0\" class=\"sp-title partner-font\"> {{tPartners}} partner1\">s\n 0||tPartners>0\"> registered.\n \n \n \n \n
\n 0||partners>0\">You have added:
\n 0\">{{clients}} client1\">s\n 0&&partners>0\"> and \n 0\">{{partners}} partner1\">s

\n 0||pPartners>0\">Your partners have added:
\n 0\">{{pClients}} client1\">s\n 0&&pPartners>0\"> and \n 0\">{{pPartners}} partner1\">s\n
\n\n
\n \n
\n \n
\n \n\n \n \n \n {{node.Name}}\n \n \n \n \n \n \n \n\n \n\n \n\n \n \n {{node.Name}}\n \n \n build\n \n \n \n \n \n\n \n \n
\n
","import { HttpClient } from '@angular/common/http';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { Globals } from 'src/app/globals';\n\n@Component({\n selector: 'app-add-user',\n templateUrl: './add-user.component.html',\n styleUrls: ['./add-user.component.css']\n})\nexport class AddUserComponent implements OnInit {\n constructor(\n private http: HttpClient,\n private globals: Globals,\n private fb: FormBuilder, \n private _snackBar: MatSnackBar,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: {route: ActivatedRoute}\n ) {\n data.route.params.subscribe(params => {this.id = params['id']});\n dialogRef.disableClose = true;\n }\n hidePassword = true;\n hidePasswordConfirm = true;\n private id;\n addUserForm = this.fb.group({\n emailAddress: [null,[Validators.required,Validators.pattern(\"^[a-z0-9._%+-]{2,}@[a-z0-9.-]+\\\\.[a-z]{2,5}$\")]],\n name: [null, Validators.required],\n password: [null,[Validators.required,Validators.pattern(\"(?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z]).{8,}\")]],\n passwordConfirm: [null,Validators.required],\n \n });\n \n onNoClick(): void {\n this.dialogRef.close();\n }\n get primEmail(){\n return this.addUserForm.get('emailAddress')\n }\n getEmailPrefix(str:string){\n return str.substring(0, str.indexOf(\"@\")); \n }\n async onSubmit(){\n let form = new FormData;\n \n \n form.append('AuthToken',await this.globals.getAuthToken());\n form.append('UserName',this.globals.getSystemUserName());\n form.append('PersonalName',this.addUserForm.value.name);\n form.append('EmailAddress',this.addUserForm.value.emailAddress);\n form.append('NewUserName',this.getEmailPrefix(this.addUserForm.value.emailAddress));\n if(this.id){form.append('CompanyId',this.id);}\n form.append('UserPwd1',this.addUserForm.value.password);\n form.append('UserPwd2',this.addUserForm.value.passwordConfirm);\n form.append('ResetUrlSubdomain','dashboard');\n \n \n this.http.post(this.globals.getApiUrl()+'api/addSPMailCompanyUser.php', form).subscribe({\n next: data => {\n this.dialogRef.close();\n },\n error: error => {\n let msg=\"An unknown error has occurred.\";\n let durationT=5000;\n if(error.error.ErrorMsg==\"The user email address does not belong to a company domain\"){\n msg='This email domain does not exist on this company.\\nPlease add it on the details page and try again.';\n durationT=10000; \n };\n if(error.error.ErrorMsg==\"Cannot add user due to validation errors.\"){\n if(error.error.FieldErrorList[0].FieldError==\"The second password entry must match the first.\"){\n msg='Passwords do not match. Please try again.'\n }\n if(error.error.FieldErrorList[0].FieldError==\"The email address already exists for the company.\"){\n msg='This email is already in use. Please try a different one.'\n }\n if(error.error.FieldErrorList[0].FieldError==\"A user with this name is already registered for the company. Please enter a different user name.\"){\n this.retry(form);\n }\n };\n this._snackBar.open(msg,\"OK\",{duration:durationT} );\n }\n });\n }\n attemptNo=0;\n retry(form:FormData){\n this.attemptNo++\n let tempIdent = this.getEmailPrefix(form.get('EmailAddress').toString())\n tempIdent = tempIdent.toLowerCase();\n tempIdent = tempIdent.replace(/[^a-zA-Z0-9]/g, \"\")\n tempIdent = tempIdent+this.attemptNo;\n form.append('NewUserName',tempIdent);\n this.http.post(this.globals.getApiUrl()+'api/addSPMailCompanyUser.php', form).subscribe({\n next: data => {\n this.dialogRef.close();\n },\n error: error => {\n if(error.error.ErrorMsg==\"The user email address does not belong to a company domain\"){\n this._snackBar.open('Email address domain does not match a on added to this company. Please see details page.',\"OK\",{duration:5000} );\n };\n if(error.error.ErrorMsg==\"Cannot add user due to validation errors.\"){\n if(error.error.FieldErrorList[0].FieldError==\"The second password entry must match the first.\"){\n this._snackBar.open('Passwords do not match. Please try again.',\"OK\",{duration:5000} );\n }\n if(error.error.FieldErrorList[0].FieldError==\"The email address already exists for the company.\"){\n this._snackBar.open('This email is already in use. Please try a different one.',\"OK\",{duration:5000} );\n }\n if(error.error.FieldErrorList[0].FieldError==\"A user with this name is already registered for the company. Please enter a different user name.\"){\n this.retry(form);\n }\n };\n }\n });\n }\n ngOnInit(){\n }\n}\n","

Add New User

\n
\n
\n\n \n\n
\n Name\n \n \n \n A name is required\n \n \n
\n\n
\n Email Address\n \n \n \n A email is required\n \n \n Please provide a valid email address\n \n \n
\n\n
\n Password\n \n \n \n \n A password is required\n \n \n Requires both upper and lower case letters and at least one number\n \n \n
\n\n
\n Confirm Password\n \n \n \n \n A password is required\n \n \n Passwords must match\n \n \n
\n\n
\n
\n
\n \n \n \n\n
","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\n\n enableProdMode();\n\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";","import { Clipboard } from '@angular/cdk/clipboard';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Title } from '@angular/platform-browser';\nimport { Globals } from 'src/app/globals';\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\n\n\n@Component({\n selector: 'app-developer',\n templateUrl: './developer.component.html',\n styleUrls: ['./developer.component.css']\n})\nexport class DeveloperComponent implements OnInit {\n\n constructor(\n public globals: Globals,\n private http: HttpClient,\n public dialog: MatDialog,\n private clipboard: Clipboard,\n private _snackBar: MatSnackBar,\n private titleService: Title\n ) { }\n keyMessage: string;\n apiAccessId: string;\n hasKey = false;\n isDeveloper = null;\n\n async ngOnInit(): Promise {\n this.titleService.setTitle(\"Developer - STAY PRIVATE\");\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: data => {\n if (data.CanUseApiFlag == \"Y\") { this.isDeveloper = true } else { this.isDeveloper = false }\n this.apiAccessId = data.CompanyApiId\n if (data.HasApiPublicKeyFlag == \"Y\") { this.keyMessage = \"You have already uploaded your public key.\"; this.hasKey = true; }\n else { this.keyMessage = \"Please upload your public key.\" }\n },\n error: error => { console.error('There was an error!'); }\n });;\n }\n regenId() {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n width: '400px',\n data: {\n heading: 'Regenerate API Access ID',\n text: [\n 'Are you sure that you wish to regenerate your API Access ID?',\n 'This will mean that any API requests made using your current API Access ID will no longer work.'\n ]\n },\n autoFocus: false\n });\n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n let form = new FormData;\n form.append('AuthToken', await this.globals.getAuthToken());\n form.append('UserName', this.globals.getSystemUserName());\n form.append('CompanyId', this.globals.getCompanyId());\n this.http.post(this.globals.getApiUrl() + 'api/regenerateSPMailCompanyApiId.php', form).subscribe({\n next: data => {\n location.reload()\n },\n error: error => {\n console.error('There was an error!');\n }\n });\n }\n if (result == false) {\n\n }\n });\n }\n copy() {\n this.clipboard.copy(this.apiAccessId);\n this._snackBar.open(\"Copied!\", \"OK\", { duration: 3000 });\n\n }\n async getPublicKey() {\n let param = new HttpParams();\n param = param.append('AuthToken', await this.globals.getAuthToken());\n param = param.append('UserName', this.globals.getSystemUserName());\n this.http.get(this.globals.getApiUrl() + 'api/downloadSPMailCompanyApiPublicKey.php', { params: param, responseType: 'blob' }).subscribe({\n next: data => {\n\n let binaryData = [];\n binaryData.push(data);\n let downloadLink = document.createElement('a');\n downloadLink.href = window.URL.createObjectURL(new Blob([data], { type: 'application/pdf' }));\n downloadLink.setAttribute('download', \"public.key\");\n document.body.appendChild(downloadLink);\n downloadLink.click();\n downloadLink.remove();\n },\n error: error => {\n console.error(error)\n\n }\n });\n }\n async onFileSelected(event) {\n\n const file: File = event.target.files[0];\n if (file) {\n const formData = new FormData();\n formData.append('AuthToken', await this.globals.getAuthToken());\n formData.append('UserName', this.globals.getSystemUserName());\n formData.append('CompanyId', this.globals.getCompanyId());\n formData.append('UploadFileInd', event.target.files[0]);\n this.http.post(this.globals.getApiUrl() + 'api/uploadSPMailCompanyApiPublicKey.php', formData).subscribe({\n next: data => {\n this.keyMessage = \"You have successfully uploaded your public key.\"\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n }\n }\n\n}\n","\n \n Developer Settings
\n
\n API Settings\n
\n API Access ID
\n \n \n \n \n \n
\n \n {{keyMessage}}\n \n \n \n \n
\n \n \n \n \n \n Developer Settings
\n
\n Sorry. You are not a developer.\n \n
"],"sourceRoot":"webpack:///"}