Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | 100x 100x 100x 100x 125x 125x 100x 37x 37x 19x 12x 12x 18x 11x 7x 5x 100x 3x 100x 18x 100x 5x 100x | import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import * as _ from 'lodash'; import { ApiModule } from './api.module'; @Injectable({ providedIn: ApiModule }) export class SettingsService { constructor(private http: HttpClient) {} private settings: { [url: string]: string } = {}; ifSettingConfigured(url: string, fn: (value?: string) => void, elseFn?: () => void): void { const setting = this.settings[url]; if (setting === undefined) { this.http.get(url).subscribe( (data: any) => { this.settings[url] = this.getSettingsValue(data); this.ifSettingConfigured(url, fn, elseFn); }, (resp) => { if (resp.status !== 401) { this.settings[url] = ''; } } ); } else if (setting !== '') { fn(setting); } else { if (elseFn) { elseFn(); } } } // Easiest way to stop reloading external content that can't be reached disableSetting(url) { this.settings[url] = ''; } private getSettingsValue(data: any): string { return data.value || data.instance || ''; } validateGrafanaDashboardUrl(uid) { return this.http.get(`api/grafana/validation/${uid}`); } } |