From d1f3612955248d93c131988d314b1f331813564a Mon Sep 17 00:00:00 2001 From: Mattia Mancini <mancini@astron.nl> Date: Wed, 7 Nov 2018 11:01:40 +0000 Subject: [PATCH] OSB-31: replaced popover component with tooltip --- .../src/components/LatestObservations.js | 59 +++++-------------- .../src/components/StationTestView.js | 4 +- 2 files changed, 17 insertions(+), 46 deletions(-) diff --git a/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/components/LatestObservations.js b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/components/LatestObservations.js index e1f1d62520f..92dc56b7c9e 100644 --- a/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/components/LatestObservations.js +++ b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/components/LatestObservations.js @@ -1,5 +1,5 @@ import React, { Component } from 'react'; -import { Table, Popover, PopoverHeader, PopoverBody } from 'reactstrap'; +import { Table, Popover, PopoverHeader, PopoverBody, Tooltip } from 'reactstrap'; import { unique_id } from '../utils/utils.js' import AutoLoadWrapper from '../utils/autoLoader.js' import * as moment from 'moment'; @@ -10,40 +10,11 @@ import './LatestObservations.css' class SORow extends Component { constructor(props){ super(props); - this.state = {mouseOverRow:false, mouseOverPopover:false, popoverOpen: false}; + this.state = {popoverOpen: false}; this.id = unique_id(); this.togglePopover = this.togglePopover.bind(this); } - onMouseOverPopover(e){ - this.setState({mouseOverPopover: true}); - - } - - onMouseOutPopover(e){ - setTimeout( - function () { - if(this.state.mouseOverRow === false && this.state.mouseOverPopover === false){ - this.setState({popoverOpen: false}) - } - - this.setState({mouseOverPopover: false}); - }.bind(this), 100) - } - - onMouseOverRow(){ - this.setState({mouseOverRow: true, popoverOpen: true}) - } - - onMouseOutRow(){ - this.setState({mouseOverRow: false}) - setTimeout( - function () { - if(this.state.mouseOverPopover === false){ - this.setState({popoverOpen: false}) - } - }.bind(this), 100) - } renderObservationID() { return this.props.data.observation_id; @@ -67,9 +38,7 @@ class SORow extends Component { } togglePopover(){ - if(this.state.mouseOverPopup === false){ - this.setState({popoverOpen: !this.state.popoverOpen}); - } + this.setState({popoverOpen: !this.state.popoverOpen}); } render() { const data = this.props.data; @@ -82,29 +51,31 @@ class SORow extends Component { <td>{station.n_errors}</td> </tr>); return ( - <tr id={this.id} onMouseOver={()=> this.onMouseOverRow()} onMouseLeave={()=>this.onMouseOutRow()} - className="hoverable"> + <tr id={this.id} className="hoverable"> <th scope="row">{ this.renderObservationID() }</th> <td>{ moment(start_datetime).format('lll') }</td> <td>{ station_involved_list.length }</td> <td>{ this.renderStationsWithProblems(station_involved_list) }</td> <td>{ total_component_errors }</td> - <Popover placement="auto-start" isOpen={this.state.popoverOpen} target={ this.id }> - <div onMouseOver={(e)=> this.onMouseOverPopover(e)} onMouseOut={(e)=>this.onMouseOutPopover(e)}> - <PopoverHeader>{data.observation_id}</PopoverHeader> - <PopoverBody> + <Tooltip placement="auto" isOpen={this.state.popoverOpen} + target={ this.id } + toggle={this.togglePopover} + style={{backgroundColor: "white", color:"black", opacity: "1"}} + autohide={false}> + <div className='popover-header'>{data.observation_id}</div> + <div> <strong>Start:</strong> { start_datetime}<br/> <strong>End:</strong> { end_datetime }<br/> <strong>Mode:</strong> { mode.join(',') }<br/> <Table size="sm" className="so-table table-wrapper"> - <thead><tr><th>Station name</th><th>errors</th></tr></thead> - <tbody>{stations_and_errors}</tbody> + <thead><tr><th>Station name</th><th>errors</th></tr></thead> + <tbody>{stations_and_errors}</tbody> </Table> - </PopoverBody> </div> - </Popover> + + </Tooltip> </tr> ); } diff --git a/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/components/StationTestView.js b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/components/StationTestView.js index 2d3996a4c4d..bbe7286e44b 100644 --- a/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/components/StationTestView.js +++ b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/components/StationTestView.js @@ -119,7 +119,7 @@ class GenericStatus extends Component { const jsx = ( <Tooltip isOpen={this.state.isPopOverOpen} target={this.id} style={{backgroundColor: "white", color: "black"}} - autohide='false' + autohide={false} placement='auto' toggle={this.togglePopOver}> <h5>Errors details</h5> <Table size='sm'> @@ -410,7 +410,7 @@ class StationTestViewC extends Component { const firstComponent = Object.keys(this.props.data)[0] if(this.state !== undefined && this.state.activeTab === undefined && firstComponent !== undefined){ this.setState({ - activeTab: Object.keys(this.props.data)[0] + activeTab: firstComponent }) } } -- GitLab