Loading packages/admin-web-angular/src/app/@core/data/store.service.ts +16 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,22 @@ export class Store { localStorage.setItem('serverConnection', val); } get adminPasswordReset() { return localStorage.getItem('adminPasswordReset'); } set adminPasswordReset(val: string) { localStorage.setItem('adminPasswordReset', val); } get fakeDataGenerator() { return localStorage.getItem('fakeDataGenerator'); } set fakeDataGenerator(val: string) { localStorage.setItem('fakeDataGenerator', val); } clearMaintenanceMode() { localStorage.removeItem('maintenanceMode'); } Loading packages/admin-web-angular/src/app/@core/services/server-settings.service.ts 0 → 100644 +48 −0 Original line number Diff line number Diff line import { Injectable } from '@angular/core'; import { Store } from '../data/store.service'; import { Apollo } from 'apollo-angular'; import { IAdminAppSettings } from '@modules/server.common/interfaces/IAppsSettings'; import gql from 'graphql-tag'; import { take, map } from 'rxjs/operators'; @Injectable({ providedIn: 'root', }) export class ServerSettingsService { constructor( private readonly _apollo: Apollo, private readonly store: Store ) {} async load() { return new Promise(async (resolve, reject) => { const res = await this.getAdminAppSettings(); if (res) { this.store.adminPasswordReset = res.adminPasswordReset; this.store.fakeDataGenerator = res.fakeDataGenerator; } resolve(true); }); } getAdminAppSettings() { return this._apollo .query<{ settings: IAdminAppSettings }>({ query: gql` query adminAppSettings { adminAppSettings { adminPasswordReset fakeDataGenerator } } `, }) .pipe( take(1), map((res) => res.data['adminAppSettings']) ) .toPromise(); } } packages/admin-web-angular/src/app/app.module.ts +12 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import { MaintenanceService } from '@modules/client.common.angular2/services/mai import { AppModuleGuard } from './app.module.guard'; import { MaintenanceModuleGuard } from './pages/+maintenance-info/maintenance-info.module.guard'; import { ServerConnectionService } from '@modules/client.common.angular2/services/server-connection.service'; import { ServerSettingsService } from './@core/services/server-settings.service'; // It's more 'standard' way to use Font-Awesome module and special package, // but for some reason ngx-admin works without it. So we leave next line commented for now. Loading Loading @@ -80,6 +81,13 @@ import { ServerConnectionService } from '@modules/client.common.angular2/service deps: [MaintenanceService], multi: true, }, ServerSettingsService, { provide: APP_INITIALIZER, useFactory: serverSettingsFactory, deps: [ServerSettingsService], multi: true, }, { provide: APP_BASE_HREF, useValue: '/' }, SimpleTimer, AppModuleGuard, Loading Loading @@ -171,3 +179,7 @@ export function maintenanceFactory(provider: MaintenanceService) { environment['SETTINGS_MAINTENANCE_API_URL'] ); } export function serverSettingsFactory(provider: ServerSettingsService) { return () => provider.load(); } packages/admin-web-angular/src/app/pages/+fakeData/fakeData.module.guard.ts 0 → 100644 +30 −0 Original line number Diff line number Diff line import { Injectable } from '@angular/core'; import { CanActivate, ActivatedRouteSnapshot, Router, RouterStateSnapshot, } from '@angular/router'; import { Store } from '@app/@core/data/store.service'; @Injectable() export class FakeDataModuleGuard implements CanActivate { constructor( private readonly router: Router, private readonly store: Store ) {} canActivate( route: ActivatedRouteSnapshot, state: RouterStateSnapshot ): boolean { const fakeDataGenerator = !!+this.store.fakeDataGenerator; if (!fakeDataGenerator) { this.router.navigate(['/']); return false; } return true; } } packages/admin-web-angular/src/app/pages/+setup/setup.component.html +1 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ <nb-card-body> <button [disabled]="!fakeDataGenerator" nbButton status="primary" class="mr-3" Loading Loading
packages/admin-web-angular/src/app/@core/data/store.service.ts +16 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,22 @@ export class Store { localStorage.setItem('serverConnection', val); } get adminPasswordReset() { return localStorage.getItem('adminPasswordReset'); } set adminPasswordReset(val: string) { localStorage.setItem('adminPasswordReset', val); } get fakeDataGenerator() { return localStorage.getItem('fakeDataGenerator'); } set fakeDataGenerator(val: string) { localStorage.setItem('fakeDataGenerator', val); } clearMaintenanceMode() { localStorage.removeItem('maintenanceMode'); } Loading
packages/admin-web-angular/src/app/@core/services/server-settings.service.ts 0 → 100644 +48 −0 Original line number Diff line number Diff line import { Injectable } from '@angular/core'; import { Store } from '../data/store.service'; import { Apollo } from 'apollo-angular'; import { IAdminAppSettings } from '@modules/server.common/interfaces/IAppsSettings'; import gql from 'graphql-tag'; import { take, map } from 'rxjs/operators'; @Injectable({ providedIn: 'root', }) export class ServerSettingsService { constructor( private readonly _apollo: Apollo, private readonly store: Store ) {} async load() { return new Promise(async (resolve, reject) => { const res = await this.getAdminAppSettings(); if (res) { this.store.adminPasswordReset = res.adminPasswordReset; this.store.fakeDataGenerator = res.fakeDataGenerator; } resolve(true); }); } getAdminAppSettings() { return this._apollo .query<{ settings: IAdminAppSettings }>({ query: gql` query adminAppSettings { adminAppSettings { adminPasswordReset fakeDataGenerator } } `, }) .pipe( take(1), map((res) => res.data['adminAppSettings']) ) .toPromise(); } }
packages/admin-web-angular/src/app/app.module.ts +12 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import { MaintenanceService } from '@modules/client.common.angular2/services/mai import { AppModuleGuard } from './app.module.guard'; import { MaintenanceModuleGuard } from './pages/+maintenance-info/maintenance-info.module.guard'; import { ServerConnectionService } from '@modules/client.common.angular2/services/server-connection.service'; import { ServerSettingsService } from './@core/services/server-settings.service'; // It's more 'standard' way to use Font-Awesome module and special package, // but for some reason ngx-admin works without it. So we leave next line commented for now. Loading Loading @@ -80,6 +81,13 @@ import { ServerConnectionService } from '@modules/client.common.angular2/service deps: [MaintenanceService], multi: true, }, ServerSettingsService, { provide: APP_INITIALIZER, useFactory: serverSettingsFactory, deps: [ServerSettingsService], multi: true, }, { provide: APP_BASE_HREF, useValue: '/' }, SimpleTimer, AppModuleGuard, Loading Loading @@ -171,3 +179,7 @@ export function maintenanceFactory(provider: MaintenanceService) { environment['SETTINGS_MAINTENANCE_API_URL'] ); } export function serverSettingsFactory(provider: ServerSettingsService) { return () => provider.load(); }
packages/admin-web-angular/src/app/pages/+fakeData/fakeData.module.guard.ts 0 → 100644 +30 −0 Original line number Diff line number Diff line import { Injectable } from '@angular/core'; import { CanActivate, ActivatedRouteSnapshot, Router, RouterStateSnapshot, } from '@angular/router'; import { Store } from '@app/@core/data/store.service'; @Injectable() export class FakeDataModuleGuard implements CanActivate { constructor( private readonly router: Router, private readonly store: Store ) {} canActivate( route: ActivatedRouteSnapshot, state: RouterStateSnapshot ): boolean { const fakeDataGenerator = !!+this.store.fakeDataGenerator; if (!fakeDataGenerator) { this.router.navigate(['/']); return false; } return true; } }
packages/admin-web-angular/src/app/pages/+setup/setup.component.html +1 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ <nb-card-body> <button [disabled]="!fakeDataGenerator" nbButton status="primary" class="mr-3" Loading