Fix positioning of CustomTimeIndicator
parent
711cb48d14
commit
924960bbcc
|
@ -57,6 +57,7 @@ class LayoutCell extends Component {
|
||||||
<Authorized requiredRole={EDITOR_ROLE}>
|
<Authorized requiredRole={EDITOR_ROLE}>
|
||||||
<LayoutCellMenu
|
<LayoutCellMenu
|
||||||
cell={cell}
|
cell={cell}
|
||||||
|
queries={queries}
|
||||||
dataExists={!!celldata.length}
|
dataExists={!!celldata.length}
|
||||||
isDeleting={isDeleting}
|
isDeleting={isDeleting}
|
||||||
isEditable={isEditable}
|
isEditable={isEditable}
|
||||||
|
@ -67,11 +68,7 @@ class LayoutCell extends Component {
|
||||||
onCSVDownload={this.handleCSVDownload}
|
onCSVDownload={this.handleCSVDownload}
|
||||||
/>
|
/>
|
||||||
</Authorized>
|
</Authorized>
|
||||||
<LayoutCellHeader
|
<LayoutCellHeader cellName={cell.name} isEditable={isEditable} />
|
||||||
queries={queries}
|
|
||||||
cellName={cell.name}
|
|
||||||
isEditable={isEditable}
|
|
||||||
/>
|
|
||||||
<div className="dash-graph--container">
|
<div className="dash-graph--container">
|
||||||
{queries.length
|
{queries.length
|
||||||
? children
|
? children
|
||||||
|
|
|
@ -1,14 +1,11 @@
|
||||||
import React, {PropTypes} from 'react'
|
import React, {PropTypes} from 'react'
|
||||||
|
|
||||||
import CustomTimeIndicator from 'shared/components/CustomTimeIndicator'
|
|
||||||
|
|
||||||
import {NEW_DEFAULT_DASHBOARD_CELL} from 'src/dashboards/constants/index'
|
import {NEW_DEFAULT_DASHBOARD_CELL} from 'src/dashboards/constants/index'
|
||||||
|
|
||||||
const LayoutCellHeader = ({queries, isEditable, cellName}) => {
|
const LayoutCellHeader = ({isEditable, cellName}) => {
|
||||||
const cellNameIsDefault = cellName === NEW_DEFAULT_DASHBOARD_CELL.name
|
const cellNameIsDefault = cellName === NEW_DEFAULT_DASHBOARD_CELL.name
|
||||||
|
|
||||||
const headingClass = `dash-graph--heading ${isEditable
|
const headingClass = `dash-graph--heading ${isEditable
|
||||||
? 'dash-graph--heading-draggable'
|
? 'dash-graph--draggable dash-graph--heading-draggable'
|
||||||
: ''}`
|
: ''}`
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -21,20 +18,14 @@ const LayoutCellHeader = ({queries, isEditable, cellName}) => {
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{cellName}
|
{cellName}
|
||||||
<div className="dash-graph--custom-indicators">
|
|
||||||
{queries && queries.length
|
|
||||||
? <CustomTimeIndicator queries={queries} />
|
|
||||||
: null}
|
|
||||||
</div>
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const {arrayOf, bool, shape, string} = PropTypes
|
const {bool, string} = PropTypes
|
||||||
|
|
||||||
LayoutCellHeader.propTypes = {
|
LayoutCellHeader.propTypes = {
|
||||||
queries: arrayOf(shape()),
|
|
||||||
isEditable: bool,
|
isEditable: bool,
|
||||||
cellName: string,
|
cellName: string,
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,61 +1,62 @@
|
||||||
import React, {PropTypes} from 'react'
|
import React, {PropTypes} from 'react'
|
||||||
import OnClickOutside from 'react-onclickoutside'
|
import OnClickOutside from 'react-onclickoutside'
|
||||||
|
import CustomTimeIndicator from 'shared/components/CustomTimeIndicator'
|
||||||
|
|
||||||
const LayoutCellMenu = OnClickOutside(
|
const LayoutCellMenu = OnClickOutside(
|
||||||
({
|
({
|
||||||
isDeleting,
|
|
||||||
onEdit,
|
|
||||||
onDeleteClick,
|
|
||||||
onDelete,
|
|
||||||
onCSVDownload,
|
|
||||||
dataExists,
|
|
||||||
cell,
|
cell,
|
||||||
|
onEdit,
|
||||||
|
queries,
|
||||||
|
onDelete,
|
||||||
|
isEditable,
|
||||||
|
dataExists,
|
||||||
|
isDeleting,
|
||||||
|
onDeleteClick,
|
||||||
|
onCSVDownload,
|
||||||
}) =>
|
}) =>
|
||||||
<div
|
<div className="dash-graph-context">
|
||||||
className={
|
<div
|
||||||
isDeleting
|
className={`${isEditable
|
||||||
? 'dash-graph-context dash-graph-context__deleting'
|
? 'dash-graph--custom-indicators dash-graph--draggable'
|
||||||
: 'dash-graph-context'
|
: 'dash-graph--custom-indicators'}`}
|
||||||
}
|
>
|
||||||
>
|
{queries && queries.length && <CustomTimeIndicator queries={queries} />}
|
||||||
<div className="dash-graph-context--button" onClick={onEdit(cell)}>
|
|
||||||
<span className="icon pencil" />
|
|
||||||
</div>
|
</div>
|
||||||
{dataExists
|
{isEditable &&
|
||||||
? <div
|
<div clasnName="dash-graph--buttons">
|
||||||
className="dash-graph-context--button"
|
<div className="dash-graph-context--button" onClick={onEdit(cell)}>
|
||||||
onClick={onCSVDownload(cell)}
|
<span className="icon pencil" />
|
||||||
>
|
|
||||||
<span className="icon download" />
|
|
||||||
</div>
|
</div>
|
||||||
: null}
|
{dataExists &&
|
||||||
{isDeleting
|
|
||||||
? <div className="dash-graph-context--button active">
|
|
||||||
<span className="icon trash" />
|
|
||||||
<div
|
<div
|
||||||
className="dash-graph-context--confirm"
|
className="dash-graph-context--button"
|
||||||
onClick={onDelete(cell)}
|
onClick={onCSVDownload(cell)}
|
||||||
>
|
>
|
||||||
Confirm
|
<span className="icon download" />
|
||||||
</div>
|
</div>}
|
||||||
</div>
|
{isDeleting
|
||||||
: <div className="dash-graph-context--button" onClick={onDeleteClick}>
|
? <div className="dash-graph-context--button active">
|
||||||
<span className="icon trash" />
|
<span className="icon trash" />
|
||||||
</div>}
|
<div
|
||||||
|
className="dash-graph-context--confirm"
|
||||||
|
onClick={onDelete(cell)}
|
||||||
|
>
|
||||||
|
Confirm
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
: <div
|
||||||
|
className="dash-graph-context--button"
|
||||||
|
onClick={onDeleteClick}
|
||||||
|
>
|
||||||
|
<span className="icon trash" />
|
||||||
|
</div>}
|
||||||
|
</div>}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
||||||
const LayoutCellMenuContainer = props => {
|
const {arrayOf, bool, func, shape} = PropTypes
|
||||||
if (!props.isEditable) {
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
|
|
||||||
return <LayoutCellMenu {...props} />
|
LayoutCellMenu.propTypes = {
|
||||||
}
|
|
||||||
|
|
||||||
const {bool, func, shape} = PropTypes
|
|
||||||
|
|
||||||
LayoutCellMenuContainer.propTypes = {
|
|
||||||
isDeleting: bool,
|
isDeleting: bool,
|
||||||
onEdit: func,
|
onEdit: func,
|
||||||
onDelete: func,
|
onDelete: func,
|
||||||
|
@ -63,8 +64,7 @@ LayoutCellMenuContainer.propTypes = {
|
||||||
cell: shape(),
|
cell: shape(),
|
||||||
isEditable: bool,
|
isEditable: bool,
|
||||||
dataExists: bool,
|
dataExists: bool,
|
||||||
|
queries: arrayOf(shape()),
|
||||||
}
|
}
|
||||||
|
|
||||||
LayoutCellMenu.propTypes = LayoutCellMenuContainer.propTypes
|
export default LayoutCellMenu
|
||||||
|
|
||||||
export default LayoutCellMenuContainer
|
|
||||||
|
|
|
@ -106,7 +106,7 @@ class LayoutRenderer extends Component {
|
||||||
useCSSTransforms={false}
|
useCSSTransforms={false}
|
||||||
onResize={this.handleCellResize}
|
onResize={this.handleCellResize}
|
||||||
onLayoutChange={this.handleLayoutChange}
|
onLayoutChange={this.handleLayoutChange}
|
||||||
draggableHandle={'.dash-graph--name'}
|
draggableHandle={'.dash-graph--draggable'}
|
||||||
isDraggable={isDashboard}
|
isDraggable={isDashboard}
|
||||||
isResizable={isDashboard}
|
isResizable={isDashboard}
|
||||||
>
|
>
|
||||||
|
|
|
@ -186,13 +186,15 @@ $dash-graph-options-arrow: 8px;
|
||||||
.dash-graph--name.dash-graph--name__default {
|
.dash-graph--name.dash-graph--name__default {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
.dash-graph--draggable {
|
||||||
|
cursor: move !important;
|
||||||
|
}
|
||||||
.dash-graph--custom-indicators {
|
.dash-graph--custom-indicators {
|
||||||
height: 24px;
|
height: 24px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
position: absolute;
|
|
||||||
top: 3px;
|
top: 3px;
|
||||||
right: 0;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
|
cursor: default;
|
||||||
|
|
||||||
> .custom-indicator,
|
> .custom-indicator,
|
||||||
> .source-indicator {
|
> .source-indicator {
|
||||||
|
@ -225,6 +227,9 @@ $dash-graph-options-arrow: 8px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-wrap: nowrap;
|
flex-wrap: nowrap;
|
||||||
}
|
}
|
||||||
|
.dash-graph-context--buttons {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
.dash-graph-context--button {
|
.dash-graph-context--button {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
|
|
Loading…
Reference in New Issue