{"version":3,"sources":["store/configureStore.js","config/index.js","config/config.production.js","store/configureStore.prod.js","constants/roles.js","actions/user.js","utilities/service-utils.js","actions/option.js","services/option.js","reducers/option.js","actions/airport.js","services/airport.js","reducers/airport.js","actions/country.js","services/country.js","reducers/country.js","actions/carrier.js","services/carrier.js","reducers/carrier.js","reducers/location.js","actions/location.js","actions/error.js","reducers/errors.js","actions/snackbar.js","reducers/snackbars.js","selectors/incident.js","constants/incidents.js","actions/table.js","reducers/table.js","actions/tab.js","reducers/tabs.js","services/incident.js","actions/incident.js","reducers/incident.js","actions/hmlog.js","services/hmlog.js","reducers/hmlog.js","services/person.js","actions/person.js","reducers/person.js","reducers/index.js","reducers/user.js","containers/AuthRedirect.js","components/ErrorDialog.js","containers/ErrorDialog.js","components/App.js","containers/App.js","components/ReduxFormMaterialUI/createComponent.js","components/ReduxFormMaterialUI/Checkbox.js","components/ReduxFormMaterialUI/RadioGroup.js","components/ReduxFormMaterialUI/mapError.js","components/ReduxFormMaterialUI/Select.js","components/ReduxFormMaterialUI/Switch.js","components/ReduxFormMaterialUI/TextField.js","components/PageContainer.js","components/buttons/ProgressButton.js","utilities/normalizers.js","components/LoginInternal.js","containers/LoginPageInternal.js","components/LoginExternal.js","containers/LoginPageExternal.js","components/Welcome.js","containers/WelcomePage.js","components/IncidentTable/Incident/styles.js","components/IncidentTable/Incident/IncidentTableFilter.js","components/IncidentTable/TableHeaderCell.js","components/IncidentTable/Incident/IncidentTableHeader.js","components/tooltips/StatusTooltip.js","utilities/date-utils.js","components/IncidentTable/Incident/IncidentTableRow.js","components/IncidentTable/index.js","containers/IncidentTable.js","components/IncidentTables/IncidentTables.js","components/Home.js","containers/HomePage.js","components/AdminHome.js","containers/AdminHomePage.js","components/inputs/DatePickerField.js","components/inputs/SelectField.js","containers/inputs/CarrierSelect.js","containers/inputs/CountrySelect.js","containers/inputs/AirportDestinationSelect.js","containers/inputs/AirportOriginSelect.js","containers/inputs/InitialFindingSelect.js","containers/inputs/IssueTypeSelect.js","containers/inputs/IcaoHazardClassSelect.js","containers/inputs/IssueIdentifierSelect.js","containers/inputs/RestrictedItemSelect.js","containers/inputs/UsStateSelect.js","containers/inputs/DangerousItemSelect.js","components/EnlargeableImage.js","containers/LoadingImage.js","components/TrackerForm/index.js","constants/incidentVerificationStatus.js","containers/TrackerForm.js","components/CreatePerson/index.js","containers/CreatePerson.js","actions/agent.js","services/agent.js","components/CreateAgent/index.js","containers/CreateAgent.js","containers/inputs/LetterMailedSelect.js","containers/inputs/LetterReceivdSelect.js","components/WorkNotes.js","components/AuditTable.js","components/EditForm.js","containers/Edit/EditForm.js","components/ViewWorkNotes.js","components/ViewForm.js","containers/View/ViewForm.js","components/ViewPerson.js","containers/ViewPerson/ViewPersonForm.js","routes.js","containers/Root.js","index.js"],"names":["module","exports","require","config","SAMS_ENDPOINT","ENDPOINT","BASE_URL","LOGIN","configureStore","rootReducer","createStore","undefined","applyMiddleware","thunk","DANGEROUS_GOODS_ADMIN","CARRIER","AGENT","CUSTOMER_SERVICE_AGENT","authtimer","logIn","userId","password","source","dispatch","fetch","headers","pragma","method","body","JSON","stringify","username","window","btoa","then","res","json","response","data","status","type","message","role","authToken","authExpiry","authTokenExpiryMillis","tokenAssignTime","accessDateMillis","setTimeout","refreshToken","catch","e","Roles","entityType","carrier","carrierAbbr","agency","agencyAbbr","authTokenExpiry","getState","state","user","token","clearInterval","Headers","fetchAuthHeaders","ut","parse","sessionStorage","getItem","Authorization","UNKNOWN_ERROR_MESSAGE","convertToQueryParameters","obj","str","Object","keys","forEach","key","constructor","Array","item","push","Date","toISOString","join","err","fetchGenericPostResource","myHeaders","endpoint","path","options","url","encodeURI","criteria","fetchResource","fetchGenericResource","Promise","resolve","reject","ok","handleResponse","result","text","getResource","postFile","file","FormData","append","fetchPostResource","postResource","resource","UserId","postInsecureResource","fetchInsecureResource","fetchGenericInsecureResource","retrieveInitialFindings","initialFindings","option","length","sortedOptions","slice","sort","a","b","name","retrieveIssueTypes","issueTypes","retrieveIcaoHazardClasses","icaoHazardClasses","retrieveIssueIdentifiers","issueIdentifiers","retrieveRestrictedItems","restrictedItems","retrieveUsStates","usStates","retrieveLetterMailed","letterMailed","retrieveLetterReceivd","letterReceivd","retrieveDangerousItems","hazclass","dangerousItems","OptionServices","initialState","allOptions","action","retrieveDestinationAirports","airportDestinations","airport","airports","sortedAirports","airportName","retrieveOriginAirports","airportOrigins","retrieveAllCountries","countries","country","sortedCountries","countryName","retrievePilotCarriers","carriers","sortedCarriers","carrierName","locations","location","openErrorDialog","errorText","title","dialog","open","errors","close","createIrregularity","reportDetail","snackbars","getIncidentCriteria","filter","selectedTab","tabs","incidents","getAdminCriteria","SORT","clearRows","tableId","exportHazmatToExcel","table","orderBy","sortDirection","authHeaders","blob","fetchExcelFile","excelFile","FileSaver","saveAs","loadPage","searchService","page","isRefresh","rows","rowsPerPage","start","count","newRows","rowCount","i","changePage","incidentsTable","loading","selected","showFilter","addValues","values","columnName","value","TableActions","change","tabIndex","fetchIncidentImages","hmkey","getIncidentsPage","countPromise","searchPromise","promises","all","results","getPage","getIncidentsCount","getIncidents","insertIncidentImage","incidentId","insertWorkNote","worknote","updateIncident","incident","handleFieldChange","retrieveItemImages","IncidentServices","selImages","retrieveWorkNotes","selWorkNotes","uploadImage","trackerFormSubmit","wn","hmKey","current_note","staged_images","img","image","imageFile","dataUrl","SnackbarActions","errObj","ErrorActions","submitDraft","form","TrackerForm","console","log","submitEditDraft","selected_incident","submitEditComplete","deleteIncident","closeIncident","updateWorkNote","note","generateWord","fetchWordFile","selected_incident_images","newStaged","stageFile","current_worknotes","fetchHmLogs","HmLogServices","selLogs","selected_logs","hmlog","getAllPendingPersons","getOnePersonById","id","createPerson","person","approvePerson","adminId","denyPerson","reason","FIELD_CHANGE","SELECT_PERSON","selectPerson","DENY_PERSON_SUCCESS","PersonServices","APPROVE_PERSON_SUCCESS","SAVE_PERSON_SUCCESS","createPersonSubmit","RETRIEVE_ONE_PERSON_BY_ID_SUCCESS","retrieveOnePersonById","persons","PersonActions","appReducer","combineReducers","errorMessage","formReducer","ConnectedAuthRedirect","connect","isLoggedIn","children","to","createAuthRedirect","Component","props","ErrorDialog","classes","onClose","Dialog","transitionDuration","exit","DialogTitle","DialogContent","DialogContentText","DialogActions","Button","onClick","defaultProps","ownProps","errorDialog","App","handleLogOut","logOut","this","onTitleClick","onAdminClick","AppBar","className","appBar","position","Toolbar","titleWrapper","Typography","color","variant","target","download","font","toolbar","withStyles","theme","zIndex","drawer","cursor","display","flex","mixins","history","onNavItemClick","route","withRouter","createComponent","MaterialUIComponent","mapProps","InputComponent","component","createElement","displayName","Checkbox","input","onChange","inputProps","meta","defaultChecked","checked","Boolean","event","isInputChecked","RadioGroup","onChangeFromField","mapError","hasHelperText","touched","error","warning","errorProps","helperText","Select","onBlur","defaultValue","readonly","Switch","TextField","container","breakpoints","up","margin","other","Paper","elevation","buttonProgress","top","left","marginTop","marginLeft","disabled","submitting","style","CircularProgress","size","upper","toUpperCase","styles","buttonWrapper","alignSelf","padding","red","LoginInternal","handleSubmit","onFieldChange","onSubmit","Grid","direction","spacing","Field","InputProps","label","normalize","xs","md","indigo","compose","reduxForm","initialValues","validate","field","match","UserActions","success","LoginExternal","Welcome","justify","alignment","onTabChange","TabActions","dateInput","fontSize","width","tableCell","onFilterChange","onFilterDateChange","TableRow","TableCell","verticalAlign","incidentLike","barcodeCustomsLike","reportingContactNameLike","reportingAirportHubLike","statusLike","initialFindingLike","airlineReportingIncidentLike","agencyReportingIncidentLike","entityReportingIncidentLike","TableHeaderCell","TableSortLabel","active","onHeaderClick","TableHead","tooltipMap","DRAFT","INPROCESS","CLOSED","tooltip","Tooltip","padLeft","pad","string","formatDate","date","toLocaleDateString","formatDateTime","d","getHours","getMinutes","formatTime","formatIdDate","isNaN","getFullYear","getMonth","getDate","incidentApprovals","onApprovalChange","onSerialNumberClick","row","entityReportingIncident","agencyReportingIncident","airlineReportingIncident","DateUtils","dateReported","barcodeCustoms","reportingContactName","reportingAirportHub","initialFinding","actionDate","updtUser","typingTimer","IncidentTable","printSubmitting","handleApprovalChange","approval","setState","handleChangePage","onPageChange","handleChangeRowsPerPage","onRowsPerPageChange","handleCreateIncidentClick","handleHeaderClick","handleFilterChange","timeout","loadData","clearTimeout","handleFilterDataChange","newValue","format","getMessageClassName","messageFilter","clearSelectedImages","entity","prevProps","saveSubmitting","noDataMessage","onFilterClick","onSaveClick","pagedIncidents","rowsInPage","Math","min","emptyRows","max","IncidentTableHeader","IncidentTableHeaderImport","IncidentTableFilter","IncidentTableFilterImport","IncidentTableRow","IncidentTableRowImport","columnCount","alignItems","handleSaveClick","IconButton","transition","overflowX","overflowY","Table","TableBody","map","index","height","colSpan","TablePagination","onChangePage","onChangeRowsPerPage","rowsPerPageOptions","textAlign","onLoadData","onError","incidentActions","tabDraft","maxWidth","opacity","backgroundColor","border","tabInProcess","tabClosed","tabAll","onLoadHazmatData","Tabs","centered","TabIndicatorProps","Tab","fullWidth","Home","handleTabChange","columns","AdminHome","Divider","column","manageUserKey","addIcon","grey","marginRight","blue","cancelIcon","errorIcon","hidden","visibility","iconColumn","tableBodyCell","onLoadPersonData","DatePickerField","autoComplete","autoOk","clearable","mask","minDate","SelectField","textFieldProps","assign","select","MenuItem","altvalue","altValue","code","CarrierActions","CountryActions","AirportActions","description","OptionActions","EnlargeableImage","imageDialogOpen","imageLoading","enlargeImage","handleImageDialogClose","src","alt","today","lettersNumbersCheck","phone","goBack","onBackClick","componentDidMount","deleteStagedImages","asyncValidating","onSnackbarClose","snackbarOpen","stageImage","issueTypeSelect","IssueTypeSelect","initialFindingValue","icaoHazardClassSelect","IcaoHazardClassSelect","dangerousItemSelect","DangerousItemSelect","icaoHazardClassValue","issueIdentificationMeansSelect","IssueIdentifierSelect","issueTypeValue","restrictedItemValue","restrictedItemSelect","RestrictedItemSelect","commentsGeneralField","maxLength","dangerousItemValue","skipBarcodeCustomsVerificationValue","bcCustomsValue","barcodeCustomsValue","bcCustomsVerifNewValue","barcodeCustomsVerificationStatusValue","skipBarcodeCn35VerificationValue","bcCn35Value","barcodeCn35Value","bcCn35VerifNewValue","barcodeCn35VerificationStatusValue","minLength","for","CarrierSelect","currentTarget","attributes","readOnly","AirportDestinationSelect","AirportOriginSelect","InitialFindingSelect","UsStateSelect","CountrySelect","LoadingImage","accept","onDrop","acceptedFiles","reader","FileReader","readAsDataURL","onload","Error","split","stageIt","getRootProps","getInputProps","dz","upldImage","saveDraft","Snackbar","autoHideDuration","myMap","Map","get","bcCustomsText","bcCn35text","bcHutext","senderZipText","senderPhoneText","domesticUsPhoneCheck","borderColor","align","selector","formValueSelector","SelectingTrackerFormValuesForm","airlineRecordNoValue","recipientPhoneValue","reportingContactNameValue","senderPhoneValue","trackerForm","IncidentActions","lettersNumbersSpacesCheck","CreatePerson","componentDidUpdate","handleBackClick","onSnackbarFailClose","reset","snackbarFail","startDate","contactPhoneText","createPersonFail","createAgentSubmit","agent","CreateAgent","createAgent","createAgentFail","AgentActions","getStage","worknotes","mailedStatus","dateMailed","letterSent","pastMonth","wnNum","mailed","setDate","WorkNotes","fetchWorkNotes","updtUserId","updtDate","workNote","indSubmit","grayBox","decision","closed","customerLetterResponseStatus","customerLetterMailedStatus","customerLetterMailedDate","borderTopRightRadius","borderBottomRightRadius","Row","React","useState","setOpen","Fragment","aria-label","actionType","paddingBottom","paddingTop","Collapse","in","unmountOnExit","Box","gutterBottom","HistValues","parms","parameterValues","header","headerCell","maxHeight","popover","pointerEvents","paper","logs","snackbarClose","TableContainer","phoneRegex","handlePhoneInput","replace","certifiedTrackingNumberCheck","EditForm","downloadWordFile","Blob","link","document","href","URL","createObjectURL","click","fetchLogs","fetchImages","barcodeCustomsVerificationStatus","skipBarcodeCustomsVerification","barcodeCn35VerificationStatus","skipBarcodeCn35Verification","showHistory","onSnackbarOpen","delete","confirmAlert","buttons","validateCustomsBc","barcodeCustomsVerification","validateCn35Bc","barcodeCn35","barcodeCn35Verification","rcCustoms","rcCn35","formIsValid","reportingContactPhone","reportingContactEmail","dateOfDiscovery","originOfficeOfExchange","senderPhone","senderName","senderAddress","senderState","senderCity","senderZip","recipientPhone","recipientName","recipientAddress","recipientCity","recipientCountry","recipientZip","contentDescrnOnCustomsForm","alert","selimages","barcodeHandlingUnit","DatePicker","floatingLabelText","defaultDate","airlineRecordNo","icaoHazardClass","issueIdentificationMeans","dangerousItem","issueType","restrictedItem","commentsGeneral","senderCompany","senderAddress2","recipientCompany","recipientAddress2","imageContainer","uploadIt","LetterMailedSelect","customerLetterFilename","customerLetterFileLocation","customerLetterCrfTrackNo","LetterReceivdSelect","customerLetterResponseDate","customerLetterResponseFilename","customerLetterResponseFileLoc","hm_logs","redBox","getInitialValues","HmLogAction","ViewWorkNotes","ViewForm","colorMeRed","getElementById","ViewPerson","personId","pathname","createdDatetime","handleApprove","handleDeny","agencyAbbreviation","agencyFullName","carrierAbbreviation","carrierFullName","contactEmail","updatedDatetime","contactName","contactPhone","approved","approvedBy","approvedDate","deniedBy","deniedDate","deniedReason","remarksCode","prompt","fetchPerson","handleCancel","LoginRedirect","createRoutes","basename","exact","render","LoginPageExternal","LoginPageInternal","AuthRedirect","WelcomePage","HomePage","AdminHomePage","ViewPersonForm","persistConfig","storage","persistedReducer","persistReducer","store","persistor","persistStore","muiTheme","createMuiTheme","palette","primary","secondary","typography","useNextVariants","Root","utils","DateFnsUtils"],"mappings":"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","file":"static/js/main.e2cb7d48.chunk.js","sourcesContent":["if (process.env.NODE_ENV === 'production') {\r\n module.exports = require('./configureStore.prod')\r\n } else {\r\n module.exports = require('./configureStore.dev')\r\n }\r\n ","if (process.env.NODE_ENV === 'production') {\r\n module.exports = require('./config.production')\r\n } else {\r\n module.exports = require('./config.local') // Use to run on Local\r\n //module.exports = require('./config.dev') // Use to build for dev\r\n }\r\n ","const config = {\r\n SAMS_ENDPOINT: 'https://sams2.usps.gov/sams-intl-ws/assignment/fetchbyupu/MIA/',\r\n ENDPOINT: '/dangerous-ws',\r\n BASE_URL: '/dangerous-goods-web',\r\n LOGIN: 'external' // For SIT-External, PROD-External\r\n // LOGIN: 'internal' // For DEV, CAT, PROD-Internal \r\n }\r\n \r\n export default config\r\n ","import { createStore, applyMiddleware } from 'redux'\r\nimport thunk from 'redux-thunk'\r\n\r\nconst configureStore = (rootReducer) => {\r\n const store = createStore(\r\n rootReducer,\r\n undefined,\r\n applyMiddleware(thunk)\r\n )\r\n\r\n return store\r\n}\r\n\r\nexport default configureStore\r\n","export const DANGEROUS_GOODS_ADMIN = 'DANGEROUS_GOODS_ADMIN'\r\nexport const DANGEROUS_GOODS_ADMIN_READONLY = 'DANGEROUS_GOODS_ADMIN_READONLY'\r\nexport const CARRIER = 'CARRIER'\r\n// export const AGENCY = 'AGENCY'\r\nexport const AGENT = 'AGENT'\r\nexport const COMPANY = 'COMPANY'\r\nexport const CUSTOMER_SERVICE_AGENT = 'DANGEROUS_GOODS_CUSTOMER_SERVICE_AGENT'","import 'isomorphic-fetch'\r\nimport config from '../config'\r\nimport * as Roles from '../constants/roles'\r\n\r\nexport const LOGIN_SUCCESS = 'LOGIN_SUCCESS'\r\nexport const LOGIN_FAILED = 'LOGIN_FAILED'\r\nexport const ERROR_LOGIN = 'ERROR_LOGIN'\r\nexport const LOGOUT = 'LOGOUT'\r\n\r\nexport const REFRESH = 'REFRESH'\r\n\r\nexport const TOKEN_REFRESH_OFFSET = 30000; // How soon before the session expires to refresh the token. In milliseconds.\r\n\r\nlet authtimer = ''\r\n\r\n/**\r\n * \r\n * @param {*} userId \r\n * @param {*} password \r\n * @param {*} source \r\n * @returns \r\n */\r\nexport const logIn = (userId, password, source) => (dispatch) => {\r\n // console.log(\"[actions.user] login source=\",source)\r\n\r\n if('internal' === source) {\r\n // console.log('^^^^^^^^ internal user -- LDAP authentication ^^^^^^^^^^^ ') \r\n return fetch(`${config.ENDPOINT}/auth/authenticate`, {\r\n headers: {\r\n //Authorization: config.AUTHORIZATION,\r\n 'cache-control': 'no-cache',\r\n pragma: 'no-cache',\r\n 'Content-Type': 'application/json'\r\n },\r\n method: 'POST',\r\n body: JSON.stringify({\r\n username: userId,\r\n password: window.btoa(password)\r\n })\r\n }).then((res) => {\r\n // console.log('[actions/user.js] - logIn returned res: ',res)\r\n return res.json()\r\n }).then((response) => {\r\n // console.log('[actions/user.js] - response: ',response)\r\n const data = response.data || {}\r\n // console.log('Role=', data.role)\r\n // console.log('Carrier=', data.carrierAbbr)\r\n if (response.status !== 'success' \r\n // || (data.role !== Roles.DANGEROUS_GOODS_ADMIN && data.role !== Roles.DANGEROUS_GOODS_ADMIN_READONLY /* && data.role !== Roles.IDP_DANGEROUS_GOODS */)\r\n ) {\r\n // console.log('[actions/user.js] - logIn failed -- Invalid username/password, or user lacks Admin role')\r\n // console.log('response',response);\r\n dispatch({\r\n type: LOGIN_FAILED,\r\n message: 'Invalid username/password, or user lacks Admin role'\r\n })\r\n return false\r\n }\r\n // console.log('[actions/user.js] - logIn succeeded') \r\n // if(response.message === 'User Found'){ \r\n // console.log('Dispatching Login Success !!!!!!!!!!')\r\n // console.log('data= ', data);\r\n dispatch({\r\n type: LOGIN_SUCCESS,\r\n userId,\r\n role: data.role,\r\n authToken: data.authToken,\r\n // authExpiry: data.authTokenExpiry,\r\n authExpiry: data.authTokenExpiryMillis,\r\n tokenAssignTime: data.accessDateMillis\r\n })\r\n // console.log('NEW TOKEN WILL BE Timing out in millis',(data.authTokenExpiryMillis - data.accessDateMillis) - TOKEN_REFRESH_OFFSET);\r\n\r\n // console.log('authTokenExpiryMillis', data.authTokenExpiryMillis);\r\n // console.log('accessDateMillis', data.accessDateMillis); \r\n // console.log('authTokenExpiryMillis - accessDateMillis',data.authTokenExpiryMillis - data.accessDateMillis);\r\n // console.log(' - ' + TOKEN_REFRESH_OFFSET, (data.authTokenExpiryMillis - data.accessDateMillis) - TOKEN_REFRESH_OFFSET)\r\n\r\n authtimer = setTimeout(\r\n ()=>{\r\n dispatch(refreshToken())}, \r\n (data.authTokenExpiryMillis - data.accessDateMillis) - TOKEN_REFRESH_OFFSET\r\n );\r\n\r\n return true\r\n }).catch((e) => {\r\n // console.log('[actions/user.js] - logIn failed -- Unable to contact Spring service for LDAP auth')\r\n dispatch({\r\n type: LOGIN_FAILED,\r\n message: 'Unable to contact Spring service for LDAP auth'\r\n })\r\n return false\r\n })\r\n }\r\n\r\n\r\n\r\nif('idp' === source) {\r\n // console.log('^^^^^^^^ external user -- DB authentication -- IDP style ^^^^^^^^^^^ ')\r\n return fetch(`${config.ENDPOINT}/auth/authenticateIDP`, {\r\n headers: {\r\n //Authorization: config.AUTHORIZATION,\r\n 'cache-control': 'no-cache',\r\n pragma: 'no-cache',\r\n 'Content-Type': 'application/json'\r\n },\r\n method: 'POST',\r\n body: JSON.stringify({\r\n username: userId,\r\n password: window.btoa(password)\r\n })\r\n }).then((res) => {\r\n // console.log('[actions/user.js] - (EXTERNAL) logIn returned res: ',res)\r\n return res.json()\r\n }).then((response) => {\r\n // console.log('[actions/user.js] - response: ',response)\r\n const data = response.data || {}\r\n // console.log('^^^^^^^^^^^^^^^^^^^ ' + data)\r\n \r\n // console.log('Role=', data.role)\r\n // console.log('Carrier=', data.carrierAbbr)\r\n if (response.status !== 'success'\r\n ||((data.role !== Roles.CARRIER) && (data.role !== Roles.AGENT)) \r\n\r\n ) {\r\n dispatch({\r\n type: LOGIN_FAILED,\r\n message: 'Invalid username/password, or External user has not been approved'\r\n })\r\n\r\n return false\r\n }\r\n\r\n // console.log('[actions/user.js] - logIn succeeded') \r\n // console.log('[actions/user.js] - logIn succeeded') \r\n dispatch({\r\n type: LOGIN_SUCCESS,\r\n userId,\r\n role: data.role,\r\n entityType: data.entityType,\r\n carrier: data.carrierAbbr,\r\n agency: data.agencyAbbr,\r\n authToken: data.authToken,\r\n authExpiry: data.authTokenExpiry,\r\n tokenAssignTime: data.accessDateMillis\r\n // ,superSecretKey: data.superSecretKey\r\n })\r\n\r\n // console.log('NEW (EXTERNAL) TOKEN WILL BE Timing out in millis',(data.authTokenExpiryMillis - data.accessDateMillis) - TOKEN_REFRESH_OFFSET);\r\n\r\n // console.log('authTokenExpiryMillis', data.authTokenExpiryMillis);\r\n // console.log('accessDateMillis', data.accessDateMillis); \r\n // console.log('authTokenExpiryMillis - accessDateMillis',data.authTokenExpiryMillis - data.accessDateMillis);\r\n // console.log(' - ' + TOKEN_REFRESH_OFFSET, (data.authTokenExpiryMillis - data.accessDateMillis) - TOKEN_REFRESH_OFFSET)\r\n\r\n authtimer = setTimeout(\r\n ()=>{\r\n dispatch(refreshToken())}, \r\n (data.authTokenExpiryMillis - data.accessDateMillis) - TOKEN_REFRESH_OFFSET\r\n );\r\n\r\n\r\n return true\r\n }).catch((e) => {\r\n // console.log('********************* ' + e)\r\n dispatch({\r\n type: LOGIN_FAILED,\r\n message: 'Unable to contact Spring service for DB auth, IDP-style'\r\n })\r\n return false\r\n })\r\n}\r\n\r\n\r\n dispatch({\r\n type: LOGIN_FAILED,\r\n message: 'Please select internal or external'\r\n })\r\n return false\r\n}\r\n\r\n\r\nexport const refreshToken = () => (dispatch, getState) =>{\r\n const state = getState()\r\n // console.log('refreshToken')\r\n // console.log('state=',state)\r\n const user = state.user.userId;\r\n const token = state.user.authToken;\r\n // console.log('USER TOKEN REFRESH CALLED')\r\n // console.log('user', user)\r\n // console.log('token', token)\r\n clearInterval(authtimer)\r\n return fetch(`${config.ENDPOINT}/auth/refreshauthtoken`,\r\n {method: 'post',\r\n body: JSON.stringify({userId: user, authToken: token}),\r\n headers: new Headers({'Authorization': state.user.authToken,\r\n 'content-type' : 'application/json'})\r\n }).then((res) => {\r\n // console.log('USER TOKEN REFRESH -- res', res)\r\n return res.json()\r\n}).then((res) => {\r\n // console.log('USER TOKEN REFRESH -- res', res)\r\n if(res.message === 'Validated'){\r\n dispatch({\r\n type: REFRESH,\r\n authToken: res.data.authToken,\r\n authExpiry: res.data.authTokenExpiryMillis,\r\n tokenAssignTime: res.data.accessDateMillis\r\n })\r\n // console.log('RESFRESHED TOKEN WILL BE Timing out in millis',(res.data.authTokenExpiryMillis - res.data.accessDateMillis) - TOKEN_REFRESH_OFFSET);\r\n\r\n // console.log('authTokenExpiryMillis', res.data.authTokenExpiryMillis);\r\n // console.log('accessDateMillis', res.data.accessDateMillis); \r\n // console.log('authTokenExpiryMillis - accessDateMillis',res.data.authTokenExpiryMillis - res.data.accessDateMillis);\r\n // console.log(' - '+TOKEN_REFRESH_OFFSET, (res.data.authTokenExpiryMillis - res.data.accessDateMillis) - TOKEN_REFRESH_OFFSET)\r\n\r\n authtimer = setTimeout(()=>{\r\n dispatch(refreshToken())\r\n }, (res.data.authTokenExpiryMillis - res.data.accessDateMillis) - TOKEN_REFRESH_OFFSET);\r\n }\r\n })\r\n}\r\n\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const logOut = () => {\r\n return {\r\n type: LOGOUT\r\n }\r\n}\r\n\r\n","import 'isomorphic-fetch'\r\nimport config from '../config'\r\n\r\nconst fetchAuthHeaders = () =>{ //Session Storage\r\n const ut = JSON.parse(sessionStorage.getItem('persist:domir'))\r\n // console.log('ut',--ut--) // Don't log... contains token\r\n const user = JSON.parse(ut.user)\r\n // console.log('user', --user--) // Don't log... contains token\r\n const headers = {\r\n Authorization: user ? user.authToken : null,\r\n 'cache-control': 'no-cache',\r\n pragma: 'no-cache'\r\n }\r\n // console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!HEADERS ARE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')\r\n // console.log(headers)\r\n return headers;\r\n}\r\n\r\n\r\n\r\nconst UNKNOWN_ERROR_MESSAGE = 'An unexpected server error occured while processing your request. Please try again.'\r\nconst CONNECTION_ERROR_MESSAGE = 'Failed to contact server.'\r\n\r\nconst convertToQueryParameters = (obj) => {\r\n // console.log('convertToQueryParameters called with obj: ', obj);\r\n try{\r\n var str = []\r\n Object.keys(obj).forEach(key => {\r\n if (obj[key] !== null && obj[key] !== undefined && obj[key] !== '') {\r\n if (obj[key].constructor === Array) {\r\n obj[key].forEach((item) => str.push(key + '=' + item))\r\n } else if (obj[key].constructor === Date) {\r\n str.push(key + '=' + obj[key].toISOString())\r\n } else {\r\n str.push(key + '=' + obj[key])\r\n }\r\n }\r\n })\r\n // console.log('convertToQueryParameters returned: ', str.join('&'));\r\n return str.join('&')\r\n } catch(err) {\r\n // console.log('convertToQueryParameters returned null. ');\r\n return ''\r\n }\r\n}\r\n\r\n// TODO: Comment this back in when implementing SAMS barcode validation\r\n// const fetchSamsPostResource = (path, options = {}) => {\r\n// return fetchGenericPostResource(sams_headers, config.SAMS_ENDPOINT, path, options)\r\n// }\r\nconst fetchPostResource = (path, options = {}) => {\r\n return fetchGenericPostResource(fetchAuthHeaders(), config.ENDPOINT, path, options)\r\n}\r\n\r\nconst fetchGenericPostResource = (myHeaders, endpoint, path, options = {}) => {\r\n let url = encodeURI(`${endpoint}/${path}`)\r\n\r\n // console.log(\"service-utils fetchPostResource BASE URL is \", url)\r\n // console.log(\"service-utils fetchPostResource options = \", options)\r\n\r\n const criteria = options.criteria\r\n if (criteria) {\r\n url += `?${convertToQueryParameters(criteria)}`\r\n }\r\n // console.log(\"service-utils fetchPostResource criteria = \", criteria)\r\n\r\n // console.log(\"service-utils fetchPostResource CALLING URL at \", url)\r\n // console.log(\"service utils fetchPostResource calling with: \", {\r\n // headers: { ...myHeaders, ...options.headers },\r\n // method: options.method ? options.method : 'GET',\r\n // body: options.body\r\n // });\r\n return fetch(url, {\r\n headers: { ...myHeaders, ...options.headers },\r\n method: options.method ? options.method : 'GET',\r\n body: options.body\r\n })\r\n}\r\n\r\n// const fetchSamsResource = (path, options = {}) => {\r\n// return fetchGenericResource (sams_headers, config.SAMS_ENDPOINT, path, options)\r\n// }\r\n\r\nconst fetchResource = (path, options = {}) => {\r\n // console.log('fetchResource');\r\n return fetchGenericResource (fetchAuthHeaders(), config.ENDPOINT, path, options)\r\n}\r\n\r\nconst fetchGenericResource = (myHeaders, endpoint, path, options = {}) => {\r\n let url = encodeURI(`${endpoint}/${path}`)\r\n // console.log(\"service-utils fetchGenericResource options = \", options);\r\n var criteria;\r\n if(options) {\r\n criteria = options.criteria;\r\n if (criteria) {\r\n url += `?${convertToQueryParameters(criteria)}`;\r\n // console.log(\"service-utils fetchGenericResource criteria = \",criteria);\r\n }\r\n // else console.log(\"criteria is empty\");\r\n }\r\n // else console.log(\"options is empty\");\r\n return new Promise((resolve, reject) => {\r\n // console.log(\"service-utils fetchGenericResource CALLING URL at \" + url)\r\n // console.log(\"service utils fetchGenericResource calling with: \", {\r\n // headers: { ...myHeaders, ...options.headers },\r\n // method: options.method ? options.method : 'GET',\r\n // body: options.body\r\n // });\r\n fetch(url, {\r\n headers: { ...myHeaders, ...options.headers },\r\n method: options.method ? options.method : 'GET',\r\n body: options.body\r\n })\r\n .then((res) => {\r\n if (!res.ok) {\r\n if (res.status === 500) {\r\n // console.log(\"(res.status === 500\") ;\r\n return reject(UNKNOWN_ERROR_MESSAGE)\r\n }\r\n\r\n return res.text().then((text) => {\r\n // console.log(\"res.text\") ;\r\n return reject(text || UNKNOWN_ERROR_MESSAGE)\r\n })\r\n }\r\n\r\n if (options.handleResponse) {\r\n return options.handleResponse(res)\r\n .then((result) => resolve(result))\r\n } else {\r\n return res.text()\r\n .then((text) => {\r\n if (text) {\r\n resolve(JSON.parse(text))\r\n }\r\n resolve(text)\r\n })\r\n }\r\n })\r\n .catch((e) => {\r\n // console.log('[service-utils] fetchGenericResource() - Promise.then --> error = ', e)\r\n // Will only get here if there is a network error\r\n return reject(CONNECTION_ERROR_MESSAGE)\r\n })\r\n })\r\n}\r\n\r\n// export const getSamsResource = (path, options = {}) => {\r\n// console.log('[service-utils] getSamsResource() options=',options); \r\n// return fetchSamsResource(path, options)\r\n// }\r\n\r\nexport const getResource = (path, options = {}) => {\r\n // console.log('[service-utils] getResource() options=',options); \r\n // console.log('[service-utils] getResource() DEBUG -- pre-calling fetchAuthHeaders just to show we can'); \r\n fetchAuthHeaders();\r\n // console.log('[service-utils] getResource() DEBUG -- pre-calling fetchResource'); \r\n return fetchResource(path, options)\r\n}\r\n\r\nexport const getBlob = (path, options = {}) => {\r\n return fetchResource(path, {\r\n handleResponse: (res) => res.blob(),\r\n ...options\r\n })\r\n}\r\n\r\nexport const getPage = (countPromise, searchPromise) => {\r\n const promises = [countPromise, searchPromise]\r\n\r\n return Promise.all(promises).then((results) => {\r\n return {\r\n rowCount: results[0],\r\n rows: results[1]\r\n }\r\n })\r\n}\r\n\r\nexport const postFile = (path, file) => {\r\n const body = new FormData()\r\n body.append('file', file)\r\n\r\n return fetchPostResource(path, {\r\n method: 'POST',\r\n body\r\n })\r\n}\r\n\r\nexport const postResource = (path, resource, userId) => {\r\n // console.log('postResource');\r\n // console.log('PATH ', path);\r\n // console.log('RESOURCE ', resource)\r\n // console.log('USERID ', userId) \r\n return fetchResource(path, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n UserId: userId\r\n },\r\n method: 'POST',\r\n body: JSON.stringify(resource)\r\n })\r\n}\r\n\r\nexport const postInsecureResource = (path, resource, userId) => {\r\n // console.log('postInsecureResource');\r\n // console.log('PATH ', path);\r\n // console.log('RESOURCE ', resource)\r\n // console.log('USERID ', userId) \r\n return fetchInsecureResource(path, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n UserId: userId\r\n },\r\n method: 'POST',\r\n body: JSON.stringify(resource)\r\n })\r\n}\r\n\r\nconst fetchInsecureResource = (path, options = {}) => {\r\n // console.log('fetchInsecureResource');\r\n return fetchGenericInsecureResource (config.ENDPOINT, path, options)\r\n}\r\n\r\nconst fetchGenericInsecureResource = (endpoint, path, options = {}) => {\r\n let url = encodeURI(`${endpoint}/${path}`)\r\n // console.log('[service-utils] fetchInsecureResource() BASE URL is ', url);\r\n // console.log(\"service-utils fetchGenericInsecureResource options = \", options);\r\n var criteria;\r\n if(options) {\r\n criteria = options.criteria;\r\n if (criteria) {\r\n url += `?${convertToQueryParameters(criteria)}`;\r\n // console.log(\"service-utils fetchGenericInsecureResource criteria = \",criteria);\r\n }\r\n // else console.log(\"criteria is empty\");\r\n }\r\n // else console.log(\"options is empty\");\r\n return new Promise((resolve, reject) => {\r\n // console.log(\"service-utils fetchGenericInsecureResource CALLING URL at \" + url)\r\n // console.log(\"service-utils fetchGenericInsecureResource CALLING with: \",{\r\n // headers: { ...options.headers },\r\n // method: options.method ? options.method : 'GET',\r\n // body: options.body\r\n // })\r\n fetch(url, {\r\n headers: { ...options.headers },\r\n method: options.method ? options.method : 'GET',\r\n body: options.body\r\n })\r\n .then((res) => {\r\n if (!res.ok) {\r\n if (res.status === 500) {\r\n // console.log(\"(res.status === 500\") ;\r\n return reject(UNKNOWN_ERROR_MESSAGE)\r\n }\r\n\r\n return res.text().then((text) => {\r\n // console.log(\"res.text\") ;\r\n return reject(text || UNKNOWN_ERROR_MESSAGE)\r\n })\r\n }\r\n\r\n if (options.handleResponse) {\r\n return options.handleResponse(res)\r\n .then((result) => resolve(result))\r\n } else {\r\n return res.text()\r\n .then((text) => {\r\n if (text) {\r\n resolve(JSON.parse(text))\r\n }\r\n resolve(text)\r\n })\r\n }\r\n })\r\n .catch((e) => {\r\n // console.log('[service-utils] fetchGenericInsecureResource() - Promise.then --> error = ', e)\r\n // Will only get here if there is a network error\r\n return reject(CONNECTION_ERROR_MESSAGE)\r\n })\r\n })\r\n}\r\n\r\n\r\nexport const putResource = (path, updates, userId, options = {}) => {\r\n // console.log('putResource');\r\n return fetchResource(path, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n UserId: userId\r\n },\r\n method: 'PUT',\r\n body: JSON.stringify(updates),\r\n ...options\r\n })\r\n}\r\n\r\nexport const deleteResource = (path) => {\r\n // console.log('deleteResource');\r\n return fetchResource(path, {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n method: 'DELETE'\r\n })\r\n}\r\n\r\nexport const fetchExcelFile = (path, options = {}) => {\r\n // console.log(\"utilities/service-utils -- fetchExcelFile -- options=\", options)\r\n let url = encodeURI(`${config.ENDPOINT}/${path}`)\r\n const criteria = options\r\n if (criteria) {\r\n url += `?${convertToQueryParameters(criteria)}`\r\n }\r\n let authHeaders = fetchAuthHeaders();\r\n // console.log(\"utilities/service-utils -- fetchExcelFile --CALLING EXCEL SERVICE AT \" + url)\r\n // console.log(\"[utilities/service-utils] -- fetchExcelFile -- calling with: \",{headers: {...authHeaders}}) \r\n // console.log(\"authHeaders: \", {headers: {authHeaders}});\r\n\r\n return fetch(url, {headers: {...authHeaders}})\r\n .then((res) => {\r\n // console.log('res=',res)\r\n return res.blob()\r\n })\r\n .then((text) => {\r\n // console.log('text=',text)\r\n return text\r\n })\r\n}\r\n\r\n\r\nexport const fetchWordFile = (path, hmKey, options = {}) => {\r\n // console.log(\"[utilities/service-utils] -- fetchWordFile\")\r\n let url = encodeURI(`${config.ENDPOINT}/${path}`) + '/' + hmKey;\r\n let authHeaders = fetchAuthHeaders();\r\n // console.log(\"[utilities/service-utils] -- fetchWordFile -- CALLING WORD SERVICE AT \" + url)\r\n // console.log(\"[utilities/service-utils] -- fetchWordFile -- authHeaders = \",authHeaders)\r\n // console.log(\"[utilities/service-utils] -- fetchWordFile -- calling with: \", {headers: {...authHeaders}});\r\n // console.log(\"[utilities/service-utils] -- fetchWordFile -- fetch \");\r\n return fetch(url, {headers: {...authHeaders}} )\r\n .then( response => response.blob()\r\n )\r\n}\r\n","import * as OptionServices from '../services/option'\r\n\r\nexport const RETRIEVE_ALL_OPTIONS_SUCCESS = 'RETRIEVE_ALL_OPTIONS_SUCCESS'\r\n\r\nexport const RETRIEVE_INITIAL_FINDINGS_SUCCESS = 'RETRIEVE_INITIAL_FINDINGS_SUCCESS'\r\n\r\nexport const RETRIEVE_ISSUE_TYPES_SUCCESS = 'RETRIEVE_ISSUE_TYPES_SUCCESS'\r\nexport const RETRIEVE_ICAO_HAZARD_CLASSES_SUCCESS = 'RETRIEVE_ICAO_HAZARD_CLASSES_SUCCESS'\r\nexport const RETRIEVE_ISSUE_IDENTIFIERS_SUCCESS = 'RETRIEVE_ISSUE_IDENTIFIERS_SUCCESS'\r\nexport const RETRIEVE_RESTRICTED_ITEMS_SUCCESS = 'RETRIEVE_RESTRICTED_ITEMS_SUCCESS'\r\nexport const RETRIEVE_US_STATES_SUCCESS = 'RETRIEVE_US_STATES_SUCCESS'\r\n\r\nexport const RETRIEVE_LETTER_MAILED_SUCCESS = 'RETRIEVE_LETTER_MAILED_SUCCESS'\r\n\r\n\r\nexport const RETRIEVE_DANGEROUS_ITEMS_SUCCESS = 'RETRIEVE_DANGEROUS_ITEMS_SUCCESS'\r\n\r\n//--Received has been intentionally misspelled as receivd because 'CUSTOMER_LETTER_RECEIVD_STATUS' is 30 characters long -- this is the maximum name length allowed by our Oracle database.\r\n\r\nexport const RETRIEVE_LETTER_RECEIVD_SUCCESS = 'RETRIEVE_LETTER_RECEIVD_SUCCESS'\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const retrieveAllOptions = () => (dispatch, getState) => {\r\n const state = getState()\r\n const allOptions = state.option.allOptions\r\n\r\n if (allOptions && allOptions.length > 0) {\r\n return\r\n }\r\n\r\n return OptionServices.getAllOptions()\r\n .then((options) => {\r\n const sortedOptions = options.slice()\r\n sortedOptions.sort((a, b) => {\r\n return a.name > b.name\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_ALL_OPTIONS_SUCCESS,\r\n allOptions: sortedOptions\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const retrieveInitialFindings = () => (dispatch, getState) => {\r\n const state = getState()\r\n const initialFindings = state.option.initialFindings\r\n\r\n if (initialFindings && initialFindings.length > 0) {\r\n return\r\n }\r\n\r\n return OptionServices.getInitialFindings()\r\n .then((options) => {\r\n const sortedOptions = options.slice()\r\n sortedOptions.sort((a, b) => {\r\n return a.name > b.name\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_INITIAL_FINDINGS_SUCCESS,\r\n initialFindings: sortedOptions\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const retrieveIssueTypes = () => (dispatch, getState) => {\r\n const state = getState()\r\n const issueTypes = state.option.issueTypes\r\n\r\n if ( issueTypes && issueTypes.length > 0) {\r\n return\r\n }\r\n\r\n return OptionServices.getIssueTypes()\r\n .then((options) => {\r\n const sortedOptions = options.slice()\r\n sortedOptions.sort((a, b) => {\r\n return a.name > b.name\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_ISSUE_TYPES_SUCCESS,\r\n issueTypes : sortedOptions\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const retrieveIcaoHazardClasses = () => (dispatch, getState) => {\r\n const state = getState()\r\n const icaoHazardClasses = state.option.icaoHazardClasses\r\n\r\n if (icaoHazardClasses && icaoHazardClasses.length > 0) {\r\n return\r\n }\r\n\r\n return OptionServices.getIcaoHazardClasses()\r\n .then((options) => {\r\n const sortedOptions = options.slice()\r\n sortedOptions.sort((a, b) => {\r\n return a.name > b.name\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_ICAO_HAZARD_CLASSES_SUCCESS,\r\n icaoHazardClasses : sortedOptions\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const retrieveIssueIdentifiers = () => (dispatch, getState) => {\r\n const state = getState()\r\n const issueIdentifiers = state.option.issueIdentifiers\r\n\r\n if (issueIdentifiers && issueIdentifiers.length > 0) {\r\n return\r\n }\r\n\r\n return OptionServices.getIssueIdentifiers()\r\n .then((options) => {\r\n const sortedOptions = options.slice()\r\n sortedOptions.sort((a, b) => {\r\n return a.name > b.name\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_ISSUE_IDENTIFIERS_SUCCESS,\r\n issueIdentifiers : sortedOptions\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const retrieveRestrictedItems = () => (dispatch, getState) => {\r\n // console.log('action/option -- retrieveRestrictedItems');\r\n const state = getState()\r\n const restrictedItems = state.option.restrictedItems\r\n\r\n if (restrictedItems && restrictedItems.length > 0) {\r\n return\r\n }\r\n\r\n return OptionServices.getRestrictedItems()\r\n .then((options) => {\r\n const sortedOptions = options.slice()\r\n sortedOptions.sort((a, b) => {\r\n return a.name > b.name\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_RESTRICTED_ITEMS_SUCCESS,\r\n restrictedItems: sortedOptions\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const retrieveUsStates = () => (dispatch, getState) => {\r\n // console.log('action/option -- retrieveUsStates'); \r\n const state = getState()\r\n const usStates = state.option.usStates\r\n\r\n if (usStates && usStates.length > 0) {\r\n return\r\n }\r\n\r\n return OptionServices.getUsStates()\r\n .then((options) => {\r\n const sortedOptions = options.slice()\r\n sortedOptions.sort((a, b) => {\r\n return a.name > b.name\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_US_STATES_SUCCESS,\r\n usStates: sortedOptions\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\n export const retrieveLetterMailed = () => (dispatch, getState) => {\r\n // console.log('action/option -- retrieveLetterMailed');\r\n const state = getState()\r\n const letterMailed = state.option.letterMailed\r\n\r\n if (letterMailed && letterMailed.length > 0) {\r\n return\r\n }\r\n\r\n return OptionServices.getLetterMailed()\r\n .then((options) => {\r\n const sortedOptions = options.slice()\r\n sortedOptions.sort((a, b) => {\r\n return a.name > b.name\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_LETTER_MAILED_SUCCESS,\r\n letterMailed: sortedOptions\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\n export const retrieveLetterReceivd = () => (dispatch, getState) => {\r\n // console.log('action/option -- retrieveLetterReceivd');\r\n const state = getState()\r\n const letterReceivd = state.option.letterReceivd\r\n\r\n if (letterReceivd && letterReceivd.length > 0) {\r\n return\r\n }\r\n\r\n return OptionServices.getLetterReceivd()\r\n .then((options) => {\r\n const sortedOptions = options.slice()\r\n sortedOptions.sort((a, b) => {\r\n return a.name > b.name\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_LETTER_RECEIVD_SUCCESS,\r\n letterReceivd: sortedOptions\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @param {*} hazclass \r\n * @returns \r\n */\r\nexport const retrieveDangerousItems = (hazclass) => (dispatch, getState) => {\r\n // console.log('[actions/option/retrieveDangerousItems] - hazclass=' + hazclass)\r\n const state = getState()\r\n const dangerousItems = state.option.dangerousItems\r\n // Return previously cached list.\r\n if (dangerousItems && dangerousItems.length > 0) {\r\n if (hazclass === dangerousItems[1].name){\r\n return\r\n }\r\n }\r\n \r\n return OptionServices.getDangerousItems(hazclass)\r\n .then((options) => {\r\n // console.log('[actions/option/retrieveDangerousItems] .then(options)', options) \r\n const sortedOptions = options.slice()\r\n sortedOptions.sort((a, b) => {\r\n return a.name > b.name\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_DANGEROUS_ITEMS_SUCCESS,\r\n dangerousItems: sortedOptions\r\n })\r\n })\r\n}\r\n\r\n\r\n\r\n","import { getResource } from '../utilities/service-utils'\r\n\r\nexport const getAllOptions = () => {\r\n return getResource('option/all')\r\n}\r\n\r\nexport const getInitialFindings = () => {\r\n return getResource('option/initialFindings')\r\n}\r\n\r\n\r\nexport const getIssueTypes = () => {\r\n return getResource('option/issueTypes')\r\n}\r\n\r\nexport const getIcaoHazardClasses = () => {\r\n return getResource('option/icaoHazardClasses')\r\n}\r\n\r\nexport const getIssueIdentifiers = () => {\r\n return getResource('option/issueIdentifiers')\r\n}\r\n\r\nexport const getRestrictedItems = () => {\r\n // console.log('services/option -- getRestrictedItems');\r\n return getResource('option/restrictedItems')\r\n}\r\n\r\nexport const getUsStates = () => {\r\n return getResource('option/usStates')\r\n}\r\n\r\nexport const getLetterMailed = () => {\r\n return getResource('option/letterMailedOptions')\r\n}\r\n\r\n//--Received has been intentionally misspelled as receivd because 'CUSTOMER_LETTER_RECEIVD_STATUS' is 30 characters long -- this is the maximum name length allowed by our Oracle database.\r\nexport const getLetterReceivd = () => {\r\n return getResource('option/letterReceivedOptions')\r\n}\r\n\r\n\r\nexport const getDangerousItems = (hazclass) => {\r\n // console.log('[services/option/getDangerousItems] hazclass = ' + hazclass)\r\n // return getResource('option/dangerousItems?hazclass='+'Class 1') \r\n // return getResource('option/dangerousItems/'+'Class 1') \r\n return getResource(`option/dangerousItems/${hazclass}`) \r\n}\r\n\r\n// export const getDangerousItems = () => {\r\n// return getResource('option/allDangerous')\r\n// }\r\n\r\n","import * as OptionActions from '../actions/option'\r\n\r\nconst initialState = {\r\n allOptions: [],\r\n initialFindings: [],\r\n issueTypes: [],\r\n icaoHazardClasses: [],\r\n issueIdentifiers: [], \r\n restrictedItems: [],\r\n usStates: [],\r\n letterMailed: [],\r\n //--Received has been intentionally misspelled as receivd because 'CUSTOMER_LETTER_RECEIVD_STATUS' is 30 characters long -- this is the maximum name length allowed by our Oracle database.\r\n letterReceivd: [],\r\n dangerousItems: [] \r\n}\r\n\r\nconst option = (state = initialState, action) => {\r\n switch (action.type) {\r\n case OptionActions.RETRIEVE_ALL_OPTIONS_SUCCESS:\r\n return {\r\n ...state,\r\n allOptions: action.allOptions\r\n } \r\n case OptionActions.RETRIEVE_INITIAL_FINDINGS_SUCCESS:\r\n return {\r\n ...state,\r\n initialFindings: action.initialFindings\r\n } \r\n \r\n case OptionActions.RETRIEVE_ISSUE_TYPES_SUCCESS:\r\n return {\r\n ...state,\r\n issueTypes: action.issueTypes\r\n } \r\n \r\n case OptionActions.RETRIEVE_ICAO_HAZARD_CLASSES_SUCCESS:\r\n return {\r\n ...state,\r\n icaoHazardClasses: action.icaoHazardClasses\r\n } \r\n \r\n case OptionActions.RETRIEVE_ISSUE_IDENTIFIERS_SUCCESS:\r\n return {\r\n ...state,\r\n issueIdentifiers: action.issueIdentifiers\r\n } \r\n\r\n case OptionActions.RETRIEVE_RESTRICTED_ITEMS_SUCCESS:\r\n // console.log('OptionActions.RETRIEVE_RESTRICTED_ITEMS_SUCCESS');\r\n return {\r\n ...state,\r\n restrictedItems: action.restrictedItems\r\n } \r\n \r\n case OptionActions.RETRIEVE_US_STATES_SUCCESS:\r\n // console.log('OptionActions.RETRIEVE_US_STATES_SUCCESS'); \r\n return {\r\n ...state,\r\n usStates: action.usStates\r\n } \r\n \r\n case OptionActions.RETRIEVE_LETTER_MAILED_SUCCESS:\r\n // console.log('OptionActions.RETRIEVE_LETTER_MAILED_SUCCESS'); \r\n return {\r\n ...state,\r\n letterMailed: action.letterMailed\r\n } \r\n \r\n case OptionActions.RETRIEVE_LETTER_RECEIVD_SUCCESS:\r\n // console.log('OptionActions.RETRIEVE_LETTER_RECEIVD_SUCCESS'); \r\n return {\r\n ...state,\r\n letterReceivd: action.letterReceivd\r\n } \r\n \r\n case OptionActions.RETRIEVE_DANGEROUS_ITEMS_SUCCESS:\r\n // console.log('OptionActions.RETRIEVE_DANGEROUS_ITEMS_SUCCESS')\r\n return {\r\n ...state,\r\n dangerousItems: action.dangerousItems\r\n } \r\n\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default option\r\n","import * as AirportServices from '../services/airport'\r\n\r\nexport const RETRIEVE_DESTINATION_AIRPORTS_SUCCESS = 'RETRIEVE_DESTINATION_AIRPORTS_SUCCESS'\r\nexport const RETRIEVE_ORIGIN_AIRPORTS_SUCCESS = 'RETRIEVE_ORIGIN_AIRPORTS_SUCCESS'\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const retrieveDestinationAirports = () => (dispatch, getState) => {\r\n const state = getState()\r\n const airportDestinations = state.airport.airportDestinations\r\n\r\n if (airportDestinations && airportDestinations.length > 0) {\r\n return\r\n }\r\n\r\n return AirportServices.getDestinationAirports()\r\n .then((airports) => {\r\n const sortedAirports = airports.slice()\r\n sortedAirports.sort((a, b) => {\r\n return a.airportName > b.airportName\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_DESTINATION_AIRPORTS_SUCCESS,\r\n airportDestinations: sortedAirports\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\n\r\nexport const retrieveOriginAirports = () => (dispatch, getState) => {\r\n const state = getState()\r\n const airportOrigins = state.airport.airportOrigins\r\n\r\n if (airportOrigins && airportOrigins.length > 0) {\r\n return\r\n }\r\n\r\n return AirportServices.getOriginAirports()\r\n .then((airports) => {\r\n const sortedAirports = airports.slice()\r\n sortedAirports.sort((a, b) => {\r\n return a.airportName > b.airportName\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_ORIGIN_AIRPORTS_SUCCESS,\r\n airportOrigins: sortedAirports\r\n })\r\n })\r\n}\r\n","import { getResource } from '../utilities/service-utils'\r\n\r\nexport const getDestinationAirports = () => {\r\n return getResource('airport/destination')\r\n}\r\n\r\nexport const getOriginAirports = () => {\r\n return getResource('airport/origin')\r\n}","import * as AirportActions from '../actions/airport'\r\n\r\nconst initialState = {\r\n airportDestinations: [],\r\n airportOrigins: []\r\n}\r\n\r\nconst airport = (state = initialState, action) => {\r\n switch (action.type) {\r\n case AirportActions.RETRIEVE_DESTINATION_AIRPORTS_SUCCESS:\r\n return {\r\n ...state,\r\n airportDestinations: action.airportDestinations\r\n }\r\n case AirportActions.RETRIEVE_ORIGIN_AIRPORTS_SUCCESS:\r\n return {\r\n ...state,\r\n airportOrigins: action.airportOrigins\r\n } \r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default airport\r\n","import * as CountryServices from '../services/country'\r\n\r\nexport const RETRIEVE_ALL_COUNTRIES_SUCCESS = 'RETRIEVE_ALL_COUNTRIES_SUCCESS'\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const retrieveAllCountries = () => (dispatch, getState) => {\r\n const state = getState()\r\n const countries = state.country.countries\r\n\r\n if (countries && countries.length > 0) {\r\n return\r\n }\r\n\r\n return CountryServices.getAllCountries()\r\n .then((countries) => {\r\n const sortedCountries = countries.slice()\r\n sortedCountries.sort((a, b) => {\r\n return a.countryName > b.countryName\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_ALL_COUNTRIES_SUCCESS,\r\n countries: sortedCountries\r\n })\r\n })\r\n}\r\n","import { getResource } from '../utilities/service-utils'\r\n\r\nexport const getAllCountries = () => {\r\n return getResource('country')\r\n}\r\n","import * as CountryActions from '../actions/country'\r\n\r\nconst initialState = {\r\n countries: []\r\n}\r\n\r\nconst country = (state = initialState, action) => {\r\n switch (action.type) {\r\n case CountryActions.RETRIEVE_ALL_COUNTRIES_SUCCESS:\r\n return {\r\n ...state,\r\n countries: action.countries\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default country\r\n","import * as CarrierServices from '../services/carrier'\r\n\r\nexport const RETRIEVE_ALL_CARRIERS_SUCCESS = 'RETRIEVE_ALL_CARRIERS_SUCCESS'\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\n\r\nexport const retrieveAllCarriers = () => (dispatch, getState) => {\r\n const state = getState()\r\n const carriers = state.carrier.carriers\r\n\r\n if (carriers && carriers.length > 0) {\r\n return\r\n }\r\n\r\n return CarrierServices.getAllCarriers()\r\n .then((carriers) => {\r\n const sortedCarriers = carriers.slice()\r\n sortedCarriers.sort((a, b) => {\r\n return a.carrierName > b.carrierName\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_ALL_CARRIERS_SUCCESS,\r\n carriers: sortedCarriers\r\n })\r\n })\r\n}\r\n\r\nexport const RETRIEVE_PILOT_CARRIERS_SUCCESS = 'RETRIEVE_PILOT_CARRIERS_SUCCESS'\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const retrievePilotCarriers = () => (dispatch, getState) => {\r\n const state = getState()\r\n const carriers = state.carrier.carriers\r\n\r\n if (carriers && carriers.length > 0) {\r\n return\r\n }\r\n\r\n return CarrierServices.getPilotCarriers()\r\n .then((carriers) => {\r\n const sortedCarriers = carriers.slice()\r\n sortedCarriers.sort((a, b) => {\r\n return a.carrierName > b.carrierName\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_PILOT_CARRIERS_SUCCESS,\r\n carriers: sortedCarriers\r\n })\r\n })\r\n}\r\n","import { getResource } from '../utilities/service-utils'\r\n\r\nexport const getAllCarriers = () => {\r\n return getResource('carrier')\r\n}\r\n\r\nexport const getPilotCarriers = () => {\r\n return getResource('carrier/carrier-pilot')\r\n}\r\n","import * as CarrierActions from '../actions/carrier'\r\n\r\nconst initialState = {\r\n carriers: []\r\n}\r\n\r\nconst carrier = (state = initialState, action) => {\r\n switch (action.type) {\r\n case CarrierActions.RETRIEVE_ALL_CARRIERS_SUCCESS:\r\n return {\r\n ...state,\r\n carriers: action.carriers\r\n }\r\n case CarrierActions.RETRIEVE_PILOT_CARRIERS_SUCCESS:\r\n return {\r\n ...state,\r\n carriers: action.carriers\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default carrier\r\n","import * as LocationActions from '../actions/location'\r\n\r\nconst initialState = {\r\n locations: []\r\n}\r\n\r\nconst location = (state = initialState, action) => {\r\n switch (action.type) {\r\n case LocationActions.RETRIEVE_ALL_LOCATIONS_SUCCESS:\r\n return {\r\n ...state,\r\n locations: action.locations\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default location\r\n","import * as LocationServices from '../services/location'\r\n\r\nexport const RETRIEVE_ALL_LOCATIONS_SUCCESS = 'RETRIEVE_ALL_LOCATIONS_SUCCESS'\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const retrieveAllLocations = () => (dispatch, getState) => {\r\n const state = getState()\r\n const locations = state.location.locations\r\n\r\n if (locations && locations.length > 0) {\r\n return\r\n }\r\n\r\n return LocationServices.getAllLocations()\r\n .then((locations) => {\r\n const sortedLocations = locations.slice()\r\n sortedLocations.sort((a, b) => {\r\n return a.locationName > b.locationName\r\n })\r\n\r\n dispatch({\r\n type: RETRIEVE_ALL_LOCATIONS_SUCCESS,\r\n locations: sortedLocations\r\n })\r\n })\r\n}\r\n","export const CLOSE_ERROR_DIALOG = 'CLOSE_ERROR_DIALOG'\r\nexport const OPEN_ERROR_DIALOG = 'OPEN_ERROR_DIALOG'\r\n\r\n/**\r\n * Action Creator -- makes CLOSE_ERROR_DIALOG Action\r\n * @returns \r\n */\r\nexport const closeErrorDialog = () => {\r\n return {\r\n type: CLOSE_ERROR_DIALOG\r\n }\r\n}\r\n\r\n/**\r\n * Action Creator -- makes OPEN_ERROR_DIALOG Action\r\n * @param {*} param0 \r\n * @returns \r\n */\r\nexport const openErrorDialog = ({ errorText, title }) => {\r\n return {\r\n type: OPEN_ERROR_DIALOG,\r\n errorText,\r\n title\r\n }\r\n}\r\n","import * as ErrorActions from '../actions/error'\r\n\r\nconst initialState = {\r\n dialog: {\r\n open: false\r\n }\r\n}\r\n\r\n\r\n\r\n/**\r\nThe Reducer's job is to update application\r\nstate based on Actions that occurred.\r\n\r\nFunction to update state based on Error Actions\r\n * @param {*} state \r\n * @param {*} action \r\n * @returns \r\n */\r\nconst errors = (state = initialState, action) => {\r\n switch (action.type) {\r\n case ErrorActions.CLOSE_ERROR_DIALOG:\r\n return {\r\n ...state,\r\n dialog: {\r\n open: false\r\n }\r\n }\r\n case ErrorActions.OPEN_ERROR_DIALOG:\r\n return {\r\n ...state,\r\n dialog: {\r\n open: true,\r\n errorText: action.errorText,\r\n title: action.title\r\n }\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default errors\r\n","export const OPEN = 'OPEN'\r\nexport const CLOSE = 'CLOSE'\r\n\r\n/**\r\n * \r\n * @param {*} name \r\n * @returns \r\n */\r\nexport const open = (name) => {\r\n return {\r\n type: OPEN,\r\n name\r\n }\r\n}\r\n\r\n/**\r\n * \r\n * @param {*} name \r\n * @returns \r\n */\r\nexport const close = (name) => {\r\n return {\r\n type: CLOSE,\r\n name\r\n }\r\n}\r\n","import * as SnackbarActions from '../actions/snackbar'\r\n\r\nconst initialState = {\r\n createIrregularity: false,\r\n reportDetail: false\r\n}\r\n\r\nconst snackbars = (state = initialState, action) => {\r\n switch (action.type) {\r\n case SnackbarActions.OPEN:\r\n return {\r\n ...state,\r\n [action.name]: true\r\n }\r\n case SnackbarActions.CLOSE:\r\n return {\r\n ...state,\r\n [action.name]: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default snackbars\r\n","import * as Roles from '../constants/roles'\r\nimport * as Incidents from '../constants/incidents'\r\n\r\nconst getAdminCriteria = (state, filter) => {\r\n const selectedTab = state.tabs.incidents\r\n // console.log('[selectors/incident] getAdminCriteria -- selectedTab=',selectedTab)\r\n let status = null\r\n if (selectedTab === 0) {\r\n status = Incidents.DRAFT\r\n } else if (selectedTab === 1) {\r\n status = Incidents.INPROCESS\r\n }\r\n else if (selectedTab === 2) {\r\n status = Incidents.CLOSED\r\n }\r\n else if (selectedTab === 3) {\r\n status = ''\r\n }\r\n\r\n return {\r\n status,\r\n ...filter\r\n }\r\n}\r\n\r\nexport const getIncidentCriteria = (state, filter) => {\r\n const role = state.user.role\r\n\r\n if (role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.DANGEROUS_GOODS_ADMIN_READONLY || role === Roles.CARRIER || role === Roles.AGENT || role === Roles.CUSTOMER_SERVICE_AGENT) {\r\n return getAdminCriteria(state, filter)\r\n } \r\n \r\n}\r\n","export const DRAFT='DRAFT'\r\nexport const INPROCESS='INPROCESS'\r\nexport const CLOSED='CLOSED'","import { getIncidentCriteria } from '../selectors/incident'\r\nimport { fetchExcelFile } from '../utilities/service-utils'\r\nimport FileSaver from 'file-saver'\r\n\r\nexport const CHANGE_FILTER = 'TABLE_CHANGE_FILTER'\r\nexport const CHANGE_PAGE = 'TABLE_CHANGE_PAGE'\r\nexport const CHANGE_ROWS_PER_PAGE = 'TABLE_CHANGE_ROWS_PER_PAGE'\r\nexport const CLEAR_ROWS = 'TABLE_CLEAR_ROWS'\r\nexport const RETRIEVE_ROWS_START = 'RETRIEVE_ROWS_START'\r\nexport const RETRIEVE_ROWS_SUCCESS = 'RETRIEVE_ROWS_SUCCESS'\r\nexport const RETRIEVE_ROWS_ERROR = 'RETRIEVE_ROWS_ERROR'\r\nexport const SORT = 'TABLE_SORT'\r\nexport const TOGGLE_FILTER = 'TABLE_TOGGLE_FILTER'\r\n\r\n/**\r\n * Clear all table rows\r\n * @param tableId, Ex. \"incidentsTable\" \r\n * @returns \r\n */\r\nexport const clearRows = (tableId) => {\r\n // console.log('table.clearRows: tableId=',tableId); \r\n return {\r\n type: CLEAR_ROWS,\r\n tableId\r\n }\r\n}\r\n\r\n\r\n/**\r\n * \r\n * @param tableId , Ex. \"incidentsTable\" \r\n * @returns \r\n */\r\n export const exportHazmatToExcel = (tableId) => (dispatch, getState) => {\r\n // console.log(\"actions/table -- exportHazmatToExcel\", \"tableId = \", tableId)\r\n const state = getState()\r\n // console.log(\"actions/table -- exportHazmatToExcel\", \"state=\", state)\r\n const tabs = state.tabs;\r\n // console.log(\"actions/table -- exportHazmatToExcel\", \"tabs=\", tabs)\r\n const tabId = tabs.incidents;\r\n // console.log(\"actions/table -- exportHazmatToExcel\", \"tabId=\", tabId)\r\n const table = state.table[tableId]\r\n // console.log(\"actions/table -- exportHazmatToExcel\", \"table=\", table)\r\n \r\n var criteria = getIncidentCriteria(state, table.filter)\r\n // console.log(\"actions/table -- exportHazmatToExcel\", \"criteria=\",criteria)\r\n //dispatch({ type: RETRIEVE_ROWS_START, tableId })\r\n\r\n const status=criteria.status;\r\n // console.log(\"actions/table -- exportHazmatToExcel\", \"status=\",status)\r\n\r\n const orderBy = table.orderBy ? table.orderBy : 'hmKey'\r\n const sortDirection = table.sortDirection ? table.sortDirection : 'desc'\r\n\r\n\r\n\r\n criteria = {\r\n orderBy,\r\n sortDirection,\r\n ...table.filter};\r\n // console.log(\"actions/table -- exportHazmatToExcel\", \"criteria=\",criteria)\r\n\r\n if (null != status) {\r\n criteria.status=status;\r\n }\r\n // console.log(\"actions/table -- exportHazmatToExcel\", \"criteria=\",criteria) \r\n\r\n // console.log(\"actions/table -- exportHazmatToExcel\", \"criteria=\", criteria)\r\n return fetchExcelFile('hazmat/exportHazmatsToExcel', criteria)\r\n .then((excelFile) => {\r\n FileSaver.saveAs(excelFile, 'HazardousMaterial.xls')\r\n })\r\n}\r\n\r\n/**\r\n * Load up the table rows\r\n * @param {*} tableId, Ex. \"incidentsTable\" \r\n * @param {*} searchService \r\n * @param {*} page, Ex. \"0\" \r\n * @param {*} isRefresh, Ex. \"undefined\" \r\n * @returns \r\n */\r\nexport const loadPage = (tableId, searchService, page, isRefresh) => (dispatch, getState) => {\r\n // console.log('table.loadPage: tableId=',tableId,' page=',page,' isRefresh=',isRefresh);\r\n const state = getState()\r\n // console.log('table.loadPage: state=',state);\r\n const table = state.table[tableId]\r\n // console.log('table.loadPage: table=',table);\r\n const rows = table.rows\r\n const rowsPerPage = table.rowsPerPage\r\n\r\n const start = rowsPerPage * page\r\n const count = rowsPerPage\r\n\r\n if (!isRefresh && rows[start]) {\r\n // Don't try to load again if data is already loaded\r\n return new Promise((resolve) => resolve())\r\n }\r\n\r\n const orderBy = table.orderBy ? table.orderBy : 'hmKey'\r\n const sortDirection = table.sortDirection ? table.sortDirection : 'desc'\r\n\r\n const criteria = {\r\n orderBy,\r\n sortDirection,\r\n ...table.filter\r\n }\r\n\r\n dispatch({ type: RETRIEVE_ROWS_START, tableId })\r\n\r\n return searchService(criteria, start, count)\r\n .then((response) => {\r\n if (!response) {\r\n return\r\n }\r\n\r\n const newRows = rows.slice()\r\n const rowCount = response.rowCount || 0\r\n for (let i = 0; i < count && i < response.rows.length; i++) {\r\n newRows[i + start] = response.rows[i]\r\n }\r\n\r\n dispatch({\r\n type: RETRIEVE_ROWS_SUCCESS,\r\n tableId,\r\n rows: newRows,\r\n rowCount\r\n })\r\n })\r\n .catch((e) => {\r\n dispatch({\r\n type: RETRIEVE_ROWS_ERROR,\r\n tableId,\r\n errorText: e\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * Change the filter criteria\r\n * @param {*} tableId, Ex. \"incidentsTable\" \r\n * @param {*} columnName, Ex \"airlineReportingIncident \" \r\n * @param {*} value, Ex. \"BA\" \r\n * @param {*} searchService \r\n * @returns \r\n */\r\nexport const changeFilter = (tableId, columnName, value, searchService) => {\r\n // console.log('table.changeFilter: tableId=',tableId,' columnName=',columnName,' value=',value); \r\n return {\r\n type: CHANGE_FILTER,\r\n tableId,\r\n columnName,\r\n value\r\n }\r\n}\r\n\r\n/**\r\n * Change which page of the results to display\r\n * @param {*} tableId, Ex. \"incidentsTable\" \r\n * @param {*} page, Ex. \"1\" \r\n * @param {*} searchService \r\n * @returns \r\n */\r\nexport const changePage = (tableId, page, searchService) => (dispatch, getState) => {\r\n // console.log('table.changePage: tableId=',tableId,' page=',page); \r\n dispatch(loadPage(tableId, searchService, page))\r\n dispatch({\r\n type: CHANGE_PAGE,\r\n tableId,\r\n page\r\n })\r\n}\r\n\r\n/**\r\n * Change the number of table rows displayed per page\r\n * @param {*} tableId, Ex. \"incidentsTable\" \r\n * @param {*} rowsPerPage, Ex. 10, 5, 25\r\n * @param {*} searchService \r\n * @returns \r\n */\r\nexport const changeRowsPerPage = (tableId, rowsPerPage, searchService) => (dispatch, getState) => {\r\n // console.log('table.changeRowsPerPage: tableId=',tableId,' rowsPerPage=',rowsPerPage); \r\n dispatch(clearRows(tableId))\r\n\r\n dispatch({\r\n type: CHANGE_ROWS_PER_PAGE,\r\n tableId,\r\n rowsPerPage\r\n })\r\n\r\n dispatch(changePage(tableId, 0, searchService))\r\n}\r\n\r\n/**\r\n * \r\n * @param {*} tableId, Ex. \"incidentsTable\" \r\n * @param {*} searchService \r\n * @returns \r\n */\r\nexport const refreshPage = (tableId, searchService) => (dispatch, getState) => {\r\n // console.log('table.refreshPage: tableId=',tableId); \r\n const state = getState()\r\n const table = state.table[tableId]\r\n const page = table.page\r\n\r\n dispatch(clearRows(tableId))\r\n return dispatch(loadPage(tableId, searchService, page, true))\r\n}\r\n\r\n/**\r\n * Change table sortation\r\n * @param {*} tableId, Ex. \"incidentsTable\" \r\n * @param {*} columnName \r\n * @param {*} searchService \r\n * @returns \r\n */\r\nexport const sort = (tableId, columnName, searchService) => (dispatch, getState) => {\r\n // console.log('table.sort: tableId=',tableId, ' columnName',columnName); \r\n\r\n const state = getState()\r\n const table = state.table[tableId]\r\n\r\n let orderBy = columnName\r\n let sortDirection = 'asc'\r\n\r\n if (table.orderBy === columnName && table.sortDirection === 'asc') {\r\n sortDirection = 'desc'\r\n } else if (table.orderBy === columnName && table.sortDirection === 'desc') {\r\n orderBy = ''\r\n sortDirection = false\r\n }\r\n\r\n dispatch(clearRows(tableId))\r\n\r\n dispatch({\r\n type: SORT,\r\n tableId,\r\n orderBy,\r\n sortDirection\r\n })\r\n\r\n dispatch(changePage(tableId, 0, searchService))\r\n}\r\n\r\n/**\r\n * Show/hide the Filter criteria entry\r\n * @param tableId , Ex. \"incidentsTable\" \r\n * @returns \r\n */\r\nexport const toggleFilter = (tableId) => {\r\n // console.log('table.toggleFilter: tableId=',tableId); \r\n return {\r\n type: TOGGLE_FILTER,\r\n tableId\r\n }\r\n}\r\n\r\n\r\n","import * as TableActions from '../actions/table'\r\n\r\nconst initialState = {\r\n incidentsTable: {\r\n errorText: '',\r\n filter: {},\r\n page: 0,\r\n rowCount: 0,\r\n rows: [],\r\n rowsPerPage: 10,\r\n loading: false,\r\n orderBy: '',\r\n selected: [],\r\n showFilter: false,\r\n sortDirection: false\r\n }\r\n}\r\n\r\nconst addValues = (state, tableId, values) => {\r\n const table = state[tableId]\r\n\r\n return {\r\n ...state,\r\n [tableId]: {\r\n ...table,\r\n ...values\r\n }\r\n }\r\n}\r\n\r\nconst table = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TableActions.CHANGE_FILTER:\r\n return addValues(state, action.tableId, {\r\n filter: {\r\n ...state[action.tableId].filter,\r\n [action.columnName]: action.value\r\n },\r\n selected: []\r\n })\r\n case TableActions.CHANGE_PAGE:\r\n return addValues(state, action.tableId, { page: action.page })\r\n case TableActions.CHANGE_ROWS_PER_PAGE:\r\n return addValues(state, action.tableId, { rowsPerPage: action.rowsPerPage })\r\n case TableActions.CLEAR_ROWS:\r\n return addValues(state, action.tableId, {\r\n rows: []\r\n })\r\n case TableActions.RETRIEVE_ROWS_START:\r\n return addValues(state, action.tableId, { loading: true })\r\n case TableActions.RETRIEVE_ROWS_SUCCESS:\r\n return addValues(state, action.tableId, {\r\n errorText: '',\r\n loading: false,\r\n rowCount: action.rowCount,\r\n rows: action.rows\r\n })\r\n case TableActions.RETRIEVE_ROWS_ERROR:\r\n return addValues(state, action.tableId, {\r\n errorText: action.errorText,\r\n loading: false\r\n })\r\n case TableActions.SORT:\r\n return addValues(state, action.tableId, {\r\n orderBy: action.orderBy,\r\n sortDirection: action.sortDirection\r\n })\r\n case TableActions.TOGGLE_FILTER:\r\n return addValues(state, action.tableId, { showFilter: !state[action.tableId].showFilter })\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default table\r\n","export const CHANGE = 'TAB_CHANGE'\r\n\r\n/**\r\n * \r\n * @param {*} name \r\n * @param {*} tabIndex \r\n * @returns \r\n */\r\nexport const change = (name, tabIndex) => {\r\n return {\r\n type: CHANGE,\r\n name,\r\n tabIndex\r\n }\r\n}\r\n","import * as TabActions from '../actions/tab'\r\n\r\nconst initialState = {\r\n incidents: 0\r\n}\r\n\r\nconst tabs = (state = initialState, action) => {\r\n switch (action.type) {\r\n case TabActions.CHANGE:\r\n return {\r\n ...state,\r\n [action.name]: action.tabIndex\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default tabs\r\n","import { getPage, getResource, postResource, postFile } from '../utilities/service-utils'\r\n\r\n\r\nexport const getIncident = (incidentId) => {\r\n return getResource(`hazmat/${incidentId}`)\r\n}\r\n\r\nexport const getIncidents = (criteria) => {\r\n // console.log('[services.incident] - getIncidents() criteria = ',criteria) \r\n return getResource('hazmat', { criteria })\r\n}\r\n\r\nexport const fetchIncidentImages = (hmkey) => {\r\n return getResource(`hazmat/fetchImages/${hmkey}`)\r\n}\r\n\r\nexport const fetchWorkNotes = (hmkey) => {\r\n return getResource(`hazmat/fetchWorkNotes/${hmkey}`)\r\n}\r\n\r\nexport const getIncidentsCount = (criteria) => {\r\n return getResource('hazmat/count', { criteria })\r\n}\r\n\r\nexport const getIncidentsCountPilot = (criteria) => {\r\n return getResource('hazmat/pilotcount', { criteria })\r\n}\r\n\r\nexport const getIncidentsPage = (criteria, start, count) => {\r\n return getPage(\r\n getIncidentsCount(criteria),\r\n getIncidents({ ...criteria, start, count })\r\n )\r\n}\r\nexport const insertBase64Image = (hmkey, b64, userId) =>{\r\n return postResource(`hazmat/uploadImageBase64/${hmkey}`, b64, userId)\r\n}\r\nexport const insertIncidentImage = (incidentId, file) => {\r\n return postFile(`hazmat/uploadIncidentImage/${incidentId}`, file)\r\n}\r\n\r\nexport const insertWorkNote = (hmkey, worknote, userId) => {\r\n return postResource(`hazmat/insertWorkNote/${hmkey}`, worknote, userId)\r\n}\r\n\r\nexport const saveDraft = (incident, userId) => {\r\n console.log('[services/incident] saveDraft')\r\n \r\n return postResource(`hazmat/createDraft/${userId}`, incident, userId)\r\n}\r\n\r\nexport const createIncident = (incident, userId) => {\r\n // console.log('[services/incident] createIncident' )\r\n \r\n return postResource(`hazmat/create/${userId}`, incident, userId)\r\n}\r\n\r\nexport const deleteIncident = (incident, userId) => {\r\n return postResource(`hazmat/delete/${userId}`, incident, userId)\r\n}\r\n\r\nexport const updateIncident = (incident, userId) => {\r\n return postResource(`hazmat/update/${userId}`, incident, userId)\r\n}\r\n\r\n","import { fetchWordFile } from '../utilities/service-utils'\r\nimport * as Roles from '../constants/roles'\r\nimport * as IncidentServices from '../services/incident'\r\nimport * as Incidents from '../constants/incidents'\r\n\r\nimport * as ErrorActions from './error'\r\nimport * as SnackbarActions from './snackbar'\r\nimport config from '../config'\r\n\r\nexport const SELECT_INCIDENT = 'SELECT_INCIDENT'\r\nexport const SAVE_INCIDENT_SUCCESS = 'SAVE_INCIDENT_SUCCESS'\r\nexport const SELECT_INCIDENT_IMAGES = 'SELECT_INCIDENT_IMAGES'\r\nexport const SELECT_INCIDENT_WORKNOTES = 'SELECT_INCIDENT_WORKNOTES'\r\nexport const ADD_STAGE_IMAGE = 'ADD_STAGE_IMAGE'\r\nexport const DELETE_STAGED_IMAGES = 'DELETE_STAGED_IMAGES'\r\nexport const UPDATE_WORK_NOTE = 'UPDATE_WORK_NOTE'\r\nexport const FIELD_CHANGE = 'FIELD_CHANGE'\r\nexport const DELETE_CURRENT_NOTE = 'DELETE_CURRENT_NOTE'\r\nexport const MARK_COMPLETE = 'MARK_COMPLETE'\r\nexport const CLEAR_SELECTED_IMAGES = 'CLEAR_SELECTED_IMAGES'\r\n\r\n/**\r\n * \r\n * @param {*} name \r\n * @param {*} value \r\n * @returns \r\n */\r\nexport const handleFieldChange = (name, value) => {\r\n return {\r\n type: FIELD_CHANGE,\r\n name,\r\n value\r\n }\r\n}\r\n\r\n/**\r\n * \r\n * @param {*} incident \r\n * @returns \r\n */\r\nexport const selectIncident = (incident) => {\r\n // console.log('[actions/incident] selectIncident')\r\n return {\r\n type: SELECT_INCIDENT,\r\n incident\r\n }\r\n}\r\n\r\n/**\r\n * \r\n * @param {*} hmkey \r\n * @returns \r\n */\r\nexport const retrieveItemImages = (hmkey) => (dispatch) => {\r\n return IncidentServices.fetchIncidentImages(hmkey)\r\n .then(res => {\r\n dispatch({\r\n type: SELECT_INCIDENT_IMAGES,\r\n selImages: res\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @param {*} hmkey \r\n * @returns \r\n */\r\nexport const retrieveWorkNotes = (hmkey) => (dispatch) => {\r\n return IncidentServices.fetchWorkNotes(hmkey)\r\n .then(res => {\r\n dispatch({\r\n type: SELECT_INCIDENT_WORKNOTES,\r\n selWorkNotes: res\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @param {*} hmkey \r\n * @param {*} file \r\n * @returns \r\n */\r\nexport const uploadImage = (hmkey, file) => async (dispatch) =>{\r\n return IncidentServices.insertIncidentImage(hmkey, file)\r\n .then((res =>{\r\n IncidentServices.fetchIncidentImages(hmkey)\r\n .then((res =>{\r\n dispatch({\r\n type: SELECT_INCIDENT_IMAGES,\r\n selImages: res\r\n })\r\n }))\r\n }))\r\n \r\n}\r\n\r\n/**\r\n * \r\n * @param {*} file \r\n * @returns \r\n */\r\nexport const stageImage = (file) => async (dispatch) => {\r\n dispatch({\r\n type: ADD_STAGE_IMAGE,\r\n stageFile: file\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const deleteStagedImages = () => {\r\n return {\r\n type: DELETE_STAGED_IMAGES\r\n }\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const clearSelectedImages = () => {\r\n return {\r\n type: CLEAR_SELECTED_IMAGES\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Action bound to redux form TrackerForm\r\n * @param {*} values \r\n * @returns \r\n */\r\nexport const trackerFormSubmit = (values) => (dispatch, getState) => {\r\n // console.log('[actions/incident] trackerFormSubmit')\r\n const state = getState()\r\n // console.log('[actions/incident] trackerFormSubmit', values)\r\n return IncidentServices.createIncident(values, state.user.userId)\r\n .then((res) => {\r\n let wn = {'hmKey': res.hmKey,\r\n 'updtUserId': state.user.userId,\r\n 'updtDate': new Date(),\r\n 'workNote': state.incident.current_note}\r\n IncidentServices.insertWorkNote(res.hmKey, wn, state.user.userId)\r\n // console.log('RES ' + res.hmKey)\r\n return res\r\n })\r\n .then((res) => {\r\n let imgs = state.incident.staged_images\r\n imgs.forEach((img)=>{\r\n return fetch(`${config.ENDPOINT}/hazmat/uploadImageBase64/${res.hmKey}`, {\r\n headers: {\r\n Authorization: state.user.authToken,\r\n 'cache-control': 'no-cache',\r\n pragma: 'no-cache',\r\n 'Content-Type': 'application/json'\r\n },\r\n method: 'POST',\r\n body: JSON.stringify({\r\n image: img.imageFile.dataUrl\r\n })\r\n })\r\n \r\n }) \r\n })\r\n .then(() => {\r\n return {\r\n type: DELETE_STAGED_IMAGES\r\n }\r\n })\r\n .then(() => {\r\n dispatch(SnackbarActions.open('trackerForm'))\r\n })\r\n .catch((e) => {\r\n const errObj=JSON.parse(e);\r\n // console.log('received error message:', errObj);\r\n dispatch(ErrorActions.openErrorDialog({ errorText: errObj.message, title: 'Could not create incident:tfs:'+e.message }))\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const submitDraft = () => (dispatch, getState) => {\r\n // console.log('[actions/incident] submitDraft ')\r\n const state = getState()\r\n // console.log('[actions/incident] submitDraft', state.form.TrackerForm.values)\r\n \r\n return IncidentServices.saveDraft(state.form.TrackerForm.values, state.user.userId)\r\n .then((res) => {\r\n if(state.incident.current_note != null && state.incident.current_note !== ''){\r\n let wn = {'hmKey': res.hmKey,\r\n 'updtUserId': state.user.userId,\r\n 'updtDate': new Date(),\r\n 'workNote': state.incident.current_note}\r\n IncidentServices.insertWorkNote(res.hmKey, wn, state.user.userId)\r\n // console.log('RES ' + res.hmKey)\r\n }\r\n return res\r\n }) \r\n .then((res) => {\r\n let imgs = state.incident.staged_images\r\n imgs.forEach((img)=>{\r\n \r\n return fetch(`${config.ENDPOINT}/hazmat/uploadImageBase64/${res.hmKey}`, {\r\n headers: {\r\n Authorization: state.user.authToken,\r\n 'cache-control': 'no-cache',\r\n pragma: 'no-cache',\r\n 'Content-Type': 'application/json'\r\n },\r\n method: 'POST',\r\n body: JSON.stringify({\r\n image: img.imageFile.dataUrl\r\n })\r\n })\r\n }) \r\n })\r\n .then(() =>{\r\n return {\r\n type: DELETE_STAGED_IMAGES\r\n }\r\n })\r\n .then(() => {\r\n dispatch(SnackbarActions.open('trackerForm'))\r\n }) \r\n .catch((e) => {\r\n const errObj=JSON.parse(e);\r\n // console.log('received error message:', errObj);\r\n dispatch(ErrorActions.openErrorDialog({ errorText: errObj.message, title: 'Could not create incident: ' }))\r\n })\r\n}\r\n\r\n/**\r\n * \r\n * @returns \r\n */\r\n export const submitEditDraft = () => (dispatch, getState) => {\r\n // console.log('[actions/incident] submitEditDraft ') \r\n const state = getState()\r\n\r\n return IncidentServices.updateIncident(state.incident.selected_incident, state.user.userId)\r\n .then((res) => {\r\n if(state.incident.current_note){\r\n let wn = {'hmKey': res.hmKey,\r\n 'updtUserId': state.user.userId,\r\n 'updtDate': new Date(),\r\n 'workNote': state.incident.current_note} \r\n IncidentServices.insertWorkNote(res.hmKey, wn, state.user.userId)\r\n }\r\n return res\r\n })\r\n .then(()=>{\r\n dispatch({\r\n type: DELETE_CURRENT_NOTE \r\n })\r\n }) \r\n .then(() => {\r\n return 'success'\r\n }) \r\n .catch((e) => {\r\n const errObj=JSON.parse(e);\r\n // console.log('received error message:', errObj);\r\n dispatch(ErrorActions.openErrorDialog({ errorText: errObj.message, title: 'Could not create incident:' }))\r\n })\r\n}\r\n\r\n export const submitEditComplete = () => (dispatch, getState) => {\r\n // console.log('[actions/incident] submitEditComplete ')\r\n const state = getState() \r\n return IncidentServices.updateIncident(state.incident.selected_incident, state.user.userId)\r\n .then((res) => {\r\n if(state.incident.current_note){\r\n let wn = {'hmKey': res.hmKey,\r\n 'updtUserId': state.user.userId,\r\n 'updtDate': new Date(),\r\n 'workNote': state.incident.current_note} \r\n IncidentServices.insertWorkNote(res.hmKey, wn, state.user.userId)\r\n }\r\n return res\r\n })\r\n .then(()=>{\r\n dispatch({\r\n type: DELETE_CURRENT_NOTE \r\n })\r\n }) \r\n .then(() => {\r\n return {\r\n type: MARK_COMPLETE\r\n }\r\n }) \r\n .catch((e) => {\r\n const errObj=JSON.stringify(e);\r\n // console.log('received error message:', errObj);\r\n dispatch(ErrorActions.openErrorDialog({ errorText: errObj.message, title: 'Could not create incident:' }))\r\n })\r\n } \r\n\r\n /**\r\n * \r\n * @returns \r\n */\r\nexport const deleteIncident = () => ( dispatch, getState)=>{\r\n // console.log('[actions/incident] deleteIncident ')\r\n const state = getState()\r\n if (state.user.role === Roles.DANGEROUS_GOODS_ADMIN || state.user.role === Roles.CARRIER || state.user.role === Roles.AGENT) {\r\n return IncidentServices.deleteIncident(state.incident.selected_incident, state.user.userId)\r\n }\r\n else{\r\n return 'unauthorized'\r\n }\r\n}\r\n \r\n/**\r\n * \r\n * @returns \r\n */\r\nexport const closeIncident = () => (dispatch, getState)=> {\r\n // console.log('[actions/incident] closeIncident ')\r\n const state = getState()\r\n state.incident.selected_incident.status = Incidents.CLOSED\r\n if(state.user.role === Roles.DANGEROUS_GOODS_ADMIN){\r\n return IncidentServices.updateIncident(state.incident.selected_incident, state.user.userId) \r\n }\r\n else{\r\n //Carrier should not be able to Close Incident. Raise an exception if they try.\r\n return 'unauthorized'\r\n }\r\n}\r\n\r\n/**\r\n * \r\n * @param {*} worknote \r\n * @returns \r\n */\r\nexport const updateWorkNote = (worknote) => (dispatch) => {\r\n dispatch({\r\n type: UPDATE_WORK_NOTE,\r\n note: worknote\r\n })\r\n}\r\n\r\n//TODO: remove me from the Action\r\nexport const generateWord = (hmKey) => (dispatch) => {\r\n // console.log('[actions/incident] generateWord hmKey=',hmKey)\r\n const wordFile = fetchWordFile('hazmat/generateLetter',hmKey)\r\n // console.log('[actions/incident] generateWord -- got: ', wordFile)\r\n return wordFile\r\n}\r\n","import * as IncidentActions from '../actions/incident'\r\n\r\nimport * as Incidents from '../constants/incidents'\r\n\r\nconst initialState = {\r\n}\r\n\r\nconst incident = (state = initialState, action) => {\r\n // console.log('[reducers/incident] -- action.type = ',action.type)\r\n switch (action.type) {\r\n case IncidentActions.FIELD_CHANGE:\r\n return {\r\n ...state,\r\n selected_incident: {...state.selected_incident, [action.name]: action.value}\r\n }\r\n case IncidentActions.MARK_COMPLETE:\r\n return {\r\n ...state,\r\n selected_incident: {...state.selected_incident, status: Incidents.INPROCESS}\r\n }\r\n case IncidentActions.SELECT_INCIDENT:\r\n return {\r\n ...state,\r\n selected_incident: action.incident\r\n }\r\n case IncidentActions.SELECT_INCIDENT_IMAGES:\r\n return {\r\n ...state,\r\n selected_incident_images: action.selImages\r\n }\r\n case IncidentActions.DELETE_STAGED_IMAGES:\r\n return {\r\n ...state,\r\n staged_images: []\r\n }\r\n case IncidentActions.CLEAR_SELECTED_IMAGES:\r\n return {\r\n ...state,\r\n selected_incident_images: []\r\n }\r\n case IncidentActions.ADD_STAGE_IMAGE:\r\n let newStaged = []\r\n if ((state.staged_images !== '') && (state.staged_images !== null)) {\r\n newStaged = state.staged_images.slice(0)\r\n }\r\n newStaged.push({imageFile: action.stageFile})\r\n return {\r\n ...state,\r\n staged_images: newStaged\r\n }\r\n case IncidentActions.SELECT_INCIDENT_WORKNOTES:\r\n return {\r\n ...state,\r\n current_worknotes: action.selWorkNotes\r\n }\r\n case IncidentActions.UPDATE_WORK_NOTE:\r\n return {\r\n ...state,\r\n current_note: action.note\r\n }\r\n case IncidentActions.DELETE_CURRENT_NOTE:\r\n return {\r\n ...state,\r\n current_note: null\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default incident\r\n","import * as HmLogServices from '../services/hmlog'\r\nexport const SELECTED_LOGS = 'SELECTED_LOGS'\r\n\r\n/**\r\n * \r\n * @param {*} hmkey \r\n * @returns \r\n */\r\nexport const fetchHmLogs = (hmkey) => (dispatch) => {\r\n return HmLogServices.fetchLogs(hmkey)\r\n .then(res => {\r\n dispatch({\r\n type: SELECTED_LOGS,\r\n selLogs: res\r\n })\r\n })\r\n }\r\n ","import { getResource } from '../utilities/service-utils'\r\n\r\nexport const fetchLogs = (hmkey) => {\r\n return getResource(`hmlog/fetchLogs/${hmkey}`)\r\n }\r\n ","import * as HmLogActions from '../actions/hmlog'\r\n\r\nconst initialState = {\r\n selected_logs: []\r\n}\r\n\r\nconst hmlog = (state = initialState, action) => {\r\n switch (action.type) {\r\n case HmLogActions.SELECTED_LOGS:\r\n return {\r\n ...state,\r\n selected_logs: action.selLogs\r\n }\r\n default:\r\n return state\r\n } \r\n\r\n}\r\n\r\nexport default hmlog\r\n\r\n\r\n","import { postResource, postInsecureResource, getResource } from '../utilities/service-utils'\t\r\n\r\n\r\n// export const getAllPersons = () => {\r\n// // console.log('[services.person] - getAllPersons') \r\n// return getResource('dguser')\r\n// }\r\n\r\n// export const getAllApprovedPersons = () => {\r\n// // console.log('[services.person] - getAllApprovedPersons') \r\n// return getResource('dguser/approved')\r\n// }\r\n\r\nexport const getAllPendingPersons = () => {\r\n // console.log('[services.person] - getAllPendingPersons') \r\n return getResource('dguser/findAllPending')\r\n}\r\n\r\n//NOT USED\r\n// export const getAllDeniedPersons = () => {\r\n// // console.log('[services.person] - getAllDeniedPersons') \r\n// return getResource('dguser/denied')\r\n// }\r\n\r\n//NOT USED\r\n//by User Name\r\n// export const getOnePersonByName = (name) => {\r\n// // console.log('[services.person] - getOnePersonByName'); \r\n// // console.log('name=',name);\r\n// return getResource(`dguser/dguser/${name}`); \r\n// }\r\n\r\n//by Database Key\r\nexport const getOnePersonById = (id) => {\r\n // console.log('[services.person] - getOnePersonById') \r\n // console.log('id=',id); \r\n return getResource(`dguser/findByUserKeyVal/${id}`) \r\n}\r\n\r\nexport const createPerson = (person, userId) => {\t\r\n // console.log('[services/person] createPerson' )\t\r\n return postInsecureResource('dguser/create', person, userId)\t\r\n}\r\n\r\nexport const approvePerson = (userId,adminId) => {\t\r\n // console.log('[services/person] approvePerson:'+userId+\" by:\"+adminId )\t\r\n return postResource('dguser/approve/'+ userId,null,adminId)\t\r\n}\r\n\r\nexport const denyPerson = (userId,reason, adminId) => {\t\r\n // console.log('[services/person] denyPerson:'+userId+\" by:\"+adminId +\" reason:\"+reason)\t\r\n return postResource('dguser/deny/'+userId,reason,adminId)\t\r\n}","import * as PersonServices from '../services/person'\t\r\nimport * as ErrorActions from './error'\t\r\nimport * as SnackbarActions from './snackbar'\t\r\n\r\nexport const FIELD_CHANGE = 'FIELD_CHANGE'\r\n/**\r\n * \r\n * @param {*} name \r\n * @param {*} value \r\n * @returns \r\n */\r\nexport const handleFieldChange = (name, value) => {\r\n return {\r\n type: FIELD_CHANGE,\r\n name,\r\n value\r\n }\r\n}\r\n\r\nexport const SELECT_PERSON = 'SELECT_PERSON'\r\n/**\r\n * \r\n * @param {*} person \r\n * @returns \r\n */\r\nexport const selectPerson = (person) => {\r\n return {\r\n type: SELECT_PERSON,\r\n person\r\n }\r\n}\r\n\r\nexport const DENY_PERSON_SUCCESS = 'DENY_PERSON_SUCCESS'\t\r\n// Action bound to redux form ViewPerson\t\r\nexport const denyPerson = (...values) => (dispatch, getState) => {\t\r\n // console.log('[actions/person/PersonActions] denyPerson values = ', ...values)\t\r\n const state = getState()\r\n // console.log('[actions/person/PersonActions] denyPerson state = ', state)\t \r\n // console.log('[actions/person/PersonActions] denyPerson state.user = ', state.user)\t \r\n // console.log('[actions/person/PersonActions] denyPerson state.user.userId = ', state.user.userId) \r\n return PersonServices.denyPerson(...values,state.user.userId)\t\r\n .then(() => {\t\r\n dispatch(SnackbarActions.open('denyPerson'))\t\r\n })\t\r\n .then(() => {\r\n dispatch({\r\n type: DENY_PERSON_SUCCESS\r\n })\r\n })\t \r\n .catch((e) => {\t\r\n dispatch(ErrorActions.openErrorDialog({ errorText: e, title: 'Could not deny person' }))\t\r\n })\t\r\n}\r\n\r\nexport const APPROVE_PERSON_SUCCESS = 'APPROVE_PERSON_SUCCESS'\t\r\n// Action bound to redux form ViewPerson\t\r\nexport const approvePerson = (values) => (dispatch, getState) => {\t\r\n // console.log('[actions/person/PersonActions] approvePerson values = ', values)\t\r\n const state = getState()\r\n // console.log('[actions/person/PersonActions] approvePerson state = ', state)\t \r\n // console.log('[actions/person/PersonActions] approvePerson state.user = ', state.user)\t \r\n // console.log('[actions/person/PersonActions] approvePerson state.user.userId = ', state.user.userId)\t\r\n return PersonServices.approvePerson(values,state.user.userId)\t\r\n .then(() => {\t\r\n dispatch(SnackbarActions.open('approvePerson'))\t\r\n })\r\n .then(() => {\r\n dispatch({\r\n type: APPROVE_PERSON_SUCCESS\r\n })\r\n })\t\t\r\n .catch((e) => {\t\r\n dispatch(ErrorActions.openErrorDialog({ errorText: e, title: 'Could not approve person' }))\t\r\n })\t\r\n}\r\n\r\nexport const SAVE_PERSON_SUCCESS = 'SAVE_PERSON_SUCCESS'\t\r\n// Action bound to redux form CreatePerson\t\r\nexport const createPersonSubmit = (values) => (dispatch, getState) => {\t\r\n // console.log('[actions/person/PersonActions] createPersonSubmit values = ', values)\t\r\n //const state = getState()\r\n // console.log('[actions/person/PersonActions] createPersonSubmit state = ', state)\t\r\n return PersonServices.createPerson(values)\t\r\n .then((res) => {\t\r\n // console.log('actions.createPersonSubmit -- services.createPerson .then(res) res=',res)\r\n if ('success'===res.status) dispatch(SnackbarActions.open('createPerson'));\r\n else\tdispatch(SnackbarActions.open('createPersonFail'));\r\n })\r\n .then((res) => {\r\n // console.log('actions.createPersonSubmit -- createPerson.then.Snackbar open .then(res) res=',res) \r\n dispatch({\r\n type: SAVE_PERSON_SUCCESS\r\n })\r\n })\t\r\n .catch((e) => {\t\r\n const errObj=JSON.parse(e);\r\n // console.log('received error message:', errObj);\r\n dispatch(ErrorActions.openErrorDialog({ errorText: errObj.message, title: 'Could not create person' }))\t\r\n })\t\r\n}\r\n\r\n//NOT USED\r\n// export const RETRIEVE_ALL_PERSONS_SUCCESS = 'RETRIEVE_ALL_PERSONS_SUCCESS'\r\n// export const retrieveAllPersons = () => (dispatch) => {\r\n// // console.log('[actions/person/PersonActions] retrieveAllPersons id=' )\t \r\n// return PersonServices.getAllPersons()\r\n// .then(res => {\r\n// dispatch({\r\n// type: RETRIEVE_ALL_PERSONS_SUCCESS,\r\n// persons: res\r\n// })\r\n// })\r\n// }\r\n\r\n//NOT USED\r\n// export const RETRIEVE_ONE_PERSON_SUCCESS = 'RETRIEVE_ONE_PERSON_SUCCESS'\r\n// export const retrieveOnePersonByName = (name) => (dispatch, name) => {\r\n// // console.log('[actions/person/PersonActions] retrieveOnePersonByName'+ name)\t \r\n// return PersonServices.getOnePersonByName(name)\r\n// .then(res => {\r\n// dispatch({\r\n// type: RETRIEVE_ONE_PERSON_SUCCESS,\r\n// person: res\r\n// })\r\n// })\r\n// }\r\n\r\nexport const RETRIEVE_ONE_PERSON_BY_ID_SUCCESS = 'RETRIEVE_ONE_PERSON_BY_ID_SUCCESS'\r\nexport const retrieveOnePersonById = (dispatch) => (id) => {\r\n // console.log('[actions/person/PersonActions] retrieveOnePersonById'+ id)\t \r\n return PersonServices.getOnePersonById(id)\r\n .then(res => {\r\n dispatch({\r\n type: RETRIEVE_ONE_PERSON_BY_ID_SUCCESS,\r\n person: res\r\n })\r\n })\r\n } \r\n","import * as PersonActions from '../actions/person'\r\n\r\nconst initialState = {\r\n persons: []\r\n}\r\n\r\nconst person = (state = initialState, action) => {\r\n switch (action.type) {\r\n // case PersonActions.FIELD_CHANGE:\r\n // case PersonActions.SELECT_PERSON:\r\n // case: PersonActions.DENY_PERSON_SUCCESS\r\n // case: PersonActions.APPROVE_PERSON_SUCCESS\r\n // case: PersonActions.SAVE_PERSON_SUCCESS\r\n\r\n // case PersonActions.RETRIEVE_ALL_PERSONS_SUCCESS:\r\n // return {\r\n // ...state,\r\n // persons: action.persons\r\n // }\r\n\r\n // case PersonActions.RETRIEVE_ONE_PERSON_SUCCESS:\r\n // return {\r\n // ...state,\r\n // person: action.person\r\n // } \r\n\r\n case PersonActions.RETRIEVE_ONE_PERSON_BY_ID_SUCCESS: \r\n return {\r\n ...state,\r\n person: action.person\r\n } \r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default person\r\n","import { combineReducers } from 'redux'\r\nimport { reducer as formReducer } from 'redux-form'\r\n\r\nimport * as UserActions from '../actions/user'\r\nimport option from './option'\r\nimport airport from './airport'\r\nimport country from './country'\r\nimport carrier from './carrier'\r\nimport location from './location'\r\nimport errors from './errors'\r\nimport snackbars from './snackbars'\r\nimport table from './table'\r\nimport tabs from './tabs'\r\nimport user from './user'\r\nimport incident from './incident'\r\nimport hmlog from './hmlog'\r\nimport person from './person'\r\n\r\nconst appReducer = combineReducers({\r\n option,\r\n airport,\r\n country,\r\n carrier,\r\n location,\r\n errors,\r\n snackbars,\r\n table,\r\n tabs,\r\n user,\r\n incident,\r\n hmlog,\r\n person,\r\n form: formReducer\r\n})\r\n\r\nconst rootReducer = (state, action) => {\r\n if (action.type === UserActions.LOGOUT) {\r\n return appReducer(undefined, action)\r\n }\r\n\r\n return appReducer(state, action)\r\n}\r\n\r\nexport default rootReducer\r\n","import * as UserActions from '../actions/user'\r\n\r\n/**\r\n * Updates react application state according user login/logout actions\r\n * @param {*} state \r\n * @param {*} action \r\n * @returns \r\n */\r\nexport default function user (state = {}, action) {\r\n switch (action.type) {\r\n case UserActions.LOGIN_SUCCESS:\r\n return {\r\n ...state,\r\n userId: action.userId,\r\n role: action.role,\r\n carrier: action.carrier,\r\n agency: action.agency,\r\n authToken: action.authToken,\r\n authExpiry: action.authTokenExpiry,\r\n tokenAssignTime: action.tokenAssignTime \r\n }\r\n case UserActions.LOGIN_FAILED:\r\n return {\r\n ...state,\r\n errorMessage: action.message\r\n }\r\n\r\n case UserActions.REFRESH:\r\n return{\r\n ...state,\r\n authToken: action.authToken,\r\n authExpiry: action.authTokenExpiry,\r\n tokenAssignTime: action.tokenAssignTime \r\n }\r\n\r\n case UserActions.LOGOUT:\r\n return {}\r\n default:\r\n return state\r\n }\r\n}\r\n","import React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { Redirect } from 'react-router-dom'\r\n\r\nconst AuthRedirect = ({ children, isLoggedIn }) => {\r\n return isLoggedIn ? children : \r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n //console.log('mapStateToProps state=')\r\n const isLoggedIn = state.user.userId !== null && state.user.userId !== undefined\r\n\r\n return {\r\n isLoggedIn \r\n }\r\n}\r\n\r\nconst ConnectedAuthRedirect = connect(mapStateToProps)(AuthRedirect)\r\n\r\nconst createAuthRedirect = (Component) => {\r\n return (props) => \r\n}\r\n\r\nexport default createAuthRedirect\r\n","import React from 'react'\r\nimport Button from '@material-ui/core/Button'\r\nimport Dialog from '@material-ui/core/Dialog'\r\nimport DialogActions from '@material-ui/core/DialogActions'\r\nimport DialogContent from '@material-ui/core/DialogContent'\r\nimport DialogContentText from '@material-ui/core/DialogContentText'\r\nimport DialogTitle from '@material-ui/core/DialogTitle'\r\n\r\nconst ErrorDialog = ({ classes, errorText, open, onClose, title }) => (\r\n \r\n {title}\r\n \r\n \r\n {errorText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nErrorDialog.defaultProps = {\r\n title: 'An error has occurred'\r\n}\r\n\r\nexport default ErrorDialog\r\n","import { connect } from 'react-redux'\r\nimport * as ErrorActions from '../actions/error'\r\nimport ErrorDialog from '../components/ErrorDialog'\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n const errorDialog = state.errors.dialog\r\n\r\n const errorText = errorDialog.errorText\r\n const open = errorDialog.open\r\n const title = errorDialog.title\r\n\r\n return {\r\n errorText,\r\n open,\r\n title\r\n }\r\n}\r\n\r\n//dispatch(ErrorActions.closeErrorDialog()) means:\r\n\r\n//Get a CLOSE_ERROR_DIALOG Action from the closeErrorDialog Action Creator\r\n\r\n//Dispatch this action, meaning send it to Redux.\r\n\r\n//Redux will update the store\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n const onClose = () => {\r\n dispatch(ErrorActions.closeErrorDialog())\r\n }\r\n\r\n return {\r\n onClose\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ErrorDialog)\r\n","import React, { Component } from 'react'\r\nimport * as Roles from '../constants/roles'\r\nimport PropTypes from 'prop-types'\r\nimport { Link } from 'react-router-dom'\r\nimport AppBar from '@material-ui/core/AppBar' //Display its children in a column\r\nimport Button from '@material-ui/core/Button';\r\nimport Toolbar from '@material-ui/core/Toolbar' //Display its children in a row\r\nimport Typography from '@material-ui/core/Typography'\r\nimport { withStyles } from '@material-ui/core/styles'\r\nimport ErrorDialog from '../containers/ErrorDialog'\r\n\r\nconst AppName = 'DANGEROUS GOODS'\r\n\r\nconst styles = (theme) => ({\r\n appBar: {\r\n zIndex: theme.zIndex.drawer + 1\r\n },\r\n title: {\r\n cursor: 'pointer',\r\n color:'white' ,\r\n font:'sans-serif'\r\n },\r\n titleWrapper: {\r\n display: 'flex',\r\n flex: 1\r\n },\r\n toolbar: theme.mixins.toolbar\r\n})\r\n\r\nclass App extends Component {\r\n\r\n handleLogOut = () => {\r\n // console.log('[components.App] handleLogOut');\r\n const { logOut } = this.props //Gets logOut() function passed from containers.App.mapDispatchToProps\r\n logOut()\r\n }\r\n\r\n render () {\r\n const { classes, isLoggedIn, onTitleClick, onAdminClick, role } = this.props //Gets isLoggedIn prop, onTitleClick() function passed from containers.App.mapDispatchToProps\r\n // console.log('this.props', this.props);\r\n if (isLoggedIn) {\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n {AppName}\r\n \r\n
\r\n
\r\n \r\n
\r\n {role === Roles.DANGEROUS_GOODS_ADMIN ? \r\n
\r\n \r\n
\r\n :\r\n ''}\r\n {role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.DANGEROUS_GOODS_ADMIN_READONLY ? \r\n
\r\n \r\n \r\n \r\n
\r\n :\r\n ''}\r\n {role === Roles.CARRIER || role === Roles.AGENT ? \r\n
\r\n \r\n \r\n \r\n
\r\n :\r\n ''}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n } else {\r\n return (\r\n \r\n \r\n {AppName}\r\n \r\n \r\n )\r\n }\r\n }\r\n}\r\n\r\nApp.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n logOut: PropTypes.func.isRequired, //Declares and requires logOut() function passed from containers.App.mapDispatchToProps\r\n isLoggedIn: PropTypes.bool.isRequired, //Declares and requires isLoggedIn prop passed from containers.App.mapDispatchToProps\r\n onTitleClick: PropTypes.func.isRequired //Declares and requires onTitleClick() function passed from containers.App.mapDispatchToProps\r\n}\r\n\r\nexport default withStyles(styles)(App)\r\n","import { connect } from 'react-redux'\r\nimport { withRouter } from 'react-router-dom'\r\n\r\nimport * as UserActions from '../actions/user'\r\nimport * as TableActions from '../actions/table'\r\nimport App from '../components/App'\r\n\r\nconst mapStateToProps = (state) => {\r\n const role = state.user.role\r\n const page = state.table.incidentsTable.page\r\n let isLoggedIn = false\r\n if (state.user && state.user.userId) {\r\n isLoggedIn = true\r\n }\r\n\r\n\r\n return {\r\n isLoggedIn, //used in components.App.render {} = this.props\r\n role,\r\n page\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n const logOut = () => { //used in components.App.handleLogOut())\r\n // console.log('[containers.App] -- logOut')\r\n dispatch(UserActions.logOut())\r\n ownProps.history.push('/login')\r\n }\r\n\r\n const onNavItemClick = (route) => {\r\n // console.log('[containers.App] -- onNavItemClick')\r\n ownProps.history.push(route)\r\n }\r\n \r\n const onTitleClick = () => {\r\n // console.log('[containers.App] -- onTitleClick') //used in components.App.render {} = this.props\r\n //console.log('ownProps', ownProps)\r\n //console.log('ownProps.history', ownProps.history)\r\n \r\n ownProps.history.push('/home')\r\n }\r\n\r\n const onAdminClick = () => {\r\n // console.log('[containers.App] -- onAdminClick') //used in components.App.render {} = this.props\r\n //console.log('ownProps', ownProps)\r\n //console.log('ownProps.history', ownProps.history) \r\n ownProps.history.push('/adminhome')\r\n }\r\n\r\n return {\r\n logOut,\r\n onNavItemClick,\r\n onTitleClick,\r\n onAdminClick\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(App))\r\n","import { Component, createElement } from 'react'\r\n\r\n/**\r\n * Creates a component class that renders the given Material UI component\r\n *\r\n * @param MaterialUIComponent The material ui component to render\r\n * @param mapProps A mapping of props provided by redux-form to the props the Material UI\r\n * component needs\r\n */\r\nexport default function createComponent (MaterialUIComponent, mapProps) {\r\n class InputComponent extends Component {\r\n getRenderedComponent () {\r\n return this.component\r\n }\r\n\r\n render () {\r\n return createElement(MaterialUIComponent, mapProps(this.props))\r\n }\r\n }\r\n InputComponent.displayName = `ReduxFormMaterialUI${MaterialUIComponent.name}`\r\n return InputComponent\r\n}\r\n","import Checkbox from '@material-ui/core/Checkbox'\r\nimport createComponent from './createComponent'\r\n\r\nexport default createComponent(Checkbox, ({\r\n input: { onChange, value, ...inputProps },\r\n meta,\r\n onChange: ignoredOnChange,\r\n defaultChecked,\r\n ...props\r\n}) => ({\r\n ...inputProps,\r\n ...props,\r\n checked: Boolean(value),\r\n onChange: (event, isInputChecked) => {\r\n onChange(isInputChecked)\r\n }\r\n}))\r\n","import RadioGroup from '@material-ui/core/RadioGroup'\r\nimport createComponent from './createComponent'\r\n\r\nexport default createComponent(\r\n RadioGroup,\r\n ({\r\n input: { onChange, value, ...inputProps },\r\n meta,\r\n onChange: onChangeFromField,\r\n ...props\r\n }) => ({\r\n ...inputProps,\r\n ...props,\r\n value,\r\n onChange: (event, value) => {\r\n onChange(value)\r\n if (onChangeFromField) {\r\n onChangeFromField(value)\r\n }\r\n }\r\n })\r\n)\r\n","const mapError = ({\r\n hasHelperText = true,\r\n meta: { touched, error, warning } = {},\r\n input,\r\n ...props\r\n}) => {\r\n const errorProps =\r\n touched && (error || warning)\r\n ? {\r\n ...props,\r\n ...input,\r\n error: Boolean(error || warning)\r\n }\r\n : { ...input, ...props }\r\n\r\n if (touched && hasHelperText && (error || warning)) {\r\n errorProps.helperText = error || warning\r\n }\r\n\r\n return errorProps\r\n}\r\n\r\nexport default mapError\r\n","import Select from '@material-ui/core/Select'\r\nimport createComponent from './createComponent'\r\nimport mapError from './mapError'\r\n\r\nexport default createComponent(\r\n Select,\r\n ({\r\n input: { onChange, value, onBlur, ...inputProps },\r\n onChange: onChangeFromField,\r\n defaultValue,\r\n // disabled,\r\n readonly,\r\n ...props\r\n }) => ({\r\n ...mapError({ ...props, hasHelperText: false }),\r\n ...inputProps,\r\n value: value,\r\n onChange: event => {\r\n onChange(event.target.value)\r\n if (onChangeFromField) {\r\n onChangeFromField(event.target.value)\r\n }\r\n },\r\n onBlur: () => onBlur(value)\r\n })\r\n)\r\n","import Switch from '@material-ui/core/Switch'\r\nimport createComponent from './createComponent'\r\n\r\nexport default createComponent(Switch, ({\r\n input: { onChange, value, ...inputProps },\r\n checked,\r\n meta,\r\n ...props\r\n}) => ({\r\n ...inputProps,\r\n ...props,\r\n onChange,\r\n checked: !!value\r\n}))\r\n","import TextField from '@material-ui/core/TextField'\r\nimport createComponent from './createComponent'\r\nimport mapError from './mapError'\r\n\r\nexport default createComponent(TextField, ({\r\n defaultValue,\r\n ...props\r\n}) => ({\r\n ...mapError(props)\r\n}))\r\n","import React from 'react'\r\nimport Paper from '@material-ui/core/Paper'\r\nimport { withStyles } from '@material-ui/core/styles'\r\n\r\nconst styles = (theme) => ({\r\n container: {\r\n [theme.breakpoints.up('md')]: {\r\n margin: '16px'\r\n }\r\n }\r\n})\r\n\r\nconst PageContainer = ({ classes, children, ...other }) => (\r\n \r\n {children}\r\n \r\n)\r\n\r\nexport default withStyles(styles)(PageContainer)\r\n","import React from 'react'\r\nimport Button from '@material-ui/core/Button'\r\nimport CircularProgress from '@material-ui/core/CircularProgress'\r\nimport { withStyles } from '@material-ui/core/styles'\r\n\r\nconst styles = {\r\n buttonProgress: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n marginTop: -12,\r\n marginLeft: -12\r\n }\r\n}\r\n\r\nconst ProgressButton = ({ children, classes, disabled, submitting, ...other }) => (\r\n
\r\n \r\n
\r\n)\r\n\r\nexport default withStyles(styles)(ProgressButton)\r\n","export const upper = (value) => value && value.toUpperCase()\r\nexport const number = (value, previousValue) => !value || (!isNaN(parseFloat(value)) && isFinite(value)) ? value : previousValue\r\n","import React, { Component } from 'react'\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport { compose } from 'redux'\r\nimport { Field, reduxForm } from 'redux-form'\r\nimport { TextField } from './ReduxFormMaterialUI'\r\n\r\nimport { indigo } from '@material-ui/core/colors'\r\nimport red from '@material-ui/core/colors/red'\r\nimport { Grid } from '@material-ui/core'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport { withStyles } from '@material-ui/core/styles'\r\n\r\nimport PageContainer from './PageContainer'\r\nimport ProgressButton from './buttons/ProgressButton'\r\n\r\nimport { upper } from '../utilities/normalizers'\r\n\r\nconst styles = {\r\n buttonWrapper: {\r\n alignSelf: 'flex-start'\r\n },\r\n container: {\r\n padding: '24px'\r\n },\r\n error: {\r\n color: red[500]\r\n },\r\n item: {\r\n margin: '8px 0'\r\n },\r\n username: {\r\n }\r\n}\r\n\r\nfunction lettersNumbersCheck(name)\r\n{\r\n var regEx = /^[0-9a-zA-Z_]+$/;\r\n if(name.match(regEx))\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n //alert(\"Please enter letters and numbers only.\");\r\n return false;\r\n }\r\n} \r\n\r\nclass LoginInternal extends Component {\r\n\r\n render () {\r\n const { classes, errorMessage, handleSubmit, onFieldChange, submitting } = this.props\r\n // Component.Login.props.handleSubmit gets mapped by redux-form to Container.LoginPage.onSubmit\r\n\r\n return (\r\n \r\n\r\n
\r\n\r\n \r\n {errorMessage}\r\n Log In Internal \r\n \r\n\r\n \r\n \r\n \r\n Submit\r\n \r\n \r\n\r\n \t\r\n

\r\n

\r\n \r\n View \r\n \r\n Carrier Signup \r\n \r\n Link\r\n \r\n\r\n

\r\n \r\n View \r\n \r\n Agent Signup \r\n \r\n Link\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst validate = (values) => {\r\n const errors = {}\r\n const requiredFields = [ 'userId', 'password' ]\r\n\r\n requiredFields.forEach((field) => {\r\n if (!values[field]) {\r\n errors[field] = 'Required'\r\n }\r\n })\r\n\r\n if (values['userId'] && 0 < values['userId'].length && !lettersNumbersCheck(values['userId'])) {\r\n errors['userId'] = 'Must be alphanumeric'\r\n }\r\n\r\n return errors\r\n}\r\n\r\nexport default compose(\r\n reduxForm({\r\n form: 'login',\r\n initialValues: { source: 'internal' },\r\n validate\r\n }),\r\n withStyles(styles)\r\n)(LoginInternal)\r\n","import { connect } from 'react-redux'\r\nimport { withRouter } from 'react-router-dom'\r\n\r\nimport * as UserActions from '../actions/user'\r\nimport LoginInternal from '../components/LoginInternal'\r\n\r\nconst mapStateToProps = (state) => {\r\n const errorMessage = state.user.errorMessage\r\n\r\n return {\r\n errorMessage\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n const onSubmit = (values) => {\r\n // console.log('[LoginPageInternal] onSubmit - source = internal')\r\n return dispatch(UserActions.logIn(values.userId, values.password, 'internal')).then((success) => {\r\n // console.log('[LoginPageInternal] mapDispatchToProps - dispatch UserActions.login - then - success =', success)\r\n if (success) {\r\n ownProps.history.push('/welcome')\r\n }\r\n })\r\n }\r\n return {\r\n onSubmit\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(LoginInternal))\r\n","import React, { Component } from 'react'\r\n\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport { compose } from 'redux'\r\nimport { Field, reduxForm } from 'redux-form'\r\nimport { TextField } from './ReduxFormMaterialUI'\r\n\r\nimport { indigo } from '@material-ui/core/colors'\r\nimport red from '@material-ui/core/colors/red'\r\nimport { Grid } from '@material-ui/core'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport { withStyles } from '@material-ui/core/styles'\r\n\r\nimport PageContainer from './PageContainer'\r\nimport ProgressButton from './buttons/ProgressButton'\r\n\r\nimport { upper } from '../utilities/normalizers'\r\n\r\n\r\nconst styles = {\r\n buttonWrapper: {\r\n alignSelf: 'flex-start'\r\n },\r\n container: {\r\n padding: '24px'\r\n },\r\n error: {\r\n color: red[500]\r\n },\r\n item: {\r\n margin: '8px 0'\r\n },\r\n username: {\r\n }\r\n}\r\n\r\nfunction lettersNumbersCheck(name)\r\n{\r\n var regEx = /^[0-9a-zA-Z_]+$/;\r\n if(name.match(regEx))\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n //alert(\"Please enter letters and numbers only.\");\r\n return false;\r\n }\r\n} \r\n\r\nclass LoginExternal extends Component {\r\n\r\n render () {\r\n const { classes, errorMessage, handleSubmit, onFieldChange, submitting } = this.props\r\n // Component.Login.props.handleSubmit gets mapped by redux-form to Container.LoginPage.onSubmit\r\n\r\n return (\r\n \r\n\r\n
\r\n\r\n \r\n {errorMessage}\r\n Log In External \r\n \r\n\r\n \r\n \r\n \r\n Submit\r\n \r\n \r\n \t\r\n {/* \r\n

\r\n

\r\n Don't have an account yet?\r\n

\r\n \r\n Signup for an account\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nconst validate = (values) => {\r\n const errors = {}\r\n const requiredFields = [ 'userId', 'password' ]\r\n\r\n requiredFields.forEach((field) => {\r\n if (!values[field]) {\r\n errors[field] = 'Required'\r\n }\r\n })\r\n\r\n if (values['userId'] && 0 < values['userId'].length && !lettersNumbersCheck(values['userId'])) {\r\n errors['userId'] = 'Must be alphanumeric'\r\n }\r\n\r\n return errors\r\n}\r\n\r\nexport default compose(\r\n reduxForm({\r\n form: 'login',\r\n initialValues: { source: 'external' },\r\n validate\r\n }),\r\n withStyles(styles)\r\n)(LoginExternal)\r\n","import { connect } from 'react-redux'\r\nimport { withRouter } from 'react-router-dom'\r\n\r\nimport * as UserActions from '../actions/user'\r\nimport LoginExternal from '../components/LoginExternal'\r\n\r\nconst mapStateToProps = (state) => {\r\n const errorMessage = state.user.errorMessage\r\n\r\n return {\r\n errorMessage\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n const onSubmit = (values) => {\r\n // console.log('[LoginPageExternal] onSubmit - source = idp')\r\n return dispatch(UserActions.logIn(values.userId, values.password, 'idp')).then((success) => {\r\n // console.log('[LoginPageExternal] mapDispatchToProps - dispatch UserActions.login - then - success =', success)\r\n if (success) {\r\n ownProps.history.push('/welcome')\r\n }\r\n })\r\n }\r\n return {\r\n onSubmit\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(LoginExternal))\r\n","import React, { Component } from 'react'\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport { indigo } from '@material-ui/core/colors'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport Grid from '@material-ui/core/Grid'\r\nimport { withStyles } from '@material-ui/core/styles'\r\n\r\n\r\nimport PageContainer from './PageContainer'\r\n\r\nconst styles = {\r\n // message: {\r\n // left: 0,\r\n // position: 'absolute',\r\n // textAlign: 'center',\r\n // top: '70px',\r\n // width: '100%'\r\n // },\r\n // messageFilter: {\r\n // top: '150px'\r\n // }\r\n}\r\n\r\nclass Welcome extends Component {\r\n \r\n // componentDidMount () {\r\n // console.log('[components.Welcome] componentDidMount ')\r\n // this.clickLink(null);\r\n // }\r\n\r\n // clickLink = (event) => {\r\n // const { onTabChange } = this.props\r\n // console.log('[components.Welcome] clickLink')\r\n // document.getElementById('linkid').click();\r\n // }\r\n\r\n render () {\r\n // console.log('[components.Welcome] render ')\r\n const { role} = this.props\r\n return (\r\n \r\n \r\n  \r\n \r\n \r\n  \r\n \r\n \r\n {/*        */}\r\n Notice: This portal must ONLY be used to report Dangerous Goods. Please report non-DG issues though the proper channels.\r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n  \r\n \r\n \r\n {/*        */}\r\n \r\n Welcome to the Dangerous Goods application. Please click on this link to continue.\r\n \r\n \r\n \r\n  \r\n \r\n \r\n {/* 'Welcome to Dangerous Goods. Please click to continue.' */}\r\n  \r\n \r\n\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(Welcome)\r\n","import { connect } from 'react-redux'\r\nimport Welcome from '../components/Welcome'\r\nimport * as TabActions from '../actions/tab'\r\n\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n // console.log(\"[containers/WelcomePage] mapStateToProps\")\r\n const role = state.user.role\r\n\r\n return {\r\n role,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n const onTabChange = () => {\r\n // console.log(\"[containers/HomePage.mapDispatchToProps] onTabChange value=\",1) \r\n dispatch(TabActions.change('incidents', 1))\r\n }\r\nreturn {\r\n onTabChange\r\n}\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Welcome)\r\n","const styles = {\r\n dateInput: {\r\n flex: '1 1 0px'\r\n },\r\n input: {\r\n fontSize: '13px',\r\n width: '100%'\r\n },\r\n tableCell: {\r\n padding: '8px'\r\n }\r\n //,\r\n // serialNumberColumn: {\r\n // width: '150px'\r\n // },\r\n // incidentColumn: {\r\n // width: '80%'\r\n // },\r\n // barcodeCustomsColumn: {\r\n // width: '150px'\r\n // },\r\n // submittedByColumn: {\r\n // width: '150px'\r\n // },\r\n // hubColumn: {\r\n // width: '150px'\r\n // },\r\n // statusColumn: {\r\n // width: '150px'\r\n // },\r\n // initialFindingColumn: {\r\n // width: '200px'\r\n // },\r\n // airlineReportingIncidentColumn: {\r\n // width: '200px'\r\n // } \r\n}\r\n\r\nexport default styles\r\n ","import React from 'react'\r\nimport TableCell from '@material-ui/core/TableCell'\r\nimport TableRow from '@material-ui/core/TableRow'\r\nimport TextField from '@material-ui/core/TextField'\r\nimport { withStyles } from '@material-ui/core/styles'\r\nimport styles from './styles'\r\nimport { connect } from 'react-redux'\r\nimport { compose } from 'redux'\r\n\r\nconst IncidentTableFilter = ({ classes, filter, onFilterChange, selectedTab, onFilterDateChange }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedTab === 3 ?\r\n \r\n \r\n \r\n : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nconst mapStateToProps = (state) => {\r\n const selectedTab = state.tabs.incidents\r\n return {\r\n selectedTab\r\n }\r\n}\r\n\r\nexport default compose(withStyles(styles), connect(mapStateToProps))(IncidentTableFilter)\r\n","import React from 'react'\r\nimport TableCell from '@material-ui/core/TableCell'\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel'\r\n\r\nconst TableHeaderCell = ({ label, onClick, sortDirection, ...other }) => (\r\n \r\n \r\n {label}\r\n \r\n \r\n)\r\n\r\nexport default TableHeaderCell\r\n","import React from 'react'\r\nimport TableHead from '@material-ui/core/TableHead'\r\nimport TableRow from '@material-ui/core/TableRow'\r\nimport { withStyles } from '@material-ui/core/styles'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport TableHeaderCell from '../TableHeaderCell'\r\nimport styles from './styles'\r\nimport { connect } from 'react-redux'\r\nimport { compose } from 'redux'\r\n\r\nconst IncidentTableHeader = ({ classes, onHeaderClick, selectedTab, orderBy, sortDirection }) => (\r\n Incident ID}\r\n onClick={onHeaderClick('hmKey')}\r\n sortDirection={orderBy === 'hmKey' ? sortDirection : false} \r\n />\r\n Customs Barcode}\r\n onClick={onHeaderClick('barcodeCustoms')}\r\n sortDirection={orderBy === 'barcodeCustoms' ? sortDirection : false}\r\n />\r\n Submitted By}\r\n onClick={onHeaderClick('reportingContactName')}\r\n sortDirection={orderBy === 'reportingContactName' ? sortDirection : false}\r\n />\r\n Hub}\r\n onClick={onHeaderClick('reportingAirportHub')}\r\n sortDirection={orderBy === 'reportingAirportHub' ? sortDirection : false} \r\n />\r\n {selectedTab === 3 ?\r\n Status}\r\n onClick={onHeaderClick('status')}\r\n sortDirection={orderBy === 'status' ? sortDirection : false}\r\n />\r\n : ''}\r\n Type}\r\n onClick={onHeaderClick('initialFinding')}\r\n sortDirection={orderBy === 'initialFinding' ? sortDirection : false}\r\n />\r\n Airline Reporting Incident}\r\n onClick={onHeaderClick('airlineReportingIncident')}\r\n sortDirection={orderBy === 'airlineReportingIncident' ? sortDirection : false}\r\n />\r\n Agency Reporting Incident}\r\n onClick={onHeaderClick('agencyReportingIncident')}\r\n sortDirection={orderBy === 'agencyReportingIncident' ? sortDirection : false}\r\n /> \r\n Entity Reporting Incident}\r\n onClick={onHeaderClick('entityReportingIncident')}\r\n sortDirection={orderBy === 'entityReportingIncident' ? sortDirection : false}\r\n />\r\n Date Reported}\r\n onClick={onHeaderClick('dateReported')}\r\n sortDirection={orderBy === 'dateReported' ? sortDirection : false}\r\n />\r\n Date Updated}\r\n onClick={onHeaderClick('actionDate')}\r\n sortDirection={orderBy === 'actionDate' ? sortDirection : false}\r\n />\r\n Updated By}\r\n onClick={onHeaderClick('updtUser')}\r\n sortDirection={orderBy === 'updtUser' ? sortDirection : false}\r\n />\r\n \r\n \r\n)\r\n\r\nconst mapStateToProps = (state) => {\r\n const selectedTab = state.tabs.incidents\r\n return {\r\n selectedTab\r\n }\r\n}\r\n\r\nexport default compose(withStyles(styles), connect(mapStateToProps))(IncidentTableHeader)\r\n","import React from 'react'\r\nimport Tooltip from '@material-ui/core/Tooltip'\r\nimport { withStyles } from '@material-ui/core/styles'\r\n\r\nconst styles = {\r\n tooltip: {\r\n fontSize: '12px'\r\n }\r\n}\r\n\r\nconst tooltipMap = {\r\n DRAFT: 'Hazardous Incident Draft',\r\n INPROCESS: 'Hazardous Incident submitted',\r\n CLOSED: 'Hazardous Incident Resolved'\r\n \r\n}\r\n\r\nconst StatusTooltip = ({ children, classes, status, ...other }) => (\r\n \r\n {children}\r\n \r\n)\r\n\r\nexport default withStyles(styles)(StatusTooltip)\r\n","const padLeft = (pad, string) => {\r\n return (pad + string).slice(-pad.length)\r\n }\r\n \r\n export const beginningOfDay = (date) => {\r\n const newDate = new Date(date)\r\n newDate.setHours(0, 0, 0, 0)\r\n return newDate\r\n }\r\n \r\n export const endOfDay = (date) => {\r\n const newDate = new Date(date)\r\n newDate.setHours(23, 59, 59, 999)\r\n return newDate\r\n }\r\n\r\n export const formatSlashed = (date) => {\r\n const d = new Date(date)\r\n // console.log('DATE IS ' + d)\r\n if (!date || isNaN(d)) {\r\n return null\r\n }\r\n// console.log('returning ' + `${padLeft('00', d.getMonth() + 1)}/${padLeft('00', d.getDate())}/${d.getFullYear()}`)\r\n\r\n return `${padLeft('00', d.getMonth() + 1)}/${padLeft('00', d.getDate())}/${d.getFullYear()}`\r\n \r\n }\r\n \r\n export const formatDate = (date) => {\r\n if (!date) {\r\n return ''\r\n }\r\n \r\n return new Date(date).toLocaleDateString()\r\n }\r\n \r\n export const formatTime = (date) => {\r\n if (!date) {\r\n return ''\r\n }\r\n \r\n const d = new Date(date)\r\n return `${padLeft('00', d.getHours())}:${padLeft('00', d.getMinutes())}`\r\n }\r\n \r\n export const formatDateTime = (date) => {\r\n if (!date) {\r\n return ''\r\n }\r\n \r\n return `${formatDate(date)} ${formatTime(date)}`\r\n }\r\n \r\n export const formatISODate = (date) => {\r\n const d = new Date(date)\r\n \r\n if (!date || isNaN(d)) {\r\n return null\r\n }\r\n \r\n return `${d.getFullYear()}-${padLeft('00', d.getMonth() + 1)}-${padLeft('00', d.getDate())}`\r\n }\r\n \r\n export const formatIdDate = (date) => {\r\n const d = new Date(date)\r\n \r\n if (!date || isNaN(d)) {\r\n return null\r\n }\r\n \r\n return `${d.getFullYear()}${padLeft('00', d.getMonth() + 1)}${padLeft('00', d.getDate())}`\r\n }\r\n\r\n export const formatISODateTime = (date) => {\r\n const d = new Date(date)\r\n \r\n if (!date || isNaN(d)) {\r\n return null\r\n }\r\n \r\n return `${d.getFullYear()}-${padLeft('00', d.getMonth() + 1)}-${padLeft('00', d.getDate())}T${padLeft('00', d.getHours())}:${padLeft('00', d.getMinutes())}`\r\n }\r\n ","import React from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport { indigo } from '@material-ui/core/colors'\r\nimport TableCell from '@material-ui/core/TableCell'\r\nimport TableRow from '@material-ui/core/TableRow'\r\nimport { withStyles } from '@material-ui/core/styles'\r\nimport StatusTooltip from '../../tooltips/StatusTooltip'\r\nimport * as DateUtils from '../../../utilities/date-utils'\r\nimport styles from './styles'\r\nimport { connect } from 'react-redux'\r\nimport { compose } from 'redux'\r\nimport * as Incidents from '../../../constants/incidents'\r\nimport * as Roles from '../../../constants/roles'\r\n\r\nconst getUpdated = (hmLog) => {\r\n hmLog.sort((a, b) => (a.actionDate < b.actionDate) ? 1 : -1)\r\n return hmLog\r\n}\r\n\r\nconst IncidentTableRow = ({ classes, incidentApprovals, onApprovalChange, selectedTab, onSerialNumberClick, row, role }) => (\r\n \r\n {(role===Roles.DANGEROUS_GOODS_ADMIN_READONLY || role===Roles.CUSTOMER_SERVICE_AGENT) && \r\n onSerialNumberClick(row)}\r\n style={{ color: indigo[300] }}\r\n to={'/view'}\r\n >\r\n {/* TODONE: Display abbrev of agency Reporting Incident, if incident was reported by an agency, else display carrier */}\r\n { 'AGENT'===row.entityReportingIncident && row.agencyReportingIncident }\r\n { 'AGENT'!==row.entityReportingIncident && row.airlineReportingIncident } \r\n -{DateUtils.formatIdDate(row.dateReported)}-{row.hmKey}\r\n \r\n \r\n }{((role===Roles.DANGEROUS_GOODS_ADMIN || role===Roles.CARRIER || role===Roles.AGENT) && row.status === Incidents.CLOSED) &&\r\n \r\n onSerialNumberClick(row)}\r\n style={{ color: indigo[500] }}\r\n to={'/view'}\r\n >\r\n {/* TODONE: Display agency Reporting Incident abbrev, if incident was reported by an agency, else display carrier */}\r\n { 'AGENT'===row.entityReportingIncident && row.agencyReportingIncident }\r\n { 'AGENT'!==row.entityReportingIncident && row.airlineReportingIncident } \r\n -{DateUtils.formatIdDate(row.dateReported)}-{row.hmKey}\r\n \r\n \r\n }{((role===Roles.DANGEROUS_GOODS_ADMIN || role===Roles.CARRIER || role===Roles.AGENT) && row.status !== Incidents.CLOSED) &&\r\n \r\n onSerialNumberClick(row)}\r\n style={{ color: indigo[500] }}\r\n to={'/edit'}\r\n >\r\n {/* TODONE: Display agency Reporting Incident, if incident was reported by an agency, else display carrier abbrev */}\r\n { 'AGENT'===row.entityReportingIncident && row.agencyReportingIncident }\r\n { 'AGENT'!==row.entityReportingIncident && row.airlineReportingIncident } \r\n -{DateUtils.formatIdDate(row.dateReported)}-{row.hmKey}\r\n \r\n \r\n }\r\n {row.barcodeCustoms}\r\n {row.reportingContactName}\r\n {row.reportingAirportHub}\r\n {selectedTab === 3 ?\r\n {row.status}\r\n : ''}\r\n {row.initialFinding}\r\n {row.airlineReportingIncident} \r\n {row.agencyReportingIncident} \r\n {row.entityReportingIncident}\r\n {DateUtils.formatDate((row.dateReported))}\r\n {DateUtils.formatDate(row.actionDate)}\r\n {row.updtUser}\r\n \r\n)\r\n\r\nconst mapStateToProps = (state) => {\r\n const selectedTab = state.tabs.incidents\r\n \r\n return {\r\n selectedTab\r\n }\r\n}\r\n \r\nexport default compose(withStyles(styles), connect(mapStateToProps))(IncidentTableRow)","import React, { Component } from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport Button from '@material-ui/core/Button'\r\nimport CircularProgress from '@material-ui/core/CircularProgress'\r\nimport Grid from '@material-ui/core/Grid'\r\nimport IconButton from '@material-ui/core/IconButton'\r\nimport Table from '@material-ui/core/Table'\r\nimport TableBody from '@material-ui/core/TableBody'\r\nimport TableCell from '@material-ui/core/TableCell'\r\nimport TableRow from '@material-ui/core/TableRow'\r\nimport TablePagination from '@material-ui/core/TablePagination'\r\nimport Tooltip from '@material-ui/core/Tooltip'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport FilterListIcon from '@material-ui/icons/FilterList'\r\nimport { withStyles } from '@material-ui/core/styles'\r\nimport ProgressButton from '../buttons/ProgressButton'\r\nimport * as Roles from '../../constants/roles'\r\n\r\nimport IncidentTableFilterImport from './Incident/IncidentTableFilter'\r\nimport IncidentTableHeaderImport from './Incident/IncidentTableHeader'\r\nimport IncidentTableRowImport from './Incident/IncidentTableRow'\r\n\r\n\r\n\r\nconst styles = {\r\n message: {\r\n left: 0,\r\n position: 'absolute',\r\n textAlign: 'center',\r\n top: '70px',\r\n width: '100%'\r\n },\r\n messageFilter: {\r\n top: '150px'\r\n }\r\n}\r\n\r\nlet typingTimer = null\r\n\r\nconst getTitle = (role) => {\r\n return 'INCIDENTS'\r\n}\r\n\r\nclass IncidentTable extends Component {\r\n state = {\r\n incidentApprovals: {},\r\n printSubmitting: false,\r\n selected: []\r\n }\r\n\r\n\r\n //TODONE: Set entityType, Maybe set agencyReportingIncident\r\n componentDidMount () {\r\n // console.log('[components.IncidentTable.index] componentDidMount() ')\r\n const { loadData, clearSelectedImages, onFilterChange, carrier, agency, entity } = this.props\r\n clearSelectedImages()\r\n if('CARRIER' === entity) {\r\n onFilterChange('airlineReportingIncident',carrier)\r\n onFilterChange('entityReportingIncident','CARRIER') \r\n }\r\n if('AGENT' === entity) {\r\n onFilterChange('agencyReportingIncident',agency)\r\n onFilterChange('entityReportingIncident','AGENT')\r\n }\r\n if (loadData) {\r\n loadData()\r\n }\r\n }\r\n\r\n componentDidUpdate (prevProps) {\r\n // console.log('[components.IncidentTable.index] componentDidUpdate() ')\r\n const { loadData } = this.props\r\n if (prevProps.location !== this.props.location && loadData) {\r\n loadData()\r\n }\r\n }\r\n\r\n handleApprovalChange = (incidentId, approval) => {\r\n this.setState({\r\n incidentApprovals: {\r\n ...this.state.incidentApprovals,\r\n [incidentId]: approval\r\n }\r\n })\r\n }\r\n\r\n handleChangePage = (event, page) => {\r\n const { onPageChange } = this.props\r\n onPageChange(page)\r\n }\r\n\r\n handleChangeRowsPerPage = (event) => {\r\n const { onRowsPerPageChange } = this.props\r\n onRowsPerPageChange(event.target.value)\r\n }\r\n \r\n handleCreateIncidentClick = () => {\r\n const { history } = this.props\r\n history.push('/tracker')\r\n }\r\n\r\n handleHeaderClick = (name) => () => {\r\n const { onHeaderClick } = this.props\r\n onHeaderClick(name)\r\n }\r\n\r\n handleFilterChange = (name, timeout = 750) => (event) => {\r\n // console.log('[components.IncidentTable.index] handleFilterChange() ') \r\n const { loadData, onFilterChange } = this.props\r\n // Delay search until typing is done so that it doesn't call the web service on every key\r\n const value = event.target.value.toUpperCase()\r\n onFilterChange(name, value)\r\n clearTimeout(typingTimer)\r\n typingTimer = setTimeout(() => {\r\n loadData()\r\n }, timeout)\r\n }\r\n\r\n handleFilterDataChange = (name) => (value) => {\r\n // console.log('[components.IncidentTable.index] handleFilterDataChange() ') \r\n const { loadData, onFilterChange } = this.props\r\n const newValue = value && value.format ? value.format('YYYY-MM-DD') : value\r\n onFilterChange(name, newValue)\r\n loadData()\r\n }\r\n\r\n getMessageClassName = () => {\r\n const { classes, showFilter } = this.props\r\n if (showFilter) {\r\n return `${classes.message} ${classes.messageFilter}`\r\n }\r\n return classes.message\r\n }\r\n\r\n render () {\r\n // console.log('[components.IncidentTable.index] render() ') \r\n const { incidentApprovals, saveSubmitting } = this.state\r\n const {\r\n errorText,\r\n filter,\r\n loading,\r\n noDataMessage,\r\n onFilterClick,\r\n onSaveClick,\r\n onSerialNumberClick,\r\n orderBy,\r\n page,\r\n role,\r\n rowCount,\r\n rows,\r\n rowsPerPage,\r\n showFilter,\r\n sortDirection,\r\n exportHazmatToExcel\r\n } = this.props\r\n\r\n const pagedIncidents = rows.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n const rowsInPage = Math.min(rowsPerPage, rows.length - page * rowsPerPage)\r\n const emptyRows = rowsPerPage - Math.max(rowsInPage, 0)\r\n\r\n let IncidentTableHeader = IncidentTableHeaderImport\r\n let IncidentTableFilter = IncidentTableFilterImport\r\n let IncidentTableRow = IncidentTableRowImport\r\n let columnCount = 7\r\n\r\n if (role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.DANGEROUS_GOODS_ADMIN_READONLY || role === Roles.CARRIER || role === Roles.AGENT || role === Roles.CUSTOMER_SERVICE_AGENT){\r\n IncidentTableHeader = IncidentTableHeaderImport\r\n IncidentTableFilter = IncidentTableFilterImport\r\n IncidentTableRow = IncidentTableRowImport\r\n columnCount = 9\r\n }\r\n \r\n return (\r\n
\r\n \r\n \r\n {getTitle(role)}\r\n \r\n
\r\n \r\n {\r\n (role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.CARRIER || role === Roles.AGENT) &&\r\n \r\n Create Incident\r\n \r\n }\r\n \r\n Export Table to Excel\r\n \r\n \r\n {onSaveClick &&\r\n \r\n \r\n Save\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {showFilter &&\r\n \r\n }\r\n {pagedIncidents.map((row, index) => (\r\n \r\n ))}\r\n {emptyRows > 0 && (\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n {pagedIncidents.length === 0 && !loading && !errorText &&\r\n {noDataMessage}\r\n }\r\n {pagedIncidents.length === 0 && !loading && errorText &&\r\n {errorText}\r\n }\r\n {loading &&
}\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nIncidentTable.defaultProps = {\r\n filter: {},\r\n loading: false,\r\n noDataMessage: 'No data to display',\r\n page: 0,\r\n rows: [],\r\n rowsPerPage: 10,\r\n showFilter: false,\r\n sortDirection: false\r\n}\r\n\r\nIncidentTable.propTypes = {\r\n errorText: PropTypes.string,\r\n filter: PropTypes.object,\r\n loading: PropTypes.bool,\r\n noDataMessage: PropTypes.string,\r\n loadData: PropTypes.func.isRequired,\r\n onFilterChange: PropTypes.func.isRequired,\r\n onFilterClick: PropTypes.func.isRequired,\r\n onHeaderClick: PropTypes.func.isRequired,\r\n onPageChange: PropTypes.func.isRequired,\r\n onRowsPerPageChange: PropTypes.func.isRequired,\r\n onSaveClick: PropTypes.func,\r\n onSerialNumberClick: PropTypes.func.isRequired,\r\n orderBy: PropTypes.string,\r\n page: PropTypes.number,\r\n role: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n rows: PropTypes.array,\r\n rowsPerPage: PropTypes.number,\r\n showFilter: PropTypes.bool,\r\n sortDirection: PropTypes.bool\r\n}\r\n\r\nexport default withStyles(styles)(IncidentTable)\r\n","import { connect } from 'react-redux'\r\nimport { withRouter } from 'react-router-dom'\r\n\r\nimport * as ErrorActions from '../actions/error'\r\nimport * as TableActions from '../actions/table'\r\nimport * as incidentActions from '../actions/incident'\r\nimport IncidentTable from '../components/IncidentTable'\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n const table = state.table[ownProps.tableId] || {}\r\n \r\n const user = state.user\r\n \r\n return {\r\n errorText: table.errorText,\r\n filter: table.filter,\r\n loading: table.loading,\r\n orderBy: table.orderBy,\r\n page: table.page,\r\n rowCount: table.rowCount,\r\n rows: table.rows,\r\n rowsPerPage: table.rowsPerPage,\r\n selected: table.selected,\r\n showFilter: table.showFilter,\r\n sortDirection: table.sortDirection,\r\n role: user.role,\r\n carrier: user.carrier,\r\n agency: user.agency,\r\n entity: user.role\r\n }\r\n }\r\n \r\n const mapDispatchToProps = (dispatch, ownProps) => {\r\n const tableId = ownProps.tableId\r\n const page = ownProps.page\r\n \r\n const loadData = ()=> {\r\n dispatch(TableActions.clearRows(tableId))\r\n dispatch(TableActions.changePage(tableId, page, ownProps.onLoadData))\r\n }\r\n \r\n const onError = (errorText, title) => {\r\n dispatch(ErrorActions.openErrorDialog({ errorText, title }))\r\n }\r\n \r\n const onFilterChange = (columnName, value) => {\r\n dispatch(TableActions.changeFilter(tableId, columnName, value, ownProps.onLoadData))\r\n }\r\n \r\n const onFilterClick = () => {\r\n dispatch(TableActions.toggleFilter(tableId))\r\n }\r\n \r\n const onHeaderClick = (columnName) => {\r\n dispatch(TableActions.sort(tableId, columnName, ownProps.onLoadData))\r\n }\r\n \r\n const onPageChange = (page) => {\r\n dispatch(TableActions.changePage(tableId, page, ownProps.onLoadData))\r\n }\r\n \r\n const onRowsPerPageChange = (rowsPerPage) => {\r\n dispatch(TableActions.changeRowsPerPage(tableId, rowsPerPage, ownProps.onLoadData))\r\n }\r\n\r\n const clearSelectedImages = () => {\r\n dispatch(incidentActions.clearSelectedImages())\r\n }\r\n \r\n const onSerialNumberClick = (incident) => {\r\n dispatch(incidentActions.selectIncident(incident))\r\n //console.log('[containers.IncidentTable] onSerialNumberClick() - incident = ', incident) \r\n }\r\n\r\n const exportHazmatToExcel = () => {\r\n // console.log(\"containers/IncidentTable -- exportHazmatToExcel\")\r\n dispatch(TableActions.exportHazmatToExcel(tableId))\r\n }\r\n\r\n \r\n return {\r\n loadData,\r\n onError,\r\n onFilterChange,\r\n onFilterClick,\r\n onPageChange,\r\n onRowsPerPageChange,\r\n onSerialNumberClick,\r\n onHeaderClick,\r\n clearSelectedImages,\r\n exportHazmatToExcel\r\n }\r\n }\r\n \r\n export default connect(mapStateToProps, mapDispatchToProps)(withRouter(IncidentTable))\r\n ","import React from 'react'\r\n// import AppBar from '@material-ui/core/AppBar'\r\nimport Tab from '@material-ui/core/Tab'\r\nimport Tabs from '@material-ui/core/Tabs'\r\nimport { withStyles } from '@material-ui/core/styles'\r\nimport IncidentTable from '../../containers/IncidentTable'\r\n// import { lightBlue } from '@material-ui/core/colors'\r\n\r\nconst styles = {\r\n tabDraft: {\r\n maxWidth: '20%',\r\n color: 'white',\r\n opacity: '0.5',\r\n backgroundColor: '#3f50b5',\r\n border: '2px solid black'\r\n // color: 'darkblue',\r\n // opacity: '0.2'\r\n // border: '1px solid black'\r\n // borderTopLeftRadius: '20px',\r\n // borderTopRightRadius: '20px'\r\n },\r\n\r\n tabInProcess: {\r\n maxWidth: '40%',\r\n color: 'white',\r\n opacity: '0.5',\r\n backgroundColor: '#3f50b5',\r\n border: '2px solid black'\r\n // borderTopLeftRadius: '20px',\r\n // borderTopRightRadius: '20px'\r\n },\r\n\r\n tabClosed: {\r\n maxWidth: '20%',\r\n color: 'white',\r\n opacity: '0.5',\r\n backgroundColor: '#3f50b5',\r\n border: '2px solid black'\r\n // borderTopLeftRadius: '20px',\r\n // borderTopRightRadius: '20px'\r\n },\r\n\r\n tabAll: {\r\n maxWidth: '20%',\r\n color: 'white',\r\n opacity: '0.5',\r\n backgroundColor: '#3f50b5',\r\n border: '2px solid black'\r\n // borderTopLeftRadius: '20px',\r\n // borderTopRightRadius: '20px'\r\n }\r\n}\r\nconst IncidentTables = ({\r\n classes,\r\n onLoadHazmatData,\r\n onTabChange,\r\n page,\r\n selectedTab\r\n}) => {\r\n return (\r\n
\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n {selectedTab === 0 && (\r\n \r\n )}\r\n {selectedTab === 1 && (\r\n \r\n )}\r\n {selectedTab === 2 && (\r\n \r\n )}\r\n {selectedTab === 3 && (\r\n \r\n )}\r\n
\r\n\r\n )\r\n\r\n}\r\n\r\nexport default withStyles(styles)(IncidentTables)\r\n","import React, { Component } from 'react'\r\n\r\nimport * as Roles from '../constants/roles'\r\nimport PageContainer from './PageContainer'\r\nimport IncidentTables from './IncidentTables/IncidentTables'\r\n\r\n\r\nclass Home extends Component {\r\n \r\n handleTabChange = (event, value) => {\r\n const { onTabChange, selectedTab } = this.props\r\n // console.log('[components.Home] handleTabChange - value = ', value)\r\n if (value !== selectedTab) {\r\n onTabChange(value)\r\n }\r\n }\r\n\r\n render () {\r\n const { role, onLoadHazmatData, selectedTab, page} = this.props\r\n return (\r\n \r\n {/* */}\r\n \r\n { (role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.DANGEROUS_GOODS_ADMIN_READONLY|| role === Roles.CARRIER || role === Roles.AGENT || role === Roles.CUSTOMER_SERVICE_AGENT) &&\r\n \r\n }\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default Home\r\n","import { connect } from 'react-redux'\r\nimport Home from '../components/Home'\r\nimport { getIncidentCriteria } from '../selectors/incident'\r\nimport { getIncidentsPage } from '../services/incident'\r\nimport * as TabActions from '../actions/tab'\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n // console.log(\"[containers/HomePage] mapStateToProps\")\r\n const role = state.user.role\r\n const selectedTab = state.tabs.incidents\r\n const page = state.table.incidentsTable.page\r\n // console.log(\"[containers/HomePage] selectedTab=\",selectedTab) \r\n const onLoadHazmatData = (filter, start, count) => {\r\n // console.log(\"[containers/HomePage] - calling getIncidentCriteria\" ) \r\n const criteria = getIncidentCriteria(state, filter)\r\n return getIncidentsPage(criteria, start, count)\r\n }\r\n return {\r\n onLoadHazmatData,\r\n role,\r\n page,\r\n selectedTab\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n const onTabChange = (value) => {\r\n // console.log(\"[containers/HomePage.mapDispatchToProps] onTabChange value=\",value) \r\n dispatch(TabActions.change('incidents', value))\r\n }\r\n return {\r\n onTabChange\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Home)\r\n","import React, { Component } from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport {\r\n Divider,\r\n Grid,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n withStyles\r\n} from '@material-ui/core'\t\r\n\r\nimport { indigo, blue, grey, red } from '@material-ui/core/colors'\r\nimport * as Roles from '../constants/roles'\r\nimport PageContainer from './PageContainer'\r\nimport { getAllPendingPersons } from '../services/person'\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'\r\n\r\nconst styles = (theme) => ({\r\n addIcon: {\r\n color: grey[600],\r\n cursor: 'pointer',\r\n marginRight: '64px',\r\n '&:hover': {\r\n color: blue[700]\r\n }\r\n },\r\n cancelIcon: {\r\n color: grey[600],\r\n cursor: 'pointer',\r\n marginRight: '64px',\r\n '&:hover': {\r\n color: red[700]\r\n }\r\n },\r\n container: {\r\n padding: theme.spacing(2)\r\n },\r\n errorIcon: {\r\n color: red[500]\r\n },\r\n hidden: {\r\n visibility: 'hidden'\r\n },\r\n iconColumn: {\r\n width: '30px'\r\n },\r\n tableBodyCell: {\r\n verticalAlign: 'top'\r\n },\r\n tableCell: {\r\n padding: '12px'\r\n },\r\n tooltip: {\r\n fontSize: '12px'\r\n }\r\n})\r\n\r\nconst columns = [\r\n { label: 'Manage User Key', name: 'manageUserKey' },\r\n { label: 'User Id', name: 'userId' },\r\n { label: 'Agency Abbreviation', name: 'agencyAbbreviation' },\r\n { label: 'Carrier Abbreviation', name: 'carrierAbbreviation' },\r\n { label: 'Entity Type', name: 'entityType' },\r\n { label: 'Contact Email', name: 'contactEmail' },\r\n { label: 'Contact Name', name: 'contactName' },\r\n { label: 'Contact Phone', name: 'contactPhone' },\r\n { label: 'Created Datetime', name: 'createdDatetime' }\r\n]\r\n\r\nclass AdminHome extends Component {\r\n state = {\r\n rows: []\r\n }\r\n\r\n componentDidMount () {\r\n // console.log('[components.AdminHome.index] componentDidMount() ')\r\n // console.log('[components.AdminHome.componentDidMount] getAllPendingPersons ') \r\n getAllPendingPersons()\r\n .then((rows) => {\r\n // console.log(rows)\r\n this.setState({ rows })\r\n })\r\n }\r\n\r\n render () {\r\n // console.log('this.props',this.props);\r\n // console.log('this.state',this.state);\r\n const { role } = this.props\r\n // console.log('[components.AdminHome] render () -- role= ',role) \r\n // (role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.DANGEROUS_GOODS_ADMIN_READONLY) && {console.log();} \r\n const { classes } = this.props;\r\n const { rows } = this.state\r\n return (\r\n \r\n Admin Home\r\n \t\r\n     User Registration Requests Pending Approval\r\n \r\n \r\n \r\n \r\n \r\n \r\n {columns.map((column) => (\r\n {column.label}\r\n ))}\r\n \r\n \r\n { (role === Roles.DANGEROUS_GOODS_ADMIN) &&\r\n \r\n {rows.map((row, index) => (\r\n \r\n {columns.map((column) => (\r\n {row[column.name]}\r\n ))}\r\n \r\n ))}\r\n \r\n }\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(AdminHome)\r\n","import { connect } from 'react-redux'\r\nimport AdminHome from '../components/AdminHome'\r\nimport * as TabActions from '../actions/tab'\r\nimport { getAllPendingPersons } from '../services/person'\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n // console.log(\"[containers/AdminHomePage] mapStateToProps\")\r\n const role = state.user.role\r\n const onLoadPersonData = () => {\r\n // console.log(\"[containers/AdminHomePage/mapStateToProps] - onLoadPersonData\")\r\n return getAllPendingPersons()\r\n }\r\n return {\r\n role,\r\n onLoadPersonData\r\n }\r\n\r\n\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n // console.log(\"[containers/AdminHomePage] mapDispatchToProps\")\r\n const onTabChange = (value) => {\r\n dispatch(TabActions.change('persons', value))\r\n }\r\n return {\r\n onTabChange\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AdminHome)\r\n","import React from 'react'\r\nimport { KeyboardDatePicker } from '@material-ui/pickers'\r\n\r\nconst DatePickerField = ({ input, ...other }) => (\r\n \r\n)\r\n\r\nexport default DatePickerField","import React, { Component } from 'react'\r\nimport MenuItem from '@material-ui/core/MenuItem'\r\nimport { TextField } from '../ReduxFormMaterialUI'\r\n\r\nclass SelectField extends Component {\r\n componentDidMount () {\r\n // console.log(['[SelectField] componentDidMount', this.props])\r\n const { loadData } = this.props\r\n\r\n if (loadData) {\r\n loadData()\r\n }\r\n }\r\n\r\n componentDidUpdate (prevProps) {\r\n // console.log(['[SelectField] componentDidUpdate', this.props]) \r\n const { loadData } = this.props\r\n\r\n if (loadData) {\r\n loadData()\r\n }\r\n }\r\n\r\n render () {\r\n const { input, options, ...other } = this.props\r\n\r\n // Fix unknown prop warnings\r\n const textFieldProps = Object.assign({}, other)\r\n delete textFieldProps.loadData\r\n\r\n return (\r\n \r\n {options.map((option, index) => (\r\n \r\n {option.label}\r\n \r\n ))}\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default SelectField\r\n","import { connect } from 'react-redux'\r\nimport * as CarrierActions from '../../actions/carrier'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\nconst mapStateToProps = (state) => {\r\n const carriers = state.carrier.carriers\r\n\r\n const options = carriers\r\n .map((carrier) => ({\r\n label: carrier.code + ' - ' + carrier.name,\r\n name: carrier.name,\r\n value: carrier.code,\r\n altValue: carrier.name\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const loadData = () => {\r\n // return dispatch(CarrierActions.retrieveAllCarriers())\r\n return dispatch(CarrierActions.retrievePilotCarriers()) \r\n }\r\n\r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import { connect } from 'react-redux'\r\nimport * as CountryActions from '../../actions/country'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\nconst mapStateToProps = (state) => {\r\n const countries = state.country.countries\r\n\r\n const options = countries\r\n .map((country) => ({\r\n label: country.name,\r\n value: country.code\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const loadData = () => {\r\n return dispatch(CountryActions.retrieveAllCountries())\r\n }\r\n\r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import { connect } from 'react-redux'\r\nimport * as AirportActions from '../../actions/airport'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\nconst mapStateToProps = (state) => {\r\n const airportDestinations = state.airport.airportDestinations\r\n\r\n const options = airportDestinations\r\n .map((airport) => ({\r\n label: airport.code + ' - ' + airport.name,\r\n name: airport.name,\r\n value: airport.code,\r\n altValue: airport.name\r\n\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const loadData = () => {\r\n return dispatch(AirportActions.retrieveDestinationAirports())\r\n }\r\n\r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import { connect } from 'react-redux'\r\nimport * as AirportActions from '../../actions/airport'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\nconst mapStateToProps = (state) => {\r\n const airportOrigins = state.airport.airportOrigins\r\n\r\n const options = airportOrigins\r\n .map((airport) => ({\r\n label: airport.code + ' - ' + airport.name,\r\n name: airport.name,\r\n value: airport.code,\r\n altValue: airport.name\r\n\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const loadData = () => {\r\n return dispatch(AirportActions.retrieveOriginAirports())\r\n }\r\n\r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import { connect } from 'react-redux'\r\nimport * as OptionActions from '../../actions/option'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\nconst mapStateToProps = (state) => {\r\n const initialFindings = state.option.initialFindings\r\n\r\n const options = initialFindings\r\n .map((option) => ({\r\n id: option.id,\r\n field: option.field,\r\n label: option.description,\r\n value: option.name,\r\n description: option.description\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const loadData = () => {\r\n return dispatch(OptionActions.retrieveInitialFindings())\r\n }\r\n\r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import { connect } from 'react-redux'\r\nimport * as OptionActions from '../../actions/option'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\nconst mapStateToProps = (state) => {\r\n const issueTypes = state.option.issueTypes\r\n\r\n const options = issueTypes\r\n .map((option) => ({\r\n id: option.id,\r\n field: option.field,\r\n label: option.description,\r\n value: option.name,\r\n description: option.description\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const loadData = () => {\r\n return dispatch(OptionActions.retrieveIssueTypes())\r\n }\r\n\r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import { connect } from 'react-redux'\r\nimport * as OptionActions from '../../actions/option'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\nconst mapStateToProps = (state) => {\r\n const icaoHazardClasses = state.option.icaoHazardClasses\r\n\r\n const options = icaoHazardClasses\r\n .map((option) => ({\r\n id: option.id,\r\n field: option.field,\r\n label: option.description,\r\n value: option.name,\r\n description: option.description\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const loadData = () => {\r\n return dispatch(OptionActions.retrieveIcaoHazardClasses())\r\n }\r\n\r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import { connect } from 'react-redux'\r\nimport * as OptionActions from '../../actions/option'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\nconst mapStateToProps = (state) => {\r\n const issueIdentifiers = state.option.issueIdentifiers\r\n\r\n const options = issueIdentifiers\r\n .map((option) => ({\r\n id: option.id,\r\n field: option.field,\r\n label: option.description,\r\n value: option.name,\r\n description: option.description\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const loadData = () => {\r\n return dispatch(OptionActions.retrieveIssueIdentifiers())\r\n }\r\n\r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import { connect } from 'react-redux'\r\nimport * as OptionActions from '../../actions/option'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\nconst mapStateToProps = (state) => {\r\n // console.log('RestrictedItemSelect.mapStateToProps');\r\n const restrictedItems = state.option.restrictedItems\r\n\r\n const options = restrictedItems\r\n .map((option) => ({\r\n id: option.id,\r\n field: option.field,\r\n label: option.description,\r\n value: option.name,\r\n description: option.description\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const loadData = () => {\r\n return dispatch(OptionActions.retrieveRestrictedItems())\r\n }\r\n\r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import { connect } from 'react-redux'\r\nimport * as OptionActions from '../../actions/option'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\nconst mapStateToProps = (state) => {\r\n const usStates = state.option.usStates\r\n\r\n const options = usStates\r\n .map((option) => ({\r\n id: option.id,\r\n field: option.field,\r\n label: option.description,\r\n value: option.name,\r\n description: option.description\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const loadData = () => {\r\n return dispatch(OptionActions.retrieveUsStates())\r\n }\r\n\r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import { connect } from 'react-redux'\r\nimport * as OptionActions from '../../actions/option'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\n\r\n\r\nconst mapStateToProps = (state) => {\r\n const dangerousItems = state.option.dangerousItems\r\n\r\n const options = dangerousItems\r\n .map((option) => ({\r\n id: option.id,\r\n field: option.field,\r\n label: option.description,\r\n value: option.description,\r\n description: option.name\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\n\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n //console.log('[DangerousItemSelect] mapDispatchToProps ', ownProps)\r\n //console.log('ownProps.hazclass =' + ownProps.hazclass)\r\n const loadData = () => {\r\n // console.log('[DangerousItemSelect] loadData - ownProps.hazclass=' + ownProps.hazclass) \r\n return (\r\n dispatch(OptionActions.retrieveDangerousItems(ownProps.hazclass)) \r\n )\r\n }\r\n \r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import React, { Component } from 'react'\r\n\r\nimport Dialog from '@material-ui/core/Dialog'\r\n\r\nclass EnlargeableImage extends Component {\r\n state = {\r\n imageDialogOpen: false,\r\n imageLoading: false\r\n }\r\n\r\n // componentDidMount () {\r\n // const { loadImage } = this.props\r\n\r\n // if (loadImage) {\r\n // this.setState({ imageLoading: true })\r\n // loadImage()\r\n // .then(() => {\r\n // this.setState({ imageLoading: false })\r\n // })\r\n // .catch(() => {\r\n // this.setState({ imageLoading: false })\r\n // })\r\n // }\r\n // }\r\n\r\n enlargeImage = () => {\r\n this.setState({ imageDialogOpen: true })\r\n }\r\n\r\n handleImageDialogClose = () => {\r\n this.setState({ imageDialogOpen: false })\r\n }\r\n\r\n render () {\r\n const { imageDialogOpen } = this.state\r\n const { image } = this.props\r\n\r\n // if (!image) {\r\n // if (imageLoading) {\r\n // return (\r\n //
\r\n // \r\n //
\r\n // )\r\n // }\r\n\r\n // return
N/A
\r\n // }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default EnlargeableImage\r\n","import { connect } from 'react-redux'\r\nimport EnlargeableImage from '../components/EnlargeableImage'\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n // const images = state.entities.incidentItemImages[ownProps.incidentId]\r\n // const itemImages = images && images[ownProps.itemId]\r\n const image = ownProps.image\r\n // console.log('Image IS !!!' + image)\r\n return {\r\n image\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n // const loadImage = () => {\r\n // const incidentId = ownProps.incidentId\r\n // const itemId = ownProps.itemId\r\n // return dispatch(IncidentActions.retrieveIncidentItemImage(incidentId, itemId, seqNbr))\r\n // }\r\n\r\n return {\r\n //loadImage\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(EnlargeableImage)\r\n","import React, { Component, Fragment } from 'react'\r\nimport * as Incidents from '../../constants/incidents'\r\nimport PropTypes from 'prop-types'\r\nimport { compose } from 'redux'\r\nimport { Field, reduxForm } from 'redux-form' \r\nimport { TextField, Checkbox } from '../ReduxFormMaterialUI'\r\nimport { Divider, Grid, Typography, withStyles } from '@material-ui/core'\r\nimport { blue, grey, red } from '@material-ui/core/colors'\r\nimport Snackbar from '@material-ui/core/Snackbar'\r\nimport * as Roles from '../../constants/roles'\r\nimport PageContainer from '../PageContainer'\r\nimport ProgressButton from '../buttons/ProgressButton'\r\nimport DatePickerField from '../inputs/DatePickerField'\r\nimport CarrierSelect from '../../containers/inputs/CarrierSelect'\r\nimport CountrySelect from '../../containers/inputs/CountrySelect'\r\nimport AirportDestinationSelect from '../../containers/inputs/AirportDestinationSelect'\r\nimport AirportOriginSelect from '../../containers/inputs/AirportOriginSelect'\r\nimport InitialFindingSelect from '../../containers/inputs/InitialFindingSelect'\r\nimport IssueTypeSelect from '../../containers/inputs/IssueTypeSelect'\r\nimport IcaoHazardClassSelect from '../../containers/inputs/IcaoHazardClassSelect'\r\nimport IssueIdentifierSelect from '../../containers/inputs/IssueIdentifierSelect'\r\nimport RestrictedItemSelect from '../../containers/inputs/RestrictedItemSelect'\r\nimport UsStateSelect from '../../containers/inputs/UsStateSelect'\r\nimport DangerousItemSelect from '../../containers/inputs/DangerousItemSelect'\r\nimport Dropzone from 'react-dropzone'\r\nimport LoadingImage from '../../containers/LoadingImage'\r\nimport * as verif from '../../constants/incidentVerificationStatus'\r\n\r\nconst styles = (theme) => ({\r\n addIcon: {\r\n color: grey[600],\r\n cursor: 'pointer',\r\n marginRight: '64px',\r\n '&:hover': {\r\n color: blue[700]\r\n }\r\n },\r\n cancelIcon: {\r\n color: grey[600],\r\n cursor: 'pointer',\r\n marginRight: '64px',\r\n '&:hover': {\r\n color: red[700]\r\n }\r\n },\r\n container: {\r\n padding: theme.spacing(2)\r\n },\r\n errorIcon: {\r\n color: red[500]\r\n },\r\n hidden: {\r\n visibility: 'hidden'\r\n },\r\n iconColumn: {\r\n width: '30px'\r\n },\r\n tableBodyCell: {\r\n verticalAlign: 'top'\r\n },\r\n tableCell: {\r\n padding: '12px'\r\n },\r\n tooltip: {\r\n fontSize: '12px'\r\n },\r\n upldImage: {\r\n height: '100px',\r\n width: '100px',\r\n backgroundColor: 'lightblue',\r\n border: 'dashed',\r\n borderColor: 'darkblue'\r\n },\r\n dz: {\r\n height: '100px',\r\n width: '100px',\r\n borderColor: 'white',\r\n align: 'left'\r\n },\r\n image: {\r\n padding: '0 4px'\r\n }\r\n})\r\n\r\nconst today = new Date();\r\n\r\nfunction lettersNumbersCheck(name)\r\n {\r\n var regEx = /^[0-9a-zA-Z]+$/;\r\n if(name.match(regEx))\r\n { return true; }\r\n else //alert(\"Please enter letters and numbers only.\");\r\n { return false; }\r\n } \r\n\r\n function zipPlusFourCheck(name)\r\n {\r\n var regEx = /^[0-9-]+$/;\r\n if(name.match(regEx))\r\n { return true; }\r\n else //alert(\"Please enter numbers or dash only\");\r\n { return false; }\r\n } \r\n\r\n function domesticUsPhoneCheck(name)\r\n {\r\n var regEx = /^[0-9-( )x]+$/;\r\n if(name.match(regEx))\r\n { return true; }\r\n else //alert(\"Please enter numbers parens or dash only\");\r\n { return false; }\r\n } \r\n //1111111111 \r\n //0 1-(800)111-1111 x1234\r\n\r\n\r\n \r\n\r\nclass TrackerForm extends Component {\r\n\r\n state = { \r\n phone: ''\r\n }\r\n \r\n goBack = () => {\r\n // console.log('[components/TrackerForm] - goBack')\r\n this.props.onBackClick()\r\n }\r\n\r\n componentDidMount = () => {\r\n // console.log('[components/TrackerForm] - componentDidMount')\r\n this.props.change('dateReported',today);\r\n this.props.change('dateOfDiscovery',today); \r\n this.props.deleteStagedImages()\r\n this.props.change('status',Incidents.DRAFT) \r\n // console.log('[components/TrackerForm] - componentDidMount -- setting airlineReportingIncident to ', this.props.carrier)\r\n this.props.change('airlineReportingIncident', this.props.carrier)\r\n if (undefined === this.props.carrier) {\r\n // console.log('[components/TrackerForm] - componentDidMount -- setting airlineReportingIncident to --')\r\n this.props.change('airlineReportingIncident', '--')\r\n }\r\n // console.log('[components/TrackerForm] - componentDidMount -- setting agencyReportingIncident to ', this.props.agency)\r\n this.props.change('agencyReportingIncident', this.props.agency)\r\n if (undefined === this.props.agency) {\r\n // console.log('[components/TrackerForm] - componentDidMount -- setting agencyReportingIncident to --')\r\n this.props.change('agencyReportingIncident', '--')\r\n }\r\n // console.log('[components/TrackerForm] - componentDidMount -- setting entityReportingIncident to ', this.props.entity)\r\n this.props.change('entityReportingIncident', this.props.entity)\r\n if (undefined === this.props.entity) {\r\n // console.log('[components/TrackerForm] - componentDidMount -- setting entityReportingIncident to --')\r\n this.props.change('entityReportingIncident', '--')\r\n }\r\n }\r\n\r\n\r\n render () {\r\n\r\n // console.log('[components.TrackerForm] render ') \r\n const { \r\n asyncValidating,\r\n classes,\r\n handleSubmit,\r\n onSnackbarClose,\r\n snackbarOpen,\r\n submitting,\r\n stageImage,\r\n role,\r\n carrier } = this.props; \r\n\r\n // console.log('[components.TrackerForm] role= ' + this.props.role) \r\n\r\n const stageIt = (acceptedFiles) =>{\r\n acceptedFiles.forEach((file) => {\r\n new Promise((resolve,reject) => {\r\n let reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => {\r\n if (!!reader.result){\r\n resolve(reader.result)\r\n }\r\n else{\r\n reject(Error(\"Failed converting to base64\"))\r\n }\r\n }\r\n })\r\n .then(result => {\r\n file.dataUrl = result.split(',')[1]\r\n stageImage(file)\r\n })\r\n .catch(err =>{\r\n // console.log(err)\r\n })\r\n })\r\n }\r\n\r\n\r\n let issueTypeSelect = (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n if ('ND' !== this.props.initialFindingValue) issueTypeSelect = null; \r\n\r\n\r\n let icaoHazardClassSelect = ( \r\n \r\n \r\n \r\n \r\n \r\n )\r\n if ('DG' !== this.props.initialFindingValue) icaoHazardClassSelect = null; \r\n\r\n let dangerousItemSelect = (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n if ('DG' !== this.props.initialFindingValue) dangerousItemSelect = null; \r\n if ('Not Selected' === this.props.icaoHazardClassValue) dangerousItemSelect = null; \r\n if (undefined === this.props.icaoHazardClassValue) dangerousItemSelect = null; \r\n\r\n let issueIdentificationMeansSelect = (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n if ('NS' === this.props.initialFindingValue ) issueIdentificationMeansSelect = null; \r\n if ('DG' === this.props.initialFindingValue && 'Not Selected' === this.props.icaoHazardClassValue) issueIdentificationMeansSelect = null; \r\n if ('ND' === this.props.initialFindingValue && 'NS' === this.props.issueTypeValue) issueIdentificationMeansSelect = null; \r\n if ('ND' === this.props.initialFindingValue && 'RI' === this.props.issueTypeValue && 'Not Selected' === this.props.restrictedItemValue) issueIdentificationMeansSelect = null; \r\n\r\n let restrictedItemSelect = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n if ('RI' !== this.props.issueTypeValue) restrictedItemSelect = null;\r\n if ('ND' !== this.props.initialFindingValue) restrictedItemSelect = null; \r\n\r\n let commentsGeneralField = (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n if ('NS' === this.props.initialFindingValue) commentsGeneralField = null;\r\n if ('DG' === this.props.initialFindingValue && 'Not Selected' === this.props.dangerousItemValue ) commentsGeneralField = null;\r\n if ('DG' === this.props.initialFindingValue && 'Not Selected' === this.props.icaoHazardClassValue ) commentsGeneralField = null;\r\n if ('ND' === this.props.initialFindingValue && 'NS' === this.props.issueTypeValue ) commentsGeneralField = null;\r\n if ('ND' === this.props.initialFindingValue && 'RI' === this.props.issueTypeValue && 'Not Selected' === this.props.restrictedItemValue ) commentsGeneralField = null;\r\n \r\n //Set customs barcode verification status -- begin\r\n if (true === this.props.skipBarcodeCustomsVerificationValue) {\r\n // console.log('Setting Customs BC verif status to 5 verif.SKIPPED_BY_USER because skip Customs BC verif is true')\r\n this.props.change('barcodeCustomsVerificationStatus',verif.SKIPPED_BY_USER) \r\n } \r\n else {\r\n // console.log('Setting Customs BC verif status to 0 verif.PENDING because skip Customs BC verif is false')\r\n this.props.change('barcodeCustomsVerificationStatus',verif.PENDING) \r\n var bcCustomsValue = this.props.barcodeCustomsValue;\r\n var bcCustomsVerifNewValue = verif.PENDING;\r\n if ((undefined === bcCustomsValue) || (null===bcCustomsValue) || (''===bcCustomsValue) || (13!==bcCustomsValue.length) || (!lettersNumbersCheck(bcCustomsValue))) {\r\n bcCustomsVerifNewValue = verif.INVALID_PER_BIZ_RULES;\r\n }\r\n else {\r\n bcCustomsVerifNewValue = verif.VALID_PER_BIZ_RULES;;\r\n }\r\n if (verif.SKIPPED_BY_USER !== this.props.barcodeCustomsVerificationStatusValue) {\r\n this.props.change('barcodeCustomsVerificationStatus',bcCustomsVerifNewValue) \r\n }\r\n }\r\n //Set customs barcode verification status -- end\r\n\r\n //Set Cn35 barcode verification status -- begin\r\n if (true === this.props.skipBarcodeCn35VerificationValue) {\r\n // console.log('Setting Cn35 BC verif status to 5 verif.SKIPPED_BY_USER because skip Cn35 BC verif is true')\r\n this.props.change('barcodeCn35VerificationStatus',verif.SKIPPED_BY_USER) \r\n } \r\n else {\r\n // console.log('Setting Cn35 BC verif status to 0 verif.PENDING because skip Cn35 BC verif is false')\r\n this.props.change('barcodeCn35VerificationStatus',verif.PENDING) \r\n var bcCn35Value = this.props.barcodeCn35Value;\r\n var bcCn35VerifNewValue = verif.PENDING;\r\n // console.log('BC Cn35 text = ',bcCn35text)\r\n if ((undefined === bcCn35Value) || (null===bcCn35Value) || (''===bcCn35Value) || (29!==bcCn35Value.length) || (!lettersNumbersCheck(bcCn35Value))) {\r\n bcCn35VerifNewValue = verif.INVALID_PER_BIZ_RULES;\r\n }\r\n else {\r\n bcCn35VerifNewValue = verif.VALID_PER_BIZ_RULES;;\r\n }\r\n // console.log('barcodeCn35VerificationStatusValue was ',this.props.barcodeCn35VerificationStatusValue)\r\n if (verif.SKIPPED_BY_USER !== this.props.barcodeCn35VerificationStatusValue) {\r\n // console.log('Setting barcodeCn35VerificationStatus to',bcCn35newValue)\r\n this.props.change('barcodeCn35VerificationStatus',bcCn35VerifNewValue) \r\n }\r\n }\r\n //Set Cn35 barcode verification status -- end\r\n\r\n return (\r\n \r\n Create Incident - Draft\r\n \r\n\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n { (role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.DANGEROUS_GOODS_ADMIN_READONLY || role === Roles.AGENT) &&\r\n \r\n {this.props.change('airCarrierFullName',event.currentTarget.attributes.altvalue.value)}} \r\n />\r\n \r\n }\r\n { (role === Roles.CARRIER) &&\r\n \r\n \r\n \r\n }\r\n\r\n { (role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.DANGEROUS_GOODS_ADMIN_READONLY) &&\r\n \r\n \r\n \r\n }\r\n { (role === Roles.AGENT || role === Roles.CARRIER) &&\r\n \r\n \r\n \r\n }\r\n\r\n { (role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.DANGEROUS_GOODS_ADMIN_READONLY) &&\r\n \r\n \r\n \r\n } \r\n { (role === Roles.CARRIER) &&\r\n \r\n \r\n \r\n } \r\n { (role === Roles.AGENT) &&\r\n \r\n \r\n \r\n } \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {\r\n this.props.change('airportHubFullName',event.currentTarget.attributes.altvalue.value ); \r\n }} \r\n />\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {\r\n this.props.change('originAirport',event.currentTarget.attributes.altvalue.value ); \r\n }} \r\n />\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {icaoHazardClassSelect} \r\n \r\n\r\n \r\n {issueTypeSelect} \r\n {restrictedItemSelect} \r\n \r\n \r\n {issueIdentificationMeansSelect}\r\n {dangerousItemSelect} \r\n \r\n \r\n {commentsGeneralField}\r\n \r\n Sender\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n Recipient/Consignee \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n this.props.updateWorkNote(event.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n {this.props.staged_images.map ?\r\n this.props.staged_images.map((image, index)=>(\r\n \r\n ))\r\n :\r\n ''\r\n }\r\n {role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.CARRIER || role === Roles.AGENT ?\r\n stageIt(acceptedFiles)}>\r\n {({getRootProps, getInputProps}) => (\r\n
\r\n
\r\n \r\n
Drag 'n' drop, or click to select files
\r\n
\r\n
\r\n )}\r\n
\r\n :''\r\n }\r\n
\r\n\r\n \r\n \r\n {role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.CARRIER || role === Roles.AGENT ? \r\n \r\n SUBMIT COMPLETE\r\n \r\n :''\r\n }\r\n \r\n \r\n {role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.CARRIER || role === Roles.AGENT ? \r\n {\r\n this.props.saveDraft()\r\n }}\r\n >\r\n SAVE AS DRAFT\r\n \r\n :''\r\n } \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nconst validate = (values) => {\r\n // console.log('[components/TrackerForm] validate')\r\n const errors = {}\r\n //console.log('[components/TrackerForm] in validate')\r\n let kvArray=[\r\n //TODO: airlineReportingIncident is required of Air Carrier. It may not be required of military(?) Is it required of USPIS / DG_ADMIN?\r\n //['airlineReportingIncident','Reporting Airline must be selected'],\r\n // ['reportingContactName','Please enter a valid contact name'],\r\n // ['reportingContactPhone','Please enter a valid phone number'],\r\n // ['reportingContactEmail','Please enter a valid email'],\r\n // ['reportingAirportHub','Reporting Airport Hub must be selected'],\r\n ['dateOfDiscovery', 'must be filled out'],\r\n // ['originOfficeOfExchange','USA Origin Airport must be selected'],\r\n // ['airlineRecordNo','Please fill out Airline Record Number'],\r\n ['barcodeCn35','CN35 Barcode must be 29 alphanumeric characters'],\r\n ['barcodeCustoms','Customs Barcode must be 13 alphanumeric characters'],\r\n ['barcodeHandlingUnit','Handling Unit Barcode must be 29 alphanumeric characters if filled'],\r\n // ['initialFinding','Initial Finding must be selected'],\r\n // ['issueType','Issue Type must be selected'],\r\n // ['icaoHazardClass','ICAO Hazard Class must be selected'],\r\n // ['dangerousItem',' Dangerous Item Type must be selected'],\r\n // ['restrictedItem','Restricted Item Type must be selected'],\r\n // ['issueIdentificationMeans','How Alarm Incident was Identified must be selected'], \r\n ['senderPhone','Please enter a valid domestic US phone format'],\r\n // ['senderCompany','Please enter a valid company'], \r\n // ['senderName','Please enter a valid name'],\r\n // ['senderAddress','Please enter a valid address'],\r\n // ['senderState','State must be selected'],\r\n ['senderZip','must be a valid ZIP or ZIP+4 format'],\r\n // ['recipientPhone','Please enter a valid recipient phone'],\r\n // ['recipientCompany','Please enter a valid recipient company'], \r\n // ['recipientName','Please enter a valid name'],\r\n // ['recipientAddress','Please enter a valid address'],\r\n // ['recipientZip','Please enter a valid postal code'],\r\n // ['recipientCountry','Country must be selected'],\r\n // ['contentDescrnOnCustomsForm','Please enter a valid description']\r\n ]\r\n //console.log('[components/TrackerForm] in validate')\r\n let myMap = new Map(kvArray);\r\n\r\n //console.log('[components/TrackerForm] in validate')\r\n const requiredFields = [\r\n 'barcodeCn35',\r\n 'barcodeCustoms',\r\n 'reportingContactName',\r\n 'reportingContactPhone',\r\n 'reportingContactEmail',\r\n 'reportingAirportHub',\r\n 'dateOfDiscovery',\r\n 'originOfficeOfExchange',\r\n 'initialFinding',\r\n 'issueType',\r\n 'icaoHazardClass',\r\n 'dangerousItem',\r\n 'senderPhone', \r\n 'senderName',\r\n 'senderAddress',\r\n 'senderState',\r\n 'senderCity',\r\n 'senderZip',\r\n 'recipientPhone',\r\n 'recipientName',\r\n 'recipientAddress',\r\n 'recipientCity',\r\n 'recipientCountry',\r\n 'recipientZip',\r\n 'contentDescrnOnCustomsForm'\r\n ]\r\n //console.log('[components/TrackerForm] in validate')\r\n //TODO -- prefer dashString constant instead of '--' magic value\r\n requiredFields.forEach((field) => {\r\n if (values[field] === '' || values[field] === null || values[field] === undefined || values[field] === '--') {\r\n errors[field] = myMap.get(field) || 'Required'\r\n }\r\n })\r\n\r\n\r\n //Validate Customs barcode -- begin\r\n var bcCustomsText = values['barcodeCustoms'];\r\n if ((undefined === bcCustomsText) || (null===bcCustomsText) || (''===bcCustomsText) || (13!==bcCustomsText.length) || (!lettersNumbersCheck(bcCustomsText))) {\r\n if (0 >= values['barcodeCustomsVerificationStatus']) {\r\n errors['barcodeCustoms'] = myMap.get('barcodeCustoms') || 'Required'\r\n }\r\n }\r\n //Validate Customs barcode -- end\r\n\r\n\r\n //Validate Cn35 barcode -- begin\r\n var bcCn35text = values['barcodeCn35'];\r\n if ((undefined === bcCn35text) || (null===bcCn35text) || (''===bcCn35text) || (29!==bcCn35text.length) || (!lettersNumbersCheck(bcCn35text))) {\r\n if (0 >= values['barcodeCn35VerificationStatus']) {\r\n errors['barcodeCn35'] = myMap.get('barcodeCn35') || 'Required'\r\n }\r\n }\r\n //Validate Cn35 barcode -- end\r\n\r\n\r\n //Validate HU barcode -- begin \r\n var bcHutext = values['barcodeHandlingUnit'];\r\n if ((undefined === bcHutext) || (null===bcHutext) || (''===bcHutext)) { /*OK*/ }\r\n else if ((29!==bcHutext.length) || (!lettersNumbersCheck(bcHutext))) {\r\n errors['barcodeHandlingUnit'] = myMap.get('barcodeHandlingUnit') || 'Must be complete if filled'\r\n }\r\n //Validate HU barcode -- end \r\n\r\n //Validate Sender ZIP -- begin \r\n var senderZipText = values['senderZip'];\r\n // console.log('senderZipText=',senderZipText)\r\n if ((undefined === senderZipText) || (null===senderZipText) || (''===senderZipText)) { /*OK*/ }\r\n else if ((5>senderZipText.length) || (10senderPhoneText.length) || (25 {\r\n if (values[field] === '' || values[field] === null || values[field] === undefined || values[field] === '--' || values[field] === '---' || values[field] === 'NS' || values[field] === 'Not Selected') {\r\n // console.log('mustBeSelectedField-- ', field)\r\n errors[field] = myMap.get(field) || 'Must Be Selected'\r\n }\r\n })\r\n //console.log('[components/TrackerForm] in validate')\r\n return errors\r\n \r\n}\r\n\r\nTrackerForm.propTypes = {\r\n handleSubmit: PropTypes.func.isRequired, //Declares and requires handleSubmit() function passed from containers.TrackerForm.mapDispatchToProps\r\n snackbarOpen : PropTypes.bool.isRequired,\r\n onSnackbarClose: PropTypes.func.isRequired, //Declares and requires onSnackbarClose () function passed from containers.TrackerForm.mapDispatchToProps\r\n onBackClick: PropTypes.func.isRequired //Declares and requires onBackClick() function passed from containers.TrackerForm.mapDispatchToProps\r\n}\r\n\r\nexport default compose(\r\n reduxForm({\r\n form: 'TrackerForm',\r\n validate \r\n }),\r\n withStyles(styles)\r\n)(TrackerForm)\r\n\r\n","export const PENDING='0'\r\nexport const VALID_PER_BIZ_RULES='1'\r\nexport const VALID_PER_SAMS='2'\r\nexport const INVALID_PER_BIZ_RULES='-1'\r\nexport const INVALID_PER_SAMS='-2'\r\nexport const SKIPPED_BY_USER='5'","import { formValueSelector } from 'redux-form'\r\nimport { connect } from 'react-redux'\r\nimport { withRouter } from 'react-router-dom'\r\n\r\nimport * as IncidentActions from '../actions/incident'\r\nimport * as SnackbarActions from '../actions/snackbar'\r\nimport TrackerForm from '../components/TrackerForm'\r\n\r\nimport * as Roles from '../constants/roles'\r\n\r\n\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n // console.log('[containers/TrackerForm] mapStateToProps')\r\n //console.log('[containers/TrackerForm] mapStateToProps -- ownProps=', ownProps)\r\n const role = state.user.role\r\n const carrier = state.user.carrier\r\n const agency = state.user.agency\r\n const entity = Roles.DANGEROUS_GOODS_ADMIN === state.user.role ? 'DGADMIN' : state.user.role\r\n const snackbarOpen = state.snackbars.trackerForm\r\n const staged_images = state.incident.staged_images || [];\r\n return {\r\n role,\r\n carrier,\r\n agency,\r\n entity,\r\n snackbarOpen, //used in components.TrackerForm.render {} = this.props\r\n staged_images\r\n \r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n // console.log('[containers/TrackerForm] mapDispatchToProps')\r\n //console.log('mapDispatchToProps -- ownProps=', ownProps)\r\n const onBackClick = () => { //will be used in components.TrackerForm.render {} = this.props - possibly as handleBackClick (?)\r\n // console.log('[containers.TrackerForm] -- onBackClick')\r\n //console.log('ownProps', ownProps)\r\n //console.log('ownProps.history', ownProps.history) \r\n ownProps.history.push('/home')\r\n }\r\n\r\n const updateWorkNote = (worknote) => {\r\n dispatch(IncidentActions.updateWorkNote(worknote))\r\n\r\n }\r\n\r\n const onSnackbarClose = () => { // used in components.TrackerForm.render {} = this.props\r\n // console.log('[containers.TrackerForm] onSnackbarClose')\r\n // console.log(\"[containers.TrackerForm] dispatch(SnackbarActions.close('trackerForm'))\")\r\n dispatch(SnackbarActions.close('trackerForm'))\r\n // console.log(\"[containers.TrackerForm] onBackClick\")\r\n onBackClick()\r\n }\r\n const saveDraft = () => { //as 'handleSubmit -- used in components.TrackerForm.render {} = this.props\r\n console.log('[containers.TrackerForm] saveDraft')\r\n return dispatch(IncidentActions.submitDraft())\r\n \r\n }\r\n\r\n const onSubmit = (values) => { //as 'handleSubmit -- used in components.TrackerForm.render {} = this.props\r\n // console.log('[containers.TrackerForm] onSubmit')\r\n return dispatch(IncidentActions.trackerFormSubmit(values))\r\n }\r\n\r\n const stageImage = (file) => {\r\n dispatch(IncidentActions.stageImage(file))\r\n }\r\n\r\n const deleteStagedImages = () => {\r\n dispatch(IncidentActions.deleteStagedImages())\r\n }\r\n\r\n return {\r\n onBackClick,\r\n onSnackbarClose,\r\n onSubmit,\r\n updateWorkNote,\r\n saveDraft,\r\n stageImage,\r\n deleteStagedImages\r\n }\r\n}\r\n\r\n\r\n// See https://redux-form.com/8.3.0/examples/selectingformvalues/\r\n// Decorate with connect to read form values\r\nconst selector = formValueSelector('TrackerForm') // <-- same as form name\r\nconst SelectingTrackerFormValuesForm = connect(state => {\r\n // Here we create the 'selectors' individually\r\n const airlineRecordNoValue = selector(state, 'airlineRecordNo')\r\n const barcodeCn35Value = selector(state, 'barcodeCn35')\r\n const barcodeCn35VerificationStatusValue = selector(state, 'barcodeCn35VerificationStatus') \r\n const skipBarcodeCn35VerificationValue = selector(state, 'skipBarcodeCn35Verification')\r\n const barcodeCustomsValue = selector(state, 'barcodeCustoms')\r\n const barcodeCustomsVerificationStatusValue = selector(state, 'barcodeCustomsVerificationStatus')\r\n const skipBarcodeCustomsVerificationValue = selector(state, 'skipBarcodeCustomsVerification')\r\n const dangerousItemValue = selector(state, 'dangerousItem')\r\n const icaoHazardClassValue = selector(state, 'icaoHazardClass') \r\n const initialFindingValue = selector(state, 'initialFinding') \r\n const issueTypeValue = selector(state, 'issueType') \r\n const recipientPhoneValue = selector(state, 'recipientPhone')\r\n const reportingContactNameValue = selector(state, 'reportingContactName')\r\n const senderPhoneValue = selector(state, 'senderPhone')\r\n const restrictedItemValue = selector(state, 'restrictedItem')\r\n\r\n // // But we could also have created multiple selectors as a group all at once\r\n // const { airlineRecordNoValue, \r\n // barcodeCn35Value, \r\n // barcodeCn35VerificationStatusValue, \r\n // skipBarcodeCn35VerificationValue,\r\n // barcodeCustomsValue, \r\n // barcodeCustomsVerificationStatusValue,\r\n // skipBarcodeCustomsVerificationValue, \r\n // dangerousItemValue,\r\n // icaoHazardClassValue, \r\n // initialFindingValue,\r\n // issueTypeValue, \r\n // recipientPhoneValue,\r\n // reportingContactNameValue, \r\n // senderPhoneValue, \r\n // restrictedItemValue } = selector(state, \r\n // 'airlineRecordNo',\r\n // 'barcodeCn35',\r\n // 'barcodeCn35VerificationStatus' , \r\n // 'skipBarcodeCn35Verification',\r\n // 'barcodeCustoms',\r\n // 'barcodeCustomsVerificationStatus',\r\n // 'skipBarcodeCustomsVerification',\r\n // 'dangerousItem',\r\n // 'icaoHazardClass', \r\n // 'initialFinding',\r\n // 'issueType', \r\n // 'recipientPhone',\r\n // 'reportingContactName',\r\n // 'senderPhone',\r\n // 'restrictedItem')\r\n\r\n\r\n return {\r\n airlineRecordNoValue,\r\n barcodeCn35Value,\r\n barcodeCn35VerificationStatusValue,\r\n skipBarcodeCn35VerificationValue,\r\n barcodeCustomsValue,\r\n barcodeCustomsVerificationStatusValue,\r\n skipBarcodeCustomsVerificationValue,\r\n dangerousItemValue,\r\n icaoHazardClassValue,\r\n initialFindingValue,\r\n issueTypeValue,\r\n recipientPhoneValue,\r\n reportingContactNameValue,\r\n senderPhoneValue,\r\n restrictedItemValue\r\n // fullName: `${firstName || ''} ${lastName || ''}`\r\n }\r\n})(TrackerForm)\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(SelectingTrackerFormValuesForm))\r\n","import React, { Component } from 'react'\r\n\r\nimport { compose } from 'redux'\r\nimport { Field, reduxForm } from 'redux-form'\r\nimport { TextField } from '../ReduxFormMaterialUI'\r\n\r\nimport { Button, Divider, Grid, Typography, withStyles } from '@material-ui/core'\r\nimport { blue, grey, red } from '@material-ui/core/colors'\r\n\r\nimport Snackbar from '@material-ui/core/Snackbar'\r\n\r\nimport PageContainer from '../PageContainer'\r\nimport ProgressButton from '../buttons/ProgressButton'\r\n\r\nimport DatePickerField from '../inputs/DatePickerField'\r\n\r\n\r\n\r\nimport { upper } from '../../utilities/normalizers'\r\n\r\n// import PhoneInput from 'react-phone-input-2'\r\n// import 'react-phone-input-2/lib/style.css'\r\n\r\n\r\n\r\nconst styles = (theme) => ({\r\n addIcon: {\r\n color: grey[600],\r\n cursor: 'pointer',\r\n marginRight: '64px',\r\n '&:hover': {\r\n color: blue[700]\r\n }\r\n },\r\n\r\n cancelIcon: {\r\n color: grey[600],\r\n cursor: 'pointer',\r\n marginRight: '64px',\r\n '&:hover': {\r\n color: red[700]\r\n }\r\n },\r\n\r\n container: {\r\n padding: theme.spacing(2)\r\n },\r\n errorIcon: {\r\n color: red[500]\r\n },\r\n hidden: {\r\n visibility: 'hidden'\r\n },\r\n iconColumn: {\r\n width: '30px'\r\n },\r\n tableBodyCell: {\r\n verticalAlign: 'top'\r\n },\r\n tableCell: {\r\n padding: '12px'\r\n },\r\n tooltip: {\r\n fontSize: '12px'\r\n }\r\n})\r\n\r\nconst debug = false;\r\n\r\nconst today = new Date();\r\n\r\nfunction lettersNumbersSpacesCheck(name)\r\n{\r\n // console.log('lettersNumbersSpacesCheck', name);\r\n var regEx = /^[0-9a-zA-Z_ ]+$/;\r\n if(name.match(regEx))\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n //alert(\"Please enter letters and numbers only.\");\r\n return false;\r\n }\r\n} \r\n\r\nfunction lettersNumbersCheck(name)\r\n{\r\n // console.log('lettersNumbersCheck', name);\r\n var regEx = /^[0-9a-zA-Z_]+$/;\r\n if(name.match(regEx))\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n //alert(\"Please enter letters and numbers only.\");\r\n return false;\r\n }\r\n} \r\n\r\nfunction domesticUsPhoneCheck(name)\r\n{\r\n var regEx = /^[0-9-( )x]+$/;\r\n if(name.match(regEx))\r\n { return true; }\r\n else //alert(\"Please enter numbers parens or dash only\");\r\n { return false; }\r\n} \r\n\r\n// function sleep(ms) {\r\n// return new Promise(resolve => setTimeout(resolve, ms));\r\n// }\r\n\r\nclass CreatePerson extends Component {\r\n\r\n\r\n\r\n componentDidMount = () => {\r\n // console.log('[components/CreatePerson] componentDidMount today=', today)\r\n this.props.change('createdDatetime', today);\r\n this.props.change('updatedDatetime', today);\r\n this.props.change('entityType', 'Carrier');\r\n }\r\n\r\n componentDidUpdate = () => {\r\n // console.log('[components/CreatePerson] componentDidUpdate today=', today)\r\n this.props.change('createdDatetime', today);\r\n this.props.change('updatedDatetime', today);\r\n this.props.change('entityType', 'Carrier');\r\n }\r\n\r\n handleBackClick = () => {\r\n // console.log('[components/CreatePerson] handleBackClick ')\r\n const { history } = this.props\r\n history.push('/adminhome')\r\n }\r\n\r\n\r\n\r\n render() {\r\n // console.log('[components/CreatePerson] render ')\r\n // console.log('state=', this.state)\r\n // console.log('props=', this.props) \r\n const {\r\n asyncValidating,\r\n classes,\r\n handleSubmit,\r\n // onSubmit,\r\n // handleBackClick,\r\n onSnackbarClose,\r\n onSnackbarFailClose, \r\n reset,\r\n snackbarOpen,\r\n snackbarFail,\r\n submitting\r\n } = this.props\r\n // console.log('[components/CreatePerson] render - this=',this)\r\n return (\r\n \r\n Carrier Signup Page\r\n \r\n\r\n\r\n\r\n
\r\n \r\n \r\n Carrier Registration\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Submit\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\n\r\nconst getInitialStartDate = () => {\r\n let date = new Date()\r\n return date\r\n}\r\n\r\nconst initialValues = {\r\n startDate: getInitialStartDate().toISOString()\r\n}\r\n\r\nconst validate = (values) => {\r\n // console.log('validate')\r\n const errors = {}\r\n\r\n const requiredFields = ['carrierAbbreviation', 'carrierFullName', 'userId', 'userPwd', 'confirmUserPwd', 'contactEmail', 'contactName', 'contactPhone']\r\n\r\n requiredFields.forEach((field) => {\r\n if (values[field] === '' || values[field] === null || values[field] === undefined) {\r\n errors[field] = 'Required'\r\n }\r\n })\r\n // console.log('userPwd',values['userPwd']);\r\n // console.log('userPwd',values['confirmUserPwd']);\r\n if (values['userPwd'] !== values['confirmUserPwd']) {\r\n errors['userPwd'] = 'Passwords must match'\r\n errors['confirmUserPwd'] = 'Passwords must match'\r\n }\r\n\r\n if (values['carrierAbbreviation'] && values['carrierAbbreviation'].length !==2) {\r\n errors['carrierAbbreviation'] = 'Must be 2 letters'\r\n }\r\n if (values['carrierAbbreviation'] && 0 < values['carrierAbbreviation'].length && !lettersNumbersCheck(values['carrierAbbreviation'])) {\r\n errors['carrierAbbreviation'] = 'Must be alphanumeric'\r\n }\r\n\r\n if (values['carrierFullName'] && 4 > values['carrierFullName'].length) {\r\n errors['carrierFullName'] = 'Too short'\r\n }\r\n if (values['carrierFullName'] && 0 < values['carrierFullName'].length && !lettersNumbersSpacesCheck(values['carrierFullName'])) {\r\n errors['carrierFullName'] = 'Must be alphanumeric'\r\n }\r\n\r\n if (values['userId'] && values['userId'].length < 8) {\r\n errors['userId'] = 'Must be at least 8 characters'\r\n }\r\n if (values['userId'] && 0 < values['userId'].length && !lettersNumbersCheck(values['userId'])) {\r\n errors['userId'] = 'Must be alphanumeric'\r\n }\r\n if (values['userPwd'] && values['userPwd'].length < 8) {\r\n errors['userPwd'] = 'Must be at least 8 characters' \r\n }\r\n if (values['contactName'] && 0 < values['contactName'].length && !lettersNumbersSpacesCheck(values['contactName'])) {\r\n errors['contactName'] = 'Must be alphanumeric'\r\n } \r\n\r\n var contactPhoneText = values['contactPhone'];\r\n // console.log('contactPhoneText=',contactPhoneText)\r\n if ((undefined === contactPhoneText) || (null===contactPhoneText) || (''===contactPhoneText)) { /*OK*/ }\r\n else if ((10>contactPhoneText.length) || (25 {\t\r\n const snackbarOpen = state.snackbars.createPerson\t\r\n const snackbarFail = state.snackbars.createPersonFail\t\r\n return {\t\r\n initialValues: {\t\r\n },\t\r\n snackbarOpen,\r\n snackbarFail\r\n }\t\r\n}\t\r\n\r\nconst mapDispatchToProps = (dispatch,ownProps) => {\t\r\n // console.log(\"[containers/CreatePerson] mapDispatchToProps\")\r\n\r\n\r\n const onBackClick = () => {\t\r\n // console.log('[containers/CreatePerson] onBackClick - ownProps='.ownProps)\t \r\n ownProps.history.push('/adminhome')\t\r\n }\t\r\n\r\n const onSnackbarClose = () => {\t\r\n // console.log('[containers/CreatePerson] onSnackbarClose')\t\r\n dispatch(SnackbarActions.close('createPerson'))\t\r\n // console.log('[containers/CreatePerson] onSnackbarClose -- call onBackClick')\r\n onBackClick();\r\n }\t\r\n\r\n const onSnackbarFailClose = () => {\t\r\n // console.log('[containers/CreatePerson] onSnackbarFailClose')\t\r\n dispatch(SnackbarActions.close('createPersonFail'))\t\r\n }\t\r\n\r\n const onSubmit = (values,event) => {\t\r\n // console.log('[containers/CreatePerson] onSubmit event=',event)\t \r\n // event.preventDefault();\r\n // console.log('[containers/CreatePerson] onSubmit values=',values)\t\r\n return dispatch(PersonActions.createPersonSubmit(values))\t\r\n }\t\r\n\r\n return {\t\r\n onBackClick,\t\r\n onSnackbarClose,\r\n onSnackbarFailClose,\t\r\n onSubmit\t\r\n }\t\r\n}\t\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(CreatePerson))","import * as AgentServices from '../services/agent'\t\r\nimport * as ErrorActions from './error'\t\r\nimport * as SnackbarActions from './snackbar'\t\r\n\r\n\r\nexport const FIELD_CHANGE = 'FIELD_CHANGE'\r\n\r\n/**\r\n * \r\n * @param {*} name \r\n * @param {*} value \r\n * @returns \r\n */\r\nexport const handleFieldChange = (name, value) => {\r\n return {\r\n type: FIELD_CHANGE,\r\n name,\r\n value\r\n }\r\n}\r\n\r\nexport const SELECT_AGENT = 'SELECT_AGENT'\r\n\r\n/**\r\n * \r\n * @param {*} agent \r\n * @returns \r\n */\r\nexport const selectAgent = (agent) => {\r\n return {\r\n type: SELECT_AGENT,\r\n agent\r\n }\r\n}\r\n\r\n\r\n//NOT USED\r\n// export const DENY_AGENT_SUCCESS = 'DENY_AGENT_SUCCESS'\t\r\n\r\n\r\n// // Action bound to redux form ViewAgent\t\r\n// export const denyAgent = (...values) => (dispatch, getState) => {\t\r\n// // console.log('[actions/agent/AgentActions] denyAgent values = ', ...values)\t\r\n// const state = getState()\r\n// // console.log('[actions/agent/AgentActions] denyAgent state = ', state)\t \r\n// // console.log('[actions/agent/AgentActions] denyAgent state.user = ', state.user)\t \r\n// // console.log('[actions/agent/AgentActions] denyAgent state.user.userId = ', state.user.userId) \r\n\r\n// return AgentServices.denyAgent(...values,state.user.userId)\t\r\n// .then(() => {\t\r\n// dispatch(SnackbarActions.open('denyAgent'))\t\r\n// })\t\r\n// .then(() => {\r\n// dispatch({\r\n// type: DENY_AGENT_SUCCESS\r\n// })\r\n// })\t \r\n// .catch((e) => {\t\r\n// dispatch(ErrorActions.openErrorDialog({ errorText: e, title: 'Could not deny agent' }))\t\r\n// })\t\r\n// }\r\n\r\n\r\n//NOT USED\r\n// export const APPROVE_AGENT_SUCCESS = 'APPROVE_AGENT_SUCCESS'\t\r\n\r\n\r\n// // Action bound to redux form ViewAgent\t\r\n// export const approveAgent = (values) => (dispatch, getState) => {\t\r\n// // console.log('[actions/agent/AgentActions] approveAgent values = ', values)\t\r\n// const state = getState()\r\n// // console.log('[actions/agent/AgentActions] approveAgent state = ', state)\t \r\n// // console.log('[actions/agent/AgentActions] approveAgent state.user = ', state.user)\t \r\n// // console.log('[actions/agent/AgentActions] approveAgent state.user.userId = ', state.user.userId)\t\r\n// return AgentServices.approveAgent(values,state.user.userId)\t\r\n// .then(() => {\t\r\n// dispatch(SnackbarActions.open('approveAgent'))\t\r\n// })\r\n// .then(() => {\r\n// dispatch({\r\n// type: APPROVE_AGENT_SUCCESS\r\n// })\r\n// })\t\t\r\n// .catch((e) => {\t\r\n// dispatch(ErrorActions.openErrorDialog({ errorText: e, title: 'Could not approve agent' }))\t\r\n// })\t\r\n// }\r\n\r\nexport const SAVE_AGENT_SUCCESS = 'SAVE_AGENT_SUCCESS'\t\r\n\r\n// Action bound to redux form CreateAgent\t\r\nexport const createAgentSubmit = (values) => (dispatch, getState) => {\t\r\n // console.log('[actions/agent/AgentActions] createAgentSubmit values = ', values)\t\r\n //const state = getState()\r\n // console.log('[actions/agent/AgentActions] createAgentSubmit state = ', state)\t\r\n \r\n return AgentServices.createAgent(values)\t\r\n .then((res) => {\t\r\n // console.log('actions.createAgentSubmit -- services.createAgent .then(res) res=',res)\r\n if ('success'===res.status) dispatch(SnackbarActions.open('createAgent'));\r\n else\tdispatch(SnackbarActions.open('createAgentFail'));\r\n })\r\n .then((res) => {\r\n // console.log('actions.createAgentSubmit -- createAgent.then.Snackbar open .then(res) res=',res) \r\n dispatch({\r\n type: SAVE_AGENT_SUCCESS\r\n })\r\n })\t\r\n .catch((e) => {\t\r\n const errObj=JSON.parse(e);\r\n // console.log('received error message:', errObj);\r\n dispatch(ErrorActions.openErrorDialog({ errorText: errObj.message, title: 'Could not create agent' }))\t\r\n })\t\r\n}\r\n\r\n//Not used\r\n// export const RETRIEVE_ALL_AGENTS_SUCCESS = 'RETRIEVE_ALL_AGENTS_SUCCESS'\r\n\r\n// export const retrieveAllAgents = () => (dispatch) => {\r\n// // console.log('[actions/agent/AgentActions] retrieveAllAgents id=' )\t \r\n// return AgentServices.getAllAgents()\r\n// .then(res => {\r\n// dispatch({\r\n// type: RETRIEVE_ALL_AGENTS_SUCCESS,\r\n// agents: res\r\n// })\r\n// })\r\n// }\r\n\r\n//Not used\r\n// export const RETRIEVE_ONE_AGENT_SUCCESS = 'RETRIEVE_ONE_AGENT_SUCCESS'\r\n\r\n// export const retrieveOneAgentByName = (name) => (dispatch, name) => {\r\n// // console.log('[actions/agent/AgentActions] retrieveOneAgentByName'+ name)\t \r\n// return AgentServices.getOneAgentByName(name)\r\n// .then(res => {\r\n// dispatch({\r\n// type: RETRIEVE_ONE_AGENT_SUCCESS,\r\n// agent: res\r\n// })\r\n// })\r\n// }\r\n\r\n//Not used\r\n// export const RETRIEVE_ONE_AGENT_BY_ID_SUCCESS = 'RETRIEVE_ONE_AGENT_BY_ID_SUCCESS'\r\n\r\n// export const retrieveOneAgentById = (dispatch) => (id) => {\r\n// // console.log('[actions/agent/AgentActions] retrieveOneAgentById'+ id)\t \r\n// return AgentServices.getOneAgentById(id)\r\n// .then(res => {\r\n// dispatch({\r\n// type: RETRIEVE_ONE_AGENT_BY_ID_SUCCESS,\r\n// agent: res\r\n// })\r\n// })\r\n// } \r\n\r\n\r\n","import { postResource, postInsecureResource, getResource } from '../utilities/service-utils'\t\r\n\r\n\r\n//NOT USED\r\n// export const getAllAgents = () => {\r\n// // console.log('[services.agent] - getAllAgents') \r\n// return getResource('dguser')\r\n// }\r\n\r\n//NOT USED\r\n// export const getAllApprovedAgents = () => {\r\n// // console.log('[services.agent] - getAllApprovedAgents') \r\n// return getResource('dguser/approved')\r\n// }\r\n\r\n// export const getAllPendingAgents = () => {\r\n// // console.log('[services.agent] - getAllPendingAgents') \r\n// return getResource('dguser/findAllPending')\r\n// }\r\n\r\n// TODO: This method and several others are not currently being used.\r\n// export const getAllDeniedAgents = () => {\r\n// // console.log('[services.agent] - getAllDeniedAgents') \r\n// return getResource('dguser/denied')\r\n// }\r\n\r\n//NOT USED\r\n//by User Name\r\n// export const getOneAgentByName = (name) => {\r\n// // console.log('[services.agent] - getOneAgentByName'); \r\n// // console.log('name=',name);\r\n// return getResource(`dguser/dguser/${name}`); \r\n// }\r\n\r\n//by Database Key\r\n// export const getOneAgentById = (id) => {\r\n// // console.log('[services.agent] - getOneAgentById') \r\n// // console.log('id=',id); \r\n// return getResource(`dguser/findByUserKeyVal/${id}`) \r\n// }\r\n\r\nexport const createAgent = (agent, userId) => {\t\r\n // console.log('[services/agent] createAgent' )\t\r\n return postInsecureResource('dguser/create', agent, userId)\t\r\n}\r\n\r\n// NOT USED\r\n// export const approveAgent = (userId,adminId) => {\t\r\n// // console.log('[services/agent] approveAgent:'+userId+\" by:\"+adminId )\t\r\n// return postResource('dguser/approve/'+ userId,null,adminId)\t\r\n// }\r\n\r\n//NOT USED\r\n// export const denyAgent = (userId,reason, adminId) => {\t\r\n// // console.log('[services/agent] denyAgent:'+userId+\" by:\"+adminId +\" reason:\"+reason)\t\r\n// return postResource('dguser/deny/'+userId,reason,adminId)\t\r\n// }","import React, { Component } from 'react'\r\nimport { compose } from 'redux'\r\nimport { Field, reduxForm } from 'redux-form'\r\nimport { TextField } from '../ReduxFormMaterialUI'\r\nimport { Button, Divider, Grid, Typography, withStyles } from '@material-ui/core'\r\nimport { blue, grey, red } from '@material-ui/core/colors'\r\nimport Snackbar from '@material-ui/core/Snackbar'\r\nimport PageContainer from '../PageContainer'\r\nimport ProgressButton from '../buttons/ProgressButton'\r\nimport DatePickerField from '../inputs/DatePickerField'\r\nimport { upper } from '../../utilities/normalizers'\r\n\r\nconst styles = (theme) => ({\r\n addIcon: {\r\n color: grey[600],\r\n cursor: 'pointer',\r\n marginRight: '64px',\r\n '&:hover': {\r\n color: blue[700]\r\n }\r\n },\r\n cancelIcon: {\r\n color: grey[600],\r\n cursor: 'pointer',\r\n marginRight: '64px',\r\n '&:hover': {\r\n color: red[700]\r\n }\r\n },\r\n container: {\r\n padding: theme.spacing(2)\r\n },\r\n errorIcon: {\r\n color: red[500]\r\n },\r\n hidden: {\r\n visibility: 'hidden'\r\n },\r\n iconColumn: {\r\n width: '30px'\r\n },\r\n tableBodyCell: {\r\n verticalAlign: 'top'\r\n },\r\n tableCell: {\r\n padding: '12px'\r\n },\r\n tooltip: {\r\n fontSize: '12px'\r\n }\r\n})\r\n\r\nconst debug = false;\r\nconst today = new Date();\r\n\r\nfunction lettersNumbersSpacesCheck(name)\r\n{\r\n // console.log('lettersNumbersSpacesCheck', name); \r\n var regEx = /^[0-9a-zA-Z_ ]+$/;\r\n if(name.match(regEx))\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n //alert(\"Please enter letters and numbers only.\");\r\n return false;\r\n }\r\n} \r\n\r\nfunction lettersNumbersCheck(name)\r\n{\r\n // console.log('lettersNumbersCheck', name);\r\n var regEx = /^[0-9a-zA-Z_]+$/;\r\n if(name.match(regEx))\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n //alert(\"Please enter letters and numbers only.\");\r\n return false;\r\n }\r\n} \r\n\r\nfunction domesticUsPhoneCheck(name)\r\n{\r\n var regEx = /^[0-9-( )x]+$/;\r\n if(name.match(regEx))\r\n { return true; }\r\n else //alert(\"Please enter numbers parens or dash only\");\r\n { return false; }\r\n} \r\n\r\nclass CreateAgent extends Component {\r\n componentDidMount = () => {\r\n // console.log('[components/CreateAgent] componentDidMount today=', today)\r\n this.props.change('createdDatetime', today);\r\n this.props.change('updatedDatetime', today);\r\n this.props.change('entityType', 'Agent');\r\n }\r\n componentDidUpdate = () => {\r\n // console.log('[components/CreateAgent] componentDidUpdate today=', today)\r\n this.props.change('createdDatetime', today);\r\n this.props.change('updatedDatetime', today);\r\n this.props.change('entityType', 'Agent');\r\n }\r\n handleBackClick = () => {\r\n // console.log('[components/CreateAgent] handleBackClick ')\r\n const { history } = this.props\r\n history.push('/adminhome')\r\n }\r\n render() {\r\n // console.log('[components/CreateAgent] render ')\r\n // console.log('state=', this.state)\r\n // console.log('props=', this.props) \r\n const {\r\n asyncValidating,\r\n classes,\r\n handleSubmit,\r\n onSnackbarClose,\r\n onSnackbarFailClose, \r\n reset,\r\n snackbarOpen,\r\n snackbarFail,\r\n submitting\r\n } = this.props\r\n // console.log('[components/CreateAgent] render - this=',this)\r\n return (\r\n \r\n Agency Signup Page\r\n \r\n
\r\n \r\n \r\n Agent Registration\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Submit\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nconst getInitialStartDate = () => {\r\n let date = new Date()\r\n return date\r\n}\r\n\r\nconst initialValues = {\r\n startDate: getInitialStartDate().toISOString()\r\n}\r\n\r\nconst validate = (values) => {\r\n // console.log('validate')\r\n const errors = {}\r\n const requiredFields = ['agencyAbbreviation', 'agencyFullName', 'userId', 'userPwd', 'confirmUserPwd', 'contactEmail', 'contactName', 'contactPhone']\r\n requiredFields.forEach((field) => {\r\n if (values[field] === '' || values[field] === null || values[field] === undefined) {\r\n errors[field] = 'Required'\r\n }\r\n })\r\n // console.log('userPwd',values['userPwd']);\r\n // console.log('userPwd',values['confirmUserPwd']);\r\n if (values['userPwd'] !== values['confirmUserPwd']) {\r\n errors['userPwd'] = 'Passwords must match'\r\n errors['confirmUserPwd'] = 'Passwords must match'\r\n }\r\n if (values['agencyAbbreviation'] && (values['agencyAbbreviation'].length < 2 || values['agencyAbbreviation'].length > 10)) {\r\n errors['agencyAbbreviation'] = 'Must be 2 to 10 letters'\r\n }\r\n if (values['agencyAbbreviation'] && 0 < values['agencyAbbreviation'].length && !lettersNumbersCheck(values['agencyAbbreviation'])) {\r\n errors['agencyAbbreviation'] = 'Must be alphanumeric'\r\n } \r\n if (values['agencyFullName'] && (4 > values['agencyFullName'].length)) {\r\n errors['agencyFullName'] = 'Too short'\r\n }\r\n if (values['agencyFullName'] && 0 < values['agencyFullName'].length && !lettersNumbersSpacesCheck(values['agencyFullName'])) {\r\n errors['agencyFullName'] = 'Must be alphanumeric'\r\n } \r\n if (values['userId'] && values['userId'].length < 8) {\r\n errors['userId'] = 'Must be at least 8 characters'\r\n }\r\n if (values['userId'] && 0 < values['userId'].length && !lettersNumbersCheck(values['userId'])) {\r\n errors['userId'] = 'Must be alphanumeric'\r\n }\r\n if (values['userPwd'] && values['userPwd'].length < 8) {\r\n errors['userPwd'] = 'Must be at least 8 characters' \r\n }\r\n\r\n if (values['contactName'] && 0 < values['contactName'].length && !lettersNumbersSpacesCheck(values['contactName'])) {\r\n errors['contactName'] = 'Must be alphanumeric'\r\n } \r\n\r\n var contactPhoneText = values['contactPhone'];\r\n// console.log('contactPhoneText=',contactPhoneText)\r\n if ((undefined === contactPhoneText) || (null===contactPhoneText) || (''===contactPhoneText)) { /*OK*/ }\r\n else if ((10>contactPhoneText.length) || (25 {\t\r\n const snackbarOpen = state.snackbars.createAgent\r\n const snackbarFail = state.snackbars.createAgentFail\t\r\n return {\t\r\n initialValues: {\t\r\n },\t\r\n snackbarOpen,\r\n snackbarFail\r\n }\t\r\n}\t\r\n\r\nconst mapDispatchToProps = (dispatch,ownProps) => {\t\r\n // console.log(\"[containers/CreateAgent] mapDispatchToProps\")\r\n\r\n\r\n const onBackClick = () => {\t\r\n // console.log('[containers/CreateAgent] onBackClick - ownProps='.ownProps)\t \r\n ownProps.history.push('/adminhome')\t\r\n }\t\r\n\r\n const onSnackbarClose = () => {\t\r\n // console.log('[containers/CreateAgent] onSnackbarClose')\t\r\n dispatch(SnackbarActions.close('createAgent'))\t\r\n // console.log('[containers/CreateAgent] onSnackbarClose -- call onBackClick')\r\n onBackClick();\r\n }\t\r\n\r\n const onSnackbarFailClose = () => {\t\r\n // console.log('[containers/CreateAgent] onSnackbarFailClose')\t\r\n dispatch(SnackbarActions.close('createAgentFail'))\t\r\n }\t\r\n\r\n const onSubmit = (values,event) => {\t\r\n // console.log('[containers/CreateAgent] onSubmit event=',event)\t \r\n // event.preventDefault();\r\n // console.log('[containers/CreateAgent] onSubmit values=',values)\t\r\n return dispatch(AgentActions.createAgentSubmit(values))\t\r\n }\t\r\n\r\n return {\t\r\n onBackClick,\t\r\n onSnackbarClose,\r\n onSnackbarFailClose,\t\r\n onSubmit\t\r\n }\t\r\n}\t\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(CreateAgent))","import { connect } from 'react-redux'\r\nimport * as OptionActions from '../../actions/option'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\nconst mapStateToProps = (state) => {\r\n const letterMailed = state.option.letterMailed\r\n\r\n const options = letterMailed\r\n .map((option) => ({\r\n id: option.id,\r\n field: option.field,\r\n label: option.description,\r\n value: option.name,\r\n description: option.description\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const loadData = () => {\r\n return dispatch(OptionActions.retrieveLetterMailed())\r\n }\r\n\r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import { connect } from 'react-redux'\r\nimport * as OptionActions from '../../actions/option'\r\n\r\nimport SelectField from '../../components/inputs/SelectField'\r\n\r\nconst mapStateToProps = (state) => {\r\n //--Received has been intentionally misspelled as receivd because 'CUSTOMER_LETTER_RECEIVD_STATUS' is 30 characters long -- this is the maximum name length allowed by our Oracle database.\r\n const letterReceivd = state.option.letterReceivd\r\n\r\n const options = letterReceivd\r\n .map((option) => ({\r\n id: option.id,\r\n field: option.field,\r\n label: option.description,\r\n value: option.name,\r\n description: option.description\r\n }))\r\n .sort((a, b) => a.label > b.label ? 1 : -1)\r\n\r\n return {\r\n options\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const loadData = () => {\r\n return dispatch(OptionActions.retrieveLetterReceivd())\r\n }\r\n\r\n return {\r\n loadData\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectField)\r\n","import React, { Component } from 'react'\r\nimport { compose } from 'redux'\r\nimport { connect } from 'react-redux' \r\nimport { TextField } from './ReduxFormMaterialUI'\r\nimport * as Roles from '../constants/roles'\r\nimport Grid from '@material-ui/core/Grid'\r\nimport { ThemeProvider, Typography } from '@material-ui/core'\r\nimport * as IncidentActions from '../actions/incident'\r\nimport { withStyles } from '@material-ui/core/styles'\r\nimport { BorderBottom } from '@material-ui/icons'\r\n\r\n\r\n\r\nconst styles = (theme) => ({\r\n container: {\r\n padding: theme.spacing(2)\r\n },\r\n item: {\r\n width: '100%' // Fix chrome issue where hovering over items changes width of flexbox\r\n },\r\n note: {\r\n width: '100%',\r\n backgroundColor: 'lightyellow',\r\n border: 'solid'\r\n },\r\n closed: {\r\n width: '100%',\r\n height: '50px',\r\n backgroundColor: 'lightgreen',\r\n border: 'solid'\r\n },\r\n indSubmit: {\r\n width: '100%',\r\n height: '50px',\r\n backgroundColor: 'violet',\r\n border: 'solid',\r\n borderColor: 'darkblue',\r\n borderTopRightRadius: '50px',\r\n borderBottomRightRadius: '50px'\r\n },\r\n agent: {\r\n width: '100%',\r\n height: '50px',\r\n backgroundColor: 'lightgreen',\r\n border: 'solid',\r\n borderColor: 'darkblue',\r\n borderTopRightRadius: '50px',\r\n borderBottomRightRadius: '50px'\r\n \r\n },\r\n response: {\r\n width: '100%',\r\n height: '50px',\r\n backgroundColor: 'LightPink',\r\n border: 'solid',\r\n borderColor: 'darkblue',\r\n borderTopRightRadius: '50px',\r\n borderBottomRightRadius: '50px'\r\n },\r\n decision: {\r\n width: '100%',\r\n height: '50px',\r\n backgroundColor: 'aqua',\r\n border: 'solid',\r\n borderColor: 'darkblue',\r\n borderTopRightRadius: '50px',\r\n borderBottomRightRadius: '50px'\r\n },\r\n grayBox: {\r\n width: '100%',\r\n height: '50px',\r\n backgroundColor: 'lightgray',\r\n border: 'solid',\r\n opacity: 0.3\r\n },\r\n dz: {\r\n height: '100px',\r\n width: '100px',\r\n borderColor: 'white',\r\n align: 'left'\r\n },\r\n image: {\r\n padding: '0 4px'\r\n }\r\n})\r\n\r\nfunction getStage (worknotes, status, response, mailedStatus, dateMailed) {\r\n var letterSent = false\r\n var pastMonth = false\r\n var wnNum = (worknotes || []).length\r\n\r\n var today = new Date()\r\n var mailed = new Date(dateMailed)\r\n mailed.setDate(mailed.getDate() + 30)\r\n\r\n if(today >= mailed) {\r\n pastMonth = true\r\n }\r\n\r\n if (mailedStatus === '1' || mailedStatus === '-1') {\r\n letterSent = true\r\n }\r\n\r\n console.log('DATEMAILED**** ' + mailed + ' PASTMONTH**** ' + pastMonth + ' TODAY**** ' + today) \r\n \r\n if (status === 'CLOSED') {\r\n return 5\r\n }\r\n if (status === 'INPROCESS' && letterSent === true && response === '1') {\r\n return 4\r\n }\r\n if (status === 'INPROCESS' && letterSent === true && response === '0' && pastMonth === false) {\r\n return 3\r\n }\r\n if (status === 'INPROCESS' && wnNum > 0) {\r\n return 2\r\n }\r\n if (status === 'INPROCESS' && wnNum === 0) {\r\n return 1\r\n }\r\n return 0\r\n}\r\n\r\nclass WorkNotes extends Component {\r\n \r\n componentDidMount () {\r\n const { fetchWorkNotes, hmKey} = this.props\r\n fetchWorkNotes(hmKey)\r\n \r\n }\r\n \r\n render () {\r\n const {\r\n classes,\r\n role\r\n } = this.props\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n Work Notes\r\n \r\n \r\n {this.props.role !== Roles.CARRIER && this.props.status !== 'CLOSED' ? \r\n
\r\n {/* \r\n \r\n Work Notes\r\n \r\n */}\r\n \r\n \r\n this.props.updateWorkNote(event.target.value)}\r\n />\r\n \r\n \r\n
\r\n :\r\n ''}\r\n {/* {this.props.role === Roles.CARRIER ? \r\n
\r\n \r\n \r\n Incident Progress\r\n \r\n \r\n
\r\n :\r\n ''}\r\n {/* \r\n \r\n \r\n \r\n */}\r\n {this.props.role !== Roles.CARRIER ? \r\n
\r\n \r\n \r\n
\r\n {this.props.worknotes.map ?\r\n this.props.worknotes.map((note) => (\r\n

User:  {note.updtUserId}  \r\n Date:  {note.updtDate}  \r\n Work Note:  {note.workNote}

\r\n ))\r\n : ''\r\n }\r\n
\r\n
\r\n
\r\n
\r\n :\r\n ''}\r\n {this.props.role === Roles.CARRIER ? \r\n
\r\n \r\n \r\n {getStage(this.props.worknotes, \r\n this.props.status,\r\n this.props.response,\r\n this.props.mailedStatus,\r\n this.props.dateMailed) >= 1 ?\r\n
\r\n Incident Submitted ✓ \r\n
\r\n :\r\n
\r\n Incident Submitted} \r\n
\r\n }\r\n
\r\n \r\n {getStage(this.props.worknotes,\r\n this.props.status,\r\n this.props.response,\r\n this.props.mailedStatus,\r\n this.props.dateMailed) \r\n >= 2 ?\r\n
\r\n Processed by Agent ✓\r\n
\r\n :\r\n
\r\n Processed by Agent \r\n
\r\n } \r\n
\r\n \r\n {getStage(this.props.worknotes,\r\n this.props.status,\r\n this.props.response,\r\n this.props.mailedStatus,\r\n this.props.dateMailed)\r\n >= 3 ?\r\n
\r\n Awaiting Response ✓ \r\n
\r\n :\r\n
\r\n Awaiting Response \r\n
\r\n } \r\n
\r\n \r\n {getStage(this.props.worknotes,\r\n this.props.status,\r\n this.props.response,\r\n this.props.mailedStatus,\r\n this.props.dateMailed)\r\n >= 4 ?\r\n
\r\n Decision Made ✓ \r\n
\r\n :\r\n
\r\n Decision Made \r\n
\r\n } \r\n
\r\n \r\n {getStage(this.props.worknotes,\r\n this.props.status,\r\n this.props.response,\r\n this.props.mailedStatus,\r\n this.props.dateMailed) \r\n >= 5 ?\r\n
\r\n Closed ✓ \r\n
\r\n :\r\n
\r\n Closed \r\n
\r\n } \r\n \r\n
\r\n
\r\n
\r\n : ''}\r\n
\r\n
\r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n const role = state.user.role\r\n const status = state.incident.selected_incident.status\r\n const response = state.incident.selected_incident.customerLetterResponseStatus\r\n const mailedStatus = state.incident.selected_incident.customerLetterMailedStatus\r\n const dateMailed = state.incident.selected_incident.customerLetterMailedDate\r\n const worknotes = state.incident.current_worknotes || ''\r\n \r\n return {\r\n worknotes,\r\n role,\r\n response,\r\n mailedStatus,\r\n dateMailed,\r\n status\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const updateWorkNote = (worknote) => {\r\n dispatch(IncidentActions.updateWorkNote(worknote))\r\n\r\n }\r\n const fetchWorkNotes = (hmKey) => {\r\n dispatch(IncidentActions.retrieveWorkNotes(hmKey))\r\n }\r\n return {\r\n updateWorkNote,\r\n fetchWorkNotes\r\n }\r\n}\r\nexport default compose(\r\n connect(mapStateToProps, mapDispatchToProps),\r\n withStyles(styles)\r\n)(WorkNotes)\r\n","import React from 'react'\r\nimport Snackbar from '@material-ui/core/Snackbar'\r\nimport Paper from '@material-ui/core/Paper'\r\nimport Table from '@material-ui/core/Table'\r\nimport TableBody from '@material-ui/core/TableBody'\r\nimport TableCell from '@material-ui/core/TableCell'\r\nimport TableContainer from '@material-ui/core/TableContainer'\r\nimport TableHead from '@material-ui/core/TableHead'\r\nimport TableRow from '@material-ui/core/TableRow'\r\nimport JSONPretty from 'react-json-pretty'\r\nimport Box from '@material-ui/core/Box'\r\nimport Collapse from '@material-ui/core/Collapse'\r\nimport * as DateUtils from '../utilities/date-utils'\r\nimport { connect } from 'react-redux'\r\nimport { compose } from 'redux'\r\nimport IconButton from '@material-ui/core/IconButton'\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown'\r\nimport KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport { withStyles } from '@material-ui/core/styles'\r\n\r\nconst styles = {\r\n header: {\r\n backgroundColor: '#283FB3'\r\n },\r\n headerCell: {\r\n color: '#FFFFFF'\r\n },\r\n container: {\r\n maxHeight: 400\r\n },\r\n popover: {\r\n pointerEvents: 'none'\r\n },\r\n paper: {\r\n //padding: theme.spacing(1),\r\n }\r\n }\r\n\r\n/**\r\n * Builds a fragment of TableRow components\r\n * @param { row, index } props \r\n * @returns Row at that index containing those props\r\n */ \r\nfunction Row(props) {\r\n const { row, index } = props;\r\n const [open, setOpen] = React.useState(false);\r\n return(\r\n \r\n \r\n \r\n setOpen(!open)}>\r\n {open ? : }\r\n \r\n \r\n { row.actionType }\r\n { DateUtils.formatDateTime(row.actionDate) }\r\n { row.updtUser }\r\n \r\n \r\n \r\n \r\n \r\n \r\n Snapshot\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nfunction HistValues(props){\r\n const { parms } = props\r\n \r\n return (\r\n \r\n \r\n \r\n )\r\n\r\n} \r\n\r\n \r\nconst AuditTable = ({ classes, logs, snackbarClose, snackbarOpen, open, setOpen }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Action\r\n Date\r\n User\r\n \r\n \r\n \r\n {logs.map ?\r\n logs.map((log, index)=>(\r\n \r\n \r\n \r\n ))\r\n :\r\n ''\r\n \r\n }\r\n \r\n
\r\n
\r\n \r\n)\r\n\r\nconst mapStateToProps = (state) => {\r\n const open = false\r\n return {\r\n open\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n const setOpen = (open) =>{\r\n // console.log('changing ' + open)\r\n if(open===true){\r\n return false\r\n }\r\n else{ \r\n return true\r\n }\r\n }\r\n \r\n return {\r\n setOpen \r\n }\r\n}\r\n\r\n\r\nexport default compose(withStyles(styles), connect(mapStateToProps, mapDispatchToProps))(AuditTable)","import React from 'react'\r\n// import { Packer} from 'docx' // May wish to use in future to edit generated Word documents online within a React app window\r\nimport { withStyles } from '@material-ui/core/styles'\r\nimport Grid from '@material-ui/core/Grid'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport Dropzone from 'react-dropzone'\r\nimport * as DateUtils from '../utilities/date-utils'\r\nimport PageContainer from './PageContainer'\r\nimport TextField from '@material-ui/core/TextField'\r\nimport * as Roles from '../constants/roles'\r\nimport * as Incidents from '../constants/incidents'\r\nimport AirportDestinationSelect from '../containers/inputs/AirportDestinationSelect'\r\nimport AirportOriginSelect from '../containers/inputs/AirportOriginSelect'\r\nimport InitialFindingSelect from '../containers/inputs/InitialFindingSelect'\r\nimport IcaoHazardClassSelect from '../containers/inputs/IcaoHazardClassSelect'\r\nimport IssueIdentifierSelect from '../containers/inputs/IssueIdentifierSelect'\r\nimport IssueTypeSelect from '../containers/inputs/IssueTypeSelect'\r\nimport DangerousItemSelect from '../containers/inputs/DangerousItemSelect'\r\nimport RestrictedItemSelect from '../containers/inputs/RestrictedItemSelect'\r\nimport UsStateSelect from '../containers/inputs/UsStateSelect'\r\nimport LetterMailedSelect from '../containers/inputs/LetterMailedSelect'\r\n//--Received has been intentionally misspelled as receivd because 'CUSTOMER_LETTER_RECEIVD_STATUS' is 30 characters long -- this is the maximum name length allowed by our Oracle database.\r\nimport LetterReceivdSelect from '../containers/inputs/LetterReceivdSelect'\r\nimport CountrySelect from '../containers/inputs/CountrySelect'\r\nimport LoadingImage from '../containers/LoadingImage'\r\nimport ProgressButton from './buttons/ProgressButton'\r\nimport { DatePicker } from '@material-ui/pickers'\r\nimport WorkNotes from './WorkNotes'\r\nimport AuditTable from './AuditTable'\r\nimport { confirmAlert } from 'react-confirm-alert'\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'\r\nimport * as verif from '../constants/incidentVerificationStatus'\r\n\r\nconst today = new Date();\r\n\r\nconst styles = {\r\n upldImage: {\r\n height: '100px',\r\n width: '100px',\r\n backgroundColor: 'lightblue',\r\n border: 'dashed',\r\n borderColor: 'darkblue'\r\n },\r\n dz: {\r\n height: '100px',\r\n width: '100px',\r\n borderColor: 'white',\r\n align: 'left',\r\n padding: 10\r\n },\r\n image: {\r\n padding: '0 4px'\r\n },\r\n imageContainer: {\r\n padding: '20px'\r\n },\r\n redBox: {\r\n border: 'solid',\r\n borderColor: 'red'\r\n }\r\n }\r\n const phoneRegex = /^\\(?([0-9]{3})\\)?[-.]?([0-9]{3})[-.]?([0-9)]{4})$/\r\n const handlePhoneInput = (value) => {\r\n if (value) {\r\n return (\r\n value.replace(phoneRegex, '($1) $2-$3')\r\n )\r\n }\r\n }\r\n\r\n function zipPlusFourCheck(name)\r\n {\r\n var regEx = /^[0-9-]+$/;\r\n if(name.match(regEx))\r\n { return true; }\r\n else //alert(\"Please enter numbers or dash only\");\r\n { return false; }\r\n } \r\n\r\n function domesticUsPhoneCheck(name)\r\n {\r\n var regEx = /^[0-9-( )x]+$/;\r\n if(name.match(regEx))\r\n { return true; }\r\n else //alert(\"Please enter numbers parens or dash only\");\r\n { return false; }\r\n } \r\n //1111111111 \r\n //0 1-(800)111-1111 x1234\r\n\r\n function lettersNumbersCheck(name) {\r\n var regEx = /^[0-9a-zA-Z]+$/;\r\n if(name.match(regEx)) { return true; }\r\n else { return false; }\r\n } \r\n\r\n function certifiedTrackingNumberCheck(name) {\r\n var regEx = /^[0-9]+$/;\r\n if(name.match(regEx)) { return true; }\r\n else { return false; }\r\n } \r\n\r\n class EditForm extends React.Component {\r\n\r\n downloadWordFile = async() => {\r\n // console.log('[components.EditForm.downloadWordFile] hmKey=',this.props.incident.hmKey)\r\n const data = await this.props.generateWord(this.props.incident.hmKey);\r\n // console.log('[components.EditForm.downloadWordFile] -- generateWord returned data=', data)\r\n const blob = new Blob([data], {type: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"});\r\n // console.log('[components.EditForm.downloadWordFile] -- blob=', blob)\r\n const link = document.createElement('a');\r\n // console.log('[components.EditForm.downloadWordFile] -- link=', link)\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = 'letter-to-dg-sender.docx';\r\n // console.log('[components.EditForm.downloadWordFile] -- calling.link.click()')\r\n link.click();\r\n // console.log('[components.EditForm.downloadWordFile] -- called link.click()')\r\n };\r\n\r\n componentDidMount = () => {\r\n \r\n this.props.onSnackbarClose()\r\n this.props.fetchLogs(this.props.incident.hmKey)\r\n this.props.deleteStagedImages()\r\n this.props.fetchImages(this.props.incident.hmKey)\r\n if (verif.SKIPPED_BY_USER === this.props.incident.barcodeCustomsVerificationStatus) {\r\n // console.log('initializing skip customs BC verification checkbox to on');\r\n this.props.incident.skipBarcodeCustomsVerification = 'on';\r\n }\r\n if (verif.SKIPPED_BY_USER === this.props.incident.barcodeCn35VerificationStatus) {\r\n // console.log('initializing skip Cn35 BC verification checkbox to on');\r\n this.props.incident.skipBarcodeCn35Verification = 'on';\r\n }\r\n }\r\n\r\n showHistory = () => {\r\n this.props.onSnackbarOpen()\r\n }\r\n\r\n delete = () => {\r\n confirmAlert({\r\n title: 'Confirm to Delete',\r\n message: 'Are you sure you want to delete?',\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => this.props.deleteIncident()\r\n },\r\n {\r\n label: 'No'\r\n }\r\n ]\r\n });\r\n }\r\n\r\n close = () => {\r\n confirmAlert({\r\n title: 'Confirm to Close',\r\n message: 'Are you sure you want to close the incident?',\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => this.props.closeIncident()\r\n },\r\n {\r\n label: 'No'\r\n }\r\n ]\r\n });\r\n }\r\n\r\n formatDate(date){\r\n return (date.getMonth() + 1) + \"-\" + date.getDate() + \"-\" + date.getFullYear();\r\n } \r\n\r\n validateCustomsBc = () => {\r\n if ('on' !== this.props.incident.skipBarcodeCustomsVerification) {\r\n // console.log('validateCustomsBc');\r\n var bcCustomsValue = this.props.incident.barcodeCustoms;\r\n var bcCustomsVerifNewValue = verif.PENDING;\r\n if ((undefined === bcCustomsValue) || (null===bcCustomsValue) || (''===bcCustomsValue) || (13!==bcCustomsValue.length) || (!lettersNumbersCheck(bcCustomsValue))) {\r\n bcCustomsVerifNewValue = verif.INVALID_PER_BIZ_RULES;\r\n // console.log('CustomsBc: invalid');\r\n }\r\n else {\r\n bcCustomsVerifNewValue = verif.VALID_PER_BIZ_RULES;\r\n // console.log('CustomsBc: valid');\r\n }\r\n if (verif.SKIPPED_BY_USER !== this.props.barcodeCustomsVerification) {\r\n this.props.handleFieldChange('barcodeCustomsVerificationStatus', bcCustomsVerifNewValue)\r\n // console.log('CustomsBc: set barcodeCustomsVerificationStatus=',bcCustomsVerifNewValue);\r\n }\r\n return bcCustomsVerifNewValue;\r\n }\r\n return verif.SKIPPED_BY_USER;\r\n }\r\n\r\n validateCn35Bc = () => {\r\n if ('on' !== this.props.incident.skipBarcodeCn35Verification) {\r\n // console.log('validateCustomsBc'); \r\n var bcCn35Value = this.props.incident.barcodeCn35;\r\n var bcCn35VerifNewValue = verif.PENDING;\r\n if ((undefined === bcCn35Value) || (null===bcCn35Value) || (''===bcCn35Value) || (29!==bcCn35Value.length) || (!lettersNumbersCheck(bcCn35Value))) {\r\n bcCn35VerifNewValue = verif.INVALID_PER_BIZ_RULES;\r\n // console.log('Cn35Bc: invalid');\r\n }\r\n else {\r\n bcCn35VerifNewValue = verif.VALID_PER_BIZ_RULES;\r\n // console.log('Cn35Bc: valid'); \r\n }\r\n if (verif.SKIPPED_BY_USER !== this.props.barcodeCn35Verification) {\r\n this.props.handleFieldChange('barcodeCn35VerificationStatus', bcCn35VerifNewValue)\r\n // console.log('Cn35Bc: set barcodeCn35VerificationStatus=',bcCn35VerifNewValue); \r\n }\r\n return bcCn35VerifNewValue;\r\n }\r\n return verif.SKIPPED_BY_USER;\r\n }\r\n\r\n validate = () => {\r\n // console.log('[components/EditForm] -- validate') \r\n var rcCustoms = this.validateCustomsBc();\r\n var rcCn35 = this.validateCn35Bc();\r\n let formIsValid = true\r\n if (\r\n this.props.incident.reportingContactName === '' || this.props.incident.reportingContactName == null || \r\n this.props.incident.reportingContactPhone === '' || this.props.incident.reportingContactPhone == null || \r\n this.props.incident.reportingContactEmail === '' || this.props.incident.reportingContactEmail == null || \r\n this.props.incident.reportingAirportHub === '' || this.props.incident.reportingAirportHub == null || \r\n this.props.incident.dateOfDiscovery === '' || this.props.incident.dateOfDiscovery == null || \r\n this.props.incident.originOfficeOfExchange === '' || this.props.incident.originOfficeOfExchange == null || \r\n this.props.incident.senderPhone === '' || this.props.incident.senderPhone == null || \r\n this.props.incident.senderName === '' || this.props.incident.senderName == null || \r\n this.props.incident.senderAddress === '' || this.props.incident.senderAddress == null || \r\n this.props.incident.senderState === '' || this.props.incident.senderState == null ||\r\n this.props.incident.senderCity === '' || this.props.incident.senderCity == null || \r\n this.props.incident.senderZip === '' || this.props.incident.senderZip == null || \r\n this.props.incident.recipientPhone === '' || this.props.incident.recipientPhone == null || \r\n this.props.incident.recipientName === '' || this.props.incident.recipientName == null || \r\n this.props.incident.recipientAddress === '' || this.props.incident.recipientAddress == null || \r\n this.props.incident.recipientCity === '' || this.props.incident.recipientCity == null || \r\n this.props.incident.recipientCountry === '' || this.props.incident.recipientCountry == null || \r\n this.props.incident.recipientZip === '' || this.props.incident.recipientZip == null || \r\n this.props.incident.contentDescrnOnCustomsForm === '' || this.props.incident.contentDescrnOnCustomsForm == null) \r\n {\r\n formIsValid = false;\r\n // console.log('validate - form is invalid because something else') \r\n } \r\n // console.log('barcodeCustomsVerificationStatus',this.props.incident.barcodeCustomsVerificationStatus)\r\n if ( 0 >= this.props.incident.barcodeCustomsVerificationStatus || 0 >= rcCustoms ) {\r\n if (0 >= rcCustoms) {\r\n formIsValid = false;\r\n // console.log('validate - form is invalid because barcodeCustomsVerificationStatus=',this.props.incident.barcodeCustomsVerificationStatus ) \r\n }\r\n else {\r\n // console.log('validate - form would have been invalid because barcodeCustomsVerificationStatus was still=',this.props.incident.barcodeCustomsVerificationStatus ) \r\n // console.log('validate - but we allow it since its being set to =',rcCustoms ) \r\n } \r\n }\r\n if ( 0 >= this.props.incident.barcodeCn35VerificationStatus || 0 >= rcCn35 ) {\r\n if (0 >= rcCn35) {\r\n formIsValid = false; \r\n // console.log('validate - form is invalid because barcodeCn35VerificationStatus=',this.props.incident.barcodeCn35VerificationStatus ) \r\n }\r\n else {\r\n // console.log('validate - form would have been invalid because barcodeCn35VerificationStatus was still=',this.props.incident.barcodeCn35VerificationStatus ) \r\n // console.log('validate - but we allow it since its being set to =',rcCn35 ) \r\n } \r\n } \r\n if (formIsValid) {\r\n // this.props.incident.status = Incidents.INPROCESS\r\n this.props.handleFieldChange('status', Incidents.INPROCESS)\r\n this.props.onSubmit()\r\n }\r\n else {\r\n alert('To complete the form, more data is needed')\r\n }\r\n }\r\n\r\n render() { \r\n // console.log('[components/EditForm] -- render') \r\n const uploadIt = (acceptedFiles) =>{\r\n acceptedFiles.forEach((file) => {\r\n uploadImage(file, incident.hmKey)\r\n }); \r\n }\r\n const { incident, classes, selimages, page, uploadImage, onSnackbarClose, snackbarOpen, role } = this.props;\r\n\r\n return(\r\n \r\n \r\n \r\n \r\n \r\n {/* TODONE: Display Agency reporting incident, if reported by Agency */}\r\n Dangerous Item -- \r\n {'AGENT'===incident.entityReportingIncident && incident.agencyReportingIncident}\r\n { 'AGENT'!==incident.entityReportingIncident && incident.airlineReportingIncident }\r\n -{ DateUtils.formatIdDate(incident.dateReported) }-{ incident.hmKey } -- Edit\r\n \r\n \r\n \r\n \r\n \r\n this.props.handleFieldChange('barcodeCn35', event.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n 4}\r\n value={ incident.barcodeCn35VerificationStatus || '' }\r\n readonly={true}\r\n />\r\n \r\n\r\n \r\n \r\n this.props.handleFieldChange('barcodeCustoms', event.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n 4}\r\n value={ incident.barcodeCustomsVerificationStatus || '' }\r\n readonly={true}\r\n />\r\n \r\n\r\n \r\n \r\n this.props.handleFieldChange('barcodeHandlingUnit', event.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n {/* */}\r\n \r\n {/* */}\r\n\r\n {/* */}\r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n this.props.handleFieldChange('reportingContactName', event.target.value)}\r\n />\r\n \r\n \r\n this.props.handleFieldChange('reportingContactPhone', event.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n this.props.handleFieldChange('reportingContactEmail', event.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {this.props.handleFieldChange('reportingAirportHub', event.target.value)}} \r\n />\r\n \r\n \r\n this.props.handleFieldChange('dateOfDiscovery', event)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {this.props.handleFieldChange('originOfficeOfExchange', event.target.value)}} \r\n />\r\n \r\n \r\n this.props.handleFieldChange('airlineRecordNo', event.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {this.props.handleFieldChange('initialFinding', event.target.value)}} \r\n />\r\n \r\n {incident.initialFinding === 'DG' ?\r\n \r\n {this.props.handleFieldChange('icaoHazardClass', event.target.value)}} \r\n />\r\n \r\n :''}\r\n \r\n\r\n {incident.initialFinding === 'DG' ?\r\n \r\n \r\n {this.props.handleFieldChange('issueIdentificationMeans', event.target.value)}} \r\n />\r\n \r\n \r\n { incident.icaoHazardClass !== 'Not Selected' && incident.icaoHazardClass !== null?\r\n {this.props.handleFieldChange('dangerousItem', event.target.value)}} \r\n hazclass={incident.icaoHazardClass}\r\n />\r\n :''\r\n }\r\n \r\n \r\n :\r\n \r\n \r\n {this.props.handleFieldChange('issueType', event.target.value)}} \r\n />\r\n \r\n { incident.issueType === 'RI'?\r\n \r\n {this.props.handleFieldChange('restrictedItem', event.target.value)}} \r\n />\r\n \r\n :\r\n ''}\r\n \r\n }\r\n\r\n \r\n \r\n this.props.handleFieldChange('commentsGeneral', event.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n Sender\r\n \r\n \r\n \r\n \r\n this.props.handleFieldChange('senderCompany', event.target.value)}\r\n />\r\n \r\n \r\n this.props.handleFieldChange('senderName', event.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n this.props.handleFieldChange('senderAddress', event.target.value)}\r\n /> \r\n \r\n \r\n this.props.handleFieldChange('senderAddress2', event.target.value)}\r\n /> \r\n \r\n \r\n\r\n \r\n \r\n {this.props.handleFieldChange('senderState', event.target.value)}} \r\n />\r\n \r\n \r\n this.props.handleFieldChange('senderCity', event.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n 10) || !zipPlusFourCheck(incident.senderZip))\r\n )\r\n } \r\n value={ incident.senderZip || '' }\r\n name='senderZip'\r\n onChange={ (event) => this.props.handleFieldChange('senderZip', event.target.value)}\r\n />\r\n \r\n \r\n 25) || !domesticUsPhoneCheck(incident.senderPhone))\r\n )\r\n } \r\n\r\n\r\n value={handlePhoneInput(incident.senderPhone)}\r\n name='senderPhone'\r\n onChange={ (event) => this.props.handleFieldChange('senderPhone', event.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Recipient/Consignee\r\n \r\n \r\n\r\n \r\n \r\n this.props.handleFieldChange('recipientCompany', event.target.value)}\r\n />\r\n \r\n \r\n this.props.handleFieldChange('recipientName', event.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n this.props.handleFieldChange('recipientAddress', event.target.value)}\r\n />\r\n \r\n \r\n this.props.handleFieldChange('recipientAddress2', event.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n this.props.handleFieldChange('recipientCity', event.target.value)}\r\n />\r\n \r\n \r\n this.props.handleFieldChange('recipientZip', event.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {this.props.handleFieldChange('recipientCountry', event.target.value)}} \r\n />\r\n \r\n \r\n this.props.handleFieldChange('recipientPhone', event.target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n this.props.handleFieldChange('contentDescrnOnCustomsForm', event.target.value)}\r\n /> \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {selimages.map ?\r\n selimages.map((image, index)=>(\r\n \r\n ))\r\n :\r\n '' \r\n }\r\n {role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.CARRIER || role === Roles.AGENT ? \r\n uploadIt(acceptedFiles)}>\r\n {({getRootProps, getInputProps}) => (\r\n
\r\n
\r\n \r\n
Drag 'n' drop, or click to select files
\r\n
\r\n
\r\n )}\r\n
\r\n :\r\n ''}\r\n
\r\n\r\n\r\n { ((role === Roles.DANGEROUS_GOODS_ADMIN ) && (incident.status === Incidents.INPROCESS)) ?\r\n \r\n \r\n {\r\n this.downloadWordFile()\r\n }}\r\n >\r\n Generate Customer Letter\r\n \r\n \r\n\r\n \r\n :\r\n ''} \r\n\r\n { ((role === Roles.DANGEROUS_GOODS_ADMIN ) && (incident.status === Incidents.INPROCESS || incident.status === Incidents.CLOSED) ) ?\r\n \r\n \r\n \r\n\r\n {/* this.props.handleFieldChange('customerLetterMailedStatus', event.target.value)}\r\n */}\r\n {this.props.handleFieldChange('customerLetterMailedStatus', event.target.value)}} \r\n /> \r\n\r\n\r\n \r\n \r\n this.props.handleFieldChange('customerLetterMailedDate', event)}\r\n />\r\n \r\n \r\n \r\n \r\n this.props.handleFieldChange('customerLetterFilename', event.target.value)}\r\n /> \r\n \r\n \r\n this.props.handleFieldChange('customerLetterFileLocation', event.target.value)}\r\n /> \r\n \r\n \r\n \r\n 20) || !certifiedTrackingNumberCheck(incident.customerLetterCrfTrackNo)))} \r\n value={ incident.customerLetterCrfTrackNo || '' }\r\n name='customerLetterCrfTrackNo'\r\n onChange={ (event) => this.props.handleFieldChange('customerLetterCrfTrackNo', event.target.value)}\r\n /> \r\n \r\n

\r\n \r\n \r\n\r\n {/* this.props.handleFieldChange('customerLetterResponseStatus', event.target.value)}\r\n\r\n /> */}\r\n\r\n\r\n\r\n {this.props.handleFieldChange('customerLetterResponseStatus', event.target.value)}} \r\n /> \r\n \r\n\r\n\r\n\r\n\r\n \r\n this.props.handleFieldChange('customerLetterResponseDate', event)}\r\n />\r\n \r\n \r\n \r\n \r\n this.props.handleFieldChange('customerLetterResponseFilename', event.target.value)}\r\n /> \r\n \r\n \r\n this.props.handleFieldChange('customerLetterResponseFileLoc', event.target.value)}\r\n /> \r\n \r\n \r\n
\r\n :\r\n ''}\r\n\r\n \r\n {(role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.CARRIER || role === Roles.AGENT) ?\r\n \r\n {\r\n this.validate()\r\n }}\r\n >\r\n {incident.status === Incidents.DRAFT ?\r\n SUBMIT COMPLETE \r\n :\r\n SUBMIT (complete) \r\n }\r\n \r\n \r\n :\r\n ''}\r\n\r\n \r\n {(role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.CARRIER || role === Roles.AGENT) && incident.status === Incidents.DRAFT ?\r\n {\r\n this.validateCustomsBc();\r\n this.validateCn35Bc();\r\n this.props.saveDraft()\r\n }}\r\n >\r\n SAVE AS DRAFT \r\n \r\n :''\r\n } \r\n \r\n\r\n { (role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.CARRIER || role === Roles.AGENT) && incident.status === Incidents.DRAFT ?\r\n \r\n {\r\n this.delete()\r\n }}\r\n >\r\n Delete Incident (draft)\r\n \r\n \r\n :\r\n ''}\r\n\r\n { ((role === Roles.DANGEROUS_GOODS_ADMIN ) && (incident.status === Incidents.INPROCESS)) ?\r\n \r\n {\r\n this.close()\r\n }}\r\n >\r\n CLose Incident (in-process)\r\n \r\n \r\n :\r\n ''}\r\n\r\n \r\n {\r\n this.showHistory()\r\n }}\r\n >\r\n View History\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n
\r\n )\r\n }\r\n }\r\n\r\nexport default withStyles(styles)(EditForm)","import { connect } from 'react-redux'\r\nimport { withRouter } from 'react-router-dom'\r\n\r\nimport * as ErrorActions from '../../actions/error'\r\nimport * as IncidentActions from '../../actions/incident'\r\nimport * as SnackbarActions from '../../actions/snackbar'\r\nimport * as Roles from '../../constants/roles'\r\nimport * as HmLogAction from '../../actions/hmlog'\r\nimport EditForm from '../../components/EditForm'\r\n\r\nconst getInitialValues = (incident, role) => {\r\n // console.log('[containers/EditForm] getInitialValues')\r\n if (role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.DANGEROUS_GOODS_ADMIN_READONLY || role === Roles.CARRIER || role === Roles.AGENT ) {\r\n return {\r\n hmkey: incident.hmKey\r\n }\r\n }\r\n return {}\r\n}\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n // console.log('[containers/EditForm] mapStateToProps')\r\n const incident = state.incident.selected_incident\r\n const hm_logs = state.hmlog.selected_logs\r\n const role = state.user.role\r\n const snackbarOpen = state.snackbars.reportDetail\r\n const selimages = state.incident.selected_incident_images || {}\r\n const page = state.table.incidentsTable.page\r\n return {\r\n incident,\r\n initialValues: getInitialValues(incident, role),\r\n role,\r\n snackbarOpen,\r\n selimages,\r\n page,\r\n hm_logs\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n // console.log('[containers/EditForm] mapDispatchToProps')\r\n const onError = (errorText, title) => {\r\n // console.log('[containers/EditForm] mapDispatchToProps -- onError')\r\n dispatch(ErrorActions.openErrorDialog({ errorText, title }))\r\n }\r\n\r\n const onSnackbarClose = () => {\r\n // console.log('[containers/EditForm] mapDispatchToProps -- onSnackbarClose')\r\n dispatch(SnackbarActions.close('reportDetail'))\r\n }\r\n\r\n const onSnackbarOpen = () => {\r\n // console.log('[containers/EditForm] mapDispatchToProps -- onSnackbarOpen')\r\n dispatch(SnackbarActions.open('reportDetail'))\r\n }\r\n\r\n const deleteIncident = () => {\r\n dispatch(IncidentActions.deleteIncident())\r\n .then(() => {\r\n ownProps.history.push('/home')\r\n })\r\n }\r\n\r\n const closeIncident = () => {\r\n // console.log('[containers/EditForm] mapDispatchToProps -- closeIncident')\r\n dispatch(IncidentActions.closeIncident())\r\n .then(() => {\r\n ownProps.history.push('/home')\r\n })\r\n }\r\n const fetchLogs = (hmkey) =>{\r\n dispatch(HmLogAction.fetchHmLogs(hmkey))\r\n }\r\n\r\n const uploadImage = (file, hmkey) => {\r\n // console.log('FILE IS ')\r\n // console.log(file)\r\n dispatch(IncidentActions.uploadImage(hmkey,file))\r\n dispatch(IncidentActions.retrieveItemImages(hmkey))\r\n }\r\n\r\n const fetchImages = (hmkey) => {\r\n dispatch(IncidentActions.retrieveItemImages(hmkey))\r\n }\r\n\r\n const onSubmit = () => {\r\n // console.log('[containers/EditForm] mapDispatchToProps -- onSubmit...')\r\n return new Promise((resolve) => {\r\n // console.log('...resolve complete') \r\n resolve('complete')\r\n })\r\n .then(() => {\r\n // console.log('...Calling dispatch IncidentActions.submitEditComplete')\r\n return dispatch(IncidentActions.submitEditComplete())\r\n }) \r\n .then((success) => {\r\n if (success) {\r\n ownProps.history.push('/home')\r\n \r\n }\r\n })\r\n }\r\n\r\n const saveDraft = () =>{\r\n console.log('[containers/EditForm] mapDispatchToProps -- saveDraft...')\r\n console.log('...Calling dispatch IncidentActions.submitEditDraft')\r\n dispatch(IncidentActions.submitEditDraft())\r\n .then((success) => {\r\n console.log('[EditForm] mapDispatchToProps - dispatch IncidentActions.submitEditDraft - then - success =', success)\r\n if (success) {\r\n ownProps.history.push('/home')\r\n }\r\n })\r\n }\r\n\r\n const deleteStagedImages = () => {\r\n dispatch(IncidentActions.deleteStagedImages())\r\n }\r\n\r\n const handleFieldChange = (name, value) =>{ \r\n dispatch(IncidentActions.handleFieldChange(name, value))\r\n }\r\n\r\n const generateWord = (hmKey) => {\r\n // console.log('[containers/EditForm] mapDispatchToProps - generateWord called hmKey=',hmKey);\r\n const rval = dispatch(IncidentActions.generateWord(hmKey));\r\n // console.log('[containers/EditForm] mapDispatchToProps - generateWord returned',rval);\r\n return rval;\r\n }\r\n\r\n return {\r\n onError,\r\n onSnackbarClose,\r\n onSnackbarOpen,\r\n onSubmit,\r\n uploadImage,\r\n fetchImages,\r\n saveDraft,\r\n fetchLogs,\r\n closeIncident,\r\n deleteIncident,\r\n deleteStagedImages,\r\n handleFieldChange,\r\n generateWord\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(EditForm))\r\n","import React, { Component } from 'react'\r\nimport { compose } from 'redux'\r\nimport { connect } from 'react-redux' \r\n\r\nimport Grid from '@material-ui/core/Grid'\r\nimport { Typography } from '@material-ui/core'\r\nimport * as IncidentActions from '../actions/incident'\r\nimport { withStyles } from '@material-ui/core/styles'\r\n\r\n\r\n\r\nconst styles = (theme) => ({\r\n container: {\r\n padding: theme.spacing(2)\r\n },\r\n item: {\r\n width: '100%' // Fix chrome issue where hovering over items changes width of flexbox\r\n },\r\n note: {\r\n width: '100%',\r\n backgroundColor: 'lightyellow',\r\n border: 'solid'\r\n },\r\n dz: {\r\n height: '100px',\r\n width: '100px',\r\n borderColor: 'white',\r\n align: 'left'\r\n },\r\n image: {\r\n padding: '0 4px'\r\n }\r\n})\r\n\r\nclass ViewWorkNotes extends Component {\r\n \r\n componentDidMount () {\r\n const { fetchWorkNotes, hmKey } = this.props\r\n fetchWorkNotes(hmKey)\r\n \r\n }\r\n\r\n render () {\r\n const {\r\n classes\r\n } = this.props\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n Work Notes\r\n \r\n \r\n\r\n\r\n \r\n \r\n
\r\n {this.props.worknotes.map ?\r\n this.props.worknotes.map((note) => (\r\n

User:  {note.updtUserId}  \r\n Date:  {note.updtDate}  \r\n Work Note:  {note.workNote}

\r\n ))\r\n : ''\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n const worknotes = state.incident.current_worknotes || ''\r\n return {\r\n worknotes\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\r\n const fetchWorkNotes = (hmKey) => {\r\n dispatch(IncidentActions.retrieveWorkNotes(hmKey))\r\n }\r\n return {\r\n fetchWorkNotes\r\n }\r\n}\r\nexport default compose(\r\n connect(mapStateToProps, mapDispatchToProps),\r\n withStyles(styles)\r\n)(ViewWorkNotes)\r\n","import React from 'react'\r\nimport { withStyles } from '@material-ui/core/styles'\r\nimport Grid from '@material-ui/core/Grid'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport Dropzone from 'react-dropzone'\r\nimport * as DateUtils from '../utilities/date-utils'\r\nimport PageContainer from './PageContainer'\r\nimport TextField from '@material-ui/core/TextField'\r\nimport * as Roles from '../constants/roles'\r\nimport * as Incidents from '../constants/incidents'\r\nimport CarrierSelect from '../containers/inputs/CarrierSelect'\r\nimport AirportDestinationSelect from '../containers/inputs/AirportDestinationSelect'\r\nimport AirportOriginSelect from '../containers/inputs/AirportOriginSelect'\r\nimport InitialFindingSelect from '../containers/inputs/InitialFindingSelect'\r\nimport IcaoHazardClassSelect from '../containers/inputs/IcaoHazardClassSelect'\r\nimport IssueIdentifierSelect from '../containers/inputs/IssueIdentifierSelect'\r\nimport IssueTypeSelect from '../containers/inputs/IssueTypeSelect'\r\nimport DangerousItemSelect from '../containers/inputs/DangerousItemSelect'\r\nimport RestrictedItemSelect from '../containers/inputs/RestrictedItemSelect'\r\nimport UsStateSelect from '../containers/inputs/UsStateSelect'\r\nimport LetterMailedSelect from '../containers/inputs/LetterMailedSelect'\r\n//--Received has been intentionally misspelled as receivd because 'CUSTOMER_LETTER_RECEIVD_STATUS' is 30 characters long -- this is the maximum name length allowed by our Oracle database.\r\nimport LetterReceivdSelect from '../containers/inputs/LetterReceivdSelect'\r\nimport CountrySelect from '../containers/inputs/CountrySelect'\r\nimport LoadingImage from '../containers/LoadingImage'\r\nimport ProgressButton from './buttons/ProgressButton'\r\nimport { DatePicker } from '@material-ui/pickers'\r\nimport ViewWorkNotes from './ViewWorkNotes'\r\nimport AuditTable from './AuditTable'\r\nimport WorkNotes from './WorkNotes'\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'\r\n\r\nconst styles = {\r\n upldImage: {\r\n height: '100px',\r\n width: '100px',\r\n backgroundColor: 'lightblue',\r\n border: 'dashed',\r\n borderColor: 'darkblue'\r\n },\r\n dz: {\r\n height: '100px',\r\n width: '100px',\r\n borderColor: 'white',\r\n align: 'left',\r\n padding: 10\r\n },\r\n image: {\r\n padding: '0 4px'\r\n },\r\n imageContainer: {\r\n padding: '20px'\r\n },\r\n redBox: {\r\n border: 'solid',\r\n borderColor: 'red'\r\n }\r\n \r\n }\r\n\r\n const phoneRegex = /^\\(?([0-9]{3})\\)?[-.]?([0-9]{3})[-.]?([0-9)]{4})$/\r\n\r\n const handlePhoneInput = (value) => {\r\n // console.log('[components/ViewForm] handlePhoneInput')\r\n if (value) {\r\n return (\r\n value.replace(phoneRegex, '($1) $2-$3')\r\n )\r\n }\r\n }\r\n\r\n // const isAlphaNumeric = (text) => { return text.match(/^[0-9a-zA-Z]+$/) }\r\n\r\n function lettersNumbersCheck(name)\r\n{\r\n var regEx = /^[0-9a-zA-Z]+$/;\r\n if(name.match(regEx))\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n //alert(\"Please enter letters and numbers only.\");\r\n return false;\r\n }\r\n} \r\n\r\nfunction certifiedTrackingNumberCheck(name) {\r\n var regEx = /^[0-9]+$/;\r\n if(name.match(regEx)) { return true; }\r\n else { return false; }\r\n } \r\n\r\nclass ViewForm extends React.Component {\r\n \r\n componentDidMount = () => {\r\n // console.log('[components/ViewForm] componentDidMount')\r\n this.props.onSnackbarClose()\r\n this.props.fetchLogs(this.props.incident.hmKey)\r\n this.props.deleteStagedImages()\r\n this.props.fetchImages(this.props.incident.hmKey)\r\n }\r\n\r\n \r\n showHistory = () => {\r\n this.props.onSnackbarOpen()\r\n }\r\n\r\n\r\n formatDate(date){\r\n return (date.getMonth() + 1) + \"-\" + date.getDate() + \"-\" + date.getFullYear();\r\n }\r\n\r\n colorMeRed = () => {\r\n // console.log('[components/ViewForm] colorMeRed') \r\n if (this.props.incident.barcodeCn35 === '' || this.props.incident.barcodeCn35 == null) {\r\n document.getElementById('barcodeCn35').className = 'redBox'\r\n }\r\n\r\n }\r\n\r\n render(){ \r\n\r\n // console.log('[components/ViewForm] render')\r\n const uploadIt = (acceptedFiles) =>{\r\n acceptedFiles.forEach((file) => {\r\n uploadImage(file, incident.hmKey)\r\n })\r\n \r\n }\r\n const { incident, classes, selimages, onSnackbarClose, uploadImage, snackbarOpen, role } = this.props;\r\n\r\n return(\r\n \r\n \r\n \r\n \r\n \r\n {/* TODONE: Display Agency reporting incident, if reported by Agency */}\r\n Dangerous Item -- \r\n {'AGENT'===incident.entityReportingIncident && incident.agencyReportingIncident}\r\n { 'AGENT'!==incident.entityReportingIncident && incident.airlineReportingIncident }\r\n -{ DateUtils.formatIdDate(incident.dateReported) }-{ incident.hmKey } -- View\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {incident.initialFinding === 'DG' ?\r\n \r\n \r\n \r\n :''}\r\n \r\n {incident.initialFinding === 'DG' ?\r\n \r\n \r\n \r\n \r\n \r\n { incident.icaoHazardClass !== 'Not Selected' && incident.icaoHazardClass !== null?\r\n \r\n :''\r\n }\r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n { incident.issueType === 'RI'?\r\n \r\n \r\n \r\n :\r\n ''}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Sender\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Recipient/Consignee\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n {selimages.map ?\r\n selimages.map((image, index)=>(\r\n \r\n ))\r\n :\r\n ''\r\n \r\n }\r\n */}\r\n\r\n { ((role === Roles.DANGEROUS_GOODS_ADMIN ) && (incident.status === Incidents.INPROCESS || incident.status === Incidents.CLOSED) ) ?\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n :\r\n ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Images\r\n \r\n {selimages.map ?\r\n selimages.map((image, index)=>(\r\n \r\n ))\r\n :\r\n '' (\r\n )\r\n }\r\n \r\n { ((role === Roles.CUSTOMER_SERVICE_AGENT) && (incident.status === Incidents.INPROCESS)) ?\r\n \r\n \r\n {\r\n this.downloadWordFile()\r\n }}\r\n >\r\n Generate Customer Letter\r\n \r\n \r\n\r\n \r\n :\r\n ''} \r\n\r\n { ((role === Roles.CUSTOMER_SERVICE_AGENT ) && (incident.status === Incidents.INPROCESS) ) ?\r\n \r\n \r\n \r\n {this.props.handleFieldChange('customerLetterMailedStatus', event.target.value)}} \r\n /> \r\n\r\n\r\n \r\n \r\n this.props.handleFieldChange('customerLetterMailedDate', event)}\r\n />\r\n \r\n \r\n \r\n \r\n this.props.handleFieldChange('customerLetterFilename', event.target.value)}\r\n /> \r\n \r\n \r\n this.props.handleFieldChange('customerLetterFileLocation', event.target.value)}\r\n /> \r\n \r\n \r\n \r\n 20) || !certifiedTrackingNumberCheck(incident.customerLetterCrfTrackNo)))} \r\n value={ incident.customerLetterCrfTrackNo || '' }\r\n name='customerLetterCrfTrackNo'\r\n onChange={ (event) => this.props.handleFieldChange('customerLetterCrfTrackNo', event.target.value)}\r\n /> \r\n \r\n

\r\n \r\n \r\n {this.props.handleFieldChange('customerLetterResponseStatus', event.target.value)}} \r\n /> \r\n \r\n \r\n this.props.handleFieldChange('customerLetterResponseDate', event)}\r\n />\r\n \r\n \r\n \r\n \r\n this.props.handleFieldChange('customerLetterResponseFilename', event.target.value)}\r\n /> \r\n \r\n \r\n this.props.handleFieldChange('customerLetterResponseFileLoc', event.target.value)}\r\n /> \r\n \r\n \r\n
\r\n :\r\n ''}\r\n \r\n \r\n {\r\n this.showHistory()\r\n }}\r\n >\r\n View History\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(ViewForm)","import { connect } from 'react-redux'\r\nimport { withRouter } from 'react-router-dom'\r\n\r\nimport * as ErrorActions from '../../actions/error'\r\nimport * as IncidentActions from '../../actions/incident'\r\nimport * as SnackbarActions from '../../actions/snackbar'\r\nimport * as Roles from '../../constants/roles'\r\nimport * as HmLogAction from '../../actions/hmlog'\r\nimport ViewForm from '../../components/ViewForm'\r\n\r\nconst getInitialValues = (incident, role) => {\r\n // console.log('[containers/ViewForm] getInitialValues')\r\n if (role === Roles.DANGEROUS_GOODS_ADMIN || role === Roles.DANGEROUS_GOODS_ADMIN_READONLY || role === Roles.CARRIER || role === Roles.AGENT) {\r\n return {\r\n hmkey: incident.hmKey\r\n }\r\n }\r\n return {}\r\n}\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n // console.log('[containers/ViewForm] mapStateToProps')\r\n const incident = state.incident.selected_incident\r\n const hm_logs = state.hmlog.selected_logs\r\n const role = state.user.role\r\n const snackbarOpen = state.snackbars.reportDetail\r\n const selimages = state.incident.selected_incident_images || {}\r\n return {\r\n incident,\r\n initialValues: getInitialValues(incident, role),\r\n role,\r\n snackbarOpen,\r\n selimages,\r\n hm_logs\r\n }\r\n}\r\n\r\n//I'm not sure when the last time is that we exercised the READ_ONLY functionality. How would I run this in DEV?\r\n//I don't think deleteIncident, closeIncident, uploadImage, onSubmit, saveDraft, deleteStagedImages, handleFieldChange ever occur to this read-only incident.\r\n//Some of the other actions may be possible but I'm not sure.\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n // console.log('[containers/ViewForm] mapDispatchToProps')\r\n const onError = (errorText, title) => {\r\n // console.log('[containers/ViewForm] mapDispatchToProps -- onError')\r\n dispatch(ErrorActions.openErrorDialog({ errorText, title }))\r\n }\r\n\r\n const onSnackbarClose = () => {\r\n // console.log('[containers/ViewForm] mapDispatchToProps -- onSnackbarClose')\r\n dispatch(SnackbarActions.close('reportDetail'))\r\n }\r\n\r\n const onSnackbarOpen = () => {\r\n // console.log('[containers/ViewForm] mapDispatchToProps -- onSnackbarOpen') \r\n dispatch(SnackbarActions.open('reportDetail'))\r\n }\r\n\r\n const deleteIncident = () => {\r\n dispatch(IncidentActions.deleteIncident())\r\n .then(() => {\r\n ownProps.history.push('/home')\r\n })\r\n }\r\n\r\n const closeIncident = () => {\r\n dispatch(IncidentActions.closeIncident())\r\n .then(() => {\r\n ownProps.history.push('/home')\r\n })\r\n }\r\n const fetchLogs = (hmkey) =>{\r\n // console.log('[containers/ViewForm] mapDispatchToProps -- fetchLogs') \r\n dispatch(HmLogAction.fetchHmLogs(hmkey))\r\n }\r\n\r\n const uploadImage = (file, hmkey) => {\r\n // console.log('FILE IS ')\r\n // console.log(file)\r\n dispatch(IncidentActions.uploadImage(hmkey,file))\r\n dispatch(IncidentActions.retrieveItemImages(hmkey))\r\n }\r\n\r\n const fetchImages = (hmkey) => {\r\n // console.log('[containers/ViewForm] mapDispatchToProps -- fetchImages') \r\n dispatch(IncidentActions.retrieveItemImages(hmkey))\r\n }\r\n\r\n //I don't think the ViewForm can ever SUBMIT\r\n const onSubmit = () => {\r\n // console.log('onSubmit...')\r\n return new Promise((resolve) => {\r\n // console.log('...resolve complete') \r\n resolve('complete')\r\n })\r\n .then(() => {\r\n // console.log('...Calling dispatch IncidentActions.submitEditComplete')\r\n return dispatch(IncidentActions.submitEditComplete())\r\n }) \r\n .then(() => {\r\n console.log('...Calling saveDraft')\r\n return saveDraft()\r\n })\r\n }\r\n\r\n //I don't think the ViewForm can ever SAVE\r\n const saveDraft = () =>{\r\n dispatch(IncidentActions.submitEditDraft())\r\n .then((success) => {\r\n // console.log('[ViewForm] mapDispatchToProps - dispatch IncidentActions.submitEditDraft - then - success =', success)\r\n if (success) {\r\n ownProps.history.push('/home')\r\n }\r\n })\r\n }\r\n\r\n const deleteStagedImages = () => {\r\n dispatch(IncidentActions.deleteStagedImages())\r\n }\r\n\r\n const handleFieldChange = (name, value) =>{ \r\n dispatch(IncidentActions.handleFieldChange(name, value))\r\n }\r\n\r\n return {\r\n onError,\r\n onSnackbarClose,\r\n onSnackbarOpen,\r\n onSubmit,\r\n uploadImage,\r\n fetchImages,\r\n saveDraft,\r\n fetchLogs,\r\n closeIncident,\r\n deleteIncident,\r\n deleteStagedImages,\r\n handleFieldChange\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(ViewForm))\r\n","import React, { Component } from 'react'\r\nimport { compose } from 'redux'\t\r\nimport { Field, reduxForm } from 'redux-form' \r\nimport { TextField } from './ReduxFormMaterialUI'\r\nimport { Divider, Grid, Typography, withStyles, Button } from '@material-ui/core'\r\nimport { blue, grey, red } from '@material-ui/core/colors'\r\nimport * as Roles from '../constants/roles'\r\nimport PageContainer from './PageContainer'\r\nimport DatePickerField from './inputs/DatePickerField'\t\r\nimport { getOnePersonById } from '../services/person'\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'\r\n\r\n//const debug = true;\r\nconst debug = false;\r\n\r\nvar initialValues={};\r\n\r\nconst styles = (theme) => ({\r\n addIcon: {\r\n color: grey[600],\r\n cursor: 'pointer',\r\n marginRight: '64px',\r\n '&:hover': {\r\n color: blue[700]\r\n }\r\n },\r\n cancelIcon: {\r\n color: grey[600],\r\n cursor: 'pointer',\r\n marginRight: '64px',\r\n '&:hover': {\r\n color: red[700]\r\n }\r\n },\r\n container: {\r\n padding: theme.spacing(2)\r\n },\r\n errorIcon: {\r\n color: red[500]\r\n },\r\n hidden: {\r\n visibility: 'hidden'\r\n },\r\n iconColumn: {\r\n width: '30px'\r\n },\r\n tableBodyCell: {\r\n verticalAlign: 'top'\r\n },\r\n tableCell: {\r\n padding: '12px'\r\n },\r\n tooltip: {\r\n fontSize: '12px'\r\n }\r\n})\r\n\r\nconst today = new Date();\r\n\r\nclass ViewPerson extends Component {\r\n state = {\r\n row: '',\r\n rows:[],\r\n reason:''\r\n }\r\n\r\n handleBackClick = () => {\t\r\n // console.log('[components/ViewPerson] handleBackClick ')\t\r\n const { history } = this.props\t\r\n history.push('/adminhome')\t\r\n }\t\r\n\r\n componentDidMount () {\r\n // console.log('[components.ViewPerson.index] componentDidMount() today=', today)\r\n this.props.change('updatedDatetime', today);\r\n var pathname = this.props.location.pathname; \r\n var personId = pathname.slice(12); //length of '/viewperson/'\r\n // console.log(personId);\r\n initialValues = getOnePersonById(personId); \r\n initialValues.then((rows) => {\r\n // console.log('[components.ViewPerson.componentDidMount].then'); \r\n // console.log('initialValues.then rows ',rows);\r\n this.setState({ row: rows})\r\n // console.log('initialValues.then this.state.row ',this.state.row); \r\n this.props.change('createdDatetime', this.state.row.createdDatetime); \r\n })\r\n }\r\n\r\n render() {\r\n // console.log('[components/ViewPerson] render ') \r\n // console.log('state=', this.state) \r\n // console.log('props=', this.props) \r\n const {\r\n classes,\r\n handleApprove,\r\n handleDeny,\r\n role\r\n } = this.props;\r\n // console.log('[components/ViewPerson/render] role= ', role) \r\n // console.log('[components/ViewPerson/render] state= ', this.state) \r\n // if (this.state) console.log('[components/ViewPerson/render] state= ', this.state); \r\n var row = this.state.row;\r\n // console.log('this.state.row',this.state.row);\r\n // console.log('row',row);\r\n return(\r\n \r\n Carrier Registration View\r\n \r\n
\r\n \r\n \r\n Carrier Registration\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n row.approved) ? 'Denied' :'Invalid' } \r\n readOnly={true}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n { (role === Roles.DANGEROUS_GOODS_ADMIN) &&\r\n \r\n }\r\n { (role === Roles.DANGEROUS_GOODS_ADMIN) &&\r\n \r\n }\r\n
\r\n \r\n
\r\n )\r\n \r\n }\r\n}\r\n\r\nexport default compose(\t\r\n reduxForm({\t\r\n form: 'view-person'\r\n }),\t\r\n withStyles(styles)\t\r\n)(ViewPerson)\r\n","import { connect } from 'react-redux'\r\nimport { withRouter } from 'react-router-dom'\r\nimport * as PersonActions from '../../actions/person'\r\nimport * as SnackbarActions from '../../actions/snackbar'\r\nimport ViewPerson from '../../components/ViewPerson'\r\n\r\nconst mapStateToProps = (state) => {\r\n // console.log(\"[containers/ViewPerson/ViewPersonForm] mapStateToProps\")\r\n // console.log(\"state=\", state)\r\n const snackbarOpen = state.snackbars.approvePerson\t \r\n const person = state.person || ''\r\n const role = state.user.role\r\n return {\r\n initialValues: state.person,\r\n person,\r\n role,\r\n snackbarOpen\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n // console.log(\"[containers/ViewPerson/ViewPersonForm] mapDispatchToProps\")\r\n \r\n const fetchPerson= (personId) => {\r\n // console.log('[containers/ViewPersonForm] fetchPerson personId=', personId)\t \r\n dispatch(PersonActions.retrieveOnePersonById(personId));\r\n }\r\n\r\n const onBackClick = (ownProps) => {\t\r\n // console.log('[containers/ViewPersonForm] onBackClick - ownProps='.ownProps)\t \r\n ownProps.history.push('/adminhome')\t\r\n }\t\r\n\r\n const onSnackbarClose = () => {\t\r\n // console.log('[containers/ViewPersonForm] onSnackbarClose')\t\r\n dispatch(SnackbarActions.close('approvePerson'))\t\r\n }\t\r\n\r\n const handleApprove = (values,ownProps) => {\r\n // console.log('ViewPersonForm.handleApprove values=', values);\r\n return dispatch(PersonActions.approvePerson(values));\r\n }\r\n\r\n const handleDeny = (...values) => {\r\n // console.log('ViewPersonForm.handleDeny values=', ...values);\r\n return dispatch(PersonActions.denyPerson(...values));\r\n }\r\n\r\n const handleCancel = () => {\r\n // console.log('ViewPersonForm.handleCancel');\r\n return onBackClick();\r\n }\r\n\r\n return {\r\n fetchPerson,\r\n onBackClick,\t\r\n onSnackbarClose,\t \r\n handleApprove,\r\n handleDeny,\r\n handleCancel\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(ViewPerson))\r\n","import React from 'react'\r\nimport { BrowserRouter as Router, Switch, Redirect, Route } from 'react-router-dom'\r\n\r\nimport config from './config'\r\nimport AuthRedirect from './containers/AuthRedirect'\r\n\r\nimport App from './containers/App'\r\nimport LoginPageInternal from './containers/LoginPageInternal'\r\nimport LoginPageExternal from './containers/LoginPageExternal'\r\n\r\nimport WelcomePage from './containers/WelcomePage'\r\nimport HomePage from './containers/HomePage'\r\nimport AdminHomePage from './containers/AdminHomePage'\r\nimport TrackerForm from './containers/TrackerForm'\r\nimport CreatePerson from './containers/CreatePerson'\r\nimport CreateAgent from './containers/CreateAgent'\r\nimport EditForm from './containers/Edit/EditForm'\r\nimport ViewForm from './containers/View/ViewForm'\r\nimport ViewPersonForm from './containers/ViewPerson/ViewPersonForm'\r\n\r\n// import LoginBoth from './components/LoginBoth'\r\n\r\nconst LoginRedirect = () => \r\n\r\n// const debug = false;\r\n\r\nconst createRoutes = (history) => \r\n (\r\n\r\n \r\n
\r\n \r\n \r\n \r\n {// Carrier signs up for new account. Does not need to login\r\n }\r\n \r\n\r\n \r\n\r\n {// Debug only. Page allows internal and external logins on the same page.\r\n }\r\n {/* { (true === debug) && (\r\n \r\n ) } */}\r\n \r\n {// External login for Air Carrier Users\r\n }\r\n { ('external' === config.LOGIN) && (\r\n \r\n // \r\n ) }\r\n\r\n {// Internal login for USPS DG Admin Users\r\n }\r\n {('internal' === config.LOGIN) && (\r\n \r\n // \r\n // \r\n ) }\r\n\r\n {// Welcome 'Landing Page' for the sole purpose of completing the login before we try to view incidents.\r\n }\r\n \r\n\r\n {// Home 'Landing Page' which lists all incidents\r\n }\r\n \r\n\r\n {// Create New Incident on the Tracker Form\r\n } \r\n \r\n {// Edit existing Incident\r\n } \r\n \r\n {// View existing Incident -- Read Only\r\n } \r\n \r\n {// Admin 'home page' which lists all pending user requests. (Originally based on 'home page' incident list)\r\n } \r\n \r\n {// Form used to 'Create Person' by adding a new User pending approval\r\n } \r\n \r\n {// Admin form used to approve or deny new Users\r\n } \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n\r\n\r\n\r\nexport default createRoutes\r\n","import React, { Component } from 'react'\r\nimport { Provider } from 'react-redux'\r\n\r\nimport { PersistGate } from 'redux-persist/integration/react'\r\nimport { persistReducer, persistStore } from 'redux-persist'\r\nimport storage from 'redux-persist/lib/storage/session' //Session Storage\r\n// import localStorage from 'redux-persist/lib/storage' //Local Storage\r\n\r\nimport DateFnsUtils from '@date-io/date-fns'\r\n\r\n//import MuiThemeProvider from '@material-ui/core/styles/MuiThemeProvider'\r\n\r\nimport { ThemeProvider as MuiThemeProvider } from '@material-ui/core/styles'\r\nimport { createMuiTheme } from '@material-ui/core/styles'\r\nimport { indigo, red } from '@material-ui/core/colors'\r\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers'\r\n\r\nimport rootReducer from '../reducers'\r\nimport configureStore from '../store/configureStore'\r\nimport createRoutes from '../routes.js'\r\n\r\nrequire('../global.css')\r\n\r\nconst persistConfig = { //Session Storage\r\n key: 'domir',\r\n storage\r\n}\r\n\r\n// const persistConfig = { //Local Storage\r\n// key: 'persist:domir',\r\n// storage: localStorage\r\n// }\r\n\r\nconst persistedReducer = persistReducer(persistConfig, rootReducer)\r\n\r\nconst store = configureStore(persistedReducer)\r\n\r\nconst persistor = persistStore(store)\r\n\r\nconst muiTheme = createMuiTheme({\r\n palette: {\r\n primary: indigo,\r\n secondary: red\r\n },\r\n typography: {\r\n useNextVariants: true\r\n }\r\n})\r\n\r\nexport default class Root extends Component {\r\n render () {\r\n return (\r\n \r\n \r\n \r\n \r\n {createRoutes()}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n","import 'react-app-polyfill/ie11'\r\nimport 'react-app-polyfill/stable'\r\n\r\nimport React from 'react'\r\nimport { render } from 'react-dom'\r\n\r\nimport Root from './containers/Root'\r\n\r\nrender(\r\n ,\r\n document.getElementById('root')\r\n)\r\n"],"sourceRoot":""}