From d69094603db9cca81c33e8ffd3e8e778a5ca1d76 Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 22 Mar 2017 12:27:27 +0100 Subject: Fixous stuffous --- .../es6_browserified/vehicle_journeys/components/VehicleJourney.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/assets/javascripts') 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 c88dda5f4..81c9cba9c 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js @@ -69,7 +69,7 @@ class VehicleJourney extends Component { {this.props.value.vehicle_journey_at_stops.map((vj, i) =>
-
+
{this.props.filters.toggleArrivals &&
-- cgit v1.2.3 From f5da4a8cb1b579071ce63373e9ec6ca43feaf78a Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Wed, 22 Mar 2017 12:28:18 +0100 Subject: Fix multiple selection disabled when no permissions in vj Signed-off-by: Thomas Shawarma Haddad --- .../vehicle_journeys/components/VehicleJourney.js | 26 ++++++++++++---------- .../es6_browserified/vehicle_journeys/index.js | 2 +- 2 files changed, 15 insertions(+), 13 deletions(-) (limited to 'app/assets/javascripts') 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 81c9cba9c..dc0621f76 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js @@ -54,19 +54,21 @@ class VehicleJourney extends Component {
{this.timeTableURL(tt.id)}
)} -
- this.props.onSelectVehicleJourney(this.props.index)} - type='checkbox' - disabled={this.props.value.deletable} - checked={this.props.value.selected} - > - -
-
+ {this.isDisabled(this.props.filters.policy['vehicle_journeys.edit'], this.props.filters.policy['vehicle_journeys.destroy']) && +
+ this.props.onSelectVehicleJourney(this.props.index)} + type='checkbox' + disabled={this.props.value.deletable} + checked={this.props.value.selected} + > + +
+ } +
{this.props.value.vehicle_journey_at_stops.map((vj, i) =>
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js index bf6930215..1b9ff8f41 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js @@ -21,7 +21,7 @@ if (window.journeyPatternId) var initialState = { filters: { selectedJourneyPatterns : selectedJP, - policy: window.perms, + policy: perms, toggleArrivals: false, queryString: '', query: { -- cgit v1.2.3 From 05363428c5f519346fd6610ae5ca6c86ab0578b8 Mon Sep 17 00:00:00 2001 From: jpl Date: Thu, 23 Mar 2017 11:11:38 +0100 Subject: Refs #2920: fix string decoding --- .../es6_browserified/itineraries/components/BSelect2.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js b/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js index 81bf2dcbe..595c42bfd 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js @@ -27,6 +27,19 @@ class BSelect3 extends React.Component{ }) } + parsedText(data) { + let a = this.props.value.text.replace('', '') + console.log(a) + let b = a.split('') + + return ( + + {b[0]} + {b[1]} + + ) + } + render() { if(this.props.value.edit) return ( @@ -48,7 +61,7 @@ class BSelect3 extends React.Component{ href={origin + path + '/stop_areas/' + this.props.value.stoparea_id} title="Voir l'arrêt" > - {this.props.value.text} + {this.parsedText(this.props.text)} ) } -- cgit v1.2.3 From f3505b6ed5d3c41fc0692308ad938460f08d038a Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 23 Mar 2017 12:21:36 +0100 Subject: Refs #2820 : WIP sticky header button not working correctly Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/main_menu.coffee | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/main_menu.coffee b/app/assets/javascripts/main_menu.coffee index ed8ac655e..81647009f 100644 --- a/app/assets/javascripts/main_menu.coffee +++ b/app/assets/javascripts/main_menu.coffee @@ -13,19 +13,18 @@ $(document).on 'ready page:load', -> selectedItem.closest('.panel-title').children('a').attr('aria-expanded') == true + data = $('.page-action .small')[0].innerHTML + link = $('.page-action .small').next() + console.log link + + stickyContent = '
' + stickyContent += '
' + $(".page-title").html() + '
' + stickyContent += '
' + data + '
' + stickyContent += '
' + # Sticky behavior $(document).on 'scroll', -> limit = 51 - - data = "" - $('.page-action').children().each -> - data += $(this)[0].outerHTML - - stickyContent = '
' - stickyContent += '
' + $(".page-title").html() + '
' - stickyContent += '
' + data + '
' - stickyContent += '
' - # console.log stickyContent if $(window).scrollTop() >= limit @@ -33,11 +32,13 @@ $(document).on 'ready page:load', -> if $('#menu_top').find('.sticky-content').length == 0 $('#menu_top').children('.menu-content').after(stickyContent) - # $('.sticky-paction .small').after($('.formSubmitr')) + if link.length == 0 + link = $('.page-action .small').next() + $('.sticky-paction .small').after(link) else $('#main_nav').removeClass 'sticky' if $('#menu_top').find('.sticky-content').length > 0 - # $('.page-action .small').after($('.formSubmitr')) + $('.page-action .small').after(link) $('.sticky-content').remove() -- cgit v1.2.3 From 5a69ab68dcc5019632467f37060bde93d5c00c0f Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 23 Mar 2017 13:27:29 +0100 Subject: Refs #2820: Fix sticky button not working correctly Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/main_menu.coffee | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/main_menu.coffee b/app/assets/javascripts/main_menu.coffee index 81647009f..dee846ffb 100644 --- a/app/assets/javascripts/main_menu.coffee +++ b/app/assets/javascripts/main_menu.coffee @@ -1,4 +1,9 @@ $(document).on 'ready page:load', -> + + link = [] + $(document).on 'page:before-change', -> + link = [] + $el = $('#main_nav') # Opening/closing left-side menu $el.find('.openMenu').on 'click', (e) -> @@ -14,8 +19,6 @@ $(document).on 'ready page:load', -> data = $('.page-action .small')[0].innerHTML - link = $('.page-action .small').next() - console.log link stickyContent = '
' stickyContent += '
' + $(".page-title").html() + '
' @@ -25,7 +28,6 @@ $(document).on 'ready page:load', -> # Sticky behavior $(document).on 'scroll', -> limit = 51 - # console.log stickyContent if $(window).scrollTop() >= limit $('#main_nav').addClass 'sticky' -- cgit v1.2.3 From 5d1ed5b589b2175b805e5cb0217382ebfc8a6b36 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 23 Mar 2017 14:44:18 +0100 Subject: Remove js log in route edit Signed-off-by: Thomas Shawarma Haddad --- .../javascripts/es6_browserified/itineraries/components/BSelect2.js | 1 - 1 file changed, 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js b/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js index 595c42bfd..1ce058da3 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js @@ -29,7 +29,6 @@ class BSelect3 extends React.Component{ parsedText(data) { let a = this.props.value.text.replace('
', '') - console.log(a) let b = a.split('') return ( -- cgit v1.2.3 From 75f7e8a8ad1e1c119469ccc693e3aa439bb5ca7a Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 24 Mar 2017 12:50:10 +0100 Subject: Attempt Fix object assign not working in ie11 Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/application.js | 1 + 1 file changed, 1 insertion(+) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 3bce3ec7d..144a296ea 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -7,6 +7,7 @@ //= require turbolinks //= require jquery //= require jquery_ujs +//= require(es6-object-assign).polyfill() //= require modernizr //= require cocoon //= require ./OpenLayers/ol.js -- cgit v1.2.3 From 7cc40f94cc10f360b8c803307af4541660fcdf07 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 24 Mar 2017 13:41:57 +0100 Subject: Replace Object.assign by _.assign in whole react-redux pages Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/application.js | 1 - .../itineraries/components/BSelect2.js | 3 ++- .../itineraries/components/OlMap.js | 3 ++- .../itineraries/reducers/stopPoints.js | 29 +++++++++++----------- .../journey_patterns/reducers/journeyPatterns.js | 9 ++++--- .../journey_patterns/reducers/modal.js | 7 +++--- .../journey_patterns/reducers/pagination.js | 11 ++++---- .../journey_patterns/reducers/status.js | 7 +++--- .../components/tools/select2s/CompanySelect2.js | 3 ++- .../components/tools/select2s/MissionSelect2.js | 3 ++- .../components/tools/select2s/TimetableSelect2.js | 3 ++- .../vehicle_journeys/reducers/filters.js | 29 +++++++++++----------- .../vehicle_journeys/reducers/modal.js | 22 ++++++++-------- .../vehicle_journeys/reducers/pagination.js | 15 +++++------ .../vehicle_journeys/reducers/status.js | 7 +++--- .../vehicle_journeys/reducers/vehicleJourneys.js | 28 ++++++++++----------- 16 files changed, 96 insertions(+), 84 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 144a296ea..3bce3ec7d 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -7,7 +7,6 @@ //= require turbolinks //= require jquery //= require jquery_ujs -//= require(es6-object-assign).polyfill() //= require modernizr //= require cocoon //= require ./OpenLayers/ol.js diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js b/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js index 1ce058da3..3414636fa 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js @@ -1,3 +1,4 @@ +var _ = require('lodash') var React = require('react') var PropTypes = require('react').PropTypes var Select2 = require('react-select2') @@ -96,7 +97,7 @@ class BSelect2 extends React.Component{ processResults: function(data, params) { return { results: data.map( - item => Object.assign( + item => _.assign( {}, item, { text: item.name + ", " + item.zip_code + " " + item.short_city_name + " (" + item.user_objectid + ")" } diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/OlMap.js b/app/assets/javascripts/es6_browserified/itineraries/components/OlMap.js index 76142b0e1..0eca5f3ff 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/components/OlMap.js +++ b/app/assets/javascripts/es6_browserified/itineraries/components/OlMap.js @@ -1,3 +1,4 @@ +var _ = require('lodash') var React = require('react') var Component = require('react').Component var PropTypes = require('react').PropTypes @@ -96,7 +97,7 @@ class OlMap extends Component{ return false } } - let data = Object.assign({}, e.selected[0].getProperties(), {geometry: undefined}); + let data = _.assign({}, e.selected[0].getProperties(), {geometry: undefined}); this.props.onSelectMarker(this.props.index, data) } else { diff --git a/app/assets/javascripts/es6_browserified/itineraries/reducers/stopPoints.js b/app/assets/javascripts/es6_browserified/itineraries/reducers/stopPoints.js index 6fc5c165f..79b9648a6 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/reducers/stopPoints.js +++ b/app/assets/javascripts/es6_browserified/itineraries/reducers/stopPoints.js @@ -1,3 +1,4 @@ +var _ = require('lodash') var addInput = require('../form_helper') const stopPoint = (state = {}, action, length) => { @@ -60,7 +61,7 @@ const stopPoints = (state = [], action) => { return state.map( (t, i) => { if (i === action.index) { updateFormForDeletion(t) - return Object.assign( + return _.assign( {}, t, { @@ -84,7 +85,7 @@ const stopPoints = (state = [], action) => { case 'UPDATE_SELECT_VALUE': return state.map( (t, i) => { if (i === action.index) { - let stopState = Object.assign({}, t) + let stopState = _.assign({}, t) stopState[action.select_id] = action.select_value return stopState } else { @@ -94,7 +95,7 @@ const stopPoints = (state = [], action) => { case 'TOGGLE_EDIT': return state.map((t, i) => { if (i === action.index){ - return Object.assign({}, t, {edit: !t.edit}) + return _.assign({}, t, {edit: !t.edit}) } else { return t } @@ -103,19 +104,19 @@ const stopPoints = (state = [], action) => { return state.map( (t, i) => { if (i === action.index){ let val = !t.olMap.isOpened - let jsonData = val ? Object.assign({}, t, {olMap: undefined}) : {} - let stateMap = Object.assign({}, t.olMap, {isOpened: val, json: jsonData}) - return Object.assign({}, t, {olMap: stateMap}) + let jsonData = val ? _.assign({}, t, {olMap: undefined}) : {} + let stateMap = _.assign({}, t.olMap, {isOpened: val, json: jsonData}) + return _.assign({}, t, {olMap: stateMap}) }else { - let emptyMap = Object.assign({}, t.olMap, {isOpened: false, json : {}}) - return Object.assign({}, t, {olMap: emptyMap}) + let emptyMap = _.assign({}, t.olMap, {isOpened: false, json : {}}) + return _.assign({}, t, {olMap: emptyMap}) } }) case 'SELECT_MARKER': return state.map((t, i) => { if (i === action.index){ - let stateMap = Object.assign({}, t.olMap, {json: action.data}) - return Object.assign({}, t, {olMap: stateMap}) + let stateMap = _.assign({}, t.olMap, {json: action.data}) + return _.assign({}, t, {olMap: stateMap}) } else { return t } @@ -123,16 +124,16 @@ const stopPoints = (state = [], action) => { case 'UNSELECT_MARKER': return state.map((t, i) => { if (i === action.index){ - let stateMap = Object.assign({}, t.olMap, {json: {}}) - return Object.assign({}, t, {olMap: stateMap}) + let stateMap = _.assign({}, t.olMap, {json: {}}) + return _.assign({}, t, {olMap: stateMap}) } else { return t } }) case 'CLOSE_MAP': return state.map( (t, i) => { - let emptyMap = Object.assign({}, t.olMap, {isOpened: false, json: {}}) - return Object.assign({}, t, {olMap: emptyMap}) + let emptyMap = _.assign({}, t.olMap, {isOpened: false, json: {}}) + return _.assign({}, t, {olMap: emptyMap}) }) default: return state diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js index 92381f018..d4f7257d7 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js @@ -1,3 +1,4 @@ +var _ = require('lodash') var actions = require("../actions") const journeyPattern = (state = {}, action) => { @@ -21,12 +22,12 @@ const journeyPattern = (state = {}, action) => { case 'UPDATE_CHECKBOX_VALUE': var updatedStopPoints = state.stop_points.map((s) => { if (String(s.id) == action.id) { - return Object.assign({}, s, {checked : !s.checked}) + return _.assign({}, s, {checked : !s.checked}) }else { return s } }) - return Object.assign({}, state, {stop_points: updatedStopPoints}) + return _.assign({}, state, {stop_points: updatedStopPoints}) default: return state } @@ -61,7 +62,7 @@ const journeyPatterns = (state = [], action) => { case 'DELETE_JOURNEYPATTERN': return state.map((j, i) =>{ if(i == action.index) { - return Object.assign({}, j, {deletable: true}) + return _.assign({}, j, {deletable: true}) } else { return j } @@ -74,7 +75,7 @@ const journeyPatterns = (state = [], action) => { case 'SAVE_MODAL': return state.map((j, i) =>{ if(i == action.index) { - return Object.assign({}, j, { + return _.assign({}, j, { name: action.data.name.value, published_name: action.data.published_name.value, registration_number: action.data.registration_number.value diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js index cb274d767..86cfb5a25 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js @@ -1,8 +1,9 @@ +var _ = require('lodash') const modal = (state = {}, action) => { switch (action.type) { case 'OPEN_CONFIRM_MODAL': $('#ConfirmModal').modal('show') - return Object.assign({}, state, { + return _.assign({}, state, { type: 'confirm', confirmModal: { callback: action.callback, @@ -24,9 +25,9 @@ const modal = (state = {}, action) => { confirmModal: {} } case 'DELETE_JOURNEYPATTERN': - return Object.assign({}, state, { type: '' }) + return _.assign({}, state, { type: '' }) case 'SAVE_MODAL': - return Object.assign({}, state, { type: '' }) + return _.assign({}, state, { type: '' }) case 'CLOSE_MODAL': return { type: '', diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js index 48d95fdea..0714ca843 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js @@ -1,26 +1,27 @@ +var _ = require('lodash') const pagination = (state = {}, action) => { switch (action.type) { case 'RECEIVE_JOURNEY_PATTERNS': - return Object.assign({}, state, {stateChanged: false}) + return _.assign({}, state, {stateChanged: false}) case 'GO_TO_PREVIOUS_PAGE': if (action.pagination.page > 1){ toggleOnConfirmModal() - return Object.assign({}, state, {page : action.pagination.page - 1, stateChanged: false}) + return _.assign({}, state, {page : action.pagination.page - 1, stateChanged: false}) } return state case 'GO_TO_NEXT_PAGE': if (state.totalCount - (action.pagination.page * action.pagination.perPage) > 0){ toggleOnConfirmModal() - return Object.assign({}, state, {page : action.pagination.page + 1, stateChanged: false}) + return _.assign({}, state, {page : action.pagination.page + 1, stateChanged: false}) } return state case 'UPDATE_CHECKBOX_VALUE': case 'ADD_JOURNEYPATTERN': case 'SAVE_MODAL': toggleOnConfirmModal('modal') - return Object.assign({}, state, {stateChanged: true}) + return _.assign({}, state, {stateChanged: true}) case 'UPDATE_TOTAL_COUNT': - return Object.assign({}, state, {totalCount : state.totalCount - action.diff }) + return _.assign({}, state, {totalCount : state.totalCount - action.diff }) default: return state } diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/status.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/status.js index 973fab0f9..6241777da 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/status.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/status.js @@ -1,13 +1,14 @@ +var _ = require('lodash') var actions = require("../actions") const status = (state = {}, action) => { switch (action.type) { case 'UNAVAILABLE_SERVER': - return Object.assign({}, state, {fetchSuccess: false}) + return _.assign({}, state, {fetchSuccess: false}) case 'FETCH_API': - return Object.assign({}, state, {isFetching: true}) + return _.assign({}, state, {isFetching: true}) case 'RECEIVE_JOURNEY_PATTERNS': - return Object.assign({}, state, {fetchSuccess: true, isFetching: false}) + return _.assign({}, state, {fetchSuccess: true, isFetching: false}) default: return state } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/CompanySelect2.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/CompanySelect2.js index d9c7d7296..7837cdbff 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/CompanySelect2.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/CompanySelect2.js @@ -1,3 +1,4 @@ +var _ = require('lodash') var React = require('react') var PropTypes = require('react').PropTypes var Select2 = require('react-select2') @@ -38,7 +39,7 @@ class BSelect4 extends React.Component{ return { results: data.map( - item => Object.assign( + item => _.assign( {}, item, {text: item.name} diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/MissionSelect2.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/MissionSelect2.js index 2b4e1cd80..75cbd1f3c 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/MissionSelect2.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/MissionSelect2.js @@ -1,3 +1,4 @@ +var _ = require('lodash') var React = require('react') var PropTypes = require('react').PropTypes var Select2 = require('react-select2') @@ -37,7 +38,7 @@ class BSelect4 extends React.Component{ processResults: function(data, params) { return { results: data.map( - item => Object.assign( + item => _.assign( {}, item, {text: item.published_name} diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js index fd1e30afb..c28d8e06f 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js @@ -1,3 +1,4 @@ +var _ = require('lodash') var React = require('react') var PropTypes = require('react').PropTypes var Select2 = require('react-select2') @@ -38,7 +39,7 @@ class BSelect4 extends React.Component{ return { results: data.map( - item => Object.assign( + item => _.assign( {}, item, {text: item.comment} 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 5b5ba0788..4b67dc4df 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js @@ -1,3 +1,4 @@ +var _ = require('lodash') var actions = require("../actions") let newQuery, newInterval @@ -14,17 +15,17 @@ const filters = (state = {}, action) => { minute: '59' } } - newQuery = Object.assign({}, state.query, {interval: interval, journeyPattern: {}, timetable: {}, withoutSchedule: false }) - return Object.assign({}, state, {query: newQuery, queryString: ''}) + newQuery = _.assign({}, state.query, {interval: interval, journeyPattern: {}, timetable: {}, withoutSchedule: false }) + return _.assign({}, state, {query: newQuery, queryString: ''}) case 'TOGGLE_WITHOUT_SCHEDULE': - newQuery = Object.assign({}, state.query, {withoutSchedule: !state.query.withoutSchedule}) - return Object.assign({}, state, {query: newQuery}) + newQuery = _.assign({}, state.query, {withoutSchedule: !state.query.withoutSchedule}) + return _.assign({}, state, {query: newQuery}) case 'UPDATE_END_TIME_FILTER': newInterval = JSON.parse(JSON.stringify(state.query.interval)) newInterval.end[action.unit] = actions.pad(action.val) if(parseInt(newInterval.start.hour + newInterval.start.minute) < parseInt(newInterval.end.hour + newInterval.end.minute)){ - newQuery = Object.assign({}, state.query, {interval: newInterval}) - return Object.assign({}, state, {query: newQuery}) + newQuery = _.assign({}, state.query, {interval: newInterval}) + return _.assign({}, state, {query: newQuery}) }else{ return state } @@ -32,19 +33,19 @@ const filters = (state = {}, action) => { newInterval = JSON.parse(JSON.stringify(state.query.interval)) newInterval.start[action.unit] = actions.pad(action.val) if(parseInt(newInterval.start.hour + newInterval.start.minute) < parseInt(newInterval.end.hour + newInterval.end.minute)){ - newQuery = Object.assign({}, state.query, {interval: newInterval}) - return Object.assign({}, state, {query: newQuery}) + newQuery = _.assign({}, state.query, {interval: newInterval}) + return _.assign({}, state, {query: newQuery}) }else{ return state } case 'SELECT_TT_FILTER': - newQuery = Object.assign({}, state.query, {timetable : action.selectedItem}) - return Object.assign({}, state, {query: newQuery}) + newQuery = _.assign({}, state.query, {timetable : action.selectedItem}) + return _.assign({}, state, {query: newQuery}) case 'SELECT_JP_FILTER': - newQuery = Object.assign({}, state.query, {journeyPattern : action.selectedItem}) - return Object.assign({}, state, {query: newQuery}) + newQuery = _.assign({}, state.query, {journeyPattern : action.selectedItem}) + return _.assign({}, state, {query: newQuery}) case 'TOGGLE_ARRIVALS': - return Object.assign({}, state, {toggleArrivals: !state.toggleArrivals}) + return _.assign({}, state, {toggleArrivals: !state.toggleArrivals}) case 'QUERY_FILTER_VEHICLEJOURNEYS': actions.fetchVehicleJourneys(action.dispatch, undefined, undefined, state.queryString) return state @@ -56,7 +57,7 @@ const filters = (state = {}, action) => { 'q[vehicle_journey_at_stops_departure_time_lteq]': (state.query.interval.end.hour + ':' + state.query.interval.end.minute) } let queryString = actions.encodeParams(params) - return Object.assign({}, state, {queryString: queryString}) + return _.assign({}, state, {queryString: queryString}) default: return state } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js index a36aaa4fe..3b13ab9de 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js @@ -4,14 +4,14 @@ const modal = (state = {}, action) => { switch (action.type) { case 'OPEN_CONFIRM_MODAL': $('#ConfirmModal').modal('show') - return Object.assign({}, state, { + return _.assign({}, state, { type: 'confirm', confirmModal: { callback: action.callback, } }) case 'EDIT_NOTES_VEHICLEJOURNEY_MODAL': - let vehicleJourneyModal = Object.assign({}, action.vehicleJourney) + let vehicleJourneyModal = _.assign({}, action.vehicleJourney) return { type: 'notes_edit', modalProps: { @@ -26,7 +26,7 @@ const modal = (state = {}, action) => { }else{ newModalProps.vehicleJourney.footnotes = newModalProps.vehicleJourney.footnotes.filter((f) => {return f.id != action.footnote.id }) } - return Object.assign({}, state, {modalProps: newModalProps}) + return _.assign({}, state, {modalProps: newModalProps}) case 'EDIT_VEHICLEJOURNEY_MODAL': return { type: 'edit', @@ -55,11 +55,11 @@ const modal = (state = {}, action) => { confirmModal: {} } case 'SELECT_CP_EDIT_MODAL': - newModalProps = Object.assign({}, state.modalProps, {selectedCompany : action.selectedItem}) - return Object.assign({}, state, {modalProps: newModalProps}) + newModalProps = _.assign({}, state.modalProps, {selectedCompany : action.selectedItem}) + return _.assign({}, state, {modalProps: newModalProps}) case 'SELECT_TT_CALENDAR_MODAL': - newModalProps = Object.assign({}, state.modalProps, {selectedTimetable : action.selectedItem}) - return Object.assign({}, state, {modalProps: newModalProps}) + newModalProps = _.assign({}, state.modalProps, {selectedTimetable : action.selectedItem}) + return _.assign({}, state, {modalProps: newModalProps}) case 'ADD_SELECTED_TIMETABLE': if(state.modalProps.selectedTimetable){ newModalProps = JSON.parse(JSON.stringify(state.modalProps)) @@ -77,7 +77,7 @@ const modal = (state = {}, action) => { if (!_.find(newModalProps.timetables, newModalProps.selectedTimetable)){ newModalProps.timetables.push(newModalProps.selectedTimetable) } - return Object.assign({}, state, {modalProps: newModalProps}) + return _.assign({}, state, {modalProps: newModalProps}) } case 'DELETE_CALENDAR_MODAL': newModalProps = JSON.parse(JSON.stringify(state.modalProps)) @@ -97,7 +97,7 @@ const modal = (state = {}, action) => { }) newModalProps.vehicleJourneys = vehicleJourneysModal newModalProps.timetables = timetablesModal - return Object.assign({}, state, {modalProps: newModalProps}) + return _.assign({}, state, {modalProps: newModalProps}) case 'CREATE_VEHICLEJOURNEY_MODAL': return { type: 'create', @@ -105,8 +105,8 @@ const modal = (state = {}, action) => { confirmModal: {} } case 'SELECT_JP_CREATE_MODAL': - newModalProps = Object.assign({}, state.modalProps, {selectedJPModal : action.selectedItem}) - return Object.assign({}, state, {modalProps: newModalProps}) + newModalProps = _.assign({}, state.modalProps, {selectedJPModal : action.selectedItem}) + return _.assign({}, state, {modalProps: newModalProps}) case 'SHIFT_VEHICLEJOURNEY_MODAL': return { type: 'shift', diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/pagination.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/pagination.js index 31c855a2f..ee59fca6d 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/pagination.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/pagination.js @@ -1,27 +1,28 @@ +var _ = require('lodash') const pagination = (state = {}, action) => { switch (action.type) { case 'RECEIVE_JOURNEY_PATTERNS': - return Object.assign({}, state, {stateChanged: false}) + return _.assign({}, state, {stateChanged: false}) case 'GO_TO_PREVIOUS_PAGE': if (action.pagination.page > 1){ - return Object.assign({}, state, {page : action.pagination.page - 1, stateChanged: false}) + return _.assign({}, state, {page : action.pagination.page - 1, stateChanged: false}) } return state case 'GO_TO_NEXT_PAGE': if (state.totalCount - (action.pagination.page * action.pagination.perPage) > 0){ - return Object.assign({}, state, {page : action.pagination.page + 1, stateChanged: false}) + return _.assign({}, state, {page : action.pagination.page + 1, stateChanged: false}) } return state case 'ADD_VEHICLEJOURNEY': case 'UPDATE_TIME': toggleOnConfirmModal('modal') - return Object.assign({}, state, {stateChanged: true}) + return _.assign({}, state, {stateChanged: true}) case 'RESET_PAGINATION': - return Object.assign({}, state, {page: 1, stateChanged: false}) + return _.assign({}, state, {page: 1, stateChanged: false}) case 'RECEIVE_TOTAL_COUNT': - return Object.assign({}, state, {totalCount: action.total}) + return _.assign({}, state, {totalCount: action.total}) case 'UPDATE_TOTAL_COUNT': - return Object.assign({}, state, {totalCount : state.totalCount - action.diff }) + return _.assign({}, state, {totalCount : state.totalCount - action.diff }) default: return state } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/status.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/status.js index 3351aec4f..3301337f9 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/status.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/status.js @@ -1,13 +1,14 @@ +var _ = require('lodash') var actions = require("../actions") const status = (state = {}, action) => { switch (action.type) { case 'UNAVAILABLE_SERVER': - return Object.assign({}, state, {fetchSuccess: false}) + return _.assign({}, state, {fetchSuccess: false}) case 'FETCH_API': - return Object.assign({}, state, {isFetching: true}) + return _.assign({}, state, {isFetching: true}) case 'RECEIVE_VEHICLE_JOURNEYS': - return Object.assign({}, state, {fetchSuccess: true, isFetching: false}) + return _.assign({}, state, {fetchSuccess: true, isFetching: false}) default: return state } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js index ae98b6743..5924f5cc7 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js @@ -4,9 +4,9 @@ var actions = require("../actions") const vehicleJourney= (state = {}, action) => { switch (action.type) { case 'SELECT_VEHICLEJOURNEY': - return Object.assign({}, state, {selected: !state.selected}) + return _.assign({}, state, {selected: !state.selected}) case 'CANCEL_SELECTION': - return Object.assign({}, state, {selected: false}) + return _.assign({}, state, {selected: false}) case 'ADD_VEHICLEJOURNEY': let pristineVjasList = [] _.each(action.stopPointsList, (sp) =>{ @@ -58,34 +58,34 @@ const vehicleJourney= (state = {}, action) => { } } actions.checkSchedules(shiftedSchedule) - shiftedVjas = Object.assign({}, state.vehicle_journey_at_stops[i], shiftedSchedule) - return Object.assign({}, state.vehicle_journey_at_stops[i], shiftedVjas) + shiftedVjas = _.assign({}, state.vehicle_journey_at_stops[i], shiftedSchedule) + return _.assign({}, state.vehicle_journey_at_stops[i], shiftedVjas) }) - return Object.assign({}, state, {vehicle_journey_at_stops: shiftedArray}) + return _.assign({}, state, {vehicle_journey_at_stops: shiftedArray}) case 'UPDATE_TIME': let vj, vjas, vjasArray, newSchedule vjasArray = state.vehicle_journey_at_stops.map((vjas, i) =>{ if(i == action.subIndex){ newSchedule = { - departure_time: Object.assign({}, vjas.departure_time), - arrival_time: Object.assign({}, vjas.arrival_time) + departure_time: _.assign({}, vjas.departure_time), + arrival_time: _.assign({}, vjas.arrival_time) } if (action.isDeparture){ newSchedule.departure_time[action.timeUnit] = actions.pad(action.val) if(!action.isArrivalsToggled) newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val) newSchedule = actions.getDelta(newSchedule) - return Object.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta}) + return _.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta}) }else{ newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val) newSchedule = actions.getDelta(newSchedule) - return Object.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta}) + return _.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta}) } }else{ return vjas } }) - return Object.assign({}, state, {vehicle_journey_at_stops: vjasArray}) + return _.assign({}, state, {vehicle_journey_at_stops: vjasArray}) default: return state } @@ -115,7 +115,7 @@ const vehicleJourneys = (state = [], action) => { case 'EDIT_VEHICLEJOURNEY': return state.map((vj, i) => { if (vj.selected){ - return Object.assign({}, vj, { + return _.assign({}, vj, { company: action.selectedCompany, published_journey_name: action.data.published_journey_name.value, published_journey_identifier: action.data.published_journey_identifier.value, @@ -127,7 +127,7 @@ const vehicleJourneys = (state = [], action) => { case 'EDIT_VEHICLEJOURNEY_NOTES': return state.map((vj, i) => { if (vj.selected){ - return Object.assign({}, vj, { + return _.assign({}, vj, { footnotes: action.footnotes }) }else{ @@ -137,7 +137,7 @@ const vehicleJourneys = (state = [], action) => { case 'EDIT_VEHICLEJOURNEYS_CALENDARS': return state.map((vj,i) =>{ if(vj.selected){ - let updatedVJ = Object.assign({}, vj) + let updatedVJ = _.assign({}, vj) action.vehicleJourneys.map((vjm, j) =>{ if(vj.objectid == vjm.objectid){ updatedVJ.time_tables = vjm.time_tables @@ -179,7 +179,7 @@ const vehicleJourneys = (state = [], action) => { case 'DELETE_VEHICLEJOURNEYS': return state.map((vj, i) =>{ if (vj.selected){ - return Object.assign({}, vj, {deletable: true, selected: false}) + return _.assign({}, vj, {deletable: true, selected: false}) } else { return vj } -- cgit v1.2.3 From 1bbbb2e90f7072aac96011f3d586fb3c4cf20122 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 24 Mar 2017 14:10:16 +0100 Subject: Fix entries function not working for ie in route edit Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/es6_browserified/itineraries/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/itineraries/index.js b/app/assets/javascripts/es6_browserified/itineraries/index.js index e4a28ab49..0141459b8 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/index.js +++ b/app/assets/javascripts/es6_browserified/itineraries/index.js @@ -65,7 +65,7 @@ render( document.querySelector('input[name=commit]').addEventListener('click', (event)=>{ let state = store.getState() - for (let [i, stopPoint] of state.stopPoints.entries()){ + state.stopPoints.map((stopPoint, i) => { if (stopPoint.stoppoint_id == undefined){ stopPoint.stoppoint_id = "" } @@ -74,5 +74,5 @@ document.querySelector('input[name=commit]').addEventListener('click', (event)=> addInput('position',i, i) addInput('for_boarding',stopPoint.for_boarding, i) addInput('for_alighting',stopPoint.for_alighting, i) - } + }) }) -- cgit v1.2.3 From 447f5d76ae24dfafed097cfeb5e21068871e31d6 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 24 Mar 2017 14:50:40 +0100 Subject: Rewrite interpolated string during input creation in route edit Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/es6_browserified/itineraries/form_helper.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/itineraries/form_helper.js b/app/assets/javascripts/es6_browserified/itineraries/form_helper.js index d48718841..0baba27ef 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/form_helper.js +++ b/app/assets/javascripts/es6_browserified/itineraries/form_helper.js @@ -1,8 +1,9 @@ const addInput = (name, value, index) => { let form = document.querySelector('form') let input = document.createElement('input') + let formatedName = 'route[stop_points_attributes]['+ index.toString()+']['+name+']' input.setAttribute('type', 'hidden') - input.setAttribute('name', `route[stop_points_attributes][${index}][${name}]`) + input.setAttribute('name', formatedName) input.setAttribute('value', value) form.appendChild(input) } -- cgit v1.2.3 From 986432ac2f1fbccd5185b837f2119e7035d44ad2 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 24 Mar 2017 15:47:14 +0100 Subject: Use a fetch polyfill for jp or vj Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/application.js | 1 + .../journey_patterns/actions/index.js | 23 ++++++++++++---------- .../vehicle_journeys/actions/index.js | 22 +++++++++++---------- 3 files changed, 26 insertions(+), 20 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 3bce3ec7d..38cadd369 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -21,3 +21,4 @@ //= require footable/footable.sort //= require_directory ./plugins //= require_directory . +require('whatwg-fetch') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js index a31f89841..709686f21 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js @@ -1,3 +1,10 @@ +var Promise = require('promise-polyfill') + +// To add to window +if (!window.Promise) { + window.Promise = Promise; +} + const actions = { receiveJourneyPatterns : (json) => ({ type: "RECEIVE_JOURNEY_PATTERNS", @@ -101,7 +108,8 @@ const actions = { submitJourneyPattern : (dispatch, state, next) => { dispatch(actions.fetchingApi()) let urlJSON = window.location.pathname + ".json" - let req = new Request(urlJSON, { + let hasError = false + fetch(urlJSON, { credentials: 'same-origin', method: 'PATCH', contentType: 'application/json; charset=utf-8', @@ -110,10 +118,7 @@ const actions = { headers: { 'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') } - }) - let hasError = false - fetch(req) - .then(response => { + }).then(response => { if(!response.ok) { hasError = true } @@ -158,12 +163,10 @@ const actions = { str = '.json?page=' + page.toString() } let urlJSON = window.location.pathname + str - let req = new Request(urlJSON, { - credentials: 'same-origin', - }) let hasError = false - fetch(req) - .then(response => { + fetch(urlJSON, { + credentials: 'same-origin', + }).then(response => { if(response.status == 500) { hasError = true } 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 14e127d3c..4e67482da 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -1,3 +1,9 @@ +var Promise = require('promise-polyfill') + +// To add to window +if (!window.Promise) { + window.Promise = Promise; +} var batchActions = require('../batch').batchActions const actions = { @@ -271,12 +277,10 @@ const actions = { if (queryString){ urlJSON = urlJSON + sep + queryString } - let req = new Request(urlJSON, { - credentials: 'same-origin', - }) let hasError = false - fetch(req) - .then(response => { + fetch(urlJSON, { + credentials: 'same-origin', + }).then(response => { if(response.status == 500) { hasError = true } @@ -322,7 +326,8 @@ const actions = { submitVehicleJourneys : (dispatch, state, next) => { dispatch(actions.fetchingApi()) let urlJSON = window.location.pathname + "_collection.json" - let req = new Request(urlJSON, { + let hasError = false + fetch(urlJSON, { credentials: 'same-origin', method: 'PATCH', contentType: 'application/json; charset=utf-8', @@ -331,10 +336,7 @@ const actions = { headers: { 'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') } - }) - let hasError = false - fetch(req) - .then(response => { + }).then(response => { if(!response.ok) { hasError = true } -- cgit v1.2.3 From a4b1472ca9cdf34ad2e56d1dc2fcf0ba50e68f43 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 24 Mar 2017 16:20:20 +0100 Subject: Use a babel polyfill for promises Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/application.js | 1 + 1 file changed, 1 insertion(+) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 38cadd369..b90f7539d 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -22,3 +22,4 @@ //= require_directory ./plugins //= require_directory . require('whatwg-fetch') +require('babel-polyfill') -- cgit v1.2.3 From 2c21e6dbbd2ed85070ee1ebdd26ee97882f424dd Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 24 Mar 2017 16:32:30 +0100 Subject: Fix status not listening to receive errors Signed-off-by: Thomas Shawarma Haddad --- .../javascripts/es6_browserified/vehicle_journeys/reducers/status.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/status.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/status.js index 3301337f9..e658e164e 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/status.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/status.js @@ -9,6 +9,8 @@ const status = (state = {}, action) => { return _.assign({}, state, {isFetching: true}) case 'RECEIVE_VEHICLE_JOURNEYS': return _.assign({}, state, {fetchSuccess: true, isFetching: false}) + case 'RECEIVE_ERRORS': + return _.assign({}, state, {fetchSuccess: true, isFetching: false}) default: return state } -- cgit v1.2.3 From ac5bdcced03ef10e4c214685ef4a3c3dc339b321 Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 27 Mar 2017 11:42:44 +0200 Subject: Tmp disabling of sticky nav --- app/assets/javascripts/forms.coffee | 34 ++++++------ app/assets/javascripts/main_menu.coffee | 92 ++++++++++++++++----------------- 2 files changed, 63 insertions(+), 63 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/forms.coffee b/app/assets/javascripts/forms.coffee index c8dd69581..33da921b6 100644 --- a/app/assets/javascripts/forms.coffee +++ b/app/assets/javascripts/forms.coffee @@ -17,23 +17,23 @@ else labelCont.text(labelCont.data('checkedvalue')) -@submitMover = -> - if $('.page-action').children('.formSubmitr').length > 0 - $('.page-action').children('.formSubmitr').remove() - - $('.formSubmitr').appendTo('.page-action') - - # IE fix - isIE = false || !!document.documentMode - isEdge = !isIE && !!window.StyleMedia - - if isIE || isEdge - $('.formSubmitr').each -> - target = $(this).attr('form') - - $(this).on 'click', -> - $('#' + target).submit() +# @submitMover = -> +# if $('.page-action').children('.formSubmitr').length > 0 +# $('.page-action').children('.formSubmitr').remove() +# +# $('.formSubmitr').appendTo('.page-action') +# +# # IE fix +# isIE = false || !!document.documentMode +# isEdge = !isIE && !!window.StyleMedia +# +# if isIE || isEdge +# $('.formSubmitr').each -> +# target = $(this).attr('form') +# +# $(this).on 'click', -> +# $('#' + target).submit() $(document).on 'ready page:load', togglableFilter -$(document).on 'ready page:load', submitMover +# $(document).on 'ready page:load', submitMover $(document).on 'ready page:load', switchInput diff --git a/app/assets/javascripts/main_menu.coffee b/app/assets/javascripts/main_menu.coffee index dee846ffb..6f882e92c 100644 --- a/app/assets/javascripts/main_menu.coffee +++ b/app/assets/javascripts/main_menu.coffee @@ -1,46 +1,46 @@ -$(document).on 'ready page:load', -> - - link = [] - $(document).on 'page:before-change', -> - link = [] - - $el = $('#main_nav') - # Opening/closing left-side menu - $el.find('.openMenu').on 'click', (e) -> - $(this).parent().addClass 'open' - - $el.find('.closeMenu').on 'click', (e) -> - $(this).closest('.nav-menu').removeClass 'open' - - # Opening menu panel according to current url - selectedItem = $el.find('.active') - selectedItem.closest('.panel-collapse').addClass 'in' - selectedItem.closest('.panel-title').children('a').attr('aria-expanded') == true - - - data = $('.page-action .small')[0].innerHTML - - stickyContent = '
' - stickyContent += '
' + $(".page-title").html() + '
' - stickyContent += '
' + data + '
' - stickyContent += '
' - - # Sticky behavior - $(document).on 'scroll', -> - limit = 51 - - if $(window).scrollTop() >= limit - $('#main_nav').addClass 'sticky' - - if $('#menu_top').find('.sticky-content').length == 0 - $('#menu_top').children('.menu-content').after(stickyContent) - if link.length == 0 - link = $('.page-action .small').next() - $('.sticky-paction .small').after(link) - - else - $('#main_nav').removeClass 'sticky' - - if $('#menu_top').find('.sticky-content').length > 0 - $('.page-action .small').after(link) - $('.sticky-content').remove() +# $(document).on 'ready page:load', -> +# +# link = [] +# $(document).on 'page:before-change', -> +# link = [] +# +# $el = $('#main_nav') +# # Opening/closing left-side menu +# $el.find('.openMenu').on 'click', (e) -> +# $(this).parent().addClass 'open' +# +# $el.find('.closeMenu').on 'click', (e) -> +# $(this).closest('.nav-menu').removeClass 'open' +# +# # Opening menu panel according to current url +# selectedItem = $el.find('.active') +# selectedItem.closest('.panel-collapse').addClass 'in' +# selectedItem.closest('.panel-title').children('a').attr('aria-expanded') == true +# +# +# data = $('.page-action .small')[0].innerHTML +# +# stickyContent = '
' +# stickyContent += '
' + $(".page-title").html() + '
' +# stickyContent += '
' + data + '
' +# stickyContent += '
' +# +# # Sticky behavior +# $(document).on 'scroll', -> +# limit = 51 +# +# if $(window).scrollTop() >= limit +# $('#main_nav').addClass 'sticky' +# +# if $('#menu_top').find('.sticky-content').length == 0 +# $('#menu_top').children('.menu-content').after(stickyContent) +# if link.length == 0 +# link = $('.page-action .small').next() +# $('.sticky-paction .small').after(link) +# +# else +# $('#main_nav').removeClass 'sticky' +# +# if $('#menu_top').find('.sticky-content').length > 0 +# $('.page-action .small').after(link) +# $('.sticky-content').remove() -- cgit v1.2.3 From b23d05eeaca3cf9563e505c8f4fbf657fdcb5299 Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 27 Mar 2017 12:12:13 +0200 Subject: Refs #2813: fixing js listener for IE --- app/assets/javascripts/forms.coffee | 32 ++++++------ app/assets/javascripts/main_menu.coffee | 92 ++++++++++++++++----------------- 2 files changed, 61 insertions(+), 63 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/forms.coffee b/app/assets/javascripts/forms.coffee index 33da921b6..d350d4745 100644 --- a/app/assets/javascripts/forms.coffee +++ b/app/assets/javascripts/forms.coffee @@ -17,23 +17,21 @@ else labelCont.text(labelCont.data('checkedvalue')) -# @submitMover = -> -# if $('.page-action').children('.formSubmitr').length > 0 -# $('.page-action').children('.formSubmitr').remove() -# -# $('.formSubmitr').appendTo('.page-action') -# -# # IE fix -# isIE = false || !!document.documentMode -# isEdge = !isIE && !!window.StyleMedia -# -# if isIE || isEdge -# $('.formSubmitr').each -> -# target = $(this).attr('form') -# -# $(this).on 'click', -> -# $('#' + target).submit() +@submitMover = -> + if $('.page-action').children('.formSubmitr').length > 0 + $('.page-action').children('.formSubmitr').remove() + + $('.formSubmitr').appendTo('.page-action') + + # IE fix + isIE = false || !!document.documentMode + isEdge = !isIE && !!window.StyleMedia + + if isIE || isEdge + $(document).on 'click', '.formSubmitr', -> + target = $(this).attr('form') + $('#' + target).submit() $(document).on 'ready page:load', togglableFilter -# $(document).on 'ready page:load', submitMover +$(document).on 'ready page:load', submitMover $(document).on 'ready page:load', switchInput diff --git a/app/assets/javascripts/main_menu.coffee b/app/assets/javascripts/main_menu.coffee index 6f882e92c..dee846ffb 100644 --- a/app/assets/javascripts/main_menu.coffee +++ b/app/assets/javascripts/main_menu.coffee @@ -1,46 +1,46 @@ -# $(document).on 'ready page:load', -> -# -# link = [] -# $(document).on 'page:before-change', -> -# link = [] -# -# $el = $('#main_nav') -# # Opening/closing left-side menu -# $el.find('.openMenu').on 'click', (e) -> -# $(this).parent().addClass 'open' -# -# $el.find('.closeMenu').on 'click', (e) -> -# $(this).closest('.nav-menu').removeClass 'open' -# -# # Opening menu panel according to current url -# selectedItem = $el.find('.active') -# selectedItem.closest('.panel-collapse').addClass 'in' -# selectedItem.closest('.panel-title').children('a').attr('aria-expanded') == true -# -# -# data = $('.page-action .small')[0].innerHTML -# -# stickyContent = '
' -# stickyContent += '
' + $(".page-title").html() + '
' -# stickyContent += '
' + data + '
' -# stickyContent += '
' -# -# # Sticky behavior -# $(document).on 'scroll', -> -# limit = 51 -# -# if $(window).scrollTop() >= limit -# $('#main_nav').addClass 'sticky' -# -# if $('#menu_top').find('.sticky-content').length == 0 -# $('#menu_top').children('.menu-content').after(stickyContent) -# if link.length == 0 -# link = $('.page-action .small').next() -# $('.sticky-paction .small').after(link) -# -# else -# $('#main_nav').removeClass 'sticky' -# -# if $('#menu_top').find('.sticky-content').length > 0 -# $('.page-action .small').after(link) -# $('.sticky-content').remove() +$(document).on 'ready page:load', -> + + link = [] + $(document).on 'page:before-change', -> + link = [] + + $el = $('#main_nav') + # Opening/closing left-side menu + $el.find('.openMenu').on 'click', (e) -> + $(this).parent().addClass 'open' + + $el.find('.closeMenu').on 'click', (e) -> + $(this).closest('.nav-menu').removeClass 'open' + + # Opening menu panel according to current url + selectedItem = $el.find('.active') + selectedItem.closest('.panel-collapse').addClass 'in' + selectedItem.closest('.panel-title').children('a').attr('aria-expanded') == true + + + data = $('.page-action .small')[0].innerHTML + + stickyContent = '
' + stickyContent += '
' + $(".page-title").html() + '
' + stickyContent += '
' + data + '
' + stickyContent += '
' + + # Sticky behavior + $(document).on 'scroll', -> + limit = 51 + + if $(window).scrollTop() >= limit + $('#main_nav').addClass 'sticky' + + if $('#menu_top').find('.sticky-content').length == 0 + $('#menu_top').children('.menu-content').after(stickyContent) + if link.length == 0 + link = $('.page-action .small').next() + $('.sticky-paction .small').after(link) + + else + $('#main_nav').removeClass 'sticky' + + if $('#menu_top').find('.sticky-content').length > 0 + $('.page-action .small').after(link) + $('.sticky-content').remove() -- cgit v1.2.3 From b36c82d253bbec72b25a2f6b402ae9496b6e144a Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 27 Mar 2017 16:34:50 +0200 Subject: Refs #2973: fix design display degradation on IE --- .../es6_browserified/itineraries/components/StopPoint.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js b/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js index de95759e1..ba6539093 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js +++ b/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js @@ -7,7 +7,9 @@ const StopPoint = (props) => { return (
-
{props.value.user_objectid}
+
+ {props.value.user_objectid} +
@@ -47,7 +49,7 @@ const StopPoint = (props) => { >
- +
', '') + let a = data.replace('', '') let b = a.split('') - - return ( - - {b[0]} - {b[1]} - - ) + if (b.length > 1) { + return ( + + {b[0]} + {b[1]} + + ) + } else { + return ( + {data} + ) + } } render() { @@ -61,7 +66,7 @@ class BSelect3 extends React.Component{ href={origin + path + '/stop_areas/' + this.props.value.stoparea_id} title="Voir l'arrêt" > - {this.parsedText(this.props.text)} + {this.parsedText(this.props.value.text)} ) } diff --git a/app/assets/javascripts/es6_browserified/itineraries/index.js b/app/assets/javascripts/es6_browserified/itineraries/index.js index 0141459b8..b70dc88c9 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/index.js +++ b/app/assets/javascripts/es6_browserified/itineraries/index.js @@ -7,31 +7,31 @@ var App = require('./components/App') var addInput = require('./form_helper') // 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') const getInitialState = () => { let state = [] let datas = JSON.parse(decodeURIComponent(window.itinerary_stop)) datas.map(function(v, i) { - let fancyText = v.name + let fancyText = v.name.replace("'", "\'") if(v.zip_code && v.city_name) - fancyText += ", " + v.zip_code + " " + v.city_name + fancyText += ", " + v.zip_code + " " + v.city_name.replace("'", "\'") state.push({ stoppoint_id: v.stoppoint_id, stoparea_id: v.stoparea_id, user_objectid: v.user_objectid, - short_name: v.short_name, + short_name: v.short_name.replace("'", "\'"), area_type: v.area_type, index: i, edit: false, - city_name: v.city_name, + city_name: v.city_name.replace("'", "\'"), zip_code: v.zip_code, - name: v.name, + name: v.name.replace("'", "\'"), registration_number: v.registration_number, text: fancyText, for_boarding: v.for_boarding || "normal", @@ -49,11 +49,11 @@ const getInitialState = () => { } var initialState = {stopPoints: getInitialState()} -// const loggerMiddleware = createLogger() +const loggerMiddleware = createLogger() let store = createStore( reducers, - initialState - // applyMiddleware(thunkMiddleware, promise, loggerMiddleware) + initialState, + applyMiddleware(thunkMiddleware, promise, loggerMiddleware) ) render( -- cgit v1.2.3 From a524c1275cc698413a19f69056d5a1a497cc3338 Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 27 Mar 2017 18:00:26 +0200 Subject: remove logger --- .../javascripts/es6_browserified/itineraries/index.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/itineraries/index.js b/app/assets/javascripts/es6_browserified/itineraries/index.js index b70dc88c9..57c63a97b 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/index.js +++ b/app/assets/javascripts/es6_browserified/itineraries/index.js @@ -7,10 +7,10 @@ var App = require('./components/App') var addInput = require('./form_helper') // 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') const getInitialState = () => { let state = [] @@ -49,11 +49,11 @@ const getInitialState = () => { } var initialState = {stopPoints: getInitialState()} -const loggerMiddleware = createLogger() +// const loggerMiddleware = createLogger() let store = createStore( reducers, - initialState, - applyMiddleware(thunkMiddleware, promise, loggerMiddleware) + initialState + // applyMiddleware(thunkMiddleware, promise, loggerMiddleware) ) render( -- cgit v1.2.3 From 619d073019c7b9384e64446abc03f5a5a9913bef Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Tue, 28 Mar 2017 12:05:49 +0200 Subject: Refs #2986: Use pagination.totalCount to display total number of jp Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/journey_patterns/components/Navigate.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js index 839d8f72e..3ca860e2e 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js @@ -7,7 +7,6 @@ let Navigate = ({ dispatch, journeyPatterns, pagination, status }) => { let firstPage = 1 let lastPage = Math.ceil(pagination.totalCount / window.journeyPatternsPerPage) - let ItemLength = window.journeyPatternLength let firstItemOnPage = firstPage + (pagination.perPage * (pagination.page - firstPage)) let lastItemOnPage = firstItemOnPage + (pagination.perPage - firstPage) @@ -19,7 +18,7 @@ let Navigate = ({ dispatch, journeyPatterns, pagination, status }) => {
- Liste des missions {firstItemOnPage} à {(lastItemOnPage < ItemLength) ? lastItemOnPage : ItemLength} sur {ItemLength} + Liste des missions {firstItemOnPage} à {(lastItemOnPage < pagination.totalCount) ? lastItemOnPage : pagination.totalCount} sur {pagination.totalCount}
{ e.preventDefault() }}> -- cgit v1.2.3 From dd9bf6345654bd9b6926f370a304dd81f5ba3c69 Mon Sep 17 00:00:00 2001 From: jpl Date: Tue, 28 Mar 2017 16:32:28 +0200 Subject: Refs #2946: fix page title consistent bug --- app/assets/javascripts/main_menu.coffee | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/main_menu.coffee b/app/assets/javascripts/main_menu.coffee index dee846ffb..c6bfc8408 100644 --- a/app/assets/javascripts/main_menu.coffee +++ b/app/assets/javascripts/main_menu.coffee @@ -1,8 +1,10 @@ $(document).on 'ready page:load', -> link = [] + ptitleCont = "" $(document).on 'page:before-change', -> link = [] + ptitleCont = "" $el = $('#main_nav') # Opening/closing left-side menu @@ -17,11 +19,15 @@ $(document).on 'ready page:load', -> selectedItem.closest('.panel-collapse').addClass 'in' selectedItem.closest('.panel-title').children('a').attr('aria-expanded') == true + # Sticky content + if ($('.page-action .small').length > 0) + data = $('.page-action .small')[0].innerHTML - data = $('.page-action .small')[0].innerHTML + if ($(".page-title").length > 0) + ptitleCont = $(".page-title").html() stickyContent = '
' - stickyContent += '
' + $(".page-title").html() + '
' + stickyContent += '
' + ptitleCont + '
' stickyContent += '
' + data + '
' stickyContent += '
' @@ -33,7 +39,8 @@ $(document).on 'ready page:load', -> $('#main_nav').addClass 'sticky' if $('#menu_top').find('.sticky-content').length == 0 - $('#menu_top').children('.menu-content').after(stickyContent) + if ptitleCont.length > 0 + $('#menu_top').children('.menu-content').after(stickyContent) if link.length == 0 link = $('.page-action .small').next() $('.sticky-paction .small').after(link) -- cgit v1.2.3 From 753ade655b58d78398f6c2473ab48afed450ab1b Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Wed, 29 Mar 2017 16:41:31 +0200 Subject: Refs #2977: Fix submit event triggered multiple times in route edit Signed-off-by: Thomas Shawarma Haddad Signed-off-by: Jean-Paul Lescouzeres Signed-off-by: Xinhui Xu --- app/assets/javascripts/forms.coffee | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/forms.coffee b/app/assets/javascripts/forms.coffee index d350d4745..426f3e6ee 100644 --- a/app/assets/javascripts/forms.coffee +++ b/app/assets/javascripts/forms.coffee @@ -28,7 +28,9 @@ isEdge = !isIE && !!window.StyleMedia if isIE || isEdge - $(document).on 'click', '.formSubmitr', -> + $('.formSubmitr').off() + $(document).on 'click', '.formSubmitr', (e)-> + e.preventDefault() target = $(this).attr('form') $('#' + target).submit() -- cgit v1.2.3 From 297d71c3c76365fa6539b375acc681ea27e9aa39 Mon Sep 17 00:00:00 2001 From: jpl Date: Thu, 30 Mar 2017 11:07:53 +0200 Subject: Refs #2974: fixing label on createModal, for vj --- .../es6_browserified/vehicle_journeys/components/tools/CreateModal.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/assets/javascripts') 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 2150287ba..1a1588f85 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 @@ -40,7 +40,7 @@ class CreateModal extends Component {
-

Ajouter une mission

+

Ajouter une course

{(this.props.modal.type == 'create') && ( -- cgit v1.2.3 From 869ba13f7bbd72f197737ffe2a2c234fb73a5059 Mon Sep 17 00:00:00 2001 From: Xinhui Date: Thu, 30 Mar 2017 14:55:06 +0200 Subject: Fix route form opposite_route option should be based on wayback selection Refs #2839 --- app/assets/javascripts/routes.coffee | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 app/assets/javascripts/routes.coffee (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/routes.coffee b/app/assets/javascripts/routes.coffee new file mode 100644 index 000000000..2e36061b8 --- /dev/null +++ b/app/assets/javascripts/routes.coffee @@ -0,0 +1,8 @@ +$(document).on("change", '#route_wayback', (e) -> + way = if $(this).is(':checked') then "backward" else "straight_forward" + $('.opposite_route').hide().find('select').prop('disabled', true) + + field = $(".opposite_route.#{way}") + if field.length + field.removeClass('hidden').show().find('select').prop('disabled', false) +) -- cgit v1.2.3 From 1ff8d9641247120812d389814849db7b53c0817e Mon Sep 17 00:00:00 2001 From: jpl Date: Thu, 30 Mar 2017 17:09:01 +0200 Subject: Refs #3011: updating icon on itineraries --- .../javascripts/es6_browserified/itineraries/components/StopPoint.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js b/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js index ba6539093..48f77b8e9 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js +++ b/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js @@ -54,7 +54,7 @@ const StopPoint = (props) => { className='btn btn-link' onClick={props.onToggleEdit} > - +
--- app/assets/javascripts/main_menu.coffee | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/main_menu.coffee b/app/assets/javascripts/main_menu.coffee index c6bfc8408..9357cff34 100644 --- a/app/assets/javascripts/main_menu.coffee +++ b/app/assets/javascripts/main_menu.coffee @@ -20,22 +20,22 @@ $(document).on 'ready page:load', -> selectedItem.closest('.panel-title').children('a').attr('aria-expanded') == true # Sticky content - if ($('.page-action .small').length > 0) - data = $('.page-action .small')[0].innerHTML - - if ($(".page-title").length > 0) - ptitleCont = $(".page-title").html() - - stickyContent = '
' - stickyContent += '
' + ptitleCont + '
' - stickyContent += '
' + data + '
' - stickyContent += '
' # Sticky behavior $(document).on 'scroll', -> limit = 51 if $(window).scrollTop() >= limit + if ($('.page-action .small').length > 0) + data = $('.page-action .small')[0].innerHTML + + if ($(".page-title").length > 0) + ptitleCont = $(".page-title").html() + + stickyContent = '
' + stickyContent += '
' + ptitleCont + '
' + stickyContent += '
' + data + '
' + stickyContent += '
' $('#main_nav').addClass 'sticky' if $('#menu_top').find('.sticky-content').length == 0 -- cgit v1.2.3 From 8fa4640289fdb8dfa4b9b730a6383711b5503bbf Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 31 Mar 2017 12:47:42 +0200 Subject: Refs #3015: Attempt fix submit being fired multiple times Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/forms.coffee | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/forms.coffee b/app/assets/javascripts/forms.coffee index 426f3e6ee..9d884edcd 100644 --- a/app/assets/javascripts/forms.coffee +++ b/app/assets/javascripts/forms.coffee @@ -1,3 +1,7 @@ +# IE fix +isIE = false || !!document.documentMode +isEdge = !isIE && !!window.StyleMedia + @togglableFilter = -> $('.form-filter').on 'click', '.form-group.togglable', (e)-> if $(e.target).hasClass('togglable') || $(e.target).parent().hasClass('togglable') @@ -23,17 +27,15 @@ $('.formSubmitr').appendTo('.page-action') - # IE fix - isIE = false || !!document.documentMode - isEdge = !isIE && !!window.StyleMedia - if isIE || isEdge $('.formSubmitr').off() - $(document).on 'click', '.formSubmitr', (e)-> - e.preventDefault() - target = $(this).attr('form') - $('#' + target).submit() $(document).on 'ready page:load', togglableFilter $(document).on 'ready page:load', submitMover $(document).on 'ready page:load', switchInput + +if isIE || isEdge + $(document).on 'click', '.formSubmitr', (e)-> + e.preventDefault() + target = $(this).attr('form') + $('#' + target).submit() -- cgit v1.2.3 From 4ed8d66ec3025cb4e554554161a7af01307bd128 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 3 Apr 2017 17:26:12 +0200 Subject: Refs #3028: Add and update permissions for vj and jp Signed-off-by: Thomas Shawarma Haddad --- .../journey_patterns/components/CreateModal.js | 2 +- .../journey_patterns/components/JourneyPattern.js | 6 +++--- .../journey_patterns/components/JourneyPatterns.js | 1 + .../journey_patterns/components/SaveJourneyPattern.js | 2 +- .../javascripts/es6_browserified/journey_patterns/index.js | 1 + .../vehicle_journeys/components/SaveVehicleJourneys.js | 5 +++-- .../vehicle_journeys/components/VehicleJourney.js | 14 +++++++------- .../vehicle_journeys/components/tools/CreateModal.js | 2 +- .../vehicle_journeys/containers/SaveVehicleJourneys.js | 3 ++- .../javascripts/es6_browserified/vehicle_journeys/index.js | 2 +- 10 files changed, 21 insertions(+), 17 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js index 573ebf228..aa2d208df 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js @@ -17,7 +17,7 @@ class CreateModal extends Component { } render() { - if(this.props.status.isFetching == true) { + if(this.props.status.isFetching == true || this.props.status.policy['journey_patterns.edit'] == false) { return false } if(this.props.status.fetchSuccess == true) { diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js index 3dae38d74..04e3b8974 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js @@ -34,7 +34,7 @@ class JourneyPattern extends Component{ type='checkbox' id={sp.id} checked={sp.checked} - disabled={this.props.value.deletable ? 'disabled' : ''} + disabled={(this.props.value.deletable || this.props.status.policy['journey_patterns.edit'] == false) ? 'disabled' : ''} > @@ -74,7 +74,7 @@ class JourneyPattern extends Component{
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js index 6e09430a0..43800330f 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js @@ -15,7 +15,7 @@ class SaveJourneyPattern extends Component{ } render() { - if(this.props.status.isFetching == true) { + if(this.props.status.isFetching == true || (this.props.status.policy['journey_patterns.edit'] == true)) { return false } if(this.props.status.fetchSuccess == true) { diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/index.js index a2e1c2fb6..b06957e0f 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/index.js @@ -13,6 +13,7 @@ var App = require('./components/App') var initialState = { status: { + policy: window.perms, fetchSuccess: true, isFetching: false }, 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 b22e1d826..bd34ae114 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js @@ -15,7 +15,7 @@ class SaveVehicleJourneys extends Component{ } render() { - if(this.props.status.isFetching == true) { + if(this.props.status.isFetching == true || this.props.filters.policy['vehicle_journeys.edit'] == false) { return false } if(this.props.status.fetchSuccess == true) { @@ -46,7 +46,8 @@ class SaveVehicleJourneys extends Component{ SaveVehicleJourneys.propTypes = { vehicleJourneys: PropTypes.array.isRequired, page: PropTypes.number.isRequired, - status: PropTypes.object.isRequired + status: PropTypes.object.isRequired, + filters: PropTypes.object.isRequired } module.exports = SaveVehicleJourneys 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 dc0621f76..f91a59a16 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js @@ -54,7 +54,7 @@ class VehicleJourney extends Component {
{this.timeTableURL(tt.id)}
)} - {this.isDisabled(this.props.filters.policy['vehicle_journeys.edit'], this.props.filters.policy['vehicle_journeys.destroy']) && + {(this.props.filters.policy['vehicle_journeys.edit'] == true) &&
{this.props.filters.toggleArrivals &&
- + {this.props.onUpdateTime(e, i, this.props.index, 'hour', false, false)}} value={vj.arrival_time['hour']} /> @@ -90,7 +90,7 @@ class VehicleJourney extends Component { min='00' max='59' className='form-control' - disabled={((this.props.value.deletable) && (!vj.dummy))} + disabled={((this.props.value.deletable) && (!vj.dummy) || this.props.filters.policy['vehicle_journeys.edit'] == false)} onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'minute', false, false)}} value={vj.arrival_time['minute']} /> @@ -103,13 +103,13 @@ class VehicleJourney extends Component { }
- + {this.props.onUpdateTime(e, i, this.props.index, 'hour', true, this.props.filters.toggleArrivals)}} value={vj.departure_time['hour']} /> @@ -119,7 +119,7 @@ class VehicleJourney extends Component { min='00' max='59' className='form-control' - disabled={this.isDisabled(this.props.value.deletable, vj.dummy)} + disabled={(this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.edit'] == 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/components/tools/CreateModal.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js index 1a1588f85..1eba37a90 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 @@ -27,7 +27,7 @@ class CreateModal extends Component {
  • { return { vehicleJourneys: state.vehicleJourneys, page: state.pagination.page, - status: state.status + status: state.status, + 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 1b9ff8f41..bf6930215 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js @@ -21,7 +21,7 @@ if (window.journeyPatternId) var initialState = { filters: { selectedJourneyPatterns : selectedJP, - policy: perms, + policy: window.perms, toggleArrivals: false, queryString: '', query: { -- cgit v1.2.3 From bdf1a763e001aa5de6d237a50813b52927cd5fa7 Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 3 Apr 2017 17:44:36 +0200 Subject: Fix disabled links on jp --- .../journey_patterns/components/JourneyPattern.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js index 04e3b8974..e0952e769 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js @@ -75,28 +75,28 @@ class JourneyPattern extends Component{
  • -- cgit v1.2.3 From ad321635979ddade79fbebb08d3901e879031bb4 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Tue, 4 Apr 2017 10:31:15 +0200 Subject: Fix delete button not being disabled properly Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/journey_patterns/components/JourneyPattern.js | 1 + 1 file changed, 1 insertion(+) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js index e0952e769..8b5aa2e89 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js @@ -90,6 +90,7 @@ class JourneyPattern extends Component{
  • 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 1eba37a90..1273921e7 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 @@ -25,15 +25,15 @@ class CreateModal extends Component { if(this.props.status.fetchSuccess == true) { return (
  • - - +
    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 e2425cc22..c98b794a8 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 @@ -5,9 +5,9 @@ var actions = require('../../actions') const DeleteVehicleJourneys = ({onDeleteVehicleJourneys, vehicleJourneys, filters}) => { return (
  • - 0 && filters.policy['vehicle_journeys.destroy']) ? '' : 'disabled'} +
  • ) } 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 b0cb1c850..7fc625f6a 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 @@ -23,15 +23,15 @@ class DuplicateVehicleJourney extends Component { if(this.props.status.fetchSuccess == true) { return (
  • - - +
    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 f7726dad9..12814bad1 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 @@ -24,15 +24,15 @@ class EditVehicleJourney extends Component { if(this.props.status.fetchSuccess == true) { return (
  • - this.props.onOpenEditModal(actions.getSelected(this.props.vehicleJourneys)[0])} > - +
    diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/NotesEditVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/NotesEditVehicleJourney.js index 7c5df3333..ca8b2ec7d 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/NotesEditVehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/NotesEditVehicleJourney.js @@ -44,15 +44,15 @@ class NotesEditVehicleJourney extends Component { if(this.props.status.fetchSuccess == true) { return (
  • - this.props.onOpenNotesEditModal(actions.getSelected(this.props.vehicleJourneys)[0])} > - +
    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 a373ed1e5..af1b29de1 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 @@ -23,15 +23,15 @@ class ShiftVehicleJourney extends Component { if(this.props.status.fetchSuccess == true) { return (
  • - - +
    -- cgit v1.2.3 From 4bb68cf4748fae774cad7ef6c1e71e91e72a1af6 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Tue, 4 Apr 2017 14:42:34 +0200 Subject: Refs #3035: Fix arrival and departure time not overlapping Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js index 5924f5cc7..b42cf5f93 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js @@ -75,10 +75,16 @@ const vehicleJourney= (state = {}, action) => { if(!action.isArrivalsToggled) newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val) newSchedule = actions.getDelta(newSchedule) + if(newSchedule.delta < 0){ + return vjas + } return _.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta}) }else{ newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val) newSchedule = actions.getDelta(newSchedule) + if(newSchedule.delta < 0){ + return vjas + } return _.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta}) } }else{ -- cgit v1.2.3 From 2620efba52c5ce68ec9f0b812f387d7ef66c9d13 Mon Sep 17 00:00:00 2001 From: jpl Date: Tue, 4 Apr 2017 15:44:50 +0200 Subject: Refs #2892: adding simpleform builder for acts-as-taggable (for timetable#edit) --- app/assets/javascripts/select2.coffee | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/select2.coffee b/app/assets/javascripts/select2.coffee index edd4c476d..e20ef8d32 100644 --- a/app/assets/javascripts/select2.coffee +++ b/app/assets/javascripts/select2.coffee @@ -7,5 +7,13 @@ placeholder: target.data('select2ed-placeholder') allowClear: true + $('select.form-control.tags').each -> + target = $(this) + target.select2 + theme: 'bootstrap' + language: 'fr' + allowClear: true + tags: true + $(document).on 'ready page:load', select_2 -- cgit v1.2.3 From e2cae59e05914688b0d23b83a3dd80761c4df453 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Tue, 4 Apr 2017 17:03:49 +0200 Subject: Refs #3039: Fix pad when setting value in inputs Signed-off-by: Thomas Shawarma Haddad --- .../vehicle_journeys/actions/index.js | 29 ++++++++++++++-------- .../vehicle_journeys/reducers/filters.js | 4 +-- .../vehicle_journeys/reducers/vehicleJourneys.js | 6 ++--- 3 files changed, 24 insertions(+), 15 deletions(-) (limited to 'app/assets/javascripts') 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 4e67482da..c1ac1bd0e 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -362,12 +362,21 @@ const actions = { return obj.selected }) }, - pad: (d) => { + pad: (d, timeUnit) => { + let val = d.toString() if(d.toString().length == 1){ - return (d < 10) ? '0' + d.toString() : d.toString(); - }else{ - return d.toString() + val = (d < 10) ? '0' + d.toString() : d.toString(); + } + if(val.length > 2){ + val = val.substr(1) + } + if(timeUnit == 'minute' && parseInt(val) > 59){ + val = '59' + } + if(timeUnit == 'hour' && parseInt(val) > 23){ + val = '23' } + return val }, encodeParams: (params) => { let esc = encodeURIComponent @@ -391,18 +400,18 @@ const actions = { }, checkSchedules: (schedule) => { if (parseInt(schedule.departure_time.minute) > 59){ - schedule.departure_time.minute = actions.pad(parseInt(schedule.departure_time.minute) - 60) - schedule.departure_time.hour = actions.pad(parseInt(schedule.departure_time.hour) + 1) + schedule.departure_time.minute = actions.pad(parseInt(schedule.departure_time.minute) - 60, 'minute') + schedule.departure_time.hour = actions.pad(parseInt(schedule.departure_time.hour) + 1, 'hour') } if (parseInt(schedule.arrival_time.minute) > 59){ - schedule.arrival_time.minute = actions.pad(parseInt(schedule.arrival_time.minute) - 60) - schedule.arrival_time.hour = actions.pad(parseInt(schedule.arrival_time.hour) + 1) + schedule.arrival_time.minute = actions.pad(parseInt(schedule.arrival_time.minute) - 60, 'minute') + schedule.arrival_time.hour = actions.pad(parseInt(schedule.arrival_time.hour) + 1, 'hour') } if (parseInt(schedule.departure_time.hour) > 23){ - schedule.departure_time.hour = actions.pad(parseInt(schedule.departure_time.hour) - 24) + schedule.departure_time.hour = actions.pad(parseInt(schedule.departure_time.hour) - 24, 'hour') } if (parseInt(schedule.arrival_time.hour) > 23){ - schedule.arrival_time.hour = actions.pad(parseInt(schedule.arrival_time.hour) - 24) + schedule.arrival_time.hour = actions.pad(parseInt(schedule.arrival_time.hour) - 24, 'hour') } } } 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 4b67dc4df..e7d5baafc 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js @@ -22,7 +22,7 @@ const filters = (state = {}, action) => { return _.assign({}, state, {query: newQuery}) case 'UPDATE_END_TIME_FILTER': newInterval = JSON.parse(JSON.stringify(state.query.interval)) - newInterval.end[action.unit] = actions.pad(action.val) + newInterval.end[action.unit] = actions.pad(action.val, action.unit) if(parseInt(newInterval.start.hour + newInterval.start.minute) < parseInt(newInterval.end.hour + newInterval.end.minute)){ newQuery = _.assign({}, state.query, {interval: newInterval}) return _.assign({}, state, {query: newQuery}) @@ -31,7 +31,7 @@ const filters = (state = {}, action) => { } case 'UPDATE_START_TIME_FILTER': newInterval = JSON.parse(JSON.stringify(state.query.interval)) - newInterval.start[action.unit] = actions.pad(action.val) + newInterval.start[action.unit] = actions.pad(action.val, action.unit) if(parseInt(newInterval.start.hour + newInterval.start.minute) < parseInt(newInterval.end.hour + newInterval.end.minute)){ newQuery = _.assign({}, state.query, {interval: newInterval}) return _.assign({}, state, {query: newQuery}) diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js index b42cf5f93..cb3ca90ad 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js @@ -71,16 +71,16 @@ const vehicleJourney= (state = {}, action) => { arrival_time: _.assign({}, vjas.arrival_time) } if (action.isDeparture){ - newSchedule.departure_time[action.timeUnit] = actions.pad(action.val) + newSchedule.departure_time[action.timeUnit] = actions.pad(action.val, action.timeUnit) if(!action.isArrivalsToggled) - newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val) + newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val, action.timeUnit) newSchedule = actions.getDelta(newSchedule) if(newSchedule.delta < 0){ return vjas } return _.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta}) }else{ - newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val) + newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val, action.timeUnit) newSchedule = actions.getDelta(newSchedule) if(newSchedule.delta < 0){ return vjas -- cgit v1.2.3 From 0eb29d3c273f6161a6eda820cc6c53614641cef8 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Tue, 4 Apr 2017 17:15:32 +0200 Subject: Refs #3040: Fix wording && disable inputs correctly Signed-off-by: Thomas Shawarma Haddad --- .../vehicle_journeys/components/VehicleJourney.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'app/assets/javascripts') 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 f91a59a16..0645fdd19 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js @@ -73,14 +73,14 @@ class VehicleJourney extends Component {
    {this.props.filters.toggleArrivals && -
    - +
    + {this.props.onUpdateTime(e, i, this.props.index, 'hour', false, false)}} value={vj.arrival_time['hour']} /> @@ -90,7 +90,7 @@ class VehicleJourney extends Component { min='00' max='59' className='form-control' - disabled={((this.props.value.deletable) && (!vj.dummy) || this.props.filters.policy['vehicle_journeys.edit'] == false)} + disabled={((this.isDisabled(this.props.value.deletable), vj.dummy) || this.props.filters.policy['vehicle_journeys.edit'] == false)} onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'minute', false, false)}} value={vj.arrival_time['minute']} /> @@ -102,7 +102,7 @@ class VehicleJourney extends Component { }
    -
    +
    --- .../javascripts/es6_browserified/vehicle_journeys/actions/index.js | 7 +++++++ .../es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js | 7 ++++--- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'app/assets/javascripts') 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 c1ac1bd0e..9b6eca720 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -362,6 +362,13 @@ const actions = { return obj.selected }) }, + simplePad: (d) => { + if(d.toString().length == 1){ + return (d < 10) ? '0' + d.toString() : d.toString(); + }else{ + return d.toString() + } + }, pad: (d, timeUnit) => { let val = d.toString() if(d.toString().length == 1){ diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js index cb3ca90ad..15e74a9aa 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js @@ -50,11 +50,11 @@ const vehicleJourney= (state = {}, action) => { shiftedSchedule = { departure_time: { hour: vjas.departure_time.hour, - minute: String(parseInt(vjas.departure_time.minute) + parseInt(action.data.additional_time.value)) + minute: actions.simplePad(parseInt(vjas.departure_time.minute) + parseInt(action.data.additional_time.value)) }, arrival_time: { hour: vjas.arrival_time.hour, - minute: String(parseInt(vjas.arrival_time.minute) + parseInt(action.data.additional_time.value)) + minute: actions.simplePad(parseInt(vjas.arrival_time.minute) + parseInt(action.data.additional_time.value)) } } actions.checkSchedules(shiftedSchedule) @@ -166,11 +166,12 @@ const vehicleJourneys = (state = [], action) => { let dupeVj let dupes = [] let selectedIndex + let val = action.data.additional_time.value state.map((vj, i) => { if(vj.selected){ selectedIndex = i for (i = 0; i< action.data.duplicate_number.value; i++){ - action.data.additional_time.value *= (i + 1) + action.data.additional_time.value = val * (i + 1) dupeVj = vehicleJourney(vj, action) dupeVj.published_journey_name = dupeVj.published_journey_name + '-' + i dupeVj.selected = false -- cgit v1.2.3 From 1e5a595150f4a90dcf17e0e6cd32728486fb36b8 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Wed, 5 Apr 2017 11:54:44 +0200 Subject: Refs #3028: Fix Save button not correctly displayed in jp Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/journey_patterns/components/SaveJourneyPattern.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js index 43800330f..93dfa8c6b 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js @@ -15,7 +15,7 @@ class SaveJourneyPattern extends Component{ } render() { - if(this.props.status.isFetching == true || (this.props.status.policy['journey_patterns.edit'] == true)) { + if(this.props.status.isFetching == true || (this.props.status.policy['journey_patterns.edit'] == false)) { return false } if(this.props.status.fetchSuccess == true) { -- cgit v1.2.3 From 4a2a973c84a63e32cf33779808af2a1620867502 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Wed, 5 Apr 2017 14:46:15 +0200 Subject: Refs #3041: Fix dummy vjas not being affected by shift/duplicate Signed-off-by: Thomas Shawarma Haddad --- .../vehicle_journeys/reducers/vehicleJourneys.js | 26 +++++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js index 15e74a9aa..48d7a8f55 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js @@ -47,19 +47,23 @@ const vehicleJourney= (state = {}, action) => { case 'SHIFT_VEHICLEJOURNEY': let shiftedArray, shiftedSchedule, shiftedVjas shiftedArray = state.vehicle_journey_at_stops.map((vjas, i) => { - shiftedSchedule = { - departure_time: { - hour: vjas.departure_time.hour, - minute: actions.simplePad(parseInt(vjas.departure_time.minute) + parseInt(action.data.additional_time.value)) - }, - arrival_time: { - hour: vjas.arrival_time.hour, - minute: actions.simplePad(parseInt(vjas.arrival_time.minute) + parseInt(action.data.additional_time.value)) + if (!vjas.dummy){ + shiftedSchedule = { + departure_time: { + hour: vjas.departure_time.hour, + minute: actions.simplePad(parseInt(vjas.departure_time.minute) + parseInt(action.data.additional_time.value)) + }, + arrival_time: { + hour: vjas.arrival_time.hour, + minute: actions.simplePad(parseInt(vjas.arrival_time.minute) + parseInt(action.data.additional_time.value)) + } } + actions.checkSchedules(shiftedSchedule) + shiftedVjas = _.assign({}, state.vehicle_journey_at_stops[i], shiftedSchedule) + return _.assign({}, state.vehicle_journey_at_stops[i], shiftedVjas) + }else { + return vjas } - actions.checkSchedules(shiftedSchedule) - shiftedVjas = _.assign({}, state.vehicle_journey_at_stops[i], shiftedSchedule) - return _.assign({}, state.vehicle_journey_at_stops[i], shiftedVjas) }) return _.assign({}, state, {vehicle_journey_at_stops: shiftedArray}) case 'UPDATE_TIME': -- cgit v1.2.3 From 2531fc719217ea6b3839df7a14aab124bf7b5743 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Wed, 5 Apr 2017 15:05:26 +0200 Subject: Refs #3049: Remove id from all vjas when duping a vj Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js | 1 + 1 file changed, 1 insertion(+) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js index 48d7a8f55..ba3d58c22 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js @@ -60,6 +60,7 @@ const vehicleJourney= (state = {}, action) => { } actions.checkSchedules(shiftedSchedule) shiftedVjas = _.assign({}, state.vehicle_journey_at_stops[i], shiftedSchedule) + delete shiftedVjas['id'] return _.assign({}, state.vehicle_journey_at_stops[i], shiftedVjas) }else { return vjas -- cgit v1.2.3 From 45a789aa0041cbfeca535a8679f3d88ccbe01757 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 6 Apr 2017 15:28:14 +0200 Subject: Refs #2507: Fix filter modal not being displayed, added arg in querystring for toggle arrivals Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/journey_patterns/components/JourneyPattern.js | 2 +- .../javascripts/es6_browserified/vehicle_journeys/reducers/filters.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js index a37b9f1d8..d9f6d5550 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js @@ -14,7 +14,7 @@ class JourneyPattern extends Component{ let vjURL = routeURL + '/vehicle_journeys?jp=' + jpOid return ( - Horaires des courses + Horaires des courses ) } 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 e7d5baafc..0fcb3489e 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js @@ -54,7 +54,8 @@ const filters = (state = {}, action) => { 'q[journey_pattern_id_eq]': state.query.journeyPattern.id || undefined, 'q[time_tables_id_eq]': state.query.timetable.id || undefined, 'q[vehicle_journey_at_stops_departure_time_gteq]': (state.query.interval.start.hour + ':' + state.query.interval.start.minute), - 'q[vehicle_journey_at_stops_departure_time_lteq]': (state.query.interval.end.hour + ':' + state.query.interval.end.minute) + 'q[vehicle_journey_at_stops_departure_time_lteq]': (state.query.interval.end.hour + ':' + state.query.interval.end.minute), + 'q[vehicle_journey_without_u2]' : state.toggleArrivals } let queryString = actions.encodeParams(params) return _.assign({}, state, {queryString: queryString}) -- cgit v1.2.3 From 7ac766fb016108429730248f1a8bfd5065e8c31b Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 6 Apr 2017 18:00:22 +0200 Subject: Refs #3067 #3068: Fix Shift and duplicate accordingly to current needs Signed-off-by: Thomas Shawarma Haddad --- .../vehicle_journeys/actions/index.js | 57 +++++++++++++++++++--- .../components/tools/DuplicateVehicleJourney.js | 2 +- .../components/tools/ShiftVehicleJourney.js | 2 +- 3 files changed, 51 insertions(+), 10 deletions(-) (limited to 'app/assets/javascripts') 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 9b6eca720..9abaf9d0f 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -406,20 +406,61 @@ const actions = { return vjas }, checkSchedules: (schedule) => { + let hours = 0 + let minutes = 0 if (parseInt(schedule.departure_time.minute) > 59){ - schedule.departure_time.minute = actions.pad(parseInt(schedule.departure_time.minute) - 60, 'minute') - schedule.departure_time.hour = actions.pad(parseInt(schedule.departure_time.hour) + 1, 'hour') + hours = Math.floor(parseInt(schedule.departure_time.minute) / 60) + minutes = parseInt(schedule.departure_time.minute) % 60 + schedule.departure_time.minute = actions.simplePad(minutes, 'minute') + schedule.departure_time.hour = parseInt(schedule.departure_time.hour) + hours } if (parseInt(schedule.arrival_time.minute) > 59){ - schedule.arrival_time.minute = actions.pad(parseInt(schedule.arrival_time.minute) - 60, 'minute') - schedule.arrival_time.hour = actions.pad(parseInt(schedule.arrival_time.hour) + 1, 'hour') + hours = Math.floor(parseInt(schedule.arrival_time.minute) / 60) + minutes = parseInt(schedule.arrival_time.minute) % 60 + schedule.arrival_time.minute = actions.simplePad(minutes, 'minute') + schedule.arrival_time.hour = parseInt(schedule.arrival_time.hour) + hours } - if (parseInt(schedule.departure_time.hour) > 23){ - schedule.departure_time.hour = actions.pad(parseInt(schedule.departure_time.hour) - 24, 'hour') + if (parseInt(schedule.departure_time.minute) < 0){ + hours = Math.floor(parseInt(schedule.departure_time.minute) / 60) + minutes = (parseInt(schedule.departure_time.minute) % 60) + 60 + schedule.departure_time.minute = actions.simplePad(minutes, 'minute') + schedule.departure_time.hour = parseInt(schedule.departure_time.hour) + hours } - if (parseInt(schedule.arrival_time.hour) > 23){ - schedule.arrival_time.hour = actions.pad(parseInt(schedule.arrival_time.hour) - 24, 'hour') + if (parseInt(schedule.arrival_time.minute) < 0){ + hours = Math.floor(parseInt(schedule.arrival_time.minute) / 60) + minutes = (parseInt(schedule.arrival_time.minute) % 60) + 60 + schedule.arrival_time.minute = actions.simplePad(minutes, 'minute') + schedule.arrival_time.hour = parseInt(schedule.arrival_time.hour) + hours } + + if(schedule.departure_time.hour > 23){ + schedule.departure_time.hour = '23' + schedule.departure_time.minute = '59' + } + if(schedule.arrival_time.hour > 23){ + schedule.arrival_time.hour = '23' + schedule.arrival_time.minute = '59' + } + + if(schedule.departure_time.hour < 0){ + schedule.departure_time.hour = '00' + schedule.departure_time.minute = '00' + } + if(schedule.arrival_time.hour > 23){ + schedule.arrival_time.hour = '00' + schedule.arrival_time.minute = '00' + } + + schedule.departure_time.hour = actions.simplePad(parseInt(schedule.departure_time.hour), 'hour') + schedule.arrival_time.hour = actions.simplePad(parseInt(schedule.arrival_time.hour), 'hour') + // if (parseInt(schedule.departure_time.hour) > 23){ + // schedule.departure_time.hour = parseInt(schedule.departure_time.hour) - 24 + // } + // if (parseInt(schedule.arrival_time.hour) > 23){ + // schedule.arrival_time.hour = parseInt(schedule.arrival_time.hour) - 24 + // } + // schedule.departure_time.hour = actions.pad(schedule.departure_time.hour, 'hour') + // schedule.arrival_time.hour = actions.pad(schedule.arrival_time.hour, 'hour') } } 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 7fc625f6a..7448aa06e 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 @@ -68,7 +68,7 @@ class DuplicateVehicleJourney extends Component { actions.resetValidation(e.currentTarget)} 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 af1b29de1..ee7d01cf5 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 @@ -54,7 +54,7 @@ class ShiftVehicleJourney extends Component { actions.resetValidation(e.currentTarget)} -- cgit v1.2.3