aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXinhui2017-03-24 17:16:57 +0100
committerXinhui2017-03-24 17:16:57 +0100
commit6580da810148d4ff90f69a7581d07c6bd41c1809 (patch)
tree03e5d0b82bfacef479fef71d55fcd2beabc1da80
parent8611cc5a73ec5033bd177e7999cf28174290b6ed (diff)
parent2c21e6dbbd2ed85070ee1ebdd26ee97882f424dd (diff)
downloadchouette-core-6580da810148d4ff90f69a7581d07c6bd41c1809.tar.bz2
Merge branch 'master' into staging
-rw-r--r--app/assets/javascripts/application.js2
-rw-r--r--app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js4
-rw-r--r--app/assets/javascripts/es6_browserified/itineraries/components/OlMap.js3
-rw-r--r--app/assets/javascripts/es6_browserified/itineraries/form_helper.js3
-rw-r--r--app/assets/javascripts/es6_browserified/itineraries/index.js4
-rw-r--r--app/assets/javascripts/es6_browserified/itineraries/reducers/stopPoints.js29
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js23
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js9
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js7
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js11
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/status.js7
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js22
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/CompanySelect2.js3
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/MissionSelect2.js3
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js3
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js29
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js22
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/pagination.js15
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/status.js9
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js28
-rw-r--r--app/controllers/line_footnotes_controller.rb7
-rw-r--r--app/controllers/lines_controller.rb2
-rw-r--r--app/controllers/workbenches_controller.rb2
-rw-r--r--app/views/lines/index.html.slim2
-rw-r--r--package.json6
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": {