This is an automated email from the ASF dual-hosted git repository. gian 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 5d0805d Web-Console: change go to sql button to more button (#8227) 5d0805d is described below commit 5d0805dd48890b2a22148ab009d9bdfbf92416d1 Author: mcbrewster <37322608+mcbrews...@users.noreply.github.com> AuthorDate: Mon Aug 5 14:12:16 2019 -0700 Web-Console: change go to sql button to more button (#8227) * change go to sql button * rename to See in SQL view * update snapshots --- .../__snapshots__/datasource-view.spec.tsx.snap | 42 +++++++++++++++-- .../src/views/datasource-view/datasource-view.tsx | 45 ++++++++++++++---- .../__snapshots__/segments-view.spec.tsx.snap | 43 ++++++++++++++--- .../src/views/segments-view/segments-view.tsx | 55 ++++++++++++++++------ .../__snapshots__/servers-view.spec.tsx.snap | 42 +++++++++++++++-- .../src/views/servers-view/servers-view.tsx | 44 +++++++++++++---- .../__snapshots__/tasks-view.spec.tsx.snap | 42 +++++++++++++++-- web-console/src/views/task-view/tasks-view.tsx | 34 +++++++++---- 8 files changed, 286 insertions(+), 61 deletions(-) diff --git a/web-console/src/views/datasource-view/__snapshots__/datasource-view.spec.tsx.snap b/web-console/src/views/datasource-view/__snapshots__/datasource-view.spec.tsx.snap index 9162516..0e4bc80 100755 --- a/web-console/src/views/datasource-view/__snapshots__/datasource-view.spec.tsx.snap +++ b/web-console/src/views/datasource-view/__snapshots__/datasource-view.spec.tsx.snap @@ -11,11 +11,43 @@ exports[`data source view matches snapshot 1`] = ` localStorageKey="datasources-refresh-rate" onRefresh={[Function]} /> - <Blueprint3.Button - icon="application" - onClick={[Function]} - text="Go to SQL" - /> + <Blueprint3.Popover + boundary="scrollParent" + captureDismiss={false} + content={ + <Blueprint3.Menu> + <Blueprint3.MenuItem + disabled={false} + icon="application" + multiline={false} + onClick={[Function]} + popoverProps={Object {}} + shouldDismissPopover={true} + text="See in SQL view" + /> + </Blueprint3.Menu> + } + defaultIsOpen={false} + disabled={false} + fill={false} + hasBackdrop={false} + hoverCloseDelay={300} + hoverOpenDelay={150} + inheritDarkTheme={true} + interactionKind="click" + minimal={false} + modifiers={Object {}} + openOnTargetFocus={true} + position="bottom-left" + targetTagName="span" + transitionDuration={300} + usePortal={true} + wrapperTagName="span" + > + <Blueprint3.Button + icon="more" + /> + </Blueprint3.Popover> <Blueprint3.Switch checked={false} label="Show segment timeline" diff --git a/web-console/src/views/datasource-view/datasource-view.tsx b/web-console/src/views/datasource-view/datasource-view.tsx index 75961a2..c75f5cd 100644 --- a/web-console/src/views/datasource-view/datasource-view.tsx +++ b/web-console/src/views/datasource-view/datasource-view.tsx @@ -16,7 +16,17 @@ * limitations under the License. */ -import { Button, FormGroup, InputGroup, Intent, Switch } from '@blueprintjs/core'; +import { + Button, + FormGroup, + InputGroup, + Intent, + Menu, + MenuItem, + Popover, + Position, + Switch, +} from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; import axios from 'axios'; import classNames from 'classnames'; @@ -448,6 +458,29 @@ GROUP BY 1`; ); } + renderBulkDatasourceActions() { + const { goToQuery, noSqlMode } = this.props; + const bulkDatasourceActionsMenu = ( + <Menu> + {!noSqlMode && ( + <MenuItem + icon={IconNames.APPLICATION} + text="See in SQL view" + onClick={() => goToQuery(DatasourcesView.DATASOURCE_SQL)} + /> + )} + </Menu> + ); + + return ( + <> + <Popover content={bulkDatasourceActionsMenu} position={Position.BOTTOM_LEFT}> + <Button icon={IconNames.MORE} /> + </Popover> + </> + ); + } + private saveRules = async (datasource: string, rules: any[], comment: string) => { try { await axios.post(`/druid/coordinator/v1/rules/${datasource}`, rules, { @@ -901,7 +934,7 @@ GROUP BY 1`; } render(): JSX.Element { - const { goToQuery, noSqlMode } = this.props; + const { noSqlMode } = this.props; const { showDisabled, hiddenColumns, showChart, chartHeight, chartWidth } = this.state; return ( @@ -913,13 +946,7 @@ GROUP BY 1`; }} localStorageKey={LocalStorageKeys.DATASOURCES_REFRESH_RATE} /> - {!noSqlMode && ( - <Button - icon={IconNames.APPLICATION} - text="Go to SQL" - onClick={() => goToQuery(DatasourcesView.DATASOURCE_SQL)} - /> - )} + {this.renderBulkDatasourceActions()} <Switch checked={showChart} label="Show segment timeline" diff --git a/web-console/src/views/segments-view/__snapshots__/segments-view.spec.tsx.snap b/web-console/src/views/segments-view/__snapshots__/segments-view.spec.tsx.snap index 189a921..077e7dd 100755 --- a/web-console/src/views/segments-view/__snapshots__/segments-view.spec.tsx.snap +++ b/web-console/src/views/segments-view/__snapshots__/segments-view.spec.tsx.snap @@ -12,12 +12,43 @@ exports[`segments-view matches snapshot 1`] = ` localStorageKey="segments-refresh-rate" onRefresh={[Function]} /> - <Blueprint3.Button - disabled={true} - icon="application" - onClick={[Function]} - text="Go to SQL" - /> + <Blueprint3.Popover + boundary="scrollParent" + captureDismiss={false} + content={ + <Blueprint3.Menu> + <Blueprint3.MenuItem + disabled={true} + icon="application" + multiline={false} + onClick={[Function]} + popoverProps={Object {}} + shouldDismissPopover={true} + text="See in SQL view" + /> + </Blueprint3.Menu> + } + defaultIsOpen={false} + disabled={false} + fill={false} + hasBackdrop={false} + hoverCloseDelay={300} + hoverOpenDelay={150} + inheritDarkTheme={true} + interactionKind="click" + minimal={false} + modifiers={Object {}} + openOnTargetFocus={true} + position="bottom-left" + targetTagName="span" + transitionDuration={300} + usePortal={true} + wrapperTagName="span" + > + <Blueprint3.Button + icon="more" + /> + </Blueprint3.Popover> <Component> Group by </Component> diff --git a/web-console/src/views/segments-view/segments-view.tsx b/web-console/src/views/segments-view/segments-view.tsx index 18583ff..6e10b68 100644 --- a/web-console/src/views/segments-view/segments-view.tsx +++ b/web-console/src/views/segments-view/segments-view.tsx @@ -16,7 +16,16 @@ * limitations under the License. */ -import { Button, ButtonGroup, Intent, Label } from '@blueprintjs/core'; +import { + Button, + ButtonGroup, + Intent, + Label, + Menu, + MenuItem, + Popover, + Position, +} from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; import axios from 'axios'; import React from 'react'; @@ -607,6 +616,35 @@ export class SegmentsView extends React.PureComponent<SegmentsViewProps, Segment ); } + renderBulkSegmentsActions() { + const { goToQuery, noSqlMode } = this.props; + const lastSegmentsQuery = this.segmentsSqlQueryManager.getLastIntermediateQuery(); + + const bulkSegmentsActionsMenu = ( + <Menu> + {!noSqlMode && ( + <MenuItem + icon={IconNames.APPLICATION} + text="See in SQL view" + disabled={!lastSegmentsQuery} + onClick={() => { + if (!lastSegmentsQuery) return; + goToQuery(lastSegmentsQuery); + }} + /> + )} + </Menu> + ); + + return ( + <> + <Popover content={bulkSegmentsActionsMenu} position={Position.BOTTOM_LEFT}> + <Button icon={IconNames.MORE} /> + </Popover> + </> + ); + } + render(): JSX.Element { const { segmentTableActionDialogId, @@ -614,9 +652,8 @@ export class SegmentsView extends React.PureComponent<SegmentsViewProps, Segment actions, hiddenColumns, } = this.state; - const { goToQuery, noSqlMode } = this.props; + const { noSqlMode } = this.props; const { groupByInterval } = this.state; - const lastSegmentsQuery = this.segmentsSqlQueryManager.getLastIntermediateQuery(); return ( <> @@ -630,17 +667,7 @@ export class SegmentsView extends React.PureComponent<SegmentsViewProps, Segment } localStorageKey={LocalStorageKeys.SEGMENTS_REFRESH_RATE} /> - {!noSqlMode && ( - <Button - icon={IconNames.APPLICATION} - text="Go to SQL" - disabled={!lastSegmentsQuery} - onClick={() => { - if (!lastSegmentsQuery) return; - goToQuery(lastSegmentsQuery); - }} - /> - )} + {this.renderBulkSegmentsActions()} <Label>Group by</Label> <ButtonGroup> <Button diff --git a/web-console/src/views/servers-view/__snapshots__/servers-view.spec.tsx.snap b/web-console/src/views/servers-view/__snapshots__/servers-view.spec.tsx.snap index 315424a..c64a85e 100755 --- a/web-console/src/views/servers-view/__snapshots__/servers-view.spec.tsx.snap +++ b/web-console/src/views/servers-view/__snapshots__/servers-view.spec.tsx.snap @@ -34,11 +34,43 @@ exports[`servers view action servers view 1`] = ` localStorageKey="servers-refresh-rate" onRefresh={[Function]} /> - <Blueprint3.Button - icon="application" - onClick={[Function]} - text="Go to SQL" - /> + <Blueprint3.Popover + boundary="scrollParent" + captureDismiss={false} + content={ + <Blueprint3.Menu> + <Blueprint3.MenuItem + disabled={false} + icon="application" + multiline={false} + onClick={[Function]} + popoverProps={Object {}} + shouldDismissPopover={true} + text="See in SQL view" + /> + </Blueprint3.Menu> + } + defaultIsOpen={false} + disabled={false} + fill={false} + hasBackdrop={false} + hoverCloseDelay={300} + hoverOpenDelay={150} + inheritDarkTheme={true} + interactionKind="click" + minimal={false} + modifiers={Object {}} + openOnTargetFocus={true} + position="bottom-left" + targetTagName="span" + transitionDuration={300} + usePortal={true} + wrapperTagName="span" + > + <Blueprint3.Button + icon="more" + /> + </Blueprint3.Popover> <TableColumnSelector columns={ Array [ diff --git a/web-console/src/views/servers-view/servers-view.tsx b/web-console/src/views/servers-view/servers-view.tsx index 516237c..9478bb4 100644 --- a/web-console/src/views/servers-view/servers-view.tsx +++ b/web-console/src/views/servers-view/servers-view.tsx @@ -16,7 +16,16 @@ * limitations under the License. */ -import { Button, ButtonGroup, Intent, Label } from '@blueprintjs/core'; +import { + Button, + ButtonGroup, + Intent, + Label, + Menu, + MenuItem, + Popover, + Position, +} from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; import axios from 'axios'; import { sum } from 'd3-array'; @@ -610,8 +619,31 @@ ORDER BY "rank" DESC, "server" DESC`; ); } - render(): JSX.Element { + renderBulkServersActions() { const { goToQuery, noSqlMode } = this.props; + + const bulkserversActionsMenu = ( + <Menu> + {!noSqlMode && ( + <MenuItem + icon={IconNames.APPLICATION} + text="See in SQL view" + onClick={() => goToQuery(ServersView.SERVER_SQL)} + /> + )} + </Menu> + ); + + return ( + <> + <Popover content={bulkserversActionsMenu} position={Position.BOTTOM_LEFT}> + <Button icon={IconNames.MORE} /> + </Popover> + </> + ); + } + + render(): JSX.Element { const { groupServersBy, hiddenColumns } = this.state; return ( @@ -642,13 +674,7 @@ ORDER BY "rank" DESC, "server" DESC`; onRefresh={auto => this.serverQueryManager.rerunLastQuery(auto)} localStorageKey={LocalStorageKeys.SERVERS_REFRESH_RATE} /> - {!noSqlMode && ( - <Button - icon={IconNames.APPLICATION} - text="Go to SQL" - onClick={() => goToQuery(ServersView.SERVER_SQL)} - /> - )} + {this.renderBulkServersActions()} <TableColumnSelector columns={serverTableColumns} onChange={column => this.setState({ hiddenColumns: hiddenColumns.toggle(column) })} diff --git a/web-console/src/views/task-view/__snapshots__/tasks-view.spec.tsx.snap b/web-console/src/views/task-view/__snapshots__/tasks-view.spec.tsx.snap index b110350..397bf16 100644 --- a/web-console/src/views/task-view/__snapshots__/tasks-view.spec.tsx.snap +++ b/web-console/src/views/task-view/__snapshots__/tasks-view.spec.tsx.snap @@ -367,11 +367,43 @@ exports[`tasks view matches snapshot 1`] = ` localStorageKey="task-refresh-rate" onRefresh={[Function]} /> - <Blueprint3.Button - icon="application" - onClick={[Function]} - text="Go to SQL" - /> + <Blueprint3.Popover + boundary="scrollParent" + captureDismiss={false} + content={ + <Blueprint3.Menu> + <Blueprint3.MenuItem + disabled={false} + icon="application" + multiline={false} + onClick={[Function]} + popoverProps={Object {}} + shouldDismissPopover={true} + text="See in SQL view" + /> + </Blueprint3.Menu> + } + defaultIsOpen={false} + disabled={false} + fill={false} + hasBackdrop={false} + hoverCloseDelay={300} + hoverOpenDelay={150} + inheritDarkTheme={true} + interactionKind="click" + minimal={false} + modifiers={Object {}} + openOnTargetFocus={true} + position="bottom-left" + targetTagName="span" + transitionDuration={300} + usePortal={true} + wrapperTagName="span" + > + <Blueprint3.Button + icon="more" + /> + </Blueprint3.Popover> <Blueprint3.Popover boundary="scrollParent" captureDismiss={false} diff --git a/web-console/src/views/task-view/tasks-view.tsx b/web-console/src/views/task-view/tasks-view.tsx index f5ed0ea..1a9b5a3 100644 --- a/web-console/src/views/task-view/tasks-view.tsx +++ b/web-console/src/views/task-view/tasks-view.tsx @@ -1010,8 +1010,32 @@ ORDER BY "rank" DESC, "created_time" DESC`; ); } + renderBulkTasksActions() { + const { goToQuery, noSqlMode } = this.props; + + const bulkTaskActionsMenu = ( + <Menu> + {!noSqlMode && ( + <MenuItem + icon={IconNames.APPLICATION} + text="See in SQL view" + onClick={() => goToQuery(TasksView.TASK_SQL)} + /> + )} + </Menu> + ); + + return ( + <> + <Popover content={bulkTaskActionsMenu} position={Position.BOTTOM_LEFT}> + <Button icon={IconNames.MORE} /> + </Popover> + </> + ); + } + render(): JSX.Element { - const { goToQuery, goToLoadData, noSqlMode } = this.props; + const { goToLoadData } = this.props; const { groupTasksBy, supervisorSpecDialogOpen, @@ -1122,13 +1146,7 @@ ORDER BY "rank" DESC, "created_time" DESC`; localStorageKey={LocalStorageKeys.TASKS_REFRESH_RATE} onRefresh={auto => this.taskQueryManager.rerunLastQuery(auto)} /> - {!noSqlMode && ( - <Button - icon={IconNames.APPLICATION} - text="Go to SQL" - onClick={() => goToQuery(TasksView.TASK_SQL)} - /> - )} + {this.renderBulkTasksActions()} <Popover content={submitTaskMenu} position={Position.BOTTOM_LEFT}> <Button icon={IconNames.PLUS} text="Submit task" /> </Popover> --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org For additional commands, e-mail: commits-h...@druid.apache.org