- if (!ctrl.display.settings.columns) {
- ctrl.display.settings.columns = _.transform(ctrl.apiParams.select, function(columns, fieldExpr) {
- columns.push(fieldToColumn(fieldExpr));
- });
- ctrl.hiddenColumns = [];
- } else {
- var activeColumns = _.collect(ctrl.display.settings.columns, 'expr');
- ctrl.hiddenColumns = _.transform(ctrl.apiParams.select, function(hiddenColumns, fieldExpr) {
- if (!_.includes(activeColumns, fieldExpr)) {
- hiddenColumns.push(fieldToColumn(fieldExpr));
- }
- });
- _.each(activeColumns, function(fieldExpr, index) {
- if (!_.includes(ctrl.apiParams.select, fieldExpr)) {
- ctrl.display.settings.columns.splice(index, 1);
- }
- });
- }
- ctrl.links = _.cloneDeep(searchMeta.getEntity(ctrl.apiEntity).paths || []);
- _.each(ctrl.apiParams.join, function(join) {
- var joinName = join[0].split(' AS '),
- joinEntity = searchMeta.getEntity(joinName[0]);
- _.each(joinEntity.paths, function(path) {
- var link = _.cloneDeep(path);
- link.path = link.path.replace(/\[/g, '[' + joinName[1] + '.');
- ctrl.links.push(link);
- });
- });