{"version":3,"sources":["components/alerts/alert.js","components/forms/baseAppForm.js","components/footer/footer.js","apis/apiClient.js","components/login/verifyLogin.js","components/validations/logoutUser.js","components/validations/general.js","components/alerts/display-alert.js","components/login/finalPage.js","App.js","components/forms/baseRegisterForm.js","components/register/verifyEmail.js","strings/strings.js","components/register/registerMFA.js","components/register/finalPage.js","components/register/registerCognito.js","register.js","reportWebVitals.js","components/DataTable/dataTable.js","components/others/getPageAccess.js","components/admin/user/expandableUserList.js","components/loader/loader.js","components/admin/user/admin_user_section.js","components/admin/admin_company_section.js","components/iotDeviceDashboard/iotDeviceDash.js","components/validations/userSessionValidation.js","components/user/UserProfile.js","404-notfound.js","components/forms/baseConfirmRegisterForm.js","confirm_register.js","components/user/test-auth.js","components/user/ScheduleMessage/regionSelect.js","components/user/ScheduleMessage/messageSettings.js","components/others/uploadS3.js","components/user/ScheduleMessage/create-message-new.js","components/user/MessageHistory/mesageHistory.js","components/admin/region/addStation.js","components/admin/region/stationTableData.js","components/admin/region/region_station_section.js","components/register/forgotPassword.js","components/others/uploadXMLS3.js","components/user/ScheduleMessage/messageSettingsPayload.js","components/user/ScheduleMessage/create-message-payload.js","components/user/ScheduleMessage/messageSettingsIoT.js","components/user/ScheduleMessage/create-message-iot-payload.js","unauthorized.js","components/admin/admin_home.js","components/general/about.js","components/navbar/NavBarData.js","components/navbar/Navbar.js","components/navbar/NavbarBasic.js","components/general/loader.js","components/general/dashboard.js","components/admin/errorLogs.js","components/msacstations/updateStationLists.js","components/admin/systemdashboard.js","components/register/recoverMFA.js","components/user/ScheduleMessage/messageSettingsPayload-evse.js","components/user/ScheduleMessage/create-message-evse.js","components/midas/midas_download.js","index.js","constants/constants.js","components/validations/generalValidations.js","components/validations/basicRegFormValidations.js"],"names":["Alerts","props","message","alertType","setStatus","_jsx","children","Alert","onClose","variant","severity","BaseAppForm","setEmail","email","setPassword","password","loginPressed","setLogginPressed","setUser","setAlertType","setMessage","setValidateMessage","setStage","stage","showPassState","setShowPassState","useState","validateEmail","value","validateEmailMain","validatePassword","validatePasswordMain","showPassword","Formik","initialValues","onSubmit","async","Auth","signIn","then","result","err","_ref","errors","touched","_jsxs","Form","className","Field","type","name","placeholder","validate","style","padding","position","bottom","right","VisibilityIcon","onClick","VisibilityOffIcon","href","disabled","window","location","Footer","ApiClient","method","endpoint","params","headers","response","toLowerCase","axios","get","API_ENDPOINT_URL","res","code","data","catch","error","post","VerifyLogin","user","setAccess_levels","access_levels","authenticationCode","setAuthenticationCode","authClicked","setAuthClicked","validateAuth","validateAuthMain","access_token","currentSession","getAccessToken","getJwtToken","verifyTotpToken","res1","x","trim","split","map","e","console","log","Cookies","set","autoComplete","autoFocus","logout","signOut","remove","encryptHash","SHA256","process","toString","displayAlert","alertMessage","setAlert","setSeverity","Stack","sx","width","spacing","FinalPage","setAlertMessage","useHistory","alert","useEffect","Authorization","status","setTimeout","marginTop","AlertTitle","AppCopy","validateMessage","useLayoutEffect","src","origin","alt","height","overflow","maxHeight","BaseRegisterForm","setName","phoneNumber","setPhoneNumber","setPhoneError","phoneError","setSelectedCompany","company","regClicked","regFailed","setRegClicked","setRegister","setConfirmPassword","showCPassState","setShowCPassState","validateUsername","validateUsernameMain","validatePhonenumber","validatePhonenumberMain","validateConfirmPassword","validateConfirmPasswordMain","validateCompany","dvalue","validateCompanyMain","showCPassword","confirmPassword","signUp","required","PhoneInput","international","onChange","id","VerifyEmail","setGetMFA","setMFACode","length","confirmSignUp","setupTOTP","attributes","autocomplete","auth","security_questions","RegisterMFA","randomCode","setrandomCode","Math","random","substring","toUpperCase","loading","setLoading","mfaCodeError","setmfaCodeError","mfaCodeMessage","setmfaCodeMessage","MFACode","setDoLogin","doLogin","securityQuestion","setSecurityQuestion","securityAnswer","setSecurityAnswer","close","setClose","validateCodeMFA","setvalidateCodeMFA","enableValidateCMFA","setEnableValidateCodeMFA","authChallengeSuccess","setauthChallengeSuccess","showPass","setshowPass","nodeRef","useRef","cognitoUser","setcognitoUser","confirmed","setconfirmed","toggleShowPass","validateSecurityQuestion","SweetAlert","info","title","color","onConfirm","closeAlert","textAlign","QRCode","TextField","label","InputLabelProps","shrink","target","Box","m","currentAuthenticatedUser","username","CircularProgress","size","red","top","left","marginLeft","paddingLeft","paddingRight","Select","labelId","event","val","idx","MenuItem","Button","paraphrase","cipher","CryptoJS","AES","encrypt","question","history","push","pathname","registerCognitoUser","phone","setRegFailed","phone_number","String","includes","resendSignUp","Register","getMFA","selectedCompany","setCompany","register","swtAlertTitle","setswtAlertTitle","swtAlertType","setswtAlertType","showAlert","setshowAlert","getCompanyData","addNewUserToDB","companyname","approved","success","showCancel","cancelBtnText","confirmBtnText","onCancel","reload","focusCancelBtn","minHeight","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","theme","createMuiTheme","palette","primary","light","main","dark","contrastText","secondary","DataTable","tableData","tableColumns","tableOptions","MuiThemeProvider","MUIDataTable","columns","options","checkPageAccess","urlpath","page_id","authorization","ExpandableUserList","expandRows","setExpandRows","rows","setrows","checked","setChecked","expandData","checkVal","i","filter","el","company_name","temp1","temp2","stations","is_admin","index","filterType","responsive","tableBodyHeight","tableBodyMaxHeight","customToolbarSelect","selectableRows","download","print","sortOrder","direction","expandableRows","renderExpandableRow","rowData","rowMeta","_expandRows$cmp","cmp","_Fragment","colSpan","TableContainer","component","Paper","overflowX","Table","minWidth","stickyHeader","TableHead","TableRow","TableCell","TableBody","row","scope","Checkbox","checkArr","c","dataIndex","a","expandHandleChange","handleChange","whiteSpace","clickHandler","expandClickHandler","page","Datatable","Loader","percentage","loaderType","Backdrop","zIndex","drawer","open","CircularProgressbar","text","styles","buildStyles","textSize","AdminUserSectionV2","showSweetAlert","setshowSweetAlert","sweetalertMessage","setsweetalertMessage","setData","tableLoader","settableLoader","setcompanyname","approveDisable","setapproveDisable","blockDisable","setblockDisable","selectedUsers","setselectedUsers","accessListArray","setaccessListArray","indx","setindx","userNameApprove","setuserNameApprove","userEmailApprove","setuserEmailApprove","setopen","open2","setopen2","lastLoginTime","setlastLoginTime","userEmail","setuserEmail","ipAddress","setipAddress","ipAddressList","setipAddressList","accessGrants","setaccessGrants","accessLevels","setaccessLevels","modalCheckBoxValidation","setmodalCheckBoxValidation","newUserAccessLevels","setnewUserAccessLevels","createnewUserAccessLevels","setcreatenewUserAccessLevels","setname","setemail","setselectedCompany","selectedApprovedlist","setselectedApprovedlist","disabledButton","setdisabledButton","checkBoxValidation","setcheckBoxValidation","stationAddUserName","setstationAddUserName","stationsToAdd","setstationsToAdd","stationsData","setstationsData","allocateRemove","setallocateRemove","alertTitle","setAlertTitle","confirmAction","setConfirmAction","hrefLink","setHrefLink","setloading","setLoaderType","setpercentage","stationsToAddError","setstationsToAddError","currentRowsSelected","allRowsSelected","access_privilege_list","is_open","handleStationsToAddChange","openState","cols","display","sort","customBodyRender","tableMeta","updateValue","rowIndex","onRowsSelect","rowsPerPage","MenuProps","PaperProps","test","validateCompanyname","radiofunction","document","comp_names","getauth","resp1","resp","companyName","replace","acc","indexOf","closeModal","handleAccessLevelChange","add_remove","acl","acl_updated","parseInt","handlenewUserAccessLevelChange","acc_level","approveModalTitle","confirmAlert","hideAlert","align","backgroundColor","borderColor","fullwidth","doApproveModal","state","alignItems","mr","LinearProgress","Typography","Modal","show","onHide","animation","ModalHeader","closeButton","ModalTitle","ModalBody","FormControl","defaultChecked","accessList","deleteCognitoUser","resendRegLink","Date","toLocaleString","inputProps","CheckIcon","List","maxWidth","wordBreak","ListItem","ListItemAvatar","Avatar","WifiIcon","ListItemText","ListItemSecondaryAction","IconButton","edge","CloseIcon","ModalFooter","doApprove","ImportExportIcon","response1","access_list","as","InputLabel","multiple","renderValue","selected","join","input","OutlinedInput","margin","Array","isArray","v","call_sign","FormLabel","RadioGroup","defaultValue","FormControlLabel","control","Radio","option","AdminCompanySection","_data$idx3","address_error","setaddress_error","register_error","setregister_error","whitelist_error","setwhitelist_error","companyid","setcompanyid","add_val","setadd_val","add_company","setadd_company","registerval","setregisterval","whitelistval","setwhitelistval","setdata","userAuthToken","setuserAuthToken","admin_email","setadmin_email","xperi_fae_email","setxperi_fae_email","stationAddCompanyName","setstationAddCompanyName","showDataserviceModal","setshowDataserviceModal","setidx","servicesData","setservicesData","companydataservicesList","setcompanydataservicesList","selectedList","setselectedList","showFramingAlert","setshowFramingAlert","framingAnswer","setframingAnswer","Tooltip","arrow","framing","DisplaySettingsIcon","validateUser","services_data","temp","_data$idx","_data$idx2","dservices","dataServices","y","validateCompanyId","validateAdminEmail","validateFaeEmail","warning","confirmBtnBsStyle","company_id","companyId","do_framing","updateFraming","search","viewColumns","fixedHeader","address","adminname","adminemail","faeemail","company_address","fae_email","addrs","addressValidation","backdrop","keyboard","Header","Title","Object","entries","Body","_servicesData$v$trim","handleChangeDataServicesList","assign","autoWidth","selected_list","updateCompanyDataServiceDB","modeAlias","IOTDeviceDash","PureComponent","constructor","super","_","allRows","this","setState","rowsSelected","onRowsSelect2","curRowSelected","arrVal","j","removeButtonState","enableButtonState","enableIndex","onRowsSelect3","disableIndex","onChangeRowsPerPage","tabledataUpdate","deviceId","dId","saveDeviceDisableStatus","enableArr","tableEnable","disableArr","tableDisable","forEach","DeviceID","splice","saveDeviceEnableStatus","saveModal","getElementById","locationState","locationStreet","deviceAlias","locationCity","notes","locationInside","ignoreDevice","deviceDetail","modalState","deviceIdd","DeviceAlias","editBtn","delete","tableData_copy","element","array","filterArray","obj","hover","tableName","detail","optionsArray","enable","disable","optionsDropdown","deviceTableScan","tempTableData","cMin","cMax","rMin","rMax","min","isNaN","max","d","dd","getDate","mm","getMonth","yyyy","getFullYear","Timestamp","Freq","cdn0","mode","rssi","msgs","msgID","PacketSize","rssiRange","cdn0Range","lastUpdateTime","ignoreModalState","rssiFilterChecked","msgFilterChecked","dateFilterChecked","cdnFilterChecked","selectedValues","dateMin","dateMax","docClient","componentWillUnmount","componentDidMount","render","columns2","setCellProps","background","setCellHeaderProps","updateValuep","customFilterListOptions","update","filterList","filterPos","filterOptions","names","logic","dt","filters","column","FormGroup","yy","marginRight","Slider","newValue","valueLabelDisplay","options2","pagination","options3","onRowSelectionChange","rowsPerPageOptions","downloadOptions","filename","useDisplayedColumnsOnly","useDisplayedRowsOnly","customToolbar","order","RefreshIcon","borderBottom","marginBottom","alignSelf","React","Fragment","ArrowForwardIosIcon","ArrowBackIosIcon","UserProfileS","setWidth","innerWidth","setHeight","innerHeight","phn","setPhn","setCompanyId","faeEmail","setfaeEmail","setOpen","setstage","setcode","setpassword","showCPass","setshowCPass","btnLoad","setbtnLoad","apiAccessSwitchLabel","setapiAccessSwitchLabel","apiAccessSwitchValue","setapiAccessSwitchValue","closeAlertbtn","setcloseAlertbtn","validateCode","toggleShowCPass","out","access_key","secret","createElement","file","Blob","URL","createObjectURL","body","appendChild","click","paddingTop","paddingBottom","round","forgotPassword","CodeDeliveryDetails","Destination","LockIcon","fontSize","Switch","updateSwitchState","handleClose","confirmPasswordChange","forgotPasswordSubmit","PageNotFound","BaseConfirmRegisterForm","userCompany","userName","userPhone","confirmRegClicked","setConfirmClicked","confirmRegFailed","setConfirm","Confirm","confirm","getUserData","token","URLSearchParams","TestAuth","valid","RegionSelect","selectOptions","setselectValuesList","isAdding","handleClick","isMobile","setisMobile","Multiselect","onSelect","selectedItem","onRemove","displayValue","MessageSettings","bitRateTransmitMessage","setbitRateTransmitMessage","setbroadcast","date","setDate","utcdate","setFile","minimumBitRate","setutcDate","timezone","settimezone","transferVia","settransferVia","dateNow","setrepeatCount","setrepeatInterval","showRepeat","setshowRepeat","setdoFraming","yourtimeZone","setyourTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","hours","GMT","changed","setchanged","showError","setshowError","dateTimeError","setdateTimeError","fileError","setfileError","showBI","setshowBI","formatDate","inp","slice","tz","getElementsByName","files","endsWith","fSize","input_dt","today","getTime","setHours","getHours","borderTop","pointerEvents","opacity","labelwidth","helperText","hour","minute","hour12","fullWidth","InputProps","rowSpan","accept","uploadToS3","signedURL","put","onUploadProgress","progressEvent","uploaded","loaded","total","CreateMessageNew","setselectOptions","selectValuesList","settableData","selectedStationIds","setselectedStationIds","selectedStationCallsign","setselectedStationCallsign","setisAdding","broadcast","setminimumBitRate","uploadState","setuploadState","uploadSuccess","setSuccess","uploadId","setuploadId","redirect","setRedirect","repeatCount","repeatInterval","doFraming","dataFolder","setdataFolder","getMinutes","CheckCircleIcon","fill","DangerousIcon","tempDataFolder","DeleteForeverIcon","tableDataTemp","selectedStationIdsTemp","selectedStationcallsignTemp","dataFolderTemp","responseStat","regions","region","joined","z","p","minBitRate","scheduletime","filesize","destinationstations","destinationstationsIds","datafolders","broadcastimmediate","version","contentType","_id","signedRequest","response2","recordIds","totalRecords","submit","SendIcon","StyledTableCell","styled","tableCellClasses","head","common","white","StyledTableRow","_ref2","action","border","MesageHistory","responseData","setResponseData","selectedRow","setselectedRow","setShow","showDelete","setShowDelete","showReschedule","setshowReschedule","rescheduleDate","setrescheduleDate","setDateFilterChecked","setDateMin","setDateMax","dateFilterChecked2","setDateFilterChecked2","dateMin2","setDateMin2","dateMax2","setDateMax2","cancelSendError","setcancelSendError","canCancel","setcanCancel","canCancelBtn","setcanCancelBtn","inpDate","setinpDate","broadcastImmediate","setbroadcastImmediate","queryResults","setqueryResults","getAllMessagesFlag","setgetAllMessagesFlag","docsCount","setdocsCount","startDate","setstartDate","toISOString","substr","endDate","setendDate","anchorEl","setanchorEl","limitMsgSnack","setlimitMsgSnack","messagePageLength","setmessagePageLength","string_map","message_id","initiated_at","schedule_time","file_name","file_size","destination_station","parseDate","handleShowDelete","handleShowReschedule","openPopover","Boolean","_responseData$selecte","_responseData$selecte2","DateTime","fromHTTP","zone","transmit_status","getDateFormatted","padStart","getSeconds","sortCompare","obj1","obj2","findIndex","msgCodes","getMessageFunction","currentTarget","DateRangeIcon","getAllMessageFunction","dateFunction","initiatedAt","aaa","values","date1","date2","parseFloat","toFixed","status_updated","updatedAt","toUTCString","Error","Container","getAllMessageFunctionBtn","elevation","fromISO","reschedule_time","setZone","diff","now","toObject","milliseconds","toISO","rescheduleMessage","xmlData","environment","fileName","cancel","Popover","anchorOrigin","vertical","horizontal","useStyles","makeStyles","formControl","AddStation","regionArr","setRegionArr","classes","addId","addName","newRegionName","addRegionName","addRegion","addCallSign","frequency","addFrequency","bit_rate","addbitRate","port","addport","sshport","addsshport","adminName","setAdminName","adminEmail","setAdminEmail","destination","addDestination","ipAdd","addIp","show_error","setShow_error","show_error2","setShow_error2","idErr","errId","nameErr","errName","newRegionErr","errNewRegion","regionErr","errRegion","call_signErr","errCallSign","frequencyErr","errFrequency","bit_rateErr","errbitRate","destErr","setdestErr","port_err","errporterr","ssh_port_err","errsshporterr","admin_name_err","setadmin_name_err","admin_email_err","setadmin_email_err","ipErr","errIp","regionDropdown","showRegionDropdown","saveRegion","showSaveRegion","showRegionDelete","setShowRegionDelete","showText","handleCloseModal","regionErrText","setRegionErrText","nameErrText","setNameErrText","idErrText","setIdErrText","callSignErrText","setCallSignErrText","frequencyErrText","setFrequencyErrText","bitRateErrText","setbitRateErrText","ipErrText","setIpErrText","portErrText","setPortErrText","sshPortErrText","setSshPortErrText","adminNameErrText","setAdminNameErrText","adminEmailErrText","setAdminEmailErrText","destErrText","setdestErrText","newRegionErrText","setNewRegionErrText","newRegion","save","errorMsg","validateRegionMain","validateRegion","validateRegionNameMain","validateRegionName","SaveIcon","AddIcon","CancelIcon","validateNameMain","validateName","validateIdMain","validateId","validateCallSignMain","validateCallSign","validateFrequencyMain","validateFrequency","validateBitRateMain","validateBitRate","validateIpMain","validatePortMain","validatePort","validateSSHPort","validateAdminName","validateDestinationMain","validateDestination","ip","admin_name","add","regionName","arr","addNewRegion","StationTableData","stationArr","setBitRateEdit","setstationnameEdit","setIpEdit","setportEdit","setsshportEdit","setadminEmailEdit","setadminNameEdit","setFreqencyEdit","setdestinationEdit","handleShow","setshowPortStatus","updatePingImmediate","setnotifRow","setadminEmail","active_status","ErrorIcon","is_active","WifiOffIcon","borderRadius","overall_status","NetworkPingIcon","NotificationsActiveIcon","EditIcon","ssh_port","RegionStationSection","_stationArr$selectedR","_stationArr$selectedR2","_stationArr$selectedR3","_stationArr$selectedR4","_stationArr$selectedR5","_stationArr$selectedR6","_stationArr$selectedR7","_stationArr$selectedR8","_stationArr$selectedR9","_stationArr$selectedR10","_stationArr$selectedR11","_stationArr$selectedR12","_stationArr$selectedR13","_stationArr$selectedR14","_stationArr$selectedR15","_stationArr$selectedR16","_notificationData$not6","_notificationData$not7","_notificationData$not8","_notificationData$not11","_notificationData$not14","_notificationData$not15","setStation","showConfirmDelete","setShowConfirmDelete","setRowsPerPage","setTableLoader","setToken","stationnameEdit","bitRate","portEdit","sshportEdit","adminNameEdit","adminEmailEdit","destinationEdit","notifRow","notificationData","setnotificationData","newStationEdit","showNewStationEdit","newStationEditTxt","setNewStationEditTxt","bitRateEdit","showBitRateEdit","bitRateEditTxt","setBitRateEditTxt","ipEdit","showIpEdit","ipEditTxt","setIpEditTxt","httpportEdit","showHttpportEdit","httpportEditTxt","sethttpportEditTxt","sshportEditVal","showSSHportEdit","sshportEditTxt","setSSHportEditTxt","stationAdminNameEdit","showStationAdminNameEdit","stationAdminNameEditTxt","setStationAdminNameEditTxt","stationAdminEmailEdit","showStationAdminEmailEdit","stationAdminEmailEditTxt","setStationAdminEmailEditTxt","frequencyEdit","showFrequencyEdit","frequencyEditTxt","setFrequencyEditTxt","destinationPathEdit","showDestinationPathEdit","destinationPathEditTxt","setDestinationPathEditTxt","stationStatusIP","setstationStatusIP","stationStatusPort","setstationStatusPort","stationStatusResponse","setstationStatusResponse","showStationStatus","setshowStationStatus","showPortStatus","showNotifSettings","setshowNotifSettings","notifSettingsEnabled","setnotifSettingsEnabled","notifSettingsMailList","setnotifSettingsMailList","notifSettingsExcludeList","setnotifSettingsExcludeList","notifSettingsInterval","setnotifSettingsInterval","notifSettingsSnooze","setnotifSettingsSnooze","emailPauseNotifDelete","setemailPauseNotifDelete","showEditNotifInterval","setshowEditNotifInterval","showAddEmailNotifications","setshowAddEmailNotifications","showDeleteNotifPause","setshowDeleteNotifPause","deleteNotificationPauseVersion","setdeleteNotificationPauseVersion","showSnoozeError","setShowSnoozeError","showNewEmailListError","setshowNewEmailListError","showSnoozeEmailListError","setshowSnoozeEmailListError","showNotifIntervalError","setshowNotifIntervalError","handleCloseDelete","result2","result3","_notificationData$not","_notificationData$not2","_notificationData$not3","mail_list","exclude_list","notification_interval","deleteNotificationPause","ver","confirmDeleteNotificationPause","ver1HTMLNotifPause","ver2HTMLNotifPause","stationid","allStations","updateStationStatus","validateEditStationName","validateEditBitRate","validateEditIp","validateEditPort","validateEditSSHPort","validateEditAdminName","validateEditAdminEmail","validateEditFrequency","validateEditDestination","callSign","stationname","stnArr","errMsg","msg","saveStationEdit","handleHideStationStatusModal","match","checkLiveStationStatus","firstInactiveAt","status_ssh","status_gen4","status_msac2","importer_version","station_version","service_list","serviceName","ScheduleRatePercent","last_notified_at","InfoIcon","Autocomplete","clearIcon","_notificationData$not9","list","_notificationData$not10","from","Set","renderInput","inputMode","pattern","_notificationData$not12","Chip","onDelete","deleteIcon","DeleteIcon","cursor","PersonAddIcon","autoSelect","_notificationData$not13","freeSolo","exclude_list_config","paused_at","resume_at","_notificationData$not4","_notificationData$not5","email_temp","em","enabled","snooze","email_list","interval","ForgotPassword","getEmailVerificationCode","uploadXmlToS3","MessageSettingsPayload","setenableEV","setdeviceType","setsequenceNo","sequenceNo","deviceTypeError","setdeviceTypeError","seqError","setseqError","otherDevType","setotherDevType","allDevices","setallDevices","labelPlacement","setTransfer","CreateMessagePayload","deviceType","enableEV","xmlUploadState","setxmlUploadState","xmlLocation","setxmlLocation","isValid","schDate","deviceSerial","device_on","year","month","_date","minutes","seqNo","ids","MessageSettingsIoTPayload","setcustomerId","setpayloadData","payloadDataError","setpayloadDataError","custIdError","setcustIdError","hasuploadPayload","sethasuploadPayload","fileData","setfileData","read","FileReader","readAsText","onload","evt","labelWidth","helpertext","TextareaAutosize","CreateMessageIoTPayload","customerId","payloadData","transferType","Unauthorized","timeout","containerRef","containerSize","setContainerSize","boundingClientRect","current","getBoundingClientRect","floor","flexDirection","justifyContent","ref","danger","AdminHome","card","CardContent","gutterBottom","CardActions","About","Card","NavbarData","icon","HomeIcon","path","access","MailIcon","ForwardToInboxIcon","HistoryIcon","PersonIcon","BusinessIcon","CellTowerIcon","DashboardIcon","NavbarNew","showSideBar","setshowSideBar","showSideBarToggle","sethideAlert","MenuIcon","float","key","logoutfromapp","ExitToAppIcon","Navbarbasic","Slide","in","mountOnEnter","unmountOnExit","DashboardV1","dashboardData","setdashboardData","is_loading","setis_loading","messagePath","setMessagePath","customDivStyle","setcustomDivStyle","marginStart","WorkHistoryIcon","count","AvTimerIcon","last_time","DraftsIcon","admin","LanguageIcon","last_ip","ErrorLogs","getErrorMessages","recordID","scheduleTime","destinationStation","stationIP","errorLog","UpdateStationLists","updateStationList","SystemDashboard","stationStatusLog","setstationStatusLog","dashresp","setdashresp","cpu_usage_line_data","setcpu_usage_line_data","memory_usage_line_data","setmemory_usage_line_data","lastRecordTime","setlastRecordTime","recordsAvailableFrom","setrecordsAvailableFrom","maxUsageCPU","setmaxUsageCPU","minUsageCPU","setminUsageCPU","averageCPUUsage","setaverageCPUUsage","maxUsageMemory","setmaxUsageMemory","minUsageMemory","setminUsageMemory","averageMemoryUsage","setaverageMemoryUsage","dashresptemp","instance_data","cpu_usage","mem_usage","data_records","data_records_memory","max_cpu","min_cpu","max_memory","min_memory","avg_cpu_usage","avg_memory_usage","lrtCPU","ratCPU","records","DateHour","getUTCHours","usage","toGMTString","setUsageData","additionalInfo","time","http_status","ssh_status","gen4_status","msac2_status","CustomTooltipCPUUsage","active","payload","marginEnd","LineChart","Line","dataKey","stroke","dot","CartesianGrid","XAxis","Label","offset","YAxis","domain","angle","Legend","verticalAlign","content","RecoverMFA","setalertType","setmessage","showAns","setshowAns","showRC","setshowRC","btnLoadQR","setbtnLoadQR","showStepTwo","setshowStepTwo","showStepThree","setshowStepThree","seqQuestion","setseqQuestion","seqAnswer","setseqAnswer","recoveryCode","setrecoveryCode","mfaCode","setmfaCode","toggleShowAns","toggleShowRC","validateseqanswer","validateRecoveryCode","answer","generateQR","mfa_code","decrypt","enc","Utf8","startsWith","undefined","mfa_security_question","getMFACredentials","MessageSettingsPayloadEVSE","setchargePercent","setduration","chargePercent","duration","step","marks","CreateMessagePayloadEVSE","MidasDownload","rinData","setrinData","rinDataValue","setrinDataValue","signalTypeValue","setsignalTypeValue","square","disablePortal","updateSignal","updateRateID","Amplify","configure","aws_project_region","aws_cognito_identity_pool_id","aws_cognito_region","aws_user_pools_id","aws_user_pools_web_client_id","oauth","aws_bucket","Routing","Router","Route","exact","App","ConfirmRegister","UserProfile","MessageHistory","ReactDOM","module","exports","APP_URL"],"mappings":"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","file":"static/js/main.0d686516.chunk.js","sourcesContent":["import React from 'react'\nimport Alert from \"@material-ui/lab/Alert\";\n//import AlertTitle from \"@material-ui/lab/AlertTitle\";\n\nexport default function Alerts(props) {\n const {message,alertType,setStatus} = props\n return (\n
\n setStatus(0)}\n variant=\"filled\"\n severity={alertType}\n >\n {message}\n \n
\n )\n}\n","import { React, useState } from \"react\";\nimport \"react-phone-number-input/style.css\";\nimport { Formik, Form, Field } from \"formik\";\nimport VisibilityIcon from \"@mui/icons-material/Visibility\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\n\nimport {\n validateEmailMain,\n validatePasswordMain,\n} from \"../validations/basicRegFormValidations\";\nimport Auth from \"@aws-amplify/auth\";\n\nfunction BaseAppForm(props) {\n const {\n setEmail,\n email,\n setPassword,\n password,\n loginPressed,\n setLogginPressed,\n setUser,\n setAlertType,\n setMessage,\n setValidateMessage,\n setStage,\n stage,\n } = props;\n\n const [showPassState, setShowPassState] = useState(false);\n\n const validateEmail = (value) => {\n return validateEmailMain(value, setEmail);\n };\n const validatePassword = (value) => {\n return validatePasswordMain(value, setPassword);\n };\n const showPassword = () => {\n setShowPassState(!showPassState);\n };\n\n const doUserLogin = async (e) => {\n const emai = email;\n const assword = password;\n setLogginPressed(1);\n try {\n await Auth.signIn(email, password).then((result) => {\n //console.log(result);\n setAlertType(\"success\");\n setValidateMessage(1);\n setMessage(\"User Login Verified Please Validate MFA\");\n setLogginPressed(0);\n setUser(result);\n setStage(1);\n });\n } catch (err) {\n setAlertType(\"error\");\n setValidateMessage(1);\n setMessage(err.message);\n setLogginPressed(0);\n }\n };\n return (\n
\n \n {({ errors, touched }) => (\n
\n
\n \n \n {errors.email && touched.email && (\n
{errors.email}
\n )}\n
\n\n
\n {\" \"}\n {\" \"}\n
\n \n \n {showPassState && (\n showPassword()} />\n )}\n {!showPassState && (\n showPassword()} />\n )}\n
\n
\n {errors.password && touched.password && (\n
\n {errors.password}\n
\n )}{\" \"}\n
\n\n
\n {\" \"}\n \n Forgot Password?\n \n
\n
\n {loginPressed === 0 && (\n \n )}\n {loginPressed === 1 && (\n \n Please Wait...\n \n )}\n
\n
\n {\" \"}\n \n Don't have an account?{\" \"}\n (window.location.href = \"/register\")}\n >\n Register Here\n \n {\" \"}\n
\n \n )}\n \n \n );\n}\n\nexport default BaseAppForm;\n","import React from \"react\";\n\nfunction Footer() {\n return (\n
\n
\n
\n {\" \"}\n
\n \n © DTS, Inc. and its subsidiaries, including iBiquity Digital Corporation. Proprietary and Confidential. All Rights Reserved.\n \n
\n
\n
\n
\n );\n}\n\nexport default Footer;\n","import axios from \"axios\";\nimport { API_ENDPOINT_URL } from \"../constants/constants\";\n\nconst ApiClient = async (method, endpoint, params, headers) => {\n var response;\n if (method.toLowerCase() === \"get\") {\n try {\n response = await axios\n .get(API_ENDPOINT_URL + endpoint + \"?\" + params, {\n headers: headers === null ? {\"Content-Type\": \"application/json\"}: headers,\n })\n .then((res) => ({ code: 200, data: res.data }))\n .catch((err) => ({ code: 400, data: err }));\n } catch (error) {\n response = { code: 500, data: error };\n }\n } else if (method.toLowerCase() === \"post\") {\n try {\n response = await axios\n .post(API_ENDPOINT_URL + endpoint, params, { headers: headers === null ? {\"Content-Type\": \"application/json\"}: headers })\n .then((res) => ({ code: 200, data: res.data }))\n .catch((err) => ({ code: 400, data: err }));\n } catch (error) {\n response = { code: 500, data: error };\n }\n }\n return response;\n};\n\n\nexport default ApiClient;\n","import { React, useState, useEffect, useRef } from \"react\";\nimport { Formik, Form, Field } from \"formik\";\nimport Auth from \"@aws-amplify/auth\";\nimport ApiClient from \"../../apis/apiClient\";\nimport Cookies from \"js-cookie\";\nimport axios from \"axios\";\nimport { validateAuthMain } from \"../validations/basicRegFormValidations\";\nfunction VerifyLogin(props) {\n const {\n setStage,\n stage,\n user,\n email,\n setAlertType,\n setMessage,\n setAccess_levels,\n access_levels,\n } = props;\n const [authenticationCode, setAuthenticationCode] = useState(null);\n const [authClicked, setAuthClicked] = useState(false);\n \n\n const validateAuth = (value) => {\n return validateAuthMain(value, setAuthenticationCode);\n };\n const confirmAuth = async () => {\n // const email = email;\n setAuthClicked(true);\n let access_token = (await Auth.currentSession())\n .getAccessToken()\n .getJwtToken();\n await Auth.verifyTotpToken(user, authenticationCode)\n .then((res1) => {\n const x = {};\n axios.get(\"https://www.cloudflare.com/cdn-cgi/trace\").then((res) => {\n res.data\n .trim()\n .split(\"\\n\")\n .map((e) => {\n if (e.split(\"=\")[0] === \"ip\" || e.split(\"=\")[0] === \"ts\") {\n x[e.split(\"=\")[0]] = e.split(\"=\")[1];\n }\n // return;\n });\n x[\"email\"] = email;\n x[\"access_token\"] = access_token;\n const result = ApiClient(\"post\", \"/set_login_data\", {\n data: x,\n });\n result.then(function (res) {\n console.log(res);\n ////console.log(res.data[\"access_levels_list\"]);\n if (res.code === 200) {\n // setAccess_levels((arr) => [\n // ...arr,\n // res.data[\"access_levels_list\"],\n // ]);\n setAccess_levels(res.data[\"t\"]);\n Cookies.set(\"t\", res.data[\"t\"]);\n Cookies.set(\"auth\", res.data[\"token\"]);\n Cookies.set(\"user\", res.data[\"user\"]);\n setAlertType(\"success\");\n setMessage(\"User MFA Validated Continue Using App\");\n setStage(3);\n window.location.href = \"/dashboard\";\n // if (res.data[\"t\"] == 1)\n // window.open(window.location.href + \"user/home2\");\n // else if (access_levels[0] === 777)\n // window.open(window.location.href + \"admin/users\");\n } else {\n setAuthClicked(false);\n setAlertType(\"error\");\n setMessage(res.message);\n }\n });\n });\n })\n .catch((err) => {\n setAuthClicked(false);\n setAlertType(\"error\");\n setMessage(\"Invalid MFA Code\");\n });\n };\n return (\n \n {({ errors, touched }) => (\n
\n
\n \n \n {errors.authenticationCode && touched.authenticationCode && (\n
\n {errors.authenticationCode}\n
\n )}\n
\n\n
\n
\n {\" \"}\n \n {authClicked ? \"Authenticating\" : \"Authenticate\"}\n {\" \"}\n
\n
\n Lost Device? Recover Here\n
\n
\n )}\n \n );\n}\n\nexport default VerifyLogin;\n","import Auth from \"@aws-amplify/auth\";\nimport Cookies from \"js-cookie\";\n\nfunction logout(){\n Auth.signOut().then((res) => {\n }).catch((err)=> {\n });\n Cookies.remove('auth');\n Cookies.remove('t');\n //console.log(\"Logged out\");\n window.location.href = '/'\n}\n\nexport default logout;","import { SHA256 } from \"crypto-js\";\n\nconst encryptHash = (value) => {\n let ciphertext = SHA256(value+\"\", process.env.REACT_APP_GENERAL_HASH);\n return ciphertext.toString();\n};\n\nexport default encryptHash;","import React from 'react'\nimport Alert from '@mui/material/Alert';\nimport Stack from '@mui/material/Stack';\n\nexport default function displayAlert(props) {\n const { variant, severity, alertMessage, setAlert, setSeverity } = props\n return (\n
\n \n { setAlert(false); setSeverity(\"\") }} severity={severity}>{alertMessage}\n \n
\n )\n}\n","import { React, useEffect,useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport Alert from \"@material-ui/lab/Alert\";\nimport AlertTitle from \"@material-ui/lab/AlertTitle\";\nimport { Button } from \"@material-ui/core\";\nimport ApiClient from \"../../apis/apiClient\";\nimport logout from \"../validations/logoutUser\";\nimport Cookies from \"js-cookie\";\nimport encryptHash from \"../validations/general\";\nimport Alerts from \"../alerts/display-alert\";\nfunction FinalPage(props) {\n const { access_levels } = props;\n const history = useHistory();\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"\");\n\n //useEffect(() => //console.log(access_levels), [access_levels]);\n useEffect(async () => {\n const resp = await ApiClient(\n \"post\",\n \"/\",\n {},\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (resp.data.status !== 200) {\n //if (!alert(\"Session Expired Relogin \")) logout();\n setAlert(true)\n setSeverity(\"info\")\n setAlertMessage(\"Session Expired Relogin\");\n const timer = setTimeout(() => { setAlert(false); setSeverity(\"\"); logout() }, 1000);\n\n }\n console.log(Cookies.get(\"t\"), encryptHash(200));\n }, []);\n\n return (\n
\n {alert && (\n \n )}\n
\n
\n
\n \n Success\n User Validated — MFA Verification Success!\n \n
\n {/*\n {access_levels.indexOf(encryptHash(200)) != -1 && (\n {\n // this.props.history.push(\"/user/home\");\n window.open(window.location.href + \"user/home\", \"_blank\");\n }}\n variant=\"contained\"\n color=\"primary\"\n >\n Application Console\n \n )}\n
\n
\n {access_levels.indexOf(encryptHash(502)) != -1 && (\n {\n // this.props.history.push(\"/user/home\");\n window.open(window.location.href + \"user/xperi-payload\", \"_blank\");\n }}\n variant=\"contained\"\n color=\"primary\"\n >\n Xperi Payload\n \n )}\n
\n
\n {(access_levels.indexOf(encryptHash(777)) != -1 ||\n access_levels.indexOf(encryptHash(400)) != -1) && (\n {\n // this.props.history.push(\"/admin/users\");\n window.open(window.location.href + \"admin/users\", \"_blank\");\n }}\n variant=\"contained\"\n color=\"primary\"\n >\n Admin Console\n \n )}\n
\n
\n {access_levels.indexOf(encryptHash(777)) != -1 && (\n {\n // this.props.history.push(\"/iot/home\");\n window.open(window.location.href + \"iot/home\", \"_blank\");\n }}\n variant=\"contained\"\n color=\"primary\"\n >\n Monitoring Dashboard\n \n )}\n
\n
*/}\n
\n
\n
\n
\n );\n}\n\nexport default FinalPage;\n","import { React, useState, useEffect, useLayoutEffect } from \"react\";\nimport Alerts from \"./components/alerts/alert\";\nimport BaseAppForm from \"./components/forms/baseAppForm\";\nimport Footer from \"./components/footer/footer\";\nimport Cookies from \"js-cookie\";\nimport VerifyLogin from \"./components/login/verifyLogin\";\nimport FinalPage from \"./components/login/finalPage\";\nexport default function AppCopy() {\n const [alertType, setAlertType] = useState(\"success\");\n const [message, setMessage] = useState(null);\n const [stage, setStage] = useState(0);\n const [email, setEmail] = useState(null);\n const [password, setPassword] = useState(null);\n const [loginPressed, setLogginPressed] = useState(0);\n const [validateMessage, setValidateMessage] = useState(null);\n const [user, setUser] = useState(null);\n const [access_levels, setAccess_levels] = useState(0);\n useLayoutEffect(() => {\n if (Cookies.get(\"auth\")) {\n window.location.href = \"/dashboard\";\n setStage(3);\n setAccess_levels(Cookies.get(\"t\").split(','));\n }\n }, []);\n return (\n
\n
\n
\n {validateMessage === 1 && (\n \n )}\n
\n
\n
\n { /*
\n {\" \"}\n {\" \"}\n
\n */ }\n
\n {\" \"}\n {\" \"}\n
\n
\n
\n
\n {stage === 0 && (\n
\n \n
\n )}\n {stage === 1 && (\n
\n \n
\n )}\n {stage === 3 && (\n
\n \n
\n )}\n
\n
\n
\n
\n
\n
\n );\n}\n","import { React, useState } from \"react\";\nimport PhoneInput from \"react-phone-number-input\";\nimport \"react-phone-number-input/style.css\";\nimport { Formik, Form, Field } from \"formik\";\nimport VisibilityIcon from \"@mui/icons-material/Visibility\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport { SHA256 } from \"crypto-js\";\nimport {\n validateUsernameMain,\n validateEmailMain,\n validatePhonenumberMain,\n validatePasswordMain,\n validateCompanyMain,\n validateConfirmPasswordMain,\n} from \"../validations/basicRegFormValidations\";\n\nfunction BaseRegisterForm(props) {\n const {\n setName,\n setEmail,\n phoneNumber,\n setPhoneNumber,\n setPassword,\n setPhoneError,\n phoneError,\n setSelectedCompany,\n company,\n regClicked,\n regFailed,\n setRegClicked,\n setRegister,\n setConfirmPassword,\n password,\n } = props;\n const [showPassState, setShowPassState] = useState(false);\n const [showCPassState, setShowCPassState] = useState(false);\n\n const encryptHash = (value) => {\n let ciphertext = SHA256(value, process.env.REACT_APP_GENERAL_HASH);\n return ciphertext.toString();\n };\n const validateUsername = (value) => {\n return validateUsernameMain(value, setName);\n };\n const validateEmail = (value) => {\n return validateEmailMain(value, setEmail);\n };\n const validatePhonenumber = (value) => {\n return validatePhonenumberMain(value, setPhoneNumber, setPhoneError);\n };\n const validatePassword = (value) => {\n return validatePasswordMain(value, setPassword);\n };\n const validateConfirmPassword = (value) => {\n return validateConfirmPasswordMain(value, password, setConfirmPassword);\n };\n const validateCompany = (value) => {\n let dvalue = encryptHash(value);\n return validateCompanyMain(dvalue, setSelectedCompany, company);\n };\n\n const showPassword = () => {\n setShowPassState(!showPassState);\n };\n const showCPassword = () => {\n setShowCPassState(!showCPassState);\n };\n\n const signUp = () => {\n setRegClicked(1);\n };\n\n return (\n
\n \n {({ errors, touched }) => (\n
\n
\n \n \n {errors.name && touched.name && (\n
{errors.name}
\n )}\n
\n
\n \n \n {errors.email && touched.email && (\n
{errors.email}
\n )}\n
\n
\n \n \n {phoneError && (\n
{phoneError}
\n )}\n
\n
\n \n \n {errors.company && touched.company && (\n
{errors.company}
\n )}\n
\n
\n {\" \"}\n {\" \"}\n
\n
\n \n
\n \n {showPassState && (\n showPassword()} />\n )}\n {!showPassState && (\n showPassword()} />\n )}\n
\n
\n {errors.password && touched.password && (\n
\n {errors.password}\n
\n )}{\" \"}\n
\n\n
\n {\" \"}\n {\" \"}\n
\n \n \n {showCPassState && (\n showCPassword()} />\n )}\n {!showCPassState && (\n showCPassword()} />\n )}\n
\n
\n {errors.confirmPassword && touched.confirmPassword && (\n
\n {errors.confirmPassword}\n
\n )}{\" \"}\n \n
\n
\n {(regClicked === 0 || regFailed) && (\n setRegister(true)}\n >\n Register\n \n )}\n {regClicked === 1 && !regFailed && (\n \n Please wait\n \n )}\n
\n \n )}\n \n \n );\n}\n\nexport default BaseRegisterForm;\n","import { React, useState } from \"react\";\nimport { Formik, Form, Field } from \"formik\";\nimport Auth from \"@aws-amplify/auth\";\n\nfunction VerifyEmail(props) {\n const { email, password, setGetMFA, setAlertType, setMessage, setMFACode } =\n props;\n const [authenticationCode, setAuthenticationCode] = useState(null);\n const [authClicked, setAuthClicked] = useState(false);\n let env = process.env.REACT_APP_ENV;\n const mfa_tag = env === \"dev\" || env === \"test\" ? env+\"_\" : \"\";\n const confirmSignUp = async () => {\n setAuthClicked(true);\n try {\n await Auth.confirmSignUp(email, authenticationCode).then((user) => {\n //console.log(email,password);\n //console.log(user);\n try {\n Auth.signIn(email, password)\n .then((user) => {\n Auth.setupTOTP(user)\n .then((code) => {\n //console.log(\"Mfa code success\");\n setMFACode(\n \"otpauth://totp/AWSCognito:\" +\n user.attributes.name +\n \"?secret=\" +\n code +\n \"&issuer=\"+mfa_tag+\"xperi.radiodatacast.com\"\n );\n setGetMFA(true);\n setAlertType(\"error\");\n setMessage(\n \"Multi-factor verification is required for login.\"\n );\n })\n .catch((err) => {\n console.log(err);\n setAlertType(\"error\");\n setMessage(err.message);\n setAuthClicked(false);\n });\n })\n .catch((err) => {\n setAlertType(\"error\");\n setMessage(err.message);\n setAuthClicked(false);\n });\n } catch (err) {\n //console.log(err);\n setAlertType(\"error\");\n setMessage(err.message);\n setAuthClicked(false);\n }\n });\n } catch (error) {\n setAlertType(\"error\");\n setMessage(error.message);\n setAuthClicked(false);\n }\n };\n const validateAuth = (value) => {\n let error;\n if (!value || value.length < 4) {\n error = \"Please enter a valid auth code\";\n } else {\n setAuthenticationCode(value);\n }\n return error;\n };\n return (\n
\n \n {({ errors, touched }) => (\n
\n
\n \n \n {errors.auth && touched.auth && (\n
{errors.auth}
\n )}\n
\n
\n
\n {\" \"}\n \n {authClicked ? \"Authenticating\" : \"Authenticate\"}\n {\" \"}\n
\n
\n )}\n \n
\n );\n}\n\nexport default VerifyEmail;\n","export const security_questions = [\n \"What was your childhood nickname?\",\n \"In what city did you meet your spouse/significant other?\",\n \"What is the name of your favorite childhood friend?\",\n \"What street did you live on in third grade?\",\n \"What is your oldest sibling’s birthday month and year? (e.g., January 1900)\",\n \"What is the middle name of your youngest child?\",\n \"What is your oldest sibling's middle name?\",\n \"What school did you attend for sixth grade?\",\n \"What was your childhood phone number including area code? (e.g., 000-000-0000)\",\n \"What is your oldest cousin's first and last name?\",\n \"What was the name of your first stuffed animal?\",\n \"In what city or town did your mother and father meet?\",\n \"What was the last name of your third grade teacher?\",\n \"In what city does your nearest sibling live?\",\n \"What is your youngest brother’s birthday month and year? (e.g., January 1900)\",\n \"What is your maternal grandmother's maiden name?\",\n \"In what city or town was your first job?\",\n \"What is the name of the place your wedding reception was held?\",\n \"What is the name of a college you applied to but didn't attend?\",\n];\n","import { React, useState, useRef } from \"react\";\nimport { Formik, Form, Field } from \"formik\";\nimport { security_questions } from \"../../strings/strings\";\nimport QRCode from \"qrcode.react\";\nimport Auth from \"@aws-amplify/auth\";\nimport { Select, MenuItem, Button, TextField } from \"@material-ui/core\";\nimport ApiClient from \"../../apis/apiClient\";\nimport CryptoJS from \"crypto-js\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport Box from \"@mui/material/Box\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport { red } from \"@mui/material/colors\";\nimport Alerts from \"../alerts/display-alert\";\nimport VisibilityIcon from \"@mui/icons-material/Visibility\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\n\nfunction RegisterMFA(props) {\n const [randomCode, setrandomCode] = useState(\n (Math.random() + 1).toString(36).substring(4).toUpperCase()\n );\n const [loading, setLoading] = useState(false);\n const [mfaCodeError, setmfaCodeError] = useState(false);\n const [mfaCodeMessage, setmfaCodeMessage] = useState(\"\");\n //const alert = useAlert()\n const {\n MFACode,\n setDoLogin,\n doLogin,\n email,\n setMessage,\n setAlertType,\n setStatus,\n setGetMFA,\n } = props;\n const [securityQuestion, setSecurityQuestion] = useState(\"\");\n const [securityAnswer, setSecurityAnswer] = useState(\"\");\n const [close, setClose] = useState(true);\n const [validateCodeMFA, setvalidateCodeMFA] = useState();\n const [enableValidateCMFA, setEnableValidateCodeMFA] = useState(true);\n const [authChallengeSuccess, setauthChallengeSuccess] = useState(false);\n const [showPass, setshowPass] = useState(false);\n const nodeRef = useRef(null);\n const [severity, setSeverity] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [cognitoUser, setcognitoUser] = useState(\"\")\n const [confirmed, setconfirmed] = useState(false);\n const toggleShowPass = () => {\n setshowPass(!showPass);\n };\n\n const verifyMFAValidationCode = async () => {\n //console.log(validateCodeMFA);\n setLoading(true);\n try {\n let user = await Auth.currentAuthenticatedUser();\n setcognitoUser(user.username);\n let tokenVerified = await Auth.verifyTotpToken(user, validateCodeMFA);\n if (tokenVerified) {\n //console.log(tokenVerified);\n //let resp = await Auth.setPreferredMFA(user, 'TOTP');\n //console.log(resp);\n //if(resp)\n setauthChallengeSuccess(true);\n setLoading(false);\n setmfaCodeError(false);\n setmfaCodeMessage(\"success\");\n } else {\n setLoading(false);\n setmfaCodeError(true);\n setauthChallengeSuccess(false);\n setmfaCodeMessage(\"Error in validating mfa\");\n }\n setEnableValidateCodeMFA(false);\n } catch (error) {\n console.log(error.message);\n setmfaCodeError(true);\n setauthChallengeSuccess(false);\n setLoading(false);\n setmfaCodeMessage(\"Error in validating mfa\");\n //setEnableValidateCodeMFA(false);\n }\n };\n\n const confirm = async () => {\n setconfirmed(true);\n if (!authChallengeSuccess) {\n // alert(\"Please ADD MFA code to authenticator app and verify first in step 2\");\n setAlert(true);\n setSeverity(\"info\");\n setAlertMessage(\n \"Please ADD MFA code to authenticator app and verify first in step 2\"\n );\n const timer = setTimeout(() => {\n setAlert(false);\n setSeverity(\"\");\n }, 1000);\n\n return;\n }\n if (securityQuestion.length > 0 && securityAnswer.length > 0) {\n // //console.log('Security Q',securityQuestion)\n // //console.log('Security A',securityAnswer)\n // //console.log('randomCode',randomCode)\n let paraphrase = randomCode + \"@\" + securityAnswer;\n //console.log(paraphrase);\n let cipher = CryptoJS.AES.encrypt(MFACode, paraphrase).toString();\n // //console.log('Cipher ',cipher);\n const response = await ApiClient(\"post\", \"/setMFAAuthCode\", {\n email: email,\n code: cipher,\n question: securityQuestion,\n cognitoUser: cognitoUser\n });\n //console.log(response);\n if (response.code === 200) {\n //console.log(\"MFA Added\");\n setStatus(0);\n setGetMFA(false);\n setDoLogin(true);\n } else {\n //console.log(\"MFA Addition Failed\");\n setconfirmed(false);\n setAlertType(\"error\");\n setMessage(\"Cant Process Registration\");\n setStatus(1);\n }\n } else {\n //console.log(\"Invalid Selection of Question or Answer\");\n }\n //const response =\n\n //setDoLogin(true);\n };\n const validateSecurityQuestion = (value) => {\n let error;\n if (!value) {\n error = \"Please enter a valid security answer\";\n } else {\n setSecurityAnswer(value);\n }\n return error;\n };\n\n const closeAlert = () => {\n setClose(false);\n window.location.href = \"#\";\n };\n return (\n
\n {alert && (\n \n )}\n {close && (\n \n In case of device loss please write down the Recovery Code{\" \"}\n and Security Answer for recovery of MFA\n \n )}\n\n
\n \n

Secure Your Account

\n
\n Secure your account with multi-factor authentication (MFA) using the\n following steps.\n
\n
\n
Step 1:
{\" \"}\n

\n Download one of the following MFA applications to your mobile device.\n

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n
 Google Authenticator
\n
\n
 Microsoft Authenticator
\n
\n
 Okta Authenticator
\n
\n
\n
Step 2:
{\" \"}\n

\n Scan the QR code below with the multi-factor authentication app\n installed in{\" \"}\n \n Step 1. Then enter the 6 digit code\n displayed on the app.\n \n

\n
\n
\n
\n
\n \n
\n
\n setvalidateCodeMFA(e.target.value)}\n />\n
\n {mfaCodeError ? (\n {mfaCodeMessage}\n ) : (\n {mfaCodeMessage}\n )}\n
\n \n \n Validate\n \n {loading && (\n \n )}\n \n
\n
\n
\n
\n
Step 3:
{\" \"}\n

Select a security question and fill in the answer.

\n \n {({ errors, touched }) => (\n
\n
\n \n setSecurityQuestion(event.target.value)}\n nodeRef={nodeRef}\n >\n {security_questions.map((val, idx) => (\n \n {val}\n \n ))}\n \n
\n
\n
\n \n
\n
\n \n {errors.securityAnswer && touched.securityAnswer && (\n
\n {errors.securityAnswer}\n
\n )}\n
\n \n {showPass && (\n toggleShowPass()} />\n )}\n {!showPass && (\n toggleShowPass()} />\n )}\n
\n
\n
\n
\n
\n \n )}\n \n
Step 4:
{\" \"}\n

\n Record the following recovery code and the{\" \"}\n security answer from step 3 in a
\n safe and secure location. This will be used to recover your MFA in\n case your mobile device is lost or damaged.\n

\n Recovery Code:

{randomCode}

\n
\n
\n
\n \n Confirm Scan\n \n
\n
\n \n );\n}\n\nexport default RegisterMFA;\n","import { React } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport Alert from \"@material-ui/lab/Alert\";\nimport AlertTitle from \"@material-ui/lab/AlertTitle\";\nimport { Button } from \"@material-ui/core\";\n\nfunction FinalPage() {\n const history = useHistory();\n return (\n
\n
\n
\n
\n \n Success\n User Validated — Email Verified!\n \n
\n {\n history.push({ pathname: \"/\" });\n }}\n variant=\"contained\"\n color=\"primary\"\n >\n Go to Login\n \n
\n
\n
\n
\n );\n}\n\nexport default FinalPage;\n","const registerCognitoUser = async (\n name,\n email,\n phone,\n password,\n company,\n setStage,\n setStatus,\n setMessage,\n setAlertType,\n setRegFailed,\n Auth\n) => {\n //console.log(\"Registering User to cognito\");\n try {\n await Auth.signUp({\n username: email,\n password: password,\n attributes: {\n name: name,\n email: email,\n phone_number: phone,\n \"custom:company\": company,\n },\n })\n .then((result) => {\n //console.log(result);\n setStage(1);\n setStatus(1);\n setAlertType(\"success\");\n setMessage(\n \"User Registered! Please check your email and enter the email verification code provided.\"\n );\n })\n .catch((err) => {\n //console.log(err.message);\n setStatus(1);\n if (String(err.message).includes(\"email already exists\")) {\n Auth.resendSignUp(email);\n setStage(1);\n setRegFailed(true);\n setAlertType(\"error\");\n setMessage(\n err.message + \" please validate with the new code sent to email\"\n );\n } else {\n setRegFailed(true);\n setAlertType(\"error\");\n setMessage(err.message);\n }\n });\n } catch (err) {\n //console.log(err);\n }\n};\n\nexport default registerCognitoUser;\n","/* eslint-disable new-cap */\nimport { React, useState, useEffect } from \"react\";\nimport Alerts from \"./components/alerts/alert\";\nimport BaseRegisterForm from \"./components/forms/baseRegisterForm\";\nimport ApiClient from \"./apis/apiClient\";\nimport VerifyEmail from \"./components/register/verifyEmail\";\nimport Auth from \"@aws-amplify/auth\";\nimport RegisterMFA from \"./components/register/registerMFA\";\nimport FinalPage from \"./components/register/finalPage\";\nimport Footer from \"./components/footer/footer\";\nimport Backdrop from \"@mui/material/Backdrop\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\nimport registerCognitoUser from \"./components/register/registerCognito\";\n\n// eslint-disable-next-line require-jsdoc\nexport default function Register() {\n const [status, setStatus] = useState(0);\n const [alertType, setAlertType] = useState(\"success\");\n const [message, setMessage] = useState(\"no message\");\n const [stage, setStage] = useState(0);\n const [doLogin, setDoLogin] = useState(false);\n const [getMFA, setGetMFA] = useState(false);\n const [name, setName] = useState(null);\n const [email, setEmail] = useState(null);\n const [phoneNumber, setPhoneNumber] = useState(null);\n const [selectedCompany, setSelectedCompany] = useState(\"\");\n const [password, setPassword] = useState(null);\n const [company, setCompany] = useState(null);\n // eslint-disable-next-line no-unused-vars\n const [register, setRegister] = useState(false);\n const [swtAlertTitle, setswtAlertTitle] = useState(\"\");\n const [swtAlertType, setswtAlertType] = useState(true);\n const [regClicked, setRegClicked] = useState(0);\n const [regFailed, setRegFailed] = useState(false);\n const [showAlert, setshowAlert] = useState(false);\n const [phoneError, setPhoneError] = useState(\"\");\n const [MFACode, setMFACode] = useState(null);\n const [confirmPassword, setConfirmPassword] = useState(null);\n useEffect(() => {\n getCompanyData();\n }, []);\n\n useEffect(() => {\n if (company != null) addNewUserToDB();\n }, [regClicked]);\n\n const getCompanyData = async () => {\n //console.log(\"Fetching Company\");\n const result = await ApiClient(\"get\", \"/getCompanyIdswithName\", \"\");\n if (result.code === 200) {\n setCompany(result.data.result);\n } else {\n //console.log(result);\n }\n };\n\n const addNewUserToDB = async () => {\n //console.log(\"Adding User to Database\");\n //console.log(phoneNumber);\n const result = await ApiClient(\"post\", \"/register\", {\n name: name,\n email: email,\n phone: phoneNumber,\n companyname: selectedCompany,\n approved: false,\n });\n //console.log(result);\n if (result.data.status === 203) {\n setMessage(result.data.response);\n setshowAlert(true);\n setswtAlertTitle(\"Oh No!!!\");\n setswtAlertType(false);\n } else if (result.data.status === 201) {\n setRegFailed(true);\n setStatus(1);\n setMessage(result.data.response);\n setshowAlert(true);\n setswtAlertTitle(\"Good Job!!!\");\n setswtAlertType(true);\n } else if (result.data.status === 202) {\n //console.log(\"Cognito Registration started\");\n registerCognitoUser(\n name,\n email,\n phoneNumber,\n password,\n selectedCompany,\n setStage,\n setStatus,\n setMessage,\n setAlertType,\n setRegFailed,\n Auth\n );\n } else if (result.data.status === 404) {\n setRegFailed(true);\n setStatus(1);\n setMessage(result.data.response + \" Please Contact Admin\");\n }else{\n setRegFailed(true);\n setStatus(1);\n setMessage( \" Some error occured\");\n }\n };\n\n return (\n
\n
\n
\n {showAlert && (\n window.location.reload()}\n onConfirm={() => (window.location.href = \"/\")}\n style={{ color: \"black\" }}\n focusCancelBtn\n >\n {message}
\n \n )}\n {status === 1 && (\n \n )}\n
\n
\n
\n {/*
\n {\" \"}\n {\" \"}\n
\n */}\n
\n {\" \"}\n {\" \"}\n
\n
\n
\n
\n
\n {stage === 0 && !doLogin && (\n \n )}\n {stage === 1 && !doLogin && !getMFA && (\n \n )}\n {getMFA && (\n \n )}\n {doLogin && }\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n}\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\";\n\nimport MUIDataTable from \"mui-datatables\";\n\nimport {\n unstable_createMuiStrictModeTheme as createMuiTheme,\n MuiThemeProvider,\n} from \"@material-ui/core/styles\";\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n light: \"#757CE8\",\n main: \"#3F50B5\",\n dark: \"#002884\",\n contrastText: \"#fff\",\n },\n secondary: {\n light: \"#FF7961\",\n main: \"#F44336\",\n dark: \"#BA000D\",\n contrastText: \"#000\",\n },\n },\n});\n\nfunction DataTable(props) {\n const {tableData, tableColumns, tableOptions} = props;\n return (\n
\n \n \n \n
\n );\n}\n\nexport default DataTable;\n","import ApiClient from \"../../apis/apiClient\";\nimport Cookies from \"js-cookie\";\n\nconst checkPageAccess = async () => {\n const urlpath = window.location.pathname;\n const response = await ApiClient(\n \"post\",\n \"/validatePageAccess\",\n { page_id: urlpath },\n { \"Content-Type\": \"application/json\", authorization: Cookies.get(\"auth\") }\n );\n console.log(\"has access from api\",response.data.status === 200);\n if (response.data.status === 200) return true;\n else return false;\n };\n\nexport default checkPageAccess;","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableContainer from \"@material-ui/core/TableContainer\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Datatable from \"../../DataTable/dataTable\";\nimport { Checkbox } from \"@mui/material\";\n\nfunction ExpandableUserList(props) {\n const columns = [\n {\n name: \"company_name\",\n label: \"Company name\",\n }\n ];\n const { data } = props\n \n const [expandRows, setExpandRows] = useState([]);\n const [rows, setrows] = useState([]);\n const [checked, setChecked] = useState([])\n useEffect(async () => {\n let tableData = []\n const expandData = []\n let checkVal = []\n for (let i = 0; i < data.length; i++) {\n // if (tableData.indexOf(data[i][\"company_name\"]) == -1) {\n let nArray = tableData.filter(function (el) {\n return el.company_name == data[i][\"company_name\"]\n });\n if (nArray.length == 0) {\n const temp1 = { \"company_name\": data[i][\"company_name\"] }\n tableData.push(temp1)\n expandData[data[i][\"company_name\"]] = []\n }\n const temp2 = {\n approved: data[i][\"approved\"],\n email: data[i][\"email\"],\n stations: data[i][\"stations\"],\n is_admin: data[i][\"is_admin\"],\n name: data[i][\"name\"],\n phone: data[i][\"phone\"],\n index: i\n }\n checkVal.push(false)\n expandData[data[i][\"company_name\"]].push(temp2)\n\n }\n setExpandRows(expandData)\n setrows(tableData)\n setChecked(checkVal)\n }, [])\n // useEffect(() => {\n // console.log(checked)\n // }, [checked])\n\n\n const clickHandler = (email, index) => {\n // Here, we invoke the callback with the new value\n props.expandClickHandler(email, index);\n }\n const handleChange = (val) => {\n let checkArr = [...checked];\n checkArr = checkArr.map(x => false);\n checkArr[val] = !checked[val]\n setChecked(checkArr)\n let c = [{ index: val, dataIndex: val }]\n let a = []\n if (checkArr[val])\n a = [{ index: val, dataIndex: val }]\n props.expandHandleChange(c, a);\n }\n const options = {\n filter: true,\n filterType: \"dropdown\",\n responsive: \"standard\",\n tableBodyHeight: \"500px\",\n tableBodyMaxHeight: \"\",\n customToolbarSelect: () => { },\n selectableRows: false,\n //onRowsSelect: handleChange,\n //selectableRows: \"none\",\n download: false,\n print: false,\n sortOrder: {\n name: \"company_name\",\n direction: 'desc'\n },\n expandableRows: true,\n renderExpandableRow: (rowData, rowMeta) => {\n const colSpan = rowData.length + 1;\n let cmp = rowData[0];\n // console.log(cmp)\n return (\n <>\n \n \n \n \n \n \n \n Name\n Email\n Company
Admin
\n Stations\n Phone\n Approved\n\n
\n
\n \n {expandRows[cmp]?.map((row) => (\n \n \n handleChange(row.index)} />\n \n \n {row.name}\n \n {\n clickHandler(row.email, row.index);\n }}>\n {row.email}\n \n {row.is_admin}\n {row.stations}\n {row.phone}\n {row.approved}\n\n \n ))}\n \n
\n
\n \n \n \n );\n },\n page: 1\n };\n return (\n \n );\n}\n\nexport default ExpandableUserList;","import Backdrop from \"@mui/material/Backdrop\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport { CircularProgressbar, buildStyles } from \"react-circular-progressbar\";\nimport Box from \"@mui/material/Box\";\nimport React from 'react';\n// import Typography from \"@mui/material/Typography\";\n// import Slide from \"@mui/material/Slide\";\n\n//import AlertTitle from \"@material-ui/lab/AlertTitle\";\n\nexport default function Loader(props) {\n const { loading, percentage, loaderType } = props\n return (\n
\n {loaderType === \"CircularProgress\" &&\n theme.zIndex.drawer + 1 }}\n open={loading}\n >\n \n {/* \n \n {`Loading...`}\n \n */}\n \n }\n {loaderType === \"CircularProgressbar\" &&\n theme.zIndex.drawer + 1 }}\n open={loading}\n >\n \n
\n \n
\n
\n \n }\n \n )\n}","import React from \"react\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport { useState, useEffect } from \"react\";\nimport Cookies from \"js-cookie\";\nimport Datatable from \"../../DataTable/dataTable\";\nimport { Button } from \"react-bootstrap\";\nimport { Box } from \"@mui/material\";\nimport { LinearProgress } from \"@mui/material\";\nimport { Typography } from \"@mui/material\";\nimport Auth from \"@aws-amplify/auth\";\nimport checkPageAccess from \"../../others/getPageAccess\";\nimport ApiClient from \"../../../apis/apiClient\";\nimport logout from \"../../validations/logoutUser\";\nimport Modal from \"react-bootstrap/Modal\";\nimport ModalBody from \"react-bootstrap/ModalBody\";\nimport ModalHeader from \"react-bootstrap/ModalHeader\";\nimport ModalFooter from \"react-bootstrap/ModalFooter\";\nimport ModalTitle from \"react-bootstrap/ModalTitle\";\nimport { Formik, Form, Field } from \"formik\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport {\n FormControl,\n TextField,\n List,\n ListItem,\n ListItemAvatar,\n FormGroup,\n FormControlLabel,\n Checkbox,\n ListItemSecondaryAction,\n ListItemText,\n Select,\n OutlinedInput,\n Avatar,\n IconButton,\n FormLabel,\n} from \"@mui/material\";\n\nimport Radio from \"@mui/material/Radio\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport WifiIcon from \"@material-ui/icons/Wifi\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport CheckIcon from \"@material-ui/icons/Check\";\nimport ImportExportIcon from \"@material-ui/icons/ImportExport\";\nimport encryptHash from \"../../validations/general\";\n\nimport ExpandableUserList from \"./expandableUserList\";\nimport Loader from \"../../loader/loader\";\n\nfunction AdminUserSectionV2() {\n const [showSweetAlert, setshowSweetAlert] = useState(false);\n const [sweetalertMessage, setsweetalertMessage] = useState(\"\");\n const [data, setData] = useState([]);\n const [tableLoader, settableLoader] = useState(true);\n const [companyname, setcompanyname] = useState([]);\n const [approveDisable, setapproveDisable] = useState(true);\n const [blockDisable, setblockDisable] = useState(true);\n const [selectedUsers, setselectedUsers] = useState([]);\n const [accessListArray, setaccessListArray] = useState([]);\n const [indx, setindx] = useState(-1);\n const [userNameApprove, setuserNameApprove] = useState([]);\n const [userEmailApprove, setuserEmailApprove] = useState([]);\n const [open, setopen] = useState(false);\n const [open2, setopen2] = useState(false);\n const [lastLoginTime, setlastLoginTime] = useState(\"\");\n const [userEmail, setuserEmail] = useState(\"\");\n const [ipAddress, setipAddress] = useState(\"\");\n const [ipAddressList, setipAddressList] = useState([]);\n const [accessGrants, setaccessGrants] = useState([]);\n const [accessLevels, setaccessLevels] = useState({});\n const [modalCheckBoxValidation, setmodalCheckBoxValidation] = useState(false);\n const [newUserAccessLevels, setnewUserAccessLevels] = useState([]);\n const [createnewUserAccessLevels, setcreatenewUserAccessLevels] = useState(\n []\n );\n const [name, setname] = useState(\"\");\n const [email, setemail] = useState(\"\");\n const [selectedCompany, setselectedCompany] = useState(\"\");\n const [selectedApprovedlist, setselectedApprovedlist] = useState(false);\n const [disabledButton, setdisabledButton] = useState(false);\n const [checkBoxValidation, setcheckBoxValidation] = useState(false);\n const [stationAddUserName, setstationAddUserName] = useState(\"\");\n const [stationsToAdd, setstationsToAdd] = useState([]);\n const [stationsData, setstationsData] = useState([]);\n const [allocateRemove, setallocateRemove] = useState(\"allocate\");\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n const [loading, setloading] = useState(false);\n const [loaderType, setLoaderType] = useState(\"CircularProgress\");\n const [percentage, setpercentage] = useState(0);\n const [stationsToAddError, setstationsToAddError] = useState(\"\");\n\n const handleChange = (currentRowsSelected, allRowsSelected) => {\n console.log(currentRowsSelected);\n console.log(allRowsSelected);\n if (allRowsSelected.length > 0) {\n let x = allRowsSelected[0].index;\n console.log([data[x].email]);\n setselectedUsers([data[x].email]);\n setaccessListArray(data[x].access_privilege_list);\n setindx(x);\n setuserNameApprove([data[x].name]);\n setuserEmailApprove([data[x].email]);\n setapproveDisable([data[x].approved] == \"Yes\" ? true : false);\n setblockDisable([data[x].approved] == \"No\" ? true : false);\n } else {\n setapproveDisable(true);\n setblockDisable(true);\n }\n };\n\n const clickHandler = (email, index) => {\n let is_open = !open;\n setopen(is_open);\n info(is_open, email, index);\n };\n\n const handleUserNameChange = (e) => {\n setstationAddUserName(e.target.value);\n };\n const handleStationsToAddChange = (e) => {\n setstationsToAdd(e.target.value);\n };\n\n const handleAllocateRemoveChange = (e) => {\n setallocateRemove(e.target.value);\n };\n\n const addUserStations = async () => {\n setloading(true);\n const resp = await ApiClient(\n \"post\",\n \"/admin/addRemoveStationsToUser\",\n {\n email: stationAddUserName,\n stations: stationsToAdd,\n option: allocateRemove,\n },\n {\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (resp.data.status === 200) {\n setloading(false);\n // if (!alert(\"Stations Updated for User :\" + stationAddUserName))\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"Stations Updated for User :\" + stationAddUserName);\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n } else if (resp.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (resp.data.status === 400) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Error Adding Stations to User\");\n setAlertTitle(\"SomeThing Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else if (resp.data.status === 422) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n };\n\n const info = async (openState, email, index) => {\n if (openState === true) {\n //console.log(openState, email, index, data);\n setuserEmail(email);\n setlastLoginTime(data[index][\"last_login\"]);\n setipAddress(data[index][\"ip_address\"]);\n setipAddressList(data[index][\"ip_address_list\"]);\n setaccessGrants(data[index][\"access_privilege_list\"]);\n setnewUserAccessLevels([...data[index][\"access_privilege_list\"]]);\n }\n };\n const cols = [\n {\n name: \"company_name\",\n label: \"Company name\",\n options: {\n display: false,\n filter: false,\n sort: true,\n },\n },\n {\n name: \"name\",\n label: \"Name\",\n options: {\n display: true,\n filter: true,\n sort: true,\n },\n },\n {\n name: \"email\",\n label: \"Email\",\n options: {\n filter: false,\n customBodyRender: (value, tableMeta, updateValue) => {\n return (\n {\n clickHandler(value, tableMeta.rowIndex);\n }}\n style={{ color: \"blue\", whiteSpace: \"nowrap\" }}\n >\n {value}\n \n );\n },\n },\n },\n {\n name: \"is_admin\",\n label: \"Company Admin\",\n },\n {\n name: \"stations\",\n label: \"Stations\",\n },\n {\n name: \"phone\",\n label: \"Phone\",\n },\n {\n name: \"approved\",\n label: \"Approved\",\n },\n {\n name: \"access_privilege_list\",\n label: \"Access List\",\n options: {\n display: false,\n filter: false,\n sort: false,\n },\n },\n ];\n\n const tableOptions = {\n filter: true,\n filterType: \"dropdown\",\n responsive: \"standard\",\n tableBodyHeight: \"300px\",\n tableBodyMaxHeight: \"\",\n customToolbarSelect: () => {},\n selectableRows: \"single\",\n onRowsSelect: handleChange,\n rowsPerPage: 50,\n //selectableRows: \"none\",\n download: false,\n print: false,\n sortOrder: {\n name: \"company_name\",\n direction: \"desc\",\n },\n };\n\n const MenuProps = {\n PaperProps: {\n style: {\n maxHeight: 48 * 4.5 + 2,\n width: 250,\n },\n },\n };\n\n const hideAlert = () => {\n window.location.reload();\n };\n\n const validateName = (value) => {\n let error;\n if (!value) {\n error = \"Please enter your Name\";\n } else if (value.length < 2) {\n error = \"Invalid Name\";\n } else {\n setname(value);\n }\n return error;\n };\n const validateEmail = (value) => {\n let error;\n if (!value) {\n error = \"Please enter your email address\";\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(value)) {\n error = \"Invalid email address\";\n } else {\n setemail(value);\n }\n return error;\n };\n const validateCompanyname = (value) => {\n let error;\n if (!value) {\n error = \"Please Choose a company\";\n } else {\n setselectedCompany(value);\n }\n return error;\n };\n\n const radiofunction = () => {\n setselectedApprovedlist(!selectedApprovedlist);\n };\n const validateUser = () => {\n let getauth = async () => {\n return (await Auth.currentSession()).getAccessToken().getJwtToken();\n };\n getauth()\n .then(async (res) => {\n let res1 = await ApiClient(\"get\", \"/admin/userlist\", \"\", {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n if (res1.data.status === 200) {\n setData(res1.data.result);\n settableLoader(false);\n } else if (res1.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else {\n //if (!alert(\"Session Expired! Relogin\")) logout();\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n })\n .catch((err) => {\n //window.location.replace(\"/\");\n console.log(err);\n });\n };\n\n useEffect(async () => {\n document.title = \"Users | Xperi HD Radio IoT\";\n let comp_names = [];\n if (!Cookies.get(\"auth\")) {\n await Auth.signOut();\n window.location.replace(\"/\");\n } else {\n let isValid = await checkPageAccess();\n if (!isValid) {\n // if (!alert(\"access denied for the url\"))\n // window.location.href = \"/unauthorized\";\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"access denied for the url\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"href\");\n setHrefLink(\"/unauthorized\");\n return;\n } else {\n validateUser();\n let resp1 = await ApiClient(\"get\", \"/app/stations\", \"\", {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n\n if (resp1.data.status === 200) {\n setstationsData(resp1.data.result);\n } else if (resp1.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n let resp = await ApiClient(\"get\", \"/admin/companies/\", \"\", {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n\n if (resp.data.status === 200) {\n resp.data.result.map((val) => {\n comp_names.push(val.companyName);\n });\n setcompanyname(comp_names);\n } else if (resp.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n }\n }\n }, []);\n\n useEffect(() => {\n let acc = {\n 777: accessGrants.indexOf(777) !== -1 ? true : false,\n 750: accessGrants.indexOf(750) !== -1 ? true : false,\n 730: accessGrants.indexOf(730) !== -1 ? true : false,\n 715: accessGrants.indexOf(715) !== -1 ? true : false,\n 400: accessGrants.indexOf(400) !== -1 ? true : false,\n 200: accessGrants.indexOf(200) !== -1 ? true : false,\n 502: accessGrants.indexOf(502) !== -1 ? true : false,\n };\n setaccessLevels(acc);\n }, [accessGrants]);\n\n useEffect(() => {\n console.log(newUserAccessLevels);\n }, [newUserAccessLevels]);\n\n const doApproveModal = () => {\n setopen2(true);\n console.log(\"Approve Called\");\n };\n\n const doApprove = async () => {\n setloading(true);\n if (\n Cookies.get(\"t\").split(\",\").indexOf(encryptHash(777)) !== -1 &&\n newUserAccessLevels.length === 0\n ) {\n //alert(\"Please Check Atleast one Access Privilege\");\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Please Check Atleast one Access Privilege\");\n setAlertTitle(\"Something Went Wrong\");\n return;\n }\n const response = await ApiClient(\n \"post\",\n \"/admin/approveRejectUser\",\n {\n email: selectedUsers[0],\n state: \"true\",\n access_privilege_list:\n Cookies.get(\"t\").split(\",\").indexOf(encryptHash(777)) !== -1\n ? newUserAccessLevels\n : [200],\n },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (response.data.status === 200) {\n //if (!alert(\"User Approved\")) location.reload();\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"User Approved\");\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n } else if (response.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (response.data.status === 400) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Mail Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else if (response.data.status === 422) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n // if (!alert(\"User Approval Error\")) location.reload();\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"User Approval Error\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n };\n\n const doBlock = async () => {\n setloading(true);\n const response = await ApiClient(\n \"post\",\n \"/admin/approveRejectUser\",\n {\n email: selectedUsers[0],\n state: \"false\",\n },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (response.data.status === 200) {\n //if (!alert(\"User Blocked\")) location.reload();\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"User Blocked\");\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n } else if (response.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (response.data.status === 422) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"User Deny Error\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n };\n\n const update = async () => {\n if (newUserAccessLevels.length === 0) {\n setmodalCheckBoxValidation(true);\n return;\n } else {\n setloading(true);\n const resp = await ApiClient(\n \"post\",\n \"/admin/updateAccessPrivilege/\",\n {\n email: userEmail,\n accessList: newUserAccessLevels,\n },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (resp.data.status === 200) {\n // alert(\"Access Updated \");\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"Access Updated\");\n setAlertTitle(\"Success\");\n closeModal();\n setConfirmAction(\"load\");\n\n // closeModal();\n // location.reload();\n } else if (resp.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (resp.data.status === 400) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Error updating access privilege to Use\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n closeModal();\n } else if (resp.data.status === 422) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n // alert(\"Some Error Occured \");\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Error Occured in update Access Privilege \");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n closeModal();\n }\n }\n };\n\n const addUser = async () => {\n setdisabledButton(true);\n setloading(true);\n if(stationsToAdd.length === 0){\n setloading(false);\n setdisabledButton(false);\n setstationsToAddError(\"Select at least one station to allocate\");\n return;\n }else{\n setstationsToAddError(\"\");\n }\n if (\n createnewUserAccessLevels.length === 0 &&\n Cookies.get(\"t\").split(\",\").indexOf(encryptHash(777)) !== -1\n ) {\n setloading(false);\n setcheckBoxValidation(true);\n //alert(\"Please Check Access atleast one Privilege\");\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Please Check Access atleast one Privilege \");\n setAlertTitle(\"Something Went Wrong\");\n setdisabledButton(false);\n return;\n }\n const response1 = await ApiClient(\n \"post\",\n \"/admin/getUserDetailsandAdd/\",\n {\n email: email,\n companyname: selectedCompany,\n approved: selectedApprovedlist,\n stations: stationsToAdd,\n access_list:\n createnewUserAccessLevels.length === 0\n ? [200]\n : createnewUserAccessLevels,\n },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n console.log(response1);\n if (response1.data.status === 200) {\n setloading(false);\n setshowSweetAlert(true);\n setsweetalertMessage(response1.data.response);\n setdisabledButton(false);\n } else if (response1.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (response1.data.status === 422) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setloading(false);\n console.log(\"User Fetch error\");\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"User Fetch error\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n };\n\n const closeModal = () => {\n setopen(false);\n };\n\n const closeModal2 = () => {\n setopen2(false);\n };\n\n const handleAccessLevelChange = (e) => {\n let add_remove = e.target.checked;\n let acl = accessLevels;\n let acl_updated = newUserAccessLevels;\n acl[e.target.value] = add_remove;\n if (add_remove) {\n acl_updated.push(parseInt(e.target.value));\n setnewUserAccessLevels([...acl_updated]);\n } else {\n acl_updated = acl_updated.filter((x) => x != parseInt(e.target.value));\n setnewUserAccessLevels([...acl_updated]);\n }\n setaccessLevels({ ...acl });\n };\n\n const handlenewUserAccessLevelChange = (e) => {\n let add_remove = e.target.checked;\n let acc_level = createnewUserAccessLevels;\n if (add_remove) {\n acc_level.push(parseInt(e.target.value));\n setcreatenewUserAccessLevels([...acc_level]);\n } else {\n acc_level = acc_level.filter((x) => x != parseInt(e.target.value));\n setcreatenewUserAccessLevels([...acc_level]);\n }\n setdisabledButton(false);\n setcheckBoxValidation(false);\n };\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction == \"load\") {\n window.location.reload();\n } else if (confirmAction == \"href\") {\n window.location.href = hrefLink;\n } else if (confirmAction == \"logout\") {\n logout();\n }\n };\n\n const deleteCognitoUser = async () => {\n setloading(true);\n const response = await ApiClient(\n \"post\",\n \"/admin/deleteCognitoUser\",\n {\n email: userEmail,\n },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (response.data.status === 200) {\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(response.data.message);\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(response.data.message);\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n }\n };\n\n const resendRegLink = async () => {\n setloading(true);\n const response = await ApiClient(\n \"post\",\n \"/admin/sendRegistrationLink\",\n {\n email: userEmail,\n },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (response.data.status === 200) {\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(response.data.message);\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(response.data.message);\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n }\n };\n\n const approveModalTitle =\n Cookies.get(\"t\") &&\n Cookies.get(\"t\").split(\",\").indexOf(encryptHash(777)) !== -1\n ? \"Access Level Privileges\"\n : \"Confirm user Approval\";\n\n return (\n
\n {alert && (\n \n {alertMessage}\n \n )}\n {showSweetAlert && (\n \n

{sweetalertMessage}

\n \n )}\n \n {Cookies.get(\"auth\") && (\n
\n \n
\n
\n
\n
\n
\n
\n
\n
List Of Users
\n
\n
\n  \n \n Approve\n \n   \n \n Deny\n \n
\n
\n
\n {/*

\n \n
*/}\n
\n
\n {tableLoader === true && (\n \n \n \n \n \n \n Loading Table...\n \n \n \n )}\n {tableLoader === false ? (\n Cookies.get(\"t\").split(\",\").indexOf(encryptHash(777)) !=\n -1 ? (\n \n ) : (\n \n )\n ) : (\n

\n )}\n
\n
\n
\n
\n
\n
\n
\n\n {/* Modal User Access Update */}\n\n closeModal()} animation={false}>\n \n User Details (user: {userEmail})\n \n \n {Cookies.get(\"t\").split(\",\").indexOf(encryptHash(777)) !== -1 && (\n \n
Access Level
\n
\n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n
\n {modalCheckBoxValidation &&\n newUserAccessLevels.length === 0 && (\n
\n {\"Please Check Atleast One Access Privilege\"}\n
\n )}\n \n Update\n \n
\n
\n )}\n \n deleteCognitoUser()}\n >\n Delete Cognito User\n \n resendRegLink()}\n >\n Resend Registration Link\n \n \n Last Login
\n \n
\n IP Address\n
\n \n
\n
\n List Of IP Address (One marked with{\" \"}\n is the current IP)\n
\n \n {ipAddressList.map((value) => (\n \n \n \n \n \n \n \n \n \n {value === ipAddress ? (\n \n ) : (\n \n )}\n \n \n \n ))}\n \n
\n \n closeModal()}\n >\n Close\n \n \n
\n\n {/*End Modal User Access Update*/}\n\n {/*Modal Approve User*/}\n\n closeModal2()} animation={false}>\n \n {approveModalTitle}\n \n \n
\n
\n
\n Name: {userNameApprove}\n
\n
\n
\n
\n Email: {userEmailApprove}\n
\n
\n
\n\n
\n
Please select access level:
\n {Cookies.get(\"t\").split(\",\").indexOf(encryptHash(777)) !== -1 && (\n
\n
\n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n handleAccessLevelChange(e)}\n />\n \n
\n
\n
\n {modalCheckBoxValidation &&\n newUserAccessLevels.length === 0 && (\n
\n {\"Please Check Atleast One Access Privilege\"}\n
\n )}\n
\n )}\n
\n \n doApprove()}\n >\n Approve\n \n \n
\n\n {/*End Modal Approve User*/}\n\n {/* Invite New User*/}\n
\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n
Invite User
\n
\n
\n \n Upload as CSV \n \n
\n
\n
\n
\n
\n \n {({ errors, touched }) => (\n
\n
\n
\n
\n \n \n {errors.email && touched.email && (\n
\n {errors.email}\n
\n )}{\" \"}\n
\n
\n \n \n \n ))}\n \n {errors.companyname && touched.companyname && (\n
\n {errors.companyname}\n
\n )}{\" \"}\n
\n
\n \n
\n
\n {}}\n />\n \n
\n
\n
\n {Cookies.get(\"t\")\n .split(\",\")\n .indexOf(encryptHash(777)) !== -1 && (\n \n \n
\n \n
\n \n handlenewUserAccessLevelChange(e)\n }\n />\n \n
\n
\n \n handlenewUserAccessLevelChange(e)\n }\n />\n \n
\n
\n \n handlenewUserAccessLevelChange(e)\n }\n />\n \n
\n
\n \n handlenewUserAccessLevelChange(e)\n }\n />\n \n
\n
\n \n handlenewUserAccessLevelChange(e)\n }\n />\n \n
\n
\n \n handlenewUserAccessLevelChange(e)\n }\n />\n \n
\n
\n \n handlenewUserAccessLevelChange(e)\n }\n />\n \n
\n
\n\n {checkBoxValidation && (\n
\n {\n \"Please select at least one permission level.\"\n }\n
\n )}\n
\n )}\n
\n
\n \n Stations\n \n selected.join(\", \")\n }\n onChange={handleStationsToAddChange}\n MenuProps={MenuProps}\n input={\n \n }\n >\n {Array.isArray(stationsData) &&\n stationsData.map((v) => (\n \n -1\n }\n />\n \n \n ))}\n \n \n
\n
\n {\n
\n {stationsToAddError}\n
\n }\n
\n
\n {\" \"}\n \n Invite\n {\" \"}\n
\n
\n
\n \n )}\n \n
\n
\n
\n \n \n\n {/* End Invite New User*/}\n\n {/* Allocate / Remove User from stations*/}\n \n
\n
\n
\n
\n
\n
Allocate / Remove Stations from Users
\n
\n
\n
\n \n User Email ID\n \n }\n sx={{ overflow: \"auto\" }}\n >\n {data\n .filter((v) => {\n if (v.is_admin === \"Yes\") return false;\n else return true;\n })\n .map((v) => (\n \n {v.email}\n {\"\\n\"}\n \n ))}\n \n \n
\n
\n
\n
\n \n Stations\n selected.join(\", \")}\n onChange={handleStationsToAddChange}\n MenuProps={MenuProps}\n input={\n \n }\n >\n {Array.isArray(stationsData) &&\n stationsData.map((v) => (\n \n -1\n }\n />\n \n \n ))}\n \n \n
\n
\n {\n
\n {stationsToAddError}\n
\n }\n
\n
\n \n \n Allocate or Remove\n \n \n }\n //control={}\n label=\"Allocate\"\n />\n }\n label=\"Remove\"\n />\n \n \n
\n
\n
\n \n Submit\n \n
\n
\n
\n
\n
\n \n {/* End Allocate / Remove User from stations*/}\n
\n
\n
\n
\n \n )}\n \n );\n}\n\nexport default AdminUserSectionV2;\n","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport { Button, Modal } from \"react-bootstrap\";\n//import DataTable from \"react-data-table-component\";\nimport DataTable from \"../DataTable/dataTable\";\nimport { Formik, Form, Field } from \"formik\";\nimport OutlinedInput from \"@mui/material/OutlinedInput\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport DisplaySettingsIcon from \"@mui/icons-material/DisplaySettings\";\nimport {\n ListItemText,\n Checkbox,\n FormControlLabel,\n FormLabel,\n Tooltip,\n} from \"@mui/material\";\nimport Radio from \"@mui/material/Radio\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControl from \"@mui/material/FormControl\";\nimport Select from \"@mui/material/Select\";\nimport ImportExportIcon from \"@material-ui/icons/ImportExport\";\nimport Auth from \"@aws-amplify/auth\";\nimport Cookies from \"js-cookie\";\nimport logout from \"../validations/logoutUser\";\nimport axios from \"axios\";\nimport LinearProgress from \"@material-ui/core/LinearProgress\";\nimport Box from \"@material-ui/core/Box\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { API_ENDPOINT_URL } from \"../../constants/constants\";\nimport checkPageAccess from \"../others/getPageAccess\";\nimport ApiClient from \"../../apis/apiClient\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport Loader from \"../loader/loader\";\nimport encryptHash from \"../validations/general\";\n\nexport default function AdminCompanySection() {\n const [email, setemail] = useState(\"\");\n const [address_error, setaddress_error] = useState(\n \"Please Enter your Company Address\"\n );\n const [register_error, setregister_error] = useState(\"Please Enter a Number\");\n const [whitelist_error, setwhitelist_error] = useState(\n \"Please Enter a Number\"\n );\n const [companyname, setcompanyname] = useState(\"\");\n const [companyid, setcompanyid] = useState(\"\");\n const [add_val, setadd_val] = useState(\"\");\n const [add_company, setadd_company] = useState(false);\n const [registerval, setregisterval] = useState(0);\n const [whitelistval, setwhitelistval] = useState(0);\n const [data, setdata] = useState([]);\n const [stationsData, setstationsData] = useState([]);\n const [userAuthToken, setuserAuthToken] = useState(null);\n const [tableLoader, settableLoader] = useState(true);\n const [admin_email, setadmin_email] = useState(\"\");\n const [xperi_fae_email, setxperi_fae_email] = useState(\"\");\n const [stationAddCompanyName, setstationAddCompanyName] = useState(\"\");\n const [stationsToAdd, setstationsToAdd] = useState([]);\n const [allocateRemove, setallocateRemove] = useState(\"allocate\");\n const [showDataserviceModal, setshowDataserviceModal] = useState(false);\n const [idx, setidx] = useState(null);\n const [servicesData, setservicesData] = useState([]);\n const [companydataservicesList, setcompanydataservicesList] = useState([]);\n const [selectedList, setselectedList] = useState({});\n const [loading, setloading] = useState(false);\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n const [loaderType, setLoaderType] = useState(\"CircularProgress\");\n const [percentage, setpercentage] = useState(0);\n const [showFramingAlert, setshowFramingAlert] = useState(false);\n const [framingAnswer, setframingAnswer] = useState(false);\n\n\n const access_levels = Cookies.get(\"t\") ? Cookies.get(\"t\").split(\",\") : []; \n\n const cols = [\n {\n label: \"Company ID\",\n name: \"companyId\",\n },\n {\n label: \"Company Name\",\n name: \"companyName\",\n },\n {\n label: \"Company Address\",\n name: \"companyAddress\",\n },\n {\n label: \"Admin Email\",\n name: \"adminEmail\",\n },\n {\n label: \"FAE Email\",\n name: \"faeEmail\",\n },\n {\n label: \"Total Registered Users\",\n name: \"totalRegisteredUsers\",\n },\n {\n label: \"Total Approved\",\n name: \"totalApproved\",\n },\n {\n label: \"Stations\",\n name: \"stations\",\n },\n {\n name: \"Framing Enabled\",\n options: {\n filter: false,\n display: access_levels.indexOf(encryptHash(\"777\")) !== -1,\n customBodyRender: (value, tableMeta, updateValue) => (\n
\n \n {\n setidx(tableMeta.rowIndex);\n setshowFramingAlert(true);\n setframingAnswer(e.target.checked);\n }}\n />\n \n
\n ),\n },\n },\n {\n name: \"Update Dataservice\",\n options: {\n filter: false,\n //hint: \"Shows the current state of the station (use this to log off the station)\",\n customBodyRender: (value, tableMeta, updateValue) => (\n
\n \n {\n setshowDataserviceModal(true);\n setidx(tableMeta.rowIndex);\n }}\n />\n \n
\n ),\n },\n },\n ];\n\n const handleCompNameChange = (e) => {\n setstationAddCompanyName(e.target.value);\n };\n const handleStationsToAddChange = (e) => {\n setstationsToAdd(e.target.value);\n };\n\n const updateFraming = async () => {\n setshowFramingAlert(false);\n setloading(true);\n let resp = await ApiClient(\n \"post\",\n \"/admin/updateCompanyFraming\",\n {\n company_id: data[idx].companyId,\n do_framing: framingAnswer,\n },\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n if (resp.data.status === 200) {\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(resp.data.message);\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n setHrefLink(\"\");\n setshowFramingAlert(false);\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occurred \" + resp.data.message);\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n setshowFramingAlert(false);\n }\n };\n\n const addCompanyStations = async () => {\n setloading(true);\n if (stationAddCompanyName.length === 0 || stationsToAdd.length === 0) {\n alert(\"Please Select both company and stations \");\n return;\n }\n const resp = await ApiClient(\n \"post\",\n \"/admin/addRemoveStationsToCompany\",\n {\n company: stationAddCompanyName,\n stations: stationsToAdd,\n option: allocateRemove,\n },\n {\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (resp.data.status === 200) {\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(resp.data.message);\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n setHrefLink(\"\");\n } else if (resp.data.status === 403) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (resp.data.status === 422) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Something Went Wrong \");\n setAlertTitle(\"Error\");\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Something Went Wrong \");\n setAlertTitle(\"Error\");\n }\n };\n const addCompany = async () => {\n setloading(true);\n const response = await ApiClient(\n \"post\",\n \"/admin/addCompanyData/\",\n {\n company_id: companyid,\n company_name: companyname,\n company_address: add_val,\n admin_email: admin_email,\n fae_email: xperi_fae_email,\n },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (response.data.status == 200) {\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(response.data.message);\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n setHrefLink(\"\");\n } else if (response.data.status === 403) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (response.data.status === 422) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Something Went Wrong \");\n setAlertTitle(\"Error\");\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\n \"Something Went Wrong \" + response.data.message ||\n response.data.result ||\n response.data.response\n );\n setAlertTitle(\"Error\");\n }\n };\n const validateUser = () => {\n let getauth = async () => {\n return (await Auth.currentSession()).getAccessToken().getJwtToken();\n };\n getauth()\n .then((res) => {\n axios\n .get(API_ENDPOINT_URL + \"/admin/companies/\", {\n headers: {\n Authorization: Cookies.get(\"auth\"),\n },\n })\n .then((res) => {\n if (res.data.status === 200) {\n setdata(res.data.result);\n setservicesData(res.data.services_data);\n settableLoader(false);\n } else {\n //console.log(\"Error In data fetch\",res.data.status,res.data.result)\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n }\n });\n })\n .catch((err) => {\n setuserAuthToken(null);\n window.location.replace(\"/\");\n });\n };\n useEffect(async () => {\n document.title = \"Companies | Xperi HD Radio IoT\";\n if (!Cookies.get(\"auth\")) {\n Auth.signOut().then((res) => {\n //console.log(res);\n validateUser();\n });\n //console.log(\"Logged out\");\n } else {\n setuserAuthToken(Cookies.get(\"auth\"));\n validateUser();\n let isValid = await checkPageAccess();\n if (!isValid) {\n window.location.href = \"/unauthorized\";\n } else {\n //console.log(\"You have access\");\n let resp = await ApiClient(\"get\", \"/app/stations\", \"\", {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n\n if (resp.data.status === 200) {\n setstationsData(resp.data.result);\n } else if (resp.data.status === 403) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else {\n alert(\"No Records\");\n }\n }\n }\n }, []);\n\n useEffect(() => {\n if (data.length > 0) {\n let temp = {};\n for (let x of data) {\n temp[x[\"companyId\"]] = {};\n x.stations.split(\",\").map((v) => {\n temp[x[\"companyId\"]][v.trim()] = \"\";\n });\n }\n setcompanydataservicesList(temp);\n }\n }, [data]);\n\n useEffect(() => {\n if (showDataserviceModal) {\n let x = data[idx]?.stations.split(\",\");\n let dservices = data[idx]?.dataServices;\n console.log(\"dserv\", dservices);\n let temp = {};\n for (let y of x)\n temp[y.trim()] = dservices ? dservices[y.trim()] || \"None\" : \"None\";\n setselectedList({ ...temp });\n }\n }, [showDataserviceModal]);\n\n const handleChangeDataServicesList = (val, call_sign) => {\n //console.log(\"called_\");\n let temp = Object.assign({}, selectedList);\n temp[call_sign] = val;\n setselectedList(Object.assign({}, temp));\n };\n\n const validateCompanyname = (value) => {\n let error;\n if (!value || value.length < 2) {\n error = \"Please Enter A Company Name\";\n } else {\n setcompanyname(value);\n }\n ////console.log(error);\n return error;\n };\n const validateCompanyId = (value) => {\n ////console.log(\"vvvv\"+value)\n let error;\n\n if (!value || value.length < 2) {\n error = \"Please Enter A Company Id\";\n } else {\n setcompanyid(value);\n }\n ////console.log(error);\n return error;\n };\n\n const validateAdminEmail = (value) => {\n let error;\n if (!value) {\n error = \"Field is mandatory\";\n } else {\n setadmin_email(value);\n }\n return error;\n };\n const validateFaeEmail = (value) => {\n let error;\n if (!value) {\n error = \"Field is mandatory\";\n } else {\n setxperi_fae_email(value);\n }\n return error;\n };\n const addressValidation = (e) => {\n //console.log(e.target.value)\n ////console.log(add_val)\n var addrs = e.target.value;\n if (!addrs.trim()) {\n setaddress_error(\"Please enter your company address\");\n setadd_company(true);\n } else if (addrs.length < 10) {\n setaddress_error(\"Invalid Address\");\n setadd_company(true);\n } else {\n setaddress_error(\"\");\n setadd_company(false);\n setadd_val(addrs);\n }\n\n setadd_val(e.target.value);\n\n ////console.log(error);\n };\n const handleAllocateRemoveChange = (e) => {\n setallocateRemove(e.target.value);\n };\n\n const updateCompanyDataServiceDB = async () => {\n //console.log(data[idx], companydataservicesList[data[idx].companyId], selectedList);\n setloading(true);\n let resp = await ApiClient(\n \"post\",\n \"/admin/updateCompanyDataService\",\n {\n company_id: data[idx].companyId,\n selected_list: selectedList,\n },\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n if (resp.data.status === 200) {\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(resp.data.message);\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n setHrefLink(\"\");\n setshowDataserviceModal(false);\n setselectedList({});\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occurred \" + resp.data.message);\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n };\n\n useEffect(() => {\n console.log(companydataservicesList);\n }, [companydataservicesList]);\n\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction === \"load\") {\n window.location.reload();\n } else if (confirmAction === \"href\") {\n console.log(\"inside conf href\");\n window.location = hrefLink;\n } else if (confirmAction === \"logout\") {\n //console.log('lg h');\n logout();\n }\n };\n\n const MenuProps = {\n PaperProps: {\n style: {\n maxHeight: 48 * 4.5 + 2,\n width: 250,\n },\n },\n };\n\n return (\n
\n {alert && (\n \n {alertMessage}\n \n )}\n {showFramingAlert && (\n updateFraming()}\n onCancel={() => setshowFramingAlert(false)}\n focusCancelBtn\n >\n We will apply changes on confirmation.\n \n )}\n \n {userAuthToken !== null && (\n
\n \n
\n
\n
List Of Companies
\n\n {tableLoader === true && (\n \n \n \n \n \n \n Loading Table...\n \n \n \n )}\n {tableLoader === false && (\n {\n // handleClickedDeleteButton(event, rowData);\n // },\n //selectableRows:'single',\n }}\n />\n )}\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Add Company
\n
\n
\n \n Upload as CSV \n \n
\n
\n
\n
\n
\n \n {({ errors, touched }) => (\n
\n
\n
\n
\n \n \n {errors.companyname && touched.companyname && (\n
\n {errors.companyname}\n
\n )}{\" \"}\n
\n
\n \n \n {errors.companyname && touched.companyname && (\n
\n {errors.companyname}\n
\n )}{\" \"}\n
\n
\n \n \n {errors.companyname && touched.companyname && (\n
\n {errors.companyname}\n
\n )}{\" \"}\n
\n
\n \n \n {errors.faeemail && touched.faeemail && (\n
\n {errors.faeemail}\n
\n )}{\" \"}\n
\n
\n \n {\n addressValidation(e);\n }}\n >{\" \"}\n {address_error !== \"\" && add_company && (\n
\n {address_error}\n
\n )}\n
\n
\n
\n
\n {\" \"}\n \n setadd_company(true)\n }\n >\n Save\n {\" \"}\n
\n
\n
\n
\n )}\n \n
\n
\n
\n
\n
\n
\n\n \n
\n
\n
\n
\n
\n
Allocate / Remove Stations for Company
\n
\n
\n
\n \n Company ID\n \n }\n >\n {data.map((v) => (\n \n {v.companyId}\n \n ))}\n \n \n
\n
\n
\n
\n \n Stations\n selected.join(\", \")}\n onChange={handleStationsToAddChange}\n MenuProps={MenuProps}\n input={\n \n }\n >\n {stationsData &&\n stationsData.map((v) => (\n \n -1\n }\n />\n \n \n ))}\n \n \n
\n
\n
\n
\n \n \n Allocate or Remove\n \n \n }\n label=\"Allocate\"\n />\n }\n label=\"Remove\"\n />\n \n \n
\n
\n
\n \n Submit\n \n
\n
\n
\n
\n
\n \n\n
\n
\n
\n \n )}\n {userAuthToken === null && (\n
\n
\n
\n \n

Session Expired !!!... Company

\n
\n
\n
\n
\n )}\n {/* Modal for Notification Settings Update */}\n {\n setshowDataserviceModal(false);\n setselectedList({});\n }}\n backdrop=\"static\"\n keyboard={false}\n size=\"lg\"\n >\n \n Allocate Dataservices to company\n \n {Object.entries(selectedList).length > 0 && (\n \n {data[idx]?.stations.split(\",\").map((v) => (\n
\n
{v.trim()}
\n
\n \n \n handleChangeDataServicesList(e.target.value, v.trim())\n }\n autoWidth\n label=\"Age\"\n >\n \n None\n \n {servicesData[v.trim()]?.map((x) => (\n \n {x}\n \n ))}\n \n \n
\n
\n ))}\n
\n )}\n \n {\n updateCompanyDataServiceDB();\n }}\n style={{ backgroundColor: \"#4F3493\", borderColor: \"#4F3493\" }}\n >\n Save Changes\n \n \n \n\n {/* End Modal for Notification Settings Update*/}\n \n );\n}\n","import React, { PureComponent } from \"react\";\nimport MUIDataTable from \"mui-datatables\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport AWS from \"aws-sdk\";\n//import awsmobile from \"../../aws-exports\";\nimport Auth from \"@aws-amplify/auth\";\nimport Cookies from \"js-cookie\";\n// import LinearProgress from \"@material-ui/core/LinearProgress\";\n// import Box from \"@material-ui/core/Box\";\nimport Modal from \"react-bootstrap/Modal\";\nimport ModalBody from \"react-bootstrap/ModalBody\";\nimport ModalHeader from \"react-bootstrap/ModalHeader\";\nimport ModalFooter from \"react-bootstrap/ModalFooter\";\nimport ModalTitle from \"react-bootstrap/ModalTitle\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Multiselect from \"multiselect-react-dropdown\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport { Button } from \"react-bootstrap\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport ArrowBackIosIcon from \"@mui/icons-material/ArrowBackIos\";\nimport checkPageAccess from \"../others/getPageAccess\";\nimport {\n TextField,\n FormLabel,\n FormGroup,\n Checkbox,\n FormControlLabel,\n Slider,\n} from \"@material-ui/core\";\nimport {\n unstable_createMuiStrictModeTheme as createMuiTheme,\n MuiThemeProvider,\n} from \"@material-ui/core/styles\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport RefreshIcon from \"@material-ui/icons/Refresh\";\nimport ApiClient from \"../../apis/apiClient\";\nimport logout from \"../validations/logoutUser\";\n\nconst awsmobile = {\n aws_project_region: process.env.REACT_APP_AWS_PROJECT_REGION,\n aws_cognito_identity_pool_id:\n process.env.REACT_APP_AWS_COGNITO_IDENTITY_POOL_ID,\n aws_cognito_region: process.env.REACT_APP_AWS_COGNITO_REGION,\n aws_user_pools_id: process.env.REACT_APP_AWS_USER_POOLS_ID,\n aws_user_pools_web_client_id:\n process.env.REACT_APP_AWS_USER_POOLS_WEB_CLIENT_ID,\n oauth: {},\n aws_bucket: process.env.REACT_APP_AWS_BUCKET,\n};\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n light: \"#757CE8\",\n main: \"#3F50B5\",\n dark: \"#002884\",\n contrastText: \"#fff\",\n },\n secondary: {\n light: \"#FF7961\",\n main: \"#F44336\",\n dark: \"#BA000D\",\n contrastText: \"#000\",\n },\n },\n});\n\nconst modeAlias = {\n 1: \"Scanning\",\n 4: \"Waiting for Data\",\n 5: \"Processing Data\",\n};\n\nexport default class IOTDeviceDash extends PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n responsive: \"standard\",\n tableBodyHeight: \"600px\",\n tableBodyMaxHeight: \"\",\n tableData: [],\n lastUpdateTime: \"\",\n tableLoader: true,\n modalState: false,\n ignoreModalState: false,\n deviceIdd: \"\",\n deviceDetail: {},\n locationState: \"\",\n locationStreet: \"\",\n DeviceAlias: \"\",\n locationCity: \"\",\n notes: \"\",\n locationInside: \"\",\n ignoreDevice: \"\",\n rowsSelected: [],\n rowsPerPage: 100,\n userAuthToken: null,\n editBtn: false,\n res: \"\",\n rssiFilterChecked: false,\n msgFilterChecked: false,\n dateFilterChecked: false,\n cdnFilterChecked: false,\n optionsDropdown: [],\n selectedValues: null,\n selectedList: null,\n dateMin: \"\",\n dateMax: \"\",\n rssiRange: [],\n cdn0Range: [],\n removeButtonState: false,\n enableButtonState: false,\n docClient: null,\n tableEnable: [],\n tableDisable: [],\n enableIndex: [],\n disableIndex: [],\n //enableIndex:\"\"\n };\n //this.saveModal = this.saveModal.bind(this);\n }\n\n onRowsSelect = (_, allRows) => {\n this.setState({ rowsSelected: allRows.map((row) => row.index) });\n };\n \n onRowsSelect2 = (curRowSelected, allRowsSelected) => {\n let arrVal = [];\n for (var j = 0; j < allRowsSelected.length; j++) {\n arrVal[j] = allRowsSelected[j].dataIndex;\n }\n arrVal.sort();\n if (allRowsSelected.length > 0) {\n this.setState({\n removeButtonState: true,\n enableButtonState: false,\n enableIndex: arrVal,\n });\n } else {\n this.setState({\n removeButtonState: false,\n enableButtonState: false,\n enableIndex: [],\n });\n }\n };\n onRowsSelect3 = (curRowSelected, allRowsSelected) => {\n let arrVal = [];\n for (var j = 0; j < allRowsSelected.length; j++) {\n arrVal[j] = allRowsSelected[j].dataIndex;\n }\n arrVal.sort();\n if (allRowsSelected.length > 0) {\n this.setState({\n removeButtonState: false,\n enableButtonState: true,\n disableIndex: arrVal,\n });\n } else {\n this.setState({\n removeButtonState: false,\n enableButtonState: false,\n disableIndex: [],\n });\n }\n };\n \n onChangeRowsPerPage = (rowsPerPage) => {\n this.setState({ rowsPerPage });\n };\n tabledataUpdate = async (dId) => {\n //console.log(!this.state.enableButtonState);\n let response = await ApiClient(\n \"post\",\n \"/admin/updateIoTDeviceInfoState\",\n { deviceId: dId, state: this.state.enableButtonState + \"\" },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (response.data.status === 200) {\n alert(\"Updated\");\n } else if (response.data.status === 403) {\n alert(\"Session Expired Please Relogin\");\n logout();\n } else if (response.data.status === 422) {\n alert(\"Missing required para\");\n } else {\n alert(\"Something Went Wrong\");\n }\n };\n saveDeviceDisableStatus = () => {\n let enableArr = this.state.tableEnable;\n let disableArr = this.state.tableDisable;\n let c = 0;\n //console.log(this.state.enableIndex);\n this.state.enableIndex.forEach((i) => {\n let dId = enableArr[i - c][\"DeviceID\"];\n disableArr.push({ DeviceID: dId });\n enableArr.splice(i - c, 1);\n c++;\n this.tabledataUpdate(dId);\n });\n this.setState({\n tableEnable: enableArr,\n enableIndex: [],\n tableDisable: disableArr,\n });\n alert(\"Status Updated Success\");\n };\n saveDeviceEnableStatus = () => {\n let enableArr = this.state.tableEnable;\n let disableArr = this.state.tableDisable;\n let c = 0;\n let statusUpdate = [];\n\n this.state.disableIndex.forEach(async (i) => {\n let dId = disableArr[i - c][\"DeviceID\"];\n enableArr.push({ DeviceID: dId });\n disableArr.splice(i - c, 1);\n c++;\n this.tabledataUpdate(dId);\n });\n this.setState({\n tableEnable: enableArr,\n tableDisable: disableArr,\n disableIndex: [],\n });\n alert(\"Status Updated Success\");\n\n };\n\n saveModal = async () => {\n\n let response = await ApiClient(\"post\", \"/admin/updateIoTDeviceInfoData\", {\n deviceId: document.getElementById(\"deviceId\").value,\n locationState: document.getElementById(\"locationState\").value,\n locationStreet: document.getElementById(\"locationStreet\").value,\n deviceAlias: document.getElementById(\"deviceAlias\").value,\n locationCity: document.getElementById(\"locationCity\").value,\n notes: document.getElementById(\"notes\").value,\n locationInside: document.getElementById(\"locationInside\").value,\n ignoreDevice: document.getElementById(\"ignoreDevice\").value\n }, {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n })\n\n if (response.data.status === 200) {\n let a = this.state.deviceDetail;\n a[document.getElementById(\"deviceId\").value][0] =\n document.getElementById(\"locationState\").value;\n a[document.getElementById(\"deviceId\").value][1] =\n document.getElementById(\"locationStreet\").value;\n a[document.getElementById(\"deviceId\").value][2] =\n document.getElementById(\"deviceAlias\").value;\n a[document.getElementById(\"deviceId\").value][3] =\n document.getElementById(\"locationCity\").value;\n a[document.getElementById(\"deviceId\").value][4] =\n document.getElementById(\"notes\").value;\n a[document.getElementById(\"deviceId\").value][5] =\n document.getElementById(\"locationInside\").value;\n a[document.getElementById(\"deviceId\").value][6] =\n document.getElementById(\"ignoreDevice\").value;\n\n ////console.log(a[document.getElementById(\"deviceId\").value][0] + \"nnnn\");\n this.setState({\n deviceDetail: a,\n modalState: false,\n deviceIdd: \"\",\n locationStreet: \"\",\n DeviceAlias: \"\",\n locationCity: \"\",\n notes: \"\",\n locationInside: \"\",\n locationState: \"\",\n ignoreDevice: \"\",\n editBtn: false,\n });\n } else if (response.data.status === 403) {\n alert(\"Session Expired Please Relogin\");\n logout();\n } else if (response.data.status === 422) {\n alert(\"Missing required para\");\n } else {\n alert(\"Something Went Wrong\");\n }\n };\n closeModal = () => {\n this.setState({\n modalState: false,\n deviceIdd: \"\",\n locationStreet: \"\",\n DeviceAlias: \"\",\n locationCity: \"\",\n notes: \"\",\n locationInside: \"\",\n locationState: \"\",\n ignoreDevice: \"\",\n editBtn: false,\n });\n };\n delete = () => {\n //var filterArray =[]\n var tableData_copy = this.state.tableData;\n this.state.selectedList.forEach((element, index, array) => {\n var filterArray = tableData_copy.filter(\n (obj) => obj.DeviceID !== element.name\n );\n tableData_copy = filterArray;\n });\n this.setState({\n tableData: tableData_copy,\n });\n };\n hover = (value) => {\n ////console.log(value+\"hhhhbbbbs\")\n\n var a = this.state.deviceDetail;\n this.setState({\n modalState: !this.state.modalState,\n deviceIdd: value,\n locationState: a[value][0],\n locationStreet: a[value][1],\n DeviceAlias: a[value][2],\n locationCity: a[value][3],\n notes: a[value][4],\n locationInside: a[value][5],\n ignoreDevice: a[value][6],\n });\n ////console.log(a[value]);\n };\n componentWillUnmount() {\n //clearTimeout(this.timer);\n }\n validateUser = async () => {\n let response = await ApiClient(\n \"post\",\n \"/admin/getTableDataDynamoDB\",\n {\n tableName: \"IotDevice_info\",\n },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (response.data.status === 200) {\n let data = response.data.result;\n let detail = {};\n let optionsArray = [];\n let enable = [];\n let disable = [];\n for (let x = 0; x < data.length; x++) {\n optionsArray.push({ name: data[x][\"DeviceID\"] });\n detail[data[x][\"DeviceID\"]] = [\n data[x][\"Location_State\"],\n data[x][\"Location_street\"],\n data[x][\"DeviceAlias\"],\n data[x][\"Location_City\"],\n data[x][\"Notes:\"],\n data[x][\"Locaton_inside\"],\n data[x][\"IgnoreDevice\"],\n ];\n if (data[x][\"IgnoreDevice\"] === \"true\") {\n enable.push({\n DeviceID: data[x][\"DeviceID\"],\n });\n }\n if (data[x][\"IgnoreDevice\"] === \"false\") {\n disable.push({\n DeviceID: data[x][\"DeviceID\"],\n });\n }\n }\n //console.log(enable);\n //console.log(disable);\n this.setState(\n {\n deviceDetail: detail,\n optionsDropdown: optionsArray,\n tableEnable: enable,\n tableDisable: disable,\n },\n () => {\n this.deviceTableScan();\n }\n );\n } else if (response.data.status === 403) {\n alert(\"Session Expired Please Relogin\");\n logout();\n } else if (response.data.status === 422) {\n alert(\"Missing required para\");\n } else {\n alert(\"Problem in Loading Data reload\");\n }\n };\n\n deviceTableScan = async () => {\n let response = await ApiClient(\n \"post\",\n \"/admin/getTableDataDynamoDB\",\n {\n tableName: \"IOT_Device_Details\",\n },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (response.data.status === 200) {\n let data = response.data.result;\n let rowData;\n let tempTableData = [];\n let cMin = 0;\n let cMax = 0;\n let rMin = 0;\n let rMax = 0;\n\n for (let x = 0; x < data.length; x++) {\n rowData = data[x];\n if(this.state.deviceDetail[rowData[\"DeviceID\"]] === \"HD4391Dev_003\")\n console.log('x',this.state.deviceDetail[rowData[\"DeviceID\"]][6])\n if (this.state.deviceDetail[rowData[\"DeviceID\"]][6] === \"true\")\n continue;\n cMin = Math.min(\n cMin,\n isNaN(parseInt(rowData[\"cdn0\"].trim()))\n ? cMin\n : parseInt(rowData[\"cdn0\"])\n );\n cMax = Math.max(\n cMax,\n isNaN(parseInt(rowData[\"cdn0\"].trim()))\n ? cMax\n : parseInt(rowData[\"cdn0\"])\n );\n rMin = Math.min(\n rMin,\n isNaN(parseInt(rowData[\"rssi\"])) ? rMin : parseInt(rowData[\"rssi\"])\n );\n rMax = Math.max(\n rMax,\n isNaN(parseInt(rowData[\"rssi\"])) ? rMax : parseInt(rowData[\"rssi\"])\n );\n\n let d = new Date(rowData[\"Date\"].substring(0, 10));\n let dd = d.getDate();\n let mm = d.getMonth() + 1;\n let yyyy = d.getFullYear();\n if (dd < 10) {\n dd = \"0\" + dd;\n }\n\n if (mm < 10) {\n mm = \"0\" + mm;\n }\n\n d = mm + \"-\" + dd + \"-\" + yyyy;\n\n tempTableData.push({\n DeviceID: rowData[\"DeviceID\"],\n \"Location street\": this.state.deviceDetail[rowData[\"DeviceID\"]][1],\n Date: d,\n Timestamp: rowData[\"Date\"],\n Freq: parseInt(rowData[\"Freq\"]),\n cdn0: isNaN(parseInt(rowData[\"cdn0\"]))\n ? 0\n : parseInt(rowData[\"cdn0\"]),\n mode: !modeAlias[rowData[\"mode\"]]\n ? rowData[\"mode\"]\n : modeAlias[rowData[\"mode\"]],\n rssi: isNaN(parseInt(rowData[\"rssi\"]))\n ? 0\n : parseInt(rowData[\"rssi\"]),\n msgs: rowData[\"msgs\"],\n msgID: rowData[\"MsgID\"],\n PacketSize: rowData[\"AASPktSize\"]\n });\n }\n\n this.setState({\n tableData: tempTableData,\n tableLoader: false,\n rssiRange: [rMin, rMax],\n cdn0Range: [cMin, cMax],\n });\n } else if (response.data.status === 403) {\n alert(\"Session Expired Please Relogin\");\n logout();\n } else if (response.data.status === 422) {\n alert(\"Missing required para\");\n } else {\n alert(\"Problem in Loading Data reload\");\n }\n };\n\n async componentDidMount() {\n document.title = \"IoT Device Dashboard | Xperi HD Radio IoT\";\n let isValid = await checkPageAccess();\n if (!isValid) {\n if (!alert(\"access denied for the url\"))\n window.location.href = \"/unauthorized\";\n return;\n } else {\n console.log(\"You have access\");\n }\n if (!Cookies.get(\"auth\")) {\n Auth.signOut().then((res) => {\n //console.log(res);\n this.validateUser();\n });\n //console.log(\"Logged out\");\n } else {\n this.setState({ userAuthToken: Cookies.get(\"auth\") });\n this.validateUser();\n }\n }\n render() {\n const columns2 = [\n {\n name: \"DeviceID\",\n label: \"Device ID\",\n options: {\n setCellProps: () => ({\n style: {\n whiteSpace: \"nowrap\",\n position: \"sticky\",\n left: \"0\",\n background: \"white\",\n zIndex: 100,\n },\n }),\n setCellHeaderProps: () => ({\n style: {\n whiteSpace: \"nowrap\",\n position: \"sticky\",\n left: 0,\n background: \"white\",\n zIndex: 101,\n },\n }),\n },\n },\n // {\n // name: \"LocationState\",\n // label: \"Location State\",\n // },\n // {\n // name: \"LocationStreet\",\n // label: \"Location Street\",\n // },\n // {\n // name: \"LocationCity\",\n // label: \"Location City\",\n // },\n // {\n // name: \"Notes\",\n // label: \"Notes\",\n // },\n // {\n // name: \"LocatonInside\",\n // label: \"Locaton Inside\",\n // },\n // {\n // name: \"IgnoreDevice\",\n // label: \"Ignore Device\",\n // },\n ];\n const columns = [\n {\n name: \"DeviceID\",\n options: {\n customBodyRender: (value, tableMeta, updateValuep) => {\n return (\n this.hover(value)}\n style={{ color: \"blue\", whiteSpace: \"nowrap\" }}\n >\n {value}\n \n );\n },\n },\n },\n {\n name: \"Location street\",\n options: {\n display: false,\n },\n },\n {\n name: \"Date\",\n options: {\n display: false,\n filter: true,\n // filterList: [],\n filterType: \"custom\",\n type: \"date\",\n customFilterListOptions: {\n render: (v) => {\n if (v[0] && v[1] && this.state.dateFilterChecked) {\n return [`Min date: ${v[0]}`, `Max date: ${v[1]}`];\n } else if (v[0] && v[1] && !this.state.dateFilterChecked) {\n return `Min date: ${v[0]}, Max date: ${v[1]}`;\n } else if (v[0]) {\n return `Min date: ${v[0]}`;\n } else if (v[1]) {\n return `Max date: ${v[1]}`;\n }\n return false;\n },\n update: (filterList, filterPos, index) => {\n //console.log(\n // \"customFilterListOnDelete: \",\n // filterList,\n // filterPos,\n // index\n // );\n if (filterPos === 0) {\n filterList[index].splice(filterPos, 1, \"\");\n } else if (filterPos === 1) {\n filterList[index].splice(filterPos, 1);\n } else if (filterPos === -1) {\n filterList[index] = [];\n }\n return filterList;\n },\n },\n\n filterOptions: {\n names: [],\n logic(dt, filters) {\n if (filters[0] && filters[1]) {\n return dt < filters[0] || dt > filters[1];\n } else if (filters[0]) {\n return dt < filters[0];\n } else if (filters[1]) {\n return dt > filters[1];\n }\n return false;\n },\n display: (filterList, onChange, index, column) => (\n
\n Date\n \n {\n this.setState({\n dateMin: event.target.value,\n });\n var mm = new Date(event.target.value).getMonth() + 1;\n var dd = new Date(event.target.value).getDate();\n var yy = new Date(event.target.value).getFullYear();\n if (mm < 10) mm = \"0\" + mm;\n if (dd < 10) dd = \"0\" + dd;\n filterList[index][0] = mm + \"-\" + dd + \"-\" + yy;\n onChange(filterList[index], index, column);\n }}\n style={{ width: \"48%\", marginRight: \"2%\" }}\n />\n {\n this.setState({\n dateMax: event.target.value,\n });\n var mm = new Date(event.target.value).getMonth() + 1;\n var dd = new Date(event.target.value).getDate();\n var yy = new Date(event.target.value).getFullYear();\n if (mm < 10) mm = \"0\" + mm;\n if (dd < 10) dd = \"0\" + dd;\n filterList[index][1] = mm + \"-\" + dd + \"-\" + yy;\n onChange(filterList[index], index, column);\n }}\n style={{ width: \"48%\" }}\n />\n \n this.setState({\n dateFilterChecked: event.target.checked,\n })\n }\n />\n }\n label=\"Separate Values\"\n style={{ marginLeft: \"0px\" }}\n />\n \n
\n ),\n },\n print: false,\n },\n },\n {\n name: \"Timestamp\",\n label: \"Timestamp (UTC)\",\n options: {\n filter: false,\n },\n },\n {\n name: \"Freq\",\n label: \"Freq\",\n options: {\n sort: true,\n },\n },\n {\n name: \"cdn0\",\n label: \"cdn0\",\n options: {\n sort: true,\n filter: true,\n // filterList: [],\n filterType: \"custom\",\n customFilterListOptions: {\n render: (v) => {\n if (v[0] && v[1] && this.state.cdnFilterChecked) {\n return [`Min cdn0: ${v[0]}`, `Max cdn0: ${v[1]}`];\n } else if (v[0] && v[1] && !this.state.cdnFilterChecked) {\n return `Min cdn0: ${v[0]}, Max cdn0: ${v[1]}`;\n } else if (v[0]) {\n return `Min cdn0: ${v[0]}`;\n } else if (v[1]) {\n return `Max cdn0: ${v[1]}`;\n }\n return false;\n },\n update: (filterList, filterPos, index) => {\n //console.log(\n // \"customFilterListOnDelete: \",\n // filterList,\n // filterPos,\n // index\n // );\n if (filterPos === 0) {\n filterList[index].splice(filterPos, 1, \"\");\n } else if (filterPos === 1) {\n filterList[index].splice(filterPos, 1);\n } else if (filterPos === -1) {\n filterList[index] = [];\n }\n return filterList;\n },\n },\n\n filterOptions: {\n names: [],\n logic(cdn0, filters) {\n if (filters[0] && filters[1]) {\n return cdn0 < filters[0] || cdn0 > filters[1];\n } else if (filters[0]) {\n return cdn0 < filters[0];\n } else if (filters[1]) {\n return cdn0 > filters[1];\n }\n return false;\n },\n display: (filterList, onChange, index, column) => (\n
\n cdn0\n \n 'Temperature range'}\n value={this.state.cdn0Range}\n onChange={(event, newValue) =>\n this.setState({ cdn0Range: newValue }, () => {\n filterList[index][0] = this.state.cdn0Range[0];\n filterList[index][1] = this.state.cdn0Range[1];\n onChange(filterList[index], index, column);\n })\n }\n valueLabelDisplay=\"auto\"\n // getAriaValueText={valuetext}\n />\n \n
\n ),\n },\n print: false,\n },\n },\n {\n name: \"PacketSize\",\n },\n {\n name: \"mode\",\n label: \"mode\",\n options: {\n sort: false,\n },\n },\n {\n name: \"rssi\",\n label: \"rssi\",\n options: {\n sort: true,\n filter: true,\n // filterList: [],\n filterType: \"custom\",\n customFilterListOptions: {\n render: (v) => {\n if (v[0] && v[1] && this.state.rssiFilterChecked) {\n return [`Min rssi: ${v[0]}`, `Max rssi: ${v[1]}`];\n } else if (v[0] && v[1] && !this.state.rssiFilterChecked) {\n return `Min rssi: ${v[0]}, Max rssi: ${v[1]}`;\n } else if (v[0]) {\n return `Min rssi: ${v[0]}`;\n } else if (v[1]) {\n return `Max rssi: ${v[1]}`;\n }\n return false;\n },\n update: (filterList, filterPos, index) => {\n //console.log(\n // \"customFilterListOnDelete: \",\n // filterList,\n // filterPos,\n // index\n // );\n if (filterPos === 0) {\n filterList[index].splice(filterPos, 1, \"\");\n } else if (filterPos === 1) {\n filterList[index].splice(filterPos, 1);\n } else if (filterPos === -1) {\n filterList[index] = [];\n }\n return filterList;\n },\n },\n\n filterOptions: {\n names: [],\n logic(rssi, filters) {\n if (filters[0] && filters[1]) {\n return rssi < filters[0] || rssi > filters[1];\n } else if (filters[0]) {\n return rssi < filters[0];\n } else if (filters[1]) {\n return rssi > filters[1];\n }\n return false;\n },\n display: (filterList, onChange, index, column) => (\n
\n rssi\n \n 'Temperature range'}\n value={this.state.rssiRange}\n onChange={(event, newValue) =>\n this.setState({ rssiRange: newValue }, () => {\n filterList[index][0] = this.state.rssiRange[0];\n filterList[index][1] = this.state.rssiRange[1];\n onChange(filterList[index], index, column);\n })\n }\n valueLabelDisplay=\"auto\"\n // getAriaValueText={valuetext}\n />\n \n
\n ),\n },\n print: false,\n },\n },\n {\n name: \"msgs\",\n label: \"msgs\",\n options: {\n filter: true,\n filterType: \"custom\",\n filterType: \"dropdown\",\n print: false,\n sort: false,\n },\n },\n {\n name: \"msgID\",\n label: \"msgID\",\n options: {\n sort: false,\n },\n },\n ];\n const options2 = {\n filter: false,\n filterType: \"dropdown\",\n print: false,\n viewColumns: false,\n download: false,\n search: false,\n pagination: false,\n tableBodyHeight: \"300px\",\n tableBodyMaxHeight: \"\",\n responsive: this.state.responsive,\n selectableRows: \"multiple\",\n customToolbarSelect: () => { },\n //selectableRows: false,\n onRowsSelect: this.onRowsSelect2,\n rowsSelected: this.state.enableIndex,\n //searchable: false,\n };\n const options3 = {\n filter: false,\n filterType: \"dropdown\",\n print: false,\n viewColumns: false,\n download: false,\n search: false,\n pagination: false,\n tableBodyHeight: \"300px\",\n tableBodyMaxHeight: \"\",\n responsive: this.state.responsive,\n selectableRows: \"multiple\",\n rowsSelected: this.state.disableIndex,\n customToolbarSelect: () => { },\n //selectableRows: false,\n onRowsSelect: this.onRowsSelect3,\n };\n const options = {\n filter: true,\n filterType: \"dropdown\",\n responsive: this.state.responsive,\n tableBodyHeight: this.state.tableBodyHeight,\n tableBodyMaxHeight: this.state.tableBodyMaxHeight,\n selectableRows: \"none\",\n rowsSelected: this.state.rowsSelected,\n onRowSelectionChange: this.onRowsSelect,\n rowsPerPage: this.state.rowsPerPage,\n onChangeRowsPerPage: this.onChangeRowsPerPage,\n rowsPerPageOptions: [10, 25, 50, 75, 100],\n\n //onChangeRowsPerPage:{{()=>{this.setState(rowPerpage:number)}}},\n downloadOptions: {\n filename: \"tableDownload.csv\",\n filterOptions: {\n useDisplayedColumnsOnly: true,\n useDisplayedRowsOnly: true,\n },\n },\n sortOrder: {\n name: \"Timestamp\",\n direction: \"desc\",\n },\n customToolbar: () => {\n return (\n \n \n this.deviceTableScan()} />\n \n \n );\n },\n };\n return (\n
\n {this.state.userAuthToken !== null && (\n \n
\n
\n \n {\" \"}\n
\n {/* \n
Last Updated: {this.state.lastUpdateTime}
\n
*/}\n \n \n
\n

IOT Device Details

\n {/* Updated every 10 seconds */}\n
\n
\n
\n this.setState({ ignoreModalState: true })}\n >\n Add/Remove Devices\n \n \n {/* */}\n
\n
\n {this.state.tableLoader === true && (\n
\n \n \n
\n \n \n \n
\n )}\n {this.state.tableLoader === false && (\n
\n \n \n \n
\n )}\n \n this.closeModal()}\n animation={false}\n >\n \n Iot Device Detail\n \n \n \n
\n
\n Device Id\n
\n \n
\n
\n Location State\n
\n \n
\n
\n
\n
\n Location Street\n
\n \n
\n
\n Device Alias\n
\n \n
\n
\n
\n
\n Location City\n
\n \n
\n
\n Notes\n
\n \n
\n
\n
\n
\n Locaton Inside\n
\n \n
\n
\n Ignore Device\n
\n \n
\n
\n
\n
\n \n {!this.state.editBtn && (\n \n this.setState({ editBtn: !this.state.editBtn })\n }\n >\n Edit\n \n )}\n {this.state.editBtn && (\n this.saveModal()}\n >\n Save\n \n )}\n \n \n\n this.setState({ ignoreModalState: false })}\n animation={false}\n size=\"xl\"\n >\n \n Enable / Disable Devices\n \n \n
\n {/*
\n
\n \n Remove Device\n \n
\n
\n \n Enable Device\n \n
\n
*/}\n
\n
\n
\n \n
\n \n
\n \n \n \n
\n
\n
\n
\n \n \n Disable  \n \n
\n
\n \n Enable  \n \n
\n \n
\n \n
\n \n \n \n
\n
\n
\n \n \n
\n \n
\n
\n \n \n
\n \n \n )}\n {this.state.userAuthToken === null && (\n
\n
\n \n

Session Expired !!!... IOT Device

\n
\n
\n
\n )}\n \n );\n }\n}\n","import Cookies from \"js-cookie\";\nimport logout from \"./logoutUser\";\n\nconst validateUser = () => {\n if (!Cookies.get(\"auth\")) {\n logout();\n return false;\n }else {\n return true;\n }\n}\n\nexport default validateUser;","import { React, useState, useEffect } from \"react\";\nimport { Button } from \"react-bootstrap\";\n// @material-ui/core components\n//import { makeStyles } from \"@material-ui/core/styles\";\n// core components\nimport LockIcon from \"@material-ui/icons/Lock\";\nimport HomeOutlined from \"@material-ui/icons/HomeOutlined\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport Box from \"@material-ui/core/Box\";\nimport Auth from \"@aws-amplify/auth\";\nimport Cookies from \"js-cookie\";\nimport ApiClient from \"../../apis/apiClient\";\nimport Alerts from \"../alerts/alert\";\nimport VisibilityIcon from \"@mui/icons-material/Visibility\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport logout from \"../validations/logoutUser\";\nimport validateUser from \"../validations/userSessionValidation\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport Loader from \"../loader/loader\";\n\nimport {\n TextField,\n Table,\n TableBody,\n TableContainer,\n TableRow,\n TableCell,\n Paper,\n FormGroup,\n FormControlLabel,\n Checkbox,\n Switch,\n} from \"@material-ui/core\";\nimport Avatar from \"react-avatar\";\nimport { Modal } from \"react-bootstrap\";\nimport { validatePasswordMain } from \"../validations/basicRegFormValidations\";\nimport { Formik, Form, Field } from \"formik\";\n\nexport default function UserProfileS() {\n //const classes = useStyles();\n const [width, setWidth] = useState(window.innerWidth);\n const [height, setHeight] = useState(window.innerHeight);\n const [userAuthToken, setuserAuthToken] = useState(null);\n // const [userDetails, setUserDetails] = useState([]);\n const [name, setName] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [phn, setPhn] = useState(\"\");\n const [companyName, setCompany] = useState(\"\");\n const [companyId, setCompanyId] = useState(\"\");\n const [faeEmail, setfaeEmail] = useState(\"\");\n const [open, setOpen] = useState(false);\n const [status, setStatus] = useState(0);\n const [alertType, setAlertType] = useState();\n const [message, setMessage] = useState();\n const [stage, setstage] = useState(1);\n const [code, setcode] = useState();\n const [password, setpassword] = useState();\n const [showPass, setshowPass] = useState(false);\n const [showCPass, setshowCPass] = useState(false);\n const [btnLoad, setbtnLoad] = useState(false);\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n\n const [loading, setloading] = useState(true);\n const [loaderType, setLoaderType] = useState(\"CircularProgress\");\n const [percentage, setpercentage] = useState(0);\n const handleClose = () => setOpen(false);\n const handleShow = () => setOpen(true);\n const [apiAccessSwitchLabel, setapiAccessSwitchLabel] = useState(\"\");\n const [apiAccessSwitchValue, setapiAccessSwitchValue] = useState(false);\n const [closeAlertbtn, setcloseAlertbtn] = useState(false);\n\n useEffect(async () => {\n if (validateUser()) {\n //console.log(\"User Logged in\");\n setuserAuthToken(Cookies.get(\"auth\"));\n let getauth = async () => {\n return (await Auth.currentSession()).getAccessToken().getJwtToken();\n };\n getauth()\n .then(async (res) => {\n const result = await ApiClient(\n \"get\",\n \"/getUserProfile\",\n {},\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n if (result.data.status === 200) {\n setName(result.data.result[\"name\"]);\n setEmail(result.data.result[\"email\"]);\n setPhn(result.data.result[\"phone\"]);\n setCompany(result.data.result[\"company_name\"]);\n setCompanyId(result.data.result[\"company_id\"]);\n setfaeEmail(result.data.result[\"faeEmail\"]);\n setapiAccessSwitchValue(result.data.result[\"has_api_access\"]);\n setapiAccessSwitchLabel(\n result.data.result[\"has_api_access\"]\n ? \"API access already enable before. Please Contact Xperi admin to regain access if lost keys\"\n : \"\"\n );\n setloading(false);\n } else if (result.data.status === 403) {\n logout();\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n })\n .catch((err) => {\n logout();\n });\n } else {\n console.log(\"User Not Logged in\");\n }\n }, []);\n const validateCode = (value) => {\n if (!value) return \"Please enter code\";\n else if (value.length !== 6) return \"code should be 6 characters\";\n else setcode(value);\n return;\n };\n const validatePassword = (value) => {\n let error = validatePasswordMain(value, setpassword);\n return error;\n };\n const validateConfirmPassword = (value) => {\n if (!value) return \"please enter value\";\n else if (value !== password) return \"passwords don't match\";\n };\n\n const toggleShowPass = () => {\n setshowPass(!showPass);\n };\n const toggleShowCPass = () => {\n setshowCPass(!showCPass);\n };\n const getEmailVerificationCode = () => {\n setbtnLoad(true);\n Auth.forgotPassword(email)\n .then((data) => {\n setbtnLoad(false);\n setstage(2);\n setStatus(1);\n setAlertType(\"success\");\n setMessage(\n \"Verification code sent to Email: \" +\n data.CodeDeliveryDetails.Destination\n );\n })\n .catch((err) => {\n setbtnLoad(false);\n setStatus(1);\n setAlertType(\"warning\");\n setMessage(\"Error: \" + err.message);\n });\n };\n\n const confirmPasswordChange = () => {\n setbtnLoad(true);\n Auth.forgotPasswordSubmit(email, code, password)\n .then((data) => {\n if (data === \"SUCCESS\") {\n setstage(3);\n setStatus(1);\n setAlertType(\"success\");\n setMessage(\"Password Changed Please Relogin\");\n }\n setbtnLoad(false);\n Auth.signOut();\n })\n .catch((err) => {\n setStatus(1);\n setAlertType(\"warning\");\n setMessage(\"Password Change Error \" + err.message);\n setbtnLoad(false);\n });\n };\n\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction === \"load\") {\n window.location.reload();\n } else if (confirmAction === \"href\") {\n window.location.href = hrefLink;\n } else if (confirmAction === \"logout\") {\n logout();\n }\n };\n\n const updateSwitchState = (e) => {\n setapiAccessSwitchValue(e.target.checked)\n if(e.target.checked){\n setcloseAlertbtn(true);\n }\n }\n\n\n const enableAPIAccessFunc = async () => {\n setloading(true);\n setcloseAlertbtn(false);\n \n const result = await ApiClient(\n \"post\",\n \"/user/enableAPIAccess\",\n {},\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n if (result.data.status === 200) {\n setloading(false);\n setAlert(true);\n setAlertMessage(result.data.response);\n setConfirmAction(\"load\");\n const user = result.data.email;\n const access_key = result.data.access_key;\n const secret = result.data.secret;\n const out =\n \"email,Access Key, Secret\\n\" + user + \",\" + access_key + \",\" + secret;\n const element = document.createElement(\"a\");\n const file = new Blob([out], { type: \"text/plain;charset=utf-8\" });\n element.href = URL.createObjectURL(file);\n element.download = \"Radiodatacast-API-access_keys.csv\";\n document.body.appendChild(element);\n element.click();\n }\n };\n const closeAlertFunc = async () => {\n setapiAccessSwitchValue(false);\n };\n\n return (\n
\n {alert && (\n \n {alertMessage}\n \n )}\n {closeAlertbtn && apiAccessSwitchValue && (\n \n You will not be able to undo this action\n \n )}\n \n \n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n 1200 ? \"col-md-8\" : \"col-md-6\"}\n style={{ marginTop: \"16px\" }}\n >\n
User Profile
\n
\n 1200 ? \"col-md-4\" : \"col-md-6\"}\n style={{ marginTop: \"7px\" }}\n >\n {/* {\" \"} */}\n {\n handleShow();\n getEmailVerificationCode();\n }}\n >\n Reset Password \n \n
\n
\n
\n
\n \n \n \n \n Name\n \n \n \n \n \n \n {\" \"}\n Email Address\n \n \n \n \n \n \n \n {\" \"}\n Phone Number\n \n \n \n \n \n \n \n Company Id\n \n \n \n \n \n \n \n Company Name\n \n \n \n \n \n \n \n Xperi FAE Email\n \n \n \n \n \n \n \n Enable API Access\n \n \n \n updateSwitchState(e)\n }\n />\n }\n label={apiAccessSwitchLabel}\n />\n \n \n \n
\n
\n
\n {/*\n
Subscription Option :-
\n
\n \n 380 ? 1 / 2 : 1}\n width={\"300\"}\n bgcolor=\"#dbeaf3\"\n color=\"black\"\n >\n Bit Rate: 15\n \n {width <= 380 && (\n <>\n

\n \n )}\n 380 ? 1 / 2 : 1}\n width={\"300\"}\n bgcolor=\"#dbeaf3\"\n color=\"black\"\n >\n Option1: 10\n \n {width <= 380 && (\n <>\n
\n
\n \n )}\n 380 ? 1 / 2 : 1}\n width={\"300\"}\n bgcolor=\"#dbeaf3\"\n color=\"black\"\n >\n Option2: 18\n \n \n
\n */}\n
\n \n
\n\n {/* window.location.replace(\"/dashboard\")}\n >\n Go to Home \n */}\n \n \n \n
\n
\n
\n
\n {open === true && (\n \n \n Change My Password\n \n {status === 1 && (\n \n )}\n \n
\n \n {({ errors, touched }) => (\n
\n
\n \n \n {errors.code && touched.code && (\n
\n {errors.code}\n
\n )}\n
\n
\n \n
\n
\n \n
\n \n {showPass && (\n toggleShowPass()} />\n )}\n {!showPass && (\n toggleShowPass()}\n />\n )}\n
\n
\n {errors.password && touched.password && (\n
\n {errors.password}\n
\n )}\n
\n
\n \n
\n
\n \n
\n \n {showCPass && (\n toggleShowCPass()} />\n )}\n {!showCPass && (\n toggleShowCPass()}\n />\n )}\n
\n
\n {errors.confirmPassword && touched.confirmPassword && (\n
\n {errors.confirmPassword}\n
\n )}\n \n
\n \n
\n \n )}\n \n \n
\n
\n )}\n \n );\n}\n","import React from 'react'\n\nconst PageNotFound = () => {\n return (\n
\n \"\"\n \"\"\n
\n \n
\n\n
\n Copyright Xperi © 2021. All rights reserved.\n \n \n
\n
\n )\n}\n\nexport default PageNotFound","import { React, useState, useEffect } from \"react\";\nimport { Formik, Form, Field } from \"formik\";\nimport VisibilityIcon from \"@mui/icons-material/Visibility\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport {\n validateUsernameMain,\n validateEmailMain,\n validatePhonenumberMain,\n validatePasswordMain,\n validateCompanyMain,\n} from \"../validations/basicRegFormValidations\";\nfunction BaseConfirmRegisterForm(props) {\n const {\n userEmail,\n userCompany,\n userName,\n userPhone,\n confirmRegClicked,\n setConfirmClicked,\n setPassword,\n confirmRegFailed,\n setConfirm,\n } = props;\n const [showPassState, setShowPassState] = useState(false);\n const validatePassword = (value) => {\n return validatePasswordMain(value, setPassword);\n };\n const showPassword = () => {\n setShowPassState(!showPassState);\n };\n const signUp = () => {\n setConfirmClicked(1);\n };\n useEffect(() => {\n //console.log(props);\n }, [props])\n return (\n
\n \n {({ errors, touched }) => (\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n {\" \"}\n {\" \"}\n
\n \n \n {showPassState && (\n showPassword()} />\n )}\n {!showPassState && (\n showPassword()} />\n )}\n
\n
\n {errors.password && touched.password && (\n
\n {errors.password}\n
\n )}{\" \"}\n
\n
\n
\n {(confirmRegClicked === 0 || confirmRegFailed) && (\n setConfirm(true)}\n >\n Confirm\n \n )}\n {confirmRegClicked === 1 && !confirmRegFailed && (\n \n Please wait\n \n )}\n
\n \n )}\n \n \n );\n}\nexport default BaseConfirmRegisterForm;\n","import { React, useState, useEffect } from \"react\";\nimport Alerts from \"./components/alerts/alert\";\nimport BaseConfirmRegisterForm from \"./components/forms/baseConfirmRegisterForm\";\nimport ApiClient from \"./apis/apiClient\";\nimport VerifyEmail from \"./components/register/verifyEmail\";\nimport Auth from \"@aws-amplify/auth\";\nimport RegisterMFA from \"./components/register/registerMFA\";\nimport FinalPage from \"./components/register/finalPage\";\nimport Footer from \"./components/footer/footer\";\nimport registerCognitoUser from \"./components/register/registerCognito\";\nimport Loader from \"./components/loader/loader\"\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport logout from \"./components/validations/logoutUser\";\n\nexport default function Confirm() {\n const [email, setEmail] = useState(null);\n const [company, setCompany] = useState(null);\n const [status, setStatus] = useState(0);\n const [alertType, setAlertType] = useState(\"success\");\n const [confirmRegClicked, setConfirmClicked] = useState(0);\n const [password, setPassword] = useState(null);\n const [confirmRegFailed, setRegFailed] = useState(false);\n const [confirm, setConfirm] = useState(false);\n const [name, setName] = useState(null);\n const [phoneNumber, setPhoneNumber] = useState(null);\n const [stage, setStage] = useState(0);\n const [message, setMessage] = useState(null);\n const [getMFA, setGetMFA] = useState(false);\n const [MFACode, setMFACode] = useState(null);\n const [doLogin, setDoLogin] = useState(false);\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n\n const [loading, setloading] = useState(true);\n const [loaderType, setLoaderType] = useState(\"CircularProgress\");\n const [percentage, setpercentage] = useState(0);\n\n useEffect(() => {\n getUserData();\n }, []);\n\n useEffect(() => {\n if (company != null) addNewUserToDB();\n }, [confirmRegClicked]);\n useEffect(() => {\n ////console.log(\"Inside mfa screen\");\n }, [getMFA]);\n const addNewUserToDB = async () => {\n ////console.log(email+\"jjjj\")\n registerCognitoUser(\n name,\n email,\n phoneNumber,\n password,\n company,\n setStage,\n setStatus,\n setMessage,\n setAlertType,\n setRegFailed,\n Auth\n );\n };\n const getUserData = async () => {\n const token = new URLSearchParams(window.location.search).get(\"token\");\n let result = await ApiClient(\"get\", \"/getUserFromToken\", \"token=\" + token);\n if (result.data.status === 200) {\n setloading(false);\n setName(result.data.name);\n setPhoneNumber(result.data.phone);\n setEmail(result.data.email);\n setCompany(result.data.company);\n ////console.log(result.data)\n } else if (result.data.status === 422) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else if (result.data.status === 404) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"User fetch failed: Token Invalid\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n };\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction === \"load\") {\n window.location.reload();\n } else if (confirmAction === \"href\") {\n window.location.href = hrefLink;\n } else if (confirmAction === \"logout\") {\n logout()\n }\n }\n return (\n
\n
\n
\n {alert && (\n \n {alertMessage}\n \n )}\n {status === 1 && (\n \n )}\n \n
\n
\n
\n {/*
\n {\" \"}\n {\" \"}\n
\n */}\n
\n {\" \"}\n {\" \"}\n
\n
\n
\n
\n
\n {stage === 0 && !doLogin && (\n \n )}\n {stage === 1 && !doLogin && !getMFA && (\n \n )}\n {getMFA && (\n \n )}\n {doLogin && }\n
\n
\n
\n
\n
\n
\n
\n );\n}\n","import React from 'react'\nimport Auth from \"@aws-amplify/auth\";\n\nexport class TestAuth extends React.PureComponent {\n constructor(props){\n super(props)\n this.state = {\n valid : \"\"\n }\n }\n \n render() {\n return (\n
\n { \n this.state.valid !==\"\" && (\n

Hello {this.state.valid}

\n )\n }\n
\n )\n }\n}\n\nexport default TestAuth\n\n","import React, { useState } from \"react\";\nimport Multiselect from \"multiselect-react-dropdown\";\nimport { Button } from \"react-bootstrap\";\nimport {Box, CircularProgress} from \"@material-ui/core\";\n\nfunction RegionSelect(props) {\n const { selectOptions, setselectValuesList, isAdding, handleClick } = props;\n // eslint-disable-next-line\n const [isMobile, setisMobile] = useState(false);\n const [width, setWidth] = useState(window.innerWidth);\n\n const onSelect = (selectedList, selectedItem) => {\n setselectValuesList(selectedList);\n };\n const onRemove = () => {};\n\n\n return (\n
\n
\n
\n = 760 && width < 790 ? \"col-md-6\" : \"col-md-8\"}\n >\n \n
\n = 760 && width < 790 ? \"col-md-6\" : \"col-md-4\"}\n style={isMobile ? { marginTop: \"3px\" } : {}}\n >\n \n {isAdding ? \"Adding…\" : \"Click to Add\"}\n \n  \n {selectOptions.length === 0 && (\n \n \n \n )}\n
\n
\n \n \n );\n}\n\nexport default RegionSelect;\n","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport Cookies from \"js-cookie\";\nimport encryptHash from \"../../validations/general\";\nimport { InputProps } from \"@material-ui/core\";\nimport {\n Table,\n TableBody,\n TableContainer,\n TableRow,\n TableCell,\n Paper,\n FormControlLabel,\n Checkbox,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n Radio,\n RadioGroup,\n TextField,\n Input,\n FormHelperText,\n} from \"@material-ui/core\";\nfunction MessageSettings(props) {\n const {\n bitRateTransmitMessage,\n setbitRateTransmitMessage,\n setbroadcast,\n date,\n setDate,\n utcdate,\n setFile,\n minimumBitRate,\n setutcDate,\n timezone,\n settimezone,\n transferVia,\n settransferVia,\n dateNow,\n setAlertMessage,\n setAlert,\n setSeverity,\n setAlertTitle,\n setConfirmAction,\n setHrefLink,\n setrepeatCount,\n setrepeatInterval,\n showRepeat,\n setshowRepeat,\n setdoFraming,\n } = props;\n const [yourtimeZone, setyourTimeZone] = useState(\n Intl.DateTimeFormat().resolvedOptions().timeZone\n );\n const hours = {\n \"America/Toronto\": 5,\n \"America/Chicago\": 6,\n \"America/Denver\": 7,\n \"America/Los_Angeles\": 8,\n GMT: 0,\n };\n\n const access_levels = Cookies.get(\"t\") ? Cookies.get(\"t\").split(\",\") : [];\n\n const [changed, setchanged] = useState(false);\n const [showError, setshowError] = useState(false);\n const [dateTimeError, setdateTimeError] = useState(false);\n const [fileError, setfileError] = useState(false);\n const [showBI, setshowBI] = useState(false);\n const formatDate = (inp) => {\n return (\"0\" + inp).slice(-2);\n };\n const getUtcDate = () => {\n return (\n utcdate.getFullYear() +\n \"-\" +\n formatDate(utcdate.getMonth() + 1) +\n \"-\" +\n formatDate(utcdate.getDate()) +\n \" \" +\n utcdate.toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n })\n );\n };\n useEffect(() => {\n const tz = document.getElementsByName(\"timezone\")[0].value;\n settimezone(tz);\n const d = document.getElementById(\"datetime-local\").value;\n //console.log(\"Use Effect\", tz, d);\n let x = new Date(d);\n //x.setHours(x.getHours() - parseInt(tz));\n try {\n //setutcDate(x.toISOString());\n //setDate(dateNow(x));\n } catch (err) {}\n }, [changed]);\n\n const handleChange = async (e) => {\n if (e.target.type === \"file\") {\n console.log(\"Inside\", e.target.files[0].type);\n let types = [\"application/octet-stream\", \"text/plain\"];\n if (\n !types.includes(e.target.files[0].type) &&\n !(\n e.target.files[0].name.endsWith(\".txt\") ||\n e.target.files[0].name.endsWith(\".bin\")\n )\n ) {\n //alert(\"Only Binary and text files allowed to upload\");\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Only Binary and text files allowed to upload\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n e.target.value = \"\";\n setFile(null);\n return;\n }\n if (!e.target.files[0]) {\n setfileError(true);\n setFile(null);\n } else {\n setfileError(false);\n }\n let fSize = 0;\n try {\n fSize = e.target.files[0].size / 1024;\n } catch (err) {\n console.log(\"File Size error \", err.message);\n setFile(null);\n }\n if (fSize > 1000000) {\n setbitRateTransmitMessage(\n \"File should be less than or equal (1 GB) in Size\"\n );\n setFile(null);\n return;\n } else if (fSize === 0) {\n setbitRateTransmitMessage(\"File Size should not be Zero\");\n setFile(null);\n return;\n } else {\n console.log(\"Setting new file\");\n setbitRateTransmitMessage(\"\");\n setFile([...e.target.files]);\n }\n if (minimumBitRate !== -1) {\n let time = fSize / minimumBitRate;\n setbitRateTransmitMessage(\n \"Transmission time from station would take \" + time + \" seconds\"\n );\n }\n } else if (e.target.type === \"datetime-local\") {\n var input_dt = e.target.value;\n input_dt = new Date(input_dt);\n var today = new Date(\n new Date().toLocaleString(\"en-US\", { timeZone: timezone })\n );\n today = new Date(today.getTime() + 1 * 60000);\n // if (input_dt < today) {\n // setdateTimeError(true);\n // console.log(\n // \"can't set that time \",\n // input_dt.toUTCString(),\n // today.toUTCString()\n // );\n // setAlert(true)\n // setSeverity(\"error\")\n // setAlertMessage(\"Please enter future date\");\n // setAlertTitle(\"Something Went Wrong\")\n // setConfirmAction(\"\")\n // setHrefLink(\"\")\n\n //} else {\n if (e.target.id === \"datetime-local\") {\n //console.log(\"date changed\",e.target.value);\n setDate(e.target.value);\n setutcDate(\n new Date(input_dt.setHours(input_dt.getHours() + hours[timezone]))\n );\n setdateTimeError(false);\n }\n // }\n } else if (e.target.name === \"timezone\") {\n setchanged(!changed);\n } else if (e.target.name === \"checkedB\") {\n setbroadcast(e.target.checked);\n setshowBI(e.target.checked);\n } else if (e.target.name === \"repeatM\") {\n setshowRepeat(e.target.checked);\n if (!e.target.checked) {\n setrepeatCount(1);\n setrepeatInterval(0);\n }\n }\n };\n\n const setTransfer = (e, val) => {\n settransferVia(val);\n };\n\n return (\n
\n
\n
\n
\n
Schedule Transmission
\n
\n {access_levels.indexOf(encryptHash(\"777\")) !== -1 && (\n \n setdoFraming(e.target.checked)} />\n }\n label=\"Use Message Framing\"\n />\n
\n )}\n
\n
\n
\n \n \n \n \n \n \n }\n label=\"Broadcast Immediately\"\n />\n \n \n \n Timezone\n \n Timezone\n \n \n Eastern Time (ET)\n \n \n Central Time (CT)\n \n \n Mountain Time (MT)\n \n \n Pacific Time (PT)\n \n \n Greenwich Mean Time (GMT)\n \n \n {/*yourtimeZone*/}\n \n \n \n \n Date And Time
\n

Broadcast Time in GMT

\n
\n \n \n \n {timezone ? getUtcDate() : \"\"}\n

\n
\n \n
\n \n \n
\n
\n \n \n \n {Cookies.get(\"t\").split(\",\").indexOf(encryptHash(777)) !==\n -1 && (\n <>\n // \n // \n // \n // Transfer Via\n // \n // \n // }\n // label=\"HTTP\"\n // labelPlacement=\"end\"\n // />\n // {/* }\n // label=\"SSH\"\n // labelPlacement=\"end\"\n // /> */}\n // \n // \n // \n )}\n \n \n \n }\n label=\"Repeat Sending Messages\"\n fullWidth={true}\n />\n \n \n \n \n Repeat Interval (in Minutes)
\n setrepeatInterval(e.target.value)}\n >\n Choose Time\n 5\n 10\n 15\n 30\n 60\n \n
\n \n Repeat Count\n setrepeatCount(e.target.value)}\n />\n \n \n\n \n \n \n Upload Payload\n \n \n
\n {fileError && showError ? \"please enter Image\" : \"\"}\n
\n
\n
\n
\n \n \n
\n
\n {/* {bitRateTransmitMessage !== \"\" && (\n

\n {bitRateTransmitMessage}{\" \"}\n

\n )} */}\n
\n \n );\n}\n\nexport default MessageSettings;\n","//const awsmobile = require(\"../../aws-exports\");\nimport AWS from \"aws-sdk\";\nimport Auth from \"@aws-amplify/auth\";\nimport createXml from \"./createXML\";\nimport axios from \"axios\";\n\nconst uploadToS3 = async (\n file,\n signedURL,\n setpercentage\n) => {\n let result = await axios.put(signedURL, file[0], {\n headers: { \"Content-Type\": file[0].type },\n onUploadProgress: (progressEvent) => {\n //console.log('P Complete',progressEvent.loaded, progressEvent.total)\n let uploaded = Math.round(\n (progressEvent.loaded / progressEvent.total) * 100\n );\n setpercentage(uploaded);\n },\n });\n};\n\nexport default uploadToS3;\n","import { React, useState, useEffect } from \"react\";\nimport { DateTime } from \"luxon\";\nimport validateUser from \"../../validations/userSessionValidation\";\nimport RegionSelect from \"./regionSelect\";\nimport Cookies from \"js-cookie\";\nimport Auth from \"@aws-amplify/auth\";\nimport ApiClient from \"../../../apis/apiClient\";\nimport logout from \"../../validations/logoutUser\";\nimport DataTable from \"../../DataTable/dataTable\";\nimport MessageSettings from \"./messageSettings\";\n// import Backdrop from \"@mui/material/Backdrop\";\nimport { Button } from \"react-bootstrap\";\nimport SendIcon from \"@material-ui/icons/Send\";\nimport CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\nimport DangerousIcon from \"@mui/icons-material/Dangerous\";\nimport DeleteForeverIcon from \"@mui/icons-material/DeleteForever\";\nimport { Tooltip } from \"@mui/material\";\nimport uploadToS3 from \"../../others/uploadS3\";\n// import { CircularProgressbar, buildStyles } from \"react-circular-progressbar\";\n// import CircularProgress from \"@mui/material/CircularProgress\";\nimport \"react-circular-progressbar/dist/styles.css\";\nimport encryptHash from \"../../validations/general\";\nimport checkPageAccess from \"../../others/getPageAccess\";\nimport axios from \"axios\";\nimport { FormControl, Select, MenuItem } from \"@material-ui/core\";\n// import Alert from '@mui/material/Alert';\n// import Stack from '@mui/material/Stack';\n\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport Loader from \"../../loader/loader\";\n\nfunction CreateMessageNew() {\n const [selectOptions, setselectOptions] = useState([]);\n const [selectValuesList, setselectValuesList] = useState([]);\n const [tableData, settableData] = useState([]);\n const [selectedStationIds, setselectedStationIds] = useState([]);\n const [selectedStationCallsign, setselectedStationCallsign] = useState([]);\n /*const [selectedStationIPs, setselectedStationIPs] = useState([]);\n const [portList, setportList] = useState([]);*/\n const [isAdding, setisAdding] = useState(false);\n const [broadcast, setbroadcast] = useState(false);\n const [bitRateTransmitMessage, setbitRateTransmitMessage] = useState(\"\");\n const [minimumBitRate, setminimumBitRate] = useState(-1);\n const [date, setDate] = useState(null);\n const [utcdate, setutcDate] = useState(null);\n const [timezone, settimezone] = useState(\"America/Toronto\");\n const [file, setFile] = useState(null);\n //const [fileObj, setFileObj] = useState(null);\n //const [fileBlob, setFileBlob] = useState(null);\n const [percentage, setpercentage] = useState(0);\n const [uploadState, setuploadState] = useState(false);\n const [uploadSuccess, setSuccess] = useState(false);\n const [uploadId, setuploadId] = useState([]);\n const [redirect, setRedirect] = useState(false);\n const [transferVia, settransferVia] = useState(\"http\");\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n const [loaderType, setLoaderType] = useState(\"CircularProgress\");\n const [repeatCount, setrepeatCount] = useState(1);\n const [repeatInterval, setrepeatInterval] = useState(0);\n const [showRepeat, setshowRepeat] = useState(false);\n const [doFraming, setdoFraming] = useState(false);\n const [dataFolder, setdataFolder] = useState([]);\n\n const hours = {\n \"America/Toronto\": 4,\n \"America/Chicago\": 5,\n \"America/Denver\": 6,\n \"America/Los_Angeles\": 7,\n GMT: 0,\n };\n let userAuthToken = null;\n\n const access_levels = Cookies.get(\"t\") ? Cookies.get(\"t\").split(\",\") : [];\n\n const formatDate = (inp) => {\n return (\"0\" + inp).slice(-2);\n };\n\n const dateNow = (val) => {\n let date = new Date(val.toLocaleString(\"en-US\", { timeZone: timezone }));\n return (\n date.getFullYear() +\n \"-\" +\n formatDate(date.getMonth() + 1) +\n \"-\" +\n formatDate(date.getDate()) +\n \"T\" +\n formatDate(date.getHours()) +\n \":\" +\n formatDate(date.getMinutes())\n );\n };\n\n const tableColumns = [\n {\n name: \"status\",\n label: \"Status\",\n options: {\n customBodyRender: (value, tableMeta, updateValue) => (\n \n \n \n ),\n },\n },\n {\n name: \"Call Sign\",\n },\n {\n name: \"Frequency\",\n },\n {\n name: \"Region\",\n },\n {\n name: \"Bit Rate\",\n },\n {\n name: \"id\",\n options: {\n display: false,\n },\n },\n {\n name: \"Data Folder\",\n options: {\n display: access_levels.indexOf(encryptHash(\"777\")) !== -1 ,\n customBodyRender: (value, tableMeta, updateValue) => (\n \n {\n let tempDataFolder = dataFolder;\n tempDataFolder[tableMeta.rowIndex] = e.target.value;\n setdataFolder([...tempDataFolder]);\n }}\n label=\"Folder\"\n >\n \n DataB\n \n DataE\n DataH\n RDC_SERVICE\n RDC_INFO\n RDC_DATA_A\n RDC_DATA_B\n RDC_AUTO_A\n RDC_AUTO_B\n RDC_UTIL_A\n RDC_UTIL_B\n \n \n ),\n },\n },\n {\n name: \"Remove\",\n options: {\n customBodyRender: (value, tableMeta, updateValue) => (\n \n ),\n },\n },\n ];\n\n const tableOptions = {\n filter: false,\n filterType: \"dropdown\",\n print: false,\n search: true,\n selectableRows: \"none\",\n download: false,\n viewColumns: false,\n responsive: \"standard\",\n fixedHeader: false,\n // onRowsDelete: (event, rowData) => {\n // handleClickedDeleteButton(event, rowData);\n // },\n //selectableRows:'single',\n };\n\n useEffect(async () => {\n document.title = \"Schedule Message | Xperi HD Radio IoT\";\n setDate(dateNow(new Date()));\n let isValid = await checkPageAccess();\n if (!isValid) {\n // if (!alert(\"access denied for the url\"))\n // window.location.href = \"/unauthorized\";\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Access denied for the url\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"href\");\n setHrefLink(\"/unauthorized\");\n return;\n } else {\n //console.log(\"You have access\");\n }\n if (validateUser()) {\n userAuthToken = Cookies.get(\"auth\");\n let getauth = async () => {\n return (await Auth.currentSession()).getAccessToken().getJwtToken();\n };\n getauth()\n .then(async (res) => {\n setRedirect(true);\n const response = await ApiClient(\"get\", \"/app/regions\", \"\", {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n //console.log(\"Regions Resp Status \", response.data);\n if (response.data.status === 200) {\n setRedirect(false);\n setselectOptions(response.data.result);\n } else if (response.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else {\n //logout();\n setRedirect(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"logout\");\n setHrefLink(\"\");\n }\n })\n .catch((err) => {\n logout();\n //console.log(\"Error in login\",err.message);\n });\n } else {\n //console.log(\"User Not Logged in\");\n }\n }, []);\n\n useEffect(() => {\n console.log(dataFolder);\n }, [dataFolder])\n \n\n useEffect(() => {\n console.log(\"Selected Ids\", selectedStationIds);\n }, [selectedStationIds]);\n useEffect(() => {\n ////console.log(\"Table \", tableData);\n }, [tableData]);\n useEffect(() => {\n ////console.log(\"Table \", tableData);\n //console.log(\"Your time zone\",timezone);\n setDate(dateNow(new Date()));\n }, [timezone]);\n\n useEffect(() => {\n try {\n let input_dt = new Date(date);\n setutcDate(\n new Date(input_dt.setHours(input_dt.getHours() + hours[timezone]))\n );\n } catch (err) {}\n }, [date]);\n\n useEffect(() => {\n if (file === null) return;\n //createImage(file[0]);\n //console.log(\"file changed called\");\n }, [file]);\n\n useEffect(async () => {\n //console.log(\"Upload State \",percentage, uploadState);\n if (percentage === 100 && !uploadState) {\n let code;\n //console.log(\"Upload State \",percentage, uploadState);\n setLoaderType(\"CircularProgress\");\n setRedirect(true);\n if (!uploadSuccess) code = 5;\n else code = 2;\n //console.log(\"Upload State Code\", code);\n\n const responseStat = await ApiClient(\n \"post\",\n \"/user/updateMessageStatus\",\n {\n id: uploadId,\n code: code,\n },\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n //console.log(\"Upload Status\", responseStat);\n if (responseStat.code === 200) {\n //console.log(\"Upload Finished\", uploadState);\n window.location.replace(\"/user/message-history\");\n } else if (responseStat.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (responseStat.data.status === 422) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n }\n }, [uploadState]);\n //add regions to datatable\n const handleClick = async () => {\n setbitRateTransmitMessage(\"\");\n\n if (selectValuesList.length === 0) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Select a Region from Dropdown\");\n setAlertTitle(\"Something Went Wrong\");\n setisAdding(false);\n return;\n }\n if (selectValuesList.length !== 0) {\n setisAdding(true);\n setLoaderType(\"CircularProgress\");\n setpercentage(0);\n setRedirect(true);\n let regions = [];\n selectValuesList.forEach((val) => {\n regions.push(val.name);\n });\n //console.log(regions);\n\n const response = await ApiClient(\n \"post\",\n \"/app/regions/stations\",\n {\n region: regions,\n },\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n\n if (response.data.status === 200) {\n var joined = tableData;\n let y = selectedStationIds;\n let z = selectedStationCallsign;\n let p = dataFolder;\n // let z = selecetdStationIPs;\n //let pl = portList;\n let minBitRate = 100;\n for (let i = 0; i < response.data.result.length; i++) {\n //console.log(\"ITR:\", i, \"Seleted Station Ids\", y);\n if (\n selectedStationIds.indexOf(response.data.result[i][\"id\"]) === -1\n ) {\n joined.push([\n response.data.result[i][\"status\"],\n response.data.result[i][\"call_sign\"],\n response.data.result[i][\"frequency\"],\n response.data.result[i][\"region\"],\n response.data.result[i][\"bit_rate\"],\n response.data.result[i][\"id\"],\n ]);\n //if (response.data.result[i][\"status\"]) {\n y.push(response.data.result[i][\"id\"]);\n z.push(response.data.result[i][\"call_sign\"]);\n p.push(response.data.result[i][\"data_service\"]);\n //z.push(response.data.result[i][\"ip\"]);\n //pl.push(response.data.result[i][\"port\"]);\n //}\n }\n minBitRate =\n minBitRate > response.data.result[i][\"bit_rate\"]\n ? response.data.result[i][\"bit_rate\"]\n : minBitRate;\n ////console.log(this.state.selectedStaions)\n }\n setselectedStationIds([...y]);\n setselectedStationCallsign([...z]);\n setdataFolder([...p]);\n //setselectedStationIPs(z);\n //setportList(pl);\n //console.log(\"Current Station List\", joined);\n settableData(joined);\n setminimumBitRate(minBitRate);\n setisAdding(false);\n setRedirect(false);\n setdoFraming(response.data.framing);\n } else if (response.data.status === 401) {\n //alert(\"No Stations assigned in this regions\");\n setisAdding(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"No Stations assigned in this regions\");\n setAlertTitle(\"Something Went Wrong\");\n setRedirect(false);\n } else if (response.data.status === 403) {\n setisAdding(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (response.data.status === 422) {\n setisAdding(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n setRedirect(false);\n } else if (response.data.status === 402) {\n setisAdding(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"No Records\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n setRedirect(false);\n } else {\n setisAdding(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n setRedirect(false);\n }\n }\n };\n\n const submit = async () => {\n \n if (showRepeat && repeatInterval === 0) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\n \"Please deselect repeat sending messages or enter appropriate values for interval\"\n );\n setAlertTitle(\"Something Went Wrong\");\n return;\n }\n if (selectedStationIds.length === 0) {\n // alert(\"Please Select an active Station from a region\");\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Please select an active station from a region\");\n setAlertTitle(\"Something Went Wrong\");\n return;\n }\n if (!file) {\n // alert(\"Please Select a file for upload\");\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Please Select a file for upload\");\n setAlertTitle(\"Something Went Wrong\");\n return;\n }\n let types = [\"application/octet-stream\", \"text/plain\"];\n if (\n !types.includes(file[0].type) &&\n !(file[0].name.endsWith(\".txt\") || file[0].name.endsWith(\".bin\"))\n ) {\n //alert(\"Only Binary and text files allowed to upload\");\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Only Binary and text files allowed to upload\");\n setAlertTitle(\"Something Went Wrong\");\n return;\n }\n let today = new Date(\n new Date().toLocaleString(\"en-US\", { timeZone: timezone })\n );\n today = new Date(today.getTime() + 1 * 60000);\n if (!broadcast && new Date(date) < today) {\n //alert(\"DateTime should be in future \");\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Date & Time should be in future\");\n setAlertTitle(\"Something Went Wrong\");\n return;\n }\n setuploadState(true);\n setLoaderType(\"CircularProgressbar\");\n //console.log(\"Submit Clicked\", selectedStationIPs);\n \n const response = await ApiClient(\n \"post\",\n \"/user/createMessage\",\n {\n user: Cookies.get(\"user\"),\n scheduletime: utcdate.toString().substring(0, 24),\n filename: file[0].name,\n filesize: file[0].size / 1024,\n destinationstations: selectedStationCallsign,\n destinationstationsIds: selectedStationIds,\n datafolders: dataFolder,\n broadcastimmediate: broadcast,\n timezone: timezone,\n transferVia: transferVia,\n version: process.env.REACT_APP_VERSION,\n contentType: file[0].type,\n repeatCount: repeatCount,\n repeatInterval: repeatInterval,\n doFraming: doFraming,\n },\n { \"Content-Type\": \"application/json\", authorization: Cookies.get(\"auth\") }\n );\n\n //console.log(response.data);\n if (response.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n }\n if (response.data.status === 422) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n setuploadState(false);\n // setLoaderType(\"CircularProgress\");\n // setpercentage(0);\n setuploadState(false);\n return;\n }\n if (\n response.data.status !== 200 &&\n response.data.status !== 403 &&\n response.data.status !== 422\n ) {\n // alert(\"Error while creating message : \" + response.data.message);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\n \"Error while creating message : \" + response.data.message\n );\n\n setAlertTitle(\"Something Went Wrong\");\n setuploadState(false);\n\n return;\n }\n setuploadId(response.data._id);\n try {\n await uploadToS3(file, response.data.signedRequest, setpercentage);\n\n const response2 = await ApiClient(\n \"post\",\n \"/user/uploadMetadata\",\n {\n recordIds: response.data._id,\n totalRecords: selectedStationIds.length * repeatCount,\n },\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n\n if (response2.data.status === 200) {\n setSuccess(true);\n setuploadState(false);\n setLoaderType(\"CircularProgress\");\n setpercentage(0);\n } else if (response2.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (response2.data.status === 422) {\n setuploadState(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setuploadState(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n } catch (err) {\n //console.log(\"Error \", err);\n }\n };\n\n const goToXperiPayload = (e) => {\n e.preventDefault();\n window.location = \"/user/xperi-payload\";\n };\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction == \"load\") {\n window.location.reload();\n } else if (confirmAction == \"href\") {\n window.location.href = hrefLink;\n } else if (confirmAction === \"logout\") {\n logout();\n }\n };\n return (\n
\n {alert && (\n \n {alertMessage}\n \n )}\n \n
\n \n
\n
\n

Regions

\n \n\n {/*
\n
*/}\n
\n \n
\n {/*
\n
*/}\n\n
\n
\n {date !== null && (\n \n )}\n
\n
\n
\n
\n submit()}\n style={{\n borderColor: \"#4F3493\",\n backgroundColor: \"#4F3493\",\n }}\n >\n Schedule Message \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n );\n}\n\nexport default CreateMessageNew;\n","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport ApiClient from \"../../../apis/apiClient\";\nimport MUIDataTable from \"mui-datatables\";\nimport { Container, Typography, CssBaseline } from \"@material-ui/core\";\n// import Backdrop from \"@mui/material/Backdrop\";\nimport Cookies from \"js-cookie\";\nimport { Button, Modal } from \"react-bootstrap\";\nimport { DateTime } from \"luxon\";\n// import CircularProgress from \"@mui/material/CircularProgress\";\nimport RefreshIcon from \"@material-ui/icons/Refresh\";\nimport AWS from \"aws-sdk\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport DateRangeIcon from \"@mui/icons-material/DateRange\";\nimport checkPageAccess from \"../../others/getPageAccess\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport logout from \"../../validations/logoutUser\";\nimport {\n unstable_createMuiStrictModeTheme as createMuiTheme,\n MuiThemeProvider,\n} from \"@material-ui/core/styles\";\nimport {\n TextField,\n FormLabel,\n FormGroup,\n Checkbox,\n FormControlLabel,\n Slider,\n FormControl,\n InputLabel,\n Select,\n FormHelperText,\n MenuItem,\n} from \"@material-ui/core\";\nimport {\n Table,\n TableBody,\n TableRow,\n TableHead,\n TableCell,\n TableContainer,\n} from \"@mui/material\";\nimport { tableCellClasses } from \"@mui/material/TableCell\";\nimport encryptHash from \"../../validations/general\";\nimport Loader from \"../../loader/loader\";\nimport moment from \"moment\";\nimport Popover from \"@mui/material/Popover\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport MuiAlert from \"@mui/material/Alert\";\nimport Paper from \"@mui/material/Paper\";\nimport { styled } from \"@mui/material/styles\";\n\nconst Alert = React.forwardRef(function Alert(props, ref) {\n return ;\n});\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n light: \"#757CE8\",\n main: \"#3F50B5\",\n dark: \"#002884\",\n contrastText: \"#fff\",\n },\n secondary: {\n light: \"#FF7961\",\n main: \"#F44336\",\n dark: \"#BA000D\",\n contrastText: \"#000\",\n },\n },\n});\n\nconst StyledTableCell = styled(TableCell)(({ theme }) => ({\n [`&.${tableCellClasses.head}`]: {\n backgroundColor: \"#4F3493\",\n color: theme.palette.common.white,\n fontSize: 16,\n },\n [`&.${tableCellClasses.body}`]: {\n fontSize: 15,\n },\n}));\n\nconst StyledTableRow = styled(TableRow)(({ theme }) => ({\n \"&:nth-of-type(odd)\": {\n backgroundColor: theme.palette.action.hover,\n },\n // hide last border\n \"&:last-child td, &:last-child th\": {\n border: 0,\n },\n}));\n\nfunction MesageHistory(props) {\n const [data, setdata] = useState([]);\n const [responseData, setResponseData] = useState(null);\n const [selectedRow, setselectedRow] = useState(null);\n const [show, setShow] = useState(false);\n const [showDelete, setShowDelete] = useState(false);\n const [showReschedule, setshowReschedule] = useState(false);\n const [rescheduleDate, setrescheduleDate] = useState();\n const [dateTimeError, setdateTimeError] = useState(false);\n // const [columns, setcolumns] = useState();\n const [loading, setloading] = useState(true);\n const [dateFilterChecked, setDateFilterChecked] = useState(false);\n const [dateMin, setDateMin] = useState(\"\");\n const [dateMax, setDateMax] = useState(\"\");\n const [dateFilterChecked2, setDateFilterChecked2] = useState(false);\n const [dateMin2, setDateMin2] = useState(\"\");\n const [dateMax2, setDateMax2] = useState(\"\");\n const [cancelSendError, setcancelSendError] = useState(false);\n const [canCancel, setcanCancel] = useState(true);\n const [canCancelBtn, setcanCancelBtn] = useState(true);\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n const [loaderType, setLoaderType] = useState(\"CircularProgress\");\n const [percentage, setpercentage] = useState(0);\n const [timezone, settimezone] = useState(\"GMT\");\n const [inpDate, setinpDate] = useState();\n const [broadcastImmediate, setbroadcastImmediate] = useState(\"N\");\n const [queryResults, setqueryResults] = useState(\"offset=1\");\n const [getAllMessagesFlag, setgetAllMessagesFlag] = useState(false);\n const [docsCount, setdocsCount] = useState();\n const [startDate, setstartDate] = useState(\n new Date().toISOString().substr(0, 10)\n );\n const [endDate, setendDate] = useState(\n new Date().toISOString().substr(0, 10)\n );\n const [anchorEl, setanchorEl] = useState(null);\n const [limitMsgSnack, setlimitMsgSnack] = useState(false);\n const [messagePageLength, setmessagePageLength] = useState(1);\n const handleClose = () => setShow(false);\n const handleShow = () => {\n setShow(true);\n };\n\n const vertical = \"top\";\n const horizontal = \"center\";\n\n const hours = {\n \"America/Toronto\": 5,\n \"America/Chicago\": 6,\n \"America/Denver\": 7,\n \"America/Los_Angeles\": 8,\n GMT: 0,\n };\n\n const string_map = {\n message_id: \"Message Id\",\n initiated_at: \"Initiated At\",\n schedule_time: \"Scheduled At\",\n file_name: \"File Name\",\n file_size: \"File Size (in KB)\",\n destination_station: \"Destination Station (Call Sign)\",\n version: \"App Version\",\n };\n\n const formatDate = (inp) => {\n return (\"0\" + inp).slice(-2);\n };\n\n const parseDate = (date) => {\n return (\n date.getFullYear() +\n \"-\" +\n formatDate(date.getMonth() + 1) +\n \"-\" +\n formatDate(date.getDate()) +\n \"T\" +\n formatDate(date.getHours()) +\n \":\" +\n formatDate(date.getMinutes())\n );\n };\n\n const dateNow = (val) => {\n console.log(val);\n let date = new Date(val.toLocaleString(\"en-US\", { timeZone: timezone }));\n return parseDate(date);\n };\n\n const handleShowDelete = () => {\n setShowDelete(!showDelete);\n setcancelSendError(false);\n };\n\n const handleShowReschedule = () => {\n setshowReschedule(!showReschedule);\n };\n\n const handleRescheduleTimeChange = (event) => {\n setrescheduleDate(event.target.value);\n setdateTimeError(false);\n setinpDate(DateTime.fromISO(event.target.value, { zone: timezone }));\n };\n\n const handlePopoveropen = (event) => {\n setanchorEl(event.currentTarget);\n };\n\n const handlePopoverclose = () => {\n setanchorEl(null);\n };\n\n const openPopover = Boolean(anchorEl);\n\n useEffect(() => {\n //console.log(',',responseData);\n if (responseData) {\n setrescheduleDate(\n dateNow(new Date(responseData[selectedRow]?.schedule_time))\n );\n setinpDate(\n DateTime.fromHTTP(responseData[selectedRow]?.schedule_time, {\n zone: timezone,\n })\n );\n }\n }, [timezone]);\n\n useEffect(() => {\n //console.log(\"values\", messagePageLength);\n setqueryResults(\"&offset=\" + messagePageLength);\n }, [messagePageLength]);\n\n useEffect(() => {\n let x = [\"TRANSFERED\", \"FAILED\", \"CANCELED\"];\n if (\n x.indexOf(responseData && responseData[selectedRow].transmit_status) !==\n -1\n ) {\n setcanCancelBtn(false);\n }\n if (\n responseData &&\n responseData[selectedRow].status.filter((v) => v.id === 12).length !== 0\n ) {\n //console.log(\"inside 2\");\n setcanCancel(false);\n } else if (\n responseData &&\n responseData[selectedRow].schedule_time &&\n new Date(responseData[selectedRow].schedule_time) - new Date() > 0\n ) {\n setcanCancel(true);\n setrescheduleDate(\n dateNow(new Date(responseData[selectedRow].schedule_time))\n );\n } else {\n setcanCancel(false);\n }\n }, [selectedRow]);\n\n const getDateFormatted = (data) => {\n let out =\n String(data.getMonth() + 1).padStart(2, \"0\") +\n \"/\" +\n String(data.getDate()).padStart(2, \"0\") +\n \"/\" +\n data.getFullYear();\n out +=\n \" \" +\n String(data.getHours()).padStart(2, \"0\") +\n \":\" +\n String(data.getMinutes()).padStart(2, \"0\") +\n \":\" +\n String(data.getSeconds()).padStart(2, \"0\");\n return out;\n };\n\n // const msgCodes = {\n // \"Process Initiated\": ,\n // \"Payload Uploaded\": ,\n // \"Payload Transferred to Station\": ,\n // \"Transaction Complete\": ,\n // \"Upload Error\": ,\n // };\n\n const detailsCols = [\n \"message_id\",\n \"initiated_at\",\n \"schedule_time\",\n \"file_name\",\n \"file_size\",\n \"destination_station\",\n \"version\",\n ];\n const columns = [\n {\n name: \"date1\",\n label: \"Initiated Date\",\n options: {\n display: false,\n filter: true,\n filterType: \"custom\",\n type: \"date\",\n customFilterListOptions: {\n render: (v) => {\n if (v[0] && v[1] && dateFilterChecked) {\n return [`Min date: ${v[0]}`, `Max date: ${v[1]}`];\n } else if (v[0] && v[1] && !dateFilterChecked) {\n return `Min date: ${v[0]}, Max date: ${v[1]}`;\n } else if (v[0]) {\n return `Min date: ${v[0]}`;\n } else if (v[1]) {\n return `Max date: ${v[1]}`;\n }\n return false;\n },\n update: (filterList, filterPos, index) => {\n //console.log(\n // \"customFilterListOnDelete: \",\n // filterList,\n // filterPos,\n // index\n // );\n if (filterPos === 0) {\n filterList[index].splice(filterPos, 1);\n if (dateFilterChecked == false) {\n filterList[index] = [];\n setDateMax(\"\");\n }\n setDateMin(\"\");\n } else if (filterPos === 1) {\n filterList[index].splice(filterPos, 1);\n setDateMax(\"\");\n } else if (filterPos === -1) {\n filterList[index] = [];\n setDateMin(\"\");\n setDateMax(\"\");\n }\n return filterList;\n },\n },\n filterOptions: {\n logic(dt, filters) {\n if (filters[0] && filters[1]) {\n return dt < filters[0] || dt > filters[1];\n } else if (filters[0]) {\n return dt < filters[0];\n } else if (filters[1]) {\n return dt > filters[1];\n }\n return false;\n },\n display: (filterList, onChange, index, column) => (\n
\n Initiated Time\n \n {\n setDateMin(event.target.value);\n var mm = new Date(event.target.value).getMonth() + 1;\n var dd = new Date(event.target.value).getDate();\n var yy = new Date(event.target.value).getFullYear();\n if (mm < 10) mm = \"0\" + mm;\n if (dd < 10) dd = \"0\" + dd;\n filterList[index][0] = mm + \"-\" + dd + \"-\" + yy;\n onChange(filterList[index], index, column);\n }}\n style={{ width: \"48%\", marginRight: \"2%\" }}\n />\n {\n setDateMax(event.target.value);\n var mm = new Date(event.target.value).getMonth() + 1;\n var dd = new Date(event.target.value).getDate();\n var yy = new Date(event.target.value).getFullYear();\n if (mm < 10) mm = \"0\" + mm;\n if (dd < 10) dd = \"0\" + dd;\n filterList[index][1] = mm + \"-\" + dd + \"-\" + yy;\n onChange(filterList[index], index, column);\n }}\n style={{ width: \"48%\" }}\n />\n {\n //console.log(event.target.checked);\n setDateFilterChecked(event.target.checked);\n }}\n />\n }\n label=\"Separate Values\"\n style={{ marginLeft: \"0px\" }}\n />\n \n
\n ),\n },\n print: false,\n },\n },\n {\n label: \"Initiated Time (in GMT)\",\n name: \"initiated_at\",\n options: {\n filter: false,\n sortCompare: (order) => {\n return (obj1, obj2) => {\n let val1 = new Date(getDateFormatted(new Date(obj1.data)));\n let val2 = new Date(getDateFormatted(new Date(obj2.data)));\n return (val1 - val2) * (order === \"asc\" ? 1 : -1);\n };\n },\n },\n },\n {\n name: \"date2\",\n label: \"Scheduled Date\",\n options: {\n display: false,\n filter: true,\n filterType: \"custom\",\n type: \"date\",\n customFilterListOptions: {\n render: (v) => {\n if (v[0] && v[1] && dateFilterChecked2) {\n return [`Min date: ${v[0]}`, `Max date: ${v[1]}`];\n } else if (v[0] && v[1] && !dateFilterChecked2) {\n return `Min date: ${v[0]}, Max date: ${v[1]}`;\n } else if (v[0]) {\n return `Min date: ${v[0]}`;\n } else if (v[1]) {\n return `Max date: ${v[1]}`;\n }\n return false;\n },\n update: (filterList, filterPos, index) => {\n //console.log(\n // \"customFilterListOnDelete: \",\n // filterList,\n // filterPos,\n // index\n // );\n if (filterPos === 0) {\n filterList[index].splice(filterPos, 1);\n setDateMax2(\"\");\n } else if (filterPos === 1) {\n filterList[index].splice(filterPos, 1);\n setDateMin2(\"\");\n } else if (filterPos === -1) {\n filterList[index] = [];\n setDateMin2(\"\");\n setDateMax2(\"\");\n }\n return filterList;\n },\n },\n filterOptions: {\n logic(dt, filters) {\n if (filters[0] && filters[1]) {\n return dt < filters[0] || dt > filters[1];\n } else if (filters[0]) {\n return dt < filters[0];\n } else if (filters[1]) {\n return dt > filters[1];\n }\n return false;\n },\n display: (filterList, onChange, index, column) => (\n
\n Schedule Time\n \n {\n setDateMin2(event.target.value);\n var mm = new Date(event.target.value).getMonth() + 1;\n var dd = new Date(event.target.value).getDate();\n var yy = new Date(event.target.value).getFullYear();\n if (mm < 10) mm = \"0\" + mm;\n if (dd < 10) dd = \"0\" + dd;\n filterList[index][0] = mm + \"-\" + dd + \"-\" + yy;\n onChange(filterList[index], index, column);\n }}\n style={{ width: \"48%\", marginRight: \"2%\" }}\n />\n {\n setDateMax2(event.target.value);\n var mm = new Date(event.target.value).getMonth() + 1;\n var dd = new Date(event.target.value).getDate();\n var yy = new Date(event.target.value).getFullYear();\n if (mm < 10) mm = \"0\" + mm;\n if (dd < 10) dd = \"0\" + dd;\n filterList[index][1] = mm + \"-\" + dd + \"-\" + yy;\n onChange(filterList[index], index, column);\n }}\n style={{ width: \"48%\" }}\n />\n {\n //console.log(event.target.checked);\n setDateFilterChecked2(event.target.checked);\n }}\n />\n }\n label=\"Separate Values\"\n style={{ marginLeft: \"0px\" }}\n />\n \n
\n ),\n },\n print: false,\n },\n },\n {\n label: \"Schedule Time \\n(in GMT)\",\n name: \"schedule_time\",\n //type: \"date\",\n options: {\n // customBodyRender: (value) => getDateFormatted(new Date(value)),\n filter: false,\n sortCompare: (order) => {\n return (obj1, obj2) => {\n // console.log(order);\n let val1 = new Date(getDateFormatted(new Date(obj1.data)));\n let val2 = new Date(getDateFormatted(new Date(obj2.data)));\n return (val1 - val2) * (order === \"asc\" ? 1 : -1);\n };\n },\n },\n },\n {\n label: \"Name\",\n name: \"username\",\n options: {\n display: false,\n filter: false,\n },\n },\n {\n label: \"Email\",\n name: \"user\",\n },\n {\n label: \"Call Sign\",\n name: \"destination_station\",\n },\n {\n label: \"File Name\",\n name: \"file_name\",\n options: {\n sort: false,\n filterType: \"textField\",\n },\n },\n {\n label: \"Upload Size (in KB)\",\n name: \"file_size\",\n options: {\n sort: false,\n filterType: \"textField\",\n },\n },\n\n {\n label: \"Current Status\",\n name: \"status\",\n },\n {\n name: \"status_updated\",\n options: {\n display: false,\n filter: true,\n filterType: \"custom\",\n type: \"date\",\n customFilterListOptions: {\n render: (v) => {\n if (v[0] && v[1]) {\n return `Min date: ${v[0]}, Max date: ${v[1]}`;\n } else if (v[0]) {\n return `Min date: ${v[0]}`;\n } else if (v[1]) {\n return `Max date: ${v[1]}`;\n }\n return false;\n },\n update: (filterList, filterPos, index) => {\n //console.log(\n // \"customFilterListOnDelete: \",\n // filterList,\n // filterPos,\n // index\n // );\n if (filterPos === 0) {\n filterList[index].splice(filterPos, 1);\n setDateMin(\"\");\n } else if (filterPos === 1) {\n filterList[index].splice(filterPos, 1);\n setDateMax(\"\");\n } else if (filterPos === -1) {\n filterList[index] = [];\n setDateMin(\"\");\n setDateMax(\"\");\n }\n return filterList;\n },\n },\n filterOptions: {\n logic(dt, filters) {\n if (filters[0] && filters[1]) {\n return dt < filters[0] || dt > filters[1];\n } else if (filters[0]) {\n return dt < filters[0];\n } else if (filters[1]) {\n return dt > filters[1];\n }\n return false;\n },\n display: (filterList, onChange, index, column) => (\n
\n Current Status Time\n \n {\n setDateMin(event.target.value);\n var mm = new Date(event.target.value).getMonth() + 1;\n var dd = new Date(event.target.value).getDate();\n var yy = new Date(event.target.value).getFullYear();\n if (mm < 10) mm = \"0\" + mm;\n if (dd < 10) dd = \"0\" + dd;\n filterList[index][0] = mm + \"-\" + dd + \"-\" + yy;\n onChange(filterList[index], index, column);\n }}\n style={{ width: \"48%\", marginRight: \"2%\" }}\n />\n {\n setDateMax(event.target.value);\n var mm = new Date(event.target.value).getMonth() + 1;\n var dd = new Date(event.target.value).getDate();\n var yy = new Date(event.target.value).getFullYear();\n if (mm < 10) mm = \"0\" + mm;\n if (dd < 10) dd = \"0\" + dd;\n filterList[index][1] = mm + \"-\" + dd + \"-\" + yy;\n onChange(filterList[index], index, column);\n }}\n style={{ width: \"48%\" }}\n />\n \n
\n ),\n },\n print: false,\n },\n },\n {\n label: \"Current Status Time (in GMT)\",\n name: \"status_updated\",\n options: {\n filter: false,\n sortCompare: (order) => {\n return (obj1, obj2) => {\n let val1 = new Date(getDateFormatted(new Date(obj1.data)));\n let val2 = new Date(getDateFormatted(new Date(obj2.data)));\n return (val1 - val2) * (order === \"asc\" ? 1 : -1);\n };\n },\n },\n },\n {\n name: \"Details\",\n options: {\n filter: false,\n customBodyRender: (value, tableMeta, updateValue) => (\n {\n setselectedRow(\n responseData.findIndex(\n (x) =>\n x.message_id ===\n tableMeta.rowData[tableMeta.rowData.length - 1]\n )\n );\n handleShow();\n }}\n >\n More Info\n \n ),\n },\n },\n\n {\n label: \"\",\n name: \"msgCodes\",\n options: {\n customBodyRender: (value, tableMeta, updateValue) => (\n

{data[tableMeta.rowIndex].msgCodes}

\n // (data[tableMeta.rowIndex].at(-1) === 100 && (

))\n // (data[tableMeta.rowIndex].at(-1) === 200 && (

))\n // (data[tableMeta.rowIndex].at(-1) === 400 && (

))\n ),\n filter: false,\n display: false,\n },\n },\n {\n label: \"\",\n name: \"message_id\",\n options: { display: false, filter: false },\n },\n ];\n const options = {\n filter: true,\n filterType: \"dropdown\",\n selectableRows: \"none\",\n sortOrder: {\n name: \"initiated_at\",\n direction: \"desc\",\n },\n print: false,\n customToolbar: () => {\n return (\n <>\n \n {\n setdata([]);\n getMessageFunction();\n }}\n >\n \n \n \n \n handlePopoveropen(e)}\n >\n \n \n \n \n );\n },\n };\n\n useEffect(async () => {\n document.title = \"Message History | Xperi HD Radio IoT\";\n const isValid = await checkPageAccess();\n\n if (!isValid) {\n // if (!alert(\"access denied for the url\"))\n // window.location.href = \"/unauthorized\";\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Access denied for the url\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"href\");\n setHrefLink(\"/unauthorized\");\n } else {\n //console.log(\"You have access\");\n }\n }, []);\n\n useEffect(() => {\n if (!getAllMessagesFlag) {\n getMessageFunction();\n } else {\n getAllMessageFunction();\n }\n }, [queryResults]);\n\n useEffect(() => {\n setmessagePageLength(1);\n }, [getAllMessagesFlag]);\n\n useEffect(() => {\n setlimitMsgSnack(data.length >= 2500 ? true : false);\n }, [data]);\n\n const dateFunction = (initiatedAt) => {\n const aaa = initiatedAt.split(\" \");\n const month = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ];\n const mnth1 = (\"0\" + (month.indexOf(aaa[2]) + 1)).slice(-2);\n const day = aaa[1];\n const year = aaa[3];\n const dt = mnth1 + \"-\" + day + \"-\" + year;\n return dt;\n };\n\n const applyFilter = () => {\n let sd = new Date(startDate);\n let ed = new Date(endDate);\n if (sd > ed) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"End Date should be more than or equal to start date \");\n setAlertTitle(\"Date Input Error\");\n setConfirmAction(\"\");\n } else {\n setanchorEl(null);\n setqueryResults(\"startDate=\" + startDate + \"&endDate=\" + endDate);\n }\n };\n\n const getAllMessageFunctionBtn = () => {\n setgetAllMessagesFlag(!getAllMessagesFlag);\n getAllMessageFunction();\n };\n const getMessageFunction = async () => {\n setloading(true);\n try {\n const response = await ApiClient(\n \"get\",\n \"/user/getMessageHistory\",\n\n queryResults, // gthakur@svam.com Cookies.get(\"user\")\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n\n if (response.data.status === 200) {\n setdocsCount(response.data.docsCount);\n const responseData = response.data.response;\n setResponseData(responseData);\n ////console.log(\"response data\", responseData);\n let out = [];\n if (messagePageLength > 1) {\n out = [...data];\n }\n responseData.map((values) => {\n try {\n // console.log('Init at',values.initiated_at,new Date(values.initiated_at));\n let date1 = dateFunction(values.initiated_at);\n let date2 = dateFunction(values.schedule_time);\n let x = {\n date1: date1,\n initiated_at: values.initiated_at,\n date2: date2,\n //schedule_time: new Date(values.schedule_time),\n schedule_time: values.schedule_time,\n destination_station: values.destination_station,\n file_name: values.file_name,\n file_size: parseFloat(values.file_size).toFixed(2),\n status: values.status[values.status.length - 1].message,\n status_updated: new Date(\n values.status[values.status.length - 1].updatedAt\n ).toUTCString(),\n //status_id:values.status[values.status.length - 1].id,\n //msgCodes: msgCodes[values.status[values.status.length - 1].id-1] || ,\n message_id: values.message_id,\n version: values.version,\n user: values.user,\n username: values.username,\n };\n out.push(x);\n } catch (err) {}\n });\n //console.log(out);\n setdata(out);\n setloading(false);\n } else if (response.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n setloading(false);\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n } catch (err) {\n // alert(\"Cant fetch Data Error Message: \" + err.message);\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Cant fetch Data Please Reload\\n[ \" + err.message + \" ]\");\n setAlertTitle(\"Something Went Wrong\");\n setloading(false);\n //location.href = '/user/home2';\n }\n };\n\n const getAllMessageFunction = async () => {\n setloading(true);\n try {\n const response = await ApiClient(\n \"get\",\n \"/user/getMessageHistoryAll\",\n queryResults,\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n ////console.log(response.data);\n\n if (response.data.status === 200) {\n setdocsCount(response.data.docsCount);\n const responseData = response.data.response;\n setResponseData(responseData);\n ////console.log(\"response data\", responseData);\n let out = [];\n if (messagePageLength > 1) {\n out = [...data];\n }\n responseData.map((values) => {\n try {\n let date1 = dateFunction(values.initiated_at);\n let date2 = dateFunction(values.schedule_time);\n let x = {\n date1: date1,\n initiated_at: values.initiated_at,\n date2: date2,\n schedule_time: values.schedule_time,\n destination_station: values.destination_station,\n file_name: values.file_name,\n file_size: parseFloat(values.file_size).toFixed(2),\n status: values.status[values.status.length - 1].message,\n status_updated: new Date(\n values.status[values.status.length - 1].updatedAt\n ).toUTCString(),\n //msgCodes: msgCodes[values.status[values.status.length - 1].id-1] || ,\n message_id: values.message_id,\n version: values.version,\n user: values.user,\n username: values.username,\n };\n out.push(x);\n } catch (err) {}\n });\n //console.log(out);\n setdata(out);\n setloading(false);\n } else if (response.data.status === 400)\n throw Error(\"Cant load invalid url\");\n else if (response.data.status === 403) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n } catch (err) {\n //console.log(err.message);\n //alert(\"Cant fetch Data Error Message:\" + err.message);\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Cant fetch Data Error Message:\" + err.message);\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"href\");\n setHrefLink(\"/user/home2\");\n setloading(false);\n //location.href = \"/user/home2\";\n }\n };\n\n const deleteMessage = async () => {\n setShowDelete(false);\n setShow(false);\n setAlert(false);\n setloading(true);\n let xmlData = {\n environment: process.env.REACT_APP_ENV,\n fileName: responseData[selectedRow].file_name,\n recordIds: responseData[selectedRow].message_id,\n cancel: \"Y\",\n };\n\n if (canCancelBtn) {\n const resp = await ApiClient(\n \"post\",\n \"/user/cancelScheduledMessage\",\n {\n xmlData: xmlData,\n },\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n if (resp.data.status === 200) {\n console.log(resp);\n // alert(\"Success\");\n // window.location.reload();\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"Success\");\n setConfirmAction(\"load\");\n } else if (resp.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (resp.data.status === 422) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n // alert(\"Failure\");\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Failure: \" + response.data.response);\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n } else {\n setcancelSendError(true);\n }\n setloading(false);\n };\n\n const rescheduleMessage = async () => {\n let reschedule_time = inpDate.setZone(\"GMT\");\n if (\n reschedule_time.diff(DateTime.now()).toObject().milliseconds / 1000 <\n 60\n ) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\n \"Please schedule message at least 1 min ahead of current time\"\n );\n setAlertTitle(\"Something Went Wrong\");\n return;\n }\n\n setloading(true);\n const response = await ApiClient(\n \"post\",\n \"/user/rescheduleMessage\",\n {\n id: responseData[selectedRow].message_id,\n reschedule_time: reschedule_time.toISO(),\n broadcastImmediate: broadcastImmediate,\n },\n { \"Content-Type\": \"application/json\", authorization: Cookies.get(\"auth\") }\n );\n if (response.data.status === 200) {\n setloading(false);\n // if (!alert(\"Reschedule Successful\")) {\n // location.reload();\n // }\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"Reschedule Successful\");\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n } else if (response.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (response.data.status === 422) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else if (response.data.status === 400) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Error in Rescheduling Message\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setloading(false);\n // if (\n // !alert(\"Error in Rescheduling!!! Please Try Again or Contact Xperi FAE\")\n // ) {\n // }\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\n \"Error in Rescheduling!!! Please Try Again or Contact Xperi FAE\"\n );\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n };\n\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction == \"load\") {\n window.location.reload();\n } else if (confirmAction == \"href\") {\n window.location.href = hrefLink;\n } else if (confirmAction === \"logout\") {\n logout();\n }\n };\n return (\n
\n {alert && (\n \n {alertMessage}\n \n )}\n \n {Cookies.get(\"t\") &&\n (Cookies.get(\"t\").split(\",\").indexOf(encryptHash(777)) !== -1 ||\n Cookies.get(\"t\").split(\",\").indexOf(encryptHash(400)) !== -1) && (\n
\n \n {!getAllMessagesFlag\n ? \"Get All User Messages\"\n : \"Get User Messages\"}\n \n
\n )}\n\n \n \n
\n {/*
\n
\n

\n *Note first 2500 scheduled messages returned\n

\n setstartDate(e.target.value)}\n className=\"p-2\"\n />\n  \n setendDate(e.target.value)}\n className=\"p-2\"\n />\n \n
\n
*/}\n \n \n \n
\n
\n
\n Showing {Math.min(2500 * messagePageLength, docsCount)} of{\" \"}\n {docsCount} results{\" \"}\n setmessagePageLength(messagePageLength + 1)}\n >\n Load More Results\n \n
\n
\n
\n
\n
\n
\n
\n \n\n \n \n Scheduled Message Details\n \n \n {selectedRow !== null && responseData !== null && (\n
\n \n \n \n \n Property\n Value\n \n \n \n {detailsCols.map((val) => (\n \n {string_map[val]}\n \n {responseData[selectedRow][val]}\n \n \n ))}\n \n Object Id\n \n {responseData[selectedRow][\"object_id\"]}\n \n \n {Cookies.get(\"t\").split(\",\").indexOf(encryptHash(777)) !==\n -1 && (\n <>\n \n Station IP\n \n {responseData[selectedRow][\"station_ip\"]}\n \n \n \n Data Service\n \n {responseData[selectedRow][\"data_service\"]}\n \n \n \n )}\n \n
\n
\n
\n
\n <>\n

Transmit Status

\n \n \n \n \n \n {/**/}\n Time\n Status\n \n \n \n {responseData[selectedRow][\"status\"].map((val, idx) => (\n \n {/**/}\n {/**/}\n \n {new Date(val.updatedAt).toUTCString()}\n \n {val.message}\n \n ))}\n \n
Sl No{val.id}{idx + 1}
\n
\n
\n {/*\n responseData[selectedRow][\"segments\"]?.length > 0 && (\n <>\n

Segments Sent

\n \n \n \n \n \n \n
\n {responseData[selectedRow][\"segments\"].join(\" & \")}\n
\n \n )\n */}\n {responseData[selectedRow][\"rescheduleDetails\"].length > 0 && (\n <>\n

Reschedule Details

\n \n \n \n \n {/**/}\n time\n status\n \n {responseData[selectedRow][\"rescheduleDetails\"].map(\n (val, idx) => (\n \n {/**/}\n {/**/}\n \n {new Date(val.updatedAt).toUTCString()}\n \n {val.message}\n \n )\n )}\n \n
Sl No{val.id}{idx + 1}
\n
\n \n )}\n
\n
\n handleShowDelete()}\n >\n Cancel Scheduled Message\n \n handleShowReschedule()}\n >\n Reschedule Message\n \n\n {showReschedule && (\n
\n
\n
\n \n e.target.checked\n ? setbroadcastImmediate(\"Y\")\n : setbroadcastImmediate(\"N\")\n }\n />\n }\n />\n
\n
\n {broadcastImmediate === \"N\" && (\n
\n Timezone\n {\n settimezone(e.target.value);\n }}\n defaultValue=\"GMT\"\n className=\"mw-100 mb-3\"\n >\n \n Eastern Time (ET)\n \n \n Central Time (CT)\n \n \n Mountain Time (MT)\n \n \n Pacific Time (PT)\n \n \n Greenwich Mean Time (GMT)\n \n \n \n
\n )}\n
\n
\n rescheduleMessage()}\n >\n Save Changes\n \n handleShowReschedule()}\n >\n Cancel\n \n
\n
\n
\n )}\n \n
\n )}\n \n \n \n \n \n {showDelete && (\n \n You will not be able to undo this action\n {cancelSendError && (\n

\n You can cancel only messages scheduled in future\n

\n )}\n \n )}\n\n {/* Date filter Popover */}\n handlePopoverclose()}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"left\",\n }}\n >\n
\n setstartDate(e.target.value)}\n className=\"p-2\"\n />\n  \n setendDate(e.target.value)}\n className=\"p-2\"\n />\n \n
\n \n\n {/* End Date filter popover */}\n\n {/* Snackbar for limit results returned */}\n {/* setlimitMsgSnack(false)}\n >\n setlimitMsgSnack(false)}\n >\n Showing most recent 2500 messages scheduled. Please use date filter to\n fetch specific message between dates.\n \n */}\n {/* EndSnackbar for limit results returned */}\n \n );\n}\n\nexport default MesageHistory;\n","import { React, useState, useEffect } from \"react\";\nimport { Auth } from \"aws-amplify\";\nimport ApiClient from \"../../../apis/apiClient\";\nimport SaveIcon from \"@mui/icons-material/Save\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport axios from \"axios\";\nimport Cookies from \"js-cookie\";\nimport { Button, Modal } from \"react-bootstrap\";\n// import Backdrop from \"@mui/material/Backdrop\";\n// import CircularProgress from \"@mui/material/CircularProgress\";\n//import Loader from \"../../loader/loader\"\nimport {\n Select,\n MenuItem,\n FormControl,\n InputLabel,\n makeStyles,\n Table,\n TableBody,\n TableContainer,\n TableRow,\n TableCell,\n Paper,\n FormControlLabel,\n Checkbox,\n TextField,\n Input,\n FormHelperText,\n} from \"@material-ui/core\";\nimport {\n validateNameMain,\n validateIdMain,\n validateCallSignMain,\n validateFrequencyMain,\n validateBitRateMain,\n validateRegionMain,\n validateIpMain,\n validateRegionNameMain,\n validatePortMain,\n validateDestinationMain,\n validateEmailMain,\n} from \"../../validations/generalValidations\";\nimport logout from \"../../validations/logoutUser\";\nconst useStyles = makeStyles((theme) => ({\n formControl: {\n minWidth: 200,\n },\n}));\n\nexport default function AddStation(props) {\n const {\n regionArr,\n setRegionArr,\n setAlertMessage,\n setAlert,\n setSeverity,\n setAlertTitle,\n setConfirmAction,\n setHrefLink,\n loading,\n setloading,\n } = props;\n const classes = useStyles();\n const [id, addId] = useState(null);\n const [name, addName] = useState(null);\n const [newRegionName, addRegionName] = useState(null);\n const [region, addRegion] = useState(\"Select Region\");\n const [call_sign, addCallSign] = useState(null);\n const [frequency, addFrequency] = useState(null);\n const [bit_rate, addbitRate] = useState(null);\n const [port, addport] = useState(null);\n const [sshport, addsshport] = useState(null);\n const [adminName, setAdminName] = useState(\"\");\n const [adminEmail, setAdminEmail] = useState(\"\");\n const [destination, addDestination] = useState(\"\");\n const [ipAdd, addIp] = useState(null);\n const [show_error, setShow_error] = useState(false);\n const [show_error2, setShow_error2] = useState(false);\n const [idErr, errId] = useState(true);\n const [nameErr, errName] = useState(true);\n const [newRegionErr, errNewRegion] = useState(true);\n const [regionErr, errRegion] = useState(true);\n const [call_signErr, errCallSign] = useState(true);\n const [frequencyErr, errFrequency] = useState(true);\n const [bit_rateErr, errbitRate] = useState(true);\n const [destErr, setdestErr] = useState(true);\n const [port_err, errporterr] = useState(true);\n const [ssh_port_err, errsshporterr] = useState(true);\n const [admin_name_err, setadmin_name_err] = useState(true);\n const [admin_email_err, setadmin_email_err] = useState(true);\n const [ipErr, errIp] = useState(true);\n const [regionDropdown, showRegionDropdown] = useState(true);\n const [saveRegion, showSaveRegion] = useState(false);\n const [showRegionDelete, setShowRegionDelete] = useState(false);\n const [text, showText] = useState(\"Add Region\");\n const handleCloseModal = () => setShowRegionDelete(false);\n const handleShowModal = () => setShowRegionDelete(true);\n //const [loading, setloading] = useState(false);\n const [regionErrText, setRegionErrText] = useState(\n \"Please Select atleast One Region\"\n );\n const [nameErrText, setNameErrText] = useState(\"Please enter a name\");\n const [idErrText, setIdErrText] = useState(\"Please enter Id\");\n const [callSignErrText, setCallSignErrText] = useState(\n \"Please enter Call Sign\"\n );\n const [frequencyErrText, setFrequencyErrText] = useState(\n \"Please enter Frequency\"\n );\n const [bitRateErrText, setbitRateErrText] = useState(\"Please Enter Bit Rate\");\n const [ipErrText, setIpErrText] = useState(\"Please enter IP\");\n const [portErrText, setPortErrText] = useState(\"Please enter Port\"); //n\n const [sshPortErrText, setSshPortErrText] = useState(\n \"Please enter valid SSH Port\"\n ); //n\n const [adminNameErrText, setAdminNameErrText] = useState(\n \"Please enter Admin Name\"\n ); //n\n const [adminEmailErrText, setAdminEmailErrText] = useState(\n \"Please enter your email address\"\n ); //n\n\n const [destErrText, setdestErrText] = useState(\"Please Enter Destination\"); //n\n const [newRegionErrText, setNewRegionErrText] = useState(\n \"Please enter Region Name\"\n );\n\n \n\n // const [alertMessage, setAlertMessage] = useState(\"\");\n // const [alert, setAlert] = useState(false);\n // const [severity, setSeverity] = useState(\"\");\n\n const validateName = (value) => {\n let errorMsg = validateNameMain(value, addName, errName);\n setNameErrText(errorMsg);\n };\n const validateRegionName = (value) => {\n let errorMsg = validateRegionNameMain(value, addRegionName, errNewRegion);\n setNewRegionErrText(errorMsg);\n };\n const validateId = (value) => {\n let errorMsg = validateIdMain(value, addId, errId);\n setIdErrText(errorMsg);\n };\n const validateCallSign = (value) => {\n let errorMsg = validateCallSignMain(value, addCallSign, errCallSign);\n setCallSignErrText(errorMsg);\n };\n const validateFrequency = (value) => {\n let errorMsg = validateFrequencyMain(value, addFrequency, errFrequency);\n setFrequencyErrText(errorMsg);\n };\n const validateBitRate = (value) => {\n let errorMsg = validateBitRateMain(value, addbitRate, errbitRate);\n setbitRateErrText(errorMsg);\n };\n const validateRegion = (value) => {\n let errorMsg = validateRegionMain(value, addRegion, errRegion);\n setRegionErrText(errorMsg);\n };\n const validateIp = (value) => {\n let errorMsg = validateIpMain(value, addIp, errIp);\n return errorMsg;\n };\n\n const validatePort = (value) => {\n let errorMsg = validatePortMain(value, addport, errporterr);\n setPortErrText(errorMsg);\n };\n\n const validateSSHPort = (value) => {\n let errorMsg = validatePortMain(value, addsshport, errsshporterr);\n setSshPortErrText(errorMsg);\n };\n\n const validateDestination = (value) => {\n let errorMsg = validateDestinationMain(value, addDestination, setdestErr);\n setdestErrText(errorMsg);\n };\n\n const validateAdminName = (value) => {\n let errorMsg = validateNameMain(value, setAdminName, setadmin_name_err);\n setAdminNameErrText(errorMsg);\n };\n const validateAdminEmail = (value) => {\n let errorMsg = validateEmailMain(value, setAdminEmail, setadmin_email_err);\n setAdminEmailErrText(errorMsg);\n };\n\n const addNewRegion = async () => {\n setloading(true);\n let result = await ApiClient(\n \"post\",\n \"/admin/addRegion\",\n {\n regionName: newRegionName,\n },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (result.data.status === 200) {\n setloading(false);\n //alert(\"New Region Added\");\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"New Region Added\");\n setAlertTitle(\"Success\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n let arr = [...regionArr];\n arr.push(newRegionName);\n setRegionArr(arr);\n showText(\"Add Region\");\n showSaveRegion(false);\n } else if (result.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (result.data.status === 422) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n ////console.log(\"Error in updating station\", result.data.data);\n }\n };\n const newRegion = () => {\n let save = saveRegion;\n if (!save) {\n showText(\"Save Region\");\n showSaveRegion(!save);\n } else {\n setShow_error2(true);\n if (!newRegionErr) {\n handleShowModal();\n // showText(\"Add Region\");\n // showSaveRegion(!save);\n }\n }\n };\n const cancelRegion = () => {\n showSaveRegion(false);\n errNewRegion(true);\n setShow_error2(false);\n showText(\"Add Region\");\n addRegionName(null);\n };\n const add = async () => {\n setShow_error(true);\n if (\n !(\n idErr ||\n nameErr ||\n regionErr ||\n call_signErr ||\n frequencyErr ||\n bit_rateErr ||\n ipErr ||\n port_err ||\n ssh_port_err ||\n admin_name_err ||\n admin_email_err ||\n destErr\n )\n ) {\n setloading(true);\n let result = await ApiClient(\n \"post\",\n \"/admin/addStation\",\n {\n id: id,\n region: region,\n name: name,\n call_sign: call_sign,\n frequency: frequency,\n ip: ipAdd,\n sshport: sshport,\n bit_rate: bit_rate,\n port: port,\n destination: destination,\n admin_name: adminName,\n admin_email: adminEmail,\n },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (result.data.status === 200) {\n // if (!alert(result.data.result)) location.reload();\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(result.data.result);\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n } else if (result.data.status === 202) {\n // logout()\n // alert(result.data.result);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(result.data.result);\n setAlertTitle(\"Success\");\n setConfirmAction(\"logout\");\n // const timer = setTimeout(() => { setAlert(false); setSeverity(\"\"); logout(); }, 1000);\n } else if (result.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else {\n // logout();\n // alert(result.data.result);\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(result.data.result);\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n }\n };\n\n\n\n\n return (\n
\n
Add New Region / Station
\n
\n {saveRegion == false && (\n \n
Select Region
\n
\n )}\n {saveRegion == true && (\n \n

Add Region

\n
\n )}\n
\n
\n
\n {saveRegion == false && (\n \n Regions\n\n {\n addRegion(e.target.value);\n validateRegion(e.target.value);\n }}\n >\n {regionArr.map((val) => (\n \n {val}\n \n ))}\n \n\n {regionErr && show_error && (\n

{regionErrText}

\n )}\n
\n )}\n {saveRegion === true && (\n {\n addRegionName(e.target.value);\n validateRegionName(e.target.value);\n }}\n helperText={newRegionErr && show_error2 ? newRegionErrText : \"\"}\n />\n )}\n newRegion()}\n >\n {saveRegion == true && }\n {saveRegion == false && }\n  \n {text}\n \n {saveRegion == true && (\n cancelRegion()}\n >\n   Cancel\n \n )}\n
\n
\n
\n \n \n \n \n Station Name\n \n {\n addName(e.target.value);\n validateName(e.target.value);\n }}\n defaultValue={name}\n helperText={nameErr && show_error ? nameErrText : \"\"}\n />\n \n Facility ID\n \n {\n addId(e.target.value);\n validateId(e.target.value);\n }}\n defaultValue={id}\n helperText={idErr && show_error ? idErrText : \"\"}\n />\n \n \n \n Call Sign\n \n {\n addCallSign(e.target.value);\n validateCallSign(e.target.value);\n }}\n defaultValue={call_sign}\n helperText={\n call_signErr && show_error ? callSignErrText : \"\"\n }\n // defaultValue=\"aaaaa\"\n />\n \n Frequency\n \n {\n addFrequency(e.target.value);\n validateFrequency(e.target.value);\n }}\n defaultValue={frequency}\n helperText={\n frequencyErr && show_error ? frequencyErrText : \"\"\n }\n />\n \n \n \n Bitrate (Kbps)\n \n {\n addbitRate(e.target.value);\n validateBitRate(e.target.value);\n }}\n defaultValue={bit_rate}\n helperText={bit_rateErr && show_error ? bitRateErrText : \"\"}\n />\n \n \n IP Address (x.x.x.x)\n \n \n {\n addIp(e.target.value);\n validateIp(e.target.value);\n }}\n defaultValue={ipAdd}\n helperText={ipErr && show_error ? ipErrText : \"\"}\n />\n \n \n \n \n HTTP Port
\n
\n \n {\n addport(e.target.value);\n validatePort(e.target.value);\n }}\n defaultValue={port}\n helperText={port_err && show_error ? portErrText : \"\"}\n />\n \n \n SSH Port
\n
\n \n {\n addsshport(e.target.value);\n validateSSHPort(e.target.value);\n }}\n defaultValue={sshport}\n helperText={\n ssh_port_err && show_error ? sshPortErrText : \"\"\n }\n />\n \n
\n \n \n Station Administrator Name\n
\n
\n \n {\n setAdminName(e.target.value);\n validateAdminName(e.target.value);\n }}\n defaultValue={adminName}\n helperText={\n admin_name_err && show_error ? adminNameErrText : \"\"\n }\n />\n \n \n Station Administrator Email
\n
\n \n {\n setAdminEmail(e.target.value);\n validateAdminEmail(e.target.value);\n }}\n defaultValue={adminEmail}\n helperText={\n admin_email_err && show_error ? adminEmailErrText : \"\"\n }\n />\n \n
\n \n \n Destination Path
\n
\n \n {\n addDestination(e.target.value);\n validateDestination(e.target.value);\n }}\n defaultValue={destination}\n helperText={destErr && show_error ? destErrText : \"\"}\n />\n \n
\n
\n \n \n
\n
\n
\n add()}\n >\n   Save New Station\n \n
\n
\n\n\n \n \n Add New Region \n \n \n
\n

\n Are you sure you want to add new region{\" \"}\n \n {newRegionName}\n \n

\n {\n addNewRegion();\n handleCloseModal();\n }}\n >\n YES\n {\" \"}\n \n
\n
\n \n {/* END Save Region Confirmation Modal */}\n
\n );\n}\n","import { React, useState, useEffect } from \"react\";\nimport WifiIcon from \"@mui/icons-material/Wifi\";\nimport WifiOffIcon from \"@mui/icons-material/WifiOff\";\nimport EditIcon from \"@mui/icons-material/Edit\";\nimport ErrorIcon from \"@mui/icons-material/Error\";\nimport CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\nimport NetworkPingIcon from \"@mui/icons-material/NetworkPing\";\nimport DangerousIcon from \"@mui/icons-material/Dangerous\";\nimport NotificationsActiveIcon from \"@mui/icons-material/NotificationsActive\";\nimport { Button, Modal } from \"react-bootstrap\";\nimport DataTable from \"../../DataTable/dataTable\";\nimport { Tooltip } from \"@mui/material\";\n/*import {\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Paper,\n} from \"@mui/material\";*/\n\nfunction StationTableData(props) {\n const {\n stationArr,\n setselectedRow,\n handleShowDelete,\n setBitRateEdit,\n setstationnameEdit,\n setIpEdit,\n setportEdit,\n setsshportEdit,\n setadminEmailEdit,\n setadminNameEdit,\n setFreqencyEdit,\n setdestinationEdit,\n handleShow,\n setshowPortStatus,\n updatePingImmediate,\n setnotifRow,\n setadminEmail\n } = props;\n \n \n\n const active_status = {\n 1: (\n <>\n \n \n ),\n 2: (\n <>\n {\" \"}\n \n ),\n 3: (\n <>\n \n \n ),\n };\n\n const tableColumns = [\n {\n name: \"id\",\n label: \"ID\",\n options: {\n display: true,\n filter: false,\n sort: false,\n },\n },\n { name: \"name\", label: \"Name\" },\n { name: \"call_sign\", label: \"Call Sign\" },\n { name: \"frequency\", label: \"Frequency\" },\n { name: \"station_version\", label:\"MSAC Version\" },\n {\n name: \"Active/\\nInactive\",\n options: {\n filter: false,\n //hint: \"Shows the current state of the station (use this to log off the station)\",\n customBodyRender: (value, tableMeta, updateValue) => (\n \n {stationArr[tableMeta.rowIndex].is_active ? (\n {\n ////console.log(tableMeta.rowIndex);\n setselectedRow(tableMeta.rowIndex);\n handleShowDelete();\n }}\n >\n \n \n ) : (\n {\n ////console.log(tableMeta.rowIndex);\n setselectedRow(tableMeta.rowIndex);\n handleShowDelete();\n }}\n >\n \n \n )}\n \n ),\n },\n },\n {\n name: \"Status\",\n options: {\n filter: false,\n //hint: \"Shows the current state of the station (use this to log off the station)\",\n customBodyRender: (value, tableMeta, updateValue) => (\n \n {\n ////console.log(tableMeta.rowIndex);\n setselectedRow(tableMeta.rowIndex);\n setshowPortStatus(true);\n }}\n >\n {active_status[stationArr[tableMeta.rowIndex].overall_status]}\n \n \n ),\n },\n },\n { name: \"region\", label: \"Region\" },\n { name: \"bit_rate\", label: \"Bitrate (Kbps)\" },\n { name: \"admin_name\", label: \"Station Admin\" },\n { name: \"admin_email\", label: \"Admin Email\" },\n {\n name: \"Ping Station\",\n label: \"Ping Station\",\n options: {\n filter: false,\n customBodyRender: (value, tableMeta, updateValue) => (\n \n ),\n },\n },\n {\n name: \"Notification Settings\",\n options: {\n filter: false,\n //hint: \"Shows the current state of the station (use this to log off the station)\",\n customBodyRender: (value, tableMeta, updateValue) => (\n
\n \n {\n setnotifRow(stationArr[tableMeta.rowIndex].call_sign);\n setadminEmail(stationArr[tableMeta.rowIndex].admin_email);\n }\n }\n />\n \n
\n ),\n },\n },\n {\n name: \"Modify\",\n options: {\n filter: false,\n customBodyRender: (value, tableMeta, updateValue) => (\n \n ),\n },\n },\n ];\n\n const tableOptions = {\n filter: true,\n filterType: \"dropdown\",\n responsive: \"standard\",\n tableBodyHeight: \"600px\",\n tableBodyMaxHeight: \"\",\n selectableRows: \"none\",\n };\n\n return (\n <>\n \n \n );\n}\n\nexport default StationTableData;\n","import { React, useState, useEffect } from \"react\";\nimport ApiClient from \"../../../apis/apiClient\";\nimport AddStation from \"./addStation\";\nimport StationTableData from \"./stationTableData\";\nimport LinearProgress from \"@material-ui/core/LinearProgress\";\nimport Box from \"@material-ui/core/Box\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { Button, Modal } from \"react-bootstrap\";\nimport { TextField } from \"@material-ui/core\";\n// import Backdrop from \"@mui/material/Backdrop\";\n// import CircularProgress from \"@mui/material/CircularProgress\";\nimport validateUser from \"../../validations/userSessionValidation\";\nimport encryptHash from \"../../validations/general\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Auth from \"@aws-amplify/auth\";\nimport Cookies from \"js-cookie\";\nimport logout from \"../../validations/logoutUser\";\nimport checkPageAccess from \"../../others/getPageAccess\";\n\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport Loader from \"../../loader/loader\";\n\nimport DangerousIcon from \"@mui/icons-material/Dangerous\";\nimport ErrorIcon from \"@mui/icons-material/Error\";\nimport PersonAddIcon from \"@mui/icons-material/PersonAdd\";\nimport EditIcon from \"@mui/icons-material/Edit\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport InfoIcon from \"@mui/icons-material/Info\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\nimport Chip from \"@material-ui/core/Chip\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Paper,\n FormGroup,\n FormControlLabel,\n Switch,\n Checkbox,\n Input,\n InputAdornment,\n} from \"@mui/material\";\nimport {\n validateNameMain,\n validateIdMain,\n validateCallSignMain,\n validateFrequencyMain,\n validateBitRateMain,\n validateRegionMain,\n validateIpMain,\n validateRegionNameMain,\n validatePortMain,\n validateDestinationMain,\n validateEmailMain,\n} from \"../../validations/generalValidations\";\nimport { Autocomplete } from \"@mui/material\";\n\nexport default function RegionStationSection() {\n const [selectedRow, setselectedRow] = useState(null);\n const [stationArr, setStation] = useState([]);\n const [showConfirmDelete, setShowConfirmDelete] = useState(false);\n const [rowsPerPage, setRowsPerPage] = useState(5);\n const [tableLoader, setTableLoader] = useState(true);\n const [userAuthToken, setToken] = useState(null);\n const [open, setOpen] = useState(false);\n const [stationnameEdit, setstationnameEdit] = useState(null);\n const [bitRate, setBitRateEdit] = useState(null);\n const [ip, setIpEdit] = useState(null);\n const [portEdit, setportEdit] = useState(\"8888\");\n const [sshportEdit, setsshportEdit] = useState(\"22\");\n const [adminNameEdit, setadminNameEdit] = useState(\"\");\n const [adminEmailEdit, setadminEmailEdit] = useState(\"\");\n const [frequency, setFreqencyEdit] = useState(null);\n const [destinationEdit, setdestinationEdit] = useState(\"/no/path/set\");\n const [regionArr, setRegionArr] = useState([\"\"]);\n const [loading, setloading] = useState(true);\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n const [loaderType, setLoaderType] = useState(\"CircularProgress\");\n const [percentage, setpercentage] = useState(0);\n const [notifRow, setnotifRow] = useState(\"\");\n const [notificationData, setnotificationData] = useState({});\n const [adminEmail, setadminEmail] = useState(\"\");\n\n const [newStationEdit, showNewStationEdit] = useState(false);\n const [newStationEditTxt, setNewStationEditTxt] = useState(\"\");\n\n const [bitRateEdit, showBitRateEdit] = useState(false);\n const [bitRateEditTxt, setBitRateEditTxt] = useState(\"\");\n\n const [ipEdit, showIpEdit] = useState(false);\n const [ipEditTxt, setIpEditTxt] = useState(\"\");\n\n const [httpportEdit, showHttpportEdit] = useState(false);\n const [httpportEditTxt, sethttpportEditTxt] = useState(\"\");\n\n const [sshportEditVal, showSSHportEdit] = useState(false);\n const [sshportEditTxt, setSSHportEditTxt] = useState(\"\");\n\n const [stationAdminNameEdit, showStationAdminNameEdit] = useState(false);\n const [stationAdminNameEditTxt, setStationAdminNameEditTxt] = useState(\"\");\n\n const [stationAdminEmailEdit, showStationAdminEmailEdit] = useState(false);\n const [stationAdminEmailEditTxt, setStationAdminEmailEditTxt] = useState(\"\");\n\n const [frequencyEdit, showFrequencyEdit] = useState(false);\n const [frequencyEditTxt, setFrequencyEditTxt] = useState(\"\");\n\n const [destinationPathEdit, showDestinationPathEdit] = useState(false);\n const [destinationPathEditTxt, setDestinationPathEditTxt] = useState(\"\");\n\n const [stationStatusIP, setstationStatusIP] = useState();\n const [stationStatusPort, setstationStatusPort] = useState();\n const [stationStatusResponse, setstationStatusResponse] = useState(\n \"Enter Required Fields and Click Check to see Ping Status\"\n );\n const [showStationStatus, setshowStationStatus] = useState(false);\n const [showPortStatus, setshowPortStatus] = useState(false);\n const [showNotifSettings, setshowNotifSettings] = useState(false);\n const [notifSettingsEnabled, setnotifSettingsEnabled] = useState();\n const [notifSettingsMailList, setnotifSettingsMailList] = useState();\n const [notifSettingsExcludeList, setnotifSettingsExcludeList] = useState();\n const [notifSettingsInterval, setnotifSettingsInterval] = useState();\n const [notifSettingsSnooze, setnotifSettingsSnooze] = useState(0);\n const [emailPauseNotifDelete, setemailPauseNotifDelete] = useState(\"\");\n const [showEditNotifInterval, setshowEditNotifInterval] = useState(true);\n const [showAddEmailNotifications, setshowAddEmailNotifications] =\n useState(true);\n const [showDeleteNotifPause, setshowDeleteNotifPause] = useState(false);\n const [deleteNotificationPauseVersion, setdeleteNotificationPauseVersion] =\n useState(1);\n const [showSnoozeError, setShowSnoozeError] = useState(false);\n const [showNewEmailListError, setshowNewEmailListError] = useState(false);\n const [showSnoozeEmailListError, setshowSnoozeEmailListError] =\n useState(false);\n const [showNotifIntervalError, setshowNotifIntervalError] = useState(false);\n\n const handleHideStationStatusModal = () => {\n setstationStatusResponse(\n \"Enter Required Fields and Click Check to see Ping Status\"\n );\n setshowStationStatus(false);\n };\n const handleShowStationStatusModal = () => setshowStationStatus(true);\n\n const handleCloseDelete = () => setShowConfirmDelete(false);\n const handleShowDelete = () => setShowConfirmDelete(true);\n const access_levels = Cookies.get(\"t\") ? Cookies.get(\"t\").split(\",\") : [];\n\n const handleClose = () => {\n setOpen(false);\n showNewStationEdit(false);\n showBitRateEdit(false);\n showIpEdit(false);\n showHttpportEdit(false);\n showSSHportEdit(false);\n showStationAdminNameEdit(false);\n showStationAdminEmailEdit(false);\n showFrequencyEdit(false);\n showDestinationPathEdit(false);\n };\n const handleShow = () => {\n if (!open) {\n }\n setOpen(true);\n };\n\n useEffect(async () => {\n document.title = \"Stations | Xperi HD Radio IoT\";\n let isValid = await checkPageAccess();\n if (!isValid) {\n // if (!alert(\"access denied for the url\"))\n // window.location.href = \"/unauthorized\";\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"access denied for the url\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"href\");\n setHrefLink(\"/unauthorized\");\n return;\n } else {\n //console.log(\"You have access\");\n }\n if (validateUser()) {\n let getauth = async () => {\n return (await Auth.currentSession()).getAccessToken().getJwtToken();\n };\n getauth()\n .then(async (res) => {\n let result = await ApiClient(\"post\", \"/admin/regions/stations\", \"\", {\n Authorization: Cookies.get(\"auth\"),\n });\n if (result.data.status === 200) {\n setStation(result.data.result);\n if (access_levels.indexOf(encryptHash(\"777\")) === -1) {\n //setloading(false);\n return;\n }\n } else if (result.data.status === 402) {\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"No Records\");\n setAlertTitle(\"Success\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else if (result.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n return;\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n let result2 = await ApiClient(\"get\", \"/app/regions\", \"\", {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n if (result2.data.status === 200) {\n let data = result2.data.result.map((v) => {\n return v.name;\n });\n setRegionArr(data);\n } else if (result2.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n return;\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n let result3 = await ApiClient(\n \"get\",\n \"/admin/getStationNotificationSettings\",\n \"\",\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n if (result3.data.status === 200) {\n //console.log(result3.data);\n setnotificationData(result3.data.data);\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"logout\");\n setHrefLink(\"\");\n }\n setloading(false);\n })\n .catch((err) => {\n console.log(\"Error in station data \", err);\n logout();\n });\n }\n }, []);\n\n useEffect(() => {\n ////console.log(\"Stations Array \", stationArr);\n if (stationArr) {\n setTableLoader(false);\n }\n }, [stationArr]);\n\n useEffect(() => {\n console.log(notificationData[notifRow]);\n if (notifRow.length !== 0) {\n setnotifSettingsEnabled(true);\n setnotifSettingsMailList(notificationData[notifRow]?.mail_list);\n setnotifSettingsExcludeList(notificationData[notifRow]?.exclude_list);\n setnotifSettingsInterval(\n notificationData[notifRow]?.notification_interval\n );\n setshowNotifSettings(true);\n } else {\n setshowNotifSettings(false);\n }\n }, [notifRow]);\n\n const updateStationStatus = async (status) => {\n setloading(true);\n let result = await ApiClient(\n \"post\",\n \"/admin/updateStationStatus\",\n {\n regionName: stationArr[selectedRow].region,\n stationid: stationArr[selectedRow].id,\n status: status,\n },\n { Authorization: Cookies.get(\"auth\") }\n );\n if (result.data.status === 200) {\n setloading(false);\n ////console.log(\"Success in updating station \", result.data.data);\n } else if (result.data.status === 400) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Nothing to update\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else if (result.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (result.data.status === 422) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Cant update station status\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n ////console.log(\"Error in updating station\", result.data.data);\n }\n };\n\n const updatePingImmediate = async (id) => {\n setloading(true);\n let result = await ApiClient(\n \"post\",\n \"/admin/pingAndUpdateStationStatus\",\n {\n stationid: stationArr[id].id,\n },\n { Authorization: Cookies.get(\"auth\") }\n );\n if (result.data.status === 200) {\n setloading(false);\n setAlert(true);\n setSeverity(\"Success\");\n setAlertMessage(\"Station Status Updated\");\n setAlertTitle(\"Update Succeded\");\n setConfirmAction(\"load\");\n setHrefLink(\"\");\n } else if (result.data.status === 500) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Server Error\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n };\n const saveStationEdit = async () => {\n if (\n !(\n newStationEdit ||\n bitRateEdit ||\n ipEdit ||\n httpportEdit ||\n sshportEditVal ||\n stationAdminNameEdit ||\n stationAdminEmailEdit ||\n frequencyEdit ||\n destinationPathEdit\n )\n ) {\n setloading(true);\n let result = await ApiClient(\n \"post\",\n \"/admin/editStation\",\n {\n regionName: stationArr[selectedRow].region,\n callSign: stationArr[selectedRow].call_sign,\n stationid: stationArr[selectedRow].id,\n stationname: stationnameEdit,\n bitRate: bitRate,\n ip: ip,\n port: portEdit,\n sshport: sshportEdit,\n adminname: adminNameEdit,\n adminemail: adminEmailEdit,\n frequency: frequency,\n destination: destinationEdit,\n },\n { Authorization: Cookies.get(\"auth\") }\n );\n if (result.data.status === 200) {\n ////console.log(\"Success in updating station \", result.data.data);\n let stnArr = [...stationArr];\n stnArr[selectedRow].name = stationnameEdit;\n stnArr[selectedRow].bit_rate = bitRate;\n stnArr[selectedRow].ip = ip;\n stnArr[selectedRow].port = portEdit;\n stnArr[selectedRow].sshport = sshportEdit;\n stnArr[selectedRow].admin_name = adminNameEdit;\n stnArr[selectedRow].admin_email = adminEmailEdit;\n stnArr[selectedRow].frequency = frequency;\n stnArr[selectedRow].destination = destinationEdit;\n setStation(stnArr);\n handleClose();\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"Station Edited Successfully\");\n setAlertTitle(\"Success\");\n setloading(false);\n setConfirmAction(\"load\");\n } else if (result.data.status === 400) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Bucket policy Error!!! While editing station\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else if (result.data.status === 403) {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (result.data.status === 422) {\n let errMsg = \"\";\n for (let indx = 0; indx < result.data.result.length; indx++) {\n errMsg =\n errMsg + \" \" + (indx + 1) + \". \" + result.data.result[indx].msg;\n }\n handleClose();\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(errMsg);\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n handleClose();\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(result.data.result);\n setAlertTitle(\"Something Went Wrong\");\n // setloading(false);\n\n ////console.log(\"Error in updating station\", result.data.data);\n }\n }\n };\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction === \"load\") {\n window.location.reload();\n } else if (confirmAction === \"href\") {\n console.log(\"inside conf href\");\n window.location = hrefLink;\n } else if (confirmAction === \"logout\") {\n logout();\n }\n };\n\n const triggerIPStatusLambda = async () => {\n setloading(true);\n let result = await ApiClient(\n \"post\",\n \"/admin/stationStatusUpdateLambdaCall\",\n {},\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n\n if (result.data.status === 200) {\n // if (!alert(result.data.result)) location.reload();\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(result.data.result);\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"warning\");\n setAlertMessage(result.data.result);\n setAlertTitle(\"Error\");\n setConfirmAction(\"load\");\n }\n };\n\n const validateEditStationName = (value) => {\n let errorMsg = validateNameMain(\n value,\n setstationnameEdit,\n showNewStationEdit\n );\n setNewStationEditTxt(errorMsg);\n };\n\n const validateEditBitRate = (value) => {\n let errorMsg = validateBitRateMain(value, setBitRateEdit, showBitRateEdit);\n setBitRateEditTxt(errorMsg);\n };\n\n const validateEditIp = (value) => {\n let errorMsg = validateIpMain(value, setIpEdit, showIpEdit);\n setIpEditTxt(errorMsg);\n };\n\n const validateEditPort = (value) => {\n let errorMsg = validatePortMain(value, setportEdit, showHttpportEdit);\n sethttpportEditTxt(errorMsg);\n };\n\n const validateEditSSHPort = (value) => {\n let errorMsg = validatePortMain(value, setsshportEdit, showSSHportEdit);\n setSSHportEditTxt(errorMsg);\n };\n\n const validateEditAdminName = (value) => {\n let errorMsg = validateNameMain(\n value,\n setadminNameEdit,\n showStationAdminNameEdit\n );\n setStationAdminNameEditTxt(errorMsg);\n };\n\n const validateEditAdminEmail = (value) => {\n let errorMsg = validateEmailMain(\n value,\n setadminEmailEdit,\n showStationAdminEmailEdit\n );\n setStationAdminEmailEditTxt(errorMsg);\n };\n\n const validateEditFrequency = (value) => {\n let errorMsg = validateFrequencyMain(\n value,\n setFreqencyEdit,\n showFrequencyEdit\n );\n setFrequencyEditTxt(errorMsg);\n };\n const validateEditDestination = (value) => {\n let errorMsg = validateDestinationMain(\n value,\n setdestinationEdit,\n showDestinationPathEdit\n );\n setDestinationPathEditTxt(errorMsg);\n };\n\n const checkLiveStationStatus = async () => {\n let regEx = /^((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)(\\.(?!$)|$)){4}$/;\n let resp;\n if (!stationStatusIP.match(regEx)) {\n alert(\"Invalid Station IP\");\n return;\n }\n setloading(true);\n let authToken = await (await Auth.currentSession())\n .getAccessToken()\n .getJwtToken();\n //console.log(authToken);\n try {\n resp = await ApiClient(\n \"get\",\n \"/admin/getIPandPortStatus\",\n \"env=prod&ip=\" + stationStatusIP + \"&port=\" + stationStatusPort,\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n\n if (resp.data.status === 200) {\n setstationStatusResponse(resp.data.msg);\n setloading(false);\n } else {\n setstationStatusResponse(resp.data.msg);\n setloading(false);\n }\n } catch (error) {\n setstationStatusResponse(resp.data.msg);\n setloading(false);\n }\n // setTimeout(() => {\n // setstationStatusResponse(\"Please try after sometime\");\n // setloading(false);\n // }, 2000);\n };\n\n const enableNotificationSettings = async () => {\n setloading(true);\n let resp = await ApiClient(\n \"post\",\n \"/admin/enableNotificationSettings\",\n {\n call_sign: notifRow,\n admin_email: adminEmail,\n },\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n\n if (resp.data.status === 200) {\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"Notification Settings Enabled\");\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Cant update Notification Settings\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"load\");\n setHrefLink(\"\");\n }\n };\n\n const saveNotifSettingsUpdate = async () => {\n let email_temp = [];\n for (let em of notifSettingsMailList) {\n let exp =\n /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n //console.log(em,!exp.test(em))\n if (!exp.test(em)) {\n setshowNewEmailListError(true);\n return;\n } else {\n email_temp.push(em);\n }\n }\n setnotifSettingsMailList(email_temp);\n if (!notifSettingsEnabled && (notifSettingsSnooze || 0) <= 0) {\n setShowSnoozeError(true);\n return;\n }\n if (notifSettingsInterval < 5 || notifSettingsInterval > 1440) {\n setshowNotifIntervalError(true);\n return;\n }\n if (\n !notifSettingsEnabled &&\n notifSettingsExcludeList.length <=\n notificationData[notifRow]?.exclude_list.length\n ) {\n setshowSnoozeEmailListError(true);\n return;\n }\n console.log(\n notifRow,\n notifSettingsEnabled,\n notifSettingsMailList,\n notifSettingsExcludeList,\n notifSettingsSnooze,\n notifSettingsInterval,\n notifSettingsExcludeList.length,\n notificationData[notifRow]?.exclude_list.length\n );\n setloading(true);\n let resp = await ApiClient(\n \"post\",\n \"/admin/updateNotificationSettings\",\n {\n call_sign: notifRow,\n enabled: notifSettingsEnabled,\n snooze: notifSettingsSnooze,\n email_list: notifSettingsMailList,\n exclude_list: notifSettingsExcludeList,\n interval: notifSettingsInterval,\n },\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n if (resp.data.status === 200) {\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"Notification Settings Updated\");\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n } else {\n setloading(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Cant update Notification Settings\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"load\");\n setHrefLink(\"\");\n }\n };\n const confirmDeleteNotificationPause = async () => {\n console.log(emailPauseNotifDelete);\n setshowDeleteNotifPause(false);\n setloading(true);\n if (deleteNotificationPauseVersion === 1) {\n let result = await ApiClient(\n \"post\",\n \"/admin/deleteNotificationPauseSettings\",\n { call_sign: notifRow, email: emailPauseNotifDelete },\n {\n Authorization: Cookies.get(\"auth\"),\n }\n );\n\n if (result.data.status === 200) {\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"Notification Alert Deleted\");\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n setHrefLink(\"\");\n }\n } else {\n let result = await ApiClient(\n \"post\",\n \"/admin/deleteUserEmailNotificationSettings\",\n { call_sign: notifRow, email: emailPauseNotifDelete },\n {\n Authorization: Cookies.get(\"auth\"),\n }\n );\n\n if (result.data.status === 200) {\n setloading(false);\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"Notification Alert Deleted\");\n setAlertTitle(\"Success\");\n setConfirmAction(\"load\");\n setHrefLink(\"\");\n }\n }\n };\n const deleteNotificationPause = (email, ver) => {\n if (ver === 1) setdeleteNotificationPauseVersion(1);\n else setdeleteNotificationPauseVersion(2);\n setemailPauseNotifDelete(email);\n setshowDeleteNotifPause(true);\n };\n\n const ver1HTMLNotifPause = () => {\n return (\n <>\n \n {emailPauseNotifDelete}\n {\" \"}\n will start receiving notifications once you delete the pause\n \n );\n };\n\n const ver2HTMLNotifPause = () => {\n return (\n <>\n \n {emailPauseNotifDelete}\n {\" \"}\n will stop receiving notifications alerts for station failure\n \n );\n };\n\n return (\n
\n {alert && (\n \n {alertMessage}\n \n )}\n {showDeleteNotifPause && (\n confirmDeleteNotificationPause()}\n onCancel={() => setshowDeleteNotifPause(false)}\n focusCancelBtn\n >\n {deleteNotificationPauseVersion === 1\n ? ver1HTMLNotifPause\n : ver2HTMLNotifPause}\n \n )}\n {/* theme.zIndex.drawer + 1 }}\n open={loading}\n >\n \n */}\n \n \n
\n
\n
\n
\n
List of Stations
\n {/* triggerIPStatusLambda()}\n className=\"ml-2\"\n >\n Update All Station Status\n */}\n
\n handleShowStationStatusModal()}\n >\n Check Station Status\n \n
\n
\n
\n
\n
\n {tableLoader === true && (\n \n \n \n \n \n \n Loading Table...\n \n \n \n )}\n {tableLoader === false && (\n
\n \n
\n )}\n
\n
\n {access_levels.indexOf(encryptHash(\"777\")) !== -1 && (\n
\n \n
\n )}\n
\n
\n
\n
\n
\n
\n\n {/* Modal for Update Station Status to inactive */}\n \n \n Activate/Inactivate Station\n \n \n {selectedRow !== null && (\n
\n

\n Are you sure you want to{\" \"}\n {stationArr[selectedRow].is_active ? \"deactivate\" : \"activate\"}{\" \"}\n Station{\" \"}\n \n {stationArr[selectedRow].name}\n {\" \"}\n in Region{\" \"}\n \n {stationArr[selectedRow].region}\n \n

\n {\n let allStations = [...stationArr];\n let status = !allStations[selectedRow].is_active;\n allStations[selectedRow].is_active = status;\n setStation(allStations);\n updateStationStatus(status);\n handleCloseDelete();\n }}\n >\n YES\n {\" \"}\n \n
\n )}\n
\n \n {/* End Modal for Update Station Status to inactive */}\n\n {/* Modal for edit staion data */}\n \n \n Edit Station\n \n \n {open === true && (\n
\n
\n
\n Call Sign:{\" \"}\n \n {stationArr[selectedRow].call_sign}\n {\" \"}\n
\n
\n
\n In Region:{\" \"}\n \n {stationArr[selectedRow].region}\n \n
\n
\n
\n
\n Station Name\n
\n {\n setstationnameEdit(event.target.value);\n validateEditStationName(event.target.value);\n }}\n error={newStationEdit ? true : false}\n helperText={newStationEdit ? newStationEditTxt : \"\"}\n />\n
\n
\n Bit Rate (Kbps)\n
\n {\n setBitRateEdit(event.target.value);\n validateEditBitRate(event.target.value);\n }}\n error={bitRateEdit ? true : false}\n helperText={bitRateEdit ? bitRateEditTxt : \"\"}\n />\n
\n
\n
\n
\n IP\n
\n {\n setIpEdit(event.target.value);\n validateEditIp(event.target.value);\n }}\n error={ipEdit ? true : false}\n helperText={ipEdit ? ipEditTxt : \"\"}\n />\n
\n
\n
\n
\n HTTP Port\n
\n {\n setportEdit(event.target.value);\n validateEditPort(event.target.value);\n }}\n error={httpportEdit ? true : false}\n helperText={httpportEdit ? httpportEditTxt : \"\"}\n />\n
\n
\n SSH Port\n
\n {\n setsshportEdit(event.target.value);\n validateEditSSHPort(event.target.value);\n }}\n error={sshportEditVal ? true : false}\n helperText={sshportEditVal ? sshportEditTxt : \"\"}\n />\n
\n
\n
\n
\n Staion Admin name\n
\n {\n setadminNameEdit(event.target.value);\n validateEditAdminName(event.target.value);\n }}\n error={stationAdminNameEdit ? true : false}\n helperText={\n stationAdminNameEdit ? stationAdminNameEditTxt : \"\"\n }\n />\n
\n
\n Station Admin Email\n
\n {\n setadminEmailEdit(event.target.value);\n validateEditAdminEmail(event.target.value);\n }}\n error={stationAdminEmailEdit ? true : false}\n helperText={\n stationAdminEmailEdit ? stationAdminEmailEditTxt : \"\"\n }\n />\n
\n
\n
\n
\n Frequency\n
\n {\n setFreqencyEdit(event.target.value);\n validateEditFrequency(event.target.value);\n }}\n error={frequencyEdit ? true : false}\n helperText={frequencyEdit ? frequencyEditTxt : \"\"}\n />\n
\n
\n Destination Path\n
\n {\n setdestinationEdit(event.target.value);\n validateEditDestination(event.target.value);\n }}\n error={destinationPathEdit ? true : false}\n helperText={\n destinationPathEdit ? destinationPathEditTxt : \"\"\n }\n />\n
\n
\n
\n )}\n
\n \n saveStationEdit()}\n >\n Save\n \n \n
\n {/* End Modal for edit staion data */}\n\n {/* Check Station Availability Modal */}\n \n \n Check Live Station Status \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n Station IP*\n \n {\n setstationStatusIP(e.target.value);\n }}\n /*helperText={\n newRegionErr && show_error2\n ? newRegionErrText\n : \"\"\n }*/\n />\n
\n Port*\n \n {\n setstationStatusPort(e.target.value);\n }}\n /*helperText={\n newRegionErr && show_error2\n ? newRegionErrText\n : \"\"\n }*/\n />\n
\n
\n {stationStatusResponse}\n
\n
\n
\n \n {\n checkLiveStationStatus();\n }}\n >\n Check\n {\" \"}\n \n \n\n {/* END Check Station Availability Modal */}\n\n {/* Modal for Station Port Status */}\n setshowPortStatus(false)}\n backdrop=\"static\"\n keyboard={false}\n id=\"oldModal\"\n >\n \n Configuration Details\n \n \n Call Sign:{\" \"}\n \n {stationArr[selectedRow]?.call_sign}\n {\" \"}\n
\n Last Status Update:{\" \"}\n \n \n {new Date(stationArr[selectedRow]?.updatedAt).toLocaleString()}\n \n {\" \"}\n
\n First Station Down Occurrence:{\" \"}\n \n \n {stationArr[selectedRow]?.firstInactiveAt\n ? new Date(\n stationArr[selectedRow]?.firstInactiveAt\n ).toLocaleString()\n : \"NA\"}\n \n {\" \"}\n
\n
\n \n \n \n \n \n Type\n Port Number\n Status\n \n \n \n \n HTTP\n {stationArr[selectedRow]?.port}\n \n {stationArr[selectedRow]?.status ? (\n \n Online\n \n ) : (\n \n Offline{\" \"}\n \n )}\n \n \n \n SSH\n {stationArr[selectedRow]?.ssh_port}\n \n {stationArr[selectedRow]?.status_ssh ? (\n \n Online\n \n ) : (\n \n Offline{\" \"}\n \n )}\n \n \n \n Gen4 System\n {\"8022\"}\n \n {stationArr[selectedRow]?.status_gen4 ? (\n \n Online\n \n ) : (\n \n Offline{\" \"}\n \n )}\n \n \n \n MSAC2 Client\n {\"13002\"}\n \n {stationArr[selectedRow]?.status_msac2 ? (\n \n Online\n \n ) : (\n \n Offline{\" \"}\n \n )}\n \n \n \n
\n
\n
\n
\n \n \n \n \n \n \n IP
\n
\n Destination\n
\n
\n \n \n {stationArr[selectedRow]?.ip}\n \n {stationArr[selectedRow]?.destination}\n \n \n \n \n \n Importer Version\n MSAC Version\n \n \n \n {stationArr[selectedRow]?.importer_version}\n {stationArr[selectedRow]?.station_version}\n \n
\n
\n
\n
\n {stationArr[selectedRow]?.service_list.length > 0 && (\n \n \n \n \n \n Service Name\n Schedule Rate Percent\n \n \n {stationArr[selectedRow]?.service_list.map((v) => (\n \n {v.serviceName}\n {v.ScheduleRatePercent}\n \n )\n\n )}\n
\n
\n
)}\n
\n \n {/* End Modal for Station Port Status */}\n\n {/* Modal for Notification Settings Update */}\n {\n setshowNotifSettings(false);\n setshowSnoozeEmailListError(false);\n setshowNewEmailListError(false);\n setShowSnoozeError(false);\n }}\n backdrop=\"static\"\n keyboard={false}\n size=\"lg\"\n >\n \n \n Notification Settings (Call Sign: {notifRow})
\n Last Notification Sent:{\" \"}\n {notificationData[notifRow]?.last_notified_at\n ? new Date(\n notificationData[notifRow]?.last_notified_at\n ).toUTCString()\n : \"NA\"}\n
\n
\n \n {!notificationData[notifRow] && (\n <>\n

Notification Settings for this station is not setup yet

\n \n Enable Notification Settings\n \n \n )}\n {notificationData[notifRow] && (\n \n \n \n \n \n Create / Update Snooze Alerts{\" \"}\n \n \n \n \n \n \n {\n setShowSnoozeError(e.target.checked);\n setshowSnoozeEmailListError(e.target.checked);\n setnotifSettingsEnabled(!e.target.checked);\n }}\n />\n }\n label=\"\"\n />\n \n \n \n {!notifSettingsEnabled && (\n \n \n Emails to Snooze{\" \"}\n \n \n \n \n \n {\n return !notificationData[\n notifRow\n ]?.exclude_list.includes(v);\n }\n )}\n onChange={(e, list) => {\n setshowSnoozeEmailListError(false);\n setnotifSettingsExcludeList(\n Array.from(\n new Set([\n ...notificationData[notifRow]?.exclude_list,\n ...list,\n ])\n )\n );\n }}\n defaultValue={[]}\n renderInput={(params) => (\n \n )}\n />\n \n \n )}\n
\n {showSnoozeEmailListError\n ? \"Please enter new email(s) to snooze\"\n : \"\"}\n
\n {!notifSettingsEnabled && (\n \n \n Snooze For (Hours){\" \"}\n \n \n \n \n \n {\n setShowSnoozeError(false);\n setnotifSettingsSnooze(parseInt(e.target.value));\n }}\n />\n \n \n )}\n
\n {showSnoozeError ? \"Please enter value in field\" : \"\"}\n
\n \n \n Notifications Subscribed for{\" \"}\n \n \n \n \n \n {notificationData[notifRow]?.mail_list.map((v) => (\n deleteNotificationPause(v, 2)\n : null\n }\n deleteIcon={\n \n }\n variant=\"outlined\"\n />\n ))}\n \n \n {showAddEmailNotifications ? (\n setshowAddEmailNotifications(false)}\n style={{ cursor: \"pointer\", color: \"#FF3F7F\" }}\n />\n ) : (\n setshowAddEmailNotifications(true)}\n style={{ cursor: \"pointer\", color: \"#FF3F7F\" }}\n />\n )}\n \n \n {!showAddEmailNotifications && (\n \n \n New User Emails{\" \"}\n \n \n \n \n \n {\n setshowNewEmailListError(false);\n setnotifSettingsMailList(\n Array.from(\n new Set([\n ...notificationData[notifRow]?.mail_list,\n ...list,\n ])\n )\n );\n }}\n defaultValue={[]}\n freeSolo\n renderInput={(params) => (\n \n )}\n />\n \n \n )}\n
\n {showNewEmailListError\n ? \"Please Enter valid Email in list\"\n : \"\"}\n
\n \n \n Notification Interval (minutes){\" \"}\n \n \n \n \n \n {\n setshowNotifIntervalError(false);\n setnotifSettingsInterval(e.target.value);\n }}\n InputProps={{ inputProps: { min: 5, max: 1440 } }}\n disabled={showEditNotifInterval}\n />\n \n \n {showEditNotifInterval ? (\n setshowEditNotifInterval(false)}\n style={{ cursor: \"pointer\", color: \"#FF3F7F\" }}\n />\n ) : (\n setshowEditNotifInterval(true)}\n style={{ cursor: \"pointer\", color: \"#FF3F7F\" }}\n />\n )}\n \n \n
\n {showNotifIntervalError\n ? \"Interval should be between 5 to 1440\"\n : \"\"}\n
\n
\n
\n
\n )}\n
\n
\n {notificationData[notifRow] &&\n notificationData[notifRow]?.exclude_list.length !== 0 && (\n \n

Snooze Settings

\n \n \n \n \n User\n Paused At\n Resume At\n Cancel\n \n \n {notificationData[notifRow]?.exclude_list_config.map(\n (v) => (\n \n {v.user}\n \n {new Date(v.paused_at).toUTCString()}\n \n \n {new Date(v.resume_at).toUTCString()}\n \n \n deleteNotificationPause(v.user, 1)}\n />\n \n \n )\n )}\n
\n
\n
\n )}\n
\n {notificationData[notifRow] && (\n \n \n Save Changes\n \n \n )}\n \n\n {/* End Modal for Notification Settings Update*/}\n \n );\n}\n","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport Alerts from \"../alerts/alert\";\nimport Alert from \"@material-ui/lab/Alert\";\nimport { AlertTitle } from \"@mui/material\";\nimport Footer from \"../footer/footer\";\nimport {\n validateEmailMain,\n validatePasswordMain,\n} from \"../validations/basicRegFormValidations\";\nimport { Formik, Form, Field } from \"formik\";\nimport { Button } from \"react-bootstrap\";\nimport { Auth } from \"@aws-amplify/auth\";\nimport VisibilityIcon from \"@mui/icons-material/Visibility\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\n\nfunction ForgotPassword() {\n const [status, setStatus] = useState(0);\n const [alertType, setAlertType] = useState();\n const [message, setMessage] = useState();\n const [stage, setstage] = useState(1);\n const [email, setemail] = useState(\"\");\n const [code, setcode] = useState();\n const [password, setpassword] = useState();\n const [showPass, setshowPass] = useState(false);\n const [showCPass, setshowCPass] = useState(false);\n const [btnLoad, setbtnLoad] = useState(false);\n\n const validateEmail = (value) => {\n let error = validateEmailMain(value, setemail);\n return error;\n };\n\n const validateCode = (value) => {\n if (!value) return \"Please enter code\";\n else if (value.length !== 6)\n return \"code should be 6 characters\";\n else setcode(value);\n return;\n };\n const validatePassword = (value) => {\n let error = validatePasswordMain(value, setpassword);\n return error;\n };\n const validateConfirmPassword = (value) => {\n if (!value) return \"please enter value\";\n else if (value !== password) return \"passwords don't match\";\n };\n\n const toggleShowPass = () => {\n setshowPass(!showPass);\n };\n const toggleShowCPass = () => {\n setshowCPass(!showCPass);\n };\n\n useEffect(() => {\n //console.log(\"Show Pass\", showPass);\n }, [showPass]);\n\n const getEmailVerificationCode = () => {\n setbtnLoad(true);\n Auth.forgotPassword(email)\n .then((data) => {\n setbtnLoad(false);\n setstage(2);\n setStatus(1);\n setAlertType(\"success\");\n setMessage(\n \"Verification code sent to Email: \" +\n data.CodeDeliveryDetails.Destination\n );\n })\n .catch((err) => {\n setbtnLoad(false);\n setStatus(1);\n setAlertType(\"warning\");\n setMessage(\"Error: \" + err.message);\n });\n };\n\n const confirmPasswordChange = () => {\n setbtnLoad(true);\n Auth.forgotPasswordSubmit(email, code, password)\n .then((data) => {\n if (data === \"SUCCESS\") {\n setstage(3);\n setStatus(1);\n setAlertType(\"success\");\n setMessage(\"Password Changed Please Relogin\");\n }\n setbtnLoad(false);\n Auth.signOut();\n })\n .catch((err) => {\n setStatus(1);\n setAlertType(\"warning\");\n setMessage(\"Password Change Error \" + err.message);\n setbtnLoad(false);\n });\n };\n\n return (\n
\n
\n
\n {status === 1 && (\n \n )}\n
\n
\n
\n {/*
\n {\" \"}\n {\" \"}\n
*/}\n
\n {\" \"}\n {\" \"}\n
\n
\n
\n
\n \n {({ errors, touched }) => (\n
\n {stage === 1 && (\n
\n
\n \n \n {errors.email && touched.email && (\n
\n {errors.email}\n
\n )}\n\n \n Send Email Verification Code\n \n
\n
\n )}\n {stage === 2 && (\n
\n
\n \n \n
\n
\n \n \n {errors.code && touched.code && (\n
\n {errors.code}\n
\n )}\n
\n
\n \n
\n
\n \n
\n \n {showPass && (\n toggleShowPass()}\n />\n )}\n {!showPass && (\n toggleShowPass()}\n />\n )}\n
\n
\n {errors.password && touched.password && (\n
\n {errors.password}\n
\n )}\n
\n
\n \n
\n
\n \n
\n \n {showCPass && (\n toggleShowCPass()}\n />\n )}\n {!showCPass && (\n toggleShowCPass()}\n />\n )}\n
\n
\n {errors.confirmPassword &&\n touched.confirmPassword && (\n
\n {errors.confirmPassword}\n
\n )}\n
\n
\n \n Confirm Password Change\n \n
\n
\n )}\n {stage === 3 && (\n
\n
\n
\n \n Success\n User Password — Updated!\n \n
\n {\n window.location.href='/';\n }}\n className=\"btn btn-primary\"\n color=\"primary\"\n >\n Go to Login\n \n
\n
\n
\n )}\n \n )}\n \n
\n
\n\n
\n
\n \n \n );\n}\n\nexport default ForgotPassword;\n","//const awsmobile = require(\"../../aws-exports\");\nimport AWS from \"aws-sdk\";\nimport Auth from \"@aws-amplify/auth\";\nimport createXml from \"./createXML\";\n\nconst awsmobile = {\n \"aws_project_region\": process.env.REACT_APP_AWS_PROJECT_REGION,\n \"aws_cognito_identity_pool_id\": process.env.REACT_APP_AWS_COGNITO_IDENTITY_POOL_ID,\n \"aws_cognito_region\": process.env.REACT_APP_AWS_COGNITO_REGION,\n \"aws_user_pools_id\": process.env.REACT_APP_AWS_USER_POOLS_ID,\n \"aws_user_pools_web_client_id\": process.env.REACT_APP_AWS_USER_POOLS_WEB_CLIENT_ID,\n \"oauth\": {},\n \"aws_bucket\":process.env.REACT_APP_AWS_BUCKET,\n}\n\nconst region = awsmobile.aws_cognito_region;\nconst user_pool = awsmobile.aws_user_pools_id;\nconst identity_pool = awsmobile.aws_cognito_identity_pool_id;\n\nconst uploadXmlToS3 = (\n bucket,\n ids,\n xmldata,\n selectedStationIPs,\n portList,\n setuploadState,\n setpercentage\n) => {\n //console.log(\"Upload xml called\");\n /*let getauth = async () => {\n return (await Auth.currentSession()).getIdToken().getJwtToken();\n };\n getauth().then(async (res) => {\n let params = {\n Bucket: bucket,\n CreateBucketConfiguration: {\n LocationConstraint: awsmobile.aws_cognito_region,\n },\n ACL: \"private\",\n };\n // let logins = {};\n // logins[\"cognito-idp.\" + region + \".amazonaws.com/\" + user_pool] = res;\n // AWS.config.update({\n // region: region,\n // credentials: new AWS.CognitoIdentityCredentials({\n // IdentityPoolId: identity_pool,\n // Logins: logins,\n // }),\n // });\n\n /* let s3 = new AWS.S3({\n apiVersion: \"2010-12-01\",\n region: \"us-west-2\",\n accessKeyId: process.env.REACT_APP_ACCESS_KEY,\n secretAccessKey:process.env.REACT_APP_SECRET_KEY\n });\n let temp = [];\n let perc = 0;\n xmldata.recordCount = selectedStationIPs.length;\n xmldata.reschedule = 'N';\n for (let i = 0; i < selectedStationIPs.length; i++) {\n xmldata.hostname = selectedStationIPs[i];\n xmldata.recordIds = ids[i];\n xmldata.port = portList[i];\n let xml_data = createXml(xmldata);\n params.Key = ids[i] + \".xml\";\n params.Body = xml_data;\n let resp = await s3.upload(params).promise();\n temp.push(resp.Location);\n perc = perc + 100/selectedStationIPs.length;\n setpercentage(perc);\n }\n setuploadState(false);\n });*/\n};\n\nexport default uploadXmlToS3;\n","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport { Formik, Form, Field } from \"formik\";\nimport Switch from \"@mui/material/Switch\";\nimport AWS from \"aws-sdk\";\nimport encryptHash from \"../../validations/general\";\nimport ApiClient from \"../../../apis/apiClient\";\nimport {\n Table,\n TableBody,\n TableContainer,\n TableRow,\n TableCell,\n Paper,\n FormControlLabel,\n Checkbox,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n Radio,\n RadioGroup,\n TextField,\n Input,\n FormHelperText,\n} from \"@material-ui/core\";\nimport Cookies from \"js-cookie\";\n\nfunction MessageSettingsPayload(props) {\n const {\n bitRateTransmitMessage,\n setbitRateTransmitMessage,\n setbroadcast,\n date,\n setDate,\n utcdate,\n minimumBitRate,\n setutcDate,\n timezone,\n setenableEV,\n transferVia,\n settransferVia,\n settimezone,\n setdeviceType,\n setsequenceNo,\n sequenceNo,\n } = props;\n const [yourtimeZone, setyourTimeZone] = useState(\n Intl.DateTimeFormat().resolvedOptions().timeZone\n );\n const hours = {\n \"America/Toronto\": 5,\n \"America/Chicago\": 6,\n \"America/Denver\": 7,\n \"America/Los_Angeles\": 8,\n \"GMT\": 0\n };\n const [changed, setchanged] = useState(false);\n const [showError, setshowError] = useState(false);\n const [dateTimeError, setdateTimeError] = useState(false);\n const [deviceTypeError, setdeviceTypeError] = useState(false);\n const [seqError, setseqError] = useState(false);\n const [fileError, setfileError] = useState(false);\n const [showBI, setshowBI] = useState(true);\n const [otherDevType, setotherDevType] = useState(false);\n const [allDevices, setallDevices] = useState([]);\n\n const formatDate = (inp) => {\n return (\"0\" + inp).slice(-2);\n };\n const getUtcDate = () => {\n return (\n utcdate.getFullYear() +\n \"-\" +\n formatDate(utcdate.getMonth() + 1) +\n \"-\" +\n formatDate(utcdate.getDate()) +\n \" \" +\n utcdate.toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n })\n );\n };\n useEffect(() => {\n const tz = document.getElementsByName(\"timezone\")[0].value;\n settimezone(tz);\n const d = document.getElementById(\"datetime-local\").value;\n //console.log(\"Use Effect\", tz, d);\n let x = new Date(d);\n\n //x.setHours(x.getHours() - parseInt(tz));\n try {\n //setutcDate(x.toISOString());\n //setDate(x.toUTCString());\n } catch (err) {}\n }, [changed]);\n\n useEffect(async () => {\n\n let response = await ApiClient(\n \"post\",\n \"/admin/getTableDataDynamoDB\",\n {\n tableName: \"IotDevice_info\",\n },\n {\n \"Content-Type\": \"application/json\",\n Authorization: Cookies.get(\"auth\"),\n }\n );\n if (response.data.status === 200) {\n let data = response.data.result;\n let x =[];\n data.map((v) => {\n x.push(v.DeviceID);\n });\n setallDevices(x);\n }\n }, []);\n\n const uploadPayload = () => {};\n\n const setTransfer = (e, val) => {\n settransferVia(val);\n };\n\n const handleChange = (e) => {\n if (e.target.type === \"datetime-local\") {\n let input_dt = e.target.value;\n input_dt = new Date(input_dt);\n var today = new Date(\n new Date().toLocaleString(\"en-US\", { timeZone: timezone })\n );\n today = new Date(today.getTime() + 1 * 60000);\n if (input_dt < today) {\n setdateTimeError(true);\n setshowError(true);\n return;\n } else {\n if (e.target.id === \"datetime-local\") {\n setDate(e.target.value);\n setutcDate(\n new Date(input_dt.setHours(input_dt.getHours() + hours[timezone]))\n );\n setdateTimeError(false);\n }\n }\n } else if (e.target.name === \"timezone\") {\n setchanged(!changed);\n } else if (e.target.name === \"deviceType\") {\n if (e.target.value.length === 0) {\n setdeviceTypeError(true);\n setshowError(true);\n }\n setdeviceType(e.target.value);\n if (e.target.value === \"Others\") {\n setotherDevType(true);\n } else {\n setotherDevType(false);\n }\n } else if (e.target.name === \"checkedB\") {\n setbroadcast(e.target.checked);\n setshowBI(e.target.checked);\n } else if (e.target.name === \"evCharge\") {\n //console.log(e.target.checked);\n setenableEV(e.target.checked);\n } else if (e.target.name === \"customTargetDevice\") {\n if (e.target.value.length > 16 || e.target.value.length === 0) {\n setdeviceTypeError(true);\n setshowError(true);\n return;\n } else {\n setdeviceTypeError(false);\n setshowError(false);\n setdeviceType(e.target.value);\n }\n } else if (e.target.name === \"seq-no\") {\n let data = parseInt(e.target.value);\n if (data < 0) {\n e.target.value = 1;\n data = 1;\n } else if (data > 255) {\n e.target.value = 255;\n data = 255;\n }\n setsequenceNo(data);\n }\n };\n\n return (\n
\n
\n
\n
\n
Schedule Transmission
\n
\n
\n
\n
\n \n \n \n \n \n \n }\n label=\"Broadcast Immediately\"\n />\n \n \n \n Timezone\n \n Timezone\n \n ET\n CT\n MT\n PT\n GMT\n \n {/*yourtimeZone*/}\n \n \n \n \n Date And Time
\n

Broadcast Time in GMT

\n
\n \n \n \n {timezone ? getUtcDate() : \"\"}\n

\n
\n \n
\n \n \n
\n
\n \n \n \n \n \n Target Device\n \n {allDevices.map((v) => (\n {v}\n ))}\n Others\n \n \n \n\n {otherDevType && (\n \n \n Device Name\n \n \n \n )}\n \n \n \n }\n label=\"Enable EV Charging\"\n labelPlacement=\"end\"\n />\n \n \n {Cookies.get(\"t\").split(\",\").indexOf(encryptHash(777)) !==\n -1 && (\n \n \n Transfer Via\n \n }\n label=\"HTTP\"\n labelPlacement=\"end\"\n />\n {/* }\n label=\"SSH\"\n labelPlacement=\"end\"\n /> */}\n \n \n \n )}\n {/*\n \n Sequence Number\n \n \n */}\n \n \n \n
\n
\n {/* {bitRateTransmitMessage !== \"\" && (\n

\n {bitRateTransmitMessage}{\" \"}\n

\n )} */}\n
\n
\n );\n}\n\nexport default MessageSettingsPayload;\n","import { React, useState, useEffect } from \"react\";\nimport validateUser from \"../../validations/userSessionValidation\";\nimport RegionSelect from \"./regionSelect\";\nimport Cookies from \"js-cookie\";\nimport Auth from \"@aws-amplify/auth\";\nimport ApiClient from \"../../../apis/apiClient\";\nimport logout from \"../../validations/logoutUser\";\nimport DataTable from \"../../DataTable/dataTable\";\n// import Backdrop from \"@mui/material/Backdrop\";\nimport { Button } from \"react-bootstrap\";\nimport SendIcon from \"@material-ui/icons/Send\";\nimport CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\nimport DangerousIcon from \"@mui/icons-material/Dangerous\";\nimport DeleteForeverIcon from \"@mui/icons-material/DeleteForever\";\nimport { Tooltip } from \"@mui/material\";\n// import { CircularProgressbar, buildStyles } from \"react-circular-progressbar\";\n// import CircularProgress from \"@mui/material/CircularProgress\";\nimport \"react-circular-progressbar/dist/styles.css\";\nimport createXml from \"../../others/createXML\";\nimport uploadXmlToS3 from \"../../others/uploadXMLS3\";\nimport checkPageAccess from \"../../others/getPageAccess\";\n\nimport path from \"path\";\nimport axios from \"axios\";\nimport MessageSettingsPayload from \"./messageSettingsPayload\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport Loader from \"../../loader/loader\";\nfunction CreateMessagePayload() {\n const [selectOptions, setselectOptions] = useState([]);\n const [selectValuesList, setselectValuesList] = useState([]);\n const [tableData, settableData] = useState([]);\n const [selectedStationIds, setselectedStationIds] = useState([]);\n const [selectedStationCallsign, setselectedStationCallsign] = useState([]);\n /*const [selectedStationIPs, setselectedStationIPs] = useState([]);\n const [portList, setportList] = useState([]);*/\n const [isAdding, setisAdding] = useState(false);\n const [broadcast, setbroadcast] = useState(true);\n const [bitRateTransmitMessage, setbitRateTransmitMessage] = useState(\"\");\n const [minimumBitRate, setminimumBitRate] = useState(-1);\n const [date, setDate] = useState(null);\n const [utcdate, setutcDate] = useState(null);\n const [timezone, settimezone] = useState(\"America/Toronto\");\n const [deviceType, setdeviceType] = useState(\"HDIoTDev000\");\n const [enableEV, setenableEV] = useState(false);\n const [sequenceNo, setsequenceNo] = useState(0);\n const [transferVia, settransferVia] = useState(\"http\");\n const [uploadState, setuploadState] = useState(false);\n const [percentage, setpercentage] = useState(0);\n const [uploadId, setuploadId] = useState(null);\n const [xmlUploadState, setxmlUploadState] = useState(false);\n const [xmlLocation, setxmlLocation] = useState([]);\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n const [loaderType, setLoaderType] = useState(\"CircularProgress\");\n const [redirect, setRedirect] = useState(false);\n const hours = {\n \"America/Toronto\": 4,\n \"America/Chicago\": 5,\n \"America/Denver\": 6,\n \"America/Los_Angeles\": 7,\n GMT: 0,\n };\n\n let userAuthToken = null;\n\n const formatDate = (inp) => {\n return (\"0\" + inp).slice(-2);\n };\n\n const dateNow = (val) => {\n let date = new Date(val.toLocaleString(\"en-US\", { timeZone: timezone }));\n\n return (\n date.getFullYear() +\n \"-\" +\n formatDate(date.getMonth() + 1) +\n \"-\" +\n formatDate(date.getDate()) +\n \"T\" +\n formatDate(date.getHours()) +\n \":\" +\n formatDate(date.getMinutes())\n );\n };\n\n const tableColumns = [\n {\n name: \"status\",\n label: \"Status\",\n options: {\n customBodyRender: (value, tableMeta, updateValue) => (\n \n \n \n ),\n },\n },\n {\n name: \"Call Sign\",\n },\n {\n name: \"Frequency\",\n },\n {\n name: \"Region\",\n },\n {\n name: \"Bit Rate\",\n },\n {\n name: \"id\",\n options: {\n display: false,\n },\n },\n {\n name: \"Remove\",\n options: {\n customBodyRender: (value, tableMeta, updateValue) => (\n \n ),\n },\n },\n ];\n\n const tableOptions = {\n filter: false,\n filterType: \"dropdown\",\n print: false,\n search: true,\n selectableRows: \"none\",\n download: false,\n viewColumns: false,\n responsive: \"standard\",\n fixedHeader: false,\n // onRowsDelete: (event, rowData) => {\n // handleClickedDeleteButton(event, rowData);\n // },\n //selectableRows:'single',\n };\n\n useEffect(async () => {\n document.title = \"Xperi Payload | Xperi HD Radio IoT\";\n setDate(dateNow(new Date()));\n let isValid = await checkPageAccess();\n if (!Cookies.get(deviceType)) {\n Cookies.set(deviceType, 1);\n } else {\n //console.log(Cookies.get(deviceType))\n setsequenceNo(parseInt(Cookies.get(deviceType)));\n }\n if (!isValid) {\n // if (!alert(\"access denied for the url\"))\n // window.location.href = \"/unauthorized\";\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"access denied for the url\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"href\");\n setHrefLink(\"/unauthorized\");\n return;\n } else {\n //console.log(\"You have access\");\n }\n if (validateUser()) {\n userAuthToken = Cookies.get(\"auth\");\n //console.log(\"User Logged in \");\n let getauth = async () => {\n return (await Auth.currentSession()).getAccessToken().getJwtToken();\n };\n getauth().then(async (res) => {\n setRedirect(true);\n const response = await ApiClient(\"get\", \"/app/regions\", \"\", {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n //console.log(\"Regions Resp Status \", response.data);\n if (response.data.status === 200) {\n setRedirect(false);\n setselectOptions(response.data.result);\n } else if (response.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else {\n //logout();\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"logout\");\n setHrefLink(\"\");\n setRedirect(false);\n }\n });\n } else {\n //console.log(\"User Not Logged in\");\n }\n }, []);\n\n useEffect(() => {\n try {\n let input_dt = new Date(date);\n setutcDate(\n new Date(input_dt.setHours(input_dt.getHours() + hours[timezone]))\n );\n } catch (err) {}\n }, [date]);\n\n useEffect(async () => {\n if (uploadId !== null && !uploadState) {\n //setRedirect(true);\n let code = 2;\n if (xmlUploadState) code = 5;\n const responseStat = await ApiClient(\n \"post\",\n \"/user/updateMessageStatus\",\n {\n id: uploadId,\n code: code,\n }\n );\n //console.log(\"Upload Status\", responseStat);\n if (responseStat.data.status === 200) {\n //console.log(\"Upload Finished\", uploadState);\n window.location.replace(\"/user/message-history\");\n } else if (responseStat.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (responseStat.data.status === 422) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n }\n }, [uploadState]);\n\n useEffect(() => {\n ////console.log(\"Table \", tableData);\n //console.log(\"Your time zone\",timezone);\n setDate(dateNow(new Date()));\n }, [timezone]);\n\n useEffect(() => {\n //console.log(\"Dev Type\",Cookies.get(deviceType));\n setsequenceNo(Cookies.get(deviceType) ? Cookies.get(deviceType) : 1);\n if (!Cookies.get(deviceType)) {\n Cookies.set(deviceType, 1);\n }\n }, [deviceType]);\n useEffect(() => {\n console.log(selectedStationIds);\n }, [selectedStationIds]);\n\n //add regions to datatable\n const handleClick = async () => {\n setbitRateTransmitMessage(\"\");\n // //console.log(\"Payload File\", fileVar);\n if (selectValuesList.length === 0) {\n // alert(\"Select a Region from Dropdown\");\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Select a Region from Dropdown\");\n setAlertTitle(\"Something Went Wrong\");\n setisAdding(false);\n return;\n }\n if (selectValuesList.length !== 0) {\n setisAdding(true);\n setLoaderType(\"CircularProgress\");\n setpercentage(0);\n setRedirect(true);\n let regions = [];\n selectValuesList.forEach((val) => {\n regions.push(val.name);\n });\n //console.log(regions);\n\n const response = await ApiClient(\n \"post\",\n \"/app/regions/stations\",\n {\n region: regions,\n },\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n\n if (response.data.status === 200) {\n var joined = tableData;\n let y = selectedStationIds;\n let z = selectedStationCallsign;\n //let z = selectedStationIPs;\n //let pl = portList;\n let minBitRate = 100;\n for (let i = 0; i < response.data.result.length; i++) {\n //console.log(\"ITR:\", i, \"Seleted Station Ids\", y);\n if (\n selectedStationIds.indexOf(response.data.result[i][\"id\"]) === -1\n ) {\n joined.push([\n response.data.result[i][\"status\"],\n response.data.result[i][\"call_sign\"],\n response.data.result[i][\"frequency\"],\n response.data.result[i][\"region\"],\n response.data.result[i][\"bit_rate\"],\n response.data.result[i][\"id\"],\n ]);\n //if (response.data.result[i][\"status\"]) {\n y.push(response.data.result[i][\"id\"]);\n z.push(response.data.result[i][\"call_sign\"]);\n //z.push(response.data.result[i][\"ip\"]);\n //pl.push(response.data.result[i][\"port\"]);\n //}\n }\n minBitRate =\n minBitRate > response.data.result[i][\"bit_rate\"]\n ? response.data.result[i][\"bit_rate\"]\n : minBitRate;\n ////console.log(this.state.selectedStaions)\n }\n setselectedStationIds([...y]);\n setselectedStationCallsign([...z]);\n\n //setselectedStationIPs(z);\n // setportList(pl);\n //console.log(\"Current Station List\", joined);\n settableData(joined);\n setminimumBitRate(minBitRate);\n setisAdding(false);\n setRedirect(false);\n } else if (response.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n setRedirect(false);\n } else if (response.data.status === 422) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n setRedirect(false);\n } else if (response.data.status === 402) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"No Records\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n setRedirect(false);\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n setRedirect(false);\n }\n }\n };\n\n const submit = async () => {\n if (selectedStationIds.length === 0) {\n // alert(\"Please Select an active Station from a region\");\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Please select an active station from a region\");\n setAlertTitle(\"Something Went Wrong\");\n //const timer = setTimeout(() => { setAlert(false); setSeverity(\"\"); }, 1000);\n\n return;\n }\n let today = new Date(\n new Date().toLocaleString(\"en-US\", { timeZone: timezone })\n );\n today = new Date(today.getTime() + 1 * 60000);\n if (!broadcast && new Date(date) < today) {\n //alert(\"DateTime should be in future \");\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Date & Time should be in future\");\n setAlertTitle(\"Something Went Wrong\");\n //const timer = setTimeout(() => { setAlert(false); setSeverity(\"\"); }, 1000);\n return;\n }\n setuploadState(true);\n setLoaderType(\"CircularProgressbar\");\n let schDate = broadcast ? new Date() : new Date(utcdate);\n let deviceSerial = deviceType;\n let device_on = enableEV ? \"01\" : \"00\";\n let year = schDate.getFullYear();\n let month = schDate.getMonth() + 1;\n let _date = schDate.getDate();\n let hour = schDate.getHours();\n let minutes = schDate.getMinutes();\n let seqNo = sequenceNo;\n\n // xmlData.year = year;\n // xmlData.month = month;\n // xmlData.date = _date;\n // xmlData.min = minutes;\n // xmlData.hour = hour;\n // xmlData.fileSource = \"xyz\";\n // xmlData.transferVia = transferVia;\n // xmlData.broadcastNow = broadcast ? \"Y\" : \"N\";\n const response = await ApiClient(\n \"post\",\n \"/user/createMessageCustom\",\n {\n deviceSerial: deviceSerial,\n seqNo: seqNo,\n device_on: device_on,\n year: year,\n month: month,\n _date: _date,\n hour: hour,\n minutes: minutes,\n user: Cookies.get(\"user\"),\n destinationstations: selectedStationCallsign,\n destinationstationsIds: selectedStationIds,\n broadcastimmediate: broadcast,\n transferVia: transferVia,\n timezone: timezone,\n version: process.env.REACT_APP_VERSION,\n },\n { \"Content-Type\": \"application/json\", authorization: Cookies.get(\"auth\") }\n );\n //console.log(\"Response \", response.data);\n if (response.data.status === 200) {\n //console.log(\"Upload URL\", response.data.data.upload_url);\n let ids = response.data._id;\n setuploadId(ids);\n setpercentage(100);\n const response2 = await ApiClient(\n \"post\",\n \"/user/uploadMetadata\",\n {\n recordIds: response.data._id,\n totalRecords: selectedStationIds.length,\n },\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n\n if (response2.data.status === 200) {\n setuploadState(false);\n setLoaderType(\"CircularProgress\");\n setpercentage(0);\n } else if (response2.data.status === 403) {\n setuploadState(false);\n // setLoaderType(\"CircularProgress\");\n // setpercentage(0)\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (response2.data.status === 422) {\n setuploadState(false);\n // setLoaderType(\"CircularProgress\");\n // setpercentage(0)\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setuploadState(false);\n // setLoaderType(\"CircularProgress\");\n // setpercentage(0)\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n\n //xmlData.fileSource = response.data.data.upload_url;\n //let loc = response.data.data.upload_url.split(\"/\");\n //xmlData.fileName = loc[loc.length - 1];\n // uploadXmlToS3(process.env.REACT_APP_XML_CONFIG_BUCKET,\n // ids,\n // xmlData,\n // //selectedStationIPs,\n // //portList,\n // setuploadState,\n // setpercentage\n // )\n /*for (let i = 0; i < selectedStationIPs.length; i++) {\n xmlData.hostname = selectedStationIPs[i];\n xmlData.recordIds = ids[i];\n xmlData.port = portList[i];\n let xmldata = createXml(xmlData);\n //console.log(\"fname \",deviceSerial);\n uploadXmlToS3(\n \"bucket-msac-hdradio-server\",\n ids[i],\n xmldata,\n xmlLocation,\n );\n }*/\n //deprecated\n //Cookies.set(deviceType,parseInt(sequenceNo)+1);\n //setuploadState(false);\n } else if (response.data.status === 403) {\n setuploadState(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (response.data.status === 422) {\n setuploadState(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setuploadState(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n };\n\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction == \"load\") {\n window.location.reload();\n } else if (confirmAction == \"href\") {\n window.location.href = hrefLink;\n } else if (confirmAction === \"logout\") {\n logout();\n }\n };\n return (\n
\n {alert && (\n \n {alertMessage}\n \n )}\n \n \n
\n
\n

Regions

\n \n
\n \n
\n
\n
\n {date !== null && (\n
\n \n
\n )}\n
\n
\n
\n submit()}\n disabled={uploadState ? true : false}\n style={{\n borderColor: \"#4F3493\",\n backgroundColor: \"#4F3493\",\n }}\n >\n {!uploadState && (\n \n Schedule Message {\" \"}\n \n )}\n {uploadState && Please Wait.... }\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n );\n}\n\nexport default CreateMessagePayload;\n","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport { Formik, Form, Field } from \"formik\";\nimport Switch from \"@mui/material/Switch\";\nimport AWS from \"aws-sdk\";\nimport encryptHash from \"../../validations/general\";\nimport ApiClient from \"../../../apis/apiClient\";\nimport {\n Table,\n TableBody,\n TableContainer,\n TableRow,\n TableCell,\n Paper,\n FormControlLabel,\n Checkbox,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n Radio,\n RadioGroup,\n TextField,\n Input,\n FormHelperText,\n} from \"@material-ui/core\";\nimport Cookies from \"js-cookie\";\nimport { TextareaAutosize } from \"@mui/material\";\n\nfunction MessageSettingsIoTPayload(props) {\n const {\n setbroadcast,\n date,\n setDate,\n utcdate,\n setutcDate,\n timezone,\n settimezone,\n setcustomerId,\n setpayloadData,\n setAlert,\n setAlertTitle,\n setAlertMessage,\n setSeverity,\n setConfirmAction,\n setHrefLink\n } = props;\n const [yourtimeZone, setyourTimeZone] = useState(\n Intl.DateTimeFormat().resolvedOptions().timeZone\n );\n const hours = {\n \"America/Toronto\": 5,\n \"America/Chicago\": 6,\n \"America/Denver\": 7,\n \"America/Los_Angeles\": 8,\n GMT: 0,\n };\n const [changed, setchanged] = useState(false);\n const [showError, setshowError] = useState(false);\n const [dateTimeError, setdateTimeError] = useState(false);\n const [payloadDataError, setpayloadDataError] = useState(false);\n const [fileError, setfileError] = useState(false);\n const [custIdError, setcustIdError] = useState(false);\n const [showBI, setshowBI] = useState(true);\n const [hasuploadPayload, sethasuploadPayload] = useState(false);\n const [allDevices, setallDevices] = useState([]);\n const [fileData, setfileData] = useState(null)\n const formatDate = (inp) => {\n return (\"0\" + inp).slice(-2);\n };\n const getUtcDate = () => {\n return (\n utcdate.getFullYear() +\n \"-\" +\n formatDate(utcdate.getMonth() + 1) +\n \"-\" +\n formatDate(utcdate.getDate()) +\n \" \" +\n utcdate.toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n })\n );\n };\n useEffect(() => {\n const tz = document.getElementsByName(\"timezone\")[0].value;\n settimezone(tz);\n const d = document.getElementById(\"datetime-local\").value;\n //console.log(\"Use Effect\", tz, d);\n let x = new Date(d);\n }, [changed]);\n\n useEffect(async () => {}, []);\n\n\n const handleChange = (e) => {\n if (e.target.type === \"datetime-local\") {\n let input_dt = e.target.value;\n input_dt = new Date(input_dt);\n var today = new Date(\n new Date().toLocaleString(\"en-US\", { timeZone: timezone })\n );\n today = new Date(today.getTime() + 1 * 60000);\n if (input_dt < today) {\n setdateTimeError(true);\n setshowError(true);\n return;\n } else {\n if (e.target.id === \"datetime-local\") {\n setDate(e.target.value);\n setutcDate(\n new Date(input_dt.setHours(input_dt.getHours() + hours[timezone]))\n );\n setdateTimeError(false);\n }\n }\n } else if (e.target.name === \"timezone\") {\n setchanged(!changed);\n } else if (e.target.name === \"checkedB\") {\n setbroadcast(e.target.checked);\n setshowBI(e.target.checked);\n } else if (e.target.name === \"uploadPayload\") {\n sethasuploadPayload(e.target.checked);\n if(e.target.checked){\n setpayloadData(fileData);\n }\n } else if (e.target.name === \"customerId\") {\n //console.log(e.target.checked);\n setcustomerId(e.target.value);\n if (e.target.value === \"00\"){\n setcustIdError(true);\n setshowError(true);\n return;\n }else{\n setcustIdError(false);\n setshowError(false);\n }\n \n } else if (e.target.name === \"payload-data\") {\n setpayloadData(e.target.value)\n }else if (e.target.type === \"file\") {\n setfileData(null);\n let types = [\"application/octet-stream\", \"text/plain\"];\n if (\n !types.includes(e.target.files[0].type) &&\n !(\n e.target.files[0].name.endsWith(\".txt\") ||\n e.target.files[0].name.endsWith(\".bin\")\n )\n ) {\n //alert(\"Only Binary and text files allowed to upload\");\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Only Binary and text files allowed to upload\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n e.target.value = \"\";\n setfileData(null);\n return;\n }\n if (!e.target.files[0]) {\n setfileError(true);\n setfileData(null);\n } else {\n setfileError(false);\n }\n let fSize = 0;\n try {\n fSize = e.target.files[0].size / 1024;\n } catch (err) {\n console.log(\"File Size error \", err.message);\n setfileData(null);\n }\n if (fSize > 1000000) {\n // setbitRateTransmitMessage(\n // \"File should be less than or equal (1 GB) in Size\"\n // );\n setfileData(null);\n return;\n } else if (fSize === 0) {\n //setbitRateTransmitMessage(\"File Size should not be Zero\");\n setfileData(null);\n return;\n } else {\n console.log(\"Setting new file\");\n let read = new FileReader();\n read.readAsText(e.target.files[0],'UTF-8');\n read.onload = function (evt) {\n let data = evt.target.result;\n setfileData(data);\n }\n }\n }\n };\nuseEffect(() => {\n if(fileData) setpayloadData(fileData);\n}, [fileData])\n\n return (\n
\n
\n
\n
\n
Schedule Transmission
\n
\n
\n
\n
\n \n \n \n \n \n \n }\n label=\"Broadcast Immediately\"\n />\n \n \n \n Timezone\n \n Timezone\n \n \n Eastern Time (ET)\n \n \n Central Time (CT)\n \n \n Mountain Time (MT)\n \n \n Pacific Time (PT)\n \n \n Greenwich Mean Time (GMT)\n \n \n {/*yourtimeZone*/}\n \n \n \n \n Date And Time
\n

Broadcast Time in GMT

\n
\n \n \n \n {timezone ? getUtcDate() : \"\"}\n

\n
\n \n
\n \n \n
\n
\n \n \n \n \n \n Customer ID\n \n \n Please Select\n \n \n \n   Tesla\n \n \n \n  Ford\n \n \n \n \n \n \n \n }\n label=\"Check to Upload Payload\"\n labelPlacement=\"end\"\n />\n \n \n {hasuploadPayload && (\n \n \n \n Upload Payload\n \n \n \n \n )}\n {!hasuploadPayload && (\n \n \n Payload Contents\n \n \n \n )}\n \n \n \n
\n
\n
\n
\n );\n}\n\nexport default MessageSettingsIoTPayload;\n","import { React, useState, useEffect } from \"react\";\nimport validateUser from \"../../validations/userSessionValidation\";\nimport RegionSelect from \"./regionSelect\";\nimport Cookies from \"js-cookie\";\nimport Auth from \"@aws-amplify/auth\";\nimport ApiClient from \"../../../apis/apiClient\";\nimport logout from \"../../validations/logoutUser\";\nimport DataTable from \"../../DataTable/dataTable\";\nimport { Button } from \"react-bootstrap\";\nimport SendIcon from \"@material-ui/icons/Send\";\nimport CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\nimport DangerousIcon from \"@mui/icons-material/Dangerous\";\nimport DeleteForeverIcon from \"@mui/icons-material/DeleteForever\";\nimport { Tooltip } from \"@mui/material\";\nimport \"react-circular-progressbar/dist/styles.css\";\nimport createXml from \"../../others/createXML\";\nimport uploadXmlToS3 from \"../../others/uploadXMLS3\";\nimport checkPageAccess from \"../../others/getPageAccess\";\n\nimport path from \"path\";\nimport axios from \"axios\";\nimport MessageSettingsIoTPayload from \"./messageSettingsIoT\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport Loader from \"../../loader/loader\";\nfunction CreateMessageIoTPayload() {\n const [selectOptions, setselectOptions] = useState([]);\n const [selectValuesList, setselectValuesList] = useState([]);\n const [tableData, settableData] = useState([]);\n const [selectedStationIds, setselectedStationIds] = useState([]);\n const [selectedStationCallsign, setselectedStationCallsign] = useState([]);\n const [isAdding, setisAdding] = useState(false);\n const [broadcast, setbroadcast] = useState(true);\n const [date, setDate] = useState(null);\n const [utcdate, setutcDate] = useState(null);\n const [timezone, settimezone] = useState(\"America/Toronto\");\n const [transferVia, settransferVia] = useState(\"http\");\n const [uploadState, setuploadState] = useState(false);\n const [percentage, setpercentage] = useState(0);\n const [uploadId, setuploadId] = useState(null);\n const [xmlUploadState, setxmlUploadState] = useState(false);\n const [xmlLocation, setxmlLocation] = useState([]);\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n const [loaderType, setLoaderType] = useState(\"CircularProgress\");\n const [redirect, setRedirect] = useState(false);\n const [customerId, setcustomerId] = useState(0);\n const [payloadData, setpayloadData] = useState(\"\");\n const hours = {\n \"America/Toronto\": 4,\n \"America/Chicago\": 5,\n \"America/Denver\": 6,\n \"America/Los_Angeles\": 7,\n GMT: 0,\n };\n\n let userAuthToken = null;\n\n const formatDate = (inp) => {\n return (\"0\" + inp).slice(-2);\n };\n\n const dateNow = (val) => {\n let date = new Date(val.toLocaleString(\"en-US\", { timeZone: timezone }));\n\n return (\n date.getFullYear() +\n \"-\" +\n formatDate(date.getMonth() + 1) +\n \"-\" +\n formatDate(date.getDate()) +\n \"T\" +\n formatDate(date.getHours()) +\n \":\" +\n formatDate(date.getMinutes())\n );\n };\n\n const tableColumns = [\n {\n name: \"status\",\n label: \"Status\",\n options: {\n customBodyRender: (value, tableMeta, updateValue) => (\n \n \n \n ),\n },\n },\n {\n name: \"Call Sign\",\n },\n {\n name: \"Frequency\",\n },\n {\n name: \"Region\",\n },\n {\n name: \"Bit Rate\",\n },\n {\n name: \"id\",\n options: {\n display: false,\n },\n },\n {\n name: \"Remove\",\n options: {\n customBodyRender: (value, tableMeta, updateValue) => (\n \n ),\n },\n },\n ];\n\n const tableOptions = {\n filter: false,\n filterType: \"dropdown\",\n print: false,\n search: true,\n selectableRows: \"none\",\n download: false,\n viewColumns: false,\n responsive: \"standard\",\n fixedHeader: false,\n };\n\n useEffect(async () => {\n document.title = \"Xperi Payload | Xperi HD Radio IoT\";\n setDate(dateNow(new Date()));\n let isValid = await checkPageAccess();\n if (!isValid) {\n // if (!alert(\"access denied for the url\"))\n // window.location.href = \"/unauthorized\";\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"access denied for the url\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"href\");\n setHrefLink(\"/unauthorized\");\n return;\n } else {\n //console.log(\"You have access\");\n }\n if (validateUser()) {\n userAuthToken = Cookies.get(\"auth\");\n //console.log(\"User Logged in \");\n let getauth = async () => {\n return (await Auth.currentSession()).getAccessToken().getJwtToken();\n };\n getauth().then(async (res) => {\n setRedirect(true);\n const response = await ApiClient(\"get\", \"/app/regions\", \"\", {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n if (response.data.status === 200) {\n setRedirect(false);\n setselectOptions(response.data.result);\n } else if (response.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"logout\");\n setHrefLink(\"\");\n setRedirect(false);\n }\n });\n } else {\n //console.log(\"User Not Logged in\");\n }\n }, []);\n\n useEffect(() => {\n try {\n let input_dt = new Date(date);\n setutcDate(\n new Date(input_dt.setHours(input_dt.getHours() + hours[timezone]))\n );\n } catch (err) {}\n }, [date]);\n\n useEffect(async () => {\n if (uploadId !== null && !uploadState) {\n let code = 2;\n if (xmlUploadState) code = 5;\n const responseStat = await ApiClient(\n \"post\",\n \"/user/updateMessageStatus\",\n {\n id: uploadId,\n code: code,\n }\n );\n\n if (responseStat.data.status === 200) {\n window.location.replace(\"/user/message-history\");\n } else if (responseStat.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (responseStat.data.status === 422) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n }\n }, [uploadState]);\n\n useEffect(() => {\n setDate(dateNow(new Date()));\n }, [timezone]);\n\n useEffect(() => {\n console.log(selectedStationIds);\n }, [selectedStationIds]);\n\n const handleClick = async () => {\n if (selectValuesList.length === 0) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Select a Region from Dropdown\");\n setAlertTitle(\"Something Went Wrong\");\n setisAdding(false);\n return;\n }\n if (selectValuesList.length !== 0) {\n setisAdding(true);\n setLoaderType(\"CircularProgress\");\n setpercentage(0);\n setRedirect(true);\n let regions = [];\n selectValuesList.forEach((val) => {\n regions.push(val.name);\n });\n //console.log(regions);\n\n const response = await ApiClient(\n \"post\",\n \"/app/regions/stations\",\n {\n region: regions,\n },\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n\n if (response.data.status === 200) {\n var joined = tableData;\n let y = selectedStationIds;\n let z = selectedStationCallsign;\n for (let i = 0; i < response.data.result.length; i++) {\n if (\n selectedStationIds.indexOf(response.data.result[i][\"id\"]) === -1\n ) {\n joined.push([\n response.data.result[i][\"status\"],\n response.data.result[i][\"call_sign\"],\n response.data.result[i][\"frequency\"],\n response.data.result[i][\"region\"],\n response.data.result[i][\"bit_rate\"],\n response.data.result[i][\"id\"],\n ]);\n y.push(response.data.result[i][\"id\"]);\n z.push(response.data.result[i][\"call_sign\"]);\n }\n }\n setselectedStationIds([...y]);\n setselectedStationCallsign([...z]);\n\n //setselectedStationIPs(z);\n // setportList(pl);\n //console.log(\"Current Station List\", joined);\n settableData(joined);\n setisAdding(false);\n setRedirect(false);\n } else if (response.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n setRedirect(false);\n } else if (response.data.status === 422) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n setRedirect(false);\n } else if (response.data.status === 402) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"No Records\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n setRedirect(false);\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n setRedirect(false);\n }\n }\n };\n\n const submit = async () => {\n if (selectedStationIds.length === 0) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Please select an active station from a region\");\n setAlertTitle(\"Something Went Wrong\");\n return;\n }\n let today = new Date(\n new Date().toLocaleString(\"en-US\", { timeZone: timezone })\n );\n today = new Date(today.getTime() + 1 * 60000);\n if (!broadcast && new Date(date) < today) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Date & Time should be in future\");\n setAlertTitle(\"Something Went Wrong\");\n return;\n }\n if(!payloadData){\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"No data in payload\");\n setAlertTitle(\"Something Went Wrong\");\n return;\n }\n setuploadState(true);\n setLoaderType(\"CircularProgressbar\");\n let schDate = broadcast ? new Date() : new Date(utcdate);\n let year = schDate.getFullYear();\n let month = schDate.getMonth() + 1;\n let _date = schDate.getDate();\n let hour = schDate.getHours();\n let minutes = schDate.getMinutes();\n\n \n const response = await ApiClient(\n \"post\",\n \"/user/createMessageCustomIoT\",\n {\n year: year,\n month: month,\n _date: _date,\n hour: hour,\n minutes: minutes,\n user: Cookies.get(\"user\"),\n destinationstations: selectedStationCallsign,\n destinationstationsIds: selectedStationIds,\n broadcastimmediate: broadcast,\n transferVia: transferVia,\n timezone: timezone,\n version: process.env.REACT_APP_VERSION,\n customerId: customerId,\n payloadData: payloadData,\n transferType: \"iot-payload\",\n },\n { \"Content-Type\": \"application/json\", authorization: Cookies.get(\"auth\") }\n );\n\n if (response.data.status === 200) {\n //console.log(\"Upload URL\", response.data.data.upload_url);\n let ids = response.data._id;\n setuploadId(ids);\n setpercentage(100);\n const response2 = await ApiClient(\n \"post\",\n \"/user/uploadMetadata\",\n {\n recordIds: response.data._id,\n totalRecords: selectedStationIds.length,\n },\n {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n }\n );\n\n if (response2.data.status === 200) {\n setuploadState(false);\n setLoaderType(\"CircularProgress\");\n setpercentage(0);\n } else if (response2.data.status === 403) {\n setuploadState(false);\n // setLoaderType(\"CircularProgress\");\n // setpercentage(0)\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (response2.data.status === 422) {\n setuploadState(false);\n // setLoaderType(\"CircularProgress\");\n // setpercentage(0)\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setuploadState(false);\n // setLoaderType(\"CircularProgress\");\n // setpercentage(0)\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n } else if (response.data.status === 403) {\n setuploadState(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (response.data.status === 422) {\n setuploadState(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setuploadState(false);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n };\n\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction == \"load\") {\n window.location.reload();\n } else if (confirmAction == \"href\") {\n window.location.href = hrefLink;\n } else if (confirmAction === \"logout\") {\n logout();\n }\n };\n return (\n
\n {alert && (\n \n {alertMessage}\n \n )}\n \n \n
\n
\n

Regions

\n \n
\n \n
\n
\n
\n {date !== null && (\n
\n \n
\n )}\n
\n
\n
\n submit()}\n disabled={uploadState ? true : false}\n style={{\n borderColor: \"#4F3493\",\n backgroundColor: \"#4F3493\",\n }}\n >\n {!uploadState && (\n \n Schedule Message {\" \"}\n \n )}\n {uploadState && Please Wait.... }\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n );\n}\n\nexport default CreateMessageIoTPayload;\n","import { Button } from \"@material-ui/core\";\nimport React, { useEffect,useState, useRef } from \"react\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport useInterval from \"@use-it/interval\";\nimport { useHistory } from \"react-router-dom\";\nconst VALID_CHARS = `abcdefghijklmnopqrstuvwxyz0123456789$+-*/=%\"'#&_(),.;:?!\\\\|{}<>[]^~`;\nconst STREAM_MUTATION_ODDS = 0.02;\n\nconst MIN_STREAM_SIZE = 15;\nconst MAX_STREAM_SIZE = 50;\n\nconst MIN_INTERVAL_DELAY = 50;\nconst MAX_INTERVAL_DELAY = 100;\n\nconst MIN_DELAY_BETWEEN_STREAMS = 0;\nconst MAX_DELAY_BETWEEN_STREAMS = 8000;\n\n\n\nconst getRandInRange = (min, max) =>\n\tMath.floor(Math.random() * (max - min)) + min;\n\nconst getRandChar = () =>\n\tVALID_CHARS.charAt(Math.floor(Math.random() * VALID_CHARS.length));\n\nconst getRandStream = () =>\n\tnew Array(getRandInRange(MIN_STREAM_SIZE, MAX_STREAM_SIZE))\n\t\t.fill()\n\t\t.map(_ => getRandChar());\n\nconst getMutatedStream = stream => {\n\tconst newStream = [];\n\tfor (let i = 1; i < stream.length; i++) {\n\t\tif (Math.random() < STREAM_MUTATION_ODDS) {\n\t\t\tnewStream.push(getRandChar());\n\t\t} else {\n\t\t\tnewStream.push(stream[i]);\n\t\t}\n\t}\n\tnewStream.push(getRandChar());\n\treturn newStream;\n};\n\nconst RainStream = props => {\n\tconst [stream, setStream] = useState(getRandStream());\n\tconst [topPadding, setTopPadding] = useState(stream.length * -50);\n\tconst [intervalDelay, setIntervalDelay] = useState(null);\n\n\t// Initialize intervalDelay\n\tuseEffect(() => {\n\t\tsetTimeout(() => {\n\t\t\tsetIntervalDelay(getRandInRange(MIN_INTERVAL_DELAY, MAX_INTERVAL_DELAY));\n\t\t}, getRandInRange(MIN_DELAY_BETWEEN_STREAMS, MAX_DELAY_BETWEEN_STREAMS));\n\t}, []);\n\n\tuseInterval(() => {\n\t\tif (!props.height) return;\n\n\t\tif (!intervalDelay) return;\n\n\t\t// If stream is off the screen, reset it after timeout\n\t\tif (topPadding > props.height) {\n\t\t\tsetStream([]);\n\t\t\tconst newStream = getRandStream();\n\t\t\tsetStream(newStream);\n\t\t\tsetTopPadding(newStream.length * -44);\n\t\t\tsetIntervalDelay(null);\n\t\t\tsetTimeout(\n\t\t\t\t() =>\n\t\t\t\t\tsetIntervalDelay(\n\t\t\t\t\t\tgetRandInRange(MIN_INTERVAL_DELAY, MAX_INTERVAL_DELAY),\n\t\t\t\t\t),\n\t\t\t\tgetRandInRange(MIN_DELAY_BETWEEN_STREAMS, MAX_DELAY_BETWEEN_STREAMS),\n\t\t\t);\n\t\t} else {\n\t\t\tsetTopPadding(topPadding + 44);\n\t\t}\n\t\t// setStream(stream => [...stream.slice(1, stream.length), getRandChar()]);\n\t\tsetStream(getMutatedStream);\n\t}, intervalDelay);\n\n\treturn (\n\t\t\n\t\t\t{stream.map((char, index) => (\n\t\t\t\t\n\t\t\t\t\t{char}\n\t\t\t\t\n\t\t\t))}\n\t\t\n\t);\n};\n\n\nfunction Unauthorized({timeout = 50}) {\n const containerRef = useRef(null);\n\tconst [containerSize, setContainerSize] = useState(null); // ?{width, height}\n\tconst history = useHistory();\n\tuseEffect(() => {\n\t\tconst boundingClientRect = containerRef.current.getBoundingClientRect();\n\t\tsetContainerSize({\n\t\t\twidth: boundingClientRect.width,\n\t\t\theight: boundingClientRect.height,\n\t\t});\n\t}, []);\n\n\tconst streamCount = containerSize ? Math.floor(containerSize.width / 26) : 0;\n\n\n const hideAlert = () => {\n //history.location(window.location.origin);\n\t//window.location.assign(window.location.origin);\n\twindow.location.href = '/';\n };\n return (\n //
\n // \n //

\n // You seem to have no access to the page\n //

\n //
Contact Company Admin for details
\n // \n //
\n \n {/*new Array(streamCount).fill().map(_ => (\n \n\t\t))*/}\n\n
\n \n

\n You seem to have no access to the page\n

\n
Contact Company Admin for details
\n \n
\n\n\n \n\n\n\n );\n}\n\nexport default Unauthorized;\n","import React from 'react'\nimport { useState, useEffect } from 'react'\nimport checkPageAccess from '../others/getPageAccess';\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nexport default function AdminHome() {\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n useEffect(async () => {\n document.title = 'Home | Xperi HD Radio IoT';\n let isValid = await checkPageAccess();\n if (!isValid) {\n // if(!alert('access denied for the url')) window.location.href = \"/unauthorized\";\n setAlert(true)\n setSeverity(\"error\")\n setAlertMessage(\"access denied for the url\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"href\");\n setHrefLink(\"/unauthorized\");\n return;\n } else {\n //console.log(\"You have access\");\n }\n }, [])\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction == \"load\") {\n window.location.reload();\n } else if (confirmAction == \"href\") {\n window.location.href = hrefLink;\n }\n }\n return (\n
\n {alert && (\n \n {alertMessage}\n \n )}\n
\n

TODO:

\n
    \n
  1. Daily Activity
  2. \n
  3. Plots having all user summary
  4. \n
  5. Station updates
  6. \n
  7. Notifications
  8. \n
\n
\n
\n )\n}\n","import React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Card from \"@mui/material/Card\";\nimport CardActions from \"@mui/material/CardActions\";\nimport CardContent from \"@mui/material/CardContent\";\nimport Button from \"@mui/material/Button\";\nimport Typography from \"@mui/material/Typography\";\n\nconst bull = (\n \n •\n \n);\n\nconst card = (\n \n \n \n About\n \n \n \n Radio Datacast Application\n \n \n Version {process.env.REACT_APP_VERSION}\n \n \n Updated on: April 21, 2023\n
\n
\n © 2023 Xperi Corporation. \n
\n All rights reserved.\n
\n
\n
\n \n {/**/}\n \n
\n);\nfunction About() {\n return (\n
\n
\n
\n
\n \n
\n
\n {card}\n
\n
\n
\n
\n
\n
\n
\n );\n}\n\nexport default About;\n","import MailIcon from \"@material-ui/icons/Mail\";\nimport HomeIcon from '@mui/icons-material/Home';\nimport HistoryIcon from \"@material-ui/icons/History\";\nimport DashboardIcon from \"@material-ui/icons/Dashboard\";\nimport PersonIcon from \"@material-ui/icons/Person\";\nimport BusinessIcon from \"@material-ui/icons/Business\";\nimport CellTowerIcon from \"@mui/icons-material/CellTower\";\nimport InfoIcon from \"@material-ui/icons/Info\";\nimport ForwardToInboxIcon from '@mui/icons-material/ForwardToInbox';\nimport React from 'react';\n\nexport const NavbarData = [\n {\n title: \"Home\",\n icon: ,\n path:\"/dashboard\",\n access: \"200\"\n },\n {\n title: \"Schedule Message\",\n icon: ,\n path:\"/user/home\",\n access: \"200\"\n },\n {\n title: \"Schedule Xperi Payload\",\n icon: ,\n path:\"/user/xperi-payload\",\n access: \"502\"\n },\n {\n title: \"Schedule Car / IoT Payload\",\n icon: ,\n path:\"/user/xperi-iot-payload\",\n access: \"502\"\n },\n {\n title: \"Schedule Xperi Payload EVSE\",\n icon: ,\n path:\"/user/xperi-payload-evse\",\n access: \"502\"\n },\n {\n title: \"Message History\",\n icon: ,\n path:\"/user/message-history\",\n access: \"200\"\n },\n /*{\n title: \"Admin Dashboard\",\n icon: ,\n path:\"/admin/home\",\n access: \"400\"\n },*/\n {\n title: \"Users\",\n icon: ,\n path:\"/admin/users\",\n access: \"400\"\n },\n {\n title: \"Companies\",\n icon: ,\n path:\"/admin/company\",\n access: \"777\"\n },\n {\n title: \"Stations\",\n icon: ,\n path:\"/admin/region/stations\",\n access: \"715\"\n },\n {\n title: \"Systems Dashboard\",\n icon: ,\n path:\"/admin/system-dashboard\",\n access: \"777\"\n },\n {\n title: \"IoT Device Dashboard\",\n icon: ,\n path:\"/iot/home\",\n access: \"777\"\n },\n {\n title: \"About Us\",\n icon: ,\n path:\"/user/about\",\n access: \"200\"\n }\n];","import React, { useState, useEffect } from \"react\";\nimport \"./navbar.css\";\nimport { NavbarData } from \"./NavBarData\";\nimport MenuIcon from \"@mui/icons-material/Menu\";\nimport Avatar from \"react-avatar\";\nimport Cookies from \"js-cookie\";\nimport encryptHash from \"../validations/general\";\nimport ExitToAppIcon from \"@material-ui/icons/ExitToApp\";\nimport logout from \"../validations/logoutUser\";\nimport NavDropdown from \"react-bootstrap/NavDropdown\";\nimport Alert from \"@mui/material/Alert\";\nimport AlertTitle from \"@mui/material/AlertTitle\";\nimport Stack from \"@mui/material/Stack\";\n\nfunction NavbarNew(props) {\n const access_levels = Cookies.get(\"t\") ? Cookies.get(\"t\").split(\",\") : [];\n //const [showSideBar, setshowSideBar] = useState(false);\n //const showSideBarToggle = () => setshowSideBar(!showSideBar);\n const { showSideBar, setshowSideBar, showSideBarToggle } = props;\n const [hideAlert, sethideAlert] = useState(false);\n const logoutfromapp = () => {\n logout();\n };\n\n useEffect(() => {\n if (window.location.pathname === \"/dashboard\") setshowSideBar(true);\n }, []);\n\n return (\n <>\n
\n
\n \n {\"sicon-\" + showSideBar}\n \n
\n
\n \n
\n\n{!hideAlert && process.env.REACT_APP_NOTICE_ENABLE === \"true\" && (\n\n \n {\n sethideAlert(true);\n }}\n >\n Scheduled Downtime\n Due to scheduled maintenance we will have downtime -{\" \"}\n \n Starting Mon 13th Feb 2023 12:00 AM GMT to Tue 14th Feb 2023\n 12:00 AM GMT\n \n \n \n )}\n
\n (window.location.href = \"/user/profile\")}\n >\n \n Welcome, {Cookies.get(\"user\")}   \n \n \n
\n Link 1\n Link 2\n Link 3\n
\n
\n \n
\n
    \n {NavbarData.filter((val) => {\n return (\n access_levels.indexOf(encryptHash(\"777\")) !== -1 ||\n access_levels.indexOf(encryptHash(val.access)) !== -1 ||\n val.access === \"200\"\n );\n }).map((val, key) => {\n return (\n (window.location.href = val.path)}\n >\n
    {val.icon}
    \n
    {val.title}
    \n \n );\n })}\n \n
    \n \n
    \n
    Logout
    \n \n
  • \n
    \n
    \n
  • \n
  • \n
    \n
    \n
  • \n
  • \n
    \n
    \n
  • \n
\n
\n \n );\n}\n\nexport default NavbarNew;\n","import React, { useState, useEffect } from \"react\";\nimport \"./navbar.css\";\n\nfunction Navbarbasic() {\n return (\n <>\n
\n \n
\n \n
\n
\n \n );\n}\n\nexport default Navbarbasic;\n","import React from \"react\";\nimport Backdrop from \"@mui/material/Backdrop\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Slide from \"@mui/material/Slide\";\n\nfunction Loader(props) {\n let { open } = props;\n return (\n \n \n \n \n {`Loading...`}\n \n \n \n );\n}\n\nexport default Loader;\n","import React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport WorkHistoryIcon from \"@mui/icons-material/WorkHistory\";\nimport AvTimerIcon from \"@mui/icons-material/AvTimer\";\nimport DraftsIcon from \"@mui/icons-material/Drafts\";\nimport LanguageIcon from \"@mui/icons-material/Language\";\nimport ApiClient from \"../../apis/apiClient\";\nimport Cookies from \"js-cookie\";\nimport Loader from \"./loader\";\nimport axios from \"axios\";\nimport encryptHash from \"../validations/general\";\nimport logout from \"../validations/logoutUser\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport { Button, Modal } from \"react-bootstrap\";\nimport { TextField, Input } from \"@material-ui/core\";\n\n\nfunction DashboardV1(props) {\n const [dashboardData, setdashboardData] = useState(null);\n const [is_loading, setis_loading] = useState(true);\n const [messagePath, setMessagePath] = useState(\"/user/home\");\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n const [showStationStatus, setshowStationStatus] = useState(false);\n const handleShowStationStatusModal = () => setshowStationStatus(true);\n const handleHideStationStatusModal = () => {\n setstationStatusResponse(\"Enter Required Fields and Click Check to see Ping Status\");\n setshowStationStatus(false);\n }\n const [stationStatusIP, setstationStatusIP] = useState();\n const [stationStatusPort, setstationStatusPort] = useState();\n const [stationStatusResponse, setstationStatusResponse] = useState(\n \"Enter Required Fields and Click Check to see Ping Status\"\n );\n\n const [loading, setloading] = useState(true);\n const {showSideBar} = props\n const [customDivStyle, setcustomDivStyle] = useState({ marginTop: \"100px\",padding: '0px', marginStart: \"2%\", width: \"100%\"});\n\n\n const checkLiveStationStatus = async () => {\n let regEx = /^((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)(\\.(?!$)|$)){4}$/;\n if (!stationStatusIP.match(regEx)) {\n alert(\"Invalid Station IP\");\n return;\n }\n setloading(true);\n // let authToken = await (await Auth.currentSession())\n // .getAccessToken()\n // .getJwtToken();\n //console.log(authToken);\n try {\n \n let resp = await ApiClient(\"get\",\"/admin/getIPandPortStatus\", \"env=prod&ip=\"+stationStatusIP+\"&port=\"+stationStatusPort,{\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n \n if(resp.data.status === 200){\n setstationStatusResponse(resp.data.msg);\n setloading(false);\n }else{\n setstationStatusResponse(resp.data.msg);\n setloading(false);\n }\n } catch (error) {\n setstationStatusResponse(\"Some Error Occured\");\n setloading(false);\n }\n // setTimeout(() => {\n // setstationStatusResponse(\"Please try after sometime\");\n // setloading(false);\n // }, 2000);\n };\n\n useEffect(async () => {\n let resp = await ApiClient(\"get\", \"/app/dashboard\", \"\", {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n if (resp.data.status === 200) {\n setdashboardData(resp.data.result);\n setis_loading(false);\n let access_levels = Cookies.get(\"t\").split(\",\");\n if (\n access_levels.indexOf(encryptHash(\"502\")) !== -1 &&\n access_levels.indexOf(encryptHash(\"777\")) === -1\n )\n setMessagePath(\"/user/xperi-payload\");\n } else if (resp.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else {\n //logout();\n //window.location.href = \"/\";\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Some Error Occured\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"logout\");\n //setHrefLink(\"/\");\n\n }\n }, []);\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction == \"load\") {\n window.location.reload();\n } else if (confirmAction == \"href\") {\n window.location.href = hrefLink;\n } else if (confirmAction === \"logout\") {\n logout();\n }\n };\n\n useEffect(() => {\n if(showSideBar){\n setcustomDivStyle({marginTop: \"100px\",padding: '0px', marginLeft: \"15%\", width:\"80%\", height:\"100%\"})\n }else{\n setcustomDivStyle({marginTop: \"100px\",padding: '0px'})\n }\n }, [showSideBar])\n \n return (\n
\n {alert && (\n \n {alertMessage}\n \n )}\n \n {!is_loading && (\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n Pending Messages Scheduled Count\n
\n

\n {dashboardData\n ? dashboardData.count.toLocaleString()\n : 0}\n

\n
\n \n New Message\n \n \n Message History\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n Next Message Scheduled For\n
\n

\n {dashboardData.last_time !== null\n ? new Date(\n dashboardData.last_time\n ).toLocaleString()\n : `-`}\n

\n
\n
\n
\n
\n
\n
\n \n
\n
\n Company Admin Email\n
\n

\n {dashboardData ? dashboardData.admin : \"\"}\n

\n
\n
\n
\n
\n
\n
\n \n
\n
\n Last login IP\n
\n

\n {dashboardData ? dashboardData.last_ip : \"\"}\n

\n
\n
\n
\n
\n { Cookies.get(\"t\") &&\n (Cookies.get(\"t\").split(\",\").indexOf(encryptHash(777)) !== -1 ||\n Cookies.get(\"t\").split(\",\").indexOf(encryptHash(715)) !== -1) && (
\n
\n \n
\n
)\n }\n
\n \n \n \n
\n
\n
\n\n\n {/* Check Station Availability Modal */}\n \n \n Check Live Station Status \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
Station IP*\n {\n setstationStatusIP(e.target.value);\n }}\n /*helperText={\n newRegionErr && show_error2\n ? newRegionErrText\n : \"\"\n }*/\n />\n
Port*\n {\n setstationStatusPort(e.target.value);\n }}\n /*helperText={\n newRegionErr && show_error2\n ? newRegionErrText\n : \"\"\n }*/\n />\n
\n
\n {stationStatusResponse}\n
\n
\n
\n \n {\n checkLiveStationStatus();\n }}\n >\n Check\n {\" \"}\n \n \n\n {/* END Check Station Availability Modal */}\n


\n \n )}\n \n );\n}\n\nexport default DashboardV1;\n","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport ApiClient from \"../../apis/apiClient\";\nimport MUIDataTable from \"mui-datatables\";\nimport Backdrop from \"@mui/material/Backdrop\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport RefreshIcon from \"@material-ui/icons/Refresh\";\n\nimport checkPageAccess from \"../others/getPageAccess\";\nimport { Container } from \"@material-ui/core\";\nimport Cookies from \"js-cookie\";\nimport {\n unstable_createMuiStrictModeTheme as createMuiTheme,\n MuiThemeProvider,\n} from \"@material-ui/core/styles\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\n\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport logout from \"../validations/logoutUser\";\nconst theme = createMuiTheme({\n palette: {\n primary: {\n light: \"#757CE8\",\n main: \"#3F50B5\",\n dark: \"#002884\",\n contrastText: \"#fff\",\n },\n secondary: {\n light: \"#FF7961\",\n main: \"#F44336\",\n dark: \"#BA000D\",\n contrastText: \"#000\",\n },\n },\n});\nfunction ErrorLogs() {\n const [data, setdata] = useState([]);\n const [loading, setloading] = useState(true);\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n const columns = [\n {\n label: \"Message ID\",\n name: \"recordID\",\n },\n {\n label: \"User\",\n name: \"user\",\n },\n {\n label: \"Scheduled Time\",\n name: \"scheduleTime\",\n },\n {\n label: \"Station\",\n name: \"destinationStation\",\n },\n {\n label: \"Station IP\",\n name: \"stationIP\",\n },\n {\n label: \"Updated At\",\n name: \"updatedAt\",\n type: \"date\",\n },\n {\n label: \"Error Message\",\n name: \"errorLog\",\n },\n ];\n const options = {\n filter: true,\n filterType: \"dropdown\",\n selectableRows: \"none\",\n sortOrder: {\n name: \"scheduleTime\",\n direction: \"desc\",\n },\n customToolbar: () => {\n return (\n \n getErrorMessages()}>\n \n \n \n );\n },\n };\n\n const getErrorMessages = async () => {\n setloading(true);\n try {\n const response = await ApiClient(\"get\", \"/admin/getMSACErrorLogs\", \"\", {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n //console.log(response);\n let out = [];\n if (response.data.status === 200) {\n const responseData = response.data.result;\n out = responseData.map((values) => {\n return {\n recordID: values.recordID,\n user: values.user,\n scheduleTime: new Date(values.scheduleTime).toISOString(),\n destinationStation: values.destinationStation,\n stationIP: values.stationIP,\n updatedAt: new Date(values.updatedAt).toISOString(),\n errorLog: values.errorLog\n };\n });\n console.log(out);\n setdata(out);\n setloading(false);\n } else if (response.code === 400) throw Error(\"Cant load invalid url\");\n else throw Error(\"Some Error Occured\")\n } catch (err) {\n //console.log(err.message);\n\n //alert(\"Cant fetch Data Error Message: \" + err.message);\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Cant fetch Data Error Message: \" + err.message);\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n }\n };\n\n useEffect(async () => {\n document.title = \"Message History | Xperi HD Radio IoT\";\n const isValid = await checkPageAccess();\n if (!isValid) {\n\n // if (!alert(\"access denied for the url\"))\n // window.location.href = \"/unauthorized\";\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"access denied for the url\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"href\");\n setHrefLink(\"/unauthorized\");\n } else {\n //console.log(\"You have access\");\n getErrorMessages();\n }\n }, []);\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction == \"load\") {\n window.location.reload();\n } else if (confirmAction == \"href\") {\n window.location.href = hrefLink;\n }else if (confirmAction === \"logout\") {\n logout();\n }\n }\n return (\n
\n {alert && (\n \n {alertMessage}\n \n )}\n \n theme.zIndex.drawer + 1 }}\n open={loading}\n >\n \n \n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n \n
\n );\n}\n\nexport default ErrorLogs;\n","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport ApiClient from \"../../apis/apiClient\";\nimport MUIDataTable from \"mui-datatables\";\nimport { Container } from \"react-bootstrap\";\nimport Cookies from \"js-cookie\";\nimport logout from \"../validations/logoutUser\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport Loader from \"../loader/loader\";\nimport {\n unstable_createMuiStrictModeTheme as createMuiTheme,\n MuiThemeProvider,\n} from \"@material-ui/core/styles\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport CheckIcon from \"@material-ui/icons/Check\";\nimport { Button, Modal, Table } from \"react-bootstrap\";\nimport checkPageAccess from \"../others/getPageAccess\";\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n light: \"#757CE8\",\n main: \"#3F50B5\",\n dark: \"#002884\",\n contrastText: \"#fff\",\n },\n secondary: {\n light: \"#FF7961\",\n main: \"#F44336\",\n dark: \"#BA000D\",\n contrastText: \"#000\",\n },\n },\n});\n\nfunction UpdateStationLists() {\n const [tableData, settableData] = useState();\n const [alert, setAlert] = useState(false);\n const [severity, setSeverity] = useState(\"default\");\n const [alertTitle, setAlertTitle] = useState(\"\");\n const [confirmAction, setConfirmAction] = useState(\"\");\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [hrefLink, setHrefLink] = useState(\"\");\n const [loading, setloading] = useState(true);\n\n useEffect(async () => {\n document.title = \"Update Station List | Xperi HD Radio IoT\";\n const isValid = await checkPageAccess();\n const result = await ApiClient(\"get\", \"/admin/getAllStationData\");\n if (result.data.status === 200) {\n settableData(result.data.result);\n console.log(result.data);\n }else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Cant update station status\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n ////console.log(\"Error in updating station\", result.data.data);\n }\n }, []);\n\n const updateStationList = async (data) => {\n setloading(true);\n const response = await ApiClient(\"post\", \"/admin/updateStationList\", data, {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n if (response.data.status === 200) {\n setAlert(true);\n setSeverity(\"success\");\n setAlertMessage(\"Updated Successfully\");\n setAlertTitle(\"Success\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else if (response.data.status === 403) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Session Expired Please Relogin \");\n setAlertTitle(\"Relogin\");\n setConfirmAction(\"logout\");\n } else if (response.data.status === 422) {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Missing required param\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n } else {\n setAlert(true);\n setSeverity(\"error\");\n setAlertMessage(\"Cant update station status\");\n setAlertTitle(\"Something Went Wrong\");\n setConfirmAction(\"\");\n setHrefLink(\"\");\n ////console.log(\"Error in updating station\", result.data.data);\n }\n setloading(false);\n };\n const columns = [\n { name: \"id\" },\n { name: \"ip\" },\n { name: \"port\" },\n { name: \"call_sign\" },\n {\n name: \"status\",\n options: {\n filter: true,\n sort: false,\n customBodyRender: (value, tableMeta, updateValue) => {\n return (\n
\n {value && }\n {!value && }\n
\n );\n },\n },\n },\n {\n name: \"Update\",\n options: {\n customBodyRender: (value, tableMeta, updateValue) => (\n {\n console.log(tableData[tableMeta.rowIndex]);\n updateStationList(tableData[tableMeta.rowIndex]);\n }}\n >\n Update\n \n ),\n },\n },\n ];\n const options = {\n filter: true,\n filterType: \"dropdown\",\n selectableRows: \"none\",\n };\n\n const confirmAlert = () => {\n setAlert(false);\n setSeverity(\"default\");\n setAlertTitle(\"\");\n if (confirmAction == \"load\") {\n window.location.reload();\n } else if (confirmAction == \"href\") {\n window.location.href = hrefLink;\n } else if (confirmAction === \"logout\") {\n logout();\n }\n };\n\n return (\n
\n {alert && (\n \n {alertMessage}\n \n )}\n \n \n \n \n \n \n
\n
\n
\n
\n );\n}\n\nexport default UpdateStationLists;\n","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport checkPageAccess from \"../others/getPageAccess\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport ApiClient from \"../../apis/apiClient\";\nimport Cookies from \"js-cookie\";\nimport logout from \"../validations/logoutUser\";\nimport DataTable from \"../DataTable/dataTable\";\nimport Loader from \"../loader/loader\";\nimport moment, { max } from \"moment\";\nimport {\n LineChart,\n Line,\n CartesianGrid,\n XAxis,\n YAxis,\n Tooltip,\n Label,\n Legend,\n} from \"recharts\";\nimport { Typography } from \"@mui/material\";\nimport { Card } from \"@mui/material\";\n\nexport default function SystemDashboard() {\n const [stationStatusLog, setstationStatusLog] = useState();\n const [dashresp, setdashresp] = useState(null);\n const [tableData, settableData] = useState();\n const [loaderType, setLoaderType] = useState(\"CircularProgress\");\n const [loading, setloading] = useState(true);\n const [cpu_usage_line_data, setcpu_usage_line_data] = useState(null);\n const [memory_usage_line_data, setmemory_usage_line_data] = useState(null);\n const [lastRecordTime, setlastRecordTime] = useState(null);\n const [recordsAvailableFrom, setrecordsAvailableFrom] = useState(null);\n const [maxUsageCPU, setmaxUsageCPU] = useState(null);\n const [minUsageCPU, setminUsageCPU] = useState(null);\n const [averageCPUUsage, setaverageCPUUsage] = useState(null);\n const [maxUsageMemory, setmaxUsageMemory] = useState(null);\n const [minUsageMemory, setminUsageMemory] = useState(null);\n const [averageMemoryUsage, setaverageMemoryUsage] = useState(null);\n\n const getDateFormatted = (data) => {\n let out =\n String(data.getMonth() + 1).padStart(2, \"0\") +\n \"/\" +\n String(data.getDate()).padStart(2, \"0\") +\n \"/\" +\n data.getFullYear();\n out +=\n \" \" +\n String(data.getHours()).padStart(2, \"0\") +\n \":\" +\n String(data.getMinutes()).padStart(2, \"0\") +\n \":\" +\n String(data.getSeconds()).padStart(2, \"0\");\n return out;\n };\n\n const tableColumns = [\n {\n name: \"time\",\n label: \"Last Updated Time\",\n options: {\n filter: false,\n //customBodyRender: value => moment(new Date(value)).format('ddd, DD MMM YYYY HH:MM:SS Z'),\n sortCompare: (order) => {\n return (obj1, obj2) => {\n let val1 = new Date(getDateFormatted(new Date(obj1.data)));\n let val2 = new Date(getDateFormatted(new Date(obj2.data)));\n return (val1 - val2) * (order === \"asc\" ? 1 : -1);\n };\n },\n },\n },\n {\n name: \"call_sign\",\n label: \"Station Call Sign\",\n },\n {\n name: \"http_status\",\n label: \"Status (HTTP)\",\n },\n {\n name: \"ssh_status\",\n label: \"Status (SSH)\",\n },\n {\n name: \"msac2_status\",\n label: \"Status (MSAC2)\",\n },\n {\n name: \"gen4_status\",\n label: \"Status (Gen4)\",\n },\n ];\n const tableOptions = {\n filter: true,\n filterType: \"dropdown\",\n responsive: \"standard\",\n tableBodyHeight: \"600px\",\n tableBodyMaxHeight: \"\",\n selectableRows: \"none\",\n };\n\n const setUsageData = (instance_data) => {\n let data_records = [];\n let data_records_memory = [];\n let max_cpu = -100;\n let min_cpu = 100;\n let max_memory = -100;\n let min_memory = 100;\n let cpu_usage;\n let mem_usage;\n let avg_cpu_usage = 0;\n let avg_memory_usage = 0;\n let lrtCPU = new Date(2000, 1, 1);\n let ratCPU = new Date(3000, 1, 1);\n for (let records of instance_data) {\n try {\n let d = new Date(records[\"createdAt\"]);\n if (d > lrtCPU) lrtCPU = d;\n if (d < ratCPU) ratCPU = d;\n cpu_usage = parseFloat(\n 100 - records[\"additionalInfo\"][0][\"cpu_usage_idle%\"]\n ).toFixed(3);\n mem_usage = parseFloat(records[\"additionalInfo\"][0][\"memory_usage\"]);\n\n if (max_cpu < cpu_usage) max_cpu = cpu_usage;\n if (min_cpu > cpu_usage) min_cpu = cpu_usage;\n if (max_memory < mem_usage) max_memory = mem_usage;\n if (min_memory > mem_usage) min_memory = mem_usage;\n\n data_records.push({\n DateHour: d.getUTCHours(),//d.toISOString().substring(5, 13),\n usage: cpu_usage,\n date: d.toGMTString()\n });\n \n data_records_memory.push({\n DateHour: d.getUTCHours(),//d.toISOString().substring(5, 13),\n usage: mem_usage,\n date: d.toGMTString()\n });\n\n avg_cpu_usage += parseFloat(\n 100 - records[\"additionalInfo\"][0][\"cpu_usage_idle%\"]\n );\n\n avg_memory_usage += parseFloat(records[\"additionalInfo\"][0][\"memory_usage\"]);\n } catch (e) {}\n }\n\n setmaxUsageCPU(max_cpu);\n setminUsageCPU(min_cpu);\n setmaxUsageMemory(max_memory);\n setminUsageMemory(min_memory);\n setrecordsAvailableFrom(ratCPU);\n setlastRecordTime(lrtCPU);\n setaverageCPUUsage((avg_cpu_usage / instance_data.length).toFixed(3));\n setaverageMemoryUsage((avg_memory_usage / instance_data.length).toFixed(3));\n setcpu_usage_line_data(data_records);\n setmemory_usage_line_data(data_records_memory);\n };\n\n useEffect(async () => {\n let dashresptemp = await ApiClient(\"get\", \"/app/system-dashboard\", \"\", {\n \"Content-Type\": \"application/json\",\n authorization: Cookies.get(\"auth\"),\n });\n\n if (dashresptemp.data.status === 200) {\n setUsageData(dashresptemp.data.result[\"instance_health_check\"]);\n setdashresp(dashresptemp.data.result[\"station_status_update\"]);\n } else {\n logout();\n }\n }, []);\n\n useEffect(() => {\n if (dashresp !== null) {\n //console.log('x',dashresp);\n //let stationStatus = dashresp?.filter((v) => {return v.logFor === \"Station Status Update\"});\n setstationStatusLog(dashresp);\n }\n }, [dashresp]);\n\n useEffect(() => {\n if (stationStatusLog) {\n let res = [];\n for (let data of stationStatusLog) {\n for (let info of data.additionalInfo) {\n let x = {};\n x.time = new Date(data.updatedAt).toUTCString();\n x.call_sign = info.call_sign;\n x.http_status = info.http_status + \"\";\n x.ssh_status = info.ssh_status + \"\";\n x.gen4_status = info.gen4_status + \"\";\n x.msac2_status = info.msac2_status + \"\";\n res.push(x);\n }\n }\n settableData(res);\n setloading(false);\n }\n }, [stationStatusLog]);\n\n\n const CustomTooltipCPUUsage = ({ active, payload, label }) => { \n if (active) {\n return (\n
\n \n

Time: {payload[0][\"payload\"][\"date\"]}

\n

Hour : {payload[0][\"payload\"][\"DateHour\"]}

\n

Usage % :{payload[0][\"payload\"][\"usage\"]}

\n
\n
\n );\n }\n return null;\n };\n\n return (\n
\n \n
\n\n
\n {cpu_usage_line_data && (\n \n
\n
CPU Usage Statistics
\n
\n
\n \n \n \n \n \n \n \n }/>\n \n
\n

\n Maximum CPU Usage: {maxUsageCPU} %\n

\n

\n Minimum CPU Usage: {minUsageCPU} %\n

\n

\n Average CPU Usage: {averageCPUUsage} %\n

\n

\n Last Record Updated at: {lastRecordTime?.toGMTString()}\n

\n

\n Records available from: {recordsAvailableFrom?.toGMTString()}\n

\n
\n
\n
\n )}\n\n{memory_usage_line_data && (\n \n
\n
Memory Usage Statistics
\n
\n
\n \n \n \n \n \n \n \n }/>\n \n
\n

\n Maximum Memory Usage: {maxUsageMemory} %\n

\n

\n Minimum Memory Usage: {minUsageMemory} %\n

\n

\n Average Memory Usage: {averageMemoryUsage} %\n

\n

\n Last Record Updated at: {lastRecordTime?.toGMTString()}\n

\n

\n Records available from: {recordsAvailableFrom?.toGMTString()}\n

\n
\n
\n \n )}\n\n \n

Station Status Data

\n \n \n
\n
\n
\n
\n \n );\n}\n","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport Alerts from \"../alerts/alert\";\nimport Alert from \"@material-ui/lab/Alert\";\nimport { AlertTitle } from \"@mui/material\";\nimport Footer from \"../footer/footer\";\nimport CryptoJS from \"crypto-js\";\nimport QRCode from \"qrcode.react\";\n\nimport {\n validateEmailMain,\n validatePasswordMain,\n} from \"../validations/basicRegFormValidations\";\nimport { Formik, Form, Field } from \"formik\";\nimport { Button } from \"react-bootstrap\";\nimport { Auth } from \"@aws-amplify/auth\";\nimport VisibilityIcon from \"@mui/icons-material/Visibility\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport ApiClient from \"../../apis/apiClient\";\n\nfunction RecoverMFA() {\n const [status, setStatus] = useState(0);\n const [alertType, setalertType] = useState(\"success\");\n const [message, setmessage] = useState(\"\");\n const [showAns, setshowAns] = useState(false);\n const [showRC, setshowRC] = useState(false);\n const [btnLoad, setbtnLoad] = useState(false);\n const [btnLoadQR, setbtnLoadQR] = useState(false);\n const [email, setemail] = useState(\"\");\n const [showStepTwo, setshowStepTwo] = useState(false);\n const [showStepThree, setshowStepThree] = useState(false);\n const [seqQuestion, setseqQuestion] = useState();\n const [seqAnswer, setseqAnswer] = useState();\n const [recoveryCode, setrecoveryCode] = useState();\n const [MFACode, setMFACode] = useState();\n const [mfaCode, setmfaCode] = useState();\n const toggleShowAns = () => setshowAns(!showAns);\n const toggleShowRC = () => setshowRC(!showRC);\n\n const validateEmail = (value) => {\n let error;\n if (!value) {\n error = \"Please enter your email address\";\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(value)) {\n setemail(value);\n error = \"Invalid email address\";\n } else {\n setemail(value);\n }\n return error;\n };\n\n const validateseqanswer = (value) => {\n let error;\n if (!value) {\n error = \"Please enter security answer\";\n } else if (value.length < 3) {\n error = \"Answer should be atleast 3 characters\";\n setseqAnswer(value);\n } else {\n setseqAnswer(value);\n }\n return error;\n };\n\n const validateRecoveryCode = (value) => {\n let error;\n if (!value) {\n error = \"Please enter recovery code\";\n } else if (value.length < 8) {\n error = \"Recovery code should atleast be 8 characters\";\n setrecoveryCode(value);\n } else {\n setrecoveryCode(value);\n }\n return error;\n };\n\n const getMFACredentials = async () => {\n if (validateEmail(email) !== undefined) return;\n setbtnLoad(true);\n const result = await ApiClient(\"post\", \"/getMFACredentials\", {\n email: email,\n });\n if (result.data.status === 200) {\n setStatus(0);\n setshowStepTwo(true);\n setseqQuestion(result.data.result.mfa_security_question);\n setmfaCode(result.data.result.mfa_code);\n } else if (result.data.status === 400) {\n setStatus(1);\n setalertType(\"error\");\n setmessage(result.data.result + \" \" + email + \" exists in our record\");\n setbtnLoad(false);\n }\n };\n\n const generateQR = () => {\n let paraphrase = recoveryCode.toUpperCase() + \"@\" + seqAnswer;\n try {\n let mfa_code = CryptoJS.AES.decrypt(mfaCode, paraphrase).toString(\n CryptoJS.enc.Utf8\n );\n console.log(mfa_code);\n if (mfa_code.length === 0 || !mfa_code.startsWith('otpauth://totp/AWSCognito:')) {\n setStatus(1);\n setalertType(\"error\");\n setmessage(\n \"Invalid input provided please check recovery code and security answer\"\n );\n } else {\n setStatus(0);\n setMFACode(mfa_code);\n setshowStepTwo(false);\n setshowStepThree(true);\n }\n } catch (error) {\n setStatus(1);\n setalertType(\"error\");\n setmessage(\n \"Invalid input provided please check recovery code and security answer\"\n );\n }\n };\n\n return (\n
\n
\n
\n {status === 1 && (\n \n )}\n
\n
\n
\n {/*
\n {\" \"}\n {\" \"}\n
*/}\n
\n {\" \"}\n {\" \"}\n
\n
\n
\n \n {\n generateQR();\n }\n //stage === 1 ? getEmailVerificationCode : confirmPasswordChange\n }\n >\n {({ errors, touched }) => (\n
\n
\n
\n \n \n {errors.email && touched.email && (\n
\n {errors.email}\n
\n )}\n {\n getMFACredentials();\n }}\n >\n Get Record\n \n
\n {showStepTwo && (\n
\n
\n \n \n
\n
\n \n
\n
\n \n
\n \n {showAns && (\n toggleShowAns()}\n />\n )}\n {!showAns && (\n toggleShowAns()}\n />\n )}\n
\n
\n {errors.answer && touched.answer && (\n
\n {errors.answer}\n
\n )}\n
\n
\n \n
\n
\n \n
\n \n {showRC && (\n toggleShowRC()}\n />\n )}\n {!showRC && (\n toggleShowRC()}\n />\n )}\n
\n
\n {errors.recoveryCode && touched.recoveryCode && (\n
\n {errors.recoveryCode}\n
\n )}\n
\n
\n \n Generate QR\n \n
\n
\n )}\n {showStepThree && (\n <>\n Recovered MFA QR code:\n
\n \n
\n

\n *Note: We do not guarantee the\n correctness of the MFA as we do not store any values\n to validate the inputs given in the previous step\n

\n \n \n )}\n
\n \n )}\n \n
\n
\n\n