diff --git a/src/core/features/reportbuilder/components/report-column/report-column.html b/src/core/features/reportbuilder/components/report-column/report-column.html
index e0157e75e..2825771f6 100644
--- a/src/core/features/reportbuilder/components/report-column/report-column.html
+++ b/src/core/features/reportbuilder/components/report-column/report-column.html
@@ -4,10 +4,18 @@
{{ header }}
-
+
+
+ {{ column }}
-
-
+
+
+
+
+ {{ column }}
+
diff --git a/src/core/features/reportbuilder/components/report-column/report-column.ts b/src/core/features/reportbuilder/components/report-column/report-column.ts
index ab7259eee..5d086c93a 100644
--- a/src/core/features/reportbuilder/components/report-column/report-column.ts
+++ b/src/core/features/reportbuilder/components/report-column/report-column.ts
@@ -12,14 +12,15 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { Component, EventEmitter, Input, Output } from '@angular/core';
+import { CoreReportBuilder } from '@features/reportbuilder/services/reportbuilder';
@Component({
selector: 'core-report-builder-report-column',
templateUrl: './report-column.html',
styleUrls: ['./report-column.scss'],
})
-export class CoreReportBuilderReportColumnComponent implements OnInit {
+export class CoreReportBuilderReportColumnComponent {
@Input() isExpanded = false;
@Input() isExpandable = false;
@@ -32,11 +33,7 @@ export class CoreReportBuilderReportColumnComponent implements OnInit {
@Input() source!: string;
@Output() onToggleRow: EventEmitter = new EventEmitter();
- ngOnInit(): void {
- if (typeof this.column === 'number') {
- this.column = this.column.toString();
- }
- }
+ isString = (value: unknown): boolean => CoreReportBuilder.isString(value);
/**
* Emits row click
diff --git a/src/core/features/reportbuilder/components/report-detail/report-detail.html b/src/core/features/reportbuilder/components/report-detail/report-detail.html
index be704251f..0e16eba65 100644
--- a/src/core/features/reportbuilder/components/report-detail/report-detail.html
+++ b/src/core/features/reportbuilder/components/report-detail/report-detail.html
@@ -34,9 +34,10 @@
-
+ {{ column }}
|
diff --git a/src/core/features/reportbuilder/components/report-detail/report-detail.ts b/src/core/features/reportbuilder/components/report-detail/report-detail.ts
index 1e2ce0e09..fac760e0a 100644
--- a/src/core/features/reportbuilder/components/report-detail/report-detail.ts
+++ b/src/core/features/reportbuilder/components/report-detail/report-detail.ts
@@ -58,6 +58,8 @@ export class CoreReportBuilderReportDetailComponent implements OnInit {
source$: Observable;
+ isString = (value: unknown): boolean => CoreReportBuilder.isString(value);
+
constructor() {
this.source$ = this.state$.pipe(
map(state => {
@@ -81,33 +83,37 @@ export class CoreReportBuilderReportDetailComponent implements OnInit {
* Get report data.
*/
async getReport(): Promise {
- if (!this.reportId) {
- CoreDomUtils.showErrorModal(new CoreError('No report found'));
- CoreNavigator.back();
+ try {
+ if (!this.reportId) {
+ CoreDomUtils.showErrorModal(new CoreError('No report found'));
+ CoreNavigator.back();
- return;
+ return;
+ }
+
+ const { page } = this.state$.getValue();
+
+ const report = await CoreReportBuilder.loadReport(parseInt(this.reportId), page,this.perPage ?? REPORT_ROWS_LIMIT);
+
+ if (!report) {
+ CoreDomUtils.showErrorModal(new CoreError('No report found'));
+ CoreNavigator.back();
+
+ return;
+ }
+
+ await CoreReportBuilder.viewReport(this.reportId);
+
+ this.updateState({
+ report,
+ cardVisibleColumns: report.details.settingsdata.cardviewVisibleColumns,
+ cardviewShowFirstTitle: report.details.settingsdata.cardviewShowFirstTitle,
+ });
+
+ this.onReportLoaded.emit(report.details);
+ } catch (err) {
+ await CoreDomUtils.showErrorModal(err);
}
-
- const { page } = this.state$.getValue();
-
- const report = await CoreReportBuilder.loadReport(parseInt(this.reportId), page,this.perPage ?? REPORT_ROWS_LIMIT);
-
- if (!report) {
- CoreDomUtils.showErrorModal(new CoreError('No report found'));
- CoreNavigator.back();
-
- return;
- }
-
- await CoreReportBuilder.viewReport(this.reportId);
-
- this.updateState({
- report,
- cardVisibleColumns: report.details.settingsdata.cardviewVisibleColumns,
- cardviewShowFirstTitle: report.details.settingsdata.cardviewShowFirstTitle,
- });
-
- this.onReportLoaded.emit(report.details);
}
updateState(state: Partial): void {
diff --git a/src/core/features/reportbuilder/services/reportbuilder.ts b/src/core/features/reportbuilder/services/reportbuilder.ts
index e5cfd47b5..00dfac43f 100644
--- a/src/core/features/reportbuilder/services/reportbuilder.ts
+++ b/src/core/features/reportbuilder/services/reportbuilder.ts
@@ -160,6 +160,10 @@ export class CoreReportBuilderService {
return ROOT_CACHE_KEY + 'report';
}
+ isString(value: unknown): boolean {
+ return typeof value === 'string';
+ }
+
}
export const CoreReportBuilder = makeSingleton(CoreReportBuilderService);
@@ -230,7 +234,7 @@ export interface CoreReportBuilderRetrieveReportMapped extends Omit