{"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","token","oktaStorage","idToken","value","jwttoken","JWT","seconds","Math","round","Date","getTime","exp","removeItem","Authorization","instance","axios","create","baseURL","process","interceptors","request","use","config","Promise","resolve","reject","acquireToken","msg","headers","authorization","err","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","state","isLoading","isMessageHidden","alerts","heading","user","_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","react_beautiful_dnd_esm","draggableId","EventField","provided","snapshot","ref","innerRef","draggableProps","dragHandleProps","ID","Switch","BuiltInType","ValidationFunctionName","as","rows","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","TemplateName","Entry","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","obj","result","validation","validationEnabled","FormatValidation","FormatValidationErrorMessage","string","matches","RangeValidationLow","RangeValidationHigh","RangeValidationErrorMessage","number","typeError","min","max","mixed","modalClose","modalShow","goBackSteps","_itemId","reqData","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","_parentId","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","ReactDOM","src_App_0","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.75c5dc0b.chunk.js","sourcesContent":["import AuthenticationContext from 'adal-angular';\nimport { OktaAuth } from '@okta/okta-auth-js';\n\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\n//export const getToken = () => {\n// return AdalAuthObject.getCachedToken(AdalAuthObject.config.clientId);\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();","import * as JWT from 'jwt-decode';\n\n/**\n * func to dynamically set authorization header on current JWT token with every call\n */\nexport default () => {\n\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 {};\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 {};\n }\n\n return { 'Authorization': 'Bearer ' + token };\n}","import axios from 'axios';\nimport { AdalAuthObject, AdalConfig } from './adalConfig'\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\n if (AdalAuthObject !== undefined) {\n // Check and acquire a token before the request is sent\n return new Promise((resolve, reject) => {\n AdalAuthObject.acquireToken(AdalConfig.endpoints.api, (message, token, msg) => {\n if (!!token) {\n config.headers.Authorization = `Bearer ${token}`\n\n resolve(config)\n } else {\n // Do something with error of acquiring the token\n reject(config)\n }\n })\n })\n }\n\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 { AdalAuthObject, AdalConfig } from './adalConfig'\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 if (AdalAuthObject !== undefined) {\n // Check and acquire a token before the request is sent\n return new Promise((resolve, reject) => {\n AdalAuthObject.acquireToken(AdalConfig.endpoints.api, (message, token, msg) => {\n if (!!token) {\n config.headers.Authorization = `Bearer ${token}`\n\n resolve(config)\n } else {\n // Do something with error of acquiring the token\n reject(config)\n }\n })\n })\n }\n\n config.headers.authorization = authHeader().Authorization;\n return config;\n}, err => Promise.reject(err)\n);\n\nexport default instance;","import axios from 'axios';\nimport { AdalAuthObject, AdalConfig } from './adalConfig'\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\n if (AdalAuthObject !== undefined) {\n // Check and acquire a token before the request is sent\n return new Promise((resolve, reject) => {\n AdalAuthObject.acquireToken(AdalConfig.endpoints.api, (message, token, msg) => {\n if (!!token) {\n config.headers.Authorization = `Bearer ${token}`\n\n resolve(config)\n } else {\n // Do something with error of acquiring the token\n reject(config)\n }\n })\n })\n }\n\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 { isString } from '../../helpers/enums';\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 }\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\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 { AdalAuthObject, AdalConfig } from './adalConfig'\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 if (AdalAuthObject !== undefined) {\n // Check and acquire a token before the request is sent\n return new Promise((resolve, reject) => {\n AdalAuthObject.acquireToken(AdalConfig.endpoints.api, (message, token, msg) => {\n if (!!token) {\n config.headers.Authorization = `Bearer ${token}`\n\n resolve(config)\n } else {\n // Do something with error of acquiring the token\n reject(config)\n }\n })\n })\n }\n\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 axiosData.get(`/v1/OfficeExport/${this.props.nodeId}/${this.props.eventId}/${templatename}`, {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\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":""}