{"version":3,"sources":["helpers/adalConfig.js","helpers/authHeader.js","helpers/axiosUser.js","translations/i18n.jsx","contexts/Context.js","hoc/withContext.jsx","helpers/ProtectedRoute.jsx","components/NavBar/NavBar.jsx","components/FieldError/FieldError.jsx","components/FormInput/BootstrapInput2.jsx","pages/Login/Login.jsx","pages/Login/Reset.jsx","components/Switch/Switch.jsx","components/Select/Select.jsx","components/Select/AsyncSelect.jsx","helpers/axiosWebEntry.js","helpers/axiosConfig.js","helpers/utils.js","components/CollapsePanel/CollapsePanel.jsx","helpers/enums.js","components/DataEntryField/DataEntryField.jsx","components/DataEntryField/Fields.jsx","components/Editor/Editor.jsx","components/DataEntryGroup/DataEntryFormGroup.jsx","components/DataEntryGroup/Groups.jsx","components/AssociatedEventSettings/AssociatedEventSettings.jsx","pages/DataEntry/Form.jsx","pages/DataEntry/List.jsx","helpers/axiosData.js","components/Datepicker/Datepicker.jsx","components/RadioGroup/RadioGroup.jsx","components/DataEntryGroup/DataEntryGroup.jsx","components/DataViewColumn/DataViewColumn.jsx","components/AssociatedEventSettings/AssociatedEventsGrid.jsx","components/Attachments/Attachments.jsx","components/OfficeExports/OfficeExports.jsx","pages/DataEntry/Entry.jsx","pages/DataEntry/Index.jsx","pages/DataView/Form.jsx","pages/DataView/Roster.jsx","pages/DataView/List.jsx","pages/DataView/Detail.jsx","pages/DataView/Index.jsx","pages/Landing/Form.jsx","components/LandingPageCard/LandingPageCard.jsx","pages/Landing/NoTilesMessage.jsx","pages/Landing/Landing.jsx","pages/Landing/Index.jsx","components/Alert/Alert.jsx","App.js","serviceWorker.js","index.js"],"names":["HOST","window","location","host","REDIRECT_URI","concat","OktaConfig","AdalConfig","Logging","log","message","console","level","AdalAuthObject","undefined","OktaAuthObject","setOktaConfig","provider","issuer","TenantDomain","clientId","ClientId","redirectUri","scopes","split","OktaAuth","setAadConfig","tenant","TenantId","endpoints","api","cacheLocation","postLogoutRedirectUri","origin","navigateToLoginRequestUrl","AuthenticationContext","p1","localStorage","getItem","p","JSON","parse","setOktaConfigFromLocalstorage","setAadConfigFromLocalstorage","authHeader","user","token","Authorization","instance","axios","create","baseURL","process","interceptors","request","use","config","headers","authorization","err","Promise","reject","resources","bn","translation","require","cs","de","en","es","fi","fr","it","ko","pt","ru","sv","zh","i18n","initReactI18next","init","fallbackLng","nonExplicitSupportedLngs","nsSeparator","keySeparator","AuthContext","React","createContext","_AuthProvider","getUserFromLocal","oktaStorage","idToken","value","jwttoken","JWT","seconds","Math","round","Date","getTime","exp","removeItem","state","isLoading","isMessageHidden","alerts","heading","_this","componentDidMount","userFromJwt","name","unique_name","roles","canLock","canUnlock","email","setItem","stringify","hideRolesMessage","setState","get","then","response","data","length","showRolesMessage","catch","error","can","login","pass","showLoading","post","password","clear","canu","pushAlert","variant","hideLoading","reset","oldPass","newPass","Email","OldPassword","NewPassword","logout","props","history","push","alert","Object","toConsumableArray","removeAlert","index","splice","clearAlerts","setHeading","isAdmin","includes","t","key","triggerComponentDidMountToSaveUser","setLanguage","lang","changeLanguage","lg","this","language","navigator","userLanguage","react_default","a","createElement","Provider","children","Component","AuthConsumer","Consumer","AuthProvider","withRouter","withContext","assign","context","_ref","component","rest","objectWithoutProperties","_ref2","react_router","render","getCachedToken","getCachedUser","to","encodeURIComponent","pathname","is_Scroll_0","onScroll","e","scrollY","addEventListener","componentWillUnmount","removeEventListener","Navbar","fixed","collapseOnSelect","className","expand","Brand","react_router_dom","Toggle","aria-controls","Collapse","id","Nav","Item","NavDropdown","alignRight","title","onClick","react_router_bootstrap_lib","active","Link","FieldError","style","backgroundColor","color","width","padding","borderRadius","shouldComponentUpdate","nextProps","currError","nextError","visible","options","_this$props","disableLabel","Prepend","prepend","Append","append","display","es_Form","Group","Fragment","Label","label","InputGroup","Control","info","Text","schemaForLogin","yup","shape","required","schemaForProviders","Login","providers","providersRequestSent","showPasswordInput","noProviders","onChange","target","objectSpread","requestSentTemp","showPass","componentWillUpdate","params","match","returnUrl","decodeURIComponent","handleSubmit","preventDefault","loadProviders","validate","abortEarly","values","errors","inner","forEach","el","path","username","axiosUser","setUserNotFound","singleProvider","SecurityProviderTypeId","loginViaNative","loginViaProvider","signInWithRedirect","_this2","Container","onSubmit","BootstrapInput2_default","autoFocus","type","sort","b","map","Name","index_es","icon","faSignInAlt","faMicrosoft","faCircle","schema","NewPassword2","oneOf","readOnly","Button","handleChange","checked","changedInject","_this$props2","alignItems","react_switch_default","_Select","handleBlur","onBlur","react_select_esm","_Async","Async_default","cacheOptions","loadOptions","PureComponent","array_move","arr","old_index","new_index","k","get_locale","loc","browserLanguage","languages","locale","hasOwnProperty","replace","indexOf","substring","isUrlAbsolute","url","test","open","closed","toggle","componentDidUpdate","prevProps","hasError","tmp","Children","child","cloneElement","opened","Card","Header","onRemove","Row","Col","sm","Body","in","isNumeric","val","isString","isDate","Field","DisplayName","DefaultValue","AssociatedGroups","Visible","ReadOnly","Required","UseTextarea","UseBtnWidget","FormatValidation","FormatValidationErrorMessage","RangeValidationLow","RangeValidationHigh","RangeValidationErrorMessage","react_beautiful_dnd_esm","draggableId","EventField","provided","snapshot","ref","innerRef","draggableProps","dragHandleProps","ID","Switch","BuiltInType","ValidationFunctionName","as","rows","react","Fields","fields","f","DataEntryField","Editor","react_quill_lib_default","formats","modules","toolbar","size","list","indent","InfoText","Collapsed","EventFieldsGroupEventFields","CollapsePanel_default","droppableId","minHeight","DataEntryField_Fields","placeholder","Groups","groups","g","i","DataEntryFormGroup","getViews","query","getEntries","EventsDataView","AsyncSelect","UrlParams","pageTypes","PageType","EventType","Roles","of","AssociatedEventDataViews","AllowAssociatedEvents","dirty","find","IdentityRole","Id","Order","DisableAttachments","getETs","axiosConfig","getRoles","loadET","eventValue","group","EventFields","prevState","cloneDeep","set","onClose","confirm","goBack","onDragEnd","destination","from","source","sourceGroup","destGroup","sourceArray","destArray","item","addGroup","addAssocView","removeAssocView","removeGroup","valid","IdentityRoleId","put","Select","defaultOptions","isMulti","AssociatedEventSettings_default","DataEntryGroup_Groups","ButtonGroup","addEntryHandler","event","loadRows","removeHandler","delete","toggleHandler","minRows","height","filterable","defaultFilterMethod","filter","row","column","pivotId","String","search","RegExp","columns","accessor","Cell","_original","disabled","Input","Datepicker","react_datepicker_es","customInput","Datepicker_Input","selected","showTimeInput","dateFormat","showYearDropdown","showMonthDropdown","dropdownMode","dateFormatCalendar","RadioGroup","Check","allVisibility","check","some","dangerouslySetInnerHTML","__html","isDisabled","field","enumparams","inputProps","getInputProps","enumValues","SORT_ORDER","newProps","Filter","ColumnOrder","Width","WordWrap","paddingTop","Grid","_isMount","view","eventType","WebEntries","EventTypePageEntity","axiosData","parentId","nodeId","Events","Values","openChildren","dataEntryId","eventId","nodeid","parentFormId","addChildren","NewEventTypePage","componentWillUnount","Columns","show","trim","o","headerClassName","prop","format","toDate","loading","minRow","getTrProps","rowInfo","handleOriginal","EventTypePageEntityId","original","_EventID","_NodeId","cursor","eventtypename","onDrop","files","formData","FormData","filename","downloadHandler","responseType","URL","createObjectURL","Blob","link","document","href","setAttribute","body","appendChild","click","Title","dist_es","getRootProps","isDragActive","FileName","templatename","dtoffset","getTimezoneOffset","TemplateName","Entry","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","obj","result","validation","validationEnabled","string","matches","number","typeError","min","max","mixed","modalClose","modalShow","goBackSteps","_itemId","reqData","ParentId","_parentId","temp_nodeid","_nodeId","entry","Result","go","lockvals","_lockState","reqvals","_newOwner","_ownedBy","loadEvent","_eventId","NodeId","limit","newGuid","_interval","setIntervalImmediately","clearInterval","handleUnlock","deleteEntry","Content-Type","_createdBy","groupsVisibility","defaultEnumValues","onChangeDebounced","localEnumValues","fieldName","setTargetsVisibilities","loadEntry","guid","arguments","ValidationFunctionParameter","startsWith","endsWith","param","parsed","queryString","componentWillReceiveProps","shareEntry","getOwners","setNewOwner","removeParentLink","pl","getElementById","remove","loadParentLink","eventtypeid","parentNodeId","textContent","debounce","passedNodeId","toString","systemColumns","tmpVal","userrights","rights","valueToUse","_this3","localTargetsVisibility","lines","l","lineValue","linesplit","_this3$getEnumValues","getEnumValues","enumFieldName","filteredValues","_this3$getEnumValues2","_this3$getEnumValues3","_this3$getEnumValues4","_this3$getEnumValues5","_this3$getEnumValues6","_this3$getEnumValues7","_this3$getEnumValues8","isThisInverted","_this4","enumsplit","enumvalues","_this5","localParentId","float","Update","DataEntryGroup","Unlock","Lock","Delete","Share","AssociatedEventsGrid","Attachments","OfficeExports","Modal_default","onHide","closeButton","Footer","func","interval","setInterval","Index","Form","List","VisibleInMenu","loadColumns","ev","keys","col","isClearable","DataViewColumn_default","getTdProps","addHandler","selectedView","loadView","desc","onChangeView","menuContainerStyle","zIndex","xs","sorted","defaultFiltered","c","maxHeight","webEntry","_EventTypeID","_ParentID","DataView_Index","Detail","Roster","integer","Image","Parent","Description","order","parent","getTiles","allowEdit","DisableRemoving","onRemoveTile","Img","src","hidemessage","Landing","tiles","current","loadTile","removeTile","LandingPageCard","Landing_NoTilesMessage","Landing_Index","Alert_Alert","Alert","dismissible","closeLabel","Heading","library","add","faSortUp","faSortDown","faPlus","faMinus","faTimes","faPen","faEye","faEyeSlash","faCalendar","faDownload","faSyncAlt","fab","App","listen","action","restoreOriginalUri","_callee","_oktaAuth","originalUri","regenerator_default","wrap","_context","prev","next","toRelativeUrl","stop","rel","NavBar","LoadingOverlay_default","spinner","styles","wrapper","base","position","top","overlay","okta_react_esm","oktaAuth","helpers_ProtectedRoute","exact","Reset","DataEntry","DataView","LoginCallback","Boolean","hostname","handleWindowCallback","isCallback","hash","acquireToken","msg","ReactDOM","src_App_0","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.63c05f63.chunk.js","sourcesContent":["import AuthenticationContext from 'adal-angular';\nimport { OktaAuth } from '@okta/okta-auth-js';\n\n\n\n/**\n * Configuration of Azure login. See Adal.js\n */\n//export const AdalConfig = {\n// tenant: process.env.REACT_APP_TENANT,\n// clientId: process.env.REACT_APP_CLIENT_ID,\n// endpoints: {\n// api: process.env.REACT_APP_CLIENT_ID,\n// },\n// cacheLocation: 'localStorage',\n// postLogoutRedirectUri: window.location.origin,\n// redirectUri: window.location.origin\n//};\n\n\n//const OKTA_DOMAIN = process.env.REACT_APP_OKTA_DOMAIN;\n//const CLIENT_ID = process.env.REACT_APP_OKTA_CLIENT_ID;\nconst CALLBACK_PATH = '/implicit/callback';\nconst HOST = window.location.host;\nconst REDIRECT_URI = `https://${HOST}${CALLBACK_PATH}`;\nconst SCOPES = 'openid profile email';\n\nvar OktaConfig = {};\nexport var AdalConfig = {};\n\n//const OktaConfig = {\n// issuer: `https://${OKTA_DOMAIN}/oauth2/default`,\n// clientId: CLIENT_ID,\n// redirectUri: REDIRECT_URI,\n// scopes: SCOPES.split(/\\s+/),\n//};\n\n\nwindow.Logging.log = function (message) {\n console.log(message); // this enables logging to the console\n}\nwindow.Logging.level = 2;\n\nexport var AdalAuthObject = undefined;\n\nexport var OktaAuthObject = undefined;\n\nexport const getToken = () => {\n return AdalAuthObject.getCachedToken(AdalAuthObject.config.clientId);\n};\n\n\n\nexport const setOktaConfig = (provider) => {\n OktaConfig = {\n issuer: `https://${provider.TenantDomain}`,//oauth2/default`,\n clientId: provider.ClientId,\n redirectUri: REDIRECT_URI,\n scopes: SCOPES.split(/\\s+/),\n };\n OktaAuthObject = new OktaAuth(OktaConfig)\n}\n\nexport const setAadConfig = (provider) => {\n AdalConfig = {\n tenant: provider.TenantId,\n clientId: provider.ClientId,\n endpoints: {\n api: provider.ClientId,\n },\n cacheLocation: 'localStorage',\n postLogoutRedirectUri: window.location.origin,\n redirectUri: window.location.origin,\n navigateToLoginRequestUrl: false\n };\n AdalAuthObject = new AuthenticationContext(AdalConfig);\n}\n\n//export const getOktaAuthObject = () => {\n// return OktaAuthObject;\n//}\n\nconst setOktaConfigFromLocalstorage = () => {\n var p1 = localStorage.getItem(\"oktaProvider\");\n if (p1 !== undefined && p1 != null) {\n var p = JSON.parse(p1);\n setOktaConfig(p);\n }\n}\n\nsetOktaConfigFromLocalstorage();\n\nconst setAadConfigFromLocalstorage = () => {\n var p1 = localStorage.getItem(\"aadProvider\");\n if (p1 !== undefined && p1 != null) {\n var p = JSON.parse(p1);\n setAadConfig(p);\n }\n}\n\nsetAadConfigFromLocalstorage();","/**\n * func to dynamically set authorization header on current JWT token with every call\n */\nexport default () => {\n let user = JSON.parse(localStorage.getItem('user'));\n if(user && user.token)\n return { 'Authorization': 'Bearer ' + user.token }; \n \n return {};\n}","import axios from 'axios';\nimport authHeader from './authHeader';\n\n\n/**\n * Instance used for ajax calls in User API.\n */\nconst instance = axios.create({\n baseURL: process.env.REACT_APP_USER_API\n});\n\ninstance.interceptors.request.use(config=>{\n config.headers.authorization = authHeader().Authorization;\n return config;\n }, err => Promise.reject(err)\n);\n\nexport default instance;","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\n\n// the translations\n// (tip move them in a JSON file and import them)\nconst resources = {\n \"bn\": { translation: require('./bn.json') },\n \"cs\": { translation: require('./cs.json') },\n \"de\": { translation: require('./de.json') },\n \"en\": { translation: require('./en.json') },\n \"es\": { translation: require('./es.json') },\n \"fi\": { translation: require('./fi.json') },\n \"fr\": { translation: require('./fr.json') },\n \"it\": { translation: require('./it.json') },\n \"ko\": { translation: require('./ko.json') },\n \"pt\": { translation: require('./pt.json') },\n \"ru\": { translation: require('./ru.json') },\n \"sv\": { translation: require('./sv.json') },\n \"zh\": { translation: require('./zh.json') }\n\n};\n\n//const userLang = navigator.language || navigator.userLanguage;\n\ni18n\n .use(initReactI18next) // passes i18n down to react-i18next\n .init({\n resources,\n fallbackLng: \"en\",\n nonExplicitSupportedLngs: true,\n nsSeparator: false,\n keySeparator: false,\n \n //lng: \"cz\",\n\n //keySeparator: false, // we do not use keys in form messages.welcome\n\n //interpolation: {\n //escapeValue: false // react already safes from xss\n //}\n });\n\nexport default i18n;","import React from 'react';\nimport axios from '../helpers/axiosUser';\nimport { withRouter } from 'react-router-dom';\nimport * as JWT from 'jwt-decode';\nimport i18n from '../translations/i18n';\nimport { withOktaAuth } from '@okta/okta-react';\n\n\nconst AuthContext = React.createContext();\n\n/**\n * Global state using React Context API.\n * Manages:\n * user login/logout\n * display of loading spinner over whole screen\n * storage of error/success alerts\n * setting of navigation header\n */\nclass _AuthProvider extends React.Component {\n /**\n * Get user from localstorage. JWT token contains all info about user.\n * ems.idtoken is our database based JWT token\n * adal.idtoken is Azure JWT token\n */\n getUserFromLocal = () => {\n let token = undefined;\n if (localStorage.getItem('ems.idtoken'))\n token = localStorage.getItem('ems.idtoken');\n else if (localStorage.getItem('adal.idtoken')) {\n token = localStorage.getItem('adal.idtoken');\n }\n else if (localStorage.getItem('okta-token-storage')) {\n let oktaStorage = JSON.parse(localStorage.getItem('okta-token-storage'));\n if (oktaStorage !== undefined && oktaStorage.idToken !== undefined && oktaStorage.idToken.value !== undefined) {\n token = oktaStorage.idToken.value;\n }\n }\n\n //todo check expiry date\n //if not delete from local storage\n else\n return undefined;\n\n let jwttoken = JWT(token);\n let seconds = Math.round((new Date()).getTime() / 1000);\n\n if (jwttoken.exp < seconds) {\n localStorage.removeItem('ems.idtoken')\n localStorage.removeItem('adal.idtoken')\n localStorage.removeItem('okta-token-storage')\n return undefined;\n }\n\n return jwttoken;\n }\n\n state = {\n //show global loading spinner\n isLoading: false,\n\n isMessageHidden: true,\n //array of alert messages\n alerts: [],\n //global navigation header\n heading: '',\n //currently singed user object parsed from JWT token\n user: this.getUserFromLocal(),\n };\n\n\n /**\n * Initial ops. Load user from storage, parse it and store it to state.\n * If JWT is from Azure, load roles from our server.\n */\n componentDidMount = () => {\n\n let userFromJwt = undefined;\n let token = undefined;\n if (localStorage.getItem('ems.idtoken'))\n token = localStorage.getItem('ems.idtoken');\n else if (localStorage.getItem('adal.idtoken')) {\n token = localStorage.getItem('adal.idtoken');\n }\n else if (localStorage.getItem('okta-token-storage')) {\n let oktaStorage = JSON.parse(localStorage.getItem('okta-token-storage'));\n if (oktaStorage !== undefined && oktaStorage.idToken !== undefined && oktaStorage.idToken.value !== undefined) {\n token = oktaStorage.idToken.value;\n }\n }\n\n else\n return;\n userFromJwt = JWT(token);\n let user = { name: userFromJwt.unique_name, token: token, roles: userFromJwt['http://schemas.microsoft.com/ws/2008/06/identity/claims/role'], canLock: userFromJwt.canLock === \"True\" ? true : false, canUnlock: userFromJwt.canUnlock === \"True\" ? true : false };\n\n if (user.name === undefined)\n user.name = userFromJwt.email;\n\n localStorage.setItem('user', JSON.stringify(user));\n this.hideRolesMessage();\n this.setState({ user: user }, () => {\n if (!user.roles) {\n\n\n axios.get('/userroles')\n .then(response => {\n const roles = JSON.parse(response.data);\n user.roles = roles;\n localStorage.setItem('user', JSON.stringify(user));\n this.setState({ user: user }, () => {\n if (!user.roles || user.roles.length == 0) {\n this.showRolesMessage();\n }\n });\n\n })\n .catch(error => {\n console.log(error);\n this.showRolesMessage();\n });\n\n axios.get('/usercanlock?name=' + user.name)\n .then(response => {\n const can = JSON.parse(response.data);\n user.canLock = can;\n localStorage.setItem('user', JSON.stringify(user));\n this.setState({ user: user });\n })\n .catch(error => {\n console.log(error);\n });\n\n axios.get('/usercanunlock?name=' + user.name)\n .then(response => {\n const can = JSON.parse(response.data);\n user.canUnlock = can;\n localStorage.setItem('user', JSON.stringify(user));\n this.setState({ user: user });\n })\n .catch(error => {\n console.log(error);\n });\n\n\n }\n });\n }\n\n /**\n * Login ajax call for non-azure login. It stores parsed JWT token user to state.\n */\n login = (email, pass) => {\n this.hideRolesMessage();\n this.showLoading();\n axios.post('/authenticate', { email: email, password: pass })\n .then(response => {\n const token = response.data;\n let user = JWT(token);\n user = { name: user.unique_name, token: token, roles: user['http://schemas.microsoft.com/ws/2008/06/identity/claims/role'] };\n localStorage.clear();\n localStorage.setItem('ems.idtoken', token);\n localStorage.setItem('user', JSON.stringify(user));\n this.setState({ user: user }, () => {\n\n axios.get('/usercanlock?name=' + user.name)\n .then(response => {\n const can = JSON.parse(response.data);\n user.canLock = can;\n\n axios.get('/usercanunlock?name=' + user.name)\n .then(response => {\n const canu = JSON.parse(response.data);\n user.canUnlock = canu;\n\n\n localStorage.setItem('user', JSON.stringify(user));\n this.setState({ user: user }, () => {\n if (!user.roles || user.roles.length == 0) {\n this.showRolesMessage();\n }\n });\n this.pushAlert({ variant: 'success', message: 'Logged In.' });\n\n })\n .catch(error => {\n console.log(error);\n });\n\n })\n .catch(error => {\n console.log(error);\n });\n });\n\n })\n .catch(error => {\n this.pushAlert({ variant: 'danger', message: (error && error.response && error.response.data && error.response.data.message) ? error.response.data.message : 'Unable to login.' })\n console.log(error);\n this.hideLoading();\n });\n }\n\n /**\n * Reset password call.\n */\n reset = (email, oldPass, newPass) => {\n this.showLoading();\n axios.post('/resetpassword', { Email: email, OldPassword: oldPass, NewPassword: newPass })\n .then(response => {\n this.pushAlert({ variant: 'success', message: 'Password successfully changed. Please log in with new password.' });\n this.logout();\n this.hideLoading();\n })\n .catch(error => {\n this.pushAlert({ variant: 'danger', message: error.response.data.message ? error.response.data.message : 'Unable to reset password.' })\n console.log(error);\n this.hideLoading();\n });\n }\n\n /**\n * Logout call. Clears whole localstorage.\n */\n logout = () => {\n this.setState({ user: undefined });\n localStorage.clear();\n this.props.history.push('/login')\n }\n\n /**\n * Adds new alert message to state.\n */\n pushAlert = (alert) => {\n const alerts = [...this.state.alerts];\n alerts.push(alert);\n this.setState({ alerts: alerts });\n }\n\n /**\n * Removes alert message based on index.\n */\n removeAlert = (index) => {\n const alerts = [...this.state.alerts];\n alerts.splice(index, 1);\n this.setState({ alerts: alerts });\n }\n\n /**\n * Removes all alerts.\n */\n clearAlerts = () => {\n this.setState({ alerts: [] });\n }\n\n /**\n * Shows global loading spinner.\n */\n showLoading = () => {\n this.setState({ isLoading: true });\n }\n\n hideRolesMessage = () => {\n this.setState({ isMessageHidden: true });\n }\n\n showRolesMessage = () => {\n this.setState({ isMessageHidden: false });\n }\n\n /**\n * Hides global loading spinner.\n */\n hideLoading = () => {\n this.setState({ isLoading: false });\n }\n\n /**\n * Changes state and sets global navigation header.\n */\n setHeading = (heading) => {\n this.setState({ heading: heading });\n }\n\n /**\n * Check if current user is admin.\n */\n isAdmin = () => {\n if (this.state.user && this.state.user.roles)\n return this.state.user.roles.includes('Admin');\n return false;\n }\n\n t = (key) => { return i18n.t(key); }\n\n triggerComponentDidMountToSaveUser = () => {\n this.componentDidMount()\n }\n\n\n setLanguage = (lang) => {\n i18n.changeLanguage(lang);\n }\n\n render() {\n let lg = this.state.user !== undefined ? this.state.user.language : undefined;\n if (lg === undefined) {\n lg = navigator.language || navigator.userLanguage;\n }\n i18n.changeLanguage(lg)\n\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nconst AuthConsumer = AuthContext.Consumer;\nconst AuthProvider = /*withOktaAuth(*/withRouter(_AuthProvider)/*)*/;\n\nexport { AuthProvider, AuthConsumer, AuthContext }","import React from 'react';\nimport { AuthConsumer } from '../contexts/Context';\n\n/**\n * High Order Component of Global Context. Simple way how to connects to global state.\n */\nexport default Component => {\n return function WrapperComponent(props) {\n return (\n \n {state => }\n \n );\n };\n}","import React from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport { AuthConsumer } from '../contexts/Context';\nimport { AdalAuthObject, AdalConfig } from './adalConfig';\nimport withContext from '../hoc/withContext';\n\n/**\n * Enhanced Route from react-router-dom. It handles redirecting on Login page if user is not logged in.\n */\n\n\n\nconst ProtectedRoute = ({ component: Component, ...rest }) => (\n \n {({user}) => (\n {\n var u0 = rest.context.user;\n if (u0 === undefined)\n rest.context.triggerComponentDidMountToSaveUser();\n\n if (\n user ||\n (AdalAuthObject !== undefined && AdalConfig !== undefined && AdalAuthObject.getCachedToken(AdalConfig.clientId)) || \n (AdalAuthObject !== undefined && AdalAuthObject.getCachedUser()) ||\n localStorage.getItem('okta-token-storage')\n ) {\n return \n } else {\n return ();\n }\n }\n } \n {...rest}\n />\n )}\n \n);\nexport default withContext(ProtectedRoute);","import React from 'react';\nimport {Navbar, Nav, NavDropdown} from 'react-bootstrap';\nimport {LinkContainer} from 'react-router-bootstrap';\nimport {Link} from 'react-router-dom';\nimport withContext from '../../hoc/withContext';\n\n/**\n * Top navbar component. It uses rect-bootstrap. Changes class when scrolled down.\n */\nclass NavMenu extends React.Component {\n \n state = {\n /**\n * is page scolled to top\n */\n is_Scroll_0: true\n }\n\n /**\n * On scroll callback.\n */\n onScroll = e =>{\n if (window.scrollY > 100 && this.state.is_Scroll_0)\n this.setState({\n is_Scroll_0: false\n });\n else if (window.scrollY <= 100 && !this.state.is_Scroll_0)\n this.setState({\n is_Scroll_0: true\n });\n }\n\n /**\n * Attach scroll listener to drowser window.\n */\n componentDidMount=()=>{\n window.addEventListener('scroll', this.onScroll);\n }\n\n componentWillUnmount=()=>{\n window.removeEventListener('scroll', this.onScroll);\n }\n \n render(){\n return (\n \n
\n \n \n \n \n \n \n \n );\n }\n}\n\nexport default withContext(NavMenu);\n","import React from 'react';\n\n/**\n * Display form field error mesage when invalid.\n */\nexport default props => (\n
{props.children}
\n);","import React from 'react';\nimport {Form, InputGroup} from 'react-bootstrap';\nimport Error from '../FieldError/FieldError';\nimport {get} from 'lodash';\n\n/**\n * Form input component used on every form. It uses react-boostrap lib. It handles displayng or errors too.\n * Props:\n * label: input label\n * disableLabel: hide input label\n * info: small hint text under input\n * component: inner component like input, datepicker, select etc\n * prepend: content to prepend like bootstrap input icons\n * append: content to append like bootstrap input icons\n * name: field name\n * error: object holding errors of whole form\n */\nexport default class extends React.Component {\n /**\n * Changed rerender logic to prevent unecessary renders.\n */\n shouldComponentUpdate=(nextProps)=>{\n const currError = get(this.props.error, this.props.name);\n const nextError = get(nextProps.error, nextProps.name);\n return this.props.value !==nextProps.value || this.props.name !==nextProps.name ||\n (currError !== undefined && nextError === undefined) ||\n (currError === undefined && nextError !== undefined) ||\n (currError !== nextError) || (this.props.visible !== nextProps.visible) ||\n (this.props.options !== nextProps.options) //to properly handle enum options visibility show/hide\n }\n\n render(){\n const {disableLabel, component: Component, prepend:Prepend, append: Append, visible, ...rest} = this.props;\n let error = undefined;\n if (this.props.error)\n error = get(this.props.error, this.props.name);\n\n const style = visible === 0 ? { display: 'none' } : { display: 'block' };\n\n return (\n \n \n {disableLabel ? null : {this.props.label}}\n {Prepend||Append? (\n \n {Prepend && (\n \n \n \n )}\n {Component ? () : ()}\n {Append && (\n \n \n \n )}\n \n ) : (\n Component ? () : ()\n )}\n {error && {error}}\n \n {this.props.info ? {this.props.info} :null}\n \n );\n }\n \n};","import React from 'react';\nimport * as yup from 'yup';\nimport { Button, Container } from 'react-bootstrap';\nimport { setOktaConfig, OktaAuthObject, setAadConfig, AdalAuthObject } from '../../helpers/adalConfig';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSignInAlt } from '@fortawesome/free-solid-svg-icons'\nimport { faCircle } from '@fortawesome/free-regular-svg-icons'\nimport { faMicrosoft } from '@fortawesome/free-brands-svg-icons'\n\nimport BootstrapInput from '../../components/FormInput/BootstrapInput2';\nimport withContext from '../../hoc/withContext';\nimport { withRouter } from 'react-router-dom';\n//import { withOktaAuth } from '@okta/okta-react';\n//import OktaLoginButton from './OktaLoginButton';\nimport axiosUser from '../../helpers/axiosUser';\n//import { OktaAuth } from '@okta/okta-auth-js';\n\n\n\nconst schemaForLogin = yup.object().shape({\n email: yup.string().required('Required.'),\n password: yup.string().required('Required.')\n});\n\nconst schemaForProviders = yup.object().shape({\n email: yup.string().required('Required.'),\n});\n\n//const { authState, oktaAuth } = useOktaAuth();\n\n//const login = async () => oktaAuth.signInWithRedirect();\n//const logout = async () => oktaAuth.signOut();\n\nclass Login extends React.Component {\n state = {\n data: {\n email: '',\n password: ''\n },\n error: {},\n providers: [],\n providersRequestSent: false,\n showPasswordInput: false,\n noProviders: false\n }\n\n //tempProviders = [\n // {\n // ID: 1,\n // Name: \"Native\",\n // SecurityProviderTypeId: 0,\n // ClientId: undefined,\n // TenantDomain: undefined,\n // TenantId: undefined,\n // NameClaimType: \"unique_name\"\n // },\n // {\n // ID: 2,\n // Name: \"Azure AD\",\n // SecurityProviderTypeId: 1,\n // ClientId: \"a8f1ce60-4b63-46f1-afbf-3b8ec1122253\",\n // TenantDomain: \"iconics-uk.com\",\n // TenantId: \"b1385e84-5062-4882-a3e6-fc7e229a1d5d\",\n // NameClaimType: \"unique_name\"\n // },\n // {\n // ID: 3,\n // Name: \"Okta\",\n // SecurityProviderTypeId: 2,\n // ClientId: \"0oabu3s5bPd31TQx65d6\",\n // TenantDomain: \"dev-76852820.okta.com\",\n // NameClaimType: \"email\"\n // },\n // {\n // ID: 3,\n // Name: \"Fake Okta\",\n // SecurityProviderTypeId: 2,\n // ClientId: \"0oabufds3s5bPd31T4564Qx65d6\",\n // TenantDomain: \"dev-71479685468792820.okta.com\",\n // NameClaimType: \"email\"\n // }\n //];\n\n onChange = (e) => {\n const name = e.target.name;\n const value = e.target.value;\n const data = { ...this.state.data };\n const email = data.email;\n const error = { ...this.state.error }\n data[name] = value;\n error[name] = undefined;\n const requestSentTemp = data.email !== email ? false : this.state.providersRequestSent;\n const providers = requestSentTemp ? this.state.providers : [];\n const showPass = requestSentTemp ? this.state.showPasswordInput : false;\n this.setState({ data: data, error: error, providersRequestSent: requestSentTemp, providers: providers, showPasswordInput: showPass });\n }\n\n componentDidMount = () => {\n this.props.context.setHeading('Login');\n }\n\n componentWillUpdate = () => {\n const { match: { params } } = this.props;\n if (this.props.context.user) {\n this.props.history.push(params.returnUrl ? decodeURIComponent(params.returnUrl) : '/');\n }\n }\n\n handleSubmit = (e) => {\n e.preventDefault();\n\n \n if (this.state.providersRequestSent === false) // this is only when the request for providers has not been sent yet\n this.loadProviders();\n else { //this is when we already have provider\n schemaForLogin.validate(this.state.data, { abortEarly: false }).then(values => {\n this.props.context.login(this.state.data.email, this.state.data.password);\n }).catch(errors => {\n console.log(errors);\n const error = {};\n errors.inner.forEach(el => {\n error[el.path] = el.message;\n });\n this.setState({ error: error });\n });\n }\n };\n\n //adal = () => {\n // AuthContext.login();\n //}\n\n //oktaLogin = () => {\n // AuthOktaContext.signInWithRedirect(window.location.origin);\n //}\n\n loadProviders = () => {\n schemaForProviders.validate(this.state.data, { abortEarly: false }).then(values => {\n var username = this.state.data.email;\n\n //this.setState({ providers: this.tempProviders, providersRequestSent: true });\n\n //disable button / show spinner\n axiosUser.get(username + '/identityproviders').then(response => {\n if (response && response.data) {\n var providers = response.data;\n\n //no providers\n if (providers.length === 0)\n this.setUserNotFound();\n //one providers, login directly\n else if (providers.length === 1) {\n var singleProvider = providers[0];\n this.setState({ providersRequestSent: true });\n if (singleProvider.SecurityProviderTypeId === 0) {\n this.loginViaNative();\n }\n else {\n this.loginViaProvider(singleProvider);\n }\n\n }\n //multiple providers, show buttons\n else {\n this.setState({ providers: providers, providersRequestSent: true });\n }\n }\n else {\n this.setUserNotFound();\n }\n }).catch(error => {\n //enable button / hide spinner\n //tell something to user\n console.log(error)\n this.setState({ providersRequestSent: true });\n });\n\n }).catch(errors => {\n console.log(errors);\n const error = {};\n errors.inner.forEach(el => {\n error[el.path] = el.message;\n });\n this.setState({ error: error });\n });\n }\n\n\n setUserNotFound = () => {\n var error = { ...this.state.error }\n error[\"email\"] = \"User not found.\";\n this.setState({ error })\n }\n\n\n loginViaProvider = (provider) => {\n if (provider.SecurityProviderTypeId === 1) { //aad\n setAadConfig(provider)\n localStorage.setItem(\"aadProvider\", JSON.stringify(provider))\n AdalAuthObject.login();\n }\n else if (provider.SecurityProviderTypeId === 2) { //okta\n setOktaConfig(provider);\n localStorage.setItem(\"oktaProvider\", JSON.stringify(provider))\n OktaAuthObject.signInWithRedirect(window.location.origin);\n }\n }\n\n loginViaNative = () => {\n this.setState({ showPasswordInput: true })\n }\n\n\n //clearProviders = () => {\n // this.setState({ providers: [], providersRequestSent: false });\n //}\n\n render() {\n return (\n \n
\n \n\n {this.state.providersRequestSent ?\n /**/\n \"\"\n :\n \n }\n\n {this.state.noProviders ?\n
User not found.
\n :\n \"\"\n }\n\n\n {this.state.providers.sort((a, b) => b.SecurityProviderTypeId - a.SecurityProviderTypeId).map((provider) => {\n\n if (provider.SecurityProviderTypeId === 0) //native\n return ()\n else if (provider.SecurityProviderTypeId === 1) //AAD\n return ()\n else if (provider.SecurityProviderTypeId === 2) //Okta\n return ()\n })}\n\n {/**/}\n\n {/**/}\n\n {this.state.showPasswordInput ?\n \n \n \n \n :\n \"\"\n }\n\n {/**/}\n {/**/}\n {/**/}\n \n
\n );\n }\n}\n\n\n\nexport default withRouter(withContext(Login));","import React from 'react';\nimport * as yup from 'yup';\nimport {Button, Container} from 'react-bootstrap';\nimport BootstrapInput from '../../components/FormInput/BootstrapInput2';\nimport withContext from '../../hoc/withContext';\n\nconst schema = yup.object().shape({\n Email: yup.string().required('Required.'),\n OldPassword: yup.string().required('Required.'),\n NewPassword: yup.string().required('Required.'),\n NewPassword2: yup.string().oneOf([yup.ref('NewPassword')], 'Passwords must match')\n});\n\nclass Reset extends React.Component{\n state={\n data: {\n Email: this.props.context.user ? this.props.context.user.name : '',\n OldPassword: '',\n NewPassword: '',\n NewPassword2: ''\n },\n error:{}\n }\n\n componentDidMount = () => {\n this.props.context.setHeading('Reset Password');\n }\n\n onChange=(e)=>{\n const name = e.target.name;\n const value = e.target.value;\n const data = {...this.state.data};\n const error = {...this.state.error}\n data[name] = value;\n error[name] = undefined;\n this.setState({data:data, error: error});\n }\n \n handleSubmit = (e) => {\n e.preventDefault();\n schema.validate(this.state.data, {abortEarly: false}).then(values=>{\n this.props.context.reset(this.state.data.Email, this.state.data.OldPassword, this.state.data.NewPassword);\n }).catch(errors=>{\n console.log(errors);\n const error = {};\n errors.inner.forEach(el=>{\n error[el.path] = el.message;\n });\n this.setState({error:error});\n });\n };\n\n render(){\n return(\n \n
\n \n \n \n \n \n \n
\n );\n }\n}\n\n\n\nexport default withContext(Reset);","import React from 'react';\nimport Switch from 'react-switch';\n\n/**\n * Switch component insted of normal checkbox.\n * Props:\n * - label: input label\n * - name: input name\n * - onChange: onChange callback\n * - value: current value\n * - changedInject: additional callback called after onChange\n */\nexport default class extends React.Component {\n\n /**\n * Change default rerender logic to avoid unecessary rerendering.\n */\n shouldComponentUpdate = (nextProps) => {\n return this.props.value !== nextProps.value ||\n this.props.name !== nextProps.name\n }\n\n /**\n * OnChange callback wrapper with additional logic.\n */\n handleChange = (checked) => {\n const { onChange, changedInject, name } = this.props;\n if (onChange)\n onChange({ target: { name: name, value: checked } });\n if (changedInject)\n changedInject();\n }\n\n render() {\n const { onChange, changedInject, name, label, ...rest } = this.props;\n return (\n
\n \n
\n );\n }\n}","import React from 'react';\nimport Select from 'react-select';\n\n/**\n * Select component without ajax possibility.\n * Props:\n * name: input name\n * onChange: onChange callback provided by parent\n * value: current value\n * options: options for Select\n */\nclass _Select extends React.Component {\n \n /**\n * Modifies internal event payload to be compatible with other components\n */\n handleChange = value => {\n this.props.onChange && this.props.onChange({target:{name: this.props.name, value: value}});\n }\n\n handleBlur = () => {\n this.props.onBlur && this.props.onBlur(this.props.name, true);\n }\n\n render() {\n const {onChange, onBlur, options, value, ...rest} = this.props;\n return(\n \n );\n }\n}\n\nexport default _Select;","import React from 'react';\nimport AsyncSelect from 'react-select/lib/Async';\n\n/**\n * Async variant of Select component which loads optons via ajax.\n * Props:\n * onChange: onchange callback provided by parent form\n * name: input name\n * options: initial options\n * value: current value of select\n */\nclass _Async extends React.PureComponent {\n /**\n * On Change handler. It modifies inner structure of change event to by compatible with other components.\n */\n handleChange = value => {\n const e = {target:{name: this.props.name, value: value}};\n this.props.onChange && this.props.onChange(e);\n \n }\n\n /**\n * Modifies inter onBlur payload.\n */\n handleBlur = () => {\n this.props.onBlur && this.props.onBlur(this.props.name, true);\n }\n render(){\n const {onChange, options, value, ...rest} = this.props;\n return(\n \n );\n }\n}\n\nexport default _Async;","import axios from 'axios';\nimport authHeader from './authHeader';\n\n/**\n * Instance used for ajax calls in WebEntry API.\n */\nconst instance = axios.create({\n baseURL: process.env.REACT_APP_WEBENTRY_API\n});\n\ninstance.interceptors.request.use(config=>{\n config.headers.authorization = authHeader().Authorization;\n return config;\n}, err => Promise.reject(err)\n);\n\nexport default instance;","import axios from 'axios';\nimport authHeader from './authHeader';\n\n/**\n * Instance used for ajax calls in Config API.\n */\n\nconst instance = axios.create({\n baseURL: process.env.REACT_APP_CONFIG_API\n});\n\ninstance.interceptors.request.use(config=>{\n config.headers.authorization = authHeader().Authorization;\n return config;\n}, err => Promise.reject(err)\n);\n\nexport default instance;","import locale from 'date-fns/locale/index';\n\n/**\n * Helper method for inplace switching possitions in array.\n */\nexport const array_move = (arr, old_index, new_index) => {\n if (new_index >= arr.length) {\n var k = new_index - arr.length + 1;\n while (k--) {\n arr.push(undefined);\n }\n }\n arr.splice(new_index, 0, arr.splice(old_index, 1)[0]);\n return arr; // for testing\n};\n\n/**\n * Get current browser language.\n */\nexport const get_lang = () => {\n const lang = navigator.language || navigator.browserLanguage || ( navigator.languages || [ \"en\" ] )[ 0 ];\n return lang;\n}\n\n/**\n * Gets current browser locale.\n */\nexport const get_locale = () => {\n const loc = get_lang();\n if (locale.hasOwnProperty(loc))\n return locale[loc];\n\n if (locale.hasOwnProperty(loc.replace('-', '')))\n return locale[loc.replace('-', '')];\n\n if (loc.indexOf('-') > -1 && locale.hasOwnProperty(loc.substring(0, loc.indexOf('-'))))\n return locale[loc.substring(0, loc.indexOf('-'))];\n\n return locale['enGB'];\n}\n\n/**\n * Checks if URL is absolute. Used by tiles.\n */\nexport const isUrlAbsolute = (url) => {\n let pat = /^https?:\\/\\//i;\n return pat.test(url);\n}","import React from 'react';\nimport {Card,Collapse} from 'react-bootstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { Row, Col } from 'react-bootstrap';\n\n/**\n * Component for collapsible panel.\n */\nexport default class extends React.Component {\n //open/close state\n state={open: !this.props.closed}\n\n /**\n * Open/close panel\n */\n toggle = (e) => {\n const {open} = this.state;\n this.setState({open: !open});\n }\n\n componentWillUpdate=()=>{\n\n }\n\n /**\n * Header subcomponent.\n * Props:\n * - toggle: toggle callback\n * - opened: opened by default\n * - children: inner content provided by react itself\n * - onRemove: remove callback\n */\n static Header = ({toggle,opened,children,onRemove}) => {\n return (\n \n \n {opened ? : }\n {children} \n {onRemove ? : null}\n \n \n \n );\n }\n\n /**\n * Panel Body subcomponent.\n * Props:\n * opened: opened by default\n * children: inner content provided by react\n */\n static Body = ({opened, children}) => (\n \n
\n {children}\n
\n
\n );\n\n componentDidUpdate=(prevProps)=>{\n if(!this.state.open && prevProps.hasError){\n this.setState({open: true});\n }\n }\n\n render() {\n const {children, style} = this.props;\n const tmp = React.Children.map(children, child => React.cloneElement(child, {\n toggle: this.toggle,\n opened: this.state.open || this.props.hasError\n }));\n return(\n \n {tmp}\n \n );\n }\n}","export const BUILTIN_TYPE = [\n { label:'Void', value: 0 },\n { label:'Char', value: 1 },\n { label:'Int16', value: 2 },\n { label:'Int32', value: 3 },\n { label:'Int64', value: 4 },\n { label:'Byte', value: 5},\n { label:'UInt16', value: 6 },\n { label:'UInt32', value: 7 },\n { label:'UInt64', value: 8 },\n { label:'Single', value: 9 },\n { label:'Double', value: 10 },\n { label:'Boolean', value: 11 },\n { label:'String', value: 12 },\n { label:'TypeInfo', value: 13 },\n { label:'Status', value: 14 },\n { label:'DateTime', value: 15 },\n { label:'Guid', value: 16 },\n { label:'SByte', value: 17 },\n { label:'Decimal', value: 18 },\n { label:'TimeSpan', value: 19 }\n];\n\nexport const isNumeric=(val)=>{\n return (val>1 && val<11) || (val>16 && val<19);\n}\n\nexport const isString=(val)=>{\n return val===12 || val===1 || val===16;\n}\n\nexport const isDate=(val)=>{\n return val===15;\n}\n\nexport const isBool=(val)=>{\n return val===11;\n}","import React from 'react';\nimport Switch from '../Switch/Switch';\nimport { Col, Row, Card } from 'react-bootstrap';\nimport BootstrapInput from '../FormInput/BootstrapInput2';\nimport { Draggable } from 'react-beautiful-dnd';\nimport { isNumeric, isString } from '../../helpers/enums';\nimport { Fragment } from 'react';\n\n/**\n * Component for field on DataEntry create/update form.\n * Props:\n * - onChange: callback called on input change\n * - name: name of parent; parent is dynamic form so inut names must be like parent[0].children\n * - value: object holding all values for DataEntry field (DisplayName, Visible, ReadOnly etc.)\n * - index: unique identifier provided by parent for drag-drop functionality\n */\nclass Field extends React.Component {\n\n /**\n * Override default Reacts rules for rerendering of component. Without this whole parent form would be rerendered on every keystroke.\n * This component is rerendered only if sth in value objects will change.\n */\n shouldComponentUpdate = (nextProps) => {\n return (\n this.props.name !== nextProps.name ||\n this.props.value.DisplayName !== nextProps.value.DisplayName ||\n this.props.value.DefaultValue !== nextProps.value.DefaultValue ||\n this.props.value.AssociatedGroups !== nextProps.value.AssociatedGroups ||\n this.props.value.Visible !== nextProps.value.Visible ||\n this.props.value.ReadOnly !== nextProps.value.ReadOnly ||\n this.props.value.Required !== nextProps.value.Required ||\n this.props.value.UseTextarea !== nextProps.value.UseTextarea ||\n this.props.value.UseBtnWidget !== nextProps.value.UseBtnWidget ||\n\n this.props.value.FormatValidation !== nextProps.value.FormatValidation ||\n this.props.value.FormatValidationErrorMessage !== nextProps.value.FormatValidationErrorMessage ||\n this.props.value.RangeValidationLow !== nextProps.value.RangeValidationLow ||\n this.props.value.RangeValidationHigh !== nextProps.value.RangeValidationHigh ||\n this.props.value.RangeValidationErrorMessage !== nextProps.value.RangeValidationErrorMessage\n\n\n );\n }\n\n render() {\n {/** Whole fieldset is wrapped into Dragable for drag-drop functionality. See react-beautiful-dnd */ }\n const { onChange, name, value } = this.props;\n return (\n \n {(provided, snapshot) => (\n \n \n \n \n\n \n \n \n

{this.props.value.EventField.Name}

\n
\n \n \n \n \n \n \n \n \n \n \n {isString(value.EventField.BuiltInType) && value.EventField.ValidationFunctionName !== 'enum'\n ? \n : null}\n {isString(value.EventField.BuiltInType) && value.EventField.ValidationFunctionName === 'enum'\n ? \n : null}\n \n \n \n
\n\n {/*format / range validation*/}\n \n {isString(value.EventField.BuiltInType) && value.EventField.ValidationFunctionName !== 'enum'\n ? \n \n \n \n : null}\n {isNumeric(value.EventField.BuiltInType)\n ? \n \n \n \n \n : null}\n\n\n\n \n\n
\n
\n
\n )}\n \n\n );\n }\n}\n\nexport default Field;","import React from 'react';\nimport Field from './DataEntryField';\n\n/**\n * Component wrapping DataEntryFields for better rerendering handling.\n */\nclass Fields extends React.Component{\n /*shouldComponentUpdate=(nextProps)=>{\n return this.props.fields !== nextProps.fields ||\n this.props.index !== nextProps.index;\n }*/\n\n render(){\n return(\n this.props.fields.map((f,k)=>(\n \n ))\n );\n }\n}\n\nexport default Fields;","import React from 'react';\nimport ReactQuill from 'react-quill';\n\n/**\n * WYSIWYG Editor component. Usres ReactQuill.\n */\nclass Editor extends React.Component{\n\n /**\n * This callback is wrapping props.onChange callback to modify values before call.\n */\n onChange=(val)=>{\n this.props.onChange({target:{value:val, name:this.props.name}});\n }\n\n render(){\n return(\n \n );\n }\n}\n\nexport default Editor;","import React from 'react';\nimport BootstrapInput from '../FormInput/BootstrapInput2';\nimport Switch from '../Switch/Switch';\nimport Panel from '../CollapsePanel/CollapsePanel';\nimport Fields from '../DataEntryField/Fields';\nimport {Draggable, Droppable} from 'react-beautiful-dnd';\nimport Editor from '../Editor/Editor';\nimport {get} from 'lodash';\n\n/**\n * Group component wrapping DataEntry fileds on create/update form. It provides drag-drop of fieds by rect-beatiful-dnd.\n * Props:\n * - name: group name\n * - index: unique identifier provided by parent for drag-drop logic\n * - value: object holding all inner input values\n * - error: objects holding errors of whole form\n * - onChange: callback called on every inner input change\n * - onRemove: callback provided by parent called on removing of whole group\n */\nclass Group extends React.Component{\n \n /**\n * Change default rerender logic to avoid unecessary rerendering.\n */\n shouldComponentUpdate=(nextProps)=>{\n const currError = get(this.props.error, this.props.name+ 'Name');\n const nextError = get(nextProps.error, nextProps.name + 'Name');\n return this.props.value.Name !== nextProps.value.Name ||\n this.props.value.InfoText !== nextProps.value.InfoText ||\n this.props.value.Collapsed !== nextProps.value.Collapsed ||\n this.props.index !== nextProps.index ||\n this.props.name !== nextProps.name ||\n this.props.value.EventFieldsGroupEventFields !== nextProps.value.EventFieldsGroupEventFields ||\n (currError !== undefined && nextError === undefined) ||\n (currError === undefined && nextError !== undefined) ||\n (currError !== nextError);\n }\n\n render(){\n const {value, error} = this.props;\n return(\n \n {(provided, snapshot)=>(\n
\n \n this.props.onRemove(this.props.index)}>\n \n \n \n \n \n \n {(provided, snapshot)=>(\n
\n \n {provided.placeholder}\n
\n )}\n
\n
\n
\n
\n )}\n \n \n );\n }\n}\n\nexport default Group;","import React from 'react';\nimport Group from './DataEntryFormGroup';\n\n/**\n * Component wrapping groups on DataEntry create/update form for better handling of rerendering.\n */\nclass Groups extends React.Component{\n /*shouldComponentUpdate=(nextProps)=>{\n return this.props.groups !== nextProps.groups;\n }*/\n\n render(){\n return(\n this.props.groups.map((g,i)=>(\n \n ))\n );\n }\n}\n\nexport default Groups;","import React from 'react';\nimport {Card, Col, Row} from 'react-bootstrap';\nimport BootstrapInput from '../FormInput/BootstrapInput2';\nimport AsyncSelect from '../Select/AsyncSelect';\nimport axios from '../../helpers/axiosWebEntry';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\n/*\n Component used on Web Entry create/update form to set associated events views.\n Props:\n - name: Name of parent component. This component is nested in parent so inner input names must be named like parent[0].inputname\n - onChange: callback called on change of inputs\n - onRemove: callback called on removing of this component\n - value: object storing all input values of this component providing it to parent\n - error: objects storing errors of whole form including parent; used for displaying errors\n*/\nexport default class extends React.Component {\n\n /**\n * Ajax load of views by name for Select component of this form.\n */\n getViews = (query) => {\n return axios.get('/eventlistview', {params:{name:query}}).then(response=>{\n if (response && response.data){\n const tmp = response.data.map((el, index)=>({value:el.id, label:el.name}));\n return tmp;\n }\n return [];\n }).catch(error=>console.log(error));\n }\n\n /**\n * Ajax load of DataEntries for Select component of this form.\n */\n getEntries = (query) => {\n return axios.get('/eventtypepage', {params:{name:query}}).then(response=>{\n if (response && response.data){\n const tmp = response.data.map((el, index)=>({value:el.id, label:el.name}));\n return tmp;\n }\n return [];\n }).catch(error=>console.log(error));\n }\n\n render(){\n const {name, onChange, onRemove, value, error} = this.props;\n return(\n \n \n \n \n \n {onRemove ? : null}\n \n \n \n \n \n \n );\n }\n}\n","import React from 'react';\nimport withContext from '../../hoc/withContext';\nimport BootstrapInput from '../../components/FormInput/BootstrapInput2';\nimport Switch from '../../components/Switch/Switch';\nimport Select from '../../components/Select/Select';\nimport AsyncSelect from '../../components/Select/AsyncSelect';\nimport {Button, ButtonGroup} from 'react-bootstrap';\nimport axios from '../../helpers/axiosWebEntry';\nimport axiosConfig from '../../helpers/axiosConfig';\nimport axiosUser from '../../helpers/axiosUser';\nimport {array_move} from '../../helpers/utils';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {set, cloneDeep} from 'lodash';\nimport Groups from '../../components/DataEntryGroup/Groups'\nimport {DragDropContext, Droppable} from 'react-beautiful-dnd';\nimport AssocView from '../../components/AssociatedEventSettings/AssociatedEventSettings';\nimport * as yup from 'yup';\n\nconst pageTypes=[{value:0, label:'Entry'}, {value:1, label:'View'}];\n\nconst schema = yup.object().shape({\n Name: yup.string().required('Required.'),\n PageType: yup.mixed().required('Required.'),\n EventType: yup.mixed().required('Required.'),\n Roles: yup.array().required('Required.'),\n Groups: yup.array().of(yup.object().shape({\n Name: yup.string().required('Required.'),\n })),\n AssociatedEventDataViews: yup.array().of(yup.object().shape({\n Label: yup.string().required('Required.'),\n EventsDataView: yup.mixed().required('Required.'),\n })),\n});\n\nclass Form extends React.Component {\n state={\n data:{\n ID: '',\n Name:'', \n PageType: {value:0, label: 'Entry'},\n Roles:[],\n EventType: undefined,\n Groups: [],\n AssociatedEventDataViews: [],\n AllowAssociatedEvents: false\n },\n dirty: false,\n error: {}\n }\n\n componentDidMount = () => {\n const {match: {params}} = this.props;\n this.props.context.setHeading('Data Entry Form');\n this.props.context.showLoading();\n\n if (!params.id){\n this.setState({data:{\n Name: '',\n PageType: {value: 0, label: 'Entry'},\n EventType: undefined,\n Roles: [],\n AllowAssociatedEvents: false,\n DisableAttachments: false,\n Groups: [],\n AssociatedEventDataViews: []\n }});\n this.props.context.hideLoading();\n } else {\n axios.get(`/eventtypepage/${params.id}`)\n .then(response => {\n const data = JSON.parse(response.data);\n data.PageType = pageTypes.find((el)=>el.value === data.PageType);\n data.EventType = {value: data.EventType.ID, label: data.EventType.Name};\n data.Roles = data.Roles.map(el=>({value:el.IdentityRole.Id, label:el.IdentityRole.Name}));\n data.Groups = data.Groups.map(el=>({...el, ID: undefined}));\n data.AssociatedEventDataViews = data.AssociatedEventDataViews.map(el=>({\n ...el,\n ID: undefined,\n EventsDataView: {value: el.EventsDataView.ID, label: el.EventsDataView.Name}\n }));\n data.Groups.forEach(g=>{\n g.EventFieldsGroupEventFields.sort((a,b) => a.Order > b.Order ? 1 : -1);\n });\n data.Groups.sort((a,b) => a.Order > b.Order ? 1 : -1);\n this.setState({data:data});\n this.props.context.hideLoading();\n })\n .catch(error=>{\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n } \n\n getETs = (query) => {\n return axiosConfig.get('/eventtype', {params:{name:query}}).then(response=>{\n if (response && response.data){\n const tmp = JSON.parse(response.data).map((el, index)=>({value:el.ID, label:el.Name}));\n return tmp;\n }\n return [];\n }).catch(error=>console.log(error));\n }\n \n getRoles = (query) => {\n return axiosUser.get('/roles', {params:{name:query}}).then(response=>{\n if (response && response.data){\n const tmp = JSON.parse(response.data).map((el, index)=>({value:el.Id, label:el.Name}));\n return tmp;\n }\n return [];\n }).catch(error=>console.log(error));\n }\n\n loadET = (e) => {\n this.onChange(e);\n this.props.context.showLoading();\n const eventValue=e.target.value;\n axiosConfig.get(`/eventtype/${eventValue.value}`)\n .then(response=>{\n const data = {...this.state.data};\n data.EventType = eventValue;\n const tmp = JSON.parse(response.data);\n const group = {\n Name:'',\n InfoText:'',\n Collapsed: false,\n EventFieldsGroupEventFields: tmp.EventFields.map((el, index)=>({\n DisplayName: '',\n DefaultValue: '',\n Visible: true,\n ReadOnly: false,\n UseTextarea: false,\n UseBtnWidget: true,\n EventField: {Name: el.EventField.Name, ID:el.EventField.ID, BuiltInType:el.EventField.BuiltInType, ValidationFunctionName:el.EventField.ValidationFunctionName}\n }))\n };\n data.Groups=[];\n data.Groups.push(group);\n this.setState({data:data});\n this.props.context.hideLoading();\n })\n .catch(error=>{\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n\n onChange=(e)=>{\n const name = e.target.name;\n const value = e.target.value;\n this.setState(prevState=>{\n const data = cloneDeep(prevState.data);\n const error = {...this.state.error}; \n set(data, name, value);\n set(error, name, undefined);\n return {data:data, dirty: true, error: error};\n });\n }\n\n onClose=()=>{\n if(!this.state.dirty){\n this.props.history.goBack();\n return;\n }\n if(window.confirm('There are unsaved changes, do you want to leave?')){\n this.props.history.goBack();\n return;\n }\n }\n\n onDragEnd = (fields) => {\n if(!fields.destination)\n return;\n const from = fields.source.index;\n const to = fields.destination.index;\n const data = {...this.state.data}\n\n if(fields.destination.droppableId === fields.source.droppableId){\n if(fields.type === 'GROUPS'){ \n array_move(data.Groups, from, to);\n } else {\n const index = fields.destination.droppableId.replace('group', '');\n array_move(data.Groups[index].EventFieldsGroupEventFields, from, to);\n }\n } else {\n const sourceGroup = fields.source.droppableId.replace('group', '');\n const destGroup = fields.destination.droppableId.replace('group', '');\n const sourceArray = cloneDeep(data.Groups[sourceGroup]);\n const destArray = cloneDeep(data.Groups[destGroup]);\n const item = sourceArray.EventFieldsGroupEventFields.splice(from, 1)[0];\n destArray.EventFieldsGroupEventFields.splice(to, 0, item);\n data.Groups[sourceGroup] = sourceArray;\n data.Groups[destGroup] = destArray;\n }\n this.setState({data: data});\n }\n\n addGroup=()=>{\n this.setState(prevState=>{\n const data = {...prevState.data};\n data.Groups= [...data.Groups, {\n Name:'',\n InfoText:'',\n Collapsed: false,\n EventFieldsGroupEventFields:[] \n }];\n return {data:data};\n });\n }\n\n addAssocView=()=>{\n this.setState(prevState=>{\n const data = {...prevState.data};\n data.AssociatedEventDataViews= [...data.AssociatedEventDataViews, {\n Label:'',\n EventsDataView: undefined,\n UrlParams: ''\n }];\n return {data:data};\n });\n }\n\n removeAssocView=(index)=>{\n this.setState(prevState=>{\n const data = {...prevState.data};\n data.AssociatedEventDataViews = [...data.AssociatedEventDataViews];\n data.AssociatedEventDataViews.splice(index, 1);\n return {data:data};\n });\n }\n\n removeGroup=(index)=>{\n this.setState(prevState=>{\n const data = {...prevState.data};\n data.Groups = [...data.Groups];\n data.Groups.splice(index, 1);\n return {data:data};\n });\n }\n\n handleSubmit=(e)=>{\n const name = e.target.name;\n e.preventDefault();\n schema.validate(this.state.data, {abortEarly:false})\n .then(valid=>{\n this.props.context.showLoading();\n const {match: {params}} = this.props;\n const data = {...this.state.data};\n data.EventType.ID = data.EventType.value;\n data.Roles = data.Roles.map(item=>({IdentityRoleId: item.value}));\n data.PageType = data.PageType.value;\n data.AssociatedEventDataViews.forEach((item, index)=>{\n item.EventsDataView.ID = item.EventsDataView.value;\n });\n data.Groups.forEach((g, i)=>{\n g.Order = i;\n g.EventFieldsGroupEventFields.forEach((f, k)=>{\n f.Order = k;\n });\n });\n if(params && params.id){\n axios.put(`/eventtypepage/${data.ID}`, data)\n .then(response=>{\n this.setState({dirty: false});\n this.props.context.pushAlert({variant:'success', message: 'Item updated.'});\n this.props.context.hideLoading();\n if(name==='SaveClose')\n this.props.history.push('/dataview');\n }).catch(error=>{\n this.props.context.pushAlert({variant:'danger', message: 'Error occured. Item was not updated.'});\n console.log(error);\n this.props.context.hideLoading();\n });\n } else {\n axios.post(`/eventtypepage`, data)\n .then(response=>{\n this.setState({dirty: false});\n this.props.context.pushAlert({variant:'success', message: 'Item created.'});\n this.props.context.hideLoading();\n if(name==='SaveClose')\n this.props.history.push('/dataview');\n else\n this.props.history.push(`/dataentry/update/${response.data.id}`);\n }).catch(error=>{\n this.props.context.pushAlert({variant:'danger', message: 'Error occured. Item was not created.'});\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n })\n .catch(errors=>{\n const error = {};\n console.log(errors);\n errors.inner.forEach(el=>{\n set(error,el.path, el.message);\n });\n this.setState({error:error});\n });\n \n }\n\n\n render(){\n const error = this.state.error;\n return(\n
\n
\n Basic Settings\n \n \n \n \n \n \n
\n
\n \n \n {this.state.data.AllowAssociatedEvents ? (\n
\n \n Associated Views\n \n \n\n {this.state.data.AssociatedEventDataViews.map((el, i)=>(\n \n ))}\n
\n
\n ) : null}\n \n
\n \n Field Groups\n \n \n \n \n {(provided, snapshot)=>(\n
\n \n {provided.placeholder}\n
\n )}\n
\n
\n
\n
\n \n \n \n \n \n \n );\n }\n}\n\nexport default withContext(Form);\n\n","import React from 'react';\nimport ReactTable from 'react-table';\nimport {ButtonGroup, Button} from 'react-bootstrap';\nimport axios from '../../helpers/axiosWebEntry';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport withContext from '../../hoc/withContext';\n\nclass List extends React.Component{\n\n state={\n rows:[]\n }\n\n componentDidMount() {\n this.props.context.setHeading('Data Entry Settings');\n this.loadRows();\n }\n\n addEntryHandler = (event) => {\n this.props.history.push('/dataentry/create/');\n }\n\n loadRows = () => {\n this.props.context.showLoading();\n axios.get('/eventtypepage?loadDisabled=true')\n .then(response => {\n this.setState({rows:response.data});\n this.props.context.hideLoading();\n })\n .catch(error=>{\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n\n removeHandler = (id) => {\n this.props.context.showLoading();\n axios.delete(`/eventtypepage/${id}`)\n .then(response => {\n this.props.context.pushAlert({variant:'success', message: 'Item deleted.'});\n this.loadRows();\n })\n .catch(error=>{\n console.log(error);\n this.props.context.pushAlert({variant:'danger', message: 'Unable to delete item.'});\n this.loadRows();\n });\n }\n\n toggleHandler = (id) => {\n axios.get(`/eventtypepage/${id}/toggle`)\n .then(response=> {\n this.props.context.pushAlert({variant:'success', message: 'Item set hidden.'});\n this.loadRows();\n })\n .catch(error => {\n this.props.context.pushAlert({variant:'danger', message: 'Unable to hide item.'});\n console.log(error);\n });\n }\n\n\n render(){\n\n return(\n \n

Data Entries \n \n

\n {\n const id = filter.pivotId || filter.id\n return row[id] !== undefined ? String(row[id]).search(new RegExp(filter.value, 'i'))>-1 : true\n }}\n columns={\n [\n {Header:'Name', accessor: 'name'},\n {Header: 'Event Type', accessor: 'eventType'},\n {width:150,filterable:false,Cell:({row})=>{\n if(row._original){\n return(\n \n \n \n \n \n )\n }\n }}\n ]\n }\n />\n
\n );\n }\n}\n\nexport default withContext(List);","import axios from 'axios';\nimport authHeader from './authHeader';\n\n/**\n * Instance used for ajax calls in Data API.\n */\n\nconst instance = axios.create({\n baseURL: process.env.REACT_APP_DATA_API\n});\n\ninstance.interceptors.request.use(config=>{\n config.headers.authorization = authHeader().Authorization;\n return config;\n}, err => Promise.reject(err)\n);\n\nexport default instance;","import React from 'react';\nimport Datepicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {Form, InputGroup} from 'react-bootstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {get_locale} from '../../helpers/utils';\n\n/**\n * Modified datepicker with calendar icon on right.\n */\nconst Input = props=>(\n \n \n \n \n \n \n);\n\n/**\n * Datepicker component.\n * Props:\n * name: name of input\n * value: value of input providing connection to parent\n * onChange: callback called on every input change\n */\nexport default props=>{\n const {name, value, onChange, ...rest} = props;\n return(\n\n }\n onChange={(val)=>{\n onChange({target:{name:name, value:val}});\n }}\n selected={value}\n showTimeInput\n dateFormat={'P p'}\n showYearDropdown\n showMonthDropdown\n dropdownMode='select'\n dateFormatCalendar=\"MMMM\" \n locale={get_locale()}\n />\n );\n}\n ","import React from 'react';\nimport {Form} from 'react-bootstrap';\n\n\n/**\n * Custom radiogroup component.\n * Props:\n * options: name-value pairs of options\n * name: name of input\n * value: initial value and connection to parent state\n * onChange: onChange callback\n * disabled: disable whole component\n */\nclass RadioGroup extends React.Component {\n\n render(){\n const {options, name, value, onChange, disabled} = this.props;\n return (\n \n {options && options.map((el, i)=>(\n onChange({target:{name:name, value:el}})}\n key={i}\n >\n onChange({target:{name:name, value:el}})}\n />\n \n \n ))}\n \n );\n }\n}\n\nexport default RadioGroup;","import React from 'react';\nimport Panel from '../CollapsePanel/CollapsePanel';\nimport BootstrapInput from '../FormInput/BootstrapInput2';\nimport Switch from '../Switch/Switch';\nimport Datepicker from '../Datepicker/Datepicker';\nimport Select from '../Select/Select';\nimport RadioGroup from '../RadioGroup/RadioGroup';\nimport { isBool, isDate, isString, isNumeric } from '../../helpers/enums';\n\n/**\n * Return input based on data type DatePicker for date, Select for Enums etc.\n */\nconst getInputProps = (field, enumparams) => {\n const inputProps = {};\n if (isNumeric(field.EventField.BuiltInType))\n inputProps.type = 'number';\n\n if (isString(field.EventField.BuiltInType) && field.UseTextarea && field.EventField.ValidationFunctionName !== 'enum')\n inputProps.as = 'textarea';\n\n if (isString(field.EventField.BuiltInType) && field.EventField.ValidationFunctionName === 'enum') {\n inputProps.component = field.UseBtnWidget ? RadioGroup : Select;\n inputProps.options = enumparams; //field.EventField.ValidationFunctionParameter.split(';').filter(el => el.trim() !== '').map(el => ({ label: el.trim(), value: el.trim() }));\n }\n\n if (isBool(field.EventField.BuiltInType)) {\n inputProps.component = Switch;\n inputProps.disableLabel = true;\n }\n\n if (isDate(field.EventField.BuiltInType)) {\n inputProps.component = Datepicker;\n }\n\n return inputProps;\n\n\n}\n\n/**\n * Component of filed on DataEntry form - form for customers.\n * Props:\n * - value: object holding values of all inner fields\n * - visible: visibility of group\n * - onChange: callback called on every change of inner inputs\n * - error: object of all form errors\n * - closed: if groups is collapsed by default\n * - group: settings of group itself\n */\nclass Group extends React.Component {\n\n render() {\n const { group, value, onChange, error, visible, allVisibility } = this.props;\n const check = error && group.EventFieldsGroupEventFields.filter(el => el.Visible).some(el => error[el.EventField.Name]);\n const style = visible === 0 ? { display: 'none' } : { display: 'block' };\n //debugger;\n return (\n \n {this.props.context.t(this.props.group.Name)}\n \n {/** inserting unescaped html directly - normaly considered as dangerous */}\n {group.InfoText ?
: null}\n {group.EventFieldsGroupEventFields.filter(el => el.Visible).map((f, i) => (\n {this.props.context.t(f.DisplayName ? f.DisplayName : f.EventField.Name)} {f.Required ? * : null}\n }\n value={value[f.EventField.Name]}\n readOnly={f.ReadOnly}\n disabled={f.ReadOnly}\n isDisabled={f.ReadOnly}\n onChange={onChange}\n error={error}\n visible={allVisibility[f.EventField.Name]}\n {...getInputProps(f, this.props.enumValues[f.EventField.Name])}\n />\n ))}\n
\n
\n );\n }\n}\n\nexport default Group;","import React from 'react';\nimport {Card, Col, Row} from 'react-bootstrap';\nimport BootstrapInput from '../FormInput/BootstrapInput2';\nimport Select from '../Select/Select';\nimport Switch from '../Switch/Switch';\nimport {Draggable} from 'react-beautiful-dnd';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\n\n/**\n * Constants for sort order applied on columns.\n */\nexport const SORT_ORDER = [\n { label: 'Default', value: 0 },\n { label: 'ASC', value: 1 },\n { label: 'DESC', value: 2 }\n];\n\n/**\n * This component is part of DataView create/update form. It wraps settings of individual columns.\n * Component is wrapped in Draggable to provide drag-drop functionality. See react-beatiful-dnd. \n * Props:\n * name: parent name, it is dynamic parent form so input names must be like parent[0].children\n * value: object holding all settings of the column and providing to parent\n * onChange: callback called on every input change\n * onRemove: callback called on removing this column from parent\n */\nexport default class extends React.Component {\n \n shouldComponentUpdate=(newProps)=>{\n return (this.props.index !== newProps.index ||\n this.props.value.EventField !== newProps.value.EventField ||\n this.props.value.DisplayName !== newProps.value.DisplayName ||\n this.props.value.Filter !== newProps.value.Filter ||\n (this.props.value.ColumnOrder && newProps.value.ColumnOrder && \n this.props.value.ColumnOrder.value !== newProps.value.ColumnOrder.value) ||\n this.props.value.Width !== newProps.value.Width ||\n this.props.value.WordWrap !== newProps.value.WordWrap ||\n this.props.value.Visible !== newProps.value.Visible);\n }\n\n render() {\n const {name, value, onChange, onRemove} = this.props;\n return (\n \n {(provided, snapshot)=>(\n
\n \n \n \n \n \n \n \n \n \n {onRemove ? : null}\n \n \n \n \n \n \n
\n )}\n \n );\n }\n\n \n}","import React from 'react';\nimport ReactTable from 'react-table';\nimport axiosData from '../../helpers/axiosData';\nimport {SORT_ORDER} from '../../components/DataViewColumn/DataViewColumn';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {withRouter} from 'react-router-dom';\nimport {isDate} from '../../helpers/enums';\nimport {get_locale} from '../../helpers/utils';\nimport {format, toDate} from 'date-fns';\n\n\nconst loc = get_locale();\n\n/**\n * Component to display list of associated events as table.\n * Props:\n * - rows: initial row\n * - value: object of AssociatedEventsSetting\n * - parentId: id of parent Event\n * - nodeId: nodeId\n */\nclass Grid extends React.PureComponent {\n _isMount = false;\n\n state={\n //rows to display\n rows: this.props.rows ? this.props.rows : [],\n //object of AssociatedEventSettings\n view: this.props.value ? this.props.value : {},\n //table loading spinner visibility\n isLoading: true\n }\n\n /**\n * Ajax call to load rows (events) from API.\n */\n loadRows=()=>{\n this.setState({isLoading: true}, ()=>{\n let view = this.state.view;\n let eventType = view.EventsDataView.WebEntries[0].EventTypePageEntity ? view.EventsDataView.WebEntries[0].EventTypePageEntity.EventType : this.props.eventType;\n axiosData.get(`/v1/${eventType.Name}/event/${this.props.parentId}/associated?nodeid=${this.props.nodeId}&eventtypeid=${eventType.ID}${view.UrlParams?'&'+view.UrlParams:''}`)\n .then(response=>{\n this.setState({isLoading:false, rows:response.data.Events.Values});\n })\n .catch(error=>{\n console.log(error);\n this.setState({isLoading:false});\n });\n });\n }\n\n /**\n * Call to open associated event oin browser.\n */\n openChildren = (dataEntryId, eventId, nodeid) => {\n this.props.history.push(`/dataentry/form/${dataEntryId}/${eventId}/${nodeid}/${this.props.parentId}/${this.props.parentFormId}/${this.props.nodeId}`); //form id / event id / node id / parent event id / parent node id\n this.loadRows();\n }\n\n /**\n * Redirect to new DataEntry form to create new associated event.\n */\n addChildren=()=>{\n if (this.state.view.EventsDataView.NewEventTypePage)\n this.props.history.push(`/dataentry/child/${this.state.view.EventsDataView.NewEventTypePage.ID}/${this.props.parentId}`);\n }\n\n componentWillUnount=()=>{\n this._isMount = false;\n }\n\n /**\n * Load initial settings, prepare table settings.\n */\n componentDidMount=()=>{\n this._isMount=true;\n const view = {...this.state.view};\n //Sort columns to respect same order as on Create form\n view.EventsDataView.Columns.sort((a,b) => a.Order > b.Order ? 1 : -1);\n //Add info to columns so it can be directly consumed by table component\n view.EventsDataView.Columns = view.EventsDataView.Columns.map(el=>({\n accessor: el.EventField.Name,\n Header: el.DisplayName ? el.DisplayName : el.EventField.Name,\n width: el.Width ? el.Width : undefined,\n show: el.Visible,\n filter: el.Filter ? (el.Filter.trim() === '{{[@Me]}}'? this.props.context.user.name : el.Filter) : undefined,\n Filter: el.Filter ? ({ filter, onChange }) => (): undefined,\n ColumnOrder: SORT_ORDER.find(o=>o.value === el.ColumnOrder),\n className: el.WordWrap ? 'wordWrap' : undefined,\n headerClassName: el.WordWrap ? 'wordWrap' : undefined,\n //if display data is datetime - display it in current locale format\n Cell: prop=>{\n if(prop.value && isDate(el.EventField.BuiltInType)){\n return ({format(toDate(prop.value), 'P p', {locale:loc})})\n }\n return ({prop.value}) \n }\n }));\n //set upgraded view to state\n this.setState({view:view}, (()=>{\n let eventType = view.EventsDataView.WebEntries[0].EventTypePageEntity ? view.EventsDataView.WebEntries[0].EventTypePageEntity.EventType : this.props.eventType;\n if(this._isMount){\n axiosData.get(`/v1/${eventType.ID}/event/${this.props.parentId}/associated?nodeid=${this.props.nodeId}&eventtypeid=${eventType.ID}${view.UrlParams?'&'+view.UrlParams:''}`)\n .then(response=>{\n this.setState({isLoading:false, rows:response.data.Events.Values});\n })\n .catch(error=>{\n console.log(error);\n this.setState({isLoading:false});\n });\n }\n }));\n \n }\n\n render(){\n if(this.state.view && this._isMount){\n\n return(\n \n

\n {this.props.context.t(this.state.view.Label)}\n {\n this.state.view.EventsDataView.NewEventTypePage ? \n \n : null\n }\n \n \n

\n {/** table component for more info see react-table docs */}\n {\n const id = filter.pivotId || filter.id\n return row[id] !== undefined ? String(row[id]).search(new RegExp(filter.value, 'i'))>-1 : true\n }}\n minRows={0}\n style={{height:'calc(250px)'}}\n getTrProps={(state, rowInfo, column) => {\n /**render every row as link to open child event */\n return {\n onClick: (e, handleOriginal) => {\n this.openChildren(this.state.view.EventsDataView.WebEntries[0].EventTypePageEntityId, rowInfo.original._EventID, rowInfo.original._NodeId);\n },\n style: {cursor: 'pointer'}\n };\n }}\n />\n
\n );\n \n }\n return null;\n }\n}\n\nexport default withRouter(Grid);","import React from 'react';\nimport ReactTable from 'react-table';\nimport axiosData from '../../helpers/axiosData';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {Button, ButtonGroup} from 'react-bootstrap';\nimport withContext from '../../hoc/withContext';\nimport Dropzone from 'react-dropzone';\n\n/**\n * Table to display file attachments for event.\n * Props:\n * -eventtypename\n * -eventId\n */\nclass List extends React.Component{\n\n state={\n //row/files for table\n rows:[],\n //table load spinner visibility\n isLoading: true\n }\n\n componentDidMount() {\n this.loadRows();\n }\n\n /**\n * Load files/row for table form API.\n */\n loadRows = () => {\n this.setState({isLoading: true});\n axiosData.get(`/v1/${this.props.eventtypename}/file/${this.props.eventId}`)\n .then(response => {\n this.setState({rows:response.data, isLoading: false});\n })\n .catch(error=>{\n console.log(error);\n this.setState({isLoading: false});\n });\n }\n\n /**\n * Drop callback of fileupload component aka Dropzone.\n */\n onDrop=(files)=>{\n let formData = new FormData();\n formData.append('file', files[0]);\n formData.append('eventId', this.props.eventId);\n axiosData.post(`/v1/${this.props.eventtypename}/file/${this.props.eventId}`, formData)\n .then(response=>{\n this.loadRows();\n })\n .catch(error=>console.log(error));\n }\n\n /**\n * Handler for deleting files.\n */\n removeHandler = (filename) => {\n axiosData.delete(`/v1/${this.props.eventtypename}/file/${this.props.eventId}/${filename}`)\n .then(response => {\n this.props.context.pushAlert({variant:'success', message: 'Item deleted.'});\n this.loadRows();\n })\n .catch(error=>{\n console.log(error);\n this.props.context.pushAlert({variant:'danger', message: 'Unable to delete item.'});\n this.loadRows();\n });\n }\n\n /**\n * Hadnler for downloading files.\n */\n downloadHandler=(filename)=>{\n axiosData.get(`/v1/${this.props.eventtypename}/file/${this.props.eventId}/${filename}`, {responseType: 'blob'})\n .then(response=>{\n const url = window.URL.createObjectURL(new Blob([response.data]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', filename);\n document.body.appendChild(link);\n link.click();\n })\n .catch(error=>console.log(error));\n }\n\n render(){\n\n return(\n \n

{this.props.Title}

\n
\n \n {({getRootProps, getInputProps, isDragActive}) => (\n
\n \n {isDragActive ? \"Drop item here!\" : 'Click me or drag a file to upload!'}\n
\n )}\n
\n
\n {/**Table component to display files. For docs see react-table */}\n {\n const id = filter.pivotId || filter.id\n return row[id] !== undefined ? String(row[id]).search(new RegExp(filter.value, 'i'))>-1 : true\n }}\n columns={\n [\n {Header:'Filename', accessor: 'FileName'},\n {width:150,filterable:false,Cell:({row})=>{\n return(\n \n \n \n \n )}}\n ]\n }\n />\n
\n );\n }\n}\n\nexport default withContext(List);","import React from 'react';\nimport ReactTable from 'react-table';\nimport axiosData from '../../helpers/axiosData';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {Button, ButtonGroup} from 'react-bootstrap';\nimport withContext from '../../hoc/withContext';\n\n/**\n * Table to display office exports for event.\n * Props:\n * -nodeid\n * -eventId\n */\nclass List extends React.Component{\n\n state={\n //row/files for table\n rows:[],\n //table load spinner visibility\n isLoading: true\n }\n\n componentDidMount() {\n this.loadRows();\n }\n\n /**\n * Load files/row for table form API.\n */\n loadRows = () => {\n this.setState({isLoading: true});\n axiosData.get(`/v1/OfficeExport/${this.props.nodeId}/${this.props.eventId}`)\n .then(response => {\n this.setState({rows:response.data, isLoading: false});\n })\n .catch(error=>{\n console.log(error);\n this.setState({isLoading: false});\n });\n }\n\n /**\n * Handler for downloading files.\n */\n downloadHandler = (templatename) => {\n var dtoffset = -new Date().getTimezoneOffset() / 60;\n axiosData.get(`/v1/OfficeExport/${this.props.nodeId}/${this.props.eventId}/${templatename}?dtoffset=` + dtoffset, { responseType: 'blob' })\n .then(response=>{\n const url = window.URL.createObjectURL(new Blob([response.data]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', templatename);\n document.body.appendChild(link);\n link.click();\n })\n .catch(error=>console.log(error));\n }\n\n render(){\n\n return(\n \n

{this.props.Title}

\n {/**Table component to display files. For docs see react-table */}\n {\n const id = filter.pivotId || filter.id\n return row[id] !== undefined ? String(row[id]).search(new RegExp(filter.value, 'i'))>-1 : true\n }}\n columns={\n [\n {Header:'Template name', accessor: 'TemplateName'},\n {width:150,filterable:false,Cell:({row})=>{\n return(\n \n \n \n )}}\n ]\n }\n />\n
\n );\n }\n}\n\nexport default withContext(List);","import React from 'react';\nimport axios from '../../helpers/axiosWebEntry';\n//import _ from 'lodash';\nimport * as yup from 'yup';\nimport axiosData from '../../helpers/axiosData';\nimport axiosUser from '../../helpers/axiosUser';\nimport withContext from '../../hoc/withContext';\nimport { Button, ButtonGroup } from 'react-bootstrap';\nimport Group from '../../components/DataEntryGroup/DataEntryGroup'\nimport View from '../../components/AssociatedEventSettings/AssociatedEventsGrid';\nimport { isDate, isNumeric, isString } from '../../helpers/enums';\nimport queryString from 'query-string';\nimport Attachments from '../../components/Attachments/Attachments';\nimport OfficeExports from '../../components/OfficeExports/OfficeExports';\nimport debounce from 'lodash.debounce';\nimport Modal from 'react-bootstrap/Modal';\nimport AsyncSelect from '../../components/Select/AsyncSelect';\nimport BootstrapInput from '../../components/FormInput/BootstrapInput2';\n\n\n\n\nclass Entry extends React.PureComponent {\n constructor() {\n super()\n\n this.state = {\n entry: undefined,\n data: {},\n fields: [],\n _nodeId: undefined,\n _itemId: undefined,\n _lockState: 'Open',\n _createdBy: '',\n _ownedBy: '',\n _newOwner: '',\n _eventId: '',\n dirty: false,\n error: {},\n groupsVisibility: {},\n //visibilityControls: {},\n goBackSteps: -1,\n defaultEnumValues: {},\n enumValues: [], //2020-04-20 vlad: added to handle filtering of enum values\n show: false,\n _parentId: undefined\n }\n\n // Delay action 500 miliseconds\n this.onChangeDebounced = debounce(this.onChangeDebounced, 500)\n }\n\n schema = yup.lazy(obj => {\n const result = {};\n for (let key in this.state.fields) {\n let field = this.state.fields[key];\n\n let validation = yup;\n let validationEnabled = false;\n\n if (isString(field.EventField.BuiltInType) && field.FormatValidation !== undefined && field.FormatValidation !== '') {\n let message = (field.FormatValidationErrorMessage !== undefined && field.FormatValidationErrorMessage !== '')\n ? this.props.context.t(field.FormatValidationErrorMessage)\n : (this.props.context.t('String not in the correct format, format should be \"') + field.FormatValidation + '\".');\n\n validation = validation.string().matches(RegExp(field.FormatValidation), message);\n validationEnabled = true;\n }\n\n else if (isNumeric(field.EventField.BuiltInType) && field.RangeValidationLow !== undefined && field.RangeValidationLow !== '' && field.RangeValidationHigh !== undefined && field.RangeValidationHigh !== '') {\n let message = (field.RangeValidationErrorMessage !== undefined && field.RangeValidationErrorMessage !== '')\n ? this.props.context.t(field.RangeValidationErrorMessage)\n : (this.props.context.t('Range not within low: \"') + field.RangeValidationLow + this.props.context.t('\" and high: \"') + field.RangeValidationHigh + this.props.context.t('\" limits.'));\n\n validation = validation.number().typeError(this.props.context.t('Must be a number')).min(field.RangeValidationLow, message).max(field.RangeValidationHigh, message);\n validationEnabled = true;\n }\n\n if (this.state.fields[key].Required) {\n if (validationEnabled) {\n validation = validation.required(this.props.context.t(\"This Field is Required.\"));\n }\n else {\n validation = validation.mixed().test({\n test: value => (value || value === 0) ? true : false,\n message: this.props.context.t('This Field is Required.'),\n name: key\n });\n }\n validationEnabled = true;\n }\n\n if (validationEnabled)\n result[key] = validation;\n }\n return yup.object(result);\n\n });\n\n modalClose = () => {\n this.setState({ show: false });\n }\n modalShow = () => {\n this.setState({ show: true });\n }\n\n handleSubmit = (e) => {\n e.preventDefault();\n let goBackSteps\n if (this.props.history.location.state) {\n goBackSteps = this.props.history.location.state.goBackSteps\n } else {\n goBackSteps = -1\n }\n const name = e.target.name;\n\n if (name === 'SaveLock') {\n if (!window.confirm('Are you sure you want to lock this entry?')) {\n return;\n }\n }\n\n if (name === 'ChangeOwner') {\n if (!window.confirm('Are you sure you want to change owner of this entry?')) {\n return;\n }\n }\n\n\n\n this.schema.validate(this.state.data, { abortEarly: false })\n .then(valid => {\n const { match: { params } } = this.props;\n const values = {};\n const data = { ...this.state.data };\n const fields = { ...this.state.fields };\n for (let key in fields) {\n if (data[key] !== undefined && data[key] !== null && data[key].value !== undefined)\n values[key] = data[key].value;\n else\n values[key] = data[key];\n\n }\n\n if (this.state._itemId)\n values[\"id\"] = this.state._itemId;\n\n const reqData = { Values: values };\n if (params.parentId)\n reqData.ParentId = params.parentId;\n else if (this.state._parentId)\n reqData.ParentId = this.state._parentId;\n\n //if (this.state._nodeId)\n // reqData.nodeId = params.parentId;\n\n\n\n /*\n schema.validate(this.state.data, {abortEarly:false})\n .then(valid=>{*/\n\n this.props.context.showLoading();\n if (params && params.eventId) {\n let temp_nodeid = (this.state._nodeId) ? (\"?nodeid=\" + this.state._nodeId) : \"\";\n axiosData.put(`/v1/${this.state.entry.EventType.Name}/event/${params.eventId}${temp_nodeid}`, reqData)\n .then(response => {\n if (response.data.Result) {\n this.setState({ dirty: false });\n this.props.context.pushAlert({ variant: 'success', message: 'Item updated.' });\n this.props.context.hideLoading();\n if (name === 'SaveClose') {\n //this.props.history.go(this.state.goBackSteps);\n if (this.props.history.location.state) {\n this.props.history.go(this.props.history.location.state.goBackSteps)\n } else {\n // You can add a default action if a user lands on route from an external link\n this.props.history.push('/')\n }\n }\n else if (name === 'SaveLock') {\n this.props.context.showLoading();\n const lockvals = {};\n lockvals['eventid'] = params.eventId;\n lockvals['nodeid'] = this.state._nodeId;\n\n axiosData.post('/old/calls/custompost', {\n url: `eventlock`,\n values: lockvals\n })\n .then(response => {\n this.props.context.hideLoading();\n if (response.data.Result) {\n this.setState({ _lockState: 'Locked' });\n }\n else {\n this.props.context.pushAlert({ variant: 'danger', message: 'Error occured when locking the item.' });\n }\n })\n .catch(error => {\n console.log(error);\n });\n\n }\n else if (name === 'ChangeOwner') {\n this.props.context.showLoading();\n const reqvals = {};\n reqvals['eventid'] = params.eventId;\n reqvals['nodeid'] = this.state._nodeId;\n reqvals['newowner'] = this.state._newOwner;\n\n axiosData.post('/old/calls/custompost', {\n url: `changeowner`,\n values: reqvals\n })\n .then(response => {\n this.props.context.hideLoading();\n if (response.data.Result) {\n this.setState({ _ownedBy: this.state._newOwner });\n this.modalClose();\n this.props.context.pushAlert({ variant: 'success', message: 'Owner changed.' });\n //reload\n this.loadEvent(this.state.entry.EventType.Name, this.state._eventId, this.state._nodeId);\n }\n else {\n this.props.context.pushAlert({ variant: 'danger', message: 'Error occured when changing the owner of the item.' });\n }\n })\n .catch(error => {\n console.log(error);\n });\n\n }\n\n\n }\n else {\n this.props.context.pushAlert({ variant: 'danger', message: 'Error occured when saving the item.' });\n this.props.context.hideLoading();\n }\n }).catch(error => {\n this.props.context.pushAlert({ variant: 'danger', message: 'Error occured. Item was not updated.' });\n console.log(error);\n this.props.context.hideLoading();\n });\n } else {\n axiosData.post(`/v1/${this.state.entry.EventType.Name}/event`, reqData)\n .then(response => {\n if (response.data.Result) {\n this.setState({ dirty: false });\n this.props.context.pushAlert({ variant: 'success', message: 'Item created.' });\n if (name === 'SaveClose') {\n this.props.history.goBack();\n }\n else {\n this.setState({ _nodeId: response.data.NodeId });\n let limit = 4;\n let newGuid = response.data.Result;\n this._interval = this.setIntervalImmediately(() => {\n limit--;\n if (limit >= 0) {\n axiosData.post('/old/calls/custom', {\n url: `/api/client/AhlstromMunksjo/event?eventtypename=${this.state.entry.EventType.Name}&eventid=${newGuid}&nodeId=${response.data.NodeId}`\n })\n .then(response => {\n if (response.data.Events.Values.length) {\n clearInterval(this._interval);\n this.props.history.push({ pathname: `/dataentry/form/${params.id}/${newGuid}`, state: { goBackSteps: --goBackSteps } });\n }\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n clearInterval(this._interval);\n this.props.context.hideLoading();\n }\n }, 5000);\n }\n }\n else {\n this.props.context.pushAlert({ variant: 'danger', message: 'Error occured. Item was not created.' });\n this.props.context.hideLoading();\n //clearInterval(this._interval);\n }\n\n }).catch(error => {\n this.props.context.pushAlert({ variant: 'danger', message: 'Error occured. Item was not created.' });\n this.props.context.pushAlert({ variant: 'danger', message: 'Error: ' + error });\n\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n /*})\n .catch(errors=>{\n const error = {};\n errors.inner.forEach(el=>{\n set(error,el.path, el.message);\n });\n this.setState({error:error});\n });\n */\n })\n .catch(errors => {\n const error = {};\n errors.inner.forEach(el => {\n error[el.path] = el.message;\n });\n this.setState({ error: error });\n })\n\n }\n\n handleUnlock = (e) => {\n e.preventDefault();\n\n if (!window.confirm('Are you sure you want to unlock this entry?')) {\n return;\n }\n\n this.props.context.showLoading();\n const lockvals = {};\n lockvals['eventid'] = this.state._eventId;\n lockvals['nodeid'] = this.state._nodeId;\n\n axiosData.post('/old/calls/custompost', {\n url: `eventunlock`,\n values: lockvals\n })\n .then(response => {\n this.props.context.hideLoading();\n if (response.data.Result) {\n this.setState({ _lockState: 'Unlocked' });\n }\n else {\n this.props.context.pushAlert({ variant: 'danger', message: 'Error occured when locking the item.' });\n }\n })\n .catch(error => {\n console.log(error);\n });\n\n }\n\n\n\n onClose = () => {\n if (!this.state.dirty) {\n this.props.history.goBack();\n return;\n }\n if (window.confirm('There are unsaved changes, do you want to leave?')) {\n this.props.history.goBack();\n return;\n }\n }\n\n deleteEntry = () => {\n if (!window.confirm('Do you really want to delete this entry? This can not be undone.')) {\n return;\n }\n\n this.props.context.showLoading();\n\n //const reqData = {};\n //reqData['eventid'] = this.state._eventId;\n //reqData['nodeid'] = this.state._nodeId;\n\n\n axiosData.delete(`/v1/${this.state.entry.EventType.Name}/event/${this.state._eventId}`, { headers: { 'Content-Type': 'application/json; charset=utf-8' }, data: { NodeId: this.state._nodeId } })\n .then(response => {\n this.props.context.hideLoading();\n if (response.data != undefined && response.data.Result) {\n this.setState({\n entry: undefined,\n data: {},\n fields: [],\n _nodeId: undefined,\n _itemId: undefined,\n _lockState: 'Open',\n _createdBy: '',\n _ownedBy: '',\n _eventId: '',\n dirty: false,\n error: {},\n groupsVisibility: {},\n //visibilityControls: {},\n goBackSteps: -1,\n defaultEnumValues: {},\n enumValues: []\n });\n this.props.history.goBack();\n }\n else {\n this.props.context.pushAlert({ variant: 'danger', message: 'Error occured when deleting the item.' });\n }\n })\n .catch(error => {\n this.props.context.hideLoading();\n console.log(error);\n });\n }\n\n\n\n onChange = (e) => {\n const name = e.target.name;\n const value = e.target.value;\n this.setState(prevState => {\n const data = { ...prevState.data };\n const error = { ...this.state.error };\n //const groupsVisibility = { ...this.state.groupsVisibility }; //maybe\n data[name] = value;\n error[name] = undefined;\n\n\n //debounced actions like visibility\n this.onChangeDebounced(e, data);\n\n\n return { data: data, dirty: true, error: error, /*groupsVisibility: groupsVisibility*/ };\n });\n }\n\n onChangeDebounced = (e, data) => {\n const groupsVisibility = {}; //maybe\n const localEnumValues = JSON.parse(JSON.stringify(this.state.defaultEnumValues));\n\n // check visibility\n\n for (const fieldName in this.state.fields) {\n const field = this.state.fields[fieldName];\n if (field.AssociatedGroups) {\n\n\n //this is where the magic happens:\n this.setTargetsVisibilities(field, localEnumValues, groupsVisibility, data[fieldName]);\n\n\n }\n }\n this.setState({ groupsVisibility: groupsVisibility/*, visibilityControls: visibilityControls*/ });\n this.setState({ enumValues: localEnumValues });\n }\n\n loadEvent(eventType, guid, nodeId = undefined) {\n this.props.context.showLoading();\n\n //try to get it from local state (when redirected from create to edit)\n if (nodeId === undefined) {\n nodeId = this.state._nodeId;\n }\n\n if (nodeId === undefined) {\n if (this.props.history.location.state) {\n nodeId = this.props.history.location.state.passedNodeId;\n }\n }\n\n\n axiosData.post('/old/calls/custom', {\n url: `/api/client/AhlstromMunksjo/event?eventtypename=${eventType}&eventid=${guid}${nodeId ? '&nodeId=' + nodeId.toString() : ''}`\n })\n .then(response => {\n if (response.data && response.data.Events && response.data.Events.Values) {\n const systemColumns = ['_EventID', '_NodeId', '_EventTime', '_StorageTime', '_EventTypeID', '_ParentID', '_ID',\n '_CreatedBy', '_CreatedAt', '_ModifiedBy', '_ModifiedAt', '_LockedBy', '_LockedAt', '_UnlockedBy', '_UnlockedAt', '_LockState', '_OwnedBy'];\n const data = { ...this.state.data };\n //const groupsVisibility = { ...this.state.groupsVisibility }; //maybe\n const groupsVisibility = {}; //maybe\n const localEnumValues = JSON.parse(JSON.stringify(this.state.defaultEnumValues));\n for (const key in response.data.Events.Values[0]) {\n if (systemColumns.includes(key) || !this.state.fields.hasOwnProperty(key)) {\n if (key === '_NodeId') {\n this.setState({ _nodeId: response.data.Events.Values[0][key] })\n }\n else if (key === '_ID') {\n this.setState({ _itemId: response.data.Events.Values[0][key] })\n }\n else if (key === '_LockState') {\n this.setState({ _lockState: response.data.Events.Values[0][key] })\n }\n else if (key === '_CreatedBy') {\n this.setState({ _createdBy: response.data.Events.Values[0][key] })\n }\n else if (key === '_OwnedBy') {\n this.setState({ _ownedBy: response.data.Events.Values[0][key] })\n }\n else if (key === '_EventID') {\n this.setState({ _eventId: response.data.Events.Values[0][key] })\n }\n else if (key === '_ParentID') {\n this.setState({ _parentId: response.data.Events.Values[0][key] })\n }\n\n continue;\n }\n\n const field = this.state.fields[key];\n if (field.EventField.ValidationFunctionName === 'enum') {\n let tmpVal = response.data.Events.Values[0][key] ? response.data.Events.Values[0][key].trim() : undefined;\n data[field.EventField.Name] = (tmpVal === '' || tmpVal === undefined) ? undefined : { label: this.props.context.t(tmpVal), value: tmpVal };\n //enumValuesLocal[field.EventField.Name] = field.EventField.ValidationFunctionParameter.split(';').filter(el => el.trim() !== '').map(el => ({ label: el.trim(), value: el.trim() }));\n }\n else if (isDate(field.EventField.BuiltInType) && response.data.Events.Values[0][key]) {\n data[key] = new Date(response.data.Events.Values[0][key]);\n }\n else {\n data[key] = response.data.Events.Values[0][key];\n\n }\n\n\n //check groups and fields hiding with new values from the response\n\n if (field.AssociatedGroups) {\n //this is where the magic happens:\n this.setTargetsVisibilities(field, localEnumValues, groupsVisibility, data[key]);\n\n\n\n\n //visibilityControls[f.EventField.Name] = [...localVisibilityControls];\n this.setState({ groupsVisibility: groupsVisibility/*, visibilityControls: visibilityControls*/ });\n\n }\n\n this.setState({ enumValues: localEnumValues });\n\n\n\n\n\n\n\n\n //if (field.DefaultValue && !response.data.Events.Values[0][key] && this.state.visibilityControls[field.EventField.Name]) {\n // this.state.visibilityControls[field.EventField.Name].forEach(el => {\n // groupsVisibility[el]--;\n // });\n //} else if (!field.DefaultValue && response.data.Events.Values[0][key] && this.state.visibilityControls[field.EventField.Name]) {\n // this.state.visibilityControls[field.EventField.Name].forEach(el => {\n // groupsVisibility[el]++;\n // });\n //}\n }\n this.setState({ data: data, groupsVisibility: groupsVisibility });\n\n axiosUser.get('/rightsforusernameandevent?name=' + this.props.context.user.name + '&nodeId=' + this.state._nodeId + '&eventId=' + this.state._eventId + (this.state._ownedBy ? (\"&eventOwner=\" + this.state._ownedBy) : \"\"))\n .then(response => {\n const userrights = JSON.parse(response.data);\n var user = this.props.context.user;\n user.rights = userrights;\n localStorage.setItem('user', JSON.stringify(user));\n this.setState({ user: user });\n })\n .catch(error => {\n console.log(error);\n });\n\n }\n\n if (this.state._parentId !== undefined) {\n var pl = document.getElementById('parentlink');\n if (pl !== undefined && pl !== null)\n this.loadParentLink(this.state._parentId);\n }\n\n this.props.context.hideLoading();\n })\n .catch(error => {\n this.props.context.pushAlert({ variant: 'danger', message: 'Unable load event.' });\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n\n loadEntry = (id, guid = undefined, nodeid = undefined) => {\n if (id) {\n this.props.context.showLoading();\n axios.get(`/eventtypepage/${id}`)\n .then(response => {\n const entry = JSON.parse(response.data);\n const data = {};\n const fields = {};\n\n const groupsVisibility = {}; //maybe\n var defaultEnumValues = {};\n var localEnumValues = [];\n\n entry.Groups.forEach(g => {\n g.EventFieldsGroupEventFields.forEach(f => {\n if (f.EventField.ValidationFunctionName === 'enum') {\n defaultEnumValues[f.EventField.Name] = f.EventField.ValidationFunctionParameter.split(';').filter(el => el.trim() !== '').map(el => ({ label: this.props.context.t(el.trim()), value: el.trim() }));\n }\n });\n });\n this.setState({ defaultEnumValues: defaultEnumValues });\n localEnumValues = JSON.parse(JSON.stringify(defaultEnumValues));\n\n\n\n this.props.context.setHeading(this.props.context.t(entry.Name));\n entry.Groups.forEach(g => {\n g.InfoText = g.InfoText.trim().length ? g.InfoText.trim() : undefined;\n g.EventFieldsGroupEventFields.forEach(f => {\n if (f.Visible) {\n fields[f.EventField.Name] = f;\n }\n\n if (f.DefaultValue) {\n if (f.EventField.ValidationFunctionName === 'enum')\n data[f.EventField.Name] = { label: this.props.context.t(f.DefaultValue), value: f.DefaultValue };\n else if (f.DefaultValue === '{{[@Me]}}')\n data[f.EventField.Name] = this.props.context.user.name;\n else if (f.DefaultValue.startsWith('{{') && f.DefaultValue.endsWith('}}')) {\n const param = f.DefaultValue.substring(2, f.DefaultValue.length - 2).trim();\n const parsed = queryString.parse(this.props.location.search);\n data[f.EventField.Name] = parsed[param] ? parsed[param] : undefined;\n }\n else\n data[f.EventField.Name] = f.DefaultValue;\n }\n else {\n data[f.EventField.Name] = isDate(f.EventField.BuiltInType) ? null : undefined;\n }\n\n if (f.AssociatedGroups) {\n //multiple values\n\n //const localVisibilityControls = {};\n\n\n\n\n //this is where the magic happens:\n this.setTargetsVisibilities(f, localEnumValues, groupsVisibility, f.DefaultValue);\n\n\n\n\n //visibilityControls[f.EventField.Name] = [...localVisibilityControls];\n this.setState({ groupsVisibility: groupsVisibility });\n }\n this.setState({ enumValues: localEnumValues });\n\n\n });\n g.EventFieldsGroupEventFields.sort((a, b) => a.Order > b.Order ? 1 : -1);\n\n });\n entry.Groups.sort((a, b) => a.Order > b.Order ? 1 : -1)\n this.setState({ entry: entry, data: data, fields: fields }, () => {\n if (guid) {\n this.loadEvent(this.state.entry.EventType.Name, guid, nodeid);\n }\n });\n this.props.context.hideLoading();\n })\n .catch(error => {\n this.props.context.pushAlert({ variant: 'danger', message: 'Unable to load the form.' });\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n else\n this.props.context.pushAlert({ variant: 'danger', message: 'Unable to load the form.' });\n }\n\n componentWillReceiveProps = (nextProps) => {\n if (nextProps.match.url !== this.props.match.url) {\n const { match: { params } } = nextProps;\n this.loadEntry(params.id, params.eventId, params.nodeId);\n }\n }\n\n componentDidMount = () => {\n const { match: { params } } = this.props;\n this.loadEntry(params.id, params.eventId, params.nodeId);\n }\n\n\n setTargetsVisibilities(f, localEnumValues, groupsVisibility, valueToUse) {\n const localTargetsVisibility = {};\n\n const lines = f.AssociatedGroups.split('\\n').map(el => el.trim());\n lines.forEach(l => {\n var lineValue;\n var lineTargets;\n if (l.indexOf(\":\") > 0) {\n //value:\n var linesplit = l.split(':').map(el => el.trim());\n lineValue = linesplit[0].trim();\n lineTargets = linesplit[1].split(';').map(el => el.trim());\n lineTargets.forEach(target => {\n if (valueToUse == lineValue || (valueToUse != undefined && valueToUse.value == lineValue)) { // 1 - equals\n if (target.startsWith(\"!\")) { // 2 - inverse branch\n target = target.substring(1);\n if (target.indexOf(\"(\") >= 0) { // 3 - enum\n var { enumFieldName, filteredValues } = this.getEnumValues(target, true, localEnumValues);\n localEnumValues[enumFieldName] = [...filteredValues];\n }\n else { // 3 - not enum\n if (localTargetsVisibility.hasOwnProperty(target))\n localTargetsVisibility[target] = localTargetsVisibility[target] - 1;\n else\n localTargetsVisibility[target] = 0;\n }\n }\n else { // 2 - regular branch\n if (target.indexOf(\"(\") >= 0) { // 3 - enum\n var { enumFieldName, filteredValues } = this.getEnumValues(target, false, localEnumValues);\n localEnumValues[enumFieldName] = [...filteredValues];\n }\n else { // 3 - not enum\n if (localTargetsVisibility.hasOwnProperty(target))\n localTargetsVisibility[target] = localTargetsVisibility[target] + 1;\n else\n localTargetsVisibility[target] = 1;\n }\n }\n }\n else { // 1 - does not equal\n if (target.startsWith(\"!\")) { // 2 - inverse branch\n target = target.substring(1);\n if (target.indexOf(\"(\") >= 0) { // 3 - enum\n var { enumFieldName, filteredValues } = this.getEnumValues(target, false, localEnumValues);\n localEnumValues[enumFieldName] = [...filteredValues];\n }\n else { // 3 - not enum\n if (localTargetsVisibility.hasOwnProperty(target))\n localTargetsVisibility[target] = localTargetsVisibility[target] + 1;\n else\n localTargetsVisibility[target] = 1;\n }\n }\n else { // 2 - regular branch\n if (target.indexOf(\"(\") >= 0) { // 3 - enum\n var { enumFieldName, filteredValues } = this.getEnumValues(target, true, localEnumValues);\n localEnumValues[enumFieldName] = [...filteredValues];\n }\n else { // 3 - not enum\n if (localTargetsVisibility.hasOwnProperty(target))\n localTargetsVisibility[target] = localTargetsVisibility[target] - 1;\n else\n localTargetsVisibility[target] = 0;\n }\n }\n }\n });\n //localVisibilityControls[lineValue] = lineTargets;\n }\n else {\n //no value (so the below is true for any value)\n lineValue = \"###NOVALUE\";\n lineTargets = l.split(';').map(el => el.trim());\n lineTargets.forEach(target => {\n if (valueToUse) { // 1 - value \"equals\"\n if (target.startsWith(\"!\")) { // 2 - inverse branch\n target = target.substring(1);\n if (target.indexOf(\"(\") >= 0) { // 3 - enum\n var { enumFieldName, filteredValues } = this.getEnumValues(target, true, localEnumValues);\n localEnumValues[enumFieldName] = [...filteredValues];\n }\n else { // 3 - not enum\n if (localTargetsVisibility.hasOwnProperty(target))\n localTargetsVisibility[target] = localTargetsVisibility[target] - 1;\n else\n localTargetsVisibility[target] = 0;\n }\n }\n else { // 2 - regular branch\n if (target.indexOf(\"(\") >= 0) { // 3 - enum\n var { enumFieldName, filteredValues } = this.getEnumValues(target, false, localEnumValues);\n localEnumValues[enumFieldName] = [...filteredValues];\n }\n else { // 3 - not enum\n if (localTargetsVisibility.hasOwnProperty(target))\n localTargetsVisibility[target] = localTargetsVisibility[target] + 1;\n else\n localTargetsVisibility[target] = 1;\n }\n }\n }\n else { // 1 - value doesn't \"equal\"\n if (target.startsWith(\"!\")) { // 2 - inverse branch\n target = target.substring(1);\n if (target.indexOf(\"(\") >= 0) { // 3 - enum\n var { enumFieldName, filteredValues } = this.getEnumValues(target, false, localEnumValues);\n localEnumValues[enumFieldName] = [...filteredValues];\n }\n else { // 3 - not enum\n if (localTargetsVisibility.hasOwnProperty(target))\n localTargetsVisibility[target] = localTargetsVisibility[target] + 1;\n else\n localTargetsVisibility[target] = 1;\n }\n }\n else { // 2 - regular branch\n if (target.indexOf(\"(\") >= 0) { // 3 - enum\n var { enumFieldName, filteredValues } = this.getEnumValues(target, true, localEnumValues);\n localEnumValues[enumFieldName] = [...filteredValues];\n }\n else { // 3 - not enum\n if (localTargetsVisibility.hasOwnProperty(target))\n localTargetsVisibility[target] = localTargetsVisibility[target] - 1;\n else\n localTargetsVisibility[target] = 0;\n }\n }\n }\n });\n //localVisibilityControls[lineValue] = lineTargets;\n }\n });\n\n for (var target in localTargetsVisibility) {\n\n if (localTargetsVisibility[target] > 0) {\n if (groupsVisibility.hasOwnProperty(target))\n groupsVisibility[target] = groupsVisibility[target] + 1;\n else\n groupsVisibility[target] = 1\n } else {\n if (groupsVisibility.hasOwnProperty(target))\n groupsVisibility[target] = groupsVisibility[target] - 1;\n else\n groupsVisibility[target] = 0\n }\n if (groupsVisibility[target] < 0)\n groupsVisibility[target] = 0;\n }\n\n }\n\n getEnumValues(target, isThisInverted, localEnumValues) {\n var enumsplit = target.split('(');\n var enumFieldName = enumsplit[0];\n var enumvalues = enumsplit[1].replace(\")\", \"\").split(\",\").filter(el => el.trim() !== '').map(el => ({ label: this.props.context.t(el.trim()), value: el.trim() }));\n var filteredValues = {};\n if (isThisInverted) {\n //filters out only the exclusion\n filteredValues = localEnumValues[enumFieldName] !== undefined ? localEnumValues[enumFieldName].filter(el => !enumvalues.map(a => a.value).includes(el.value)) : [];\n }\n else {\n //filters out only the intersection\n filteredValues = localEnumValues[enumFieldName] !== undefined ? localEnumValues[enumFieldName].filter(el => enumvalues.map(a => a.value).includes(el.value)) : [];\n }\n return { enumFieldName, filteredValues };\n }\n\n\n shareEntry = (e) => {\n e.preventDefault();\n\n this.props.context.showLoading();\n const lockvals = {};\n lockvals['eventid'] = this.state._eventId;\n lockvals['nodeid'] = this.state._nodeId;\n\n axiosData.post('/old/calls/custompost', {\n url: `eventunlock`,\n values: lockvals\n })\n .then(response => {\n this.props.context.hideLoading();\n if (response.data.Result) {\n this.setState({ _lockState: 'Unlocked' });\n }\n else {\n this.props.context.pushAlert({ variant: 'danger', message: 'Error occured when locking the item.' });\n }\n })\n .catch(error => {\n console.log(error);\n });\n\n }\n\n\n\n getOwners = (query) => {\n return axiosUser.get('/allavailableowners', { params: { name: query } }).then(response => {\n if (response && response.data) {\n const tmp = JSON.parse(response.data).map((el, index) => ({ value: el, label: el }));\n return tmp;\n }\n return [];\n }).catch(error => console.log(error));\n }\n\n\n setNewOwner = (e) => {\n var val = e.target.value;\n this.setState({ _newOwner: val.value });\n }\n\n removeParentLink = () => {\n var pl = document.getElementById('parentlink');\n if (pl !== undefined && pl !== null)\n pl.remove();\n }\n\n loadParentLink = (parentId) => {\n if (parentId === undefined || typeof parentId !== 'string') {\n //this shouldn't happen, but just in case\n this.removeParentLink();\n return;\n }\n\n var eventtypeid = parentId.split('_')[0];\n\n //get parent form id first\n axios.get(`/EventTypePage/GetForEventType/${eventtypeid}`)\n .then(response => {\n const parentFormId = JSON.parse(response.data);\n\n //try a data call for parent record, so we know if we can see it\n axiosData.post('/old/calls/custom', {\n url: `/api/client/AhlstromMunksjo/event?eventtypeid=${eventtypeid}&eventid=${parentId}`\n })\n .then(response => {\n if (response.data && response.data.Events && response.data.Events.Values) {\n const parentNodeId = response.data.Events.Values[0]['_NodeId'];\n\n if (parentNodeId !== undefined) {\n //if all went well, show the correct link\n var pl = document.getElementById('parentlink');\n if (pl !== undefined && pl !== null) {\n pl.setAttribute('href', `/dataentry/form/${parentFormId}/${parentId}/${parentNodeId}`);\n pl.textContent = 'Link to parent record';\n }\n }\n }\n })\n .catch(error => {\n console.log(error);\n this.removeParentLink();\n });\n })\n .catch(error => {\n console.log(error);\n this.removeParentLink();\n });\n }\n\n\n render() {\n const { match: { params } } = this.props;\n var localParentId = params.parentId;\n if (localParentId === undefined || localParentId === null || localParentId === '')\n localParentId = this.state._parentId;\n if (this.state.entry)\n return (\n \n\n \n {params.eventId && localParentId && params.parentFormId ? (\n //if parent id is set show link to parent\n //if parent id is set so should be parent node id\n <>\n Link to parent record\n \n )\n :\n params.eventId && localParentId ? (\n\n //only parentId is set up - we need to figure out the parentFormId and parentNodeId\n //but we do that in a separate api call - now we only show an inactive link\n <>\n Link to parent record (fetching)\n \n\n )\n :\n null}\n \n\n

{this.state._itemId !== undefined ? (this.props.context.t(this.state.entry.Name) + \" #\" + this.state._itemId) : this.props.context.t(this.state.entry.Name)} {this.state._lockState === \"Locked\" ? (this.props.context.t(\"[Locked]\")) : (\"\")}

\n\n
\n\n
\n\n {this.state.entry.Groups.map((g, i) => (\n \n ))}\n\n
\n\n \n \n\n {this.state._lockState === \"Locked\" ? (\n (this.props.context.user.rights !== undefined && this.props.context.user.rights.Unlock) ? (\n \n ) : (\n \n )\n\n ) : (\n <>\n \n \n {(this.state._itemId && (this.props.context.user.rights !== undefined && this.props.context.user.rights.Lock)) ? (\n \n ) : \"\"\n }\n \n )}\n\n {(this.state._itemId && this.props.context.user && this.props.context.user.rights !== undefined && this.props.context.user.rights.Delete) ? (\n //delete button\n \n ) : null}\n\n {(this.state._itemId && this.props.context.user && this.props.context.user.rights !== undefined && this.props.context.user.rights.Share && this.props.context.user.rights.Update) ? (\n //change owner (based on share) button\n \n ) : null}\n\n \n\n
\n\n\n\n\n {\n this.state.entry.AllowAssociatedEvents && params.eventId && this.state._nodeId ? (\n \n
\n {this.state.entry.AssociatedEventDataViews.map((view, i) => (\n \n ))}\n
\n ) : null\n }\n {\n !this.state.entry.DisableAttachments && params.eventId && this.state._nodeId ? (\n <>\n
\n \n \n ) : null\n }\n {\n params.eventId && this.state._nodeId ? (\n <>\n
\n \n \n ) : null\n }\n\n \n \n Change owner\n \n \n \n\n \n \n \n \n \n \n\n
\n\n );\n else\n return null;\n }\n\n\n\n setIntervalImmediately(func, interval) {\n func();\n return setInterval(func, interval);\n }\n}\n\nexport default withContext(Entry);","import React from 'react';\nimport {Route, Switch} from 'react-router-dom';\nimport Form from './Form';\nimport List from './List';\nimport Entry from './Entry';\nimport {Container} from 'react-bootstrap';\n\nexport default props => (\n \n \n \n \n \n \n \n \n \n \n);\n\n","import React from 'react';\nimport {Button, ButtonGroup} from 'react-bootstrap';\nimport AsyncSelect from '../../components/Select/AsyncSelect';\nimport BootstrapInput from '../../components/FormInput/BootstrapInput2';\nimport Switch from '../../components/Switch/Switch';\nimport DataViewColumn from '../../components/DataViewColumn/DataViewColumn';\nimport {DragDropContext, Droppable} from 'react-beautiful-dnd';\nimport {set, cloneDeep} from 'lodash';\nimport {SORT_ORDER} from '../../components/DataViewColumn/DataViewColumn';\nimport withContext from '../../hoc/withContext';\nimport axios from '../../helpers/axiosWebEntry';\nimport axiosData from '../../helpers/axiosData';\nimport axiosUser from '../../helpers/axiosUser';\nimport {array_move} from '../../helpers/utils';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n Name: yup.string().required('Required.'),\n URL: yup.string().required('Required.'), \n Roles: yup.array().required('Required.'),\n WebEntries: yup.array().required('Required.'),\n});\n\nclass Form extends React.Component {\n state = {\n dirty: false,\n data: {\n Name: '',\n URL: '',\n WebEntries: [],\n Roles: [],\n NewEventTypePage: undefined,\n VisibleInMenu: false,\n Columns: []\n },\n error:{}\n }\n \n componentDidMount=()=>{\n this.props.context.setHeading('Data View Form');\n const {match: {params}} = this.props;\n \n\n if(params.id){\n this.props.context.showLoading();\n axios.get(`/eventlistview/${params.id}`)\n .then(response => {\n const data = JSON.parse(response.data);\n data.WebEntries = data.WebEntries.map(el=>({value:el.EventTypePageEntity.ID, label:el.EventTypePageEntity.Name}));\n data.Roles = data.Roles.map(el=>({value:el.IdentityRole.Id, label:el.IdentityRole.Name}));\n data.NewEventTypePage = data.NewEventTypePage ? {label: data.NewEventTypePage.Name, value: data.NewEventTypePage.ID}: undefined;\n data.Columns.sort((a,b) => a.Order > b.Order ? 1 : -1);\n data.Columns = data.Columns.map(el=>({\n EventField: el.EventField.Name,\n DisplayName: el.DisplayName,\n Width: el.Width,\n Visible: el.Visible,\n Filter: el.Filter,\n WordWrap: el.WordWrap,\n ColumnOrder: el.ColumnOrder!==undefined ? SORT_ORDER.find(o=>o.value === el.ColumnOrder) : undefined\n }));\n this.setState({data:data});\n this.props.context.hideLoading();\n })\n .catch(error=>{\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n }\n\n getRoles = (query) => {\n return axiosUser.get('/roles', {params:{name:query}}).then(response=>{\n if (response && response.data){\n const tmp = JSON.parse(response.data).map((el, index)=>({value:el.Id, label:el.Name}));\n return tmp;\n }\n return [];\n }).catch(error=>console.log(error));\n }\n\n getEntries = (query) => {\n return axios.get('/eventtypepage', {params:{name:query}}).then(response=>{\n if (response.data){\n const tmp = response.data.map((el, index)=>({value:el.id, label:el.name}));\n return tmp;\n }\n return [];\n }).catch(error=>console.log(error));\n }\n\n onChange=(e)=>{\n const name = e.target.name;\n const value = e.target.value;\n this.setState(prevState=>{\n const data = cloneDeep(prevState.data);\n const error = {...this.state.error}; \n set(data, name, value);\n set(error, name, undefined);\n return {data:data, dirty: true, error: error};\n });\n }\n\n onClose=()=>{\n if(!this.state.dirty){\n this.props.history.goBack();\n return;\n }\n if(window.confirm('There are unsaved changes, do you want to leave?')){\n this.props.history.goBack();\n return;\n }\n }\n\n onRemove=(index)=>{\n const data = {...this.state.data};\n data.Columns.splice(index, 1);\n this.setState({data:data});\n }\n\n onDragEnd = (fields) => {\n if(!fields.destination)\n return;\n const from = fields.source.index;\n const to = fields.destination.index;\n const data = {...this.state.data}\n array_move(data.Columns, from, to);\n this.setState({data:data});\n }\n\n loadColumns = () => {\n this.props.context.showLoading();\n axiosData.post('/old/calls/custom' ,{url: this.state.data.URL})\n .then(response=>{\n const systemColumns = ['_EventID', '_NodeId', '_EventTime', '_StorageTime', '_EventTypeID', '_ParentID', '_ID',\n '_CreatedBy', '_CreatedAt', '_ModifiedBy', '_ModifiedAt', '_LockedBy', '_LockedAt', '_UnlockedBy', '_UnlockedAt', '_LockState', '_OwnedBy'];\n const data = {...this.state.data};\n const fields = {};\n \n response.data.Events.Values.forEach(ev=>{\n for (let key in ev){\n if (key in fields || systemColumns.includes(key))\n continue;\n fields[key] = {\n EventField: key,\n DisplayName: '',\n Width: '',\n Filter: '',\n WordWrap: false,\n Visible: true,\n ColumnOrder: 0\n }\n }\n });\n data.Columns = Object.keys(fields).map(el=>fields[el]);\n this.setState({data:data});\n this.props.context.hideLoading();\n })\n .catch(error=>{\n console.log(error);\n this.props.context.pushAlert({variant:'danger', message:'Unable load or parse URL response structure.'});\n const data = {...this.state.data};\n data.Columns = [];\n this.setState({data:data});\n this.props.context.hideLoading();\n });\n \n }\n\n handleSubmit = (e) => {\n e.preventDefault();\n const name = e.target.name;\n schema.validate(this.state.data, {abortEarly:false})\n .then(valid=>{\n this.props.context.showLoading();\n const {match: {params}} = this.props;\n const data = {...this.state.data};\n data.Roles = data.Roles.map(item=>({IdentityRoleId: item.value}));\n data.WebEntries = data.WebEntries.map(el=>({\n EventTypePageEntity: {ID:el.value},\n \n }));\n data.NewEventTypePage = data.NewEventTypePage ? {ID:data.NewEventTypePage.value}: undefined;\n data.Columns = data.Columns.map((col,i)=>({\n ...col,\n ColumnOrder: col.ColumnOrder? col.ColumnOrder.value : undefined,\n Order: i,\n Width: col.Width ? col.Width : 0,\n EventField: {Name: col.EventField}\n }));\n if(params && params.id){\n axios.put(`/eventlistview/${data.ID}`, data)\n .then(response=>{\n this.setState({dirty: false});\n this.props.context.pushAlert({variant:'success', message: 'Item updated.'});\n this.props.context.hideLoading();\n if(name==='SaveClose')\n this.props.history.push('/dataview');\n }).catch(error=>{\n this.props.context.pushAlert({variant:'danger', message: 'Error occured. Item was not updated.'});\n console.log(error);\n this.props.context.hideLoading();\n });\n } else {\n axios.post(`/eventlistview`, data)\n .then(response=>{\n this.setState({dirty: false});\n this.props.context.pushAlert({variant:'success', message: 'Item created.'});\n this.props.context.hideLoading();\n if(name==='SaveClose')\n this.props.history.push('/dataview');\n else\n this.props.history.push(`/dataview/update/${response.data.id}`);\n }).catch(error=>{\n this.props.context.pushAlert({variant:'danger', message: 'Error occured. Item was not created.'});\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n })\n .catch(errors=>{\n const error = {};\n errors.inner.forEach(el=>{\n set(error,el.path, el.message);\n });\n this.setState({error:error});\n })\n \n \n \n }\n\n render() {\n const error = this.state.error;\n return(\n
\n
\n
\n Basic Settings\n \n ()}/>\n \n \n \n \n
\n
\n
\n Columns\n \n \n {(provided, snapshot)=>(\n
\n {this.state.data.Columns.map((col, index)=>(\n this.onRemove(index)} key={index} index={index} name={`Columns[${index}]`} onChange={this.onChange}/>\n ))}\n
\n )}\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n );\n }\n}\n\nexport default withContext(Form);","import React from 'react';\nimport axios from '../../helpers/axiosWebEntry';\nimport withContext from '../../hoc/withContext';\nimport ReactTable from 'react-table';\n\n\nclass Roster extends React.Component {\n\n state={\n rows:[]\n }\n\n loadRows = () => {\n this.props.context.showLoading();\n axios.get('/eventlistview?loadDisabled=true')\n .then(response => {\n this.setState({rows:response.data});\n this.props.context.hideLoading();\n })\n .catch(error=>{\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n\n componentDidMount=()=>{\n this.props.context.setHeading('Data Views');\n this.loadRows();\n }\n\n render() {\n return (\n
\n {\n const id = filter.pivotId || filter.id\n return row[id] !== undefined ? String(row[id]).search(new RegExp(filter.value, 'i'))>-1 : true\n }}\n columns={\n [\n {accessor: 'id', show: false},\n {Header:'Name', accessor: 'name'},\n ]\n }\n getTdProps={(state, rowInfo, column, instance) => {\n if(column.id!=='actions')\n return {\n onClick: (e, handleOriginal)=>{\n if (handleOriginal) {\n handleOriginal();\n }\n this.props.history.push(`/dataview/detail/${rowInfo.row.id}`);\n\n },\n style: {cursor: 'pointer'}\n };\n return {};\n }}\n />\n
\n );\n }\n}\n\nexport default withContext(Roster);","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport axios from '../../helpers/axiosWebEntry';\nimport withContext from '../../hoc/withContext';\nimport ReactTable from 'react-table';\nimport {ButtonGroup, Button} from 'react-bootstrap';\n\n\n\nclass List extends React.Component {\n\n state={\n rows:[]\n }\n\n addHandler = () => {\n this.props.history.push('/dataview/create/');\n }\n\n removeHandler = (id) => {\n this.props.context.showLoading();\n axios.delete(`/eventlistview/${id}`)\n .then(response => {\n this.props.context.pushAlert({variant:'success', message: 'Item deleted.'});\n this.loadRows();\n })\n .catch(error=>{\n console.log(error);\n this.props.context.pushAlert({variant:'danger', message: 'Unable to delete item.'});\n this.loadRows();\n });\n }\n\n loadRows = () => {\n this.props.context.showLoading();\n axios.get('/eventlistview?loadDisabled=true')\n .then(response => {\n this.setState({rows:response.data});\n this.props.context.hideLoading();\n })\n .catch(error=>{\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n\n componentDidMount=()=>{\n this.props.context.setHeading('Data View Settings');\n this.loadRows();\n }\n\n render() {\n return (\n
\n

Data Views \n {this.props.history.push('/dataview/create/')}}/>\n

\n {\n const id = filter.pivotId || filter.id\n return row[id] !== undefined ? String(row[id]).search(new RegExp(filter.value, 'i'))>-1 : true\n }}\n columns={\n [\n {accessor: 'id', show: false},\n {Header:'Name', accessor: 'name'},\n {Header: 'Event Type', accessor: 'url'},\n {id: 'actions', filterable:false,width:150,Cell:({row})=>{\n if(row._original){\n return(\n \n \n \n \n )\n }\n }}\n ]\n }\n getTdProps={(state, rowInfo, column, instance) => {\n if(column.id!=='actions')\n return {\n onClick: (e, handleOriginal)=>{\n if (handleOriginal) {\n handleOriginal();\n }\n this.props.history.push(`/dataview/detail/${rowInfo.row.id}`);\n\n },\n style: {cursor: 'pointer'}\n };\n return {};\n }}\n />\n
\n );\n }\n}\n\nexport default withContext(List);","import React from 'react';\nimport ReactTable from 'react-table';\nimport 'react-table/react-table.css';\nimport { SORT_ORDER } from '../../components/DataViewColumn/DataViewColumn';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport axios from '../../helpers/axiosWebEntry';\nimport axiosData from '../../helpers/axiosData';\nimport withContext from '../../hoc/withContext';\nimport { isDate } from '../../helpers/enums';\nimport { get_locale } from '../../helpers/utils';\nimport { format, toDate } from 'date-fns';\nimport { Row, Col } from 'react-bootstrap';\nimport AsyncSelect from '../../components/Select/AsyncSelect';\n\n\nconst loc = get_locale();\n\nclass Detail extends React.Component {\n _isMount = false;\n\n state = {\n rows: [],\n isLoading: false,\n selectedView: undefined\n }\n\n loadRows = () => {\n this.setState({ isLoading: true }, () => {\n axiosData.post('/old/calls/custom', { url: this.state.data.URL })\n .then(response => {\n this.setState({ rows: response.data.Events.Values, isLoading: false });\n })\n .catch(error => {\n this.props.context.pushAlert({ variant: 'danger', message: 'Unable load data.' });\n this.setState({ isLoading: false });\n console.log(error);\n });\n });\n }\n\n loadView = (id) => {\n this.props.context.showLoading();\n axios.get(`/eventlistview/${id}`)\n .then(response => {\n const data = JSON.parse(response.data);\n\n\n this.props.context.setHeading(this.props.context.t(data.WebEntries[0].EventTypePageEntity.EventType.DisplayName));\n data.Columns.sort((a, b) => a.Order > b.Order ? 1 : -1);\n data.Columns = data.Columns.map(el => ({\n accessor: el.EventField.Name,\n Header: el.DisplayName ? this.props.context.t(el.DisplayName) : this.props.context.t(el.EventField.Name),\n width: el.Width ? el.Width : undefined,\n show: el.Visible,\n filter: el.Filter ? (el.Filter.trim() === '{{[@Me]}}' ? this.props.context.user.name : el.Filter) : undefined,\n Filter: el.Filter ? ({ filter, onChange }) => () : undefined,\n ColumnOrder: SORT_ORDER.find(o => o.value === el.ColumnOrder),\n className: el.WordWrap ? 'wordWrap' : undefined,\n headerClassName: el.WordWrap ? 'wordWrap' : undefined,\n Cell: prop => {\n if (prop.value && isDate(el.EventField.BuiltInType)) {\n return ({format(toDate(prop.value), 'P p', { locale: loc })})\n }\n return ({prop.value ? prop.value.toString() : null})\n }\n }));\n\n //delete button for admin\n //if (this.props.context.user && this.props.context.user.roles && this.props.context.user.roles.includes('Admin')) {\n // data.Columns.Add({\n // accessor: \"DeleteButtonColumn\",\n // Header: \"Actions\",\n // //width: undefined,\n // show: true,\n // ColumnOrder: 999999,\n // Cell: ({ cell }) => (\n // \n // \n // )\n // })\n //}\n\n\n data.sort = data.Columns.filter(el => el.ColumnOrder.value !== 0).map(el => ({\n id: el.accessor,\n desc: el.ColumnOrder.value > 1 ? true : false\n }));\n if (this._isMount) {\n this.setState({ data: data, isLoading: true, selectedView: { label: this.props.context.t(data.Name), value: data.ID } }, () => {\n this.loadRows();\n });\n }\n this.props.context.hideLoading();\n\n })\n .catch(error => {\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n\n //deleteEntry = () => {\n // if (!window.confirm('Do you really want to delete this entry? This can not be undone.')) {\n // return;\n // }\n\n // this.props.context.showLoading();\n\n // //const reqData = {};\n // //reqData['eventid'] = this.state._eventId;\n // //reqData['nodeid'] = this.state._nodeId;\n\n\n // axiosData.delete(`/v1/${this.state.entry.EventType.Name}/event/${this.state._eventId}`, { headers: { 'Content-Type': 'application/json; charset=utf-8' }, data: { NodeId: this.state._nodeId } })\n // .then(response => {\n // this.props.context.hideLoading();\n // if (response.data != undefined && response.data.Result) {\n // this.props.context.pushAlert({ variant: 'success', message: 'Item deleted.' });\n // }\n // else {\n // this.props.context.pushAlert({ variant: 'danger', message: 'Error occured when deleting the item.' });\n // }\n // })\n // .catch(error => {\n // this.props.context.hideLoading();\n // console.log(error);\n // });\n //}\n\n componentWillUnount = () => {\n this._isMount = false;\n }\n\n componentDidMount = () => {\n this._isMount = true;\n const { match: { params } } = this.props;\n\n if (params.id)\n this.loadView(params.id);\n }\n\n onChangeView = (selected) => {\n this.setState({ selectedView: selected.target.value }, () => {\n this.loadView(this.state.selectedView.value);\n });\n }\n\n getViews = (query) => {\n return axios.get('/eventlistview', { params: { name: query, eventType: this.state.data.WebEntries[0].EventTypePageEntity.EventType.ID } }).then(response => {\n if (response && response.data) {\n const tmp = response.data.map((el, index) => ({ value: el.id, label: this.props.context.t(el.name) }));\n return tmp;\n }\n return [];\n }).catch(error => console.log(error));\n }\n\n render() {\n if (this.state.data) {\n return (\n
\n

\n \n \n \n \n {this.state.data.NewEventTypePage ? (\n { this.props.history.push(`/dataentry/form/${this.state.data.NewEventTypePage.ID}`) }} />\n ) : null}\n \n \n\n \n\n\n

\n {\n const id = filter.pivotId || filter.id\n return row[id] !== undefined ? String(row[id]).search(new RegExp(filter.value, 'i')) > -1 : true\n }}\n defaultFiltered={this.state.data.Columns.filter(c => c.filter).map(c => ({ id: c.accessor, value: c.filter }))}\n style={{ maxHeight: '75vh' }}\n getTrProps={(state, rowInfo, column) => {\n return {\n onClick: (e, handleOriginal) => {\n const webEntry = this.state.data.WebEntries.find(el => el.EventTypePageEntity.EventType.ID === rowInfo.original._EventTypeID);\n //pushing a history.location.state with goBackSteps = -1 so the Save&Exit button will go here\n this.props.history.push({ pathname: `/dataentry/form/${webEntry.EventTypePageEntity.ID}/${rowInfo.original._EventID}/${rowInfo.original._NodeId}/${rowInfo.original._ParentID}`, state: { goBackSteps: -1, passedNodeId: rowInfo.original._NodeId } });\n\n },\n style: { cursor: 'pointer' }\n };\n }}\n />\n
\n );\n }\n return null;\n }\n}\n\nexport default withContext(Detail);","import React from 'react';\nimport {Route, Switch} from 'react-router-dom';\nimport Form from './Form';\nimport Roster from './Roster';\nimport List from './List';\nimport Detail from './Detail';\nimport {Container} from 'react-bootstrap';\n\nexport default props => (\n \n \n \n \n \n \n \n \n \n);\n\n","import React from 'react';\nimport * as yup from 'yup';\nimport axios from '../../helpers/axiosWebEntry';\nimport axiosUser from '../../helpers/axiosUser';\nimport AsyncSelect from '../../components/Select/AsyncSelect';\nimport { Button, ButtonGroup } from 'react-bootstrap';\nimport withContext from '../../hoc/withContext';\nimport BootstrapInput from '../../components/FormInput/BootstrapInput2';\n\nconst schema = yup.object().shape({\n Title: yup.string().required('Required.'),\n Order: yup.number().integer('Must be a integer.').required('Required'),\n Roles: yup.array().required('Required.'),\n //Link: yup.string().required('Required.'),\n Image: yup.string().required('Required.'),\n Parent: yup.mixed().required('Required.')\n});\n\nclass Form extends React.Component {\n state = {\n data: {\n ID: '',\n Title: undefined,\n Description: undefined,\n Order: 0,\n Roles: [],\n Link: undefined,\n Image: undefined,\n Parent: undefined\n },\n error: {},\n dirty: false,\n }\n\n componentDidMount = () => {\n const { match: { params } } = this.props;\n this.props.context.showLoading();\n\n if (!params.id) {\n this.setState(() => ({\n data: {\n Title: undefined,\n Description: undefined,\n Order: params.order ? params.order : 0,\n Roles: [],\n Link: undefined,\n Image: undefined,\n Parent: undefined\n },\n error: {},\n dirty: false,\n }), () => {\n if (!params.parent)\n return;\n axios.get(`/landingtile/${params.parent}`).then(response => {\n if (response && response.data) {\n const parent = JSON.parse(response.data);\n const data = { ...this.state.data };\n data.Parent = { value: parent.ID, label: parent.Title }\n this.setState({ data: data });\n }\n }).catch(error => console.log(error));\n });\n\n this.props.context.hideLoading();\n } else {\n axios.get(`/landingtile/${params.id}`)\n .then(response => {\n const data = JSON.parse(response.data);\n data.Roles = data.Roles.map(el => ({ value: el.IdentityRole.Id, label: el.IdentityRole.Name }));\n data.Parent = data.Parent ? { value: data.Parent.ID, label: data.Parent.Title } : undefined;\n this.setState({ data: data });\n this.props.context.hideLoading();\n })\n .catch(error => {\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n }\n\n getTiles = (query) => {\n return axios.get('/landingtile', { params: { name: query } }).then(response => {\n if (response && response.data) {\n const tmp = response.data.map((el, index) => ({ value: el.id, label: el.title }));\n return tmp;\n }\n return [];\n }).catch(error => console.log(error));\n }\n\n getRoles = (query) => {\n return axiosUser.get('/roles', { params: { name: query } }).then(response => {\n if (response && response.data) {\n const tmp = JSON.parse(response.data).map((el, index) => ({ value: el.Id, label: el.Name }));\n return tmp;\n }\n return [];\n }).catch(error => console.log(error));\n }\n\n onChange = (e) => {\n const name = e.target.name;\n const value = e.target.value;\n const data = { ...this.state.data };\n const error = { ...this.state.error }\n data[name] = value;\n error[name] = undefined;\n this.setState({ data: data, error: error, dirty: true });\n }\n\n onClose = () => {\n if (!this.state.dirty) {\n this.props.history.goBack();\n return;\n }\n if (window.confirm('There are unsaved changes, do you want to leave?')) {\n this.props.history.goBack();\n return;\n }\n }\n\n handleSubmit = (e) => {\n const name = e.target.name;\n e.preventDefault();\n schema.validate(this.state.data, { abortEarly: false }).then(values => {\n this.props.context.showLoading();\n const { match: { params } } = this.props;\n const data = { ...this.state.data };\n data.ParentId = data.Parent.value;\n data.Roles = data.Roles.map(item => ({ IdentityRoleId: item.value }));\n\n if (params && params.id) {\n axios.put(`/landingtile/${data.ID}`, data)\n .then(response => {\n this.setState({ dirty: false });\n this.props.context.pushAlert({ variant: 'success', message: 'Item updated.' });\n this.props.context.hideLoading();\n if (name === 'SaveClose')\n this.props.history.goBack();\n }).catch(error => {\n this.props.context.pushAlert({ variant: 'danger', message: 'Error occured. Item was not updated.' });\n console.log(error);\n this.props.context.hideLoading();\n });\n } else {\n axios.post(`/landingtile`, data)\n .then(response => {\n this.setState({ dirty: false });\n this.props.context.pushAlert({ variant: 'success', message: 'Item created.' });\n this.props.context.hideLoading();\n if (name === 'SaveClose')\n this.props.history.goBack();\n else\n this.props.history.push(`/landingtile/update/${response.data.id}`);\n }).catch(error => {\n this.props.context.pushAlert({ variant: 'danger', message: 'Error occured. Item was not created.' });\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n }).catch(errors => {\n console.log(errors);\n const error = {};\n errors.inner.forEach(el => {\n error[el.path] = el.message;\n });\n this.setState({ error: error });\n });\n\n }\n\n\n render() {\n const error = this.state.error;\n return (\n
\n
\n
\n Landing Tile Settings\n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n
\n );\n }\n}\n\nexport default withContext(Form);","import React from 'react';\nimport { Card } from 'react-bootstrap';\nimport { Link } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { withRouter } from 'react-router-dom';\nimport { isUrlAbsolute } from '../../helpers/utils';\n\n/**\n * Component of landing page card.\n * Props:\n * - allowEdit: display admin icons on tile\n * - disableRemoving: hide remove icon, used on root or add tiles\n * - onRemoveTile: callback called on removing tile from parent\n * - image: tile image\n * - title: tile title\n * - description: tile description text\n * - ID: tile id (from db)\n * - link: tile link; tile redirects on link; if not provided it will open page with child tiles\n */\nexport default withRouter(props => {\n const component = (\n \n {props.allowEdit ? (\n
\n {\n e.preventDefault();\n props.history.push(`/landingtile/update/${props.ID}`);\n }} />\n\n {!props.DisableRemoving ?\n {\n e.preventDefault();\n props.onRemoveTile(props.ID);\n }} />\n : null\n }\n
\n ) : null}\n \n \n {props.context.t(props.Title)}\n \n {props.context.t(props.Description)}\n \n \n
\n );\n\n return (\n \n {isUrlAbsolute(props.Link) ?\n (\n \n {component}\n \n ) :\n (\n \n {component}\n \n )\n }\n \n );\n});","import React from 'react';\nimport withContext from '../../hoc/withContext';\n\nconst NoTilesMessage = props => (\n props.hidemessage\n ? null\n : \n {props.context.user\n ?
{process.env.REACT_APP_NO_ROLES_MESSAGE}
\n :
{process.env.REACT_APP_NOT_LOGGED_MESSAGE}
\n }\n
\n);\n\nexport default withContext(NoTilesMessage);","import React from 'react';\nimport Tile from '../../components/LandingPageCard/LandingPageCard';\nimport { Col, Row, Container } from 'react-bootstrap';\nimport NoTilesMessage from './NoTilesMessage';\nimport axios from '../../helpers/axiosWebEntry';\nimport { withRouter } from 'react-router-dom';\nimport withContext from '../../hoc/withContext';\nimport { isUrlAbsolute } from '../../helpers/utils';\n\n\n\nclass Landing extends React.Component {\n state = {\n tiles: [],\n current: undefined\n }\n\n componentDidMount = () => {\n const { match: { params } } = this.props;\n this.loadTile(params.id);\n }\n\n loadTile = (id) => {\n this.props.context.showLoading();\n axios.get(`/landingtile/${id || undefined}`)\n .then(response => {\n const data = JSON.parse(response.data);\n const current = { ...data };\n current.Image = isUrlAbsolute(current.Image) ? current.Image : `${process.env.REACT_APP_BLOB_STORAGE_ROOT}${current.Image}`\n const tiles = data.Children;\n tiles.sort((a, b) => a.Order > b.Order ? 1 : -1);\n tiles.forEach((item) => {\n item.Image = isUrlAbsolute(item.Image) ? item.Image : `${process.env.REACT_APP_BLOB_STORAGE_ROOT}${item.Image}`;\n });\n this.setState({ current: current, tiles: tiles });\n this.props.context.setHeading(this.props.context.t(current.Title));\n this.props.context.hideLoading();\n })\n .catch(error => {\n console.log(error);\n this.props.context.hideLoading();\n });\n }\n\n componentWillReceiveProps = (nextProps) => {\n if (nextProps.match.url !== this.props.match.url) {\n const { match: { params } } = nextProps;\n this.loadTile(params.id);\n }\n }\n\n removeTile = (id) => {\n if (!window.confirm('Do you want to remove the Tile?'))\n return;\n this.props.context.showLoading();\n axios.delete(`/landingtile/${id}`)\n .then(response => {\n this.props.context.pushAlert({ variant: 'success', message: 'Item deleted.' });\n let tiles = [...this.state.tiles];\n tiles = tiles.filter((el) => {\n return el.ID !== id;\n });\n this.setState({ tiles: tiles });\n this.props.context.hideLoading();\n })\n .catch(error => {\n console.log(error);\n this.props.context.pushAlert({ variant: 'danger', message: 'Unable to delete item.' });\n this.props.context.hideLoading();\n });\n }\n\n render() {\n return (\n \n \n \n {this.state.tiles.length ? this.state.tiles.map((t, i) => (\n \n )) : }\n {this.props.context.isAdmin() ?\n (\n \n \n \n ) : null}\n\n \n \n \n );\n }\n}\n\nexport default withRouter(withContext(Landing));","import React from 'react';\nimport {Route, Switch} from 'react-router-dom';\nimport Form from './Form';\nimport {Container} from 'react-bootstrap';\nimport Landing from './Landing';\n\nexport default props => (\n \n \n \n \n \n \n \n \n);\n\n","import React from 'react';\nimport {Alert} from 'react-bootstrap';\n\n/*\n Component for showing error/success messages on top of application.\n Props:\n - dismissable: show cross on top right corner to close message\n - variant: same as bootstraps variant - changes color settings (default, success, error, warning etc.)\n - onRemove: on close callback\n - closeLabel: text for tooltip hint\n - show: boolean to show/hide alert\n - heading: Bold heading of alert\n - message: text of alert\n*/\n\nexport default props => (\n \n {props.heading ? (\n \n {props.heading}\n \n ): null}\n

\n {props.message}\n

\n
\n);\n","import React, { Component } from 'react';\nimport { Route, Switch, withRouter } from 'react-router-dom';\nimport ProtectedRoute from './helpers/ProtectedRoute';\nimport NavBar from './components/NavBar/NavBar';\nimport Login from './pages/Login/Login';\nimport Reset from './pages/Login/Reset';\nimport DataEntry from './pages/DataEntry/Index';\nimport DataView from './pages/DataView/Index';\nimport Landing from './pages/Landing/Index';\nimport withContext from './hoc/withContext';\nimport 'bootstrap/dist/css/bootstrap.css';\nimport 'react-quill/dist/quill.snow.css';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport Alert from './components/Alert/Alert';\nimport LoadingOverlay from 'react-loading-overlay';\nimport { faSortUp, faSortDown, faPlus, faTimes, faPen, faEye, faEyeSlash, faMinus, faCalendar, faDownload, faSyncAlt } from '@fortawesome/free-solid-svg-icons';\nimport { fab } from '@fortawesome/free-brands-svg-icons';\nimport './App.css';\n\nimport { LoginCallback, Security } from '@okta/okta-react';\nimport { toRelativeUrl } from '@okta/okta-auth-js';\nimport { /*getOktaAuthObject*/ OktaAuthObject } from './helpers/adalConfig';\n\n\nlibrary.add(faSortUp);\nlibrary.add(faSortDown);\nlibrary.add(faPlus);\nlibrary.add(faMinus);\nlibrary.add(faTimes);\nlibrary.add(faPen);\nlibrary.add(faEye);\nlibrary.add(faEyeSlash);\nlibrary.add(faCalendar);\nlibrary.add(faDownload);\nlibrary.add(faSyncAlt);\nlibrary.add(fab);\n\n\n\n\nclass App extends Component {\n\n\n componentDidMount = () => {\n this.props.history.listen((location, action) => {\n this.props.context.clearAlerts();\n this.props.context.hideLoading();\n\n });\n }\n\n restoreOriginalUri = async (_oktaAuth, originalUri) => {\n this.props.history.replace(toRelativeUrl(originalUri, window.location.origin));\n //this.props.history.replace(toRelativeUrl(\"\", window.location.origin));\n };\n\n render() {\n return (\n //\n \n\n \n\n \n
\n ({\n ...base,\n position: 'absolute',\n }),\n spinner: (base) => ({\n ...base,\n position: 'fixed',\n top: '50%'\n }),\n overlay: (base) => ({\n ...base,\n position: 'fixed',\n })\n }\n }>\n {this.props.context.alerts.map((alert, index) => (\n this.props.context.removeAlert(index)} />\n ))}\n \n\n {/*ugly hack because Okta has to be initialized OR not used at all*/}\n {OktaAuthObject !== undefined ?\n \n \n \n \n \n \n \n \n \n :\n \n \n \n \n \n \n \n \n \n }\n\n \n \n
\n\n
\n //
\n );\n }\n}\n\nexport default withContext(withRouter(App));\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import 'babel-polyfill';\n\nimport { AdalConfig, AdalAuthObject } from './helpers/adalConfig'\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport { BrowserRouter as Router } from 'react-router-dom';\nimport { AuthProvider } from './contexts/Context';\nimport * as serviceWorker from './serviceWorker';\n//import { SecureRoute, Security, LoginCallback } from '@okta/okta-react';\n//import { OktaAuth, toRelativeUrl } from '@okta/okta-auth-js';\n//import { AuthOktaProvider } from './helpers/oktaAuth';\n\nif (AdalAuthObject !== undefined)\n AdalAuthObject.handleWindowCallback();\n\n\n\n//const oktaAuth = new OktaAuth(OktaConfig);\n\n//const restoreOriginalUri = async (_oktaAuth, originalUri) => {\n// this.props.history.replace(toRelativeUrl(originalUri, window.location.origin));\n//};\n\n\nif ((window === window.parent) && window === window.top) {\n // Having both of these checks is to prevent having a token in localstorage, but no user.\n if (AdalAuthObject !== undefined && !AdalAuthObject.isCallback(window.location.hash) && AdalAuthObject.getCachedUser()) {\n AdalAuthObject.acquireToken(AdalConfig.endpoints.api, (message, token, msg) => {\n if (token) {\n ReactDOM.render(, document.getElementById('root'));\n }\n })\n }\n //else if (AuthOktaContext) {\n // var token = AuthOktaContext.getAccessToken();\n // if (token) {\n // ReactDOM.render(, document.getElementById('root'));\n // }\n\n //}\n else {\n ReactDOM.render(, document.getElementById('root'));\n }\n serviceWorker.unregister();\n}\n"],"sourceRoot":""}