diff --git a/package-lock.json b/package-lock.json index 0928bc1..55a4eae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8795,46 +8795,6 @@ "prop-types": "15.5.10" } }, - "react-draggable": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-3.0.5.tgz", - "integrity": "sha512-qo76q6+pafyGllbmfc+CgWfOkwY9v3UoJa3jp6xG2vdsRY8uJTN1kqNievLj0uVNjEqCvZ0OFiEBxlAJNj3OTg==", - "requires": { - "classnames": "2.2.5", - "prop-types": "15.6.0" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - }, - "fbjs": { - "version": "0.8.16", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", - "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", - "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.13" - } - }, - "prop-types": { - "version": "15.6.0", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", - "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", - "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" - } - } - } - }, "react-event-listener": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.4.5.tgz", @@ -8875,6 +8835,25 @@ } } }, + "react-input-mask": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/react-input-mask/-/react-input-mask-2.0.1.tgz", + "integrity": "sha512-HTy+j+tpMMf1ygaoR9xODCgwYm6DkdCl1kr2yPDn05SOEQTTKXMrvCeBj7h316DJ9d7q8q5Ti4jSaq68E14tJA==", + "requires": { + "invariant": "2.2.4", + "warning": "3.0.0" + }, + "dependencies": { + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "1.3.1" + } + } + } + }, "react-motion": { "version": "0.4.8", "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.4.8.tgz", diff --git a/package.json b/package.json index 4191c69..ed85878 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "react-helmet": "^5.1.3", "react-hot-loader": "^3.0.0-beta.6", "react-imgix": "^7.1.1", + "react-input-mask": "^2.0.1", "react-jquery-datatables": "^0.7.1", "react-materialui-notifications": "^0.5.1", "react-onclickoutside": "^5.10.0", diff --git a/src/client.js b/src/client.js index 7487e93..4cbe069 100644 --- a/src/client.js +++ b/src/client.js @@ -8,6 +8,10 @@ import { Router, hashHistory, browserHistory } from 'react-router'; import { syncHistoryWithStore, routerMiddleware } from 'react-router-redux'; import reducers from './reducers'; import Instance from './components/Connection'; +import { + loggedUser, + visitReporter, +} from 'utils/authorization'; const middleware = routerMiddleware(hashHistory); const store = createStore( @@ -55,7 +59,15 @@ const rootRoute = { onChange: requireAuth, onEnter: requireAuth, component: require('./containers/App'), - indexRoute: { onEnter: (nextState, replace) => replace('/app/table/rides') }, + indexRoute: { + onEnter: (nextState, replace) => { + if (loggedUser.anyOf(visitReporter)) { + replace('/app/form/visit/' + loggedUser.useruuid) + } else { + replace('/app/table/rides'); + } + } + }, childRoutes: [ require('./routes/app'), require('./routes/404'), diff --git a/src/components/Connection/index.js b/src/components/Connection/index.js index bb5e14f..f79a380 100644 --- a/src/components/Connection/index.js +++ b/src/components/Connection/index.js @@ -6,6 +6,9 @@ const Instance = () => { const apiUrl = process.env.NODE_ENV === 'production' ? 'https://portal-api.bcbsinstitute.com' : 'https://portal-api.dev.bcbsinstitute.com'; + + // const apiUrl = 'http://localhost:5100'; + window.localStorage.setItem('App', '8a266a40-ed2e-4be2-bdfc-459a507bf02e'); let instance = axios.create({ @@ -61,11 +64,25 @@ const Instance = () => { return setToken(token); }; + const getAPIUrl = (url) => { + if (!url) { + return instance; + } else { + const token = getCookie('token'); + return axios.create({ + baseURL: url, + timeout: 60000, + headers: { App: window.localStorage.getItem('App'), Token: `Bearer ${token}`, Token: `Bearer ${token}` }, + }); + } + } + const getRawConn = () => { const token = getCookie('token'); if (token && token !== null && token !== '') { return instance; } + window.location.href = '/#/login'; return null; }; @@ -80,6 +97,7 @@ const Instance = () => { getConnection, setToken, getRawConn, + getAPIUrl, }; }; diff --git a/src/components/Header/NavRightList.js b/src/components/Header/NavRightList.js index 3caf7e9..f25071b 100644 --- a/src/components/Header/NavRightList.js +++ b/src/components/Header/NavRightList.js @@ -6,10 +6,11 @@ import { hashHistory } from 'react-router'; import { loggedUser, + planScheduler, + providerScheduler, visitReporter, } from 'utils/authorization'; - const ImgIconButtonStyle = { width: '60px', height: '60px' @@ -34,6 +35,7 @@ class NavRightList extends React.Component { handleChange = (event, value) => { hashHistory.push(value); } + componentDidMount() { const user = JSON.parse(localStorage.getItem('loggedUser')); if (user) { @@ -46,6 +48,8 @@ class NavRightList extends React.Component {