aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Haddad2017-02-22 11:19:31 +0100
committerThomas Haddad2017-02-22 11:19:31 +0100
commite1e97a1a5778d8329b8035f9bf1e532ba7bbe12a (patch)
treeec2a8179209e119692008b03d6a37c08a13c19ab
parentdd8487d6771ac76ebc60eff7e50730b2314a0ec2 (diff)
downloadchouette-core-e1e97a1a5778d8329b8035f9bf1e532ba7bbe12a.tar.bz2
Refs #2524: Add duplicate button (w/o feature)
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js7
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/App.js10
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js2
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DeleteVehicleJourneys.js2
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js114
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js2
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/DuplicateVehicleJourney.js29
7 files changed, 158 insertions, 8 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 e5e3c6512..10f3bb152 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js
@@ -45,11 +45,14 @@ const actions = {
}),
addVehicleJourney : (data) => ({
type: 'ADD_VEHICLEJOURNEY',
- data,
+ data
}),
shiftVehicleJourney : (data) => ({
type: 'SHIFT_VEHICLEJOURNEY',
- data,
+ data
+ }),
+ duplicateVehicleJourneys : (data) => ({
+ type: 'DUPLICATE_VEHICLEJOURNEY'
}),
deleteVehicleJourneys : () => ({
type: 'DELETE_VEHICLEJOURNEYS'
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/App.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/App.js
index 62b1f8019..e0df0f843 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/App.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/App.js
@@ -7,15 +7,19 @@ var ConfirmModal = require('../containers/ConfirmModal')
var AddVehicleJourney = require('../containers/tools/AddVehicleJourney')
var DeleteVehicleJourneys = require('../containers/tools/DeleteVehicleJourneys')
var ShiftVehicleJourney = require('../containers/tools/ShiftVehicleJourney')
+var DuplicateVehicleJourney = require('../containers/tools/DuplicateVehicleJourney')
const App = () => (
<div>
<div className='clearfix' style={{ marginBottom: 10 }}>
<FiltersList />
<Navigate />
- <AddVehicleJourney />
- <DeleteVehicleJourneys />
- <ShiftVehicleJourney />
+ <div className='list-inline clearfix'>
+ <AddVehicleJourney />
+ <DeleteVehicleJourneys />
+ <ShiftVehicleJourney />
+ <DuplicateVehicleJourney />
+ </div>
</div>
<VehicleJourneysList />
<SaveVehicleJourneys />
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js
index 50660a2f3..c38c02d16 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js
@@ -21,7 +21,7 @@ class CreateModal extends Component {
}
if(this.props.status.fetchSuccess == true) {
return (
- <div className='pull-right'>
+ <div className='pull-left'>
<button
type='button'
className='btn btn-primary btn-sm'
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DeleteVehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DeleteVehicleJourneys.js
index 8bf2a719d..7e05f7dca 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DeleteVehicleJourneys.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DeleteVehicleJourneys.js
@@ -3,7 +3,7 @@ var PropTypes = require('react').PropTypes
const DeleteVehicleJourneys = ({onDeleteVehicleJourneys}) => {
return (
- <div className='list-group'>
+ <div className='pull-left'>
<button
type='button'
className='btn btn-primary btn-sm'
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js
new file mode 100644
index 000000000..c8b49b9ea
--- /dev/null
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js
@@ -0,0 +1,114 @@
+var React = require('react')
+var Component = require('react').Component
+var PropTypes = require('react').PropTypes
+var actions = require('../../actions')
+
+class DuplicateVehicleJourney extends Component {
+ constructor(props) {
+ super(props)
+ }
+
+ handleSubmit() {
+ if(actions.validateFields(this.refs) == true) {
+ this.props.onDuplicateVehicleJourney(this.refs)
+ $('#DuplicateVehicleJourneyModal').modal('hide')
+ }
+ }
+
+ render() {
+ if(this.props.status.isFetching == true) {
+ return false
+ }
+ if(this.props.status.fetchSuccess == true) {
+ return (
+ <div className='pull-left'>
+ <button
+ type='button'
+ className='btn btn-primary btn-sm'
+ data-toggle='modal'
+ data-target='#DuplicateVehicleJourneyModal'
+ onClick={this.props.onOpenDuplicateModal}
+ >
+ <span className='fa fa-files-o'></span>
+ </button>
+
+ <div className={ 'modal fade ' + ((this.props.modal.type == 'shift') ? 'in' : '') } id='DuplicateVehicleJourneyModal'>
+ <div className='modal-dialog'>
+ <div className='modal-content'>
+ <div className='modal-header clearfix'>
+ <h4>Mettre à jour une course</h4>
+ </div>
+
+ {(this.props.modal.type == 'shift') && (
+ <form>
+ <div className='modal-body'>
+ <div className='form-group'>
+ <label className='control-label is-required'>Mettre à jour les horaires de la course</label>
+ <select
+ ref='objectid'
+ className='form-control'
+ onKeyDown={(e) => actions.resetValidation(e.currentTarget)}
+ required
+ >
+ {this.props.vehicleJourneys.map((vj, i) =>
+ <option
+ key = {i}
+ value = {vj.objectid}>
+ {vj.objectid}
+ </option>
+ )}
+ </select>
+ </div>
+ <div className='row'>
+ <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
+ <div className='form-group'>
+ <label className='control-label is-required'>Avec un décalage de</label>
+ <input
+ type='number'
+ ref='additional_time'
+ min='0'
+ max='59'
+ className='form-control'
+ onKeyDown={(e) => actions.resetValidation(e.currentTarget)}
+ required
+ />
+ </div>
+ </div>
+ </div>
+ </div>
+ <div className='modal-footer'>
+ <button
+ className='btn btn-default'
+ data-dismiss='modal'
+ type='button'
+ onClick={this.props.onModalClose}
+ >
+ Annuler
+ </button>
+ <button
+ className='btn btn-danger'
+ type='button'
+ onClick={this.handleSubmit.bind(this)}
+ >
+ Valider
+ </button>
+ </div>
+ </form>
+ )}
+ </div>
+ </div>
+ </div>
+ </div>
+ )
+ } else {
+ return false
+ }
+ }
+}
+
+DuplicateVehicleJourney.propTypes = {
+ onOpenDuplicateModal: PropTypes.func.isRequired,
+ onModalClose: PropTypes.func.isRequired,
+}
+
+module.exports = DuplicateVehicleJourney
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js
index 08c9a7e12..d9334e287 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js
@@ -21,7 +21,7 @@ class ShiftVehicleJourney extends Component {
}
if(this.props.status.fetchSuccess == true) {
return (
- <div className='pull-right'>
+ <div className='pull-left'>
<button
type='button'
className='btn btn-primary btn-sm'
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/DuplicateVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/DuplicateVehicleJourney.js
new file mode 100644
index 000000000..942415200
--- /dev/null
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/DuplicateVehicleJourney.js
@@ -0,0 +1,29 @@
+var actions = require('../../actions')
+var connect = require('react-redux').connect
+var DuplicateVJComponent = require('../../components/tools/DuplicateVehicleJourney')
+
+const mapStateToProps = (state) => {
+ return {
+ modal: state.modal,
+ vehicleJourneys: state.vehicleJourneys,
+ status: state.status
+ }
+}
+
+const mapDispatchToProps = (dispatch) => {
+ return {
+ onModalClose: () =>{
+ dispatch(actions.closeModal())
+ },
+ onOpenDuplicateModal: () =>{
+ dispatch(actions.openDuplicateModal())
+ },
+ onDuplicateVehicleJourneys: (data) =>{
+ dispatch(actions.duplicateVehicleJourneys(data))
+ }
+ }
+}
+
+const DuplicateVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(DuplicateVJComponent)
+
+module.exports = DuplicateVehicleJourney