diff options
| author | Robert | 2017-04-21 10:44:55 +0200 |
|---|---|---|
| committer | Robert | 2017-04-21 10:44:55 +0200 |
| commit | 243bc28f745f9817fcd72b064aadd69d12a340e8 (patch) | |
| tree | 7fe5fb6c6225be7efa72394e3af1f86a86b611e4 | |
| parent | e4ff5bc7d0d044e3beb4a1b771177ae33877182f (diff) | |
| parent | c478fad6a0e617fce27977dd7d9994ad5348d353 (diff) | |
| download | chouette-core-243bc28f745f9817fcd72b064aadd69d12a340e8.tar.bz2 | |
Merge branch 'master' of github.com:af83/stif-boiv
6 files changed, 63 insertions, 26 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 de359b99e..d54f1ba06 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -63,6 +63,11 @@ const actions = { name: selectedTag.name } }), + deletePeriod: (index, dayTypes) => ({ + type: 'DELETE_PERIOD', + index, + 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) @@ -92,6 +97,9 @@ const actions = { // We compare periods & currentDate, to determine if it is included or not let testDate = false periods.map((p, i) => { + if(p.deleted){ + return false + } let begin = new Date(p.period_start) let end = new Date(p.period_end) diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js index 01996b016..0511734ba 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js @@ -42,6 +42,7 @@ class PeriodManager extends Component { <li className='delete-action'> <button type='button' + onClick={() => this.props.onDeletePeriod(this.props.index, this.props.metas.day_types)} > <span className='fa fa-trash'></span> Supprimer @@ -55,7 +56,8 @@ class PeriodManager extends Component { } PeriodManager.propTypes = { - value: PropTypes.object.isRequired + value: PropTypes.object.isRequired, + onDeletePeriod: PropTypes.func.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 index 901b2205e..59409fc7d 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js @@ -14,16 +14,18 @@ class PeriodsInDay extends Component { 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 (!p.deleted){ + 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' + 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' + } } } }) @@ -36,21 +38,28 @@ class PeriodsInDay extends Component { 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(!p.deleted){ + 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 || (this.props.currentDate.getUTCDate() == 1)) { - return ( - <PeriodManager - key={i} - value={p} - /> - ) - } else { - return false + if(d >= begin && d <= end) { + if(d == begin || (this.props.currentDate.getUTCDate() == 1)) { + return ( + <PeriodManager + key={i} + index={i} + value={p} + onDeletePeriod={this.props.onDeletePeriod} + metas={this.props.metas} + /> + ) + } else { + return false + } } + }else{ + return false } })} </div> @@ -61,7 +70,8 @@ class PeriodsInDay extends Component { PeriodsInDay.propTypes = { value: PropTypes.array.isRequired, currentDate: PropTypes.object.isRequired, - index: PropTypes.number.isRequired + index: PropTypes.number.isRequired, + onDeletePeriod: PropTypes.func.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 738e1a3ed..b9b191792 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js @@ -65,6 +65,8 @@ class Timetable extends Component{ index={i} value={this.props.timetable.time_table_periods} currentDate={this.currentDate(this.props.timetable.current_periode_range, d.mday)} + onDeletePeriod={this.props.onDeletePeriod} + metas={this.props.metas} /> {/* exceptions */} @@ -87,7 +89,8 @@ class Timetable extends Component{ Timetable.propTypes = { metas: PropTypes.object.isRequired, timetable: PropTypes.object.isRequired, - status: PropTypes.object.isRequired + status: PropTypes.object.isRequired, + onDeletePeriod: 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 62fe20419..be31be061 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js @@ -1,5 +1,6 @@ var connect = require('react-redux').connect var TimetableComponent = require('../components/Timetable') +var actions = require('../actions') const mapStateToProps = (state) => { return { @@ -11,6 +12,9 @@ const mapStateToProps = (state) => { const mapDispatchToProps = (dispatch) => { return { + onDeletePeriod: (index, dayTypes) =>{ + dispatch(actions.deletePeriod(index, 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 1c492859f..845f0814b 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js @@ -1,5 +1,6 @@ const _ = require('lodash') var actions = require('../actions') +let newState = {} const timetable = (state = {}, action) => { switch (action.type) { @@ -12,7 +13,7 @@ const timetable = (state = {}, action) => { }) return _.assign({}, fetchedState, {current_month: actions.updateSynthesis(fetchedState, actions.strToArrayDayTypes(action.json.day_types))}) case 'RECEIVE_MONTH': - let newState = _.assign({}, state, { + newState = _.assign({}, state, { current_month: action.json.days }) return _.assign({}, newState, {current_month: actions.updateSynthesis(newState, actions.strToArrayDayTypes(action.json.day_types))}) @@ -27,6 +28,15 @@ const timetable = (state = {}, action) => { $('#ConfirmModal').modal('hide') actions.fetchTimeTables(action.dispatch, action.page) return _.assign({}, state, {current_periode_range: action.page}) + case 'DELETE_PERIOD': + let ttperiods = state.time_table_periods.map((period, i) =>{ + if(i == action.index){ + period.deleted = true + } + return period + }) + newState = _.assign({}, state, {time_table_periods : ttperiods}) + return _.assign({}, newState, {current_month: actions.updateSynthesis(newState, action.dayTypes)}) default: return state } |
