diff options
| author | jpl | 2017-04-21 16:49:33 +0200 |
|---|---|---|
| committer | jpl | 2017-04-21 16:50:27 +0200 |
| commit | 7e7163d95ce04cff2a1a1bbfe220701631acd08d (patch) | |
| tree | 1829c2bc1f828a88e48b88f27a3d6169ec3a5a4b /app/assets/javascripts | |
| parent | 831677263f36de9a184ba2b4cd5312721dc7e4e7 (diff) | |
| download | chouette-core-7e7163d95ce04cff2a1a1bbfe220701631acd08d.tar.bz2 | |
Refs #3152: adding exceptions actions reporting to state
Diffstat (limited to 'app/assets/javascripts')
6 files changed, 58 insertions, 12 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 9723327ff..81d76cefa 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -80,6 +80,19 @@ const actions = { group, selectType }), + includeDateInPeriod: (index, day, dayTypes) => ({ + type: 'INCLUDE_DATE_IN_PERIOD', + index, + day, + dayTypes + }), + excludeDateFromPeriod: (index, day, dayTypes) => ({ + type: 'EXCLUDE_DATE_FROM_PERIOD', + index, + day, + dayTypes + }), + monthName(strDate) { let monthList = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"] var date = new Date(strDate) @@ -117,19 +130,11 @@ const actions = { if(testDate === false){ if(currentDate >= begin && currentDate <= end) { - if(d.excluded_date) { - testDate = false - } else if(daytypes[d.wday] === false) { + if(daytypes[d.wday] === false) { testDate = false } else { testDate = true } - } else { - if(d.include_date) { - testDate = true - } else { - testDate = false - } } } }) @@ -144,7 +149,7 @@ const actions = { return improvedCM }, - checkConfirmModal : (event, callback, stateChanged,dispatch) => { + checkConfirmModal: (event, callback, stateChanged,dispatch) => { if(stateChanged === true){ return actions.openConfirmModal(callback) }else{ diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js b/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js index 6d7dd4442..13615a6ef 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js @@ -1,6 +1,7 @@ var React = require('react') var Component = require('react').Component var PropTypes = require('react').PropTypes +var actions = require('../actions') class ExceptionsInDay extends Component { constructor(props) { @@ -18,6 +19,10 @@ class ExceptionsInDay extends Component { type='button' className='btn btn-circle' data-actiontype='remove' + onClick={(e) => { + $(e.currentTarget).toggleClass('active') + this.props.onExcludeDateFromPeriod(this.props.index, this.props.value.current_month[this.props.index], this.props.metas.day_types) + }} > <span className='fa fa-times'></span> </button> @@ -30,6 +35,10 @@ class ExceptionsInDay extends Component { type='button' className='btn btn-circle' data-actiontype='add' + onClick={(e) => { + $(e.currentTarget).toggleClass('active') + this.props.onIncludeDateInPeriod(this.props.index, this.props.value.current_month[this.props.index], this.props.metas.day_types) + }} > <span className='fa fa-plus'></span> </button> @@ -46,7 +55,10 @@ class ExceptionsInDay extends Component { ExceptionsInDay.propTypes = { value: PropTypes.object.isRequired, + metas: PropTypes.object.isRequired, outFromDaytypes: PropTypes.bool.isRequired, + onExcludeDateFromPeriod: PropTypes.func.isRequired, + onIncludeDateInPeriod: PropTypes.func.isRequired, index: PropTypes.number.isRequired } diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js b/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js index eecdf174d..29c894565 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js @@ -17,7 +17,7 @@ class TimeTableDay extends Component { {((this.props.value.day).charAt(0) == 'm') ? (this.props.value.day).substr(0, 2) : (this.props.value.day).charAt(0)} </span> <span - className={'daynumber' + ((this.props.value.in_periods && this.props.dayTypeActive) ? ' included' : '')} + className={'daynumber' + (((this.props.value.in_periods && this.props.dayTypeActive && !this.props.value.excluded_date) || (this.props.value.include_date && this.props.dayTypeActive)) ? ' included' : '')} > {this.props.value.mday} </span> 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 8cb24f146..4812578fc 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js @@ -73,7 +73,10 @@ class Timetable extends Component{ <ExceptionsInDay index={i} value={this.props.timetable} + metas={this.props.metas} outFromDaytypes={this.props.metas.day_types[d.wday]} + onExcludeDateFromPeriod={this.props.onExcludeDateFromPeriod} + onIncludeDateInPeriod={this.props.onIncludeDateInPeriod} /> </div> )} @@ -91,7 +94,9 @@ Timetable.propTypes = { metas: PropTypes.object.isRequired, timetable: PropTypes.object.isRequired, status: PropTypes.object.isRequired, - onDeletePeriod: PropTypes.func.isRequired + onDeletePeriod: PropTypes.func.isRequired, + onExcludeDateFromPeriod: PropTypes.func.isRequired, + onIncludeDateInPeriod: PropTypes.func.isRequired } module.exports = Timetable diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js b/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js index be31be061..f4259b0e9 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js @@ -14,6 +14,12 @@ const mapDispatchToProps = (dispatch) => { return { onDeletePeriod: (index, dayTypes) =>{ dispatch(actions.deletePeriod(index, dayTypes)) + }, + onExcludeDateFromPeriod: (index, day, dayTypes) => { + dispatch(actions.excludeDateFromPeriod(index, day, dayTypes)) + }, + onIncludeDateInPeriod: (index, day, dayTypes) => { + dispatch(actions.includeDateInPeriod(index, day, dayTypes)) } } } diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js index 845f0814b..b052b5fcc 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js @@ -37,6 +37,24 @@ const timetable = (state = {}, action) => { }) newState = _.assign({}, state, {time_table_periods : ttperiods}) return _.assign({}, newState, {current_month: actions.updateSynthesis(newState, action.dayTypes)}) + case 'INCLUDE_DATE_IN_PERIOD': + let newCMi = state.current_month.map((d, i) => { + if(i == action.index){ + d.include_date = !d.include_date + } + return d + }) + newState = _.assign({}, state, {current_month: newCMi}) + return _.assign({}, newState, {current_month: actions.updateSynthesis(newState, action.dayTypes)}) + case 'EXCLUDE_DATE_FROM_PERIOD': + let newCMe = state.current_month.map((d, i) => { + if(i == action.index){ + d.excluded_date = !d.excluded_date + } + return d + }) + newState = _.assign({}, state, {current_month: newCMe}) + return _.assign({}, newState, {current_month: actions.updateSynthesis(newState, action.dayTypes)}) default: return state } |
