TSK-453 Add external configuration file for environment setup
This commit is contained in:
parent
ccf6f133ee
commit
67ee8d3215
|
@ -9,7 +9,8 @@
|
||||||
"outDir": "dist",
|
"outDir": "dist",
|
||||||
"assets": [
|
"assets": [
|
||||||
"assets",
|
"assets",
|
||||||
"taskana.ico"
|
"taskana.ico",
|
||||||
|
"environments/data-sources"
|
||||||
],
|
],
|
||||||
"index": "index.html",
|
"index": "index.html",
|
||||||
"main": "main.ts",
|
"main": "main.ts",
|
||||||
|
|
|
@ -8,11 +8,13 @@ import { MasterAndDetailComponent } from './shared/master-and-detail/master-and-
|
||||||
import { NoAccessComponent } from './administration/workbasket/details/noAccess/no-access.component';
|
import { NoAccessComponent } from './administration/workbasket/details/noAccess/no-access.component';
|
||||||
import { ClassificationListComponent } from './administration/classification/master/list/classification-list.component';
|
import { ClassificationListComponent } from './administration/classification/master/list/classification-list.component';
|
||||||
import { ClassificationDetailsComponent } from 'app/administration/classification/details/classification-details.component';
|
import { ClassificationDetailsComponent } from 'app/administration/classification/details/classification-details.component';
|
||||||
|
import { EnvironmentUrlGuard } from 'app/guards/environment-url-guard';
|
||||||
|
|
||||||
const appRoutes: Routes = [
|
const appRoutes: Routes = [
|
||||||
{
|
{
|
||||||
path: 'administration/workbaskets',
|
path: 'administration/workbaskets',
|
||||||
component: MasterAndDetailComponent,
|
component: MasterAndDetailComponent,
|
||||||
|
canActivate: [EnvironmentUrlGuard],
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: '',
|
path: '',
|
||||||
|
@ -39,6 +41,7 @@ const appRoutes: Routes = [
|
||||||
{
|
{
|
||||||
path: 'administration/classifications',
|
path: 'administration/classifications',
|
||||||
component: MasterAndDetailComponent,
|
component: MasterAndDetailComponent,
|
||||||
|
canActivate: [EnvironmentUrlGuard],
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: '',
|
path: '',
|
||||||
|
|
|
@ -59,6 +59,7 @@ import { TreeService } from './services/tree/tree.service';
|
||||||
import { ClassificationTypesService } from './services/classification-types/classification-types.service';
|
import { ClassificationTypesService } from './services/classification-types/classification-types.service';
|
||||||
import { ClassificationCategoriesService } from 'app/services/classification-categories-service/classification-categories.service';
|
import { ClassificationCategoriesService } from 'app/services/classification-categories-service/classification-categories.service';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pipes
|
* Pipes
|
||||||
*/
|
*/
|
||||||
|
@ -68,6 +69,11 @@ import { SelectWorkBasketPipe } from './pipes/selectedWorkbasket/seleted-workbas
|
||||||
import { SpreadNumberPipe } from './pipes/spreadNumber/spread-number';
|
import { SpreadNumberPipe } from './pipes/spreadNumber/spread-number';
|
||||||
import { DomainService } from './services/domain/domain.service';
|
import { DomainService } from './services/domain/domain.service';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Guards
|
||||||
|
*/
|
||||||
|
import { EnvironmentUrlGuard } from './guards/environment-url-guard';
|
||||||
|
|
||||||
const MODULES = [
|
const MODULES = [
|
||||||
BrowserModule,
|
BrowserModule,
|
||||||
FormsModule,
|
FormsModule,
|
||||||
|
@ -135,7 +141,8 @@ const DECLARATIONS = [
|
||||||
ClassificationsService,
|
ClassificationsService,
|
||||||
TreeService,
|
TreeService,
|
||||||
ClassificationTypesService,
|
ClassificationTypesService,
|
||||||
ClassificationCategoriesService
|
ClassificationCategoriesService,
|
||||||
|
EnvironmentUrlGuard
|
||||||
],
|
],
|
||||||
bootstrap: [AppComponent]
|
bootstrap: [AppComponent]
|
||||||
})
|
})
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
import { Observable } from 'rxjs/Observable';
|
||||||
|
import { HttpClient } from '@angular/common/http';
|
||||||
|
import { CanActivate } from '@angular/router';
|
||||||
|
import { environment } from 'app/../environments/environment';
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class EnvironmentUrlGuard implements CanActivate {
|
||||||
|
constructor(private httpClient: HttpClient) { }
|
||||||
|
|
||||||
|
canActivate() {
|
||||||
|
return this.httpClient.get<any>('environments/data-sources/environment-information.json').map(jsonFile => {
|
||||||
|
if (jsonFile) {
|
||||||
|
environment.taskanaWorkplaceUrl = jsonFile.taskanaWorkplaceUrl === '' ?
|
||||||
|
environment.taskanaWorkplaceUrl : jsonFile.taskanaWorkplaceUrl;
|
||||||
|
environment.taskanaAdminUrl = jsonFile.taskanaAdminUrl === '' ?
|
||||||
|
environment.taskanaAdminUrl : jsonFile.taskanaAdminUrl;
|
||||||
|
environment.taskanaMonitorUrl = jsonFile.taskanaMonitorUrl === '' ?
|
||||||
|
environment.taskanaMonitorUrl : jsonFile.taskanaMonitorUrl;
|
||||||
|
environment.taskanaRestUrl = jsonFile.taskanaRestUrl === '' ?
|
||||||
|
environment.taskanaRestUrl : jsonFile.taskanaRestUrl;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}).catch(() => {
|
||||||
|
return Observable.of(true)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -29,6 +29,8 @@ export class HttpClientInterceptor implements HttpInterceptor {
|
||||||
this.requestInProgressService.setRequestInProgress(false);
|
this.requestInProgressService.setRequestInProgress(false);
|
||||||
if (err instanceof HttpErrorResponse && (err.status === 401 || err.status === 403)) {
|
if (err instanceof HttpErrorResponse && (err.status === 401 || err.status === 403)) {
|
||||||
this.permissionService.setPermission(false)
|
this.permissionService.setPermission(false)
|
||||||
|
} else if (err instanceof HttpErrorResponse && (err.status === 404) && err.url.indexOf('environment-information.json')) {
|
||||||
|
// ignore this error message
|
||||||
} else {
|
} else {
|
||||||
this.errorModalService.triggerError(
|
this.errorModalService.triggerError(
|
||||||
new ErrorModel('There was error, please contact with your administrator ', err))
|
new ErrorModel('There was error, please contact with your administrator ', err))
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"taskanaAdminUrl": "",
|
||||||
|
"taskanaWorkplaceUrl": "",
|
||||||
|
"taskanaMonitorUrl": "",
|
||||||
|
"taskanaRestUrl": ""
|
||||||
|
}
|
Loading…
Reference in New Issue