mirror of
https://github.com/apache/superset.git
synced 2026-06-05 23:59:25 +00:00
Moving some JS folders (#4820)
* Moving folders * Pointing to new locations
This commit is contained in:
committed by
GitHub
parent
2900ca345d
commit
c0db6dbb57
136
superset/assets/src/explore/components/ControlHeader.jsx
Normal file
136
superset/assets/src/explore/components/ControlHeader.jsx
Normal file
@@ -0,0 +1,136 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { ControlLabel, OverlayTrigger, Tooltip } from 'react-bootstrap';
|
||||
import InfoTooltipWithTrigger from '../../components/InfoTooltipWithTrigger';
|
||||
import { t } from '../../locales';
|
||||
|
||||
const propTypes = {
|
||||
label: PropTypes.string,
|
||||
description: PropTypes.string,
|
||||
validationErrors: PropTypes.array,
|
||||
renderTrigger: PropTypes.bool,
|
||||
rightNode: PropTypes.node,
|
||||
leftNode: PropTypes.node,
|
||||
onClick: PropTypes.func,
|
||||
hovered: PropTypes.bool,
|
||||
tooltipOnClick: PropTypes.func,
|
||||
warning: PropTypes.string,
|
||||
danger: PropTypes.string,
|
||||
};
|
||||
|
||||
const defaultProps = {
|
||||
validationErrors: [],
|
||||
renderTrigger: false,
|
||||
hovered: false,
|
||||
};
|
||||
|
||||
export default class ControlHeader extends React.Component {
|
||||
renderOptionalIcons() {
|
||||
if (this.props.hovered) {
|
||||
return (
|
||||
<span>
|
||||
{this.props.description &&
|
||||
<span>
|
||||
<InfoTooltipWithTrigger
|
||||
label={t('description')}
|
||||
tooltip={this.props.description}
|
||||
placement="top"
|
||||
onClick={this.props.tooltipOnClick}
|
||||
/>
|
||||
{' '}
|
||||
</span>
|
||||
}
|
||||
{this.props.renderTrigger &&
|
||||
<span>
|
||||
<InfoTooltipWithTrigger
|
||||
label={t('bolt')}
|
||||
tooltip={t('Changing this control takes effect instantly')}
|
||||
placement="top"
|
||||
icon="bolt"
|
||||
/>
|
||||
{' '}
|
||||
</span>
|
||||
}
|
||||
</span>);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
render() {
|
||||
if (!this.props.label) {
|
||||
return null;
|
||||
}
|
||||
const labelClass = (this.props.validationErrors.length > 0) ? 'text-danger' : '';
|
||||
return (
|
||||
<div
|
||||
className="ControlHeader"
|
||||
>
|
||||
<div className="pull-left">
|
||||
<ControlLabel>
|
||||
{this.props.leftNode &&
|
||||
<span>{this.props.leftNode}</span>
|
||||
}
|
||||
<span
|
||||
onClick={this.props.onClick}
|
||||
className={labelClass}
|
||||
style={{ cursor: this.props.onClick ? 'pointer' : '' }}
|
||||
>
|
||||
{this.props.label}
|
||||
</span>
|
||||
{' '}
|
||||
{(this.props.warning) &&
|
||||
<span>
|
||||
<OverlayTrigger
|
||||
placement="top"
|
||||
overlay={
|
||||
<Tooltip id={'error-tooltip'}>{this.props.warning}</Tooltip>
|
||||
}
|
||||
>
|
||||
<i className="fa fa-exclamation-circle text-warning" />
|
||||
</OverlayTrigger>
|
||||
{' '}
|
||||
</span>
|
||||
}
|
||||
{(this.props.danger) &&
|
||||
<span>
|
||||
<OverlayTrigger
|
||||
placement="top"
|
||||
overlay={
|
||||
<Tooltip id={'error-tooltip'}>{this.props.danger}</Tooltip>
|
||||
}
|
||||
>
|
||||
<i className="fa fa-exclamation-circle text-danger" />
|
||||
</OverlayTrigger>
|
||||
{' '}
|
||||
</span>
|
||||
}
|
||||
{(this.props.validationErrors.length > 0) &&
|
||||
<span>
|
||||
<OverlayTrigger
|
||||
placement="top"
|
||||
overlay={
|
||||
<Tooltip id={'error-tooltip'}>
|
||||
{this.props.validationErrors.join(' ')}
|
||||
</Tooltip>
|
||||
}
|
||||
>
|
||||
<i className="fa fa-exclamation-circle text-danger" />
|
||||
</OverlayTrigger>
|
||||
{' '}
|
||||
</span>
|
||||
}
|
||||
{this.renderOptionalIcons()}
|
||||
</ControlLabel>
|
||||
</div>
|
||||
{this.props.rightNode &&
|
||||
<div className="pull-right">
|
||||
{this.props.rightNode}
|
||||
</div>
|
||||
}
|
||||
<div className="clearfix" />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
ControlHeader.propTypes = propTypes;
|
||||
ControlHeader.defaultProps = defaultProps;
|
||||
Reference in New Issue
Block a user