TSK-453 Add external configuration file for environment setup

This commit is contained in:
Martin Rojas Miguel Angel 2018-04-19 08:56:40 +02:00 committed by Mustapha Zorgati
parent ccf6f133ee
commit 67ee8d3215
6 changed files with 49 additions and 2 deletions

View File

@ -9,7 +9,8 @@
"outDir": "dist",
"assets": [
"assets",
"taskana.ico"
"taskana.ico",
"environments/data-sources"
],
"index": "index.html",
"main": "main.ts",

View File

@ -8,11 +8,13 @@ import { MasterAndDetailComponent } from './shared/master-and-detail/master-and-
import { NoAccessComponent } from './administration/workbasket/details/noAccess/no-access.component';
import { ClassificationListComponent } from './administration/classification/master/list/classification-list.component';
import { ClassificationDetailsComponent } from 'app/administration/classification/details/classification-details.component';
import { EnvironmentUrlGuard } from 'app/guards/environment-url-guard';
const appRoutes: Routes = [
{
path: 'administration/workbaskets',
component: MasterAndDetailComponent,
canActivate: [EnvironmentUrlGuard],
children: [
{
path: '',
@ -39,6 +41,7 @@ const appRoutes: Routes = [
{
path: 'administration/classifications',
component: MasterAndDetailComponent,
canActivate: [EnvironmentUrlGuard],
children: [
{
path: '',

View File

@ -59,6 +59,7 @@ import { TreeService } from './services/tree/tree.service';
import { ClassificationTypesService } from './services/classification-types/classification-types.service';
import { ClassificationCategoriesService } from 'app/services/classification-categories-service/classification-categories.service';
/**
* Pipes
*/
@ -68,6 +69,11 @@ import { SelectWorkBasketPipe } from './pipes/selectedWorkbasket/seleted-workbas
import { SpreadNumberPipe } from './pipes/spreadNumber/spread-number';
import { DomainService } from './services/domain/domain.service';
/**
* Guards
*/
import { EnvironmentUrlGuard } from './guards/environment-url-guard';
const MODULES = [
BrowserModule,
FormsModule,
@ -135,7 +141,8 @@ const DECLARATIONS = [
ClassificationsService,
TreeService,
ClassificationTypesService,
ClassificationCategoriesService
ClassificationCategoriesService,
EnvironmentUrlGuard
],
bootstrap: [AppComponent]
})

View File

@ -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)
});
}
}

View File

@ -29,6 +29,8 @@ export class HttpClientInterceptor implements HttpInterceptor {
this.requestInProgressService.setRequestInProgress(false);
if (err instanceof HttpErrorResponse && (err.status === 401 || err.status === 403)) {
this.permissionService.setPermission(false)
} else if (err instanceof HttpErrorResponse && (err.status === 404) && err.url.indexOf('environment-information.json')) {
// ignore this error message
} else {
this.errorModalService.triggerError(
new ErrorModel('There was error, please contact with your administrator ', err))

View File

@ -0,0 +1,6 @@
{
"taskanaAdminUrl": "",
"taskanaWorkplaceUrl": "",
"taskanaMonitorUrl": "",
"taskanaRestUrl": ""
}