Fixing relations pointing to _decl models
Change-Id: I78662dcacf5ef042aed297da42a2ea5f10a7c993
diff --git a/src/app/core/services/helpers/config.helpers.ts b/src/app/core/services/helpers/config.helpers.ts
index 78a767e..8ff81a2 100644
--- a/src/app/core/services/helpers/config.helpers.ts
+++ b/src/app/core/services/helpers/config.helpers.ts
@@ -40,6 +40,7 @@
export class ConfigHelpers implements IXosConfigHelpersService {
static $inject = [
+ '$log',
'$state',
'toastr',
'XosModelStore'];
@@ -64,6 +65,7 @@
];
constructor(
+ private $log: ng.ILogService,
private $state: ng.ui.IStateService,
private toastr: ng.toastr.IToastrService,
private XosModelStore: IXosModelStoreService
@@ -352,15 +354,25 @@
// augment a select field with related model informations
private populateSelectField(field: IXosModelDefsField, input: IXosFormInput): void {
+
+ if (field.relation.model.indexOf('_decl') > -1) {
+ field.relation.model = field.relation.model.replace('_decl', '');
+ }
+
this.XosModelStore.query(field.relation.model)
- .subscribe(res => {
- input.options = _.map(res, item => {
- let opt = {id: item.id, label: item.humanReadableName ? item.humanReadableName : item.name};
- if (!angular.isDefined(item.humanReadableName) && !angular.isDefined(item.name)) {
- opt.label = item.id;
- }
- return opt;
- });
- });
+ .subscribe(
+ res => {
+ input.options = _.map(res, item => {
+ let opt = {id: item.id, label: item.humanReadableName ? item.humanReadableName : item.name};
+ if (!angular.isDefined(item.humanReadableName) && !angular.isDefined(item.name)) {
+ opt.label = item.id;
+ }
+ return opt;
+ });
+ },
+ err => {
+ this.$log.error(`[XOSConfigHelpers] Failed to build relations for ${field.relation.model}`);
+ }
+ );
}
}