diff --git a/frontend/src/__tests__/cypress/cypress/e2e/pipelines/PipelineRuns.cy.ts b/frontend/src/__tests__/cypress/cypress/e2e/pipelines/PipelineRuns.cy.ts index 4022815c81..d21f9d4da2 100644 --- a/frontend/src/__tests__/cypress/cypress/e2e/pipelines/PipelineRuns.cy.ts +++ b/frontend/src/__tests__/cypress/cypress/e2e/pipelines/PipelineRuns.cy.ts @@ -76,7 +76,7 @@ const mockActiveRuns = [ const mockExperimentIds = [...new Set(mockActiveRuns.map((mockRun) => mockRun.experiment_id))]; const mockVersionIds = [ ...new Set( - mockActiveRuns.map((mockRun) => mockRun.pipeline_version_reference.pipeline_version_id), + mockActiveRuns.map((mockRun) => mockRun.pipeline_version_reference?.pipeline_version_id), ), ]; const mockExperiments = mockExperimentIds.map((experimentId) => @@ -355,7 +355,7 @@ describe('Pipeline runs', () => { const selectedVersion = mockVersions.find( (mockVersion) => mockVersion.pipeline_version_id === - mockActiveRuns[0].pipeline_version_reference.pipeline_version_id, + mockActiveRuns[0].pipeline_version_reference?.pipeline_version_id, ); if (!selectedVersion) { return; @@ -439,7 +439,7 @@ describe('Pipeline runs', () => { activeRunsTable.mockGetActiveRuns( mockActiveRuns.filter( (mockRun) => - mockRun.pipeline_version_reference.pipeline_version_id === 'test-version-1', + mockRun.pipeline_version_reference?.pipeline_version_id === 'test-version-1', ), projectName, 1, @@ -688,7 +688,7 @@ describe('Pipeline runs', () => { archivedRunsTable.mockGetArchivedRuns( mockArchivedRuns.filter( (mockRun) => - mockRun.pipeline_version_reference.pipeline_version_id === 'test-version-1', + mockRun.pipeline_version_reference?.pipeline_version_id === 'test-version-1', ), projectName, 1, diff --git a/frontend/src/__tests__/cypress/cypress/pages/pipelines/pipelineRunsGlobal.ts b/frontend/src/__tests__/cypress/cypress/pages/pipelines/pipelineRunsGlobal.ts index 1eb390d88d..fedb59bb8f 100644 --- a/frontend/src/__tests__/cypress/cypress/pages/pipelines/pipelineRunsGlobal.ts +++ b/frontend/src/__tests__/cypress/cypress/pages/pipelines/pipelineRunsGlobal.ts @@ -25,11 +25,11 @@ class PipelineRunsGlobal { } findActiveRunsTab() { - return cy.findByRole('tab', { name: 'Active tab' }); + return cy.findByTestId('active-runs-tab'); } findArchivedRunsTab() { - return cy.findByRole('tab', { name: 'Archived tab' }); + return cy.findByTestId('archived-runs-tab'); } findProjectSelect() { diff --git a/frontend/src/concepts/pipelines/content/DeletePipelineRunsModal.tsx b/frontend/src/concepts/pipelines/content/DeletePipelineRunsModal.tsx index d69f43f1a0..959eacbf57 100644 --- a/frontend/src/concepts/pipelines/content/DeletePipelineRunsModal.tsx +++ b/frontend/src/concepts/pipelines/content/DeletePipelineRunsModal.tsx @@ -13,11 +13,11 @@ type DeletePipelineRunsModalProps = { onClose: (deleted?: boolean) => void; } & ( | { - type: PipelineRunType.Archived; + type: PipelineRunType.ARCHIVED; toDeleteResources: PipelineRunKFv2[]; } | { - type: PipelineRunType.Scheduled; + type: PipelineRunType.SCHEDULED; toDeleteResources: PipelineRunJobKFv2[]; } ); @@ -47,10 +47,10 @@ const DeletePipelineRunsModal: React.FC = ({ let callFunc: (opts: K8sAPIOptions, id: string) => Promise; switch (type) { - case PipelineRunType.Archived: + case PipelineRunType.ARCHIVED: callFunc = api.deletePipelineRun; break; - case PipelineRunType.Scheduled: + case PipelineRunType.SCHEDULED: callFunc = api.deletePipelineRunJob; break; default: @@ -65,7 +65,7 @@ const DeletePipelineRunsModal: React.FC = ({ if (resourceCount === 1) { callFunc( { signal: abortSignal }, - type === PipelineRunType.Scheduled + type === PipelineRunType.SCHEDULED ? toDeleteResources[0].recurring_run_id : toDeleteResources[0].run_id, ) @@ -81,7 +81,7 @@ const DeletePipelineRunsModal: React.FC = ({ toDeleteResources.map((_run, i) => callFunc( { signal: abortSignal }, - type === PipelineRunType.Scheduled + type === PipelineRunType.SCHEDULED ? toDeleteResources[i].recurring_run_id : toDeleteResources[i].run_id, ), diff --git a/frontend/src/concepts/pipelines/content/compareRuns/metricsSection/roc/RocCurveCompare.tsx b/frontend/src/concepts/pipelines/content/compareRuns/metricsSection/roc/RocCurveCompare.tsx index 168bb596d0..628edf6422 100644 --- a/frontend/src/concepts/pipelines/content/compareRuns/metricsSection/roc/RocCurveCompare.tsx +++ b/frontend/src/concepts/pipelines/content/compareRuns/metricsSection/roc/RocCurveCompare.tsx @@ -111,7 +111,7 @@ const RocCurveCompare: React.FC = ({ runArtifacts, isLoade - ROC Curve: multiple artifacts + ROC curve: multiple artifacts diff --git a/frontend/src/concepts/pipelines/content/createRun/CloneRunPage.tsx b/frontend/src/concepts/pipelines/content/createRun/CloneRunPage.tsx index e465da1ba3..faf0c58670 100644 --- a/frontend/src/concepts/pipelines/content/createRun/CloneRunPage.tsx +++ b/frontend/src/concepts/pipelines/content/createRun/CloneRunPage.tsx @@ -14,7 +14,7 @@ const CloneRunPage: React.FC = ({ breadcrumbPath, contextPath }) => { const [run, loaded, error] = useCloneRunData(); const { runType: runTypeString } = useGetSearchParamValues([PipelineRunSearchParam.RunType]); const runType = asEnumMember(runTypeString, PipelineRunType); - const title = `Duplicate ${runTypeCategory[runType || PipelineRunType.Active]}`; + const title = `Duplicate ${runTypeCategory[runType || PipelineRunType.ACTIVE]}`; return ( = ({ breadcrumbPath, contextPath }) => { const { runType } = useGetSearchParamValues([PipelineRunSearchParam.RunType]); - const title = `${runType === PipelineRunType.Scheduled ? 'Schedule' : 'Create'} run`; + const title = `${runType === PipelineRunType.SCHEDULED ? 'Schedule' : 'Create'} run`; return ( = ({ data, runType, onValueChange }) => { const [latestVersion] = useLatestPipelineVersion(data.pipeline?.pipeline_id); const selectedVersion = data.version || latestVersion; const paramsRef = React.useRef(data.params); - const isExperimentsAvailable = useIsAreaAvailable(SupportedArea.PIPELINE_EXPERIMENTS).status; - const isSchedule = runType === PipelineRunType.Scheduled; + const isSchedule = runType === PipelineRunType.SCHEDULED; const updateInputParams = React.useCallback( (version: PipelineVersionKFv2 | undefined) => @@ -55,19 +53,11 @@ const RunForm: React.FC = ({ data, runType, onValueChange }) => {
e.preventDefault()} maxWidth="500px"> - - {getProjectDisplayName(data.project)} - - - {isExperimentsAvailable && ( - onValueChange('experiment', experiment)} - /> - )} + onValueChange('experiment', experiment)} + /> = ({ cloneRun, contextPath, testId }) => { PipelineRunSearchParam.TriggerType, ]); const triggerType = asEnumMember(triggerTypeString, ScheduledType); - const isSchedule = runType === PipelineRunType.Scheduled; + const isSchedule = runType === PipelineRunType.SCHEDULED; const cloneRunPipelineId = cloneRun?.pipeline_version_reference?.pipeline_id || ''; const cloneRunVersionId = cloneRun?.pipeline_version_reference?.pipeline_version_id || ''; @@ -53,13 +53,11 @@ const RunPage: React.FC = ({ cloneRun, contextPath, testId }) => { const [cloneRunPipelineVersion] = usePipelineVersionById(cloneRunPipelineId, cloneRunVersionId); const [cloneRunPipeline] = usePipelineById(cloneRunPipelineId); const [runExperiment] = useExperimentById(cloneRunExperimentId || experimentId); - const isExperimentsAvailable = useIsAreaAvailable(SupportedArea.PIPELINE_EXPERIMENTS).status; const jumpToSections = Object.values(CreateRunPageSections).filter( (section) => !( - (section === CreateRunPageSections.EXPERIMENT && !isExperimentsAvailable) || (section === CreateRunPageSections.SCHEDULE_DETAILS && !isSchedule) || (section === CreateRunPageSections.RUN_DETAILS && isSchedule) ), @@ -67,7 +65,7 @@ const RunPage: React.FC = ({ cloneRun, contextPath, testId }) => { const runTypeData: RunType = React.useMemo( () => - runType === PipelineRunType.Scheduled + runType === PipelineRunType.SCHEDULED ? { type: RunTypeOption.SCHEDULED, data: { @@ -90,9 +88,9 @@ const RunPage: React.FC = ({ cloneRun, contextPath, testId }) => { React.useEffect(() => { // set the data if the url run type is different from the form data run type if ( - (runType === PipelineRunType.Scheduled && + (runType === PipelineRunType.SCHEDULED && formData.runType.type === RunTypeOption.ONE_TRIGGER) || - (runType !== PipelineRunType.Scheduled && formData.runType.type === RunTypeOption.SCHEDULED) + (runType !== PipelineRunType.SCHEDULED && formData.runType.type === RunTypeOption.SCHEDULED) ) { setFormDataValue('runType', runTypeData); } @@ -103,10 +101,21 @@ const RunPage: React.FC = ({ cloneRun, contextPath, testId }) => { [setFormDataValue], ); + const runPageSectionTitlesEdited = isExperimentsAvailable + ? runPageSectionTitles + : { + ...runPageSectionTitles, + [CreateRunPageSections.PROJECT_AND_EXPERIMENT]: 'Project', + }; + return (
- + = ({ data, contextPath }) => { }); }} > - {`${runType === PipelineRunType.Scheduled ? 'Schedule' : 'Create'} run`} + {`${runType === PipelineRunType.SCHEDULED ? 'Schedule' : 'Create'} run`} diff --git a/frontend/src/concepts/pipelines/content/createRun/const.ts b/frontend/src/concepts/pipelines/content/createRun/const.ts index 0fb21101c0..5f693fe1c6 100644 --- a/frontend/src/concepts/pipelines/content/createRun/const.ts +++ b/frontend/src/concepts/pipelines/content/createRun/const.ts @@ -19,8 +19,7 @@ export const RUN_OPTION_LABEL_SIZE = 100; export enum CreateRunPageSections { RUN_TYPE = 'run-section-run-type', - PROJECT = 'run-section-project', - EXPERIMENT = 'run-section-experiment', + PROJECT_AND_EXPERIMENT = 'run-section-project-and-experiment', RUN_DETAILS = 'run-section-details', SCHEDULE_DETAILS = 'run-section-schedule-details', PIPELINE = 'run-section-pipeline', @@ -29,8 +28,7 @@ export enum CreateRunPageSections { export const runPageSectionTitles: Record = { [CreateRunPageSections.RUN_TYPE]: 'Run type', - [CreateRunPageSections.PROJECT]: 'Project', - [CreateRunPageSections.EXPERIMENT]: 'Experiment', + [CreateRunPageSections.PROJECT_AND_EXPERIMENT]: 'Project and experiment', [CreateRunPageSections.RUN_DETAILS]: 'Run details', [CreateRunPageSections.SCHEDULE_DETAILS]: 'Schedule details', [CreateRunPageSections.PIPELINE]: 'Pipeline', diff --git a/frontend/src/concepts/pipelines/content/createRun/contentSections/ExperimentSection.tsx b/frontend/src/concepts/pipelines/content/createRun/contentSections/ExperimentSection.tsx deleted file mode 100644 index 2e7e8b4340..0000000000 --- a/frontend/src/concepts/pipelines/content/createRun/contentSections/ExperimentSection.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import * as React from 'react'; -import { FormGroup, FormSection, Stack, StackItem } from '@patternfly/react-core'; -import { PlusCircleIcon } from '@patternfly/react-icons'; -import { ExperimentKFv2 } from '~/concepts/pipelines/kfTypes'; -import { - CreateRunPageSections, - runPageSectionTitles, -} from '~/concepts/pipelines/content/createRun/const'; -import ExperimentSelector from '~/concepts/pipelines/content/experiment/ExperimentSelector'; -import CreateExperimentButton from '~/concepts/pipelines/content/experiment/CreateExperimentButton'; - -type ExperimentSectionProps = { - value: ExperimentKFv2 | null; - onChange: (experiment: ExperimentKFv2) => void; -}; - -const ExperimentSection: React.FC = ({ value, onChange }) => ( - - - - - - - - } - onCreate={(experiment) => onChange(experiment)} - > - Create new experiment - - - - - -); - -export default ExperimentSection; diff --git a/frontend/src/concepts/pipelines/content/createRun/contentSections/ParamsSection/ParamsSection.tsx b/frontend/src/concepts/pipelines/content/createRun/contentSections/ParamsSection/ParamsSection.tsx index 93b84f9919..b52a0f92f7 100644 --- a/frontend/src/concepts/pipelines/content/createRun/contentSections/ParamsSection/ParamsSection.tsx +++ b/frontend/src/concepts/pipelines/content/createRun/contentSections/ParamsSection/ParamsSection.tsx @@ -108,6 +108,7 @@ export const ParamsSection: React.FC = ({ data-testid={CreateRunPageSections.PARAMS} title={runPageSectionTitles[CreateRunPageSections.PARAMS]} > + Specify parameters required by pipelines. {renderContent()} ); diff --git a/frontend/src/concepts/pipelines/content/createRun/contentSections/ProjectAndExperimentSection.tsx b/frontend/src/concepts/pipelines/content/createRun/contentSections/ProjectAndExperimentSection.tsx new file mode 100644 index 0000000000..13ee9fa50b --- /dev/null +++ b/frontend/src/concepts/pipelines/content/createRun/contentSections/ProjectAndExperimentSection.tsx @@ -0,0 +1,60 @@ +import * as React from 'react'; +import { FormGroup, FormSection, Stack, StackItem, Text } from '@patternfly/react-core'; +import { PlusCircleIcon } from '@patternfly/react-icons'; +import { ExperimentKFv2 } from '~/concepts/pipelines/kfTypes'; +import { + CreateRunPageSections, + runPageSectionTitles, +} from '~/concepts/pipelines/content/createRun/const'; +import ExperimentSelector from '~/concepts/pipelines/content/experiment/ExperimentSelector'; +import CreateExperimentButton from '~/concepts/pipelines/content/experiment/CreateExperimentButton'; +import { SupportedArea, useIsAreaAvailable } from '~/concepts/areas'; + +type ExperimentSectionProps = { + projectName: string; + value: ExperimentKFv2 | null; + onChange: (experiment: ExperimentKFv2) => void; +}; + +const ProjectAndExperimentSection: React.FC = ({ + projectName, + value, + onChange, +}) => { + const isExperimentsAvailable = useIsAreaAvailable(SupportedArea.PIPELINE_EXPERIMENTS).status; + + return ( + + + {projectName} + + {isExperimentsAvailable && ( + + + + + + + } + onCreate={(experiment) => onChange(experiment)} + > + Create new experiment + + + + + )} + + ); +}; + +export default ProjectAndExperimentSection; diff --git a/frontend/src/concepts/pipelines/content/createRun/contentSections/RunTypeSection.tsx b/frontend/src/concepts/pipelines/content/createRun/contentSections/RunTypeSection.tsx index db301b936b..d29b4d6ad4 100644 --- a/frontend/src/concepts/pipelines/content/createRun/contentSections/RunTypeSection.tsx +++ b/frontend/src/concepts/pipelines/content/createRun/contentSections/RunTypeSection.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import { Alert, AlertActionCloseButton, Button, FormSection } from '@patternfly/react-core'; -import { useNavigate, useParams } from 'react-router-dom'; +import { Alert, AlertActionCloseButton, FormSection } from '@patternfly/react-core'; +import { useParams, Link } from 'react-router-dom'; import { PipelineRunTabTitle, PipelineRunType } from '~/pages/pipelines/global/runs'; import { @@ -16,27 +16,43 @@ interface RunTypeSectionProps { } export const RunTypeSection: React.FC = ({ runType }) => { - const navigate = useNavigate(); const { namespace, experimentId } = useParams(); const [isAlertOpen, setIsAlertOpen] = React.useState(true); const isExperimentsAvailable = useIsAreaAvailable(SupportedArea.PIPELINE_EXPERIMENTS).status; - let runTypeValue = 'Run once immediately after creation'; - let alertProps = { - title: 'Go to Schedules to create schedules that execute recurring runs', - label: `Go to ${PipelineRunTabTitle.Schedules}`, - search: '?runType=scheduled', - pathname: scheduleRunRoute(namespace, isExperimentsAvailable ? experimentId : undefined), - }; + const runTypeValue = 'Run once immediately after creation'; + let alertTitle = ( + <> + To create a schedule that executes recurring runs,{' '} + + go to the {PipelineRunTabTitle.SCHEDULES} tab + + . + + ); - if (runType === PipelineRunType.Scheduled) { - runTypeValue = 'Schedule recurring run'; - alertProps = { - title: 'Go to Active runs to create a run that executes once immediately after creation.', - label: `Go to ${PipelineRunTabTitle.Active} runs`, - search: '?runType=active', - pathname: createRunRoute(namespace, isExperimentsAvailable ? experimentId : undefined), - }; + if (runType === PipelineRunType.SCHEDULED) { + alertTitle = ( + <> + To create a non-recurring run,{' '} + + go to the {PipelineRunTabTitle.ACTIVE} tab + + . + + ); } return ( @@ -50,17 +66,7 @@ export const RunTypeSection: React.FC = ({ runType }) => { navigate({ pathname: alertProps.pathname, search: alertProps.search })} - data-testid="run-type-section-alert-link" - > - {alertProps.label} - - } + title={alertTitle} actionClose={ setIsAlertOpen(false)} />} /> )} diff --git a/frontend/src/concepts/pipelines/content/createRun/types.ts b/frontend/src/concepts/pipelines/content/createRun/types.ts index 9dd1d52ae2..d3bc727f92 100644 --- a/frontend/src/concepts/pipelines/content/createRun/types.ts +++ b/frontend/src/concepts/pipelines/content/createRun/types.ts @@ -60,7 +60,7 @@ export type SafeRunFormData = RunFormData & { }; export const runTypeCategory: Record = { - [PipelineRunType.Active]: 'run', - [PipelineRunType.Archived]: 'run', - [PipelineRunType.Scheduled]: 'schedule', + [PipelineRunType.ACTIVE]: 'run', + [PipelineRunType.ARCHIVED]: 'run', + [PipelineRunType.SCHEDULED]: 'schedule', }; diff --git a/frontend/src/concepts/pipelines/content/pipelinesDetails/pipeline/PipelineDetailsActions.tsx b/frontend/src/concepts/pipelines/content/pipelinesDetails/pipeline/PipelineDetailsActions.tsx index cd4159c6a7..d89ce847d3 100644 --- a/frontend/src/concepts/pipelines/content/pipelinesDetails/pipeline/PipelineDetailsActions.tsx +++ b/frontend/src/concepts/pipelines/content/pipelinesDetails/pipeline/PipelineDetailsActions.tsx @@ -68,7 +68,7 @@ const PipelineDetailsActions: React.FC = ({ navigate( { pathname: routePipelineRunCreateNamespace(namespace), - search: `?${PipelineRunSearchParam.RunType}=${PipelineRunType.Scheduled}`, + search: `?${PipelineRunSearchParam.RunType}=${PipelineRunType.SCHEDULED}`, }, { state: { lastPipeline: pipeline, lastVersion: pipelineVersion }, @@ -85,7 +85,7 @@ const PipelineDetailsActions: React.FC = ({ navigate( { pathname: routePipelineRunsNamespace(namespace), - search: `?${PipelineRunSearchParam.RunType}=${PipelineRunType.Active}`, + search: `?${PipelineRunSearchParam.RunType}=${PipelineRunType.ACTIVE}`, }, { state: { lastVersion: pipelineVersion }, @@ -101,7 +101,7 @@ const PipelineDetailsActions: React.FC = ({ navigate( { pathname: routePipelineRunsNamespace(namespace), - search: `?${PipelineRunSearchParam.RunType}=${PipelineRunType.Scheduled}`, + search: `?${PipelineRunSearchParam.RunType}=${PipelineRunType.SCHEDULED}`, }, { state: { lastVersion: pipelineVersion }, diff --git a/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRun/PipelineRunDetails.tsx b/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRun/PipelineRunDetails.tsx index fc6ff9ce51..e5cd977340 100644 --- a/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRun/PipelineRunDetails.tsx +++ b/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRun/PipelineRunDetails.tsx @@ -192,7 +192,7 @@ const PipelineRunDetails: PipelineCoreDetailsPageComponent = ({ breadcrumbPath, { if (deleteComplete) { diff --git a/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRunJob/PipelineRunJobDetails.tsx b/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRunJob/PipelineRunJobDetails.tsx index 81e1934919..4bd5677f00 100644 --- a/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRunJob/PipelineRunJobDetails.tsx +++ b/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRunJob/PipelineRunJobDetails.tsx @@ -158,7 +158,7 @@ const PipelineRunJobDetails: PipelineCoreDetailsPageComponent = ({ { if (deleteComplete) { diff --git a/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRunJob/PipelineRunJobDetailsActions.tsx b/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRunJob/PipelineRunJobDetailsActions.tsx index c472f90ad3..6ec286d0a2 100644 --- a/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRunJob/PipelineRunJobDetailsActions.tsx +++ b/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRunJob/PipelineRunJobDetailsActions.tsx @@ -52,7 +52,7 @@ const PipelineRunJobDetailsActions: React.FC job.recurring_run_id, isExperimentsAvailable ? experimentId : undefined, ), - search: `?${PipelineRunSearchParam.RunType}=${PipelineRunType.Scheduled}`, + search: `?${PipelineRunSearchParam.RunType}=${PipelineRunType.SCHEDULED}`, }) } > diff --git a/frontend/src/concepts/pipelines/content/tables/pipeline/PipelinesTableRow.tsx b/frontend/src/concepts/pipelines/content/tables/pipeline/PipelinesTableRow.tsx index 4fc07f0eb1..f9a8f15ff3 100644 --- a/frontend/src/concepts/pipelines/content/tables/pipeline/PipelinesTableRow.tsx +++ b/frontend/src/concepts/pipelines/content/tables/pipeline/PipelinesTableRow.tsx @@ -120,7 +120,7 @@ const PipelinesTableRow: React.FC = ({ navigate( { pathname: routePipelineRunCreateNamespacePipelinesPage(namespace), - search: `?${PipelineRunSearchParam.RunType}=${PipelineRunType.Scheduled}`, + search: `?${PipelineRunSearchParam.RunType}=${PipelineRunType.SCHEDULED}`, }, { state: { lastPipeline: pipeline }, diff --git a/frontend/src/concepts/pipelines/content/tables/pipelineRun/PipelineRunTable.tsx b/frontend/src/concepts/pipelines/content/tables/pipelineRun/PipelineRunTable.tsx index 826e58c869..d67a36101d 100644 --- a/frontend/src/concepts/pipelines/content/tables/pipelineRun/PipelineRunTable.tsx +++ b/frontend/src/concepts/pipelines/content/tables/pipelineRun/PipelineRunTable.tsx @@ -34,7 +34,7 @@ type PipelineRunTableProps = { setSortField: (field: string) => void; setSortDirection: (dir: 'asc' | 'desc') => void; setFilter: (filter?: PipelinesFilter) => void; - runType: PipelineRunType.Active | PipelineRunType.Archived; + runType: PipelineRunType.ACTIVE | PipelineRunType.ARCHIVED; }; const PipelineRunTable: React.FC = ({ @@ -75,7 +75,7 @@ const PipelineRunTable: React.FC = ({ }, []); const primaryToolbarAction = React.useMemo(() => { - if (runType === PipelineRunType.Archived) { + if (runType === PipelineRunType.ARCHIVED) { return ( diff --git a/frontend/src/pages/pipelines/global/runs/types.ts b/frontend/src/pages/pipelines/global/runs/types.ts index b85e9324d2..b0b88fdd6f 100644 --- a/frontend/src/pages/pipelines/global/runs/types.ts +++ b/frontend/src/pages/pipelines/global/runs/types.ts @@ -1,11 +1,11 @@ export enum PipelineRunType { - Active = 'active', - Archived = 'archived', - Scheduled = 'scheduled', + ACTIVE = 'active', + ARCHIVED = 'archived', + SCHEDULED = 'scheduled', } export enum PipelineRunTabTitle { - Active = 'Active', - Archived = 'Archived', - Schedules = 'Schedules', + ACTIVE = 'Runs', + ARCHIVED = 'Archive', + SCHEDULES = 'Schedules', } diff --git a/frontend/src/pages/projects/screens/spawner/imageSelector/ImageVersionSelector.tsx b/frontend/src/pages/projects/screens/spawner/imageSelector/ImageVersionSelector.tsx index 977e1d36f5..500cea7b03 100644 --- a/frontend/src/pages/projects/screens/spawner/imageSelector/ImageVersionSelector.tsx +++ b/frontend/src/pages/projects/screens/spawner/imageSelector/ImageVersionSelector.tsx @@ -104,14 +104,12 @@ const ImageVersionSelector: React.FC = ({ variant="info" isInline isPlain - title="A new image version is available. Select the latest image version to use Elyra for pipelines." + title="A new image version is available. Select the recommended version to use Elyra for pipelines." /> )} - - Hover an option to learn more information about the packages included. - + Hover over a version to view its included packages.