{"version":3,"sources":["components/Map/ResizeIcon.svg","images/eng_flag.png","images/pl_flag.png","components/Map/PositionChange.svg","reducers/LoginReducer.js","reducers/LocationsReducer.js","reducers/ProjectsReducer.js","reducers/GatewaysReducer.js","reducers/BeaconsReducer.js","reducers/RnReducer.js","reducers/ZonesReducer.js","reducers/PoliciesReducer.js","reducers/DataFetch.js","reducers/index.js","components/Login/LoginForm.js","components/Gui/CancelButton.js","components/Register/RegisterForm.js","components/Language/LanguageForm.js","components/Login/Login.js","themes/style.js","components/Gui/IconTextField.js","components/Locations/FloorPlanUpload.js","components/Gui/SaveButton.js","components/Locations/FloorDialog.js","components/Locations/BuildingFloors.js","components/Locations/NewBuildingForm.js","scriptLoader.js","components/Map/RotatableOverlay.js","components/Map/LocationMap.js","actions/apiCalls.js","components/Locations/CreateLocation.js","components/Locations/EditFloorDialog.js","components/Gui/DeleteDialog.js","components/Locations/BuildingFloorsEdit.js","components/Locations/EditLocation.js","utils.js","components/Gui/DataTable.js","components/Gui/AddFab.js","components/Locations/LocationsPanel.js","components/Locations/Locations.js","components/Dashboard/Dashboard.js","components/Layout/LoginLogout.js","components/Layout/RefreshDialog.js","components/Layout/Timer.js","components/Layout/AppBarDrawer.js","components/Gui/IconSelector.js","components/Map/DevicesMap.js","components/Gateways/CreateGateway.js","components/Gateways/EditGateway.js","components/Gui/UploadMacFilters.js","components/Gateways/GatewayPanel.js","components/Gateways/Gateways.js","components/Beacons/CreateBeacon.js","components/Beacons/EditBeacon.js","components/Beacons/BeaconsPanel.js","components/Beacons/Beacons.js","components/Templates/CreateTemplate.js","components/Templates/EditTemplate.js","components/Templates/TemplatesPanel.js","components/Templates/Templates.js","components/Map/Map.js","components/Map/IconMarker.js","components/Map/TrackingMap.js","components/Gui/OutlinedSelect.js","components/Gui/FilterTextField.js","components/Gui/Loader.js","components/Tracking/Tracking.js","components/Map/TrackingHistoryMap.js","components/Gui/MaskedInput.js","components/Gui/DatePicker.js","components/Tracking/TrackingHistory.js","components/ReferenceNodes/CreateReferenceNode.js","components/ReferenceNodes/EditReferenceNode.js","components/ReferenceNodes/ReferenceNodesPanel.js","components/ReferenceNodes/ReferenceNodes.js","components/Settings/CreateProject.js","components/Settings/EditProject.js","components/Settings/ChangePassDialog.js","components/Settings/Personal.js","components/Settings/Settings.js","components/Map/ZoneMap.js","components/Zones/EditZone.js","components/Map/ZoneCreationMap.js","components/Zones/CreateZone.js","components/Zones/ZonesPanel.js","components/Zones/Zones.js","components/Gui/Selector.js","components/Policies/ConfigurationDialog.js","components/Policies/BeaconsActionsAndRules.js","components/Policies/CreatePolicy.js","components/Policies/EditPolicy.js","components/Policies/PoliciesPanel.js","components/Policies/Policies.js","components/Layout/App.js","serviceWorker.js","i18n.js","translations/en.js","translations/pl.js","index.js"],"names":["module","exports","initialState","userLoggedIn","token","username","isSuperAdmin","email","language","errors","locations","metadata","currentLoc","notices","userProjects","firmwares","currentProjectId","currentRole","gateways","gatewayTemplates","currentGateway","isOpened","beacons","beaconTemplates","referenceNodes","referenceNodeTemplates","zones","policies","fetched","combineReducers","state","action","type","payload","data","notifyKey","login","axios","defaults","headers","common","sessionStorage","setItem","push","clear","projects","projectId","role","length","id","attributes","proj","find","project","devices","form","renderTextField","input","label","meta","custom","touched","error","TextField","variant","reduxForm","props","handleSubmit","pristine","submitting","t","useTranslation","onSubmit","Field","name","component","placeholder","Button","color","disabled","Typography","Link","href","onClick","e","preventDefault","handleOpen","openRegister","underline","cancelStyle","width","background","CancelButton","style","RegisterForm","textFieldUserName","password","textFieldPassword","textFieldEmailAdress","post","process","then","response","this","setState","confirmMessage","setTimeout","handleClose","bind","catch","errorsNetwork","message","handleTextFildChangeLogin","target","value","handleTextFieldChangePassword","handleTextFieldChangeEmailAdress","validateEmail","test","String","toLowerCase","validateUserName","validatePassword","isUserValid","isPasswordValid","isEmailValid","DialogContent","onChange","helperText","autoFocus","margin","fullWidth","autoComplete","Component","withTranslation","LanguageForm","handleLanguageChange","lng","i18n","changeLanguage","button_style","maxWidth","maxHeight","minWidth","minHeight","float","src","eng_flag","alt","pl_flag","Login","openRegisterWindow","openLoginWindow","closeRegisterWindow","loginValues","loginForm","values","loginUser","className","Dialog","open","onClose","aria-labelledby","connect","loggedIn","dispatch","userValues","res","err","get","console","log","green","gray","Theme","createMuiTheme","palette","primary","main","light","contrastText","secondary","dark","selected","typography","useNextVariants","button","textTransform","fontFamily","join","IstokTheme","MontserratBoldTheme","IconTextField","Grid","item","xs","theme","container","spacing","IconButton","pointerEvents","icon","onBlur","onEnd","FloorPlanUpload","fileSelectedHandler","event","image","files","reader","FileReader","onload","size","setFloorPlan","result","notify","readAsDataURL","path","mdiFloorPlan","InputProps","height","readOnly","InputLabelProps","shrink","floorName","accept","display","multiple","htmlFor","SaveButton","FloorDialog","floorPlan","floor","floorNr","floorUrl","floorPlanUpdload","url","onNumberChange","onNameChange","submitFloor","enqueueSnackbar","paddingLeft","buildingName","justify","sx","mdiStairs","Number","isInteger","parseInt","withSnackbar","BuildingFloors","openDialog","nr","planName","planUrl","uuidv4","addFloorToBuilding","building","selectFloor","closeDialog","bId","defaultValue","startAdornment","InputAdornment","position","endAdornment","classes","root","floors","map","f","key","selectDefaultFloor","defaultFloor","plan","selectedFloor","NewBuildingForm","handleBulidingNameChange","submitBuilding","submit","closeForm","alignItems","loadScript","Promise","resolve","reject","script","document","createElement","addEventListener","body","appendChild","RotatableOverlay","bounds","rot","onAdd","div","borderStyle","borderWidth","transform","rot_","img","image_","div_","getPanes","overlayLayer","draw","overlayProjection","getProjection","sw","fromLatLngToDivPixel","bounds_","getSouthWest","ne","getNorthEast","left","x","top","y","onRemove","parentNode","removeChild","map_","setMap","boundsNE","boundsSW","LocationMap","createRotationSlider","slider","min","max","rotation","initMap","window","google","maps","Map","getElementById","zoom","center","mapCenter","getCenterFromMarkers","markerNE","markerSW","neLat","lat","neLng","getPositionDifference","newPosition","prevPosition","nLat","nLng","handleMarkerDrag","overlay","getPosition","swLat","swLng","imageBounds","LatLngBounds","LatLng","centerPosition","markerCenter","setPosition","moveMarkersByDiff","latLngDiff","createDefaultNESW","getBounds","buildCustomOverlayView","prototype","OverlayView","Marker","resizeIcon","draggable","positionChangeIcon","addListener","inputBounds","floorOnMap","inputRotation","changeRotation","changeBounds","purge","addSlider","scriptLoad","centerChanged","setCenter","controls","ControlPosition","TOP_CENTER","pop","fetchProjects","a","fetchReferenceNodes","fetchBeaconTemplates","fetchReferenceNodeTemplates","fetchBeacons","fetchGateways","fetchGatewayTemplates","fetchLocations","fetchZones","fetchPolicies","fetchFirmwareVersions","refreshToken","CreateLocation","resetPurge","changeLocationName","lName","changeLocationDescription","lDescription","changeLocationAddress","lAddress","findGeoAdress","replace","xmlHttp","XMLHttpRequest","onreadystatechange","readyState","status","JSON","parse","responseText","results","geometry","location","send","addNewBuilding","lBuildings","concat","openBuildingForm","newBuildingOpen","closeBuildingForm","i","findIndex","b","forceUpdate","selectedBuildingId","floorId","buildings","forEach","j","newBuildings","_isMounted","submitLocation","postLocation","componentWillUnmount","EditFloorDialog","componentDidMount","DeleteDialog","paddingTop","deleteWarningMessage","DialogActions","onDialogClose","submitDelete","openCloseFloors","showFloors","openDeleteDialog","openEditDialog","openEdit","submitEditFloor","editBuildingFloor","openDelEdit","fId","el","currentFloorId","currentBuildingId","currentType","anchor","openDelEditBuilding","stopPropagation","anchorBuilding","closeDelEdit","deleteFloorOrBuilding","removeFloorBuilding","editFloorOrBuilding","Menu","anchorEl","Boolean","MenuItem","EditLocation","locationId","description","address","latitude","longitude","onFetchFailed","submitEditLocation","toDelete","editLocation","buildingId","splice","newDeleteData","BuildingFloorsEdit","put","putLocation","isCorrectRole","fab","bottom","right","uploadFab","DataTable","handleChangePage","page","handleChangeRowsPerPage","rowsPerPage","val","currentVal","onItemDelete","sendEmail","sendMessage","colorBasedOnTypeAndStatus","isAllowed","contentInfo","content","Table","TableHead","TableRow","header","TableCell","align","TableBody","slice","hover","onItemClick","Object","keys","includes","so","Checkbox","checked","send_status","aria-label","TablePagination","count","labelRowsPerPage","rowsPerPageOptions","onChangePage","onChangeRowsPerPage","AddFab","Fab","LocationsPanel","addNewLocation","Locations","deleteLocation","clickLocation","currLocId","history","match","fetchProjectLocations","exact","delete","clearLocationErrors","Dashboard","LoginLogoutButton","handleClick","logoutUser","reload","to","RefreshDialog","Timer","seconds","logoutAndReload","clearInterval","intervalVariable","updateTime","expiration","minutes","popupTime","setInterval","appendZero","Math","AppBarDrawer","handleDrawerOpenClose","RouteList","userRole","route","AppBar","classNames","appBar","elevation","Toolbar","menuButton","hide","grow","noWrap","LoginLogout","Divider","Drawer","drawer","drawerOpen","drawerClose","paper","toolbar","List","ListItem","onItemClicked","currentItem","listItemSelected","listItem","ListItemIcon","ListItemText","withStyles","zIndex","marginLeft","marginRight","flexGrow","flexShrink","drawerPaper","justifyContent","padding","mixins","transition","transitions","create","easing","sharp","duration","enteringScreen","leavingScreen","overflowX","breakpoints","up","borderRadius","IconSelector","FormControl","InputLabel","Select","l","DevicesMap","defaultCenter","addListenerOnce","onMapMounted","placeFloor","mainMarker","gatewayMarkers","gatewayMarker","rnMarkers","rnMarker","placeMarkers","setAnimation","Animation","BOUNCE","pos","marker","refreshMap","isValidLat","isValidLng","CreateGateway","onFloorSelect","shownGateways","filter","gateway","relationships","shownReferenceNodes","referenceNode","_mounted","currentFloor","onNamechange","gatewayName","onTemplateChange","currentTemplateId","onPositionChange","fetchProjectGateways","fetchProjectReferenceNodes","fetchProjectGatewayTemplates","submitGateway","templateId","postNewGateway","onTextFieldPostionChange","currentState","parseFloat","postion","isNaN","labelWidth","mdiFileDocument","postGateway","EditGateway","gatewayId","_mapMounted","gatewayTemplate","setFloor","updateGateway","latInput","lngInput","_first","patch","patchGateway","UploadMacFilters","useSelector","Tooltip","title","GatewayPanel","uploadMac","addNewGateway","Gateways","_interval","deleteGateway","updateGatewaysWithBeaonsMac","editGateway","currGatewayId","sendEmailMessage","clearGatewayErrors","CreateBeacon","fetchProjectBeaconTemplates","submitBeacons","iconUrl","MAC","mac","postBeacons","onMACchange","mdiTagTextOutline","postBeacon","EditBeacon","beaconId","beaconTemplate","editBeacon","patchBeacon","BeaconsPanel","openCreate","Beacons","currBeaconId","deleteBeacon","fetchProjectBeacons","deleteBeacons","clearBeaconErrors","CreateTemplate","submitTemplate","dataGT","ssid","postGatewayTemplate","dataBT","defaultIcon","defaultIconUrl","postBeaconTemplate","dataRNT","interval","postReferenceNodeTemplate","validateData","onTypeChange","security","onSecChange","onIntervalChange","onSSIDChange","onPasswordChange","typeData","EditTemplate","urlGT","onfetchError","urlBT","urlRNT","patchGatewayTemplate","patchBeaconTemplate","patchReferenceNodeTemplate","TemplatePanel","Templates","currTemplateType","deleteReferenceNodeTemplates","deleteBeaconTemplates","deleteGatewayTemplates","fetchTemplates","rnt","gt","bea","IconMarker","latlng","imageSrc","prepareContent","overlayMouseTarget","textWindow","InfoWindow","pixelOffset","getMarker","self","point","latlng_","addDomListener","trigger","isInfoWindowOpen","getMap","gatewayInfoContent","TrackingMap","streetViewControl","border","divDevices","checkboxDevices","onclick","toggleDevicesVisibility","labelDevices","innerHTML","divZones","checkboxZones","toggleZonesVisibility","labelZones","LEFT_BOTTOM","deviceVisible","purgeDevices","placeDevices","zoneVisible","purgeZones","placeZones","purgeOverlay","purgeBeacons","beaconMarkers","placeOrUpdateBeacons","beacon","placed","Size","set","infowindow","rn","visible","points","array","polygon","Polygon","paths","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","polygons","setMapZoom","setZoom","componentDidUpdate","mapSetCenter","currentBeacons","OutlinedSelect","labelId","FilterTextFiled","handleChange","beaconList","currentTarget","onChooseBeacon","onBeaconSelect","handleClickAway","Popper","placement","ClickAwayListener","onClickAway","Paper","MenuList","d","k","Loader","CircularProgress","Tracking","obj","locationsMeta","mapMounted","showDefaultFloor","defId","defaultFloorId","isComponentReady","dataFetched","allowFetch","mqttWebsocket","end","connectMqtt","on","subscribe","topic","receiveMessage","toString","messData","beaconFilterId","centerMapOnFoundBeacon","index","arr","shownBeacons","beaconTemplateFilterId","clearDevices","clearBeacons","resetBeacons","beaconLocations","Array","onCertainBeaconSelect","uuid","onCertainBeaconTypeSelect","beaconName","onFilterNameChange","appendList","beaconNames","beaconData","newBeaconData","strLen","substring","chooseBeacon","clearFilter","optionalCenter","shownZones","zone","purgePlan","shownRn","mqtt","fetchProjectDevices","TrackingHistoryMap","markers","useRef","beaconPath","queryData","useEffect","current","fetchPosition","markerPosition","removeLine","setMapOnAll","addMarker","addTrace","n_values","startTime","endTime","lastTime","traceMark","Polyline","geodesic","TextMaskCustom","inputRef","other","ref","inputElement","mask","placeholderChar","showMask","DatePicker","isDate","handleChangeStartTime","inputComponent","handleChangeEndTime","useStyles","makeStyles","formControl","selectEmpty","marginTop","TrackingHistory","useState","setStart","setEnd","useSnackbar","availableBeacon","setAvailableBeacon","period","number","setValues","useDispatch","fetchTime","time","newest","oldest","isNumber","start","Date","validateDate","v","entries","CreateReferenceNode","onMacChange","fetchProjectReferenceNodeTemplates","submitReferenceNode","postReferenceNode","EditReferenceNode","referenceNodeId","referenceNodeTemplate","onFetchError","patchReferenceNode","mounted","ReferenceNodesPanel","addNewReferenceNode","ReferenceNodes","deleteReferenceNode","editReferenceNode","clearReferenceNodeErrors","CreateProject","fetchFirmware","onDescriptionChange","submitProject","algorithm","firmwareId","events","users","postProject","onAlgChange","onUserAdd","clearUser","ind","newUsers","onUserEmailChange","onUserRoleChange","onFirmwareChange","isProjectValid","algorithmData","userRoles","user","EditProject","members","firmwareVersion","newMembers","patchProject","onMemberProjectRemoval","usr","newMemberEmailChange","newMemberRoleChange","member","ChangePassDialog","oldPassword","onOldPassChange","newPassword","onNewPassChange","copyPassword","onCopyPassChange","onPassChangeSubmit","Personal","passwordChanged","oldPass","newPass","patchUser","copyPass","onLangChange","newLanguage","passChangeSubmit","mail","Settings","closeDeleteDialog","projectToDeleteId","onProjectChange","selectCurrentProject","onProjectDelete","submitDeleteProject","deleteProject","onProjectEdit","roleInCurrentProject","onTabChange","newValue","tabValue","addNewProject","Tabs","borderBottom","textColor","Tab","direction","ZoneMap","placeDM","drawingManager","drawing","DrawingManager","drawingControl","drawingControlOptions","drawingModes","polygonOptions","editable","setPolygon","closeDM","placeZone","EditZone","zoneId","submitZone","coords","getPath","getArray","last","coord","patchZone","ZoneCreationMap","purgePolygon","CreateZone","postZone","ZonesPanel","Zones","currentZoneId","deleteZone","fetchProjectZones","clearZonesErros","Selector","OutlinedInput","ConfigurationDialog","parsedHeaders","contentType","stringify","onCTChange","onURLChange","onBodyChange","addNewHeader","clearHeader","newHeaders","submitWebhook","onHeaderChange","actions","onHeaderValChange","multiline","rows","BeaconsActionsAndRules","beaconChange","onBeaconChange","openWebhookDialog","whData","closeWebhookDialog","onWebhookChange","chosenBeacons","geoTriggerData","onTriggerChange","onZoneChange","tempTriggerData","onValueChange","unitData","onUnitChange","unit","clearBeacon","addNewBeacon","actionData","onActionChange","actionType","onEmailChange","reqData","clearAction","addNewAction","CreatePolicy","newBeacons","newActions","isPolicyValid","emptyFlag","submitPolicy","postPolicy","typesData","EditPolicy","policyId","patchPolicy","PoliciesPanel","Policies","deletePolicy","deleteProjectPolicy","currentPolicyId","fetchProjectPolicies","clearPoliciesErrors","App","ready","onListItemClicked","getItem","projId","r","userData","authorizeRefreshedUser","infoData","logError","clearLogErrors","locError","clearLocErrors","gatewaysError","clearGatewaysError","beaconsError","clearBeaconsError","refNodesError","clearRefNodesError","zoneError","clearZoneError","projError","clearProjError","policieError","clearPolicyError","CssBaseline","sendGatewayStatus","withRouter","hostname","resources","en","translation","pl","use","initReactI18next","init","interpolation","escapeValue","middleware","applyMiddleware","thunk","store","createStore","rootReducer","composeWithDevTools","ReactDOM","render","maxSnack","navigator","serviceWorker","registration","unregister"],"mappings":"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","file":"static/js/main.22b3fe72.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/ResizeIcon.7443203f.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABmJLR0QA/wD/AP+gvaeTAAAAc0lEQVRYhe3WsQmAQBBE0T2xIMESLj2wSCsQDoyMTRTsSBs4zmCC3eC/Cj5MMmYAutK6X693RM9oZrbk2bujaTtuG7wj/hCoIlBFoIpAFYEqAlXpzDn+3ZpK8e5oemqNPzGBKgJVBKoIVBGoIlAV/m4B3j7Ebw39nQ7zXAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/PositionChange.94f51477.svg\";","import axios from \"axios\"\n\nconst initialState = {\n userLoggedIn: false,\n token: null,\n username: null,\n isSuperAdmin: false,\n email: null,\n language: null,\n errors: []\n}\n\nexport default function Login(state = initialState, action) {\n if(action.type === 'LOGIN_USER'){\n // Authorization.setToken(action.payload.data.data.token)\n axios.defaults.headers.common['Authorization'] = 'Bearer ' + action.payload.data.data.token;\n sessionStorage.setItem('token', action.payload.data.data.token);\n return{\n ...state,\n errors: [],\n userLoggedIn: true,\n username: action.payload.data.data.username,\n email: action.payload.data.data.email,\n language: action.payload.data.data.language,\n token: action.payload.data.data.token,\n isSuperAdmin: action.payload.data.data.isSuperAdmin\n }\n }\n if(action.type === 'ERROR_LOGIN_USER'){\n let errors = []\n if(action.payload){\n errors.push({type: \"error\", notifyKey: action.payload.data})\n return{\n ...state,\n errors: errors\n }\n }\n else{\n errors.push({type: \"error\", notifyKey: \"snackbar.loginConnection\"})\n return{\n ...state,\n errors: errors\n }\n }\n }\n if(action.type === \"LOGOUT_USER\"){\n sessionStorage.clear();\n return {\n ...state,\n username: null,\n userLoggedIn: false,\n token: null,\n isSuperAdmin: false\n }\n }\n if(action.type === \"FETCH_USER\"){\n return {\n ...state,\n username: action.payload.data.username,\n email: action.payload.data.email,\n language: action.payload.data.language\n }\n }\n if(action.type === \"FETCH_USER_FAILURE\"){\n return {\n ...state\n }\n }\n if(action.type === \"LOGINS_CLEAR_ERRORS\"){\n return{\n ...state,\n errors: []\n }\n }\n if(action.type === \"PATCH_USER\"){\n return {\n ...state,\n errors: [{type: \"info\", notifyKey: \"snackbar.updateUserPassword\"}]\n }\n }\n if(action.type === \"PATCH_USER_FAILURE\"){\n return {\n ...state,\n errors: [{type: \"error\", notifyKey: \"snackbar.updateUserPasswordError\"}]\n }\n }\n\n return state\n}\n ","const initialState = {\n locations: [],\n metadata: {},\n currentLoc: [],\n notices: []\n}\n\nexport default function Locations(state = initialState, action) {\n if (action.type === 'FETCH_LOCATIONS'){\n return {\n ...state,\n locations: action.payload.data,\n notices: []\n }\n }\n if (action.type === 'FETCH_LOCATIONS_META'){\n return {\n ...state,\n metadata: action.payload.metadata,\n notices: []\n }\n }\n if (action.type === 'FETCH_LOCATIONS_FAILURE'){\n return {\n ...state,\n locations: [],\n metadata: {},\n notices: [{type: \"error\", notifyKey: \"snackbar.locationFetchError\"}]\n }\n }\n if(action.type === 'LOCATION_CLEAR_NOTICES')\n {\n return{\n ...state,\n notices: []\n }\n }\n if (action.type === 'FETCH_LOCATION_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.locationFetchSingleError\"}]\n }\n }\n\n if (action.type === 'DELETE_LOCATION'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.locationDeleteSuccess\"}]\n }\n }\n if (action.type === 'DELETE_LOCATION_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.locationDeleteError\"}]\n }\n }\n\n if (action.type === 'POST_LOCATIONS_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.locationPostError\"}]\n }\n }\n if (action.type === 'POST_LOCATIONS'){\n return {\n ...state,\n notices: [{type: \"success\", notifyKey: \"snackbar.locationPostSuccess\"}]\n }\n }\n\n if (action.type === 'UPDATE_LOCATION'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.locationPutSuccess\"}]\n }\n }\n if (action.type === 'UPDATE_LOCATION_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.locationPutError\"}]\n }\n }\n if (action.type === 'SELECT_PROJECT'){\n return {\n ...state,\n metadata: {}\n }\n }\n \n return state\n}\n ","const initialState = {\n userProjects: [],\n firmwares: [],\n currentProjectId: null,\n currentRole: \"\",\n notices: []\n}\n\nexport default function Projects(state = initialState, action) {\n if(action.type === 'SELECT_PROJECT'){\n if(state.currentProjectId !== action.payload.projectId) {\n sessionStorage.setItem('selectedProject', action.payload.projectId)\n return {\n ...state,\n currentProjectId: action.payload.projectId,\n currentRole: action.payload.role,\n notices: [{type: \"info\", notifyKey: \"snackbar.selectActiveProject\"}]\n }\n }\n else return { ...state };\n }\n if(action.type === 'FETCH_PROJECTS_FIRST'){\n let projects = action.payload.data.data\n if( projects.length > 0 ){\n sessionStorage.setItem('selectedProject', projects[0].id)\n return {\n ...state,\n currentProjectId: projects[0].id,\n currentRole: projects[0].attributes.role,\n userProjects: projects \n }\n }\n else\n return {\n ...state,\n userProjects: projects\n }\n }\n if(action.type === 'SET_PREVOUSLY_ACTIVE_PROJECT'){\n let proj = state.userProjects.find(project => project.id === action.payload)\n if(proj){\n return { ...state, currentProjectId: proj.id, currentRole: proj.attributes.role}\n }\n else{\n return { ...state }\n }\n }\n if(action.type === 'FETCH_PROJECTS'){\n let projects = action.payload.data\n return {\n ...state,\n userProjects: projects,\n notices: []\n }\n }\n if(action.type === 'FETCH_PROJECTS_FAILURE'){\n return {\n ...state,\n userProjects: [],\n currentProjectId: null,\n notices: [{type: \"error\", notifyKey: \"snackbar.projectsFetchError\"}]\n }\n }\n if (action.type === 'FETCH_PROJECT_FAILURE')\n {\n return{\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.projectFetchError\"}]\n }\n }\n\n if (action.type === 'POST_PROJECTS')\n {\n return{\n ...state,\n notices: [{type: \"success\", notifyKey: \"snackbar.projectPostSuccess\"}]\n }\n }\n if (action.type === 'POST_PROJECTS_FAILURE')\n {\n return{\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.projectPostError\"}]\n }\n }\n\n if (action.type === 'DELETE_PROJECTS')\n {\n return{\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.projectDeleteSuccess\"}]\n }\n }\n if (action.type === 'DELETE_PROJECTS_FAILURE')\n {\n return{\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.projectDeleteError\"}]\n }\n }\n\n\n if (action.type === 'PATCH_PROJECT')\n {\n return{\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.projectPatchSuccess\"}]\n }\n }\n if (action.type === 'PATCH_PROJECT_FAILURE')\n {\n return{\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.projectPatchError\"}]\n }\n } \n\n if (action.type === 'FETCH_FIRMWARE'){\n let firmwares = action.payload.data;\n return{\n ...state,\n firmwares: firmwares\n }\n }\n\n if (action.type === 'FETCH_FIRMWARE_FAILURE'){\n return{\n ...state,\n firmwares: [],\n notices: [{type: \"error\", notifyKey: \"snackbar.firmwareFetchError\"}]\n }\n }\n \n if (action.type === 'PROJECTS_CLEAR_NOTICES')\n {\n return{\n ...state,\n notices: []\n }\n }\n return state\n}\n ","const initialState = {\n gateways: [],\n gatewayTemplates: [],\n notices: [],\n currentGateway: [],\n isOpened: false\n}\n\nexport default function Gatwewats(state = initialState, action) {\n\n if(action.type === 'FETCH_GATEWAYS'){\n return {\n ...state,\n gateways: action.payload.data,\n notices: []\n }\n }\n if (action.type === 'FETCH_GATEWAY'){\n return {\n ...state,\n currentGateway: action.payload.data\n }\n }\n if (action.type === 'FETCH_GATEWAY_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.gatewayFetchError\"}]\n }\n }\n if (action.type === 'FETCH_GATEWAYS_FAILURE'){\n return {\n ...state,\n gateways: [],\n notices: [{type: \"error\", notifyKey: \"snackbar.gatewaysFetchError\"}]\n }\n }\n\n if(action.type === 'GATEWAY_CLEAR_NOTICES')\n {\n return {\n ...state,\n notices: []\n }\n }\n \n if(action.type === 'FETCH_GATEWAY_TEMPLATES'){\n return {\n ...state,\n gatewayTemplates: action.payload.data\n }\n }\n\n if (action.type === 'FETCH_GATEWAY_TEMPLATES_FAILURE'){\n return {\n ...state,\n gatewayTemplates: [],\n notices: [{type: \"error\", notifyKey: \"snackbar.gatewaysTemFetchError\"}]\n }\n }\n\n if (action.type === 'GATEWAY_STATUS_SEND'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"Gateway status has been send\"}]\n }\n }\n\n if (action.type === 'GATEWAY_STATUS_SEND_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"Could not send gateway status\"}]\n }\n }\n\n if (action.type === 'POST_GATEWAYS'){\n return {\n ...state,\n notices: [{type: \"success\", notifyKey: \"snackbar.gatewaysPostSuccess\"}]\n }\n }\n\n if (action.type === 'POST_GATEWAYS_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.gatewaysPostError\"}]\n }\n }\n if (action.type === 'GATEWAY_STATUS_SEND'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"Gateway Status Checked\"}]\n }\n }\n if (action.type === 'DELETE_GATEWAY'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.gatewayDeleteSuccess\"}]\n }\n }\n if (action.type === 'DELETE_GATEWAY_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.gatewayDeleteError\"}]\n }\n }\n\n if (action.type === 'PATCH_GATEWAY'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.gatewayPatchSuccess\"}]\n }\n }\n if (action.type === 'PATCH_GATEWAY_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.gatewayPatchError\"}]\n }\n }\n\n // Templates\n if(action.type === 'POST_GATEWAY_TEMPLATES'){\n return {\n ...state,\n notices: [{type: \"success\", notifyKey: \"snackbar.gatewaysTemPostSuccess\"}]\n }\n }\n if (action.type === 'POST_GATEWAY_TEMPLATES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.gatewaysTemPostError\"}]\n }\n }\n if(action.type === 'PATCH_GATEWAY_TEMPLATES'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.gatewaysTemPatchSuccess\"}]\n }\n }\n if (action.type === 'PATCH_GATEWAY_TEMPLATES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.gatewaysTemPatchError\"}]\n }\n }\n if(action.type === 'DELETE_GATEWAY_TEMPLATES'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.gatewaysTemDeleteSuccess\"}]\n }\n }\n if (action.type === 'DELETE_GATEWAY_TEMPLATES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.gatewaysTemDeleteError\"}]\n }\n }\n\n if (action.type === 'FETCH_GATEWAY_TEMPLATE_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.gatewayTemFetchError\"}]\n }\n }\n\n return state\n}\n ","const initialState = {\n beacons: [],\n beaconTemplates: [],\n notices: [],\n}\n\nexport default function Beacons(state = initialState, action) {\n\n if(action.type === 'FETCH_BEACONS'){\n return {\n ...state,\n beacons: action.payload.data,\n notices: []\n }\n } \n if (action.type === 'FETCH_BEACONS_FAILURE'){\n return {\n ...state,\n beacons: [],\n notices: [{type: \"error\", notifyKey: \"snackbar.beaconsFetchError\"}]\n }\n }\n\n if (action.type === 'FETCH_BEACON_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.beaconFetchError\"}]\n }\n }\n\n if (action.type === 'BEACONS_CLEAR_NOTICES'){\n return {\n ...state,\n notices: []\n }\n }\n\n if(action.type === 'FETCH_BEACONS_TEMPLATES'){\n return {\n ...state,\n beaconTemplates: action.payload.data,\n }\n }\n\n if (action.type === 'FETCH_BEACONS_TEMPLATES_FAILURE'){\n return {\n ...state,\n beaconTemplates: [],\n notices: [{type: \"error\", notifyKey: \"snackbar.beaconsTemFetchError\"}]\n }\n }\n\n if (action.type === 'POST_BEACONS'){\n return {\n ...state,\n notices: [{type: \"success\", notifyKey: \"snackbar.beaconsPostSuccess\"}]\n }\n }\n if (action.type === 'POST_BEACONS_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.beaconsPostError\"}]\n }\n }\n\n if (action.type === 'DELETE_BEACONS'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.beaconsDeleteSuccess\"}]\n }\n }\n if (action.type === 'DELETE_BEACONS_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.beaconsDeleteError\"}]\n }\n }\n\n if (action.type === 'PATCH_BEACON'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.beaconsPatchSuccess\"}]\n }\n }\n if (action.type === 'PATCH_BEACON_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.beaconsPatchError\"}]\n }\n }\n\n // Beacon Templates\n if (action.type === 'POST_BEACON_TEMPLATES'){\n return {\n ...state,\n notices: [{type: \"success\", notifyKey: \"snackbar.beaconTemPostSuccess\"}]\n }\n }\n if (action.type === 'POST_BEACON_TEMPLATES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.beaconTemPostError\"}]\n }\n }\n if (action.type === 'PATCH_BEACON_TEMPLATES'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.beaconTemPatchSuccess\"}]\n }\n }\n if (action.type === 'PATCH_BEACON_TEMPLATES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.beaconTemPatchError\"}]\n }\n }\n if (action.type === 'DELETE_BEACON_TEMPLATES'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.beaconTemDeleteSuccess\"}]\n }\n }\n if (action.type === 'DELETE_BEACON_TEMPLATES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.beaconTemDeleteError\"}]\n }\n }\n\n if (action.type === 'FETCH_BEACON_TEMPLATE_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.beaconTemFetchError\"}]\n }\n }\n\n return state\n}\n ","const initialState = {\n referenceNodes: [],\n referenceNodeTemplates: [],\n notices: [],\n}\n\nexport default function ReferenceNodesReducer(state = initialState, action) {\n\n if(action.type === 'FETCH_REFERENCE_NODES'){\n return {\n ...state,\n referenceNodes: action.payload.data,\n notices: []\n }\n }\n if (action.type === 'FETCH_REFERENCE_NODES_FAILURE'){\n return {\n ...state,\n referenceNodes: [],\n notices: [{type: \"error\", notifyKey: \"snackbar.refNodesFetchErrors\"}]\n }\n }\n\n if(action.type === 'FETCH_REFERENCE_NODE_TEMPLATES'){\n return {\n ...state,\n referenceNodeTemplates: action.payload.data\n }\n }\n if(action.type === 'FETCH_REFERENCE_NODE_TEMPLATES_FAILURE'){\n return {\n ...state,\n referenceNodeTemplates: [],\n notices: [{type: \"error\", notifyKey: \"snackbar.refNodesTemFetchErrors\"}]\n }\n }\n\n if (action.type === 'POST_REFERENCE_NODES'){\n return {\n ...state,\n notices: [{type: \"success\", notifyKey: \"snackbar.refNodesPostSuccess\"}]\n }\n }\n if (action.type === 'POST_REFERENCE_NODES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.refNodesPostErrors\"}]\n }\n }\n\n if (action.type === 'DELETE_REFERENCE_NODES'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.refNodesDeleteSuccess\"}]\n }\n }\n if (action.type === 'DELETE_REFERENCE_NODES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.refNodesDeleteErrors\"}]\n }\n }\n\n if (action.type === 'PATCH_REFERENCE_NODE'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.refNodesPatchSuccess\"}]\n }\n }\n if (action.type === 'PATCH_REFERENCE_NODE_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.refNodesPatchErrors\"}]\n }\n }\n\n if (action.type === 'FETCH_REFERENCE_NODE_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.refNodeFetchErrors\"}]\n }\n }\n\n if (action.type === 'REFERENCE_NODE_CLEAR_NOTICES')\n {\n return {\n ...state,\n notices: []\n }\n }\n\n // RN TEMPLATES\n if (action.type === 'POST_REFERENCE_NODE_TEMPLATES'){\n return {\n ...state,\n notices: [{type: \"success\", notifyKey: \"snackbar.refNodeTemPostSuccess\"}]\n }\n }\n if (action.type === 'POST_REFERENCE_NODE_TEMPLATES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.refNodeTemPostError\"}]\n }\n }\n if (action.type === 'PATCH_REFERENCE_NODE_TEMPLATES'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.refNodeTemPatchSuccess\"}]\n }\n }\n if (action.type === 'PATCH_REFERENCE_NODE_TEMPLATES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.refNodeTemPatchError\"}]\n }\n }\n if (action.type === 'DELETE_REFERENCE_NODE_TEMPLATES'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.refNodeTemDeleteSuccess\"}]\n }\n }\n if (action.type === 'DELETE_REFERENCE_NODE_TEMPLATES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.refNodeTemDeleteError\"}]\n }\n }\n\n if (action.type === 'FETCH_REFERENCE_NODE_TEMPLATE_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.refNodeTemFetchError\"}]\n }\n }\n\n return state\n}\n ","const initialState = {\n zones: [],\n notices: [],\n}\n\nexport default function ReferenceNodesReducer(state = initialState, action) {\n\n if(action.type === 'ZONES_CLEAR_NOTICES')\n { \n return {\n ...state,\n notices: []\n\n }\n }\n\n if(action.type === 'FETCH_ZONES'){\n return {\n ...state,\n zones: action.payload.data,\n notices: []\n }\n }\n if (action.type === 'FETCH_ZONES_FAILURE'){\n return {\n ...state,\n zones: [],\n notices: [{type: \"error\", notifyKey: \"snackbar.zonesFetchError\"}]\n }\n }\n\n if (action.type === 'FETCH_ZONE_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.zoneFetchError\"}]\n }\n }\n\n if (action.type === 'POST_ZONES'){\n return {\n ...state,\n notices: [{type: \"success\", notifyKey: \"snackbar.zonesPostSuccess\"}]\n }\n }\n if (action.type === 'POST_ZONES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.zonesPostError\"}]\n }\n }\n\n if (action.type === 'DELETE_ZONE'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.zoneDeleteSuccess\"}]\n }\n }\n if (action.type === 'DELETE_ZONE_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.zoneDeleteError\"}]\n }\n }\n\n if (action.type === 'PATCH_ZONE'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.zonePatchSuccess\"}]\n }\n }\n if (action.type === 'PATCH_ZONE_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.zonePatchError\"}]\n }\n }\n\n\n return state\n}\n ","const initialState = {\n policies: [],\n notices: [],\n}\n\nexport default function PoliciesReduccer(state = initialState, action) {\n\n if(action.type === 'FETCH_POLICIES'){\n return {\n ...state,\n policies: action.payload.data,\n notices: []\n }\n }\n if (action.type === 'POLICIES_CLEAR_NOTICES')\n {\n return{\n ...state,\n notices: []\n }\n }\n if (action.type === 'FETCH_POLICIES_FAILURE'){\n return {\n ...state,\n policies: [],\n notices: [{type: \"error\", notifyKey: \"snackbar.policiesFetchError\"}]\n }\n }\n\n if (action.type === 'FETCH_POLICY_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.policyFetchError\"}]\n }\n }\n\n if (action.type === 'POST_POLICIES'){\n return {\n ...state,\n notices: [{type: \"success\", notifyKey: \"snackbar.policyPostSuccess\"}]\n }\n }\n if (action.type === 'POST_POLICIES_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.policyPostError\"}]\n }\n }\n\n if (action.type === 'DELETE_POLICY'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.policyDeleteSuccess\"}]\n }\n }\n if (action.type === 'DELETE_POLICY_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.policyDeleteError\"}]\n }\n }\n\n if (action.type === 'PATCH_POLICY'){\n return {\n ...state,\n notices: [{type: \"info\", notifyKey: \"snackbar.policyPatchSuccess\"}]\n }\n }\n if (action.type === 'PATCH_POLICY_FAILURE'){\n return {\n ...state,\n notices: [{type: \"error\", notifyKey: \"snackbar.policyPatchError\"}]\n }\n }\n\n\n return state\n}\n ","const initialState = {\n fetched: false\n}\n\nexport default function DataFetchReducer(state = initialState, action) {\n\n switch(action.type){\n case \"DATA_FETCHED\":\n return {\n ...state,\n fetched: true\n };\n case \"DATA_FETCHED_OUT\":\n return {\n ...state,\n fetched: false\n };\n default: return state;\n }\n}","import { combineReducers } from 'redux'\nimport {reducer as form } from 'redux-form'\nimport LoginReducer from './LoginReducer'\nimport LocationsReducer from './LocationsReducer'\nimport ProjectsReducer from './ProjectsReducer'\nimport GatewayReducer from './GatewaysReducer'\nimport BeaconReducer from './BeaconsReducer'\nimport ReferenceNodesReducer from './RnReducer'\nimport ZonesReducer from './ZonesReducer'\nimport PoliciesReducer from './PoliciesReducer'\nimport DataFetchReducer from './DataFetch'\n\nexport default combineReducers({\n beacons: BeaconReducer,\n gateways: GatewayReducer,\n locations: LocationsReducer,\n login: LoginReducer,\n projects: ProjectsReducer,\n referenceNodes: ReferenceNodesReducer,\n zones: ZonesReducer,\n policies: PoliciesReducer,\n devices: DataFetchReducer,\n form: form\n})","import React from 'react'\nimport {Field, reduxForm } from 'redux-form'\nimport Button from '@material-ui/core/Button';\nimport { Typography, TextField, Link } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nconst renderTextField = ({\n input,\n label,\n meta: { touched, error },\n ...custom\n }) => (\n \n )\n\nconst LoginForm = (props) => {\n\n const openRegister = (e) => {\n e.preventDefault();\n props.handleOpen();\n } \n\n const { handleSubmit, pristine, submitting } = props\n const { t } = useTranslation();\n return(\n
\n\n \n \n \n
\n \n
\n {/* {errors.map(error => {error})} */}\n {t(\"login.noAccount\")} ?\n openRegister(e)} color=\"secondary\" underline=\"none\"> {t(\"login.signUp\")}\n \n e.preventDefault} color=\"secondary\" underline=\"none\"> {t(\"login.forgotPassword\")} ? \n \n )\n}\n\nexport default reduxForm({\n form: 'login',\n})(LoginForm)","import React from 'react';\nimport { Button } from \"@material-ui/core\";\nimport { useTranslation } from 'react-i18next';\n\nlet cancelStyle = {\n width: 80,\n background: '#7a7a7a',\n color: 'white',\n};\n\n\nfunction CancelButton (props){\n const { t } = useTranslation();\n return(\n \n )\n}\n\nexport default CancelButton;","import React, {Component} from 'react'\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\nimport axios from 'axios'\nimport CancelButton from '../Gui/CancelButton';\nimport { DialogContent, Typography } from '@material-ui/core';\nimport { withTranslation } from 'react-i18next';\n\nclass RegisterForm extends Component{\n constructor(){\n super()\n this.state = {\n textFieldUserName: '',\n textFieldPassword: '',\n textFieldEmailAdress: '',\n errorsNetwork: [],\n confirmMessage: false\n };\n \n }\n\n handleSubmit = (e) =>{\n\n e.preventDefault()\n\n let url = process.env.REACT_APP_API_URL+'users/'\n let data = { \n username: this.state.textFieldUserName,\n password: this.state.textFieldPassword,\n email: this.state.textFieldEmailAdress\n }\n axios.post(url, data)\n .then(function (response){\n this.setState({\n confirmMessage: true\n })\n setTimeout(function(){\n\n this.props.handleClose();\n }.bind(this), 3000)\n \n \n }.bind(this))\n .catch(function(error){\n\n this.setState({\n errorsNetwork: [error.message],\n confirmMessage: false\n },)\n \n }.bind(this));\n }\n\n handleTextFildChangeLogin = (e) =>\n {\n this.setState({\n textFieldUserName: e.target.value\n })\n\n }\n\n handleTextFieldChangePassword = (e) =>\n {\n this.setState({\n textFieldPassword: e.target.value\n })\n }\n\n handleTextFieldChangeEmailAdress = (e) =>\n {\n this.setState({\n textFieldEmailAdress: e.target.value,\n }) \n }\n\n validateEmail = () =>\n {\n const re = /^\\w+([.-]?\\w+)@\\w+([.-]?\\w+)(\\.\\w{2,3})+$/;\n let boolEmail = re.test(String(this.state.textFieldEmailAdress).toLowerCase())\n\n return !boolEmail\n }\n\n validateUserName = () => {\n\n let name = this.state.textFieldUserName\n if(name.length >= 5){\n\n return false\n }\n else{\n\n return true\n }\n }\n\n validatePassword = () => {\n let password = this.state.textFieldPassword\n if(password.length >= 5){\n\n return false\n }\n else{\n\n return true\n }\n\n }\n render(){\n \n let isUserValid = this.validateUserName();\n let isPasswordValid = this.validatePassword();\n let isEmailValid = this.validateEmail();\n const { t } = this.props;\n return(\n \n
\n \n \n \n \n \n {this.state.confirmMessage ? \"Succeed !\" : this.state.errorsNetwork } \n \n
\n );\n }\n}\nexport default withTranslation()(RegisterForm);","import React, {Component} from 'react'\nimport Button from '@material-ui/core/Button';\nimport { withTranslation } from 'react-i18next';\nimport eng_flag from '../../images/eng_flag.png';\nimport pl_flag from '../../images/pl_flag.png';\n\nclass LanguageForm extends Component{\n \n handleLanguageChange = (lng) => {\n\n this.props.i18n.changeLanguage(lng)\n }\n\n render(){\n\n const button_style = {\n maxWidth: '45px',\n maxHeight: '45px',\n minWidth: '45px', \n minHeight: '45px',\n float: 'right',\n margin: '5px'\n };\n\n return(\n
\n \n \n
\n\n\n )\n }\n}\nexport default withTranslation()(LanguageForm);","import React, {Component} from 'react'\nimport LoginForm from './LoginForm'\nimport { connect } from 'react-redux'\nimport axios from 'axios';\nimport \"./Login.css\"\nimport { Typography, Dialog } from '@material-ui/core';\nimport RegisterForm from '../Register/RegisterForm'\nimport { withTranslation } from 'react-i18next';\nimport LanguageForm from '../Language/LanguageForm.js'\n\nclass Login extends Component{\n constructor(){\n super()\n this.state = {\n openLoginWindow: false,\n };\n this.handleSubmit = this.handleSubmit.bind(this)\n }\n\n handleSubmit(e){\n e.preventDefault()\n let loginValues = this.props.loginForm.values\n this.props.loginUser(loginValues)\n }\n\n openRegisterWindow = () => {\n this.setState({openLoginWindow: true}) \n };\n closeRegisterWindow = () => {\n this.setState({openLoginWindow: false})\n }\n\n render(){\n const { t } = this.props;\n return(\n
\n \n
\n

MPS

\n {t('dashboard.slogan')}\n
\n \n
\n \n \n \n
\n\n \n \n )\n }\n}\nconst mapStateToProps = (state) => {\n return {\n loggedIn: state.login.userLoggedIn,\n loginForm: state.form.login,\n errors: state.login.errors\n } \n}\n\nconst mapDispatchToProps = (dispatch) => {\n let url = process.env.REACT_APP_API_URL+'login'\n let projectUrl = process.env.REACT_APP_API_URL+'projects'\n return {\n loginUser: (userValues) => {\n axios.post(url, userValues)\n .then(res => dispatch({type: 'LOGIN_USER', payload: res }))\n .catch(err => dispatch({type: 'ERROR_LOGIN_USER', payload: err.response}))\n .then(res => axios.get(projectUrl).then(res => dispatch({type: 'FETCH_PROJECTS_FIRST', payload: res })))\n .catch(err => console.log(\"Error login\"))\n },\n }\n}\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(Login))","import { createMuiTheme } from '@material-ui/core/styles';\n\n\nexport const green = \"#4ac42d\";\nexport const gray = \"#7a7a7a\";\n\nexport const Theme = createMuiTheme({\n palette:{\n primary: {\n main: green,\n light: '#90f89e',\n contrastText: '#fff'\n },\n secondary: {\n light: '#ff3a2c',\n main: '#ff6450',\n dark: '#f85b51',\n contrastText: '#fff'\n },\n selected:{\n main: '#e7fef8'\n }\n },\n typography: {\n useNextVariants: true,\n button: {\n textTransform: 'none'\n },\n fontFamily: [\n 'Montserrat-Light',\n 'Montserrat-Regular',\n 'Audiowide-Regular'\n ].join(','),\n },\n // shadows: Array(25).fill('none') \n});\n\nexport const IstokTheme = createMuiTheme({\n palette:{\n primary: {\n main: green,\n light: '#90f89e',\n contrastText: '#fff'\n },\n secondary: {\n light: '#ff3a2c',\n main: '#ff6450',\n dark: '#f85b51',\n contrastText: '#fff'\n },\n selected:{\n main: '#e7fef8'\n }\n },\n typography: {\n useNextVariants: true,\n button: {\n textTransform: 'none'\n },\n fontFamily: [\n 'IstokWeb-Regular',\n // 'Audiowide-Regular'\n ].join(','),\n },\n // shadows: Array(25).fill('none') \n});\n\nexport const MontserratBoldTheme = createMuiTheme({\n palette:{\n primary: {\n main: green,\n light: '#90f89e',\n contrastText: '#fff'\n },\n secondary: {\n light: '#ff3a2c',\n main: '#ff6450',\n dark: '#f85b51',\n contrastText: '#fff'\n },\n selected:{\n main: '#e7fef8'\n }\n },\n typography: {\n useNextVariants: true,\n button: {\n textTransform: 'none'\n },\n fontFamily: [\n 'Montserrat-Bold',\n // 'Audiowide-Regular'\n ].join(','),\n },\n // shadows: Array(25).fill('none') \n});\n\n","import React, { Component } from \"react\";\nimport { Grid, IconButton, TextField } from \"@material-ui/core\";\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport { IstokTheme } from '../../themes/style'\n\nclass IconTextField extends Component{\n render(){\n return(\n \n \n \n \n \n {this.props.icon}\n \n \n \n \n \n \n \n \n );\n };\n};\n\nexport default IconTextField\n","import React, { Component } from 'react'\nimport Grid from '@material-ui/core/Grid'\nimport Button from '@material-ui/core/Button'\nimport { TextField } from '@material-ui/core'\nimport \"./Locations.css\"\nimport Icon from '@mdi/react';\nimport { mdiFloorPlan } from '@mdi/js';\nimport { gray } from \"../../themes/style\";\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport { IstokTheme } from '../../themes/style'\nimport { withTranslation } from 'react-i18next';\n\nclass FloorPlanUpload extends Component{\n\n fileSelectedHandler = (event) => {\n let image = event.target.files[0]\n let reader = new FileReader()\n \n reader.onload = (e) => {\n if(image.size < 2500000){\n this.props.setFloorPlan(image.name, e.target.result)\n }\n else{\n this.props.notify(\"Image is too large\");\n }\n }\n reader.readAsDataURL(event.target.files[0])\n }\n\n render(){\n let height = 36;\n const { t } = this.props\n return(\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n )\n }\n}\n\nexport default withTranslation()(FloorPlanUpload);","import React from 'react';\nimport { Button } from \"@material-ui/core\";\nimport { useTranslation } from 'react-i18next';\n\nfunction SaveButton(props) {\n const { t } = useTranslation();\n return(\n \n );\n};\n\nexport default SaveButton;","import React, { Component } from \"react\";\nimport { DialogContent, Grid, TextField, Typography } from \"@material-ui/core\";\nimport FloorPlanUpload from \"./FloorPlanUpload\";\nimport SaveButton from \"../Gui/SaveButton\";\nimport CancelButton from \"../Gui/CancelButton\";\nimport Icon from '@mdi/react';\nimport { mdiStairs } from '@mdi/js';\nimport { gray } from \"../../themes/style\";\nimport './Locations.css'\nimport { withSnackbar } from \"notistack\";\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport { IstokTheme } from '../../themes/style'\nimport { withTranslation } from 'react-i18next';\n\nclass FloorDialog extends Component{\n\n state = {\n floorPlan: this.props.floor ? this.props.floor.floorPlan : \"\",\n floorName: this.props.floor ? this.props.floor.floorName : \"\",\n floorNr: this.props.floor ? this.props.floor.floorNr : 0,\n floorUrl: this.props.floor ? this.props.floor.floorUrl :\"\",\n disabled: false\n }\n\n floorPlanUpdload = (name ,url) => {\n this.setState({floorPlan: name, floorUrl: url})\n };\n\n onNumberChange = (e) => {\n this.setState({floorNr: e.target.value})\n };\n\n onNameChange = (e) => {\n this.setState({floorName: e.target.value})\n };\n\n submitFloor = () => {\n this.setState({disabled: true})\n this.props.submitFloor(\n this.state.floorNr, \n this.state.floorName,\n this.state.floorPlan,\n this.state.floorUrl\n );\n }\n\n notify = (message) => {\n this.props.enqueueSnackbar(message, { \n variant: 'error',\n });\n }\n\n render(){\n const { t } = this.props\n let height = 36;\n let leftPadding = 20;\n return(\n \n \n {t(\"locations.updateFloorTitle\")}{this.props.buildingName}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0)\n } onClick={this.submitFloor} />\n \n \n \n \n \n \n \n \n \n \n );\n };\n};\n\nexport default withSnackbar(withTranslation()(FloorDialog));","import React, { Component } from \"react\";\nimport { Grid, TextField, InputAdornment, IconButton, Dialog } from \"@material-ui/core\";\nimport DomainIcon from '@material-ui/icons/Domain';\nimport AddCircleIcon from '@material-ui/icons/AddCircleOutline';\nimport MoreIcon from '@material-ui/icons/MoreVert';\nimport CheckIcon from '@material-ui/icons/Check';\nimport \"./Locations.css\";\nimport FloorDialog from \"./FloorDialog\";\nimport uuidv4 from \"uuid/v4\";\nimport Icon from '@mdi/react';\nimport { mdiStairs, mdiFloorPlan } from '@mdi/js';\nimport { gray, green } from \"../../themes/style\";\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport { IstokTheme } from '../../themes/style'\n\nclass BuildingFloors extends Component{\n\n constructor(){\n super();\n this.state ={\n open: false,\n };\n }\n\n openDialog = () => {\n this.setState({open: true});\n }\n\n submitFloor = (nr, name, planName, planUrl) => {\n let floor = {\n \"id\": uuidv4(),\n \"nr\": Number.parseInt(nr),\n \"name\": name,\n \"plan\": planName,\n \"planUrl\": planUrl,\n \"rotation\": 0,\n \"boundsNE\": {},\n \"boundsSW\": {},\n \"defaultFloor\": false\n };\n this.props.addFloorToBuilding(this.props.building.id, floor)\n this.props.selectFloor(this.props.building.id, floor);\n this.closeDialog();\n }\n\n closeDialog = () => {\n this.setState({open: false});\n }\n\n selectFloor = (bId, floor) => {\n this.props.selectFloor(bId, floor);\n };\n\n render(){\n return(\n \n \n \n \n \n \n \n ),\n endAdornment: (\n \n \n \n \n \n \n \n \n ),\n }}\n variant=\"outlined\"\n classes={{root: 'GrayTextField'}} />\n \n \n {this.props.building.floors.map(f=>\n \n \n \n this.selectFloor(this.props.building.id, f)} defaultValue={\"Nr: \"+f.nr +\" - \"+f.name} fullWidth\n InputProps={{\n startAdornment : (\n \n \n \n ),\n endAdornment: (\n \n {this.props.selectDefaultFloor(f.id)}}>\n \n \n \n \n \n \n {/* Tutaj na klikniecie trzeba stoppropagation */}\n \n \n \n ),\n readOnly: true,\n }}\n variant=\"outlined\"\n classes={this.props.selectedFloor ? (this.props.selectedFloor.id === f.id ? ({root: 'SelectedTextField'}):(null)): (null)} />\n \n \n )}\n \n \n \n \n \n \n );\n };\n};\n\nexport default BuildingFloors;\n","import React, { Component } from \"react\";\nimport { Grid, TextField } from \"@material-ui/core\";\nimport SaveButton from \"../Gui/SaveButton\";\nimport CancelButton from \"../Gui/CancelButton\";\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport { IstokTheme } from '../../themes/style'\nimport { withTranslation } from 'react-i18next';\n\nclass NewBuildingForm extends Component {\n\n constructor(){\n super();\n this.state = {\n disabled: true,\n name: \"\"\n };\n };\n\n handleBulidingNameChange = (e) => {\n this.setState({\n name: e.target.value\n });\n };\n\n submitBuilding = () => {\n this.props.submit(this.state.name);\n this.props.closeForm();\n };\n\n render(){\n const { t } = this.props\n return(\n \n \n \n \n \n \n \n \n \n \n \n \n 0} onClick={this.submitBuilding}/>\n \n \n \n );\n };\n};\n\nexport default withTranslation()(NewBuildingForm);","function loadScript(src) {\n return new Promise((resolve, reject) => {\n let script = document.createElement('script')\n script.src = src\n script.addEventListener('load', function() {\n resolve()\n })\n script.addEventListener('error', function(e) {\n console.log('error')\n reject(e)\n })\n document.body.appendChild(script);\n })\n}\n\nexport default loadScript","class RotatableOverlay{\n constructor(bounds, image, map, rot) {\n this.bounds_ = bounds\n this.image_ = image\n this.map_ = map\n this.rot_ = rot\n this.div_ = null\n this.setMap(map)\n\n this.boundsNE = null\n this.boundsSW = null\n }\n\n onAdd = () => {\n let div = document.createElement('div');\n div.style.borderStyle = 'none';\n div.style.borderWidth = '0px';\n div.style.position = 'absolute'; \n div.style.transform = 'rotate(' + this.rot_ + 'deg)';\n let img = document.createElement('img');\n img.src = this.image_;\n img.style.width = '100%';\n img.style.height = '100%';\n img.style.position = 'absolute';\n div.appendChild(img);\n this.div_ = div;\n let panes = this.getPanes();\n panes.overlayLayer.appendChild(div);\n }\n\n draw = () => {\n let overlayProjection = this.getProjection()\n\n let sw = overlayProjection.fromLatLngToDivPixel(this.bounds_.getSouthWest())\n let ne = overlayProjection.fromLatLngToDivPixel(this.bounds_.getNorthEast())\n\n let div = this.div_\n \n div.style.left = sw.x + 'px'\n div.style.top = ne.y + 'px'\n div.style.width = (ne.x - sw.x) + 'px'\n div.style.height = (sw.y - ne.y) + 'px'\n }\n\n onRemove = () => {\n this.div_.parentNode.removeChild(this.div_)\n this.div_ = null\n }\n}\n\nexport default RotatableOverlay;\n\n\n// TO MOZE DZIAŁAC DO SPRAWDZENIA : P\n// // class RotatableOverlay extends window.google.maps.OverlayView{\n\n// const createRotatabOverlay = ({ OverlayView = window.google.maps.OverlayView, ...args }) => {\n// class RotatableOverlay extends OverlayView{\n// constructor(bounds, image, map, rot) {\n// super()\n// this.bounds_ = bounds\n// this.image_ = image\n// this.map_ = map\n// this.rot_ = rot\n// this.div_ = null\n// this.setMap(map)\n\n// this.boundsNE = null\n// this.boundsSW = null\n// }\n\n// onAdd = () => {\n// let div = document.createElement('div');\n// div.style.borderStyle = 'none';\n// div.style.borderWidth = '0px';\n// div.style.position = 'absolute'; \n// div.style.transform = 'rotate(' + this.rot_ + 'deg)';\n// let img = document.createElement('img');\n// img.src = this.image_;\n// img.style.width = '100%';\n// img.style.height = '100%';\n// img.style.position = 'absolute';\n// div.appendChild(img);\n// this.div_ = div;\n// let panes = this.getPanes();\n// panes.overlayLayer.appendChild(div);\n// }\n\n// draw = () => {\n// let overlayProjection = this.getProjection()\n\n// let sw = overlayProjection.fromLatLngToDivPixel(this.bounds_.getSouthWest())\n// let ne = overlayProjection.fromLatLngToDivPixel(this.bounds_.getNorthEast())\n\n// let div = this.div_\n \n// div.style.left = sw.x + 'px'\n// div.style.top = ne.y + 'px'\n// div.style.width = (ne.x - sw.x) + 'px'\n// div.style.height = (sw.y - ne.y) + 'px'\n// }\n\n// onRemove = () => {\n// this.div_.parentNode.removeChild(this.div_)\n// this.div_ = null\n// }\n// }\n// //To see\n// return new RotatableOverlay(\n// args.bounds,\n// args.img,\n// args.map,\n// args.rot\n// );\n// }\n\n// export default createRotatabOverlay;","import React, { Component } from 'react'\nimport scriptLoad from '../../scriptLoader'\nimport resizeIcon from './ResizeIcon.svg'\nimport positionChangeIcon from './PositionChange.svg'\nimport RotatableOverlay from './RotatableOverlay'\n\nclass LocationMap extends Component{\n \n constructor(){\n super()\n this.rotation = 0\n this.map = null\n this.markerCenter = null\n this.markerNE = null\n this.markerSW = null\n this.overlay = null\n this.floorOnMap = false\n this.prevPosition = null\n this.slider = null\n this.addSlider = true\n }\n \n componentDidMount(){\n if(!(typeof window.google === 'object' && typeof window.google.maps === 'object')){\n scriptLoad(\"https://maps.googleapis.com/maps/api/js?key=\"+process.env.REACT_APP_GOOGLE_KEY+\"&v=3.exp&libraries=geometry,drawing,places\").then(res => this.initMap())\n }\n else{\n this.initMap()\n }\n\n }\n\n createRotationSlider = () => {\n let slider = document.createElement('input');\n slider.type = 'range';\n slider.min=0;\n slider.max=360;\n slider.value=this.props.floor.rotation;\n return slider\n }\n\n initMap = () => {\n this.map = new window.google.maps.Map(\n document.getElementById('googleMap'),\n {\n zoom: 19,\n center: this.props.mapCenter\n }\n )\n }\n\n getCenterFromMarkers = (markerNE, markerSW) => {\n let neLat = markerNE.lat()\n let neLng = markerNE.lng()\n \n let swLat = markerSW.lat()\n let swLng = markerSW.lng()\n\n return {lat: (neLat + swLat)/2, lng: (neLng + swLng)/2}\n }\n\n getPositionDifference = (newPosition, prevPosition) => {\n let nLat = newPosition.lat()\n let nLng = newPosition.lng()\n \n let pLat = prevPosition.lat()\n let pLng = prevPosition.lng()\n return {lat: (nLat - pLat), lng: (nLng - pLng)}\n }\n\n handleMarkerDrag = () => {\n this.overlay.setMap(null)\n let neLat = this.markerNE.getPosition().lat()\n let neLng = this.markerNE.getPosition().lng()\n\n let swLat = this.markerSW.getPosition().lat()\n let swLng = this.markerSW.getPosition().lng()\n\n let imageBounds = new window.google.maps.LatLngBounds(\n new window.google.maps.LatLng(swLat, swLng),\n new window.google.maps.LatLng(neLat, neLng)\n )\n \n let centerPosition = this.getCenterFromMarkers(this.markerNE.getPosition(), this.markerSW.getPosition())\n if(this.markerCenter)\n this.markerCenter.setPosition(centerPosition)\n\n this.overlay = new RotatableOverlay(imageBounds, this.props.floor.planUrl, this.map, this.props.floor.rotation)\n this.overlay.onAdd()\n }\n\n moveMarkersByDiff = (latLngDiff) => {\n let neLat = this.markerNE.getPosition().lat() + latLngDiff.lat\n let neLng = this.markerNE.getPosition().lng() + latLngDiff.lng\n\n let swLat = this.markerSW.getPosition().lat() + latLngDiff.lat\n let swLng = this.markerSW.getPosition().lng() + latLngDiff.lng\n\n this.markerNE.setPosition({lat: neLat, lng: neLng})\n this.markerSW.setPosition({lat: swLat, lng: swLng})\n }\n\n createDefaultNESW = () => {\n let bounds = this.map.getBounds()\n let ne = {lat: bounds.getNorthEast().lat(), lng: bounds.getNorthEast().lng()}\n let sw = {lat: bounds.getSouthWest().lat(), lng: bounds.getSouthWest().lng()}\n \n let center = this.getCenterFromMarkers(bounds.getNorthEast(), bounds.getSouthWest())\n ne = ({'lat': (ne.lat + center.lat)/2, lng: (ne.lng + center.lng)/2})\n sw = ({'lat': (sw.lat + center.lat)/2, lng: (sw.lng + center.lng)/2})\n return {ne: ne, sw: sw}\n }\n\n buildCustomOverlayView = () => {\n // Libraries do not work i need to create custom OverlayView\n RotatableOverlay.prototype = new window.google.maps.OverlayView()\n \n let ne = null\n let sw = null\n if(this.props.floor.boundsNE && this.props.floor.boundsSW ){\n let neLat = this.props.floor.boundsNE.lat\n let neLng = this.props.floor.boundsNE.lng\n let swLat = this.props.floor.boundsSW.lat\n let swLng = this.props.floor.boundsSW.lng\n if (neLat && neLng && swLat && swLng){\n ne = {lat: this.props.floor.boundsNE.lat, lng: this.props.floor.boundsNE.lng}\n sw = {lat: this.props.floor.boundsSW.lat, lng: this.props.floor.boundsSW.lng}\n }\n else{\n let bounds = this.createDefaultNESW();\n ne = bounds.ne;\n sw = bounds.sw;\n }\n }else{\n let bounds = this.createDefaultNESW();\n ne = bounds.ne;\n sw = bounds.sw;\n }\n \n let imageBounds = new window.google.maps.LatLngBounds(\n new window.google.maps.LatLng(sw.lat, sw.lng),\n new window.google.maps.LatLng(ne.lat, ne.lng)\n )\n\n this.overlay = new RotatableOverlay(imageBounds, this.props.floor.planUrl, this.map, this.props.floor.rotation);\n\n this.markerNE = new window.google.maps.Marker({\n position: ne,\n icon: {url: resizeIcon},\n map: this.map,\n draggable: true\n })\n\n this.markerSW = new window.google.maps.Marker({\n position: sw,\n icon: {url: resizeIcon},\n map: this.map,\n draggable: true\n })\n\n if(this.markerNE && this.markerSW){\n let centerPosition = this.getCenterFromMarkers(this.markerNE.getPosition(), this.markerSW.getPosition())\n\n this.markerCenter = new window.google.maps.Marker({\n position: centerPosition,\n icon: {url: positionChangeIcon},\n map: this.map,\n draggable: true\n })\n this.prevPosition = this.markerCenter.getPosition()\n new window.google.maps.event.addListener(this.markerCenter, 'drag', function(){\n let newPosition = this.markerCenter.getPosition()\n let latLngDiff = this.getPositionDifference(newPosition, this.prevPosition)\n\n if(this.markerNE && this.markerSW){\n this.moveMarkersByDiff(latLngDiff)\n this.handleMarkerDrag()\n }\n\n this.prevPosition = newPosition\n }.bind(this))\n\n new window.google.maps.event.addListener(this.markerCenter, 'dragend', function(){\n if(this.markerNE && this.markerSW){\n let centerPosition = this.getCenterFromMarkers(this.markerNE.getPosition(), this.markerSW.getPosition())\n this.markerCenter.setPosition(centerPosition)\n }\n this.prevPosition = this.markerCenter.getPosition()\n this.inputBounds();\n }.bind(this))\n }\n \n\n new window.google.maps.event.addListener(this.markerNE, 'drag', function(){\n this.handleMarkerDrag()\n this.prevPosition = this.markerCenter.getPosition()\n }.bind(this))\n\n new window.google.maps.event.addListener(this.markerNE, 'dragend', function(){\n this.handleMarkerDrag()\n this.prevPosition = this.markerCenter.getPosition()\n this.inputBounds();\n }.bind(this))\n\n new window.google.maps.event.addListener(this.markerSW, 'drag', function(){\n this.handleMarkerDrag()\n this.prevPosition = this.markerCenter.getPosition()\n }.bind(this))\n\n new window.google.maps.event.addListener(this.markerSW, 'dragend', function(){\n this.handleMarkerDrag()\n this.prevPosition = this.markerCenter.getPosition()\n this.inputBounds();\n }.bind(this))\n \n this.floorOnMap = true\n }\n\n inputRotation = (e) => {\n this.props.changeRotation(e.target.value)\n }\n\n inputBounds = () => {\n let ne = this.markerNE.getPosition();\n let sw = this.markerSW.getPosition();\n this.props.changeBounds(ne.lat(), ne.lng(), sw.lat(), sw.lng());\n }\n\n purge = () => {\n this.floorOnMap= false\n if(this.markerNE){\n this.markerNE.setMap(null)\n this.markerNE = null\n }\n if(this.markerSW){\n this.markerSW.setMap(null)\n this.markerSW = null\n }\n if(this.markerCenter){\n this.markerCenter.setMap(null)\n this.markerCenter = null\n }\n if(this.overlay)\n this.overlay.setMap(null)\n }\n\n componentDidUpdate(){\n if(this.map){\n if(this.props.centerChanged)\n this.map.setCenter(new window.google.maps.LatLng(this.props.mapCenter))\n if(this.props.floor){\n if(this.floorOnMap && this.props.purge){\n this.purge()\n }\n if(this.props.floor.planUrl && !this.floorOnMap){\n if(this.addSlider){\n this.slider = this.createRotationSlider();\n this.map.controls[window.google.maps.ControlPosition.TOP_CENTER].push(this.slider);\n this.slider.addEventListener(\"input\", this.inputRotation)\n this.addSlider = false\n }\n this.slider.value=this.props.floor.rotation;\n this.buildCustomOverlayView()\n }\n else{\n if(this.slider){\n this.map.controls[window.google.maps.ControlPosition.TOP_CENTER].pop(this.slider)\n this.slider = null\n this.addSlider = true\n }\n }\n }\n else{\n this.purge();\n if(this.slider){\n this.map.controls[window.google.maps.ControlPosition.TOP_CENTER].pop(this.slider)\n this.slider = null\n this.addSlider = true\n }\n }\n }\n }\n\n render(){\n return(\n
\n
\n
\n )\n }\n}\n\nexport default LocationMap\n\n\n","import axios from \"axios\";\n\nexport function fetchProjects() {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_PROJECTS', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_PROJECTS_FAILURE', payload: error });\n }\n };\n};\n\nexport function deleteProject(projectId){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId\n try {\n const res = await axios.delete(url);\n return dispatch({ type: 'DELETE_PROJECTS', res});\n }\n catch (error) {\n return dispatch({ type: 'DELETE_PROJECTS_FAILURE', payload: error });\n }\n }\n};\n\nexport function patchProject(projectId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId\n try {\n const res = await axios.patch(url, data);\n return dispatch({ type: 'PATCH_PROJECT', res});\n }\n catch (error) {\n return dispatch({ type: 'PATCH_PROJECT_FAILURE', payload: error });\n }\n }\n};\n\nexport function postProject(data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'\n try {\n const res = await axios.post(url, data);\n return dispatch({ type: 'POST_PROJECTS', res});\n }\n catch (error) {\n return dispatch({ type: 'POST_PROJECTS_FAILURE', payload: error });\n }\n }\n};\n\nexport function postGatewayTemplate(projectId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/gateway-templates'\n try {\n const res = await axios.post(url, data);\n return dispatch({ type: 'POST_GATEWAY_TEMPLATES', res});\n }\n catch (error) {\n return dispatch({ type: 'POST_GATEWAY_TEMPLATES_FAILURE', payload: error });\n }\n }\n};\n\nexport function patchReferenceNode(projectId, referenceNodeId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/reference-nodes/'+referenceNodeId\n try {\n const res = await axios.patch(url, data);\n return dispatch({ type: 'PATCH_REFERENCE_NODE', res});\n }\n catch (error) {\n return dispatch({ type: 'PATCH_REFERENCE_NODE_FAILURE', payload: error });\n }\n }\n};\n\nexport function patchGatewayTemplate(projectId, templateId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/gateway-templates/'+templateId\n try {\n const res = await axios.patch(url, data);\n return dispatch({ type: 'PATCH_GATEWAY_TEMPLATES', res});\n }\n catch (error) {\n return dispatch({ type: 'PATCH_GATEWAY_TEMPLATES_FAILURE', payload: error });\n }\n }\n};\n\nexport function deleteGatewayTemplates(projectId, templateId){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/gateway-templates/'+templateId\n try {\n const res = await axios.delete(url);\n return dispatch({ type: 'DELETE_GATEWAY_TEMPLATES', res});\n }\n catch (error) {\n return dispatch({ type: 'DELETE_GATEWAY_TEMPLATES_FAILURE', payload: error });\n }\n }\n};\n\nexport function postReferenceNodeTemplate(projectId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/reference-node-templates'\n try {\n const res = await axios.post(url, data);\n return dispatch({ type: 'POST_REFERENCE_NODE_TEMPLATES', res});\n }\n catch (error) {\n return dispatch({ type: 'POST_REFERENCE_NODE_TEMPLATES_FAILURE', payload: error });\n }\n }\n};\n\nexport function patchReferenceNodeTemplate(projectId, templateId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/reference-node-templates/'+templateId\n try {\n const res = await axios.patch(url, data);\n return dispatch({ type: 'PATCH_REFERENCE_NODE_TEMPLATES', res});\n }\n catch (error) {\n return dispatch({ type: 'PATCH_REFERENCE_NODE_TEMPLATES_FAILURE', payload: error });\n }\n }\n};\n\nexport function deleteReferenceNodeTemplates(projectId, templateId){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/reference-node-templates/'+templateId\n try {\n const res = await axios.delete(url);\n return dispatch({ type: 'DELETE_REFERENCE_NODE_TEMPLATES', res});\n }\n catch (error) {\n return dispatch({ type: 'DELETE_REFERENCE_NODE_TEMPLATES_FAILURE', payload: error });\n }\n }\n};\n\nexport function postBeaconTemplate(projectId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/beacon-templates/'\n try {\n const res = await axios.post(url, data);\n return dispatch({ type: 'POST_BEACON_TEMPLATES', res});\n }\n catch (error) {\n return dispatch({ type: 'POST_BEACON_TEMPLATES_FAILURE', payload: error });\n }\n }\n};\n\nexport function patchBeaconTemplate(projectId, templateId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/beacon-templates/'+templateId\n try {\n const res = await axios.patch(url, data);\n return dispatch({ type: 'PATCH_BEACON_TEMPLATES', res});\n }\n catch (error) {\n return dispatch({ type: 'PATCH_BEACON_TEMPLATES_FAILURE', payload: error });\n }\n }\n};\n\nexport function deleteBeaconTemplates(projectId, templateId){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/beacon-templates/'+templateId\n try {\n const res = await axios.delete(url);\n return dispatch({ type: 'DELETE_BEACON_TEMPLATES', res});\n }\n catch (error) {\n return dispatch({ type: 'DELETE_BEACON_TEMPLATES_FAILURE', payload: error });\n }\n }\n};\n\nexport function fetchReferenceNodes(projectId) {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/reference-nodes'\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_REFERENCE_NODES', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_REFERENCE_NODES_FAILURE', payload: error });\n }\n };\n};\n\nexport function postReferenceNode(projectId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/reference-nodes'\n try {\n const res = await axios.post(url, data);\n return dispatch({ type: 'POST_REFERENCE_NODES', res});\n }\n catch (error) {\n return dispatch({ type: 'POST_REFERENCE_NODES_FAILURE', payload: error });\n }\n }\n};\n\nexport function deleteReferenceNode(projectId, referenceNodeId){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/reference-nodes/'+referenceNodeId\n try {\n const res = await axios.delete(url);\n return dispatch({ type: 'DELETE_REFERENCE_NODES', res});\n }\n catch (error) {\n return dispatch({ type: 'DELETE_REFERENCE_NODES_FAILURE', payload: error });\n }\n }\n};\n\nexport function fetchBeaconTemplates(projectId) {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/beacon-templates'\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_BEACONS_TEMPLATES', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_BEACONS_TEMPLATES_FAILURE', payload: error });\n }\n };\n};\n\nexport function fetchReferenceNodeTemplates(projectId) {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/reference-node-templates'\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_REFERENCE_NODE_TEMPLATES', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_REFERENCE_NODE_TEMPLATES_FAILURE', payload: error });\n }\n };\n};\n\n\nexport function fetchBeacons(projectId) {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/beacons'\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_BEACONS', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_BEACONS_FAILURE', payload: error });\n }\n };\n};\n\nexport function postBeacon(projectId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/beacons/'\n try {\n const res = await axios.post(url, data);\n return dispatch({ type: 'POST_BEACONS', res});\n }\n catch (error) {\n return dispatch({ type: 'POST_BEACONS_FAILURE', payload: error });\n }\n }\n};\n\nexport function patchBeacon(projectId, gatewayId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/beacons/'+gatewayId\n try {\n const res = await axios.patch(url, data);\n return dispatch({ type: 'PATCH_BEACON', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'PATCH_BEACON_FAILURE', payload: error });\n }\n };\n}\n\nexport function deleteBeacons(projectId, beaconId){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/beacons/'+beaconId\n try {\n const res = await axios.delete(url);\n return dispatch({ type: 'DELETE_BEACONS', res});\n }\n catch (error) {\n return dispatch({ type: 'DELETE_BEACONS_FAILURE', payload: error });\n }\n }\n};\n\nexport function fetchGateways(projectId) {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/gateways'\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_GATEWAYS', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_GATEWAYS_FAILURE', payload: error });\n }\n };\n};\n\nexport function patchGateway(projectId, gatewayId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/gateways/'+gatewayId\n try {\n const res = await axios.patch(url, data);\n return dispatch({ type: 'PATCH_GATEWAY', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'PATCH_GATEWAY_FAILURE', payload: error });\n }\n };\n}\n\nexport function fetchGateway(projectId, gatewayId) {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/locations/'+gatewayId\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_GATEWAY', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_GATEWAY_FAILURE', payload: error });\n }\n };\n};\n\nexport function postGateway(projectId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/gateways/'\n try {\n const res = await axios.post(url, data);\n return dispatch({ type: 'POST_GATEWAYS', res});\n }\n catch (error) {\n return dispatch({ type: 'POST_GATEWAYS_FAILURE', payload: error });\n }\n }\n};\n\nexport function deleteGateway(projectId, gatewayId){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/gateways/'+gatewayId\n try {\n const res = await axios.delete(url);\n return dispatch({ type: 'DELETE_GATEWAY', res});\n }\n catch (error) {\n return dispatch({ type: 'DELETE_GATEWAY_FAILURE', payload: error });\n }\n }\n};\n\n// export const getGatewayStatus = async () =>{\n// try {\n// let url = process.env.REACT_APP_API_URL+'projects/gateways/gateway-status'\n// const res = await axios.get(url)\n// // return dispatch({type: 'GATEWAY_STATUS_SEND', res});\n// }\n// catch (error){\n// console.log(error)\n// // return dispatch({ type: 'GATEWAY_STATUS_SEND_FAILURE', payload: error})\n// }\n// }\n\nexport function getGatewayStatus(){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/gateways/gateway-status'\n try {\n const res = await axios.get(url)\n return dispatch({type: 'GATEWAY_STATUS_SEND', res});\n }\n catch (error){\n return dispatch({ type: 'GATEWAY_STATUS_SEND_FAILURE', payload: error})\n }\n }\n};\n\nexport function fetchGatewayTemplates(projectId) {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/gateway-templates'\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_GATEWAY_TEMPLATES', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_GATEWAY_TEMPLATES_FAILURE', payload: error });\n }\n };\n};\n\nexport function fetchLocations(projectId) {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/locations'\n try {\n const res = await axios.get(url);\n dispatch({ type: 'FETCH_LOCATIONS', payload: res.data })\n dispatch({ type: 'FETCH_LOCATIONS_META', payload: res.data })\n }\n catch (error) {\n return dispatch({ type: 'FETCH_LOCATIONS_FAILURE', payload: error });\n }\n };\n};\n\nexport function fetchLocation(projectId, locationId) {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/locations/'+locationId\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_LOCATION', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_LOCATION_FAILURE', payload: error });\n }\n };\n};\n\nexport function deleteLocation(projectId, locationId){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/locations/'+locationId\n try {\n const res = await axios.delete(url);\n return dispatch({ type: 'DELETE_LOCATION', res});\n }\n catch (error) {\n return dispatch({ type: 'DELETE_LOCATION_FAILURE', payload: error });\n }\n }\n};\n\nexport function putLocation(projectId, locationId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/locations/'+locationId\n try {\n const res = await axios.put(url, data);\n return dispatch({ type: 'UPDATE_LOCATION', res});\n }\n catch (error) {\n return dispatch({ type: 'UPDATE_LOCATION_FAILURE', payload: error });\n }\n }\n};\n\n\nexport function postLocation(projectId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/locations/'\n try {\n const res = await axios.post(url, data);\n return dispatch({ type: 'POST_LOCATIONS', res});\n }\n catch (error) {\n return dispatch({ type: 'POST_LOCATIONS_FAILURE', payload: error });\n }\n }\n};\n\nexport function fetchZones(projectId) {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/zones'\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_ZONES', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_ZONES_FAILURE', payload: error });\n }\n };\n};\n\nexport function postZone(projectId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/zones/'\n try {\n const res = await axios.post(url, data);\n return dispatch({ type: 'POST_ZONES', res});\n }\n catch (error) {\n return dispatch({ type: 'POST_ZONES_FAILURE', payload: error });\n }\n }\n};\n\nexport function deleteZone(projectId, zoneId){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/zones/'+zoneId\n try {\n const res = await axios.delete(url);\n return dispatch({ type: 'DELETE_ZONE', res});\n }\n catch (error) {\n return dispatch({ type: 'DELETE_ZONE_FAILURE', payload: error });\n }\n }\n};\n\nexport function patchZone(projectId, zoneId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/zones/'+zoneId\n try {\n const res = await axios.patch(url, data);\n return dispatch({ type: 'PATCH_ZONE', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'PATCH_ZONE_FAILURE', payload: error });\n }\n };\n}\n\nexport function fetchPolicies(projectId) {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/policies'\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_POLICIES', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_POLICIES_FAILURE', payload: error });\n }\n };\n};\n\nexport function postPolicy(projectId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/policies/'\n try {\n const res = await axios.post(url, data);\n return dispatch({ type: 'POST_POLICIES', res});\n }\n catch (error) {\n return dispatch({ type: 'POST_POLICIES_FAILURE', payload: error });\n }\n }\n};\n\nexport function deletePolicy(projectId, policyId){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/policies/'+policyId\n try {\n const res = await axios.delete(url);\n return dispatch({ type: 'DELETE_POLICY', res});\n }\n catch (error) {\n return dispatch({ type: 'DELETE_POLICY_FAILURE', payload: error });\n }\n }\n};\n\nexport function patchPolicy(projectId, policyId, data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'projects/'+projectId+'/policies/'+policyId\n try {\n const res = await axios.patch(url, data);\n return dispatch({ type: 'PATCH_POLICY', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'PATCH_POLICY_FAILURE', payload: error });\n }\n };\n}\n\nexport function fetchUser() {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'users/'\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_USER', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_USER_FAILURE', payload: error });\n }\n };\n};\n\nexport function patchUser(data){\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'users/'\n try {\n const res = await axios.patch(url, data);\n return dispatch({ type: 'PATCH_USER', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'PATCH_USER_FAILURE', payload: error });\n }\n };\n}\n\nexport function fetchFirmwareVersions() {\n return async dispatch => {\n let url = process.env.REACT_APP_API_URL+'firmwares/'\n try {\n const res = await axios.get(url);\n return dispatch({ type: 'FETCH_FIRMWARE', payload: res.data });\n }\n catch (error) {\n return dispatch({ type: 'FETCH_FIRMWARE_FAILURE', payload: error });\n }\n };\n};\n\nexport async function refreshToken(token){\n let url = process.env.REACT_APP_API_URL+'token/' \n axios.defaults.headers.common['Authorization'] = 'Bearer ' + token;\n return await axios.post(url, {token: token}) \n}","import React, { Component } from \"react\";\nimport { Grid, Button } from \"@material-ui/core\";\nimport PlaceIcon from \"@material-ui/icons/Place\";\nimport SubjectIcon from \"@material-ui/icons/Subject\";\nimport IconTextField from \"../Gui/IconTextField\";\nimport GpsNotFixed from \"@material-ui/icons/GpsNotFixed\"\nimport BuildingFloors from \"./BuildingFloors\";\nimport uuidv4 from \"uuid/v4\"\nimport NewBuildingForm from \"./NewBuildingForm\";\nimport LocationMap from \"../Map/LocationMap\";\nimport SaveButton from \"../Gui/SaveButton\";\nimport { connect } from \"react-redux\";\nimport { fetchLocations, postLocation } from '../../actions/apiCalls';\nimport CancelButton from \"../Gui/CancelButton\";\nimport { withTranslation } from 'react-i18next';\n\nclass CreateLocation extends Component{\n\n constructor() {\n super();\n this.state = {\n lName: \"\",\n lDescription: \"\",\n lAddress: \"\",\n lBuildings: [],\n newBuildingOpen: false,\n mapCenter: { lat: 54.370765, lng: 18.613733},\n selectedFloor: null,\n selectedBuildingId : \"\",\n purge: true,\n centerChanged: true\n };\n this._isMounted = true;\n };\n\n resetPurge = () => {\n this.setState({purge: false})\n }\n\n changeLocationName = (e) => {\n this.setState({lName: e.target.value, centerChanged: false})\n }\n\n changeLocationDescription = (e) => {\n this.setState({lDescription: e.target.value, centerChanged: false})\n }\n\n changeLocationAddress = (e) => {\n this.setState({lAddress: e.target.value, centerChanged: false})\n }\n\n findGeoAdress = () => {\n let address = this.state.lAddress\n let url = \"https://maps.googleapis.com/maps/api/geocode/json?address=\"+address.replace(/\\s+/g, '+')+\"&key=\"+process.env.REACT_APP_GOOGLE_KEY\n let xmlHttp = new XMLHttpRequest()\n\n xmlHttp.onreadystatechange = function() { \n if (xmlHttp.readyState === 4 && xmlHttp.status === 200){\n let res = JSON.parse(xmlHttp.responseText)\n if(res.results.length > 0){\n let lat = res.results[0].geometry.location.lat\n let lng = res.results[0].geometry.location.lng\n this.setState({mapCenter: { lat: lat, lng: lng}, centerChanged: true})\n }\n }\n }.bind(this)\n\n xmlHttp.open(\"GET\", url, true)\n xmlHttp.send(null)\n }\n\n addNewBuilding = (name) => {\n this.setState({lBuildings: this.state.lBuildings.concat({\"id\": uuidv4(), \"name\": name, floors: []}), centerChanged: false});\n };\n\n openBuildingForm = () => {\n this.setState({newBuildingOpen: true, centerChanged: false})\n };\n\n closeBuildingForm = () => {\n this.setState({newBuildingOpen: false, centerChanged: false})\n };\n\n addFloorToBuilding = (bId, floor) => {\n let i = this.state.lBuildings.findIndex(b=>b.id === bId)\n if (i >= 0){\n this.state.lBuildings[i].floors.push(floor)\n this.forceUpdate();\n }\n };\n\n selectFloor = (bId, f) => {\n this.setState({selectedFloor: f, selectedBuildingId: bId, purge: true, centerChanged: false})\n };\n\n selectDefaultFloor = (floorId) => { \n let buildings = [...this.state.lBuildings]\n buildings.forEach(b => {\n b.floors.forEach(f => {\n if(f.id === floorId && f.defaultFloor === true){\n f.defaultFloor = false\n return;\n }\n f.id === floorId ? f.defaultFloor = true : f.defaultFloor = false\n })\n });\n this.setState({\n lBuildings: buildings\n });\n }\n\n changeRotation = (rot) => {\n if(this.state.selectedFloor && this.state.selectedBuildingId){\n let i = this.state.lBuildings.findIndex(b=>b.id === this.state.selectedBuildingId)\n let j = this.state.lBuildings[i].floors.findIndex(f=> f.id === this.state.selectedFloor.id)\n let newBuildings = this.state.lBuildings;\n newBuildings[i].floors[j].rotation = rot;\n if (this._isMounted){\n this.setState({lBuildings: newBuildings});\n this.selectFloor(this.state.selectedBuildingId, this.state.lBuildings[i].floors[j]);\n }\n }\n }\n \n changeBounds = (neLat, neLng, swLat, swLng) => {\n if(this.state.selectedFloor && this.state.selectedBuildingId){\n let i = this.state.lBuildings.findIndex(b=>b.id === this.state.selectedBuildingId)\n let j = this.state.lBuildings[i].floors.findIndex(f=> f.id === this.state.selectedFloor.id)\n let newBuildings = this.state.lBuildings;\n newBuildings[i].floors[j].boundsSW = {'lat': swLat, 'lng': swLng}\n newBuildings[i].floors[j].boundsNE = {'lat': neLat, 'lng': neLng}\n if (this._isMounted){\n this.setState({lBuildings: newBuildings});\n this.selectFloor(this.state.selectedBuildingId, this.state.lBuildings[i].floors[j]);\n }\n }\n }\n\n submitLocation = () => {\n let data = {\n \"name\": this.state.lName,\n \"address\": this.state.lAddress,\n \"description\": this.state.lDescription,\n \"position\": { \"lat\": this.state.mapCenter.lat, \"lng\": this.state.mapCenter.lng },\n \"buildings\": this.state.lBuildings\n }\n if(this.props.projectId){\n this.props.postLocation(this.props.projectId, data)\n this.props.onClose()\n\n }\n }\n\n componentWillUnmount = () => {\n this._isMounted = false;\n }\n \n render(){\n const { t } = this.props;\n return(\n
\n \n \n \n \n \n \n \n 0 \n && this.state.lName !== \"\"\n && this.state.lDescription !== \"\")} onClick={this.submitLocation} />\n \n \n \n \n \n }/>\n }/>\n }/>\n \n \n \n \n \n \n \n \n {this.state.newBuildingOpen ? (\n \n )\n : (\n
\n )}\n {this.state.lBuildings.map(building =>\n \n )}\n \n \n \n \n \n \n \n \n \n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n postLocation(projectId, data){\n dispatch(postLocation(projectId, data)).then(() => dispatch(fetchLocations(projectId)));\n }\n }\n};\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(CreateLocation));","import React, { Component } from \"react\";\nimport { DialogContent, Grid, TextField, Typography } from \"@material-ui/core\";\nimport FloorPlanUpload from \"./FloorPlanUpload\";\nimport SaveButton from \"../Gui/SaveButton\";\nimport CancelButton from \"../Gui/CancelButton\";\nimport Icon from '@mdi/react';\nimport { mdiStairs } from '@mdi/js';\nimport { gray } from \"../../themes/style\";\nimport './Locations.css'\nimport { withSnackbar } from \"notistack\";\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport { IstokTheme } from '../../themes/style'\nimport { withTranslation } from 'react-i18next';\n\nclass EditFloorDialog extends Component{\n\n state = {\n floorPlan: \"\",\n floorName: \"\",\n floorNr: 0,\n floorUrl: \"\",\n disabled: false\n }\n\n componentDidMount = () => {\n if(this.props.floor){\n this.setState({\n floorPlan: this.props.floor.plan ? this.props.floor.plan: \"\",\n floorNr: this.props.floor.nr,\n floorName: this.props.floor.name,\n floorUrl: this.props.floor.planUrl ? this.props.floor.planUrl: \"\" \n })\n }\n };\n\n floorPlanUpdload = (name ,url) => {\n this.setState({floorPlan: name, floorUrl: url})\n };\n\n onNumberChange = (e) => {\n this.setState({floorNr: e.target.value})\n };\n\n onNameChange = (e) => {\n this.setState({floorName: e.target.value})\n };\n\n submitFloor = () => {\n this.setState({disabled: true})\n this.props.submitFloor(\n this.props.floor.id,\n this.state.floorNr, \n this.state.floorName,\n this.state.floorPlan,\n this.state.floorUrl\n );\n }\n\n notify = (message) => {\n this.props.enqueueSnackbar(message, { \n variant: 'error',\n });\n }\n\n render(){\n const { t } = this.props\n let height = 36; //36\n let leftPadding = 3; //20\n return(\n \n \n {t(\"locations.updateFloorTitle\")}{this.props.buildingName}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0)\n } onClick={this.submitFloor} />\n \n \n \n \n \n \n \n \n \n \n );\n };\n};\n\nexport default withSnackbar(withTranslation()(EditFloorDialog));","import React, { Component } from \"react\";\nimport { Button, Grid, Typography, DialogContent, DialogActions } from \"@material-ui/core\";\nimport CancelButton from \"./CancelButton\";\nimport './Dialog.css'\nimport { withTranslation } from 'react-i18next';\n\nclass DeleteDialog extends Component{\n render(){\n const { t } = this.props\n return(\n \n \n {t('common.warrning')}\n \n \n \n \n {this.props.deleteWarningMessage ?\n {t(this.props.deleteWarningMessage)}\n :{t('common.deletePrompt')}\n }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nexport default withTranslation()(DeleteDialog);","import React, { Component } from \"react\";\nimport { Grid, TextField, InputAdornment, IconButton, Dialog, Menu, MenuItem } from \"@material-ui/core\";\nimport DomainIcon from '@material-ui/icons/Domain';\nimport \"./Locations.css\";\nimport Icon from '@mdi/react';\nimport { mdiStairs, mdiFloorPlan } from '@mdi/js';\nimport { gray, green } from \"../../themes/style\";\nimport MoreIcon from '@material-ui/icons/MoreVert';\nimport CheckIcon from '@material-ui/icons/Check';\nimport uuidv4 from \"uuid/v4\";\nimport AddCircleIcon from '@material-ui/icons/AddCircleOutline';\nimport FloorDialog from \"./FloorDialog\";\nimport EditFloorDialog from \"./EditFloorDialog\";\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\nimport DeleteDialog from '../Gui/DeleteDialog';\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport { IstokTheme } from '../../themes/style'\n\nclass BuildingFloors extends Component{\n\n constructor(){\n super();\n this.state ={\n open: false,\n openEdit: false,\n openDeleteDialog: false,\n showFloors: true,\n anchor: null,\n anchorBuilding: null,\n floor: null,\n currentFloorId: \"\",\n currentBuildingId: \"\",\n currentType: \"\"\n };\n }\n\n openCloseFloors = () =>{\n this.setState({showFloors: !this.state.showFloors})\n }\n\n selectFloor = (bId, floor) => {\n this.props.selectFloor(bId, floor);\n };\n\n openDialog = () => {\n this.setState({open: true});\n };\n\n openDeleteDialog = () => {\n this.setState({openDeleteDialog: true});\n };\n\n openEditDialog = () => {\n this.setState({openEdit: true});\n };\n\n closeDialog = () => {\n this.setState({open: false, openEdit: false, openDeleteDialog: false, floor: null});\n };\n\n submitFloor = (nr, name, planName, planUrl) => {\n // For new Floors\n let floor = {\n \"id\": uuidv4(),\n \"nr\": Number.parseInt(nr),\n \"name\": name,\n \"plan\": planName,\n \"planUrl\": planUrl,\n \"rotation\": 0,\n \"boundsNE\": {},\n \"boundsSW\": {},\n \"defaultFloor\": false\n };\n this.props.addFloorToBuilding(this.props.building.id, floor)\n this.closeDialog();\n };\n\n submitEditFloor = (id, nr, name, planName, planUrl) => {\n let floor = {\n \"id\": id,\n \"nr\": Number.parseInt(nr),\n \"name\": name,\n \"plan\": planName,\n \"planUrl\": planUrl\n };\n this.props.editBuildingFloor(this.props.building.id, floor)\n this.closeDialog();\n };\n \n openDelEdit = (e, fId, bId, type) => {\n // e.stopPropagation();\n let floor = this.props.building.floors.find(function(el){\n return el.id === fId\n })\n this.setState({currentFloorId: fId, currentBuildingId: bId, currentType: type, floor: floor}, this.setState({anchor: e.target}));\n };\n\n openDelEditBuilding = (e, fId, bId, type) => {\n e.stopPropagation();\n let floor = this.props.building.floors.find(function(el){\n return el.id === fId\n })\n this.setState({currentFloorId: fId, currentBuildingId: bId, currentType: type, floor: floor}, this.setState({anchorBuilding: e.target}));\n };\n\n closeDelEdit = () => {\n this.setState({currentFloorId: \"\", currentBuildingId: \"\", currentType: \"\"}, this.setState({anchor: null, anchorBuilding: null}));\n };\n \n // Użyj tej fuknkcji do kasowania pieter/buddynków\n deleteFloorOrBuilding = () => {\n this.props.removeFloorBuilding(this.state.currentType, this.state.currentFloorId, this.state.currentBuildingId);\n this.closeDelEdit();\n this.closeDialog();\n };\n\n editFloorOrBuilding = () => {\n if(this.state.currentType === \"floor\")\n this.setState({openEdit: true}, this.closeDelEdit());\n else{\n this.closeDelEdit();\n }\n };\n\n render(){\n return(\n \n \n \n \n \n \n \n ),\n endAdornment: (\n \n \n \n \n this.openDelEditBuilding(e, null, this.props.building.id, \"building\")}>\n \n \n \n )\n }}\n variant=\"outlined\"\n classes={{root: 'GrayTextField'}} />\n \n \n {this.props.building.floors.map(f=>\n \n \n \n this.selectFloor(this.props.building.id, f)} value={\"Nr: \"+f.nr +\" - \"+f.name} fullWidth\n InputProps={{\n startAdornment : (\n \n \n \n ),\n endAdornment: (\n \n {this.props.selectDefaultFloor(f.id)}}>\n \n \n \n \n \n this.openDelEdit(e, f.id, this.props.building.id, \"floor\")}>\n \n \n \n ),\n readOnly: true,\n }}\n variant=\"outlined\"\n classes={this.props.selectedFloor ? (this.props.selectedFloor.id === f.id ? ({root: 'SelectedTextField'}):(null)): (null)} />\n \n \n )}\n \n \n \n \n \n {/* EDIT */}\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n };\n};\n\nexport default BuildingFloors;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport axios from \"axios\";\nimport uuidv4 from \"uuid/v4\";\nimport { Grid, Button } from \"@material-ui/core\";\nimport PlaceIcon from \"@material-ui/icons/Place\";\nimport SubjectIcon from \"@material-ui/icons/Subject\";\nimport IconTextField from \"../Gui/IconTextField\";\nimport GpsNotFixed from \"@material-ui/icons/GpsNotFixed\"\nimport BuildingFloorsEdit from \"./BuildingFloorsEdit\";\nimport LocationMap from \"../Map/LocationMap\";\nimport SaveButton from \"../Gui/SaveButton\";\nimport { fetchLocations, putLocation } from '../../actions/apiCalls';\nimport NewBuildingForm from './NewBuildingForm';\nimport CancelButton from \"../Gui/CancelButton\";\nimport { withTranslation } from 'react-i18next';\n\nclass EditLocation extends Component{\n \n constructor(){\n super();\n this.state = {\n location: null,\n lName: \"\",\n lDescription: \"\",\n lAddress: \"\",\n lBuildings: [],\n newBuildingOpen: false,\n mapCenter: { lat: 54.370765, lng: 18.613733},\n selectedFloor: null,\n selectedBuildingId : \"\",\n purge: true,\n centerChanged: true,\n toDelete: []\n };\n this._isMounted = true;\n };\n\n addNewBuilding = (name) => {\n this.setState({lBuildings: this.state.lBuildings.concat({\"id\": uuidv4(), \"name\": name, floors: []}), centerChanged: false});\n };\n\n openBuildingForm = () => {\n this.setState({newBuildingOpen: true, centerChanged: false})\n };\n\n closeBuildingForm = () => {\n this.setState({newBuildingOpen: false, centerChanged: false})\n };\n\n resetPurge = () => {\n this.setState({purge: false})\n }\n\n changeLocationName = (e) => {\n this.setState({lName: e.target.value, centerChanged: false})\n }\n\n changeLocationDescription = (e) => {\n this.setState({lDescription: e.target.value, centerChanged: false})\n }\n\n changeLocationAddress = (e) => {\n this.setState({lAddress: e.target.value, centerChanged: false})\n }\n\n selectFloor = (bId, f) => {\n this.setState({selectedFloor: f, selectedBuildingId: bId, purge: true, centerChanged: false})\n };\n\n selectDefaultFloor = (floorId) => {\n let buildings = [...this.state.lBuildings]\n buildings.forEach(b => {\n b.floors.forEach(f => {\n if(f.id === floorId && f.defaultFloor === true){\n f.defaultFloor = false\n return;\n }\n f.id === floorId ? f.defaultFloor = true : f.defaultFloor = false\n })\n });\n this.setState({\n lBuildings : buildings\n });\n }\n\n changeRotation = (rot) => {\n if(this.state.selectedFloor && this.state.selectedBuildingId){\n let i = this.state.lBuildings.findIndex(b=>b.id === this.state.selectedBuildingId)\n let j = this.state.lBuildings[i].floors.findIndex(f=> f.id === this.state.selectedFloor.id)\n let newBuildings = this.state.lBuildings;\n newBuildings[i].floors[j].rotation = rot;\n if (this._isMounted){\n this.setState({lBuildings: newBuildings});\n this.selectFloor(this.state.selectedBuildingId, this.state.lBuildings[i].floors[j]);\n }\n }\n }\n\n changeBounds = (neLat, neLng, swLat, swLng) => {\n if(this.state.selectedFloor && this.state.selectedBuildingId){\n let i = this.state.lBuildings.findIndex(b=>b.id === this.state.selectedBuildingId)\n let j = this.state.lBuildings[i].floors.findIndex(f=> f.id === this.state.selectedFloor.id)\n let newBuildings = this.state.lBuildings;\n newBuildings[i].floors[j].boundsSW = {'lat': swLat, 'lng': swLng}\n newBuildings[i].floors[j].boundsNE = {'lat': neLat, 'lng': neLng}\n if (this._isMounted){\n this.setState({lBuildings: newBuildings});\n this.selectFloor(this.state.selectedBuildingId, this.state.lBuildings[i].floors[j]);\n }\n }\n }\n\n findGeoAdress = () => {\n let address = this.state.lAddress\n let url = \"https://maps.googleapis.com/maps/api/geocode/json?address=\"+address.replace(/\\s+/g, '+')+\"&key=\"+process.env.REACT_APP_GOOGLE_KEY\n let xmlHttp = new XMLHttpRequest()\n\n xmlHttp.onreadystatechange = function() { \n if (xmlHttp.readyState === 4 && xmlHttp.status === 200){\n let res = JSON.parse(xmlHttp.responseText)\n if(res.results.length > 0){\n let lat = res.results[0].geometry.location.lat\n let lng = res.results[0].geometry.location.lng\n this.setState({mapCenter: { lat: lat, lng: lng}, centerChanged: true})\n }\n }\n }.bind(this)\n \n xmlHttp.open(\"GET\", url, true)\n xmlHttp.send(null)\n }\n\n componentDidMount = () => {\n if (this.props.projectId){\n let url = process.env.REACT_APP_API_URL+'projects/'+this.props.projectId+'/locations/'+this.props.locationId\n try {\n axios.get(url).then(res => this.setState({\n location: res.data.data[0],\n lName: res.data.data[0].attributes.name,\n lDescription: res.data.data[0].attributes.description,\n lAddress: res.data.data[0].attributes.address,\n lBuildings: res.data.data[0].buildings,\n mapCenter: {lat: res.data.data[0].attributes.latitude, lng: res.data.data[0].attributes.longitude}\n })).catch(e => {\n this.props.onFetchFailed(e)\n this.props.onClose();\n }\n );\n }\n catch (error) {\n console.log(error);\n }\n }\n };\n \n submitEditLocation = () => {\n let data = {\n \"name\": this.state.lName,\n \"address\": this.state.lAddress,\n \"description\": this.state.lDescription,\n \"position\": { \"lat\": this.state.mapCenter.lat, \"lng\": this.state.mapCenter.lng },\n \"buildings\": this.state.lBuildings,\n \"events\": this.state.toDelete\n };\n if(this.props.projectId && this.props.locationId){\n this.props.editLocation(this.props.projectId, this.props.locationId, data)\n this.props.onClose()\n }\n };\n\n addFloorToBuilding = (bId, floor) => {\n let i = this.state.lBuildings.findIndex(b=>b.id === bId)\n if (i >= 0){\n this.state.lBuildings[i].floors.push(floor)\n this.forceUpdate();\n this.selectFloor(bId, floor)\n }\n };\n\n editBuildingFloor = (bId, floor) => {\n let i = this.state.lBuildings.findIndex(b=>b.id === bId)\n let j = this.state.lBuildings[i].floors.findIndex(f=> f.id === floor.id)\n let newBuildings = this.state.lBuildings;\n newBuildings[i].floors[j].name = floor.name\n newBuildings[i].floors[j].nr = floor.nr\n if(floor.plan && floor.planUrl){\n newBuildings[i].floors[j].plan = floor.plan\n newBuildings[i].floors[j].planUrl = floor.planUrl\n if(!newBuildings[i].floors[j].rotation)\n newBuildings[i].floors[j].rotation = 0 \n }\n if (this._isMounted){\n this.setState({\n lBuildings: newBuildings\n }, this.selectFloor(bId, this.state.lBuildings[i].floors[j]))\n }\n }\n\n deleteFloorOrBuilding = (type, floorId, buildingId) => {\n if(type === \"floor\"){\n let i = this.state.lBuildings.findIndex(b => b.id === buildingId)\n let j = this.state.lBuildings[i].floors.findIndex(f => f.id === floorId)\n if (i !== -1 && j !== -1){\n let newBuildings = this.state.lBuildings;\n newBuildings[i].floors.splice(j, 1);\n\n let newDeleteData = this.state.toDelete;\n newDeleteData.push({type: type, floorId: floorId});\n\n this.setState({lBuildings: newBuildings, selectedFloor: null, toDelete: newDeleteData}); \n }\n }\n if(type === \"building\"){\n let i = this.state.lBuildings.findIndex(b => b.id === buildingId)\n if(i !== -1){\n let newBuildings = this.state.lBuildings;\n newBuildings.splice(i, 1);\n \n let newDeleteData = this.state.toDelete;\n newDeleteData.push({type: type, buildingId: buildingId});\n\n this.setState({lBuildings: newBuildings, selectedFloor: null, toDelete: newDeleteData}); \n }\n }\n };\n\n render(){\n const { t } = this.props\n return(\n
\n {this.state.location ? (\n \n \n \n \n \n \n \n 0 ? false: true}/>\n \n \n \n \n \n }/>\n }/>\n }/>\n \n \n \n \n \n \n \n \n {this.state.newBuildingOpen ? (\n \n )\n : (\n
\n )}\n {this.state.lBuildings ? (\n this.state.lBuildings.map(building =>\n \n )\n ):(
)}\n \n \n \n \n \n \n \n \n )\n :(
)}\n \n );\n };\n};\n\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n editLocation(projectId, locationId, data){\n dispatch(putLocation(projectId, locationId, data)).then(() => dispatch(fetchLocations(projectId)));\n },\n onFetchFailed(e){\n\t\t\tdispatch({type: 'FETCH_LOCATION_FAILURE'});\n }\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(EditLocation));","export const isCorrectRole = (role) => {\n if(typeof role === 'string'){\n if(role === 'admin' || role === 'superadmin')\n return true\n }\n else return false\n}\n\nexport const isUUID = (id) => {\n let res = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(id);\n return res;\n}\n\nexport const fab = {\n position: 'fixed',\n bottom: 45,\n right: 45,\n background: 'linear-gradient(180deg, #ff6450 0, #ff3a2c)',\n color: '#ffffff'\n}\n\nexport const uploadFab = {\n position: 'fixed',\n bottom: 45,\n right: 110,\n background: 'linear-gradient(180deg, #ff6450 0, #ff3a2c)',\n color: '#ffffff'\n}\n\nexport const isEmpty = (obj) => {\n return Object.keys(obj).length === 0;\n}","import React, { Component } from \"react\";\nimport { Typography, IconButton, Table, TableHead, TableCell, TableBody, TableRow, TablePagination, Dialog, Checkbox } from \"@material-ui/core\";\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport DeleteDialog from \"./DeleteDialog\";\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport { IstokTheme } from '../../themes/style'\nimport { connect } from \"react-redux\";\nimport { isCorrectRole } from \"../../utils\"\nimport { withTranslation } from 'react-i18next';\n\nclass DataTable extends Component {\n\n constructor(){\n super()\n this.state = {\n page: 0,\n rowsPerPage: 10,\n open: false,\n openDialog: false,\n currentVal: null\n }\n }\n\n handleChangePage = (event, page) => {\n this.setState({ page });\n };\n\n handleChangeRowsPerPage = (e) => {\n this.setState({ rowsPerPage: e.target.value });\n }\n\n openDialog = (e, val) => {\n e.stopPropagation();\n this.setState({openDialog: true, currentVal: val});\n }\n\n onDialogClose = () => {\n this.setState({openDialog: false, currentVal: null});\n }\n\n submitDelete = (event) => {\n if (this.state.currentVal){\n if(this.state.currentVal.type)\n this.props.onItemDelete(event, this.state.currentVal.id, this.state.currentVal.attributes.type)\n else\n this.props.onItemDelete(event, this.state.currentVal.id)\n }\n this.onDialogClose();\n }\n\n sendEmail = (e, val) => {\n e.stopPropagation();\n this.props.sendMessage(e, val)\n };\n\n colorBasedOnTypeAndStatus = (key, val) => {\n if (key === \"status\"){\n if (val === \"online\")\n return \"primary\"\n if (val === \"offline\")\n return \"secondary\"\n }\n return \"initial\"\n }\n\n render(){\n const { rowsPerPage, page } = this.state;\n const isAllowed = isCorrectRole(this.props.role);\n // const attr = this.props.attributes;\n const detectedLng = this.props.i18n.language;\n const contentInfo = detectedLng === 'en' ? (No {this.props.name} available) \n : (Brak dostępnych {this.props.name} )\n const content = this.props.data.length === 0 ? (contentInfo):\n (\n
\n \n \n \n \n {this.props.headers.map(header => \n \n {header}\n \n )}\n \n \n \n\n \n {this.props.data.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map(val => {\n return(\n val.attributes.type ? \n this.props.onItemClick(event, val.id, val.attributes.type): \n this.props.onItemClick(event, val.id)}\n style={{\n pointerEvents: isAllowed ? \"auto\": \"none\"\n }}>\n {\n this.props.attributes.map((key, i) => (\n Object.keys(val.attributes).includes(key) ? (\n \n {val.attributes[key]}\n \n )\n :(null)\n ))\n }\n\n {\n val.type === \"gateway\" ?\n \n this.sendEmail(event, val)}\n checked={val.attributes.send_status}\n />\n \n : null\n }\n \n {/* val.attributes.type ?\n this.props.onItemDelete(event, val.id, val.attributes.type):\n this.props.onItemDelete(event, val.id)\n }> */}\n {isAllowed ? \n this.openDialog(event, val)}>\n \n \n :
\n }\n \n \n )})\n }\n \n
\n
\n \n \n \n \n
);\n return(\n
\n {content}\n
\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n role: state.projects.currentRole\n }\n};\n\nexport default connect(mapStateToProps)(withTranslation()(DataTable));","import React, { Component } from \"react\";\nimport AddIcon from '@material-ui/icons/Add';\nimport { Fab } from \"@material-ui/core\";\nimport { connect } from \"react-redux\";\nimport { isCorrectRole, fab } from \"../../utils\";\n\nclass AddFab extends Component {\n \n render(){\n const isAllowed = isCorrectRole(this.props.role);\n return(\n isAllowed ?\n \n \n :
\n\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n role: state.projects.currentRole\n }\n};\n\nexport default connect(mapStateToProps)(AddFab);","import React from \"react\";\nimport DataTable from '../Gui/DataTable';\nimport AddFab from \"../Gui/AddFab\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport { useTranslation } from 'react-i18next';\n\nconst LocationsPanel = (props) => {\n\n const { t } = useTranslation();\n return(\n
\n \n \n {t(\"locations.title\")}\n \n \n \n \n \n \n
\n )\n}\nexport default LocationsPanel","import React, { Component } from \"react\";\nimport { connect } from 'react-redux';\nimport CreateLocation from './CreateLocation'\nimport EditLocation from './EditLocation';\nimport { fetchLocations, deleteLocation } from '../../actions/apiCalls';\nimport { withTranslation } from 'react-i18next';\nimport LocationsPanel from './LocationsPanel.js'\nimport { Route, Switch, } from \"react-router-dom\";\nclass Locations extends Component{\n\n constructor(){\n super()\n this.state = {\n currLocId: null,\n };\n };\n\n componentDidMount(){\n if (this.props.projectId === null)\n this.props.history.push('/');\n if (this.props.projectId !== null)\n this.props.fetchProjectLocations(this.props.projectId);\n };\n \n deleteLocation = (e, locationId) => {\n e.stopPropagation();\n if (this.props.projectId !== null)\n this.props.deleteLocation(this.props.projectId, locationId)\n };\n\n clickLocation = (e, locationId) => {\n this.setState({\n currLocId: locationId,\n });\n this.props.history.push(this.props.match.path + '/edit')\n };\n\n closeForm = () => {\n this.setState({\n currLocId: null\n })\n this.props.history.push('/locations')\n }\n\n addNewLocation = () => {\n this.props.history.push(this.props.match.path + '/create')\n };\n\n render(){\n const { t } = this.props;\n const attributes = [\"name\", \"floorNr\", \"deviceNr\"]\n const headers = [t(\"locations.name\"), t(\"locations.floors\"), t(\"locations.devices\")]\n return(\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n locations: state.locations.locations,\n errors: state.locations.errors\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectLocations(projectId) {\n dispatch(fetchLocations(projectId)).then(() => console.log(\"Fetched Locations\"));\n },\n deleteLocation(projectId, locationId) {\n dispatch(deleteLocation(projectId, locationId)).then(() => dispatch(fetchLocations(projectId)));\n },\n clearLocationErrors()\n {\n dispatch({type: 'LOCATION_CLEAR_ERRORS'})\n }\n }\n};\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(Locations));\n","import React, {Component} from 'react'\nimport { Typography } from \"@material-ui/core\";\nimport { withTranslation } from 'react-i18next';\n\nclass Dashboard extends Component{\n render(){\n const { t } = this.props;\n return(\n
\n {t(\"dashboard.title\")}\n {t(\"dashboard.prompt\")}\n
\n )\n }\n}\n\nexport default withTranslation()(Dashboard);","import React, { Component } from 'react'\nimport { Link } from 'react-router-dom'\nimport { Button } from '@material-ui/core'\nimport { connect } from 'react-redux'\nimport { withTranslation } from 'react-i18next';\n\nclass LoginLogoutButton extends Component {\n constructor(){\n super()\n this.handleClick = this.handleClick.bind(this)\n }\n\n handleClick(){\n this.props.logoutUser()\n document.location.reload()\n }\n\n render(){\n const { t } = this.props\n if(this.props.loggedIn)\n return(
\n \n
\n )\n else\n return()\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loggedIn: state.login.userLoggedIn\n }\n }\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n logoutUser: () => { dispatch({type: 'LOGOUT_USER'})}\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(LoginLogoutButton));","import React from \"react\";\nimport { Button, Typography, Grid, DialogContent } from \"@material-ui/core\";\nimport CancelButton from \"../Gui/CancelButton\";\nimport { useTranslation } from 'react-i18next';\n\nexport const RefreshDialog = (props) => {\n let leftPadding = 20;\n const { t } = useTranslation();\n return(\n \n \n {t('refresh.header')}\n \n \n \n \n \n {t('refresh.flavorText')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}","import React, { Component } from \"react\";\nimport { Typography, Dialog } from \"@material-ui/core\";\nimport { connect } from \"react-redux\";\nimport { RefreshDialog } from \"./RefreshDialog\";\n\nclass Timer extends Component{\n \n intervalVariable;\n\n state = {\n seconds: 0,\n open: false\n }\n\n closeDialog = () => { this.setState({open: false}); }\n\n logoutAndReload = () => {\n clearInterval(this.intervalVariable);\n this.props.logoutUser();\n document.location.reload()\n }\n\n updateTime = () => {\n if(this.state.seconds <= 0){\n this.logoutAndReload();\n }\n else{\n this.state.seconds === this.state.expiration ? (\n this.setState({ seconds: this.state.seconds - 1, open: true })\n ): (\n this.setState({ seconds: this.state.seconds - 1 })\n )\n }\n }\n // I assumed maximal interval should be 1 hour\n componentDidMount = () => {\n this.setState({seconds: this.props.minutes * 60, expiration: this.props.popupTime * 60})\n this.intervalVariable = setInterval(() => this.updateTime(), 1000)\n }\n\n componentWillUnmount = () => {\n if(this.intervalVariable)\n clearInterval(this.intervalVariable);\n }\n\n appendZero = (value) => {\n if(value < 10){\n return \"0\" + value;\n }\n return value;\n }\n\n render(){\n let minutes = this.appendZero(Math.floor(this.state.seconds / 60));\n let seconds = this.appendZero(this.state.seconds - minutes * 60);\n\n return(\n
\n {minutes}:{seconds} \n \n \n \n
\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {}\n};\n\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n logoutUser: () => { dispatch({type: 'LOGOUT_USER'})}\n }\n}\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Timer);","import React, { Component } from \"react\";\nimport { withStyles } from '@material-ui/core/styles'\nimport Drawer from '@material-ui/core/Drawer'\nimport AppBar from '@material-ui/core/AppBar'\nimport Toolbar from '@material-ui/core/Toolbar'\nimport List from '@material-ui/core/List'\nimport classNames from 'classnames'\nimport Typography from '@material-ui/core/Typography'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\n// import RouteList from './RouteList'\nimport LoginLogout from './LoginLogout'\nimport IconButton from '@material-ui/core/IconButton'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport { Divider } from '@material-ui/core'\nimport PropTypes from 'prop-types'\nimport { withTranslation } from 'react-i18next';\nimport MapIcon from '@material-ui/icons/Map';\nimport HomeIcon from '@material-ui/icons/Home';\nimport DeviceHubIcon from '@material-ui/icons/DeviceHub';\nimport SettingsIcon from '@material-ui/icons/Settings'\nimport RoomIcon from '@material-ui/icons/Room'\nimport BluetoothIcon from '@material-ui/icons/Bluetooth';\nimport DocumentIcon from 'mdi-react/FileDocumentIcon'\nimport AnchorIcon from 'mdi-react/AnchorIcon';\nimport TimelineIcon from '@material-ui/icons/Timeline';\nimport PhotoSizeSelectIcon from '@material-ui/icons/PhotoSizeSelectSmall';\nimport GavelIcon from '@material-ui/icons/Gavel';\nimport LanguageForm from '../Language/LanguageForm.js'\nimport Timer from './Timer';\n\nconst drawerWidth = 180;\n\nconst styles = theme => ({\n\tappBar: {\n\t\tzIndex: theme.zIndex.drawer + 1,\n\t},\n\tmenuButton: {\n\t\tmarginLeft: -15,\n\t\tmarginRight: 0,\n\t},\n\tgrow: {\n\t\tflexGrow: 1,\n\t},\n\tdrawer: {\n\t\twidth: drawerWidth,\n\t\tflexShrink: 0,\n\t},\n\tdrawerPaper: {\n\t\twidth: drawerWidth,\n\t},\n\ttoolbar: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'flex-end',\n\t\tpadding: '0 8px',\n\t\t...theme.mixins.toolbar,\n\t},\n\tdrawerOpen: {\n\t\tpaddingTop: '12px',\n\t\tborderStyle: 'hidden',\n\t\twidth: drawerWidth,\n\t\ttransition: theme.transitions.create('width', {\n\t\t\teasing: theme.transitions.easing.sharp,\n\t\t\tduration: theme.transitions.duration.enteringScreen,\n\t\t}),\n\t},\n\tdrawerClose: {\n\t\tpaddingTop: '12px',\n\t\tborderStyle: 'hidden',\n\t\ttransition: theme.transitions.create('width', {\n\t\t\teasing: theme.transitions.easing.sharp,\n\t\t\tduration: theme.transitions.duration.leavingScreen,\n\t\t}),\n\t\toverflowX: 'hidden',\n\t\twidth: theme.spacing(7) + 1,\n\t\t[theme.breakpoints.up('sm')]: {\n\t\t\twidth: theme.spacing(9) + 1,\n\t\t},\n },\n listItemSelected: {\n background: '#ff6450',\n \"&:hover\": {\n background: '#ff3a2c',\n },\n \"&:focus\": {\n background: '#ff6450',\n },\n \"& svg\":{\n color: '#ffffff'\n },\n \"& span\":{\n color: '#ffffff'\n },\n borderRadius: \"0 15px 15px 0\",\n },\n listItem: {\n \"&:hover\": {\n background: '#f85b51',\n \"& svg\":{\n color: '#ffffff'\n },\n \"& span\":{\n color: '#ffffff'\n },\n },\n borderRadius: \"0 15px 15px 0\"\n }\n});\n\nclass AppBarDrawer extends Component{\n\n\tstatic propTypes = {\n\t\tclasses: PropTypes.object.isRequired\n\t}\n\n\tstate = {\n open: false\n }\n \n handleDrawerOpenClose = () => {\n\t\tif(this.state.open)\n\t\t\tthis.setState({ open: false });\n\t\telse\n\t\t\tthis.setState({ open: true });\n\t};\n render(){\n const { t } = this.props\n let RouteList = []\n if(this.props.userRole === \"admin\" || this.props.userRole === \"superadmin\"){\n RouteList = [\n {label: t('sidebar.Dashboard'), icon: , route: '/', id: 0},\n {label: t('sidebar.Locations'), icon: , route: '/locations', id: 1},\n {label: t('sidebar.Gateways'), icon: , route: '/gateways', id: 2},\n {label: t('sidebar.Beacons'), icon: , route: '/beacons', id: 3},\n {label: t('sidebar.Nodes'), icon: , route: '/reference-nodes', id: 4},\n {label: t('sidebar.Templates'), icon: , route: '/templates', id: 5},\n {label: t('sidebar.Tracking'), icon: , route: '/tracking', id: 6},\n {label: t('sidebar.Zones'), icon: , route: '/zones', id: 7},\n {label: t('sidebar.Policies'), icon: , route: '/policies', id: 8},\n {label: t('sidebar.Settings'), icon: , route: '/settings', id: 9},\n {label: t('sidebar.TrackingHistory'), icon: , route: '/tracking-history', id: 10}\n ]\n }\n else{\n RouteList = [\n {label: t('sidebar.Dashboard'), icon: , route: '/', id: 0},\n {label: t('sidebar.Locations'), icon: , route: '/locations', id: 1},\n {label: t('sidebar.Beacons'), icon: , route: '/beacons', id: 3},\n {label: t('sidebar.Tracking'), icon: , route: '/tracking', id: 6},\n {label: t('sidebar.Zones'), icon: , route: '/zones', id: 7},\n {label: t('sidebar.Policies'), icon: , route: '/policies', id: 8},\n {label: t('sidebar.Settings'), icon: , route: '/settings', id: 9}\n ]\n }\n \n\n const { classes } = this.props;\n return(\n
\n \n \n \n \n \n \n MPS\n \n \n \n \n \n \n \n \n
\n\n \n {RouteList.map((route) => (\n this.props.onItemClicked(route.route, route.id)}\n className={this.props.currentItem === route.id ? (classes.listItemSelected):(classes.listItem)}>\n {route.icon}\n \n \n ))}\n \n \n
\n )\n }\n}\n\nexport default withStyles(styles)(withTranslation()(AppBarDrawer));","import React, { Component } from \"react\";\nimport { Select, InputLabel, MenuItem, FormControl, Grid, IconButton } from \"@material-ui/core\";\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport { IstokTheme } from '../../themes/style'\n\nclass IconSelector extends Component{\n render(){\n return(\n \n \n \n \n \n {this.props.icon}\n \n \n \n \n \n {this.props.label}\n \n \n \n \n \n \n \n );\n };\n};\n\nexport default IconSelector;","import React, { Component } from 'react';\nimport scriptLoad from '../../scriptLoader';\nimport RotatableOverlay from './RotatableOverlay';\n\nconst yellow = \"https://maps.google.com/mapfiles/ms/icons/yellow-dot.png\"\nconst blue = \"https://maps.google.com/mapfiles/ms/icons/blue-dot.png\"\n\nclass DevicesMap extends Component{\n \n constructor(){\n super();\n this.map = null;\n this.overlay = null;\n this.mainMarker = null;\n this.rnMarkers = [];\n this.gatewayMarkers = [];\n }\n \n componentDidMount(){\n if(!(typeof window.google === 'object' && typeof window.google.maps === 'object')){\n scriptLoad(\"https://maps.googleapis.com/maps/api/js?key=\"+process.env.REACT_APP_GOOGLE_KEY+\"&v=3.exp&libraries=geometry,drawing,places\").then(res => this.initMap())\n }\n else{\n this.initMap()\n }\n\n }\n\n initMap = () => {\n this.map = new window.google.maps.Map(\n document.getElementById('googleMap'),\n {\n zoom: 19,\n defaultCenter: this.props.mapCenter,\n center: this.props.mapCenter\n }\n )\n if(this.map){\n new window.google.maps.event.addListenerOnce(this.map, 'idle', function(){\n if(this.props.onMapMounted)\n this.props.onMapMounted(); \n }.bind(this));\n }\n }\n\n placeFloor = () => {\n if(this.props.floor && this.map){\n RotatableOverlay.prototype = new window.google.maps.OverlayView()\n\n if(this.props.floor.boundsNE && this.props.floor.boundsSW){\n let ne = {lat: this.props.floor.boundsNE.lat, lng: this.props.floor.boundsNE.lng}\n let sw = {lat: this.props.floor.boundsSW.lat, lng: this.props.floor.boundsSW.lng}\n\n let imageBounds = new window.google.maps.LatLngBounds(\n new window.google.maps.LatLng(sw.lat, sw.lng),\n new window.google.maps.LatLng(ne.lat, ne.lng)\n )\n this.overlay = new RotatableOverlay(imageBounds, this.props.floor.planUrl, this.map, this.props.floor.rotation);\n } \n }\n }\n\n purge = () => {\n if(this.overlay){\n this.overlay.setMap(null);\n this.overlay=null;\n }\n if(this.mainMarker){\n this.mainMarker.setMap(null);\n this.mainMarker=null;\n }\n this.gatewayMarkers.map(gatewayMarker => \n gatewayMarker.setMap(null)\n );\n this.gatewayMarkers = [];\n this.rnMarkers.map(rnMarker => \n rnMarker.setMap(null)\n );\n this.rnMarkers = []\n }\n\n placeMarkers = () => {\n \n this.mainMarker = new window.google.maps.Marker({\n position: this.props.position,\n map: this.map,\n draggable: true\n }) \n this.mainMarker.setAnimation(window.google.maps.Animation.BOUNCE)\n\n new window.google.maps.event.addListener(this.mainMarker, 'dragend', function(){\n let newPosition = this.mainMarker.getPosition()\n let pos = {lat: newPosition.lat(), lng: newPosition.lng()}\n this.props.onChange(pos)\n }.bind(this))\n\n for(let i = 0; i < this.props.referenceNodes.length; i++){\n \n let marker = new window.google.maps.Marker({\n position: { lat: this.props.referenceNodes[i].attributes.latitude, lng: this.props.referenceNodes[i].attributes.longitude },\n map: this.map,\n icon: {url: blue}\n })\n this.rnMarkers.push(marker)\n }\n\n for(let i = 0; i < this.props.gateways.length; i++){\n \n let marker = new window.google.maps.Marker({\n position: { lat: this.props.gateways[i].attributes.latitude, lng: this.props.gateways[i].attributes.longitude },\n map: this.map,\n icon: {url: yellow}\n })\n this.gatewayMarkers.push(marker)\n }\n }\n\n componentDidUpdate(){\n if(this.props.refreshMap){\n if(this.map){\n if(this.props.isValidLat && this.props.isValidLng)\n this.map.setCenter(this.props.mapCenter);\n this.purge();\n this.placeFloor();\n this.placeMarkers();\n }\n }\n }\n\n render(){\n return(\n
\n
\n
\n )\n }\n}\n\nexport default DevicesMap\n\n\n","import React, { Component } from 'react';\nimport IconTextField from '../Gui/IconTextField';\nimport SaveButton from '../Gui/SaveButton';\nimport { Grid } from '@material-ui/core';\nimport CancelButton from '../Gui/CancelButton';\nimport DeviceHubIcon from '@material-ui/icons/DeviceHub';\nimport IconSelector from '../Gui/IconSelector';\nimport PlaceIcon from \"@material-ui/icons/Place\";\nimport LanguageIcon from '@material-ui/icons/Language';\nimport Icon from '@mdi/react';\nimport { mdiFileDocument } from '@mdi/js';\nimport { gray } from '../../themes/style';\nimport { connect } from 'react-redux';\nimport { fetchLocations, fetchGateways, fetchReferenceNodes } from '../../actions/apiCalls';\nimport { fetchGatewayTemplates, postGateway } from '../../actions/apiCalls';\nimport DevicesMap from '../Map/DevicesMap';\nimport { withTranslation } from 'react-i18next';\n\nclass CreateGateway extends Component {\n\n constructor(){\n super();\n this.state={\n mapCenter: { lat: 54.370765, lng: 18.613733},\n currentTemplateId: \"\",\n currentFloorId: \"\",\n gatewayName: \"\",\n currentFloor: null,\n shownGateways: [],\n shownReferenceNodes: [],\n position: { lat: 54.370765, lng: 18.613733},\n refreshMap: true\n };\n this._mounted = false;\n }\n\n onFloorSelect = (e) => {\n let floorId = e.target.value\n let location = this.props.locations.find(location =>\n location.buildings.find(building =>\n building.floors.find(floor =>\n floor.id === floorId\n )\n )\n )\n\n let shownGateways = this.props.gateways.filter(function(gateway){\n return gateway.relationships.floor.data.id === floorId\n })\n\n let shownReferenceNodes = this.props.referenceNodes.filter(function(referenceNode){\n return referenceNode.relationships.floor.data.id === floorId\n })\n\n let floor = null\n this.props.locations.map(l => l.buildings.map(b => b.floors.map(f=> f.id === floorId ? (floor = f):(null))))\n if(this._mounted){\n if(floor && floor.planUrl && floor.boundsNE && floor.boundsSW){\n this.setState({currentFloorId: floorId,\n mapCenter:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude}, currentFloor: floor,\n shownGateways: shownGateways,\n shownReferenceNodes: shownReferenceNodes,\n refreshMap: true\n })\n }\n else{\n this.setState({currentFloorId: floorId,\n mapCenter:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude}, currentFloor: null,\n shownGateways: shownGateways,\n shownReferenceNodes: shownReferenceNodes,\n refreshMap: true\n })\n }\n }\n }\n\n onNamechange = (e) => {\n this.setState({gatewayName: e.target.value, refreshMap: false})\n }\n\n onTemplateChange = (e) => {\n this.setState({currentTemplateId: e.target.value, refreshMap: false})\n }\n \n onPositionChange = (pos) => {\n this.setState({position: pos, refreshMap: false})\n }\n\n componentDidMount = () => {\n try{\n this.props.fetchProjectLocations(this.props.projectId);\n this.props.fetchProjectGateways(this.props.projectId);\n this.props.fetchProjectReferenceNodes(this.props.projectId);\n this.props.fetchProjectGatewayTemplates(this.props.projectId);\n this._mounted = true;\n }\n catch(e){\n console.log(e)\n }\n };\n\n submitGateway = () => {\n let data = {\n name: this.state.gatewayName,\n latitude: this.state.position.lat,\n longitude: this.state.position.lng,\n templateId: this.state.currentTemplateId,\n floorId: this.state.currentFloorId\n };\n this.props.postNewGateway(this.props.projectId, data);\n this.props.onClose();\n }\n\n componentWillUnmount = () => {\n this._mounted = false;\n }\n\n onTextFieldPostionChange = (e) => {\n \n const { position } = { ...this.state };\n const currentState = position;\n let re = /^[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)$/\n if(e.target.value === \"\" || re.test(e.target.value))\n currentState[e.target.name] = parseFloat(e.target.value)\n this.setState({\n postion: currentState,\n mapCenter: currentState\n });\n };\n \n isValidLat = () => {\n\n if(this.state.position.lat > -90 && this.state.position.lat < 90){\n if(!isNaN(this.state.position.lat))\n return true\n }\n else{\n\n return false\n } \n };\n\n isValidLng = () => {\n\n if(this.state.position.lng > -180 && this.state.position.lng < 180)\n if(!isNaN(this.state.position.lng))\n return true\n else\n return false\n };\n\n render(){\n const { t } = this.props\n let isValidLat = this.isValidLat();\n let isValidLng = this.isValidLng();\n return(\n this._mounted ? (\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n }/>\n } onChange={this.onFloorSelect} floors={true}/>\n } onChange={this.onTemplateChange}/>\n }/>\n }/>\n \n \n \n \n \n \n \n \n
\n ):(\n
e.preventDefault()}>\n \n \n \n \n {/* */}\n \n \n \n \n \n \n\n \n
\n )\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n locations: state.locations.locations,\n gateways: state.gateways.gateways,\n referenceNodes: state.referenceNodes.referenceNodes,\n gatewayTemplates: state.gateways.gatewayTemplates\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectLocations(projectId) {\n dispatch(fetchLocations(projectId));\n },\n fetchProjectGateways(projectId) {\n dispatch(fetchGateways(projectId));\n },\n fetchProjectReferenceNodes(projectId){\n dispatch(fetchReferenceNodes(projectId))\n },\n fetchProjectGatewayTemplates(projectId) {\n dispatch(fetchGatewayTemplates(projectId));\n },\n postNewGateway(projectId, data){\n dispatch(postGateway(projectId, data)).then(() => dispatch(fetchGateways(projectId)));\n }\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(CreateGateway));","import React, { Component } from 'react';\nimport IconTextField from '../Gui/IconTextField';\nimport SaveButton from '../Gui/SaveButton';\nimport { Grid } from '@material-ui/core';\nimport CancelButton from '../Gui/CancelButton';\nimport DeviceHubIcon from '@material-ui/icons/DeviceHub';\nimport IconSelector from '../Gui/IconSelector';\nimport PlaceIcon from \"@material-ui/icons/Place\";\nimport LanguageIcon from '@material-ui/icons/Language';\nimport Icon from '@mdi/react';\nimport { mdiFileDocument } from '@mdi/js';\nimport { gray } from '../../themes/style';\nimport { connect } from 'react-redux';\nimport { patchGateway, fetchGateways, fetchGatewayTemplates } from '../../actions/apiCalls';\nimport { fetchLocations, fetchReferenceNodes } from '../../actions/apiCalls';\nimport DevicesMap from '../Map/DevicesMap';\nimport axios from 'axios';\nimport { withTranslation } from 'react-i18next';\n\nclass EditGateway extends Component {\n\n constructor(){\n super();\n this.state={\n mapCenter: { lat: 54.370765, lng: 18.613733},\n currentTemplateId: \"\",\n currentFloorId: \"\",\n gatewayName: \"\",\n shownGateways: [],\n shownReferenceNodes: [],\n currentFloor: null,\n position: { lat: 54.370765, lng: 18.613733},\n };\n this._mounted = false;\n this._first = true;\n }\n\n\n componentDidMount = () => {\n try{\n if(this.props.gatewayId){\n if(this.props.projectId){\n this.props.fetchProjectReferenceNodes(this.props.projectId);\n this.props.fetchProjectGateways(this.props.projectId)\n this.props.fetchProjectGatewayTemplates(this.props.projectId);\n this.props.fetchProjectLocations(this.props.projectId);\n this._mounted = true;\n }\n }\n }catch(e){\n console.log(e)\n }\n }\n\n onMapMounted = () => {\n this._mapMounted = true;\n if(this.props.projectId && this.props.gatewayId){\n let url = process.env.REACT_APP_API_URL+'projects/'+this.props.projectId+'/gateways/'+this.props.gatewayId\n axios.get(url).then(res => this.setState({\n gatewayName: res.data.data[0].attributes.name,\n mapCenter: {lat: res.data.data[0].attributes.latitude, lng:res.data.data[0].attributes.longitude},\n position: {lat: res.data.data[0].attributes.latitude, lng:res.data.data[0].attributes.longitude},\n currentFloorId: res.data.data[0].relationships.floor.data.id,\n currentTemplateId: res.data.data[0].relationships.gatewayTemplate.data.id\n }, this.setFloor(res.data.data[0].relationships.floor.data.id)))\n .catch(e => {\n this.props.onFetchFailed(e)\n this.props.onClose();\n })\n }else{\n this.props.onClose();\n } \n }\n \n submitGateway = () => {\n let data = {\n name: this.state.gatewayName,\n latitude: this.state.position.lat,\n longitude: this.state.position.lng,\n templateId: this.state.currentTemplateId,\n floorId: this.state.currentFloorId\n };\n\n if(this.props.projectId && this.props.gatewayId){\n this.props.updateGateway(this.props.projectId, this.props.gatewayId, data);\n this.props.onClose();\n }\n }\n\n setFloor = (floorId) => {\n let location = this.props.locations.find(location =>\n location.buildings.find(building =>\n building.floors.find(floor =>\n floor.id === floorId\n )\n )\n )\n\n let shownGateways = this.props.gateways.filter(function(gateway){\n return gateway.relationships.floor.data.id === floorId && gateway.id !== this.props.gatewayId\n }.bind(this))\n\n let shownReferenceNodes = this.props.referenceNodes.filter(function(referenceNode){\n return referenceNode.relationships.floor.data.id === floorId\n })\n\n let floor = null\n this.props.locations.map(l => l.buildings.map(b => b.floors.map(f=> f.id === floorId ? (floor = f):(null))))\n if(this._mounted){\n if(floor && floor.planUrl && floor.boundsNE && floor.boundsSW){\n this.setState({currentFloorId: floorId,\n mapCenter:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude}, currentFloor: floor,\n shownGateways: shownGateways,\n shownReferenceNodes: shownReferenceNodes,\n refreshMap: true\n })\n }\n else{\n this.setState({currentFloorId: floorId,\n mapCenter:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude}, currentFloor: null,\n shownGateways: shownGateways,\n shownReferenceNodes: shownReferenceNodes,\n refreshMap: true\n })\n }\n }\n }\n\n onFloorSelect = (e) => {\n let floorId = e.target.value\n this.setFloor(floorId)\n }\n\n onNamechange = (e) => {\n this.setState({gatewayName: e.target.value, refreshMap: false})\n }\n\n onTemplateChange = (e) => {\n this.setState({currentTemplateId: e.target.value, refreshMap: false})\n }\n \n onPositionChange = (pos) => {\n this.setState({ \n position: pos,\n latInput: pos.lat,\n lngInput: pos.lng,\n refreshMap: false})\n }\n\n onTextFieldPostionChange = (e) => {\n \n const { position } = { ...this.state };\n const currentState = position;\n let re = /^[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)$/\n if(e.target.value === \"\" || re.test(e.target.value))\n currentState[e.target.name] = parseFloat(e.target.value)\n this.setState({\n postion: currentState,\n mapCenter: currentState\n });\n };\n \n isValidLat = () => {\n\n if(this.state.position.lat > -90 && this.state.position.lat < 90){\n if(!isNaN(this.state.position.lat))\n return true\n }\n else{\n\n return false\n } \n };\n\n isValidLng = () => {\n\n if(this.state.position.lng > -180 && this.state.position.lng < 180)\n if(!isNaN(this.state.position.lng))\n return true\n else\n return false\n };\n\n render(){\n const { t } = this.props\n let isValidLat = this.isValidLat();\n let isValidLng = this.isValidLng();\n return(\n this._mounted ? (\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n }/>\n } onChange={this.onFloorSelect} floors={true}/>\n } onChange={this.onTemplateChange}/>\n }/>\n }/>\n \n \n \n \n {/* */}\n \n \n \n \n
\n ):(\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n referenceNodes: state.referenceNodes.referenceNodes,\n gateways: state.gateways.gateways,\n locations: state.locations.locations,\n gatewayTemplates: state.gateways.gatewayTemplates\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectLocations(projectId) {\n dispatch(fetchLocations(projectId)) \n },\n fetchProjectReferenceNodes(projectId){\n dispatch(fetchReferenceNodes(projectId))\n },\n fetchProjectGatewayTemplates(projectId){\n dispatch(fetchGatewayTemplates(projectId))\n },\n fetchProjectGateways(projectId){\n dispatch(fetchGateways(projectId))\n },\n updateGateway(projectId, gatewayId, data){\n dispatch(patchGateway(projectId, gatewayId, data)).then(() => dispatch(fetchGateways(projectId)));\n },\n onFetchFailed(e){\n\t\t\tdispatch({type: 'FETCH_GATEWAY_FAILURE'});\n }\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(EditGateway));","import React from \"react\";\nimport { useSelector } from 'react-redux'\nimport PublishIcon from '@material-ui/icons/Publish';\nimport { Fab } from \"@material-ui/core\";\nimport { isCorrectRole, uploadFab } from \"../../utils\";\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { useTranslation } from 'react-i18next';\n\nconst UploadMacFilters = (props) => {\n\n const { t } = useTranslation();\n const role = useSelector(state => state.projects.currentRole)\n const isAllowed = isCorrectRole(role)\n\n return(\n isAllowed ?\n \n \n \n \n :
\n )\n}\n\nexport default UploadMacFilters","import React from \"react\";\nimport DataTable from '../Gui/DataTable';\nimport AddFab from \"../Gui/AddFab\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport { useTranslation } from 'react-i18next';\nimport UploadMacFilters from \"./../Gui/UploadMacFilters.js\"\n\nconst GatewayPanel = (props) => {\n\n const { t } = useTranslation();\n return(\n
\n \n \n {t(\"gateways.title\")}\n \n \n \n \n \n \n \n
\n )\n};\n\nexport default GatewayPanel;","import React, { Component } from \"react\";\nimport { connect } from 'react-redux';\nimport { fetchGateways, deleteGateway } from '../../actions/apiCalls';\nimport CreateGateway from \"./CreateGateway\";\nimport EditGateway from \"./EditGateway\";\nimport { withTranslation } from 'react-i18next';\nimport GatewayPanel from \"./GatewayPanel.js\"\nimport { Route, Switch, } from \"react-router-dom\";\nimport axios from 'axios';\nimport { withSnackbar } from 'notistack';\n\nclass Gateways extends Component{\n\n constructor(){\n super()\n this.state = {\n currGatewayId: \"\",\n gateway: null,\n checked: false\n };\n this._interval = null\n };\n \n componentDidMount(){\n if(this.props.projectId){\n this.props.fetchProjectGateways(this.props.projectId);\n this._interval = setInterval( () => \n { \n this.props.fetchProjectGateways(this.props.projectId);\n }, 5000 );\n }\n else\n this.props.history.push('/');\n };\n \n componentWillUnmount = () => {\n if(this._interval)\n clearInterval(this._interval);\n }\n\n deleteGateway = (e, gatewayId) => {\n e.stopPropagation();\n if (this.props.projectId !== null)\n this.props.deleteGateway(this.props.projectId, gatewayId);\n }\n\n addNewGateway = () => {\n this.props.history.push(this.props.match.path + '/create');\n };\n\n updateGatewaysWithBeaonsMac = () => {\n let url = process.env.REACT_APP_API_URL+'projects/' + this.props.projectId +'/gateways/update-with-mac'\n axios.get(url).then(res => {\n if (res !== null){\n this.notify(this.props.t('snackbar.gatewaysUploadMacSuccess'), 'success')\n }\n }\n ).catch(e => {\n this.notify(this.props.t(\"snackbar.gatewaysUploadMacError\"), 'error')\n });\n\n }\n\n editGateway = (e, gatewayId) => {\n this.setState({\n currGatewayId: gatewayId\n })\n this.props.history.push(this.props.match.path + '/edit');\n };\n\n sendEmailMessage = (e, gatewayId) => {\n let url = process.env.REACT_APP_API_URL+'projects/' + this.props.projectId +'/gateways/gateway-status-update/' + gatewayId.id\n axios.post(url, {})\n .catch(function (error) {\n console.log(error);\n });\n this.props.fetchProjectGateways(this.props.projectId);\n }\n closeForm = () => {\n this.props.history.push('/gateways');\n };\n\n notify = (message, type) => {\n this.props.enqueueSnackbar(message, { \n variant: type,\n });\n }\n\n\n render(){\n const { t } = this.props\n const attributes = [\"name\", \"location\", \"building\", \"floor\", \"bleFirmwareVersion\", \"firmwareVersion\", \"bootloaderVersion\", \"status\"]\n const headers = [t(\"gateways.name\"), t(\"gateways.location\"), t(\"gateways.building\"), t(\"gateways.floor\"), \"BLE firmware\", \"Firmware\", \"Bootloader\", \"Status\", \"Notify\"]\n return(\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n gateways: state.gateways.gateways,\n locations: state.locations.locations,\n gatewayTemplates: state.gateways.gatewayTemplates,\n errors: state.gateways.errors,\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectGateways(projectId) {\n dispatch(fetchGateways(projectId));\n },\n deleteGateway(projectId, gatewayId) {\n dispatch(deleteGateway(projectId, gatewayId)).then(() => dispatch(fetchGateways(projectId)));\n },\n clearGatewayErrors(){\n dispatch({type: 'GATEWAY_CLEAR_ERRORS'})\n }\n\n }\n};\n\n\nexport default withSnackbar(connect(mapStateToProps, mapDispatchToProps)(withTranslation()(Gateways)));\n","import React, { Component } from 'react';\nimport IconTextField from '../Gui/IconTextField';\nimport SaveButton from '../Gui/SaveButton';\nimport { Grid, Button, TextField, MuiThemeProvider } from '@material-ui/core';\nimport CancelButton from '../Gui/CancelButton';\nimport { connect } from 'react-redux';\nimport { fetchBeaconTemplates, fetchBeacons, postBeacon } from '../../actions/apiCalls'\nimport { gray, IstokTheme } from '../../themes/style';\nimport IconSelector from '../Gui/IconSelector';\nimport { mdiFileDocument } from '@mdi/js';\nimport Icon from '@mdi/react';\nimport { mdiTagTextOutline } from '@mdi/js';\nimport BluetoothIcon from '@material-ui/icons/Bluetooth'\nimport { withSnackbar } from 'notistack';\nimport { withTranslation } from 'react-i18next';\n\nclass CreateBeacon extends Component{\n\n constructor(){\n super();\n this.state={\n name: \"\",\n mac: \"\",\n templateId: \"\",\n icon: \"\",\n iconUrl: null\n }\n this._mounted = false;\n };\n \n componentDidMount = () => {\n try{\n if(this.props.projectId){\n this.props.fetchProjectBeaconTemplates(this.props.projectId)\n this._mounted = true;\n }\n }catch(e){\n console.log(e)\n }\n };\n\n submitBeacons = () => {\n let data = {}\n if (this.state.icon !== \"\" && this.state.iconUrl){\n data = {\n name: this.state.name,\n MAC: this.state.mac,\n templateId: this.state.templateId,\n icon: this.state.icon,\n iconUrl: this.state.iconUrl\n }\n }\n else{\n data = {\n name: this.state.name,\n MAC: this.state.mac,\n templateId: this.state.templateId\n }\n }\n if(this.props.projectId)\n this.props.postBeacons(this.props.projectId, data);\n this.props.onClose();\n }\n\n onNamechange = (e) => {\n this.setState({name: e.target.value})\n };\n\n onMACchange = (e) => {\n this.setState({mac: e.target.value})\n };\n\n onTemplateChange = (e) => {\n this.setState({templateId: e.target.value})\n };\n\n componentWillUnmount = () => {\n this._mounted = false;\n };\n\n fileSelectedHandler = (event) => {\n let image = event.target.files[0]\n let reader = new FileReader()\n \n reader.onload = (e) => {\n if(image.size < 100000){\n this.setState({icon: image.name, iconUrl: e.target.result})\n }\n else{\n this.notify(\"Image is too large should be below 100kb\");\n }\n }\n reader.readAsDataURL(event.target.files[0])\n }\n\n notify = (message) => {\n this.props.enqueueSnackbar(message, { \n variant: 'error',\n });\n }\n\n render(){\n const { t } = this.props\n let height = 36;\n return(\n this._mounted ? (\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n }/>\n }/>\n } onChange={this.onTemplateChange}/>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ):(\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n beaconTemplates: state.beacons.beaconTemplates\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectBeaconTemplates(projectId) {\n dispatch(fetchBeaconTemplates(projectId)).then(() => console.log(\"Fetched Beacon Templates\"));\n },\n postBeacons(projectId, data){\n dispatch(postBeacon(projectId, data)).then(() => dispatch(fetchBeacons(projectId)));\n }\n }\n};\n\nexport default withSnackbar(connect(mapStateToProps, mapDispatchToProps)(withTranslation()(CreateBeacon)));","import React, { Component } from 'react';\nimport IconTextField from '../Gui/IconTextField';\nimport SaveButton from '../Gui/SaveButton';\nimport { Grid, MuiThemeProvider, TextField, Button } from '@material-ui/core';\nimport CancelButton from '../Gui/CancelButton';\nimport { connect } from 'react-redux';\nimport { fetchBeaconTemplates, fetchBeacons, patchBeacon } from '../../actions/apiCalls'\nimport { gray, IstokTheme } from '../../themes/style';\nimport IconSelector from '../Gui/IconSelector';\nimport { mdiFileDocument } from '@mdi/js';\nimport Icon from '@mdi/react';\nimport { mdiTagTextOutline } from '@mdi/js';\nimport BluetoothIcon from '@material-ui/icons/Bluetooth'\nimport axios from 'axios';\nimport { withSnackbar } from 'notistack';\nimport { withTranslation } from 'react-i18next';\n\nclass EditBeacon extends Component{\n\n constructor(){\n super();\n this.state={\n name: \"\",\n mac: \"\",\n templateId: \"\",\n icon: \"\",\n iconUrl: null\n }\n this._mounted = false;\n };\n \n componentDidMount = () => {\n try{\n if(this.props.projectId && this.props.beaconId){\n this.props.fetchProjectBeaconTemplates(this.props.projectId)\n let url = process.env.REACT_APP_API_URL+'projects/'+this.props.projectId+'/beacons/'+this.props.beaconId\n axios.get(url).then(res => this.setState({\n name: res.data.data[0].attributes.name,\n mac: res.data.data[0].attributes.MAC,\n icon: res.data.data[0].attributes.icon == null ? \"\": res.data.data[0].attributes.icon,\n iconUrl: res.data.data[0].attributes.iconUrl,\n templateId: res.data.data[0].relationships.beaconTemplate.data.id\n })).catch(e => {\n this.props.onFetchFailed(e);\n this.props.onClose();\n })\n this._mounted = true;\n }\n }catch(e){\n console.log(e)\n }\n };\n\n fileSelectedHandler = (event) => {\n let image = event.target.files[0]\n let reader = new FileReader()\n \n reader.onload = (e) => {\n if(image.size < 100000){\n this.setState({icon: image.name, iconUrl: e.target.result})\n }\n else{\n this.notify(\"Image is too large should be below 100kb\");\n }\n }\n reader.readAsDataURL(event.target.files[0])\n }\n\n editBeacon = () => {\n let data = {}\n if (this.state.icon !== \"\" && this.state.iconUrl){\n data = {\n name: this.state.name,\n MAC: this.state.mac,\n templateId: this.state.templateId,\n icon: this.state.icon,\n iconUrl: this.state.iconUrl\n }\n }\n else{\n data = {\n name: this.state.name,\n MAC: this.state.mac,\n templateId: this.state.templateId\n }\n }\n if(this.props.projectId && this.props.beaconId)\n this.props.editBeacon(this.props.projectId, this.props.beaconId, data);\n this.props.onClose();\n }\n\n onNamechange = (e) => {\n this.setState({name: e.target.value})\n };\n\n onMACchange = (e) => {\n this.setState({mac: e.target.value})\n };\n\n onTemplateChange = (e) => {\n this.setState({templateId: e.target.value})\n };\n\n notify = (message) => {\n this.props.enqueueSnackbar(message, { \n variant: 'error',\n });\n }\n\n render(){\n let height = 36;\n const { t } = this.props\n return(\n this._mounted ? (\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n }/>\n }/>\n } onChange={this.onTemplateChange}/>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ):(\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n beaconTemplates: state.beacons.beaconTemplates\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectBeaconTemplates(projectId) {\n dispatch(fetchBeaconTemplates(projectId)).then(() => console.log(\"Fetched Beacon Templates\"));\n },\n editBeacon(projectId, beaconId, data){\n dispatch(patchBeacon(projectId, beaconId, data)).then(() => dispatch(fetchBeacons(projectId)));\n },\n onFetchFailed(e){\n dispatch({type: 'FETCH_BEACON_FAILURE'});\n }\n }\n};\n\nexport default withSnackbar(connect(mapStateToProps, mapDispatchToProps)(withTranslation()(EditBeacon)));","import React from \"react\";\nimport DataTable from '../Gui/DataTable';\nimport AddFab from \"../Gui/AddFab\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport { useTranslation } from 'react-i18next';\n\nconst BeaconsPanel = (props) => {\n \n const { t } = useTranslation();\n return(\n
\n \n \n {t(\"beacons.title\")}\n \n \n \n \n \n \n
\n )\n};\n\nexport default BeaconsPanel","import React, { Component } from \"react\";\nimport { connect } from 'react-redux';\nimport { fetchBeacons, deleteBeacons } from '../../actions/apiCalls';\nimport CreateBeacon from './CreateBeacon';\nimport EditBeacon from \"./EditBeacon\";\nimport { withTranslation } from 'react-i18next';\nimport { Route, Switch } from \"react-router-dom\";\nimport BeaconsPanel from './BeaconsPanel.js'\n\nclass Beacons extends Component{\n\n constructor(){\n super()\n this.state = {\n currBeaconId: \"\"\n };\n };\n\n componentDidMount(){\n if(this.props.projectId)\n this.props.fetchProjectBeacons(this.props.projectId)\n else\n this.props.history.push('/')\n };\n\n openCreate = () => {\n this.props.history.push(this.props.match.path + '/create');\n };\n\n openEdit = (e, beaconId) => {\n this.setState({\n currBeaconId: beaconId\n })\n this.props.history.push(this.props.match.path + '/edit');\n };\n\n deleteBeacon = (e, beaconId) => {\n e.stopPropagation();\n if (this.props.projectId !== null)\n this.props.deleteBeacon(this.props.projectId, beaconId);\n }\n\n closeForm = () => {\n this.props.history.push('/beacons');\n };\n\n render(){\n const { t } = this.props\n const attributes = [\"name\", \"MAC\", \"battery\"]\n const headers = [t('beacons.name'), t('beacons.mac'), t('beacons.battery') + \" %\"]\n return(\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n beacons: state.beacons.beacons,\n errors: state.beacons.errors\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectBeacons(projectId) {\n dispatch(fetchBeacons(projectId)).then(() => console.log(\"Fetched Beacons\"));\n },\n deleteBeacon(projectId, beaconId) {\n dispatch(deleteBeacons(projectId, beaconId)).then(() => dispatch(fetchBeacons(projectId)));\n },\n clearBeaconErrors() {\n dispatch({type: 'BEACONS_CLEAR_ERRORS'})\n }\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(Beacons));\n","import React, { Component } from \"react\";\nimport SaveButton from '../Gui/SaveButton';\nimport { Grid, TextField, MuiThemeProvider, Button } from '@material-ui/core';\nimport CancelButton from '../Gui/CancelButton';\nimport IconSelector from '../Gui/IconSelector';\nimport FileDocumentIcon from \"mdi-react/FileDocumentIcon\";\nimport IconTextField from '../Gui/IconTextField';\nimport InformationVariantIcon from 'mdi-react/InformationVariantIcon';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport { connect } from 'react-redux';\nimport { postGatewayTemplate, postReferenceNodeTemplate, postBeaconTemplate } from '../../actions/apiCalls';\nimport { fetchBeaconTemplates, fetchGatewayTemplates, fetchReferenceNodeTemplates } from '../../actions/apiCalls';\nimport { withTranslation } from 'react-i18next';\nimport { IstokTheme } from \"../../themes/style\";\nimport { withSnackbar } from \"notistack\";\n\nclass CreateTemplate extends Component{\n \n constructor(){\n super();\n this.state = {\n name: \"\",\n interval: 0,\n type: \"Gateway\",\n security: \"\",\n ssid: \"\",\n password: \"\",\n icon: \"\",\n iconUrl: null\n };\n };\n\n submitTemplate = () => {\n if(this.props.projectId){\n switch(this.state.type){\n case \"Gateway\":\n let dataGT = {\n name: this.state.name,\n description: \"\",\n ssid: this.state.ssid,\n password: this.state.password\n }\n this.props.postGatewayTemplate(this.props.projectId, dataGT);\n break;\n case \"Beacon\":\n let dataBT = {\n name: this.state.name,\n defaultIcon: this.state.icon,\n defaultIconUrl: this.state.iconUrl\n }\n this.props.postBeaconTemplate(this.props.projectId, dataBT);\n break;\n case \"Reference Node\":\n let dataRNT = {\n name: this.state.name,\n description: \"\",\n interval: this.state.interval\n }\n this.props.postReferenceNodeTemplate(this.props.projectId, dataRNT);\n break;\n default:\n break;\n }\n this.props.onClose();\n }\n };\n\n validateData = () => {\n if(this.state.type === \"Gateway\"){\n return this.state.name && this.state.ssid && this.state.password ? false: true;\n }\n else{\n return this.state.name ? false: true\n }\n }\n\n onTypeChange = (e) => {\n if (e.target.value !== this.state.type){\n this.setState({\n type: e.target.value,\n name: \"\",\n interval: 0,\n security: \"\",\n ssid: \"\",\n password: \"\",\n icon: \"\",\n iconUrl: null\n })\n }\n }\n\n onSecChange = (e) => {\n this.setState({security: e.target.value})\n };\n\n onNameChange = (e) => {\n this.setState({name: e.target.value})\n };\n\n onIntervalChange = (e) => {\n this.setState({interval: e.target.value})\n };\n\n onSSIDChange = (e) => {\n this.setState({ssid: e.target.value})\n };\n\n onPasswordChange = (e) => {\n this.setState({password: e.target.value})\n };\n \n fileSelectedHandler = (event) => {\n let image = event.target.files[0]\n let reader = new FileReader()\n \n reader.onload = (e) => {\n if(image.size < 100000){\n this.setState({icon: image.name, iconUrl: e.target.result})\n }\n else{\n const { t } = this.props;\n this.props.enqueueSnackbar(t(\"snackbar.imageTooLarge\"), { \n variant: 'error',\n });\n }\n }\n reader.readAsDataURL(event.target.files[0])\n }\n\n render(){\n const { t } = this.props\n let height = 36;\n const typeData = [\n {id:\"Beacon\", attributes:{name: t(\"templates.beaconType\")}},\n {id:\"Reference Node\", attributes:{name: t(\"templates.referenceNodeType\")}},\n {id:\"Gateway\", attributes:{name: t(\"templates.gatewayType\")}}\n ];\n const securityData = [\n {id:\"WPA2 Personal/PSK\", attributes:{name: \"WPA2 Personal/PSK\"}}\n ];\n return(\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.type === \"Gateway\" ?\n (\n \n } onChange={this.onTypeChange}/>\n } />\n } onChange={this.onSecChange}/>\n \n \n \n \n \n \n \n \n \n \n )\n :(\n this.state.type === \"Reference Node\" ? (\n \n } onChange={this.onTypeChange}/>\n }/>\n ):(\n \n } onChange={this.onTypeChange}/>\n }/>\n \n \n \n \n \n \n \n \n \n \n \n )\n )}\n \n \n \n \n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n postGatewayTemplate(projectId, data) {\n dispatch(postGatewayTemplate(projectId, data)).then(() => dispatch(fetchGatewayTemplates(projectId)));\n },\n postReferenceNodeTemplate(projectId, data) {\n dispatch(postReferenceNodeTemplate(projectId, data)).then(() => dispatch(fetchReferenceNodeTemplates(projectId)));\n },\n postBeaconTemplate(projectId, data) {\n dispatch(postBeaconTemplate(projectId, data)).then(() => dispatch(fetchBeaconTemplates(projectId)));\n }\n }\n};\n\nexport default withSnackbar(connect(mapStateToProps, mapDispatchToProps)(withTranslation()(CreateTemplate)));","import React, { Component } from \"react\";\nimport SaveButton from '../Gui/SaveButton';\nimport { Grid, TextField, MuiThemeProvider, Button } from '@material-ui/core';\nimport CancelButton from '../Gui/CancelButton';\nimport IconSelector from '../Gui/IconSelector';\nimport FileDocumentIcon from \"mdi-react/FileDocumentIcon\";\nimport IconTextField from '../Gui/IconTextField';\nimport InformationVariantIcon from 'mdi-react/InformationVariantIcon';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport { connect } from 'react-redux';\nimport { patchGatewayTemplate, patchReferenceNodeTemplate, patchBeaconTemplate } from '../../actions/apiCalls';\nimport { fetchBeaconTemplates, fetchGatewayTemplates, fetchReferenceNodeTemplates } from '../../actions/apiCalls';\nimport axios from \"axios\";\nimport { withTranslation } from 'react-i18next';\nimport { IstokTheme } from \"../../themes/style\";\nimport { withSnackbar } from \"notistack\";\n\nclass EditTemplate extends Component{\n \n constructor(){\n super();\n this.state = {\n name: \"\",\n interval: 0,\n type: \"\",\n security: \"\",\n ssid: \"\",\n password: \"\",\n icon: \"\",\n iconUrl: null\n };\n };\n\n componentDidMount = () => {\n if(this.props.type && this.props.templateId){\n switch(this.props.type){\n case \"Gateway\":\n let urlGT = process.env.REACT_APP_API_URL+'projects/'+this.props.projectId+'/gateway-templates/'+this.props.templateId\n try{\n axios.get(urlGT).then(res => this.setState({\n name: res.data.data[0].attributes.name,\n type: this.props.type,\n security: \"WPA2 Personal/PSK\",\n ssid: res.data.data[0].attributes.ssid,\n password: res.data.data[0].attributes.password,\n })).catch(e => {\n this.props.onfetchError(e, \"Gateway\");\n this.props.onClose();\n });\n }\n catch (e){\n console.log(e)\n }\n break;\n case \"Beacon\":\n let urlBT = process.env.REACT_APP_API_URL+'projects/'+this.props.projectId+'/beacon-templates/'+this.props.templateId\n try{\n axios.get(urlBT).then(res => this.setState({\n name: res.data.data[0].attributes.name,\n icon: res.data.data[0].attributes.defaultIcon,\n iconUrl: res.data.data[0].attributes.defaultIconUrl,\n type: this.props.type\n })).catch(e => {\n this.props.onfetchError(e, \"Beacon\");\n this.props.onClose();\n });\n }\n catch (e){\n console.log(e)\n }\n break;\n case \"Reference Node\":\n let urlRNT = process.env.REACT_APP_API_URL+'projects/'+this.props.projectId+'/reference-node-templates/'+this.props.templateId\n try{\n axios.get(urlRNT).then(res => this.setState({\n name: res.data.data[0].attributes.name,\n interval: res.data.data[0].attributes.interval,\n type: this.props.type\n })).catch(e => {\n this.props.onfetchError(e, \"Reference Node\");\n this.props.onClose();\n });\n }\n catch (e){\n console.log(e)\n }\n break;\n default:\n break;\n }\n }\n }\n\n submitTemplate = () => {\n if(this.props.projectId){\n switch(this.state.type){\n case \"Gateway\":\n let dataGT = {\n name: this.state.name,\n description: \"\",\n ssid: this.state.ssid,\n password: this.state.password\n }\n this.props.patchGatewayTemplate(this.props.projectId, this.props.templateId, dataGT)\n break;\n case \"Beacon\":\n let dataBT = {\n name: this.state.name,\n interval: this.state.interval,\n defaultIcon: this.state.icon,\n defaultIconUrl: this.state.iconUrl\n }\n this.props.patchBeaconTemplate(this.props.projectId, this.props.templateId, dataBT)\n break;\n case \"Reference Node\":\n let dataRNT = {\n name: this.state.name,\n description: \"\",\n interval: this.state.interval\n }\n this.props.patchReferenceNodeTemplate(this.props.projectId, this.props.templateId, dataRNT)\n break;\n default:\n break;\n }\n this.props.onClose();\n }\n };\n\n validateData = () => {\n if(this.state.type === \"Gateway\"){\n return this.state.name && this.state.ssid && this.state.password ? false: true;\n }\n else{\n return this.state.name ? false: true\n }\n }\n\n onSecChange = (e) => {\n this.setState({security: e.target.value})\n };\n\n onNameChange = (e) => {\n this.setState({name: e.target.value})\n };\n\n onIntervalChange = (e) => {\n this.setState({interval: e.target.value})\n };\n\n onSSIDChange = (e) => {\n this.setState({ssid: e.target.value})\n };\n\n onPasswordChange = (e) => {\n this.setState({password: e.target.value})\n };\n \n fileSelectedHandler = (event) => {\n let image = event.target.files[0]\n let reader = new FileReader()\n \n reader.onload = (e) => {\n if(image.size < 100000){\n this.setState({icon: image.name, iconUrl: e.target.result})\n }\n else{\n const { t } = this.props;\n this.props.enqueueSnackbar(t(\"snackbar.imageTooLarge\"), { \n variant: 'error',\n });\n }\n }\n reader.readAsDataURL(event.target.files[0])\n }\n\n render(){\n const { t } = this.props\n let height = 36;\n const typeData = [\n {id:\"Beacon\", attributes:{name: t(\"templates.beaconType\")}},\n {id:\"Reference Node\", attributes:{name: t(\"templates.referenceNodeType\")}},\n {id:\"Gateway\", attributes:{name: t(\"templates.gatewayType\")}}\n ];\n const securityData = [\n {id:\"WPA2 Personal/PSK\", attributes:{name: \"WPA2 Personal/PSK\"}}\n ];\n\n return(\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.type === \"Gateway\" ?\n (\n \n } disabled={true} />\n } />\n } onChange={this.onSecChange}/>\n \n \n \n \n \n \n \n \n \n \n )\n :(\n this.state.type === \"Reference Node\" ? (\n \n } disabled={true} />\n }/>\n ):(\n \n } disabled={true} />\n }/>\n \n \n \n \n \n \n \n \n \n \n \n )\n )}\n \n \n \n \n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n patchGatewayTemplate(projectId, templateId, data) {\n dispatch(patchGatewayTemplate(projectId, templateId, data)).then(() => dispatch(fetchGatewayTemplates(projectId)));\n },\n patchReferenceNodeTemplate(projectId, templateId, data) {\n dispatch(patchReferenceNodeTemplate(projectId, templateId, data)).then(() => dispatch(fetchReferenceNodeTemplates(projectId)));\n ;\n },\n patchBeaconTemplate(projectId, templateId, data) {\n dispatch(patchBeaconTemplate(projectId, templateId, data)).then(() => dispatch(fetchBeaconTemplates(projectId)));\n },\n onfetchError(e, type){\n switch(type){\n case \"Gateway\":\n dispatch({type: 'FETCH_GATEWAY_TEMPLATE_FAILURE'});\n break\n case \"Beacon\":\n dispatch({type: 'FETCH_BEACON_TEMPLATE_FAILURE'});\n break;\n case \"Reference Node\":\n dispatch({type: 'FETCH_REFERENCE_NODE_TEMPLATE_FAILURE'});\n break;\n default:\n break;\n }\n }\n }\n};\n\nexport default withSnackbar(connect(mapStateToProps, mapDispatchToProps)(withTranslation()(EditTemplate)));","import React from \"react\";\nimport { useTranslation } from \"react-i18next\"\nimport DataTable from '../Gui/DataTable';\nimport AddFab from \"../Gui/AddFab\";\nimport { Grid, Typography } from \"@material-ui/core\";\n\nconst TemplatePanel = (props) => {\n\n const { t } = useTranslation();\n\n return(\n
\n \n \n {t('templates.title')}\n \n \n \n \n \n \n
\n )\n};\n\nexport default TemplatePanel","import React, { Component } from \"react\";\nimport { connect } from 'react-redux';\nimport { fetchBeaconTemplates, fetchGatewayTemplates, fetchReferenceNodeTemplates } from '../../actions/apiCalls';\nimport { deleteBeaconTemplates, deleteGatewayTemplates, deleteReferenceNodeTemplates } from '../../actions/apiCalls';\nimport CreateTemplate from './CreateTemplate';\nimport EditTemplate from \"./EditTemplate\";\nimport { withTranslation } from 'react-i18next';\nimport { Route, Switch } from \"react-router-dom\";\nimport TemplatePanel from './TemplatesPanel.js'\n\nclass Templates extends Component{\n\n constructor(){\n super()\n this.state = {\n templateId: \"\",\n currTemplateType: \"\"\n };\n };\n\n componentDidMount(){\n if(this.props.projectId)\n this.props.fetchTemplates(this.props.projectId)\n else\n this.props.history.push('/')\n };\n\n openCreate = () => {\n this.props.history.push(this.props.match.url + '/create')\n };\n\n openEdit = (e, templateId, type) => {\n this.props.history.push(this.props.match.url+'/edit')\n switch (type){\n case \"Reference Node\":\n this.setState({templateId: templateId, currTemplateType: \"Reference Node\"})\n break;\n case \"Beacon\":\n this.setState({templateId: templateId, currTemplateType: \"Beacon\"})\n break;\n case \"Gateway\":\n this.setState({templateId: templateId, currTemplateType: \"Gateway\"})\n break;\n default:\n break;\n };\n };\n\n deleteBeacon = (e, templateId, type) => {\n e.stopPropagation();\n switch (type){\n case \"Reference Node\":\n this.props.deleteReferenceNodeTemplates(this.props.projectId, templateId);\n break;\n case \"Beacon\":\n this.props.deleteBeaconTemplates(this.props.projectId, templateId);\n break;\n case \"Gateway\":\n this.props.deleteGatewayTemplates(this.props.projectId, templateId);\n break;\n default:\n break;\n };\n };\n\n closeForm = () => {\n this.props.history.push('/templates')\n };\n\n render(){\n const { t } = this.props\n const attributes = [\"name\", \"type\"];\n const headers = [t(\"templates.name\"), t(\"templates.type\")];\n const data = [];\n const referenceNodeTemplates = this.props.referenceNodeTemplates;\n const gatewayTemplates = this.props.gatewayTemplates;\n const beaconTemplates = this.props.beaconTemplates;\n\n referenceNodeTemplates.map(rnt => {\n rnt.attributes.type = \"Reference Node\"\n return data.push(rnt)\n })\n gatewayTemplates.map(gt => {\n gt.attributes.type = \"Gateway\"\n return data.push(gt)\n })\n beaconTemplates.map(bea => {\n bea.attributes.type = \"Beacon\"\n return data.push(bea)\n })\n\n return(\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n beaconTemplates: state.beacons.beaconTemplates,\n referenceNodeTemplates: state.referenceNodes.referenceNodeTemplates,\n gatewayTemplates: state.gateways.gatewayTemplates\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchTemplates(projectId) {\n dispatch(fetchBeaconTemplates(projectId))\n .then(() => dispatch(fetchGatewayTemplates(projectId)))\n .then(() => dispatch(fetchReferenceNodeTemplates(projectId)));\n },\n deleteReferenceNodeTemplates(projectId, templateId){\n dispatch(deleteReferenceNodeTemplates(projectId, templateId)).then(\n () => dispatch(fetchReferenceNodeTemplates(projectId)\n ));\n },\n deleteBeaconTemplates(projectId, templateId){\n dispatch(deleteBeaconTemplates(projectId, templateId)).then(\n () => dispatch(fetchBeaconTemplates(projectId)\n ));\n },\n deleteGatewayTemplates(projectId, templateId){\n dispatch(deleteGatewayTemplates(projectId, templateId)).then(\n () => dispatch(fetchGatewayTemplates(projectId)\n ));\n }\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(Templates));\n","import React, { Component } from \"react\"\nimport scriptLoad from '../../scriptLoader';\n\nexport default class Map extends Component {\n\n constructor(){\n super();\n this.map = null;\n }\n\n componentDidMount(){\n if(!(typeof window.google === 'object' && typeof window.google.maps === 'object')){\n scriptLoad(\"https://maps.googleapis.com/maps/api/js?key=\"+process.env.REACT_APP_GOOGLE_KEY+\"&v=3.exp&libraries=geometry,drawing,places\").then(res => this.initMap())\n }\n else{\n this.initMap()\n }\n }\n\n initMap = () => {\n this.map = new window.google.maps.Map(\n document.getElementById('googleMap'),\n {\n zoom: 19,\n center: this.props.mapCenter\n }\n )\n }\n\n render(){\n return(\n
\n
\n
\n )\n }\n}","import './IconMarker.css'\n\nclass IconMarker{\n constructor(latlng, imageSrc, map, size, mac) {\n this.id = \"\"\n this.mac = mac\n this.latlng_ = latlng\n this.size = size\n this.imageSrc = imageSrc\n this.div_ = null\n this.textWindow = null\n this.setMap(map)\n }\n \n prepareContent = () => {\n return '

ID : ' + this.id + ' MAC : ' + this.mac +'

'\n };\n\n onAdd = () => {\n if (!this.div_){\n this.div_ = document.createElement('div');\n this.div_.className = \"customMarker\"\n \n let img = document.createElement(\"img\");\n img.src = this.imageSrc;\n this.div_.appendChild(img);\n \n let panes = this.getPanes();\n panes.overlayMouseTarget.appendChild(this.div_);\n let content = this.prepareContent();\n this.textWindow = new window.google.maps.InfoWindow({\n content: content,\n pixelOffset: this.size\n })\n }\n }\n\n getMarker = () => {\n return this.div_;\n }\n\n draw = () => { \n let self = this;\n let point = this.getProjection().fromLatLngToDivPixel(this.latlng_);\n if (point) {\n this.div_.style.left = point.x + 'px';\n this.div_.style.top = point.y + 'px';\n }\n window.google.maps.event.addDomListener(this.div_, 'click', function() {\n this.textWindow.open(this.map, self);\n window.google.maps.event.trigger(self, 'click');\n }.bind(this));\n }\n\n onRemove = () => {\n this.div_.parentNode.removeChild(this.div_)\n this.div_ = null\n }\n\n setPosition = (latlng) => {\n this.latlng_ = new window.google.maps.LatLng(\n latlng.lat,\n latlng.lng\n );\n\n let point = this.getProjection().fromLatLngToDivPixel(this.latlng_);\n if (point && this.div_) {\n this.div_.style.left = point.x + 'px';\n this.div_.style.top = point.y + 'px';\n }\n if(this.isInfoWindowOpen()){\n let self = this;\n this.textWindow.setMap(null);\n this.textWindow.open(this.map, self);\n }\n }\n\n getPosition = () => {\n return this.latlng_\n };\n\n\n isInfoWindowOpen = () => {\n if(this.textWindow){\n if(typeof this.textWindow.getMap === \"function\"){\n let map = this.textWindow.getMap()\n return map !== null && typeof map !== \"undefined\"\n }\n }\n return false;\n }\n\n};\n\nexport default IconMarker;","import Map from './Map';\nimport RotatableOverlay from './RotatableOverlay';\nimport IconMarker from './IconMarker';\nimport { green } from '../../themes/style';\nimport './TrackingMap.css';\n\nconst blue = \"https://maps.google.com/mapfiles/ms/icons/blue-dot.png\"\nconst yellow = \"https://maps.google.com/mapfiles/ms/icons/yellow-dot.png\"\n\n\nfunction gatewayInfoContent(id, name, MAC) {\n if(MAC)\n return '

Name: ' + name +'

ID: ' + id + '

MAC: ' + MAC\n else\n return '

Name: ' + name +'

ID: ' + id + '

'\n\n}\n\nclass TrackingMap extends Map {\n \n constructor(){\n super();\n this.overlay = null;\n this.beaconMarkers = [];\n this.currentBeacons = [];\n this.rnMarkers = [];\n this.gatewayMarkers = [];\n this.polygons = [];\n this.deviceVisible = false;\n this.zoneVisible = false;\n }\n\n // InitMap Override\n initMap = () => {\n this.map = new window.google.maps.Map(\n document.getElementById('googleMap'),\n {\n zoom: 19,\n center: this.props.mapCenter,\n streetViewControl: false,\n }\n )\n if(this.map){\n let div = document.createElement('div');\n div.style.background = '#fff';\n div.style.width = 'auto';\n div.style.padding = '10px';\n div.style.margin = '10px';\n div.style.border= '1px solid #000';\n \n let divDevices = document.createElement('div');\n let checkboxDevices = document.createElement('input');\n checkboxDevices.type = 'checkbox';\n checkboxDevices.onclick = this.toggleDevicesVisibility;\n let labelDevices = document.createElement('label');\n labelDevices.innerHTML = \"Devices\"\n labelDevices.className = \"label\"\n divDevices.appendChild(checkboxDevices)\n divDevices.appendChild(labelDevices)\n div.appendChild(divDevices)\n\n let divZones = document.createElement('div');\n let checkboxZones = document.createElement('input');\n checkboxZones.type = 'checkbox';\n checkboxZones.onclick = this.toggleZonesVisibility;\n let labelZones = document.createElement('label');\n labelZones.innerHTML = \"Zones\"\n labelZones.className = \"label\"\n divZones.appendChild(checkboxZones)\n divZones.appendChild(labelZones)\n div.appendChild(divZones)\n\n this.map.controls[window.google.maps.ControlPosition.LEFT_BOTTOM].push(div);\n\n new window.google.maps.event.addListenerOnce(this.map, 'idle', function(){\n if(this.props.onMapMounted)\n this.props.onMapMounted()\n \n }.bind(this)); \n }\n }\n\n placeFloor = () => {\n if(this.props.floor && this.map){\n RotatableOverlay.prototype = new window.google.maps.OverlayView()\n\n if(this.props.floor.boundsNE && this.props.floor.boundsSW && !this.overlay){\n let ne = {lat: this.props.floor.boundsNE.lat, lng: this.props.floor.boundsNE.lng}\n let sw = {lat: this.props.floor.boundsSW.lat, lng: this.props.floor.boundsSW.lng}\n\n let imageBounds = new window.google.maps.LatLngBounds(\n new window.google.maps.LatLng(sw.lat, sw.lng),\n new window.google.maps.LatLng(ne.lat, ne.lng)\n )\n this.overlay = new RotatableOverlay(imageBounds, this.props.floor.planUrl, this.map, this.props.floor.rotation);\n }\n }\n }\n\n toggleDevicesVisibility = () => {\n this.deviceVisible = !this.deviceVisible\n this.purgeDevices();\n this.placeDevices();\n }\n\n toggleZonesVisibility = () => {\n this.zoneVisible = !this.zoneVisible\n this.purgeZones();\n this.placeZones();\n }\n\n purgeOverlay = () => {\n if(this.overlay){\n this.overlay.setMap(null);\n this.overlay = null;\n }\n };\n\n purgeBeacons = () => {\n while(this.beaconMarkers[0]){\n this.beaconMarkers.pop().setMap(null)\n } \n }\n\n placeOrUpdateBeacons = () => {\n this.props.bea.forEach(beacon => {\n let placed = false\n if(beacon){\n this.beaconMarkers.forEach(marker => {\n if(marker.get('id') === beacon.id){\n marker.setPosition({ lat: beacon.attributes.latitude, lng: beacon.attributes.longitude })\n placed = true\n }\n })\n if(!placed){\n // NEWBLOCK\n if(beacon.attributes.iconUrl){\n IconMarker.prototype = new window.google.maps.OverlayView()\n // If we create a new ProtlessComponent we will recreate it with default marker and\n let marker = new IconMarker(\n new window.google.maps.LatLng(\n beacon.attributes.latitude,\n beacon.attributes.longitude\n ),\n beacon.attributes.iconUrl,\n this.map,\n new window.google.maps.Size(0, -50),\n beacon.attributes.MAC\n )\n marker.set('id', beacon.id)\n this.beaconMarkers.push(marker)\n }\n // END NEWBLOCK\n else{\n let content = '

ID : ' + beacon.id + ' MAC : ' + beacon.attributes.MAC +' Name : ' + beacon.attributes.name + '

'\n let infowindow = new window.google.maps.InfoWindow({\n content: content\n })\n\n let marker = new window.google.maps.Marker({\n position: { lat: beacon.attributes.latitude, lng: beacon.attributes.longitude },\n map: this.map\n })\n\n marker.set('id', beacon.id)\n marker.addListener('click', function() {\n infowindow.open(this.map, marker);\n }) \n this.beaconMarkers.push(marker)\n }\n }\n }\n })\n }\n\n purgeDevices = () => {\n while(this.rnMarkers[0]){\n this.rnMarkers.pop().setMap(null)\n } \n while(this.gatewayMarkers[0]){\n this.gatewayMarkers.pop().setMap(null)\n } \n }\n\n placeDevices = () => {\n for(let i = 0; i < this.props.rn.length; i++){\n \n let content = gatewayInfoContent(this.props.rn[i].id, this.props.rn[i].attributes.name, this.props.rn[i].attributes.MAC)\n let infowindow = new window.google.maps.InfoWindow({\n content: content\n })\n \n let marker = new window.google.maps.Marker({\n position: { lat: this.props.rn[i].attributes.latitude, lng: this.props.rn[i].attributes.longitude },\n map: this.map,\n visible: this.deviceVisible,\n icon: {url: blue}\n })\n\n marker.addListener('click', function() {\n infowindow.open(this.map, marker);\n })\n this.rnMarkers.push(marker)\n }\n\n for(let i = 0; i < this.props.gt.length; i++){\n \n let content = gatewayInfoContent(this.props.gt[i].id, this.props.gt[i].attributes.name, this.props.gt[i].attributes.MAC)\n \n let infowindow = new window.google.maps.InfoWindow({\n content: content\n })\n \n let marker = new window.google.maps.Marker({\n position: { lat: this.props.gt[i].attributes.latitude, lng: this.props.gt[i].attributes.longitude },\n map: this.map,\n visible: this.deviceVisible,\n icon: {url: yellow}\n })\n\n marker.addListener('click', function() {\n infowindow.open(this.map, marker);\n })\n\n this.gatewayMarkers.push(marker)\n }\n }\n\n placeZones = () => {\n if(this.props.zones){\n for(let i = 0; i < this.props.zones.length; i++){\n if (this.props.zones[i].attributes.points.length > 3){\n let array = [];\n this.props.zones[i].attributes.points.map(point => \n array.push({\n lat: point.latitude, lng: point.longitude\n })\n );\n \n let polygon = new window.google.maps.Polygon({\n visible: this.zoneVisible,\n paths: array,\n strokeColor: green,\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: green,\n fillOpacity: 0.35\n });\n polygon.setMap(this.map);\n this.polygons.push(polygon)\n }\n } \n } \n };\n\n purgeZones = () =>{\n while(this.polygons[0]){\n this.polygons.pop().setMap(null)\n }\n };\n\n setMapZoom = (zoom) => {\n if(this.map){\n this.map.setZoom(zoom)\n }\n }\n\n // Map componentbehaviour\n componentDidUpdate = () => {\n if(this.props.purgeOverlay){\n this.purgeOverlay();\n this.purgeZones();\n }\n this.placeFloor();\n if (this.props.purgeDevices){\n this.purgeDevices() \n }\n if(this.props.mapCenter && this.map && this.props.mapSetCenter) // TODO Ustawienie bliżej ekranu \n this.map.setCenter(this.props.mapCenter)\n if (this.props.purgeBeacons)\n this.purgeBeacons() \n \n this.placeZones();\n this.placeDevices();\n this.placeOrUpdateBeacons();\n }\n}\n\nexport default TrackingMap\n\n\n","import React, { Component } from \"react\";\nimport { Select, InputLabel, MenuItem, FormControl, Grid } from \"@material-ui/core\";\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport { IstokTheme } from '../../themes/style'\n\nclass OutlinedSelect extends Component{\n render(){\n return(\n \n \n \n \n \n {this.props.label}\n \n \n \n \n \n \n );\n };\n};\n\nexport default OutlinedSelect;","import React, { Component } from \"react\";\nimport {Popper, Paper, MenuList, MenuItem, TextField } from \"@material-ui/core\";\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\nimport { withTranslation } from 'react-i18next';\n\nclass FilterTextFiled extends Component{\n \n state = {\n open:false,\n anchorEl: null\n };\n\n handleChange = (e) => {\n \n this.props.onNameChange(e.target.value);\n if(this.props.beaconList.length === 1){\n this.setState({\n anchorEl: e.currentTarget, \n })\n this.props.onNameChange(e.target.value);\n }\n else{\n \n this.props.onChooseBeacon(e.target.value)\n this.props.onNameChange(e.target.value);\n this.setState({\n anchorEl: e.currentTarget, \n })\n }\n };\n\n handleClose = (e, id, name) =>{\n this.setState({\n anchorEl: this.state.anchorEl ? null : e.currentTarget,\n })\n this.props.onChooseBeacon(name);\n this.props.onBeaconSelect(id);\n };\n\n handleClickAway = (e) =>{\n this.setState({\n anchorEl: this.state.anchorEl ? null : e.currentTarget,\n })\n };\n\n render(){\n const open = Boolean(this.state.anchorEl); \n const id = open ? 'simple-popper' : null;\n const { t } = this.props\n \n return(\n
\n \n \n \n \n \n { \n this.props.beaconList.map((d, k) =>\n {this.handleClose(e, d.id, d.attributes.name);}}>{d.attributes.name}\n )\n } \n \n \n \n \n
\n )\n }\n}export default withTranslation()(FilterTextFiled);","import { CircularProgress, Grid } from \"@material-ui/core\";\nimport React from \"react\";\n\nexport const Loader = (props) => {\n return(\n
\n \n \n \n \n \n
\n )\n}","import React, { Component } from \"react\";\nimport { Grid, Button } from \"@material-ui/core\";\nimport { connect } from \"react-redux\";\nimport { fetchLocations, fetchReferenceNodes, fetchBeaconTemplates } from '../../actions/apiCalls';\nimport { fetchBeacons, fetchGateways } from '../../actions/apiCalls';\nimport IconSelector from \"../Gui/IconSelector\";\nimport TrackingMap from \"../Map/TrackingMap\";\nimport mqtt from 'mqtt'\nimport { withSnackbar } from \"notistack\";\nimport { fetchZones } from '../../actions/apiCalls';\nimport OutlinedSelect from \"../Gui/OutlinedSelect\";\nimport { withTranslation } from \"react-i18next\";\nimport FilterTextFiled from \"../Gui/FilterTextField\";\nimport { isEmpty, isUUID } from \"../../utils\";\nimport { Loader } from \"../Gui/Loader\";\n\nclass Tracking extends Component {\n\n constructor(){\n super();\n this.state = {\n floorId: \"\",\n showDefaultFloor: true,\n beaconTemplateFilterId: \"\",\n beaconFilterId: \"\",\n floor: null,\n mapCenter: { lat: 54.370765, lng: 18.613733},\n mapMounted: false,\n _isMounted: false,\n shownBeacons:[],\n shownGateways:[],\n shownZones: [],\n shownRn:[],\n purgePlan: false,\n clearBeacons: false,\n clearDevices: false,\n setCenter: false,\n beaconName: \"\",\n beaconNames: [],\n centerMapOnFoundBeacon: false\n };\n this.mqttWebsocket = mqtt.connect(process.env.REACT_APP_WSS_URL)\n };\n\n componentDidMount(){\n if(this.props.projectId){\n this.props.fetchProjectDevices(this.props.projectId);\n this.props.fetchProjectBeaconTemplates(this.props.projectId);\n this.setState({_isMounted: true }, () => this.connectMqtt());\n }\n else\n this.props.history.push('/');\n };\n \n componentDidUpdate = () => {\n if(!isEmpty(this.props.locationsMeta)){\n // Once select default floor\n if(this.state.mapMounted && this.state.showDefaultFloor){\n let defId = this.props.locationsMeta.defaultFloorId\n let e = {};\n e.target = {};\n e.target.value = defId;\n if(isUUID(defId)){\n this.selectFloor(defId)\n }\n }\n }\n }\n\n isComponentReady = () => {\n // Component should be ready to render once all the api calls finish.\n return this.props.dataFetched\n }\n\n onMapMounted = () => {\n this.setState({mapMounted: true})\n };\n\n componentWillUnmount = () => {\n this.props.allowFetch();\n if (this.mqttWebsocket !== null){\n this.mqttWebsocket.end();\n }\n }\n\n notify = (message, variant) => {\n this.props.enqueueSnackbar(message, { \n variant: variant,\n }); \n }\n\n connectMqtt = () => {\n this.mqttWebsocket.on('connect', function () {\n this.mqttWebsocket.subscribe('beacon/event/status', function (err) {\n if (!err) {\n this.notify(this.props.t('tracking.success'), \"success\");\n }\n else{\n this.notify(this.props.t('tracking.warrning'), \"warning\");\n }\n }.bind(this))\n }.bind(this))\n this.mqttWebsocket.on('error', function () {\n this.notify(this.props.t('tracking.error'), \"error\");\n }.bind(this))\n this.mqttWebsocket.on('message', function (topic, message) {\n this.receiveMessage(message.toString())\n }.bind(this))\n this.mqttWebsocket.on('end', function () {\n this.notify(this.props.t('tracking.disconnect'), \"info\")\n }.bind(this))\n }\n \n receiveMessage = (message) => { \n // Data must've already been fetched\n if (!this.props.dataFetched)\n return;\n try{\n let messData = JSON.parse(message).data\n let beaconId = messData.id\n let floorId = messData.attributes.floorId\n \n if( this.state.beaconFilterId ){\n if( beaconId !== this.state.beaconFilterId ){\n return\n }\n else if (this.state.centerMapOnFoundBeacon){\n this.selectFloor(floorId, {lat: messData.attributes.latitude, lng: messData.attributes.longitude})\n }\n }\n if (floorId === this.state.floorId){\n // Szukamy beaona z wiadomości w beaconach projektu\n let index = this.props.beacons.findIndex(x => x.id === beaconId)\n if ( index !== -1 ){\n let arr = this.state.shownBeacons.slice(0)\n\n if( this.state.beaconTemplateFilterId ){\n let rel = this.props.beacons[index].relationships\n let btData = rel.beaconTemplate.data\n if ( btData.id !== this.state.beaconTemplateFilterId ){\n return\n }\n }\n\n // Setting Mac and Icon\n messData.attributes.MAC = this.props.beacons[index].attributes.MAC;\n messData.attributes.name = this.props.beacons[index].attributes.name;\n if (this.props.beacons[index].attributes.defaultIcon && this.props.beacons[index].attributes.defaultIconUrl){\n messData.attributes.iconUrl = this.props.beacons[index].attributes.defaultIconUrl;\n }\n if (this.props.beacons[index].attributes.icon && this.props.beacons[index].attributes.iconUrl){\n messData.attributes.iconUrl = this.props.beacons[index].attributes.iconUrl;\n }\n arr[index] = messData;\n this.setState({shownBeacons: arr, clearDevices: false, setCenter: false, clearBeacons: false});\n } \n }\n }\n catch{\n console.log(\"Error during message recieve\")\n }\n }\n \n resetBeacons = () => {\n let length = this.props.beacons.length\n let beaconLocations = new Array(length)\n this.setState({\n shownBeacons: beaconLocations,\n clearBeacons: true\n })\n }\n\n onCertainBeaconSelect = (uuid) => {\n this.resetBeacons();\n this.setState({\n beaconFilterId: uuid,\n beaconTemplateFilterId: \"\",\n centerMapOnFoundBeacon: true,\n })\n }\n\n onCertainBeaconTypeSelect = (e) => {\n this.resetBeacons();\n this.setState({\n beaconTemplateFilterId: e.target.value,\n beaconFilterId: \"\",\n beaconName: \"\",\n setCenter: false,\n })\n }\n\n onFilterNameChange = (name) => {\n let beaconList = this.appendList(name);\n this.setState({\n beaconName: name,\n beaconNames: beaconList,\n setCenter: false,\n })\n };\n\n appendList = (name) => {\n let beaconData = []\n let newBeaconData = []\n let strLen = name.length;\n this.props.beacons.map((data, key) =>\n beaconData.push(data) \n )\n for(let i = 0; i < beaconData.length; i++){\n if((beaconData[i].attributes.name.substring(0, strLen).toLowerCase() === name.toLowerCase())){\n newBeaconData.push(beaconData[i]);\n if(beaconData[i].attributes.name.toLowerCase() === name.toLowerCase()){\n return [beaconData[i]];\n }\n }\n }\n return newBeaconData;\n };\n\n chooseBeacon = (name) => {\n this.setState({\n beaconName: name,\n setCenter: false,\n });\n };\n\n clearFilter = () => {\n this.setState({\n beaconTemplateFilterId: \"\",\n beaconFilterId: \"\",\n beaconName: \"\",\n setCenter: false,\n })\n }\n\n selectFloor = (floorId, optionalCenter = null) => {\n this.resetBeacons();\n\n let location = this.props.locations.find(location =>\n location.buildings.find(building =>\n building.floors.find(floor =>\n floor.id === floorId\n )\n )\n )\n\n let shownZones = this.props.zones.filter(function(zone){\n return zone.relationships.floor.data.id === floorId\n })\n \n let shownGateways = this.props.gateways.filter(function(gateway){\n return gateway.relationships.floor.data.id === floorId\n })\n\n let shownReferenceNodes = this.props.referenceNodes.filter(function(referenceNode){\n return referenceNode.relationships.floor.data.id === floorId\n })\n\n if(location){\n let floor = null\n this.props.locations.map(l => l.buildings.map(b => b.floors.map(f=> f.id === floorId ? (floor = f):(null))))\n if(this.state._isMounted){\n if(floor && floor.planUrl && floor.boundsNE && floor.boundsSW){\n this.setState({floorId: floorId,\n mapCenter: optionalCenter ? optionalCenter: {lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude}, floor: floor, purgePlan: true, clearDevices: true,\n shownGateways: shownGateways,\n shownRn: shownReferenceNodes,\n shownZones: shownZones,\n setCenter: true,\n showDefaultFloor: false,\n centerMapOnFoundBeacon: false\n })\n }\n else{\n this.setState({floorId: floorId,\n mapCenter: optionalCenter ? optionalCenter: {lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude}, floor: null, purgePlan: true, clearDevices: true,\n shownGateways: shownGateways,\n shownRn: shownReferenceNodes,\n shownZones: shownZones,\n setCenter: true,\n showDefaultFloor: false,\n centerMapOnFoundBeacon: false\n })\n }\n }\n }\n else{\n this.setState({showDefaultFloor: false, centerMapOnFoundBeacon: false})\n }\n }\n \n onFloorSelect = (e) => {\n this.setState({\n beaconFilterId: \"\",\n beaconName: \"\",\n beaconTemplateFilterId: \"\",\n })\n let floorId = e.target.value;\n this.selectFloor(floorId);\n }\n \n render(){\n const { t } = this.props\n if (!this.isComponentReady()) return( \n )\n \n return(\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.state._isMounted ?\n (\n \n )\n : ()}\n \n
\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n locations: state.locations.locations,\n locationsMeta: state.locations.metadata,\n gateways: state.gateways.gateways,\n beacons: state.beacons.beacons,\n dataFetched: state.devices.fetched,\n referenceNodes: state.referenceNodes.referenceNodes,\n beaconTemplates: state.beacons.beaconTemplates,\n zones: state.zones.zones\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectBeaconTemplates(projectId) {\n dispatch(fetchBeaconTemplates(projectId));\n },\n fetchProjectDevices(projectId) {\n dispatch(fetchReferenceNodes(projectId))\n .then(() => dispatch(fetchZones(projectId))\n .then(() => dispatch(fetchBeacons(projectId))\n .then(() => dispatch(fetchGateways(projectId))\n .then(() => dispatch(fetchLocations(projectId))))).then(() => dispatch({type: \"DATA_FETCHED\"})));\n },\n allowFetch() {\n dispatch({type: \"DATA_FETCHED_OUT\"});\n }\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withSnackbar(withTranslation()(Tracking)));","import React, { useEffect, useRef } from \"react\"\nimport scriptLoad from '../../scriptLoader'\nimport axios from 'axios'\n\n\nconst TrackingHistoryMap = (props) =>{\n\n let markers = useRef([]);\n let beaconPath = useRef();\n let map = useRef();\n\n const data = props.queryData();\n \n useEffect(() => {\n\n const initMap = () => {\n\n map.current = new window.google.maps.Map(document.getElementById('googleMap'),\n {\n zoom: 18,\n center: { lat: 54.370772, lng: 18.614036 }, \n });\n };\n\n if(!(typeof window.google === 'object' && typeof window.google.maps === 'object')){\n scriptLoad(\"https://maps.googleapis.com/maps/api/js?key=AIzaSyDu98s_Mngyn_OTUJkL-b01MSMgkn_WlW8&v=3.exp&libraries=geometry,drawing,places\").then(res => {initMap()})\n }\n else\n {\n initMap();\n\n }\n\n },[]);\n\n useEffect(() => {\n \n \n const removeMarkers = () => {\n\n setMapOnAll(null);\n\n };\n\n const fetchPosition = (data) => {\n let markerPosition = [];\n let url = process.env.REACT_APP_POSITION_PERSISTENCE_URL;\n axios.post(url + 'position/tracking', data) \n .then((response) => {\n try{\n markerPosition = response.data;\n if(typeof beaconPath.current !== \"undefined\"){\n removeLine();\n };\n removeMarkers();\n if(markerPosition.data.length > 0)\n {\n addMarker(markerPosition);\n addTrace(markerPosition);\n }\n }\n catch(error){\n return\n }\n \n }) \n .catch(function (error) {\n // handle error\n return\n });\n };\n \n if(Boolean(data)){\n\n if(Boolean(data.data.attributes.n_values)){\n const interval = setInterval(() => {\n fetchPosition(data);\n }, 3000);\n return () => clearInterval(interval);\n }\n else if(Boolean(data.data.attributes.startTime) && Boolean(data.data.attributes.endTime)){\n\n if(data.data.attributes.startTime.length >= 19 && data.data.attributes.endTime.length >= 19){\n const interval = setInterval(() => {\n fetchPosition(data);\n }, 3000);\n return () => clearInterval(interval);\n\n }\n }\n else if(Boolean(data.data.attributes.lastTime)){\n const interval = setInterval(() => {\n fetchPosition(data);\n }, 3000);\n return () => clearInterval(interval);\n }\n }\n },[data])\n \n const addMarker = (markerPosition) => {\n \n markers.current = []\n let marker = new window.google.maps.Marker({\n position: {lat: markerPosition[\"data\"][0][\"latitude\"], lng: markerPosition[\"data\"][0][\"longitude\"]},\n title: markerPosition[\"data\"][0][\"id\"],\n map: map.current,\n });\n markers.current.push(marker)\n \n };\n \n const addTrace = (markerPosition) => {\n \n let traceMark = []; // array of dict essential to set polyline\n markerPosition[\"data\"].map((k) => \n traceMark.push({lat: k[\"latitude\"], lng: k[\"longitude\"]})\n );\n beaconPath.current = new window.google.maps.Polyline({\n path: traceMark,\n geodesic: true,\n strokeColor: \"#FF0000\",\n strokeOpacity: 1.0,\n strokeWeight: 2,\n });\n\n beaconPath.current.setMap(map.current)\n\n };\n \n const setMapOnAll = (map) => {\n\n for (let i = 0; i < markers.current.length; i++){\n markers.current[i].setMap(map);\n }\n\n };\n \n const removeLine = () => {\n\n // console.log('REMOVING LINE');\n // beaconPath.setMap(null);\n // beaconPath = null;\n beaconPath.current.setMap(null);\n // beaconPath.current = null;\n };\n\n return(\n
\n
\n
\n )\n}\nexport default TrackingHistoryMap","import React from \"react\";\nimport MaskedInput from \"react-text-mask\";\nimport PropTypes from \"prop-types\";\n\nconst TextMaskCustom = (props) => {\n const { inputRef, ...other } = props;\n return (\n {\n inputRef(ref ? ref.inputElement : null);\n }}\n mask={[/[2-2]/, /\\d/, /\\d/,/\\d/,\"-\", /[0-1]/, /[0-9]/,\"-\", /\\d/, /\\d/, \" \", /[0-2]/, /[0-9]/,\":\", /[0-5]/, /[0-9]/,\":\", /[0-5]/, /[0-9]/]}\n placeholderChar={\"\\u2000\"}\n showMask\n />\n );\n }\n\nTextMaskCustom.propTypes = {\ninputRef: PropTypes.func.isRequired,\n};\nexport default TextMaskCustom","import React from \"react\"\nimport { Grid, TextField } from \"@material-ui/core\";\nimport TextMaskCustom from \"../Gui/MaskedInput.js\"\n\nconst DatePicker = (props) => {\n\n\n \n return(\n \n \n \n \n \n \n \n \n )\n}\n\nexport default DatePicker","import React, { useEffect, useState } from \"react\"\nimport TrackingHistoryMap from '../Map/TrackingHistoryMap.js'\nimport { useSelector, useDispatch } from 'react-redux';\nimport { fetchBeacons } from '../../actions/apiCalls';\nimport { makeStyles } from '@material-ui/core/styles';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FormControl from '@material-ui/core/FormControl';\nimport Select from '@material-ui/core/Select';\nimport { TextField } from \"@material-ui/core\";\nimport DatePicker from '../Gui/DatePicker.js'\nimport Grid from \"@material-ui/core/Grid\";\nimport axios from 'axios'\nimport { useSnackbar } from 'notistack';\n\nconst useStyles = makeStyles((theme) => ({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n selectEmpty: {\n marginTop: theme.spacing(1),\n },\n }));\n \nconst TrackingHistory = () => {\n\n\n const [startTime, setStart] = useState(null);\n const [endTime, setEnd] = useState(null);\n const { enqueueSnackbar } = useSnackbar();\n const [availableBeacon , setAvailableBeacon] = useState(false);\n const [values, setValues] = useState({\n project: '',\n beacon: '',\n filter: '',\n period: '',\n number: 1,\n })\n\n const classes = useStyles();\n const currentProjectId = useSelector(state => state.projects.currentProjectId)\n const beaconList = useSelector(state => state.beacons.beacons) \n const dispatch = useDispatch()\n \n\n let filterBy = {\n \n \"Time\": \"\",\n \"Last N Records\": \"\"\n };\n\n let filterTime = {\n\n \"Last 1 Hour\": '1h',\n \"Last 1 Day\": \"1d\",\n \"Last 5 Days\": \"5d\",\n \"Custom\": \"Custom\"\n }\n\n\n useEffect(() => {\n\n dispatch(fetchBeacons(currentProjectId))\n\n }, [dispatch, currentProjectId]);\n\n const handleChange = (e) => {\n\n setValues({\n ...values,\n [e.target.name]: e.target.value\n });\n \n if (e.target.name === \"beacon\")\n {\n fetchTime(e.target.value);\n }\n };\n\n const handleChangeStartTime = (event) => {\n setStart(event.target.value);\n };\n\n const handleChangeEndTime = (event) => {\n\n setEnd(event.target.value);\n };\n\n\n const fetchTime = (beaconId) => {\n let url = process.env.REACT_APP_POSITION_PERSISTENCE_URL;\n axios.get(url + 'time_period/single/' + beaconId)\n .then((response) => {\n let time = response.data;\n setEnd(time.data.attributes.newest)\n setStart(time.data.attributes.oldest)\n setAvailableBeacon(true);\n \n })\n \n .catch(function (error) {\n // handle error\n setAvailableBeacon(false)\n notify(\"No data for chosen beacon\")\n return\n });\n };\n\n const queryData = () => {\n\n if(values.filter === \"Time\" && values.period === \"Custom\"){\n if(isDate){\n return {\n data: {\n id: values.beacon,\n attributes : {\n startTime: startTime,\n endTime: endTime,\n lastTime: null,\n n_values: null\n }\n }\n }\n }\n }\n\n else if(values.filter === \"Time\"){\n return {\n data: {\n id: values.beacon,\n attributes : {\n startTime: null,\n endTime: null,\n lastTime: values.period,\n n_values: null\n }\n }\n }\n }\n\n else if(values.filter === \"Last N Records\"){\n if(isNumber)\n {\n return {\n data: {\n id: values.beacon,\n attributes : {\n startTime: null,\n endTime: null,\n lastTime: null,\n n_values: values.number\n }\n }\n }\n }\n }\n };\n\n const validateNumber = () => {\n\n if(values.number >= 1)\n\n return true;\n \n\n return false;\n\n };\n\n const validateDate = () => {\n\n if(startTime && endTime){\n\n let start = Date.parse(startTime);\n let end = Date.parse(endTime)\n if(end - start >= 0)\n return true;\n \n }\n return false;\n };\n\n const notify = (message) => {\n enqueueSnackbar(message, { \n variant: 'error',\n });\n }\n\n let isNumber = validateNumber();\n let isDate = validateDate();\n\n return(\n
\n \n \n \n \n \n Beacon\n \n {\n beaconList.map((k,v) => \n {k.attributes.name})\n }\n \n \n \n \n\n {values.beacon && availableBeacon? \n \n \n Filter by\n \n {\n Object.entries(filterBy).map((k,v) =>\n {k[0]})\n }\n \n \n : }\n\n {values.filter === \"Time\" && availableBeacon ? \n \n \n Period\n \n {\n Object.entries(filterTime).map((k,v) =>\n {k[0]})\n }\n \n \n : }\n\n {values.filter === \"Time\" && values.period === \"Custom\" && availableBeacon? \n \n \n \n \n : }\n\n {values.filter === \"Last N Records\" && availableBeacon ?\n \n \n \n \n : }\n\n \n \n \n \n
\n )\n};\nexport default TrackingHistory","import React, { Component } from \"react\";\nimport IconTextField from '../Gui/IconTextField';\nimport IconSelector from '../Gui/IconSelector';\nimport SaveButton from '../Gui/SaveButton';\nimport { Grid } from '@material-ui/core';\nimport CancelButton from '../Gui/CancelButton';\nimport { connect } from 'react-redux';\nimport { fetchReferenceNodeTemplates, fetchLocations, fetchGateways, postReferenceNode, fetchReferenceNodes } from '../../actions/apiCalls';\nimport AnchorIcon from \"mdi-react/AnchorIcon\";\nimport TagTextOutlineIcon from \"mdi-react/TagTextOutlineIcon\";\nimport PlaceIcon from \"@material-ui/icons/Place\";\nimport FileDocumentIcon from \"mdi-react/FileDocumentIcon\";\nimport DevicesMap from '../Map/DevicesMap';\nimport { withTranslation } from 'react-i18next';\n\nclass CreateReferenceNode extends Component{\n\n constructor(){\n super();\n this.state={\n name:\"\",\n mac:\"\",\n floor: null,\n floorId: \"\",\n templateId: \"\",\n mapCenter: { lat: 54.370765, lng: 18.613733},\n position: { lat: 54.370765, lng: 18.613733},\n refreshMap: false,\n shownGateways:[],\n shownReferenceNodes: []\n }\n this._mounted = false;\n }\n\n onNameChange = (e) =>{\n this.setState({name: e.target.value, refreshMap:false})\n }\n\n onMacChange = (e) =>{\n this.setState({mac: e.target.value, refreshMap:false})\n }\n\n onPositionChange = (pos) => {\n this.setState({position: pos, refreshMap: false})\n }\n\n onFloorSelect = (e) => {\n let floorId = e.target.value\n \n let location = this.props.locations.find(location =>\n location.buildings.find(building =>\n building.floors.find(floor =>\n floor.id === floorId\n )\n )\n )\n\n let shownGateways = this.props.gateways.filter(function(gateway){\n return gateway.relationships.floor.data.id === floorId\n })\n\n let shownReferenceNodes = this.props.referenceNodes.filter(function(referenceNode){\n return referenceNode.relationships.floor.data.id === floorId\n })\n\n if(location){\n let floor = null\n this.props.locations.map(l => l.buildings.map(b => b.floors.map(f=> f.id === floorId ? (floor = f):(null))))\n if(this._mounted){\n if(floor && floor.planUrl && floor.boundsNE && floor.boundsSW){\n this.setState({\n floorId: floorId,\n mapCenter:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n floor: floor,\n refreshMap: true,\n shownGateways: shownGateways,\n shownReferenceNodes: shownReferenceNodes\n })\n }\n else{\n this.setState({\n floorId: floorId,\n mapCenter:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude}, \n floor: null, \n refreshMap: true,\n shownGateways: shownGateways,\n shownReferenceNodes: shownReferenceNodes\n })\n }\n }\n }\n }\n\n onTemplateChange = (e) => {\n this.setState({templateId: e.target.value, refreshMap:false})\n }\n\n componentDidMount = () => { \n try{\n if(this.props.projectId){\n this.props.fetchProjectLocations(this.props.projectId);\n this.props.fetchProjectReferenceNodes(this.props.projectId);\n this.props.fetchProjectReferenceNodeTemplates(this.props.projectId)\n this.props.fetchProjectGateways(this.props.projectId)\n this._mounted = true;\n }\n else\n this.props.onClose();\n }\n catch(e){\n console.log(e)\n }\n }\n\n submitReferenceNode = () => {\n let data = {\n name: this.state.name,\n MAC: this.state.mac,\n latitude: this.state.position.lat,\n longitude: this.state.position.lng,\n templateId: this.state.templateId,\n floorId: this.state.floorId\n }\n if (this.props.projectId){\n this.props.postReferenceNode(this.props.projectId, data);\n }\n this.props.onClose();\n }\n\n render(){\n const { t } = this.props\n return(\n this._mounted ? (\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n }/>\n }/>\n } onChange={this.onFloorSelect} floors={true}/>\n } onChange={this.onTemplateChange}/>\n \n \n \n \n \n {/* <- This is a new version */}\n \n \n \n
\n ):(\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n referenceNodes: state.referenceNodes.referenceNodes,\n referenceNodeTemplates: state.referenceNodes.referenceNodeTemplates,\n locations: state.locations.locations,\n gateways: state.gateways.gateways,\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectLocations(projectId) {\n dispatch(fetchLocations(projectId))\n },\n fetchProjectReferenceNodes(projectId){\n dispatch(fetchReferenceNodes(projectId))\n },\n fetchProjectReferenceNodeTemplates(projectId){\n dispatch(fetchReferenceNodeTemplates(projectId))\n },\n fetchProjectGateways(projectId){\n dispatch(fetchGateways(projectId))\n },\n postReferenceNode(projectId, data){\n dispatch(postReferenceNode(projectId, data)).then(() => dispatch(fetchReferenceNodes(projectId)));\n }\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(CreateReferenceNode));","import React, { Component } from \"react\";\nimport { Grid } from '@material-ui/core'\nimport CancelButton from \"../Gui/CancelButton\";\nimport SaveButton from \"../Gui/SaveButton\";\nimport IconTextField from '../Gui/IconTextField';\nimport IconSelector from '../Gui/IconSelector';\nimport AnchorIcon from \"mdi-react/AnchorIcon\";\nimport TagTextOutlineIcon from \"mdi-react/TagTextOutlineIcon\";\nimport PlaceIcon from \"@material-ui/icons/Place\";\nimport FileDocumentIcon from \"mdi-react/FileDocumentIcon\";\nimport DevicesMap from '../Map/DevicesMap';\nimport { connect } from 'react-redux';\nimport { fetchReferenceNodeTemplates, fetchLocations, fetchGateways, fetchReferenceNodes, patchReferenceNode } from '../../actions/apiCalls';\nimport axios from \"axios\";\nimport { withTranslation } from 'react-i18next';\n\nclass EditReferenceNode extends Component{\n\n constructor(){\n super();\n this.state = {\n name:\"\",\n mac:\"\",\n floor: null,\n floorId: \"\",\n templateId: \"\",\n mapCenter: { lat: 54.370765, lng: 18.613733},\n position: { lat: 54.370765, lng: 18.613733},\n refreshMap: false,\n shownGateways:[],\n shownReferenceNodes: [],\n mounted: false\n }\n this._first = false;\n this._mapMounted = false;\n }\n\n onMapMounted = () => {\n this._mapMounted = true;\n if(this.props.projectId && this.props.referenceNodeId){\n let url = process.env.REACT_APP_API_URL+'projects/'+this.props.projectId+'/reference-nodes/'+this.props.referenceNodeId\n axios.get(url).then(res => this.setState({\n name: res.data.data[0].attributes.name,\n mac: res.data.data[0].attributes.MAC,\n mapCenter: {lat: res.data.data[0].attributes.latitude, lng:res.data.data[0].attributes.longitude},\n position: {lat: res.data.data[0].attributes.latitude, lng:res.data.data[0].attributes.longitude},\n floorId: res.data.data[0].relationships.floor.data.id,\n templateId: res.data.data[0].relationships.referenceNodeTemplate.data.id\n }, this.setFloor(res.data.data[0].relationships.floor.data.id))).catch(e => {\n this.props.onFetchError(e);\n this.props.onClose();\n })\n }else{\n this.props.onClose();\n } \n }\n\n componentDidMount = () => {\n if(this.props.projectId){\n this.props.fetchProjectReferenceNodes(this.props.projectId);\n this.props.fetchProjectGateways(this.props.projectId)\n this.props.fetchProjectReferenceNodeTemplates(this.props.projectId);\n this.props.fetchProjectLocations(this.props.projectId);\n }\n } \n\n onNameChange = (e) =>{\n this.setState({name: e.target.value, refreshMap: false})\n }\n\n onMacChange = (e) =>{\n this.setState({mac: e.target.value, refreshMap: false})\n }\n\n onPositionChange = (pos) => {\n this.setState({position: pos, refreshMap: false})\n }\n\n setFloor = (floorId) => {\n let location = this.props.locations.find(location =>\n location.buildings.find(building =>\n building.floors.find(floor =>\n floor.id === floorId\n )\n )\n )\n\n let shownGateways = this.props.gateways.filter(function(gateway){\n return gateway.relationships.floor.data.id === floorId\n })\n\n let shownReferenceNodes = this.props.referenceNodes.filter(function(referenceNode){\n return referenceNode.relationships.floor.data.id === floorId && referenceNode.id !== this.props.referenceNodeId\n }.bind(this))\n\n if(location){\n let floor = null\n this.props.locations.map(l => l.buildings.map(b => b.floors.map(f=> f.id === floorId ? (floor = f):(null))))\n \n if(floor && floor.planUrl && floor.boundsNE && floor.boundsSW){\n this.setState({\n floorId: floorId,\n mapCenter:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n floor: floor,\n refreshMap: true,\n shownGateways: shownGateways,\n shownReferenceNodes: shownReferenceNodes\n })\n }\n else{\n this.setState({\n floorId: floorId,\n mapCenter:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude}, \n floor: null, \n refreshMap: true,\n shownGateways: shownGateways,\n shownReferenceNodes: shownReferenceNodes\n })\n }\n \n }\n }\n\n onFloorSelect = (e) => {\n let floorId = e.target.value\n this.setFloor(floorId)\n }\n\n onTemplateChange = (e) => {\n this.setState({templateId: e.target.value, refreshMap:false})\n }\n\n componentWillUnmount = () => {\n this._mapMounted = false;\n this._mounted = false;\n }\n\n submitReferenceNode = () => {\n let data = {\n name: this.state.name,\n MAC: this.state.mac,\n latitude: this.state.position.lat,\n longitude: this.state.position.lng,\n templateId: this.state.templateId,\n floorId: this.state.floorId\n }\n if (this.props.projectId && this.props.referenceNodeId){\n this.props.patchReferenceNode(this.props.projectId, this.props.referenceNodeId, data);\n }\n this.props.onClose();\n }\n\n render(){\n const { t } = this.props\n return(\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n }/>\n }/>\n } onChange={this.onFloorSelect} floors={true}/>\n } onChange={this.onTemplateChange}/>\n \n \n \n \n \n \n \n \n
\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n referenceNodes: state.referenceNodes.referenceNodes,\n referenceNodeTemplates: state.referenceNodes.referenceNodeTemplates,\n locations: state.locations.locations,\n gateways: state.gateways.gateways,\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectLocations(projectId) {\n dispatch(fetchLocations(projectId))\n },\n fetchProjectReferenceNodes(projectId){\n dispatch(fetchReferenceNodes(projectId))\n },\n fetchProjectReferenceNodeTemplates(projectId){\n dispatch(fetchReferenceNodeTemplates(projectId))\n },\n fetchProjectGateways(projectId){\n dispatch(fetchGateways(projectId))\n },\n patchReferenceNode(projectId, referenceNodeId, data){\n dispatch(patchReferenceNode(projectId, referenceNodeId, data)).then(() => dispatch(fetchReferenceNodes(projectId)));\n },\n onFetchError(e){\n dispatch({type: 'FETCH_REFERENCE_NODE_FAILURE'});\n }\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(EditReferenceNode));","import { useTranslation } from \"react-i18next\";\nimport React from \"react\";\nimport DataTable from '../Gui/DataTable';\nimport AddFab from \"../Gui/AddFab\";\nimport { Grid, Typography } from \"@material-ui/core\";\nconst ReferenceNodesPanel = (props) => {\n\n const { t } = useTranslation();\n return(\n
\n \n \n {t('referenceNodes.title')}\n \n \n \n \n \n \n
\n )\n};\nexport default ReferenceNodesPanel","import React, { Component } from \"react\";\nimport { connect } from 'react-redux';\nimport CreateReferenceNode from \"./CreateReferenceNode\";\nimport EditReferenceNode from \"./EditReferenceNode\";\nimport { fetchReferenceNodes, deleteReferenceNode } from \"../../actions/apiCalls\";\nimport { withTranslation } from 'react-i18next';\nimport ReferenceNodesPanel from './ReferenceNodesPanel.js'\nimport { Route, Switch, } from \"react-router-dom\";\nclass ReferenceNodes extends Component{\n\n constructor(){\n super()\n this.state = {\n referenceNodeId: \"\"\n };\n };\n\n componentDidMount(){\n if(this.props.projectId){\n this.props.fetchProjectReferenceNodes(this.props.projectId)\n }\n else\n this.props.history.push('/')\n };\n addNewReferenceNode = () => {\n this.props.history.push(this.props.match.path + '/create')\n };\n\n deleteReferenceNode = (e, referenceNodeId) => {\n e.stopPropagation();\n if(this.props.projectId)\n this.props.deleteReferenceNode(this.props.projectId, referenceNodeId);\n }\n\n editReferenceNode = (e, referenceNodeId) => {\n this.setState({\n referenceNodeId: referenceNodeId\n })\n this.props.history.push(this.props.match.path + '/edit')\n };\n\n closeForm = () => {\n this.props.history.push('/reference-nodes')\n };\n\n render(){\n const { t } = this.props\n const attributes = [\"name\", \"MAC\"]\n const headers = [t(\"referenceNodes.name\"), t(\"referenceNodes.mac\")]\n const referenceNodes = this.props.referenceNodes\n const data = [];\n referenceNodes.map(rn => {\n rn.attributes.type = \"Reference Node Template\"\n return data.push(rn)\n })\n\n return(\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n referenceNodes: state.referenceNodes.referenceNodes,\n gateways: state.gateways.gateways,\n errors: state.referenceNodes.errors\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectReferenceNodes(projectId) {\n dispatch(fetchReferenceNodes(projectId))\n },\n deleteReferenceNode(projectId, referenceNodeId) {\n dispatch(deleteReferenceNode(projectId, referenceNodeId)).then(() => dispatch(fetchReferenceNodes(projectId)));\n },\n clearReferenceNodeErrors()\n {\n dispatch({type: 'REFERENCE_NODE_CLEAR_ERRORS'})\n }\n }\n};\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(ReferenceNodes));\n","import React, { Component } from \"react\";\nimport { connect } from 'react-redux';\nimport IconTextField from \"../Gui/IconTextField\";\nimport { fetchProjects, postProject, fetchFirmwareVersions } from '../../actions/apiCalls';\nimport { Grid, Button, TextField, IconButton, MuiThemeProvider } from \"@material-ui/core\";\nimport CancelButton from \"../Gui/CancelButton\";\nimport SaveButton from \"../Gui/SaveButton\";\nimport DescriptionIcon from '@material-ui/icons/Description';\nimport SubjectIcon from '@material-ui/icons/Subject';\nimport CloudUploadIcon from '@material-ui/icons/CloudUpload';\nimport IconSelector from \"../Gui/IconSelector\";\nimport GpsFixedIcon from '@material-ui/icons/GpsFixed';\nimport PersonIcon from '@material-ui/icons/Person';\nimport OutlinedSelect from \"../Gui/OutlinedSelect\";\nimport { IstokTheme } from \"../../themes/style\";\nimport ClearIcon from '@material-ui/icons/Clear';\nimport { withTranslation } from 'react-i18next';\n\nclass CreateProject extends Component{\n\n constructor(){\n super();\n this.state = {\n name: \"\",\n description: \"\",\n algorithm: \"\",\n firmwareId: \"\",\n users: []\n }\n };\n\n componentDidMount = () => {\n this.props.fetchFirmware();\n }\n\n onNameChange = (e) => {\n this.setState({name: e.target.value})\n }\n\n onDescriptionChange = (e) => {\n this.setState({description: e.target.value})\n }\n\n submitProject = () => {\n let data = {\n name: this.state.name,\n description: this.state.description,\n algorithm: this.state.algorithm,\n firmwareId: this.state.firmwareId,\n events: this.state.users\n };\n this.props.postProject(data);\n this.props.onClose();\n }\n\n onAlgChange = (e) => {\n this.setState({algorithm: e.target.value})\n }\n\n onUserAdd = (e) => {\n this.setState({users: [...this.state.users, {\"type\": \"add\", \"email\": \"\", \"role\": \"user\"}]});\n }\n\n clearUser = (e, ind)=> {\n let newUsers = [...this.state.users];\n // Od indeksu ind usuń jeden obiekt\n newUsers.splice(ind, 1);\n this.setState({users: newUsers});\n }\n\n onUserEmailChange = (e, ind) => {\n let newUsers = [...this.state.users];\n newUsers[ind].email = e.target.value;\n this.setState({users: newUsers});\n }\n\n onUserRoleChange = (e, ind) => {\n let newUsers = [...this.state.users];\n newUsers[ind].role = e.target.value;\n this.setState({users: newUsers});\n }\n\n onFirmwareChange = (e) => {\n this.setState({firmwareId: e.target.value})\n }\n\n isProjectValid = () => { \n if (this.state.name && this.state.description && this.state.algorithm && this.state.firmwareId)\n return false;\n return true;\n }\n\n render(){\n const { t } = this.props;\n let height = 55;\n const algorithmData = [\n {id:\"esparOnly\", attributes:{name: t(\"algorithm.esparOnly\")}},\n {id:\"referenceNodes\", attributes:{name: t(\"algorithm.refNodes\")}}\n ]\n const userRoles = [\n {id:\"user\", attributes:{name: t(\"settings.role.regularUser\")}},\n {id:\"admin\", attributes:{name: t(\"settings.role.admin\")}}\n ]\n return(\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n }/>\n } />\n } onChange={this.onAlgChange} />\n } onChange={this.onFirmwareChange} />\n {this.state.users.map((user, i) => \n \n \n \n \n \n \n \n \n \n this.onUserEmailChange(e, i)}/>\n \n \n \n this.onUserRoleChange(e, i)}\n fullWidth labelWidth={40} />\n \n \n this.clearUser(e, i)}>\n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n )\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n projects: state.projects.userProjects,\n firmwares: state.projects.firmwares\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n postProject(data){\n dispatch(postProject(data)).then(() => dispatch(fetchProjects()))\n },\n fetchFirmware(){\n dispatch(fetchFirmwareVersions())\n }\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(CreateProject));","import React, { Component } from \"react\";\nimport { connect } from 'react-redux';\nimport IconTextField from \"../Gui/IconTextField\";\nimport { fetchProjects, patchProject, fetchFirmwareVersions } from '../../actions/apiCalls';\nimport GpsFixedIcon from '@material-ui/icons/GpsFixed';\nimport { Grid, Button, IconButton, TextField, MuiThemeProvider } from \"@material-ui/core\";\nimport CancelButton from \"../Gui/CancelButton\";\nimport CloudUploadIcon from '@material-ui/icons/CloudUpload';\nimport SaveButton from \"../Gui/SaveButton\";\nimport axios from \"axios\";\nimport IconSelector from \"../Gui/IconSelector\";\nimport PersonIcon from '@material-ui/icons/Person';\nimport OutlinedSelect from \"../Gui/OutlinedSelect\";\nimport { IstokTheme } from \"../../themes/style\";\nimport ClearIcon from '@material-ui/icons/Clear';\nimport { withTranslation } from 'react-i18next';\n\n\nclass EditProject extends Component{\n\n constructor(){\n super();\n this.state = {\n name: \"\",\n description: \"\",\n algorithm: \"\",\n firmwareId: \"\",\n members: [],\n newMembers: [],\n events: []\n }\n };\n\n componentDidMount = () => {\n this.props.fetchFirmware()\n if(this.props.projectId && this.props.role === \"superadmin\"){\n let url = process.env.REACT_APP_API_URL+'projects/'+this.props.currentProjectId\n axios.get(url).then(res => {\n this.setState({\n name: res.data.data[0].attributes.name,\n description: res.data.data[0].attributes.description,\n algorithm: res.data.data[0].attributes.algorithm,\n members: res.data.data[0].attributes.members,\n firmwareId: res.data.data[0].relationships.firmwareVersion.data.id\n })\n }\n ).catch(e => {\n this.props.onFetchError(e);\n this.props.onClose();\n })\n }\n else{\n this.props.onClose();\n }\n };\n\n onNameChange = (e) => {\n this.setState({name: e.target.value})\n };\n\n onAlgChange = (e) => {\n this.setState({algorithm: e.target.value})\n }\n\n onDescriptionChange = (e) => {\n this.setState({description: e.target.value})\n };\n\n submitProject = () => {\n let events = [...this.state.events];\n events = events.concat(this.state.newMembers);\n let data = {\n name: this.state.name,\n description: this.state.description,\n algorithm: this.state.algorithm,\n firmwareId: this.state.firmwareId,\n events: events\n };\n this.props.patchProject(this.props.currentProjectId, data);\n this.props.onClose();\n };\n\n onMemberProjectRemoval = (e, ind) => {\n let usr = [...this.state.members];\n let email = this.state.members[ind].email;\n let role = this.state.members[ind].role;\n usr.splice(ind, 1);\n this.setState({\n events: [...this.state.events, {\"type\": \"del\", \"email\": email, \"role\": role}]\n ,members: usr});\n }\n\n onFirmwareChange = (e) => {\n this.setState({firmwareId: e.target.value})\n }\n\n onUserAdd = (e) => {\n this.setState({\n newMembers: [...this.state.newMembers, {\"type\": \"add\", \"email\": \"\", \"role\": \"user\"}]}\n );\n }\n\n clearUser = (e, ind)=> {\n let usr = [...this.state.newMembers];\n usr.splice(ind, 1);\n this.setState({newMembers: usr});\n }\n\n newMemberEmailChange = (e, ind)=> {\n let usr = [...this.state.newMembers];\n usr[ind].email = e.target.value\n this.setState({newMembers: usr});\n }\n\n newMemberRoleChange = (e, ind)=> {\n let usr = [...this.state.newMembers];\n usr[ind].role = e.target.value\n this.setState({newMembers: usr});\n }\n\n render(){\n const { t } = this.props\n let height = 55;\n const algorithmData = [\n {id:\"esparOnly\", attributes:{name: t(\"algorithm.esparOnly\")}},\n {id:\"referenceNodes\", attributes:{name: t(\"algorithm.refNodes\")}}\n ]\n const userRoles = [\n {id:\"user\", attributes:{name: t(\"settings.role.regularUser\")}},\n {id:\"admin\", attributes:{name: t(\"settings.role.admin\")}}\n ]\n \n return(\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n } onChange={this.onAlgChange} />\n } onChange={this.onFirmwareChange} />\n {this.state.members.map((member, i) => \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n this.onMemberProjectRemoval(e, i)}>\n \n \n \n \n \n )}\n \n {this.state.newMembers.map((user, i) =>\n \n \n \n \n \n \n \n \n \n this.newMemberEmailChange(e, i)}\n value={user.email} variant=\"outlined\" fullWidth />\n \n \n \n this.newMemberRoleChange(e, i)}\n fullWidth labelWidth={40} />\n \n \n this.clearUser(e, i)}>\n \n \n \n \n \n )}\n\n \n \n \n \n \n \n \n \n )\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n projects: state.projects.userProjects,\n firmwares: state.projects.firmwares\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n patchProject(projectId, data){\n dispatch(patchProject(projectId, data)).then(() => dispatch(fetchProjects()))\n },\n onFetchError(e){\n dispatch({type: 'FETCH_PROJECT_FAILURE'});\n },\n fetchFirmware(){\n dispatch(fetchFirmwareVersions())\n }\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(EditProject));","import React from \"react\";\nimport { Grid, Typography, DialogContent, TextField, MuiThemeProvider } from \"@material-ui/core\";\nimport CancelButton from \"../Gui/CancelButton\";\nimport SaveButton from \"../Gui/SaveButton\";\nimport { IstokTheme } from \"../../themes/style\";\nimport { useTranslation } from 'react-i18next';\n\nexport const ChangePassDialog = (props) => {\n let leftPadding = 20;\n const isValid = () =>{\n if(!props.newPassword || !props.copyPassword || !props.oldPassword)\n return false;\n if(props.newPassword !== props.copyPassword)\n return false;\n return true;\n }\n\n const { t } = useTranslation();\n return(\n \n
e.preventDefault()} autoComplete=\"off\">\n \n {t(\"settings.personal.password\")} \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {!(props.newPassword === props.copyPassword) ? (\n {t('settings.errors.errorMsg')}\n ): null}\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n )\n}","import React, {Component} from \"react\";\nimport { Grid, Button, Dialog } from \"@material-ui/core\";\nimport IconTextField from \"../Gui/IconTextField\";\nimport { connect } from \"react-redux\";\nimport SaveButton from \"../Gui/SaveButton\";\nimport CancelButton from \"../Gui/CancelButton\";\nimport { ChangePassDialog } from \"./ChangePassDialog\";\nimport { fetchUser, patchUser } from '../../actions/apiCalls';\nimport { withTranslation } from 'react-i18next';\n\nclass Personal extends Component{\n\n constructor(){\n super();\n this.state = {\n passwordChanged: false,\n oldPass: '',\n newPass: '',\n copyPass: '',\n open: false\n }\n }\n\n onSubmit = () => {\n let data = {\n passwordChanged: this.state.passwordChanged,\n oldPassword: this.state.oldPass,\n newPassword: this.state.newPass\n } \n this.props.patchUser(data);\n this.props.onClose();\n }\n\n onOldPassChange = (e) => { \n this.setState({oldPass: e.target.value});\n }\n\n onNewPassChange = (e) => { \n this.setState({newPass: e.target.value});\n }\n\n onCopyPassChange= (e) => {\n this.setState({copyPass: e.target.value});\n }\n\n onLangChange = (e) => {\n this.setState({newLanguage: e.target.value});\n }\n\n handleOpen = () => {\n this.setState({open: true})\n }\n\n handleClose = () => {\n this.setState({open: false})\n }\n\n passChangeSubmit = () => {\n this.handleClose();\n this.setState({passwordChanged: true});\n }\n\n render(){\n const { t } = this.props;\n const username = this.props.username ? this.props.username : '';\n const mail = this.props.email ? this.props.email : '';\n \n return(\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n username: state.login.username,\n email: state.login.email,\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n patchUser(data){\n dispatch(patchUser(data)).then(() => dispatch(fetchUser()))\n }\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(Personal));\n\n","import React, {Component} from 'react'\nimport { connect } from 'react-redux';\nimport { Typography, Grid, Table, TableHead, TableCell, TableRow, TablePagination, TableBody, IconButton, Dialog, Tabs, Tab, MuiThemeProvider, Fab } from \"@material-ui/core\";\nimport { fetchProjects, deleteProject } from '../../actions/apiCalls';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\nimport \"./Settings.css\"\nimport { withSnackbar } from 'notistack';\nimport AddIcon from '@material-ui/icons/Add';\nimport { fab } from \"../../utils\";\nimport CreateProject from './CreateProject';\nimport EditProject from './EditProject';\nimport DeleteDialog from '../Gui/DeleteDialog';\nimport { IstokTheme } from '../../themes/style';\nimport Personal from './Personal';\nimport { withTranslation } from 'react-i18next';\nimport { Route, Switch } from \"react-router-dom\";\nclass Settings extends Component{\n\n constructor(){\n super();\n this.state = {\n projectId: \"\",\n rowsPerPage: 5,\n page: 0,\n currentProjectId: \"\",\n roleInCurrentProject: \"\",\n openDeleteDialog: false,\n projectToDeleteId: \"\",\n tabValue: 1\n };\n };\n\n openDeleteDialog = () =>{\n this.setState({openDeleteDialog: true})\n }\n\n closeDeleteDialog = () =>{\n this.setState({openDeleteDialog: false, projectToDeleteId: \"\"})\n }\n\n componentDidMount = () => {\n this.props.fetchProjects();\n };\n\n onProjectChange = (e, projectId, role) => {\n this.props.selectCurrentProject(projectId, role)\n };\n\n onProjectDelete = (e, projectId) => {\n e.stopPropagation();\n this.setState({projectToDeleteId: projectId}, this.openDeleteDialog());\n };\n\n submitDeleteProject = () => {\n this.props.deleteProject(this.state.projectToDeleteId);\n if(this.state.projectToDeleteId === this.props.projectId){\n this.props.selectCurrentProject(null, \"\");\n }\n this.closeDeleteDialog();\n };\n\n onProjectEdit = (e, projectId, role) => {\n e.stopPropagation();\n this.setState({currentProjectId: projectId, roleInCurrentProject: role})\n this.props.history.push(this.props.match.url + '/edit')\n };\n\n handleChangePage = (event, page) => {\n this.setState({ page });\n };\n\n onTabChange = (e, newValue) => {\n this.setState({tabValue: newValue})\n }\n \n // pass it form the parent Component to Children \n closeForm = () => {\n this.setState({roleInCurrentProject: \"\"});\n this.props.history.push('/settings')\n };\n\n handleChangeRowsPerPage = (e) => {\n this.setState({ rowsPerPage: e.target.value });\n };\n\n addNewProject = () => {\n this.props.history.push(this.props.match.url + '/create')\n };\n \n render(){\n const { t } = this.props;\n const data = this.props.projects\n const { rowsPerPage, page } = this.state;\n\n return(\n
\n \n \n \n \n {t(\"sidebar.Settings\")}\n \n \n \n \n \n \n \n {this.state.tabValue === 0 ? this.setState({tabValue: 1})} /> :
}\n {this.state.tabValue === 1 ? (\n \n \n \n \n \n \n \n {t(\"settings.projects.projectName\")} \n \n \n {t(\"settings.role.role\")} \n \n {this.props.isAllowed ? \n \n {t(\"settings.firmwareVersion.firmwareVersion\")} \n \n : }\n \n \n \n \n {data.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage).map(project =>\n this.onProjectChange(e, project.id, project.attributes.role)}>\n \n {project.attributes.name}\n \n \n {project.attributes.role}\n \n {this.props.isAllowed && project.attributes.firmwareVersion ? (\n \n {project.attributes.firmwareVersion}\n \n ): }\n \n \n {project.attributes.role === \"superadmin\" ? (\n \n this.onProjectEdit(e, project.id, project.attributes.role)}>\n \n \n \n ): null}\n \n this.onProjectDelete(e, project.id)}>\n \n \n \n \n \n \n )}\n \n
\n
\n \n
\n \n \n \n \n {this.props.isAllowed ? (\n \n \n ): (
)\n }\n \n ) :
}\n \n \n \n \n \n \n \n \n \n
\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n projects: state.projects.userProjects,\n role: state.projects.currentRole,\n isAllowed: state.login.isSuperAdmin\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjects() {\n dispatch(fetchProjects())\n },\n deleteProject(projectId){\n dispatch(deleteProject(projectId)).then(() => dispatch(fetchProjects()))\n },\n selectCurrentProject(projectId, role) {\n dispatch({type: 'SELECT_PROJECT', payload: {projectId: projectId, role: role }})\n }\n }\n};\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(withSnackbar(Settings)));","import React, { Component } from 'react';\nimport scriptLoad from '../../scriptLoader';\nimport RotatableOverlay from './RotatableOverlay';\nimport { green } from '../../themes/style';\n\nclass ZoneMap extends Component{\n \n constructor(){\n super();\n this.map = null;\n this.overlay = null;\n this.polygon = null;\n }\n \n componentDidMount(){\n if(!(typeof window.google === 'object' && typeof window.google.maps === 'object')){\n scriptLoad(\"https://maps.googleapis.com/maps/api/js?key=\"+process.env.REACT_APP_GOOGLE_KEY+\"&v=3.exp&libraries=geometry,drawing,places\").then(res => this.initMap())\n }\n else{\n this.initMap()\n }\n }\n\n initMap = () => {\n this.map = new window.google.maps.Map(\n document.getElementById('googleMap'),\n {\n zoom: 19,\n defaultCenter: this.props.mapCenter,\n center: this.props.mapCenter\n }\n )\n if(this.map){\n new window.google.maps.event.addListenerOnce(this.map, 'idle', function(){\n if(this.props.onMapMounted)\n this.props.onMapMounted(); \n }.bind(this));\n }\n }\n\n placeFloor = () => {\n if(this.props.floor && this.map){\n RotatableOverlay.prototype = new window.google.maps.OverlayView()\n\n if(this.props.floor.boundsNE && this.props.floor.boundsSW){\n let ne = {lat: this.props.floor.boundsNE.lat, lng: this.props.floor.boundsNE.lng}\n let sw = {lat: this.props.floor.boundsSW.lat, lng: this.props.floor.boundsSW.lng}\n\n let imageBounds = new window.google.maps.LatLngBounds(\n new window.google.maps.LatLng(sw.lat, sw.lng),\n new window.google.maps.LatLng(ne.lat, ne.lng)\n )\n this.overlay = new RotatableOverlay(imageBounds, this.props.floor.planUrl, this.map, this.props.floor.rotation);\n } \n }\n this.placeDM();\n }\n\n placeDM = () => {\n if(!this.drawingManager){\n this.drawingManager = new window.google.maps.drawing.DrawingManager({\n drawingControl: true,\n drawingControlOptions: {\n position: window.google.maps.ControlPosition.TOP_CENTER,\n drawingModes: ['polygon']\n },\n polygonOptions: {\n editable: true,\n strokeColor: green,\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: green,\n fillOpacity: 0.35\n }\n })\n\n window.google.maps.event.addListener(this.drawingManager, 'polygoncomplete', function(polygon) {\n if(this.polygon){\n this.polygon.setMap(null);\n this.polygon = null;\n }\n this.polygon = polygon\n this.props.setPolygon(this.polygon)\n this.closeDM();\n }.bind(this));\n\n this.drawingManager.setMap(this.map)\n }\n }\n\n closeDM = () => {\n if(this.drawingManager){\n this.drawingManager.setMap(null)\n this.drawingManager = null\n }\n }\n\n purge = () => {\n if(this.overlay){\n this.overlay.setMap(null);\n this.overlay = null;\n }\n if(this.polygon){\n this.polygon.setMap(null);\n this.polygon = null;\n }\n this.closeDM();\n }\n\n placeZone = () => {\n if(this.props.points){\n if (this.props.points.length > 3){\n let array = [];\n this.props.points.map(point => \n array.push({\n lat: point.latitude, lng: point.longitude\n })\n );\n\n this.polygon = new window.google.maps.Polygon({\n paths: array,\n editable: true,\n strokeColor: green,\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: green,\n fillOpacity: 0.35\n });\n this.polygon.setMap(this.map);\n this.props.setPolygon(this.polygon);\n }\n } \n };\n\n componentDidUpdate(){\n if(this.props.refreshMap){\n if(this.map){\n this.map.setCenter(this.props.mapCenter);\n this.purge();\n this.placeFloor();\n this.placeZone();\n }\n }\n }\n\n render(){\n return(\n
\n
\n
\n )\n }\n}\n\nexport default ZoneMap\n\n\n","import React, { Component } from \"react\";\nimport { Grid } from \"@material-ui/core\";\nimport { connect } from 'react-redux';\nimport CancelButton from '../Gui/CancelButton';\nimport SaveButton from '../Gui/SaveButton';\nimport ZoneMap from '../Map/ZoneMap';\nimport IconTextField from \"../Gui/IconTextField\";\nimport RoomIcon from '@material-ui/icons/Room';\nimport PhotoSizeSelectIcon from '@material-ui/icons/PhotoSizeSelectSmall';\nimport IconSelector from \"../Gui/IconSelector\";\nimport { fetchLocations, fetchZones, patchZone } from '../../actions/apiCalls';\nimport axios from 'axios';\nimport { withTranslation } from 'react-i18next';\n\nclass EditZone extends Component{\n constructor(){\n super()\n this.state = {\n name: \"\",\n floorId: \"\",\n mapCenter: { lat: 54.370765, lng: 18.613733},\n floor: null,\n points: [],\n polygon: null\n };\n }\n\n onMapMounted = () => {\n this._mapMounted = true;\n if(this.props.projectId && this.props.zoneId){\n let url = process.env.REACT_APP_API_URL+'projects/'+this.props.projectId+'/zones/'+this.props.zoneId\n axios.get(url).then(res => this.setState({\n name: res.data.data[0].attributes.name,\n floorId: res.data.data[0].relationships.floor.data.id,\n points: res.data.data[0].attributes.points\n }, this.setFloor(res.data.data[0].relationships.floor.data.id))).catch(e => {\n this.props.onFetchError(e);\n this.props.onClose();\n })\n }else{\n this.props.onClose();\n } \n }\n\n componentDidMount = () => {\n if(this.props.projectId){\n this.props.fetchProjectLocations(this.props.projectId);\n };\n } \n\n setPolygon = (polygon) => {\n // console.log(polygon)\n this.setState({polygon: polygon, refreshMap: false})\n }\n\n \n submitZone = (e) => {\n e.preventDefault();\n if(this.state.polygon){\n let coords = this.state.polygon.getPath().getArray()\n let last = coords.length - 1\n if (coords[last].lat() !== coords[0].lat())\n if(coords[last].lng() !== coords[0].lng())\n coords.push(coords[0])\n let points = []\n coords.map(coord =>\n points.push({ latitude: coord.lat(), longitude: coord.lng() })\n )\n let data = {\n name: this.state.name,\n floorId: this.state.floorId,\n points: points\n }\n if(this.props.projectId && this.props.zoneId)\n this.props.patchZone(this.props.projectId, this.props.zoneId, data);\n this.props.onClose();\n }\n };\n\n onNameChange = (e) => {\n this.setState({name: e.target.value});\n }\n\n setFloor = (floorId) => {\n let location = this.props.locations.find(location =>\n location.buildings.find(building =>\n building.floors.find(floor =>\n floor.id === floorId\n )\n )\n )\n if(location){\n let floor = null\n this.props.locations.map(l => l.buildings.map(b => b.floors.map(f=> f.id === floorId ? (floor = f):(null))))\n \n if(floor && floor.planUrl && floor.boundsNE && floor.boundsSW){\n this.setState({\n floorId: floorId,\n mapCenter:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n floor: floor,\n refreshMap: true,\n points: []\n })\n }\n else{\n this.setState({\n floorId: floorId,\n mapCenter:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n floor: null, \n refreshMap: true,\n points: []\n })\n }\n \n }\n }\n\n onFloorSelect = (e) => {\n let floorId = e.target.value\n this.setFloor(floorId)\n }\n\n render(){\n const { t } = this.props\n return(\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n }/>\n } onChange={this.onFloorSelect} floors={true}/>\n \n \n \n \n \n \n
\n )\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n locations: state.locations.locations\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectLocations(projectId) {\n dispatch(fetchLocations(projectId))\n },\n patchZone(projectId, zoneId, data){\n dispatch(patchZone(projectId, zoneId, data)).then(() => dispatch(fetchZones(projectId)));\n },\n onFetchError(e) {\n dispatch({type: 'FETCH_ZONE_FAILURE'})\n }\n }\n};\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(EditZone));","import React, { Component } from 'react';\nimport scriptLoad from '../../scriptLoader';\nimport RotatableOverlay from './RotatableOverlay';\nimport { green } from '../../themes/style';\n\nclass ZoneCreationMap extends Component{\n \n constructor(){\n super();\n this.map = null;\n this.overlay = null;\n this.polygon = null;\n this.drawingManager = null;\n }\n \n componentDidMount(){\n if(!(typeof window.google === 'object' && typeof window.google.maps === 'object')){\n scriptLoad(\"https://maps.googleapis.com/maps/api/js?key=\"+process.env.REACT_APP_GOOGLE_KEY+\"&v=3.exp&libraries=geometry,drawing,places\").then(res => this.initMap())\n }\n else{\n this.initMap()\n }\n\n }\n\n initMap = () => {\n this.map = new window.google.maps.Map(\n document.getElementById('googleMap'),\n {\n zoom: 19,\n defaultCenter: this.props.mapCenter,\n center: this.props.mapCenter\n }\n )\n if(this.map){\n new window.google.maps.event.addListenerOnce(this.map, 'idle', function(){\n if(this.props.onMapMounted)\n this.props.onMapMounted(); \n }.bind(this));\n }\n }\n\n placeDM = () => {\n if(!this.drawingManager){\n this.drawingManager = new window.google.maps.drawing.DrawingManager({\n drawingControl: true,\n drawingControlOptions: {\n position: window.google.maps.ControlPosition.TOP_CENTER,\n drawingModes: ['polygon']\n },\n polygonOptions: {\n editable: true,\n strokeColor: green,\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: green,\n fillOpacity: 0.35\n }\n })\n\n window.google.maps.event.addListener(this.drawingManager, 'polygoncomplete', function(polygon) {\n this.polygon = polygon\n this.props.setPolygon(this.polygon)\n this.closeDM();\n }.bind(this));\n\n this.drawingManager.setMap(this.map)\n }\n }\n\n closeDM = () => {\n if(this.drawingManager){\n this.drawingManager.setMap(null)\n this.drawingManager = null\n }\n }\n\n placeFloor = () => {\n if(this.props.floor && this.map){\n RotatableOverlay.prototype = new window.google.maps.OverlayView()\n\n if(this.props.floor.boundsNE && this.props.floor.boundsSW){\n let ne = {lat: this.props.floor.boundsNE.lat, lng: this.props.floor.boundsNE.lng}\n let sw = {lat: this.props.floor.boundsSW.lat, lng: this.props.floor.boundsSW.lng}\n\n let imageBounds = new window.google.maps.LatLngBounds(\n new window.google.maps.LatLng(sw.lat, sw.lng),\n new window.google.maps.LatLng(ne.lat, ne.lng)\n )\n this.overlay = new RotatableOverlay(imageBounds, this.props.floor.planUrl, this.map, this.props.floor.rotation);\n } \n }\n this.placeDM();\n }\n\n purge = () => {\n if(this.overlay){\n this.overlay.setMap(null);\n this.overlay = null;\n }\n if(this.polygon && this.props.purgePolygon){\n this.polygon.setMap(null);\n this.polygon = null;\n }\n if(this.drawingManager){\n this.closeDM();\n }\n }\n\n placeZone = () => {\n if(this.props.points){\n if (this.props.points.length > 3){\n let array = [];\n this.props.points.map(point => \n array.push({\n lat: point.latitude, lng: point.longitude\n })\n );\n this.polygon = new window.google.maps.Polygon({\n paths: array,\n editable: true,\n strokeColor: green,\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: green,\n fillOpacity: 0.35\n });\n this.polygon.setMap(this.map);\n }\n } \n };\n\n componentDidUpdate(){\n if(this.props.refreshMap){\n if(this.map){\n this.map.setCenter(this.props.mapCenter);\n this.purge();\n this.placeFloor();\n this.placeZone();\n }\n }\n }\n\n render(){\n return(\n
\n
\n
\n )\n }\n}\n\nexport default ZoneCreationMap\n\n\n","import React, { Component } from \"react\";\nimport { Grid } from \"@material-ui/core\";\nimport { connect } from 'react-redux';\nimport CancelButton from '../Gui/CancelButton';\nimport SaveButton from '../Gui/SaveButton';\nimport ZoneCreationMap from '../Map/ZoneCreationMap';\nimport IconTextField from \"../Gui/IconTextField\";\nimport RoomIcon from '@material-ui/icons/Room';\nimport PhotoSizeSelectIcon from '@material-ui/icons/PhotoSizeSelectSmall';\nimport IconSelector from \"../Gui/IconSelector\";\nimport { fetchLocations, fetchZones, postZone } from '../../actions/apiCalls';\nimport { withTranslation } from 'react-i18next';\n\nclass CreateZone extends Component{\n constructor(){\n super()\n this.state = {\n name: \"\",\n floorId: \"\",\n mapCenter: { lat: 54.370765, lng: 18.613733},\n polygon: null,\n floor: null,\n purgePolygon: false,\n points: []\n };\n }\n\n onMapMounted = () => {}\n\n componentDidMount = () => {\n if(this.props.projectId){\n this.props.fetchProjectLocations(this.props.projectId);\n };\n } \n\n setPolygon = (polygon) => {\n this.setState({polygon: polygon, purgePolygon: false})\n }\n\n submitZone = (e) => {\n e.preventDefault();\n if(this.state.polygon){\n let coords = this.state.polygon.getPath().getArray()\n let last = coords.length - 1\n if (coords[last].lat() !== coords[0].lat())\n if(coords[last].lng() !== coords[0].lng())\n coords.push(coords[0])\n let points = []\n coords.map(coord =>\n points.push({ latitude: coord.lat(), longitude: coord.lng() })\n )\n let data = {\n name: this.state.name,\n floorId: this.state.floorId,\n points: points\n }\n if(this.props.projectId)\n this.props.postZone(this.props.projectId, data);\n this.props.onClose();\n }\n };\n\n onNameChange = (e) => {\n this.setState({ name: e.target.value, refreshMap: false });\n }\n\n setFloor = (floorId) => {\n let location = this.props.locations.find(location =>\n location.buildings.find(building =>\n building.floors.find(floor =>\n floor.id === floorId\n )\n )\n )\n if(location){\n let floor = null\n this.props.locations.map(l => l.buildings.map(b => b.floors.map(f=> f.id === floorId ? (floor = f):(null))))\n \n if(floor && floor.planUrl && floor.boundsNE && floor.boundsSW){\n this.setState({\n floorId: floorId,\n mapCenter:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n floor: floor,\n refreshMap: true,\n points: [],\n polygon: null,\n purgePolygon: true\n })\n }\n else{\n this.setState({\n floorId: floorId,\n mapCenter:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n position:{lat: location.attributes.latitude, lng: location.attributes.longitude},\n floor: null, \n refreshMap: true,\n points: [],\n polygon: null,\n purgePolygon: true\n })\n }\n }\n }\n\n onFloorSelect = (e) => {\n let floorId = e.target.value\n this.setFloor(floorId)\n }\n\n render(){\n const { t } = this.props\n return(\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n }/>\n } onChange={this.onFloorSelect} floors={true}/>\n \n \n \n \n \n \n
\n )\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n locations: state.locations.locations\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectLocations(projectId) {\n dispatch(fetchLocations(projectId))\n },\n postZone(projectId, data) {\n dispatch(postZone(projectId, data)).then(() => dispatch(fetchZones(projectId)));\n }\n }\n};\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(CreateZone));","import { useTranslation } from \"react-i18next\"\nimport React from \"react\";\nimport {Grid, Typography} from \"@material-ui/core\";\nimport AddFab from '../Gui/AddFab';\nimport DataTable from '../Gui/DataTable';\n\nconst ZonesPanel = (props) => {\n\n const { t } = useTranslation();\n return(\n
\n \n \n {t(\"zones.title\")}\n \n \n \n \n \n \n
\n )\n}\nexport default ZonesPanel","import React, { Component } from \"react\";\nimport { connect } from 'react-redux';\nimport { fetchZones, deleteZone } from '../../actions/apiCalls';\nimport EditZone from './EditZone';\nimport CreateZone from './CreateZone';\nimport { withTranslation } from 'react-i18next';\nimport { Route, Switch } from \"react-router-dom\";\nimport ZonesPanel from './ZonesPanel.js'\n\nclass Zones extends Component{\n constructor(){\n super()\n this.state = {\n currentZoneId: \"\"\n }\n }\n\n componentDidMount(){\n if (this.props.projectId === null)\n this.props.history.push('/');\n if (this.props.projectId !== null)\n this.props.fetchProjectZones(this.props.projectId);\n };\n closeForm = () => {\n this.props.history.push('/zones')\n };\n\n openCreate = () => {\n this.props.history.push(this.props.match.url + '/create')\n };\n\n openEdit = (e, zoneId) => {\n this.setState({ currentZoneId: zoneId});\n this.props.history.push(this.props.match.url + '/edit')\n };\n\n deleteZone = (e, zoneId) => {\n e.stopPropagation();\n\n if(this.props.projectId)\n this.props.deleteZone(this.props.projectId, zoneId);\n }\n\n render(){\n const { t } = this.props\n const attributes = [\"name\"]\n const headers = [t(\"zones.name\")]\n return(\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n )\n }\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n zones: state.zones.zones,\n errors: state.zones.errors\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectZones(projectId) {\n dispatch(fetchZones(projectId))\n },\n deleteZone(projectId, zoneId){\n dispatch(deleteZone(projectId, zoneId)).then(\n () => dispatch(fetchZones(projectId)\n ));\n },\n clearZonesErros(){\n dispatch({type: 'ZONES_CLEAR_ERRORS'})\n }\n }\n};\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(Zones));","import React, { Component } from \"react\";\nimport { Select, InputLabel, MenuItem, FormControl, Grid, OutlinedInput } from \"@material-ui/core\";\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport { IstokTheme } from '../../themes/style'\n\nclass Selector extends Component{\n render(){\n return(\n \n \n \n \n \n {this.props.label}\n \n \n \n \n \n \n );\n };\n};\n\nexport default Selector;","import React, { Component} from \"react\"\nimport { Grid, Typography, DialogContent, TextField, Button, IconButton } from \"@material-ui/core\";\nimport OutlinedSelect from \"../Gui/OutlinedSelect\";\nimport SaveButton from \"../Gui/SaveButton\";\nimport CancelButton from \"../Gui/CancelButton\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport { withTranslation } from 'react-i18next';\n\nclass ConfigurationDialog extends Component{\n\n constructor(){\n super();\n this.state = {\n url: \"\",\n contentType: \"\",\n headers: [], \n body: \"{}\",\n error: \"\"\n }\n }\n\n componentDidMount = () => {\n // console.log(this.props)\n if (this.props.data){\n try{\n let parsedHeaders = []\n this.props.data.headers.forEach(header =>{\n let d = {};\n let key = Object.keys(header)[0]\n d[\"header\"] = key\n d[\"val\"] = header[key]\n parsedHeaders.push(d) \n });\n this.setState({\n url: this.props.data.url ? this.props.data.url : \"\",\n headers: parsedHeaders,\n contentType: this.props.data[\"content-type\"] ? this.props.data[\"content-type\"] : \"\",\n body: this.props.data.body ? JSON.stringify(this.props.data.body) : \"{}\"\n })\n }\n catch(e){\n\n }\n }\n }\n\n onCTChange = (e) => {\n this.setState({\n contentType: e.target.value\n });\n }\n\n onURLChange = (e) => {\n this.setState({\n url: e.target.value\n });\n }\n\n\n onBodyChange = (e) => {\n let error = \"\";\n try{\n let body = e.target.value\n JSON.parse(body);\n }\n catch(e){\n error = \"Invalid String\"\n }\n this.setState({\n body: e.target.value,\n error: error\n });\n }\n\n addNewHeader = () => {\n this.setState({headers: [...this.state.headers, {\"header\": \"\", \"val\": \"\"}]})\n }\n\n clearHeader = (e, i) => {\n let newHeaders = [...this.state.headers];\n newHeaders.splice(i, 1);\n this.setState({headers: newHeaders});\n }\n\n submitWebhook = () => {\n let newHeaders = [];\n this.state.headers.forEach(header => {\n let d = {}\n if(header.header){\n d[header.header] = header.val\n newHeaders.push(d)\n }\n })\n let data = {\n url: this.state.url,\n headers: newHeaders,\n \"content-type\": this.state.contentType,\n body: JSON.parse(this.state.body)\n }\n this.props.submitWebhook(this.props.ind, data)\n // console.log(data);\n }\n\n onHeaderChange = (e, i) => {\n let newHeaders = [...this.state.headers];\n newHeaders[i].header = e.target.value;\n this.setState({actions: newHeaders});\n }\n\n onHeaderValChange = (e, i) => {\n let newHeaders = [...this.state.headers];\n newHeaders[i].val = e.target.value;\n this.setState({actions: newHeaders});;\n }\n\n render(){\n const { t } = this.props\n let leftPadding = 20;\n const contentTypeData = [\n {id:\"application/json\", attributes:{name: \"application/json\"}},\n ];\n return(\n \n \n {t('policies.webhook.newWebhook')}\n \n \n \n \n \n \n \n \n \n \n \n {this.state.headers.map((header, i) => \n \n \n \n this.onHeaderChange(e, i)} variant=\"outlined\" fullWidth value={this.state.headers[i].header}/>\n \n \n this.onHeaderValChange(e, i)} variant=\"outlined\" fullWidth value={this.state.headers[i].val} />\n \n \n this.clearHeader(e, i)}>\n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\n\nexport default withTranslation()(ConfigurationDialog);","import React, { Component } from \"react\";\nimport { Grid, Typography, Button, IconButton, TextField, Dialog, MuiThemeProvider } from \"@material-ui/core\";\nimport OutlinedSelect from \"../Gui/OutlinedSelect\";\nimport ClearIcon from '@material-ui/icons/Clear';\nimport ConfigurationDialog from \"./ConfigurationDialog\";\nimport { MontserratBoldTheme } from \"../../themes/style\";\nimport { withTranslation } from 'react-i18next';\n\nclass BeaconsActionsAndRules extends Component{\n\n constructor(){\n super();\n this.state = {\n ind: null,\n open: false,\n whData: null\n }\n }\n\n beaconChange = (e, i) => {\n this.props.onBeaconChange(e, i);\n };\n\n openWebhookDialog = (e, i, data) => {\n this.setState({ind: i, whData: data, open:true});\n };\n\n closeWebhookDialog = () => {\n this.setState({\n open:false, ind:null, whData:null\n })\n };\n\n submitWebhook = (ind, data) => {\n try{\n this.props.onWebhookChange(ind,data);\n }catch(e){\n console.log(\"Error during configurations\");\n console.log(e);\n }\n this.closeWebhookDialog();\n }\n\n render(){\n const { t } = this.props\n return(\n \n \n \n \n \n \n IF\n \n \n \n {/* Beacon */}\n \n this.beaconChange(e, 0)} label=\"Beacon\" labelWidth={60} value={this.props.chosenBeacons[0]} />\n \n {/* Actions */}\n \n {this.props.type === \"geofencing\" ? (\n \n \n \n \n \n \n \n \n ): (\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n \n {/* Beacon arrays */}\n {this.props.chosenBeacons.map((b, i) =>\n {\n if(i !== 0) {\n return (\n \n \n \n \n \n \n OR\n \n \n \n \n\n \n \n this.beaconChange(e, i)}\n label=\"Beacon\" labelWidth={60} \n value={this.props.chosenBeacons[i]} />\n \n \n this.props.clearBeacon(e, i)}>\n \n \n \n \n \n \n )\n }\n else{\n return(\n
\n )\n }\n } \n )}\n {this.props.chosenBeacons.length !== this.props.beacons.length && this.props.beacons.length > 0 ? (\n \n \n \n \n \n \n \n \n ):(\n
\n )}\n \n \n \n \n \n \n \n THEN\n \n \n \n this.props.onActionChange(e, 0)} label=\"Action\" labelWidth={40} value={this.props.actions[0].actionType} />\n \n\n {/* TO ENABLE IN LATER CYCLES */}\n {/* {this.props.actions[0].actionType === \"sendNotification\" ? (\n \n \n \n TO\n \n \n \n \n \n \n \n ) :\n (
)} */}\n \n {this.props.actions[0].actionType === \"sendEmail\" ? (\n \n \n \n \n \n TO\n \n \n \n \n this.props.onEmailChange(e, 0)} value={this.props.actions[0].reqData} type=\"email\" variant=\"outlined\" label=\"Email\"/>\n \n \n \n ) :\n (\n this.props.actions[0].actionType === \"webhook\" ? (\n \n \n \n {this.props.actions[0].reqData ? \n (\n \n )\n : (\n \n )}\n \n \n \n ) :\n ()\n )}\n \n \n {this.props.actions.map((a, i) =>\n {\n if(i !== 0) { \n return (\n \n \n \n \n \n \n \n \n AND\n \n \n \n \n\n \n \n this.props.onActionChange(e, i)} \n label=\"Action\" labelWidth={40} value={this.props.actions[i].actionType} />\n \n \n {a.actionType === \"sendEmail\" ? (\n \n \n \n \n TO\n \n \n \n \n this.props.onEmailChange(e, i)} value={this.props.actions[i].reqData} type=\"email\" variant=\"outlined\" label=\"Email\"/>\n \n \n )\n : (
)}\n {a.actionType === \"webhook\" ? (\n this.props.actions[i].reqData ? (\n \n )\n :(\n \n )\n \n )\n : (
)}\n \n\n \n this.props.clearAction(e, i)}>\n \n \n \n \n \n )\n }\n else{\n return(\n
\n )\n }\n } \n )}\n \n \n \n \n \n\n \n \n \n \n \n \n )\n }\n}\n\nexport default withTranslation()(BeaconsActionsAndRules);","import React, { Component } from \"react\";\nimport { Grid, Typography, IconButton, MuiThemeProvider, TextField } from \"@material-ui/core\";\nimport CancelButton from \"../Gui/CancelButton\";\nimport SaveButton from \"../Gui/SaveButton\";\nimport Selector from \"../Gui/Selector\";\nimport GavelIcon from '@material-ui/icons/Gavel';\nimport SettingsIcon from '@material-ui/icons/Settings'\nimport BeaconsActionsAndRules from \"./BeaconsActionsAndRules\";\nimport { fetchZones, fetchBeacons, postPolicy, fetchPolicies } from \"../../actions/apiCalls\";\nimport { connect } from \"react-redux\";\nimport { IstokTheme } from \"../../themes/style\";\nimport { withTranslation } from 'react-i18next';\n\nclass CreatePolicy extends Component{\n\n constructor(){\n super();\n this.state = {\n name: \"\",\n type: \"\",\n trigger: \"\",\n zoneId: \"\",\n value: 0,\n unit: \"\",\n chosenBeacons: [\"\"],\n actions: [{actionType: \"\", reqData: \"\"}],\n mounted: false\n }\n };\n\n componentDidMount = () => {\n if(this.props.projectId){\n this.props.fetchProjectZones(this.props.projectId);\n this.props.fetchProjectBeacons(this.props.projectId);\n this.setState({mounted: true});\n };\n };\n\n onNameChange = (e) => {\n this.setState({name: e.target.value});\n };\n\n onTypeChange = (e) => {\n this.setState({type: e.target.value, trigger: \"\"});\n };\n\n onZoneChange = (e) => {\n this.setState({zoneId: e.target.value});\n };\n\n onTriggerChange = (e) => {\n this.setState({trigger: e.target.value});\n };\n\n onUnitChange = (e) => {\n this.setState({unit: e.target.value});\n }\n \n onBeaconChange = (e, i) => {\n let newBeacons = [...this.state.chosenBeacons];\n newBeacons[i] = e.target.value;\n this.setState({chosenBeacons: newBeacons});\n };\n\n onActionChange = (e, i) => {\n let newActions = [...this.state.actions];\n newActions[i].actionType = e.target.value;\n newActions[i].reqData = \"\";\n this.setState({actions: newActions});\n }\n\n addNewBeacon = () => {\n this.setState({chosenBeacons: [...this.state.chosenBeacons, \"\"]})\n }; \n\n onValueChange = (e) => {\n this.setState({value: e.target.value});\n }\n\n addNewAction = () => {\n this.setState({actions: [...this.state.actions, {actionType: \"\", reqData: \"\"}]})\n }\n\n onEmailChange = (e, i) => {\n let newActions = [...this.state.actions];\n newActions[i].reqData = e.target.value;\n this.setState({actions: newActions});\n }\n\n onWebhookChange = (i, data) => {\n let newActions = [...this.state.actions];\n newActions[i].reqData = data;\n this.setState({actions: newActions});\n }\n\n\n clearBeacon = (e, i) => {\n let newBeacons = [...this.state.chosenBeacons];\n newBeacons.splice(i, 1);\n this.setState({chosenBeacons: newBeacons});\n }\n\n clearAction = (e, i) => {\n let newActions = [...this.state.actions];\n newActions.splice(i, 1);\n this.setState({actions: newActions});\n }\n\n isPolicyValid = () => {\n if(this.state.name === \"\"){\n return true;\n }\n if(this.state.type === \"\"){\n return true\n }\n let emptyFlag = false\n this.state.chosenBeacons.forEach(beacon => {\n if(beacon === \"\")\n emptyFlag = true;\n })\n if(emptyFlag)\n return true;\n\n if(this.state.type === \"geofencing\"){\n if(this.state.zoneId === \"\" || this.state.trigger === \"\")\n return true;\n } \n else{\n if (this.state.trigger === \"\" || this.state.unit === \"\")\n return true;\n try{\n if(!Number.isInteger(Number.parseInt(this.state.value))){\n return true;\n }\n }\n catch(e){\n return true;\n }\n }\n \n emptyFlag = false\n this.state.actions.forEach(action => {\n if((action.actionType === \"\" || action.reqData === \"\") && action.actionType !== \"soundAlert\")\n emptyFlag = true;\n })\n if(emptyFlag)\n return true;\n\n return false;\n }\n\n submitPolicy = () => {\n let data = {\n name: this.state.name,\n type: this.state.type,\n beacons: this.state.chosenBeacons,\n trigger: this.state.trigger,\n zoneId: this.state.zoneId,\n unit: this.state.unit,\n value: this.state.value,\n actions: this.state.actions\n }\n if(this.props.projectId){\n this.props.postPolicy(this.props.projectId, data)\n this.props.onClose();\n }\n }\n\n render(){\n const { t } = this.props\n const typesData = [\n {id:\"geofencing\", attributes:{name: \"Geofence\"}},\n {id:\"temperature\", attributes:{name: t('policies.temperature')}}\n ];\n const tempTriggerData = [\n {id:\"Above\", attributes:{name: t(\"policies.above\")}},\n {id:\"Below\", attributes:{name: t(\"policies.below\")}}\n ];\n const geoTriggerData = [\n {id:\"Enters\", attributes:{name: t(\"policies.enters\")}},\n {id:\"Leaves\", attributes:{name: t(\"policies.leaves\")}}\n ];\n const actionData = [\n {id:\"sendEmail\", attributes:{name: t(\"policies.sendEmail\")}},\n // {id:\"sendNotification\", attributes:{name: \"Send notification\"}},\n {id:\"webhook\", attributes:{name: \"Webhook\"}},\n {id:\"soundAlert\", attributes:{name: t(\"policies.soundAlert\")}},\n ];\n const unitData = [\n {id:\"Celsius\", attributes:{name: t(\"policies.celsius\")}},\n {id:\"Fahrenheit\", attributes:{name: t(\"policies.fahrenheit\")}}\n ]\n\n return(\n this.state.mounted ? (\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* Type */ }\n \n \n {this.state.type !== \"\" ? (\n \n ): (
)} \n \n \n \n ) : (\n
e.preventDefault()}>\n \n \n {t('policies.warning')}\n \n \n \n \n \n \n \n \n \n \n
\n )\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n zones: state.zones.zones,\n beacons: state.beacons.beacons,\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectZones(projectId) {\n dispatch(fetchZones(projectId));\n },\n fetchProjectBeacons(projectId) {\n dispatch(fetchBeacons(projectId));\n },\n postPolicy(projectId, data){\n dispatch(postPolicy(projectId, data)).then(() => dispatch(fetchPolicies(projectId)));\n }\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(CreatePolicy));","import React, { Component } from \"react\";\nimport { Grid, Typography, IconButton, MuiThemeProvider, TextField } from \"@material-ui/core\";\nimport axios from \"axios\";\nimport CancelButton from \"../Gui/CancelButton\";\nimport SaveButton from \"../Gui/SaveButton\";\nimport Selector from \"../Gui/Selector\";\nimport GavelIcon from '@material-ui/icons/Gavel';\nimport SettingsIcon from '@material-ui/icons/Settings'\nimport BeaconsActionsAndRules from \"./BeaconsActionsAndRules\";\nimport { fetchZones, fetchBeacons, patchPolicy, fetchPolicies } from \"../../actions/apiCalls\";\nimport { connect } from \"react-redux\";\nimport { IstokTheme } from \"../../themes/style\";\nimport { withTranslation } from 'react-i18next';\n\nclass EditPolicy extends Component{\n\n constructor(){\n super();\n this.state = {\n name: \"\",\n type: \"\",\n trigger: \"\",\n zoneId: \"\",\n value: 0,\n unit: \"\",\n chosenBeacons: [\"\"],\n actions: [{actionType: \"\", reqData: \"\"}],\n mounted: false\n }\n };\n\n \n componentDidMount = () => {\n if(this.props.projectId){\n this.props.fetchProjectZones(this.props.projectId)\n this.props.fetchProjectBeacons(this.props.projectId)\n let url = process.env.REACT_APP_API_URL+'projects/'+this.props.projectId+'/policies/'+this.props.policyId\n axios.get(url).then(res => {\n let data = res.data.data[0]\n if(data.attributes.type === \"geofencing\"){\n this.setState({\n name: data.attributes.name,\n type: data.attributes.type,\n trigger: data.attributes.trigger,\n chosenBeacons: data.attributes.beacons,\n zoneId: data.attributes.zoneId,\n actions: data.attributes.actions,\n mounted: true\n })\n }\n else{\n this.setState({\n name: data.attributes.name,\n type: data.attributes.type,\n trigger: data.attributes.trigger,\n unit: data.attributes.unit,\n value: data.attributes.value,\n chosenBeacons: data.attributes.beacons,\n actions: data.attributes.actions,\n mounted: true\n })\n }\n \n }).catch(e => {\n this.props.onFetchError(e);\n this.props.onClose();\n });\n };\n };\n\n onNameChange = (e) => {\n this.setState({name: e.target.value});\n };\n\n onTypeChange = (e) => {\n this.setState({type: e.target.value, trigger: \"\"});\n };\n\n onZoneChange = (e) => {\n this.setState({zoneId: e.target.value});\n };\n\n onTriggerChange = (e) => {\n this.setState({trigger: e.target.value});\n };\n\n onUnitChange = (e) => {\n this.setState({unit: e.target.value});\n }\n \n onBeaconChange = (e, i) => {\n let newBeacons = [...this.state.chosenBeacons];\n newBeacons[i] = e.target.value;\n this.setState({chosenBeacons: newBeacons});\n };\n\n onActionChange = (e, i) => {\n let newActions = [...this.state.actions];\n newActions[i].actionType = e.target.value;\n newActions[i].reqData = \"\";\n this.setState({actions: newActions});\n }\n\n addNewBeacon = () => {\n this.setState({chosenBeacons: [...this.state.chosenBeacons, \"\"]})\n }; \n\n onValueChange = (e) => {\n this.setState({value: e.target.value});\n }\n\n addNewAction = () => {\n this.setState({actions: [...this.state.actions, {actionType: \"\", reqData: \"\"}]})\n }\n\n onEmailChange = (e, i) => {\n let newActions = [...this.state.actions];\n newActions[i].reqData = e.target.value;\n this.setState({actions: newActions});\n }\n\n onWebhookChange = (i, data) => {\n let newActions = [...this.state.actions];\n newActions[i].reqData = data;\n this.setState({actions: newActions});\n }\n\n\n clearBeacon = (e, i) => {\n let newBeacons = [...this.state.chosenBeacons];\n newBeacons.splice(i, 1);\n this.setState({chosenBeacons: newBeacons});\n }\n\n clearAction = (e, i) => {\n let newActions = [...this.state.actions];\n newActions.splice(i, 1);\n this.setState({actions: newActions});\n }\n\n isPolicyValid = () => {\n if(this.state.name === \"\"){\n return true;\n }\n if(this.state.type === \"\"){\n return true\n }\n let emptyFlag = false\n this.state.chosenBeacons.forEach(beacon => {\n if(beacon === \"\")\n emptyFlag = true;\n })\n if(emptyFlag)\n return true;\n \n if(this.state.type === \"geofencing\"){\n if(this.state.zoneId === \"\" || this.state.trigger === \"\")\n return true;\n } \n else{\n if (this.state.trigger === \"\" || this.state.unit === \"\")\n return true;\n try{\n if(!Number.isInteger(Number.parseInt(this.state.value))){\n return true;\n }\n }\n catch(e){\n return true;\n }\n }\n \n emptyFlag = false\n this.state.actions.forEach(action => {\n if((action.actionType === \"\" || action.reqData === \"\") && action.actionType !== \"soundAlert\")\n emptyFlag = true;\n })\n if(emptyFlag)\n return true;\n\n return false;\n }\n\n submitPolicy = () => {\n let data = {\n name: this.state.name,\n type: this.state.type,\n beacons: this.state.chosenBeacons,\n trigger: this.state.trigger,\n zoneId: this.state.zoneId,\n unit: this.state.unit,\n value: this.state.value,\n actions: this.state.actions\n }\n\n if(this.props.projectId && this.props.policyId){\n this.props.patchPolicy(this.props.projectId, this.props.policyId, data)\n this.props.onClose();\n }\n }\n\n render(){\n const { t } = this.props\n const typesData = [\n {id:\"geofencing\", attributes:{name: \"Geofence\"}},\n {id:\"temperature\", attributes:{name: t('policies.temperature')}}\n ];\n const tempTriggerData = [\n {id:\"Above\", attributes:{name: t(\"policies.above\")}},\n {id:\"Below\", attributes:{name: t(\"policies.below\")}}\n ];\n const geoTriggerData = [\n {id:\"Enters\", attributes:{name: t(\"policies.enters\")}},\n {id:\"Leaves\", attributes:{name: t(\"policies.leaves\")}}\n ];\n const actionData = [\n {id:\"sendEmail\", attributes:{name: t(\"policies.sendEmail\")}},\n // {id:\"sendNotification\", attributes:{name: \"Send notification\"}},\n {id:\"webhook\", attributes:{name: \"Webhook\"}},\n {id:\"soundAlert\", attributes:{name: t(\"policies.soundAlert\")}},\n ];\n const unitData = [\n {id:\"Celsius\", attributes:{name: t(\"policies.celsius\")}},\n {id:\"Fahrenheit\", attributes:{name: t(\"policies.fahrenheit\")}}\n ]\n\n\n return(\n this.state.mounted ? (\n
e.preventDefault()}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* Type */ }\n \n \n {this.state.type !== \"\" ? (\n \n ): (
)} \n \n \n \n ) : (\n
e.preventDefault()}>\n \n \n Could not load proper data.\n \n \n \n \n \n \n \n \n \n \n
\n )\n );\n };\n};\n\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n zones: state.zones.zones,\n beacons: state.beacons.beacons,\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectZones(projectId) {\n dispatch(fetchZones(projectId));\n },\n fetchProjectBeacons(projectId) {\n dispatch(fetchBeacons(projectId));\n },\n onFetchError(e){\n\t\t\tdispatch({type: 'FETCH_POLICY_FAILURE'});\n },\n patchPolicy(projectId, policyId, data){\n dispatch(patchPolicy(projectId, policyId, data)).then(() => dispatch(fetchPolicies(projectId)));\n }\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(EditPolicy));","import { useTranslation } from \"react-i18next\"\nimport { Grid, Typography } from \"@material-ui/core\";\nimport DataTable from '../Gui/DataTable';\nimport AddFab from '../Gui/AddFab';\nimport React from \"react\";\nconst PoliciesPanel = (props) =>{\n\n const { t } = useTranslation();\n return(\n
\n \n \n {t(\"policies.title\")}\n \n \n \n \n \n \n
\n )\n}\nexport default PoliciesPanel","import React, {Component} from \"react\"\nimport { connect } from 'react-redux';\nimport { fetchPolicies, deletePolicy } from '../../actions/apiCalls';\nimport CreatePolicy from \"./CreatePolicy\";\nimport EditPolicy from \"./EditPolicy\";\nimport { withTranslation } from 'react-i18next';\nimport PoliciesPanel from './PoliciesPanel.js'\nimport { Route, Switch } from \"react-router-dom\";\n\n\nclass Policies extends Component{\n \n constructor(){\n super();\n this.state = {\n currentPolicyId: \"\"\n }\n };\n \n componentDidMount(){\n if (this.props.projectId === null)\n this.props.history.push('/');\n // Fetch\n if (this.props.projectId !== null)\n this.props.fetchProjectPolicies(this.props.projectId);\n };\n deletePolicy = (e, policyId) => {\n e.stopPropagation();\n if(this.props.projectId)\n this.props.deleteProjectPolicy(this.props.projectId, policyId);\n }\n\n openEdit = (e, policyId) => {\n this.setState({currentPolicyId: policyId});\n this.props.history.push(this.props.match.url + '/edit')\n }\n\n openCreate = () => {\n this.props.history.push(this.props.match.url + '/create')\n }\n\n onClose = () => {\n this.setState({currentPolicyId: \"\"});\n this.props.history.push('/policies')\n }\n\n render(){\n const { t } = this.props\n const attributes = [\"name\", \"type\"]\n const headers = [t(\"policies.name\"), t(\"policies.type\")]\n return(\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n )\n }\n}\nconst mapStateToProps = (state) => {\n return {\n projectId: state.projects.currentProjectId,\n policies: state.policies.policies,\n errors: state.policies.errors\n }\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetchProjectPolicies(projectId) {\n dispatch(fetchPolicies(projectId))\n },\n deleteProjectPolicy(projectId, policyId) {\n dispatch(deletePolicy(projectId, policyId)).then(() => dispatch(fetchPolicies(projectId)));\n },\n clearPoliciesErrors()\n {\n dispatch({type: 'POLICIES_CLEAR_ERRORS'})\n }\n }\n};\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(Policies));","import React, { Component } from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport CssBaseline from '@material-ui/core/CssBaseline'\nimport { Route, Switch, withRouter } from 'react-router-dom'\nimport Login from '../Login/Login'\nimport Locations from '../Locations/Locations'\nimport Dashboard from '../Dashboard/Dashboard'\nimport { connect } from 'react-redux'\nimport AppBarDrawer from './AppBarDrawer'\nimport Gateways from '../Gateways/Gateways'\nimport Beacons from '../Beacons/Beacons'\nimport Templates from '../Templates/Templates'\nimport Tracking from '../Tracking/Tracking'\nimport TrackingHistory from '../Tracking/TrackingHistory.js'\nimport ReferenceNodes from '../ReferenceNodes/ReferenceNodes'\nimport Settings from '../Settings/Settings'\nimport Zones from '../Zones/Zones'\nimport Policies from '../Policies/Policies';\nimport { withSnackbar } from 'notistack';\nimport { withTranslation } from 'react-i18next';\nimport { refreshToken, fetchProjects, getGatewayStatus } from '../../actions/apiCalls'\n\nconst styles = theme => ({\n\troot: {\n\t\tdisplay: 'flex',\n\t\tbackground: '#FFFFFF',\n\t\tminHeight: '100vh'\n\t},\n\tcontent: {\n\t\tflexGrow: 1,\n\t\tpadding: theme.spacing(3),\n\t},\n\ttoolbar: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'flex-end',\n\t\tpadding: '0 8px',\n\t\t...theme.mixins.toolbar,\n\t}\n});\n\nclass App extends Component {\n\n\tstate = {\n\t\tcurrentItem: 0,\n\t\tready: false,\n\t}\n\n\tonListItemClicked = (route, id) => {\n\t\tthis.setState({currentItem: id});\n\t\tthis.props.history.push(route);\n\t}\n\n\tcomponentDidMount = () => {\n\t\t// We want the dashboard to be the starting page always\n\t\tthis.props.history.push('/')\n\t\t // On App start we check for token existance and expirety\n\t\tlet token = sessionStorage.getItem('token')\n\t\tlet projId = sessionStorage.getItem('selectedProject')\n\t\t// this.interval = setInterval(() => (this.props.sendGatewayStatus()), 1000 * 60 * 60); //trgger send update from UI\n\t\tif(token){\n\t\t\t// TODO PRZETESTUJ JESCZE Z BŁĘDAMI\n\t\t\t// Request a new token\n\t\t\tlet res = refreshToken(token)\n\t\t\tres.then(r => {\t\n\t\t\t\tlet data = r.data.data;\n\t\t\t\tlet newToken = data.token;\n\t\t\t\tlet username = data.username;\n\t\t\t\tlet email = data.email;\n\t\t\t\tlet language = data.language;\n\t\t\t\tlet isSuperAdmin = data.isSuperAdmin\n\t\t\t\tlet userData = {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\ttoken: newToken,\n\t\t\t\t\t\tusername: username,\n\t\t\t\t\t\temail: email,\n\t\t\t\t\t\tlanguage: language,\n\t\t\t\t\t\tisSuperAdmin: isSuperAdmin\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tthis.props.authorizeRefreshedUser(userData, projId);\n\t\t\t\tthis.setState({ready: true})\n\t\t\t}).catch(e => {\n\t\t\t\tsessionStorage.clear();\n\t\t\t\tthis.setState({ready: true})\n\t\t\t})\n\t\t}else{\n\t\t\tsessionStorage.clear();\n\t\t\tthis.setState({ready: true})\n\t\t}\n\t}\n\t\n\tcomponentDidUpdate = () => {\n\t\tlet infoData;\n\t\tswitch(true){\n\t\t\tcase this.props.logError.length > 0:\n\t\t\t\tinfoData = this.props.logError[0]\n\t\t\t\tthis.notify(this.props.t(infoData.notifyKey), infoData.type)\n\t\t\t\tthis.props.clearLogErrors();\n\t\t\t\tbreak;\n\t\t\tcase this.props.locError.length > 0:\n\t\t\t\tinfoData = this.props.locError[0]\n\t\t\t\tthis.notify(this.props.t(infoData.notifyKey), infoData.type)\n\t\t\t\tthis.props.clearLocErrors();\n\t\t\t\tbreak;\n\t\t\tcase this.props.gatewaysError.length > 0:\n\t\t\t\tinfoData = this.props.gatewaysError[0]\n\t\t\t\tthis.notify(this.props.t(infoData.notifyKey), infoData.type)\n\t\t\t\tthis.props.clearGatewaysError();\n\t\t\t\tbreak;\n\t\t\tcase this.props.beaconsError.length > 0:\n\t\t\t\tinfoData = this.props.beaconsError[0]\n\t\t\t\tthis.notify(this.props.t(infoData.notifyKey), infoData.type)\n\t\t\t\tthis.props.clearBeaconsError();\n\t\t\t\tbreak;\n\t\t\tcase this.props.refNodesError.length > 0:\n\t\t\t\tinfoData = this.props.refNodesError[0]\n\t\t\t\tthis.notify(this.props.t(infoData.notifyKey), infoData.type)\n\t\t\t\tthis.props.clearRefNodesError();\n\t\t\t\tbreak;\n\t\t\tcase this.props.zoneError.length > 0:\n\t\t\t\tinfoData = this.props.zoneError[0]\n\t\t\t\tthis.notify(this.props.t(infoData.notifyKey), infoData.type)\n\t\t\t\tthis.props.clearZoneError();\n\t\t\t\tbreak;\n\t\t\tcase this.props.projError.length > 0:\n\t\t\t\tinfoData = this.props.projError[0]\n\t\t\t\tthis.notify(this.props.t(infoData.notifyKey), infoData.type)\n\t\t\t\tthis.props.clearProjError();\n\t\t\t\tbreak;\n\t\t\tcase this.props.policieError.length > 0:\n\t\t\t\tinfoData = this.props.policieError[0]\n\t\t\t\tthis.notify(this.props.t(infoData.notifyKey), infoData.type)\n\t\t\t\tthis.props.clearPolicyError();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t//used for timInterval trigger\n\t// componentWillUnmount() {\n\t// \tclearInterval(this.interval);\n\t// }\n\n\tnotify = (message, type) => {\n this.props.enqueueSnackbar(message, { \n variant: type,\n });\n }\n\n\trender() {\n\t\tconst { classes } = this.props\n\t\tif(this.state.ready) \n\t\t\tif (!this.props.loggedIn)\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t)\n\t\t\telse {\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\t\telse{\n\t\t\treturn
\n\t\t}\n\t}\n}\n\nconst mapStateToProps = (state) => {\n\treturn {\n\t\tloggedIn: state.login.userLoggedIn,\n\t\tlogError: state.login.errors,\n\t\tlocError: state.locations.notices,\n\t\tgatewaysError: state.gateways.notices,\n\t\tbeaconsError: state.beacons.notices,\n\t\trefNodesError: state.referenceNodes.notices,\n\t\tprojError: state.projects.notices,\n\t\tzoneError: state.zones.notices,\n\t\tpolicieError: state.policies.notices,\n\t\tuserRole: state.projects.currentRole\n\n\t}\n}\n\nconst mapDispatchToProps = (dispatch) => {\n\treturn{\n\t\tclearLogErrors(){\n dispatch({type: 'LOGINS_CLEAR_ERRORS'})\n\t\t},\n\t\tclearLocErrors(){\n\t\t\tdispatch({type: 'LOCATION_CLEAR_NOTICES'})\n\t\t},\n\t\tclearGatewaysError(){\n\t\t\tdispatch({type: 'GATEWAY_CLEAR_NOTICES'})\n\t\t},\n\t\tclearBeaconsError(){\n\t\t\tdispatch({type: 'BEACONS_CLEAR_NOTICES'})\n\t\t},\n\t\tclearRefNodesError(){\n\t\t\tdispatch({type: 'REFERENCE_NODE_CLEAR_NOTICES'})\n\t\t},\n\t\tclearProjError(){\n\t\t\tdispatch({type: 'PROJECTS_CLEAR_NOTICES'})\n\t\t},\n\t\tclearZoneError(){\n\t\t\tdispatch({type: 'ZONES_CLEAR_NOTICES'})\n\t\t},\n\t\tclearPolicyError(){\n\t\t\tdispatch({type: 'POLICIES_CLEAR_NOTICES'})\n\t\t},\n\t\tsendGatewayStatus(){\n\t\t\tdispatch(getGatewayStatus())\n\t\t},\n\t\tauthorizeRefreshedUser: (data, projectId) => {\n\t\t\tdispatch({type: 'LOGIN_USER', payload: {data: data }})\n\t\t\tdispatch(fetchProjects()).then(r => dispatch({type: 'SET_PREVOUSLY_ACTIVE_PROJECT', payload: projectId}))\n\t\t},\n\t}\n}\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(withStyles(styles)(withSnackbar(withTranslation()(App)))));","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport en from './translations/en.js'\nimport pl from './translations/pl.js'\n// the translations\n// (tip move them in a JSON file and import them)\nconst resources = {\n en: {\n translation: en\n },\n\n pl: {\n translation: pl\n }\n};\ni18n\n .use(initReactI18next) // passes i18n down to react-i18next\n .init({\n resources,\n lng: \"pl\",\n\n // keySeparator: '.', // we do not use keys in form messages.welcome\n\n interpolation: {\n escapeValue: false // react already safes from xss\n }\n });\n\n export default i18n;","const en = {\n \"location\": \"location\",\n \"location_plural\": \"locations\",\n \"gateway\": \"gateway\" ,\n \"gateway_plural\": \"gateways\",\n \"beacon\": \"beacon\",\n \"beacon_plural\": \"beacons\",\n \"refNode\": \"reference node\",\n \"refNode_plural\": \"reference nodes\",\n \"template\": \"template\",\n \"template_plural\": \"templates\",\n \"zone\": \"zone\",\n \"zone_plural\": \"zones\",\n \"policy\": \"policy\",\n \"policy_plural\": \"policies\",\n \"common\": {\n \"Welcome to React\": \"Welcome to React and react-i18next\",\n \"title\": \"MPS\",\n \"logout\": \"Logout\",\n \"saveButton\": \"SAVE\",\n \"cancelButton\": \"CANCEL\",\n \"deleteButton\": \"DELETE\",\n \"warrning\": \"Warrning\",\n \"deletePrompt\": \"Are you sure you want to delete this item?\",\n \"deleteProjectPrompt\": \"Removing a project will remove all associated objects and devices. Are you sure you want to delete it?\",\n \"disconnectProjectPrompt\": \"Are you sure you want to disconnect from a project?\",\n \"removeTemplateWarning\": \"Removing a template will also remove all associated devices. Are you sure you want to delete it?\",\n \"removeLocationWarning\": \"Removing location will also remove all buildings, floord and devices in it. Are you sure you want to delete it?\",\n \"removeBuildingFloorWarning\": \"Removing floors or buildings will also remove all devices placed inside. Are you sure you want to delete it?\",\n \"rpp\": \"Rows per page\"\n },\n \"sidebar\": {\n \"Dashboard\": \"Dashboard\",\n \"Locations\": \"Locations\",\n \"Gateways\": \"Gateways\",\n \"Beacons\": \"Beacons\",\n \"Nodes\": \"Nodes\",\n \"Templates\": \"Templates\",\n \"Tracking\": \"Tracking\",\n \"Zones\": \"Zones\",\n \"Policies\": \"Policies\",\n \"Settings\": \"Settings\",\n \"TrackingHistory\": \"History\"\n \n },\n \"settings\":{\n \"projects\":{\n \"projects\": \"Projects\",\n \"projectName\": \"Project Name\",\n },\n \"role\":{\n \"role\": \"Role\",\n \"regularUser\": \"Regular user\",\n \"admin\": \"Admin\"\n },\n \"personal\":{\n \"personal\": \"Personal\",\n \"language\": \"Language\",\n \"username\": \"Username\",\n \"changePassword\": \"Change password\",\n \"password\": \"Password\",\n \"oldPassword\": \"Old password\",\n \"newPassword\": \"New password\",\n \"rePassword\": \"Retype password\"\n },\n \"firmwareVersion\":{\n \"firmwareVersion\": \"Firmware version\"\n },\n \"errors\":{\n \"errorMsg\": \"New password does not match the retyped password.\"\n }\n },\n \"createProject\":{\n \"projName\": \"Project name\",\n \"projDescription\": \"Project description\",\n \"locAlgorithm\": \"Localization algorithm\",\n \"addUser\": \"Add a user\",\n \"firmwareVersion\": \"Firmware version\"\n },\n \"algorithm\":{\n \"esparOnly\": \"Espar only\",\n \"refNodes\": \"Reference nodes\"\n\n },\n \"zones\":{\n \"title\": \"Zones\",\n \"name\": \"Name\",\n \"location\": \"Location\",\n \"type\": \"Type\",\n \"temperature\": \"Temperature\"\n },\n \"policies\": {\n \"title\": \"Policies\",\n \"name\": \"Name\",\n \"location\": \"Location\",\n \"type\": \"Type\",\n \"temperature\": \"Temperature\",\n \"above\": \"Above\",\n \"below\": \"Below\",\n \"enters\": \"Enters\",\n \"leaves\": \"Leaves\",\n \"sendEmail\": \"Send email\",\n \"soundAlert\": \"Sound alert\",\n \"celsius\": \"Celsius\",\n \"fahrenheit\": \"Fahrenheit\",\n \"warning\": \"Could not load proper data.\",\n \"addBeacon\": \"Add a beacon\",\n \"action\": \"Add an action\",\n \"config\": \"Configure\",\n \"webhook\": {\n \"newWebhook\": \"New WebHook\",\n \"contType\": \"Content-type\",\n \"addHeader\": \"Add a header\",\n \"header\": \"Header\",\n \"headerText\": \"Header text\"\n }\n },\n \"beacons\": {\n \"title\": \"Beacons\",\n \"empty\": \"No Beacons available\",\n \"name\": \"Name\",\n \"mac\": \"MAC\",\n \"macInfo\": \"MAC must be 12 letters long\",\n \"configurationTemplate\": \"Beacon template\",\n \"icon\": \"Icon\",\n \"uploadBeaconButton\": \"UPLOAD\",\n \"battery\": \"Battery\"\n },\n \"dashboard\": {\n \"title\": \"Dashboard\",\n \"prompt\": \"To proceed with flow create or select your project in Settings\",\n \"slogan\": \"Making indoor positioning simple\"\n },\n \"gateways\": {\n \"title\": \"Gateway\",\n \"empty\": \"No Gateways available\",\n \"name\": \"Name\",\n \"location\": \"Location\",\n \"configurationTemplate\": \"Configuration template\",\n \"building\": \"Building\",\n \"floor\": \"Floor\",\n \"bleFirmware\": \"BLE firmware\",\n \"firmware\": \"Firmware\",\n \"status\": \"Status\",\n \"latitude\": \"Latitude\",\n \"longitude\": \"Longitude\",\n \"updateWithMac\": \"Upload Mac Filters To Gateway's\"\n },\n \"locations\": {\n \"title\": \"Locations\",\n \"empty\": \"No Locations available\",\n \"name\": \"Name\",\n \"address\": \"Address\",\n \"description\": \"Description\",\n \"newBuildingButton\": \"Add a building\",\n \"uploadPlanButton\": \"UPLOAD\",\n \"newFloorTitle\": \"New Floor for \",\n \"updateFloorTitle\": \"Update Floor for \",\n \"floorNr\": \"Floor nr\",\n \"floorPlan\": \"Floor Plan\",\n \"floors\": \"Floors\",\n \"devices\": \"Devices\"\n },\n \"login\": {\n \"title\": \"MPS\",\n \"prompt\": \"Sign in to get started\",\n \"username\": \"Username\",\n \"password\": \"Password\",\n \"signIn\": \"SIGN IN\",\n \"signUp\": \"Sign up\",\n \"forgotPassword\": \"Forgot your password\",\n \"noAccount\": \"Don't have an account\"\n },\n \"register\": {\n \"userName\": \"User Name\",\n \"emailAdress\": \"Email Adress\",\n \"register\": \"register\",\n \"errors\": {\n \"fiveChars\": \"At least 5 characters\",\n \"emailFormula\": \"Missing @ in emial adress\"\n }\n },\n\n \"referenceNodes\": {\n \"title\": \"Reference Nodes\",\n \"empty\": \"No Reference Nodes available\",\n \"name\": \"Name\",\n \"mac\": \"MAC\",\n \"macInfo\": \"MAC must be 12 letters long\",\n \"location\": \"Location\",\n \"configurationTemplate\": \"Configuration template\",\n },\n\n \"templates\": {\n \"title\": \"Templates\",\n \"empty\": \"No Templates available\",\n \"type\": \"Type\",\n \"name\": \"Name\",\n \"securityType\": \"Security type\",\n \"ssid\": \"SSID\",\n \"password\": \"Password\",\n \"interval\": \"Interval (ms)\",\n \"gatewayType\": \"Gateway\",\n \"beaconType\": \"Beacon\",\n \"defaultIcon\": \"Default Icon\",\n \"beaconTemplateName\": \"Beacon type\",\n \"referenceNodeType\": \"Reference Node\"\n },\n \"tracking\": {\n \"floors\": \"Floors\",\n \"singleFilter\": \"Find single beacon\",\n \"allFilter\": \"Find beacons by type\",\n \"clearFilter\": \"Clear filter\",\n \"success\": \"Succesfull connection to WebSocket server\",\n \"disconnect\": \"Disconnected from WebSocket server\",\n \"warrning\": \"Could not connect to WebSocket server\",\n \"error\": \"An error occured during the connection \",\n \"beacon\": \"Beacon name\"\n },\n \"snackbar\": {\n \"imageTooLarge\": \"Image is too large should be below 100kb\",\n // Locations\n \"locationFetchError\": \"Could not load locations please try again later\",\n \"locationFetchSingleError\": \"Could not load chosen location\",\n \"locationPostSuccess\": \"New location has been created\",\n \"locationPostError\": \"Location creation has failed\",\n \"locationDeleteSuccess\": \"Location was successfully deleted\",\n \"locationDeleteError\": \"Location could not be deleted\",\n \"locationPutSuccess\": \"Location was updated\",\n \"locationPutError\": \"Location could not be updated\",\n // Gateways\n \"gatewayFetchError\": \"Could not load chosen gateway\",\n \"gatewaysFetchError\": \"Could not load gateways please try again later\",\n \"gatewaysTemFetchError\": \"Could not load gateway templates please try again later\",\n \"gatewaysPostSuccess\": \"New gateway has been created\",\n \"gatewaysPostError\": \"Gateway creation has failed\",\n \"gatewayDeleteSuccess\": \"Gateway was successfully deleted\",\n \"gatewayDeleteError\": \"Gateway could not be deleted\",\n \"gatewayPatchSuccess\": \"Gateway was updated\",\n \"gatewayPatchError\": \"Gateway update has failed\",\n \"gatewaysUploadMacSuccess\": \"Gateways were updated with MAC filters\",\n \"gatewaysUploadMacError\": \"Could not update gateways with MAC filters\",\n // GT\n \"gatewaysTemPostSuccess\": \"New gateway template has been created\",\n \"gatewaysTemPostError\": \"Gateway template creation has failed\",\n \"gatewaysTemPatchSuccess\": \"Gateway template was updated\",\n \"gatewaysTemPatchError\": \"Gateway template update has failed\",\n \"gatewaysTemDeleteSuccess\": \"Gateway template was successfully deleted\",\n \"gatewaysTemDeleteError\": \"Gateway template could not be deleted\",\n \"gatewayTemFetchError\": \"Could not load chosen gateway template\",\n // Beacons\n \"beaconsFetchError\": \"Could not load beacons please try again later\",\n \"beaconFetchError\": \"Could not load chosen beacon\",\n \"beaconsTemFetchError\": \"Could not load beacon templates please try again later\",\n \"beaconsPostSuccess\": \"New beacon has been created\",\n \"beaconsPostError\": \"Beacon creation has failed\",\n \"beaconsDeleteSuccess\": \"Beacon was successfully deleted\",\n \"beaconsDeleteError\": \"Beacon could not be deleted\",\n \"beaconsPatchSuccess\": \"Beacon was updated\",\n \"beaconsPatchError\": \"Beacon update has failed\",\n // BT\n \"beaconTemPostSuccess\": \"New beacon template has been created\",\n \"beaconTemPostError\": \"Beacon template creation has failed\",\n \"beaconTemPatchSuccess\": \"Beacon template was updated\",\n \"beaconTemPatchError\": \"Beacon template update has failed\",\n \"beaconTemDeleteSuccess\": \"Beacon template was successfully deleted\",\n \"beaconTemDeleteError\": \"Beacon template could not be deleted\",\n \"beaconTemFetchError\": \"Could not load chosen beacon template\",\n // Reference nodes\n \"refNodesFetchErrors\": \"Could not load refernce nodes please try again later\",\n \"refNodeFetchErrors\": \"Could not load chosen reference node\",\n \"refNodesTemFetchErrors\":\"Could not load node templates please try again later\",\n \"refNodesPostSuccess\": \"New reference node has been created\",\n \"refNodesPostErrors\": \"Reference node creation has failed\",\n \"refNodesDeleteSuccess\": \"Reference node was successfully deleted\",\n \"refNodesDeleteErrors\": \"Reference node could not be deleted\",\n \"refNodesPatchSuccess\": \"Reference node was updated\",\n \"refNodesPatchErrors\": \"Reference node update has failed\",\n // RNT\n \"refNodeTemPostSuccess\": \"New reference node template has been created\",\n \"refNodeTemPostError\": \"Reference node template creation has failed\",\n \"refNodeTemPatchSuccess\": \"Reference node template was updated\",\n \"refNodeTemPatchError\": \"Reference node template update has failed\",\n \"refNodeTemDeleteSuccess\": \"Reference node template was successfully deleted\",\n \"refNodeTemDeleteError\": \"Reference node template could not be deleted\",\n \"refNodeTemFetchError\": \"Could not load chosen reference node template\",\n // Zones\n \"zonesFetchError\": \"Could not load zones please try again later\",\n \"zoneFetchError\": \"Could not load chosen zone\",\n \"zonesPostSuccess\": \"New zone has been created\",\n \"zonesPostError\": \"Zone creation has failed\",\n \"zoneDeleteSuccess\":\"Zone was successfully deleted\",\n \"zoneDeleteError\": \"Zone could not be deleted\",\n \"zonePatchSuccess\": \"Zone was updated\",\n \"zonePatchError\": \"Zone update has failed\",\n // Policies\n \"policiesFetchError\": \"Could not load policies please try again later\",\n \"policyFetchError\": \"Could not load chosen policy\",\n \"policyPostSuccess\": \"New policy has been created\",\n \"policyPostError\": \"Policy creation has failed\",\n \"policyDeleteSuccess\": \"Policy was successfully deleted\",\n \"policyDeleteError\": \"Policy could not be deleted\",\n \"policyPatchSuccess\": \"Policy was updated\",\n \"policyPatchError\": \"Policy update has failed\",\n // Projects\n \"selectActiveProject\": \"New project was selected\",\n \"projectsFetchError\": \"Could not load user projects please try again later\",\n \"projectFetchError\": \"Could not load chosen project\",\n \"projectPostSuccess\": \"New project has been created\",\n \"projectPostError\": \"Project creation has failed\",\n \"projectDeleteSuccess\": \"You have been removed from the project\",\n \"projectDeleteError\": \"Project could not be deleted\",\n \"projectPatchSuccess\": \"Project was updated\",\n \"projectPatchError\": \"Project update has failed\",\n // Login Patch\n \"loginConnection\": \"Connection Error\",\n \"updateUserPassword\": \"Updated user password\",\n \"updateUserPasswordError\": \"Password update failed\"\n },\n \"refresh\": {\n \"token\": \"REFRESH\",\n \"header\": \"Your session will soon expire\",\n \"flavorText\": \"Do you wish to refresh your session?\"\n }\n};\n\nexport default en;","const pl = {\n \"location_0\": \"lokacja\",\n \"location_1\": \"lokacje\",\n \"location_2\": \"lokacji\",\n \"gateway_0\": \"gateway\" ,\n \"gateway_1\": \"gateway'e\" ,\n \"gateway_2\": \"gateway'ów\" ,\n \"beacon_0\": \"beacon\",\n \"beacon_1\": \"beacon'y\",\n \"beacon_2\": \"beacon'ów\",\n \"refNode_0\": \"węzeł referencyjny\",\n \"refNode_1\": \"węzły referencyjne\",\n \"refNode_2\": \"węzłów referencyjnych\",\n \"template_0\": \"wzorzec\",\n \"template_1\": \"wzorce\",\n \"template_2\": \"wzorców\",\n \"zone_0\": \"strefa\",\n \"zone_1\": \"strefy\",\n \"zone_2\": \"stref\",\n \"policy_0\": \"zasada\",\n \"policy_1\": \"zasady\",\n \"policy_2\": \"zasad\",\n \"common\": {\n \"Welcome to React\": \"AAA KURWAAAt\",\n \"title\": \"MPS\",\n \"logout\": \"Wyloguj\",\n \"saveButton\": \"ZAPISZ\",\n \"cancelButton\": \"ANULUJ\",\n \"deleteButton\": \"KASUJ\",\n \"warrning\": \"Ostrzeżenie\",\n \"deletePrompt\": \"Czy na pewno chcesz skasować ten obiekt?\",\n \"deleteProjectPrompt\": \"Skasowanie projektu skasuje wszystkie powiązane z nim obiekty. Czy na pewno chesz to zrobić?\",\n \"disconnectProjectPrompt\": \"Czy na pewno chcesz przestać brać udział w projekcie?\",\n \"removeTemplateWarning\": \"Skasowanie wzorca skasuje wszystkie powiązane z nim obiekty. Czy na pewno chcesz to zrobić?\",\n \"removeLocationWarning\": \"Usunięcie lokacji skasuje również wszystkie znajdujące się w niej budynki, piętra i urządzenia. Czy na pewno chcesz to zrobić?\",\n \"removeBuildingFloorWarning\": \"Skasowanie budynków bądź pięter skasuje wszystkie powiązane z nimi urzadzenia. Czy na pewno chcesz to zrobić?\",\n \"rpp\": \"Wiersze na strone\"\n },\n \"sidebar\": {\n \"Dashboard\": \"Nawigacja\",\n \"Locations\": \"Lokacje\",\n \"Gateways\": \"Gateway'e\",\n \"Beacons\": \"Beacon'y\",\n \"Nodes\": \"Węzły\",\n \"Templates\": \"Wzorce\",\n \"Tracking\": \"Śledzenie\",\n \"Zones\": \"Strefy\",\n \"Policies\": \"Zasady\",\n \"Settings\": \"Ustawienia\",\n \"TrackingHistory\": \"Historia\"\n },\n \"settings\":{\n \"projects\":{\n \"projects\": \"Projekty\",\n \"projectName\": \"Nazwa projektu\"\n },\n \"role\":{\n \"role\": \"Rola\",\n \"regularUser\": \"Zwykły użytkownik\",\n \"admin\": \"Admin\"\n },\n \"personal\":{\n \"personal\": \"Użytkownik\",\n \"language\": \"Język\",\n \"username\": \"Użytkownik\",\n \"changePassword\": \"Zmień hasło\",\n \"password\": \"Hasło\",\n \"oldPassword\": \"Stare hasło\",\n \"newPassword\": \"Nowe hasło\",\n \"rePassword\": \"Powtórz hasło\"\n },\n \"firmwareVersion\":{\n \"firmwareVersion\": \"Wersja oprogramowania\"\n },\n \"errors\":{\n \"errorMsg\": \"Nowe hasło i powtórzone nie są takie same.\"\n }\n },\n \"createProject\":{\n \"projName\": \"Nazwa projektu\",\n \"projDescription\": \"Opis projektu\",\n \"locAlgorithm\": \"Algorytm lokalizacji\",\n \"addUser\": \"Dodaj użytkownika\",\n \"firmwareVersion\": \"Wersja oprogramowania\"\n },\n \"algorithm\":{\n \"esparOnly\": \"Tylko Espar\",\n \"refNodes\": \"Węzły referencyjne\"\n },\n \"zones\":{\n \"title\": \"Strefy\",\n \"name\": \"Nazwa\",\n \"location\": \"Lokacja\"\n },\n \"policies\": {\n \"title\": \"Zasady\",\n \"name\": \"Nazwa\",\n \"location\": \"Lokacja\",\n \"type\": \"Typ\",\n \"temperature\": \"Temperatura\",\n \"sendEmail\": \"Wyślij wiadomość\",\n \"soundAlert\": \"Komunikat dźwiękowy\",\n \"above\": \"Powyżej\",\n \"below\": \"Poniżej\",\n \"enters\": \"Wchodzi\",\n \"leaves\": \"Opuszcza\",\n \"celsius\": \"Celsjusze\",\n \"fahrenheit\": \"Fahrenheit'y\",\n \"action\": \"Dodaj akcje\",\n \"addBeacon\": \"Dodaj beacon\",\n \"config\": \"Konfiguruj\",\n \"webhook\": {\n \"newWebhook\": \"Nowy WebHook\",\n \"contType\": \"Rodzaj zawartości\",\n \"addHeader\": \"Dodaj nagłówek\",\n \"header\": \"Nagłówek\",\n \"headerText\": \"Tekst nagłówka\"\n }\n },\n \"beacons\": {\n \"title\": \"Beacon'y\",\n \"empty\": \"Brak dostępnych beacon'ów\",\n \"name\": \"Nazwa\",\n \"mac\": \"MAC\",\n \"macInfo\": \"MAC musi składać się z 12 znaków\",\n \"configurationTemplate\": \"Wzorzec beacon'a\",\n \"icon\": \"Ikona\",\n \"uploadBeaconButton\": \"WGRAJ\",\n \"battery\": \"Bateria\"\n },\n \"dashboard\": {\n \"title\": \"Nawigacja\",\n \"prompt\": \"By kontynuować wybierz lub utwórz projekt w ustawieniach\",\n \"slogan\": \"Pozycjonowanie wewnątrz nigdy nie było tak proste\",\n },\n \"gateways\": {\n \"title\": \"Gateway'e\",\n \"empty\": \"Brak dostępnych gateway'ów\",\n \"name\": \"Nazwa\",\n \"location\": \"Lokacja\",\n \"configurationTemplate\": \"Wzorzec konfiguracyjny\",\n \"building\": \"Budynek\",\n \"floor\": \"Piętro\",\n \"bleFirmware\": \"Oprogramowanie BLE\",\n \"firmware\": \"Oprogramowanie\",\n \"status\": \"Status\",\n \"latitude\": \"Szerokość geograficzna\",\n \"longitude\": \"Wysokość geograficzna\",\n \"updateWithMac\": \"Wyślij Filtry Mac Do Gateway'ów \"\n },\n \"locations\": {\n \"title\": \"Lokacje\",\n \"empty\": \"Brak dostępnych lokacji\",\n \"name\": \"Nazwa\",\n \"address\": \"Adres\",\n \"description\": \"Opis\",\n \"newBuildingButton\": \"Dodaj budynek\",\n \"uploadPlanButton\": \"UPLOAD\",\n \"newFloorTitle\": \"Nowe pietro dla \",\n \"updateFloorTitle\": \"Edycja pietra dla \",\n \"floorNr\": \"Nr pietra\",\n \"floorPlan\": \"Plan pietra\",\n \"floors\": \"Piętra\",\n \"devices\": \"Urządzenia\"\n },\n \"login\": {\n \"title\": \"MPS\",\n \"prompt\": \"Zaloguj się\",\n \"username\": \"Użytkownik\",\n \"password\": \"Hasło\",\n \"signIn\": \"ZALOGUJ SIĘ\",\n \"signUp\": \"Zarejestruj się\",\n \"forgotPassword\": \"Zapomniałeś/aś hasła\",\n \"noAccount\": \"Nie masz konta\"\n },\n \"register\": {\n \"userName\": \"Nazwa Użytkownika\",\n \"emailAdress\": \"Adres Email\",\n \"register\": \"Zarejestruj\", \n \"errors\": {\n \"fiveChars\": \"Co najmniej 5 znaków\",\n \"emailFormula\": \"W adresie emial brakuje @\"\n }\n },\n \"referenceNodes\": {\n\n \"title\": \"Węzły referencyjne\",\n \"empty\": \"Brak dostępnych węzłów referencyjnych\",\n \"name\": \"Nazwa\",\n \"mac\": \"MAC\",\n \"macInfo\": \"MAC musi składać się z 12 znaków\",\n \"location\": \"Lokacja\",\n \"configurationTemplate\": \"Wzorzec konfiguracyjny\",\n },\n \n \"templates\": {\n \"title\": \"Wzorce urządzeń\",\n \"empty\": \"Brak dostępnych wzorców urządzeń\",\n \"type\": \"Typ\",\n \"name\": \"Nazwa\",\n \"securityType\": \"Typ zabezpieczeń\",\n \"ssid\": \"SSID\",\n \"password\": \"Hasło\",\n \"interval\": \"Interwał (ms)\",\n \"gatewayType\": \"Gateway\",\n \"beaconType\": \"Beacon\",\n \"defaultIcon\": \"Ikona domyślna\",\n \"beaconTemplateName\": \"Typ beacona\",\n \"referenceNodeType\": \"Węzeł referencyjny\"\n },\n \"tracking\": {\n \"floors\": \"Piętra\",\n \"singleFilter\": \"Znajdź Beacon\",\n \"allFilter\": \"Znajdź Beacon'y typu\",\n \"clearFilter\": \"Wyczyść filtrowanie\",\n \"success\": \"Udane połączenie z serwerem WebSocket\",\n \"disconnect\": \"Odłączono od serwera Websocket\",\n \"warrning\": \"Nie można połączyć się z serwerem WebSocket \",\n \"error\": \"Przy próbie połączenia z serwerem WebSocket wystąpił błąd \",\n \"beacon\": \"Nazwa beacon'a\"\n },\n \"snackbar\": {\n \"imageTooLarge\": \"Wgrano za duzą ikonę, maksimum to 100kb.\",\n // Locations\n \"locationFetchError\": \"Nie udało się pobrać dostępnych lokacji\",\n \"locationFetchSingleError\": \"Nie udało sie pobrać wybranej lokacji\",\n \"locationPostSuccess\": \"Utworzono nowa lokację\",\n \"locationPostError\": \"Nie udało sie utworzyć nowej lokacji\",\n \"locationDeleteSuccess\": \"Lokacja została skasowana\",\n \"locationDeleteError\": \"Nie udało się skasować lokacji\",\n \"locationPutSuccess\": \"Uaktutalniono lokację\",\n \"locationPutError\": \"Nie udalo się uaktutalnić lokacji\",\n // Gateways \n \"gatewayFetchError\": \"Nie udało sie pobrać wybranego gateway'a\",\n \"gatewaysFetchError\": \"Nie udało się pobrać dostępnych gateway'ów\",\n \"gatewaysTemFetchError\": \"Nie udało się pobrać wzorców gateway'ów\",\n \"gatewaysPostSuccess\": \"Stworzono nowy gateway\",\n \"gatewaysPostError\": \"Nie udało się stworzyć nowego gateway'a\",\n \"gatewayDeleteSuccess\": \"Gateway został skasowany\",\n \"gatewayDeleteError\": \"Nie udało się skasować gateway'a\",\n \"gatewayPatchSuccess\": \"Uaktualniono gateway\",\n \"gatewayPatchError\": \"Nie udało się uaktualnić gateway'a\",\n \"gatewaysUploadMacSuccess\": \"Uaktualniono listą MAC dla gateway'ów \",\n \"gatewaysUploadMacError\": \"Nie udało się uaktualnić listy MAC dla gateway'ów\",\n // GT\n \"gatewaysTemPostSuccess\": \"Stworzono nowy wzorca gateway'a\",\n \"gatewaysTemPostError\": \"Nie udało się stworzyć nowego wzorca gateway'a\",\n \"gatewaysTemPatchSuccess\": \"Uaktualniono wzorzec gateway'a\",\n \"gatewaysTemPatchError\": \"Nie udało się uaktualnić wzorca\",\n \"gatewaysTemDeleteSuccess\": \"Skasowano wzorzec gateway'a\",\n \"gatewaysTemDeleteError\": \"Nie udało się skasować wzorca\",\n \"gatewayTemFetchError\": \"Nie udało sie pobrać wybranego wzorca\",\n // Beacons\n \"beaconsFetchError\": \"Nie udało się pobrać dostępnych beacon'ów\",\n \"beaconFetchError\": \"Nie udało sie pobrać wybranego beacon'a\",\n \"beaconsTemFetchError\": \"Nie udało się pobrać wzorców beacon'ów\",\n \"beaconsPostSuccess\": \"Stworzono nowy beacon\",\n \"beaconsPostError\": \"Nie udało się stworzyć nowego beacon'a\",\n \"beaconsDeleteSuccess\": \"Beacon został skasowany\",\n \"beaconsDeleteError\": \"Nie udało się skasować beacon'a\",\n \"beaconsPatchSuccess\": \"Uaktualniono beacon'a\",\n \"beaconsPatchError\": \"Nie udało się uaktualnić beacon'a\",\n // BT\n \"beaconTemPostSuccess\": \"Stworzono nowy wzorzec beacon'a\",\n \"beaconTemPostError\": \"Nie udało się stworzyć nowego wzorca beacon'a\",\n \"beaconTemPatchSuccess\": \"Uaktualniono wzorzec beacon'a\",\n \"beaconTemPatchError\": \"Nie udało się uaktualnić wzorca\",\n \"beaconTemDeleteSuccess\": \"Skasowano wzorzec beacon'a\",\n \"beaconTemDeleteError\": \"Nie udało się skasować wzorca\",\n \"beaconTemFetchError\": \"Nie udało sie pobrać wybranego wzorca\",\n // Reference nodes\n \"refNodesFetchErrors\": \"Nie udało się pobrać dostępnych węzłów referencyjnych\",\n \"refNodeFetchErrors\": \"Nie udało sie pobrać wybranego węzła referencyjnego\",\n \"refNodesTemFetchErrors\": \"Nie udało się pobrać wzorców węzłów\",\n \"refNodesPostSuccess\": \"Stworzono nowy węzeł referencyjny\",\n \"refNodesPostErrors\": \"Nie udało się stworzyć węzła referencyjnego\",\n \"refNodesDeleteSuccess\": \"Węzeł referencyjny został skasowany\",\n \"refNodesDeleteErrors\": \"Nie udało się skasować węzła referencyjnego\",\n \"refNodesPatchSuccess\": \"Uaktualniono węzeł referencyjny\",\n \"refNodesPatchErrors\": \"Nie udało się uaktualnić węzła referencyjnego\",\n // RNT\n \"refNodeTemPostSuccess\": \"Stworzono nowy wzorzec węzła referencyjnego\",\n \"refNodeTemPostError\": \"Nie udało się stworzyć nowego wzorca węzła\",\n \"refNodeTemPatchSuccess\": \"Uaktualniono wzorzec węzła'a\",\n \"refNodeTemPatchError\": \"Nie udało się uaktualnić wzorca węzła\",\n \"refNodeTemDeleteSuccess\": \"Skasowano wzorzec węzła\",\n \"refNodeTemDeleteError\": \"Nie udało się skasować wzorca\",\n \"refNodeTemFetchError\": \"Nie udało sie pobrać wybranego wzorca\",\n // Zones\n \"zonesFetchError\": \"Nie udało się pobrać dostępnych stref\",\n \"zoneFetchError\": \"Nie udało sie pobrać wybranej strefy\",\n \"zonesPostSuccess\": \"Stworzono nową strefę\",\n \"zonesPostError\": \"Nie udało się stworzyć nowej strefy\",\n \"zoneDeleteSuccess\": \"Strefa została skasowana\",\n \"zoneDeleteError\": \"Nie udało się skasować wybranej strefy\",\n \"zonePatchSuccess\": \"Uaktualniono strefę\",\n \"zonePatchError\": \"Nie udało się uaktualnić strefy\",\n // Policies\n \"policiesFetchError\": \"Nie udało się pobrać dostępnych zasad\",\n \"policyFetchError\": \"Nie udało sie pobrać wybranej zasady\",\n \"policyPostSuccess\": \"Stworzono nową zasadę\",\n \"policyPostError\": \"Nie udało się stworzyć nowej zasady\",\n \"policyDeleteSuccess\": \"Zasada została skasowana\",\n \"policyDeleteError\": \"Nie udało się skasować wybranej zasady\",\n \"policyPatchSuccess\": \"Uaktualniono zasadę\",\n \"policyPatchError\": \"Nie udało się uaktualnić zasady\",\n // Projects\n \"selectActiveProject\": \"Wybrano nowy projekt\",\n \"projectsFetchError\": \"Nie udało się pobrać dostępnych projektów\",\n \"projectFetchError\": \"Nie udało się pobrać wybranego projektu\",\n \"projectPostSuccess\": \"Stworzono nowy projekt\",\n \"projectPostError\": \"Nie udało się stworzyć nowego projektu\",\n \"projectDeleteSuccess\": \"Skasowano projekt\",\n \"projectDeleteError\": \"Nie udało się skasować wybranego projektu\",\n \"projectPatchSuccess\": \"Uaktualniono projekt\",\n \"projectPatchError\": \"Nie udało się uaktualnić projektu\",\n // Login Patch\n \"loginConnection\": \"Wystąpił błąd połączenia\",\n \"updateUserPassword\": \"Zmieniono hasło\",\n \"updateUserPasswordError\": \"Nie udalo się uaktualnić hasła\"\n },\n \"refresh\": {\n \"token\": \"ODŚWIEŻ\",\n \"header\": \"Twoja sesja niedługo wygaśnie\",\n \"flavorText\": \"Czy chcesz odświeżyć swoją sesje?\"\n }\n \n};\n\nexport default pl;","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { createStore, applyMiddleware } from 'redux';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport rootReducer from './reducers'\nimport thunk from 'redux-thunk'\nimport App from './components/Layout/App';\nimport * as serviceWorker from './serviceWorker';\n// import logger from 'redux-logger'\nimport { SnackbarProvider } from 'notistack';\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport { Theme } from './themes/style'\nimport { BrowserRouter } from 'react-router-dom'\nimport './index.css'\nimport './i18n.js'\n\n\nconst middleware = applyMiddleware(thunk /*, logger*/)\n// const store = createStore(rootReducer,middleware)\n\nconst store = createStore(rootReducer, composeWithDevTools(\n middleware,\n // other store enhancers if any\n ));\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n );\n\nserviceWorker.unregister();\n"],"sourceRoot":""}