Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
a8160f3
feat(field-trip): add field trip module (WIP)
landonreed Sep 11, 2020
55fb071
refactor(field-trip): add search/filtering for field trip requests
landonreed Sep 11, 2020
231f372
refactor(field-trip): add field trip details component
landonreed Sep 11, 2020
b97535c
Merge branch 'dev' into field-trip
landonreed Sep 25, 2020
45356c2
Merge branch 'dev' into field-trip
landonreed Oct 22, 2020
3e25117
refactor(calltaker): increase limit for fetch calls
landonreed Oct 22, 2020
796b5a7
Merge branch 'dev' into field-trip
landonreed Dec 8, 2020
c43c527
Merge branch 'dev' into field-trip
landonreed Jan 5, 2021
29f7062
refactor(draggable-window): fix draggable handle margins
landonreed Jan 5, 2021
4250192
refactor: address PR #230 comments
landonreed Jan 11, 2021
0c6205b
refactor(draggable-window): make windows fit more screen sizes
landonreed Jan 12, 2021
9a56cae
refactor(call-taker): remove console.logs
landonreed Jan 28, 2021
390dede
refactor(field-trip-windows): refactor filter statement
landonreed Jan 28, 2021
88238d3
refactor(field-trip-windows): reformat long line
landonreed Jan 28, 2021
d8d11b7
feat(field-trip): render field trip request details
landonreed Jan 29, 2021
32bb411
Merge branch 'dev' into field-trip
landonreed Feb 1, 2021
115362d
refactor(field-trip): hook up UI with call back end
landonreed Feb 1, 2021
fb52a82
feat(field-trip): make sections editable
landonreed Feb 2, 2021
c06cc0b
refactor(field-trip): add field trip actions; clean up editable section
landonreed Feb 3, 2021
7b4ee66
refactor(updatable): remove commented code
landonreed Feb 3, 2021
907e9a8
refactor(field-trip): move non-payment fields to group info
landonreed Feb 3, 2021
af1a350
refactor: address PR comments
landonreed Feb 8, 2021
7730c3e
fix(responsive-webapp): handle search in URL w/o hash
landonreed Feb 8, 2021
e2d08bd
refactor(responsive-webapp): fix lint
landonreed Feb 9, 2021
6ece3fe
refactor(field-trip): fix positioning of field trip windows
landonreed Feb 10, 2021
401d3c8
refactor(call-taker): hide advanced options when trip is planned
landonreed Feb 10, 2021
8b70703
refactor(call-taker-panel): fix liint
landonreed Feb 10, 2021
cf6212b
refactor(field-trip): address PR comments
landonreed Feb 10, 2021
4a2cca2
refactor(EditableSection): Use Formik for event/form state handling.
binh-dam-ibigroup Feb 10, 2021
4caafb0
refactor(EditableSection): Remove nulls from data sent to backend.
binh-dam-ibigroup Feb 11, 2021
7a3ffe0
Merge pull request #328 from opentripplanner/field-trip-qbd
landonreed Feb 11, 2021
388a807
refactor(field-trip): change total group size label
landonreed Feb 12, 2021
51ebfc4
fix(call-taker-controls): fix container css
landonreed Feb 16, 2021
3db2cdb
refactor(field-trip): address PR comments, use styled-components
landonreed Feb 16, 2021
a892193
Merge branch 'dev' into field-trip
landonreed Mar 2, 2021
d79da54
refactor(field-trip): add reactivate request feature
landonreed Mar 4, 2021
0de242b
refactor(field-trip): improve search performance
landonreed Mar 4, 2021
b58c897
refactor(field-trip): address PR #230 comments
landonreed Mar 4, 2021
cd0a8fe
refactor(app-menu): preserve sessionId on start over
landonreed Mar 8, 2021
6fd2676
refactor(field-trip): use object-to-formdata lib
landonreed Mar 8, 2021
94247f8
refactor(field-trip): add search by request date
landonreed Mar 12, 2021
e8cda1b
refactor(field-trip): remove commented out code
landonreed Apr 2, 2021
84780db
Merge branch 'dev' into field-trip
landonreed Apr 5, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion example.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import {
CallTakerWindows,
DefaultItinerary,
DefaultMainPanel,
FieldTripWindows,
MobileSearchScreen,
ResponsiveWebapp,
createCallTakerReducer,
Expand Down Expand Up @@ -89,7 +90,12 @@ const components = {
: isBatchRoutingEnabled
? BatchRoutingPanel
: DefaultMainPanel,
MapWindows: isCallTakerModuleEnabled ? CallTakerWindows : null,
MapWindows: isCallTakerModuleEnabled
? () => <>
<CallTakerWindows />
<FieldTripWindows />
</>
: null,
MobileSearchScreen: isBatchRoutingEnabled
? BatchSearchScreen
: MobileSearchScreen,
Expand Down
56 changes: 19 additions & 37 deletions lib/actions/call-taker.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { getUrlParams } from '@opentripplanner/core-utils/lib/query'
import { serialize } from 'object-to-formdata'
import qs from 'qs'
import { createAction } from 'redux-actions'

import {searchToQuery} from '../util/call-taker'
import {searchToQuery, sessionIsInvalid} from '../util/call-taker'
import {URL_ROOT} from '../util/constants'
import {getTimestamp} from '../util/state'

Expand All @@ -29,12 +30,16 @@ export function endCall () {
return function (dispatch, getState) {
const {callTaker, otp} = getState()
const {activeCall, session} = callTaker
const { sessionId } = session
if (sessionIsInvalid(session)) return
// Make POST request to store call.
const callData = new FormData()
callData.append('sessionId', session.sessionId)
callData.append('call.startTime', activeCall.startTime)
callData.append('call.endTime', getTimestamp())
// Make POST request to store new call.
const callData = serialize({
sessionId,
call: {
startTime: activeCall.startTime,
endTime: getTimestamp()
}
})
fetch(`${otp.config.datastoreUrl}/calltaker/call`,
{method: 'POST', body: callData}
)
Expand Down Expand Up @@ -84,9 +89,8 @@ function newSession (datastoreUrl, verifyLoginUrl, redirect) {
.then(res => res.json())
.then(data => {
const {sessionId: session} = data
console.log('newSession success: ' + session)
const windowUrl = `${verifyLoginUrl}?${qs.stringify({session, redirect})}`
console.log('redirecting to: ' + windowUrl)
// Redirect to login url.
window.location = windowUrl
})
.catch(error => {
Expand All @@ -104,8 +108,8 @@ function checkSession (datastoreUrl, sessionId) {
.then(res => res.json())
.then(session => dispatch(storeSession({session})))
.catch(error => {
console.error('checkSession error', error)
dispatch(storeSession({session: null}))
alert(`Error establishing auth session: ${JSON.stringify(error)}`)
})
}
}
Expand All @@ -120,28 +124,12 @@ export function fetchCalls () {
if (sessionIsInvalid(callTaker.session)) return
const {datastoreUrl} = otp.config
const {sessionId} = callTaker.session
const limit = 10
const limit = 30
fetch(`${datastoreUrl}/calltaker/call?${qs.stringify({limit, sessionId})}`)
.then(res => res.json())
.then(calls => {
console.log('GET calls response', calls)
dispatch(receivedCalls({calls}))
})
.catch(err => {
alert(`Could not fetch calls: ${JSON.stringify(err)}`)
})
}
}

/**
* @return {boolean} - whether a calltaker session is invalid
*/
function sessionIsInvalid (session) {
if (!session || !session.sessionId) {
console.error('No valid OTP datastore session found.')
return true
.then(calls => dispatch(receivedCalls({calls})))
.catch(err => alert(`Error fetching calls: ${JSON.stringify(err)}`))
}
return false
}

/**
Expand All @@ -161,19 +149,13 @@ export function saveQueriesForCall (call) {
const search = otp.searches[searchId]
const query = searchToQuery(search, call, otp.config)
const {sessionId} = callTaker.session
const queryData = new FormData()
queryData.append('sessionId', sessionId)
queryData.append('query.queryParams', query.queryParams)
queryData.append('query.fromPlace', query.fromPlace)
queryData.append('query.toPlace', query.toPlace)
queryData.append('query.timeStamp', query.timeStamp)
queryData.append('query.call.id', call.id)
const queryData = serialize({ sessionId, query })
return fetch(`${datastoreUrl}/calltaker/callQuery?sessionId=${sessionId}`,
{method: 'POST', body: queryData}
)
.then(res => res.json())
.catch(err => {
alert(`Could not fetch calls: ${JSON.stringify(err)}`)
alert(`Error storing call queries: ${JSON.stringify(err)}`)
})
}))
}
Expand All @@ -195,7 +177,7 @@ export function fetchQueries (callId) {
dispatch(receivedQueries({callId, queries}))
})
.catch(err => {
alert(`Could not fetch calls: ${JSON.stringify(err)}`)
alert(`Error fetching queries: ${JSON.stringify(err)}`)
})
}
}
Loading