diff options
author | Nicholas Soteropoulos <ns299g@us.att.com> | 2020-09-14 17:19:10 -0400 |
---|---|---|
committer | Nicholas Soteropoulos <ns299g@us.att.com> | 2020-09-22 17:25:58 -0400 |
commit | 457685063fd4b960441e482cc8b88fa8c972a7d2 (patch) | |
tree | b96a9bbc90c44a2319ed7666f2e811d1c20bd339 /mod2/ui/src/app/services/breadcrumb.service.ts | |
parent | 8f3e2c0068392a6d2e7aeed2959c3a681f6a1fe6 (diff) |
Fix mod ui build issues
Change-Id: I4d002645240852a3a5f1964d9ffa2cac11c45b47
Signed-off-by: Nicholas Soteropoulos <ns299g@us.att.com>
Issue-ID: DCAEGEN2-2317
Signed-off-by: Nicholas Soteropoulos <ns299g@us.att.com>
Diffstat (limited to 'mod2/ui/src/app/services/breadcrumb.service.ts')
-rw-r--r-- | mod2/ui/src/app/services/breadcrumb.service.ts | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/mod2/ui/src/app/services/breadcrumb.service.ts b/mod2/ui/src/app/services/breadcrumb.service.ts new file mode 100644 index 0000000..aa647aa --- /dev/null +++ b/mod2/ui/src/app/services/breadcrumb.service.ts @@ -0,0 +1,73 @@ +/* + * # ============LICENSE_START======================================================= + * # Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * # ================================================================================ + * # Licensed under the Apache License, Version 2.0 (the "License"); + * # you may not use this file except in compliance with the License. + * # You may obtain a copy of the License at + * # + * # http://www.apache.org/licenses/LICENSE-2.0 + * # + * # Unless required by applicable law or agreed to in writing, software + * # distributed under the License is distributed on an "AS IS" BASIS, + * # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * # See the License for the specific language governing permissions and + * # limitations under the License. + * # ============LICENSE_END========================================================= + */ + +import { Injectable } from '@angular/core'; +import { Observable, of, Subject, BehaviorSubject } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) + +export class BreadcrumbService { + + breadcrumbs: any[] = []; + + breadcrumbs$: Subject<any[]> = new BehaviorSubject([]); + + constructor() { + this.setBreadcrumbs('', "reset"); + } + + setBreadcrumbs(component: string, action: string) { + if (action == "reset") { + this.breadcrumbs = []; + this.breadcrumbs.push({ page: 'Home', link: '/home' }); + } + + // If the breadcrumb item is clicked, remove evwrything to the right of the clicked item + if (action == "crumbClicked") { + const pos = this.breadcrumbs.map(function(crumb) { return crumb.page }).indexOf(component); + for (1; this.breadcrumbs.length -1 -pos; 1) { + this.breadcrumbs.pop() + } + } else { // Add the component that was selected + if (component == 'Microservices') { + this.breadcrumbs.push({ page: 'Microservices', link: '/base-microservices' }); + } else if (component == 'MS Instances') { + this.breadcrumbs.push({ page: 'MS Instances', link: '/ms-instances' }); + } else if (component == 'Blueprints') { + this.breadcrumbs.push({ page: 'Blueprints', link: '/blueprints' }); + } else if (component == 'Component Specs') { + this.breadcrumbs.push({ page: 'Component Specs', link: '/CompSpecs' }); + } else if (component == 'User Management') { + this.breadcrumbs.push({ page: 'User Management', link: '/users' }); + } else if (component == 'Onboarding Tools') { + this.breadcrumbs.push({ page: 'Onboarding Tools', link: '/OnboardingTools' }); + } else if (component == 'Spec Validator') { + this.breadcrumbs.push({ page: 'Spec Validator', link: '/spec-validator' }); + } + } + this.notifySubscriber() + } + + + notifySubscriber() { + this.breadcrumbs$.next(this.breadcrumbs); + } +} + |