Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PortaFly] Removing unused features from Account > Index #1977

Merged
merged 6 commits into from Jun 25, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
41 changes: 2 additions & 39 deletions portafly/src/components/pages/accounts/AccountsTable.tsx
Expand Up @@ -3,37 +3,28 @@ import {
Table,
TableHeader,
TableBody,
OnSelect,
OnSort
} from '@patternfly/react-table'
import {
PageEmptyState,
useDataListFilters,
useDataListPagination,
useDataListTable,
useDataListBulkActions,
Toolbar,
SearchWidget,
PaginationWidget,
BulkSelectorWidget,
SendEmailModal,
ChangeStateModal,
BulkActionsWidget,
filterRows
} from 'components'
import { useTranslation } from 'i18n/useTranslation'
import { ToolbarContent, ToolbarItem } from '@patternfly/react-core'
import { DataListRow } from 'types'

const AccountsTable: React.FunctionComponent = () => {
const { t } = useTranslation('accountsIndex')
const {
columns,
rows,
sortBy,
setSortBy,
selectedRows,
selectOne
setSortBy
} = useDataListTable()

if (rows.length === 0) {
Expand All @@ -42,7 +33,6 @@ const AccountsTable: React.FunctionComponent = () => {

const { startIdx, endIdx, resetPagination } = useDataListPagination()
const { filters } = useDataListFilters()
const { modal } = useDataListBulkActions()

const options = [
{ name: 'approved', humanName: t('actions_filter_options.by_state_options.approved') },
Expand All @@ -59,34 +49,19 @@ const AccountsTable: React.FunctionComponent = () => {

useEffect(() => resetPagination, [filters])

const actions = {
sendEmail: t('shared:bulk_actions.send_email'),
changeState: t('shared:bulk_actions.change_state')
}

const filteredRows = filterRows(rows, filters, columns)

const visibleRows = filteredRows.slice(startIdx, endIdx)

const onSort: OnSort = (_event, index, direction) => {
setSortBy(index, direction, true)
}

const onSelectOne: OnSelect = (_ev, selected, _rowIndex, rowData) => {
selectOne(rowData.id, selected)
setSortBy(index, direction)
}

const pagination = <PaginationWidget itemCount={filteredRows.length} />

const Header = (
<Toolbar>
<ToolbarContent>
<ToolbarItem>
<BulkSelectorWidget />
</ToolbarItem>
<ToolbarItem>
<BulkActionsWidget actions={actions} />
</ToolbarItem>
<ToolbarItem>
<SearchWidget categories={categories} />
</ToolbarItem>
Expand All @@ -97,17 +72,13 @@ const AccountsTable: React.FunctionComponent = () => {
</Toolbar>
)

const extractSendEmailItemTitle = ({ cells }: DataListRow) => `${cells[1]} (${cells[0]})`
const extractChangeStateItemTitle = ({ cells } :DataListRow) => `${cells[0]} (${cells[4]})`

return (
<>
<Table
aria-label={t('accounts_table.aria_label')}
header={Header}
cells={columns}
rows={visibleRows}
onSelect={visibleRows.length ? onSelectOne : undefined}
canSelectAll={false}
sortBy={sortBy}
onSort={onSort}
Expand All @@ -122,14 +93,6 @@ const AccountsTable: React.FunctionComponent = () => {
</ToolbarItem>
</ToolbarContent>
</Toolbar>

{modal === 'sendEmail' && (
<SendEmailModal items={selectedRows.map(extractSendEmailItemTitle)} />
)}

{modal === 'changeState' && (
<ChangeStateModal items={selectedRows.map(extractChangeStateItemTitle)} states={options} />
)}
</>
)
}
Expand Down
Expand Up @@ -11,7 +11,6 @@ const generateRows = (accounts: IDeveloperAccount[]) => {
account.org_name,
account.admin_name,
account.created_at,
account.apps_count.toString(),
account.state,
{
title: isMultitenant ? <ActionButtonImpersonate /> : ''
Expand Down Expand Up @@ -42,11 +41,6 @@ const generateColumns = (t: TFunction) => [
title: t('accountsIndex:accounts_table.signup_header'),
transforms: [sortable]
},
{
categoryName: 'apps',
title: t('accountsIndex:accounts_table.applications_header'),
transforms: [sortable]
},
{
categoryName: 'state',
title: t('accountsIndex:accounts_table.state_header'),
Expand Down
1 change: 0 additions & 1 deletion portafly/src/dal/accounts/getDeveloperAccounts.ts
Expand Up @@ -55,7 +55,6 @@ const parseAccounts = (accounts: BuyersAccount[]) => accounts.map(({ account })
org_name: account.org_name,
// TODO: Porta should return admin_name (username of first user role admin)
admin_name: account.billing_address?.company,
apps_count: 0, // TODO: this is not included in /admin/api/accounts
state: account.state
}))

Expand Down
@@ -1,12 +1,6 @@
import React from 'react'

import { render } from 'tests/custom-render'
import {
useDataListTable,
useDataListPagination,
useDataListFilters,
useDataListBulkActions
} from 'components'
import { useDataListTable, useDataListPagination, useDataListFilters } from 'components'
import { AccountsTable, generateColumns, generateRows } from 'components/pages/accounts'
import { within } from '@testing-library/react'
import { IDeveloperAccount } from 'types'
Expand All @@ -16,7 +10,6 @@ jest.mock('components/shared/data-list/DataListContext')
const useTableMock = useDataListTable as jest.Mock
const usePaginationMock = useDataListPagination as jest.Mock
const useFiltersMock = useDataListFilters as jest.Mock
const useBulkActionsMock = useDataListBulkActions as jest.Mock
const developerAccounts: IDeveloperAccount[] = [['Dandelion', 'Rosemary and Thyme'], ['Geralt', 'Wolf School']].map((account) => (
factories.DeveloperAccount.build({
admin_name: account[0],
Expand All @@ -30,23 +23,17 @@ const columns = generateColumns((s: string) => s)
const defaultTable = {
rows,
columns,
selectedRows: [],
sortBy: {},
setSortBy: jest.fn(),
selectOne: jest.fn(),
selectPage: jest.fn(),
selectAll: jest.fn()
setSortBy: jest.fn()
}
const resetPagination = jest.fn()
const defaultPagination = { startIdx: 0, endIdx: 5, resetPagination }
const defaultFilters = { filters: {} }
const defaultBulkActions = {}

const resetMocks = () => {
useTableMock.mockReturnValue(defaultTable)
usePaginationMock.mockReturnValue(defaultPagination)
useFiltersMock.mockReturnValue(defaultFilters)
useBulkActionsMock.mockReturnValue(defaultBulkActions)
}
beforeAll(resetMocks)
afterEach(resetMocks)
Expand Down
Expand Up @@ -23,13 +23,6 @@ Array [
[Function],
],
},
Object {
"categoryName": "apps",
"title": undefined,
"transforms": Array [
[Function],
],
},
Object {
"categoryName": "state",
"title": undefined,
Expand Down
1 change: 0 additions & 1 deletion portafly/src/types/index.d.ts
Expand Up @@ -5,7 +5,6 @@ export type ArgumentsType<T extends (...args: any[]) => any> =

export interface IDeveloperAccount {
admin_name: string,
apps_count: number
created_at: string, // TODO: Find a specific date as string type
id: number,
org_name: string,
Expand Down