summaryrefslogtreecommitdiff
path: root/web/src/pages
diff options
context:
space:
mode:
authorAndy Ladjadj <andy.ladjadj@adevinta.com>2020-10-05 23:29:09 +0200
committerAndy Ladjadj <andy.ladjadj@adevinta.com>2020-10-05 23:29:16 +0200
commitea911758918a312fc8363c03afbd72529dcefb9f (patch)
treeede873624084dd8d7af3295f2ca55608b38fe73e /web/src/pages
parent92a552ec67afee6adb0fcbb05cf9d8ada7395ebb (diff)
downloadzuul-ea911758918a312fc8363c03afbd72529dcefb9f.tar.gz
[web] update tenant page to PF4
Change-Id: Ia4eca66fc8fa19ca0464b79083ad0ba0cf8c3367
Diffstat (limited to 'web/src/pages')
-rw-r--r--web/src/pages/Tenants.jsx123
1 files changed, 74 insertions, 49 deletions
diff --git a/web/src/pages/Tenants.jsx b/web/src/pages/Tenants.jsx
index 3b98d03ed..1ca2c35a7 100644
--- a/web/src/pages/Tenants.jsx
+++ b/web/src/pages/Tenants.jsx
@@ -16,12 +16,26 @@ import * as React from 'react'
import { connect } from 'react-redux'
import PropTypes from 'prop-types'
import { Link } from 'react-router-dom'
-import { Table } from 'patternfly-react'
-import { PageSection, PageSectionVariants } from '@patternfly/react-core'
-
+import {
+ BuildIcon,
+ CubeIcon,
+ CubesIcon,
+ DesktopIcon,
+ FolderIcon,
+ HomeIcon,
+ RepositoryIcon,
+ TrendUpIcon
+} from '@patternfly/react-icons'
+import {
+ Table,
+ TableHeader,
+ TableBody,
+ TableVariant,
+} from '@patternfly/react-table'
import { Fetching } from '../containers/Fetching'
import { fetchTenantsIfNeeded } from '../actions/tenants'
-
+import { PageSection, PageSectionVariants } from '@patternfly/react-core'
+import { IconProperty } from '../containers/build/Misc'
class TenantsPage extends React.Component {
static propTypes = {
@@ -47,54 +61,65 @@ class TenantsPage extends React.Component {
return <Fetching />
}
- const tenants = remoteData.tenants
- const headerFormat = value => <Table.Heading>{value}</Table.Heading>
- const cellFormat = (value) => (
- <Table.Cell>{value}</Table.Cell>)
- const columns = []
- const myColumns = [
- 'name', 'status', 'projects', 'jobs', 'builds', 'buildsets',
- 'projects count', 'queue']
- myColumns.forEach(column => {
- let prop = column
- if (column === 'projects count') {
- prop = 'projects'
- } else if (column === 'projects') {
- prop = 'projects_link'
+ const tenants = remoteData.tenants.map((tenant) => {
+ return {
+ cells: [
+ {title: (<b>{tenant.name}</b>)},
+ {title: (<Link to={'/t/' + tenant.name + '/status'}>Status</Link>)},
+ {title: (<Link to={'/t/' + tenant.name + '/projects'}>Projects</Link>)},
+ {title: (<Link to={'/t/' + tenant.name + '/jobs'}>Jobs</Link>)},
+ {title: (<Link to={'/t/' + tenant.name + '/builds'}>Builds</Link>)},
+ {title: (<Link to={'/t/' + tenant.name + '/buildsets'}>Buildsets</Link>)},
+ tenant.projects,
+ tenant.queue
+ ]}})
+ const columns = [
+ {
+ title: <IconProperty icon={<HomeIcon />} value="Name"/>,
+ dataLabel: 'Name',
+ },
+ {
+ title: <IconProperty icon={<DesktopIcon />} value="Status"/>,
+ dataLabel: 'Status',
+ },
+ {
+ title: <IconProperty icon={<CubeIcon />} value="Projects"/>,
+ dataLabel: 'Projects',
+ },
+ {
+ title: <IconProperty icon={<BuildIcon />} value="Jobs"/>,
+ dataLabel: 'Jobs',
+ },
+ {
+ title: <IconProperty icon={<FolderIcon />} value="Builds"/>,
+ dataLabel: 'Builds',
+ },
+ {
+ title: <IconProperty icon={<RepositoryIcon />} value="Buildsets"/>,
+ dataLabel: 'Buildsets',
+ },
+ {
+ title: <IconProperty icon={<CubesIcon />} value="Project count"/>,
+ dataLabel: 'Project count',
+ },
+ {
+ title: <IconProperty icon={<TrendUpIcon />} value="Queue"/>,
+ dataLabel: 'Queue',
}
- columns.push({
- header: {label: column,
- formatters: [headerFormat]},
- property: prop,
- cell: {formatters: [cellFormat]}
- })
- })
- tenants.forEach(tenant => {
- tenant.status = (
- <Link to={'/t/' + tenant.name + '/status'}>Status</Link>)
- tenant.projects_link = (
- <Link to={'/t/' + tenant.name + '/projects'}>Projects</Link>)
- tenant.jobs = (
- <Link to={'/t/' + tenant.name + '/jobs'}>Jobs</Link>)
- tenant.builds = (
- <Link to={'/t/' + tenant.name + '/builds'}>Builds</Link>)
- tenant.buildsets = (
- <Link to={'/t/' + tenant.name + '/buildsets'}>Buildsets</Link>)
- })
+ ]
+
return (
<PageSection variant={PageSectionVariants.light}>
- <Table.PfProvider
- striped
- bordered
- hover
- columns={columns}
- >
- <Table.Header/>
- <Table.Body
- rows={tenants}
- rowKey="name"
- />
- </Table.PfProvider>
+ <Table
+ aria-label="Tenant Table"
+ variant={TableVariant.compact}
+ cells={columns}
+ rows={tenants}
+ className="zuul-tenant-table"
+ >
+ <TableHeader />
+ <TableBody />
+ </Table>
</PageSection>
)
}