// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import React from "react"; import { ProjectIcon } from "components/icon/icon"; import { PROJECT_PANEL_RUN_ID } from "store/project-panel/project-panel-action-bind"; import { DataColumns } from 'components/data-table/data-table'; import { DataExplorer } from "views-components/data-explorer/data-explorer"; import { ProjectResource } from 'models/project'; import { SortDirection } from "components/data-table/data-column"; import { createTree } from "models/tree"; import { ContainerRunTime, ResourceContainerUuid, ResourceCreatedAtDate, ResourceDeleteDate, ResourceLastModifiedDate, ResourceLogUuid, ResourceModifiedByUserUuid, ResourceName, ResourceOutputUuid, ResourceOwnerWithName, ResourceParentProcess, ResourceStatus, ResourceTrashDate, ResourceType, ResourceUUID, } from "views-components/data-explorer/renderers"; import { getInitialProcessStatusFilters, getInitialProcessTypeFilters } from "store/resource-type-filters/resource-type-filters"; import { SubprocessProgressBar } from "components/subprocess-progress-bar/subprocess-progress-bar"; import { connect } from "react-redux"; import { RootState } from "store/store"; import { getProjectPanelCurrentUuid } from "store/project-panel/project-panel-action"; import { getResource } from "store/resources/resources"; export enum ProjectPanelRunColumnNames { NAME = 'Name', STATUS = 'Status', TYPE = 'Type', OWNER = 'Owner', PORTABLE_DATA_HASH = 'Portable Data Hash', FILE_SIZE = 'File Size', FILE_COUNT = 'File Count', UUID = 'UUID', CONTAINER_UUID = 'Container UUID', RUNTIME = 'Runtime', OUTPUT_UUID = 'Output UUID', LOG_UUID = 'Log UUID', PARENT_PROCESS = 'Parent Process UUID', MODIFIED_BY_USER_UUID = 'Modified by User UUID', VERSION = 'Version', CREATED_AT = 'Date Created', LAST_MODIFIED = 'Last Modified', TRASH_AT = 'Trash at', DELETE_AT = 'Delete at', } export const projectPanelRunColumns: DataColumns = [ { name: ProjectPanelRunColumnNames.NAME, selected: true, configurable: true, sort: { direction: SortDirection.NONE, field: 'name' }, filters: createTree(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.STATUS, selected: true, configurable: true, mutuallyExclusiveFilters: true, filters: getInitialProcessStatusFilters(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.TYPE, selected: true, configurable: true, filters: getInitialProcessTypeFilters(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.OWNER, selected: false, configurable: true, filters: createTree(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.UUID, selected: false, configurable: true, filters: createTree(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.CONTAINER_UUID, selected: false, configurable: true, filters: createTree(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.RUNTIME, selected: true, configurable: true, filters: createTree(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.OUTPUT_UUID, selected: false, configurable: true, filters: createTree(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.LOG_UUID, selected: false, configurable: true, filters: createTree(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.PARENT_PROCESS, selected: false, configurable: true, filters: createTree(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.MODIFIED_BY_USER_UUID, selected: false, configurable: true, filters: createTree(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.CREATED_AT, selected: false, configurable: true, sort: { direction: SortDirection.NONE, field: 'createdAt' }, filters: createTree(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.LAST_MODIFIED, selected: true, configurable: true, sort: { direction: SortDirection.DESC, field: 'modifiedAt' }, filters: createTree(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.TRASH_AT, selected: false, configurable: true, sort: { direction: SortDirection.NONE, field: 'trashAt' }, filters: createTree(), render: (uuid) => , }, { name: ProjectPanelRunColumnNames.DELETE_AT, selected: false, configurable: true, sort: { direction: SortDirection.NONE, field: 'deleteAt' }, filters: createTree(), render: (uuid) => , }, ]; const DEFAULT_VIEW_MESSAGES = ['No workflow runs found']; interface ProjectPanelRunProps { project?: ProjectResource; } const mapStateToProps = (state: RootState): ProjectPanelRunProps => { const projectUuid = getProjectPanelCurrentUuid(state) || ""; const project = getResource(projectUuid)(state.resources); return { project, }; }; export const ProjectPanelRun = connect(mapStateToProps)((props: ProjectPanelRunProps) => { const handleRowClick = () => {}; const handleRowDoubleClick = () => {}; const handleContextMenu = () => {}; return } />; });