Loris Guignard
2016-07-20 393c1d424bacb864c29c5f7fd539b0459b167ba5
commit | author | age
d76f7b 1 'use strict';
M 2
3 var React = require('react');
4
5 var DOM = React.DOM;
6 var DateTimePickerYears = React.createClass({
7     render: function() {
8         var year = parseInt(this.props.viewDate.year() / 10, 10) * 10;
9
462115 10         return DOM.div({ className: 'rdtYears' }, [
SE 11             DOM.table({ key: 'a'}, DOM.thead({}, DOM.tr({}, [
0390c2 12                 DOM.th({ key: 'prev', className: 'rdtPrev' }, DOM.span({onClick: this.props.subtractTime(10, 'years')}, '‹')),
e4010d 13                 DOM.th({ key: 'year', className: 'rdtSwitch', onClick: this.props.showView('years'), colSpan: 2 }, year + '-' + (year + 9) ),
0390c2 14                 DOM.th({ key: 'next', className: 'rdtNext'}, DOM.span({onClick: this.props.addTime(10, 'years')}, '›'))
d76f7b 15                 ]))),
M 16             DOM.table({ key: 'years'}, DOM.tbody({}, this.renderYears( year )))
17         ]);
eba92b 18     },
M 19
20     renderYears: function( year ) {
21         var years = [],
22             i = -1,
23             rows = [],
24             renderer = this.props.renderYear || this.renderYear,
62fd2f 25             selectedDate = this.props.selectedDate,
eba92b 26             classes, props
M 27         ;
28
29         year--;
30         while (i < 11) {
e4010d 31             classes = 'rdtYear';
462115 32             if ( i === -1 | i === 10 )
e4010d 33                 classes += ' rdtOld';
462115 34             if ( selectedDate && selectedDate.year() === year )
e4010d 35                 classes += ' rdtActive';
eba92b 36
M 37             props = {
38                 key: year,
39                 'data-value': year,
40                 className: classes,
462115 41                 onClick: this.props.updateOn === 'years' ? this.updateSelectedYear : this.props.setDate('year')
eba92b 42             };
M 43
62fd2f 44             years.push( renderer( props, year, selectedDate && selectedDate.clone() ));
eba92b 45
462115 46             if ( years.length === 4 ){
eba92b 47                 rows.push( DOM.tr({ key: i }, years ) );
M 48                 years = [];
49             }
50
51             year++;
52             i++;
53         }
54
55         return rows;
56     },
57
f99908 58     updateSelectedYear: function( event ) {
SA 59         this.props.updateSelectedDate(event, true);
60     },
61
462115 62     renderYear: function( props, year ){
eba92b 63         return DOM.td( props, year );
d76f7b 64     }
M 65 });
66
67 module.exports = DateTimePickerYears;