diff --git a/ui/src/kapacitor/apis/index.js b/ui/src/kapacitor/apis/index.js
index 41220be6fc..4465f8acac 100644
--- a/ui/src/kapacitor/apis/index.js
+++ b/ui/src/kapacitor/apis/index.js
@@ -115,3 +115,17 @@ export const getLogStreamByRuleID = (kapacitor, ruleID) =>
headers: {'Content-Type': 'application/json'},
}
)
+
+export const pingKapacitorVersion = async kapacitor => {
+ try {
+ const result = await AJAX({
+ method: 'GET',
+ url: `${kapacitor.links.proxy}?path=/kapacitor/v1preview/ping`,
+ })
+ const kapVersion = result.headers['x-kapacitor-version']
+ return kapVersion === '' ? null : kapVersion
+ } catch (error) {
+ console.error(error)
+ throw error
+ }
+}
diff --git a/ui/src/kapacitor/components/LogsTable.js b/ui/src/kapacitor/components/LogsTable.js
index ae1379c9f0..0e49badd36 100644
--- a/ui/src/kapacitor/components/LogsTable.js
+++ b/ui/src/kapacitor/components/LogsTable.js
@@ -1,86 +1,26 @@
-import React, {Component, PropTypes} from 'react'
+import React, {PropTypes} from 'react'
import FancyScrollbar from 'shared/components/FancyScrollbar'
-import LogItemSession from 'src/kapacitor/components/LogItemSession'
-import LogItemHTTP from 'src/kapacitor/components/LogItemHTTP'
-import LogItemHTTPError from 'src/kapacitor/components/LogItemHTTPError'
-import LogItemKapacitorPoint from 'src/kapacitor/components/LogItemKapacitorPoint'
-import LogItemKapacitorError from 'src/kapacitor/components/LogItemKapacitorError'
-import LogItemKapacitorDebug from 'src/kapacitor/components/LogItemKapacitorDebug'
-import LogItemInfluxDBDebug from 'src/kapacitor/components/LogItemInfluxDBDebug'
+import LogsTableRow from 'src/kapacitor/components/LogsTableRow'
-class LogsTable extends Component {
- constructor(props) {
- super(props)
- }
-
- renderTableRow = (logItem, index) => {
- if (logItem.service === 'sessions') {
- return
- }
- if (logItem.service === 'http' && logItem.msg === 'http request') {
- return
- }
- if (logItem.service === 'kapacitor' && logItem.msg === 'point') {
- return
- }
- if (logItem.service === 'httpd_server_errors' && logItem.lvl === 'error') {
- return
- }
- if (logItem.service === 'kapacitor' && logItem.lvl === 'error') {
- return
- }
- if (logItem.service === 'kapacitor' && logItem.lvl === 'debug') {
- return
- }
- if (logItem.service === 'influxdb' && logItem.lvl === 'debug') {
- return
- }
-
- return (
-
-
-
-
- {logItem.service || '--'}
-
-
-
- {logItem.msg || '--'}
-
-
-
+const LogsTable = ({logs}) =>
+
+
+
Logs
+
+
+
+ {logs.length
+ ? logs.map((log, i) =>
+
+ )
+ :
}
- )
- }
-
- render() {
- const {logs} = this.props
-
- return (
-
-
-
Logs
-
-
-
- {logs.length
- ? logs.map((log, i) => this.renderTableRow(log, i))
- :
}
-
-
-
- )
- }
-}
+
+
const {arrayOf, shape, string} = PropTypes
diff --git a/ui/src/kapacitor/components/LogsTableRow.js b/ui/src/kapacitor/components/LogsTableRow.js
new file mode 100644
index 0000000000..32b658c67f
--- /dev/null
+++ b/ui/src/kapacitor/components/LogsTableRow.js
@@ -0,0 +1,68 @@
+import React, {PropTypes} from 'react'
+
+import LogItemSession from 'src/kapacitor/components/LogItemSession'
+import LogItemHTTP from 'src/kapacitor/components/LogItemHTTP'
+import LogItemHTTPError from 'src/kapacitor/components/LogItemHTTPError'
+import LogItemKapacitorPoint from 'src/kapacitor/components/LogItemKapacitorPoint'
+import LogItemKapacitorError from 'src/kapacitor/components/LogItemKapacitorError'
+import LogItemKapacitorDebug from 'src/kapacitor/components/LogItemKapacitorDebug'
+import LogItemInfluxDBDebug from 'src/kapacitor/components/LogItemInfluxDBDebug'
+
+const LogsTableRow = ({logItem, index}) => {
+ if (logItem.service === 'sessions') {
+ return
+ }
+ if (logItem.service === 'http' && logItem.msg === 'http request') {
+ return
+ }
+ if (logItem.service === 'kapacitor' && logItem.msg === 'point') {
+ return
+ }
+ if (logItem.service === 'httpd_server_errors' && logItem.lvl === 'error') {
+ return
+ }
+ if (logItem.service === 'kapacitor' && logItem.lvl === 'error') {
+ return
+ }
+ if (logItem.service === 'kapacitor' && logItem.lvl === 'debug') {
+ return
+ }
+ if (logItem.service === 'influxdb' && logItem.lvl === 'debug') {
+ return
+ }
+
+ return (
+
+
+
+
+ {logItem.service || '--'}
+
+
+
+ {logItem.msg || '--'}
+
+
+
+
+ )
+}
+
+const {number, shape, string} = PropTypes
+
+LogsTableRow.propTypes = {
+ logItem: shape({
+ key: string.isRequired,
+ ts: string.isRequired,
+ lvl: string.isRequired,
+ msg: string.isRequired,
+ }).isRequired,
+ index: number,
+}
+
+export default LogsTableRow
diff --git a/ui/src/kapacitor/components/LogsToggle.js b/ui/src/kapacitor/components/LogsToggle.js
index 92bc5f5f1a..eedddafbfd 100644
--- a/ui/src/kapacitor/components/LogsToggle.js
+++ b/ui/src/kapacitor/components/LogsToggle.js
@@ -1,6 +1,6 @@
import React, {PropTypes} from 'react'
-const LogsToggle = ({areLogsVisible, areLogsEnabled, onToggleLogsVisbility}) =>
+const LogsToggle = ({areLogsVisible, onToggleLogsVisbility}) =>
-
>
Editor
- {areLogsEnabled &&
- -
- Editor + Logs
-
}
+ -
+ Editor + Logs
+
const {bool, func} = PropTypes
LogsToggle.propTypes = {
areLogsVisible: bool,
- areLogsEnabled: bool,
onToggleLogsVisbility: func.isRequired,
}
diff --git a/ui/src/kapacitor/components/TickscriptHeader.js b/ui/src/kapacitor/components/TickscriptHeader.js
index 1d13b50031..c830887aeb 100644
--- a/ui/src/kapacitor/components/TickscriptHeader.js
+++ b/ui/src/kapacitor/components/TickscriptHeader.js
@@ -16,11 +16,12 @@ const TickscriptHeader = ({
TICKscript Editor
-
+ {areLogsEnabled &&
+
}