mirror of
https://github.com/apache/superset.git
synced 2026-07-24 23:56:22 +00:00
* adding streamlined metric editing * addressing lint issues on new metrics control * enabling druid
61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import { Label, OverlayTrigger } from 'react-bootstrap';
|
|
|
|
import AdhocMetricEditPopover from './AdhocMetricEditPopover';
|
|
import AdhocMetric from '../AdhocMetric';
|
|
import columnType from '../propTypes/columnType';
|
|
|
|
const propTypes = {
|
|
adhocMetric: PropTypes.instanceOf(AdhocMetric),
|
|
onMetricEdit: PropTypes.func.isRequired,
|
|
columns: PropTypes.arrayOf(columnType),
|
|
multi: PropTypes.bool,
|
|
datasourceType: PropTypes.string,
|
|
};
|
|
|
|
export default class AdhocMetricOption extends React.PureComponent {
|
|
constructor(props) {
|
|
super(props);
|
|
this.closeMetricEditOverlay = this.closeMetricEditOverlay.bind(this);
|
|
}
|
|
|
|
closeMetricEditOverlay() {
|
|
this.refs.overlay.hide();
|
|
}
|
|
|
|
render() {
|
|
const { adhocMetric } = this.props;
|
|
const overlay = (
|
|
<AdhocMetricEditPopover
|
|
adhocMetric={adhocMetric}
|
|
onChange={this.props.onMetricEdit}
|
|
onClose={this.closeMetricEditOverlay}
|
|
columns={this.props.columns}
|
|
datasourceType={this.props.datasourceType}
|
|
/>
|
|
);
|
|
|
|
return (
|
|
<OverlayTrigger
|
|
ref="overlay"
|
|
placement="right"
|
|
trigger="click"
|
|
disabled
|
|
overlay={overlay}
|
|
rootClose
|
|
defaultOverlayShown={!adhocMetric.fromFormData}
|
|
>
|
|
<Label style={{ margin: this.props.multi ? 0 : 3, cursor: 'pointer' }}>
|
|
<div onMouseDownCapture={(e) => { e.stopPropagation(); }}>
|
|
<span className="m-r-5 option-label">
|
|
{adhocMetric.label}
|
|
</span>
|
|
</div>
|
|
</Label>
|
|
</OverlayTrigger>
|
|
);
|
|
}
|
|
}
|
|
AdhocMetricOption.propTypes = propTypes;
|