diff options
| author | Robert | 2017-04-19 17:41:44 +0200 |
|---|---|---|
| committer | Robert | 2017-04-19 17:41:44 +0200 |
| commit | b767e3c006e9eeee22e2de939605203d8cb99f32 (patch) | |
| tree | 7a7fec578f4117312d2bc4007f7e9d9af57dcb73 /app/assets/javascripts | |
| parent | d9fbb75454e7c2b83bb0d7ef06b301f1950cf130 (diff) | |
| parent | e0fd60242c3994b4157d506c1ce71cab6ffab268 (diff) | |
| download | chouette-core-b767e3c006e9eeee22e2de939605203d8cb99f32.tar.bz2 | |
Merge branch 'master' of github.com:af83/stif-boiv
Diffstat (limited to 'app/assets/javascripts')
| -rw-r--r-- | app/assets/javascripts/es6_browserified/time_tables/actions/index.js | 12 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js (renamed from app/assets/javascripts/es6_browserified/time_tables/components/DayTypesInDay.js) | 6 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js | 27 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js | 67 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js | 26 |
5 files changed, 132 insertions, 6 deletions
diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js index 1a6b7d197..a023360a5 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -68,6 +68,18 @@ const actions = { var date = new Date(strDate) return monthList[date.getMonth()] }, + getHumanDate(strDate, mLimit) { + let origin = strDate.split('-') + let D = origin[2] + let M = actions.monthName(strDate).toLowerCase() + let Y = origin[0] + + if(mLimit) { + M = M.substr(0, mLimit) + '.' + } + + return (D + ' ' + M + ' ' + Y) + }, updateSynthesis: (state, daytypes) => { let periods = state.time_table_periods diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/DayTypesInDay.js b/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js index 560ff198b..cc1e34c52 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/DayTypesInDay.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js @@ -2,7 +2,7 @@ var React = require('react') var Component = require('react').Component var PropTypes = require('react').PropTypes -class DayTypesInDay extends Component { +class ExceptionsInDay extends Component { constructor(props) { super(props) } @@ -15,9 +15,9 @@ class DayTypesInDay extends Component { } } -DayTypesInDay.propTypes = { +ExceptionsInDay.propTypes = { value: PropTypes.object.isRequired, index: PropTypes.number.isRequired } -module.exports = DayTypesInDay +module.exports = ExceptionsInDay diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js new file mode 100644 index 000000000..61098d9ea --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js @@ -0,0 +1,27 @@ +var React = require('react') +var Component = require('react').Component +var PropTypes = require('react').PropTypes +var actions = require('../actions') + +class PeriodManager extends Component { + constructor(props) { + super(props) + } + + render() { + return ( + <div + className='period_manager' + id={this.props.value.id} + > + <strong>{(this.props.value.period_start.split('-')[2]) + ' > ' + actions.getHumanDate(this.props.value.period_end, 3)}</strong> + </div> + ) + } +} + +PeriodManager.propTypes = { + value: PropTypes.object.isRequired +} + +module.exports = PeriodManager diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js new file mode 100644 index 000000000..adc500c86 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js @@ -0,0 +1,67 @@ +var React = require('react') +var Component = require('react').Component +var PropTypes = require('react').PropTypes +var PeriodManager = require('./PeriodManager') + +class PeriodsInDay extends Component { + constructor(props) { + super(props) + } + + isIn(date) { + let currentDate = date.getTime() + let cls = 'td' + let periods = this.props.value + + periods.map((p, i) => { + let begin = new Date(p.period_start).getTime() + let end = new Date(p.period_end).getTime() + + if(currentDate >= begin && currentDate <= end) { + if(currentDate == begin) { + cls += ' in_periods start_period' + } else if(currentDate == end) { + cls += ' in_periods end_period' + } else { + cls += ' in_periods' + } + } + }) + return cls + } + + render() { + return ( + <div + className={this.isIn(this.props.currentDate)} + > + {this.props.value.map((p, i) => { + let begin = new Date(p.period_start).getTime() + let end = new Date(p.period_end).getTime() + let d = this.props.currentDate.getTime() + + if(d >= begin && d <= end) { + if(d == begin) { + return ( + <PeriodManager + key={i} + value={p} + /> + ) + } else { + return false + } + } + })} + </div> + ) + } +} + +PeriodsInDay.propTypes = { + value: PropTypes.array.isRequired, + currentDate: PropTypes.object.isRequired, + index: PropTypes.number.isRequired +} + +module.exports = PeriodsInDay diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js index 715f3ec3b..b27dddbf1 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js @@ -2,7 +2,8 @@ var React = require('react') var Component = require('react').Component var PropTypes = require('react').PropTypes var TimeTableDay = require('./TimeTableDay') -var DayTypesInDay = require('./DayTypesInDay') +var PeriodsInDay = require('./PeriodsInDay') +var ExceptionsInDay = require('./ExceptionsInDay') var actions = require('../actions') class Timetable extends Component{ @@ -10,6 +11,14 @@ class Timetable extends Component{ super(props) } + currentDate(mFirstday, day) { + let currentMonth = mFirstday.split('-') + let twodigitsDay = day < 10 ? ('0' + day) : day + let currentDate = new Date(currentMonth[0] + '-' + currentMonth[1] + '-' + twodigitsDay) + + return currentDate + } + componentDidUpdate(prevProps, prevState) { if(this.props.status.isFetching == false){ $('.table-2entries').each(function() { @@ -67,10 +76,21 @@ class Timetable extends Component{ key={i} className={'td-group' + (this.props.metas.day_types[d.wday] ? '' : ' out_from_daytypes') + (d.wday == 0 ? ' last_wday' : '')} > - <DayTypesInDay + {/* day_types */} + <div className="td"></div> + + {/* periods */} + <PeriodsInDay + index={i} + value={this.props.timetable.time_table_periods} + currentDate={this.currentDate(this.props.timetable.current_periode_range, d.mday)} + /> + + {/* exceptions */} + <ExceptionsInDay index={i} value={this.props.timetable} - /> + /> </div> )} </div> |
