aboutsummaryrefslogtreecommitdiffstats
path: root/app/assets/javascripts
diff options
context:
space:
mode:
authorjpl2017-04-21 16:49:33 +0200
committerjpl2017-04-21 16:50:27 +0200
commit7e7163d95ce04cff2a1a1bbfe220701631acd08d (patch)
tree1829c2bc1f828a88e48b88f27a3d6169ec3a5a4b /app/assets/javascripts
parent831677263f36de9a184ba2b4cd5312721dc7e4e7 (diff)
downloadchouette-core-7e7163d95ce04cff2a1a1bbfe220701631acd08d.tar.bz2
Refs #3152: adding exceptions actions reporting to state
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/actions/index.js25
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js12
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js2
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js7
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js6
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js18
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
}