import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core'; import { Router } from '@angular/router'; import { DomSanitizer } from '@angular/platform-browser'; import { User } from '../../Models/User'; import { Tenant } from '../../Models/Tenant'; import { MasterLayoutService } from '../../master-layout.service'; import { map, mergeMap, tap, catchError, finalize } from 'rxjs/operators'; import { of } from 'rxjs'; @Component({ selector: 'app-full-layout', templateUrl: './full.component.html', styleUrls: ['./assets/scss/style.scss', './full.component.scss'], encapsulation: ViewEncapsulation.None }) export class FullComponent implements OnInit { @Input() userFullName: string; @Input() userEmail: string; @Input() tenantId: number; @Input() tenantCustomerNumber: string; user: User = { name: 'userFullName', email: 'userEmail', tenantId: 1, tenantUserNumber: 'the number' }; tenant: Tenant = { id: 1, tenantId: 1, tenantName: 'Legal Connect', domain: '', homeSiteURL: '', privacyPolicyURL: 'http://www.rapidlegal.com/privacy-policy', endUserTermsOfUseURL: 'https://legalconnect.s3.amazonaws.com/tenantlogos/rapidlegal/docs/EndUserTermsOfService.pdf', logo: 'https://legalconnect.s3.amazonaws.com/tenantlogos/legalconnect/legalconnectlogo.png', shortLogo: 'L', helpFile: '', supportPhone: '1-800-Support-phone', supportEmail: 'Support@email.com', favIcon: 'https://legalconnect.s3.amazonaws.com/tenantlogos/legalconnect/lc_favicon.ico', css: 'https://s3.amazonaws.com/website.legalconnect/MasterLayout/assets/colors/blue.css', }; constructor(public sanitizer: DomSanitizer, private masterService: MasterLayoutService) { } ngOnInit() { this.user = { name: this.userFullName, email: this.userEmail, tenantId: this.tenantId, tenantUserNumber: this.tenantCustomerNumber }; this.getTenantInfo(this.user.tenantId).subscribe(); } /* setupUserInfo() { return this.masterService.getUserInfo().pipe( mergeMap(res => { this.user = { ...res }; console.log('setupUserInfo - User: ' + JSON.stringify({ data: this.user }, null, 4)); if (this.user && this.user.tenantId) { return this.getTenantInfo(this.user.tenantId); } else { // console.log('No tenant for user ' + (this.user.id ? this.user.id : 'empty')); } }), catchError(err => { console.log(JSON.stringify({ Error: err }, null, 4)); return of(); }), finalize(() => { this.addTenantTemplate(this.tenant.css); this.addTenantIcon(this.tenant.favIcon); }) ).subscribe(); } */ getTenantInfo(tenantId: number) { return this.masterService.getTenantInfo(tenantId).pipe( map(r => { this.tenant = { ...r }; this.tenant.shortLogo = this.masterService.getTenantSmallLogo(this.tenant.tenantName); console.log('setupTenantInfo - Tenant' + JSON.stringify({ data: this.tenant }, null, 4)); }), catchError(err => { console.log(JSON.stringify({ Error: err }, null, 4)); return of(); }), finalize(() => { this.addTenantTemplate(this.tenant.css); this.addTenantIcon(this.tenant.favIcon); }) ); } addTenantTemplate(css: string) { let styleElem = ''; } else { styleElem += 'https://s3.amazonaws.com/website.legalconnect/MasterLayout/assets/colors/blue.css">'; } $('head').append(styleElem); } addTenantIcon(icon: string) { let styleElem = ''; } else { styleElem += 'https://legalconnect.s3.amazonaws.com/tenantlogos/legalconnect/lc_favicon.ico">'; } $('head').append(styleElem); } }