Update prettier formatting and update ESLint rules to match.

pull/1596/head
Hunter Trujillo 2017-06-07 10:12:40 -06:00
parent fadc145843
commit 7664808e55
52 changed files with 159 additions and 184 deletions

View File

@ -179,7 +179,7 @@
'one-var': 0,
'operator-assignment': [2, 'always'],
'padded-blocks': [2, 'never'],
'quote-props': [2, 'as-needed', {keywords: true, numbers: false }],
'quote-props': [2, 'as-needed', {keywords: false, numbers: false }],
'require-jsdoc': 0,
'semi-spacing': [2, {before: false, after: true}],
'semi': [2, 'never'],
@ -234,6 +234,5 @@
'react/require-extension': 0,
'react/self-closing-comp': 0, // TODO: we can re-enable this if some brave soul wants to update the code (mostly spans acting as icons)
'react/sort-comp': 0, // TODO: 2
'react/jsx-wrap-multilines': ['error', {'declaration': false, 'assignment': false}],
},
}

View File

@ -1,11 +1,5 @@
import React, {PropTypes} from 'react'
import {
Tab,
Tabs,
TabPanel,
TabPanels,
TabList,
} from 'shared/components/Tabs'
import {Tab, Tabs, TabPanel, TabPanels, TabList} from 'shared/components/Tabs'
import UsersTable from 'src/admin/components/UsersTable'
import RolesTable from 'src/admin/components/RolesTable'
import QueriesPage from 'src/admin/containers/QueriesPage'
@ -97,9 +91,9 @@ const AdminTabs = ({
{tabs.map((t, i) => <Tab key={tabs[i].type}>{tabs[i].type}</Tab>)}
</TabList>
<TabPanels customClass="col-md-10 admin-tabs--content">
{tabs.map((t, i) => (
{tabs.map((t, i) =>
<TabPanel key={tabs[i].type}>{t.component}</TabPanel>
))}
)}
</TabPanels>
</Tabs>
)

View File

@ -41,7 +41,7 @@ const DatabaseManager = ({
</button>
</div>
<div className="panel-body">
{databases.map(db => (
{databases.map(db =>
<DatabaseTable
key={db.links.self}
database={db}
@ -63,7 +63,7 @@ const DatabaseManager = ({
onRemoveRetentionPolicy={onRemoveRetentionPolicy}
onDeleteRetentionPolicy={onDeleteRetentionPolicy}
/>
))}
)}
</div>
</div>
)

View File

@ -54,7 +54,7 @@ class DatabaseRow extends Component {
defaultValue={name}
placeholder="Name this RP"
onKeyDown={e => this.handleKeyDown(e, database)}
ref={r => this.name = r}
ref={r => (this.name = r)}
autoFocus={true}
spellCheck={false}
autoComplete={false}
@ -69,7 +69,7 @@ class DatabaseRow extends Component {
defaultValue={formattedDuration}
placeholder="How long should Data last"
onKeyDown={e => this.handleKeyDown(e, database)}
ref={r => this.duration = r}
ref={r => (this.duration = r)}
autoFocus={!isNew}
spellCheck={false}
autoComplete={false}
@ -85,7 +85,7 @@ class DatabaseRow extends Component {
defaultValue={replication || 1}
placeholder="# of Nodes"
onKeyDown={e => this.handleKeyDown(e, database)}
ref={r => this.replication = r}
ref={r => (this.replication = r)}
spellCheck={false}
autoComplete={false}
/>

View File

@ -111,7 +111,7 @@ const Header = ({
)
}
const EditHeader = ({database, onEdit, onKeyDown, onConfirm, onCancel}) => (
const EditHeader = ({database, onEdit, onKeyDown, onConfirm, onCancel}) =>
<div className="db-manager-header db-manager-header--edit">
<input
className="form-control input-sm"
@ -127,7 +127,6 @@ const EditHeader = ({database, onEdit, onKeyDown, onConfirm, onCancel}) => (
/>
<ConfirmButtons item={database} onConfirm={onConfirm} onCancel={onCancel} />
</div>
)
const {func, shape, bool} = PropTypes

View File

@ -1,12 +1,11 @@
import React, {PropTypes} from 'react'
const EmptyRow = ({tableName}) => (
const EmptyRow = ({tableName}) =>
<tr className="table-empty-state">
<th colSpan="5">
<p>You don't have any {tableName},<br />why not create one?</p>
</th>
</tr>
)
const {string} = PropTypes

View File

@ -3,7 +3,7 @@ import React, {PropTypes} from 'react'
import QueryRow from 'src/admin/components/QueryRow'
import {QUERIES_TABLE} from 'src/admin/constants/tableSizing'
const QueriesTable = ({queries, onKillQuery}) => (
const QueriesTable = ({queries, onKillQuery}) =>
<div>
<div className="panel panel-default">
<div className="panel-body">
@ -21,15 +21,14 @@ const QueriesTable = ({queries, onKillQuery}) => (
</tr>
</thead>
<tbody>
{queries.map(q => (
{queries.map(q =>
<QueryRow key={q.id} query={q} onKill={onKillQuery} />
))}
)}
</tbody>
</table>
</div>
</div>
</div>
)
const {arrayOf, func, shape} = PropTypes

View File

@ -89,12 +89,9 @@ const RoleRow = ({
onApply={handleUpdateUsers}
buttonSize="btn-xs"
buttonColor="btn-primary"
customClass={classnames(
`dropdown-${ROLES_TABLE.colUsers}`,
{
'admin-table--multi-select-empty': !users.length,
}
)}
customClass={classnames(`dropdown-${ROLES_TABLE.colUsers}`, {
'admin-table--multi-select-empty': !users.length,
})}
/>
: null}
</td>

View File

@ -16,7 +16,7 @@ const RolesTable = ({
onFilter,
onUpdateRoleUsers,
onUpdateRolePermissions,
}) => (
}) =>
<div className="panel panel-default">
<FilterBar
type="roles"
@ -38,7 +38,7 @@ const RolesTable = ({
{roles.length
? roles
.filter(r => !r.hidden)
.map(role => (
.map(role =>
<RoleRow
key={role.links.self}
allUsers={allUsers}
@ -53,13 +53,12 @@ const RolesTable = ({
isEditing={role.isEditing}
isNew={role.isNew}
/>
))
)
: <EmptyRow tableName={'Roles'} />}
</tbody>
</table>
</div>
</div>
)
const {arrayOf, bool, func, shape, string} = PropTypes

View File

@ -93,12 +93,9 @@ const UserRow = ({
onApply={handleUpdateRoles}
buttonSize="btn-xs"
buttonColor="btn-primary"
customClass={classnames(
`dropdown-${USERS_TABLE.colRoles}`,
{
'admin-table--multi-select-empty': !roles.length,
}
)}
customClass={classnames(`dropdown-${USERS_TABLE.colRoles}`, {
'admin-table--multi-select-empty': !roles.length,
})}
/>
</td>
: null}

View File

@ -19,7 +19,7 @@ const UsersTable = ({
onUpdatePermissions,
onUpdateRoles,
onUpdatePassword,
}) => (
}) =>
<div className="panel panel-default">
<FilterBar
type="users"
@ -42,7 +42,7 @@ const UsersTable = ({
{users.length
? users
.filter(u => !u.hidden)
.map(user => (
.map(user =>
<UserRow
key={user.links.self}
user={user}
@ -59,13 +59,12 @@ const UsersTable = ({
onUpdateRoles={onUpdateRoles}
onUpdatePassword={onUpdatePassword}
/>
))
)
: <EmptyRow tableName={'Users'} />}
</tbody>
</table>
</div>
</div>
)
const {arrayOf, bool, func, shape, string} = PropTypes

View File

@ -62,7 +62,7 @@ export default function admin(state = initialState, action) {
const {database} = action.payload
const databases = state.databases.map(
db =>
(db.links.self === database.links.self
db.links.self === database.links.self
? {
...database,
retentionPolicies: [
@ -70,7 +70,7 @@ export default function admin(state = initialState, action) {
...database.retentionPolicies,
],
}
: db)
: db
)
return {...state, databases}
@ -112,15 +112,15 @@ export default function admin(state = initialState, action) {
const newState = {
databases: state.databases.map(
db =>
(db.links.self === database.links.self
db.links.self === database.links.self
? {
...db,
retentionPolicies: db.retentionPolicies.map(
rp =>
(rp.links.self === stale.links.self ? {...synced} : rp)
rp.links.self === stale.links.self ? {...synced} : rp
),
}
: db)
: db
),
}
@ -152,7 +152,7 @@ export default function admin(state = initialState, action) {
const newState = {
databases: state.databases.map(
db =>
(db.links.self === database.links.self ? {...db, ...updates} : db)
db.links.self === database.links.self ? {...db, ...updates} : db
),
}
@ -165,17 +165,17 @@ export default function admin(state = initialState, action) {
const newState = {
databases: state.databases.map(
db =>
(db.links.self === database.links.self
db.links.self === database.links.self
? {
...db,
retentionPolicies: db.retentionPolicies.map(
rp =>
(rp.links.self === retentionPolicy.links.self
rp.links.self === retentionPolicy.links.self
? {...rp, ...updates}
: rp)
: rp
),
}
: db)
: db
),
}
@ -216,14 +216,14 @@ export default function admin(state = initialState, action) {
const newState = {
databases: state.databases.map(
db =>
(db.links.self === database.links.self
db.links.self === database.links.self
? {
...db,
retentionPolicies: db.retentionPolicies.filter(
rp => rp.links.self !== retentionPolicy.links.self
),
}
: db)
: db
),
}
@ -235,9 +235,7 @@ export default function admin(state = initialState, action) {
const newState = {
databases: state.databases.map(
db =>
(db.links.self === database.links.self
? {...db, deleteCode: ''}
: db)
db.links.self === database.links.self ? {...db, deleteCode: ''} : db
),
}

View File

@ -17,12 +17,12 @@ const Login = ({authData: {auth}}) => {
<h1 className="auth-text-logo">Chronograf</h1>
<p><strong>{VERSION}</strong> / Time-Series Data Visualization</p>
{auth.links &&
auth.links.map(({name, login, label}) => (
auth.links.map(({name, login, label}) =>
<a key={name} className="btn btn-primary" href={login}>
<span className={`icon ${name}`} />
Login with {label}
</a>
))}
)}
</div>
<p className="auth-credits">
Made by <span className="icon cubo-uniform" />InfluxData

View File

@ -19,7 +19,7 @@ const OverlayControls = props => {
<div className="overlay-controls--right">
<p>Visualization Type:</p>
<ul className="nav nav-tablist nav-tablist-sm">
{graphTypes.map(graphType => (
{graphTypes.map(graphType =>
<li
key={graphType.type}
className={classnames({
@ -29,7 +29,7 @@ const OverlayControls = props => {
>
{graphType.menuOption}
</li>
))}
)}
</ul>
<ConfirmButtons
onCancel={onCancel}

View File

@ -10,7 +10,7 @@ const TemplateControlBar = ({
onSelectTemplate,
onOpenTemplateManager,
isOpen,
}) => (
}) =>
<div className={classnames('template-control-bar', {show: isOpen})}>
<div className="template-control--container">
<div className="template-control--controls">
@ -53,7 +53,6 @@ const TemplateControlBar = ({
</button>
</div>
</div>
)
const {arrayOf, bool, func, shape, string} = PropTypes

View File

@ -2,8 +2,7 @@ import React, {Component, PropTypes} from 'react'
import classnames from 'classnames'
import uuid from 'node-uuid'
import TemplateVariableTable
from 'src/dashboards/components/TemplateVariableTable'
import TemplateVariableTable from 'src/dashboards/components/TemplateVariableTable'
import {TEMPLATE_VARIABLE_TYPES} from 'src/dashboards/constants'
@ -19,7 +18,7 @@ const TemplateVariableManager = ({
onDelete,
tempVarAlreadyExists,
isEdited,
}) => (
}) =>
<div className="template-variable-manager">
<div className="template-variable-manager--header">
<div className="page-header__left">
@ -59,7 +58,6 @@ const TemplateVariableManager = ({
/>
</div>
</div>
)
class TemplateVariableManagerWrapper extends Component {
constructor(props) {

View File

@ -9,18 +9,14 @@ import classnames from 'classnames'
import Dropdown from 'shared/components/Dropdown'
import DeleteConfirmButtons from 'shared/components/DeleteConfirmButtons'
import TemplateQueryBuilder
from 'src/dashboards/components/TemplateQueryBuilder'
import TemplateQueryBuilder from 'src/dashboards/components/TemplateQueryBuilder'
import {
runTemplateVariableQuery as runTemplateVariableQueryAJAX,
} from 'src/dashboards/apis'
import {runTemplateVariableQuery as runTemplateVariableQueryAJAX} from 'src/dashboards/apis'
import parsers from 'shared/parsing'
import {TEMPLATE_TYPES} from 'src/dashboards/constants'
import generateTemplateVariableQuery
from 'src/dashboards/utils/templateVariableQueryGenerator'
import generateTemplateVariableQuery from 'src/dashboards/utils/templateVariableQueryGenerator'
import {errorThrown as errorThrownAction} from 'shared/actions/errors'
import {publishAutoDismissingNotification} from 'shared/dispatchers'
@ -117,7 +113,7 @@ const TemplateVariableRow = ({
onSubmit,
onDelete,
onErrorThrown,
}) => (
}) =>
<form
className={classnames('template-variable-manager--table-row', {
editing: isEditing,
@ -178,7 +174,6 @@ const TemplateVariableRow = ({
/>
</div>
</form>
)
const TableInput = ({
name,

View File

@ -9,7 +9,7 @@ const TemplateVariableTable = ({
onRunQueryFailure,
onDelete,
tempVarAlreadyExists,
}) => (
}) =>
<div className="template-variable-manager--table">
{templates.length
? <div className="template-variable-manager--table-container">
@ -20,7 +20,7 @@ const TemplateVariableTable = ({
<div className="tvm--col-4" />
</div>
<div className="template-variable-manager--table-rows">
{templates.map(t => (
{templates.map(t =>
<TemplateVariableRow
key={t.id}
source={source}
@ -30,7 +30,7 @@ const TemplateVariableTable = ({
onDelete={onDelete}
tempVarAlreadyExists={tempVarAlreadyExists}
/>
))}
)}
</div>
</div>
: <div className="generic-empty-state">
@ -39,7 +39,6 @@ const TemplateVariableTable = ({
</h4>
</div>}
</div>
)
const {arrayOf, bool, func, shape, string} = PropTypes

View File

@ -68,7 +68,8 @@ export const TEMPLATE_VARIABLE_QUERIES = {
measurements: 'SHOW MEASUREMENTS ON :database:',
fieldKeys: 'SHOW FIELD KEYS ON :database: FROM :measurement:',
tagKeys: 'SHOW TAG KEYS ON :database: FROM :measurement:',
tagValues: 'SHOW TAG VALUES ON :database: FROM :measurement: WITH KEY=:tagKey:',
tagValues:
'SHOW TAG VALUES ON :database: FROM :measurement: WITH KEY=:tagKey:',
}
export const MATCH_INCOMPLETE_TEMPLATES = /:[\w-]*/g

View File

@ -10,8 +10,7 @@ import CellEditorOverlay from 'src/dashboards/components/CellEditorOverlay'
import DashboardHeader from 'src/dashboards/components/DashboardHeader'
import DashboardHeaderEdit from 'src/dashboards/components/DashboardHeaderEdit'
import Dashboard from 'src/dashboards/components/Dashboard'
import TemplateVariableManager
from 'src/dashboards/components/TemplateVariableManager'
import TemplateVariableManager from 'src/dashboards/components/TemplateVariableManager'
import {errorThrown as errorThrownAction} from 'shared/actions/errors'
@ -260,8 +259,8 @@ class DashboardPage extends Component {
],
}
const templatesIncludingDashTime = (dashboard &&
dashboard.templates.concat(dashboardTime)) || []
const templatesIncludingDashTime =
(dashboard && dashboard.templates.concat(dashboardTime)) || []
const {selectedCell, isEditMode, isTemplating} = this.state
@ -314,13 +313,13 @@ class DashboardPage extends Component {
showTemplateControlBar={showTemplateControlBar}
>
{dashboards
? dashboards.map((d, i) => (
? dashboards.map((d, i) =>
<li className="dropdown-item" key={i}>
<Link to={`/sources/${sourceID}/dashboards/${d.id}`}>
{d.name}
</Link>
</li>
))
)
: null}
</DashboardHeader>}
{dashboard

View File

@ -97,7 +97,7 @@ const DashboardsPage = React.createClass({
</tr>
</thead>
<tbody>
{dashboards.map(dashboard => (
{dashboards.map(dashboard =>
<tr key={dashboard.id} className="">
<td className="monotype">
<Link
@ -112,7 +112,7 @@ const DashboardsPage = React.createClass({
buttonSize="btn-xs"
/>
</tr>
))}
)}
</tbody>
</table>
: <div className="generic-empty-state">

View File

@ -1,6 +1,4 @@
import {
writeLineProtocol as writeLineProtocolAJAX,
} from 'src/data_explorer/apis'
import {writeLineProtocol as writeLineProtocolAJAX} from 'src/data_explorer/apis'
import {errorThrown} from 'shared/actions/errors'
import {publishAutoDismissingNotification} from 'shared/dispatchers'

View File

@ -66,9 +66,16 @@ const DatabaseDropdown = React.createClass({
return (
<Dropdown
className="dropdown-160 query-builder--db-dropdown"
items={namespaces.map(n => ({...n, text: `${n.database}.${n.retentionPolicy}`}))}
items={namespaces.map(n => ({
...n,
text: `${n.database}.${n.retentionPolicy}`,
}))}
onChoose={onChooseNamespace}
selected={(query.database && query.retentionPolicy) ? `${query.database}.${query.retentionPolicy}` : 'Choose a DB & RP'}
selected={
query.database && query.retentionPolicy
? `${query.database}.${query.retentionPolicy}`
: 'Choose a DB & RP'
}
/>
)
},

View File

@ -1,8 +1,7 @@
import React, {PropTypes} from 'react'
import FieldListItem from 'src/data_explorer/components/FieldListItem'
import GroupByTimeDropdown
from 'src/data_explorer/components/GroupByTimeDropdown'
import GroupByTimeDropdown from 'src/data_explorer/components/GroupByTimeDropdown'
import FancyScrollbar from 'shared/components/FancyScrollbar'
import {showFieldKeys} from 'shared/apis/metaQuery'

View File

@ -69,7 +69,12 @@ const QueryMaker = React.createClass({
render() {
const {height, top, layout} = this.props
return (
<div className={classnames('query-maker', {'query-maker--panel': layout === 'panel'})} style={{height, top}}>
<div
className={classnames('query-maker', {
'query-maker--panel': layout === 'panel',
})}
style={{height, top}}
>
{this.renderQueryTabList()}
{this.renderQueryBuilder()}
</div>
@ -77,7 +82,14 @@ const QueryMaker = React.createClass({
},
renderQueryBuilder() {
const {timeRange, actions, source, templates, layout, isInDataExplorer} = this.props
const {
timeRange,
actions,
source,
templates,
layout,
isInDataExplorer,
} = this.props
const query = this.getActiveQuery()
if (!query) {
@ -145,8 +157,8 @@ const QueryMaker = React.createClass({
onDelete={onDeleteQuery}
queryTabText={
q.rawText ||
buildInfluxQLQuery(timeRange, q) ||
`Query ${i + 1}`
buildInfluxQLQuery(timeRange, q) ||
`Query ${i + 1}`
}
/>
)

View File

@ -153,7 +153,7 @@ const ChronoTable = React.createClass({
<div style={{width: '100%', height: '100%', position: 'relative'}}>
{series.length < maximumTabsCount
? <div className="table--tabs">
{series.map(({name}, i) => (
{series.map(({name}, i) =>
<TabItem
isActive={i === activeSeriesIndex}
key={i}
@ -161,7 +161,7 @@ const ChronoTable = React.createClass({
index={i}
onClickTab={this.handleClickTab}
/>
))}
)}
</div>
: <Dropdown
className="dropdown-160 table--tabs-dropdown"
@ -192,12 +192,11 @@ const ChronoTable = React.createClass({
key={columnName}
columnKey={columnName}
header={<Cell>{columnName}</Cell>}
cell={({rowIndex}) => (
cell={({rowIndex}) =>
<CustomCell
columnName={columnName}
data={values[rowIndex][colIndex]}
/>
)}
/>}
width={columnWidths[columnName] || width}
minWidth={minWidth}
/>
@ -210,14 +209,13 @@ const ChronoTable = React.createClass({
},
})
const TabItem = ({name, index, onClickTab, isActive}) => (
const TabItem = ({name, index, onClickTab, isActive}) =>
<div
className={classnames('table--tab', {active: isActive})}
onClick={() => onClickTab(index)}
>
{name}
</div>
)
TabItem.propTypes = {
name: string,

View File

@ -2,11 +2,11 @@ import React, {PropTypes} from 'react'
import classnames from 'classnames'
import _ from 'lodash'
const VisHeader = ({views, view, onToggleView, name}) => (
const VisHeader = ({views, view, onToggleView, name}) =>
<div className="graph-heading">
{views.length
? <ul className="nav nav-tablist nav-tablist-sm">
{views.map(v => (
{views.map(v =>
<li
key={v}
onClick={() => onToggleView(v)}
@ -14,12 +14,11 @@ const VisHeader = ({views, view, onToggleView, name}) => (
>
{_.upperFirst(v)}
</li>
))}
)}
</ul>
: null}
<div className="graph-title">{name}</div>
</div>
)
const {arrayOf, func, string} = PropTypes

View File

@ -34,7 +34,8 @@ export const QUERY_TEMPLATES = [
},
{
text: 'Show Tag Values',
query: 'SHOW TAG VALUES ON "db_name" FROM "measurement_name" WITH KEY = "tag_key"',
query:
'SHOW TAG VALUES ON "db_name" FROM "measurement_name" WITH KEY = "tag_key"',
},
{text: `${SEPARATOR}`},
{
@ -43,7 +44,8 @@ export const QUERY_TEMPLATES = [
},
{
text: 'Create Retention Policy',
query: 'CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 30d REPLICATION 1 DEFAULT',
query:
'CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 30d REPLICATION 1 DEFAULT',
},
{
text: 'Drop Retention Policy',
@ -56,7 +58,8 @@ export const QUERY_TEMPLATES = [
},
{
text: 'Create Continuous Query',
query: 'CREATE CONTINUOUS QUERY "cq_name" ON "db_name" BEGIN SELECT min("field") INTO "target_measurement" FROM "current_measurement" GROUP BY time(30m) END',
query:
'CREATE CONTINUOUS QUERY "cq_name" ON "db_name" BEGIN SELECT min("field") INTO "target_measurement" FROM "current_measurement" GROUP BY time(30m) END',
},
{
text: 'Drop Continuous Query',
@ -70,7 +73,8 @@ export const QUERY_TEMPLATES = [
},
{
text: 'Create Admin User',
query: 'CREATE USER "username" WITH PASSWORD \'password\' WITH ALL PRIVILEGES',
query:
'CREATE USER "username" WITH PASSWORD \'password\' WITH ALL PRIVILEGES',
},
{text: 'Drop User', query: 'DROP USER "username"'},
{text: `${SEPARATOR}`},

View File

@ -231,9 +231,9 @@ class AlertTabs extends Component {
{tabs.map((t, i) => <Tab key={tabs[i].type}>{tabs[i].type}</Tab>)}
</TabList>
<TabPanels customClass="config-endpoint--tab-contents">
{tabs.map((t, i) => (
{tabs.map((t, i) =>
<TabPanel key={tabs[i].type}>{t.component}</TabPanel>
))}
)}
</TabPanels>
</Tabs>
</div>

View File

@ -129,7 +129,8 @@ class KapacitorForm extends Component {
<div className="panel-body">
<div className="generic-empty-state">
<h4 className="no-user-select">
Connect to an active Kapacitor instance to configure alerting endpoints
Connect to an active Kapacitor instance to configure alerting
endpoints
</h4>
</div>
</div>

View File

@ -29,7 +29,9 @@ const KapacitorRules = ({
</PageContents>
)
}
const tableHeader = rules.length === 1 ? '1 Alert Rule' : `${rules.length} Alert Rules`
const tableHeader = rules.length === 1
? '1 Alert Rule'
: `${rules.length} Alert Rules`
return (
<PageContents source={source}>
<div className="panel-heading u-flex u-ai-center u-jc-space-between">
@ -51,7 +53,7 @@ const KapacitorRules = ({
)
}
const PageContents = ({children, source}) => (
const PageContents = ({children, source}) =>
<div className="page">
<div className="page-header">
<div className="page-header__container">
@ -75,7 +77,6 @@ const PageContents = ({children, source}) => (
</div>
</FancyScrollbar>
</div>
)
const {arrayOf, bool, func, shape, node} = PropTypes

View File

@ -1,7 +1,7 @@
import React, {PropTypes} from 'react'
import {Link} from 'react-router'
const KapacitorRulesTable = ({rules, source, onDelete, onChangeRuleStatus}) => (
const KapacitorRulesTable = ({rules, source, onDelete, onChangeRuleStatus}) =>
<div className="panel-body">
<table className="table v-center">
<thead>
@ -29,9 +29,8 @@ const KapacitorRulesTable = ({rules, source, onDelete, onChangeRuleStatus}) => (
</tbody>
</table>
</div>
)
const RuleRow = ({rule, source, onDelete, onChangeRuleStatus}) => (
const RuleRow = ({rule, source, onDelete, onChangeRuleStatus}) =>
<tr key={rule.id}>
<td className="monotype">
<RuleTitle rule={rule} source={source} />
@ -57,7 +56,6 @@ const RuleRow = ({rule, source, onDelete, onChangeRuleStatus}) => (
</button>
</td>
</tr>
)
const RuleTitle = ({rule: {id, name, query}, source}) => {
// no queryConfig means the rule was manually created outside of Chronograf

View File

@ -2,8 +2,7 @@ import React, {PropTypes} from 'react'
import classnames from 'classnames'
import ReactTooltip from 'react-tooltip'
import RuleMessageAlertConfig
from 'src/kapacitor/components/RuleMessageAlertConfig'
import RuleMessageAlertConfig from 'src/kapacitor/components/RuleMessageAlertConfig'
import {RULE_MESSAGE_TEMPLATES as templates, DEFAULT_ALERTS} from '../constants'
@ -59,7 +58,7 @@ export const RuleMessage = React.createClass({
<div className="rule-section--row rule-section--row-first rule-section--border-bottom">
<p>Send this Alert to:</p>
<ul className="nav nav-tablist nav-tablist-sm nav-tablist-malachite">
{alerts.map(alert => (
{alerts.map(alert =>
<li
key={alert.text}
className={classnames({
@ -69,7 +68,7 @@ export const RuleMessage = React.createClass({
>
{alert.text}
</li>
))}
)}
</ul>
</div>
<RuleMessageAlertConfig

View File

@ -27,9 +27,9 @@ export const ValuesSection = React.createClass({
<div className="rule-section--body">
<Tabs initialIndex={initialIndex} onSelect={this.handleChooseTrigger}>
<TabList isKapacitorTabs="true">
{TABS.map(tab => (
{TABS.map(tab =>
<Tab key={tab} isKapacitorTab={true}>{tab}</Tab>
))}
)}
</TabList>
<TabPanels>

View File

@ -157,7 +157,8 @@ const TelegramConfig = React.createClass({
ref={r => (this.disableNotification = r)}
/>
<label htmlFor="disableNotification">
Disable notifications on iOS devices and disable sounds on Android devices. Android users continue to receive notifications.
Disable notifications on iOS devices and disable sounds on Android
devices. Android users continue to receive notifications.
</label>
</div>
</div>

View File

@ -56,19 +56,23 @@ export const RULE_MESSAGE_TEMPLATES = {
taskName: {label: '{{.TaskName}}', text: 'The name of the task'},
group: {
label: '{{.Group}}',
text: 'Concatenation of all group-by tags of the form <code>&#91;key=value,&#93;+</code>. If no groupBy is performed equal to literal &quot;nil&quot;',
text:
'Concatenation of all group-by tags of the form <code>&#91;key=value,&#93;+</code>. If no groupBy is performed equal to literal &quot;nil&quot;',
},
tags: {
label: '{{.Tags}}',
text: 'Map of tags. Use <code>&#123;&#123; index .Tags &quot;key&quot; &#125;&#125;</code> to get a specific tag value',
text:
'Map of tags. Use <code>&#123;&#123; index .Tags &quot;key&quot; &#125;&#125;</code> to get a specific tag value',
},
level: {
label: '{{.Level}}',
text: 'Alert Level, one of: <code>INFO</code><code>WARNING</code><code>CRITICAL</code>',
text:
'Alert Level, one of: <code>INFO</code><code>WARNING</code><code>CRITICAL</code>',
},
fields: {
label: '{{ index .Fields "value" }}',
text: 'Map of fields. Use <code>&#123;&#123; index .Fields &quot;key&quot; &#125;&#125;</code> to get a specific field value',
text:
'Map of fields. Use <code>&#123;&#123; index .Fields &quot;key&quot; &#125;&#125;</code> to get a specific field value',
},
time: {
label: '{{.Time}}',

View File

@ -1,13 +1,7 @@
import React, {PropTypes} from 'react'
import classnames from 'classnames'
const ConfirmButtons = ({
onConfirm,
item,
onCancel,
buttonSize,
isDisabled,
}) => (
const ConfirmButtons = ({onConfirm, item, onCancel, buttonSize, isDisabled}) =>
<div className="confirm-buttons">
<button
className={classnames('btn btn-info btn-square', {
@ -28,7 +22,6 @@ const ConfirmButtons = ({
<span className="icon checkmark" />
</button>
</div>
)
const {func, oneOfType, shape, string, bool} = PropTypes

View File

@ -54,7 +54,9 @@ class CustomTimeRangeDropdown extends Component {
onClick={onToggle}
>
<span className="icon clock" />
<span className="dropdown-selected">{`${moment(lower).format('MMM Do HH:mm')}${moment(upper).format('MMM Do HH:mm')}`}</span>
<span className="dropdown-selected">{`${moment(lower).format(
'MMM Do HH:mm'
)} ${moment(upper).format('MMM Do HH:mm')}`}</span>
<span className="caret" />
</button>
<div className="custom-time--container">

View File

@ -4,7 +4,7 @@ import classnames from 'classnames'
import OnClickOutside from 'shared/components/OnClickOutside'
import ConfirmButtons from 'shared/components/ConfirmButtons'
const DeleteButton = ({onClickDelete, buttonSize}) => (
const DeleteButton = ({onClickDelete, buttonSize}) =>
<button
className={classnames('btn btn-danger table--show-on-row-hover', {
[buttonSize]: buttonSize,
@ -13,7 +13,6 @@ const DeleteButton = ({onClickDelete, buttonSize}) => (
>
Delete
</button>
)
class DeleteConfirmButtons extends Component {
constructor(props) {

View File

@ -3,10 +3,9 @@ import React from 'react'
import DeleteConfirmButtons from 'shared/components/DeleteConfirmButtons'
import {ADMIN_TABLE} from 'src/admin/constants/tableSizing'
const DeleteConfirmTableCell = props => (
const DeleteConfirmTableCell = props =>
<td className="text-right" style={{width: `${ADMIN_TABLE.colDelete}px`}}>
<DeleteConfirmButtons {...props} />
</td>
)
export default DeleteConfirmTableCell

View File

@ -25,18 +25,14 @@ class FancyScrollbar extends Component {
autoHideDuration={250}
autoHeight={autoHeight}
autoHeightMax={maxHeight}
renderTrackHorizontal={props => (
<div {...props} className="fancy-scroll--track-h" />
)}
renderTrackVertical={props => (
<div {...props} className="fancy-scroll--track-v" />
)}
renderThumbHorizontal={props => (
<div {...props} className="fancy-scroll--thumb-h" />
)}
renderThumbVertical={props => (
<div {...props} className="fancy-scroll--thumb-v" />
)}
renderTrackHorizontal={props =>
<div {...props} className="fancy-scroll--track-h" />}
renderTrackVertical={props =>
<div {...props} className="fancy-scroll--track-v" />}
renderThumbHorizontal={props =>
<div {...props} className="fancy-scroll--thumb-h" />}
renderThumbVertical={props =>
<div {...props} className="fancy-scroll--thumb-v" />}
>
{children}
</Scrollbars>

View File

@ -1,12 +1,11 @@
import React, {PropTypes} from 'react'
const LoadingDots = ({className}) => (
const LoadingDots = ({className}) =>
<div className={`loading-dots ${className}`}>
<div />
<div />
<div />
</div>
)
const {string} = PropTypes

View File

@ -116,7 +116,7 @@ const NameableGraph = React.createClass({
})
const ContextMenu = OnClickOutside(
({isOpen, toggleMenu, onEdit, onRename, onDelete, cell}) => (
({isOpen, toggleMenu, onEdit, onRename, onDelete, cell}) =>
<div
className={classnames('dash-graph--options', {
'dash-graph--options-show': isOpen,
@ -132,6 +132,5 @@ const ContextMenu = OnClickOutside(
<li onClick={() => onDelete(cell)}>Delete</li>
</ul>
</div>
)
)
export default NameableGraph

View File

@ -13,7 +13,8 @@ const NoKapacitorError = React.createClass({
return (
<div>
<p>
The current source does not have an associated Kapacitor instance, please configure one.
The current source does not have an associated Kapacitor instance,
please configure one.
</p>
<Link to={path}>Add Kapacitor</Link>
</div>

View File

@ -2,9 +2,8 @@ import React, {PropTypes} from 'react'
import {OVERLAY_TECHNOLOGY} from 'shared/constants/classNames'
const OverlayTechnologies = ({children}) => (
const OverlayTechnologies = ({children}) =>
<div className={OVERLAY_TECHNOLOGY}>{children}</div>
)
const {node} = PropTypes

View File

@ -1,7 +1,7 @@
import React, {PropTypes} from 'react'
import ReactTooltip from 'react-tooltip'
const QuestionMarkTooltip = ({tipID, tipContent}) => (
const QuestionMarkTooltip = ({tipID, tipContent}) =>
<div className="question-mark-tooltip">
<div
className="question-mark-tooltip--icon"
@ -19,7 +19,6 @@ const QuestionMarkTooltip = ({tipID, tipContent}) => (
class="influx-tooltip__hover place-bottom"
/>
</div>
)
const {string} = PropTypes

View File

@ -7,9 +7,9 @@ const TemplateDrawer = ({
selected,
onMouseOverTempVar,
onClickTempVar,
}) => (
}) =>
<div className="template-drawer">
{templates.map(t => (
{templates.map(t =>
<div
className={classnames('template-drawer--item', {
'template-drawer--selected': t.tempVar === selected.tempVar,
@ -22,9 +22,8 @@ const TemplateDrawer = ({
>
{' '}{t.tempVar}{' '}
</div>
))}
)}
</div>
)
const {arrayOf, func, shape, string} = PropTypes

View File

@ -1,7 +1,7 @@
import React, {PropTypes} from 'react'
import ReactTooltip from 'react-tooltip'
const Tooltip = ({tip, children}) => (
const Tooltip = ({tip, children}) =>
<div>
<div data-tip={tip}>{children}</div>
<ReactTooltip
@ -12,7 +12,6 @@ const Tooltip = ({tip, children}) => (
class="influx-tooltip place-bottom"
/>
</div>
)
const {shape, string} = PropTypes

View File

@ -1,7 +1,7 @@
import React, {PropTypes} from 'react'
import classnames from 'classnames'
const YesNoButtons = ({onConfirm, onCancel, buttonSize}) => (
const YesNoButtons = ({onConfirm, onCancel, buttonSize}) =>
<div>
<button
className={classnames('btn btn-square btn-info', {
@ -20,7 +20,6 @@ const YesNoButtons = ({onConfirm, onCancel, buttonSize}) => (
<span className="icon checkmark" />
</button>
</div>
)
const {func, string} = PropTypes

View File

@ -41,7 +41,8 @@ const RenameCluster = React.createClass({
<div className="row">
<div className="col-md-8 col-md-offset-2 text-center">
<p>
A cluster can have an alias that replaces its ID in the interface.
A cluster can have an alias that replaces its ID in the
interface.
<br />
This does not affect the cluster ID.
</p>

View File

@ -73,7 +73,7 @@ const InfluxTable = ({
router,
setActiveKapacitor,
handleDeleteKapacitor,
}) => (
}) =>
<div className="row">
<div className="col-md-12">
<div className="panel panel-minimal">
@ -146,7 +146,6 @@ const InfluxTable = ({
</div>
</div>
</div>
)
const {array, func, shape, string} = PropTypes

View File

@ -22,7 +22,7 @@ export const SourceForm = React.createClass({
name: this.sourceName.value,
username: this.sourceUsername.value,
password: this.sourcePassword.value,
'default': this.sourceDefault.checked,
default: this.sourceDefault.checked,
telegraf: this.sourceTelegraf.value,
insecureSkipVerify: this.sourceInsecureSkipVerify
? this.sourceInsecureSkipVerify.checked