aboutsummaryrefslogtreecommitdiffstats
path: root/app/assets/javascripts
diff options
context:
space:
mode:
authorRobert2017-04-19 17:41:44 +0200
committerRobert2017-04-19 17:41:44 +0200
commitb767e3c006e9eeee22e2de939605203d8cb99f32 (patch)
tree7a7fec578f4117312d2bc4007f7e9d9af57dcb73 /app/assets/javascripts
parentd9fbb75454e7c2b83bb0d7ef06b301f1950cf130 (diff)
parente0fd60242c3994b4157d506c1ce71cab6ffab268 (diff)
downloadchouette-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.js12
-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.js27
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js67
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js26
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>