diff --git a/src/components/widget-slider.js b/src/components/widget-slider.js new file mode 100644 index 0000000..73d1cb1 --- /dev/null +++ b/src/components/widget-slider.js @@ -0,0 +1,48 @@ +/** + * File: widget-slider.js + * Author: Ricardo Hernandez-Montoya + * Date: 30.03.2017 + * Copyright: 2017, Institute for Automation of Complex Power Systems, EONERC + * This file is part of VILLASweb. All Rights Reserved. Proprietary and confidential. + * Unauthorized copying of this file, via any medium is strictly prohibited. + **********************************************************************************/ + +import React, { Component } from 'react'; +import { Form, FormGroup, Col, ControlLabel } from 'react-bootstrap'; + +class WidgetSlider extends Component { + + constructor(props) { + super(props); + + this.state = { + value: 50 + }; + } + + valueChanged(e) { + this.setState({ value: e.target.value }); + } + + render() { + return ( +
+
+ + + {this.props.widget.name} + + + this.valueChanged(e) } defaultValue={ this.state.value }/> + + + { this.state.value } + + +
+
+ ); + } +} + +export default WidgetSlider; \ No newline at end of file diff --git a/src/containers/visualization.js b/src/containers/visualization.js index 7a82db8..fa74942 100644 --- a/src/containers/visualization.js +++ b/src/containers/visualization.js @@ -183,6 +183,11 @@ class Visualization extends Component { widget.minHeight = 50; widget.width = 200; widget.height = 50; + } else if (item.name === 'Slider') { + widget.minWidth = 380; + widget.minHeight = 30; + widget.width = 400; + widget.height = 50; } var new_widgets = this.state.visualization.widgets; @@ -353,6 +358,7 @@ class Visualization extends Component { + } diff --git a/src/containers/widget.js b/src/containers/widget.js index 9062b2b..8120d41 100644 --- a/src/containers/widget.js +++ b/src/containers/widget.js @@ -24,6 +24,7 @@ import WidgetPlotTable from '../components/widget-plot-table'; import WidgetImage from '../components/widget-image'; import WidgetButton from '../components/widget-button'; import WidgetNumberInput from '../components/widget-number-input'; +import WidgetSlider from '../components/widget-slider'; import '../styles/widgets.css'; @@ -134,6 +135,8 @@ class Widget extends Component { element = } else if (widget.type === 'NumberInput') { element = + } else if (widget.type === 'Slider') { + element = } if (this.props.editing) { diff --git a/src/styles/widgets.css b/src/styles/widgets.css index 9861347..707bb0a 100644 --- a/src/styles/widgets.css +++ b/src/styles/widgets.css @@ -113,7 +113,7 @@ } /* Reset Bootstrap styles to "disable" while editing */ -div[class*="-widget"] .btn[disabled], .form-control[disabled] { +div[class*="-widget"] .btn[disabled], div[class*="-widget"] input[disabled], .form-control[disabled] { cursor: inherit; pointer-events: none; } @@ -177,7 +177,19 @@ div[class*="-widget"] .btn[disabled], .form-control[disabled] { } /* Number input widget */ -.number-input-widget label { +div[class*="-widget"] label { cursor: inherit; } -/* Number input widget */ \ No newline at end of file +/* End number input widget */ + +input[type=range]::-moz-range-thumb { + background: #ffffff; +} + +input[type=range]::-webkit-slider-thumb { + background: #ffffff; +} + +input[type=range]::-ms-thumb { + background: #ffffff; +} \ No newline at end of file