{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app-resolver.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/companies/companies.component.ts","./src/app/companies/companies.component.html","./src/app/company.service.ts","./src/app/components/add-company/add-company.component.ts","./src/app/components/add-company/add-company.component.html","./src/app/components/add-user/add-user.component.ts","./src/app/components/add-user/add-user.component.html","./src/app/components/add-user/matching-validator.directive.ts","./src/app/components/billing/billing.component.ts","./src/app/components/billing/billing.component.html","./src/app/components/company-advanced/company-advanced.component.ts","./src/app/components/company-advanced/company-advanced.component.html","./src/app/components/company-billing/billing.service.ts","./src/app/components/company-billing/company-billing.component.ts","./src/app/components/company-billing/company-billing.component.html","./src/app/components/company-checker/company-checker.component.ts","./src/app/components/company-checker/company-checker.component.html","./src/app/components/company-config/company-config.component.ts","./src/app/components/company-config/company-config.component.html","./src/app/components/company-detail/company-detail.component.ts","./src/app/components/company-detail/company-detail.component.html","./src/app/components/company-hierarchy/company-hierarchy.component.ts","./src/app/components/company-hierarchy/company-hierarchy.component.html","./src/app/components/company-list/company-list.component.ts","./src/app/components/company-list/company-list.component.html","./src/app/components/company-logo/company-logo.component.ts","./src/app/components/company-logo/company-logo.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/company-setup-page/company-setup-page.component.ts","./src/app/components/company-setup-page/company-setup-page.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/company-setup/company-setup.component.ts","./src/app/components/company-setup/company-setup.component.html","./src/app/components/company-stats/company-stats.component.ts","./src/app/components/company-stats/company-stats.component.html","./src/app/components/compose/compose.component.ts","./src/app/components/compose/compose.component.html","./src/app/components/confirm-dialog/confirm-dialog.component.ts","./src/app/components/confirm-dialog/confirm-dialog.component.html","./src/app/components/confirm-popup/confirm-popup.component.ts","./src/app/components/confirm-popup/confirm-popup.component.html","./src/app/components/contact-us/contact-us.component.ts","./src/app/components/contact-us/contact-us.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/csv-update-dialog/csv-update-dialog.component.ts","./src/app/components/csv-update-dialog/csv-update-dialog.component.html","./src/app/components/delete-setup/delete-setup.component.ts","./src/app/components/delete-setup/delete-setup.component.html","./src/app/components/detail-developer/detail-developer.component.ts","./src/app/components/detail-developer/detail-developer.component.html","./src/app/components/developer/developer.component.ts","./src/app/components/developer/developer.component.html","./src/app/components/dialog-confirm/dialog-confirm.component.ts","./src/app/components/dialog-confirm/dialog-confirm.component.html","./src/app/components/dialog-welcome/dialog-welcome.component.ts","./src/app/components/dialog-welcome/dialog-welcome.component.html","./src/app/components/dns-config/dns-config.component.ts","./src/app/components/dns-config/dns-config.component.html","./src/app/components/edit-password/edit-password.component.ts","./src/app/components/edit-password/edit-password.component.html","./src/app/components/edit-theme/edit-theme.component.ts","./src/app/components/edit-theme/edit-theme.component.html","./src/app/components/error404/error404.component.ts","./src/app/components/error404/error404.component.html","./src/app/components/forgot-password/forgot-password.component.ts","./src/app/components/forgot-password/forgot-password.component.html","./src/app/components/home/home.component.ts","./src/app/components/home/home.component.html","./src/app/components/line-graph/line-graph.component.ts","./src/app/components/line-graph/line-graph.component.html","./src/app/components/line-graph2/line-graph2.component.ts","./src/app/components/line-graph2/line-graph2.component.html","./src/app/components/login/auth.guard.ts","./src/app/components/login/login.component.ts","./src/app/components/login/login.component.html","./src/app/components/my-account/my-account.component.ts","./src/app/components/my-account/my-account.component.html","./src/app/components/my-company/my-company.component.ts","./src/app/components/my-company/my-company.component.html","./src/app/components/notifications/notifications.component.ts","./src/app/components/notifications/notifications.component.html","./src/app/components/notifications/preferences/preferences.component.ts","./src/app/components/notifications/preferences/preferences.component.html","./src/app/components/provision-complete/provision-complete.component.ts","./src/app/components/provision-complete/provision-complete.component.html","./src/app/components/reset-password/reset-password.component.ts","./src/app/components/reset-password/reset-password.component.html","./src/app/components/resources/resources.component.ts","./src/app/components/resources/resources.component.html","./src/app/components/resources/resources.data.ts","./src/app/components/setup-complete/setup-complete.component.ts","./src/app/components/setup-complete/setup-complete.component.html","./src/app/components/setup-dkim/setup-dkim.component.ts","./src/app/components/setup-dkim/setup-dkim.component.html","./src/app/components/setup-google/setup-google.component.ts","./src/app/components/setup-google/setup-google.component.html","./src/app/components/setup-microsoft/setup-microsoft.component.ts","./src/app/components/setup-microsoft/setup-microsoft.component.html","./src/app/components/setup-roundtrip/setup-roundtrip.component.ts","./src/app/components/setup-roundtrip/setup-roundtrip.component.html","./src/app/components/setup-spf/setup-spf.component.ts","./src/app/components/setup-spf/setup-spf.component.html","./src/app/components/sp-spinner/sp-spinner.component.ts","./src/app/components/sp-spinner/sp-spinner.component.html","./src/app/components/tls-dialog/tls-dialog.component.ts","./src/app/components/tls-dialog/tls-dialog.component.html","./src/app/components/user-list/user-list.component.ts","./src/app/components/user-list/user-list.component.html","./src/app/components/user-management/user-management.component.ts","./src/app/components/user-management/user-management.component.html","./src/app/config.ts","./src/app/dashboard/dashboard.component.ts","./src/app/dashboard/dashboard.component.html","./src/app/globals.ts","./src/app/login-two/login-two.component.ts","./src/app/login-two/login-two.component.html","./src/app/message.service.ts","./src/app/messages/messages.component.ts","./src/app/messages/messages.component.html","./src/app/navigation/navigation.component.ts","./src/app/navigation/navigation.component.html","./src/app/setupSteps.ts","./src/app/table/table-datasource.ts","./src/app/table/table.component.ts","./src/app/table/table.component.html","./src/app/tree/example-data.ts","./src/app/tree/tree.component.ts","./src/app/tree/tree.component.html","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["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 { 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';\nimport { UserListComponent } from './components/user-list/user-list.component';\nimport { CompanyStatsComponent } from './components/company-stats/company-stats.component';\nimport { DnsConfigComponent } from './components/dns-config/dns-config.component';\nimport { UserManagementComponent } from './components/user-management/user-management.component';\nimport { DeleteSetupComponent } from './components/delete-setup/delete-setup.component';\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: 'remove-setup', component: DeleteSetupComponent ,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: 'dns', component: DnsConfigComponent ,canActivate:[AuthGuard] },\n { path: 'notifications', component: NotificationsComponent ,canActivate:[AuthGuard] },\n { path: 'not-found', component: Error404Component ,canActivate:[AuthGuard] },\n { path: 'adminusers', component: UserListComponent,canActivate:[AuthGuard] },\n { path: 'users', component: UserManagementComponent,canActivate:[AuthGuard] },\n { path: 'usage', component: CompanyStatsComponent,canActivate:[AuthGuard] },\n { path: 'branding', component: CompanyLogoComponent,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 { 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 { 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';\nimport { DialogConfirmComponent } from './components/dialog-confirm/dialog-confirm.component';\nimport { DnsConfigComponent } from './components/dns-config/dns-config.component';\nimport { UserManagementComponent } from './components/user-management/user-management.component';\nimport { DialogWelcomeComponent } from './components/dialog-welcome/dialog-welcome.component';\nimport { DeleteSetupComponent } from './components/delete-setup/delete-setup.component';\nimport { TlsDialogComponent } from './components/tls-dialog/tls-dialog.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 DialogConfirmComponent,\n DnsConfigComponent,\n UserManagementComponent,\n DialogWelcomeComponent,\n DeleteSetupComponent,\n TlsDialogComponent\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 { 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","

My Companies

\n\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 { 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 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 (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
=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 { 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 passwordGen = \"A\"+Math.random().toString(36).slice(-10)+\"31\"\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: [this.passwordGen,[Validators.required,Validators.pattern(\"(?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z]).{8,}\")]],\n passwordConfirm: [this.passwordGen,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','admin');\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 username.\"){\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 username.\"){\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 An email is required\n \n \n Please provide a valid email address\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}","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Globals } from 'src/app/globals';\nimport { ConfirmPopupComponent } from '../confirm-popup/confirm-popup.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DialogConfirmComponent } from '../dialog-confirm/dialog-confirm.component';\nimport { TlsDialogComponent } from '../tls-dialog/tls-dialog.component';\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: \"£\", storage: 5, t100: { price: 10, extraUsage: 5 }, t200: { price: 20, extraUsage: 10, p1:2, p2:1.75, p3:1.50 , p4:1.35 , p5:1.25 }, t300: { price: 20, extraUsage: 10, p1:4, p2:3.5, p3:3 , p4:2.7 , p5:2.5}, t400: { price: 10, extraUsage: 1, p1:4, p2:3.5, p3:3 , p4:2.7 , p5:2.5} },\n { type: \"USD\", sign: \"$\", storage: 6, t100: { price: 12, extraUsage: 6 }, t200: { price: 24, extraUsage: 12, p1:2.5, p2:2.1, p3:1.8 , p4:1.6 , p5:1.5 }, t300: { price: 24, extraUsage: 12,p1:5, p2:4.2, p3:3.6 , p4:3.25 , p5:3 }, t400: { price: 12, extraUsage: 1.2, p1:4, p2:3.5, p3:3 , p4:2.7 , p5:2.5} },\n { type: \"EUR\", sign: \"€\", storage: 6, t100: { price: 12, extraUsage: 6 }, t200: { price: 24, extraUsage: 12,p1:2.25, p2:1.9, p3:1.65 , p4:1.5 , p5:1.4 }, t300: { price: 24, extraUsage: 12, p1:4.5, p2:3.85, p3:3.3 , p4:3 , p5:2.75 }, t400: { price: 12, extraUsage: 1.2, p1:4, p2:3.5, p3:3 , p4:2.7 , p5:2.5} },\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,public dialog: MatDialog) { }\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 ];\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 domain: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 this.domain = data.DomainList[0]\n\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\n 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\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 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\n let tierWorded=\"\";\n let tierDesc=\"\"\n if(tierName==\"120\"){tierWorded=\"Secure Delivery\";tierDesc=\"This will allow you to send documents via StayPrivate.\"} else\n if(tierName==\"122\"){tierWorded=\"Document Signing\";tierDesc=\"This will allow you to send document signing requests via StayPrivate.\"} else\n if(tierName==\"124\"){tierWorded=\"Secure Email\";tierDesc=\"This will allow you to send encrypted emails and document signing requests via StayPrivate.\"} \n if(tierName==\"126\"){tierWorded=\"TLS Plus\";tierDesc=\"This will ensure that all your emails are encrypted in transit.\"} \n \n\n if(!this.currentTier){\n const dialogRef = this.dialog.open(DialogConfirmComponent, {\n autoFocus: false,\n data: {\n heading:\"Continue to payment\",\n text: [\n 'Would you like to subscribe to '+tierWorded+\"?\",\n tierDesc\n ]\n },\n });\n \n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n //WHAT TO DO\n this.checkout(tierName)\n }\n });\n } else{\n const dialogRef = this.dialog.open(DialogConfirmComponent, {\n autoFocus: false,\n data: {\n heading:\"Change subscription\",\n text: [\n 'Would you like to change your subscription to '+tierWorded,\n tierDesc\n ]\n },\n });\n \n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n //WHAT TO DO\n this.subChange(tierName)\n }\n });\n }\n \n\n }\n checkout(tierName) {\n this.loading1 = true;\n let form = new FormData();\n form.append('product', tierName);\n if(tierName == \"120\"){\n form.append('licenses', \"2\");\n } else if(tierName == \"122\"){\n form.append('licenses', \"2\");\n } else if(tierName == \"124\"){\n form.append('licenses', \"2\");\n } else if(tierName == \"126\"){\n form.append('licenses', \"5\");\n }\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('domain', this.domain);\n form.append('successUrl', `https://admin.stayprivate.com/billing`);\n form.append('cancelUrl', `https://admin.stayprivate.com/billing`);\n // form.append('successUrl', `https:/admin.stayprivate.com/billing?session_id={CHECKOUT_SESSION_ID}`);\n // form.append('cancelUrl', `https://admin.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:/admin.stayprivate.com/billing?session_id={CHECKOUT_SESSION_ID}`,\n cancel_url: `https://admin.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(tierName) {\n this.loading1 = true;\n let form = new FormData();\n \n form.append('product', tierName);\n form.append('domain', this.domain);\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.currentTier == \"126\" && (tierName == \"120\" || tierName == \"122\" || tierName == \"124\")){\n const dialogRef = this.dialog.open(TlsDialogComponent, {\n autoFocus: false,\n data: {\n heading:'Important!',\n case:1\n },\n });\n \n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n //WHAT TO DO\n }\n });\n }\n this.currentTier = tierName;\n this.selectedTier = null;\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 const dialogRef = this.dialog.open(ConfirmPopupComponent, {\n autoFocus: false,\n data: {\n maxWidth:700,\n text: [\n 'You are about to cancel your subscription to the StayPrivate service.',\n 'This will remove your 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 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 = null;\n this.selectedTier = null;\n this.subActive = false;\n if(this.currentTier == \"126\"){\n this.globals.remove=true;\n const dialogRef = this.dialog.open(TlsDialogComponent, {\n autoFocus: false,\n data: {\n heading:'Important!',\n case:2\n },\n });\n \n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n //WHAT TO DO\n }\n });\n }\n\n },\n error: error => {\n console.error('There was an error!');\n this.loading1 = false;\n }\n });\n //WHAT TO DO\n }\n });\n \n }\n\n}\n","\n \n\n\n \n \n \n \n \n \"\"\n {{currencyType.viewValue}}\n \n \n \n \n \n \n
\n \n \n
\n \n \n \n Secure Email\n \n {{this.currencyValues.sign}}{{this.currencyValues.t300.price}}\n per month*\n \n \n Your branding
\n Send from company email
\n Secure email
\n Document signing requests
\n Unlimited users (on the same company domain)
\n Includes 100 recipients
\n Includes 20 GB storage
\n £10 pm per additional unit of 10 GB storage and 50 recipients*
\n
\n \n \n
\n Select
\n
Selected
\n
\n
\n
\n
\n \n \n \n Secure Delivery\n \n {{this.currencyValues.sign}}{{this.currencyValues.t100.price}}\n per month*\n \n \n \n \n Your branding
\n Send using either the API or direct from company email
\n Unlimited users (on the same company domain)
\n Includes 150 recipients
\n Includes 20 GB storage
\n £5 pm for each additional unit of 75 recipients and 10 GB storage*
\n \n \n
\n \n \n
\n Select
\n
Selected
\n
\n
\n
\n \n \n
\n \n \n \n TLS Plus\n \n {{this.currencyValues.sign}}{{this.currencyValues.t400.price}}\n per month**\n \n \n Checks all outgoing emails
\n Encrypts all non-TLS traffic
\n Includes up to 5 users
\n Each additional user: {{this.currencyValues.sign}}{{currencyValues.t400.extraUsage.toFixed(2)}} per month**\n Each additional user: {{this.currencyValues.sign}}{{currencyValues.t400.extraUsage}} per month**\n
\n \n \n \n
\n \n \n
\n Select
\n
Selected
\n
\n
\n
\n
\n
*Prices exclude VAT. Each unit includes 50 recipients and 10 GB storage.
**Prices exclude VAT. \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, 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 { 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 { 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 } 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","
\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 { Component, EventEmitter, Input, OnInit, OnDestroy, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport 'froala-editor/js/plugins.pkgd.min.js';\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 { 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 { 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 { 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, 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\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({\n next: data => {\n this.thisCompanyName = data.CompanyName;\n this.teir = this.globals.getTier(data.InitialTier);\n this.type = data.CompanyType;\n this.companyState = data.StatusInd;\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 error: error => { console.error('There was an error!'); }\n });\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 async uploadPreview(evt): Promise {\n var tgt = evt.target || window.event.srcElement,\n files = tgt.files; \n this.logoupload = evt.target.files[0]\n // FileReader support\n if (FileReader && files && files.length) {\n var fr = new FileReader();\n fr.onload = function () {\n document.getElementById(\"outImage\").setAttribute(\"src\",fr.result.toString());\n }\n fr.readAsDataURL(files[0]);\n this.logo=\"Y\"\n\n }\n }\n cancelPreview(){\n this.logo=\"\";\n this.logoupload=null;\n\n }\n async confirmPreview(){\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', this.logoupload);\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 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 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 } else { imageForm.append('CompanyId', this.globals.getCompanyId()); }\n // var tgt = evt.target || window.event.srcElement,\n // files = tgt.files; \n // // FileReader support\n // if (FileReader && files && files.length) {\n // var fr = new FileReader();\n // fr.onload = function () {\n // document.getElementById(\"outImage\").setAttribute(\"src\",fr.result.toString());\n // }\n // fr.readAsDataURL(files[0]);\n // }\n this.http.post(this.globals.getApiUrl() + 'api/uploadSPMailCompanyCustomLogo.php', imageForm).subscribe({\n next: data => {\n\n \n\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 \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 this.logo = \"\";\n this.custlogo = \"\";\n this.logoupload = null;\n this.custlogoupload = null;\n\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 maxWidth:700,\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 \n
\n \n \n
\n Current logo\n You do not currently have a logo uploaded.\n\n \n \n \n \n
\n cloud_upload\n Click 'Upload' to add branding\n
\n
\n\n Logo preview\n \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 branding from your StayPrivate account.
\n All secure emails will no longer carry your logo.\n

\n

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

\n

To change your logo instead, press 'Cancel' then select 'Change'.

\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;\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 this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: data => {\n this.company = data\n this.companyID = data.CompanyId;\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 Server Setup
\n
\n
\n \n \n
Account Suspended
Please contact\n support for more information.
\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 { 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 spfDkim = false;\n hasTier = 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 autoSetupComplete:Date;\n autoSetupCompleteStr:String;\n\n ngDoCheck() {\n if (this.checked == false) {\n if (this.landing == false && this.myStepper) {\n \n this.myStepper.selectedIndex = 0\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.tier=companyData.InitialTier;\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 if(providerData[0].automaticSetupDate){\n this.autoSetupComplete = new Date(0)\n this.autoSetupComplete.setUTCSeconds(providerData[0].automaticSetupDate)\n this.autoSetupCompleteStr = this.autoSetupComplete.toString();\n this.autoSetupCompleteStr = this.autoSetupCompleteStr.replace(' GMT+0000 (Greenwich Mean Time)','');\n this.autoSetupCompleteStr = this.autoSetupCompleteStr.replace(' GMT+0100 (Greenwich Mean Time)','');\n this.autoSetupCompleteStr = this.autoSetupCompleteStr.replace(' GMT+0100 (British Summer Time)','');\n } else{\n \n \n }\n this.landing = !!companyData.DomainList[0];\n this.checked = false;\n if(companyData.InitialTier == \"\" || companyData.InitialTier == '0'){this.hasTier = false} else {this.hasTier = true}\n if(companyData.InitialTier == \"126\"){\n let domain = new FormData;\n domain.append('domain', companyData.DomainList[0]);\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.spfDkim=true;\n this.loading = false; \n },\n error: error => {\n this.spfDkim=false;\n this.loading = false; \n }\n });\n },\n error: error => {\n this.spfDkim=false;\n this.loading = false; \n }\n });\n }else{\n this.loading = false;\n this.spfDkim=true; \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 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 = 4\n }\n goToInstructions(method: string) {\n this.myStepper.selectedIndex = 5\n }\n back() {\n let provider = this.setupInfo.controls.Provider.value\n if (provider=='otherspf'){this.myStepper.selectedIndex = 3}\n else if (provider=='othermx'){this.myStepper.selectedIndex = 2}\n else {this.myStepper.selectedIndex = 1}\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 // this.provision() // testing override\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 == 'otherspf') {\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 // this.provision() // testing override\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 // this.provision(); testing override\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 const dialogRef = this.dialog.open(SetupCompleteComponent, {\n width: '400px',\n data: {\n keyword: \"#private, #deliver or #sign\",\n tier: this.tier,\n domain: this.setupInfo.controls.Domain.value\n },\n autoFocus: false\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result == true) {\n this.router.navigate([\"/mycompany\"])\n }\n if (result == false) {\n }\n });\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 = 4\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://admin.stayprivate.com/setup/\" + data.url\n },\n error: error => {\n console.error(error)\n }\n });\n }\n}\n","\n\n\n \n Before you can setup StayPrivate you first need to subscribe to a plan.\n \n \n \n Before you can setup StayPrivate you need to first setup your DNS server.

Please first complete the DNS Setup.\n
\n
\n \n Current settings:\n \n
\n \n \n \n \n \n \n \n \n \n \n
Email server:{{currentInfo.controls['Provider'].value}}
Domain:{{currentInfo.controls['Domain'].value}}
\n \n \n \n \n
You completed the automatic setup at: {{autoSetupCompleteStr}}
\n \n \n \n \n \n \n
To rerun the setup, click the button:To configure your company email server, click the button:\n \n \n
\n \n \n \n \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 \n There are two ways of configuring StayPrivate to work with a corporate email server. We normally recommend the\n 'Standard' configuration, whereby StayPrivate processes secure emails then routes them back to your corporate\n email server for sending 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. To enable StayPrivate to send emails directly on your behalf,\n your company's 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:spmail.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:spmail.com -all.\n
  4. \n
  5. Add a new CNAME record called stayprivate._domainkey with the\n value: stayprivate._domainkey.spmail.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). Then\n click 'Provision' to provision the domain 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.\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
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, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\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 { StringMap } from '@angular/compiler/src/compiler_facade_interface';\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 dateAccessedString: String\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 this.dateAccessedString = this.dateAccessed.toString();\n this.dateAccessedString = this.dateAccessedString.replace('GMT+0000 (Greenwich Mean Time)','UTC');\n this.dateAccessedString = this.dateAccessedString.replace('GMT+0100 (Greenwich Mean Time)','UTC+1');\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
\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
\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
\n
\n
\n {{recipientTotal}}\n
\n
\n
\n\n \n
\n\n
\n
\n \n
\n
\n send\n
\n
\n \n
\n 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 as at {{dateAccessedString}}\n
\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 { 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
","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 { 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 companyTier:string;\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 this.companyTier = data.InitialTier\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 \n If you have any questions, issues, or recommendations, please contact 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 How to use\n\n

Server Intergration

\n

Using the server integration, anyone on your domain can deliver a document direct from their company email account, simply by including the text\n #deliver anywhere in the email body or subject. Users will subsequently be automatically set up.

\n \n

Desktop annd Web Apps

\n

Anyone with an email account on your domain can simply sign up at https://stayprivate.com. \n The user can then send a document, by using either use the StayPrivate web app, available at\n https://app.stayprivate.com, or download the desktop app at https://desktop.stayprivate.com.

\n
\n
\n\n How to use\n

Server Intergration

\n

Using the server integration, anyone on your domain can send a document signing request direct from their company email account, simply by including the text\n #sign anywhere in the email body or subject. Users will subsequently be automatically set up.

\n\n

Desktop annd Web Apps

\n

Anyone with an email account on your domain can simply sign up at https://stayprivate.com. \n The user can then send a document signing request, by using either use the StayPrivate web app, available at\n https://app.stayprivate.com, or download the desktop app at https://desktop.stayprivate.com.

\n
\n
\n\n How to use\n

Server Intergration

\n

Using the server integration, anyone on your domain can send a secure email or document signing request direct from their company email account, simply by including the text\n #private (for a secure email) or #sign (for an document signing request) anywhere in the email body or subject. Users will subsequently be automatically set up.

\n\n

Desktop annd Web Apps

\n

Anyone with an email account on your domain can simply sign up at https://stayprivate.com. \n The user can then send a secure email or document signing request, by using either use the StayPrivate web app, available at\n https://app.stayprivate.com, or download the desktop app at https://desktop.stayprivate.com.

\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 { 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 { 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 { 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\n@Component({\n selector: 'app-delete-setup',\n templateUrl: './delete-setup.component.html',\n styleUrls: ['./delete-setup.component.css']\n})\nexport class DeleteSetupComponent 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\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 domain:\"\";\n processing = false;\n personalRule = false;\n isTLS = false\n link: string;\n microsoft=null;\n onTabChanged($event) {\n if ($event.selectedIndex === 0) {\n this.dataSource = [\n { stage: 'Authenticating', status: \"P\" },\n { stage: 'Verifying domain', status: \"W\" },\n { stage: 'Removing mail-flow rules', status: \"W\" },\n { stage: 'Removing connectors', status: \"W\" },\n { stage: 'Finishing up', status: \"W\" },\n ];\n } \n }\n ngOnInit(): void {\n this.dataSource = POWERSHELL_FLOW;\n this.route.queryParams.subscribe(async params => {\n if (params['1']) {\n this.link = params['1']\n } else if (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.globals.getCompanyId())\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: data => {\n this.domain=data.DomainList[0]\n let domainp = new FormData;\n domainp.append('domain', this.domain);\n this.http.post(this.globals.getServicesUrl() + \"dns/mxCheck\", domainp).subscribe({\n next: data => {\n if (data.type == 'microsoft365') {\n this.microsoft=true; \n\n } else if (data.type == 'google') {\n this.microsoft=false; \n\n } else if (data.type == 'other') {\n this.microsoft=null; \n\n }\n },\n error: error => {\n this._snackBar.open(error.error.ErrorMsg, \"OK\", { duration: 5000 });\n }\n });\n this.powershellRules = {\n connect: 'Connect-ExchangeOnline -Device -DelegatedOrganization ' + this.domain,\n identifyRule: 'Remove-TransportRule \"Identify messages to send via StayPrivate\"',\n replyRule: 'Remove-TransportRule \"Send secure replies to StayPrivate\"',\n allowRule: 'Remove-TransportRule \"StayPrivate Allow\"',\n outboundConnector: 'Remove-OutboundConnector \"Send to StayPrivate\"',\n inboundConnector: 'Remove-InboundConnector \"Receive from StayPrivate\"'\n }\n },\n error: error => {\n console.error('There was an error!', error);\n }\n });\n }\n });\n\n\n }\n setupCompany() {\n this.myStepper.selectedIndex = 4\n\n if (this.domain) {\n const socket = io(this.globals.getServicesUrl(), {\n query: {\n \"Domain\": this.domain,\n \"CompanyId\": this.globals.getCompanyId(),\n \"Keyword\": \"#private\",\n \"Delete\": \"Y\",\n \"Personal\": \"N\",\n \"StandAlone\": \"Y\",\n \"NewVersion\": \"Y\",\n \"SignKeyword\": \"#sign\"\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 === \"Removed Identify Personal Recipients to send via StayPrivate\") { this.dataSource[2].status = \"S\"; this.dataSource[3].status = \"P\" }\n if (data === \"Removed Receive from StayPrivate\") { 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\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 Google Email Server Configuration\n \n\n
\n
\n \n If you do wish to delete StayPrivate, return to the 'Settings for Gmail' page, scroll down to near the bottom and click on 'Compliance'. Then scroll down to 'Content compliance' and delete the rules 'Identify messages to send via StayPrivate' and 'Send secure replies to StayPrivate'.\n

\n Again, in the 'Settings for Gmail' page, scroll down to the bottom and click on 'Routing'. Scroll down to 'SMTP relay service' and delete the service 'Receive from StayPrivate'.\n

\n Finally, near the top of the 'Settings for Gmail' page, click on 'Hosts' and delete 'StayPrivate'.\n

\n
\n
\n \n
\n\n \n\n\n\n\n \n \n \n \n To remove the configuration from your company email server, select 'Automatic Removal'. Or if you prefer to do it\n yourself,\n select\n 'Manual Removal' 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 Microsoft Email Server Configuration\n \n\n
\n
\n \n If you wish to delete StayPrivate from your mail server, all you need to do is to navigate to the 'Exchange\n Admin Center' then under the 'Mail flow' section on the left, select 'Rules'. Select the circle next to the\n rule called 'Identify messages to send via StayPrivate' and then click on the 'Delete' button above.\n

\n This is enough to stop StayPrivate working. But it is recommended to also delete the other StayPrivate rules\n 'StayPrivate Allow' and 'Send secure replies to StayPrivate'. You will find these in the same place.\n

\n Finally, select 'Connectors' under 'Mail flow' and delete the connectors 'Send to StayPrivate' and 'Receive\n from StayPrivate'.\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://admin.stayprivate.com.\n \n
\n \n \n

\n
\n \n \n\n \n Your exchange environment is easily configured for StayPrivate using the Exchange Online PowerShell\n Module.

\n You will need 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
\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, use it to log in at: https://microsoft.com/devicelogin, and wait for your\n 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 We require you to grant us temporary access to your Microsoft mail server in order to configure your company's\n 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
","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 { 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
","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-dialog-confirm',\n templateUrl: './dialog-confirm.component.html',\n styleUrls: ['./dialog-confirm.component.css']\n})\nexport class DialogConfirmComponent 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","
\n {{data.heading}}\n

{{line}}

\n
\n \n \n
\n\n
","import { Component, OnInit } from '@angular/core';\nimport { DialogConfirmComponent } from '../dialog-confirm/dialog-confirm.component';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-dialog-welcome',\n templateUrl: './dialog-welcome.component.html',\n styleUrls: ['./dialog-welcome.component.css']\n})\nexport class DialogWelcomeComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef,\n private router: Router,\n ) { }\n\n ngOnInit(): void {\n }\n nav(){\n this.dialogRef.close(true)\n this.router.navigate(['/dns'])\n\n }\n confirm(){\n this.dialogRef.close(true)\n }\n cancel(){\n this.dialogRef.close()\n }\n\n}\n","
\n \n Welcome to TLS Plus\n

In order to get started, please first update your DNS records to work with StayPrivate.

You will find instructions how to do this in the DNS Setup tab.

\n
\n \n \n
\n\n
","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Company } from 'src/app/company.model';\nimport { Globals } from 'src/app/globals';\nimport { Clipboard } from '@angular/cdk/clipboard';\n\n\n@Component({\n selector: 'app-dns-config',\n templateUrl: './dns-config.component.html',\n styleUrls: ['./dns-config.component.css']\n})\nexport class DnsConfigComponent implements OnInit {\n\n constructor(private http: HttpClient, private globals:Globals,private clipboard: Clipboard, private _snackBar: MatSnackBar) { }\n\n checkingSpf = true;\n checkingDkim = true;\n spf = false;\n spfRecord=\"\";\n spfNewRecord=\"\";\n spfReason = \"\";\n dkim = false;\n dkimReason = \"\";\n domain = \"\"\n roundtrip = false;\n ngOnInit(): void {\n this.getDomain(); \n }\n async getDomain(){\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({\n next: data => {this.domain = data.DomainList[0]; this.checkDns(); this.roundtrip = data.ExtraSettingsDomainList[0].UseCustomServerFlag.includes(\"Y\"); \n },\n error: error => { console.error('There was an error!');}\n });\n }\n checkDns(){this.checkingDkim = true; this.checkingSpf = true; this.checkSpf(); this.checkDkim();}\n checkSpf(){\n this.spfReason = \"\";\n console.log(this.domain);\n let domain = new FormData;\n domain.append('domain', this.domain);\n this.http.post(this.globals.getServicesUrl() + \"dns/spfCheck\", domain).subscribe({\n next: data => {\n this.spf = true;\n this.spfReason = \"SPF looks good\";\n this.checkingSpf = false;\n },\n error: error => {\n this.spf = false;\n switch(error.error.ErrorMsg){\n case \"Cant find include:stayprivatemail.com in SPF record\": \n this.spfReason = 'Entry not found in SPF record'; \n this.spfRecord = error.error.Record; \n this.spfNewRecord = error.error.Record.slice(0, -4)+\"include:spmail.com \"+error.error.Record.slice(-4);\n break; \n case \"Invalid SPF record\": this.spfReason = 'SPF record is not valid'; break; \n case \"Email not found\": this.spfReason = 'SPF record not found'; break; \n case \"No SPF record found\": this.spfReason = 'SPF record not found'; break; \n case \"Failed to reach server. Please try again.\": this.spfReason = \"We couldn't reach your mail server. Please try again.\"; break; \n \n } \n this.checkingSpf = false;\n }\n });\n }\n checkDkim(){\n this.dkimReason = \"\";\n console.log(this.domain);\n let domain = new FormData;\n domain.append('domain', this.domain);\n this.http.post(this.globals.getServicesUrl() + \"dns/dkimCheck\", domain).subscribe({\n next: data => {\n this.dkim = true;\n this.dkimReason = \"DKIM looks good\";\n this.checkingDkim = false;\n },\n error: error => {\n console.log(error.error.ErrorMsg)\n this.dkim = false;\n switch(error.error.ErrorMsg){\n case \"DKIM Record does not match\": this.dkimReason = 'DKIM record found but pointing to the wrong place'; break; \n case \"No DKIM Record found\": this.dkimReason = 'DKIM record not found'; break;\n case \"Email not found\": this.dkimReason = 'DKIM record not found'; break; \n case \"Failed to reach server. Please try again.\": this.dkimReason = \"We couldn't reach your mail server. Please try again.\"; break; \n } \n this.checkingDkim = false;\n \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 DNS Setup
\n
\n
\n \n

We recommend to update your DNS records to allow StayPrivate to send emails on behalf of your users. This means\n that emails sent via StayPrivate will appear as sent from the user's company email address, rather than from an\n spmail.com email address.

\n

Simply follow the instructions below to update your DNS records, and senders' email addresses will automatically\n be updated on all new emails.

\n\n

Please ensure that you have already setup your email server to work with StayPrivate before updating your DNS records.

\n\n \n\n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n
SPF: \n doneclose{{spfReason}}
DKIM: \n doneclose{{dkimReason}}
\n
\n \n \n
\n\n

To update your SPF record:

\n
    \n
  • \n Find the current SPF record in your DNS administration console, and add the text: include:spmail.com before\n the trailing '-all'.\n
  • \n
  • \n Your new SPF record should look like:
    {{spfNewRecord}}\n
  • \n
  • \n You do not currently have an SPF record, in your DNS administration console, add a new TXT record with the\n following:\n v=spf1 a mx include:spmail.com\n ~all.\n
  • \n
  • \n Looks like there is an issue with the formatting of your SPF record. Make sure any includes are added before\n the\n ending -all.\n
  • \n
  • Save the DNS changes and click refresh to see if the entries have been added correctly and picked up\n successfully.\n
  • \n
\n

To update your DKIM record:

\n
    \n
  • Add a new CNAME record called stayprivate._domainkey with the\n value: stayprivate._domainkey.spmail.com.\n
  • \n
  • Save the DNS changes and click refresh to see if the entries have been added correctly and picked up\n successfully.\n
  • \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 curren tpassword\n \n \n
\n
\n New 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 new 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 { 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';\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 { 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 \n \n Email is required\n \n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n\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 { 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 { 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: '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 if(data.EmailProcessStatsList!=null){\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 }\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 console.log(\"Switch: \"+this.selectedChart);\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\n this.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 { 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 { 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 isCustomer=true;\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/images/StayPrivate-Logo.svg\"\n // }\n this.globals.checkTheme();\n \n }\n\n hidePassword = true;\n\n onSubmit() {\n if(!this.isCustomer){\n this.isCustomer=true;\n }\n else if(this.loginForm.valid && this.isCustomer) {\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 if (data.SPMCompanyType==\"C\"){\n this.getTheme(authToken,userName)\n } else{\n this.loading = false;\n this.isCustomer = false;\n }\n if(data.InitialTier==126){\n this.globals.setWelcomePopup(true)\n } else{\n this.globals.setWelcomePopup(false)\n }\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 Admin Log In\n \n \n \n\n \n \n \n \n
\n
\n It looks like you are trying to log into a partner account.
To sign into this account, please go to:
https://dashboard.stayprivate.com\n
\n
\n
\n \n
\n
\n \n
\n
\n \n \n \n Email is required\n \n \n
\n
\n
\n
\n \n \n \n \n Password is required\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\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= true;\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.detailsForm.controls['name'].enable();\n this.onChanges()\n },\n error: error => \n {console.error('There was an error!');}\n })\n \n }\n editClicked(){ \n \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:false}, 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:false}, Validators.required] \n });\n this.onChanges()\n \n }\n onSubmit(){\n this.detailsForm.controls['name'].disable();\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
\n 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 { 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';\nimport { ConfirmPopupComponent } from '../confirm-popup/confirm-popup.component';\nimport { DialogWelcomeComponent } from '../dialog-welcome/dialog-welcome.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 UseRoundtrip:['Y']\n });\n keyword:string;\n expireKeyword:string;\n spfDkim = true;\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 = true;\n } else { this.showEdit = false;this.update(); }\n }\n // onOptionsSelected(){\n // // send selected value\n // if(this.spfDkim==false&& this.addCompanyForm.controls['UseRoundtrip'].value=='Y'){\n // this.addCompanyForm.controls['UseRoundtrip'].setValue('N')\n // }\n // }\n ngOnInit(): void {\n this.titleService.setTitle(\"My Company - STAY PRIVATE\");\n this.editMode = true;\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(); this.addCompanyForm.controls['DataCountryCode'].disable();}\n else { this.addCompanyForm.disable(); }\n \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\n \n\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 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: true }],\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 UseRoundtrip:[{value: this.company.ExtraSettingsDomainList[0].UseCustomServerFlag, 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 let domain = new FormData;\n domain.append('domain', this.company.DomainList[0]);\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.spfDkim=true;\n },\n error: error => {\n this.spfDkim=false;\n if(this.globals.getWelcomePopup()){\n console.log(this.spfDkim);\n this.openWelcomePopup()\n this.globals.setWelcomePopup(false);\n\n }\n }\n });\n },\n error: error => {\n this.spfDkim=false;\n if(this.globals.getWelcomePopup()){\n console.log(this.spfDkim);\n this.openWelcomePopup()\n this.globals.setWelcomePopup(false);\n\n }\n }\n });\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 openWelcomePopup(){\n const dialogRef = this.dialog.open(DialogWelcomeComponent, {\n autoFocus: false,\n data: {\n text: [\n \"s account. They will no longer be billed for.\",\n 'If they use StayPrivate again, their account will automatically be unsuspended.'\n ]\n },\n });\n\n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\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.UseRoundtrip != null){\n form.append('ExtraSettingsDomainList',this.company.DomainList[0]+':UCSF_'+formData.UseRoundtrip)\n }\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 = true;\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 My Company\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 \n \n\n \n \n \n \n \n
\n Company domain:\n \n \n \n \n \n
\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 Contact name:\n \n \n \n
\n \n
\n Contact email:\n \n \n \n
\n \n
\n Contact phone:\n \n \n \n
\n \n
\n Company phone:\n \n \n \n
\n \n
\n Tax number:\n \n \n \n
\n \n
\n Address:\n \n \n \n
\n \n \n
\n Sender address:\n\n \n \n \n {{this.company.ExtraSettingsDomainList[0].Domain}} (requires DNS setup)\n \n \n spmail.com\n \n \n \n \n\n \n \n \n
\n To offer the best recipient experience, we recommend sending from the original {{company.DomainList[0]}} email address rather than the user's spmail.com address.\n

To activate this feature please ensure you have completed the mail server setup.

Your DNS records need to be updated to use this feature. This can be done here.
\n \n
\n
\n \n\n
\n \n \n
\n
\n
Account Suspended
Please contact\n support for more information.
\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 (notification.Message.toLowerCase().includes(\"provisioned\")) { notification.Message=notification.Message.replace(\"provisioned\",'setup')}\n if (notification.Message.toLowerCase().includes(\" to the dashboard with no tier\")) { notification.Message=notification.Message.replace(\" to the dashboard with no tier\",'')}\n\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 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 \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
\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, 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, 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
\nDomain Provisioned\nSupport for your domain has been added at the StayPrivate end.\nNow configure your company email server to get started using StayPrivate.\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 Set 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 { 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 { 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 { 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,tier: string,domain: string}\n ) { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n \n \n \n \n
\nSetup Complete\nYou've completed the StayPrivate setup.\n\n\n
\n Any email account on {{data.domain}} can now send a private email simply by\n including the keyword: {{data.keyword}} anywhere in the email.\n
\n
\n Any email account on {{data.domain}} can now deliver a document simply by\n including the keyword: #deliver anywhere in the email.\n
\n
\n Any email account on {{data.domain}} can send an email with\n documents to be signed simply by including the keyword: #sign anywhere in the email.\n
\n
\n Any email account on {{data.domain}} can now send a private email simply by\n including the keyword: #private anywhere in the email.\n And any email account on {{data.domain}} can send an email with\n documents to be signed simply by including the keyword: #sign anywhere in the email.\n
\n
\n \n TLS Plus checks all emails sent from {{data.domain}} to external domains and steps in where TLS fails, ensuring every email your business sends is encrypted and compliant with data protection regulations.\n \n
\n\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:spmail.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:spmail.com -all.
  4. \n \n
  5. Add a new CNAME record called stayprivate._domainkey with the\n value: stayprivate._domainkey.spmail.com.\n
  6. \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 { 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':''\"> Outbound
\n
= 3)? 'current':''\"> Relay
\n
= 4)? '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 a rule 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 \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 'Headers + body'.
  • \n
  • Under 'Match type' select 'Matches regex'.
  • \n
  • Under 'Regexp' enter the text: #private|#deliver|#sign.
  • \n
  • Click 'SAVE'.
  • \n
  • Click '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' select 'Modify the message', then under 'Route' check the box next to 'Change the 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 The next step is to configure your email server to accept and relay 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 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
","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 { 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 tier = \"\";\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(async params => {\n if (params['1']) {\n this.link = params['1']\n } else if (this.companyId) {\n let paramb = new HttpParams();\n paramb = paramb.append('AuthToken', await this.globals.getAuthToken());\n paramb = paramb.append('UserName', this.globals.getSystemUserName());\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: paramb }).subscribe({\n next: companyData => {\n this.tier=companyData.InitialTier;\n\n },\n error: error => { console.error('There was an error!'); }\n });\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\" -SenderDomainIs \"' + this.domain + '\" \" -SubjectOrBodyMatchesPatterns \"#private\",\"#deliver\",\"#sign\" -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 + '\"-ExceptIfHeaderMatchesMessageHeader \"x-stayprivate-processed\" -ExceptIfHeaderMatchesPatterns \"true\" -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 let ruleConfig = 'Y'\n if( this.tier == \"126\"){\n ruleConfig = 'N'\n \n }\n const socket = io(this.globals.getServicesUrl(), {\n query: {\n \"Domain\": this.domain,\n \"CompanyId\": this.globals.getCompanyId(),\n \"Keyword\": \"#private\",\n \"Personal\": \"N\",\n \"StandAlone\": ruleConfig,\n \"NewVersion\": \"Y\",\n \"SignKeyword\": \"#sign\"\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 no admin access\") {\n this.dataSource[1].status = \"F\"\n socket.disconnect()\n socket.close()\n this.myStepper.selectedIndex = 0\n this._snackBar.open(\"This account used does not have admin access. Please log in with an admin account.\", \"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 'Connection 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 type #private in the text field and click 'Add'.
  • \n
  • Now enter #deliver into the same text field and click 'Add' again.
  • \n
  • Now enter #sign into the same text field and click 'Add' again. 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
  • Under 'Except if' select 'The message headers...'. Then, to the right, select 'matches these text patterns'.
  • \n
  • Click on 'Enter text' and enter x-stayprivate-processed in the box. \n Click 'Save'.
  • \n
  • Just after 'message header matches' click on 'Enter words' and enter true in the box. Click 'Add'. 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 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 'Create a new rule'.
  • \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
  • Then click 'Save'.
  • \n
  • Under 'Do the following' select 'Modify the message properties'. Then, to the right, select 'set the spam confidence level (SCL)'. Select 'Bypass spam filtering' and click 'Save'.\n Click 'Next'.
  • \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
  • 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 message headers...'. Then, to the right, select 'matches these text patterns'.
  • \n
  • Click on 'Enter text' and enter x-stayprivate-processed in the box. \n Click 'Save'.
  • \n
  • Just after 'message header matches' click on 'Enter words' and enter true in the box. Click 'Add'. 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 penultimate 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 'X' close button top right. It will take a few seconds for the rule to enable and 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 'X' close button top right. It will take a few seconds for the rule to enable and 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 'X' close button top right. It will take a few seconds for the rule to enable and the page to update.
  • \n
\n

Out of the box, StayPrivate will deliver your emails from StayPrivate mail (spmail.com) addresses. We recommend that you update your DNS records to allow StayPrivate to address emails as sent direct from your users' existing email accounts.

\n

As soon as both your SPF and DKIM records are updated to allow StayPrivate to send on your behalf, StayPrivate will automatically start sending emails direct from your users' email addresses.

\n

Log into your DNS administration console and find the current SPF record - this is a TXT record and normally starts with 'v=spf1'. Add the text: include:spmail.com before the trailing '-all'.

\n

\n OR, if you do not have an SPF record, add a new TXT record with the following content: v=spf1 a mx include:spmail.com -all\n

\n

\n Secondly, add support for DKIM by adding a CNAME record for stayprivate._domainkey with the value stayprivate._domainkey.spmail.com.\n

\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 \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://admin.stayprivate.com.\n \n
\n \n \n

\n
\n \n \n\n \n Your exchange environment is easily configured for StayPrivate using the Exchange Online PowerShell Module.

\n You will need 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, use it to log in at: https://microsoft.com/devicelogin, and 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 We require you to grant us temporary access to your Microsoft mail server in order to configure your company's 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 { 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 Mail Server Configuration\n \n
\n
\n
= 0)? 'current':''\"> Access
\n
= 1)? 'current':''\"> Outbound
\n
= 2)? 'current':''\"> Inbound
\n
= 3)? 'current':''\"> Replies
\n
\n
\n \n \n \n Access the server\n \n\n
\n You 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 either the text #private, #deliver or #sign\n and does not include the header x-stayprivate-processed: true.\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 routes secure emails back to your corporate email server for\n sending 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

Out of the box, StayPrivate will deliver your emails from StayPrivate mail (spmail.com) addresses. We recommend that you update your DNS records to allow StayPrivate to address emails as sent direct from your users' existing email accounts.

\n

As soon as both your SPF and DKIM records are updated to allow StayPrivate to send on your behalf, StayPrivate will automatically start sending emails direct from your users' email addresses.

\n

Log into your DNS administration console and find the current SPF record - this is a TXT record and normally starts with 'v=spf1'. Add the text: include:spmail.com before the trailing '-all'.

\n

\n OR, if you do not have an SPF record, add a new TXT record with the following content: v=spf1 a mx include:spmail.com -all\n

\n

\n Secondly, add support for DKIM by adding a CNAME record for stayprivate._domainkey with the value stayprivate._domainkey.spmail.com.\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
","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
\n
\n \n \n \n Access the Mail Server\n \n\n
\n You 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 text '#private', '#deliver' or '#sign'.
  • \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':''\"> Connector
\n
= 2)? 'current':''\"> Outbound
\n
= 3)? 'current':''\"> Replies
\n
\n
\n \n \n\n \n Access the Exchange Admin area\n \n\n
\n You 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 completed, 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 subject or body'.
  • \n
  • Then, to the right, select 'subject or body includes any of these words'. Then enter #private and click 'Add'.
  • \n
  • Now enter #deliver and click 'Add'.
  • \n
  • Now enter #sign and click 'Add'. 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
  • Under 'Except if' select 'The message headers...'. Then, to the right, select 'matches these text patterns'.
  • \n
  • Click on 'Enter text' and enter x-stayprivate-processed in the box. \n Click 'Save'.
  • \n
  • Just after 'message header matches' click on 'Enter words' and enter true in the box. Click 'Add'. 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 \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-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 message headers...'. Then, to the right, select 'matches these text patterns'.
  • \n
  • Click on 'Enter text' and enter x-stayprivate-processed in the box. \n Click 'Save'.
  • \n
  • Just after 'message header matches' click on 'Enter words' and enter true in the box. Click 'Add'. 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 '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 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':''\"> Outbound
\n
= 3)? 'current':''\"> Replies
\n
\n
\n \n \n \n Access the Google Admin area\n \n
\n You 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
","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 = '#1A47D6';\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 = '#1A47D6';\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 = '#1A47D6';\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 = '#1A47D6';\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","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-tls-dialog',\n templateUrl: './tls-dialog.component.html',\n styleUrls: ['./tls-dialog.component.css']\n})\nexport class TlsDialogComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef,\n private router: Router,\n @Inject(MAT_DIALOG_DATA) public data: {heading: string,case: number}\n ) { }\n\n ngOnInit(): void {\n }\n nav(url:string){\n this.dialogRef.close(true)\n this.router.navigate(['/'+url])\n\n }\n confirm(){\n this.dialogRef.close(true)\n }\n cancel(){\n this.dialogRef.close()\n }\n\n}\n","
\n {{data.heading}}\n

Please ensure you update your mail server setup. For instructions on how to do this please see the Server Setup tab.

\n

Please ensure you remove StayPrivate from your mail server. For instructions on how to do this please see the Remove Setup tab.

\n
\n \n \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\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({\n next: data => {\n this.owner = data.Owner;\n if (this.route.snapshot.params['id']) {\n this.companyState = data.StatusInd\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 },\n error: error => { console.error('There was an error!'); }\n });\n\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 maxWidth:700,\n text: [\n 'You are about to delete '+userName+\"'s admin account.\",\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
Username {{user.LoginUserName}} military_tech Personal name {{user.PersonalName}} Email address {{user.EmailAddress}} \n \n
\n
\n
\n\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { ConfirmPopupComponent } from '../confirm-popup/confirm-popup.component';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Globals } from 'src/app/globals';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-user-management',\n templateUrl: './user-management.component.html',\n styleUrls: ['./user-management.component.css']\n})\nexport class UserManagementComponent implements OnInit {\n\n constructor(private http: HttpClient, private globals: Globals, private route: ActivatedRoute, public dialog: MatDialog) { }\n\n companyDomain: boolean = false\n users = null;\n emailAddress: string;\n name: string;\n tier: string;\n displayedColumns: string[] = ['EmailAddress', 'ItemsSent', 'Pause'];\n dataSource\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 this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyInfo.php', { params: param }).subscribe({\n next: companyData => {\n this.http.get(this.globals.getApiUrl() + 'api/getSPMailCompanyDomainUserInfo.php', { params: param }).subscribe({\n next: data => {\n // data = [{\n // Domain: 'company-123.com',\n // TLSCheckEmailUserList: [{\n // UserName: 'you',\n // UserEmail: 'you@company123.com',\n // SentEmailCount: 12,\n // }, {\n // UserName: 'us',\n // UserEmail: 'us@company123.com',\n // SentEmailCount: 12,\n // },],\n // EncryptedEmailUserList: [{\n // UserName: 'me',\n // UserEmail: 'me@company123.com',\n // SentEmailCount: 12,\n // PausedCount: 3,\n // IsPausedFlag: 'N',\n // }, {\n // UserName: 'you',\n // UserEmail: 'you@company123.com',\n // SentEmailCount: 12,\n // PausedCount: 4,\n // IsPausedFlag: 'N',\n // }, {\n // UserName: 'us',\n // UserEmail: 'us@company123.com',\n // SentEmailCount: 12,\n // PausedCount: 1,\n // IsPausedFlag: 'N',\n // },],\n // DocSigningEmailUserList: [{\n // UserName: 'me',\n // UserEmail: 'me@company123.com',\n // SentEmailCount: 12,\n // PausedCount: 3,\n // IsPausedFlag: 'N',\n // }, {\n // UserName: 'sash',\n // UserEmail: 'sash@company123.com',\n // SentEmailCount: 12,\n // PausedCount: 1,\n // IsPausedFlag: 'Y',\n // }]\n // }]\n //companyData.InitialTier = 126\n this.tier = companyData.InitialTier;\n if (companyData.InitialTier == 120) {\n this.users = data[0].EncryptedEmailUserList\n } if (companyData.InitialTier == 122) {\n this.users = data[0].DocSigningEmailUserList\n } if (companyData.InitialTier == 124) {\n this.users = Object.values([...data[0].EncryptedEmailUserList, ...data[0].DocSigningEmailUserList].reduce((a, v) => {\n if (a[v.UserName]) {\n a[v.UserName].SentEmailCount += v.SentEmailCount\n if (a[v.UserName].PausedCount < v.PausedCount){a[v.UserName].PausedCount = v.PausedCount} \n if (a[v.UserName].IsPausedFlag == 'N' || v.IsPausedFlag == 'N') { a[v.UserName].IsPausedFlag = 'N' }\n }\n else a[v.UserName] = { ...v }\n return a;\n }, {}));\n }\n \n \n \n \n \n \n if (companyData.InitialTier == 126) {\n let tempUsersList =[]\n for(let user of data[0].TLSCheckEmailUserList){\n user.TLS=\"Y\"\n user.IsPausedFlag = \"N\"\n tempUsersList.push(user);\n }\n for(let user of data[0].EncryptedEmailUserList){\n if(tempUsersList[tempUsersList.findIndex(({ UserName }) => UserName === user.UserName)]){\n tempUsersList[tempUsersList.findIndex(({ UserName }) => UserName === user.UserName)].EIsPausedFlag = user.IsPausedFlag;\n tempUsersList[tempUsersList.findIndex(({ UserName }) => UserName === user.UserName)].IsPausedFlag = \"N\";\n tempUsersList[tempUsersList.findIndex(({ UserName }) => UserName === user.UserName)].PausedCount = user.PausedCount;\n tempUsersList[tempUsersList.findIndex(({ UserName }) => UserName === user.UserName)].E = \"Y\";\n } else{\n user.TLS=\"N\"\n user.E=\"Y\"\n user.EIsPausedFlag = user.IsPausedFlag\n user.IsPausedFlag = \"N\"\n tempUsersList.push(user);\n }\n }\n for(let user of data[0].DocSigningEmailUserList){\n if(tempUsersList[tempUsersList.findIndex(({ UserName }) => UserName === user.UserName)]){\n tempUsersList[tempUsersList.findIndex(({ UserName }) => UserName === user.UserName)].DIsPausedFlag = user.IsPausedFlag;\n tempUsersList[tempUsersList.findIndex(({ UserName }) => UserName === user.UserName)].IsPausedFlag = \"N\";\n if(tempUsersList[tempUsersList.findIndex(({ UserName }) => UserName === user.UserName)].PausedCount < user.PausedCount){\n tempUsersList[tempUsersList.findIndex(({ UserName }) => UserName === user.UserName)].PausedCount = user.PausedCount; \n }\n tempUsersList[tempUsersList.findIndex(({ UserName }) => UserName === user.UserName)].D = \"Y\";\n } else{\n user.TLS=\"N\"\n user.E=\"N\"\n user.D=\"Y\"\n user.DIsPausedFlag = user.IsPausedFlag\n user.EIsPausedFlag = \"N\"\n user.IsPausedFlag = \"N\"\n tempUsersList.push(user);\n }\n }\n for(let user of tempUsersList){\n if(!user.TLS){user.TLS = \"N\"}\n if(!user.E){user.E = \"N\"; user.EIsPausedFlag = \"N\"}\n if(!user.D){user.D = \"N\"; user.DIsPausedFlag = \"N\"}\n if((user.E == \"N\" && user.DIsPausedFlag==\"Y\")||(user.D == \"N\" && user.EIsPausedFlag==\"Y\")){\n user.IsPausedFlag=\"Y\"\n }\n }\n this.users=tempUsersList;\n console.log(this.users)\n }\n\n this.dataSource = this.users;\n },\n error: error => { console.error('There was an error!'); }\n })\n },\n error: error => { console.error('There was an error!'); }\n });\n\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 async deleteUser(userDel: string, userName: string) {\n let tempText;\n if(this.tier==\"120\"){\n tempText = [\n 'You are about to suspend ' + userName + \"'s account. This account will remain active but will no longer be billed for.\",\n 'If they send a new encrypted email, their account will automatically be unsuspended.'\n ]\n } else if(this.tier==\"122\"){\n tempText = [\n 'You are about to suspend ' + userName + \"'s account. This account will remain active but will no longer be billed for.\",\n 'If they send a new document signing request, their account will automatically be unsuspended.'\n ]\n } else if(this.tier==\"124\"){\n tempText = [\n 'You are about to suspend ' + userName + \"'s account. This account will remain active but will no longer be billed for.\",\n 'If they send a new encrypted email or document signing request, their account will automatically be unsuspended.'\n ]\n } else if(this.tier==\"126\"){\n tempText = [\n 'You are about to downgrade ' + userName + \"'s account.\",\n 'If they send a new encrypted email or document signing request, their account will automatically be upgraded accordingly.'\n ]\n }\n const dialogRef = this.dialog.open(ConfirmPopupComponent, {\n autoFocus: false,\n maxWidth:700,\n data: {\n text: tempText\n },\n });\n\n dialogRef.afterClosed().subscribe(async result => {\n if (result == true) {\n \n this.users[this.users.findIndex(({ UserName }) => UserName === userDel)].IsPausedFlag = 'Y';\n this.users[this.users.findIndex(({ UserName }) => UserName === userDel)].EIsPausedFlag = 'Y';\n this.users[this.users.findIndex(({ UserName }) => UserName === userDel)].DIsPausedFlag = 'Y';\n let postForm = new FormData;\n postForm.append('AuthToken', await this.globals.getAuthToken());\n postForm.append('UserName', this.globals.getSystemUserName());\n postForm.append('PauseUserName', userDel);\n this.http.post(this.globals.getApiUrl() + 'api/pauseSPMailCompanyDomainUser.php', postForm).subscribe({\n next: data => {\n this.users[this.users.findIndex(({ UserName }) => UserName === userDel)].IsPausedFlag = 'Y';\n this.users[this.users.findIndex(({ UserName }) => UserName === userDel)].EIsPausedFlag = 'Y';\n this.users[this.users.findIndex(({ UserName }) => UserName === userDel)].DIsPausedFlag = 'Y';\n },\n error: error => {\n console.log(this.users)\n\n }\n });\n }\n });\n }\n}\n","\n \n Before you can manage users, you first need to subscribe to a plan.\n \n \n
\n
\n No users found\n
\n\n
\n 0 && tier != 126\" class=\"users-table\">\n \n \n \n \n \n \n \n \n \n
Email Address
{{user.UserEmail}}\n \n This user is suspended.
\n\n 0 && tier == 126\" class=\"users-table\">\n \n \n\n \n\n\n \n \n \n \n\n\n \n \n
Email Address\n
\n
TLS
\n
Delivery
\n
Communication
\n
\n
{{user.UserEmail}}\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","import { Injectable, OnInit, enableProdMode } from '@angular/core';\n\n@Injectable()\nexport class Config{\n private productionMode=true;\n getProdMode(){\n return this.productionMode;\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}","

Top Companies

\n\n","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 private welcomePopup: boolean;\n public remove = false;\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.defaultUsername = \"client\";\n this.defaultUserPwd = \"Admin123\";\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\", \"#1A47D6\") }\n // if (localStorage.getItem(\"foreground-color\") == null) { localStorage.setItem(\"foreground-color\", \"#1A47D6\") }\n // if (localStorage.getItem(\"highlight-color\") == null) { localStorage.setItem(\"highlight-color\", \"#1A47D6\") }\n // if (localStorage.getItem(\"border-color\") == null) { localStorage.setItem(\"border-color\", \"#1A47D6\") }\n localStorage.setItem(\"background-color\", \"#1A47D6\") ;\n localStorage.setItem(\"foreground-color\", \"#1A47D6\") ;\n localStorage.setItem(\"highlight-color\", \"#1A47D6\") ;\n localStorage.setItem(\"border-color\", \"#1A47D6\") ;\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\n setWelcomePopup(bool: boolean){\n this.welcomePopup = bool;\n }\n \n getWelcomePopup(){\n return this.welcomePopup;\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 { 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 { 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","
\n\n

Messages

\n \n
{{message}}
\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;\nshowUsers=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 if(data.UseEmailSentListCalcsFlag=='Y'){this.showUsers=true;}\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 \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 { 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 { 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","/** 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 } 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","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\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\nif (environment.production) {\n enableProdMode();\n} else{\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"names":[],"sourceRoot":"webpack:///"}