update search keys for various lists in the mvp

This commit is contained in:
John Mitchell
2019-12-18 12:44:04 -05:00
parent 51a6ba14f1
commit 2d00623c16
10 changed files with 236 additions and 63 deletions

View File

@@ -148,6 +148,14 @@ class AddResourceRole extends React.Component {
key: 'username', key: 'username',
isDefault: true isDefault: true
}, },
{
name: i18n._(t`First name`),
key: 'first_name',
},
{
name: i18n._(t`Last name`),
key: 'last_name',
}
]; ];
const userSortColumns = [ const userSortColumns = [
@@ -155,11 +163,19 @@ class AddResourceRole extends React.Component {
name: i18n._(t`Username`), name: i18n._(t`Username`),
key: 'username', key: 'username',
}, },
{
name: i18n._(t`First name`),
key: 'first_name',
},
{
name: i18n._(t`Last name`),
key: 'last_name',
}
]; ];
const teamSearchColumns = [ const teamSearchColumns = [
{ {
name: i18n._(t`name`), name: i18n._(t`Name`),
key: 'name', key: 'name',
isDefault: true isDefault: true
}, },
@@ -167,7 +183,7 @@ class AddResourceRole extends React.Component {
const teamSortColumns = [ const teamSortColumns = [
{ {
name: i18n._(t`name`), name: i18n._(t`Name`),
key: 'name', key: 'name',
}, },
]; ];

View File

@@ -70,6 +70,23 @@ function OrganizationLookup({
header={i18n._(t`Organization`)} header={i18n._(t`Organization`)}
name="organization" name="organization"
qsConfig={QS_CONFIG} qsConfig={QS_CONFIG}
searchColumns={[
{
name: i18n._(t`Name`),
key: 'name',
isDefault: true
},
{
name: i18n._(t`Team name`),
key: 'teams__name',
}
]}
sortColumns={[
{
name: i18n._(t`Name`),
key: 'name',
},
]}
readOnly={!canDelete} readOnly={!canDelete}
selectItem={item => dispatch({ type: 'SELECT_ITEM', item })} selectItem={item => dispatch({ type: 'SELECT_ITEM', item })}
deselectItem={item => dispatch({ type: 'DESELECT_ITEM', item })} deselectItem={item => dispatch({ type: 'DESELECT_ITEM', item })}

View File

@@ -8,6 +8,7 @@ import {
string, string,
oneOfType, oneOfType,
} from 'prop-types'; } from 'prop-types';
import styled from 'styled-components';
import { withI18n } from '@lingui/react'; import { withI18n } from '@lingui/react';
import { t } from '@lingui/macro'; import { t } from '@lingui/macro';
import SelectedList from '../../SelectedList'; import SelectedList from '../../SelectedList';
@@ -16,11 +17,18 @@ import CheckboxListItem from '../../CheckboxListItem';
import DataListToolbar from '../../DataListToolbar'; import DataListToolbar from '../../DataListToolbar';
import { QSConfig, SearchColumns, SortColumns } from '@types'; import { QSConfig, SearchColumns, SortColumns } from '@types';
const ModalList = styled.div`
.pf-c-data-toolbar__content {
padding: 0 !important;
}
`;
function OptionsList({ function OptionsList({
value, value,
options, options,
optionCount, optionCount,
columns, searchColumns,
sortColumns,
multiple, multiple,
header, header,
name, name,
@@ -33,7 +41,7 @@ function OptionsList({
i18n, i18n,
}) { }) {
return ( return (
<div> <ModalList>
{value.length > 0 && ( {value.length > 0 && (
<SelectedList <SelectedList
label={i18n._(t`Selected`)} label={i18n._(t`Selected`)}
@@ -49,7 +57,8 @@ function OptionsList({
itemCount={optionCount} itemCount={optionCount}
pluralizedItemName={header} pluralizedItemName={header}
qsConfig={qsConfig} qsConfig={qsConfig}
toolbarColumns={columns} toolbarSearchColumns={searchColumns}
toolbarSortColumns={sortColumns}
hasContentLoading={isLoading} hasContentLoading={isLoading}
onRowClick={selectItem} onRowClick={selectItem}
renderItem={item => ( renderItem={item => (
@@ -67,7 +76,7 @@ function OptionsList({
renderToolbar={props => <DataListToolbar {...props} fillWidth />} renderToolbar={props => <DataListToolbar {...props} fillWidth />}
showPageSizeOptions={false} showPageSizeOptions={false}
/> />
</div> </ModalList>
); );
} }

View File

@@ -177,6 +177,33 @@ function InventoryGroupsList({ i18n, location, match }) {
itemCount={groupCount} itemCount={groupCount}
qsConfig={QS_CONFIG} qsConfig={QS_CONFIG}
onRowClick={handleSelect} onRowClick={handleSelect}
toolbarSearchColumns={[
{
name: i18n._(t`Name`),
key: 'name',
isDefault: true
},
{
name: i18n._(t`Is root group`),
key: 'parents__isnull',
isDefault: true,
isBoolean: true
},
{
name: i18n._(t`Created by (username)`),
key: 'created_by__username',
},
{
name: i18n._(t`Modified by (username)`),
key: 'modified_by__username',
},
]}
toolbarSortColumns={[
{
name: i18n._(t`Name`),
key: 'name'
}
]}
renderItem={item => ( renderItem={item => (
<InventoryGroupItem <InventoryGroupItem
key={item.id} key={item.id}

View File

@@ -131,27 +131,28 @@ function InventoryHosts({ i18n, location, match }) {
itemCount={hostCount} itemCount={hostCount}
pluralizedItemName={i18n._(t`Hosts`)} pluralizedItemName={i18n._(t`Hosts`)}
qsConfig={QS_CONFIG} qsConfig={QS_CONFIG}
onRowClick={handleSelect} onRowClick={this.handleSelect}
toolbarColumns={[ toolbarSearchColumns={[
{ {
name: i18n._(t`Name`), name: i18n._(t`Name`),
key: 'name', key: 'name',
isSortable: true, isDefault: true
isSearchable: true,
}, },
{ {
name: i18n._(t`Modified`), name: i18n._(t`Created by (username)`),
key: 'modified', key: 'created_by__username',
isSortable: true,
isNumeric: true,
}, },
{ {
name: i18n._(t`Created`), name: i18n._(t`Modified by (username)`),
key: 'created', key: 'modified_by__username',
isSortable: true,
isNumeric: true,
}, },
]} ]}
toolbarSortColumns={[
{
name: i18n._(t`Name`),
key: 'name'
}
]}
renderToolbar={props => ( renderToolbar={props => (
<DataListToolbar <DataListToolbar
{...props} {...props}

View File

@@ -28,7 +28,7 @@ const QS_CONFIG = getQSConfig('job', {
page_size: 20, page_size: 20,
order_by: '-finished', order_by: '-finished',
not__launch_type: 'sync', not__launch_type: 'sync',
}); }, ['page', 'page_size', 'id']);
class JobList extends Component { class JobList extends Component {
constructor(props) { constructor(props) {
@@ -170,15 +170,95 @@ class JobList extends Component {
isDefault: true isDefault: true
}, },
{ {
name: i18n._(t`Finished`), name: i18n._(t`ID`),
key: 'finished', key: 'id'
}, },
{
name: i18n._(t`Label name`),
key: 'label__name'
},
{
name: i18n._(t`Job type`),
key: `type`,
options: [
[
`project_update`,
i18n._(t`SCM Update`)
],
[
`inventory_update`,
i18n._(t`Inventory Sync`)
],
[
`job`,
i18n._(t`Playbook Run`)
],
[
`ad_hoc_command`,
i18n._(t`Command`)
],
[
`system_job`,
i18n._(t`Management Job`)
],
[
`workflow_job`,
i18n._(t`Workflow Job`)
]
]
},
{
name: i18n._(t`Created by (username)`),
key: 'created_by__username'
},
{
name: i18n._(t`Status`),
key: 'status',
options: [
[
`new`,
i18n._(t`New`)
],
[
`pending`,
i18n._(t`Pending`)
],
[
`waiting`,
i18n._(t`Waiting`)
],
[
`running`,
i18n._(t`Running`)
],
[
`successful`,
i18n._(t`Successful`)
],
[
`failed`,
i18n._(t`Failed`)
],
[
`error`,
i18n._(t`Error`)
],
[
`canceled`,
i18n._(t`Canceled`)
]
]
}
]} ]}
toolbarSortColumns={[ toolbarSortColumns={[
{ {
name: i18n._(t`Name`), name: i18n._(t`Name`),
key: 'name', key: 'name',
}, },
{
name: i18n._(t`ID`),
key: 'id',
},
{ {
name: i18n._(t`Finished`), name: i18n._(t`Finished`),
key: 'finished', key: 'finished',

View File

@@ -163,27 +163,48 @@ class ProjectsList extends Component {
isDefault: true isDefault: true
}, },
{ {
name: i18n._(t`Modified`), name: i18n._(t`Type`),
key: 'modified', options: [
[
``,
i18n._(t`Manual`)
],
[
`git`,
i18n._(t`Git`)
],
[
`hg`,
i18n._(t`Mercurial`)
],
[
`svn`,
i18n._(t`Subversion`)
],
[
`insights`,
i18n._(t`Red Hat Insights`)
]
]
}, },
{ {
name: i18n._(t`Created`), name: i18n._(t`SCM URL`),
key: 'created', key: 'scm_url',
},
{
name: i18n._(t`Modified by (username)`),
key: 'modified_by__username',
},
{
name: i18n._(t`Created by (username)`),
key: 'created_by__username',
}, },
]} ]}
toolbarSortColumns={[ toolbarSortColumns={[
{ {
name: i18n._(t`Name`), name: i18n._(t`Name`),
key: 'name', key: 'name',
}, }
{
name: i18n._(t`Modified`),
key: 'modified',
},
{
name: i18n._(t`Created`),
key: 'created',
},
]} ]}
renderToolbar={props => ( renderToolbar={props => (
<DataListToolbar <DataListToolbar

View File

@@ -161,12 +161,8 @@ class TeamsList extends Component {
isDefault: true isDefault: true
}, },
{ {
name: i18n._(t`Modified`), name: i18n._(t`Organization name`),
key: 'modified', key: 'organization__name',
},
{
name: i18n._(t`Created`),
key: 'created',
}, },
]} ]}
toolbarSortColumns={[ toolbarSortColumns={[
@@ -174,14 +170,6 @@ class TeamsList extends Component {
name: i18n._(t`Name`), name: i18n._(t`Name`),
key: 'name', key: 'name',
}, },
{
name: i18n._(t`Modified`),
key: 'modified',
},
{
name: i18n._(t`Created`),
key: 'created',
},
]} ]}
renderToolbar={props => ( renderToolbar={props => (
<DataListToolbar <DataListToolbar

View File

@@ -221,12 +221,30 @@ class TemplatesList extends Component {
isDefault: true isDefault: true
}, },
{ {
name: i18n._(t`Modified`), name: i18n._(t`Type`),
key: 'modified', key: 'type',
options: [
[
`job_template`,
i18n._(t`Job Template`)
],
[
`workflow_job_template`,
i18n._(t`Workflow Template`)
],
]
}, },
{ {
name: i18n._(t`Created`), name: i18n._(t`Playbook name`),
key: 'created', key: 'job_template__playbook',
},
{
name: i18n._(t`Created by (username)`),
key: 'created_by__username',
},
{
name: i18n._(t`Modified by (username)`),
key: 'modified_by__username',
}, },
]} ]}
toolbarSortColumns={[ toolbarSortColumns={[
@@ -235,12 +253,8 @@ class TemplatesList extends Component {
key: 'name', key: 'name',
}, },
{ {
name: i18n._(t`Modified`), name: i18n._(t`Type`),
key: 'modified', key: 'type',
},
{
name: i18n._(t`Created`),
key: 'created',
}, },
]} ]}
renderToolbar={props => ( renderToolbar={props => (

View File

@@ -161,13 +161,13 @@ class UsersList extends Component {
isDefault: true isDefault: true
}, },
{ {
name: i18n._(t`First Name`), name: i18n._(t`First name`),
key: 'first_name', key: 'first_name',
}, },
{ {
name: i18n._(t`Last Name`), name: i18n._(t`Last name`),
key: 'last_name', key: 'last_name',
}, }
]} ]}
toolbarSortColumns={[ toolbarSortColumns={[
{ {
@@ -176,11 +176,11 @@ class UsersList extends Component {
isDefault: true isDefault: true
}, },
{ {
name: i18n._(t`First Name`), name: i18n._(t`First name`),
key: 'first_name', key: 'first_name',
}, },
{ {
name: i18n._(t`Last Name`), name: i18n._(t`Last name`),
key: 'last_name', key: 'last_name',
}, },
]} ]}