Skip to content

Commit 295c7db

Browse files
author
GuustMetz
committed
improve activeColumn computation
1 parent 6fb5d46 commit 295c7db

1 file changed

Lines changed: 66 additions & 47 deletions

File tree

lib/public/views/Runs/RunPerDataPass/RunsPerDataPassOverviewPage.js

Lines changed: 66 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,14 @@ export const RunsPerDataPassOverviewPage = ({
117117

118118
const commonTitle = h('h2#breadcrumb-header', { style: 'white-space: nowrap;' }, 'Physics Runs');
119119
const runDetectorsSelectionIsEmpty = perDataPassOverviewModel.runDetectorsSelectionModel.selectedQueryString.length === 0;
120+
const dataPass = remoteDataPass.match({ Other: () => null, Success: (data) => data });
121+
const detectors = remoteDetectors.match({ Other: () => null, Success: (data) => data });
122+
const qcSummary = remoteQcSummary.match({ Other: () => null, Success: (data) => data });
120123

121124
const activeColumns = {
122125
...runsActiveColumns,
123126
...getInelasticInteractionRateColumns(pdpBeamTypes),
127+
124128
globalAggregatedQuality: {
125129
name: 'GAQ',
126130
information: h(
@@ -129,69 +133,84 @@ export const RunsPerDataPassOverviewPage = ({
129133
h('', 'Default detectors: FT0, ITS, TPC (and ZDC for heavy-ion runs)'),
130134
),
131135
visible: true,
136+
132137
format: (_, { runNumber }) => {
133-
const gaqLoadingSpinner = h('.flex-row.items-center.justify-center.black', spinner({ size: 2, absolute: false }));
138+
const spinnerEl = h('.flex-row.items-center.justify-center.black', spinner({ size: 2, absolute: false }));
139+
134140
const runGaqSummary = remoteGaqSummary[runNumber];
135141

136142
return runGaqSummary.match({
137143
Success: (gaqSummary) => {
138-
const gaqDisplay = gaqSummary?.undefinedQualityPeriodsCount === 0
139-
? getQcSummaryDisplay(gaqSummary)
140-
: h('button.btn.btn-primary.w-100', 'GAQ');
144+
const gaqDisplay =
145+
gaqSummary?.undefinedQualityPeriodsCount === 0
146+
? getQcSummaryDisplay(gaqSummary)
147+
: h('button.btn.btn-primary.w-100', 'GAQ');
141148

142149
return frontLink(gaqDisplay, 'gaq-flags', { dataPassId, runNumber });
143150
},
144-
Loading: () => tooltip(gaqLoadingSpinner, 'Loading GAQ summary...'),
145-
NotAsked: () => tooltip(gaqLoadingSpinner, 'Loading GAQ summary...'),
146-
Failure: () => {
147-
const gaqDisplay = h('button.btn.btn-primary.w-100', [
148-
'GAQ',
149-
h(
150-
'.d-inline-block.va-t-bottom',
151-
tooltip(h('.f7', iconWarning()), 'GAQ Summary failed, please click to view GAQ flags'),
152-
),
153-
]);
154-
return frontLink(gaqDisplay, 'gaq-flags', { dataPassId, runNumber });
155-
},
151+
152+
Loading: () => loadingTooltip(spinnerEl),
153+
NotAsked: () => loadingTooltip(spinnerEl),
154+
155+
Failure: () =>
156+
frontLink(
157+
h('button.btn.btn-primary.w-100', [
158+
'GAQ',
159+
h(
160+
'.d-inline-block.va-t-bottom',
161+
tooltip(
162+
h('.f7', iconWarning()),
163+
'GAQ Summary failed, please click to view GAQ flags',
164+
),
165+
),
166+
]),
167+
'gaq-flags',
168+
{ dataPassId, runNumber },
169+
),
156170
});
157171
},
158-
filter: ({ filteringModel }) => numericalComparisonFilter(
159-
filteringModel.get('gaq[notBadFraction]'),
160-
{ step: 0.1, selectorPrefix: 'gaqNotBadFraction' },
161-
),
172+
173+
filter: ({ filteringModel }) =>
174+
numericalComparisonFilter(
175+
filteringModel.get('gaq[notBadFraction]'),
176+
{ step: 0.1, selectorPrefix: 'gaqNotBadFraction' },
177+
),
178+
162179
filterTooltip: 'not-bad fraction expressed as a percentage',
163180
profiles: ['runsPerDataPass'],
164181
},
165-
};
166182

167-
const dataPass = remoteDataPass.match({ Other: () => null, Success: (data) => data });
168-
const detectors = remoteDetectors.match({ Other: () => null, Success: (data) => data });
169-
const qcSummary = remoteQcSummary.match({ Other: () => null, Success: (data) => data });
183+
...(dataPass?.skimmingStage === SkimmingStage.SKIMMABLE && {
184+
readyForSkimming: {
185+
name: 'Ready for skimming',
186+
visible: true,
170187

171-
if (dataPass?.skimmingStage === SkimmingStage.SKIMMABLE) {
172-
activeColumns.readyForSkimming = {
173-
name: 'Ready for skimming',
174-
visible: true,
175-
format: (_, { runNumber }) => remoteSkimmableRuns.match({
176-
Success: (skimmableRuns) => switchInput(
177-
skimmableRuns[runNumber],
178-
() => perDataPassOverviewModel.changeReadyForSkimmingFlagForRun({
179-
runNumber,
180-
readyForSkimming: !skimmableRuns[runNumber],
188+
format: (_, { runNumber }) =>
189+
remoteSkimmableRuns.match({
190+
Success: (skimmableRuns) =>
191+
switchInput(
192+
skimmableRuns[runNumber],
193+
() =>
194+
perDataPassOverviewModel.changeReadyForSkimmingFlagForRun({
195+
runNumber,
196+
readyForSkimming: !skimmableRuns[runNumber],
197+
}),
198+
{
199+
labelAfter: skimmableRuns[runNumber]
200+
? badge('ready', { color: Color.GREEN })
201+
: badge('not ready', { color: Color.WARNING_DARKER }),
202+
},
203+
),
204+
205+
Loading: () => h('.mh3.ph4', '... ...'),
206+
Failure: () => tooltip(iconWarning(), 'Error occurred'),
207+
NotAsked: () => tooltip(iconWarning(), 'Not asked for data'),
181208
}),
182-
{
183-
labelAfter: skimmableRuns[runNumber]
184-
? badge('ready', { color: Color.GREEN })
185-
: badge('not ready', { color: Color.WARNING_DARKER }),
186-
},
187-
),
188-
Loading: () => h('.mh3.ph4', '... ...'),
189-
Failure: () => tooltip(iconWarning(), 'Error occurred'),
190-
NotAsked: () => tooltip(iconWarning(), 'Not asked for data'),
191-
}),
192-
profiles: ['runsPerDataPass'],
193-
};
194-
}
209+
210+
profiles: ['runsPerDataPass'],
211+
},
212+
}),
213+
};
195214

196215
detectors && dataPass && Object.assign(
197216
activeColumns,

0 commit comments

Comments
 (0)