Skip to content

Commit

Permalink
[O2B-1082] implement runs period view (#1288)
Browse files Browse the repository at this point in the history
* [O2B-1026] periods service (#1216)

* [O2B-1025] - lhc periods table extraction (#1193)

* add migration for lhc_periods

* migration and undo works

* amend migration

* amend migration when no data

* add lhc_periods seeders

* add lhcPeriod model

* update Run model

* linter

* amend references in sequelize models

* update filtering rules

* add adapters

* add adapters

* add typedefs

* docs

* rename

* update usecase

* add relation

* refactor

* refactor

* LHC to Lhc

* simplify migration

* utilize lhcPeriodAdapter toDatabase

* simplify filtering

* rename

* update instead of insert

* add lhcPeriod repo

* modify aliases

* add lhcPeriod service method and use in run update

* runAdapter lhcPeriod

* add function for run.lhcPeriod convertion

* adjust run.controller

* adjust dplProcess.controller

* handle null argument in convertRunLhcPeriod

* adjust environment.controller

* add generic stuff

* first utilisation

* handle arrays

* adjust dplProcess.controller

* refactor

* amend dplProcess.controller

* adjust environments.controller

* adjust flps.controller

* adjust lhcFill

* adjust logs.controller

* udjust run controller

* docs

* amend

* amend usecase

* amend inner adapter usage

* docs

* cleanup

* amend test

* amend test

* amend test

* add API adapters

* RunAdapter cleaned

* APIRunAdapter done

* LogAdapter

* ApiLhcFillAdapter

* docs

* docs

* cleanup

* APIHostAdapter

* add common code

* APIFlpRoleAdapter

* APIEnviornmentAdapter

* APIDplProcessAdapter

* APIDplProcessExecutionAdapter

* APIDplDetectorAdapter

* refactor

* refactor

* rename'

* rename

* rename

* init of index

* index

* fulfil dependencies

* remove

* remove imports

* remove rejected stuff

* remove unnecessary adapters

* simplify RunAdapter

* update runs.controller

* update GRPCRun.controller

* cleanup

* revoke some changes

* revoke some changes

* revoke some changes

* simplify

* revoke accidental changes

* rename:

* test refactor

* rename in docs

* refactor

* refactor

* refactor

* update docs

* rename

* refactor

* a

* merge

* refactor

* rename

* cleanup

* rename

* test, rename

* a

* refactor

* test

* add pperiods id to physics runs

* refactor

* amend misuse

* rename

* docs, revoke

* revoke:

* typedefs

* restore

* del

* refactor

* docs

* rename, refactor, test amend

* revoke unwanted cahnge

* add test

* rename

* remove unncessary properties

* docs

* refactor

* rename

* refactor

* refactor

* refactor view

* refactor

* refactor model

* refactor

* adapters refactor

* refactor

* amend

* minimfy

* adjust tests

* remove TODO

* deleted dead code

* refactor one test

* adjust test

* amend one method, add one test

* refactor

* docs

* refactor

* refactor, LhcPeriodStatistics bring LhcPeriod

* refactor

* refactor QueryBuilder#whereAssociaiton

* refactor service

* docs

* test

* revoke some changes

* remove page notion

* docs

* view refactor

* docs'

* refactor

* docs'

* docs

* revoke unfounded changes

* refactor

* remove redundant typedef

* remove defaults

* simplify view

* lint

* remove sort notion

* revoke package mocha grep

* refactor

* [O2B-1028] add periods controllers (#1224)

* [O2B-1025] - lhc periods table extraction (#1193)

* add migration for lhc_periods

* migration and undo works

* amend migration

* amend migration when no data

* add lhc_periods seeders

* add lhcPeriod model

* update Run model

* linter

* amend references in sequelize models

* update filtering rules

* add adapters

* add adapters

* add typedefs

* docs

* rename

* update usecase

* add relation

* refactor

* refactor

* LHC to Lhc

* simplify migration

* utilize lhcPeriodAdapter toDatabase

* simplify filtering

* rename

* update instead of insert

* add lhcPeriod repo

* modify aliases

* add lhcPeriod service method and use in run update

* runAdapter lhcPeriod

* add function for run.lhcPeriod convertion

* adjust run.controller

* adjust dplProcess.controller

* handle null argument in convertRunLhcPeriod

* adjust environment.controller

* add generic stuff

* first utilisation

* handle arrays

* adjust dplProcess.controller

* refactor

* amend dplProcess.controller

* adjust environments.controller

* adjust flps.controller

* adjust lhcFill

* adjust logs.controller

* udjust run controller

* docs

* amend

* amend usecase

* amend inner adapter usage

* docs

* cleanup

* amend test

* amend test

* amend test

* add API adapters

* RunAdapter cleaned

* APIRunAdapter done

* LogAdapter

* ApiLhcFillAdapter

* docs

* docs

* cleanup

* APIHostAdapter

* add common code

* APIFlpRoleAdapter

* APIEnviornmentAdapter

* APIDplProcessAdapter

* APIDplProcessExecutionAdapter

* APIDplDetectorAdapter

* refactor

* refactor

* rename'

* rename

* rename

* init of index

* index

* fulfil dependencies

* remove

* remove imports

* remove rejected stuff

* remove unnecessary adapters

* simplify RunAdapter

* update runs.controller

* update GRPCRun.controller

* cleanup

* revoke some changes

* revoke some changes

* revoke some changes

* simplify

* revoke accidental changes

* rename:

* test refactor

* rename in docs

* refactor

* refactor

* refactor

* update docs

* rename

* refactor

* a

* merge

* refactor

* rename

* cleanup

* rename

* test, rename

* a

* refactor

* test

* add pperiods id to physics runs

* refactor

* amend misuse

* rename

* docs, revoke

* revoke:

* typedefs

* restore

* del

* refactor

* docs

* rename, refactor, test amend

* revoke unwanted cahnge

* init lhcPeriodsStatistics controller

* refactor DtoFactory

* refactor periods controller

* add lhcPeriods router

* expose new router, amend bug

* docs

* docs

* amend Service

* add test

* amend service

* add tests

* rename

* remove unncessary properties

* docs

* refactor

* rename

* refactor

* refactor

* refactor view

* refactor

* refactor model

* refactor

* adapters refactor

* refactor

* amend

* minimfy

* adjust tests

* remove TODO

* deleted dead code

* refactor one test

* adjust test

* add counted data view

* refactor

* docs refactor

* refactor

* working enpoints

* tests

* extend DtoFactory

* refactor, docs

* amend test

* amend service

* add tests

* amend test

* amend test

* amend one method, add one test

* refactor

* docs

* refactor

* refactor, LhcPeriodStatistics bring LhcPeriod

* refactor

* refactor QueryBuilder#whereAssociaiton

* refactor service

* docs

* test

* revoke some changes

* remove page notion

* docs

* amend test

* amend controller pagination

* [O2B-1040] add RCT periods page (#1233)

* rename

* cleanup

* rename

* test, rename

* a

* refactor

* test

* add pperiods id to physics runs

* refactor

* amend misuse

* rename

* docs, revoke

* revoke:

* typedefs

* restore

* del

* refactor

* docs

* rename, refactor, test amend

* revoke unwanted cahnge

* init lhcPeriodsStatistics controller

* refactor DtoFactory

* refactor periods controller

* add lhcPeriods router

* expose new router, amend bug

* docs

* docs

* amend Service

* add test

* amend service

* add tests

* rename

* remove unncessary properties

* docs

* refactor

* rename

* refactor

* refactor

* refactor view

* refactor

* refactor model

* refactor

* adapters refactor

* refactor

* amend

* minimfy

* adjust tests

* remove TODO

* deleted dead code

* refactor one test

* adjust test

* add counted data view

* refactor

* docs refactor

* refactor

* working enpoints

* tests

* extend DtoFactory

* refactor, docs

* amend test

* amend service

* add tests

* amend test

* amend test

* amend one method, add one test

* init periods view

* refactor

* PeriodsModel

* docs

* refactor

* refactor, LhcPeriodStatistics bring LhcPeriod

* refactor

* refactor QueryBuilder#whereAssociaiton

* refactor service

* docs

* test

* revoke some changes

* remove page notion

* docs

* amend test

* amend controller pagination

* expose LhCPeriodModel

* view refactor

* docs'

* refactor

* docs'

* docs

* revoke unfounded changes

* refactor

* restrain to using only arrays

* remove redundant typedef

* remove defaults

* simplify view

* lint

* restrain lhcPeriod controller

* revoke unfounded change

* linter'

* add sorting by avgEnergy

* active columns

* cleanup, extract period year

* refactor

* periods page

* working page

* cleanup

* amend countedDataFormat

* test

* cleanup

* remove sort notion

* add sort notion to controller

* display period year

* revoke package mocha grep

* simplify extract Period Year

* organize rct related tab

* better styling

* remove not strictly neccessary changes

* cleanup

* cleanup

* cleanup

* cleanup

* test init

* refactor

* cleanup

* refactor

* docs

* docs

* typo

* todo

* amend infinit scroll

* filtering init

* docs

* a

* add definition

* names filter

* extract Filterg model

* utilise debounce in filtering updates

* filters reset

* cleanup

* sort dto docs

* rename

* refacctor

* rename

* rename

* rename test suite

* rename

* refactor

* refactor

* docs

* rename

* rename

* docs

* refactor

* test

* tsT

* A

* clenaup

* cleanup

* apply after  api changes

* docs

* docs update

* ternary operator

* ternary operator

* templates in docs

* rename

* docs

* pageCount

* ...delete

* sort

* order

* a

* filtering model

* a

* add checking

* throw out stuff

* restore navBar

* add LhcPeriod overview test

* test

* cleanup

* cleanup

* cleanup

* no model

* cleanup

* add main LhcPerio model

* cleanup

* put expose page

* refactor'

* refactor'

* refactor

* refactor
|

* refactor

* lint

* cleanup

* test

* cleanup

* cleanup

* cleanup

* cleanup

* refactor

* Rename

* docs

* rename

* refactor

* docs

* handle no avgEnergy

* refactor docs

* use existing notData indicator

* file rename

* amend test

* [O2B-1048] add year column (#1241)

* add year on backend

* add year to display

* cleanup lhc-period-statistics view

* add year format

* add sorting and filtering by year

* cleanup

* add test for years

* add api test related to year attribute

* cleanup

* amend tests'

* refactor

* typo

* [O2B-1039] center of mass energy on periods page (#1235)

* refactor

* refactor, LhcPeriodStatistics bring LhcPeriod

* refactor

* refactor QueryBuilder#whereAssociaiton

* refactor service

* docs

* test

* revoke some changes

* remove page notion

* docs

* amend test

* amend controller pagination

* expose LhCPeriodModel

* view refactor

* docs'

* refactor

* docs'

* docs

* revoke unfounded changes

* refactor

* restrain to using only arrays

* remove redundant typedef

* remove defaults

* simplify view

* lint

* restrain lhcPeriod controller

* revoke unfounded change

* linter'

* add sorting by avgEnergy

* active columns

* cleanup, extract period year

* refactor

* periods page

* working page

* cleanup

* amend countedDataFormat

* test

* cleanup

* remove sort notion

* add sort notion to controller

* display period year

* revoke package mocha grep

* simplify extract Period Year

* organize rct related tab

* better styling

* remove not strictly neccessary changes

* cleanup

* cleanup

* cleanup

* cleanup

* test init

* refactor

* cleanup

* refactor

* docs

* docs

* typo

* todo

* amend infinit scroll

* filtering init

* docs

* a

* add definition

* names filter

* extract Filterg model

* utilise debounce in filtering updates

* filters reset

* cleanup

* sort dto docs

* rename

* refacctor

* rename

* rename

* rename test suite

* rename

* refactor

* refactor

* docs

* rename

* rename

* docs

* refactor

* test

* tsT

* A

* clenaup

* cleanup

* apply after  api changes

* docs

* docs update

* ternary operator

* ternary operator

* templates in docs

* rename

* docs

* pageCount

* ...delete

* sort

* order

* a

* filtering model

* a

* add checking

* add model

* add migration

* data inserttin

* throw out stuff

* restore navBar

* add LhcPeriod overview test

* test

* cleanup

* cleanup

* cleanup

* no model

* cleanup

* add main LhcPerio model

* cleanup

* put expose page

* refactor'

* refactor'

* refactor

* refactor
|

* refactor

* lint

* cleanup

* test

* cleanup

* cleanup

* cleanup

* cleanup

* refactor

* refactor calculation

* Rename

* docs

* rename

* refactor

* comment

* rename avgEnergy:

* docs

* add getter

* typdefs

* add constant for cosmic

* more data in seeders

* amend

* tesT

* refactor

* handle no avgEnergy

* add closest defined energies

* add icon

* add baloon for distnct energies

* aemdn distinct energies parsing

* distinct Center Of Mass Energies to Distinct Beam Energies

* docs

* refactor

* remove redundant model

* cleanup

* cealnup

* cleanup

* cleanup

* cleanup typedef:'

* add test for distinct energies

* refacotr

* refactor

* refactor

* refactor

* refactor

* comment

* comment

* refactor

* refactor test

* refactor

* remove artifcat

* refactor

* constant to CAPITAL_SNAKE

* bulk insert

* remove prefixing

* cleanup

* remove unnecessary header adaptation

* drop column from view

* extend Querybuilder

* refactor Service

* cleanup model; refactor adapters

* amend test'

* docs

* cleanup typdef

* refactor center of mass energy icon

* refactor display distinct energies

* refactor adapter

* docs refactor

* amend distinct energies query

* add dis en sorting

* amend test

* refactor

* refactor

* move to repository

* revoke

* cleanup

* move distinctEnergies query to service

* docs

* docs

* refactor

* useSet

* docs

* test refactor

* make test more strict

* remove ?.

* [O2B-1045] nav bar adjustment (#1240)

* LHC dropdown

* typo

* change tab links id in order to amend tests

* toggleDropdown as one function

* extract navbar dropdown domponent
'
g

* refactor

* refactor

* docs

* refactor

* refactor

* refactor

* refactor

* amend test

* simplification

* restore clearDropdown

* refactor

* refactor

* rename

* fix

* utilise isElected in tabs

* refactor

* refactor

* rename

* emnu times accept 'selected' styling

* docs

* refactor

* fix test

* add filtering mode;l

* add methods

* use RegExp'es

* add methods for showing filters panel

* filter displayable

* utilize visualChange

* amend regex

* [O2B-1063] Use popover for filter panel

* adjust filter

* send filters

* Fix linter

* more complex update

* refactor

* refactor

* amend regex

* add filter test

* refactor

* make case insensitive

* add placeholder

* refactor placeholder

* update docs

* refactor

* update docs

* docs error

* docs error

* get only good runs (#1253)

* [O2B-1049] add beam type column (#1248)

* add beam type on backend

* add beamType selectyion

* add beamType

* add filtering

* add sorting on backend

* refactor

* format beamType

* add tests

* add api test

* add overview test

* use switch case

* refactored

* rename

* add docs

* typo

* refactor

* amend api

* amend runs selection - only good runs should be used

* docs update

* extend FilterModel

* docs

* docs refactor

* rename

* docs refactor

* docs refactor

* regex refacto

* refactor

* simplify conditions

* refactor

* Fix tests

* simplification

* amend bug with editor closing (#1259)

* amend bug with editor closing

* amend package json

* cleanup

* amend run detector quality change reason

* amend

* remove legacy stuff

* linter

* remove legacy stuff

* add missing notify

* refactor

* refactor

* refacotr

* remove

* refacotr

* Clarify code

* Rename preconfiguration

* Add comment to explain why using Math.floor

* refactor

* remove id

* remove id

* Fix missing notify

* add filter for years

* rename

* rename:

* amend/add test

* Try to fix tests

* ad filtering by beam Type on frontend

* add test

* rename

* add test

* Fix linter

* Try to fix tests

* init RunsPerPeriodView

* cleeanup

* init RunPerPeriod model

* refactor

* linter

* fetch only releveant runs per period

* amend

* amend bug

* rename

* display qualities

* add pagination and qc css

* active columns tyling

* remove styling rubbishes

* linter

* refactor

* fix

* wrapped when overflow

* amend test

* docs updat

* hardcode delimiter

* phrase to expression

* refactor

* [O2B-1052] add filtering by name to lhc periods page (#1252)

* add filtering mode;l

* add methods

* use RegExp'es

* add methods for showing filters panel

* filter displayable

* utilize visualChange

* amend regex

* adjust filter

* send filters

* more complex update

* refactor

* refactor

* amend regex

* add filter test

* refactor

* make case insensitive

* add placeholder

* refactor placeholder

* update docs

* refactor

* update docs

* docs error

* docs error

* docs update

* extend FilterModel

* docs

* docs refactor

* rename

* docs refactor

* docs refactor

* regex refacto

* refactor

* simplify conditions

* refactor

* simplification

* remove legacy stuff

* linter

* remove legacy stuff

* refactor

* remove id

* remove id

* docs updat

* hardcode delimiter

* phrase to expression

* refactor

* [O2B-1051] add sorting to lhc periods page (#1250)

* add sorting switches

* use sorting params when requesting

* add tests

* rename

* typo

* refactor

* make sortable by beam typew

* refactor

* rename

* cleanup

* cleanup

* cleanup

* debounce loading

* [O2B-1053] filtering by year on lhc periods page (#1265)

* add filtering mode;l

* add methods

* use RegExp'es

* add methods for showing filters panel

* filter displayable

* utilize visualChange

* amend regex

* adjust filter

* send filters

* more complex update

* refactor

* refactor

* amend regex

* add filter test

* refactor

* make case insensitive

* add placeholder

* refactor placeholder

* update docs

* refactor

* update docs

* docs error

* docs error

* docs update

* extend FilterModel

* docs

* docs refactor

* rename

* docs refactor

* docs refactor

* regex refacto

* refactor

* simplify conditions

* refactor

* simplification

* remove legacy stuff

* linter

* remove legacy stuff

* add missing notify

* refactor

* refactor

* refacotr

* remove

* refacotr

* refactor

* remove id

* remove id

* add filter for years

* rename

* rename:

* amend/add test

* rename

* docs updat

* hardcode delimiter

* phrase to expression

* refactor

* cleanup

* refactor

* fix

* [O2B-1069] add filter by beam type on lhc periods page (#1266)

* add filtering mode;l

* add methods

* use RegExp'es

* add methods for showing filters panel

* filter displayable

* utilize visualChange

* amend regex

* adjust filter

* send filters

* more complex update

* refactor

* refactor

* amend regex

* add filter test

* refactor

* make case insensitive

* add placeholder

* refactor placeholder

* update docs

* refactor

* update docs

* docs error

* docs error

* docs update

* extend FilterModel

* docs

* docs refactor

* rename

* docs refactor

* docs refactor

* regex refacto

* refactor

* simplify conditions

* refactor

* simplification

* remove legacy stuff

* linter

* remove legacy stuff

* add missing notify

* refactor

* refactor

* refacotr

* remove

* refacotr

* refactor

* remove id

* remove id

* add filter for years

* rename

* rename:

* amend/add test

* ad filtering by beam Type on frontend

* add test

* rename

* add test

* docs updat

* hardcode delimiter

* phrase to expression

* refactor

* cleanup

* cleanup

* debounce loading

* refactor

* refacotr

* amend logical condition

* refactor

* default page on filter

* rename

* set silently

* fix

* refactor

* cleanup

* docs

* refactor

* cleanup

* cleanup

* cleanup

* add validation

* docs

* cleanup

* refactor

* refactor

* refactor

* add rows number estimation

* update row high

* utilise pagination

* docs

* docs

* refactor

* cleanup

* amend

* revoke outrunning changes

* refactor

* amend

* model inside RunsModel

* cleanup

* docs

* amend

* refactor Detectors Provider

* revoke

* refactor

* handle missing quality

* handle null polarity

* refactor

* split functions

* docs

* rename

* rename:

* simplify code

* rename

* fix test

* fix test

* fix buttons position

* revoke

* fix test

* docs

* simplify detectorsProvider

* docs'

* add sort

* test

* expose test

* test

* rename

* test

* cleanup

* use inheritance

* add title

* refactor/change styling method

* change page name

* rename instance name

* rename

* naming

* rename

* refactor

* refacotR

* cleanup

* extend capabilities of table constructor

* refactor

* docs

* refactor

* refactor

* change notified

* rename

* amend

* amend test

* change fillNumber column size

* rename

* remove throw

* refactor

* amend

* cleanup

* revoke

* revoke

* revoke detectorProvider changes

* handle detector fetch error

* use bg-danger

* code style

* refactor

* rename

---------

Co-authored-by: Martin Boulais <31805063+martinboulais@users.noreply.github.com>
  • Loading branch information
xsalonx and martinboulais committed Dec 15, 2023
1 parent b140a49 commit 8600354
Show file tree
Hide file tree
Showing 17 changed files with 602 additions and 61 deletions.
3 changes: 3 additions & 0 deletions lib/public/Model.js
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,9 @@ export default class Model extends Observable {
case 'run-overview':
this.runs.loadOverview();
break;
case 'runs-per-lhc-period':
this.runs.loadPerLhcPeriodOverview(this.router.params);
break;
case 'run-detail':
this.runs.loadDetails(this.router.params);
break;
Expand Down
2 changes: 2 additions & 0 deletions lib/public/view.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import { TagDetailsPage } from './views/Tags/Details/TagDetailsPage.js';
import { EosReportCreationPage } from './views/EosReport/create/EosReportCreationPage.js';
import { StatisticsPage } from './views/Statistics/StatisticsPage.js';
import { LhcPeriodsOverviewPage } from './views/lhcPeriods/Overview/LhcPeriodsOverviewPage.js';
import { RunsPerLhcPeriodOverviewPage } from './views/Runs/RunPerPeriod/RunsPerLhcPeriodOverviewPage.js';
import { HomePage } from './views/Home/Overview/HomePage.js';

/**
Expand All @@ -59,6 +60,7 @@ export default (model) => {

'run-overview': RunsOverviewPage,
'run-detail': RunDetailsPage,
'runs-per-lhc-period': RunsPerLhcPeriodOverviewPage,

statistics: StatisticsPage,

Expand Down
27 changes: 27 additions & 0 deletions lib/public/views/Runs/ActiveColumns/runDetectorsActiveColumns.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/**
* @license
* Copyright CERN and copyright holders of ALICE O2. This software is
* distributed under the terms of the GNU General Public License v3 (GPL
* Version 3), copied verbatim in the file "COPYING".
*
* See http://alice-o2.web.cern.ch/license for full licensing information.
*
* In applying this license CERN does not waive the privileges and immunities
* granted to it by virtue of its status as an Intergovernmental Organization
* or submit itself to any jurisdiction.
*/
import { formatDetectorQuality } from '../format/formatDetectorQuality.js';

/**
* Factory for detectors related active columns configuration
* @param {Detector[]} detectors detectors list
* @return {object} active columns configuration
*/
export const createRunDetectorsActiveColumns = (detectors) => Object.fromEntries(detectors?.map(({ name: detectorName }) => [
detectorName, {
name: detectorName.toUpperCase(),
visible: true,
format: (_, run) => formatDetectorQuality(run.detectorsQualities.find(({ name }) => name === detectorName)?.quality),
profiles: ['runsPerLhcPeriod'],
},
]) ?? []);
113 changes: 77 additions & 36 deletions lib/public/views/Runs/ActiveColumns/runsActiveColumns.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ import { RunDefinition } from '../../../domain/enums/RunDefinition.js';
import { coloredCalibrationStatusComponent } from '../coloredCalibrationStatusComponent.js';
import { infoLoggerButtonGroup } from '../../../components/common/selection/infoLoggerButtonGroup/infoLoggerButtonGroup.js';
import { BeamModes } from '../../../domain/enums/BeamModes.js';
import { formatAliceCurrent } from '../format/formatAliceCurrent.js';

/**
* List of active columns for a generic runs table
Expand All @@ -60,24 +61,27 @@ export const runsActiveColumns = {
runNumber: {
name: 'Run',
visible: true,
size: 'w-10 f6 w-wrapped',
classes: 'w-10 f6 w-wrapped',
filter: runNumberFilter,
format: (_, run) => infoLoggerButtonGroup(run),
profiles: {
lhcFill: true,
environment: true,
runsPerLhcPeriod: {
classes: 'w-7 f6 w-wrapped',
},
home: {
name: 'Number',
format: null,
size: 'w-20',
classes: 'w-20',
},
},
},
detectors: {
name: 'Detectors',
visible: true,
profiles: [profiles.none, 'lhcFill'],
size: 'w-15 f6',
classes: 'w-15 f6',
format: (detectors, run) => {
if (detectors && detectors.length > 0) {
return [h('.badge.bg-gray-light.mh2.nDetectors-badge', run.nDetectors), `${detectors.toString()}`];
Expand All @@ -91,7 +95,7 @@ export const runsActiveColumns = {
name: 'Tags',
visible: true,
profiles: [profiles.none, 'lhcFill', 'environment'],
size: 'w-5 f6',
classes: 'w-5 f6',
format: (tags) => tags && tags.length > 0 ? tags.map(({ text }) => text).join(', ') : '-',
exportFormat: (tags) => tags && tags.length > 0 ? tags.map(({ text }) => text).join(', ') : '-',
filter: (runModel) => tagFilter(runModel.listingTagsFilterModel),
Expand All @@ -100,8 +104,15 @@ export const runsActiveColumns = {
fillNumber: {
name: 'Fill No.',
visible: true,
profiles: [profiles.none, 'lhcFill', 'environment'],
size: 'w-5 f6',
profiles: {
[profiles.none]: true,
lhcFill: true,
environment: true,
runsPerLhcPeriod: {
classes: 'w-2 f6',
},
},
classes: 'w-5 f6',
format: (fill, run) => fill !== null && run.lhcBeamMode === BeamModes.STABLE_BEAMS
? frontLink(fill, 'lhc-fill-details', { fillNumber: fill }) : '-',
filter: fillNumbersFilter,
Expand All @@ -110,66 +121,83 @@ export const runsActiveColumns = {
name: 'LHC Period',
visible: true,
profiles: [profiles.none, 'lhcFill', 'environment'],
size: 'w-5 f6',
classes: 'w-5 f6',
format: (lhcPeriod, run) => lhcPeriod && run.lhcBeamMode === BeamModes.STABLE_BEAMS ? lhcPeriod : '-',
filter: lhcPeriodsFilter,
},
timeO2Start: {
name: 'Start',
visible: true,
size: 'w-7 f6',
classes: 'w-7 f6',
noEllipsis: true,
format: (timestamp, run) => formatRunStart(run, false),
format: (_, run) => formatRunStart(run, false),
exportFormat: (timestamp) => formatTimestamp(timestamp),
filter: o2startFilter,
profiles: {
lhcFill: true,
environment: true,
home: {
name: 'Start',
size: 'w-30',
classes: 'w-30',
format: (timestamp, run) => formatRunStart(run, true),
},
runsPerLhcPeriod: {
classes: 'f6 w-wrapped',
},
},
},
timeO2End: {
name: 'Stop',
visible: true,
size: 'w-7 f6',
classes: 'w-7 f6',
noEllipsis: true,
format: (timestamp, run) => formatRunEnd(run, false),
format: (_, run) => formatRunEnd(run, false),
exportFormat: (timestamp) => formatTimestamp(timestamp),
filter: o2endFilter,
profiles: {
lhcFill: true,
environment: true,
home: {
name: 'Stop',
size: 'w-30',
format: (timestamp, run) => formatRunEnd(run, true),

classes: 'w-30',
format: (_, run) => formatRunEnd(run, true),
},
runsPerLhcPeriod: {
classes: 'f6 w-wrapped',
},
},
},
timeTrgStart: {
name: 'TRG Start',
visible: false,
size: 'w-10 f6 w-wrapped',
classes: 'w-10 f6 w-wrapped',
format: (timestamp) => formatTimestamp(timestamp, false),
exportFormat: (timestamp) => formatTimestamp(timestamp),
profiles: {
runsPerLhcPeriod: {
visible: true,
classes: 'f6 w-wrapped',
},
},
},
timeTrgEnd: {
name: 'TRG Stop',
visible: false,
size: 'w-10 f6 w-wrapped',
classes: 'w-10 f6 w-wrapped',
format: (timestamp) => formatTimestamp(timestamp, false),
exportFormat: (timestamp) => formatTimestamp(timestamp),
profiles: {
runsPerLhcPeriod: {
visible: true,
classes: 'f6 w-wrapped',
},
},
},
timeSincePreviousRun: {
name: 'Since prev.',
visible: true,
profiles: ['lhcFill'],
size: 'f6 w-10',
classes: 'f6 w-10',
format: (duration) => duration !== null
? formatDuration(duration)
: h('strong.danger', 'UNKNOWN'),
Expand All @@ -178,7 +206,7 @@ export const runsActiveColumns = {
name: 'Definition',
visible: true,
profiles: [profiles.none, 'lhcFill', 'environment'],
size: 'w-10 f6 w-wrapped',
classes: 'w-10 f6 w-wrapped',
format: (definition, run) => {
const lines = [h('', definition || '-')];
if (definition === RunDefinition.Calibration) {
Expand All @@ -191,7 +219,7 @@ export const runsActiveColumns = {
runDuration: {
name: 'Duration',
visible: true,
size: 'w-7 f6',
classes: 'w-7 f6',
profiles: [profiles.none, 'lhcFill', 'environment'],
noEllipsis: true,
format: (_duration, run) => displayRunDuration(run),
Expand All @@ -202,35 +230,35 @@ export const runsActiveColumns = {
name: 'Environment ID',
visible: true,
profiles: [profiles.none, 'lhcFill', 'environment'],
size: 'w-10 f6 w-wrapped',
classes: 'w-10 f6 w-wrapped',
filter: environmentIdFilter,
format: (id) => id ? frontLink(id, 'env-details', { environmentId: id }) : '-',
},
runType: {
name: 'Run Type',
visible: false,
size: 'cell-l f6 w-wrapped',
classes: 'cell-l f6 w-wrapped',
format: formatRunType,
filter: (runModel) => selectionDropdown(runModel.listingRunTypesFilterModel, { selectorPrefix: 'run-types' }),
},
runQuality: {
name: 'Quality',
visible: true,
profiles: [profiles.none, 'lhcFill', 'environment'],
size: 'w-5 f6 w-wrapped',
classes: 'w-5 f6 w-wrapped',
filter: runQualityFilter,
},
nDetectors: {
name: 'DETs #',
visible: false,
size: 'w-2 f6 w-wrapped',
classes: 'w-2 f6 w-wrapped',
filter: nDetectorsFilter,
},
nEpns: {
name: 'EPNs #',
visible: true,
profiles: [profiles.none, 'lhcFill', 'environment'],
size: 'w-2 f6 w-wrapped',
classes: 'w-2 f6 w-wrapped',
// eslint-disable-next-line no-extra-parens
format: (nEpns, run) => run.epn ? (typeof nEpns === 'number' ? nEpns : 'ON') : 'OFF',
filter: nEpnsFilter,
Expand All @@ -239,24 +267,24 @@ export const runsActiveColumns = {
name: 'FLPs #',
visible: true,
profiles: [profiles.none, 'lhcFill', 'environment'],
size: 'w-2 f6 w-wrapped',
classes: 'w-2 f6 w-wrapped',
filter: nFlpsFilter,
},
nSubtimeframes: {
name: '# of STFs',
visible: false,
size: 'cell-s f6 w-wrapped',
classes: 'cell-s f6 w-wrapped',
},
bytesReadOut: {
name: 'Readout Data',
visible: false,
size: 'cell-m f6 w-wrapped',
classes: 'cell-m f6 w-wrapped',
},
dd_flp: {
name: 'Data Distribution (FLP)',
visible: false,
profiles: [profiles.none, 'lhcFill', 'environment'],
size: 'w-2 f6 w-wrapped',
classes: 'w-2 f6 w-wrapped',
format: (boolean) => boolean ? 'On' : 'Off',
exportFormat: (boolean) => boolean ? 'On' : 'Off',
filter: ddflpFilter,
Expand All @@ -265,7 +293,7 @@ export const runsActiveColumns = {
name: 'DCS',
visible: true,
profiles: [profiles.none, 'lhcFill', 'environment'],
size: 'w-2 f6 w-wrapped',
classes: 'w-2 f6 w-wrapped',
format: (boolean) => boolean ? 'On' : 'Off',
exportFormat: (boolean) => boolean ? 'On' : 'Off',
filter: dcsFilter,
Expand All @@ -274,36 +302,36 @@ export const runsActiveColumns = {
name: 'TRG',
visible: true,
profiles: [profiles.none, 'lhcFill', 'environment'],
size: 'w-5 f6 w-wrapped',
classes: 'w-5 f6 w-wrapped',
filter: triggerValueFilter,
format: (trgValue) => trgValue ? trgValue : '-',
},
epn: {
name: 'EPN',
visible: false,
profiles: [profiles.none, 'lhcFill', 'environment'],
size: 'w-2 f6 w-wrapped',
classes: 'w-2 f6 w-wrapped',
format: (boolean) => boolean ? 'On' : 'Off',
exportFormat: (boolean) => boolean ? 'On' : 'Off',
filter: epnFilter,
},
epnTopology: {
name: 'EPN Topology',
visible: false,
size: 'w-10 f6',
classes: 'w-10 f6',
balloon: true,
},
odcTopologyFullName: {
name: 'Topology Full',
size: 'w-15 f6',
classes: 'w-15 f6',
visible: false,
profiles: [profiles.none, 'lhcFill', 'environment'],
filter: odcTopologyFullName,
balloon: true,
},
eorReasons: {
name: 'EOR Reason',
size: 'w-15 f6',
classes: 'w-15 f6',
visible: true,
profiles: [profiles.none, 'lhcFill', 'environment'],
format: (eorReasons) => displayRunEorReasonsOverview(eorReasons),
Expand Down Expand Up @@ -360,7 +388,7 @@ export const runsActiveColumns = {
name: '',
visible: true,
profiles: 'home',
size: 'w-15',
classes: 'w-15',
format: (_, run) => h(
'.flex-row',
{ style: 'justify-content: end' },
Expand All @@ -372,4 +400,17 @@ export const runsActiveColumns = {
),
),
},
aliceL3Current: {
name: 'L3 [A]',
visible: true,
format: (_, run) => formatAliceCurrent(run.aliceL3Polarity, run.aliceL3Current),
profiles: ['runsPerLhcPeriod'],
},

dipoleCurrent: {
name: 'Dipole [A]',
visible: true,
format: (_, run) => formatAliceCurrent(run.aliceDipolePolarity, run.aliceDipoleCurrent),
profiles: ['runsPerLhcPeriod'],
},
};
Loading

0 comments on commit 8600354

Please sign in to comment.