aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert2017-04-21 10:44:55 +0200
committerRobert2017-04-21 10:44:55 +0200
commit243bc28f745f9817fcd72b064aadd69d12a340e8 (patch)
tree7fe5fb6c6225be7efa72394e3af1f86a86b611e4
parente4ff5bc7d0d044e3beb4a1b771177ae33877182f (diff)
parentc478fad6a0e617fce27977dd7d9994ad5348d353 (diff)
downloadchouette-core-243bc28f745f9817fcd72b064aadd69d12a340e8.tar.bz2
Merge branch 'master' of github.com:af83/stif-boiv
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/actions/index.js8
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js4
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js56
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js5
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js4
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js12
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
}