This is an automated email from the ASF dual-hosted git repository. cwylie pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
The following commit(s) were added to refs/heads/master by this push: new 3a77a3e Web-Console: add actions icon to lookups (#7725) 3a77a3e is described below commit 3a77a3e1123761547775e886aa37805206a91fce Author: mcbrewster <37322608+mcbrews...@users.noreply.github.com> AuthorDate: Fri May 24 22:53:12 2019 -0700 Web-Console: add actions icon to lookups (#7725) * add lookup-table-action-dialog * reorder arguments * remove lookup-table-action-dialog * fix supervisors table action dialog * fix imports * Add host column to task view * reorder buttons * remove log * update snapshots * remove host * update snapshots * remove console log * remove fragment * update snapshots and remove space --- .../__snapshots__/lookups-view.spec.tsx.snap | 1 + .../src/views/lookups-view/lookups-view.tsx | 49 ++++++++++++++++------ 2 files changed, 38 insertions(+), 12 deletions(-) diff --git a/web-console/src/views/lookups-view/__snapshots__/lookups-view.spec.tsx.snap b/web-console/src/views/lookups-view/__snapshots__/lookups-view.spec.tsx.snap index baf19ed..148a732 100644 --- a/web-console/src/views/lookups-view/__snapshots__/lookups-view.spec.tsx.snap +++ b/web-console/src/views/lookups-view/__snapshots__/lookups-view.spec.tsx.snap @@ -121,6 +121,7 @@ exports[`describe lookups view lookups view snapshot 1`] = ` "filterable": false, "id": "actions", "show": true, + "width": 70, }, ] } diff --git a/web-console/src/views/lookups-view/lookups-view.tsx b/web-console/src/views/lookups-view/lookups-view.tsx index c2bd3ec..d72d189 100644 --- a/web-console/src/views/lookups-view/lookups-view.tsx +++ b/web-console/src/views/lookups-view/lookups-view.tsx @@ -16,24 +16,26 @@ * limitations under the License. */ -import { Button, Intent } from '@blueprintjs/core'; +import {Button, Icon, Intent, Popover, Position} from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; import axios from 'axios'; import * as classNames from 'classnames'; import * as React from 'react'; import ReactTable from 'react-table'; -import { TableColumnSelection, ViewControlBar } from '../../components/index'; -import { AsyncActionDialog, LookupEditDialog } from '../../dialogs/index'; +import {ActionCell, TableColumnSelection, ViewControlBar} from '../../components'; +import { AsyncActionDialog, LookupEditDialog } from '../../dialogs/'; import { AppToaster } from '../../singletons/toaster'; import { getDruidErrorMessage, LocalStorageKeys, QueryManager, TableColumnSelectionHandler } from '../../utils'; +import {BasicAction, basicActionsToMenu} from '../../utils/basic-action'; import './lookups-view.scss'; + const tableColumns: string[] = ['Lookup name', 'Tier', 'Type', 'Version', 'Actions']; const DEFAULT_LOOKUP_TIER: string = '__default'; @@ -55,8 +57,8 @@ export interface LookupsViewState { isEdit: boolean; allLookupTiers: string[]; - deleteLookupTier: string | null; deleteLookupName: string | null; + deleteLookupTier: string | null; } export class LookupsView extends React.Component<LookupsViewProps, LookupsViewState> { @@ -212,6 +214,22 @@ export class LookupsView extends React.Component<LookupsViewProps, LookupsViewSt } } + private getlookupActions(lookupTier: string, lookupId: string): BasicAction[] { + return [ + { + icon: IconNames.EDIT, + title: 'Edit', + onAction: () => this.openLookupEditDialog(lookupTier, lookupId) + }, + { + icon: IconNames.CROSS, + title: 'Delete', + intent: Intent.DANGER, + onAction: () => this.setState({ deleteLookupTier: lookupTier, deleteLookupName: lookupId }) + } + ]; + } + renderDeleteLookupAction() { const { deleteLookupTier, deleteLookupName } = this.state; @@ -288,16 +306,23 @@ export class LookupsView extends React.Component<LookupsViewProps, LookupsViewSt { Header: 'Actions', id: 'actions', + width: 70, accessor: row => ({id: row.id, tier: row.tier}), filterable: false, Cell: (row: any) => { const lookupId = row.value.id; const lookupTier = row.value.tier; - return <div> - <a onClick={() => this.openLookupEditDialog(lookupTier, lookupId)}>Edit</a> - - <a onClick={() => this.setState({ deleteLookupTier: lookupTier, deleteLookupName: lookupId })}>Delete</a> - </div>; + const lookupActions = this.getlookupActions(lookupTier, lookupId); + const lookupMenu = basicActionsToMenu(lookupActions); + + return <ActionCell> + { + lookupMenu && + <Popover content={lookupMenu} position={Position.BOTTOM_RIGHT}> + <Icon icon={IconNames.WRENCH}/> + </Popover> + } + </ActionCell>; }, show: tableColumnSelectionHandler.showColumn('Actions') } @@ -309,7 +334,7 @@ export class LookupsView extends React.Component<LookupsViewProps, LookupsViewSt } renderLookupEditDialog() { - const { lookupEditDialogOpen, allLookupTiers, lookupEditSpec, lookupEditTier, lookupEditName, lookupEditVersion, isEdit } = this.state; + const { lookupEditDialogOpen, allLookupTiers, lookupEditSpec, lookupEditTier, lookupEditName, lookupEditVersion, isEdit} = this.state; return <LookupEditDialog isOpen={lookupEditDialogOpen} @@ -326,10 +351,10 @@ export class LookupsView extends React.Component<LookupsViewProps, LookupsViewSt } render() { - const { lookupsError } = this.state; + const { lookupsError} = this.state; const { tableColumnSelectionHandler } = this; - return <div className="lookups-view app-view"> + return<div className="lookups-view app-view"> <ViewControlBar label="Lookups"> <Button icon={IconNames.REFRESH} --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org For additional commands, e-mail: commits-h...@druid.apache.org