diff options
| author | Xinhui | 2017-03-24 17:16:57 +0100 |
|---|---|---|
| committer | Xinhui | 2017-03-24 17:16:57 +0100 |
| commit | 6580da810148d4ff90f69a7581d07c6bd41c1809 (patch) | |
| tree | 03e5d0b82bfacef479fef71d55fcd2beabc1da80 | |
| parent | 8611cc5a73ec5033bd177e7999cf28174290b6ed (diff) | |
| parent | 2c21e6dbbd2ed85070ee1ebdd26ee97882f424dd (diff) | |
| download | chouette-core-6580da810148d4ff90f69a7581d07c6bd41c1809.tar.bz2 | |
Merge branch 'master' into staging
25 files changed, 138 insertions, 117 deletions
diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 3bce3ec7d..b90f7539d 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -21,3 +21,5 @@ //= require footable/footable.sort //= require_directory ./plugins //= require_directory . +require('whatwg-fetch') +require('babel-polyfill') diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js b/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js index 595c42bfd..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') @@ -29,7 +30,6 @@ class BSelect3 extends React.Component{ parsedText(data) { let a = this.props.value.text.replace('</em></small>', '') - console.log(a) let b = a.split('<small><em>') return ( @@ -97,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 + " <small><em>(" + item.user_objectid + ")</em></small>" } 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/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) } 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) - } + }) }) 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/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/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/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 } 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..e658e164e 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,16 @@ +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}) + case 'RECEIVE_ERRORS': + 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 } diff --git a/app/controllers/line_footnotes_controller.rb b/app/controllers/line_footnotes_controller.rb index 8f7a38512..7bc048731 100644 --- a/app/controllers/line_footnotes_controller.rb +++ b/app/controllers/line_footnotes_controller.rb @@ -1,15 +1,15 @@ -class LineFootnotesController < ChouetteController - defaults :resource_class => Chouette::Line, :instance_name => 'line' +class LineFootnotesController < BreadcrumbController + defaults :resource_class => Chouette::Line include PolicyChecker before_action :check_policy, only: [:edit, :update, :destroy] respond_to :json, :only => :show - belongs_to :referential def show show! do build_breadcrumb :show end + @footnotes = @line.footnotes end def edit @@ -37,7 +37,6 @@ class LineFootnotesController < ChouetteController def resource @referential = Referential.find params[:referential_id] @line = @referential.lines.find params[:line_id] - @footnotes = @line.footnotes end def line_params diff --git a/app/controllers/lines_controller.rb b/app/controllers/lines_controller.rb index 1f5478eff..7eedaeb05 100644 --- a/app/controllers/lines_controller.rb +++ b/app/controllers/lines_controller.rb @@ -92,7 +92,7 @@ class LinesController < BreadcrumbController private def sort_column - (Chouette::Line.column_names + ['companies.name']).include?(params[:sort]) ? params[:sort] : 'number' + (Chouette::Line.column_names + ['companies.name', 'networks.name']).include?(params[:sort]) ? params[:sort] : 'number' end def sort_direction %w[asc desc].include?(params[:direction]) ? params[:direction] : 'asc' diff --git a/app/controllers/workbenches_controller.rb b/app/controllers/workbenches_controller.rb index 7f108b266..58fd507d4 100644 --- a/app/controllers/workbenches_controller.rb +++ b/app/controllers/workbenches_controller.rb @@ -7,9 +7,7 @@ class WorkbenchesController < BreadcrumbController def show scope = params[:q] ? resource.all_referentials : resource.referentials.ready scope = ransack_associated_lines(scope) - @q = ransack_periode(scope).ransack(params[:q]) - @q.organisation_name_eq_any ||= current_organisation.name unless params[:q] @wbench_refs = sort_result(@q.result).paginate(page: params[:page], per_page: 30) show! do build_breadcrumb :show diff --git a/app/views/lines/index.html.slim b/app/views/lines/index.html.slim index 389adf755..464ddc25c 100644 --- a/app/views/lines/index.html.slim +++ b/app/views/lines/index.html.slim @@ -24,7 +24,7 @@ { 'Oid' => Proc.new { |n| n.objectid.local_id }, :number => 'number', :name => 'name', - :network => Proc.new { |n| n.try(:network).try(:name) }, + 'networks.name' => Proc.new { |n| n.try(:network).try(:name) }, 'companies.name' => Proc.new { |n| n.try(:company).try(:name) }, :transport_mode => Proc.new { |n| n.transport_mode.nil? ? '-' : t("enumerize.line.transport_mode.#{n.try(:transport_mode)}") }, :transport_submode => Proc.new { |n| n.transport_submode.nil? ? '-' : t("enumerize.line.transport_submode.#{n.try(:transport_submode)}") } }, diff --git a/package.json b/package.json index 019e63063..4e975de5c 100644 --- a/package.json +++ b/package.json @@ -7,12 +7,14 @@ "babelify": "7.3.0", "browserify": "13.1.1", "browserify-incremental": "3.1.1", - "lodash": "^4.17.4", + "lodash": "4.17.4", + "promise-polyfill": "^6.0.2", "react": "15.3.2", "react-dom": "15.3.2", "react-redux": "4.4.5", "react-select2": "4.0.2", - "redux": "3.6.0" + "redux": "3.6.0", + "whatwg-fetch": "2.0.3" }, "license": "MIT", "engines": { |
