TSK-483-508 make lookup configurable and refactored environment file

This commit is contained in:
Martin Rojas Miguel Angel 2018-05-24 10:28:25 +02:00 committed by Holger Hagen
parent 74d632eddd
commit ce490f17ce
13 changed files with 168 additions and 126 deletions

View File

@ -0,0 +1,56 @@
{
"EN": {
"workbaskets": {
"information": {
"lookupField": {
"visible": false
},
"custom1": {
"field": "Customized field 1 title",
"visible": true
},
"custom3": {
"field": "",
"visible": false
}
},
"access-items": {
"lookupField": {
"visible": true
},
"custom3": {
"field": "",
"visible": false
},
"custom9": {
"field": "Some custom field",
"visible": true
},
"custom10": {
"field": "",
"visible": false
},
"custom11": {
"field": "",
"visible": false
},
"custom12": {
"field": "",
"visible": false
}
}
},
"classifications": {
"information": {
"custom1": {
"field": "Classification custom 1",
"visible": true
},
"custom3": {
"field": "",
"visible": false
}
}
}
}
}

View File

@ -1,53 +1,3 @@
{
"taskanaRestUrl": "https://taskana-rest.mybluemix.net",
"customizedFields": {
"EN": {
"workbaskets": {
"information": {
"custom1": {
"field": "Customized field 1 title",
"visible": true
},
"custom3": {
"field": "",
"visible": false
}
},
"access-items": {
"custom3": {
"field": "",
"visible": false
},
"custom9": {
"field": "Some custom field",
"visible": true
},
"custom10": {
"field": "",
"visible": false
},
"custom11": {
"field": "",
"visible": false
},
"custom12": {
"field": "",
"visible": false
}
}
},
"classifications": {
"information": {
"custom1": {
"field": "Classification custom 1",
"visible": true
},
"custom3": {
"field": "",
"visible": false
}
}
}
}
}
"taskanaRestUrl": "https://taskana-rest.mybluemix.net"
}

View File

@ -42,12 +42,21 @@
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
</button>
</td>
<td class="input-group text-align text-width taskana-type-ahead" [ngClass]="{
<td *ngIf="lookupField.visible else accessIdInput" class="input-group text-align text-width taskana-type-ahead" [ngClass]="{
'has-warning': (accessItemsClone[index].accessId !== accessItem.accessId),
'has-error': !accessItem.accessId } ">
<taskana-type-ahead required #accessItemName="ngModel" [(ngModel)]="accessItem.accessId" name="accessItem.accessId-{{index}}"
[(ngModel)]="accessItem.accessId" placeHolderMessage="Access id is required"></taskana-type-ahead>
</td>
<ng-template #accessIdInput>
<td class="input-group text-align text-width ">
<div [ngClass]="{ 'has-warning': (accessItemsClone[index].accessId !== accessItem.accessId),
'has-error': !accessItem.accessId }">
<input type="text" required #accessItemName="ngModel" class="form-control" name="accessItem.accessId-{{index}}" [(ngModel)]="accessItem.accessId"
placeholder="{{accessItemName.invalid? 'Access id is required': ''}}">
</div>
</td>
</ng-template>
<td>
<input id="checkbox-{{index}}-00" type="checkbox" (click)="checkAll(index)">
<label for="checkbox-{{index}}-00"></label>

View File

@ -34,6 +34,7 @@ export class AccessItemsComponent implements OnChanges, OnDestroy {
active: string;
badgeMessage = '';
lookupField = this.customFieldService.getCustomField('Owner', 'workbaskets.access-items.lookupField');
custom1Field = this.customFieldService.getCustomField('Custom 1', 'workbaskets.access-items.custom1');
custom2Field = this.customFieldService.getCustomField('Custom 2', 'workbaskets.access-items.custom2');
custom3Field = this.customFieldService.getCustomField('Custom 3', 'workbaskets.access-items.custom3');

View File

@ -39,7 +39,12 @@
</div>
<div class="form-group required">
<label for="wb-owner" class="control-label">Owner</label>
<taskana-type-ahead required #owner="ngModel" name="owner" [(ngModel)]="workbasket.owner" placeHolderMessage="Owner is required"></taskana-type-ahead>
<taskana-type-ahead *ngIf="lookupField.visible else ownerInput" required #owner="ngModel" name="owner" [(ngModel)]="workbasket.owner"
placeHolderMessage="Owner is required"></taskana-type-ahead>
<ng-template #ownerInput>
<input type="text" required #owner="ngModel" class="form-control" id="wb-owner" placeholder="Owner" [(ngModel)]="workbasket.owner"
name="workbasket.owner">
</ng-template>
<div *ngIf="!owner?.valid" class="required-text">
* Owner is required
</div>

View File

@ -37,6 +37,7 @@ export class WorkbasketInformationComponent implements OnInit, OnChanges, OnDest
requestInProgress = false;
badgeMessage = '';
lookupField = this.customFieldsService.getCustomField('Owner', 'workbaskets.information.lookupField');
custom1Field = this.customFieldsService.getCustomField('Custom 1', 'workbaskets.information.custom1');
custom2Field = this.customFieldsService.getCustomField('Custom 2', 'workbaskets.information.custom2');
custom3Field = this.customFieldsService.getCustomField('Custom 3', 'workbaskets.information.custom3');

View File

@ -23,7 +23,7 @@
<ul class="dropdown-menu dropdown-menu" aria-labelledby="dropdownMenu">
<li>
<a *ngFor="let domain of domains" (click)="switchDomain(domain)">
{{domain}}
<label>{{domain}}</label>
</a>
</li>
</ul>

View File

@ -7,7 +7,7 @@ export class CustomFieldsService {
constructor() { }
initCustomFields(language: string = 'EN', jsonFile: any) {
this.customizedFields = jsonFile.customizedFields[language];
this.customizedFields = jsonFile[language];
}
getCustomField(fallbacktext: string, customPath: string = undefined): CustomField {
@ -19,7 +19,7 @@ export class CustomFieldsService {
private jsonPath(path: string, fallbacktext: string): CustomField {
if (!this.customizedFields) {
return undefined;
return new CustomField(true, fallbacktext);
};
const paths = path.split('.');
let value = this.customizedFields;

View File

@ -18,8 +18,13 @@ export class StartupService {
return this.loadEnvironment();
}
private loadEnvironment() {
return this.getEnvironmentFilePromise().then(
() => this.geCustomizedFieldsFilePromise()
);
}
getEnvironmentFilePromise() {
return this.httpClient.get<any>('environments/data-sources/environment-information.json').map(jsonFile => {
if (jsonFile) {
environment.taskanaRestUrl = jsonFile.taskanaRestUrl === '' ?
@ -29,6 +34,17 @@ export class StartupService {
}).toPromise()
.catch(() => {
return Observable.of(true)
})
});
}
geCustomizedFieldsFilePromise() {
return this.httpClient.get<any>('environments/data-sources/customized-fields.json').map(jsonFile => {
if (jsonFile) {
this.customFieldsService.initCustomFields('EN', jsonFile);
}
}).toPromise()
.catch(() => {
return Observable.of(true)
});
}
}

View File

@ -8,7 +8,7 @@ export class TitlesService {
constructor() { }
initTitles(language: string = 'EN', jsonFile: any) {
this.titles = jsonFile.titles[language];
this.titles = jsonFile[language];
}
getTitle(id: number, fallBacktext: string, customPath: string = undefined) {

View File

@ -0,0 +1,56 @@
{
"EN": {
"workbaskets": {
"information": {
"lookupField": {
"visible": true
},
"custom1": {
"field": "Customized field 1 title",
"visible": true
},
"custom3": {
"field": "",
"visible": false
}
},
"access-items": {
"lookupField": {
"visible": false
},
"custom3": {
"field": "",
"visible": false
},
"custom9": {
"field": "Some custom field",
"visible": true
},
"custom10": {
"field": "",
"visible": false
},
"custom11": {
"field": "",
"visible": false
},
"custom12": {
"field": "",
"visible": false
}
}
},
"classifications": {
"information": {
"custom1": {
"field": "Classification custom 1",
"visible": true
},
"custom3": {
"field": "",
"visible": false
}
}
}
}
}

View File

@ -1,53 +1,3 @@
{
"taskanaRestUrl": "",
"customizedFields": {
"EN": {
"workbaskets": {
"information": {
"custom1": {
"field": "Customized field 1 title",
"visible": true
},
"custom3": {
"field": "",
"visible": false
}
},
"access-items": {
"custom3": {
"field": "",
"visible": false
},
"custom9": {
"field": "Some custom field",
"visible": true
},
"custom10": {
"field": "",
"visible": false
},
"custom11": {
"field": "",
"visible": false
},
"custom12": {
"field": "",
"visible": false
}
}
},
"classifications": {
"information": {
"custom1": {
"field": "Classification custom 1",
"visible": true
},
"custom3": {
"field": "",
"visible": false
}
}
}
}
}
}
"taskanaRestUrl": ""
}

View File

@ -1,18 +1,16 @@
{
"titles": {
"EN": {
"0": "Administration",
"1": "Custom 1",
"2": "Custom 2",
"3": "Custom 3",
"4": "Custom 4"
},
"DE": {
"0": "Verwaltung",
"1": "Gewohnheit 1",
"2": "Gewohnheit 2",
"3": "Gewohnheit 3",
"4": "Gewohnheit 4"
}
"EN": {
"0": "Administration",
"1": "Custom 1",
"2": "Custom 2",
"3": "Custom 3",
"4": "Custom 4"
},
"DE": {
"0": "Administration",
"1": "Zusatzfeld 1",
"2": "Zusatzfeld 2",
"3": "Zusatzfeld 3",
"4": "Zusatzfeld 4"
}
}