feat(ui): add Alert Rule Builder button to open builder UI
parent
1243b88315
commit
4e187ffece
|
@ -28,6 +28,7 @@ interface Props {
|
|||
onChangeName: (name: string) => void
|
||||
isNewTickscript: boolean
|
||||
unsavedChanges: boolean
|
||||
onOpenBuilderUI: () => void
|
||||
}
|
||||
|
||||
@ErrorHandling
|
||||
|
@ -48,6 +49,7 @@ class Tickscript extends PureComponent<Props> {
|
|||
areLogsVisible,
|
||||
areLogsEnabled,
|
||||
onToggleLogsVisibility,
|
||||
onOpenBuilderUI,
|
||||
} = this.props
|
||||
return (
|
||||
<Page className="tickscript-editor-page">
|
||||
|
@ -55,6 +57,7 @@ class Tickscript extends PureComponent<Props> {
|
|||
task={task}
|
||||
onSave={onSave}
|
||||
onExit={onExit}
|
||||
onOpenBuilderUI={onOpenBuilderUI}
|
||||
unsavedChanges={unsavedChanges}
|
||||
areLogsVisible={areLogsVisible}
|
||||
areLogsEnabled={areLogsEnabled}
|
||||
|
|
|
@ -3,7 +3,8 @@ import React, {Component} from 'react'
|
|||
import {Page} from 'src/reusable_ui'
|
||||
import LogsToggle from 'src/kapacitor/components/LogsToggle'
|
||||
import ConfirmButton from 'src/shared/components/ConfirmButton'
|
||||
import TickscriptSave, {Task} from 'src/kapacitor/components/TickscriptSave'
|
||||
import TickscriptSave from 'src/kapacitor/components/TickscriptSave'
|
||||
import {Task} from 'src/types'
|
||||
|
||||
interface Props {
|
||||
task: Task
|
||||
|
@ -14,6 +15,7 @@ interface Props {
|
|||
onSave: () => void
|
||||
onExit: () => void
|
||||
onToggleLogsVisibility: (visibility: boolean) => void
|
||||
onOpenBuilderUI: () => void
|
||||
}
|
||||
|
||||
class TickscriptHeader extends Component<Props> {
|
||||
|
@ -26,6 +28,7 @@ class TickscriptHeader extends Component<Props> {
|
|||
areLogsEnabled,
|
||||
areLogsVisible,
|
||||
onToggleLogsVisibility,
|
||||
onOpenBuilderUI,
|
||||
} = this.props
|
||||
|
||||
return (
|
||||
|
@ -34,6 +37,25 @@ class TickscriptHeader extends Component<Props> {
|
|||
<Page.Title title="TICKscript Editor" />
|
||||
</Page.Header.Left>
|
||||
<Page.Header.Right showSourceIndicator={true}>
|
||||
{!!task.query && !task.templateID ? (
|
||||
<button
|
||||
className="btn btn-sm btn-primary"
|
||||
title="Open TICKscript in Alert Rule Builder"
|
||||
onClick={onOpenBuilderUI}
|
||||
>
|
||||
Alert Rule Builder
|
||||
</button>
|
||||
) : undefined}
|
||||
{isNewTickscript ? (
|
||||
<button
|
||||
className="btn btn-sm btn-default"
|
||||
title="Use Alert Rule Builder to create a new TICKscript"
|
||||
onClick={onOpenBuilderUI}
|
||||
>
|
||||
Alert Rule Builder
|
||||
</button>
|
||||
) : undefined}
|
||||
|
||||
<LogsToggle
|
||||
areLogsEnabled={areLogsEnabled}
|
||||
areLogsVisible={areLogsVisible}
|
||||
|
|
|
@ -151,6 +151,7 @@ export class TickscriptPage extends PureComponent<Props, State> {
|
|||
type,
|
||||
'template-id': templateID,
|
||||
vars,
|
||||
query,
|
||||
} = this.props.rules.find(r => r.id === ruleID)
|
||||
|
||||
this.setState({
|
||||
|
@ -163,6 +164,7 @@ export class TickscriptPage extends PureComponent<Props, State> {
|
|||
id,
|
||||
templateID,
|
||||
vars,
|
||||
query,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
@ -197,6 +199,7 @@ export class TickscriptPage extends PureComponent<Props, State> {
|
|||
logs={logs}
|
||||
onSave={this.handleSave}
|
||||
onExit={this.handleExit}
|
||||
onOpenBuilderUI={this.handleOpenBuilderUI}
|
||||
unsavedChanges={unsavedChanges}
|
||||
areLogsVisible={areLogsVisible}
|
||||
areLogsEnabled={areLogsEnabled}
|
||||
|
@ -273,6 +276,19 @@ export class TickscriptPage extends PureComponent<Props, State> {
|
|||
}
|
||||
}
|
||||
|
||||
private handleOpenBuilderUI = () => {
|
||||
const {
|
||||
params: {ruleID},
|
||||
source: {id: sourceID},
|
||||
router,
|
||||
} = this.props
|
||||
const {kapacitor} = this.state
|
||||
router.push(
|
||||
// prettier-ignore
|
||||
`/sources/${sourceID}/kapacitors/${kapacitor.id}/alert-rules/${ruleID}${router.location.search}`
|
||||
)
|
||||
}
|
||||
|
||||
private handleExit = () => {
|
||||
const {
|
||||
source: {id: sourceID},
|
||||
|
|
|
@ -19,6 +19,7 @@ const setup = (override?) => {
|
|||
onToggleLogsVisibility: () => {},
|
||||
onSave: () => {},
|
||||
onExit: () => {},
|
||||
onOpenBuilderUI: () => {},
|
||||
areLogsVisible: false,
|
||||
areLogsEnabled: false,
|
||||
task: {
|
||||
|
|
Loading…
Reference in New Issue