From ac77170d19846c758c5db4ac0e1a2de7392af6b3 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 6 Sep 2016 00:44:28 +0200 Subject: [PATCH] Add icons to column headers, click them to scroll to top --- .../components/components/column.jsx | 10 ++++++++-- .../components/components/column_header.jsx | 17 +++++++++++++++-- .../components/components/columns_area.jsx | 4 ++-- .../components/components/status_list.jsx | 2 +- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/components/components/column.jsx b/app/assets/javascripts/components/components/column.jsx index b347ee3a81..64a4e6545c 100644 --- a/app/assets/javascripts/components/components/column.jsx +++ b/app/assets/javascripts/components/components/column.jsx @@ -5,15 +5,21 @@ import PureRenderMixin from 'react-addons-pure-render-mixin'; const Column = React.createClass({ propTypes: { - type: React.PropTypes.string + type: React.PropTypes.string, + icon: React.PropTypes.string }, mixins: [PureRenderMixin], + handleHeaderClick () { + let node = ReactDOM.findDOMNode(this); + node.querySelector('.scrollable').scrollTo(0, 0); + }, + render () { return (
- +
); diff --git a/app/assets/javascripts/components/components/column_header.jsx b/app/assets/javascripts/components/components/column_header.jsx index 15a1958981..21def69c74 100644 --- a/app/assets/javascripts/components/components/column_header.jsx +++ b/app/assets/javascripts/components/components/column_header.jsx @@ -3,14 +3,27 @@ import PureRenderMixin from 'react-addons-pure-render-mixin'; const ColumnHeader = React.createClass({ propTypes: { - type: React.PropTypes.string + icon: React.PropTypes.string, + type: React.PropTypes.string, + onClick: React.PropTypes.func }, mixins: [PureRenderMixin], + handleClick () { + this.props.onClick(); + }, + render () { + let icon = ''; + + if (this.props.icon) { + icon = ; + } + return ( -
+
+ {icon} {this.props.type}
); diff --git a/app/assets/javascripts/components/components/columns_area.jsx b/app/assets/javascripts/components/components/columns_area.jsx index 149fdfcf45..720f3143bf 100644 --- a/app/assets/javascripts/components/components/columns_area.jsx +++ b/app/assets/javascripts/components/components/columns_area.jsx @@ -8,8 +8,8 @@ const ColumnsArea = React.createClass({ render () { return (
- - + +
); } diff --git a/app/assets/javascripts/components/components/status_list.jsx b/app/assets/javascripts/components/components/status_list.jsx index 5bd21edec2..7fa81e5127 100644 --- a/app/assets/javascripts/components/components/status_list.jsx +++ b/app/assets/javascripts/components/components/status_list.jsx @@ -15,7 +15,7 @@ const StatusList = React.createClass({ render () { return ( -
+
{this.props.statuses.map((status) => { return ;