Skip to content

Commit f54c99b

Browse files
committed
[DSC-648] fix metrics circular dependencies
1 parent 6e529d1 commit f54c99b

5 files changed

Lines changed: 56 additions & 56 deletions

File tree

src/app/core/layout/metrics-components-data.service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { RemoteData } from '../data/remote-data';
1717
import { METRICSCOMPONENT } from './models/metrics-component.resource-type';
1818
import { MetricsComponent } from './models/metrics-component.model';
1919
import { Metric } from '../shared/metric.model';
20-
import { MetricRow } from '../../cris-layout/cris-layout-matrix/cris-layout-box-container/boxes/metrics/cris-layout-metrics-box.component';
20+
import { CrisLayoutMetricRow } from './models/tab.model';
2121

2222
class DataServiceImpl extends DataService<MetricsComponent> {
2323
protected linkPath = 'boxmetricsconfigurations';
@@ -68,7 +68,7 @@ export class MetricsComponentsDataService {
6868
/**
6969
* Get matching metrics for item.
7070
*/
71-
getMatchingMetrics(metrics: Metric[], maxColumn: number, metricTypes: string[]): MetricRow[] {
71+
getMatchingMetrics(metrics: Metric[], maxColumn: number, metricTypes: string[]): CrisLayoutMetricRow[] {
7272
if (maxColumn == null || maxColumn <= 0) {
7373
maxColumn = 3;
7474
}
@@ -77,7 +77,7 @@ export class MetricsComponentsDataService {
7777
return metricRows;
7878
}
7979

80-
computeMetricsRows(itemMetrics: Metric[], maxColumn, metricTypes: string[]): MetricRow[] {
80+
computeMetricsRows(itemMetrics: Metric[], maxColumn, metricTypes: string[]): CrisLayoutMetricRow[] {
8181

8282
// support
8383
const typeMap = {};
Lines changed: 44 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,96 @@
11
export interface MetadataGroup {
2-
leading: string;
3-
elements: LayoutField[];
2+
leading: string;
3+
elements: LayoutField[];
44
}
55

66
export interface LayoutBitstream {
7-
bundle: string;
8-
metadataField: string;
9-
metadataValue: string;
7+
bundle: string;
8+
metadataField: string;
9+
metadataValue: string;
1010
}
1111

1212
export enum LayoutFieldType {
1313
METADATA = 'METADATA',
1414
METADATAGROUP = 'METADATAGROUP',
1515
BITSTREAM = 'BITSTREAM'
1616
}
17+
1718
export interface LayoutField {
18-
metadata?: string;
19-
bitstream?: LayoutBitstream;
20-
label?: string;
21-
rendering: string;
22-
fieldType: LayoutFieldType|string;
23-
style?: string;
24-
styleLabel?: string;
25-
styleValue?: string;
26-
metadataGroup?: MetadataGroup;
27-
labelAsHeading: boolean;
28-
valuesInline: boolean;
19+
metadata?: string;
20+
bitstream?: LayoutBitstream;
21+
label?: string;
22+
rendering: string;
23+
fieldType: LayoutFieldType | string;
24+
style?: string;
25+
styleLabel?: string;
26+
styleValue?: string;
27+
metadataGroup?: MetadataGroup;
28+
labelAsHeading: boolean;
29+
valuesInline: boolean;
2930
}
3031

3132
export interface MetadataBoxConfiguration extends BoxConfiguration {
32-
id: string;
33-
rows: MetadataBoxRow[];
33+
id: string;
34+
rows: MetadataBoxRow[];
3435
}
3536

3637
export interface BoxConfiguration {
37-
type: string;
38+
type: string;
3839
}
3940

4041
export interface RelationBoxConfiguration extends BoxConfiguration {
41-
'discovery-configuration': string;
42+
'discovery-configuration': string;
4243
}
4344

4445
export interface MetricsBoxConfiguration extends BoxConfiguration {
45-
maxColumns: null;
46-
metrics: string[];
46+
maxColumns: null;
47+
metrics: string[];
4748
}
4849

4950
export interface MetadataBoxCell {
50-
style: string;
51-
fields: LayoutField[];
51+
style: string;
52+
fields: LayoutField[];
5253
}
5354

5455
export interface MetadataBoxRow {
55-
style: string;
56-
cells: MetadataBoxCell[];
56+
style: string;
57+
cells: MetadataBoxCell[];
5758
}
5859

5960
/**
6061
* Describes the CrisLayoutBox model
6162
*/
6263
export class CrisLayoutBox {
6364

64-
/**
65-
* The identifier of this CrisLayoutBox
66-
*/
67-
id: number;
65+
/**
66+
* The identifier of this CrisLayoutBox
67+
*/
68+
id: number;
6869

69-
shortname: string;
70+
shortname: string;
7071

71-
header: string;
72+
header: string;
7273

73-
entityType: string;
74+
entityType: string;
7475

75-
collapsed: boolean;
76+
collapsed: boolean;
7677

77-
minor: boolean;
78+
minor: boolean;
7879

79-
style: string;
80+
style: string;
8081

81-
clear: boolean;
82+
clear: boolean;
8283

83-
maxColumn: number;
84+
maxColumn: number;
8485

85-
container: boolean;
86+
container: boolean;
8687

87-
metadataSecurityFields?: string[];
88+
metadataSecurityFields?: string[];
8889

89-
security: number;
90+
security: number;
9091

91-
boxType: string;
92+
boxType: string;
9293

93-
configuration?: RelationBoxConfiguration | MetadataBoxConfiguration | MetricsBoxConfiguration;
94+
configuration?: RelationBoxConfiguration | MetadataBoxConfiguration | MetricsBoxConfiguration;
9495

9596
}

src/app/core/layout/models/tab.model.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { excludeFromEquals } from '../../utilities/equals.decorators';
77
import { ResourceType } from '../../shared/resource-type';
88
import { IDToUUIDSerializer } from '../../cache/id-to-uuid-serializer';
99
import { CrisLayoutBox } from './box.model';
10+
import { Metric } from '../../shared/metric.model';
1011

1112
/**
1213
* Describes a type of CrisLayoutTab
@@ -85,9 +86,11 @@ export interface CrisLayoutRow {
8586
cells: CrisLayoutCell[];
8687
}
8788

88-
89-
9089
export interface CrisLayoutCell {
9190
style: string;
9291
boxes: CrisLayoutBox[];
9392
}
93+
94+
export interface CrisLayoutMetricRow {
95+
metrics: Metric[];
96+
}

src/app/cris-layout/cris-layout-matrix/cris-layout-box-container/boxes/metrics/cris-layout-metrics-box.component.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,10 @@ import { LayoutBox } from '../../../../enums/layout-box.enum';
99
import { getFirstSucceededRemoteDataPayload } from '../../../../../core/shared/operators';
1010
import { hasValue } from '../../../../../shared/empty.util';
1111
import { MetricsComponentsDataService } from '../../../../../core/layout/metrics-components-data.service';
12-
import { Metric } from '../../../../../core/shared/metric.model';
1312
import { ItemDataService } from '../../../../../core/data/item-data.service';
1413
import { CrisLayoutBox, MetricsBoxConfiguration, } from '../../../../../core/layout/models/box.model';
1514
import { Item } from '../../../../../core/shared/item.model';
16-
17-
export interface MetricRow {
18-
metrics: Metric[];
19-
}
15+
import { CrisLayoutMetricRow } from '../../../../../core/layout/models/tab.model';
2016

2117
/**
2218
* This component renders the metadata boxes of items
@@ -41,7 +37,7 @@ export class CrisLayoutMetricsBoxComponent extends CrisLayoutBoxModelComponent i
4137
/**
4238
* Computed metric rows for the item and the current box
4339
*/
44-
metricRows: BehaviorSubject<MetricRow[]> = new BehaviorSubject<MetricRow[]>([]);
40+
metricRows: BehaviorSubject<CrisLayoutMetricRow[]> = new BehaviorSubject<CrisLayoutMetricRow[]>([]);
4541

4642
/**
4743
* true if the item has a thumbnail, false otherwise

src/app/cris-layout/cris-layout-matrix/cris-layout-box-container/boxes/metrics/metric-row/metric-row.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Component, Input } from '@angular/core';
2-
import { MetricRow } from '../cris-layout-metrics-box.component';
2+
import { CrisLayoutMetricRow } from '../../../../../../core/layout/models/tab.model';
33

44
/**
55
* This component renders the rows of metadata boxes
@@ -14,5 +14,5 @@ export class MetricRowComponent {
1414
/**
1515
* Current row configuration
1616
*/
17-
@Input() metricRow: MetricRow;
17+
@Input() metricRow: CrisLayoutMetricRow;
1818
}

0 commit comments

Comments
 (0)