Skip to content
Snippets Groups Projects
Commit 6f178d9b authored by Etienne LOUPIAS's avatar Etienne LOUPIAS
Browse files

refactor(conf): replace client conf file by env var

parent a59a2916
No related branches found
No related tags found
2 merge requests!846V3.1.0 (sans impression),!809refactor(conf): replace client conf file by env var
......@@ -31,7 +31,6 @@
"luxon": "^1.25.0",
"ngx-matomo-client": "^6.0.0",
"ngx-toastr": "^18.0.0",
"runtime-config-loader": "^5.0.2",
"rxjs": "~7.8.0",
"tslib": "^2.4.0",
"zone.js": "~0.14.0"
......@@ -21613,19 +21612,11 @@
"queue-microtask": "^1.2.2"
}
},
"node_modules/runtime-config-loader": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/runtime-config-loader/-/runtime-config-loader-5.0.2.tgz",
"integrity": "sha512-6LnDfuV79wPuwykgxK0nDx/b28z6iXsKChlnc5OIr+iYPWNzgIe9MBaH7nNw9ACitWq4T1+Rkc+fvJeWNBBpug==",
"dependencies": {
"tslib": "^2.3.0"
},
"peerDependencies": {
"@angular/common": ">=13.0.0",
"@angular/core": ">=13.0.0",
"@angular/platform-browser-dynamic": ">=13.0.0",
"rxjs": ">=6.6.0"
}
"node_modules/rx": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
"integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==",
"dev": true
},
"node_modules/rxjs": {
"version": "7.8.1",
......
......@@ -41,7 +41,6 @@
"luxon": "^1.25.0",
"ngx-matomo-client": "^6.0.0",
"ngx-toastr": "^18.0.0",
"runtime-config-loader": "^5.0.2",
"rxjs": "~7.8.0",
"tslib": "^2.4.0",
"zone.js": "~0.14.0"
......
import { Component } from '@angular/core';
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { RuntimeConfigLoaderService } from 'runtime-config-loader';
import { ConfigService } from '../../../services/config.service';
import { AdminRoutes } from '../../admin-routing.module';
@Component({
......@@ -8,15 +8,21 @@ import { AdminRoutes } from '../../admin-routing.module';
templateUrl: './nav-bar.component.html',
styleUrl: '../../admin.scss',
})
export class NavBarComponent {
public ghostLink = this.runtimeConfigLoaderService.getConfigObjectKey('ghostAdmin');
export class NavBarComponent implements OnInit {
public routes = AdminRoutes;
private ghostLink: string;
constructor(
private runtimeConfigLoaderService: RuntimeConfigLoaderService,
public router: Router,
private configService: ConfigService,
) {}
ngOnInit(): void {
this.configService.getConfig().then((config) => {
this.ghostLink = config.ghostAdminUrl;
});
}
public openGhost(): void {
window.open(this.ghostLink);
}
......
......@@ -8,9 +8,9 @@ import {
Router,
} from '@angular/router';
import { MatomoInitializerService } from 'ngx-matomo-client';
import { RuntimeConfigLoaderService } from 'runtime-config-loader';
import { ProfileService } from './profile/services/profile.service';
import { AuthService } from './services/auth.service';
import { ConfigService } from './services/config.service';
import { RouterListenerService } from './services/routerListener.service';
import { UpdateService } from './services/update.service';
import { PrintService } from './shared/service/print.service';
......@@ -31,7 +31,7 @@ export class AppComponent implements OnInit {
private routerListener: RouterListenerService,
private updateService: UpdateService,
private router: Router,
private runtimeConfigLoaderService: RuntimeConfigLoaderService,
private configService: ConfigService,
private matomoInitializer: MatomoInitializerService,
private windowScrollService: WindowScrollService,
) {
......@@ -79,14 +79,14 @@ export class AppComponent implements OnInit {
document.getElementsByClassName('app-body')[0].scrollTo(0, 0);
});
// Subscribe to the configSubject and access the configuration object that way (to be sure the loading is finished)
// (cf. https://github.com/pjlamb12/runtime-config-loader#overview )
this.runtimeConfigLoaderService.configSubject.subscribe((config) => {
this.configService.getConfig().then((config) => {
if (config.matomoTrackerUrl && config.matomoSiteId) {
this.matomoInitializer.initializeTracker({ trackerUrl: config.matomoTrackerUrl, siteId: config.matomoSiteId });
this.matomoInitializer.initializeTracker({
trackerUrl: config.matomoTrackerUrl,
siteId: config.matomoSiteId,
});
}
});
this.runtimeConfigLoaderService.loadConfig().subscribe();
}
public onScroll(event): void {
......
......@@ -6,7 +6,6 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { ServiceWorkerModule } from '@angular/service-worker';
import { MatomoInitializationMode, NgxMatomoModule, NgxMatomoRouterModule } from 'ngx-matomo-client';
import { ToastrModule } from 'ngx-toastr';
import { RuntimeConfigLoaderModule } from 'runtime-config-loader';
import { environment } from '../environments/environment';
import { AnnuaireHeaderComponent } from './annuaire/annuaire-header/annuaire-header.component';
import { AnnuaireComponent } from './annuaire/annuaire.component';
......@@ -83,7 +82,6 @@ import { StructureJoinComponent } from './structure/structure-join/structure-joi
ServiceWorkerModule.register('ngsw-worker.js', {
enabled: environment.production,
}),
RuntimeConfigLoaderModule.forRoot({ configUrl: './config/config.json' }),
NgxMatomoModule.forRoot({ mode: MatomoInitializationMode.AUTO_DEFERRED }),
NgxMatomoRouterModule,
],
......
export class Config {
ghostAdminUrl: string;
matomoTrackerUrl: string;
matomoSiteId: string;
}
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { lastValueFrom } from 'rxjs';
import { Config } from '../models/config.model';
@Injectable({
providedIn: 'root',
})
export class ConfigService {
private config: Config;
constructor(private http: HttpClient) {}
public async getConfig(): Promise<Config> {
if (!this.config) {
this.config = await lastValueFrom(this.http.get<Config>('/api/config'));
}
return this.config;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment