aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js17
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CalendarsEditVehicleJourney.js89
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js32
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js20
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js60
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js16
-rw-r--r--app/assets/stylesheets/application.sass1
-rw-r--r--app/assets/stylesheets/components/_modals.sass47
-rw-r--r--app/assets/stylesheets/components/_select2.sass48
9 files changed, 226 insertions, 104 deletions
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 789b1b1e6..6ed0a0b54 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js
@@ -17,6 +17,15 @@ class VehicleJourney extends Component {
return bool
}
+ timeTableURL(id) {
+ let refURL = window.location.pathname.split('/', 3).join('/')
+ let ttURL = refURL + '/time_tables/' + id
+
+ return (
+ <a href={ttURL} title='Voir le calendrier'><span className='fa fa-calendar'></span></a>
+ )
+ }
+
columnHasDelta() {
let a = []
this.props.value.vehicle_journey_at_stops.map((vj, i) => {
@@ -41,11 +50,9 @@ class VehicleJourney extends Component {
<div className='th'>
<div className='strong mb-xs'>{this.props.value.objectid ? this.props.value.objectid : '-'}</div>
<div>{this.props.value.journey_pattern.objectid}</div>
- <div>
- {this.props.value.time_tables.map((tt, i)=>
- <span key={i}>{tt.objectid}</span>
- )}
- </div>
+ {this.props.value.time_tables.map((tt, i)=>
+ <div key={i}>{this.timeTableURL(tt.id)}</div>
+ )}
<div className={(this.props.value.deletable ? 'disabled ' : '') + 'checkbox'}>
<input
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CalendarsEditVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CalendarsEditVehicleJourney.js
index f488c9d4e..19a5af869 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CalendarsEditVehicleJourney.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CalendarsEditVehicleJourney.js
@@ -36,42 +36,67 @@ class CalendarsEditVehicleJourney extends Component {
<div className='modal-container'>
<div className='modal-dialog'>
<div className='modal-content'>
- <div className='modal-header clearfix'>
- <h4>Calendriers associés</h4>
+ <div className='modal-header'>
+ <h4 className='modal-title'>Calendriers associés</h4>
</div>
{(this.props.modal.type == 'calendars_edit') && (
<form>
<div className='modal-body'>
- <ul>
- {this.props.modal.modalProps.timetables.map((tt, i) =>
- <li
- key= {i}
- >
- {tt.comment}
- <button
- type='button'
- onClick={() => this.props.onDeleteCalendarModal(tt)}
- >
- <span className='fa fa-times'></span>
- </button>
- </li>
- )}
- </ul>
<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'>Ajouter un calendrier</label>
- <TimetableSelect2
- onSelect2Timetable={this.props.onSelect2Timetable}
- chunkURL={'/autocomplete_time_tables.json'}
- isFilter={false}
- />
- <button
- onClick={this.props.onAddSelectedTimetable}
- type='button'
- ><span className='fa fa-times'>Ajouter</span>
- </button>
+ <div className='col-lg-12'>
+ <div className='subform'>
+ <div className='nested-head'>
+ <div className='wrapper'>
+ <div>
+ <div className='form-group'>
+ <label className='control-label'>Calendriers associés</label>
+ </div>
+ </div>
+ <div></div>
+ </div>
+ </div>
+ {this.props.modal.modalProps.timetables.map((tt, i) =>
+ <div className='nested-fields' key={i}>
+ <div className='wrapper'>
+ <div>{tt.comment}</div>
+ <div>
+ <a
+ href='#'
+ title='Supprimer'
+ className='fa fa-trash remove_fields'
+ style={{height: 'auto', lineHeight: 'normal'}}
+ onClick={(e) => {
+ e.preventDefault()
+ this.props.onDeleteCalendarModal(tt)
+ }}
+ ></a>
+ </div>
+ </div>
+ </div>
+ )}
+ <div className='nested-fields'>
+ <div className='wrapper'>
+ <div>
+ <TimetableSelect2
+ onSelect2Timetable={this.props.onSelect2Timetable}
+ chunkURL={'/autocomplete_time_tables.json'}
+ isFilter={false}
+ />
+ </div>
+ <div>
+ <a
+ href='#'
+ title='Ajouter'
+ className='fa fa-plus'
+ onClick={(e) => {
+ e.preventDefault()
+ this.props.onAddSelectedTimetable()
+ }}
+ ></a>
+ </div>
+ </div>
+ </div>
</div>
</div>
</div>
@@ -79,7 +104,7 @@ class CalendarsEditVehicleJourney extends Component {
<div className='modal-footer'>
<button
- className='btn btn-default'
+ className='btn btn-link'
data-dismiss='modal'
type='button'
onClick={this.props.onModalClose}
@@ -87,7 +112,7 @@ class CalendarsEditVehicleJourney extends Component {
Annuler
</button>
<button
- className='btn btn-danger'
+ className='btn btn-primary'
type='button'
onClick={this.handleSubmit.bind(this)}
>
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 61b4047d7..0c083c897 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
@@ -38,25 +38,27 @@ class CreateModal extends Component {
<div className='modal-container'>
<div className='modal-dialog'>
<div className='modal-content'>
- <div className='modal-header clearfix'>
- <h4>Ajouter une mission</h4>
+ <div className='modal-header'>
+ <h4 className='modal-title'>Ajouter une mission</h4>
</div>
{(this.props.modal.type == 'create') && (
<form>
<div className='modal-body'>
- <div className='form-group'>
- <label className='control-label is-required'>Nom de la course</label>
- <input
- type='text'
- ref='published_journey_name'
- className='form-control'
- onKeyDown={(e) => actions.resetValidation(e.currentTarget)}
- required
- />
- </div>
<div className='row'>
- <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
+ <div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'>
+ <div className='form-group'>
+ <label className='control-label is-required'>Nom de la course</label>
+ <input
+ type='text'
+ ref='published_journey_name'
+ className='form-control'
+ onKeyDown={(e) => actions.resetValidation(e.currentTarget)}
+ required
+ />
+ </div>
+ </div>
+ <div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'>
<div className='form-group'>
<label className='control-label is-required'>ID de la mission</label>
<MissionSelect2
@@ -69,7 +71,7 @@ class CreateModal extends Component {
</div>
<div className='modal-footer'>
<button
- className='btn btn-default'
+ className='btn btn-link'
data-dismiss='modal'
type='button'
onClick={this.props.onModalClose}
@@ -77,7 +79,7 @@ class CreateModal extends Component {
Annuler
</button>
<button
- className='btn btn-danger'
+ className='btn btn-primary'
type='button'
onClick={this.handleSubmit.bind(this)}
>
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
index 1e166dd64..89d3540b1 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js
@@ -37,18 +37,18 @@ class DuplicateVehicleJourney extends Component {
<div className='modal-container'>
<div className='modal-dialog'>
<div className='modal-content'>
- <div className='modal-header clearfix'>
- <h4>Mettre à jour une course</h4>
+ <div className='modal-header'>
+ <h4 className='modal-title'>Dupliquer une course</h4>
+ {(this.props.modal.type == 'duplicate') && (
+ <em>Dupliquer les horaires de la course {actions.getSelected(this.props.vehicleJourneys)[0].objectid}</em>
+ )}
</div>
{(this.props.modal.type == 'duplicate') && (
<form>
<div className='modal-body'>
- <div className='form-group'>
- <span>Dupliquer les horaires de la course suivante : {actions.getSelected(this.props.vehicleJourneys)[0].objectid}</span>
- </div>
<div className='row'>
- <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
+ <div className='col-lg-10 col-md-9 col-sm-8 col-xs-12'>
<div className='form-group'>
<label className='control-label is-required'>Nombre de courses à créer et dupliquer</label>
<input
@@ -62,9 +62,7 @@ class DuplicateVehicleJourney extends Component {
/>
</div>
</div>
- </div>
- <div className='row'>
- <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
+ <div className='col-lg-2 col-md-3 col-sm-4 col-xs-12'>
<div className='form-group'>
<label className='control-label is-required'>Avec un décalage de</label>
<input
@@ -82,7 +80,7 @@ class DuplicateVehicleJourney extends Component {
</div>
<div className='modal-footer'>
<button
- className='btn btn-default'
+ className='btn btn-link'
data-dismiss='modal'
type='button'
onClick={this.props.onModalClose}
@@ -90,7 +88,7 @@ class DuplicateVehicleJourney extends Component {
Annuler
</button>
<button
- className='btn btn-danger'
+ className='btn btn-primary'
type='button'
onClick={this.handleSubmit.bind(this)}
>
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js
index 3dc272686..19482258d 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js
@@ -37,32 +37,42 @@ class EditVehicleJourney extends Component {
<div className='modal-container'>
<div className='modal-dialog'>
<div className='modal-content'>
- <div className='modal-header clearfix'>
- <h4>Informations</h4>
+ <div className='modal-header'>
+ <h4 className='modal-title'>Informations</h4>
</div>
{(this.props.modal.type == 'edit') && (
<form>
<div className='modal-body'>
- <div className='form-group'>
- <label className='control-label is-required'>Intitulé de la course</label>
- <input
- type='text'
- ref='published_journey_name'
- className='form-control'
- defaultValue={this.props.modal.modalProps.vehicleJourney.published_journey_name}
- onKeyDown={(e) => actions.resetValidation(e.currentTarget)}
- required
- />
- </div>
-
<div className='row'>
- <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
- <p>Mission <span> {this.props.modal.modalProps.vehicleJourney.journey_pattern.objectid} - {this.props.modal.modalProps.vehicleJourney.journey_pattern.name}</span></p>
+ <div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'>
+ <div className='form-group'>
+ <label className='control-label is-required'>Intitulé de la course</label>
+ <input
+ type='text'
+ ref='published_journey_name'
+ className='form-control'
+ defaultValue={this.props.modal.modalProps.vehicleJourney.published_journey_name}
+ onKeyDown={(e) => actions.resetValidation(e.currentTarget)}
+ required
+ />
+ </div>
+ </div>
+ <div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'>
+ <div className='form-group'>
+ <label className='control-label'>Mission</label>
+ <input
+ type='text'
+ className='form-control'
+ value={(this.props.modal.modalProps.vehicleJourney.journey_pattern.objectid) + ' - ' + (this.props.modal.modalProps.vehicleJourney.journey_pattern.name)}
+ disabled={true}
+ />
+ </div>
</div>
</div>
+
<div className='row'>
- <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
+ <div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'>
<label className='control-label is-required'>Numéro de train</label>
<input
type='text'
@@ -73,17 +83,21 @@ class EditVehicleJourney extends Component {
required
/>
</div>
- </div>
- <div className='row'>
- <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
- <p>Transporteur <span> {this.props.modal.modalProps.vehicleJourney.company_id}</span></p>
+ <div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'>
+ <label className='control-label'>Transporteur</label>
+ <input
+ type='text'
+ className='form-control'
+ value={this.props.modal.modalProps.vehicleJourney.company_id}
+ disabled={true}
+ />
</div>
</div>
</div>
<div className='modal-footer'>
<button
- className='btn btn-default'
+ className='btn btn-link'
data-dismiss='modal'
type='button'
onClick={this.props.onModalClose}
@@ -91,7 +105,7 @@ class EditVehicleJourney extends Component {
Annuler
</button>
<button
- className='btn btn-danger'
+ className='btn btn-primary'
type='button'
onClick={this.handleSubmit.bind(this)}
>
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 105cfa4c5..a373ed1e5 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
@@ -37,18 +37,18 @@ class ShiftVehicleJourney extends Component {
<div className='modal-container'>
<div className='modal-dialog'>
<div className='modal-content'>
- <div className='modal-header clearfix'>
- <h4>Mettre à jour une course</h4>
+ <div className='modal-header'>
+ <h4 className='modal-title'>Mettre à jour une course</h4>
+ {(this.props.modal.type == 'shift') && (
+ <em>Mettre à jour les horaires de la course {actions.getSelected(this.props.vehicleJourneys)[0].objectid}</em>
+ )}
</div>
{(this.props.modal.type == 'shift') && (
<form>
<div className='modal-body'>
- <div className='form-group'>
- <span>Mettre à jour les horaires de la course {actions.getSelected(this.props.vehicleJourneys)[0].objectid}</span>
- </div>
<div className='row'>
- <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
+ <div className='col-lg-4 col-lg-offset-4 col-md-4 col-md-offset-4 col-sm-4 col-sm-offset-4 col-xs-12'>
<div className='form-group'>
<label className='control-label is-required'>Avec un décalage de</label>
<input
@@ -66,7 +66,7 @@ class ShiftVehicleJourney extends Component {
</div>
<div className='modal-footer'>
<button
- className='btn btn-default'
+ className='btn btn-link'
data-dismiss='modal'
type='button'
onClick={this.props.onModalClose}
@@ -74,7 +74,7 @@ class ShiftVehicleJourney extends Component {
Annuler
</button>
<button
- className='btn btn-danger'
+ className='btn btn-primary'
type='button'
onClick={this.handleSubmit.bind(this)}
>
diff --git a/app/assets/stylesheets/application.sass b/app/assets/stylesheets/application.sass
index f7645d285..4652de9f4 100644
--- a/app/assets/stylesheets/application.sass
+++ b/app/assets/stylesheets/application.sass
@@ -12,6 +12,7 @@
@import 'layout'
@import 'components/buttons'
+@import 'components/modals'
@import 'components/select2'
@import 'components/forms'
@import 'components/tables'
diff --git a/app/assets/stylesheets/components/_modals.sass b/app/assets/stylesheets/components/_modals.sass
new file mode 100644
index 000000000..2db4fe955
--- /dev/null
+++ b/app/assets/stylesheets/components/_modals.sass
@@ -0,0 +1,47 @@
+//----------//
+// Modals //
+//----------//
+
+$modalW: 600px
+
+.modal
+ // Modal centering
+ .modal-container
+ display: table
+ width: 100%
+ height: 100%
+
+ .modal-dialog
+ display: table-cell
+ vertical-align: middle
+ width: 100%
+ height: 100%
+ margin: 0
+ text-align: center
+
+ .modal-content
+ display: inline-block
+ text-align: left
+ width: $modalW
+
+ // Modal custom styles
+ .modal-content
+ border-radius: 4px
+ border: none
+ overflow: hidden
+
+ .modal-header
+ border: none
+ background-color: $blue
+ color: #fff
+ padding: 15px 30px
+
+ .modal-title
+ font-size: $h2-size
+
+ .modal-body
+ padding: 15px 30px
+
+ .modal-footer
+ border-color: rgba($blue, 0.25)
+ padding: 15px 30px
diff --git a/app/assets/stylesheets/components/_select2.sass b/app/assets/stylesheets/components/_select2.sass
index b7fd2c6df..1eb6d01a8 100644
--- a/app/assets/stylesheets/components/_select2.sass
+++ b/app/assets/stylesheets/components/_select2.sass
@@ -3,15 +3,43 @@
//-----------------------//
// With Font Awesome adjusts.
+.select2-selection__rendered
+ position: relative
-.select2-selection__clear
- font-size: 0
- font-family: FontAwesome
- text-rendering: auto
- -webkit-font-smoothing: antialiased
+.select2-container--bootstrap
+ .select2-dropdown
+ z-index: 2050
+ .select2-dropdown--above
+ box-shadow: 0 -3px 6px rgba(0, 0, 0, 0.175)
- &::before
- content: '\f057'
- display: inline
- font-size: 14px
- font-weight: normal
+ .select2-selection--multiple
+ .select2-selection__clear
+ position: absolute
+ top: 50%
+ right: 10px
+ margin: -10px 0 0 0
+ font-size: 0
+ font-family: FontAwesome
+ text-rendering: auto
+ -webkit-font-smoothing: antialiased
+
+ &::before
+ content: '\f057'
+ color: $grey
+ display: inline
+ font-size: 14px
+ font-weight: normal
+
+ .select2-selection__choice
+ background-color: $blue
+ color: #fff
+ border: none
+ border-radius: 3px
+
+ .select2-selection__choice__remove
+ float: right
+ color: rgba(#fff, 0.5)
+ margin: 0 0 0 5px
+
+ &:hover
+ color: #fff