aboutsummaryrefslogtreecommitdiffstats
path: root/app/assets/javascripts
diff options
context:
space:
mode:
authorcedricnjanga2017-08-02 22:59:29 +0200
committercedricnjanga2017-08-16 09:28:48 +0200
commite175a8d8d6d412833468d52df7f6bf1d78b0b9cc (patch)
tree6f6cfec40eee81980429be9487479189a35b9272 /app/assets/javascripts
parent5fcf1824d56f965262d5df1ece582c129fbe806b (diff)
downloadchouette-core-e175a8d8d6d412833468d52df7f6bf1d78b0b9cc.tar.bz2
VJ Read mode done
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js6
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js10
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/Tools.js34
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js14
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/containers/SaveVehicleJourneys.js15
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Tools.js3
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/index.js15
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js6
8 files changed, 69 insertions, 34 deletions
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js
index c30f460d8..019ca59d0 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js
@@ -7,6 +7,12 @@ if (!window.Promise) {
var batchActions = require('../batch').batchActions
const actions = {
+ enterEditMode: () => ({
+ type: "ENTER_EDIT_MODE"
+ }),
+ exitEditMode: () => ({
+ type: "EXIT_EDIT_MODE"
+ }),
receiveVehicleJourneys : (json) => ({
type: "RECEIVE_VEHICLE_JOURNEYS",
json
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js
index 05dda976d..d59a1c109 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js
@@ -9,6 +9,8 @@ class SaveVehicleJourneys extends Component{
}
render() {
+ const buttonText = this.props.filters.editMode ? "Valider" : "Editer"
+
if(this.props.filters.policy['vehicle_journeys.update'] == false) {
return false
}else{
@@ -21,10 +23,10 @@ class SaveVehicleJourneys extends Component{
type='button'
onClick={e => {
e.preventDefault()
- actions.submitVehicleJourneys(this.props.dispatch, this.props.vehicleJourneys)
+ this.props.filters.editMode ? this.props.onSubmitVehicleJourneys(this.props.dispatch, this.props.vehicleJourneys) : this.props.onEnterEditMode(e)
}}
>
- Valider
+ {buttonText}
</button>
</form>
</div>
@@ -38,7 +40,9 @@ SaveVehicleJourneys.propTypes = {
vehicleJourneys: PropTypes.array.isRequired,
page: PropTypes.number.isRequired,
status: PropTypes.object.isRequired,
- filters: PropTypes.object.isRequired
+ filters: PropTypes.object.isRequired,
+ onEnterEditMode: PropTypes.func.isRequired,
+ onSubmitVehicleJourneys: PropTypes.func.isRequired
}
module.exports = SaveVehicleJourneys
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Tools.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Tools.js
index b417828db..f12a03619 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Tools.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Tools.js
@@ -9,28 +9,34 @@ var NotesEditVehicleJourney = require('../containers/tools/NotesEditVehicleJourn
var TimetablesEditVehicleJourney = require('../containers/tools/TimetablesEditVehicleJourney')
var actions = require('../actions')
-const Tools = ({vehicleJourneys, onCancelSelection}) => {
+const Tools = ({vehicleJourneys, onCancelSelection, filters: {policy, editMode}}) => {
return (
- <div className='select_toolbox'>
- <ul>
- <AddVehicleJourney />
- <DuplicateVehicleJourney />
- <ShiftVehicleJourney />
- <EditVehicleJourney />
- <TimetablesEditVehicleJourney />
- <NotesEditVehicleJourney />
- <DeleteVehicleJourneys />
- </ul>
+ <div>
+ {
+ (policy['vehicle_journeys.create'] && policy['vehicle_journeys.update'] && policy['vehicle_journeys.destroy'] && editMode) &&
+ <div className='select_toolbox'>
+ <ul>
+ <AddVehicleJourney />
+ <DuplicateVehicleJourney />
+ <ShiftVehicleJourney />
+ <EditVehicleJourney />
+ <TimetablesEditVehicleJourney />
+ <NotesEditVehicleJourney />
+ <DeleteVehicleJourneys />
+ </ul>
- <span className='info-msg'>{actions.getSelected(vehicleJourneys).length} course(s) sélectionnée(s)</span>
- <button className='btn btn-xs btn-link pull-right' onClick={onCancelSelection}>Annuler la sélection</button>
+ <span className='info-msg'>{actions.getSelected(vehicleJourneys).length} course(s) sélectionnée(s)</span>
+ <button className='btn btn-xs btn-link pull-right' onClick={onCancelSelection}>Annuler la sélection</button>
+ </div>
+ }
</div>
)
}
Tools.propTypes = {
vehicleJourneys : PropTypes.array.isRequired,
- onCancelSelection: PropTypes.func.isRequired
+ onCancelSelection: PropTypes.func.isRequired,
+ filters: PropTypes.object.isRequired
}
module.exports = Tools
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js
index f2bd0c3cd..b19a362d6 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js
@@ -58,7 +58,7 @@ class VehicleJourney extends Component {
)}
</div>
- {(this.props.filters.policy['vehicle_journeys.update'] == true) &&
+ {(this.props.filters.policy['vehicle_journeys.update'] == true && this.props.filters.editMode) &&
<div className={(this.props.value.deletable ? 'disabled ' : '') + 'checkbox'}>
<input
id={this.props.index}
@@ -79,13 +79,13 @@ class VehicleJourney extends Component {
<div className={'cellwrap' + (this.cityNameChecker(vj) ? ' headlined' : '')}>
{this.props.filters.toggleArrivals &&
<div data-headline='Arrivée à'>
- <span className={((this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false) ? 'disabled ' : '') + 'input-group time'}>
+ <span className={((this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false || this.props.filters.editMode == false) ? 'disabled ' : '') + 'input-group time'}>
<input
type='number'
min='00'
max='23'
className='form-control'
- disabled={(this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false)}
+ disabled={(this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false || this.props.filters.editMode == false)}
onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'hour', false, false)}}
value={vj.arrival_time['hour']}
/>
@@ -95,7 +95,7 @@ class VehicleJourney extends Component {
min='00'
max='59'
className='form-control'
- disabled={((this.isDisabled(this.props.value.deletable), vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false)}
+ disabled={((this.isDisabled(this.props.value.deletable), vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false || this.props.filters.editMode == false)}
onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'minute', false, false)}}
value={vj.arrival_time['minute']}
/>
@@ -108,13 +108,13 @@ class VehicleJourney extends Component {
}
</div>
<div data-headline='Départ à'>
- <span className={((this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false) ? 'disabled ' : '') + 'input-group time'}>
+ <span className={((this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false || this.props.filters.editMode == false) ? 'disabled ' : '') + 'input-group time'}>
<input
type='number'
min='00'
max='23'
className='form-control'
- disabled={(this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false)}
+ disabled={(this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false || this.props.filters.editMode == false)}
onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'hour', true, this.props.filters.toggleArrivals)}}
value={vj.departure_time['hour']}
/>
@@ -124,7 +124,7 @@ class VehicleJourney extends Component {
min='00'
max='59'
className='form-control'
- disabled={(this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false)}
+ disabled={(this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false || this.props.filters.editMode == false)}
onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, "minute", true, this.props.filters.toggleArrivals)}}
value={vj.departure_time['minute']}
/>
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/SaveVehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/SaveVehicleJourneys.js
index 87bbe5353..584a79280 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/SaveVehicleJourneys.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/SaveVehicleJourneys.js
@@ -12,6 +12,19 @@ const mapStateToProps = (state) => {
}
}
-const SaveVehicleJourneys = connect(mapStateToProps)(SaveVehicleJourneysComponent)
+const mapDispatchToProps = (dispatch) => {
+ return {
+ onEnterEditMode: (e) => {
+ e.preventDefault()
+ dispatch(actions.enterEditMode())
+ },
+ onSubmitVehicleJourneys: (next, state) => {
+ actions.submitVehicleJourneys(dispatch, state, next)
+ dispatch(actions.exitEditMode())
+ }
+ }
+}
+
+const SaveVehicleJourneys = connect(mapStateToProps, mapDispatchToProps)(SaveVehicleJourneysComponent)
module.exports = SaveVehicleJourneys
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Tools.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Tools.js
index 35f492c98..698fcf06f 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Tools.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Tools.js
@@ -4,7 +4,8 @@ var actions = require('../actions')
const mapStateToProps = (state) => {
return {
- vehicleJourneys: state.vehicleJourneys
+ vehicleJourneys: state.vehicleJourneys,
+ filters: state.filters
}
}
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js
index 97aa60526..674236194 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js
@@ -8,10 +8,10 @@ var actions = require("./actions")
var enableBatching = require('./batch').enableBatching
// logger, DO NOT REMOVE
-// var applyMiddleware = require('redux').applyMiddleware
-// var createLogger = require('redux-logger')
-// var thunkMiddleware = require('redux-thunk').default
-// var promise = require('redux-promise')
+var applyMiddleware = require('redux').applyMiddleware
+var createLogger = require('redux-logger')
+var thunkMiddleware = require('redux-thunk').default
+var promise = require('redux-promise')
var selectedJP = []
@@ -21,6 +21,7 @@ if (window.journeyPatternId)
var initialState = {
filters: {
selectedJourneyPatterns : selectedJP,
+ editMode: false,
policy: window.perms,
toggleArrivals: false,
queryString: '',
@@ -85,12 +86,12 @@ if (window.jpOrigin){
initialState.filters.queryString = actions.encodeParams(params)
}
-// const loggerMiddleware = createLogger()
+const loggerMiddleware = createLogger()
let store = createStore(
enableBatching(vehicleJourneysApp),
- initialState
- // applyMiddleware(thunkMiddleware, promise, loggerMiddleware)
+ initialState,
+ applyMiddleware(thunkMiddleware, promise, loggerMiddleware)
)
render(
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js
index b4a70ec08..5bf93dab0 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js
@@ -1,9 +1,13 @@
var _ = require('lodash')
var actions = require("../actions")
-let newQuery, newInterval
+let newQuery, newInterval, newEditMode
const filters = (state = {}, action) => {
switch (action.type) {
+ case "ENTER_EDIT_MODE":
+ return _.assign({}, state, {editMode: true})
+ case "EXIT_EDIT_MODE":
+ return _.assign({}, state, {editMode: false})
case 'RESET_FILTERS':
let interval = {
start:{