{"version":3,"sources":["Assets/Images/rslogo.png","../node_modules/jspdf/dist sync","Assets/Images/newlogo.png","Assets/Images/fix-403-Forbidden-Error.png","Helpers/Axiosbase.js","Store/Actions/Auth.js","Store/Actions/ActionTypes.js","Store/Actions/AppsComponents.js","Helpers/useInputChange.js","Container/Admin/User/UserManage.js","Container/Admin/Environment/EnvironmentManage.js","Container/Admin/Apps/AppsList.js","Container/Admin/Apps/AppsManage.js","Container/Admin/Components/ComponentsManage.js","Container/Admin/Components/ComponentsList.js","authProvider.js","Container/Admin/Sidebar.js","Container/Admin/index.js","Container/Client/Header.js","Container/Client/AppSelector.js","Container/Client/ComponentSelector.js","Container/Client/Configuration.js","Container/Client/NavmenuForm.js","Container/Client/EntityCreateForm.js","Container/Client/WizardEntityCreateForm.js","Container/Client/EntityHeaderForm.js","Container/Client/EntitySearchResultForm.js","Container/Client/ManageConfig.js","Container/Client/AddConfiguration.js","Container/Client/index.js","Container/Errorpage.js","App.js","serviceWorker.js","Helpers/Utility.js","Store/Reducers/Auth.js","Store/Reducers/User.js","Store/Reducers/AppsComponents.js","index.js"],"names":["module","exports","webpackEmptyContext","req","e","Error","code","keys","resolve","id","instance","axios","create","baseURL","defaults","headers","common","authSuccess","require","userId","token","isAdmin","environments","isSessionValid","defaultEnvironment","localStorage","setItem","JSON","stringify","type","authFail","error","authLogout","removeItem","selectedApp","selectedComponent","selectedEnvironment","selectedConfigurationForBulkCopy","configuration","dispatch","parse","getItem","config","postdata","componentContextCode","environmentId","tenantId","post","then","configResponse","selectedConfiguration","data","response","catch","err","configFail","console","log","status","responseMessage","attributelist","contextList","attributeList","clist","attribute","useInputChange","inititalObject","useState","input","setInput","currentTarget","name","value","makeStyles","theme","root","margin","spacing","width","div","float","overflow","Alert","props","elevation","variant","AppsList","React","title","field","columns","showProgress","appsData","state","setState","open","errmsg","errorMessage","setErrorMessage","infoMsg","deleteInfoMsg","setDeleteInfoMsg","handleClose","event","reason","reduxAuth","useSelector","auth","history","useReactRouter","useDispatch","getAllApp","objectName","actions","useEffect","Snackbar","autoHideDuration","anchorOrigin","vertical","horizontal","onClose","severity","color","LinearProgress","editable","onRowDelete","oldData","Promise","setTimeout","rowData","_id","handleDeleteApp","icon","tooltip","onClick","push","isFreeAction","useStyles","AppsManage","setShowProgress","location","appContextCode","displayName","isActive","displaySequence","handleInputChange","handleSwitchChange","classes","Card","CardHeader","CardContent","className","TextField","label","onChange","FormGroup","FormControlLabel","control","Switch","checked","CardActions","Button","url","listApps","setListApps","setSelectedApp","appids","selectedAppValue","filter","app","some","getApps","fontSize","checkedIcon","Autocomplete","multiple","options","includes","disableCloseOnSelect","getOptionLabel","option","renderOption","selected","Fragment","Checkbox","style","marginRight","renderInput","params","placeholder","fullWidth","map","currentValue","index","ComponentsList","componentsData","getAllComponent","handleDeleteComponent","authProvider","MsalAuthProvider","authority","clientId","clientSecret","postLogoutRedirectUri","redirectUri","validateAuthority","navigateToLoginRequestUrl","system","logger","Logger","logLevel","message","containsPii","level","LogLevel","Verbose","piiLoggingEnabled","cache","cacheLocation","storeAuthStateInCookie","scopes","loginType","LoginType","Redirect","tokenRefreshUri","window","origin","display","drawer","breakpoints","up","flexShrink","appBar","marginLeft","menuButton","menuButton1","toolbar","mixins","drawerPaper","content","flexGrow","padding","typ","link","textDecoration","Admin","CssBaseline","AppBar","position","Toolbar","Typography","noWrap","justify","logout","aria-label","Drawer","paper","href","src","RSLogo","alt","height","marginTop","Divider","List","to","ListItem","button","key","ListItemIcon","ListItemText","primary","AdminLayout","sessionAlert","alert","action","size","AlertTitle","exact","path","from","QontoConnector","withStyles","alternativeLabel","top","left","right","active","borderColor","completed","line","borderTopWidth","borderRadius","StepConnector","alignItems","circle","backgroundColor","zIndex","grow","search","textAlign","fontWeight","shape","fade","palette","white","searchIcon","pointerEvents","justifyContent","inputRoot","inputInput","transition","transitions","sectionDesktop","sectionMobile","listitemicon","minWidth","listitem","paddingLeft","loader","typography","DialogTitle","closeButton","grey","children","other","disableTypography","IconButton","DialogContent","MuiDialogContent","Header","setOpen","setDisabled","openSyncAlert","setOpenSyncAlert","setOpenSyncProcessAlert","prevOpen","useRef","anchorRef","steps","setSteps","selectedMenuItem","setselectedMenuItem","selectedIndex","setSelectedIndex","showLoader","appcomponent","avtar","getAccountInfo","account","render","isPublished","Chip","current","focus","handleToggle","contains","target","anchorEl","setAnchorEl","handleActionClose","openAcion","Boolean","undefined","openDialog","setOpenDialog","handleDialogClose","setActiveStep","activeStep","handleActionItemClick","ids","environmentResponse","httsAgent","https","Agent","rejectUnauthorized","isSync","httpsAgent","handleYesAction","CircularProgress","ref","aria-describedby","aria-controls","aria-haspopup","endIcon","Popover","transformOrigin","ClickAwayListener","onClickAway","MenuList","autoFocusItem","onKeyDown","preventDefault","MenuItem","handleMenuItem","green","disabled","toString","Dialog","aria-labelledby","Stepper","connector","Step","StepLabel","prevActiveStep","length","configlist","configList","handleNext","dividers","header","background","paddingTop","paddingBottom","listItemText","fontFamily","svgIcon","AppSelector","allApps","allComponents","urladd","getAppsAndComponents","appsResponse","allapps","componentResponse","allComponent","component","subheader","ListSubheader","handleListItemClick","radius","Componentselector","filtercomponent","indexOf","zip","useTheme","createMuiTheme","overflowY","overrides","MuiTableCell","MuiTypography","h6","btn","chipbtn","Configuration","allconfig","metaInfo","configObjects","schema","setLoader","msg","delbox","opendelalert","setopendelalert","openalert","setOpenAlert","publishClickHandler","unpublishClickHandler","configData","stopPropagation","jsonDocument","domain","entityType","context1","context2","context3","relationship","role","isDuplicate","strictSSL","ThemeProvider","pageSize","pageSizeOptions","selection","isLoading","onRowClick","handledata","sc","scc","file","generateAsync","saveAs","remove","handleDownLoadClick","cntpublish","deleteConfigHandler","onSelectionChange","rows","merge","unset","backButton","instructions","marginBottom","stepperdiv","NavmenuForm","locationdata","contexts","context","tenant","country","channel","user","jsonData","jsonObj","openNextSelection","setOpenNextSelection","QuickActions","setQuickActions","MenuOptions","setMenuOptions","defaultSort","editComponent","visible","handlequickactionsedit","handlemenuoptionsedit","menustate","updateConfigAPI","editConfigResponse","newdata","disseq","parseInt","concat","hasOwnProperty","contextdata","contextData","itemContext","quickdata","subNavMenu","parentname","existingactions","newaction","getoptionslist","computedName","newjson","entitytype","mergedJSON","nullstate","notnullstate","Object","prototype","call","parentapp","mainapp","customdata","quickresult","baseconfig","customconfig","baseConfigResponse","getQuickactionslist","getMenuoptionlist","qutomconfig","qbaseconfig","finalmenuarray","varsubmenuchild","vargetmchild","varchildarray","object","keymap","submenuchild","mchild","getmchild","gmchild","actionschild","refactor","subnavmenu","subkey","subkeyobj","subkeyobjkey","recobject","startIcon","fullscreentoggle","sorting","onRowUpdate","newData","onRowAdd","oldobject","newobjject","handlequickactionsadd","handlequickactionsdelete","cardroot","minHeight","EntityCreateForm","api","userAttributes","setuserAttributes","AttributeList","setAttributelist","NoofColumns","setNoofColumns","properties","attributeNames","noOfColumns","addjson","handleSaveClick","col","isNaN","handleColumns","WizardEntityCreateForm","AddRowData","setAddRowData","OpenWizardForm","setOpenWizardForm","ComponentName","ComponentPath","UserComponent","setUserComponent","OpenProperty","setOpenProperty","leafNodeOnly","pathAttribute","multiSelect","PathManageProperty","setPathManageProperty","handleleafnodeswitch","RelManageProperty","setRelManageProperty","handlerelpropertytextbox","varconfigcontext","newconfigcontext","mergeconfigcontext","Steps","lookup","handlewizarddata","handleaddproperties","StepsCol","mergejson","getSteps","mapconfig","getContextList","margeproperty","addproperty","border","labelPlacement","relationshipTitle","relationshipTypeName","mode","heading","pxToRem","fontWeightRegular","EntityHeaderForm","helperText","validateInput","labelError","setLabelError","nameError","setNameError","TenantAttributes","isMetadataAttribute","handledeleteattribute","cellStyle","handleheaderattribute","noTrim","ThmbnailConfig","setThmbnailConfig","BusinessActionsConfig","setBusinessActionsConfig","handlebatxt","varbaconfig","businessActionsConfig","newbaconfig","mergebaconfig","handlethumbnailtextbox","varthumbnailconfig","thumbnailConfig","newthumbnailconfig","mergethumbnailconfig","handlethubnailswitch","setAttributeList","attributeName","getAttributeList","headerConfig","getThumbnailConfig","getBusinessActionsConfig","relationshipName","relationshipFilterAttributeName","relationshipFilterAttributeValue","hideEntityThumbnail","showActions","messageAttribute","reject","EntitySearchResultForm","titlePattern","subTitlePattern","TileConfigtxt","setTileConfigtxt","handletileconfigtxt","ToolbarButtons","setToolbarButtons","handletileactions","TileActionState","ListActions","setListActions","handlelistactions","ListActionsState","TileActions","setTileActions","handletoolbarbtns","btnstate","initialValue","isMetaDataColumn","handlesearchgridattributes","filterable","sortable","gridConfig","itemConfig","fields","getViewConfig","handletilepattern","vartoolbarconfig","vartileconfig","varlistconfig","tmapconfig","tilemergeconfig","listmergeconfig","viewConfig","toolbarConfig","buttonItems","basic","buttons","tile","settings","list","btnlist","tileactionlist","listactionlist","Accordion","AccordionSummary","expandIcon","AccordionDetails","Input","endAdornment","InputAdornment","subtitle1","fontStyle","btnall","btncancle","btnformview","btnfullscreen","ManageConfig","openJSONView","setOpenJSONView","view","toggleView","setToggleView","change","setChange","handleViewBtnClick","handleSaveBtnClick","ace","handleOnChange","jsoneditor","textfield","AddConfigurationStepper","errorDuplicateMessage","setErrorDuplicateMessage","addConfigResponse","setAddConfigurationResponse","baseConfig","EntityType","setEntityType","Domain","Role","setRole","Relationship","setRelationship","User","setUser","contextdp","setcontextdp","handlecontextdropdown","Index","div1","boxShadow","div2","div3","bullet","transform","cardheader","pos","editdiv","scedit","ClientLayout","authLogoutClick","Errorpage","errorlogo","App","onValidLogin","acinfo","onAuth","isadmin","this","provider","forceLogin","login","authenticationState","accountInfo","AuthenticationState","Authenticated","Client","isAuthenticated","Unauthenticated","InProgress","Component","connect","loginValues","loginDetails","responseCode","apiAccessToken","hostname","match","updateObject","oldObject","updatedProperties","initialState","loading","authStart","setAuthRedirectPath","authRedirectPath","reducer","userEditing","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","rootReducer","combineReducers","authReducer","userReducer","AppsComponentsReducer","store","createStore","applyMiddleware","thunk","ReactDOM","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.45334698.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/rslogo.d43ed292.png\";","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 404;","module.exports = __webpack_public_path__ + \"static/media/newlogo.31bbd0bc.png\";","module.exports = __webpack_public_path__ + \"static/media/fix-403-Forbidden-Error.5dcbe81f.png\";","import axios from 'axios';\r\n// import https from 'https';\r\n\r\n// const httpsAgent = new https.Agent({\r\n// rejectUnauthorized: false, // (NOTE: this will disable client verification)\r\n// }) \r\n\r\nconst instance = axios.create({\r\n // httpsAgent:httpsAgent,\r\n // baseURL:'http://localhost:7071/api/',\r\n // baseURL: 'https://dataio-uiconfigurator-api.azurewebsites.net/api/',\r\n baseURL: 'https://pact-uiconfigurator-api.azurewebsites.net/api/',\r\n \r\n});\r\n// instance.get('https://dataio-uiconfigurator-api.azurewebsites.net/api/');\r\ninstance.defaults.headers.common['Authorization'] = 'Auth Token'\r\nexport default instance;","import axios from '../../Helpers/Axiosbase';\r\nimport * as actionTypes from './ActionTypes';\r\nvar md5 = require('md5');\r\n\r\nexport const authStart = () => {\r\n return {\r\n type: actionTypes.AUTH_START\r\n };\r\n};\r\n\r\nexport const authSuccess = (userId, token, isAdmin, environments, isSessionValid, defaultEnvironment) => {\r\n localStorage.setItem('userId', userId);\r\n localStorage.setItem('token', token);\r\n localStorage.setItem('isAdmin', isAdmin);\r\n localStorage.setItem('environments', JSON.stringify(environments));\r\n localStorage.setItem('isSessionValid', isSessionValid);\r\n localStorage.setItem('defaultEnvironment', defaultEnvironment);\r\n return {\r\n type: actionTypes.AUTH_SUCCESS,\r\n token: token,\r\n userId: userId,\r\n isAdmin: isAdmin,\r\n environments: environments,\r\n isSessionValid: isSessionValid,\r\n defaultEnvironment: defaultEnvironment\r\n };\r\n};\r\n\r\nexport const authFail = (error) => {\r\n return {\r\n type: actionTypes.AUTH_FAIL,\r\n error: error\r\n };\r\n};\r\n\r\nexport const auth = (loginDetails) => {\r\n return dispatch => {\r\n // dispatch(authStart());\r\n let url = 'userLogin';\r\n // loginDetails.password=md5(loginDetails.password);\r\n axios.post(url, loginDetails)\r\n .then(response => {\r\n // console.log(response);\r\n if (response.data && response.data.responseCode) {\r\n if (response.data.responseCode === 200) {\r\n // console.log(response);\r\n let userId = response.data.response._id;\r\n let token = response.data.response.apiAccessToken;\r\n let isAdmin = response.data.response.isAdmin;\r\n let environments = response.data.response.environments.value;\r\n let isSessionValid = true;\r\n let defaultEnvironment = response.data.response.defaultEnvironment;\r\n dispatch(authSuccess(userId, token, isAdmin, environments, isSessionValid, defaultEnvironment));\r\n }\r\n else {\r\n dispatch(authFail(\"Login Failed : Invalid Username or Password\"));\r\n }\r\n }\r\n })\r\n .catch(err => {\r\n console.log(\"Error:\",err);\r\n dispatch(authFail(\"Login Failed:Invalid Username or Password\"));\r\n });\r\n };\r\n};\r\n\r\nexport const authLogout = () => {\r\n localStorage.removeItem('userId');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('isAdmin');\r\n localStorage.removeItem('environments');\r\n localStorage.removeItem('isSessionValid');\r\n localStorage.removeItem('selectedApp');\r\n localStorage.removeItem('selectedComponent');\r\n localStorage.removeItem('allcomponent');\r\n localStorage.removeItem('defaultEnvironment');\r\n localStorage.removeItem('selectedConfiguration');\r\n localStorage.removeItem('selectedEnvironment');\r\n localStorage.removeItem('selectedConfigurationForBulkCopy');\r\n localStorage.removeItem('attributeList');\r\n return {\r\n type: actionTypes.AUTH_LOGOUT\r\n };\r\n};\r\n\r\n\r\nexport const checkAuthStatus = () => {\r\n return dispatch => {\r\n let userId = localStorage.getItem('userId');\r\n let token = localStorage.getItem('token');\r\n let isAdmin = localStorage.getItem('isAdmin');\r\n var environments = JSON.parse(localStorage.getItem('environments'));\r\n // const environments = localStorage.getItem('environments');\r\n let isSessionValid = localStorage.getItem('isSessionValid');\r\n let defaultEnvironment = localStorage.getItem('defaultEnvironment');\r\n \r\n if (userId) {\r\n dispatch(authSuccess(userId, token, isAdmin, environments, isSessionValid, defaultEnvironment));\r\n }\r\n }\r\n}","// Authentication actions\r\nexport const AUTH_START = 'AUTH_START';\r\nexport const AUTH_SUCCESS = 'AUTH_SUCCESS';\r\nexport const AUTH_FAIL = 'AUTH_FAIL';\r\nexport const AUTH_LOGOUT = 'AUTH_LOGOUT';\r\nexport const SET_AUTH_REDIRECT_PATH = 'SET_AUTH_REDIRECT_PATH';\r\n\r\n// User Actions\r\nexport const USER_EDITING = 'USER_EDITING';\r\n\r\n//AppsComponents\r\nexport const SELECTED_APP='SELECTED_APP';\r\nexport const SELECTED_COMPONENT='SELECTED_COMPONENT';\r\nexport const GET_ALL_COMPONENT='GET_ALL_COMPONENT';\r\n\r\n//Environments\r\nexport const SELECTED_ENVIRONMENT='SELECTED_ENVIRONMENT';\r\nexport const GET_USER_ALL_ENVIRONMENT='SELECTED_ENVIRONMENT';\r\n\r\n//Configuration\r\nexport const SELECTED_CONFIGURATION='SELECTED_CONFIGURATION';\r\n\r\n//Bulk Copy\r\nexport const SELECTED_CONFIGURATION_FOR_BULKCOPY='SELECTED_CONFIGURATION_FOR_BULKCOPY';\r\n\r\n//AttributeList\r\nexport const ATTRIBUTE_LIST = 'ATTRIBUTE_LIST';\r\n\r\n//Config Fail\r\nexport const CONFIG_FAIL='CONFIG_FAIL';\r\n\r\n\r\n","import * as actionTypes from './ActionTypes';\r\nimport axios from '../../Helpers/Axiosbase';\r\n// import authSuccess from './Auth'\r\n\r\nexport const selectedApp = (selectedApp) => {\r\n localStorage.setItem('selectedApp', selectedApp);\r\n localStorage.removeItem('selectedComponent');\r\n // localStorage.setItem('allcomponent', allcomponent);\r\n return {\r\n type: actionTypes.SELECTED_APP,\r\n selectedApp: selectedApp,\r\n selectedComponent: null,\r\n // allcomponent: allcomponent,\r\n };\r\n};\r\n\r\nexport const selectedComponent = (selectedComponent) => {\r\n localStorage.setItem('selectedComponent', JSON.stringify(selectedComponent));\r\n // localStorage.setItem('allcomponent', allcomponent);\r\n return {\r\n type: actionTypes.SELECTED_COMPONENT,\r\n selectedComponent: selectedComponent,\r\n // allcomponent: allcomponent,\r\n };\r\n};\r\n\r\nexport const allComponent = (allComponent) => {\r\n localStorage.setItem('allcomponent', allComponent);\r\n return {\r\n type: actionTypes.GET_ALL_COMPONENT,\r\n allComponent: allComponent\r\n };\r\n};\r\n\r\nexport const selectedEnvironment = (selectedEnvironment) => {\r\n localStorage.setItem('selectedEnvironment', JSON.stringify(selectedEnvironment));\r\n return {\r\n type: actionTypes.SELECTED_ENVIRONMENT,\r\n selectedEnvironment: selectedEnvironment\r\n };\r\n};\r\n\r\nexport const selectedConfiguration = (selectedConfiguration) => {\r\n localStorage.setItem('selectedConfiguration', selectedConfiguration)\r\n return {\r\n type: actionTypes.SELECTED_CONFIGURATION,\r\n selectedConfiguration: selectedConfiguration\r\n };\r\n}\r\n\r\nexport const selectedConfigurationForBulkCopy = (selectedConfigurationForBulkCopy) => {\r\n localStorage.setItem('selectedConfigurationForBulkCopy', selectedConfigurationForBulkCopy)\r\n return {\r\n type: actionTypes.SELECTED_CONFIGURATION_FOR_BULKCOPY,\r\n selectedConfigurationForBulkCopy: selectedConfigurationForBulkCopy\r\n };\r\n}\r\n\r\n//AttributeList\r\nexport const attributeList = (attributeList) => {\r\n localStorage.setItem('attributeList', attributeList)\r\n return {\r\n type: actionTypes.ATTRIBUTE_LIST,\r\n attributeList: attributeList\r\n };\r\n}\r\n\r\nexport const configFail = (configFail) => {\r\n localStorage.setItem('configFail', configFail)\r\n return {\r\n type: actionTypes.CONFIG_FAIL,\r\n configFail: configFail\r\n };\r\n}\r\n\r\nexport const configuration = () => {\r\n return dispatch => {\r\n // console.log(\"api call\")\r\n const selectedComponent = JSON.parse(localStorage.getItem('selectedComponent'));\r\n const selectedEnvironment = JSON.parse(localStorage.getItem('selectedEnvironment'));\r\n // const selectedEnvironment = localStorage.getItem('selectedEnvironment');\r\n const environments = JSON.parse(localStorage.getItem('environments'));\r\n const userId = localStorage.getItem('userId');\r\n const token = localStorage.getItem('token');\r\n const isAdmin=localStorage.getItem('isAdmin');\r\n if (selectedEnvironment != null && selectedComponent != null) {\r\n let config = null;\r\n let url = \"configurationGet\"\r\n let postdata = { componentContextCode: selectedComponent.componentContextCode, environmentId: selectedEnvironment.tenantId, token: token, userId: userId }\r\n axios.post(url, postdata)\r\n .then(configResponse => {\r\n config = configResponse.data.response;\r\n // console.log(config);\r\n dispatch(selectedConfiguration(config));\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n dispatch(configFail(\"Network Error\"));\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if(err.response.status === 403) {\r\n console.log(err.response.data.responseMessage);\r\n // setState({ allApps: [] });\r\n // dispatch(authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n }\r\n }\r\n};\r\n\r\nexport const attributelist = () => {\r\n return dispatch => {\r\n \r\n const selectedComponent = JSON.parse(localStorage.getItem('selectedComponent'));\r\n const selectedEnvironment = JSON.parse(localStorage.getItem('selectedEnvironment'));\r\n const environments = JSON.parse(localStorage.getItem('environments'));\r\n const userId = localStorage.getItem('userId');\r\n const token = localStorage.getItem('token');\r\n const isAdmin=localStorage.getItem('isAdmin');\r\n if (selectedEnvironment != null && selectedComponent != null) {\r\n let config = null;\r\n let url = \"getContextList\"\r\n let postdata = {\r\n userId: userId,\r\n token: token,\r\n environmentId: selectedEnvironment.tenantId,\r\n }\r\n axios.post(url, postdata)\r\n .then(contextList => {\r\n let clist = contextList.data.response[0];\r\n dispatch(attributeList(clist.attribute));\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n // dispatch(configFail(\"Network Error\"));\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if(err.response.status === 403) {\r\n console.log(err.response.data.responseMessage);\r\n \r\n }\r\n }\r\n });\r\n }\r\n }\r\n};\r\n","import { useState } from 'react'\r\n\r\nexport const useInputChange = (inititalObject) => {\r\n const [input, setInput] = useState(inititalObject)\r\n\r\n const handleInputChange = (e) => {\r\n \r\n\r\n setInput({\r\n ...input,\r\n [e.currentTarget.name]: e.currentTarget.value\r\n })\r\n}\r\n \r\n \r\n const handleSwitchChange = (name) => {\r\n setInput({\r\n ...input,\r\n [name]: !input[name]\r\n });\r\n }\r\n return [input, handleInputChange, handleSwitchChange, setInput]\r\n}","import React, { useEffect } from 'react';\r\nimport axios from '../../../Helpers/Axiosbase'\r\nimport { Card, CardHeader, CardContent, Checkbox, TextField, Button, Switch, FormGroup, FormControlLabel, FormControl, CardActions } from '@material-ui/core';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport useReactRouter from 'use-react-router';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport { LinearProgress,Snackbar } from '@material-ui/core';\r\nimport { useInputChange } from '../../../Helpers/useInputChange'\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport * as actions from '../../../Store/Actions'\r\n\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nvar md5 = require('md5');\r\n\r\nfunction Alert(props) {\r\n return ;\r\n }\r\n// var ReverseMd5 = require('reverse-md5');\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n '& .MuiTextField-root': {\r\n margin: theme.spacing(1),\r\n width: 200,\r\n },\r\n },\r\n div: {\r\n float: 'left',\r\n overflow: 'hidden'\r\n }\r\n}));\r\n\r\nexport default function UserManage(props) {\r\n const [showProgress, setShowProgress] = React.useState(false);\r\n const [selectEnvironments, setSelectEnvironments] = React.useState([]);\r\n const [userEnvironments, setUserEnvironments] = React.useState([]);\r\n const [defaultEnvironment, setDefaultEnvironment] = React.useState([]);\r\n const [disabled, setDisabled] =React.useState(false);\r\n\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const dispatch = useDispatch();\r\n\r\n const { location, history } = useReactRouter();\r\n\r\n\r\n const [input, handleInputChange, handleSwitchChange, setInput] = useInputChange({\r\n username: \"\",\r\n password: \"\",\r\n isActive: true,\r\n isAdmin: false,\r\n environments:{ value :[]},\r\n defaultEnvironment: \"\"\r\n });\r\n const [errorMessage,setErrorMessage]=React.useState({\r\n open:false,\r\n errmsg:null,\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n };\r\n const onCancleClickHandler = () =>{\r\n history.push(\"/user\")\r\n }\r\n\r\n var onSubmitClickHandler = () => {\r\n setShowProgress(true);\r\n input.environments.value=userEnvironments.map((currentValue, index) => {\r\n return currentValue._id;\r\n })\r\n \r\n input.defaultEnvironment = defaultEnvironment._id ? defaultEnvironment._id : {};\r\n // input.password=md5(input.password);\r\n // console.log(input);\r\n let url = \"getAll\"\r\n url = input._id ? \"userUpdate\" : \"userCreate\";\r\n input.password=input._id?input.password:md5(input.password);\r\n // console.log(input);\r\n axios.post(url, { ...input, token: reduxAuth.token, userId: reduxAuth.userId })\r\n .then(response => {\r\n history.push('/user');\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n setErrorMessage({\r\n open:true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if (err.response.status === 403) {\r\n setShowProgress(false);\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n }\r\n\r\n var autoSelectChangeHandler = (event, value) => {\r\n if (event.currentTarget.id.includes(\"select-environment\")) {\r\n setUserEnvironments(value);\r\n }\r\n if (event.currentTarget.id.includes(\"default-environment\")) {\r\n setDefaultEnvironment(value);\r\n }\r\n }\r\n\r\n var getEnvironment = () => {\r\n let url = \"getAll\"\r\n let postdata = { objectName: \"environment\", token: reduxAuth.token, userId: reduxAuth.userId }\r\n axios.post(url, postdata)\r\n .then(response => {\r\n setSelectEnvironments(response.data.response);\r\n setShowProgress(false);\r\n if (location.state) {\r\n //Set Default Environment\r\n var defaultEnvironmentValue = response.data.response.filter((environment) => { return location.state.defaultEnvironment === environment._id })\r\n defaultEnvironmentValue = defaultEnvironmentValue.length > 0 ? defaultEnvironmentValue[0] : {};\r\n setDefaultEnvironment(defaultEnvironmentValue);\r\n\r\n //Set Selected Environments\r\n const selectedEvironmentValues = response.data.response.filter((environment) => {\r\n return location.state.environments.value.some((selectedEnvironment) => {\r\n return environment._id === selectedEnvironment;\r\n });\r\n });\r\n setUserEnvironments(selectedEvironmentValues);\r\n }\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n setErrorMessage({\r\n open:true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if (err.response.status === 403) {\r\n setShowProgress(false);\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n } else {\r\n setShowProgress(false);\r\n }\r\n }\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n setShowProgress(true);\r\n getEnvironment();\r\n // console.log(location.state);\r\n if (location.state) {\r\n setDisabled(true);\r\n setInput(location.state);\r\n }\r\n }, []);\r\n\r\n const classes = useStyles();\r\n\r\n const icon = ;\r\n const checkedIcon = ;\r\n return (\r\n\r\n
\r\n \r\n \r\n {errorMessage.errmsg!=null?errorMessage.errmsg:\" NetWork Error:Please Check Your Internet Connection\"}\r\n \r\n \r\n {showProgress ? : null}\r\n \r\n \r\n \r\n
\r\n
\r\n handleInputChange(event)} value={input.username} />\r\n handleInputChange(event)} value={input.password} disabled={disabled}/>\r\n
\r\n
\r\n handleSwitchChange('isAdmin')} color=\"primary\" />\r\n }\r\n label=\"Is Admin?\" />\r\n handleSwitchChange('isActive')} color=\"primary\" />\r\n }\r\n label=\"Is Active?\" />\r\n
\r\n
\r\n option.displayName}\r\n renderOption={(option, { selected }) => (\r\n \r\n \r\n {option.displayName}\r\n \r\n )}\r\n style={{ width: 250 }}\r\n renderInput={params => (\r\n \r\n )}\r\n value={userEnvironments}\r\n />\r\n option.displayName}\r\n renderOption={(option, { selected }) => (\r\n \r\n \r\n {option.displayName}\r\n \r\n )}\r\n renderInput={params => (\r\n \r\n )}\r\n value={defaultEnvironment}\r\n />\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useEffect } from 'react';\r\nimport axios from '../../../Helpers/Axiosbase'\r\nimport { Card, CardHeader, CardContent, TextField, Button, Switch, FormGroup, FormControlLabel,CardActions } from '@material-ui/core';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport useReactRouter from 'use-react-router';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { LinearProgress,Snackbar } from '@material-ui/core';\r\nimport { useInputChange } from '../../../Helpers/useInputChange'\r\nimport * as actions from '../../../Store/Actions'\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n }\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n '& > *': {\r\n margin: theme.spacing(2),\r\n width: 250,\r\n }\r\n }\r\n}));\r\n\r\nexport default function EnvironmentManage(props) {\r\n const [showProgress, setShowProgress] = React.useState(false);\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const dispatch = useDispatch();\r\n\r\n const { location, history } = useReactRouter();\r\n\r\n\r\n const [input, handleInputChange, handleSwitchChange, setInput] = useInputChange({\r\n displayName: \"\",\r\n tenantId: \"\",\r\n webURL: \"\",\r\n rsAPIUser: \"\",\r\n authClientId: \"\",\r\n authClientSecret: \"\",\r\n isActive: true\r\n });\r\n const [errorMessage,setErrorMessage]=React.useState({\r\n open:false,\r\n errmsg:null,\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n };\r\n\r\n const onCancleClickHandler = () =>{\r\n history.push(\"/environment\")\r\n }\r\n\r\n var onSubmitClickHandler = () => {\r\n // let url=input.webURL+input.tenantId+\"/api/entitymodelservice/get\";\r\n // console.log(url);\r\n // let body=\"{\\\"params\\\": {\\\"query\\\": {\\\"contexts\\\": [],\\\"filters\\\": {\\\"typesCriterion\\\": [\\\"user\\\"],\\\"nonContextual\\\": \\\"false\\\"}},\\\"fields\\\": {\\\"attributes\\\": [\\\"_ALL\\\"]},\\\"options\\\": {\\\"maxRecords\\\": 2000}}}\";\r\n // // let body={ \r\n // // \"params\": {\r\n // // \"query\": { \r\n // // \"filters\" : {\r\n // // \"typesCriterion\": [\r\n // // \"user\"\r\n // // ]\r\n // // }\r\n // // }\r\n // // }\r\n // // }\r\n // console.log(body);\r\n // axios.post(url,body,{\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // // 'Access-Control-Allow-Origin':'http://localhost:3000',\r\n // // 'Access-Control-Allow-Credentials':'true',\r\n // // 'Access-Control-Allow-Methods' : 'GET, POST, OPTIONS',\r\n // 'auth-client-id':input.authClientId,\r\n // 'auth-client-secret':input.authClientSecret,\r\n // 'x-rdp-tenantId':input.tenantId,\r\n // 'x-rdp-userId':input.userId,\r\n // 'x-rdp-clientId':\"rdpclient\",\r\n // 'x-rdp-userRoles': \"[\\\"systemadmin\\\"]\",\r\n // 'x-rdp-version': \"8.1\"\r\n // }\r\n // })\r\n // .then(response => {\r\n // console.log(response);\r\n // // history.push('/environment');\r\n // })\r\n // .catch(err => {\r\n // console.log(err);\r\n // if (err.response.status === 403) {\r\n // // setShowProgress(false);\r\n // dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n // }\r\n // });\r\n setShowProgress(true);\r\n // console.log(input);\r\n let url = \"\"\r\n url = input._id ? \"environmentUpdate\" : \"environmentCreate\";\r\n axios.post(url, { ...input, token: reduxAuth.token, userId: reduxAuth.userId })\r\n .then(response => {\r\n history.push('/environment');\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n setErrorMessage({\r\n open:true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if (err.response.status === 403) {\r\n setShowProgress(false);\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n if (location.state) {\r\n setInput(location.state);\r\n }\r\n }, []);\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n {errorMessage.errmsg!=null?errorMessage.errmsg:\" NetWork Error:Please Check Your Internet Connection\"}\r\n \r\n \r\n {showProgress ? : null}\r\n \r\n \r\n \r\n
\r\n
\r\n handleInputChange(event)} value={input.displayName} />\r\n handleInputChange(event)} value={input.tenantId} />\r\n handleInputChange(event)} value={input.webURL} />\r\n handleInputChange(event)} value={input.rsAPIUser} />\r\n handleInputChange(event)} value={input.authClientId} />\r\n handleInputChange(event)} value={input.authClientSecret} />\r\n \r\n handleSwitchChange('isActive')} color=\"primary\" />\r\n }\r\n label=\"Is Active?\" />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport * as actions from '../../../Store/Actions'\r\nimport useReactRouter from 'use-react-router';\r\nimport MaterialTable from 'material-table';\r\nimport axios from '../../../Helpers/Axiosbase'\r\nimport { LinearProgress,Snackbar } from '@material-ui/core';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n }\r\n\r\nexport default function AppsList() {\r\n // Material Table Configuration\r\n const [columns] = React.useState([\r\n { title: \"Display Name\", field: \"displayName\" },\r\n { title: \"App Context Code\", field: \"appContextCode\" },\r\n { title: \"Display Sequence\", field: \"displaySequence\" },\r\n { title: \"Is Active?\", field: \"isActive\", type: \"boolean\" },\r\n { title: \"Created On\", field: \"createDate\", type: \"date\" },\r\n \r\n // { title: \"Display Sequence\", field: 1}\r\n ]);\r\n\r\n // Setting up States\r\n const [state, setState] = React.useState({\r\n showProgress: true,\r\n appsData: []\r\n });\r\n\r\n const [errorMessage,setErrorMessage]=React.useState({\r\n open:false,\r\n errmsg:null,\r\n });\r\n const [deleteInfoMsg,setDeleteInfoMsg] = React.useState({\r\n open:false,\r\n infoMsg:''\r\n })\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setDeleteInfoMsg({\r\n open:false,\r\n infoMsg:''\r\n })\r\n };\r\n\r\n const handleDeleteApp = (rowData) =>{\r\n let url = \"appDelete\"\r\n let postdata = { _id:rowData._id, token: reduxAuth.token, userId: reduxAuth.userId }\r\n // console.log(postdata);\r\n // console.log(rowData);\r\n axios.post(url, postdata)\r\n .then(response => {\r\n setDeleteInfoMsg({\r\n open:true,\r\n infoMsg:'App Deleted Successfully!!'\r\n })\r\n getAllApp();\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n setErrorMessage({\r\n open:true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n } \r\n\r\n\r\n //Hooks Setup\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const { history } = useReactRouter();\r\n const dispatch = useDispatch();\r\n\r\n const getAllApp = () =>{\r\n let url = \"getAll\"\r\n let postdata = { objectName: \"app\", token: reduxAuth.token, userId: reduxAuth.userId }\r\n axios.post(url, postdata)\r\n .then(response => {\r\n setState({ showProgress: false, appsData: response.data.response });\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n setErrorMessage({\r\n open:true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if (err.response.status === 403) {\r\n setState({ showProgress: false, appsData: [] });\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n getAllApp();\r\n }, []);\r\n\r\n //Render Method\r\n return (\r\n
\r\n \r\n \r\n {deleteInfoMsg.infoMsg}\r\n \r\n \r\n \r\n \r\n {errorMessage.errmsg!=null?errorMessage.errmsg:\" NetWork Error:Please Check Your Internet Connection\"}\r\n \r\n \r\n {state.showProgress ? : null}\r\n \r\n new Promise(resolve => {\r\n setTimeout(() => {\r\n resolve();\r\n handleDeleteApp(oldData);\r\n }, 600);\r\n }),\r\n }}\r\n actions={[\r\n {\r\n icon: 'edit',\r\n tooltip: 'Edit App',\r\n onClick: (event, rowData) => {\r\n history.push('/apps/manage', rowData);\r\n }\r\n },\r\n {\r\n icon: 'add',\r\n tooltip: 'Add App',\r\n isFreeAction: true,\r\n onClick: (event) => history.push(\"/apps/manage\")\r\n },\r\n ]}\r\n />\r\n
\r\n );\r\n}","import React, { useEffect } from 'react';\r\nimport axios from '../../../Helpers/Axiosbase'\r\nimport { Card, CardHeader, CardContent, TextField, Button, Switch, FormGroup, FormControlLabel,CardActions } from '@material-ui/core';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport useReactRouter from 'use-react-router';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { LinearProgress,Snackbar } from '@material-ui/core';\r\nimport { useInputChange } from '../../../Helpers/useInputChange'\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport * as actions from '../../../Store/Actions'\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n }\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n '& > *': {\r\n margin: theme.spacing(2),\r\n width: 250,\r\n }\r\n }\r\n}));\r\n\r\nexport default function AppsManage(props) {\r\n const [showProgress, setShowProgress] = React.useState(false);\r\n\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const dispatch = useDispatch();\r\n\r\n const { location, history } = useReactRouter();\r\n\r\n\r\n const [input, handleInputChange, handleSwitchChange, setInput] = useInputChange({\r\n appContextCode: \"\",\r\n displayName: \"\",\r\n isActive: true,\r\n displaySequence:\"\"\r\n });\r\n\r\n const onCancleClickHandler = () =>{\r\n history.push(\"/apps\")\r\n }\r\n const [errorMessage,setErrorMessage]=React.useState({\r\n open:false,\r\n errmsg:null,\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n };\r\n\r\n var onSubmitClickHandler = () => {\r\n setShowProgress(true);\r\n // console.log(input);\r\n let url = \"\"\r\n url = input._id ? \"appUpdate\" : \"appCreate\";\r\n axios.post(url, { ...input, token: reduxAuth.token, userId: reduxAuth.userId })\r\n .then(response => {\r\n history.push('/apps');\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n setErrorMessage({\r\n open:true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if (err.response.status === 403) {\r\n setShowProgress(false);\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n } else {\r\n setShowProgress(false);\r\n }\r\n }\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n // console.log(location.state);\r\n if (location.state) {\r\n setInput(location.state);\r\n }\r\n }, []);\r\n\r\n const classes = useStyles();\r\n\r\n const icon = ;\r\n const checkedIcon = ;\r\n return (\r\n\r\n
\r\n \r\n \r\n {errorMessage.errmsg!=null?errorMessage.errmsg:\" NetWork Error:Please Check Your Internet Connection\"}\r\n \r\n \r\n {showProgress ? : null}\r\n \r\n \r\n \r\n
\r\n
\r\n handleInputChange(event)} value={input.displayName} />\r\n handleInputChange(event)} value={input.appContextCode} />\r\n \r\n handleSwitchChange('isActive')} color=\"primary\" />\r\n }\r\n label=\"Is Active?\" />\r\n \r\n handleInputChange(event)} value={input.displaySequence}/>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useEffect } from 'react';\r\nimport axios from '../../../Helpers/Axiosbase'\r\nimport { Card, CardHeader, CardContent, Checkbox, TextField, Button, Switch, FormGroup, FormControlLabel,CardActions } from '@material-ui/core';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport useReactRouter from 'use-react-router';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport { LinearProgress,Snackbar } from '@material-ui/core';\r\nimport { useInputChange } from '../../../Helpers/useInputChange'\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport * as actions from '../../../Store/Actions'\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n }\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n '& > *': {\r\n margin: theme.spacing(2),\r\n width: 250,\r\n }\r\n }\r\n}));\r\n\r\nexport default function AppsManage(props) {\r\n const [showProgress, setShowProgress] = React.useState(false);\r\n const [listApps, setListApps] = React.useState([]);\r\n const [selectedApp, setSelectedApp] = React.useState([]);\r\n\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const dispatch = useDispatch();\r\n\r\n const { location, history } = useReactRouter();\r\n\r\n\r\n const [input, handleInputChange, handleSwitchChange, setInput] = useInputChange({\r\n appContextCode: \"\",\r\n displayName: \"\",\r\n isActive: true,\r\n appids:{value:[]}\r\n });\r\n\r\n const [errorMessage,setErrorMessage]=React.useState({\r\n open:false,\r\n errmsg:null,\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n };\r\n\r\n const onCancleClickHandler = () =>{\r\n history.push(\"/components\")\r\n }\r\n\r\n var onSubmitClickHandler = () => {\r\n setShowProgress(true);\r\n input.appids.value = selectedApp.map((currentValue, index) => {\r\n return currentValue._id;\r\n })\r\n // console.log(input);\r\n let url = input._id ? \"componentUpdate\" : \"componentCreate\";\r\n axios.post(url, { ...input, token: reduxAuth.token, userId: reduxAuth.userId })\r\n .then(response => {\r\n history.push('/components');\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n setErrorMessage({\r\n open:true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if (err.response.status === 403) {\r\n setShowProgress(false);\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n } else {\r\n setShowProgress(false);\r\n }\r\n }\r\n });\r\n }\r\n\r\n var getApps = () => {\r\n let url = \"getAll\"\r\n let postdata = { objectName: \"app\", token: reduxAuth.token, userId: reduxAuth.userId }\r\n axios.post(url, postdata)\r\n .then(response => {\r\n setListApps(response.data.response);\r\n setShowProgress(false);\r\n if (location.state) {\r\n // const selectedEvironmentValues = response.data.response.filter((environment) => {\r\n // return location.state.environments.value.some((selectedEnvironment) => {\r\n // return environment._id === selectedEnvironment;\r\n // });\r\n // });\r\n // const selectedAppValue = response.data.response.filter((app) => { \r\n // return location.state.appids.value === app._id })\r\n const selectedAppValue = response.data.response.filter((app) => { \r\n return location.state.appids.value.some((selectedApp) => {\r\n return app._id === selectedApp;\r\n });\r\n });\r\n // selectedAppValue = selectedAppValue[0];\r\n setSelectedApp(selectedAppValue);\r\n }\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n setErrorMessage({\r\n open:true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if (err.response.status === 403) {\r\n setShowProgress(false);\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n } else {\r\n setShowProgress(false);\r\n }\r\n }\r\n });\r\n }\r\n\r\n var autoSelectChangeHandler = (event, value) => {\r\n if (event.currentTarget.id.includes(\"select-apps\")) {\r\n setSelectedApp(value);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getApps();\r\n if (location.state) {\r\n setInput(location.state);\r\n }\r\n }, []);\r\n\r\n const classes = useStyles();\r\n\r\n const icon = ;\r\n const checkedIcon = ;\r\n return (\r\n\r\n
\r\n \r\n \r\n {errorMessage.errmsg!=null?errorMessage.errmsg:\" NetWork Error:Please Check Your Internet Connection\"}\r\n \r\n \r\n {showProgress ? : null}\r\n \r\n \r\n \r\n
\r\n
\r\n handleInputChange(event)} value={input.displayName} />\r\n handleInputChange(event)} value={input.componentContextCode} />\r\n \r\n handleSwitchChange('isActive')} color=\"primary\" />\r\n }\r\n label=\"Is Active?\" />\r\n \r\n option.displayName}\r\n renderOption={(option, { selected }) => (\r\n \r\n \r\n {option.displayName}\r\n \r\n )}\r\n style={{ width: 250 }}\r\n renderInput={params => (\r\n \r\n )}\r\n value={selectedApp}\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport * as actions from '../../../Store/Actions'\r\nimport useReactRouter from 'use-react-router';\r\nimport MaterialTable from 'material-table';\r\nimport axios from '../../../Helpers/Axiosbase'\r\nimport { LinearProgress ,Snackbar} from '@material-ui/core';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n }\r\n\r\nexport default function ComponentsList() {\r\n // Material Table Configuration\r\n const [columns] = React.useState([\r\n { title: \"Display Name\", field: \"displayName\" },\r\n { title: \"Component Context Code\", field: \"componentContextCode\" },\r\n { title: \"Is Active?\", field: \"isActive\", type: \"boolean\" },\r\n { title: \"Created On\", field: \"createDate\", type: \"date\" }\r\n ]);\r\n\r\n // Setting up States\r\n const [state, setState] = React.useState({\r\n showProgress: true,\r\n componentsData: []\r\n });\r\n\r\n //Hooks Setup\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const { history } = useReactRouter();\r\n const dispatch = useDispatch();\r\n\r\n const [errorMessage,setErrorMessage]=React.useState({\r\n open:false,\r\n errmsg:null,\r\n });\r\n const [deleteInfoMsg,setDeleteInfoMsg] = React.useState({\r\n open:false,\r\n infoMsg:''\r\n })\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setDeleteInfoMsg({\r\n open:false,\r\n infoMsg:''\r\n })\r\n };\r\n\r\n const handleDeleteComponent = (rowData) =>{\r\n let url = \"componentDelete\"\r\n let postdata = { _id:rowData._id, token: reduxAuth.token, userId: reduxAuth.userId }\r\n axios.post(url, postdata)\r\n .then(response => {\r\n setDeleteInfoMsg({\r\n open:true,\r\n infoMsg:'Component Deleted Successfully!!'\r\n })\r\n getAllComponent();\r\n // setState({ showProgress: false, userData: response.data.response });\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n setErrorMessage({\r\n open:true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if (err.response.status === 403) {\r\n // setState({ showProgress: false, userData: [] });\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n } \r\n\r\n const getAllComponent=()=>{\r\n let url = \"getAll\"\r\n let postdata = { objectName: \"component\", token: reduxAuth.token, userId: reduxAuth.userId }\r\n axios.post(url, postdata)\r\n .then(response => {\r\n setState({ showProgress: false, componentsData: response.data.response });\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n setErrorMessage({\r\n open:true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if (err.response.status === 403) {\r\n setState({ showProgress: false, componentsData: [] });\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n getAllComponent();\r\n }, []);\r\n\r\n //Render Method\r\n return (\r\n
\r\n \r\n \r\n {deleteInfoMsg.infoMsg}\r\n \r\n \r\n \r\n \r\n {errorMessage.errmsg!=null?errorMessage.errmsg:\" NetWork Error:Please Check Your Internet Connection\"}\r\n \r\n \r\n {state.showProgress ? : null}\r\n \r\n new Promise(resolve => {\r\n setTimeout(() => {\r\n resolve();\r\n handleDeleteComponent(oldData);\r\n }, 600);\r\n }),\r\n }}\r\n actions={[\r\n {\r\n icon: 'edit',\r\n tooltip: 'Edit Component',\r\n onClick: (event, rowData) => {\r\n history.push('/components/manage', rowData);\r\n }\r\n },\r\n {\r\n icon: 'add',\r\n tooltip: 'Add Component',\r\n isFreeAction: true,\r\n onClick: (event) => history.push(\"/components/manage\")\r\n },\r\n ]}\r\n />\r\n
\r\n );\r\n}","import { MsalAuthProvider, LoginType } from \"react-aad-msal\";\r\nimport { Logger, LogLevel } from \"msal\";\r\n\r\nexport const authProvider = new MsalAuthProvider(\r\n {\r\n auth: {\r\n authority: \"https://login.microsoftonline.com/common\",\r\n clientId : \"eb31d325-384e-4d89-bd2b-1f00f9aecf07\",\r\n clientSecret : \"8.njVcd?dGuDKSsn@nP722Wu@Yk=_aVx\",\r\n postLogoutRedirectUri: 'https://pact.riversand.com', \r\n redirectUri:'https://pact-uiconfigurator.riversand.com',\r\n // postLogoutRedirectUri: 'https://localhost:3000',\r\n // redirectUri:'http://localhost:3000',\r\n validateAuthority: true,\r\n \r\n // After being redirected to the \"redirectUri\" page, should user\r\n // be redirected back to the Url where their login originated from?\r\n navigateToLoginRequestUrl: false\r\n },\r\n // Enable logging of MSAL events for easier troubleshooting.\r\n // This should be disabled in production builds.\r\n system: {\r\n logger: new Logger(\r\n (logLevel, message, containsPii) => {\r\n console.log(\"[MSAL]\", message);\r\n },\r\n {\r\n level: LogLevel.Verbose,\r\n piiLoggingEnabled: false\r\n }\r\n )\r\n },\r\n cache: {\r\n cacheLocation: \"sessionStorage\",\r\n storeAuthStateInCookie: true\r\n }\r\n },\r\n {\r\n scopes: [\"openid\"]\r\n },\r\n {\r\n loginType: LoginType.Redirect,\r\n // When a token is refreshed it will be done by loading a page in an iframe.\r\n // Rather than reloading the same page, we can point to an empty html file which will prevent\r\n // site resources from being loaded twice.\r\n tokenRefreshUri: window.location.origin + \"/auth.html\"\r\n }\r\n );","import React from 'react';\r\nimport { makeStyles} from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux'\r\nimport { Drawer, List } from '@material-ui/core';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport PeopleAltIcon from '@material-ui/icons/PeopleAlt';\r\nimport ExplicitIcon from '@material-ui/icons/Explicit';\r\nimport ViewCompactIcon from '@material-ui/icons/ViewCompact';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport AppsIcon from '@material-ui/icons/Apps';\r\nimport PropTypes from 'prop-types';\r\n// import Logo from '../../Assets/Images/logo.png';\r\nimport Logo from '../../Assets/Images/newlogo.png';\r\nimport RSLogo from '../../Assets/Images/rslogo.png';\r\nimport Button from '@material-ui/core/Button';\r\nimport * as actions from '../../Store/Actions';\r\nimport useReactRouter from 'use-react-router';\r\nimport { authProvider } from '../../authProvider';\r\n\r\nconst drawerWidth = 240;\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'flex',\r\n },\r\n drawer: {\r\n [theme.breakpoints.up('sm')]: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n },\r\n appBar: {\r\n [theme.breakpoints.up('sm')]: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n marginLeft: drawerWidth,\r\n },\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'none',\r\n },\r\n },\r\n menuButton1: {\r\n marginRight: 0\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n drawerPaper: {\r\n width: drawerWidth,\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3),\r\n },\r\n typ: {\r\n flexGrow: 1,\r\n },\r\n icon:{\r\n color:'black'\r\n },\r\n link:{\r\n textDecoration:'none',\r\n color:'inherit'\r\n }\r\n\r\n}));\r\nexport default function Admin() {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const { history } = useReactRouter();\r\n\r\n const logoutHandler = () =>{\r\n dispatch(actions.authLogout())\r\n authProvider.logout();\r\n // history.push(\"/Login\");\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Admin Portal\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n );\r\n}\r\nAdmin.propTypes = {\r\n container: PropTypes.instanceOf(typeof Element === 'undefined' ? Object : Element),\r\n};\r\n","import React from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport UserList from './User/UserList';\r\nimport UserManage from './User/UserManage';\r\nimport EnvironmentList from './Environment/EnvironmentList';\r\nimport EnvironmentManage from './Environment/EnvironmentManage';\r\nimport AppsList from './Apps/AppsList';\r\nimport AppsManage from './Apps/AppsManage';\r\nimport ComponentsManage from './Components/ComponentsManage';\r\nimport ComponentsList from './Components/ComponentsList';\r\nimport { Alert, AlertTitle } from '@material-ui/lab';\r\nimport Button from '@material-ui/core/Button';\r\nimport Sidebar from './Sidebar'\r\nimport * as actions from '../../Store/Actions';\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'flex',\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(1),\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n}));\r\n\r\nexport default function AdminLayout() {\r\n const classes = useStyles();\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const dispatch = useDispatch();\r\n let sessionAlert = null;\r\n if (reduxAuth.isSessionValid === false) {\r\n sessionAlert = dispatch(actions.authLogout())}>\r\n LOGOUT\r\n }>\r\n Error\r\n For security reasons, Your session has expired. Please save your work and re-login to continue.\r\n ;\r\n }\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {sessionAlert}\r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n
\r\n
\r\n );\r\n}","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport useReactRouter from 'use-react-router';\r\nimport { fade, makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport { AppBar, Toolbar, Dialog, Chip, Divider, Snackbar, Typography, IconButton, MenuItem, TextField, ListItemIcon, ListItemText, Button, ClickAwayListener, Paper, MenuList, Popover, Stepper, Step, StepLabel, StepConnector } from '@material-ui/core';\r\nimport SyncIcon from '@material-ui/icons/Sync';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport AddCircleIcon from '@material-ui/icons/AddCircle';\r\nimport { green } from '@material-ui/core/colors';\r\nimport Logo from '../../Assets/Images/newlogo.png';\r\nimport RSLogo from '../../Assets/Images/rslogo.png';\r\nimport * as actions from '../../Store/Actions';\r\nimport axios from '../../Helpers/Axiosbase';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Alert, AlertTitle } from '@material-ui/lab';\r\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\r\nimport PublishIcon from '@material-ui/icons/Publish';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport MuiDialogContent from '@material-ui/core/DialogContent';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport MaterialTable from 'material-table';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport https from 'https';\r\nimport { authProvider } from '../../authProvider';\r\n\r\n\r\n\r\nconst QontoConnector = withStyles({\r\n alternativeLabel: {\r\n top: 10,\r\n left: 'calc(-50% + 16px)',\r\n right: 'calc(50% + 16px)',\r\n },\r\n active: {\r\n '& $line': {\r\n borderColor: '#784af4',\r\n },\r\n },\r\n completed: {\r\n '& $line': {\r\n borderColor: '#784af4',\r\n },\r\n },\r\n line: {\r\n borderColor: '#eaeaf0',\r\n borderTopWidth: 3,\r\n borderRadius: 1,\r\n },\r\n})(StepConnector);\r\n\r\nconst useQontoStepIconStyles = makeStyles({\r\n root: {\r\n color: '#eaeaf0',\r\n display: 'flex',\r\n height: 22,\r\n alignItems: 'center',\r\n },\r\n active: {\r\n color: '#784af4',\r\n },\r\n circle: {\r\n width: 8,\r\n height: 8,\r\n borderRadius: '50%',\r\n backgroundColor: 'currentColor',\r\n },\r\n completed: {\r\n color: '#784af4',\r\n zIndex: 1,\r\n fontSize: 18,\r\n },\r\n});\r\n\r\nfunction getBulkCopySteps() {\r\n return ['Review Selected Configuration', 'Select Target Environment'];\r\n}\r\n\r\nfunction getBulkPublishSteps() {\r\n return ['Review Selected Configuration', 'Confirm Publish Configuration'];\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: 'none',\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'block',\r\n },\r\n margin: theme.spacing(1),\r\n },\r\n search: {\r\n width: '100% !important',\r\n marginLeft: '0 !important',\r\n float: 'right',\r\n textAlign: 'right',\r\n fontWeight: 'bold',\r\n\r\n position: 'relative',\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: fade(theme.palette.common.white, 0.15),\r\n '&:hover': {\r\n backgroundColor: fade(theme.palette.common.white, 0.25),\r\n },\r\n marginRight: theme.spacing(2),\r\n\r\n [theme.breakpoints.up('sm')]: {\r\n marginLeft: theme.spacing(60),\r\n width: 'auto',\r\n },\r\n },\r\n searchIcon: {\r\n width: theme.spacing(7),\r\n height: '100%',\r\n position: 'absolute',\r\n pointerEvents: 'none',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n inputRoot: {\r\n color: 'inherit',\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 7),\r\n transition: theme.transitions.create('width'),\r\n width: '100%',\r\n [theme.breakpoints.up('md')]: {\r\n width: 200,\r\n },\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n //Menu\r\n paper: {\r\n marginRight: theme.spacing(2),\r\n },\r\n loader: {\r\n position: 'absolute',\r\n left: '40%',\r\n top: '250px',\r\n }\r\n },\r\n listitemicon: {\r\n minWidth: '35px',\r\n color: 'black'\r\n },\r\n listitem: {\r\n paddingLeft: '8px',\r\n paddingLeft: '8px',\r\n fontSize: '0.900rem'\r\n },\r\n //Action Menu\r\n loader: {\r\n position: 'absolute',\r\n left: '40%',\r\n },\r\n typography: {\r\n padding: theme.spacing(2),\r\n },\r\n\r\n //Stepper\r\n div: {\r\n marginRight: '15px',\r\n float: 'right',\r\n },\r\n\r\n button: {\r\n marginRight: theme.spacing(1),\r\n },\r\n\r\n}));\r\n\r\n//Dialog\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose, ...other } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n },\r\n}))(MuiDialogContent);\r\n\r\n//End Dialog\r\n\r\nexport default function Header() {\r\n const classes = useStyles();\r\n const { history } = useReactRouter();\r\n const [open, setOpen] = React.useState(false);\r\n const [disabled, setDisabled] = React.useState(false);\r\n const [openSyncAlert, setOpenSyncAlert] = React.useState(false);\r\n const [openSyncProcessAlert, setOpenSyncProcessAlert] = React.useState(false);\r\n const prevOpen = React.useRef(open);\r\n const anchorRef = React.useRef(null);\r\n\r\n const [steps, setSteps] = React.useState([]);\r\n\r\n const [selectedMenuItem, setselectedMenuItem] = React.useState(\"\");\r\n\r\n const [selectedIndex, setSelectedIndex] = React.useState(0);\r\n\r\n const [state, setState] = React.useState({\r\n environments: [],\r\n showLoader: false,\r\n });\r\n\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const appcomponent = useSelector((state) => state.appcomponent)\r\n const account = authProvider.getAccountInfo();\r\n const avtar = `https://ui-avatars.com/api/?background=0D8ABC&color=fff&name=` + account.account.name;\r\n\r\n //Dialog Table\r\n const [columns] = React.useState([\r\n { title: 'Domain', field: 'domain' },\r\n { title: 'Relationship', field: 'relationship' },\r\n { title: 'EntityType', field: 'entityType' },\r\n { title: 'Role', field: 'role' },\r\n {\r\n title: 'Status', field: 'isPublished', render: rowData => {\r\n if (rowData.isPublished === false) {\r\n return \r\n }\r\n else {\r\n return \r\n }\r\n }\r\n },\r\n ]);\r\n //End Dialog Table\r\n\r\n //Dispatch\r\n const dispatch = useDispatch();\r\n\r\n React.useEffect(() => {\r\n if (prevOpen.current === true && open === false) {\r\n anchorRef.current.focus();\r\n }\r\n\r\n prevOpen.current = open;\r\n }, [open]);\r\n\r\n //Menu \r\n const handleToggle = () => {\r\n setOpen(prevOpen => !prevOpen);\r\n };\r\n\r\n const handleClose = event => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n return;\r\n }\r\n setOpen(false);\r\n };\r\n\r\n function handleListKeyDown(event) {\r\n if (event.key === 'Tab') {\r\n event.preventDefault();\r\n setOpen(false);\r\n }\r\n }\r\n //End Menu\r\n\r\n //Action Menu\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handleActionClick = event => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleActionClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const openAcion = Boolean(anchorEl);\r\n const id = openAcion ? 'simple-popover' : undefined;\r\n //End Action Menu\r\n\r\n //Dialog\r\n const [openDialog, setOpenDialog] = React.useState(false);\r\n\r\n const handleDialogClickOpen = () => {\r\n setOpenDialog(true);\r\n };\r\n const handleDialogClose = () => {\r\n setActiveStep(0);\r\n setOpenDialog(false);\r\n };\r\n\r\n //End Dialog\r\n\r\n //Stepper\r\n const [activeStep, setActiveStep] = React.useState(0);\r\n\r\n const handleNext = (event) => {\r\n if (event === 'Publish') {\r\n\r\n let configlist = null;\r\n if (appcomponent.selectedConfigurationForBulkCopy.length === 0) {\r\n configlist = appcomponent.selectedConfiguration\r\n console.log(\"All\", configlist)\r\n }\r\n else {\r\n configlist = appcomponent.selectedConfigurationForBulkCopy\r\n console.log(\"Selected\", configlist)\r\n }\r\n\r\n //API Bulkpublish\r\n let url = \"bulkPublishConfiguration\"\r\n let postdata = { token: reduxAuth.token, userId: reduxAuth.userId, environmentId: appcomponent.selectedEnvironment.tenantId, configList: configlist }\r\n console.log(postdata);\r\n axios.post(url, postdata)\r\n .then(response => {\r\n dispatch(actions.configuration());\r\n dispatch(actions.selectedConfigurationForBulkCopy([]))\r\n history.push(\"/Config\")\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n if (typeof err.response != \"object\") {\r\n console.log(err);\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n handleDialogClose();\r\n dispatch(actions.configuration());\r\n history.push(\"/Config\")\r\n\r\n }\r\n else {\r\n setActiveStep(prevActiveStep => prevActiveStep + 1);\r\n }\r\n }\r\n\r\n const handleBack = () => {\r\n setActiveStep(prevActiveStep => prevActiveStep - 1);\r\n };\r\n\r\n //End stepper\r\n\r\n //Select Target Environment\r\n var autoSelectChangeHandler = (event, value) => {\r\n if (event.currentTarget.id.includes(\"select-environment\")) {\r\n // setUserEnvironments(value);\r\n // console.log(value);\r\n }\r\n }\r\n\r\n var handleOnSyncClick = () => {\r\n setOpenSyncAlert(true);\r\n setDisabled(true);\r\n handleActionClose();\r\n }\r\n\r\n var handleNoAction = () => {\r\n setOpenSyncAlert(false);\r\n setDisabled(false);\r\n }\r\n\r\n var handleYesAction = () => {\r\n let url = \"syncConfigurations\"\r\n const httsAgent = new https.Agent({ rejectUnauthorized: false });\r\n setOpenSyncProcessAlert(true);\r\n let postdata = { _id: appcomponent.selectedEnvironment.tenantId, isSync: \"0\", token: reduxAuth.token, userId: reduxAuth.userId }\r\n // console.log(postdata);\r\n axios.post(url, postdata, { httpsAgent: httsAgent })\r\n .then(response => {\r\n setOpenSyncAlert(false);\r\n dispatch(actions.selectedEnvironment({ ...appcomponent.selectedEnvironment, isSync: 0 }));\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n });\r\n setOpenSyncAlert(false);\r\n }\r\n\r\n // let steps=null;\r\n const handleActionItemClick = (event) => {\r\n if (event === 'bulkcopy') {\r\n setSteps(getBulkCopySteps())\r\n setselectedMenuItem(\"bulkcopy\")\r\n }\r\n if (event === 'bulkpublish') {\r\n setSteps(getBulkPublishSteps())\r\n setselectedMenuItem(\"bulkpublish\")\r\n }\r\n handleActionClose();\r\n handleDialogClickOpen();\r\n }\r\n\r\n const authLogoutClick = () => {\r\n dispatch(actions.authLogout());\r\n authProvider.logout();\r\n }\r\n\r\n useEffect(() => {\r\n let url = \"getByIds\"\r\n let postdata = { objectName: \"environment\", token: reduxAuth.token, userId: reduxAuth.userId, ids: [reduxAuth.defaultEnvironment] }\r\n axios.post(url, postdata)\r\n .then(environmentResponse => {\r\n\r\n dispatch(actions.selectedEnvironment(environmentResponse.data.response[0]))\r\n environmentResponse.data.response.map((data, index) => {\r\n reduxAuth.defaultEnvironment = data.tenantId\r\n });\r\n setState({ environments: environmentResponse.data.response, showLoader: false });\r\n }).catch(err => {\r\n if (typeof err.response != \"object\") {\r\n console.log(err);\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n // console.log(err.response.data.responseMessage);\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n }, []);\r\n\r\n const handleMenuItem = (data, index) => {\r\n setSelectedIndex(index);\r\n dispatch(actions.selectedEnvironment(data))\r\n dispatch(actions.selectedApp(null))\r\n handleToggle();\r\n };\r\n\r\n return (\r\n
\r\n {openSyncAlert ?\r\n \r\n \r\n \r\n \r\n
}>\r\n Sync Environment\r\n Sync Configurations will Remove all the unpublished configurations stored in the UIConfigurator. Are you sure you wish to proceed?\r\n \r\n : null}\r\n \r\n \r\n \"Riversand\"  \r\n {/* \"Dataio\" */}\r\n {/* //Menu */}\r\n
\r\n {state.showLoader ? : null}\r\n }\r\n // classes={{\r\n // root: classes.inputRoot\r\n // }}\r\n >\r\n {appcomponent.selectedEnvironment != null ? appcomponent.selectedEnvironment.displayName : \"Environment\"}\r\n \r\n \r\n \r\n \r\n {state.environments.map((data, index) => {\r\n return (\r\n handleMenuItem(data, index)} className={classes.listitem}>\r\n \r\n {selectedIndex === index ? : }\r\n \r\n {data.displayName}\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n
\r\n {/* //End Menu */}\r\n
\r\n
\r\n\r\n {/* Action Menu */}\r\n \r\n \r\n \r\n handleOnSyncClick()} className={classes.listitem}>Sync Environment\r\n {/* handleActionItemClick(\"bulkcopy\")} className={classes.listitem}>Bulk Copy */}\r\n handleActionItemClick(\"bulkpublish\")} className={classes.listitem}>Bulk Publish\r\n \r\n \r\n {/* End Action Menu */}\r\n  \r\n \r\n  \r\n\r\n \r\n
\r\n \r\n \r\n {appcomponent.selectedEnvironment != null && appcomponent.selectedEnvironment.isSync.toString() === \"0\" ? Configuration Sync is in Progress,Please refresh after some time!! : null}\r\n\r\n {/* //Dialog */}\r\n
\r\n \r\n \r\n\r\n }>\r\n {steps.map(label => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n
\r\n {activeStep != 0 ?\r\n : null\r\n }\r\n handleNext(activeStep === steps.length - 1 ? 'Publish' : 'Next')}\r\n className={classes.button}>\r\n {activeStep === steps.length - 1 ? 'Publish' : 'Next'}\r\n \r\n {/* {activeStep === 0 ?\r\n : null\r\n } */}\r\n
\r\n
\r\n \r\n {activeStep === 0 && (appcomponent.selectedConfigurationForBulkCopy.length > 0) ?\r\n 0 ? appcomponent.selectedConfigurationForBulkCopy : []}\r\n options={{\r\n search: false,\r\n toolbar: false\r\n }} /> : null}\r\n {activeStep === 0 && (appcomponent.selectedConfigurationForBulkCopy.length <= 0) ?\r\n
\r\n \r\n {selectedMenuItem === 'bulkcopy' ? \"You are goining to copy all Config\" : \"You are goining to publish all Configurations\"}\r\n
\r\n : null}\r\n {activeStep != 0 && selectedMenuItem === 'bulkcopy' ?\r\n
\r\n option.displayName}\r\n style={{ width: 250 }}\r\n renderInput={params => (\r\n \r\n )} />\r\n
: null}\r\n {activeStep != 0 && selectedMenuItem === 'bulkpublish' ?\r\n
\r\n \r\n Are You Sure??\r\n
: null}\r\n \r\n
\r\n
\r\n
\r\n {/* //End Dialog */}\r\n
\r\n );\r\n}\r\n\r\n\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { ListItem, ListItemIcon, ListItemText, Divider, List, ListSubheader,Snackbar } from '@material-ui/core';\r\nimport { green } from '@material-ui/core/colors';\r\nimport AppsIcon from '@material-ui/icons/Apps';\r\nimport CheckCircleSharpIcon from '@material-ui/icons/CheckCircleSharp';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport axios from '../../Helpers/Axiosbase'\r\nimport * as actions from '../../Store/Actions'\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({ \r\n header: {\r\n background: 'linear-gradient(45deg,#3f51b5 90%,#3f51b5 10%)',\r\n color: 'white',\r\n fontSize: 18\r\n },\r\n loader: {\r\n position: 'absolute',\r\n left: '40%',\r\n top: '250px',\r\n },\r\n listitem: {\r\n paddingTop: '3px',\r\n paddingBottom: '3px',\r\n paddingLeft: '8px',\r\n // border: '1px solid rgba(0,0,0,.125)',\r\n // backgroundColor:'#f8f9fa!important',\r\n \r\n },\r\n listitemicon: {\r\n minWidth: '35px'\r\n },\r\n listItemText: {\r\n fontSize: '15px',\r\n fontFamily: 'Open Sans, sans-serif',\r\n },\r\n svgIcon: {\r\n fontSize: '1.3rem',\r\n },\r\n\r\n}));\r\n\r\nexport default function AppSelector() {\r\n\r\n const classes = useStyles();\r\n const [state, setState] = React.useState({\r\n showLoader: true,\r\n allApps: [],\r\n allComponents: []\r\n });\r\n const [selectedIndex, setSelectedIndex] = React.useState(0);\r\n\r\n \r\n\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const appcomponent = useSelector((state) => state.appcomponent)\r\n const dispatch = useDispatch();\r\n\r\n const urladd = window.location.href;\r\n\r\n const [errorMessage,setErrorMessage]=React.useState({\r\n open:false,\r\n errmsg:null,\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n // setOpenAlert({\r\n // open: false,\r\n // btn: ''\r\n // });\r\n };\r\n\r\n\r\n const handleListItemClick = (data, index) => {\r\n setSelectedIndex(index);\r\n dispatch(actions.selectedApp(data))\r\n };\r\n\r\n if (appcomponent.selectedApp === null) {\r\n dispatch(actions.selectedApp(state.allApps[0]));\r\n setSelectedIndex(0);\r\n }\r\n\r\n var getAppsAndComponents = () => {\r\n \r\n let url = \"getAll\"\r\n let postdata = { objectName: \"app\", token: reduxAuth.token, userId: reduxAuth.userId }\r\n axios.post(url, postdata)\r\n .then(appsResponse => {\r\n let allapps=appsResponse.data.response.map((data,index)=>{\r\n data.displaySequence=index+1\r\n return data\r\n })\r\n let postdata = { objectName: \"component\", token: reduxAuth.token, userId: reduxAuth.userId }\r\n axios.post(url, postdata)\r\n .then(componentResponse => {\r\n if(appcomponent.allComponent==null || appcomponent.allComponent==undefined )\r\n {\r\n dispatch(actions.allComponent(componentResponse.data.response));\r\n }\r\n \r\n if(appcomponent.selectedApp === null || appcomponent.selectedApp===undefined){\r\n dispatch(actions.selectedApp(appsResponse.data.response[0]));\r\n setSelectedIndex(0);\r\n }\r\n else{\r\n setSelectedIndex(appcomponent.selectedApp.displaySequence-1)\r\n }\r\n \r\n setState({ showLoader: false, allApps: allapps });\r\n })\r\n .catch(\r\n err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n setErrorMessage({\r\n open:true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if(err.response.status === 403) {\r\n // console.log(err.response.data.responseMessage);\r\n setErrorMessage({\r\n open:true,\r\n errmsg:err.response.data.responseMessage\r\n })\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n }\r\n )\r\n })\r\n .catch(err => {\r\n if(typeof err.response!=\"object\")\r\n {\r\n setErrorMessage({\r\n open:true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else \r\n {\r\n if(err.response.status === 403) {\r\n console.log(err.response.data.responseMessage);\r\n setErrorMessage({\r\n open:true,\r\n errmsg:err.response.data.responseMessage\r\n })\r\n setState({ allApps: [] });\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n useEffect(() => {\r\n \r\n getAppsAndComponents();\r\n \r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n {errorMessage.errmsg!=null?errorMessage.errmsg:\" NetWork Error:Please Check Your Internet Connection\"}\r\n \r\n \r\n \r\n \r\n Apps\r\n \r\n }>\r\n \r\n \r\n \r\n {state.showLoader ? : null}\r\n {state.allApps.map((data, index) => {\r\n return (\r\n handleListItemClick(data, index)} selected={selectedIndex === index} disabled={urladd.includes(\"ManageConfig\") || urladd.includes(\"AddConfiguration\") || (appcomponent.selectedEnvironment != null && appcomponent.selectedEnvironment.isSync.toString() === \"0\")} className={classes.listitem}>\r\n \r\n {selectedIndex === index ? : }\r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { List, ListItem, ListSubheader, ListItemIcon, ListItemText, Divider,Snackbar } from '@material-ui/core';\r\nimport * as actions from '../../Store/Actions'\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport { green } from '@material-ui/core/colors';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport axios from '../../Helpers/Axiosbase'\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n }\r\n\r\n// import * as actions from '../../Store/Actions'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%',\r\n backgroundColor: theme.palette.background.paper,\r\n radius: '5px',\r\n },\r\n header: {\r\n background: 'linear-gradient(45deg,#3883fa 90%,#3883fa 10%)',\r\n color: 'white',\r\n fontSize: 18\r\n },\r\n loader: {\r\n position: 'absolute',\r\n left: '40%',\r\n top: '250px',\r\n },\r\n listitem: {\r\n paddingTop: '3px',\r\n paddingBottom: '3px',\r\n paddingLeft: '8px',\r\n // border: '1px solid rgba(0,0,0,.125)',\r\n // backgroundColor:'#f8f9fa!important',\r\n },\r\n listitemicon: {\r\n size: 3,\r\n minWidth: '35px'\r\n },\r\n listItemText: {\r\n fontSize: '15px',\r\n fontFamily: 'Open Sans, sans-serif',\r\n }\r\n\r\n\r\n}));\r\n\r\nexport default function Componentselector() {\r\n const classes = useStyles();\r\n const appcomponent = useSelector((state) => state.appcomponent)\r\n const [selectedIndex, setSelectedIndex] = React.useState(appcomponent.selectedComponent!==null && appcomponent.selectedComponent!==undefined?appcomponent.selectedComponent.displaySequence-1:0);\r\n\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const dispatch = useDispatch();\r\n const urladd = window.location.href;\r\n let showLoader = true;\r\n\r\n const [errorMessage,setErrorMessage]=React.useState({\r\n open:false,\r\n errmsg:null,\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n };\r\n\r\n\r\n const handleListItemClick = (data, index) => {\r\n setSelectedIndex(index);\r\n dispatch(actions.selectedComponent(data))\r\n dispatch(actions.configuration());\r\n };\r\n let component = null;\r\n\r\n if (appcomponent.allComponent != null && appcomponent.selectedApp != null) {\r\n let index=0\r\n let fdata=[];\r\n let filtercomponent = appcomponent.allComponent.filter((data) => {\r\n \r\n return(data.appids.value.indexOf(appcomponent.selectedApp._id) > -1)\r\n \r\n });\r\n\r\n filtercomponent=filtercomponent.map((data,index)=>{\r\n data.displaySequence=index+1\r\n return data\r\n })\r\n\r\n // console.log(\"filtercomponent\",filtercomponent)\r\n\r\n if (appcomponent.selectedComponent == null && filtercomponent.length > 0) {\r\n dispatch(actions.selectedComponent(filtercomponent[0]))\r\n dispatch(actions.configuration());\r\n setSelectedIndex(0);\r\n dispatch(actions.attributelist());\r\n }\r\n component = filtercomponent.map((data, index) => {\r\n return ( handleListItemClick(data, index)} selected={selectedIndex === index} disabled={urladd.includes(\"ManageConfig\") || urladd.includes(\"AddConfiguration\") || (appcomponent.selectedEnvironment != null && appcomponent.selectedEnvironment.isSync.toString() === \"0\")} className={classes.listitem}>\r\n \r\n {selectedIndex === index ? : }\r\n \r\n \r\n \r\n );\r\n });\r\n showLoader = false;\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n NetWork Error:Please Check Your Internet Connection\r\n {/* {errorMessage.errmsg!=null?errorMessage.errmsg:\" NetWork Error:Please Check Your Internet Connection\"} */}\r\n \r\n \r\n \r\n Components\r\n }>\r\n \r\n \r\n \r\n {showLoader === true ? : null}\r\n {component}\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport useReactRouter from 'use-react-router';\r\nimport MaterialTable from 'material-table';\r\nimport { createMuiTheme, ThemeProvider, makeStyles } from \"@material-ui/core/styles\";\r\nimport { Button, Chip, Snackbar } from '@material-ui/core';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport axios from '../../Helpers/Axiosbase';\r\nimport * as actions from '../../Store/Actions'\r\nimport { saveAs } from 'file-saver';\r\nvar fileDownload = require('react-file-download');\r\nvar JSZip = require('jszip')\r\nvar zip = new JSZip();\r\n\r\nconst useTheme = createMuiTheme({\r\n root: {\r\n overflowY: 'scroll',\r\n },\r\n overrides: {\r\n MuiTableCell: {\r\n root: {\r\n padding: 0\r\n },\r\n },\r\n MuiTypography: {\r\n h6: {\r\n fontSize: '18px'\r\n }\r\n }\r\n }\r\n});\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n btn: {\r\n fontSize: '0.600rem'\r\n },\r\n chipbtn: {\r\n fontSize: '0.600rem'\r\n\r\n }\r\n\r\n}))\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nexport default function Configuration() {\r\n const classes = useStyles();\r\n const { history } = useReactRouter();\r\n let showLoader = true;\r\n let allconfig = [];\r\n\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const appcomponent = useSelector((state) => state.appcomponent)\r\n const dispatch = useDispatch();\r\n\r\n // const [checked, setChecked] = React.useState(0);\r\n // const handleChange = (Index, rowData) => {\r\n // console.log(Index, rowData);\r\n // setChecked(Index);\r\n // };\r\n const [schema, setSchema] = React.useState({\r\n config: {\r\n metaInfo: {\r\n \"dataIndex\": \"config\",\r\n \"collectionName\": \"configObjects\",\r\n \"responseObjectName\": \"response\"\r\n },\r\n configObjects: [\r\n ]\r\n }\r\n })\r\n\r\n const [loader, setLoader] = React.useState(false);\r\n const [opendelalert, setopendelalert] = React.useState({\r\n open: false,\r\n msg: '',\r\n delbox: ''\r\n });\r\n const [openalert, setOpenAlert] = React.useState({\r\n open: false,\r\n btn: '',\r\n msg: '',\r\n err: ''\r\n });\r\n const [columns] = React.useState([\r\n {\r\n title: 'Status', field: 'isPublished', render: rowData => {\r\n if (rowData.isPublished === false) {\r\n return \r\n }\r\n else {\r\n return \r\n }\r\n }, editable: 'never'\r\n },\r\n\r\n { title: 'Domain', field: 'domain', editable: 'never' },\r\n { title: 'Relationship', field: 'relationship', editable: 'never' },\r\n { title: 'EntityType', field: 'entityType', editable: 'never' },\r\n { title: 'Role', field: 'role', editable: 'never' },\r\n\r\n // {\r\n // title: 'User', field: 'user'\r\n // },\r\n\r\n {\r\n title: 'Actions', field: 'isPublished', render: rowData => {\r\n if (rowData.isPublished === false) {\r\n return \r\n }\r\n else {\r\n return \r\n }\r\n }\r\n },\r\n\r\n ]);\r\n\r\n const deleteConfigHandler = (event, rowData) => {\r\n let cntpublish = 0;\r\n let delconfig = appcomponent.selectedConfigurationForBulkCopy;\r\n // console.log(\"Delete Config:\"+JSON.stringify(delconfig));\r\n delconfig.map(data => {\r\n if (data.isPublished === true) {\r\n cntpublish += cntpublish + 1\r\n }\r\n })\r\n if (cntpublish > 0) {\r\n setopendelalert({\r\n open: true,\r\n msg: \"You can only delete configurations are Unpublished Status. Please select Unpublished configurations only.\"\r\n })\r\n }\r\n else {\r\n setopendelalert({\r\n open: true,\r\n msg: \"Are you sure you want to delete the configurations?\",\r\n delbox: \"true\"\r\n })\r\n }\r\n // console.log(\"Delete Config:\" + cntpublish);\r\n }\r\n\r\n const handleDownLoadClick = () => {\r\n let sc = appcomponent.selectedConfigurationForBulkCopy;\r\n let listconfig = sc.map((scc) => {\r\n let jsondoc = scc.jsonDocument;\r\n schema.config.configObjects[0] = scc.jsonDocument;\r\n zip.file(scc.jsonDocument.name + \".json\", JSON.stringify(schema.config))\r\n });\r\n zip.generateAsync({ type: \"blob\" })\r\n .then(function (content) {\r\n // see FileSaver.js\r\n saveAs(content, appcomponent.selectedComponent.componentContextCode + \".zip\");\r\n });\r\n let remove = sc.map((scc) => {\r\n zip.remove(scc.jsonDocument.name + \".json\");\r\n });\r\n\r\n }\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpenAlert({\r\n open: false,\r\n btn: ''\r\n });\r\n };\r\n\r\n const handledelalertclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setopendelalert({\r\n open: false,\r\n msg: ''\r\n });\r\n };\r\n\r\n const handleNoAction = () => {\r\n setopendelalert({\r\n open: false,\r\n msg: '',\r\n delbox: ''\r\n })\r\n dispatch(actions.configuration());\r\n dispatch(actions.selectedConfigurationForBulkCopy([]))\r\n history.push(\"/Config\")\r\n }\r\n\r\n const handleYesAction = () => {\r\n\r\n let url = \"configurationDelete\"\r\n let postdata = { token: reduxAuth.token, userId: reduxAuth.userId, environmentId: appcomponent.selectedEnvironment.tenantId, configList: appcomponent.selectedConfigurationForBulkCopy }\r\n axios.post(url, postdata)\r\n .then(response => {\r\n console.log(\"response\", response)\r\n dispatch(actions.configuration());\r\n history.push(\"/Config\")\r\n })\r\n .catch(err => {\r\n console.log(\"err\", err);\r\n if (typeof err.response != \"object\") {\r\n setOpenAlert({\r\n open: true,\r\n btn: 'Delete',\r\n msg: 'Network Error:Please Check Your Internet Connection',\r\n err: 'error'\r\n });\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n setopendelalert({\r\n open: false,\r\n msg: '',\r\n delbox: ''\r\n })\r\n dispatch(actions.configuration());\r\n dispatch(actions.selectedConfigurationForBulkCopy([]))\r\n history.push(\"/Config\")\r\n }\r\n\r\n var publishClickHandler = (event, configData) => {\r\n event.stopPropagation();\r\n setLoader(true);\r\n let url = \"publishConfiguration\"\r\n let postdata = {\r\n _id: configData._id,\r\n jsonDocument: configData.jsonDocument,\r\n isPublished: true,\r\n componentContextCode: configData.componentContextCode,\r\n domain: configData.domain,\r\n entityType: configData.entityType,\r\n context1: configData.context1,\r\n context2: configData.context2,\r\n context3: configData.context3,\r\n relationship: configData.relationship,\r\n role: configData.role,\r\n app: configData.app,\r\n isDuplicate: configData.isDuplicate,\r\n environmentId: configData.environmentId,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n };\r\n axios.post(url, postdata, { headers: { strictSSL: false } })\r\n .then(response => {\r\n setOpenAlert({\r\n open: true,\r\n btn: 'publish',\r\n msg: 'Successfully Published'\r\n });\r\n setLoader(false);\r\n dispatch(actions.configuration());\r\n })\r\n .catch(err => {\r\n setLoader(false);\r\n if (typeof err.response != \"object\") {\r\n setOpenAlert({\r\n open: true,\r\n btn: 'publish',\r\n msg: 'Network Error:Please Check Your Internet Connection',\r\n err: 'error'\r\n });\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n }\r\n\r\n var unpublishClickHandler = (event, configData) => {\r\n event.stopPropagation();\r\n setLoader(true);\r\n let url = \"unpublishConfiguration\"\r\n let postdata = {\r\n _id: configData._id,\r\n jsonDocument: configData.jsonDocument,\r\n isPublished: false,\r\n componentContextCode: configData.componentContextCode,\r\n domain: configData.domain,\r\n entityType: configData.entityType,\r\n context1: configData.context1,\r\n context2: configData.context2,\r\n context3: configData.context3,\r\n relationship: configData.relationship,\r\n role: configData.role,\r\n app: configData.app,\r\n isDuplicate: configData.isDuplicate,\r\n environmentId: configData.environmentId,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n };\r\n axios.post(url, postdata)\r\n .then(response => {\r\n setOpenAlert({\r\n open: true,\r\n btn: 'unpublish',\r\n msg: 'Successfully UnPublished'\r\n });\r\n setLoader(false);\r\n dispatch(actions.configuration());\r\n })\r\n .catch(err => {\r\n setLoader(false);\r\n if (typeof err.response != \"object\") {\r\n setOpenAlert({\r\n open: true,\r\n btn: 'unpublish',\r\n msg: 'Network Error:Please Check Your Internet Connection',\r\n err: 'error'\r\n });\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n }\r\n\r\n const handledata = (event, rowData) => {\r\n history.push('/ManageConfig', rowData);\r\n }\r\n\r\n if (appcomponent.allComponent != null && appcomponent.selectedApp != null && appcomponent.selectedEnvironment != null && appcomponent.selectedConfiguration != null) {\r\n allconfig = appcomponent.selectedConfiguration.filter((data) => {\r\n return data.domain === appcomponent.selectedApp.domain || data.domain === '_DEFAULT'\r\n })\r\n showLoader = false;\r\n // setLoader(false);\r\n }\r\n\r\n return (\r\n \r\n {showLoader === true ? : null}\r\n {openalert.open ?\r\n \r\n \r\n {openalert.msg}\r\n \r\n \r\n : null}\r\n\r\n {opendelalert.open && opendelalert.delbox != 'true' ?\r\n \r\n \r\n {opendelalert.msg}\r\n \r\n \r\n : null}\r\n\r\n {opendelalert.open && opendelalert.delbox == 'true' ?\r\n \r\n \r\n \r\n }\r\n severity=\"warning\"\r\n // color={\"warning\"}\r\n variant=\"filled\">\r\n {opendelalert.msg}\r\n \r\n : null}\r\n\r\n >\" + appcomponent.selectedComponent.displayName : \"Configuration\"}\r\n options={\r\n {\r\n pageSize: 15,\r\n pageSizeOptions: [15, 20, 50, 100],\r\n // actionsColumnIndex: -1,\r\n selection: true,\r\n padding: 'dense'\r\n }\r\n }\r\n columns={columns}\r\n data={allconfig}\r\n isLoading={loader}\r\n onRowClick={(event, rowData) => handledata(event, rowData)}\r\n actions={[\r\n {\r\n icon: 'save_alt',\r\n tooltip: 'save_alt',\r\n onClick: (event, rowData) => {\r\n handleDownLoadClick();\r\n }\r\n },\r\n {\r\n // selection:false,\r\n icon: 'delete',\r\n tooltip: 'Delete',\r\n onClick: (event, rowData) => {\r\n deleteConfigHandler();\r\n }\r\n },\r\n {\r\n icon: 'add',\r\n tooltip: 'Add Configuration',\r\n isFreeAction: true,\r\n onClick: (event) => history.push(\"/AddConfiguration\")\r\n },\r\n {\r\n icon: 'refresh',\r\n tooltip: 'Refresh',\r\n isFreeAction: true,\r\n onClick: () => {\r\n dispatch(actions.configuration())\r\n }\r\n },\r\n ]}\r\n onSelectionChange={(rows) => dispatch(actions.selectedConfigurationForBulkCopy(rows))}\r\n />\r\n \r\n );\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport axios from '../../Helpers/Axiosbase';\r\nimport * as actions from '../../Store/Actions'\r\nimport useReactRouter from 'use-react-router';\r\nimport MaterialTable from 'material-table';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport { Button, Snackbar } from '@material-ui/core';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport SettingsBackupRestoreIcon from '@material-ui/icons/SettingsBackupRestore';\r\nimport { makeStyles, ThemeProvider, createMuiTheme, decomposeColor } from '@material-ui/core/styles';\r\n\r\n//Stepper\r\n\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\n//Merge\r\nvar merge = require('lodash.merge');\r\nvar unset = require('lodash.unset');\r\n\r\nconst theme = createMuiTheme({});\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n div: {\r\n marginRight: '15px',\r\n // float: 'right',\r\n },\r\n\r\n //Stepper\r\n root: {\r\n width: '100%',\r\n },\r\n backButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n stepperdiv: {\r\n marginRight: '15px',\r\n float: 'right',\r\n },\r\n}));\r\n\r\n//Stepper\r\n\r\nfunction getSteps() {\r\n return ['Add Quick Actions', 'Add Menu Options'];\r\n}\r\n\r\n//Alert\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nexport default function NavmenuForm(props) {\r\n\r\n const classes = useStyles();\r\n const { location, history } = useReactRouter();\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const appcomponent = useSelector((state) => state.appcomponent)\r\n const dispatch = useDispatch();\r\n\r\n //success alert\r\n\r\n const [openalert, setOpenAlert] = React.useState({\r\n open: false,\r\n msg: 'Configuration Saved',\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpenAlert({\r\n open: false,\r\n });\r\n };\r\n\r\n //Stepper\r\n const [activeStep, setActiveStep] = React.useState(0);\r\n const steps = getSteps();\r\n\r\n //Location Data\r\n\r\n const [locationdata, setlocationdata] = React.useState({\r\n locationdata: location.state\r\n })\r\n\r\n //Quick Actions static JSON\r\n\r\n const [jsonObj] = React.useState({\r\n _id: '',\r\n componentContextCode: '',\r\n domain: '',\r\n entityType: '',\r\n context1: '',\r\n context2: '',\r\n context3: '',\r\n relationship: '',\r\n role: '',\r\n app: '',\r\n isDuplicate: '',\r\n environmentId: '',\r\n isDuplicate: false,\r\n isPublished: true,\r\n jsonDocument: {\r\n id: \"\",\r\n name: \"\",\r\n type: \"\",\r\n // properties:\"\",\r\n data: {\r\n contexts: [{\r\n context: {\r\n component: \"_DEFAULT\",\r\n role: \"_DEFAULT\",\r\n tenant: \"_DEFAULT\",\r\n domain: \"_DEFAULT\",\r\n app: \"_DEFAULT\",\r\n entityType: \"_DEFAULT\",\r\n country: \"_DEFAULT\",\r\n channel: \"_DEFAULT\",\r\n relationship: \"_DEFAULT\",\r\n user: \"_DEFAULT\"\r\n },\r\n jsonData: {}\r\n }]\r\n }\r\n }\r\n })\r\n\r\n const handleNext = (event) => {\r\n if (event === 'Next') {\r\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n setOpenNextSelection({\r\n open: true\r\n })\r\n\r\n }\r\n else {\r\n reduxAuth.fullscreentoggle=false\r\n history.push('./Config')\r\n }\r\n };\r\n\r\n const handleBack = () => {\r\n setActiveStep((prevActiveStep) => prevActiveStep - 1);\r\n setOpenNextSelection({\r\n open: false\r\n })\r\n };\r\n\r\n //End Stepper\r\n\r\n const [openNextSelection, setOpenNextSelection] = React.useState({\r\n open: false\r\n })\r\n\r\n // Set Quick Actions And Set Menu Options\r\n const [QuickActions, setQuickActions] = React.useState({\r\n QuickActions: []\r\n })\r\n\r\n const [MenuOptions, setMenuOptions] = React.useState({\r\n MenuOptions: []\r\n })\r\n\r\n const [state, setState] = React.useState({\r\n columns: [\r\n { title: 'Action Name', field: 'name' },\r\n { title: 'Action Text', field: 'text' },\r\n { title: 'Parent Name', field: 'parentname', defaultSort: 'asc' },\r\n { title: 'Entity Type', field: 'contextData.itemContext.type' },\r\n { title: 'Display Sequence', field: 'displaySequence', type: 'numeric' },\r\n {\r\n title: 'Visible',\r\n field: 'visible',\r\n editComponent: props => (\r\n props.onChange(!props.value)} />\r\n ),\r\n render: rowData => {\r\n if (rowData.visible === \"true\" || rowData.visible === true) {\r\n\r\n return {\r\n rowData.visible = false\r\n handlequickactionsedit(rowData)\r\n }} />\r\n }\r\n else {\r\n return {\r\n rowData.visible = true\r\n handlequickactionsedit(rowData)\r\n }} />\r\n }\r\n }\r\n },\r\n ]\r\n });\r\n\r\n const [menustate, setMenuState] = React.useState({\r\n columns: [\r\n { title: 'App Name', field: 'name' },\r\n { title: 'Parent App Name', field: 'parentapp', editable: 'never', defaultSort: 'asc' },\r\n { title: 'Main App Name', field: 'mainapp', editable: 'never', defaultSort: 'asc' },\r\n { title: 'Display Sequence', field: 'displaySequence', type: 'numeric' },\r\n {\r\n title: 'Visible',\r\n field: 'visible',\r\n editComponent: props => (\r\n props.onChange(!props.value)} />\r\n ),\r\n render: rowData => {\r\n if (rowData.visible === \"true\" || rowData.visible === true) {\r\n\r\n return {\r\n rowData.visible = false\r\n handlemenuoptionsedit(rowData)\r\n }} />\r\n }\r\n else {\r\n return {\r\n rowData.visible = true\r\n handlemenuoptionsedit(rowData)\r\n }} />\r\n }\r\n }\r\n },\r\n ]\r\n });\r\n\r\n //update config API\r\n const updateConfigAPI = (event) => {\r\n\r\n //update Config\r\n\r\n let url = \"configurationUpdate\"\r\n let postdata = null;\r\n if (event === \"add\") {\r\n postdata = {\r\n _id: props.data._id,\r\n jsonDocument: jsonObj.jsonDocument,\r\n isPublished: false,\r\n componentContextCode: props.data.componentContextCode,\r\n domain: props.data.domain,\r\n entityType: props.data.entityType,\r\n context1: props.data.context1,\r\n context2: props.data.context2,\r\n context3: props.data.context3,\r\n relationship: props.data.relationship,\r\n role: props.data.role,\r\n app: props.data.app,\r\n isDuplicate: props.data.isDuplicate,\r\n environmentId: props.data.environmentId,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n };\r\n }\r\n else {\r\n location.state.isPublished = false;\r\n postdata = {\r\n ...location.state,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n }\r\n }\r\n\r\n\r\n axios.post(url, postdata)\r\n .then(editConfigResponse => {\r\n setOpenAlert({\r\n open: true\r\n })\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n if (typeof err.response != \"object\") {\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n const deleteparent = (copynewdata) => {\r\n let deldata = copynewdata;\r\n delete deldata['parentname']\r\n return deldata;\r\n }\r\n\r\n //Add QuickActions\r\n\r\n const handlequickactionsadd = (newdata) => {\r\n let addjson = {};\r\n let disseq = newdata.displaySequence;\r\n newdata.displaySequence = parseInt(disseq, 10)\r\n var oldobject = QuickActions.QuickActions;\r\n var newobjject = oldobject.concat(newdata);\r\n let name = newdata.name;\r\n try {\r\n if (newdata.hasOwnProperty(\"entitytype\")) {\r\n let contextdata = {\r\n \"contextData\": {\r\n \"itemContext\": {\r\n \"type\": newdata.contextData.itemContext.type\r\n }\r\n }\r\n }\r\n newdata = merge(newdata, contextdata)\r\n }\r\n\r\n } catch (error) { }\r\n\r\n\r\n try {\r\n\r\n //Check if the oldobject is blank\r\n if (location.state) {\r\n\r\n if (location.state.jsonDocument == '') {\r\n location.state.jsonDocument = jsonObj.jsonDocument\r\n }\r\n\r\n if (oldobject.length === 0 && (location.state.jsonDocument.data.contexts[0].jsonData != null && location.state.jsonDocument.data.contexts[0].jsonData.length != 0)) {\r\n let quickdata = locationdata.locationdata.jsonDocument.data.contexts[0].jsonData.config;\r\n var newjson = {\r\n \"quick-actions\": {\r\n \"subNavMenu\": {\r\n }\r\n }\r\n };\r\n\r\n newjson[\"quick-actions\"].subNavMenu[newdata.parentname] = {\r\n \"actions\": {\r\n [name]: newdata\r\n }\r\n };\r\n\r\n let mergedJSON = { ...quickdata, ...newjson };\r\n location.state.jsonDocument.data.contexts[0].jsonData.config = mergedJSON\r\n }\r\n\r\n if (oldobject.length != 0 && (location.state.jsonDocument.data.contexts[0].jsonData != null && location.state.jsonDocument.data.contexts[0].jsonData.length != 0)) {\r\n let quickdata = locationdata.locationdata.jsonDocument.data.contexts[0].jsonData.config;\r\n if (quickdata[\"quick-actions\"].subNavMenu) {\r\n if (quickdata[\"quick-actions\"].subNavMenu[newdata.parentname]) {\r\n var existingactions = quickdata[\"quick-actions\"].subNavMenu[newdata.parentname].actions;\r\n var newaction = {\r\n [name]: newdata\r\n }\r\n quickdata[\"quick-actions\"].subNavMenu[newdata.parentname].actions = { ...existingactions, ...newaction };\r\n }\r\n else {\r\n quickdata[\"quick-actions\"].subNavMenu[newdata.parentname] = {\r\n \"actions\": {\r\n [name]: newdata\r\n }\r\n };\r\n }\r\n location.state.jsonDocument.data.contexts[0].jsonData.config = quickdata\r\n console.log(\"called\")\r\n }\r\n else {\r\n console.log(\"error\");\r\n }\r\n }\r\n\r\n if (location.state.jsonDocument.data.contexts[0].jsonData == null || location.state.jsonDocument.data.contexts[0].jsonData.length === 0) {\r\n var newjson = {\r\n \"config\": {\r\n \"quick-actions\": {\r\n \"subNavMenu\": {\r\n }\r\n }\r\n }\r\n };\r\n\r\n newjson.config[\"quick-actions\"].subNavMenu[newdata.parentname] = {\r\n \"actions\": {\r\n [name]: newdata\r\n }\r\n };\r\n location.state.jsonDocument.data.contexts[0].jsonData = newjson\r\n }\r\n\r\n\r\n //call updateconfigapi function\r\n updateConfigAPI();\r\n }\r\n\r\n //New Config -Add\r\n if (location.state === undefined) {\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n var newjson = {\r\n \"config\": {\r\n \"quick-actions\": {\r\n \"subNavMenu\": {\r\n }\r\n }\r\n }\r\n };\r\n\r\n newjson.config[\"quick-actions\"].subNavMenu[newdata.parentname] = {\r\n \"actions\": {\r\n [name]: newdata\r\n }\r\n };\r\n\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = newjson;\r\n location.state = jsonObj\r\n //call updateconfigapi function\r\n updateConfigAPI(\"add\");\r\n }\r\n } catch (error) { }\r\n\r\n //Set Quickactions state\r\n setQuickActions({\r\n QuickActions: newobjject\r\n })\r\n\r\n getoptionslist();\r\n\r\n\r\n }\r\n //Edit QuikActions\r\n const handlequickactionsedit = (newdata) => {\r\n // console.log(\"newdata:\",newdata)\r\n let disseq = newdata.displaySequence;\r\n newdata.displaySequence = parseInt(disseq, 10)\r\n var oldobject = QuickActions.QuickActions;\r\n var newobjject = oldobject.concat(newdata);\r\n let name = newdata.name;\r\n // const realobj=newdata;\r\n // let delnewdat=deleteparent(realobj);\r\n\r\n try {\r\n if (newdata.hasOwnProperty(\"entitytype\")) {\r\n let contextdata = {\r\n \"contextData\": {\r\n \"itemContext\": {\r\n \"type\": newdata.contextData.itemContext.type\r\n }\r\n }\r\n }\r\n newdata = merge(newdata, contextdata)\r\n }\r\n\r\n } catch (error) { }\r\n\r\n\r\n\r\n if (location.state) {\r\n if ((location.state.jsonDocument.data.contexts[0].jsonData != null && location.state.jsonDocument.data.contexts[0].jsonData.length != 0)) {\r\n let quickdata = locationdata.locationdata.jsonDocument.data.contexts[0].jsonData.config;\r\n\r\n\r\n if (quickdata[\"quick-actions\"].subNavMenu) {\r\n if (quickdata[\"quick-actions\"].subNavMenu[newdata.parentname]) {\r\n var existingactions = quickdata[\"quick-actions\"].subNavMenu[newdata.parentname].actions;\r\n var newaction = {\r\n [name]: newdata\r\n\r\n }\r\n quickdata[\"quick-actions\"].subNavMenu[newdata.parentname].actions = { ...existingactions, ...newaction };\r\n }\r\n else {\r\n quickdata[\"quick-actions\"].subNavMenu[newdata.parentname] = {\r\n \"actions\": {\r\n [name]: newdata\r\n }\r\n };\r\n }\r\n // const dummquick=quickdata;\r\n // unset(dummquick,dummquick[\"quick-actions\"].subNavMenu[newdata.parentname].actions[name])\r\n // console.log(\"dummquick\",dummquick)\r\n // console.log(\"quickdata\",quickdata)\r\n location.state.jsonDocument.data.contexts[0].jsonData.config = quickdata\r\n getoptionslist();\r\n updateConfigAPI();\r\n }\r\n else {\r\n console.log(\"error\");\r\n }\r\n }\r\n }\r\n\r\n if (location.state === undefined) {\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n var newjson = {\r\n \"config\": {\r\n \"quick-actions\": {\r\n \"subNavMenu\": {\r\n }\r\n }\r\n }\r\n };\r\n\r\n newjson.config[\"quick-actions\"].subNavMenu[newdata.parentname] = {\r\n \"actions\": {\r\n [name]: newdata,\r\n \"contextData\": {\r\n \"itemContext\": {\r\n \"type\": newdata.entitytype\r\n }\r\n }\r\n }\r\n };\r\n\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = newjson;\r\n location.state = jsonObj\r\n getoptionslist();\r\n //call updateconfigapi function\r\n updateConfigAPI(\"add\");\r\n }\r\n }\r\n\r\n //Delete QuickAction\r\n const handlequickactionsdelete = (data) => {\r\n let config = location.state.jsonDocument.data.contexts[0].jsonData.config['quick-actions'].subNavMenu[data.parentname].actions;\r\n let del = unset(config, data.name)\r\n location.state.jsonDocument.data.contexts[0].jsonData.config['quick-actions'].subNavMenu[data.parentname].action = config.actions\r\n getoptionslist();\r\n updateConfigAPI();\r\n }\r\n\r\n //Add Menuoptions\r\n const handlemenuoptionsedit = (newdata) => {\r\n let disseq = newdata.displaySequence;\r\n newdata.displaySequence = parseInt(disseq, 10)\r\n let mergedJSON = null;\r\n let nullstate = false;\r\n let notnullstate = false;\r\n if (location.state) {\r\n if (location.state.jsonDocument == '') {\r\n location.state.jsonDocument = jsonObj.jsonDocument\r\n }\r\n if (location.state.jsonDocument.data.contexts[0].jsonData == null || location.state.jsonDocument.data.contexts[0].jsonData.length === 0) {\r\n nullstate = true\r\n\r\n if (!Object.prototype.hasOwnProperty.call(newdata, 'parentapp') && !Object.prototype.hasOwnProperty.call(newdata, 'mainapp')) {\r\n var newjson = {\r\n \"config\":\r\n {\r\n [newdata.name]: newdata\r\n }\r\n };\r\n mergedJSON = newjson\r\n }\r\n if (Object.prototype.hasOwnProperty.call(newdata, 'parentapp') && !Object.prototype.hasOwnProperty.call(newdata, 'mainapp')) {\r\n var newjson = {\r\n \"config\": {\r\n [newdata.parentapp]: {\r\n \"subNavMenu\": {\r\n [newdata.name]: newdata\r\n }\r\n }\r\n }\r\n }\r\n mergedJSON = newjson\r\n }\r\n if (Object.prototype.hasOwnProperty.call(newdata, 'parentapp') && Object.prototype.hasOwnProperty.call(newdata, 'mainapp')) {\r\n var newjson = {\r\n \"config\": {\r\n [newdata.mainapp]: {\r\n \"subNavMenu\": {\r\n [newdata.parentapp]: {\r\n \"actions\": {\r\n [newdata.name]: newdata\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n mergedJSON = newjson\r\n }\r\n // mergedJSON = newjson\r\n }\r\n if (location.state.jsonDocument.data.contexts[0].jsonData !== null && location.state.jsonDocument.data.contexts[0].jsonData.length !== 0) {\r\n notnullstate = true;\r\n let customdata = location.state.jsonDocument.data.contexts[0].jsonData.config;\r\n if (!Object.prototype.hasOwnProperty.call(newdata, 'parentapp') && !Object.prototype.hasOwnProperty.call(newdata, 'mainapp')) {\r\n var newjson = {\r\n [newdata.name]: newdata\r\n }\r\n mergedJSON = merge(customdata, newjson)\r\n }\r\n if (Object.prototype.hasOwnProperty.call(newdata, 'parentapp') && !Object.prototype.hasOwnProperty.call(newdata, 'mainapp')) {\r\n var newjson = {\r\n [newdata.parentapp]: {\r\n \"subNavMenu\": {\r\n [newdata.name]: newdata\r\n }\r\n }\r\n }\r\n mergedJSON = merge(customdata, newjson)\r\n }\r\n if (Object.prototype.hasOwnProperty.call(newdata, 'parentapp') && Object.prototype.hasOwnProperty.call(newdata, 'mainapp')) {\r\n var newjson = {\r\n [newdata.mainapp]: {\r\n \"subNavMenu\": {\r\n [newdata.parentapp]: {\r\n \"actions\": {\r\n [newdata.name]: newdata\r\n }\r\n }\r\n }\r\n }\r\n }\r\n mergedJSON = merge(customdata, newjson)\r\n }\r\n\r\n }\r\n if (nullstate === true && mergedJSON !== null) {\r\n location.state.jsonDocument.data.contexts[0].jsonData = mergedJSON;\r\n }\r\n if (notnullstate === true && mergedJSON !== null) {\r\n location.state.jsonDocument.data.contexts[0].jsonData.config = mergedJSON;\r\n }\r\n if (mergedJSON !== null) {\r\n updateConfigAPI();\r\n }\r\n }\r\n\r\n //New Config -Add\r\n if (location.state === undefined) {\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n if (!Object.prototype.hasOwnProperty.call(newdata, 'parentapp') && !Object.prototype.hasOwnProperty.call(newdata, 'mainapp')) {\r\n var newjson = {\r\n \"config\":\r\n {\r\n [newdata.name]: newdata\r\n }\r\n };\r\n mergedJSON = newjson\r\n }\r\n if (Object.prototype.hasOwnProperty.call(newdata, 'parentapp') && !Object.prototype.hasOwnProperty.call(newdata, 'mainapp')) {\r\n var newjson = {\r\n \"config\": {\r\n [newdata.parentapp]: {\r\n \"subNavMenu\": {\r\n [newdata.name]: newdata\r\n }\r\n }\r\n }\r\n }\r\n mergedJSON = newjson\r\n }\r\n if (Object.prototype.hasOwnProperty.call(newdata, 'parentapp') && Object.prototype.hasOwnProperty.call(newdata, 'mainapp')) {\r\n var newjson = {\r\n \"config\": {\r\n [newdata.mainapp]: {\r\n \"subNavMenu\": {\r\n [newdata.parentapp]: {\r\n \"actions\": {\r\n [newdata.name]: newdata\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n mergedJSON = newjson\r\n }\r\n // mergedJSON = newjson\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = newjson;\r\n location.state = jsonObj\r\n //call updateconfigapi function\r\n updateConfigAPI(\"add\");\r\n\r\n }\r\n getoptionslist();\r\n\r\n }\r\n\r\n\r\n //Global Variable\r\n let qresult = null;\r\n let qqresult = null;\r\n var result = null;\r\n let map = {};\r\n let quickresult = null;\r\n\r\n\r\n\r\n //Function\r\n const getoptionslist = () => {\r\n\r\n\r\n let baseconfig = null\r\n let customconfig = null;\r\n //Base Configurations Get\r\n let url = \"baseConfigurationGet\"\r\n let postdata = {\r\n userId: reduxAuth.userId,\r\n token: reduxAuth.token,\r\n environmentId: appcomponent.selectedEnvironment.tenantId,\r\n componentContextCode: appcomponent.selectedComponent.componentContextCode\r\n }\r\n\r\n axios.post(url, postdata)\r\n .then(baseConfigResponse => {\r\n baseconfig = baseConfigResponse.data.response[0].jsonDocument.data.contexts[0].jsonData.config;\r\n map = baseconfig\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData !== null && location.state.jsonDocument.data.contexts[0].jsonData.length != 0) {\r\n customconfig = location.state.jsonDocument.data.contexts[0].jsonData.config;\r\n\r\n map = merge(baseconfig, customconfig)\r\n }\r\n\r\n if (location.state.jsonDocument.data.contexts[0].jsonData == null || location.state.jsonDocument.data.contexts[0].jsonData.length === 0) {\r\n map = baseconfig;\r\n }\r\n }\r\n\r\n if (location.state.jsonDocument == '') {\r\n map = baseconfig\r\n quickresult = Object.keys(baseconfig).map((key) => baseconfig[key]);\r\n getQuickactionslist();\r\n }\r\n\r\n //Menu options\r\n getMenuoptionlist();\r\n\r\n //Quick Options\r\n if (location.state.jsonDocument != '') {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData !== null && location.state.jsonDocument.data.contexts[0].jsonData.length != 0) {\r\n let qutomconfig = Object.keys(customconfig).map((key) => customconfig[key])\r\n let qbaseconfig = Object.keys(baseconfig).map((key) => baseconfig[key])\r\n quickresult = merge(qbaseconfig, qutomconfig)\r\n getQuickactionslist();\r\n }\r\n }\r\n\r\n }\r\n\r\n if (location.state === undefined) {\r\n map = baseconfig\r\n getMenuoptionlist();\r\n\r\n quickresult = Object.keys(baseconfig).map((key) => baseconfig[key]);\r\n getQuickactionslist();\r\n\r\n }\r\n })\r\n .catch(err => {\r\n if (typeof err.response != \"object\") {\r\n console.log(err);\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n }\r\n\r\n const getMenuoptionlist = () => {\r\n let varsubmenuchild = [];\r\n let vargetmchild = [];\r\n let varchildarray = [];\r\n let finalmenuarray = [];\r\n //Menu Options\r\n result = Object.keys(map).map((key) => {\r\n let object = map[key];\r\n object.name = key;\r\n if (object.name !== \"quick-actions\") {\r\n try {\r\n if (object.hasOwnProperty(\"subNavMenu\")) {\r\n try {\r\n varsubmenuchild = varsubmenuchild.concat(Object.keys((object.subNavMenu)).map((keymap) => {\r\n let submenuchild = object.subNavMenu[keymap];\r\n vargetmchild = vargetmchild.concat(Object.keys(submenuchild).map((mchild) => {\r\n let getmchild = [];\r\n if (mchild == \"actions\") {\r\n getmchild = submenuchild[mchild];\r\n if (varchildarray.length === 0) {\r\n varchildarray = (Object.keys(getmchild).map((gmchild) => {\r\n let actionschild = getmchild[gmchild];\r\n actionschild.name = gmchild\r\n actionschild.parentapp = keymap\r\n actionschild.mainapp = key\r\n return actionschild;\r\n\r\n }))\r\n }\r\n else {\r\n\r\n varchildarray = varchildarray.concat(Object.keys(getmchild).map((gmchild) => {\r\n let actionschild = getmchild[gmchild];\r\n actionschild.name = gmchild\r\n actionschild.parentapp = keymap\r\n actionschild.mainapp = key\r\n return actionschild;\r\n }))\r\n }\r\n }\r\n return getmchild;\r\n }))\r\n object.subNavMenu[keymap].name = keymap\r\n object.subNavMenu[keymap].parentapp = object.name;\r\n return object.subNavMenu[keymap];\r\n }))\r\n // }\r\n } catch (error) {\r\n console.log(\"can not read property\")\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"Don't have Property\")\r\n }\r\n }\r\n\r\n return object;\r\n\r\n });\r\n finalmenuarray = result.concat(varsubmenuchild).concat(varchildarray)\r\n setMenuOptions({\r\n MenuOptions: finalmenuarray\r\n })\r\n }\r\n\r\n const getQuickactionslist = () => {\r\n\r\n quickresult.map(data => {\r\n\r\n try {\r\n if (data.name === \"quick-actions\") {\r\n try {\r\n if (data.hasOwnProperty(\"subNavMenu\")) {\r\n //Refactor\r\n let refactor = [];\r\n let subnavmenu = data.subNavMenu\r\n Object.keys(subnavmenu).map((subkey) => {\r\n let subkeyobj = subnavmenu[subkey].actions;\r\n\r\n refactor = refactor.concat(Object.keys(subkeyobj).map((subkeyobjkey) => {\r\n let recobject = subkeyobj[subkeyobjkey]\r\n recobject.name = subkeyobjkey\r\n recobject.parentname = subkey\r\n return recobject\r\n }))\r\n\r\n })\r\n\r\n let refinalarr = [];\r\n refinalarr = refactor;\r\n\r\n setQuickActions({\r\n QuickActions: refinalarr\r\n })\r\n }\r\n } catch (error) { }\r\n }\r\n else {\r\n }\r\n } catch (error) {\r\n console.log(\"error:\")\r\n }\r\n })\r\n\r\n }\r\n\r\n useEffect(() => {\r\n\r\n getoptionslist();\r\n\r\n }, []);\r\n\r\n return (\r\n
\r\n {openalert.open ?\r\n \r\n \r\n Configuration Saved..\r\n \r\n \r\n : null}\r\n
\r\n \r\n {steps.map((label) => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n
\r\n {activeStep === steps.length ? null : (\r\n
\r\n
\r\n }\r\n >\r\n Back\r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n {openNextSelection.open ?\r\n
\r\n \r\n new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n handlemenuoptionsedit(newData);\r\n }, 600);\r\n }),\r\n }}\r\n />
:
\r\n\r\n \r\n new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n handlequickactionsadd(newData);\r\n }, 600);\r\n }),\r\n onRowUpdate: (newData) =>\r\n new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n handlequickactionsedit(newData);\r\n }, 600);\r\n }),\r\n onRowDelete: (data) =>\r\n new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n handlequickactionsdelete(data);\r\n }, 600);\r\n }),\r\n }}\r\n\r\n />
\r\n }\r\n
\r\n )\r\n}","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport axios from '../../Helpers/Axiosbase';\r\nimport * as actions from '../../Store/Actions'\r\nimport useReactRouter from 'use-react-router';\r\nimport { Button, Typography, TextField, Snackbar, Checkbox } from '@material-ui/core';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport SettingsBackupRestoreIcon from '@material-ui/icons/SettingsBackupRestore';\r\nimport { makeStyles, ThemeProvider, createMuiTheme } from '@material-ui/core/styles';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport './styles.css';\r\n\r\n//Card\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\n\r\n\r\n//Merge\r\nvar merge = require('lodash.merge');\r\n\r\nconst theme = createMuiTheme({});\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\r\n //Stepper\r\n root: {\r\n width: '100%',\r\n },\r\n backButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n stepperdiv: {\r\n marginRight: '15px',\r\n float: 'right',\r\n },\r\n\r\n //card\r\n cardroot: {\r\n minHeight: 465,\r\n height: '100%',\r\n },\r\n}));\r\n\r\n//Alert\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\n\r\nexport default function EntityCreateForm(props) {\r\n\r\n const classes = useStyles();\r\n const { location, history } = useReactRouter();\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const appcomponent = useSelector((state) => state.appcomponent)\r\n const dispatch = useDispatch();\r\n\r\n const [errorMessage, setErrorMessage] = React.useState({\r\n open: false,\r\n errmsg: null,\r\n api:''\r\n });\r\n\r\n //userAttributes\r\n const [userAttributes, setuserAttributes] = React.useState([])\r\n const icon = ;\r\n const checkedIcon = ;\r\n\r\n //success alert\r\n\r\n const [openalert, setOpenAlert] = React.useState({\r\n open: false,\r\n msg: 'Configuration Saved',\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpenAlert({\r\n open: false,\r\n });\r\n };\r\n\r\n //create form static JSON\r\n\r\n const [jsonObj] = React.useState({\r\n _id: '',\r\n componentContextCode: '',\r\n domain: '',\r\n entityType: '',\r\n context1: '',\r\n context2: '',\r\n context3: '',\r\n relationship: '',\r\n role: '',\r\n app: '',\r\n isDuplicate: '',\r\n environmentId: '',\r\n isDuplicate: false,\r\n isPublished: true,\r\n jsonDocument: {\r\n id: \"\",\r\n name: \"\",\r\n type: \"\",\r\n // properties:\"\",\r\n data: {\r\n contexts: [{\r\n context: {\r\n component: \"_DEFAULT\",\r\n role: \"_DEFAULT\",\r\n tenant: \"_DEFAULT\",\r\n domain: \"_DEFAULT\",\r\n app: \"_DEFAULT\",\r\n entityType: \"_DEFAULT\",\r\n country: \"_DEFAULT\",\r\n channel: \"_DEFAULT\",\r\n relationship: \"_DEFAULT\",\r\n user: \"_DEFAULT\"\r\n },\r\n jsonData: {}\r\n }]\r\n }\r\n }\r\n })\r\n\r\n const handleNext = (event) => {\r\n reduxAuth.fullscreentoggle=false\r\n history.push('./Config')\r\n };\r\n\r\n\r\n //Attribute List\r\n\r\n const [AttributeList, setAttributelist] = React.useState({\r\n AttributeList: []\r\n })\r\n\r\n\r\n const handleAttributes = (event, value) => {\r\n setuserAttributes(value)\r\n }\r\n\r\n //no of columns\r\n const [NoofColumns, setNoofColumns] = React.useState({\r\n NoofColumns: 3\r\n })\r\n\r\n const handleColumns = (event) => {\r\n let col = 3\r\n col = parseInt(event.target.value, 10)\r\n if (isNaN(col)) {\r\n col = 3\r\n }\r\n\r\n setNoofColumns({\r\n NoofColumns: col\r\n })\r\n }\r\n\r\n //Save Data\r\n const handleSaveClick = () => {\r\n\r\n\r\n let addjson = {\r\n \"config\": {\r\n \"properties\": {\r\n \"attributeNames\": userAttributes,\r\n \"matchConfig\": {\r\n \"allow-create\": true,\r\n \"compare-title\": \"{[ECMCComTit]}\",\r\n \"enable-match-step\": true\r\n },\r\n \"enableRelationshipsMatchMerge\": false,\r\n \"noOfColumns\": NoofColumns.NoofColumns\r\n }\r\n }\r\n }\r\n\r\n if (location.state && location.state.jsonDocument != \"\") {\r\n\r\n location.state.jsonDocument.data.contexts[0].jsonData = addjson;\r\n\r\n updateConfigAPI();\r\n\r\n\r\n }\r\n\r\n if (location.state && location.state.jsonDocument == \"\") {\r\n location.state.jsonDocument = jsonObj.jsonDocument\r\n location.state.jsonDocument.data.contexts[0].jsonData = addjson;\r\n updateConfigAPI();\r\n\r\n }\r\n\r\n if (location.state === undefined) {\r\n\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = addjson;\r\n location.state = jsonObj\r\n updateConfigAPI(\"add\");\r\n // history.push(\"./ManageConfig\")\r\n\r\n }\r\n }\r\n\r\n //Get existing attribute list\r\n const getAttributeList = () => {\r\n if (location.state) {\r\n if (location.state.jsonDocument != \"\") {\r\n setuserAttributes(location.state.jsonDocument.data.contexts[0].jsonData.config.properties.attributeNames)\r\n setNoofColumns({\r\n NoofColumns: location.state.jsonDocument.data.contexts[0].jsonData.config.properties.noOfColumns\r\n })\r\n }\r\n\r\n }\r\n }\r\n\r\n //update config API\r\n const updateConfigAPI = (event) => {\r\n\r\n //update Config\r\n\r\n let url = \"configurationUpdate\"\r\n let postdata = null;\r\n if (event === \"add\") {\r\n postdata = {\r\n _id: props.data._id,\r\n jsonDocument: jsonObj.jsonDocument,\r\n isPublished: false,\r\n componentContextCode: props.data.componentContextCode,\r\n domain: props.data.domain,\r\n entityType: props.data.entityType,\r\n context1: props.data.context1,\r\n context2: props.data.context2,\r\n context3: props.data.context3,\r\n relationship: props.data.relationship,\r\n role: props.data.role,\r\n app: props.data.app,\r\n isDuplicate: props.data.isDuplicate,\r\n environmentId: props.data.environmentId,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n };\r\n }\r\n else {\r\n location.state.isPublished = false;\r\n postdata = {\r\n ...location.state,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n }\r\n }\r\n\r\n\r\n axios.post(url, postdata)\r\n .then(editConfigResponse => {\r\n setOpenAlert({\r\n open: true\r\n })\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n if (typeof err.response != \"object\") {\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n useEffect(() => {\r\n\r\n getAttributeList();\r\n\r\n //Get ContextList\r\n let url = \"getContextList\"\r\n let postdata = {\r\n userId: reduxAuth.userId,\r\n token: reduxAuth.token,\r\n environmentId: appcomponent.selectedEnvironment.tenantId,\r\n }\r\n\r\n axios.post(url, postdata)\r\n .then(contextList => {\r\n let clist = contextList.data.response[0];\r\n setAttributelist({\r\n AttributeList: clist.attribute\r\n })\r\n // setLoader(false)\r\n })\r\n .catch(err => {\r\n if (typeof err.response != \"object\") {\r\n setErrorMessage({\r\n open: true,\r\n api:'contextList',\r\n errmsg:\"Couldn't found context list please sync the tenant...\"\r\n })\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n\r\n\r\n }, []);\r\n\r\n\r\n return (\r\n
\r\n
\r\n {openalert.open ?\r\n \r\n \r\n Configuration Saved..\r\n \r\n \r\n : null}\r\n \r\n \r\n {errorMessage.errmsg != null ? errorMessage.errmsg : \" NetWork Error:Please Check Your Internet Connection\"}\r\n \r\n \r\n
\r\n
\r\n
\r\n handleSaveClick()}\r\n className={classes.backButton}\r\n style={{ fontSize: '0.700rem', fontWeight: 600 }}\r\n startIcon={}\r\n >\r\n Save\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Create page Attributes\r\n \r\n option}\r\n renderOption={(option, { selected }) => (\r\n \r\n \r\n {option}\r\n \r\n )}\r\n renderInput={params => (\r\n \r\n )}\r\n value={userAttributes}\r\n />\r\n\r\n

\r\n \r\n No of columns\r\n \r\n\r\n handleColumns(event)}\r\n />\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport axios from '../../Helpers/Axiosbase';\r\nimport * as actions from '../../Store/Actions'\r\nimport useReactRouter from 'use-react-router';\r\nimport { Button, Typography, TextField, Snackbar, Switch, Checkbox, FormControlLabel, FormControl } from '@material-ui/core';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport SettingsBackupRestoreIcon from '@material-ui/icons/SettingsBackupRestore';\r\nimport { makeStyles, ThemeProvider, createMuiTheme } from '@material-ui/core/styles';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\n\r\nimport AddIcon from '@material-ui/icons/Add';\r\n\r\n//Checkbox\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\n\r\n//Card\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\n\r\n//Table\r\n\r\nimport MaterialTable from 'material-table';\r\n\r\n//Merge\r\nvar merge = require('lodash.merge');\r\n\r\nconst theme = createMuiTheme({});\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\r\n //Stepper\r\n root: {\r\n width: '100%',\r\n },\r\n backButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n stepperdiv: {\r\n marginRight: '15px',\r\n float: 'right',\r\n },\r\n\r\n //card\r\n cardroot: {\r\n minHeight: 465,\r\n height: '100%',\r\n },\r\n}));\r\n\r\n//Alert\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\n\r\nexport default function WizardEntityCreateForm(props) {\r\n\r\n const classes = useStyles();\r\n const { location, history } = useReactRouter();\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const appcomponent = useSelector((state) => state.appcomponent)\r\n const dispatch = useDispatch();\r\n\r\n const [errorMessage, setErrorMessage] = React.useState({\r\n open: false,\r\n errmsg: null,\r\n api:''\r\n });\r\n\r\n const icon = ;\r\n const checkedIcon = ;\r\n\r\n //RowData\r\n const [AddRowData, setAddRowData] = React.useState(null)\r\n\r\n //Wizard Form\r\n const [OpenWizardForm, setOpenWizardForm] = React.useState(false)\r\n\r\n //Component List\r\n const [ComponentList, setComponentList] = React.useState([\"rock-entity-create\", \"rock-path-attribute-manage\", \"rock-context-manage\", \"rock-relationship-manage\", \"rock-business-function-finish\"])\r\n\r\n //User Component\r\n const [UserComponent, setUserComponent] = React.useState({\r\n ComponentName: null,\r\n ComponentPath: null\r\n })\r\n\r\n //Step Property Form\r\n const [OpenProperty, setOpenProperty] = React.useState({\r\n open: false,\r\n component: null\r\n })\r\n\r\n //Attribute List For create Step\r\n const [AttributeList, setAttributelist] = React.useState({\r\n AttributeList: []\r\n })\r\n\r\n //userAttributes For Create step\r\n const [userAttributes, setuserAttributes] = React.useState([])\r\n\r\n //handleAttributes For Create Step\r\n const handleAttributes = (event, value) => {\r\n setuserAttributes(value)\r\n }\r\n\r\n //no of columns For Create Step\r\n const [NoofColumns, setNoofColumns] = React.useState({\r\n NoofColumns: 3\r\n })\r\n //handle columns For create Step\r\n const handleColumns = (event) => {\r\n let col = 3\r\n col = parseInt(event.target.value, 10)\r\n if (isNaN(col)) {\r\n col = 3\r\n }\r\n\r\n setNoofColumns({\r\n NoofColumns: col\r\n })\r\n }\r\n\r\n //Handle properties for Path Manage\r\n const [PathManageProperty, setPathManageProperty] = React.useState({\r\n leafNodeOnly: true,\r\n pathAttribute: '',\r\n multiSelect: true\r\n })\r\n\r\n //handlepathattribute for Path Manage\r\n const handlepathattribute = (event, value) => {\r\n setPathManageProperty({\r\n ...PathManageProperty,\r\n pathAttribute: value\r\n })\r\n }\r\n\r\n //Swich for Path Manage property\r\n const handleleafnodeswitch = (event, value) => {\r\n if (event.currentTarget.id === \"Leaf Node Only\") {\r\n setPathManageProperty({\r\n ...PathManageProperty,\r\n leafNodeOnly: value\r\n })\r\n }\r\n\r\n if (event.currentTarget.id === \"Multi-Select\") {\r\n setPathManageProperty({\r\n ...PathManageProperty,\r\n multiSelect: value\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n //Manage property for Relationship manage step\r\n const [RelManageProperty, setRelManageProperty] = React.useState({\r\n \"do-sync-validation\": true,\r\n \"no-of-columns\": 2,\r\n \"functional-mode\": \"dataFunction\",\r\n \"mode\": \"edit\",\r\n \"config-context\": {\r\n \"relationshipTitle\": \"\",\r\n \"relationshipTypeName\": \"\"\r\n }\r\n })\r\n\r\n //handlerelationmanageswitch property for Relationship manage step\r\n const handlerelationmanageswitch = (event, value) => {\r\n if (event.currentTarget.id === \"do-sync-validation\") {\r\n setRelManageProperty({\r\n ...RelManageProperty,\r\n \"do-sync-validation\": value\r\n })\r\n }\r\n }\r\n\r\n //handlerelpropertytextbox Textbox property for Relationship manage step\r\n const handlerelpropertytextbox = (event) => {\r\n if (event.currentTarget.name === \"relationshipTitle\" || event.currentTarget.name === \"relationshipTypeName\") {\r\n let varconfigcontext = RelManageProperty[\"config-context\"]\r\n\r\n let newconfigcontext = {\r\n [event.currentTarget.name]: event.currentTarget.value\r\n }\r\n let mergeconfigcontext = merge(varconfigcontext, newconfigcontext)\r\n setRelManageProperty({\r\n ...RelManageProperty,\r\n \"config-context\": mergeconfigcontext\r\n })\r\n }\r\n else {\r\n setRelManageProperty({\r\n ...RelManageProperty,\r\n [event.currentTarget.name]: event.currentTarget.value\r\n })\r\n }\r\n\r\n }\r\n\r\n //Material table\r\n const [Steps, setSteps] = React.useState({\r\n Steps: []\r\n })\r\n\r\n const [StepsCol, setStepsCol] = React.useState({\r\n columns: [\r\n { title: 'Step Name', field: 'name' },\r\n { title: 'Stepper Title', field: 'stepperTitle' },\r\n { title: 'Component Path', field: 'component.path' },\r\n { title: 'Component Name', field: 'component.name', lookup: { \"rock-entity-create\": \"rock-entity-create\", \"rock-path-attribute-manage\": \"rock-path-attribute-manage\", \"rock-context-manage\": \"rock-context-manage\", \"rock-relationship-manage\": \"rock-relationship-manage\", \"rock-business-function-finish\": \"rock-business-function-finish\" } },\r\n { title: 'Display Sequence', field: 'displaySequence', type: 'numeric' },\r\n {\r\n title: 'Visible',\r\n field: 'visible',\r\n // initialEditValue:true,\r\n editComponent: props => (\r\n props.onChange(!props.value)} />\r\n ),\r\n render: rowData => {\r\n if (rowData.visible === undefined) {\r\n return {\r\n rowData.visible = true\r\n handlewizarddata(rowData)\r\n }} />\r\n }\r\n if (rowData.visible === true) {\r\n\r\n return {\r\n rowData.visible = false\r\n handlewizarddata(rowData)\r\n }} />\r\n }\r\n if (rowData.visible === false) {\r\n return {\r\n rowData.visible = true\r\n handlewizarddata(rowData)\r\n }} />\r\n }\r\n }\r\n },\r\n {\r\n title: 'Add Properties', render: rowData => {\r\n if (rowData) {\r\n \r\n return handleaddproperties(rowData)}\r\n startIcon={}\r\n style={{ fontSize: '0.600rem', fontWeight: 600 }}>\r\n Property\r\n \r\n \r\n \r\n }\r\n\r\n }\r\n }\r\n ]\r\n });\r\n\r\n //success alert\r\n\r\n const [openalert, setOpenAlert] = React.useState({\r\n open: false,\r\n msg: 'Configuration Saved',\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpenAlert({\r\n open: false,\r\n });\r\n };\r\n\r\n //Wizard Entity Create static JSON\r\n\r\n const [jsonObj] = React.useState({\r\n _id: '',\r\n componentContextCode: '',\r\n domain: '',\r\n entityType: '',\r\n context1: '',\r\n context2: '',\r\n context3: '',\r\n relationship: '',\r\n role: '',\r\n app: '',\r\n isDuplicate: '',\r\n environmentId: '',\r\n isDuplicate: false,\r\n isPublished: true,\r\n jsonDocument: {\r\n id: \"\",\r\n name: \"\",\r\n type: \"\",\r\n // properties:\"\",\r\n data: {\r\n contexts: [{\r\n context: {\r\n component: \"_DEFAULT\",\r\n role: \"_DEFAULT\",\r\n tenant: \"_DEFAULT\",\r\n domain: \"_DEFAULT\",\r\n app: \"_DEFAULT\",\r\n entityType: \"_DEFAULT\",\r\n country: \"_DEFAULT\",\r\n channel: \"_DEFAULT\",\r\n relationship: \"_DEFAULT\",\r\n user: \"_DEFAULT\"\r\n },\r\n jsonData: {}\r\n }]\r\n }\r\n }\r\n })\r\n\r\n const handlebackbutton = (event) => {\r\n reduxAuth.fullscreentoggle=false\r\n history.push('./Config')\r\n };\r\n\r\n //update config API\r\n const updateConfigAPI = (event) => {\r\n\r\n //update Config\r\n\r\n let url = \"configurationUpdate\"\r\n let postdata = null;\r\n if (event === \"add\") {\r\n postdata = {\r\n _id: props.data._id,\r\n jsonDocument: jsonObj.jsonDocument,\r\n isPublished: false,\r\n componentContextCode: props.data.componentContextCode,\r\n domain: props.data.domain,\r\n entityType: props.data.entityType,\r\n context1: props.data.context1,\r\n context2: props.data.context2,\r\n context3: props.data.context3,\r\n relationship: props.data.relationship,\r\n role: props.data.role,\r\n app: props.data.app,\r\n isDuplicate: props.data.isDuplicate,\r\n environmentId: props.data.environmentId,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n };\r\n }\r\n else {\r\n location.state.isPublished = false;\r\n postdata = {\r\n ...location.state,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n }\r\n }\r\n\r\n\r\n axios.post(url, postdata)\r\n .then(editConfigResponse => {\r\n setOpenAlert({\r\n open: true\r\n })\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n if (typeof err.response != \"object\") {\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n //Add Properties form\r\n const handleaddproperties = (rowData) => {\r\n setAddRowData(rowData);\r\n setOpenWizardForm(true);\r\n setUserComponent({\r\n ComponentName: rowData.component.name,\r\n ComponentPath: rowData.component.path\r\n })\r\n setOpenProperty({\r\n open: true,\r\n component: rowData.component.name\r\n })\r\n //Create\r\n if (rowData.component.name === \"rock-entity-create\") {\r\n try {\r\n if (rowData.component.hasOwnProperty(\"properties\")) {\r\n if (rowData.component.properties.hasOwnProperty(\"attributeNames\")) {\r\n setuserAttributes(rowData.component.properties.attributeNames)\r\n }\r\n\r\n }\r\n } catch (error) { }\r\n }\r\n\r\n //Path-taxonomy Manage\r\n if (rowData.component.name === \"rock-path-attribute-manage\") {\r\n try {\r\n if (rowData.component.hasOwnProperty(\"properties\")) {\r\n setPathManageProperty({\r\n ...rowData.component.properties\r\n })\r\n }\r\n } catch (error) { }\r\n }\r\n\r\n //\r\n //Relationship Manage\r\n if (rowData.component.name === \"rock-relationship-manage\") {\r\n try {\r\n if (rowData.component.hasOwnProperty(\"properties\")) {\r\n setRelManageProperty({\r\n ...rowData.component.properties\r\n })\r\n }\r\n } catch (error) { }\r\n }\r\n\r\n // console.log(\"rowData\",rowData);\r\n }\r\n\r\n ////Save Data\r\n const handleSaveClick = () => {\r\n let addjson = {}\r\n let margeproperty = null;\r\n\r\n //Create page step\r\n if (UserComponent.ComponentName === \"rock-entity-create\") {\r\n let addproperty = {\r\n \"component\": {\r\n \"properties\": {\r\n \"attributeNames\": userAttributes,\r\n \"noOfColumns\": NoofColumns.NoofColumns\r\n }\r\n }\r\n }\r\n margeproperty = merge(AddRowData, addproperty)\r\n\r\n\r\n\r\n }\r\n\r\n //Path attribute manage step\r\n if (UserComponent.ComponentName === \"rock-path-attribute-manage\") {\r\n let addproperty = {\r\n \"component\": {\r\n \"properties\": PathManageProperty\r\n }\r\n }\r\n margeproperty = merge(AddRowData, addproperty)\r\n }\r\n\r\n //Relationship Manage Step\r\n if (UserComponent.ComponentName === \"rock-relationship-manage\") {\r\n let addproperty = {\r\n \"component\": {\r\n \"properties\": RelManageProperty\r\n }\r\n }\r\n margeproperty = merge(AddRowData, addproperty)\r\n }\r\n\r\n //Update\r\n if (location.state && location.state.jsonDocument != \"\") {\r\n\r\n addjson = {\r\n \"config\":\r\n {\r\n \"steps\": {\r\n [margeproperty.name]: margeproperty\r\n }\r\n }\r\n }\r\n\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData;\r\n let mergejson = merge(customconfig, addjson)\r\n location.state.jsonDocument.data.contexts[0].jsonData = mergejson;\r\n updateConfigAPI();\r\n\r\n }\r\n\r\n if (location.state === undefined) {\r\n\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = addjson;\r\n location.state = jsonObj\r\n updateConfigAPI(\"add\");\r\n // history.push(\"./ManageConfig\")\r\n\r\n }\r\n }\r\n\r\n //Steps Edit\r\n const handlewizarddata = (newData) => {\r\n\r\n let addjson = {\r\n \"config\":\r\n {\r\n \"steps\": {\r\n [newData.name]: newData\r\n }\r\n }\r\n }\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData;\r\n let mergejson = merge(customconfig, addjson)\r\n location.state.jsonDocument.data.contexts[0].jsonData = mergejson;\r\n updateConfigAPI();\r\n getSteps();\r\n }\r\n\r\n if (location.state.jsonDocument == '') {\r\n location.state.jsonDocument = jsonObj.jsonDocument\r\n location.state.jsonDocument.data.contexts[0].jsonData = addjson;\r\n updateConfigAPI();\r\n getSteps();\r\n }\r\n\r\n }\r\n if (location.state === undefined) {\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = addjson;\r\n location.state = jsonObj\r\n updateConfigAPI(\"add\");\r\n getSteps();\r\n }\r\n }\r\n\r\n //Get Steps list\r\n const getSteps = () => {\r\n let baseconfig = null;\r\n let steps = null;\r\n let mapconfig = null;\r\n let url = \"baseConfigurationGet\"\r\n let postdata = {\r\n userId: reduxAuth.userId,\r\n token: reduxAuth.token,\r\n environmentId: appcomponent.selectedEnvironment.tenantId,\r\n componentContextCode: appcomponent.selectedComponent.componentContextCode\r\n }\r\n\r\n axios.post(url, postdata)\r\n .then(baseConfigResponse => {\r\n baseconfig = baseConfigResponse.data.response[0].jsonDocument.data.contexts[0].jsonData.config.steps;\r\n mapconfig = baseconfig;\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData.config.steps;\r\n mapconfig = merge(baseconfig, customconfig)\r\n }\r\n\r\n }\r\n if (location.state === undefined) {\r\n mapconfig = baseconfig\r\n }\r\n steps = Object.keys(mapconfig).map((keys) => {\r\n mapconfig[keys].name = keys\r\n return mapconfig[keys];\r\n })\r\n setSteps({\r\n Steps: steps\r\n })\r\n })\r\n\r\n }\r\n\r\n //Get Context List\r\n const getContextList = () => {\r\n\r\n //Get ContextList\r\n let url = \"getContextList\"\r\n let postdata = {\r\n userId: reduxAuth.userId,\r\n token: reduxAuth.token,\r\n environmentId: appcomponent.selectedEnvironment.tenantId,\r\n }\r\n\r\n axios.post(url, postdata)\r\n .then(contextList => {\r\n let clist = contextList.data.response[0];\r\n setAttributelist({\r\n AttributeList: clist.attribute\r\n })\r\n // setLoader(false)\r\n })\r\n .catch(err => {\r\n if (typeof err.response != \"object\") {\r\n setErrorMessage({\r\n open: true,\r\n api: 'contextList',\r\n errmsg: \"Couldn't found context list please sync the tenant...\"\r\n })\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n\r\n getSteps();\r\n\r\n getContextList();\r\n\r\n }, []);\r\n\r\n\r\n return (\r\n
\r\n
\r\n {openalert.open ?\r\n \r\n \r\n Configuration Saved..\r\n \r\n \r\n : null}\r\n \r\n \r\n {errorMessage.errmsg != null ? errorMessage.errmsg : \" NetWork Error:Please Check Your Internet Connection\"}\r\n \r\n \r\n
\r\n
\r\n
\r\n {OpenProperty.open ?\r\n handleSaveClick()}\r\n className={classes.backButton}\r\n style={{ fontSize: '0.700rem', fontWeight: 600 }}\r\n startIcon={}>\r\n Save\r\n \r\n : null}\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n {!OpenWizardForm ?\r\n \r\n new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n handlewizarddata(newData);\r\n }, 600);\r\n }),\r\n onRowUpdate: (newData) =>\r\n new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n handlewizarddata(newData);\r\n }, 600);\r\n }),\r\n }}\r\n /> :\r\n\r\n \r\n \r\n\r\n

\r\n\r\n \r\n



\r\n\r\n {OpenProperty.open && OpenProperty.component === \"rock-entity-create\" ?\r\n <>\r\n

\r\n option}\r\n renderOption={(option, { selected }) => (\r\n \r\n \r\n {option}\r\n \r\n )}\r\n renderInput={params => (\r\n \r\n )}\r\n value={userAttributes}\r\n />\r\n



\r\n\r\n handleColumns(event)}\r\n />\r\n \r\n : null}\r\n\r\n {OpenProperty.open && OpenProperty.component === \"rock-path-attribute-manage\" ?\r\n <>\r\n

\r\n option}\r\n renderInput={params => (\r\n \r\n )}\r\n value={PathManageProperty.pathAttribute}\r\n />\r\n



\r\n\r\n }\r\n label=\"Leaf Node Only\"\r\n labelPlacement=\"end\"\r\n onChange={handleleafnodeswitch}\r\n />\r\n\r\n }\r\n label=\"Multi-Select\"\r\n labelPlacement=\"end\"\r\n onChange={handleleafnodeswitch}\r\n />\r\n \r\n : null}\r\n\r\n {OpenProperty.open && OpenProperty.component === \"rock-relationship-manage\" ?\r\n <>\r\n handlerelpropertytextbox(event)} />\r\n\r\n \r\n\r\n



\r\n\r\n \r\n\r\n \r\n\r\n



\r\n\r\n \r\n\r\n }\r\n label=\"do-sync-validation\"\r\n labelPlacement=\"end\"\r\n onChange={handlerelationmanageswitch}\r\n />\r\n\r\n \r\n : null}\r\n\r\n {OpenProperty.open && OpenProperty.component === \"rock-context-manage\" || OpenProperty.open && OpenProperty.component === \"rock-business-function-finish\" ?\r\n <>\r\n
Not Defined Property For {OpenProperty.component}
\r\n \r\n : null}\r\n\r\n
\r\n
\r\n\r\n }\r\n\r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport axios from '../../Helpers/Axiosbase';\r\nimport * as actions from '../../Store/Actions'\r\nimport useReactRouter from 'use-react-router';\r\nimport MaterialTable from 'material-table';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport { Button, Snackbar, TextField, FormControlLabel, Typography } from '@material-ui/core';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport SettingsBackupRestoreIcon from '@material-ui/icons/SettingsBackupRestore';\r\nimport DeleteOutlineIcon from '@material-ui/icons/DeleteOutline';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport { makeStyles, createMuiTheme } from '@material-ui/core/styles';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\n\r\n//Card\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\n\r\n//Stepper\r\n\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\n\r\n\r\n\r\n//Merge\r\nvar merge = require('lodash.merge');\r\nvar unset = require('lodash.unset');\r\n\r\nconst theme = createMuiTheme({});\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n div: {\r\n marginRight: '15px',\r\n // float: 'right',\r\n },\r\n\r\n //Stepper\r\n root: {\r\n width: '100%',\r\n },\r\n backButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n stepperdiv: {\r\n marginRight: '15px',\r\n float: 'right',\r\n },\r\n\r\n //Accordion\r\n heading: {\r\n fontSize: theme.typography.pxToRem(20),\r\n fontWeight: theme.typography.fontWeightRegular,\r\n },\r\n //card\r\n cardroot: {\r\n minHeight: 465,\r\n height: '100%',\r\n },\r\n}));\r\n\r\n//Stepper\r\n\r\nfunction getSteps() {\r\n return ['Header Config', 'Thumbnail & Business Actions Config'];\r\n}\r\n\r\n//Alert\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nexport default function EntityHeaderForm(props) {\r\n const classes = useStyles();\r\n const { location, history } = useReactRouter();\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const appcomponent = useSelector((state) => state.appcomponent)\r\n const dispatch = useDispatch();\r\n\r\n //success alert\r\n\r\n const [openalert, setOpenAlert] = React.useState({\r\n open: false,\r\n msg: 'Configuration Saved',\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpenAlert({\r\n open: false,\r\n });\r\n };\r\n\r\n //Stepper\r\n const [activeStep, setActiveStep] = React.useState(0);\r\n const steps = getSteps();\r\n\r\n\r\n //Header static JSON\r\n\r\n const [jsonObj] = React.useState({\r\n _id: '',\r\n componentContextCode: '',\r\n domain: '',\r\n entityType: '',\r\n context1: '',\r\n context2: '',\r\n context3: '',\r\n relationship: '',\r\n role: '',\r\n app: '',\r\n isDuplicate: '',\r\n environmentId: '',\r\n isDuplicate: false,\r\n isPublished: true,\r\n jsonDocument: {\r\n id: \"\",\r\n name: \"\",\r\n type: \"\",\r\n // properties:\"\",\r\n data: {\r\n contexts: [{\r\n context: {\r\n component: \"_DEFAULT\",\r\n role: \"_DEFAULT\",\r\n tenant: \"_DEFAULT\",\r\n domain: \"_DEFAULT\",\r\n app: \"_DEFAULT\",\r\n entityType: \"_DEFAULT\",\r\n country: \"_DEFAULT\",\r\n channel: \"_DEFAULT\",\r\n relationship: \"_DEFAULT\",\r\n user: \"_DEFAULT\"\r\n },\r\n jsonData: {}\r\n }]\r\n }\r\n }\r\n })\r\n\r\n const handleNext = (event) => {\r\n if (event === 'Next') {\r\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n setOpenNextSelection({\r\n open: true\r\n })\r\n\r\n }\r\n else {\r\n reduxAuth.fullscreentoggle=false\r\n history.push('./Config')\r\n }\r\n };\r\n\r\n const handleBack = () => {\r\n setActiveStep((prevActiveStep) => prevActiveStep - 1);\r\n setOpenNextSelection({\r\n open: false\r\n })\r\n };\r\n //End Stepper\r\n\r\n const [openNextSelection, setOpenNextSelection] = React.useState({\r\n open: false\r\n })\r\n\r\n //Error Part\r\n const [labelError, setLabelError] = React.useState({\r\n error: true,\r\n label: \"Label is required.\",\r\n helperText: \"Label is required.\",\r\n validateInput: true,\r\n });\r\n\r\n const [nameError, setNameError] = React.useState({\r\n error: true,\r\n label: \"Attribute Name is required.\",\r\n helperText: \"Attribute Name is required.\",\r\n validateInput: true,\r\n });\r\n\r\n //TenantAttribute List\r\n const [TenantAttributes, setTenantAttributes] = React.useState(appcomponent.attributeList)\r\n\r\n //Columns\r\n const [state, setState] = React.useState({\r\n columns: [\r\n {\r\n title: '', render: rowData => {\r\n if (rowData) {\r\n if (rowData.isMetadataAttribute != true) {\r\n return handledeleteattribute(rowData)}>\r\n }\r\n }\r\n }\r\n },\r\n {\r\n title: 'Attribute Name', field: 'attributeName', editable: 'onAdd',\r\n cellStyle: {\r\n width: 200,\r\n minWidth: 200\r\n },\r\n editComponent: props => (\r\n {\r\n if (nameError.validateInput) {\r\n setNameError({\r\n ...nameError,\r\n validateInput: false,\r\n });\r\n }\r\n\r\n props.onChange(value);\r\n }}\r\n\r\n getOptionLabel={option => option}\r\n renderInput={params => (\r\n \r\n )}\r\n value={props.value ? props.value : \"\"}\r\n />\r\n )\r\n },\r\n {\r\n title: 'Attribute Label', field: 'label',\r\n cellStyle: {\r\n width: 200,\r\n minWidth: 200\r\n },\r\n editComponent: (props) => (\r\n {\r\n if (labelError.validateInput) {\r\n setLabelError({\r\n ...labelError,\r\n validateInput: false,\r\n });\r\n }\r\n\r\n props.onChange(e.target.value);\r\n }}\r\n />\r\n ),\r\n },\r\n { title: 'Display Sequence', field: 'displaySequence', type: 'numeric' },\r\n {\r\n title: 'Visible',\r\n field: 'visible',\r\n editComponent: props => (\r\n props.onChange(!props.value)} />\r\n ),\r\n render: rowData => {\r\n if (rowData.visible === \"true\" || rowData.visible === true) {\r\n\r\n return {\r\n rowData.visible = false\r\n handleheaderattribute(rowData)\r\n }} />\r\n }\r\n else {\r\n return {\r\n rowData.visible = true\r\n handleheaderattribute(rowData)\r\n }} />\r\n }\r\n }\r\n },\r\n {\r\n title: 'No Trim',\r\n field: 'noTrim',\r\n editComponent: props => (\r\n props.onChange(!props.value)} />\r\n ),\r\n render: rowData => {\r\n if (rowData.noTrim === \"true\" || rowData.noTrim === true) {\r\n\r\n return {\r\n rowData.noTrim = false\r\n handleheaderattribute(rowData)\r\n }} />\r\n }\r\n else {\r\n return {\r\n rowData.noTrim = true\r\n handleheaderattribute(rowData)\r\n }} />\r\n }\r\n }\r\n },\r\n\r\n ]\r\n });\r\n\r\n //Thmbnail config\r\n const [ThmbnailConfig, setThmbnailConfig] = React.useState({\r\n \"thumbnailConfig\": {\r\n \"relationshipName\": \"\",\r\n \"relationshipFilterAttributeName\": \"\",\r\n \"relationshipFilterAttributeValue\": true,\r\n \"hideEntityThumbnail\": false\r\n }\r\n })\r\n\r\n //BusinessActionConfig\r\n const [BusinessActionsConfig, setBusinessActionsConfig] = React.useState({\r\n \"businessActionsConfig\": {\r\n \"showActions\": true,\r\n \"title\": \"{[BATxt]}\",\r\n \"messageAttribute\": \"id\"\r\n }\r\n })\r\n\r\n //handlebaswitch\r\n\r\n const handlebaswitch = (event, value) => {\r\n var varbaconfig = BusinessActionsConfig.businessActionsConfig;\r\n let newbaconfig = {\r\n [event.currentTarget.id]: value\r\n }\r\n let mergebaconfig = merge(varbaconfig, newbaconfig)\r\n setBusinessActionsConfig({\r\n ...BusinessActionsConfig,\r\n \"businessActionsConfig\": mergebaconfig\r\n })\r\n }\r\n\r\n //handlebatxt\r\n const handlebatxt = (event) => {\r\n var varbaconfig = BusinessActionsConfig.businessActionsConfig;\r\n let newbaconfig = {\r\n [event.currentTarget.name]: event.currentTarget.value\r\n }\r\n let mergebaconfig = merge(varbaconfig, newbaconfig)\r\n setBusinessActionsConfig({\r\n ...BusinessActionsConfig,\r\n \"businessActionsConfig\": mergebaconfig\r\n })\r\n }\r\n\r\n //handlethumbnailtextbox\r\n const handlethumbnailtextbox = (event) => {\r\n\r\n var varthumbnailconfig = ThmbnailConfig.thumbnailConfig;\r\n let newthumbnailconfig = {\r\n [event.currentTarget.name]: event.currentTarget.value\r\n }\r\n let mergethumbnailconfig = merge(varthumbnailconfig, newthumbnailconfig)\r\n setThmbnailConfig({\r\n ...ThmbnailConfig,\r\n \"thumbnailConfig\": mergethumbnailconfig\r\n })\r\n }\r\n\r\n //handlethubnailswitch\r\n const handlethubnailswitch = (event, value) => {\r\n var varthumbnailconfig = ThmbnailConfig.thumbnailConfig;\r\n let newthumbnailconfig = {\r\n [event.currentTarget.id]: value\r\n }\r\n let mergethumbnailconfig = merge(varthumbnailconfig, newthumbnailconfig)\r\n setThmbnailConfig({\r\n ...ThmbnailConfig,\r\n \"thumbnailConfig\": mergethumbnailconfig\r\n })\r\n }\r\n\r\n //AttributeList\r\n const [AttributeList, setAttributeList] = React.useState([])\r\n\r\n //handleheaderattribute\r\n const handleheaderattribute = (newData) => {\r\n var oldlist = AttributeList;\r\n var newlist = oldlist.concat(newData);\r\n let addjson = {\r\n \"config\": {\r\n \"headerConfig\": {\r\n [newData.attributeName]: newData\r\n }\r\n }\r\n }\r\n let mergejson = {};\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData;\r\n mergejson = merge(customconfig, addjson)\r\n\r\n location.state.jsonDocument.data.contexts[0].jsonData = mergejson;\r\n getAttributeList();\r\n updateConfigAPI();\r\n\r\n }\r\n if (location.state.jsonDocument == '') {\r\n location.state.jsonDocument = jsonObj.jsonDocument\r\n location.state.jsonDocument.data.contexts[0].jsonData = addjson;\r\n updateConfigAPI();\r\n }\r\n }\r\n\r\n if (location.state === undefined) {\r\n\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = addjson;\r\n location.state = jsonObj\r\n getAttributeList();\r\n updateConfigAPI(\"add\");\r\n // history.push(\"./ManageConfig\")\r\n\r\n }\r\n }\r\n\r\n //handledeleteattribute\r\n const handledeleteattribute = (rowData) => {\r\n let config = location.state.jsonDocument.data.contexts[0].jsonData.config.headerConfig;\r\n let del = unset(config, rowData.attributeName)\r\n location.state.jsonDocument.data.contexts[0].jsonData.config.headerConfig = config\r\n getAttributeList();\r\n updateConfigAPI();\r\n }\r\n\r\n //handleSaveClick\r\n const handleSaveClick = () => {\r\n let mergejson = null;\r\n let addjson1 = {\r\n \"config\": ThmbnailConfig\r\n }\r\n let addjson2 = {\r\n \"config\": BusinessActionsConfig\r\n }\r\n let addjson = merge(addjson1, addjson2);\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData;\r\n mergejson = merge(customconfig, addjson)\r\n\r\n location.state.jsonDocument.data.contexts[0].jsonData = mergejson;\r\n updateConfigAPI();\r\n }\r\n\r\n if (location.state.jsonDocument == '') {\r\n location.state.jsonDocument = jsonObj.jsonDocument\r\n location.state.jsonDocument.data.contexts[0].jsonData = addjson;\r\n updateConfigAPI();\r\n }\r\n }\r\n\r\n if (location.state === undefined) {\r\n\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = addjson;\r\n location.state = jsonObj\r\n updateConfigAPI(\"add\");\r\n // history.push(\"./ManageConfig\")\r\n\r\n }\r\n }\r\n\r\n //update config API\r\n const updateConfigAPI = (event) => {\r\n\r\n //update Config\r\n\r\n let url = \"configurationUpdate\"\r\n let postdata = null;\r\n if (event === \"add\") {\r\n postdata = {\r\n _id: props.data._id,\r\n jsonDocument: jsonObj.jsonDocument,\r\n isPublished: false,\r\n componentContextCode: props.data.componentContextCode,\r\n domain: props.data.domain,\r\n entityType: props.data.entityType,\r\n context1: props.data.context1,\r\n context2: props.data.context2,\r\n context3: props.data.context3,\r\n relationship: props.data.relationship,\r\n role: props.data.role,\r\n app: props.data.app,\r\n isDuplicate: props.data.isDuplicate,\r\n environmentId: props.data.environmentId,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n };\r\n }\r\n else {\r\n location.state.isPublished = false;\r\n postdata = {\r\n ...location.state,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n }\r\n }\r\n\r\n\r\n axios.post(url, postdata)\r\n .then(editConfigResponse => {\r\n setOpenAlert({\r\n open: true\r\n })\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n if (typeof err.response != \"object\") {\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n\r\n }\r\n //getAttributeList\r\n const getAttributeList = () => {\r\n let baseconfig = null;\r\n let mapconfig = null;\r\n let url = \"baseConfigurationGet\"\r\n let postdata = {\r\n userId: reduxAuth.userId,\r\n token: reduxAuth.token,\r\n environmentId: appcomponent.selectedEnvironment.tenantId,\r\n componentContextCode: appcomponent.selectedComponent.componentContextCode\r\n }\r\n\r\n axios.post(url, postdata)\r\n .then(baseConfigResponse => {\r\n baseconfig = baseConfigResponse.data.response[0].jsonDocument.data.contexts[0].jsonData.config.headerConfig;\r\n mapconfig = baseconfig;\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n try {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.hasOwnProperty(\"headerConfig\")) {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.headerConfig != {}) {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData.config.headerConfig;\r\n mapconfig = merge(baseconfig, customconfig)\r\n }\r\n else {\r\n mapconfig = baseconfig;\r\n }\r\n }\r\n else {\r\n mapconfig = baseconfig;\r\n }\r\n } catch (error) {\r\n mapconfig = baseconfig;\r\n }\r\n }\r\n }\r\n if (location.state === undefined) {\r\n mapconfig = baseconfig\r\n }\r\n\r\n let attributelist = Object.keys(mapconfig).map((key) => {\r\n return mapconfig[key]\r\n })\r\n\r\n setAttributeList(attributelist)\r\n })\r\n }\r\n\r\n //getThumbnailConfig\r\n const getThumbnailConfig = () => {\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n try {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.hasOwnProperty(\"thumbnailConfig\")) {\r\n setThmbnailConfig({\r\n ...ThmbnailConfig,\r\n \"thumbnailConfig\": location.state.jsonDocument.data.contexts[0].jsonData.config.thumbnailConfig\r\n })\r\n }\r\n } catch (error) { }\r\n\r\n }\r\n }\r\n }\r\n\r\n //getBusinessActionsConfig\r\n const getBusinessActionsConfig = () => {\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n try {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.hasOwnProperty(\"businessActionsConfig\")) {\r\n setBusinessActionsConfig({\r\n ...BusinessActionsConfig,\r\n \"businessActionsConfig\": location.state.jsonDocument.data.contexts[0].jsonData.config.businessActionsConfig\r\n })\r\n }\r\n } catch (error) { }\r\n\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n getAttributeList();\r\n\r\n getThumbnailConfig();\r\n\r\n getBusinessActionsConfig();\r\n\r\n }, []);\r\n\r\n return (\r\n
\r\n {openalert.open ?\r\n \r\n \r\n Configuration Saved..\r\n \r\n \r\n : null}\r\n {appcomponent.attributeList == null ?\r\n \r\n \r\n Couldn't found context list please sync the tenant...\r\n \r\n \r\n : null}\r\n
\r\n \r\n {steps.map((label) => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n
\r\n {activeStep === steps.length ? null : (\r\n
\r\n
\r\n }\r\n >\r\n Back\r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n {openNextSelection.open ?\r\n
\r\n \r\n \r\n Thumbnail Config\r\n handleSaveClick()}\r\n className={classes.backButton}\r\n style={{ fontSize: '0.600rem', fontWeight: 600, float: 'right', top: 0 }}\r\n startIcon={}>\r\n Save\r\n \r\n



\r\n \r\n\r\n \r\n



\r\n }\r\n label=\"Relationship Filter Attribute Value\"\r\n labelPlacement=\"end\"\r\n onChange={handlethubnailswitch}\r\n />\r\n\r\n }\r\n label=\"Hide Entity Thumbnail\"\r\n labelPlacement=\"end\"\r\n onChange={handlethubnailswitch}\r\n />\r\n



\r\n {/* Business Actions Config */}\r\n Business Actions Config\r\n

\r\n }\r\n label=\"Show Actions\"\r\n labelPlacement=\"end\"\r\n onChange={handlebaswitch}\r\n />\r\n \r\n



\r\n \r\n
\r\n
\r\n
:\r\n
\r\n\r\n \r\n new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n if (!newData.label) {\r\n setLabelError({\r\n error: true,\r\n label: \"required\",\r\n helperText: \"Label is required.\",\r\n validateInput: true,\r\n });\r\n reject();\r\n return;\r\n }\r\n if (!newData.attributeName) {\r\n setNameError({\r\n error: true,\r\n label: \"required\",\r\n helperText: \"Attribute Name is required.\",\r\n validateInput: true,\r\n });\r\n reject();\r\n return;\r\n }\r\n resolve();\r\n handleheaderattribute(newData);\r\n }, 600);\r\n }),\r\n onRowUpdate: (newData) =>\r\n new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n if (!newData.label) {\r\n setLabelError({\r\n error: true,\r\n label: \"required\",\r\n helperText: \"Label is required.\",\r\n validateInput: true,\r\n });\r\n reject();\r\n return;\r\n }\r\n\r\n resolve();\r\n handleheaderattribute(newData);\r\n }, 600);\r\n })\r\n }}\r\n\r\n />
\r\n }\r\n
\r\n )\r\n}","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport axios from '../../Helpers/Axiosbase';\r\nimport * as actions from '../../Store/Actions'\r\nimport useReactRouter from 'use-react-router';\r\nimport MaterialTable from 'material-table';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport { Button, Snackbar, TextField, FormControlLabel, Typography } from '@material-ui/core';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport SettingsBackupRestoreIcon from '@material-ui/icons/SettingsBackupRestore';\r\nimport DeleteOutlineIcon from '@material-ui/icons/DeleteOutline';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport { makeStyles, createMuiTheme } from '@material-ui/core/styles';\r\n\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport CheckIcon from '@material-ui/icons/Check';\r\nimport Input from '@material-ui/core/Input';\r\n\r\n//Accordion\r\n\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\n\r\n//Card\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\n\r\n//Stepper\r\n\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\n\r\n\r\n\r\n//Merge\r\nvar merge = require('lodash.merge');\r\nvar unset = require('lodash.unset');\r\n\r\nconst theme = createMuiTheme({});\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n div: {\r\n marginRight: '15px',\r\n // float: 'right',\r\n },\r\n\r\n //Stepper\r\n root: {\r\n width: '100%',\r\n },\r\n backButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n stepperdiv: {\r\n marginRight: '15px',\r\n float: 'right',\r\n },\r\n\r\n //Accordion\r\n heading: {\r\n fontSize: theme.typography.pxToRem(17),\r\n fontWeight: theme.typography.fontWeightRegular,\r\n },\r\n //card\r\n cardroot: {\r\n minHeight: 465,\r\n height: '100%',\r\n },\r\n}));\r\n\r\n//Stepper\r\n\r\nfunction getSteps() {\r\n return ['Item Config', 'View Config'];\r\n}\r\n\r\n//Alert\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nexport default function EntitySearchResultForm(props) {\r\n const classes = useStyles();\r\n const { location, history } = useReactRouter();\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const appcomponent = useSelector((state) => state.appcomponent)\r\n const dispatch = useDispatch();\r\n\r\n //success alert\r\n\r\n const [openalert, setOpenAlert] = React.useState({\r\n open: false,\r\n msg: 'Configuration Saved',\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpenAlert({\r\n open: false,\r\n });\r\n };\r\n\r\n //Stepper\r\n const [activeStep, setActiveStep] = React.useState(0);\r\n const steps = getSteps();\r\n\r\n\r\n //Search Grid static JSON\r\n\r\n const [jsonObj] = React.useState({\r\n _id: '',\r\n componentContextCode: '',\r\n domain: '',\r\n entityType: '',\r\n context1: '',\r\n context2: '',\r\n context3: '',\r\n relationship: '',\r\n role: '',\r\n app: '',\r\n isDuplicate: '',\r\n environmentId: '',\r\n isDuplicate: false,\r\n isPublished: true,\r\n jsonDocument: {\r\n id: \"\",\r\n name: \"\",\r\n type: \"\",\r\n // properties:\"\",\r\n data: {\r\n contexts: [{\r\n context: {\r\n component: \"_DEFAULT\",\r\n role: \"_DEFAULT\",\r\n tenant: \"_DEFAULT\",\r\n domain: \"_DEFAULT\",\r\n app: \"_DEFAULT\",\r\n entityType: \"_DEFAULT\",\r\n country: \"_DEFAULT\",\r\n channel: \"_DEFAULT\",\r\n relationship: \"_DEFAULT\",\r\n user: \"_DEFAULT\"\r\n },\r\n jsonData: {}\r\n }]\r\n }\r\n }\r\n })\r\n\r\n const handleNext = (event) => {\r\n if (event === 'Next') {\r\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n setOpenNextSelection({\r\n open: true\r\n })\r\n\r\n }\r\n else {\r\n reduxAuth.fullscreentoggle=false\r\n history.push('./Config')\r\n }\r\n };\r\n\r\n const handleBack = () => {\r\n setActiveStep((prevActiveStep) => prevActiveStep - 1);\r\n setOpenNextSelection({\r\n open: false\r\n })\r\n };\r\n //End Stepper\r\n\r\n const [openNextSelection, setOpenNextSelection] = React.useState({\r\n open: false\r\n })\r\n\r\n //Error Part\r\n const [nameError, setNameError] = React.useState({\r\n error: true,\r\n label: \"Attribute Name is required.\",\r\n helperText: \"Attribute Name is required.\",\r\n validateInput: true,\r\n });\r\n\r\n //Tile config state\r\n const [TileConfigtxt, setTileConfigtxt] = React.useState({\r\n titlePattern: '',\r\n subTitlePattern: ''\r\n })\r\n\r\n //handletileconfigtxt\r\n const handletileconfigtxt = (event, value) => {\r\n console.log(\"\")\r\n setTileConfigtxt({\r\n ...TileConfigtxt,\r\n [event.currentTarget.name]: event.currentTarget.value\r\n })\r\n }\r\n\r\n //TenantAttribute List\r\n const [TenantAttributes, setTenantAttributes] = React.useState(appcomponent.attributeList)\r\n \r\n //Toolbarconfig Button\r\n const [ToolbarButtons, setToolbarButtons] = React.useState([])\r\n\r\n //Tile config column\r\n let [TileActionState, setTileActionState] = React.useState({\r\n columns: [\r\n { title: 'Name', field: 'name', editable: 'onAdd' },\r\n { title: 'Event Name', field: 'eventName' },\r\n {\r\n title: 'Visible',\r\n field: 'visible',\r\n editComponent: props => (\r\n props.onChange(!props.value)} />\r\n ),\r\n render: rowData => {\r\n if (rowData.visible === \"true\" || rowData.visible === true) {\r\n\r\n return {\r\n rowData.visible = false\r\n handletileactions(rowData)\r\n }} />\r\n }\r\n else {\r\n return {\r\n rowData.visible = true\r\n handletileactions(rowData)\r\n }} />\r\n }\r\n }\r\n },\r\n ]\r\n })\r\n\r\n //List state\r\n const [ListActions, setListActions] = React.useState([])\r\n\r\n //List config column\r\n let [ListActionsState, setListActionsState] = React.useState({\r\n columns: [\r\n { title: 'Name', field: 'name', editable: 'onAdd' },\r\n { title: 'Event Name', field: 'eventName' },\r\n {\r\n title: 'Visible',\r\n field: 'visible',\r\n editComponent: props => (\r\n props.onChange(!props.value)} />\r\n ),\r\n render: rowData => {\r\n if (rowData.visible === \"true\" || rowData.visible === true) {\r\n\r\n return {\r\n rowData.visible = false\r\n handlelistactions(rowData)\r\n }} />\r\n }\r\n else {\r\n return {\r\n rowData.visible = true\r\n handlelistactions(rowData)\r\n }} />\r\n }\r\n }\r\n },\r\n ]\r\n })\r\n\r\n //Tile state\r\n const [TileActions, setTileActions] = React.useState([])\r\n\r\n\r\n //View Config Button Table\r\n let [btnstate, setbtnState] = React.useState({\r\n columns: [\r\n { title: 'Button Name', field: 'name', editable: 'onAdd' },\r\n { title: 'Button text', field: 'text' },\r\n { title: 'Tool Tip', field: 'tooltip' },\r\n { title: 'Display Sequence', field: 'displaySequence', type: 'numeric' },\r\n {\r\n title: 'Visible',\r\n field: 'visible',\r\n editComponent: props => (\r\n props.onChange(!props.value)} />\r\n ),\r\n render: rowData => {\r\n if (rowData.visible === \"true\" || rowData.visible === true) {\r\n\r\n return {\r\n rowData.visible = false\r\n handletoolbarbtns(rowData)\r\n }} />\r\n }\r\n else {\r\n return {\r\n rowData.visible = true\r\n handletoolbarbtns(rowData)\r\n }} />\r\n }\r\n }\r\n },\r\n ]\r\n })\r\n\r\n //Entity Search Grid Columns\r\n let [state, setState] = React.useState({\r\n columns: [\r\n {\r\n title: '', initialValue: false, render: rowData => {\r\n if (rowData) {\r\n if (rowData.isMetaDataColumn != true) {\r\n return handledeleteattribute(rowData)}>\r\n }\r\n }\r\n }\r\n },\r\n {\r\n title: 'Attribute Name', field: 'name', editable: 'onAdd',\r\n cellStyle: {\r\n width: 200,\r\n minWidth: 200\r\n },\r\n editComponent: props => (\r\n {\r\n if (nameError.validateInput) {\r\n setNameError({\r\n ...nameError,\r\n validateInput: false,\r\n });\r\n }\r\n\r\n props.onChange(value);\r\n }}\r\n\r\n getOptionLabel={option => option}\r\n renderInput={params => (\r\n \r\n )}\r\n value={props.value ? props.value : \"\"}\r\n />\r\n )\r\n },\r\n { title: 'Attribute Header', field: 'header', \r\n cellStyle: {\r\n width: 200,\r\n minWidth: 200\r\n }, },\r\n { title: 'Link', field: 'linkTemplate'},\r\n { title: 'Display Sequence', field: 'displaySequence', type: 'numeric' },\r\n {\r\n title: 'Visible',\r\n field: 'visible',\r\n editComponent: props => (\r\n props.onChange(!props.value)} />\r\n ),\r\n render: rowData => {\r\n if (rowData.visible === \"true\" || rowData.visible === true) {\r\n\r\n return {\r\n rowData.visible = false\r\n handlesearchgridattributes(rowData)\r\n }} />\r\n }\r\n else {\r\n return {\r\n rowData.visible = true\r\n handlesearchgridattributes(rowData)\r\n }} />\r\n }\r\n }\r\n },\r\n {\r\n title: 'Filterable',\r\n field: 'filterable',\r\n editComponent: props => (\r\n props.onChange(!props.value)} />\r\n ),\r\n render: rowData => {\r\n if (rowData.filterable === \"true\" || rowData.filterable === true) {\r\n\r\n return {\r\n rowData.filterable = false\r\n handlesearchgridattributes(rowData)\r\n }} />\r\n }\r\n else {\r\n return {\r\n rowData.noTrim = true\r\n handlesearchgridattributes(rowData)\r\n }} />\r\n }\r\n }\r\n },\r\n {\r\n title: 'Sortable',\r\n field: 'sortable',\r\n editComponent: props => (\r\n props.onChange(!props.value)} />\r\n ),\r\n render: rowData => {\r\n if (rowData.sortable === \"true\" || rowData.sortable === true) {\r\n\r\n return {\r\n rowData.sortable = false\r\n handlesearchgridattributes(rowData)\r\n }} />\r\n }\r\n else {\r\n return {\r\n rowData.sortable = true\r\n handlesearchgridattributes(rowData)\r\n }} />\r\n }\r\n }\r\n },\r\n \r\n ]\r\n })\r\n\r\n //AttributeList\r\n const [AttributeList, setAttributeList] = React.useState([])\r\n\r\n //handlesearchgridattributes\r\n const handlesearchgridattributes = (newData) => {\r\n var oldlist = AttributeList;\r\n var newlist = oldlist.concat(newData);\r\n let addjson = {\r\n \"config\": {\r\n \"gridConfig\": {\r\n \"itemConfig\": {\r\n \"fields\": {\r\n [newData.name]: newData\r\n }\r\n }\r\n\r\n }\r\n }\r\n }\r\n let mergejson = {};\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData;\r\n mergejson = merge(customconfig, addjson)\r\n\r\n location.state.jsonDocument.data.contexts[0].jsonData = mergejson;\r\n getAttributeList();\r\n updateConfigAPI();\r\n\r\n\r\n }\r\n if (location.state.jsonDocument == '') {\r\n location.state.jsonDocument = jsonObj.jsonDocument\r\n location.state.jsonDocument.data.contexts[0].jsonData = addjson;\r\n updateConfigAPI();\r\n getAttributeList();\r\n }\r\n }\r\n\r\n if (location.state === undefined) {\r\n\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = addjson;\r\n location.state = jsonObj\r\n getAttributeList();\r\n updateConfigAPI(\"add\");\r\n // history.push(\"./ManageConfig\")\r\n\r\n }\r\n getAttributeList();\r\n }\r\n\r\n //handledeleteattribute Delete\r\n const handledeleteattribute = (rowData) => {\r\n let config = location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.itemConfig.fields;\r\n let del = unset(config, rowData.name)\r\n location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.itemConfig.fields = config\r\n getAttributeList();\r\n updateConfigAPI();\r\n }\r\n\r\n //handletoolbarbtns\r\n const handletoolbarbtns = (newData) => {\r\n var oldlist = ToolbarButtons;\r\n var newlist = oldlist.concat(newData);\r\n let addjson = {\r\n \"config\": {\r\n \"gridConfig\": {\r\n \"viewConfig\": {\r\n \"toolbarConfig\": {\r\n \"buttonItems\": {\r\n \"basic\": {\r\n \"buttons\": {\r\n [newData.name]: newData\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let mergejson = {};\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData;\r\n mergejson = merge(customconfig, addjson)\r\n\r\n location.state.jsonDocument.data.contexts[0].jsonData = mergejson;\r\n getViewConfig();\r\n updateConfigAPI();\r\n\r\n\r\n }\r\n if (location.state.jsonDocument == '') {\r\n location.state.jsonDocument = jsonObj.jsonDocument\r\n location.state.jsonDocument.data.contexts[0].jsonData = addjson;\r\n updateConfigAPI();\r\n getAttributeList();\r\n }\r\n\r\n if (location.state === undefined) {\r\n\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = addjson;\r\n location.state = jsonObj\r\n getViewConfig();\r\n updateConfigAPI(\"add\");\r\n // history.push(\"./ManageConfig\")\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n //handletileactions\r\n const handletileactions = (newData) => {\r\n var oldlist = ToolbarButtons;\r\n var newlist = oldlist.concat(newData);\r\n let addjson = {\r\n \"config\": {\r\n \"gridConfig\": {\r\n \"viewConfig\": {\r\n \"tile\": {\r\n \"settings\": {\r\n \"actions\": {\r\n [newData.name]: newData\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let mergejson = {};\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData;\r\n mergejson = merge(customconfig, addjson)\r\n\r\n location.state.jsonDocument.data.contexts[0].jsonData = mergejson;\r\n getViewConfig();\r\n updateConfigAPI();\r\n\r\n\r\n }\r\n if (location.state.jsonDocument == '') {\r\n location.state.jsonDocument = jsonObj.jsonDocument\r\n location.state.jsonDocument.data.contexts[0].jsonData = addjson;\r\n updateConfigAPI();\r\n getAttributeList();\r\n }\r\n\r\n if (location.state === undefined) {\r\n\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = addjson;\r\n location.state = jsonObj\r\n getViewConfig();\r\n updateConfigAPI(\"add\");\r\n // history.push(\"./ManageConfig\")\r\n\r\n }\r\n }\r\n }\r\n\r\n //handlelistactions\r\n const handlelistactions = (newData) => {\r\n var oldlist = ToolbarButtons;\r\n var newlist = oldlist.concat(newData);\r\n let addjson = {\r\n \"config\": {\r\n \"gridConfig\": {\r\n \"viewConfig\": {\r\n \"list\": {\r\n \"settings\": {\r\n \"actions\": {\r\n [newData.name]: newData\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let mergejson = {};\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData;\r\n mergejson = merge(customconfig, addjson)\r\n\r\n location.state.jsonDocument.data.contexts[0].jsonData = mergejson;\r\n getViewConfig();\r\n updateConfigAPI();\r\n\r\n\r\n }\r\n if (location.state.jsonDocument == '') {\r\n location.state.jsonDocument = jsonObj.jsonDocument\r\n location.state.jsonDocument.data.contexts[0].jsonData = addjson;\r\n updateConfigAPI();\r\n getAttributeList();\r\n }\r\n\r\n if (location.state === undefined) {\r\n\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = addjson;\r\n location.state = jsonObj\r\n getViewConfig();\r\n updateConfigAPI(\"add\");\r\n // history.push(\"./ManageConfig\")\r\n\r\n }\r\n }\r\n }\r\n\r\n //handletilepattern\r\n const handletilepattern = () => {\r\n let addjson = {\r\n \"config\": {\r\n \"gridConfig\": {\r\n \"viewConfig\": {\r\n \"tile\": {\r\n \"settings\":\r\n TileConfigtxt\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let mergejson = {};\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData;\r\n mergejson = merge(customconfig, addjson)\r\n\r\n location.state.jsonDocument.data.contexts[0].jsonData = mergejson;\r\n getViewConfig();\r\n updateConfigAPI();\r\n\r\n\r\n }\r\n if (location.state.jsonDocument == '') {\r\n location.state.jsonDocument = jsonObj.jsonDocument\r\n location.state.jsonDocument.data.contexts[0].jsonData = addjson;\r\n updateConfigAPI();\r\n getAttributeList();\r\n }\r\n\r\n if (location.state === undefined) {\r\n\r\n jsonObj.jsonDocument.id = props.data.computedName;\r\n jsonObj.jsonDocument.name = props.data.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = props.data.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = props.data.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = props.data.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = props.data.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = props.data.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = props.data.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = props.data.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = props.data.user;\r\n\r\n jsonObj._id = props.data._id;\r\n jsonObj.isPublished = false;\r\n jsonObj.componentContextCode = props.data.componentContextCode;\r\n jsonObj.domain = props.data.domain;\r\n jsonObj.entityType = props.data.entityType;\r\n jsonObj.context1 = props.data.context1;\r\n jsonObj.context2 = props.data.context2;\r\n jsonObj.context3 = props.data.context3;\r\n jsonObj.relationship = props.data.relationship;\r\n jsonObj.role = props.data.role;\r\n jsonObj.app = props.data.app;\r\n jsonObj.isDuplicate = props.data.isDuplicate;\r\n jsonObj.environmentId = props.data.environmentId;\r\n\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = addjson;\r\n location.state = jsonObj\r\n getViewConfig();\r\n updateConfigAPI(\"add\");\r\n // history.push(\"./ManageConfig\")\r\n\r\n }\r\n }\r\n }\r\n //update config API\r\n const updateConfigAPI = (event) => {\r\n\r\n //update Config\r\n\r\n let url = \"configurationUpdate\"\r\n let postdata = null;\r\n if (event === \"add\") {\r\n postdata = {\r\n _id: props.data._id,\r\n jsonDocument: jsonObj.jsonDocument,\r\n isPublished: false,\r\n componentContextCode: props.data.componentContextCode,\r\n domain: props.data.domain,\r\n entityType: props.data.entityType,\r\n context1: props.data.context1,\r\n context2: props.data.context2,\r\n context3: props.data.context3,\r\n relationship: props.data.relationship,\r\n role: props.data.role,\r\n app: props.data.app,\r\n isDuplicate: props.data.isDuplicate,\r\n environmentId: props.data.environmentId,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n };\r\n }\r\n else {\r\n location.state.isPublished = false;\r\n postdata = {\r\n ...location.state,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n }\r\n }\r\n\r\n\r\n axios.post(url, postdata)\r\n .then(editConfigResponse => {\r\n setOpenAlert({\r\n open: true\r\n })\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n if (typeof err.response != \"object\") {\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n //Global\r\n let vartoolbarconfig = null\r\n let vartileconfig = null\r\n let varlistconfig = null\r\n\r\n //getViewConfig\r\n const getViewConfig = () => {\r\n let tmapconfig = null;\r\n let tilemergeconfig = null;\r\n let listmergeconfig = null\r\n tmapconfig = vartoolbarconfig\r\n tilemergeconfig = vartileconfig\r\n listmergeconfig = varlistconfig\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n try {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.hasOwnProperty(\"gridConfig\")) {\r\n\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.hasOwnProperty(\"viewConfig\")) {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.hasOwnProperty(\"toolbarConfig\")) {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.toolbarConfig.hasOwnProperty(\"buttonItems\")) {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.toolbarConfig.buttonItems.hasOwnProperty(\"basic\")) {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.toolbarConfig.buttonItems.basic.hasOwnProperty(\"buttons\")) {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.toolbarConfig.buttonItems.basic.buttons\r\n tmapconfig = merge(vartoolbarconfig, customconfig)\r\n }\r\n }\r\n }\r\n else {\r\n tmapconfig = vartoolbarconfig;\r\n }\r\n }\r\n //Tile\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.hasOwnProperty(\"tile\")) {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.hasOwnProperty(\"settings\")) {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.hasOwnProperty(\"subTitlePattern\") && location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.hasOwnProperty(\"titlePattern\")) {\r\n setTileConfigtxt({\r\n ...TileConfigtxt,\r\n titlePattern: location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.titlePattern,\r\n subTitlePattern: location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.subTitlePattern\r\n })\r\n }\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.hasOwnProperty(\"subTitlePattern\") && !location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.hasOwnProperty(\"titlePattern\")) {\r\n setTileConfigtxt({\r\n ...TileConfigtxt,\r\n subTitlePattern: location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.subTitlePattern\r\n })\r\n }\r\n if (!location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.hasOwnProperty(\"subTitlePattern\") && location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.hasOwnProperty(\"titlePattern\")) {\r\n setTileConfigtxt({\r\n ...TileConfigtxt,\r\n titlePattern: location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.titlePattern,\r\n })\r\n }\r\n\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.hasOwnProperty(\"actions\")) {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.actions\r\n tilemergeconfig = merge(vartileconfig, customconfig)\r\n }\r\n }\r\n }\r\n //List\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.hasOwnProperty(\"list\")) {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.list.hasOwnProperty(\"settings\")) {\r\n // setTileConfigtxt({\r\n // txt\r\n // })\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.list.settings.hasOwnProperty(\"actions\")) {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.list.settings.actions\r\n listmergeconfig = merge(varlistconfig, customconfig)\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n else {\r\n tmapconfig = vartoolbarconfig;\r\n }\r\n } catch (error) {\r\n tmapconfig = vartoolbarconfig;\r\n }\r\n }\r\n }\r\n if (location.state === undefined) {\r\n tmapconfig = vartoolbarconfig\r\n tilemergeconfig = vartileconfig\r\n listmergeconfig = varlistconfig\r\n }\r\n let btnlist = Object.keys(tmapconfig).map((key) => {\r\n tmapconfig[key].name = key\r\n return tmapconfig[key]\r\n })\r\n setToolbarButtons(btnlist)\r\n\r\n let tileactionlist = Object.keys(tilemergeconfig).map((key) => {\r\n tilemergeconfig[key].name = key\r\n return tilemergeconfig[key]\r\n })\r\n setTileActions(tileactionlist)\r\n\r\n let listactionlist = Object.keys(listmergeconfig).map((key) => {\r\n listmergeconfig[key].name = key\r\n return listmergeconfig[key]\r\n })\r\n setListActions(listactionlist)\r\n }\r\n\r\n //getAttributeList\r\n const getAttributeList = () => {\r\n let baseconfig = null;\r\n let mapconfig = null;\r\n let url = \"baseConfigurationGet\"\r\n let postdata = {\r\n userId: reduxAuth.userId,\r\n token: reduxAuth.token,\r\n environmentId: appcomponent.selectedEnvironment.tenantId,\r\n componentContextCode: appcomponent.selectedComponent.componentContextCode\r\n }\r\n\r\n axios.post(url, postdata)\r\n .then(baseConfigResponse => {\r\n vartileconfig = baseConfigResponse.data.response[0].jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.tile.settings.actions;\r\n varlistconfig = baseConfigResponse.data.response[0].jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.list.settings.actions;\r\n vartoolbarconfig = baseConfigResponse.data.response[0].jsonDocument.data.contexts[0].jsonData.config.gridConfig.viewConfig.toolbarConfig.buttonItems.basic.buttons;\r\n baseconfig = baseConfigResponse.data.response[0].jsonDocument.data.contexts[0].jsonData.config.gridConfig.itemConfig.fields;\r\n mapconfig = baseconfig;\r\n if (location.state) {\r\n if (location.state.jsonDocument != '') {\r\n try {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.hasOwnProperty(\"gridConfig\")) {\r\n\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.hasOwnProperty(\"itemConfig\")) {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.itemConfig.hasOwnProperty(\"fields\")) {\r\n if (location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.itemConfig.fields != {}) {\r\n let customconfig = location.state.jsonDocument.data.contexts[0].jsonData.config.gridConfig.itemConfig.fields;\r\n mapconfig = merge(baseconfig, customconfig)\r\n }\r\n else {\r\n mapconfig = baseconfig;\r\n }\r\n }\r\n }\r\n\r\n }\r\n else {\r\n mapconfig = baseconfig;\r\n }\r\n } catch (error) {\r\n mapconfig = baseconfig;\r\n }\r\n }\r\n }\r\n if (location.state === undefined) {\r\n mapconfig = baseconfig\r\n }\r\n\r\n let attributelist = Object.keys(mapconfig).map((key) => {\r\n mapconfig[key].name = key\r\n return mapconfig[key]\r\n })\r\n\r\n setAttributeList(attributelist)\r\n getViewConfig();\r\n })\r\n }\r\n\r\n\r\n useEffect(() => {\r\n getAttributeList();\r\n }, []);\r\n\r\n return (\r\n
\r\n {openalert.open ?\r\n \r\n \r\n Configuration Saved..\r\n \r\n \r\n : null}\r\n {appcomponent.attributeList==null?\r\n \r\n \r\n Couldn't found context list please sync the tenant...\r\n \r\n \r\n :null}\r\n \r\n
\r\n \r\n {steps.map((label) => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n
\r\n {activeStep === steps.length ? null : (\r\n
\r\n
\r\n }\r\n >\r\n Back\r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n {openNextSelection.open ?\r\n
\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\" >\r\n Toolbar Config\r\n \r\n \r\n \r\n new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve();\r\n handletoolbarbtns(newData);\r\n }, 600);\r\n }),\r\n onRowUpdate: (newData) =>\r\n new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n handletoolbarbtns(newData);\r\n }, 600);\r\n })\r\n }} />\r\n \r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\">\r\n Tile Config\r\n \r\n \r\n

\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n
\r\n \r\n \r\n new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve();\r\n handletileactions(newData);\r\n }, 600);\r\n }),\r\n onRowUpdate: (newData) =>\r\n new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n handletileactions(newData);\r\n }, 600);\r\n })\r\n }} />\r\n \r\n
\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\" >\r\n List Config\r\n \r\n \r\n \r\n new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve();\r\n handlelistactions(newData);\r\n }, 600);\r\n }),\r\n onRowUpdate: (newData) =>\r\n new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n handlelistactions(newData);\r\n }, 600);\r\n })\r\n }} />\r\n \r\n \r\n\r\n
:\r\n
\r\n\r\n \r\n new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n if (!newData.name) {\r\n setNameError({\r\n error: true,\r\n label: \"required\",\r\n helperText: \"Attribute Name is required.\",\r\n validateInput: true,\r\n });\r\n reject();\r\n return;\r\n }\r\n resolve();\r\n handlesearchgridattributes(newData);\r\n }, 600);\r\n }),\r\n onRowUpdate: (newData) =>\r\n new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n handlesearchgridattributes(newData);\r\n }, 600);\r\n })\r\n }}\r\n\r\n />
\r\n }\r\n
\r\n )\r\n\r\n}","import React, { useEffect } from 'react';\r\nimport { JsonEditor as Editor } from 'jsoneditor-react';\r\nimport 'jsoneditor-react/es/editor.min.css';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport useReactRouter from 'use-react-router';\r\nimport { Button, Typography, Snackbar } from '@material-ui/core';\r\nimport { makeStyles, createMuiTheme, ThemeProvider } from '@material-ui/core/styles';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport CodeIcon from '@material-ui/icons/Code';\r\nimport axios from '../../Helpers/Axiosbase';\r\nimport * as actions from '../../Store/Actions'\r\nimport \"./styles.css\";\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport SpeakerNotesIcon from '@material-ui/icons/SpeakerNotes';\r\nimport ace from 'brace';\r\nimport 'brace/mode/json';\r\nimport 'brace/theme/github';\r\n\r\n//Form Routing\r\n\r\nimport NavmenuForm from './NavmenuForm';\r\nimport EntityCreateForm from './EntityCreateForm'\r\nimport WizardEntityCreateForm from './WizardEntityCreateForm'\r\nimport EntityHeaderForm from './EntityHeaderForm'\r\nimport EntitySearchResultForm from './EntitySearchResultForm'\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\n\r\n//Fullscreen\r\nimport FullscreenIcon from '@material-ui/icons/Fullscreen';\r\nimport FullscreenExitIcon from '@material-ui/icons/FullscreenExit';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\n\r\nconst theme = createMuiTheme({\r\n typography: {\r\n subtitle1: {\r\n fontSize: 20,\r\n fontStyle: 'bold',\r\n },\r\n }\r\n});\r\nconst useStyles = makeStyles(theme => ({\r\n btnall: {\r\n // marginTop: theme.spacing(1),\r\n top: -35,\r\n // marginBottom: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n fontSize: '0.600rem',\r\n },\r\n div: {\r\n marginRight: '15px',\r\n float: 'right',\r\n },\r\n btncancle: {\r\n fontSize: '0.600rem',\r\n // marginTop: theme.spacing(1),\r\n top: -35,\r\n // marginBottom: theme.spacing(1),\r\n },\r\n btnformview: {\r\n // float:'right',\r\n marginRight: theme.spacing(1),\r\n marginLeft: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(1),\r\n fontSize: '0.600rem',\r\n },\r\n typ: {\r\n marginRight: theme.spacing(1),\r\n marginLeft: theme.spacing(1),\r\n // marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(1),\r\n },\r\n btnfullscreen:{\r\n fontSize: '0.600rem',\r\n left:450,\r\n top: -35,\r\n marginBottom: theme.spacing(1),\r\n }\r\n}));\r\n\r\nexport default function ManageConfig(props) {\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const appcomponent = useSelector((state) => state.appcomponent)\r\n const { location, history } = useReactRouter();\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [errorMessage, setErrorMessage] = React.useState({\r\n open: false,\r\n errmsg: null,\r\n });\r\n\r\n const [openJSONView, setOpenJSONView] = React.useState({\r\n open: false,\r\n });\r\n\r\n const [toggleView, setToggleView] = React.useState({\r\n view: 'form',\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n };\r\n\r\n const [change, setChange] = React.useState({\r\n jsonData: location.state.jsonDocument != \"\" ? location.state.jsonDocument.data.contexts[0].jsonData : []\r\n })\r\n\r\n const handlebtnClick = () => {\r\n reduxAuth.fullscreentoggle=false\r\n history.push('/Config')\r\n }\r\n const handleOnChange = (event) => {\r\n setChange({\r\n jsonData: event\r\n })\r\n }\r\n const handleViewBtnClick = (event) => {\r\n if (event === 'form') {\r\n setToggleView({\r\n view: 'form'\r\n })\r\n setOpenJSONView({\r\n open: false\r\n })\r\n }\r\n if (event === 'json') {\r\n setToggleView({\r\n view: 'json'\r\n })\r\n setOpenJSONView({\r\n open: true\r\n })\r\n }\r\n\r\n }\r\n const handleSaveBtnClick = () => {\r\n // const locdata=null;\r\n\r\n if (location.state.jsonDocument != \"\") {\r\n let url = \"configurationUpdate\"\r\n let postdata = null;\r\n const locdata = JSON.stringify(location.state.jsonDocument.data.contexts[0].jsonData);\r\n const statedata = JSON.stringify(change.jsonData);\r\n\r\n if (locdata != statedata) {\r\n location.state.isPublished = false;\r\n location.state.jsonDocument.data.contexts[0].jsonData = change.jsonData;\r\n postdata = {\r\n ...location.state,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n }\r\n axios.post(url, postdata)\r\n .then(editConfigResponse => {\r\n dispatch(actions.configuration());\r\n history.push('/Config')\r\n\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n if (typeof err.response != \"object\") {\r\n setErrorMessage({\r\n open: true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n }\r\n\r\n }\r\n else {\r\n history.push('/Config')\r\n }\r\n reduxAuth.fullscreentoggle=false\r\n history.push('/Config')\r\n\r\n }\r\n\r\n const handlefullscreen=(value)=>{\r\n if(value===\"Fullscreen\")\r\n {\r\n reduxAuth.fullscreentoggle=true\r\n }\r\n else{\r\n reduxAuth.fullscreentoggle=false\r\n }\r\n history.push(\"./ManageConfig\",location.state)\r\n }\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n {errorMessage.errmsg != null ? errorMessage.errmsg : \" NetWork Error:Please Check Your Internet Connection\"}\r\n \r\n \r\n\r\n
\r\n \r\n \r\n {appcomponent.selectedApp.displayName}>>{appcomponent.selectedComponent.componentContextCode}\r\n : }\r\n onClick={(event) => handleViewBtnClick(toggleView.view === 'form' ? 'json' : 'form')}>\r\n {toggleView.view === 'form' ? 'JSON' : 'Form'}\r\n \r\n :}\r\n onClick={(event)=>handlefullscreen(reduxAuth.fullscreentoggle===false?\"Fullscreen\":\"FullscreenExit\")}\r\n >\r\n {reduxAuth.fullscreentoggle===false?\"Fullscreen\":\"FullscreenExit\"}\r\n \r\n \r\n \r\n
\r\n {openJSONView.open ?\r\n
\r\n }\r\n onClick={() => handleSaveBtnClick()}>\r\n Save\r\n \r\n }\r\n onClick={() => handlebtnClick()}>\r\n Cancel\r\n \r\n
: null}\r\n \r\n
\r\n {openJSONView.open ?\r\n \r\n handleOnChange(event)}>\r\n \r\n
\r\n :\r\n
\r\n {appcomponent.selectedComponent.componentContextCode === \"rock-navmenu\" ? : null}\r\n {appcomponent.selectedComponent.componentContextCode === \"rock-entity-create\" ? : null}\r\n {appcomponent.selectedComponent.componentContextCode === \"rock-wizard-entity-create\" ? : null}\r\n {appcomponent.selectedComponent.componentContextCode === \"rock-entity-header\" ? : null}\r\n {appcomponent.selectedComponent.componentContextCode === \"rock-entity-search-result\" ? : null}\r\n {appcomponent.selectedComponent.componentContextCode !== \"rock-navmenu\" &&\r\n appcomponent.selectedComponent.componentContextCode !== \"rock-entity-create\" &&\r\n appcomponent.selectedComponent.componentContextCode !== \"rock-wizard-entity-create\" &&\r\n appcomponent.selectedComponent.componentContextCode !== \"rock-entity-header\" &&\r\n appcomponent.selectedComponent.componentContextCode !== \"rock-entity-search-result\" ?\r\n setOpenJSONView({\r\n open: true\r\n })\r\n\r\n : null}\r\n
\r\n }\r\n\r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles, withStyles, createMuiTheme, ThemeProvider } from '@material-ui/core/styles';\r\nimport clsx from 'clsx';\r\nimport { Stepper, Step, StepLabel, StepConnector, Snackbar, Typography, CircularProgress } from '@material-ui/core';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport Check from '@material-ui/icons/Check';\r\nimport Button from '@material-ui/core/Button';\r\nimport useReactRouter from 'use-react-router';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { JsonEditor as Editor } from 'jsoneditor-react';\r\nimport 'jsoneditor-react/es/editor.min.css';\r\nimport { useInputChange } from '../../Helpers/useInputChange'\r\nimport axios from '../../Helpers/Axiosbase'\r\nimport * as actions from '../../Store/Actions'\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport \"./styles.css\";\r\nimport ace from 'brace';\r\nimport 'brace/mode/json';\r\nimport 'brace/theme/github';\r\n// import {ReactAce as Editor} from 'react-ace-editor';\r\n\r\n//View\r\nimport SpeakerNotesIcon from '@material-ui/icons/SpeakerNotes';\r\nimport CodeIcon from '@material-ui/icons/Code';\r\n\r\nimport NavmenuForm from './NavmenuForm';\r\nimport EntityCreateForm from './EntityCreateForm'\r\nimport WizardEntityCreateForm from './WizardEntityCreateForm'\r\nimport EntityHeaderForm from './EntityHeaderForm'\r\nimport EntitySearchResultForm from './EntitySearchResultForm'\r\n\r\n//Fullscreen\r\nimport FullscreenIcon from '@material-ui/icons/Fullscreen';\r\nimport FullscreenExitIcon from '@material-ui/icons/FullscreenExit';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\n\r\nconst QontoConnector = withStyles({\r\n alternativeLabel: {\r\n top: 10,\r\n left: 'calc(-50% + 16px)',\r\n right: 'calc(50% + 16px)',\r\n },\r\n active: {\r\n '& $line': {\r\n borderColor: '#784af4',\r\n },\r\n },\r\n completed: {\r\n '& $line': {\r\n borderColor: '#784af4',\r\n },\r\n },\r\n line: {\r\n borderColor: '#eaeaf0',\r\n borderTopWidth: 3,\r\n borderRadius: 1,\r\n },\r\n})(StepConnector);\r\n\r\nconst useQontoStepIconStyles = makeStyles({\r\n root: {\r\n color: '#eaeaf0',\r\n display: 'flex',\r\n height: 22,\r\n alignItems: 'center',\r\n },\r\n active: {\r\n color: '#784af4',\r\n },\r\n circle: {\r\n width: 8,\r\n height: 8,\r\n borderRadius: '50%',\r\n backgroundColor: 'currentColor',\r\n },\r\n completed: {\r\n color: '#784af4',\r\n zIndex: 1,\r\n fontSize: 18,\r\n },\r\n jsoneditor: {\r\n height: '300px'\r\n }\r\n});\r\n\r\nfunction QontoStepIcon(props) {\r\n const classes = useQontoStepIconStyles();\r\n const { active, completed } = props;\r\n\r\n return (\r\n \r\n {completed ? :
}\r\n
\r\n );\r\n}\r\n\r\nQontoStepIcon.propTypes = {\r\n active: PropTypes.bool,\r\n completed: PropTypes.bool,\r\n};\r\n\r\nconst theme = createMuiTheme({\r\n typography: {\r\n subtitle1: {\r\n fontSize: 20,\r\n fontStyle: 'bold',\r\n },\r\n }\r\n});\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%',\r\n },\r\n button: {\r\n marginRight: theme.spacing(1),\r\n },\r\n div: {\r\n marginRight: '15px',\r\n float: 'right',\r\n },\r\n textfield: {\r\n margin: theme.spacing(3)\r\n },\r\n btnformview: {\r\n marginRight: theme.spacing(1),\r\n marginLeft: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(1),\r\n fontSize: '0.600rem',\r\n },\r\n //loader\r\n loader: {\r\n position: 'absolute',\r\n left: '65%',\r\n top: '350px',\r\n },\r\n}));\r\n\r\nfunction getSteps() {\r\n return ['Select Context', 'Create JSON'];\r\n}\r\n\r\nexport default function AddConfigurationStepper() {\r\n const classes = useStyles();\r\n const { history, location } = useReactRouter();\r\n const { dispatch } = useDispatch();\r\n const [activeStep, setActiveStep] = React.useState(location.state != null ? 1 : 0);\r\n const [disabled, setDisabled] = React.useState(true);\r\n const steps = getSteps();\r\n\r\n //AutoComplete\r\n const top100Films = [\"test\", \"testing\"\r\n // { title: 'The Shawshank Redemption', year: 1994 },\r\n // { title: 'testing', year: 1995 },\r\n // { title: 'testrole', year: 1996 },\r\n ]\r\n\r\n //progressbar\r\n\r\n const [loader, setLoader] = React.useState(true)\r\n\r\n const [errorMessage, setErrorMessage] = React.useState({\r\n open: false,\r\n errmsg: null,\r\n api: ''\r\n });\r\n const [errorDuplicateMessage, setErrorDuplicateMessage] = React.useState({\r\n open: false,\r\n errmsg: \"Duplicate Configuration\",\r\n });\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n };\r\n\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const appcomponent = useSelector((state) => state.appcomponent)\r\n const [addConfigResponse, setAddConfigurationResponse] = React.useState(null);\r\n const [jsonObj] = React.useState({\r\n jsonDocument: {\r\n id: \"\",\r\n name: \"\",\r\n type: \"\",\r\n // properties:\"\",\r\n data: {\r\n contexts: [{\r\n context: {\r\n component: \"_DEFAULT\",\r\n role: \"_DEFAULT\",\r\n tenant: \"_DEFAULT\",\r\n domain: \"_DEFAULT\",\r\n app: \"_DEFAULT\",\r\n entityType: \"_DEFAULT\",\r\n country: \"_DEFAULT\",\r\n channel: \"_DEFAULT\",\r\n relationship: \"_DEFAULT\",\r\n user: \"_DEFAULT\"\r\n },\r\n jsonData: {}\r\n }]\r\n }\r\n }\r\n })\r\n\r\n //Base config State\r\n const [state, setState] = React.useState({\r\n baseConfig: []\r\n });\r\n\r\n //Context Selector\r\n const [input, setInput] = useInputChange({\r\n componentContextCode: appcomponent.selectedComponent.componentContextCode,\r\n domain: \"_DEFAULT\",\r\n entityType: \"_DEFAULT\",\r\n relationship: \"_DEFAULT\",\r\n role: \"_DEFAULT\",\r\n user: \"_DEFAULT\"\r\n });\r\n\r\n //Json Editor\r\n const [change, setChange] = React.useState({\r\n jsonData: location.state != null ? location.state.jsonDocument.data.contexts[0].jsonData : state.baseConfig\r\n // jsonData: state.baseConfig!=null ? state.baseConfig[0].jsonDocument.data.contexts[0].jsonData:{}\r\n // jsonData:{}\r\n })\r\n const handleOnChange = (event) => {\r\n setChange({\r\n jsonData: event\r\n })\r\n }\r\n\r\n const handleNext = (event) => {\r\n\r\n //Base Configurations Get\r\n let url = \"baseConfigurationGet\"\r\n let postdata = {\r\n userId: reduxAuth.userId,\r\n token: reduxAuth.token,\r\n environmentId: appcomponent.selectedEnvironment.tenantId,\r\n componentContextCode: appcomponent.selectedComponent.componentContextCode\r\n }\r\n\r\n axios.post(url, postdata)\r\n .then(baseConfigResponse => {\r\n state.baseConfig = baseConfigResponse.data.response[0].jsonDocument.data.contexts[0].jsonData;\r\n setChange({ jsonData: baseConfigResponse.data.response[0].jsonDocument.data.contexts[0].jsonData })\r\n })\r\n .catch(err => {\r\n if (typeof err.response != \"object\") {\r\n setErrorMessage({\r\n open: true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n\r\n\r\n\r\n // Configuration Create\r\n if (event === \"Next\") {\r\n if (input._id == null) {\r\n let url = \"configurationCreate\"\r\n let postdata = {\r\n ...contextdp,\r\n jsonDocument: '',\r\n environmentId: appcomponent.selectedEnvironment.tenantId,\r\n isPublished: false,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n }\r\n axios.post(url, postdata)\r\n .then(configResponse => {\r\n setAddConfigurationResponse(configResponse);\r\n setActiveStep(prevActiveStep => prevActiveStep + 1);\r\n })\r\n .catch(err => {\r\n if (err.response.status === 800) {\r\n setErrorDuplicateMessage({\r\n open: true,\r\n // errmsg:err\r\n })\r\n }\r\n if (typeof err.response != \"object\") {\r\n setErrorMessage({\r\n open: true,\r\n })\r\n console.log(err);\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n // Configuration Update\r\n let url = \"configurationUpdate\"\r\n let postdata = null;\r\n if (input._id == null) {\r\n jsonObj.jsonDocument.data.contexts[0].jsonData = change.jsonData;\r\n jsonObj.jsonDocument.id = addConfigResponse.data.response.computedName;\r\n jsonObj.jsonDocument.name = addConfigResponse.data.response.computedName;\r\n jsonObj.jsonDocument.type = \"UiConfig\";\r\n jsonObj.jsonDocument.data.contexts[0].context.component = addConfigResponse.data.response.componentContextCode;\r\n jsonObj.jsonDocument.data.contexts[0].context.role = addConfigResponse.data.response.role;\r\n jsonObj.jsonDocument.data.contexts[0].context.tenant = addConfigResponse.data.response.tenant;\r\n jsonObj.jsonDocument.data.contexts[0].context.domain = addConfigResponse.data.response.domain;\r\n jsonObj.jsonDocument.data.contexts[0].context.entityType = addConfigResponse.data.response.entityType;\r\n jsonObj.jsonDocument.data.contexts[0].context.relationship = addConfigResponse.data.response.relationship;\r\n jsonObj.jsonDocument.data.contexts[0].context.app = addConfigResponse.data.response.app;\r\n jsonObj.jsonDocument.data.contexts[0].context.user = addConfigResponse.data.response.user;\r\n\r\n postdata = {\r\n _id: addConfigResponse.data.response._id,\r\n jsonDocument: jsonObj.jsonDocument,\r\n isPublished: false,\r\n componentContextCode: addConfigResponse.data.response.componentContextCode,\r\n domain: addConfigResponse.data.response.domain,\r\n entityType: addConfigResponse.data.response.entityType,\r\n context1: addConfigResponse.data.response.context1,\r\n context2: addConfigResponse.data.response.context2,\r\n context3: addConfigResponse.data.response.context3,\r\n relationship: addConfigResponse.data.response.relationship,\r\n role: addConfigResponse.data.response.role,\r\n app: addConfigResponse.data.response.app,\r\n isDuplicate: addConfigResponse.data.response.isDuplicate,\r\n environmentId: addConfigResponse.data.response.environmentId,\r\n token: reduxAuth.token,\r\n userId: reduxAuth.userId\r\n };\r\n }\r\n\r\n axios.post(url, postdata)\r\n .then(response => {\r\n // console.log(response);\r\n history.push(\"/Config\");\r\n // dispatch(actions.configuration());\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n if (typeof err.response != \"object\") {\r\n setErrorMessage({\r\n open: true,\r\n // errmsg:err\r\n })\r\n console.log(err);\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n reduxAuth.fullscreentoggle=false\r\n }\r\n };\r\n\r\n const handleCancle = () => {\r\n reduxAuth.fullscreentoggle=false\r\n history.push(\"/Config\");\r\n };\r\n\r\n const handleBack = () => {\r\n setActiveStep(prevActiveStep => prevActiveStep - 1);\r\n setOpenJSONView({\r\n open: false\r\n })\r\n };\r\n\r\n //ToggleView\r\n const [toggleView, setToggleView] = React.useState({\r\n view: 'form',\r\n });\r\n\r\n //Toggle View - handleViewBtnClick\r\n const handleViewBtnClick = (event) => {\r\n if (event === 'form') {\r\n setToggleView({\r\n view: 'form'\r\n })\r\n setOpenJSONView({\r\n open: false\r\n })\r\n }\r\n if (event === 'json') {\r\n setToggleView({\r\n view: 'json'\r\n })\r\n setOpenJSONView({\r\n open: true\r\n })\r\n setChange({\r\n jsonData: location.state != null ? location.state.jsonDocument.data.contexts[0].jsonData : state.baseConfig\r\n })\r\n }\r\n // console.log(\"locationstate-add\",location.state)\r\n }\r\n\r\n const [openJSONView, setOpenJSONView] = React.useState({\r\n open: false,\r\n });\r\n\r\n //context dropdown\r\n const [EntityType, setEntityType] = React.useState([])\r\n const [Domain, setDomain] = React.useState([\"thing\", \"party\", \"referenceData\", \"location\"])\r\n const [Role, setRole] = React.useState([])\r\n const [Relationship, setRelationship] = React.useState([])\r\n const [User, setUser] = React.useState([])\r\n const [contextdp, setcontextdp] = React.useState({\r\n\r\n componentContextCode: appcomponent.selectedComponent.componentContextCode,\r\n domain: \"_DEFAULT\",\r\n entityType: \"_DEFAULT\",\r\n relationship: \"_DEFAULT\",\r\n role: \"_DEFAULT\",\r\n user: \"_DEFAULT\"\r\n\r\n })\r\n const handlecontextdropdown = (event, value) => {\r\n if (value === null) {\r\n value = \"_DEFAULT\"\r\n }\r\n if (event.currentTarget.id.includes(\"Select Domain\")) {\r\n setcontextdp({\r\n ...contextdp,\r\n domain: value\r\n })\r\n }\r\n if (event.currentTarget.id.includes(\"Select EntityType\")) {\r\n setcontextdp({\r\n ...contextdp,\r\n entityType: value\r\n })\r\n }\r\n if (event.currentTarget.id.includes(\"Select Relationship\")) {\r\n setcontextdp({\r\n ...contextdp,\r\n relationship: value\r\n })\r\n }\r\n if (event.currentTarget.id.includes(\"Select Role\")) {\r\n setcontextdp({\r\n ...contextdp,\r\n role: value\r\n })\r\n }\r\n if (event.currentTarget.id.includes(\"select User\")) {\r\n setcontextdp({\r\n ...contextdp,\r\n user: value\r\n })\r\n }\r\n\r\n }\r\n const handlefullscreen=(value)=>{\r\n if(value===\"Fullscreen\")\r\n {\r\n reduxAuth.fullscreentoggle=true\r\n }\r\n else{\r\n reduxAuth.fullscreentoggle=false\r\n }\r\n console.log(\"location.state\",location.state)\r\n history.push(\"./AddConfiguration\",location.state)\r\n}\r\n\r\n\r\n useEffect(() => {\r\n // console.log(location.state);\r\n if (location.state) {\r\n setInput(location.state);\r\n }\r\n\r\n //Get ContextList\r\n let url = \"getContextList\"\r\n let postdata = {\r\n userId: reduxAuth.userId,\r\n token: reduxAuth.token,\r\n environmentId: appcomponent.selectedEnvironment.tenantId,\r\n }\r\n\r\n axios.post(url, postdata)\r\n .then(contextList => {\r\n let clist = contextList.data.response[0];\r\n setEntityType(clist.entityType)\r\n setRole(clist.role)\r\n setUser(clist.user)\r\n setRelationship(clist.relationship)\r\n setLoader(false)\r\n })\r\n .catch(err => {\r\n if (typeof err.response != \"object\") {\r\n setErrorMessage({\r\n open: true,\r\n api: 'contextList',\r\n errmsg: \"Couldn't found context list please sync the tenant...\"\r\n })\r\n console.log(err);\r\n }\r\n else {\r\n if (err.response.status === 403) {\r\n dispatch(actions.authSuccess(reduxAuth.userId, reduxAuth.token, reduxAuth.isAdmin, reduxAuth.environments, false));\r\n }\r\n }\r\n });\r\n\r\n // dispatch(actions.attributelist());\r\n\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n {errorMessage.errmsg != null ? errorMessage.errmsg : \" NetWork Error:Please Check Your Internet Connection\"}\r\n \r\n \r\n \r\n \r\n Configuration Already Exists with the same Context. Please Update the existing one, or create another context!\r\n \r\n \r\n
\r\n \r\n \r\n {appcomponent.selectedApp.displayName}>>{appcomponent.selectedComponent.componentContextCode}\r\n {activeStep !== 0 ? <>}\r\n disabled={activeStep === 0 ? true : false}\r\n startIcon={toggleView.view === 'form' ? : }\r\n onClick={(event) => handleViewBtnClick(toggleView.view === 'form' ? 'json' : 'form')}\r\n >\r\n {toggleView.view === 'form' ? 'JSON' : 'Form'}\r\n \r\n : }\r\n onClick={(event) => handlefullscreen(reduxAuth.fullscreentoggle === false ? \"Fullscreen\" : \"FullscreenExit\")}\r\n >\r\n {reduxAuth.fullscreentoggle === false ? \"Fullscreen\" : \"FullscreenExit\"}\r\n \r\n : null}\r\n \r\n {openJSONView.open || activeStep === 0 ?\r\n }>\r\n {steps.map((label, Index) => (\r\n \r\n {label}\r\n \r\n ))}\r\n : null}\r\n\r\n
\r\n
\r\n
\r\n {activeStep != 0 && openJSONView.open ?\r\n \r\n Back\r\n : null}\r\n\r\n {activeStep === 0 || (activeStep !== 0 && openJSONView.open) ?\r\n handleNext(activeStep === steps.length - 1 ? 'Finish' : 'Next')}\r\n className={classes.button}>\r\n {activeStep === steps.length - 1 ? 'Finish' : 'Next'}\r\n : null}\r\n\r\n\r\n {activeStep === 0 ?\r\n \r\n Cancel\r\n : null\r\n }\r\n
\r\n
\r\n
\r\n\r\n {/* Select Context */}\r\n {activeStep === 0 ?\r\n
\r\n {loader ? :\r\n <>\r\n \r\n\r\n option}\r\n renderInput={params => }\r\n value={contextdp.domain}\r\n onChange={handlecontextdropdown} />\r\n\r\n option}\r\n renderInput={params => }\r\n value={contextdp.entityType}\r\n onChange={handlecontextdropdown} />\r\n\r\n\r\n option}\r\n renderInput={params => }\r\n value={contextdp.relationship}\r\n onChange={handlecontextdropdown} />\r\n\r\n\r\n option}\r\n renderInput={params => }\r\n value={contextdp.role}\r\n onChange={handlecontextdropdown} />\r\n\r\n option}\r\n renderInput={params => }\r\n value={contextdp.user}\r\n onChange={handlecontextdropdown} />\r\n \r\n }\r\n
\r\n : null}\r\n\r\n {openJSONView.open ?\r\n
\r\n
\r\n handleOnChange(event)}>\r\n \r\n
\r\n
: null}\r\n\r\n\r\n {activeStep !== 0 && !openJSONView.open ?
\r\n {appcomponent.selectedComponent.componentContextCode === \"rock-navmenu\" ? : null}\r\n {appcomponent.selectedComponent.componentContextCode === \"rock-entity-create\" ? : null}\r\n {appcomponent.selectedComponent.componentContextCode === \"rock-wizard-entity-create\" ? : null}\r\n {appcomponent.selectedComponent.componentContextCode === \"rock-entity-header\" ? : null}\r\n {appcomponent.selectedComponent.componentContextCode === \"rock-entity-search-result\" ? : null}\r\n {appcomponent.selectedComponent.componentContextCode !== \"rock-navmenu\" &&\r\n appcomponent.selectedComponent.componentContextCode !== \"rock-entity-create\" &&\r\n appcomponent.selectedComponent.componentContextCode !== \"rock-wizard-entity-create\" &&\r\n appcomponent.selectedComponent.componentContextCode !== \"rock-entity-header\" &&\r\n appcomponent.selectedComponent.componentContextCode !== \"rock-entity-search-result\" ?\r\n setOpenJSONView({\r\n open: true\r\n })\r\n\r\n : null}\r\n
: null\r\n }\r\n
\r\n
\r\n );\r\n}\r\n\r\n//Compbobox\r\n\r\n/* option.title}\r\n style={{float:'left'}}\r\n renderInput={params => }/>\r\n\r\n option.title}\r\n style={{float:'left'}}\r\n renderInput={params => }/>\r\n\r\n option.title}\r\n style={{float:'left'}}\r\n renderInput={params => } />\r\n\r\n option.title}\r\n style={{float:'left'}}\r\n renderInput={params => } />\r\n\r\n option.title}\r\n style={{float:'left'}}\r\n renderInput={params => } /> */\r\n","import React from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport useReactRouter from 'use-react-router';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Alert, AlertTitle } from '@material-ui/lab';\r\nimport Button from '@material-ui/core/Button';\r\nimport Header from './Header';\r\nimport AppSelector from './AppSelector';\r\nimport ComponentSelector from './ComponentSelector';\r\nimport Configuration from './Configuration';\r\nimport ManageConfig from './ManageConfig';\r\nimport AddConfiguration from './AddConfiguration';\r\nimport * as actions from '../../Store/Actions';\r\nimport { authProvider } from '../../authProvider';\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n content: {\r\n padding: theme.spacing(1),\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n div1: {\r\n float: 'left',\r\n overflowY: 'auto',\r\n width: 210,\r\n boxShadow: '2px 2px 2px 2px #aaaaaa',\r\n margin: theme.spacing(1),\r\n height: 575,\r\n radius: '10px'\r\n },\r\n div2: {\r\n float: 'left',\r\n overflowY: 'auto',\r\n width: 220,\r\n boxShadow: '2px 2px 2px 2px #aaaaaa',\r\n marginRight: theme.spacing(1),\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n height: 575,\r\n radius: '10px',\r\n },\r\n div3: {\r\n overflowY: 'auto',\r\n marginRight: theme.spacing(1),\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n height: 575,\r\n boxShadow: '2px 2px 2px 2px #aaaaaa',\r\n },\r\n bullet: {\r\n display: 'inline-block',\r\n margin: '0 2px',\r\n transform: 'scale(0.8)',\r\n },\r\n cardheader: {\r\n fontSize: 10,\r\n background: 'linear-gradient(45deg,#bdbdbd 90%,#bdbdbd 10%)',\r\n color: 'black',\r\n radius: '15px'\r\n },\r\n pos: {\r\n marginBottom: 12,\r\n },\r\n editdiv: {\r\n float: 'left',\r\n overflowY: 'auto',\r\n boxShadow: '2px 2px 2px 2px #aaaaaa',\r\n height: 575,\r\n },\r\n scedit: {\r\n margin: theme.spacing(1),\r\n }\r\n}));\r\n\r\nexport default function ClientLayout() {\r\n const classes = useStyles();\r\n let sessionAlert = null;\r\n const reduxAuth = useSelector((state) => state.auth)\r\n const dispatch = useDispatch();\r\n const { location, history } = useReactRouter();\r\n if (reduxAuth.isSessionValid.toString() === \"false\") {\r\n sessionAlert =\r\n authLogoutClick()}>\r\n LOGOUT\r\n }>\r\n Error\r\n For security reasons, Your session has expired. Please save your work and re-login to continue.\r\n ;\r\n }\r\n const authLogoutClick = () => {\r\n dispatch(actions.authLogout());\r\n authProvider.logout();\r\n }\r\n // console.log(\"location.state\",location.state)\r\n\r\n return (\r\n // Same Component Edit\r\n
\r\n
\r\n
\r\n
\r\n {reduxAuth.fullscreentoggle===false? <>
\r\n \r\n
\r\n
\r\n \r\n
:null}\r\n \r\n
\r\n {sessionAlert}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n //End\r\n );\r\n}","import React from 'react';\r\nimport errorlogo from '../Assets/Images/fix-403-Forbidden-Error.png';\r\nimport { Container } from '@material-ui/core';\r\n\r\nexport default function Errorpage()\r\n{\r\n return(\r\n
\r\n \"loading...\"\r\n
\r\n )\r\n\r\n}\r\n\r\n","import React, { Component } from 'react';\r\nimport Login from './Container/Login';\r\nimport Admin from './Container/Admin';\r\nimport Client from './Container/Client';\r\nimport Errorpage from './Container/Errorpage';\r\nimport { BrowserRouter, Switch, Route, Redirect } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport * as actions from './Store/Actions';\r\nimport './App.css';\r\n\r\nimport Container from '@material-ui/core/Container';\r\nimport { authProvider } from './authProvider';\r\nimport { AzureAD, AuthenticationState } from 'react-aad-msal';\r\n// import axios from './Helpers/Axiosbase';\r\nclass App extends Component {\r\n\r\n state = {\r\n status: false\r\n }\r\n\r\n onValidLogin = (acinfo) => {\r\n this.state.status = true;\r\n // console.log(JSON.stringify(acinfo));\r\n this.props.onAuth(acinfo);\r\n }\r\n\r\n render() {\r\n let isadmin = this.props.isAdmin;\r\n return (\r\n \r\n {\r\n ({ login, logout, authenticationState, error, accountInfo }) => {\r\n switch (authenticationState) {\r\n case AuthenticationState.Authenticated:\r\n return (\r\n <>\r\n {!this.state.status ? this.onValidLogin(accountInfo.account) : null}\r\n \r\n \r\n \r\n \r\n {this.props.error!==null?:null}\r\n {this.props.isAuthenticated ? : }\r\n \r\n \r\n\r\n \r\n );\r\n case AuthenticationState.Unauthenticated:\r\n return (\r\n
\r\n {error &&

An error occured during authentication, please try again!

}\r\n

\r\n Hey stranger, you look new!\r\n \r\n

\r\n
\r\n );\r\n case AuthenticationState.InProgress:\r\n return (

Authenticating...

);\r\n \r\n default: return (

Authenticating...

);\r\n }\r\n }\r\n }\r\n
\r\n\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n isAuthenticated: state.auth.userId !== null,\r\n isAdmin: state.auth.isAdmin,\r\n error: state.auth.error\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onAuth: (loginValues) => dispatch(actions.auth(loginValues))\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\r\n// export default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","export const updateObject = (oldObject, updatedProperties) => {\r\n return {\r\n ...oldObject,\r\n ...updatedProperties\r\n };\r\n};","import * as actionTypes from '../Actions/ActionTypes';\r\nimport { updateObject } from '../../Helpers/Utility';\r\n\r\nconst initialState = {\r\n token: null,\r\n userId: null,\r\n isAdmin: null,\r\n environments: null,\r\n isSessionValid: null,\r\n error: null,\r\n loading: false,\r\n defaultEnvironment:null,\r\n fullscreentoggle:false\r\n};\r\n\r\nconst authStart = (state, action) => {\r\n return updateObject(state, { error: null, loading: true });\r\n};\r\n\r\nconst authSuccess = (state, action) => {\r\n return updateObject(state, {\r\n token: action.token,\r\n userId: action.userId,\r\n isAdmin: action.isAdmin,\r\n environments: action.environments,\r\n isSessionValid: action.isSessionValid,\r\n defaultEnvironment:action.defaultEnvironment\r\n });\r\n};\r\n\r\nconst authFail = (state, action) => {\r\n return updateObject(state, {\r\n error: action.error,\r\n loading: false\r\n });\r\n};\r\n\r\nconst authLogout = (state, action) => {\r\n // console.log(\"Reducer AuthLogout\");\r\n return updateObject(state, { userId: null, token: null, isAdmin: null,environments:null, isSessionValid: false,defaultEnvironment:null,error:null });\r\n};\r\n\r\nconst setAuthRedirectPath = (state, action) => {\r\n return updateObject(state, { authRedirectPath: action.path })\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n // console.log(\"Reducer Called: \" + action.type);\r\n switch (action.type) {\r\n case actionTypes.AUTH_START: return authStart(state, action);\r\n case actionTypes.AUTH_SUCCESS: return authSuccess(state, action);\r\n case actionTypes.AUTH_FAIL: return authFail(state, action);\r\n case actionTypes.AUTH_LOGOUT: return authLogout(state, action);\r\n case actionTypes.SET_AUTH_REDIRECT_PATH: return setAuthRedirectPath(state, action);\r\n \r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;","import * as actionTypes from '../Actions/ActionTypes';\r\nimport { updateObject } from '../../Helpers/Utility';\r\n\r\nconst initialState = {\r\n userId: null\r\n};\r\n\r\nconst userEditing = (state, action) => {\r\n return updateObject(state, { userId: action.userId });\r\n};\r\n\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.USER_EDITING: return userEditing(state, action);\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;","import * as actionTypes from '../Actions/ActionTypes';\r\nimport { updateObject } from '../../Helpers/Utility';\r\n\r\nconst initialState = {\r\n selectedApp: null,\r\n allComponent:null,\r\n selectedComponent:null,\r\n selectedEnvironment:null,\r\n selectedConfiguration:null,\r\n selectedConfigurationForBulkCopy:[],\r\n configFail:null,\r\n attributeList:null\r\n}\r\n\r\nconst selectedApp = (state, action) => {\r\n return updateObject(state, {\r\n selectedApp: action.selectedApp,\r\n selectedComponent: null\r\n // allcomponent: action.allcomponent,\r\n });\r\n};\r\nconst selectedComponent = (state, action) => {\r\n return updateObject(state, {\r\n selectedComponent: action.selectedComponent,\r\n // allcomponent: action.allcomponent,\r\n });\r\n};\r\n\r\nconst allComponent = (state, action) => {\r\n return updateObject(state, {\r\n allComponent: action.allComponent,\r\n });\r\n};\r\n\r\nconst selectedEnvironment = (state, action) => {\r\n return updateObject(state, {\r\n selectedEnvironment: action.selectedEnvironment,\r\n });\r\n};\r\n\r\nconst selectedConfiguration = (state, action) => {\r\n return updateObject(state, {\r\n selectedConfiguration: action.selectedConfiguration,\r\n });\r\n};\r\n\r\nconst selectedConfigurationForBulkCopy = (state, action) => {\r\n // console.log(\"selectedConfigurationForBulkCopy\");\r\n // console.log(action.selectedConfigurationForBulkCopy);\r\n return updateObject(state, {\r\n selectedConfigurationForBulkCopy: action.selectedConfigurationForBulkCopy,\r\n });\r\n \r\n};\r\n\r\n//Attribute List\r\nconst attributeList = (state, action) => {\r\n return updateObject(state, {\r\n attributeList: action.attributeList,\r\n });\r\n};\r\n\r\n\r\nconst authLogout = (state, action) => {\r\n // console.log(\"Reducer AuthLogout\");\r\n return updateObject(state, { selectedApp: null, allComponent: null, selectedComponent: null, selectedEnvironment: null,selectedConfiguration:null,selectedConfigurationForBulkCopy:[],attributeList:null });\r\n};\r\n\r\nconst configFail = (state, action) => {\r\n // console.log(\"Reducer AuthLogout\");\r\n return updateObject(state, {configFail:action});\r\n}; \r\nconst reducer = (state = initialState, action) => {\r\n // console.log(\"Reducer Called: \" + action.type);\r\n switch (action.type) {\r\n case actionTypes.GET_ALL_COMPONENT: return allComponent(state, action);\r\n case actionTypes.SELECTED_APP: return selectedApp(state, action);\r\n case actionTypes.SELECTED_COMPONENT: return selectedComponent(state, action);\r\n case actionTypes.SELECTED_ENVIRONMENT: return selectedEnvironment(state, action);\r\n case actionTypes.SELECTED_CONFIGURATION:return selectedConfiguration(state, action);\r\n case actionTypes.SELECTED_CONFIGURATION_FOR_BULKCOPY:return selectedConfigurationForBulkCopy(state, action);\r\n case actionTypes.ATTRIBUTE_LIST:return attributeList(state, action);\r\n case actionTypes.AUTH_LOGOUT: return authLogout(state, action);\r\n case actionTypes.CONFIG_FAIL: return configFail(state, action);\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport { Provider } from 'react-redux';\r\nimport { createStore, applyMiddleware, compose, combineReducers } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport authReducer from './Store/Reducers/Auth';\r\nimport userReducer from './Store/Reducers/User';\r\n// import authprovider from './authProvider';\r\nimport AppsComponentsReducer from './Store/Reducers/AppsComponents';\r\n\r\n// const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\n\r\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\r\n\r\nconst rootReducer = combineReducers({\r\n // authprovider:authprovider,\r\n auth: authReducer,\r\n user: userReducer,\r\n appcomponent:AppsComponentsReducer\r\n});\r\n\r\nconst store = createStore(rootReducer, composeEnhancers(\r\n applyMiddleware(thunk)\r\n));\r\n\r\nconst app = (\r\n \r\n \r\n \r\n);\r\n\r\nReactDOM.render(app, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}