{"version":3,"sources":["locales sync /^/.*/translation/.json$","i18n.js","theme.js","components/Dialog.js","components/Logo.js","pages/Login/Login.js","api/alawmulaw.js","api/ServerApi.js","components/SelectLang.js","components/ApplicationBar.js","components/TabbedMenu.js","pages/ServerConsole/NetworksList.js","pages/ServerConsole/UsersList.js","pages/ServerConsole/GroupsList.js","pages/ServerConsole/ProfilesList.js","pages/ServerConsole/DevicesList.js","pages/ServerConsole/StatusesList.js","pages/ServerConsole/ServerConsole.js","pages/NetworkEditor/UsersListEditor.js","pages/NetworkEditor/GroupsListEditor.js","pages/NetworkEditor/StatusesListEditor.js","pages/NetworkEditor/ProfilesListEditor.js","pages/NetworkEditor/AclListEditor.js","pages/NetworkEditor/EditUserPermissionsDialog.js","pages/NetworkEditor/EditUserDialog.js","pages/NetworkEditor/EditGroupDialog.js","pages/NetworkEditor/EditStatusDialog.js","pages/NetworkEditor/EditProfileDialog.js","pages/NetworkEditor/NetworkEditor.js","pages/DeviceSettings/EditAccountDialog.js","pages/DeviceSettings/EditChannelDialog.js","pages/DeviceSettings/EditDeviceSettingsDialog.js","App.js","serviceWorker.js","index.js"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","langs","require","resources","langCodes","i","length","lng","translation","i18n","use","LanguageDetector","initReactI18next","init","fallbackLng","debug","interpolation","escapeValue","theme","createMuiTheme","palette","primary","main","secondary","grey","error","red","A400","background","default","appBar","dialog","dialogTitle","tabbedMenu","tabbedMenuSelected","tableRow","selectedRow","yellow","border","color","typography","formheader","fontStyle","fontSize","props","MuiTypography","variantMapping","overrides","MuiTableCell","sizeSmall","padding","head","MuiListItemIcon","root","minWidth","MuiDialogActions","justifyContent","MuiDialogTitle","fontWeight","Dialog","styles","headerStyle","backgroundColor","lineHeight","contentStyle","paper","overflowX","title","this","Box","textAlign","align","Typography","component","variant","style","Container","maxWidth","width","Paper","children","React","Component","Logo","src","process","height","alt","Login_","state","login","password","serveraddress","loginMessage","loginError","passwordMessage","passwordError","serveraddressMessage","serveraddressError","lang","validateForm","onLogin","stopPropagation","preventDefault","name","target","value","setState","t","changeLanguage","onSubmit","formSubmit","bind","TextField","margin","label","onChange","handleInput","type","autoComplete","FormControl","InputLabel","htmlFor","Select","handleLangChange","inputProps","options","MenuItem","key","marginTop","Button","Login","withTranslation","alawmulaw","d","a","c","b","k","f","g","l","h","m","n","freeze","encodeSample","decodeSample","encode","Uint8Array","decode","Int16Array","p","alaw","mulaw","soundBuffer","ActiveCallId","IsTx","ssrc","ServerApi","userID","VoipPort","AudioSampleRate","AudioBitRate","AudioFrameSize","bufferSamplesCount","networks","ws","onError","onClose","onConnect","onNetworksChanged","console","log","onGetnetComplete","onGetDeviceSettingsComplete","window","WebSocket","onopen","handleOpen","onmessage","handleMessage","onerror","handleError","onclose","handleClose","alert","close","evt","JSON","stringify","messages","parse","data","mi","msg","MessageID","ArrayBuffer","Uint32Array","crypto","getRandomValues","devconf","Ssrc","AppName","VersionName","VersionCode","AudioCodec","VoiceOverTcp","Password","DeviceData","SessionID","getBase64ID","ID","getDeviceID","DeviceDescription","AvatarHash","StatusID","send","Reason","Response","UserID","message","DataType","processNetworks","DataObjects","Operation","processGroups","NetworkID","processUsers","processDevices","processStatuses","processProfiles","serverConfig","ProcessPTTControl","process_voice_packet","Content","deviceConfig","control","Control","sourceId","SourceID","sourceName","SourceName","targetId","TargetID","targetName","TargetName","callId","CallID","pttConfirm","Destination","Type","setSelectedObjectName","document","getElementById","grplist","devlist","selectedIndex","innerHTML","tag","nets","dataOp","net","push","j","splice","groups","networkID","netIndex","getNetworkIndexByID","group","users","user","devices","device","userIndex","getUserIndexByID","DeviceID","statuses","status","profiles","profile","networkIndex","onComplete","getnetMessage","NetworkSettings","saveNetworkMessage","deviceID","requestID","RequestID","deviceSettings","jobID","time","Date","utcTime","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","JobID","Time","getTime","DispatcherID","Users","JobType","JobState","Settings","ExpirationTime","udp","base64ToUint8Array","Data","buffer","pcm","audioFrame","Float32Array","addChunk","getIndexByID","array","field","undefined","b64","String","fromCharCode","btoa","deviceid","localStorage","getItem","setItem","decimalColorToHexColor","number","intnumber","rgb","HTMLcolor","toString","substring","FormatByteArrayToGuidString","format","guidChars","Array","offset","dash","hex","formatCh","HexsToChars","parts","join","guidString","split","HexToChar","base64toGuid","base64Str","arr","sortByName","item1","item2","Name","sortByLogin","objname","base64string","from","atob","charCodeAt","SelectLang_","language","open","anchorRef","createRef","ref","onClick","handleButtonClick","langName","Menu","anchorEl","current","MenuList","shortName","ApplicationBar_","onAction","backgroundTitleStyle","typographyTitleStyle","AppBar","position","Toolbar","Grid","container","justify","spacing","xs","item","handleLogout","ApplicationBar","TabbedMenu_","tab","buttonStyle","selected","buttonUsers","usersEnabled","handleClick","buttonGroups","groupsEnabled","buttonStatuses","statusesEnabled","buttonDevices","devicesEnabled","buttonProfiles","profilesEnabled","ButtonGroup","size","TabbedMenu","NetworksList_","menuAnchor","menuNetworkID","onNetworkSelect","selectedNetworkID","cursor","event","currentTarget","menu","netID","handleMenuClose","onNetworkMenu","sort","Table","TableHead","TableRow","TableCell","colSpan","TableBody","handleNetworkSelect","getNetworkStyle","scope","CommandPort","IconButton","aria-label","handleMenuClick","keepMounted","Boolean","handleMenuItemClick","NetworksList","UsersList_","menuUser","onUserSelect","selectedUserID","priority","locked","onContextMenu","handleUserSelect","getItemStyle","formatLocked","Locked","disabled","UsersList","GroupsList_","groupID","onGroupSelect","selectedGroupID","handleGroupSelect","getGroupStyle","formatPriority","Priority","Checkbox","marginRight","checked","Emergency","readOnly","AllCall","Broadcast","GroupsList","ProfilesList_","itemID","onItemSelect","selectedItemID","items","ProfileID","handleItemSelect","Description","ProfilesList","DevicesList","UserNAme","versionName","StatusesList_","Color","StatusesList","ServerConsole_","currentNetworkID","currentUserID","currentGroupID","currentProfileID","currentStatusID","currentDeviceID","selectedTab","profileID","statusID","action","onLogout","statusMessage","statusError","network","getNetwork","list","filter","handleUserMenu","handleStatusSelect","handleDeviceSelect","handleProfileSelect","handleAction","paddingTop","borderTop","fixed","border2","handleNetworkMenu","handleTabClick","ServerConsole","UsersListEditor_","menuItemID","addIcon","getUserStyle","whiteSpace","ListItemIcon","ListItemText","UsersListEditor","GroupsListEditor_","getRowStyle","GroupsListEditor","StatusesListEditor_","StatusesListEditor","ProfilesListEditor_","ProfilesListEditor","AclListEditor_","index","AclListEditor","EditUserPermissionsDialog_","permissions","permissionsArr","changed","errors","validate","confirm","scroll","fullWidth","aria-labelledby","DialogTitle","DialogContent","DialogActions","handleSave","EditUserPermissionsDialog","EditUserDialog_","Permissions","permissionsDialogOpen","permissionsType","val","userPermissionsDialog","style2","handlePermissionsTypeChange","verticalAlign","width2","height2","EditUserDialog","EditGroupDialog_","EditGroupDialog","EditStatusDialog_","colorPicker","readonly","onChangeComplete","hexColor","parseInt","hexColorToDecimalColor","EditStatusDialog","EditProfileDialog_","Profile","getProfileDefaults","ManDownTimeout","Receivers","ScreenSOS","ManDown","EmergencyVoiceCall","EmergencyGroupId","receivers","icon","getReceiverIcon","receiver","getReceiver","multiple","handleReceiversChange","input","Input","MenuProps","PaperProps","maxHeight","renderValue","display","flexWrap","Chip","getReceiverName","isReceiverChecked","handleInputProfile","emergencyGroups","EditProfileDialog","NetworkEditor_","networkSettings","currentNetorkID","userEditor","groupEditor","statusEditor","profileEditor","acl","acls","Groups","groupIndex","Dispatchers","Devices","DMRGroupID","DMRNetworkID","DMRSlot","statusIndex","Statuses","Statuss","profileIndex","Profiles","getProfileEmergencyGroups","getProfileReceivers","NetworkDispatchers","userAcls","getUserAcls","userDialog","handleUserEditorAction","minHeight","paddingLeft","handleUserAclChange","groupAcls","getGroupAcls","groupDialog","handleGroupEditorAction","statusDialog","handleStatusEditorAction","profileDialog","handleProfileEditorAction","paddingBottom","handleButtonSave","handleButtonCancel","NetworkEditor","EditAccountDialog_","account","ServerAddress","EditAccountDialog","EditChannelDialog_","channel","ChannelNum","ChannelName","Number","EditChannelDialog","TabPanel","other","role","hidden","EditDeviceSettingsDialog_","DeviceAccounts","DeviceChannels","enableds","initEnableds","PttHardwareKey","LowBatteryLevel","DeleteEventsOlderDays","panelsExpanded","startupSettings","soundSettings","vibrateOn","video","location","accountEditor","accountID","channelEditor","togglePanel","handleEnableds","handleTabChange","fromEntries","isValid","arrSettings","entries","SetEmergencyVolume","SetNotificationVolume","expanded","panel","max","Slider","step","min","OutlinedInput","aria-describedby","unshift","isNaN","newValue","ExpansionPanel","ExpansionPanelSummary","expandIcon","ExpansionPanelDetails","checkBox","voiceSlider","select","inputBox","getGroupsSelectItems","textBox","handleAccountMenuClose","handleAccountEditorAction","accountMenuAnchor","accountIndex","handleAccountMenuItemClick","handleAccountMenuClick","getDefaultUserItems","handleChannelMenuClose","handleChannelEditorAction","channelMenuAnchor","channelIndex","reindexChannels","channels","channelNum","handleChannelMenuItemClick","handleChannelMenuClick","square","Tabs","indicatorColor","Tab","aria-controls","tabGeneral","tabAccounts","tabChannels","EditDeviceSettingsDialog","App_","sessionStorage","isLogged","isConnecting","authUser","isString","apiError","apiMessage","page","networkEditor","deviceSettingsEditor","api","indexOf","defaultLang","existLang","startApi","handleApiError","handleApiClose","handleApiConnect","handleNetworksChanged","connect","err","errorStr","queryGetNetworkSettings","querySaveNetworkSettings","queryGetDeviceSettings","querySaveDeviceSetings","errorMessage","handleAppAction","handleLogin","getLang","App","hostname","match","ReactDOM","render","ThemeProvider","CssBaseline","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.3dbce323.chunk.js","sourcesContent":["var map = {\n\t\"./en/translation.json\": 206,\n\t\"./ru/translation.json\": 207\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 205;","import i18n from \"i18next\";\r\nimport { initReactI18next } from 'react-i18next/hooks';\r\n\r\n//import Backend from 'i18next-xhr-backend';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\n// not like to use this?\r\n// have a look at the Quick start guide \r\n// for passing in lng and translations on init\r\n\r\n//import translationEN from './locales/en/translation.json';\r\n//import translationRU from './locales/ru/translation.json';\r\n\r\n\r\n//list of available languages\r\nconst langs = require('./locales/langs.json')\r\nlet resources = {}\r\n//load translations\r\nconst langCodes = Object.keys(langs)\r\nfor(let i=0; i see /public/locales\r\n // learn more: https://github.com/i18next/i18next-xhr-backend\r\n //.use(Backend)\r\n // detect user language\r\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\r\n .use(LanguageDetector)\r\n // pass the i18n instance to react-i18next.\r\n .use(initReactI18next)\r\n // init i18next\r\n // for all options read: https://www.i18next.com/overview/configuration-options\r\n .init({\r\n resources,\r\n fallbackLng: 'en',\r\n debug: true,\r\n langs: langs, \r\n\r\n interpolation: {\r\n escapeValue: false, // not needed for react as it escapes by default\r\n }\r\n });\r\n\r\n\r\nexport default i18n;","import { red, grey, yellow } from '@material-ui/core/colors';\r\nimport { createMuiTheme } from '@material-ui/core/styles';\r\n\r\n// A custom theme for this app\r\nconst theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n main: '#556cd6', // buttons and checkboxes\r\n },\r\n secondary: {\r\n main: grey[700], //app bar\r\n },\r\n error: {\r\n main: red.A400,\r\n },\r\n background: {\r\n default: grey[200],\r\n\r\n appBar: grey[700],\r\n\r\n dialog: 'white', //Dialog component\r\n dialogTitle: grey[700], //Dialog component\r\n\r\n tabbedMenu: grey[700], //TabbedMenu component\r\n tabbedMenuSelected: grey[900],//TabbedMenu component\r\n\r\n tableRow: 'white',\r\n selectedRow: yellow[200]\r\n },\r\n border: {\r\n dialog: grey[400] //Dialog component\r\n },\r\n color: {\r\n dialogTitle: 'white',//Dialog component\r\n tabbedMenu: 'white'//TabbedMenu component\r\n }\r\n },\r\n typography: {\r\n formheader: {\r\n fontStyle: 'italic',\r\n fontSize: '20px'\r\n }\r\n },\r\n props: {\r\n MuiTypography: {\r\n variantMapping: {\r\n formheader: 'h4'\r\n }\r\n }\r\n },\r\n overrides: {\r\n MuiTableCell: {\r\n //sizeMedium: {\r\n // padding: '10px'\r\n //},\r\n sizeSmall: {\r\n padding: '5px 10px'\r\n },\r\n head: {\r\n fontSize: '1em'\r\n }\r\n },\r\n MuiListItemIcon: {\r\n root: {\r\n minWidth: 36\r\n }\r\n },\r\n MuiDialogActions: {\r\n root: {\r\n justifyContent: 'center'\r\n }\r\n },\r\n MuiDialogTitle: {\r\n root: {\r\n background: grey[700],\r\n color: 'white',\r\n fontWeight: 'bold'\r\n }\r\n },\r\n }\r\n\r\n});\r\n//MuiTableCell-head\r\n//MuiListItemIcon-root\r\n//MuiDialogActions-root\r\n//MuiDialogTitle-root\r\n\r\nexport default theme;","import React from 'react';\r\n\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Container from '@material-ui/core/Container';\r\nimport Box from '@material-ui/core/Box';\r\nimport Paper from '@material-ui/core/Paper';\r\n\r\nimport theme from '../theme';\r\n\r\nexport class Dialog extends React.Component{\r\n\r\n render() {\r\n //alert(theme.palette.dialogTitle)\r\n const styles = {\r\n headerStyle: {\r\n padding:'0.5em 1em', \r\n fontStyle:'italic', \r\n color: theme.palette.color.dialogTitle, \r\n backgroundColor: theme.palette.background.dialogTitle,\r\n fontWeight: 'bold',\r\n lineHeight: '1em'\r\n },\r\n contentStyle: { \r\n backgroundColor: 'white', \r\n padding:'1em', \r\n border: '1px solid '+ theme.palette.border.dialog \r\n },\r\n paper: {\r\n //width: '100%',\r\n overflowX: 'auto',\r\n }\r\n }\r\n\r\n let title = '';\r\n if(this.props.title){\r\n title = (\r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n {this.props.children}\r\n \r\n \r\n \r\n );\r\n\r\n }\r\n\r\n}\r\n\r\n","import React from 'react';\r\n\r\n//import Typography from '@material-ui/core/Typography';\r\n//import Container from '@material-ui/core/Container';\r\n//import Box from '@material-ui/core/Box';\r\n//import theme from '../theme';\r\n\r\nexport default class Logo extends React.Component {\r\n\r\n render(){\r\n\r\n return(\r\n {this.props.title}/\r\n );\r\n/*\r\ntext logo sample\r\n\r\n let headerStyle = {\r\n padding:'0.2em 1em', \r\n fontStyle:'italic', \r\n color: theme.palette.color.dialogTitle, \r\n //backgroundColor: theme.palette.background.dialogTitle,\r\n fontWeight: 'bold',\r\n fontSize: '1.8em'\r\n }\r\n\r\n return(\r\n <>\r\n \r\n \r\n BeeTalker\r\n \r\n \r\n \r\n )\r\n*/\r\n } \r\n}\r\n//let title = <>BeeTalker;","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport { Dialog } from '../../components/Dialog';\r\nimport {Box, Button, FormControl, TextField, InputLabel, MenuItem, Select } from '@material-ui/core';\r\nimport Logo from '../../components/Logo';\r\n\r\n//export \r\nclass Login_ extends React.Component {\r\n \r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n login: this.props.login,\r\n password: this.props.password,\r\n serveraddress: this.props.serveraddress,\r\n loginMessage: '',\r\n loginError: false,\r\n passwordMessage: '',\r\n passwordError: false,\r\n serveraddressMessage: '',\r\n serveraddressError: false,\r\n lang: this.props.lang, // this.props.i18n.language\r\n }\r\n \r\n }\r\n\r\n formSubmit(e){\r\n\r\n if(this.validateForm()){\r\n this.props.onLogin(this.state.login, this.state.password, this.state.serveraddress);\r\n }\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n }\r\n\r\n handleInput(e){\r\n let name = e.target.name;\r\n let value = e.target.value;\r\n this.setState({[name]: value})\r\n }\r\n\r\n validateForm(){\r\n const { t } = this.props;\r\n \r\n if(!this.state.login){\r\n this.setState({loginMessage: t('LoginIsEmpty'), loginError: true})\r\n }else{\r\n this.setState({loginMessage: '', loginError: false})\r\n }\r\n /*\r\n if(!this.state.password){\r\n this.setState({passwordMessage: 'Password is empty', passwordError: true})\r\n }else{\r\n this.setState({passwordMessage: '', passwordError: false})\r\n }\r\n */\r\n if(!this.state.serveraddress){\r\n this.setState({serveraddressMessage: '', serveraddressError: true})\r\n }else{\r\n this.setState({serveraddressMessage: '', serveraddressError: false})\r\n }\r\n return true;\r\n }\r\n\r\n handleLangChange(e){\r\n const lang = e.target.value\r\n this.props.i18n.changeLanguage(lang);\r\n this.setState({lang: lang})\r\n }\r\n\r\n render() {\r\n const { t, i18n } = this.props;\r\n \r\n const margin = {margin:'16px 0 8px 0'}\r\n\r\n return (\r\n <>\r\n\r\n )}>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"Language\")}\r\n \r\n {Object.keys(i18n.options.langs).map(\r\n code => {i18n.options.langs[code].name}\r\n )}\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport const Login = withTranslation()(Login_);","var q = function(d) {\r\n function e(a) {\r\n a = -32768 === a ? -32767 : a;\r\n var c = ~a >> 8 & 128;\r\n c || (a *= -1);\r\n 32635 < a && (a = 32635);\r\n if (256 <= a) {\r\n var b = k[a >> 8 & 127];\r\n a = b << 4 | a >> b + 3 & 15\r\n } else\r\n a >>= 4;\r\n return a ^ c ^ 85\r\n }\r\n function f(a) {\r\n var c = 0;\r\n a ^= 85;\r\n let x = a & 128 && (a &= -129, \r\n c = -1);\r\n var b = ((a & 240) >> 4) + 4;\r\n a = 4 != b ? 1 << b | (a & 15) << b - 4 | 1 << b - 5 : a << 1 | 1;\r\n return -8 * (0 === c ? a : -a)\r\n }\r\n function g(a) {\r\n var c = a >> 8 & 128;\r\n 0 != c && (a = -a);\r\n 32635 < a && (a = 32635);\r\n a += 132;\r\n var b = l[a >> 7 & 255];\r\n return ~(c | b << 4 | a >> b + 3 & 15)\r\n }\r\n function h(a) {\r\n a = ~a;\r\n var c = a >> 4 & 7;\r\n c = m[c] + ((a & 15) << c + 3);\r\n 0 != (a & 128) && (c = -c);\r\n return c\r\n }\r\n var k = [1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]\r\n , n = Object.freeze({\r\n encodeSample: e,\r\n decodeSample: f,\r\n encode: function(a) {\r\n for (var c = new Uint8Array(a.length), b = 0; b < a.length; b++)\r\n c[b] = e(a[b]);\r\n return c\r\n },\r\n decode: function(a) {\r\n for (var c = new Int16Array(a.length), b = 0; b < a.length; b++)\r\n c[b] = f(a[b]);\r\n return c\r\n }\r\n })\r\n , l = [0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]\r\n , m = [0, 132, 396, 924, 1980, 4092, 8316, 16764]\r\n , p = Object.freeze({\r\n encodeSample: g,\r\n decodeSample: h,\r\n encode: function(a) {\r\n for (var c = new Uint8Array(a.length), b = 0; b < a.length; b++)\r\n c[b] = g(a[b]);\r\n return c\r\n },\r\n decode: function(a) {\r\n for (var c = new Int16Array(a.length), b = 0; b < a.length; b++)\r\n c[b] = h(a[b]);\r\n return c\r\n }\r\n });\r\n d.alaw = n;\r\n d.mulaw = p;\r\n return d\r\n}({});\r\n\r\nexport let alawmulaw = q;\r\n","import {alawmulaw} from './alawmulaw'\r\nimport { FlashOn } from '@material-ui/icons';\r\n\r\n\r\nvar ActiveCallId = \"\";\r\nvar SelectedObjectId = \"\";\r\nvar selectedObjectName = \"\";\r\nvar SelectedUserId = \"\";\r\nvar IsTx = false, IsRx = false;\r\nvar SelectedObjectType = \"\";\r\nvar ws;//todo this.ws\r\n\r\nvar sampleRate;\r\nvar audioContext;\r\n//var soundRecorder;\r\nvar microphone_stream = null;\r\nvar audio_processor_node = null;\r\nvar soundBuffer;\r\n\r\nvar udpPacketBuffer;\r\nvar currentFrame;\r\nvar currentBufferIndex = 0;\r\nvar bufferSamplesCount = 0;\r\nvar sequenceNumber = 0;\r\nvar ssrc = 0;\r\n\r\n\r\n//FLEET_DATA_OP_TYPE\r\nconst OP_INITIALIZE = 0\r\nconst OP_ADD = 1\r\nconst OP_REMOVE = 2\r\nconst OP_CHANGE = 3\r\n\r\n//FLEET_TYPES\r\nconst TYPE_UNKNOWN = 0\r\nconst TYPE_DEVICES = 10\r\nconst TYPE_USERS = 11\r\nconst TYPE_GROUPS = 12\r\nconst TYPE_STATUSES = 13\r\nconst TYPE_PASSWORD = 14\r\nconst TYPE_LOCATION_REQUESTS = 15\r\nconst TYPE_QUERYAVATAR = 20\r\nconst TYPE_AVATARRESPONSE = 21\r\nconst TYPE_QUERYLOGO = 22\r\nconst TYPE_LOGORESPONSE = 23\r\nconst TYPE_MEDIA_CONTROL = 25\r\nconst TYPE_EMERGENCY_PROFILES = 30\r\nconst TYPE_NETWORKS = 100\r\nconst TYPE_NETWORKSETTINGS = 110\r\nconst TYPE_NEWNETWORKSETTINGS = 120\r\nconst TYPE_SERVERSETTINGS = 130\r\nconst TYPE_COMPOUND = 255\r\n\r\n\r\nexport class ServerApi {\r\n\r\n constructor(serveraddress, login, password, options){\r\n this.serveraddress = serveraddress\r\n this.login = login\r\n this.password = password\r\n this.userID = null\r\n\r\n this.VoipPort = null\r\n this.AudioSampleRate = null\r\n this.AudioBitRate = null\r\n this.AudioFrameSize = null\r\n this.bufferSamplesCount = 0;\r\n\r\n this.networks = []\r\n\r\n this.ws = null;\r\n\r\n this.options = {\r\n onError: null,\r\n onClose: null,\r\n onConnect: null,\r\n onNetworksChanged: null,\r\n ...options\r\n }\r\n console.log(this.options)\r\n\r\n this.onGetnetComplete = null\r\n this.onGetDeviceSettingsComplete = null\r\n }\r\n\r\n connect(){\r\n if (\"WebSocket\" in window) {\r\n this.ws = new WebSocket(\"wss://\" + this.serveraddress);\r\n this.ws.onopen = this.handleOpen.bind(this)\r\n this.ws.onmessage = this.handleMessage.bind(this)\r\n this.ws.onerror = this.handleError.bind(this)\r\n this.ws.onclose = this.handleClose.bind(this)\r\n } else {\r\n // The browser doesn't support WebSocket\r\n alert(\"WebSocket NOT supported by your Browser!\");\r\n }\r\n }//end connect\r\n\r\n close(){\r\n this.ws.close();\r\n }\r\n\r\n\r\n handleOpen() {\r\n //alert('open')\r\n }\r\n\r\n handleError(evt) { \r\n if(this.options.onError){\r\n this.options.onError(evt)\r\n }else{\r\n alert(\"Socket error: \" + JSON.stringify(evt, null, 4)); \r\n }\r\n };\r\n\r\n handleClose(evt) { \r\n if(this.options.onClose){\r\n this.options.onClose(evt)\r\n }else{\r\n alert(\"Socket closed. Code: \"+evt.code);\t\r\n }\r\n };\r\n\r\n handleMessage(evt) { \r\n var messages = JSON.parse(evt.data);\r\n for(let mi = 0; mi < messages.length; mi++){\r\n var msg = messages[mi];\r\n switch(msg.MessageID){\r\n case \"SERVER_CONFIG\":\r\n this.VoipPort = msg.VoipPort;\r\n this.AudioSampleRate = msg.AudioSampleRate;\r\n this.AudioBitRate = msg.AudioBitRate;\r\n this.AudioFrameSize = msg.AudioFrameSize;\r\n \r\n this.bufferSamplesCount = this.AudioSampleRate / 1000 * this.AudioFrameSize;\r\n udpPacketBuffer = new ArrayBuffer(12 + this.bufferSamplesCount); // aLaw, muLaw\r\n\r\n currentFrame = new Int16Array(this.bufferSamplesCount);\r\n currentBufferIndex = 0;\r\n\r\n //VoipEndpoint = new IPEndPoint(ServerIPAddr, VoIPPort);\r\n //rtpPacket = new RtpPacket { Version = 2, SSRC = ssrc, PayloadType = 106, SequenceNumber = 0, Timestamp = 0 };\r\n ssrc = new Uint32Array(1);\r\n window.crypto.getRandomValues(ssrc);\r\n var devconf = [{ \r\n MessageID: \"DEVICE_CONFIG\", \r\n Ssrc: ssrc[0], \r\n AppName: \"FleetConsole\", \r\n VersionName: \"5.5\", \r\n VersionCode: 1, \r\n AudioCodec: 1, \r\n VoiceOverTcp : true, \r\n Password: this.password, \r\n DeviceData: { \r\n SessionID: getBase64ID(), \r\n ID: getDeviceID(), \r\n DeviceDescription: \"MANUFACTURER=WLLC;MODEL=APIClientWEB;SERIAL=123456789;OSVERSION=5.0\", \r\n Login: this.login, \r\n AvatarHash: \"\", \r\n StatusID: \"AAAAAAAAAAAAAAAAAAAAAA==\" \r\n }\r\n }];\r\n this.ws.send(JSON.stringify(devconf));\r\n break;\r\n case \"CONFIG_SERVER_RESPONSE_NACK\":\r\n if(this.options.onError){\r\n this.options.onError(msg.Reason)\r\n }else{\r\n alert(msg.Reason);\r\n }\r\n break;\r\n case \"CONFIG_SERVER_RESPONSE_ACK\":\r\n if(this.options.onConnect){\r\n this.options.onConnect(); \r\n }\r\n var loginMessage = [{ MessageID: \"LOGIN\"}];\r\n this.ws.send(JSON.stringify(loginMessage));\r\n break;\r\n case \"LOGIN_RESPONSE\":\r\n console.log(msg)\r\n if(msg.Response === 0){\r\n this.userID = msg.UserID \r\n //alert(\"Welcome, \" + this.login + \"!\");\r\n //initAudio();\r\n }else{\r\n let message = '';\r\n switch(msg.Response){\r\n //case 0: message = 'Successful login'; break;\r\n case 1: message = 'Invalid client version'; break;\r\n case 2: message = 'Invalid user name or password'\r\n case 3: message = 'License is expired'; break;\r\n case 4: message = 'Exceeded number of available user connections'; break;\r\n case 5: message = 'Server working in demo mode must be restarted'; break;\r\n case 6: message = 'Multiple logins are prohibited for this user and ' +\r\n 'another device is already connected with these credentials'; break;\r\n }\r\n this.options.onError({message: message, type: 'login'})\r\n //alert('login fail with: '+ message)\r\n }\r\n break;\r\n case \"DATAEX\":\r\n console.log(msg)\r\n switch(msg.DataType){\r\n \r\n case TYPE_NETWORKS:\r\n this.processNetworks(msg.DataObjects, msg.Operation);\r\n break;\r\n\r\n case TYPE_GROUPS:\r\n this.processGroups(msg.DataObjects, msg.Operation, msg.NetworkID);\r\n break;\r\n case TYPE_USERS:\r\n this.processUsers(msg.DataObjects, msg.Operation, msg.NetworkID);\r\n break;\r\n case TYPE_DEVICES:\r\n this.processDevices(msg.DataObjects, msg.Operation, msg.NetworkID);\r\n break;\r\n case TYPE_STATUSES:\r\n this.processStatuses(msg.DataObjects, msg.Operation, msg.NetworkID);\r\n break;\r\n case TYPE_EMERGENCY_PROFILES:\r\n this.processProfiles(msg.DataObjects, msg.Operation, msg.NetworkID);\r\n break;\r\n \r\n case TYPE_NETWORKSETTINGS:\r\n const serverConfig = msg.DataObjects[0];\r\n console.log('onGetnetComplete TYPE_NETWORKSETTINGS')\r\n console.log(serverConfig)\r\n this.onGetnetComplete(serverConfig);\r\n break;\r\n \r\n\r\n default:\r\n alert('Action case not defined for DataType [DATAEX]: ' + msg.DataType + ', see console log for more details')\r\n console.log(msg)\r\n }\r\n break;\r\n case \"BEGIN_INITIALIZE\":\r\n console.log(msg) \r\n break;\r\n case \"END_INITIALIZE\":\r\n console.log(msg) \r\n break; \r\n case \"PTT_CONTROL\":\r\n this.ProcessPTTControl(msg);\r\n break;\r\n case \"VOICE_PACKET\":\r\n this.process_voice_packet(msg);\r\n break;\r\n case \"DEVICE_CONTEXT\":\r\n //todo?\r\n break;\r\n\r\n case \"PING\":\r\n break;\r\n \r\n /*\r\n case \"OTAP_SETTINGS_REQUEST\":{\r\n debugger;\r\n const deviceConfig = msg;\r\n console.log('onGetDeviceSettingsComplete OTAP_SETTINGS_REQUEST')\r\n console.log(deviceConfig)\r\n this.onGetDeviceSettingsComplete(deviceConfig);\r\n }\r\n break;\r\n */\r\n\r\n case \"OTAP_SETTINGS_RESPONSE\":{\r\n ///debugger\r\n //console.log(msg)\r\n console.log(msg.Content)\r\n const deviceConfig = JSON.parse(msg.Content+'}');\r\n //console.log('onGetDeviceSettingsComplete OTAP_SETTINGS_RESPONSE')\r\n //console.log(deviceConfig)\r\n this.onGetDeviceSettingsComplete(deviceConfig);\r\n }\r\n break;\r\n\r\n default:\r\n alert('Action case not defined for message: ' + msg.MessageID + ', see console log for more details')\r\n console.log(msg)\r\n }\r\n }\r\n }\r\n\r\n\r\n ProcessPTTControl(msg) {\r\n var control = msg.Control;\r\n var sourceId = msg.SourceID;\r\n var sourceName = msg.SourceName;\r\n var targetId = msg.TargetID;\r\n var targetName = msg.TargetName;\r\n var callId = msg.CallID;\r\n\r\n switch (control){\r\n case 0: //VOICE_PRIVATE_BEGIN\r\n var pttConfirm = [{MessageID: \"PTT_RESPONSE\", Destination: sourceId, Response: 0, Type: 0}];\r\n this.ws.send(JSON.stringify(pttConfirm));\r\n break;\r\n case 10: //VOICE_GROUP_ENTER\r\n ActiveCallId = callId;\r\n SelectedObjectType = \"group\";\r\n setSelectedObjectName(targetName);\r\n SelectedObjectId = targetId;\r\n break;\r\n case 9: //VOICE_PRIVATE_ENTER\r\n ActiveCallId = callId;\r\n SelectedObjectType = \"private\";\r\n if (sourceId === getDeviceID())\r\n {\r\n setSelectedObjectName(targetName);\r\n SelectedObjectId = targetId;\r\n }\r\n else\r\n {\r\n setSelectedObjectName(sourceName);\r\n SelectedObjectId = sourceId;\r\n }\r\n break;\r\n case 1: //VOICE_PRIVATE_PRESSED\r\n case 5: //VOICE_GROUP_PRESSED\r\n if (ActiveCallId === callId)\r\n {\r\n IsTx = (sourceId === getDeviceID());\r\n IsRx = !IsTx;\r\n if (IsTx) //TX\r\n {\r\n document.getElementById(\"pttBtn\").style = \"background: red;\";\r\n //MicRecorder.Start(\"Default Input Device\", SampleRate, 16, 1, 8, SampleRate * 2 * FrameSize / 1000);\r\n }\r\n else\r\n {\r\n document.getElementById(\"pttBtn\").style = \"background: green;\";\r\n //StartAnnonceTimer();\r\n //VoiceSocket.BeginReceive(receivedData, 0, receivedData.Length, SocketFlags.None, OnDataReceived, null);\r\n }\r\n }\r\n break;\r\n case 2: //VOICE_PRIVATE_RELEASED\r\n case 6: //VOICE_GROUP_RELEASED\r\n //StopAnnonceTimer();\r\n if (ActiveCallId === callId)\r\n {\r\n document.getElementById(\"pttBtn\").style = \"background: lightblue;\";\r\n //if(IsTx) MicRecorder.Stop();\r\n IsTx = false;\r\n IsRx = false;\r\n }\r\n break;\r\n case 3: //VOICE_PRIVATE_END\r\n case 7: //VOICE_GROUP_END\r\n if (ActiveCallId === callId)\r\n {\r\n document.getElementById(\"pttBtn\").style = \"background: lightgray;\";\r\n ActiveCallId = \"\";\r\n SelectedObjectId = \"\";\r\n setSelectedObjectName(\"\");\r\n SelectedObjectType = \"\";\r\n\r\n var grplist = document.getElementById(\"GroupList\");\r\n var devlist = document.getElementById(\"UserList\");\r\n if (grplist.selectedIndex >= 0)\r\n {\r\n SelectedObjectId = grplist.options[grplist.selectedIndex].value;\r\n setSelectedObjectName(grplist.options[grplist.selectedIndex].innerHTML);\r\n SelectedUserId = \"\";\r\n SelectedObjectType = \"group\";\r\n }\r\n else if (devlist.selectedIndex >= 0)\r\n {\r\n SelectedObjectId = devlist.options[devlist.selectedIndex].value;\r\n setSelectedObjectName(devlist.options[devlist.selectedIndex].innerHTML);\r\n SelectedUserId = devlist.options[devlist.selectedIndex].tag;\r\n SelectedObjectType = \"private\";\r\n }\r\n }\r\n break;\r\n\r\n default:\r\n alert('Action case not defined for control: ' + control + ', see console log for more details')\r\n console.log(msg)\r\n }\r\n }\r\n\r\n\r\n\r\n processNetworks(nets, dataOp){\r\n if (dataOp === OP_INITIALIZE) this.networks = [];\r\n\r\n for (let i = 0; i < nets.length; i++){\r\n let net = nets[i];\r\n switch (dataOp) {\r\n case OP_INITIALIZE:\r\n case OP_ADD:\r\n this.networks.push(net)\r\n break;\r\n case OP_CHANGE:\r\n for(let j = 0; j < this.networks.length; j++){\r\n if(this.networks[j].ID===net.ID){\r\n this.networks[j] = net;\r\n break;\r\n }\r\n }\r\n break;\r\n case OP_REMOVE:\r\n for(let j = 0; j < this.networks.length; j++){\r\n if(this.networks[j].ID===net.ID){\r\n this.networks.splice(j, 1)\r\n break;\r\n }\r\n }\r\n break;\r\n default:\r\n let msg = 'Operation case not defined: ' + dataOp + ', see console log for more details'\r\n alert(msg)\r\n console.log(msg)\r\n }\r\n }\r\n\r\n if(this.options.onNetworksChanged){\r\n this.options.onNetworksChanged(this.networks)\r\n }\r\n console.log('NETWORKS CHANGED:')\r\n console.log(this.networks)\r\n\r\n }\r\n\r\n processGroups(groups, dataOp, networkID){\r\n\r\n let netIndex = this.getNetworkIndexByID(networkID)\r\n\r\n if (dataOp === OP_INITIALIZE) this.networks[netIndex].groups = [];\r\n\r\n for (let i = 0; i < groups.length; i++){\r\n let group = groups[i];\r\n switch (dataOp) {\r\n case OP_INITIALIZE:\r\n case OP_ADD:\r\n this.networks[netIndex].groups.push(group)\r\n break;\r\n case OP_CHANGE:\r\n for(let j = 0; j < this.networks[netIndex].groups.length; j++){\r\n if(this.networks[netIndex].groups[j].ID===group.ID){\r\n this.networks[netIndex].groups[j] = group;\r\n break;\r\n }\r\n }\r\n break;\r\n case OP_REMOVE:\r\n for(let j = 0; j < this.networks[netIndex].groups.length; j++){\r\n if(this.networks[netIndex].groups[j].ID===group.ID){\r\n this.networks[netIndex].groups.splice(j, 1)\r\n break;\r\n }\r\n }\r\n break;\r\n default:\r\n let msg = 'Operation case not defined: ' + dataOp + ', see console log for more details'\r\n alert(msg)\r\n console.log(msg)\r\n }\r\n }\r\n\r\n if(this.options.onNetworksChanged){\r\n this.options.onNetworksChanged(this.networks)\r\n }\r\n console.log('NETWORKS CHANGED: ' + networkID )\r\n console.log(this.networks)\r\n\r\n }\r\n\r\n processUsers(users, dataOp, networkID){\r\n\r\n let netIndex = this.getNetworkIndexByID(networkID)\r\n\r\n if (dataOp === OP_INITIALIZE) this.networks[netIndex].users = [];\r\n\r\n for (let i = 0; i < users.length; i++){\r\n let user = users[i];\r\n switch (dataOp) {\r\n case OP_INITIALIZE:\r\n case OP_ADD:\r\n this.networks[netIndex].users.push(user)\r\n break;\r\n case OP_CHANGE:\r\n for(let j = 0; j < this.networks[netIndex].users.length; j++){\r\n if(this.networks[netIndex].users[j].ID===user.ID){\r\n this.networks[netIndex].users[j] = user;\r\n break;\r\n }\r\n }\r\n break;\r\n case OP_REMOVE:\r\n for(let j = 0; j < this.networks[netIndex].users.length; j++){\r\n if(this.networks[netIndex].users[j].ID===user.ID){\r\n this.networks[netIndex].users.splice(j, 1)\r\n break;\r\n }\r\n }\r\n break;\r\n default:\r\n let msg = 'Operation case not defined: ' + dataOp + ', see console log for more details'\r\n alert(msg)\r\n console.log(msg)\r\n }\r\n }\r\n\r\n if(this.options.onNetworksChanged){\r\n this.options.onNetworksChanged(this.networks)\r\n }\r\n console.log('NETWORKS CHANGED:' + networkID)\r\n console.log(this.networks)\r\n\r\n }\r\n\r\n processDevices(devices, dataOp, networkID){\r\n\r\n const netIndex = this.getNetworkIndexByID(networkID)\r\n const net = this.networks[netIndex]\r\n\r\n if (dataOp === OP_INITIALIZE) net.devices = [];\r\n\r\n for (let i = 0; i < devices.length; i++){\r\n let device = devices[i];\r\n switch (dataOp) {\r\n case OP_INITIALIZE:{\r\n console.log('processDevices OP_INITIALIZE')\r\n net.devices.push(device)\r\n let userIndex = this.getUserIndexByID(device.UserID, networkID);\r\n if(userIndex) net.users[userIndex].DeviceID = device.ID\r\n break\r\n } \r\n case OP_ADD:{\r\n console.log('processDevices OP_ADD')\r\n net.devices.push(device)\r\n let userIndex = this.getUserIndexByID(device.UserID, networkID);\r\n if(userIndex) net.users[userIndex].DeviceID = device.ID\r\n break\r\n }\r\n case OP_CHANGE:{\r\n console.log('processDevices OP_CHANGE')\r\n for(let j = 0; j < net.devices.length; j++){\r\n if(net.devices[j].ID===device.ID){\r\n net.devices[j] = device;\r\n let userIndex = this.getUserIndexByID(device.UserID, networkID);\r\n if(userIndex) net.users[userIndex].DeviceID = device.ID\r\n break\r\n }\r\n }\r\n break\r\n }\r\n \r\n case OP_REMOVE:{\r\n console.log('processDevices OP_REMOVE')\r\n for(let j = 0; j < net.devices.length; j++){\r\n if(net.devices[j].ID===device.ID){\r\n if(net.users){\r\n for(let i=0; i>> 16;\r\n var rgb = intnumber & 0x00ffffff\r\n \r\n // mask out each color and reverse the order\r\n intnumber = red|green|blue;\r\n \r\n // toString converts a number to a hexstring\r\n var HTMLcolor = rgb.toString(16);\r\n \r\n //template adds # for standard HTML #RRGGBB\r\n HTMLcolor = template.substring(0,7 - HTMLcolor.length) + HTMLcolor;\r\n \r\n return HTMLcolor;\r\n} \r\n\r\nexport function hexColorToDecimalColor(hexColor){\r\n let number = 0\r\n console.log(hexColor)\r\n let hex = '0xff' + hexColor.substring(1,7)\r\n //alert(hex)\r\n number = parseInt(hex)\r\n return number\r\n}\r\n\r\nexport class FormatByteArrayToGuidString {\r\n //@ Made by Zura Dalakishvili, Tbilisi, Georgia 2016\r\n //Guid representation created from byte[] array for Javascript\r\n\r\n // Usage: \r\n // var inst = new Guid(array);\r\n // var guidStr = inst.guidString;\r\n\r\n\r\n\r\n constructor(b){\r\n this.b = b;\r\n\r\n if (b === null)\r\n return;\r\n if (b.length !== 16)\r\n return;\r\n\r\n this.parts = {\r\n a: ((b[3]) << 24) | ((b[2]) << 16) | ((b[1]) << 8) | b[0],\r\n b: (((b[5]) << 8) | b[4]),\r\n c: (((b[7]) << 8) | b[6]),\r\n d: b[8],\r\n e: b[9],\r\n f: b[10],\r\n g: b[11],\r\n h: b[12],\r\n i: b[13],\r\n j: b[14],\r\n k: b[15]\r\n }\r\n\r\n }\r\n\r\n HexToChar(a) {\r\n a = a & 0xf;\r\n return String.fromCharCode(((a > 9) ? a - 10 + 0x61 : a + 0x30));\r\n }\r\n\r\n HexsToChars(guidChars, offset, a, b) {\r\n return this.HexsToChars(guidChars, offset, a, b, false);\r\n }\r\n\r\n HexsToChars(guidChars, offset, a, b, hex) {\r\n if (hex) {\r\n guidChars[offset++] = '0';\r\n guidChars[offset++] = 'x';\r\n }\r\n guidChars[offset++] = this.HexToChar(a >> 4);\r\n guidChars[offset++] = this.HexToChar(a);\r\n if (hex) {\r\n guidChars[offset++] = ',';\r\n guidChars[offset++] = '0';\r\n guidChars[offset++] = 'x';\r\n }\r\n guidChars[offset++] = this.HexToChar(b >> 4);\r\n guidChars[offset++] = this.HexToChar(b);\r\n return offset;\r\n }\r\n\r\n\r\n \r\n\r\n //_toGUID(this.b);\r\n\r\n\r\n toString = function (format) {\r\n if (format===undefined || format === null || format.length === 0)\r\n format = \"D\";\r\n\r\n var guidChars = new Array();\r\n var offset = 0;\r\n var strLength = 38;\r\n var dash = true;\r\n var hex = false;\r\n\r\n if (format.length !== 1) {\r\n // all acceptable format strings are of length 1\r\n return null;\r\n }\r\n\r\n var formatCh = format[0];\r\n\r\n if (formatCh == 'D' || formatCh == 'd') {\r\n guidChars = new Array(36);\r\n strLength = 36;\r\n } else if (formatCh === 'N' || formatCh == 'n') {\r\n guidChars = new Array(32);\r\n strLength = 32;\r\n dash = false;\r\n } else if (formatCh === 'B' || formatCh == 'b') {\r\n guidChars = new Array(38);\r\n guidChars[offset++] = '{';\r\n guidChars[37] = '}';\r\n } else if (formatCh === 'P' || formatCh == 'p') {\r\n guidChars = new Array(38);\r\n guidChars[offset++] = '(';\r\n guidChars[37] = ')';\r\n } else if (formatCh === 'X' || formatCh == 'x') {\r\n guidChars = new Array(68);\r\n guidChars[offset++] = '{';\r\n guidChars[67] = '}';\r\n strLength = 68;\r\n dash = false;\r\n hex = true;\r\n } else {\r\n return null;\r\n }\r\n\r\n if (hex) {\r\n // {0xdddddddd,0xdddd,0xdddd,{0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd}}\r\n guidChars[offset++] = '0';\r\n guidChars[offset++] = 'x';\r\n offset = this.HexsToChars(guidChars, offset, this.parts.a >> 24, this.parts.a >> 16);\r\n offset = this.HexsToChars(guidChars, offset, this.parts.a >> 8, this.parts.a);\r\n guidChars[offset++] = ',';\r\n guidChars[offset++] = '0';\r\n guidChars[offset++] = 'x';\r\n offset = this.HexsToChars(guidChars, offset, this.parts.b >> 8, this.parts.b);\r\n guidChars[offset++] = ',';\r\n guidChars[offset++] = '0';\r\n guidChars[offset++] = 'x';\r\n offset = this.HexsToChars(guidChars, offset, this.parts.c >> 8, this.parts.c);\r\n guidChars[offset++] = ',';\r\n guidChars[offset++] = '{';\r\n offset = this.HexsToChars(guidChars, offset, this.parts.d, this.parts.e, true);\r\n guidChars[offset++] = ',';\r\n offset = this.HexsToChars(guidChars, offset, this.parts.f, this.parts.g, true);\r\n guidChars[offset++] = ',';\r\n offset = this.HexsToChars(guidChars, offset, this.parts.h, this.parts.i, true);\r\n guidChars[offset++] = ',';\r\n offset = this.HexsToChars(guidChars, offset, this.parts.j, this.parts.k, true);\r\n guidChars[offset++] = '}';\r\n } else {\r\n // [{|(]dddddddd[-]dddd[-]dddd[-]dddd[-]dddddddddddd[}|)]\r\n offset = this.HexsToChars(guidChars, offset, this.parts.a >> 24, this.parts.a >> 16);\r\n offset = this.HexsToChars(guidChars, offset, this.parts.a >> 8, this.parts.a);\r\n if (dash) guidChars[offset++] = '-';\r\n offset = this.HexsToChars(guidChars, offset, this.parts.b >> 8, this.parts.b);\r\n if (dash) guidChars[offset++] = '-';\r\n offset = this.HexsToChars(guidChars, offset, this.parts.c >> 8, this.parts.c);\r\n if (dash) guidChars[offset++] = '-';\r\n offset = this.HexsToChars(guidChars, offset, this.parts.d, this.parts.e);\r\n if (dash) guidChars[offset++] = '-';\r\n offset = this.HexsToChars(guidChars, offset, this.parts.f, this.parts.g);\r\n offset = this.HexsToChars(guidChars, offset, this.parts.h, this.parts.i);\r\n offset = this.HexsToChars(guidChars, offset, this.parts.j, this.parts.k);\r\n }\r\n\r\n let str = new String(guidChars)\r\n let guidStr = guidChars.join('');\r\n\r\n return guidStr; /// new String(guidChars);\r\n }\r\n\r\n guidString = function () {\r\n return this.toString('D', null).split(',').join('');\r\n }\r\n\r\n //return this.guidString();\r\n}\r\n\r\nexport function base64toGuid(base64Str){\r\n let arr = base64ToUint8Array(base64Str)\r\n return new FormatByteArrayToGuidString(arr).toString()\r\n}\r\n\r\nexport function sortByName(item1, item2){\r\n if (item1.Name > item2.Name) return 1;\r\n if (item1.Name === item2.Name) return 0; \r\n if (item1.Name < item2.Name) return -1;\r\n}\r\n\r\nexport function sortByLogin(item1, item2){\r\n if (item1.Login > item2.Login) return 1;\r\n if (item1.Login === item2.Login) return 0; \r\n if (item1.Login < item2.Login) return -1;\r\n}\r\n\r\n \r\n function startPTT()\r\n {\r\n if (SelectedObjectId === \"\") return;\r\n var pttrequest = [{\r\n MessageID: \"PTT_REQUEST\", \r\n Destination: SelectedObjectId, \r\n Type: (SelectedObjectType === \"group\" ? 2 : 0)}];\r\n ws.send(JSON.stringify(pttrequest));\r\n startRecording();\r\n }\r\n \r\n function stopPTT()\r\n {\r\n if (SelectedObjectId === \"\") return;\r\n var pttrequest = [{\r\n MessageID: \"PTT_REQUEST\", \r\n Destination: SelectedObjectId, \r\n Type: (SelectedObjectType === \"group\" ? 3 : 1)}];\r\n ws.send(JSON.stringify(pttrequest));\r\n stopRecording();\r\n }\r\n\r\n function setSelectedObjectName(objname)\r\n {\r\n selectedObjectName = objname;\r\n document.getElementById(\"SelectedObject\").innerHTML = objname;\r\n }\r\n \r\n function groupSelected(list)\r\n {\r\n document.getElementById(\"UserList\").selectedIndex = -1;\r\n if (ActiveCallId === \"\")\r\n {\r\n SelectedObjectId = list.options[list.selectedIndex].value;\r\n setSelectedObjectName(list.options[list.selectedIndex].innerHTML);\r\n SelectedObjectType = \"group\";\r\n SelectedUserId = \"\";\r\n }\r\n }\r\n function userSelected(list)\r\n {\r\n document.getElementById(\"GroupList\").selectedIndex = -1;\r\n if (ActiveCallId === \"\")\r\n {\r\n SelectedObjectId = list.options[list.selectedIndex].value;\r\n setSelectedObjectName(list.options[list.selectedIndex].innerHTML);\r\n SelectedObjectType = \"private\";\r\n SelectedUserId = list.options[list.selectedIndex].tag;\r\n }\r\n }\r\n\r\n export function base64ToUint8Array(base64string) {\r\n var arrayBuffer = Uint8Array.from(atob(base64string), function(c) { return c.charCodeAt(0); });\r\n return arrayBuffer;\r\n }\r\n\r\n function uint8ArrayToBase64(arrayBuffer) {\r\n var base64 = btoa(arrayBuffer.reduce((data, byte) => data + String.fromCharCode(byte), ''));\r\n return base64;\r\n }\r\n\r\nlet sleep = time => new Promise(resolve => setTimeout(resolve, time));\r\n\r\nfunction process_microphone_frame() {\r\n\r\n var udpPacket = new Uint8Array(udpPacketBuffer);\r\n // header\r\n udpPacket[0] = 2 << 6; // udp version = 2\r\n udpPacket[1] = 106; // voice call\r\n sequenceNumber++;\r\n udpPacket[2] = (sequenceNumber >> 8) & 0xff;\r\n udpPacket[3] = sequenceNumber & 0xff;\r\n\r\n udpPacket[8] = ((ssrc >> 0x18) & 0xff);\r\n udpPacket[9] = ((ssrc >> 0x10) & 0xff);\r\n udpPacket[10] = ((ssrc >> 8) & 0xff);\r\n udpPacket[11] = (ssrc & 0xff);\r\n\r\n\r\n var alaw = alawmulaw.alaw.encode(currentFrame);\r\n udpPacket.set(alaw, 12);\r\n\r\n var str = uint8ArrayToBase64(udpPacket);\r\n var login = [{ MessageID: \"VOICE_PACKET\", Data: str }];\r\n ws.send(JSON.stringify(login));\r\n}\r\n\r\nfunction initAudio(){\r\n\r\n sampleRate = sessionStorage.getItem(\"AudioSampleRate\");\r\n\r\n audioContext = new AudioContext({ sampleRate: sampleRate });\r\n\r\n if (!navigator.getUserMedia)\r\n navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;\r\n\r\n if (navigator.getUserMedia){\r\n navigator.getUserMedia({audio:true}, \r\n function(stream) {\r\n try{\r\n microphone_stream = audioContext.createMediaStreamSource(stream);\r\n }catch(e) {\r\n alert('createMediaStreamSource: '+ e)\r\n return false\r\n }\r\n var chunkSize = 2048;\r\n audio_processor_node = audioContext.createScriptProcessor(chunkSize, 1, 1);\r\n audio_processor_node.onaudioprocess = function(data) {\r\n var leftChannel = data.inputBuffer.getChannelData(0);\r\n var index = 0;\r\n while (index < chunkSize) {\r\n while (currentBufferIndex < bufferSamplesCount && index < chunkSize) {\r\n currentFrame[currentBufferIndex] = leftChannel[index] * 32767;\r\n index++;\r\n currentBufferIndex++;\r\n }\r\n\r\n if (currentBufferIndex === bufferSamplesCount) {\r\n currentBufferIndex = 0;\r\n process_microphone_frame();\r\n }\r\n }\r\n }\r\n },\r\n function(e) {\r\n alert('Error capturing audio.');\r\n }\r\n );\r\n\r\n } else { alert('getUserMedia not supported in this browser.'); }\r\n\r\n soundBuffer = new SoundBuffer(audioContext, sampleRate, 10, 3, true);\r\n return true;\r\n}\r\n\r\nfunction startRecording(){\r\n audioContext.resume();\r\n microphone_stream.connect(audio_processor_node);\r\n audio_processor_node.connect(audioContext.destination);\r\n}\r\n\r\nfunction stopRecording(){\r\n microphone_stream.disconnect(audio_processor_node);\r\n audio_processor_node.disconnect(audioContext.destination);\r\n}\r\n\r\nclass SoundBuffer {\r\n constructor(ctx, sampleRate, framesCount, prefetchCount, debug) {\r\n this.ctx = ctx;\r\n this.sampleRate = sampleRate;\r\n this.framesCount = framesCount;\r\n this.prefetchCount = prefetchCount;\r\n this.debug = debug;\r\n this.chunks = [];\r\n this.isPlaying = false;\r\n this.startTime = 0;\r\n this.lastChunkOffset = 0;\r\n }\r\n createChunk(chunk) {\r\n var audioBuffer = this.ctx.createBuffer(1, chunk.length, this.sampleRate);\r\n audioBuffer.getChannelData(0).set(chunk);\r\n var source = this.ctx.createBufferSource();\r\n source.buffer = audioBuffer;\r\n source.connect(this.ctx.destination);\r\n source.onended = (e) => {\r\n this.chunks.splice(this.chunks.indexOf(source), 1);\r\n if (this.chunks.length === 0) {\r\n this.isPlaying = false;\r\n this.startTime = 0;\r\n this.lastChunkOffset = 0;\r\n }\r\n };\r\n return source;\r\n }\r\n log(data) {\r\n if (this.debug) {\r\n console.log(new Date().toUTCString() + \" : \" + data);\r\n }\r\n }\r\n addChunk(data) {\r\n if (this.isPlaying && (this.chunks.length > this.framesCount)) {\r\n this.log(\"chunk discarded\");\r\n return; // throw away\r\n }\r\n else if (this.isPlaying && (this.chunks.length <= this.framesCount)) { // schedule & add right now\r\n this.log(\"chunk accepted\");\r\n let chunk = this.createChunk(data);\r\n chunk.start(this.startTime + this.lastChunkOffset);\r\n this.lastChunkOffset += chunk.buffer.duration;\r\n this.chunks.push(chunk);\r\n }\r\n else if ((this.chunks.length < this.prefetchCount) && !this.isPlaying) { // add & don't schedule\r\n this.log(\"chunk queued\");\r\n let chunk = this.createChunk(data);\r\n this.chunks.push(chunk);\r\n }\r\n else { // add & schedule entire buffer\r\n this.log(\"queued chunks scheduled\");\r\n this.isPlaying = true;\r\n let chunk = this.createChunk(data);\r\n this.chunks.push(chunk);\r\n this.startTime = this.ctx.currentTime;\r\n this.lastChunkOffset = 0;\r\n for (let i = 0; i < this.chunks.length; i++) {\r\n let chunk = this.chunks[i];\r\n chunk.start(this.startTime + this.lastChunkOffset);\r\n this.lastChunkOffset += chunk.buffer.duration;\r\n }\r\n }\r\n }\r\n}","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\nimport theme from './../theme';\r\n\r\nimport {Menu, MenuItem, Button, MenuList } from '@material-ui/core';\r\nimport LanguageIcon from '@material-ui/icons/Language';\r\n//import ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nexport class SelectLang_ extends React.Component {\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n lang: this.props.i18n.language,\r\n open: false\r\n }\r\n\r\n this.anchorRef = React.createRef();\r\n }\r\n\r\n handleLangChange(lang){\r\n this.props.i18n.changeLanguage(lang);\r\n this.setState({lang: lang})\r\n this.handleClose();\r\n }\r\n\r\n langName(lang){\r\n switch(lang){\r\n case 'ru': return 'РУ'\r\n case 'en': return 'EN'\r\n default: return lang\r\n }\r\n }\r\n\r\n handleButtonClick(){\r\n this.setState({open: true})\r\n }\r\n\r\n handleClose(){\r\n this.setState({open: false})\r\n }\r\n\r\n render(){\r\n const {i18n} = this.props\r\n\r\n const style = {\r\n margin:0, \r\n padding: 0,\r\n color: theme.palette.color.dialogTitle,\r\n fontWeight: 'bold'\r\n }\r\n\r\n //transition disablePortal\r\n return (\r\n <>\r\n \r\n \r\n \r\n {/*\r\n {this.handleLangChange('en')}}>English\r\n {this.handleLangChange('ru')}}>Русский*/}\r\n {Object.keys(i18n.options.langs).map(\r\n code => {this.handleLangChange(code)}}\r\n >{i18n.options.langs[code].shortName}\r\n )}\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n}\r\n\r\nexport const SelectLang = withTranslation()(SelectLang_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../theme';\r\n\r\nimport {Button, Grid, Typography, Container, AppBar, Toolbar} from '@material-ui/core';\r\n\r\nimport Logo from './Logo';\r\nimport {SelectLang} from './SelectLang';\r\n\r\nclass ApplicationBar_ extends React.Component {\r\n\r\n handleLogout(){\r\n if(this.props.onAction){\r\n this.props.onAction({type:\"LOGOUT\"})\r\n }\r\n }\r\n\r\n render(){\r\n\r\n const { t } = this.props;\r\n\r\n let backgroundTitleStyle = {\r\n background:theme.palette.background.dialogTitle,\r\n color: theme.palette.color.dialogTitle\r\n }\r\n let typographyTitleStyle = {\r\n color: theme.palette.color.dialogTitle, \r\n fontWeight: 'bold',\r\n //padding:'0.5em 0'\r\n }\r\n\r\n return(\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.user.login}\r\n {' '}\r\n {/*\r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n\r\n\r\n }\r\n\r\n}\r\n\r\nexport const ApplicationBar = withTranslation()(ApplicationBar_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../theme';\r\n\r\nimport {Button, ButtonGroup} from '@material-ui/core';\r\n\r\nclass TabbedMenu_ extends React.Component{\r\n\r\n handleClick(tab){\r\n if(this.props.onClick) \r\n this.props.onClick(tab)\r\n }\r\n\r\n buttonStyle(name){\r\n const buttonStyle = {\r\n minWidth: '100px',\r\n height: '2.0em',\r\n background: theme.palette.background.tabbedMenu,\r\n color: theme.palette.color.tabbedMenu\r\n } \r\n if(this.props.selected===name){\r\n return {\r\n ...buttonStyle,\r\n background: theme.palette.background.tabbedMenuSelected\r\n }\r\n }else{\r\n return buttonStyle\r\n }\r\n\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n const buttonUsers = this.props.usersEnabled?(\r\n \r\n ):'';\r\n const buttonGroups = this.props.groupsEnabled?(\r\n \r\n ):'';\r\n const buttonStatuses = this.props.statusesEnabled?(\r\n \r\n ):'';\r\n const buttonDevices = this.props.devicesEnabled?(\r\n \r\n ):'';\r\n const buttonProfiles = this.props.profilesEnabled?(\r\n \r\n ):'';\r\n\r\n return (\r\n \r\n {buttonUsers}\r\n {buttonGroups}\r\n {buttonStatuses}\r\n {buttonDevices}\r\n {buttonProfiles}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport const TabbedMenu = withTranslation()(TabbedMenu_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport {Paper, Menu, MenuItem, IconButton} from '@material-ui/core';\r\nimport MoreVert from '@material-ui/icons/MoreVert';\r\nimport { sortByName } from '../../api/ServerApi';\r\n\r\n\r\nclass NetworksList_ extends React.Component{\r\n \r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {menuAnchor: null, menuNetworkID: ''}\r\n }\r\n\r\n handleNetworkSelect(networkID){\r\n //console.log('select network '+networkID)\r\n this.props.onNetworkSelect(networkID)\r\n }\r\n\r\n getNetworkStyle(networkID){\r\n let selected = networkID === this.props.selectedNetworkID\r\n let style = {\r\n background: selected? theme.palette.background.selectedRow : '',\r\n cursor: 'pointer'\r\n }\r\n return style\r\n }\r\n\r\n handleMenuClick(event, networkID){\r\n this.setState({menuAnchor: event.currentTarget, menuNetworkID: networkID});\r\n event.stopPropagation();\r\n }\r\n\r\n handleMenuClose(){\r\n this.menuAnchor = null;\r\n this.setState({menuAnchor: null, menuNetworkID: null});\r\n return null;\r\n }\r\n\r\n handleMenuItemClick(menu){\r\n const netID = this.state.menuNetworkID\r\n this.handleMenuClose();\r\n this.props.onNetworkMenu(menu, netID)\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n this.props.networks.sort(sortByName)\r\n\r\n const styles = {\r\n paper: {\r\n width: '100%',\r\n overflowX: 'auto',\r\n },\r\n head: {\r\n color: theme.palette.color.dialogTitle,\r\n backgroundColor: theme.palette.background.dialogTitle,\r\n },\r\n };\r\n\r\n return(\r\n <>\r\n \r\n \r\n \r\n \r\n {t('Networks')}\r\n \r\n \r\n \r\n {this.props.networks.map((net) => \r\n {this.handleNetworkSelect(net.ID)}}\r\n style={this.getNetworkStyle(net.ID)}>\r\n \r\n {net.Name}\r\n \r\n \r\n {net.CommandPort}\r\n \r\n \r\n {net.devices?net.devices.length:0}\r\n \r\n \r\n this.handleMenuClick(event, net.ID)}>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {this.handleMenuItemClick('edit')}}>{t('EditNetwork')}\r\n {/*{this.handleMenuItemClick('properties')}}>Properties...*/}\r\n \r\n
\r\n
\r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport const NetworksList = withTranslation()(NetworksList_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\n\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport {Paper, Menu, MenuItem, IconButton} from '@material-ui/core';\r\nimport MoreVert from '@material-ui/icons/MoreVert';\r\nimport { sortByLogin } from '../../api/ServerApi';\r\n\r\nclass UsersList_ extends React.Component{\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {menuAnchor: null, menuUser: ''}\r\n }\r\n\r\n\r\n handleUserSelect(userID){\r\n this.props.onUserSelect(userID)\r\n }\r\n\r\n getItemStyle(userID){\r\n let selected = userID === this.props.selectedUserID\r\n let style = {\r\n background: selected? theme.palette.background.selectedRow : '',\r\n cursor: 'pointer'\r\n }\r\n return style\r\n }\r\n\r\n formatPriority(priority){\r\n switch(priority){\r\n case 0: return this.props.t('Default') \r\n default: return priority\r\n }\r\n }\r\n\r\n formatLocked(locked){\r\n switch(locked){\r\n case true: return this.props.t('locked')\r\n case false: \r\n default: return ''\r\n }\r\n }\r\n\r\n handleMenuClick(event, user){\r\n this.setState({menuAnchor: event.currentTarget, menuUser: user});\r\n event.stopPropagation();\r\n }\r\n\r\n handleMenuClose(){\r\n this.menuAnchor = null;\r\n this.setState({menuAnchor: null, menuUser: null});\r\n return null;\r\n }\r\n\r\n handleMenuItemClick(menu){\r\n const user = this.state.menuUser\r\n this.handleMenuClose();\r\n this.props.onContextMenu(menu, user)\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n this.props.users.sort(sortByLogin)\r\n\r\n const styles = {\r\n paper: {\r\n width: '100%',\r\n overflowX: 'auto',\r\n },\r\n head: {\r\n color: theme.palette.color.dialogTitle,\r\n backgroundColor: theme.palette.background.dialogTitle,\r\n }\r\n };\r\n\r\n console.log(this.props.users)\r\n\r\n return(\r\n <>\r\n \r\n \r\n \r\n \r\n {t('Login')}\r\n {t('Name')}\r\n {t('Status')}\r\n {t('Locked')}\r\n \r\n \r\n \r\n \r\n {this.props.users.map((user) => \r\n {this.handleUserSelect(user.ID)}}\r\n style={this.getItemStyle(user.ID)}>\r\n \r\n {user.Login}\r\n \r\n \r\n {user.Name}\r\n \r\n \r\n {user.DeviceID?'online':'offline'}\r\n \r\n \r\n {this.formatLocked(user.Locked)}\r\n \r\n \r\n this.handleMenuClick(event, user)}>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n {this.state.menuUser && this.state.menuUser.DeviceID ?\r\n {this.handleMenuItemClick('editdevicesettings')}}>\r\n {t('DeviceSettings')}\r\n \r\n :''}\r\n\r\n {/*{this.handleMenuItemClick('edit')}}>{t('DeviceSettings')}*/}\r\n {/*{this.handleMenuItemClick('properties')}}>Properties...*/}\r\n \r\n
\r\n
\r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport const UsersList = withTranslation()(UsersList_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport {Paper, Checkbox} from '@material-ui/core';\r\nimport { sortByName } from '../../api/ServerApi';\r\n\r\nexport default class GroupsList_ extends React.Component{\r\n\r\n handleGroupSelect(groupID){\r\n this.props.onGroupSelect(groupID)\r\n }\r\n\r\n getGroupStyle(groupID){\r\n let selected = groupID === this.props.selectedGroupID\r\n let style = {\r\n background: selected? theme.palette.background.selectedRow : '',\r\n cursor: 'pointer'\r\n }\r\n return style\r\n }\r\n\r\n formatPriority(priority){\r\n switch(priority){\r\n case 0: return this.props.t('Default') \r\n case -1: return priority\r\n default: return '+'+priority\r\n }\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n this.props.groups.sort(sortByName)\r\n\r\n const styles = {\r\n paper: {\r\n width: '100%',\r\n overflowX: 'auto',\r\n },\r\n head: {\r\n color: theme.palette.color.dialogTitle,\r\n backgroundColor: theme.palette.background.dialogTitle,\r\n }\r\n };\r\n\r\n return(\r\n <>\r\n \r\n \r\n \r\n \r\n {t('Name')}\r\n {t('Priority')}\r\n {t('Emer')}.\r\n {t('AllC')}.\r\n {t('Broad')}.\r\n \r\n \r\n \r\n {this.props.groups.map((group) => \r\n {this.handleGroupSelect(group.ID)}}\r\n style={this.getGroupStyle(group.ID)}>\r\n \r\n {group.Name}\r\n \r\n \r\n {this.formatPriority(group.Priority)}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport const GroupsList = withTranslation()(GroupsList_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { sortByName } from '../../api/ServerApi';\r\n\r\nclass ProfilesList_ extends React.Component{\r\n\r\n handleItemSelect(itemID){\r\n this.props.onItemSelect(itemID)\r\n }\r\n\r\n getItemStyle(itemID){\r\n let selected = itemID === this.props.selectedItemID\r\n let style = {\r\n background: selected? theme.palette.background.selectedRow : '',\r\n cursor: 'pointer'\r\n }\r\n return style\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n this.props.items.sort(sortByName)\r\n\r\n const styles = {\r\n paper: {\r\n width: '100%',\r\n overflowX: 'auto',\r\n },\r\n head: {\r\n color: theme.palette.color.dialogTitle,\r\n backgroundColor: theme.palette.background.dialogTitle,\r\n }\r\n };\r\n\r\n return(\r\n <>\r\n \r\n \r\n \r\n \r\n {t('Name')}\r\n {t('Description')}\r\n \r\n \r\n \r\n {this.props.items.map((item) => \r\n {this.handleItemSelect(item.ID)}}\r\n style={this.getItemStyle(item.ID)}>\r\n \r\n {item.Name}\r\n \r\n \r\n {item.Description}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport const ProfilesList = withTranslation()(ProfilesList_);","import React from 'react';\r\n\r\nimport theme from '../../theme';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\n\r\nexport default class DevicesList extends React.Component{\r\n\r\n handleItemSelect(itemID){\r\n console.log('select device '+itemID)\r\n this.props.onItemSelect(itemID)\r\n }\r\n\r\n getItemStyle(itemID){\r\n let selected = itemID === this.props.selectedItemID\r\n let style = {\r\n background: selected? theme.palette.background.selectedRow : '',\r\n cursor: 'pointer'\r\n }\r\n return style\r\n }\r\n\r\n render(){\r\n console.log(this.props.items)\r\n\r\n const styles = {\r\n paper: {\r\n width: '100%',\r\n overflowX: 'auto',\r\n },\r\n head: {\r\n color: theme.palette.color.dialogTitle,\r\n backgroundColor: theme.palette.background.dialogTitle,\r\n }\r\n };\r\n\r\n return(\r\n <>\r\n \r\n \r\n \r\n \r\n Устройства:\r\n \r\n \r\n \r\n {this.props.items.map((item) => \r\n {this.handleItemSelect(item.ID)}}\r\n style={this.getItemStyle(item.ID)}>\r\n \r\n {item.Login}\r\n \r\n \r\n {item.UserNAme}\r\n \r\n \r\n {item.versionName}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n )\r\n\r\n }\r\n\r\n}","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport {decimalColorToHexColor, sortByName } from '../../api/ServerApi';\r\n\r\nclass StatusesList_ extends React.Component{\r\n\r\n handleItemSelect(itemID){\r\n this.props.onItemSelect(itemID)\r\n }\r\n\r\n getItemStyle(itemID){\r\n let selected = itemID === this.props.selectedItemID\r\n let style = {\r\n background: selected? theme.palette.background.selectedRow : '',\r\n cursor: 'pointer'\r\n }\r\n return style\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n this.props.items.sort(sortByName)\r\n\r\n const styles = {\r\n paper: {\r\n width: '100%',\r\n overflowX: 'auto',\r\n },\r\n head: {\r\n color: theme.palette.color.dialogTitle,\r\n backgroundColor: theme.palette.background.dialogTitle,\r\n }\r\n };\r\n\r\n return(\r\n <>\r\n \r\n \r\n \r\n \r\n {t('Name')}\r\n {t('Color')}\r\n \r\n \r\n \r\n {this.props.items.map((item) => \r\n {this.handleItemSelect(item.ID)}}\r\n style={this.getItemStyle(item.ID)}>\r\n \r\n {item.Name}\r\n \r\n \r\n {decimalColorToHexColor(item.Color)} {/*item.Color*/}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport const StatusesList = withTranslation()(StatusesList_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\n\r\nimport {Grid, Typography, Container} from '@material-ui/core';\r\n\r\nimport {ApplicationBar} from '../../components/ApplicationBar';\r\n//import Logo from '../../components/Logo';\r\nimport {TabbedMenu} from '../../components/TabbedMenu';\r\n\r\nimport {NetworksList} from './NetworksList';\r\nimport {UsersList} from './UsersList';\r\nimport {GroupsList} from './GroupsList';\r\nimport {ProfilesList} from './ProfilesList';\r\nimport DevicesList from './DevicesList';\r\nimport {StatusesList} from './StatusesList';\r\n//import {SelectLang} from '../../components/SelectLang';\r\n\r\n\r\n//export \r\nclass ServerConsole_ extends React.Component {\r\n \r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n currentNetworkID: '',\r\n currentUserID: '',\r\n currentGroupID: '',\r\n currentProfileID: '',\r\n currentStatusID: '',\r\n currentDeviceID: '',\r\n selectedTab: 'users',\r\n }\r\n }\r\n\r\n handleNetworkSelect(networkID){\r\n this.setState({currentNetworkID: networkID})\r\n }\r\n\r\n handleUserSelect(userID){\r\n this.setState({currentUserID: userID})\r\n }\r\n\r\n handleGroupSelect(groupID){\r\n this.setState({currentGroupID: groupID})\r\n }\r\n\r\n handleProfileSelect(profileID){\r\n this.setState({currentProfileID: profileID})\r\n }\r\n\r\n handleStatusSelect(statusID){\r\n this.setState({currentStatusID: statusID})\r\n }\r\n\r\n handleDeviceSelect(statusID){\r\n this.setState({currentStatusID: statusID})\r\n }\r\n\r\n handleNetworkMenu(action, networkID){\r\n switch(action){\r\n case 'edit':\r\n this.props.onAction({type:'NETWORK_EDITOR_SHOW', networkID: networkID})\r\n break;\r\n default: \r\n alert('undefined case '+action)\r\n }\r\n }\r\n\r\n handleUserMenu(action, user){\r\n switch(action){\r\n case 'editdevicesettings':\r\n this.props.onAction({\r\n type:'DEVICESETTINGS_EDITOR_SHOW', \r\n networkID: this.state.currentNetworkID,\r\n deviceID: user.DeviceID,\r\n userID: user.ID\r\n })\r\n break;\r\n }\r\n }\r\n\r\n getNetwork(networkID){\r\n for(let i=0; i\r\n {this.props.statusMessage}\r\n \r\n );\r\n }\r\n\r\n //current network\r\n let network = this.getNetwork(this.state.currentNetworkID)\r\n let users = network && network.users ? network.users: [];\r\n let groups = network && network.groups ? network.groups: [];\r\n let profiles = network && network.profiles ? network.profiles: [];\r\n let statuses = network && network.statuses ? network.statuses: [];\r\n let devices = network && network.devices ? network.devices: [];\r\n //console.log('render ServerConsole ' + this.state.currentNetworkID)\r\n //console.log(network)\r\n /*\r\n let backgroundTitleStyle = {\r\n background:theme.palette.background.dialogTitle,\r\n color: theme.palette.color.dialogTitle\r\n }\r\n let typographyTitleStyle = {\r\n color: theme.palette.color.dialogTitle, \r\n fontWeight: 'bold',\r\n //padding:'0.5em 0'\r\n }\r\n */\r\n\r\n let list = ''\r\n //console.log('select tab '+this.state.selectedTab)\r\n switch(this.state.selectedTab){\r\n case 'users':\r\n users = users.filter(item => item.Login!=this.props.user.login)\r\n list = (\r\n \r\n );\r\n break;\r\n case 'groups':\r\n //console.log(groups)\r\n list = (\r\n \r\n );\r\n break;\r\n case 'statuses':\r\n //console.log(statuses)\r\n list = (\r\n \r\n )\r\n break;\r\n case 'devices':\r\n //console.log(devices)\r\n list = (\r\n \r\n )\r\n break;\r\n case 'profiles':\r\n //console.log(profiles)\r\n list = (\r\n \r\n )\r\n break\r\n default:\r\n alert('Tab action not defined!')\r\n }\r\n\r\n \r\n return (\r\n \r\n \r\n \r\n {network ? network.Name : ''}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*Networks list*/}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {list}\r\n \r\n \r\n \r\n \r\n {/*server startus*/} {statusMessage}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport const ServerConsole = withTranslation()(ServerConsole_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\n\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport {Paper, IconButton, Menu, MenuItem, ListItemIcon, ListItemText} from '@material-ui/core';\r\nimport {Select} from '@material-ui/core';\r\nimport MoreVert from '@material-ui/icons/MoreVert';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\r\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\r\nimport { sortByLogin } from '../../api/ServerApi';\r\n\r\nclass UsersListEditor_ extends React.Component{\r\n\r\n constructor(props){\r\n super(props);\r\n this.state = {menuAnchor: null}\r\n }\r\n\r\n handleUserSelect(userID){\r\n this.props.onUserSelect(userID)\r\n }\r\n\r\n getUserStyle(userID){\r\n let selected = userID === this.props.selectedUserID\r\n let style = {\r\n background: selected? theme.palette.background.selectedRow : '',\r\n cursor: 'pointer'\r\n }\r\n return style\r\n }\r\n\r\n handleMenuClick(event, itemID){\r\n this.setState({menuAnchor: event.currentTarget, menuItemID: itemID});\r\n event.stopPropagation();\r\n }\r\n\r\n handleMenuClose(){\r\n this.menuAnchor = null;\r\n this.setState({menuAnchor: null});\r\n return null;\r\n }\r\n\r\n handleMenuItemClick(action){\r\n const itemID = this.state.menuItemID\r\n this.handleMenuClose();\r\n this.props.onAction({type: action, userID: itemID})\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n this.props.users.sort(sortByLogin)\r\n //console.log(this.props.users)\r\n\r\n const styles = {\r\n paper: {\r\n width: '100%',\r\n overflowX: 'auto',\r\n },\r\n head: {\r\n color: theme.palette.color.dialogTitle,\r\n backgroundColor: theme.palette.background.dialogTitle,\r\n },\r\n addIcon: {\r\n color: 'white'\r\n }\r\n };\r\n\r\n return(\r\n <>\r\n \r\n \r\n \r\n \r\n {t('Login')}\r\n {t('Name')}\r\n {t('Priority')}\r\n \r\n {this.handleMenuItemClick('USER_EDITOR_OPEN_ADD')}}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.users.map((user) => \r\n {this.handleUserSelect(user.ID)}}\r\n style={this.getUserStyle(user.ID)}>\r\n \r\n {user.Login}\r\n \r\n \r\n {user.Name}\r\n \r\n \r\n {\r\n this.props.onAction({type: 'USER_EDITOR_INPUT', event: event, userID: user.ID})\r\n }}\r\n inputProps={{\r\n name: 'Priority',\r\n id: 'Priority',\r\n }}\r\n >\r\n +14\r\n +13\r\n +12\r\n +11\r\n +10\r\n +9\r\n +8\r\n +7\r\n +6\r\n +5\r\n +4\r\n +3\r\n +2\r\n +1\r\n {t('Default')}\r\n -1\r\n \r\n \r\n \r\n this.handleMenuClick(event, user.ID)}>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {this.handleMenuItemClick('USER_EDITOR_OPEN_EDIT')}}>\r\n \r\n \r\n \r\n {this.handleMenuItemClick('USER_EDITOR_DELETE')}}>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport const UsersListEditor = withTranslation()(UsersListEditor_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport {Paper, IconButton, Menu, MenuItem, ListItemIcon, ListItemText} from '@material-ui/core';\r\nimport {FormControl, Checkbox, Select} from '@material-ui/core';\r\nimport MoreVert from '@material-ui/icons/MoreVert';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\r\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\r\nimport { sortByName } from '../../api/ServerApi';\r\n\r\nclass GroupsListEditor_ extends React.Component{\r\n\r\n constructor(props){\r\n super(props);\r\n this.state = {menuAnchor: null}\r\n }\r\n\r\n handleItemSelect(groupID){\r\n this.props.onItemSelect(groupID)\r\n }\r\n\r\n getRowStyle(groupID){\r\n let selected = groupID === this.props.selectedGroupID\r\n let style = {\r\n background: selected? theme.palette.background.selectedRow : '',\r\n cursor: 'pointer'\r\n }\r\n return style\r\n }\r\n handleMenuClick(event, itemID){\r\n this.setState({menuAnchor: event.currentTarget, menuItemID: itemID});\r\n event.stopPropagation();\r\n }\r\n\r\n handleMenuClose(){\r\n this.menuAnchor = null;\r\n this.setState({menuAnchor: null});\r\n return null;\r\n }\r\n\r\n handleMenuItemClick(action){\r\n const itemID = this.state.menuItemID\r\n this.handleMenuClose();\r\n this.props.onAction({type: action, groupID: itemID})\r\n }\r\n\r\n render(){\r\n const {t} = this.props \r\n this.props.groups.sort(sortByName)\r\n\r\n const styles = {\r\n paper: {\r\n width: '100%',\r\n overflowX: 'auto',\r\n },\r\n head: {\r\n color: theme.palette.color.dialogTitle,\r\n backgroundColor: theme.palette.background.dialogTitle,\r\n },\r\n addIcon: {\r\n color: 'white'\r\n }\r\n };\r\n\r\n return(\r\n <>\r\n \r\n \r\n \r\n \r\n {t('Name')}\r\n {t('Priority')}\r\n\r\n {t('Emer')}.\r\n {t('AllC')}.\r\n {t('Broad')}.\r\n\r\n \r\n {this.handleMenuItemClick('GROUP_EDITOR_OPEN_ADD')}}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.groups.map((group) => \r\n {this.handleItemSelect(group.ID)}}\r\n style={this.getRowStyle(group.ID)}>\r\n \r\n {group.Name}\r\n \r\n \r\n {\r\n this.props.onAction({type: 'GROUP_EDITOR_INPUT', event: event, groupID: group.ID})\r\n }}\r\n variant=\"standard\"\r\n inputProps={{\r\n name: 'Priority',\r\n id: 'Priority',\r\n }}\r\n >\r\n +5\r\n +4\r\n +3\r\n +2\r\n +1\r\n {t('Default')}\r\n -1\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n this.handleMenuClick(event, group.ID)}>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {this.handleMenuItemClick('GROUP_EDITOR_OPEN_EDIT')}}>\r\n \r\n \r\n \r\n {this.handleMenuItemClick('GROUP_EDITOR_DELETE')}}>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport const GroupsListEditor = withTranslation()(GroupsListEditor_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport {Paper, IconButton, Menu, MenuItem, ListItemIcon, ListItemText} from '@material-ui/core';\r\n\r\nimport MoreVert from '@material-ui/icons/MoreVert';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\r\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\r\n\r\nimport {decimalColorToHexColor, sortByName} from './../../api/ServerApi'; \r\n\r\nclass StatusesListEditor_ extends React.Component{\r\n\r\n constructor(props){\r\n super(props);\r\n this.state = {menuAnchor: null}\r\n }\r\n\r\n handleItemSelect(itemID){\r\n this.props.onItemSelect(itemID)\r\n }\r\n\r\n getItemStyle(itemID){\r\n let selected = itemID === this.props.selectedItemID\r\n let style = {\r\n background: selected? theme.palette.background.selectedRow : '',\r\n cursor: 'pointer'\r\n }\r\n return style\r\n }\r\n\r\n handleMenuClick(event, itemID){\r\n this.setState({menuAnchor: event.currentTarget, menuItemID: itemID});\r\n event.stopPropagation();\r\n }\r\n\r\n handleMenuClose(){\r\n this.menuAnchor = null;\r\n this.setState({menuAnchor: null});\r\n return null;\r\n }\r\n\r\n handleMenuItemClick(action){\r\n const itemID = this.state.menuItemID\r\n this.handleMenuClose();\r\n this.props.onAction({type: action, statusID: itemID})\r\n }\r\n\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n this.props.items.sort(sortByName)\r\n\r\n const styles = {\r\n paper: {\r\n width: '100%',\r\n overflowX: 'auto',\r\n },\r\n head: {\r\n color: theme.palette.color.dialogTitle,\r\n backgroundColor: theme.palette.background.dialogTitle,\r\n },\r\n addIcon: {\r\n color: 'white'\r\n }\r\n };\r\n\r\n return(\r\n <>\r\n \r\n \r\n \r\n \r\n {t('Name')}\r\n {t('Color')}\r\n \r\n {this.handleMenuItemClick('STATUS_EDITOR_OPEN_ADD')}}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.items.map((item) => \r\n {this.handleItemSelect(item.ID)}}\r\n style={this.getItemStyle(item.ID)}>\r\n \r\n {item.Name}\r\n \r\n \r\n {/*item.Color*/} {decimalColorToHexColor(item.Color)}\r\n \r\n \r\n this.handleMenuClick(event, item.ID)}>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {this.handleMenuItemClick('STATUS_EDITOR_OPEN_EDIT')}}>\r\n \r\n \r\n \r\n {this.handleMenuItemClick('STATUS_EDITOR_DELETE')}}>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport const StatusesListEditor = withTranslation()(StatusesListEditor_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport {Paper, IconButton, Menu, MenuItem, ListItemIcon, ListItemText} from '@material-ui/core';\r\nimport MoreVert from '@material-ui/icons/MoreVert';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\r\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\r\nimport { sortByName } from '../../api/ServerApi';\r\n\r\nclass ProfilesListEditor_ extends React.Component{\r\n\r\n constructor(props){\r\n super(props);\r\n this.state = {menuAnchor: null}\r\n }\r\n\r\n handleItemSelect(itemID){\r\n this.props.onItemSelect(itemID)\r\n }\r\n\r\n getItemStyle(itemID){\r\n let selected = itemID === this.props.selectedItemID\r\n let style = {\r\n background: selected? theme.palette.background.selectedRow : '',\r\n cursor: 'pointer'\r\n }\r\n return style\r\n }\r\n\r\n handleMenuClick(event, itemID){\r\n this.setState({menuAnchor: event.currentTarget, menuItemID: itemID});\r\n event.stopPropagation();\r\n }\r\n\r\n handleMenuClose(){\r\n this.menuAnchor = null;\r\n this.setState({menuAnchor: null});\r\n return null;\r\n }\r\n\r\n handleMenuItemClick(action){\r\n const itemID = this.state.menuItemID\r\n this.handleMenuClose();\r\n this.props.onAction({type: action, profileID: itemID})\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n this.props.items.sort(sortByName)\r\n\r\n const styles = {\r\n paper: {\r\n width: '100%',\r\n overflowX: 'auto',\r\n },\r\n head: {\r\n color: theme.palette.color.dialogTitle,\r\n backgroundColor: theme.palette.background.dialogTitle,\r\n },\r\n addIcon: {\r\n color: 'white'\r\n }\r\n };\r\n\r\n return(\r\n <>\r\n \r\n \r\n \r\n \r\n {t('Name')}\r\n {t('Description')}\r\n \r\n {this.handleMenuItemClick('PROFILE_EDITOR_OPEN_ADD')}}>\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {this.props.items.map((item) => \r\n {this.handleItemSelect(item.ProfileID)}}\r\n style={this.getItemStyle(item.ProfileID)}>\r\n \r\n {item.Name}\r\n \r\n \r\n {item.Description}\r\n \r\n \r\n this.handleMenuClick(event, item.ProfileID)}>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {this.handleMenuItemClick('PROFILE_EDITOR_OPEN_EDIT')}}>\r\n \r\n \r\n \r\n {this.handleMenuItemClick('PROFILE_EDITOR_DELETE')}}>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport const ProfilesListEditor = withTranslation()(ProfilesListEditor_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport {Paper, Checkbox } from '@material-ui/core';\r\nimport { sortByName } from '../../api/ServerApi';\r\n\r\nexport default class AclListEditor_ extends React.Component{\r\n\r\n render(){\r\n\r\n const {t} = this.props;\r\n \r\n this.props.items.sort(sortByName)\r\n\r\n const styles = {\r\n paper: {\r\n width: '100%',\r\n overflowX: 'auto',\r\n },\r\n head: {\r\n color: theme.palette.color.dialogTitle,\r\n backgroundColor: theme.palette.background.dialogTitle,\r\n }\r\n };\r\n\r\n return(\r\n <>\r\n \r\n \r\n \r\n \r\n {this.props.title?this.props.title:t('Name')}\r\n \r\n \r\n \r\n {this.props.items.map((item, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n )\r\n\r\n }\r\n\r\n}\r\n\r\nexport const AclListEditor = withTranslation()(AclListEditor_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport {Dialog, DialogActions, DialogContent, DialogTitle} from '@material-ui/core'\r\nimport {Container, Box} from '@material-ui/core'\r\nimport {Button, FormControl, Checkbox} from '@material-ui/core';\r\n\r\nclass EditUserPermissionsDialog_ extends React.Component{\r\n\r\n constructor(props){\r\n super(props)\r\n\r\n let permissions = this.props.permissions\r\n let permissionsArr = new Array(32)\r\n for(let i = 0; i < 32; ++i){\r\n permissionsArr[i] = (permissions >> i) & 1;\r\n }\r\n\r\n this.state = {\r\n changed: false,\r\n permissions: permissionsArr,\r\n errors: {}\r\n }\r\n }\r\n\r\n handleSave(){\r\n if(this.validate()){\r\n\r\n let permissions = 0\r\n let permissionsArr = this.state.permissions // Array(32)\r\n\r\n\r\n for(let i = 0; i < 32; ++i){\r\n permissions += permissionsArr[i] << i;\r\n }\r\n //alert('permissions = '+ permissions)\r\n\r\n this.props.onAction({type: 'USER_PERMISSIONS_EDITOR_SAVE', permissions: permissions})\r\n }\r\n }\r\n\r\n handleClose(){\r\n if(this.state.changed){\r\n if(!window.confirm(this.props.t('CloseFormConfirm'))) return; \r\n }\r\n this.props.onAction({type: 'USER_PERMISSIONS_EDITOR_CLOSE'})\r\n } \r\n\r\n handleInput(event){\r\n let changed = {}\r\n if(!this.state.changed) changed = {changed: true}\r\n\r\n let arr = event.target.name.split('_')\r\n let i = arr[1]\r\n\r\n let permissions = this.state.permissions\r\n permissions[i] = event.target.checked?1:0\r\n\r\n this.setState({permissions: permissions, ...changed})\r\n }\r\n\r\n validate(){\r\n let errors = this.state.errors;\r\n let error = false\r\n /* \r\n if(!this.state.group.Name){\r\n errors.Name = 'Name is empty'\r\n error = true\r\n }else{\r\n errors.Name = false\r\n }\r\n this.setState({errors: errors})\r\n*/\r\n return !error;\r\n }\r\n\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n const title = t('UserPermissions')\r\n\r\n const margin = {margin:'16px 0 8px 0'}\r\n\r\n return(\r\n\r\n \r\n {title}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n\r\n );\r\n\r\n }\r\n}\r\n\r\nexport const EditUserPermissionsDialog = withTranslation()(EditUserPermissionsDialog_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport {Dialog, DialogActions, DialogContent, DialogTitle, Grid} from '@material-ui/core'\r\nimport {Container, Box, IconButton} from '@material-ui/core'\r\nimport {Button, FormControl, Checkbox, TextField, InputLabel, MenuItem, Select } from '@material-ui/core';\r\nimport {MoreVert} from '@material-ui/icons';\r\nimport {EditUserPermissionsDialog} from './EditUserPermissionsDialog';\r\n\r\nclass EditUserDialog_ extends React.Component{\r\n\r\n constructor(props){\r\n super(props)\r\n\r\n const {user} = this.props; \r\n this.state = {\r\n user: {\r\n Login: user.ID ? user.Login : '',\r\n Name: user.ID ? user.Name : '',\r\n Password: user.ID ? user.Password : '',\r\n Priority: user.ID ? user.Priority : 0,\r\n ProfileID: user.ID ? user.ProfileID: 'EREREREREREREREREREREQ==',\r\n Permissions: user.ID ? user.Permissions: -1,\r\n Locked: user.ID ? user.Locked: false \r\n },\r\n errors:{\r\n Login: false, \r\n Name: false,\r\n Password: false,\r\n Priority: false,\r\n ProfileID: false,\r\n Permissions: false,\r\n Locked: false\r\n },\r\n permissionsDialogOpen: false,\r\n changed: false,\r\n permissionsType: user.ID && user.Permissions>=0 ? 0 : -1\r\n }\r\n }\r\n\r\n handleSave(){\r\n if(this.validate()){\r\n let user = {...this.props.user, ...this.state.user}\r\n this.props.onAction({type: 'USER_EDITOR_SAVE', user: user})\r\n }\r\n }\r\n\r\n handleClose(){\r\n if(this.state.changed){\r\n if(!window.confirm(this.props.t('CloseFormConfirm'))) return; \r\n }\r\n this.props.onAction({type: 'USER_EDITOR_CLOSE'})\r\n }\r\n\r\n handleInput(event){\r\n let changed = !this.state.changed ? {changed: true} : {}\r\n const val = event.target.type==='checkbox' ? event.target.checked : event.target.value\r\n const user = {...this.state.user, [event.target.name]: val}\r\n this.setState({user: user, ...changed})\r\n }\r\n\r\n handlePermissionsTypeChange(event){\r\n let permissions = {}\r\n if(event.target.value===0 && this.state.user.Permissions===-1){\r\n permissions = {Permissions: 13500882}\r\n }\r\n\r\n const user = {...this.state.user, ...permissions}\r\n this.setState({permissionsType: event.target.value, user: user})\r\n\r\n //this.setState({permissionsType: event.target.value, ...permissions})\r\n }\r\n\r\n handleAction(action){\r\n switch(action.type){\r\n case 'USER_PERMISSIONS_EDITOR_OPEN':\r\n this.setState({permissionsDialogOpen: true})\r\n break;\r\n\r\n case 'USER_PERMISSIONS_EDITOR_CLOSE':\r\n this.setState({permissionsDialogOpen: false})\r\n break;\r\n\r\n case 'USER_PERMISSIONS_EDITOR_SAVE':\r\n let changed = !this.state.changed ? {changed: true} : {}\r\n\r\n this.setState({permissionsDialogOpen: false})\r\n const user = {...this.state.user, Permissions: action.permissions}\r\n this.setState({user: user, ...changed})\r\n break;\r\n }\r\n }\r\n\r\n validate(){\r\n const {t} = this.props\r\n\r\n let errors = this.state.errors;\r\n let error = false\r\n if(!this.state.user.Login){\r\n errors.Login = t('LoginIsEmpty')\r\n error = true\r\n }else{\r\n errors.Login = false\r\n }\r\n if(!this.state.user.Name){\r\n errors.Name = t('NameIsEmpty')\r\n error = true\r\n }else{\r\n errors.Name = false\r\n }\r\n this.setState({errors: errors})\r\n\r\n return !error;\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n const title = this.props.action==='add'?t('NewUser'):t('EditUser')\r\n\r\n const margin = {margin:'16px 0 8px 0'}\r\n\r\n let userPermissionsDialog = '';\r\n if(this.state.permissionsDialogOpen){\r\n userPermissionsDialog = (\r\n \r\n );\r\n }\r\n\r\n\r\n return(\r\n\r\n \r\n {title}\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t('Priority')}\r\n \r\n +14\r\n +13\r\n +12\r\n +11\r\n +10\r\n +9\r\n +8\r\n +7\r\n +6\r\n +5\r\n +4\r\n +3\r\n +2\r\n +1\r\n {t('Default')}\r\n -1\r\n \r\n \r\n \r\n\r\n \r\n \r\n {t('Pofile')}\r\n \r\n {this.props.profiles.map(profile=>\r\n {profile.Name}\r\n )}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {t('Permissions')}\r\n \r\n \r\n\r\n \r\n \r\n {this.handleAction({type: 'USER_PERMISSIONS_EDITOR_OPEN'})}}>\r\n \r\n \r\n \r\n \r\n\r\n {userPermissionsDialog}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n\r\n );\r\n\r\n }\r\n}\r\n\r\nexport const EditUserDialog = withTranslation()(EditUserDialog_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport {Dialog, DialogActions, DialogContent, DialogTitle} from '@material-ui/core'\r\nimport {Container, Box} from '@material-ui/core'\r\nimport {Button, FormControl, Checkbox, TextField, InputLabel, MenuItem, Select } from '@material-ui/core';\r\n\r\nexport default class EditGroupDialog_ extends React.Component{\r\n\r\n constructor(props){\r\n super(props)\r\n\r\n const {group} = this.props; \r\n this.state = {\r\n group: {\r\n Name: group.ID ? group.Name : '',\r\n Priority: group.ID ? group.Priority : 0,\r\n Emergency: group.ID ? group.Emergency: false,\r\n AllCall: group.ID ? group.AllCall: false,\r\n Broadcast: group.ID ? group.Broadcast: false \r\n },\r\n errors:{\r\n Name: false\r\n },\r\n changed: false\r\n }\r\n }\r\n\r\n handleSave(){\r\n if(this.validate()){\r\n let group = {...this.props.group, ...this.state.group}\r\n this.props.onAction({type: 'GROUP_EDITOR_SAVE', group: group})\r\n }\r\n }\r\n\r\n handleClose(){\r\n if(this.state.changed){\r\n if(!window.confirm(this.props.t('CloseFormConfirm'))) return; \r\n }\r\n this.props.onAction({type: 'GROUP_EDITOR_CLOSE'})\r\n }\r\n\r\n handleInput(event){\r\n if(!this.state.changed) this.setState({changed: true})\r\n\r\n const val = event.target.type==='checkbox' ? event.target.checked : event.target.value\r\n const group = {...this.state.group, [event.target.name]: val}\r\n this.setState({group: group})\r\n }\r\n\r\n validate(){\r\n let errors = this.state.errors;\r\n let error = false\r\n \r\n if(!this.state.group.Name){\r\n errors.Name = this.props.t('NameIsEmpty')\r\n error = true\r\n }else{\r\n errors.Name = false\r\n }\r\n this.setState({errors: errors})\r\n\r\n return !error;\r\n }\r\n\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n const title = this.props.action==='add'?t('NewGroup'):t('EditGroup')\r\n\r\n const margin = {margin:'16px 0 8px 0'}\r\n\r\n return(\r\n\r\n \r\n {title}\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {t('Priority')}\r\n \r\n +5\r\n +4\r\n +3\r\n +2\r\n +1\r\n {t('Default')}\r\n -1\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n\r\n );\r\n\r\n }\r\n}\r\n\r\nexport const EditGroupDialog = withTranslation()(EditGroupDialog_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport {Dialog, DialogActions, DialogContent, DialogTitle} from '@material-ui/core'\r\nimport {Container, Box} from '@material-ui/core'\r\nimport {Button, FormControl, TextField } from '@material-ui/core';\r\n\r\nimport { SketchPicker } from 'react-color';\r\nimport {decimalColorToHexColor, hexColorToDecimalColor} from './../../api/ServerApi'; \r\n\r\nclass EditStatusDialog_ extends React.Component{\r\n\r\n constructor(props){\r\n super(props)\r\n\r\n const {status} = this.props; \r\n this.state = {\r\n status: {\r\n Name: status.ID ? status.Name : '',\r\n Color: status.ID ? status.Color : -1,\r\n },\r\n errors:{\r\n Name: false,\r\n Color: false\r\n },\r\n changed: false,\r\n colorPicker: {\r\n open: false,\r\n color: ''\r\n }\r\n\r\n }\r\n }\r\n\r\n handleSave(){\r\n if(this.validate()){\r\n let status = {...this.props.status, ...this.state.status}\r\n this.props.onAction({type: 'STATUS_EDITOR_SAVE', status: status})\r\n }\r\n }\r\n\r\n handleClose(){\r\n if(this.state.changed){\r\n if(!window.confirm(this.props.t('CloseFormConfirm'))) return; \r\n }\r\n this.props.onAction({type: 'STATUS_EDITOR_CLOSE'})\r\n } \r\n\r\n handleInput(event){\r\n if(!this.state.changed) this.setState({changed: true})\r\n\r\n const val = event.target.type==='checkbox' ? event.target.checked : event.target.value\r\n const status = {...this.state.status, [event.target.name]: val}\r\n this.setState({status: status})\r\n }\r\n\r\n validate(){\r\n let errors = this.state.errors;\r\n let error = false\r\n \r\n if(!this.state.status.Name){\r\n errors.Name = this.props.t('NameIsEmpty')\r\n error = true\r\n }else{\r\n errors.Name = false\r\n }\r\n this.setState({errors: errors})\r\n\r\n return !error;\r\n }\r\n\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n const title = this.props.action==='add'?t('NewStatus'):t('EditStatus')\r\n\r\n const margin = {margin:'16px 0 8px 0'}\r\n\r\n return(\r\n\r\n \r\n {title}\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {this.setState({colorPicker:{\r\n open: true, color: decimalColorToHexColor(this.state.status.Color)\r\n }} ) } } \r\n >\r\n \r\n\r\n \r\n {t('SelectColor')}\r\n \r\n {\r\n this.setState({\r\n colorPicker:{open: true, color: color.hex}\r\n } ) \r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n\r\n );\r\n\r\n }\r\n}\r\n\r\nexport const EditStatusDialog = withTranslation()(EditStatusDialog_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport {Dialog, DialogActions, DialogContent, DialogTitle} from '@material-ui/core'\r\nimport {Container, Box} from '@material-ui/core'\r\nimport {Button, FormControl, Checkbox, TextField, InputLabel, MenuItem, Select } from '@material-ui/core';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport PersonOutlineIcon from '@material-ui/icons/PersonOutline';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\n\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Input from '@material-ui/core/Input';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\n\r\nclass EditProfileDialog_ extends React.Component{\r\n\r\n constructor(props){\r\n super(props)\r\n\r\n const {profile} = this.props; \r\n this.state = {\r\n profile: {\r\n Name: profile.ProfileID ? profile.Name : '',\r\n Description: profile.Description ? profile.Description : '',\r\n Profile: profile.ProfileID ? {...this.getProfileDefaults(), ...JSON.parse(profile.Profile)}: {}\r\n },\r\n errors:{\r\n Name: false,\r\n Description: false,\r\n ManDownTimeout: false\r\n },\r\n changed: false\r\n }\r\n console.log(this.state)\r\n }\r\n\r\n getProfileDefaults(Profile){\r\n return {\r\n Receivers: [],\r\n ScreenSOS: false,\r\n ManDown: false,\r\n EmergencyVoiceCall: false,\r\n EmergencyGroupId: null,\r\n ManDownTimeout: 5\r\n }\r\n }\r\n\r\n handleSave(){\r\n if(this.validate()){\r\n let Profile = JSON.stringify(this.state.profile.Profile);\r\n let profile = {...this.props.profile, ...this.state.profile, Profile: Profile}\r\n this.props.onAction({type: 'PROFILE_EDITOR_SAVE', profile: profile})\r\n }\r\n }\r\n\r\n handleClose(){\r\n if(this.state.changed){\r\n if(!window.confirm(this.props.t('CloseFormConfirm'))) return; \r\n }\r\n this.props.onAction({type: 'PROFILE_EDITOR_CLOSE'})\r\n } \r\n\r\n handleInput(event){\r\n if(!this.state.changed) this.setState({changed: true})\r\n\r\n const val = event.target.type==='checkbox' ? event.target.checked : event.target.value\r\n const profile = {...this.state.profile, [event.target.name]: val}\r\n this.setState({profile: profile})\r\n }\r\n\r\n handleInputProfile(event){\r\n if(!this.state.changed) this.setState({changed: true})\r\n\r\n const val = event.target.type==='checkbox' ? event.target.checked : event.target.value\r\n\r\n let Profile = {...this.state.profile.Profile, [event.target.name]: val}\r\n\r\n const profile = {...this.state.profile, Profile: Profile}\r\n this.setState({profile: profile})\r\n }\r\n\r\n validate(){\r\n let errors = this.state.errors;\r\n let error = false\r\n \r\n if(!this.state.profile.Name){\r\n errors.Name = this.props.t('NameIsEmpty')\r\n error = true\r\n }else{\r\n errors.Name = false\r\n }\r\n this.setState({errors: errors})\r\n\r\n return !error;\r\n }\r\n\r\n getReceiverName(ID){\r\n let receivers = this.props.receivers.filter(item=>item.ID===ID)\r\n if(receivers.length){\r\n let icon = this.getReceiverIcon(receivers[0].Type)\r\n return (<>{icon} {receivers[0].Name})\r\n }\r\n return 'undefined '+ID\r\n }\r\n\r\n getReceiver(ID){\r\n let receivers = this.props.receivers.filter(item=>item.ID===ID)\r\n if(receivers.length) return receivers[0]\r\n return null;\r\n }\r\n\r\n isReceiverChecked(ID){\r\n let receivers = this.state.profile.Profile.Receivers.filter(item=>item.ID===ID)\r\n return receivers.length>0\r\n }\r\n\r\n handleReceiversChange(event){\r\n let receivers = []\r\n console.log(event.target.value)\r\n for(let i=0; i\r\n case 4: return \r\n case 3: return \r\n default: return ''\r\n }\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n const title = this.props.action==='add'?t('NewProfile'):t('EditProfile')\r\n\r\n const margin = {margin:'16px 0 8px 0'}\r\n\r\n return(\r\n\r\n \r\n {title}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t('Receivers')}\r\n item.ID)}\r\n input={}\r\n MenuProps={{\r\n PaperProps: {\r\n style: {\r\n maxHeight: '20em',\r\n width: '100%',\r\n },\r\n }\r\n }}\r\n renderValue={selected => (\r\n
\r\n {selected.map(value => (\r\n \r\n ))}\r\n
\r\n )}\r\n \r\n >\r\n {this.props.receivers.map(item => (\r\n \r\n {this.getReceiverIcon(item.Type)}\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t('EmergencyGroup')}\r\n \r\n \r\n {this.props.emergencyGroups.map(\r\n item => {item.Name}\r\n )}\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('TimeoutBeforeSendingEmergencyOnManDownS')}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n\r\n );\r\n\r\n }\r\n}\r\n\r\nexport const EditProfileDialog = withTranslation()(EditProfileDialog_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport {Grid, Typography, Container, Box} from '@material-ui/core';\r\n\r\nimport {ApplicationBar} from '../../components/ApplicationBar';\r\n\r\n//import Logo from '../../components/Logo';\r\n\r\nimport {TabbedMenu} from '../../components/TabbedMenu';\r\n\r\nimport {UsersListEditor} from './UsersListEditor';\r\nimport {GroupsListEditor} from './GroupsListEditor';\r\nimport {StatusesListEditor} from './StatusesListEditor';\r\nimport {ProfilesListEditor} from './ProfilesListEditor';\r\n\r\nimport DevicesList from './../ServerConsole/DevicesList';\r\nimport {Dialog} from '../../components/Dialog';\r\nimport {AclListEditor} from './AclListEditor';\r\n\r\nimport {EditUserDialog} from './EditUserDialog';\r\nimport {EditGroupDialog} from './EditGroupDialog';\r\nimport {EditStatusDialog} from './EditStatusDialog';\r\nimport {EditProfileDialog} from './EditProfileDialog';\r\n//import {SelectLang} from '../../components/SelectLang';\r\n\r\nimport {getBase64ID, getIndexByID, base64toGuid, sortByName} from './../../api/ServerApi'; \r\n\r\n\r\nclass NetworkEditor_ extends React.Component {\r\n \r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n networkSettings: this.props.networkSettings,\r\n currentNetorkID: '',\r\n currentUserID: '',\r\n currentGroupID: '',\r\n currentProfileID: '',\r\n currentStatusID: '',\r\n currentDeviceID: '',\r\n selectedTab: 'users',\r\n userEditor: {\r\n action: '', //add|edit\r\n userID: '',\r\n user: {}\r\n },\r\n groupEditor: {\r\n action: '', //add|edit\r\n groupID: '',\r\n group: {}\r\n },\r\n statusEditor: {\r\n action: '', //add|edit\r\n statusID: '',\r\n status: {}\r\n },\r\n profileEditor: {\r\n action: '', //add|edit\r\n statusID: '',\r\n profile: {}\r\n }\r\n }\r\n }\r\n\r\n componentDidMount(){\r\n \r\n }\r\n componentDidUpdate(){\r\n if(this.props.networkSettings && !this.state.networkSettings){\r\n this.setState({networkSettings: this.props.networkSettings})\r\n console.log('Open network editor')\r\n console.log(this.props.networkSettings)\r\n }\r\n }\r\n\r\n handleNetworkSelect(networkID){\r\n this.setState({currentNetorkID: networkID})\r\n }\r\n\r\n handleUserSelect(userID){\r\n this.setState({currentUserID: userID})\r\n }\r\n\r\n handleGroupSelect(groupID){\r\n this.setState({currentGroupID: groupID})\r\n }\r\n\r\n handleProfileSelect(profileID){\r\n this.setState({currentProfileID: profileID})\r\n }\r\n\r\n handleStatusSelect(statusID){\r\n this.setState({currentStatusID: statusID})\r\n }\r\n\r\n handleDeviceSelect(statusID){\r\n this.setState({currentStatusID: statusID})\r\n }\r\n\r\n\r\n getNetwork(networkID){\r\n for(let i=0; i item===userID)\r\n checked = users.length>0?true:false;\r\n acl = {groupID: group.ID, userID: userID, value: checked, name: group.Name}\r\n }else{\r\n acl = {groupID: group.ID, userID:'', value: null, name: group.Name}\r\n } \r\n acls.push(acl);\r\n }\r\n return acls\r\n }\r\n\r\n getGroupAcls(groupID){\r\n if(!this.state.networkSettings) return []\r\n\r\n let acls = [], acl;\r\n\r\n let groups = this.state.networkSettings.Groups.filter(item => item.ID===groupID)\r\n let group = groups.length>0 ? groups[0] : null;\r\n\r\n let checked = false;\r\n for(let i=0; i item===user.ID)\r\n checked = users.length>0?true:false;\r\n acl = {groupID: group.ID, userID: user.ID, value: checked, name: user.Login + ' ' + user.Name}\r\n }else{\r\n acl = {groupID: '', userID: user.ID, value: null, name: user.Login + ' ' + user.Name}\r\n } \r\n acls.push(acl); \r\n }\r\n return acls\r\n } \r\n\r\n/*\r\n handleLogout(){\r\n if(this.props.onLogout){\r\n this.props.onLogout()\r\n }\r\n }\r\n */\r\n\r\n handleTabClick(tab){\r\n this.setState({selectedTab: tab});\r\n }\r\n\r\n handleButtonSave(){\r\n this.props.onAction({type:'NETWORK_EDITOR_SAVE', networkSettings: this.state.networkSettings})\r\n }\r\n\r\n handleButtonCancel(){\r\n this.props.onAction({type:'NETWORK_EDITOR_CLOSE'})\r\n }\r\n\r\n //acl editor\r\n handleUserAclChange(index, groupID, userID, checked){\r\n //clone object\r\n let networkSettings = {...this.state.networkSettings};\r\n for(let i=0; i item.ID===action.userID)\r\n let user = users[0]\r\n this.setState({userEditor: {\r\n action: 'edit', //add|edit\r\n userID: action.userID,\r\n user: user\r\n }})\r\n }\r\n break\r\n case 'USER_EDITOR_OPEN_ADD': \r\n this.setState({userEditor: {\r\n action: 'add', //add|edit\r\n userID: action.userID,\r\n user: {}\r\n }})\r\n break\r\n case 'USER_EDITOR_DELETE': {\r\n let networkSettings = {...this.state.networkSettings}\r\n const userIndex = getIndexByID(action.userID, networkSettings.Users)\r\n if(userIndex!==null){\r\n networkSettings.Users.splice(userIndex, 1)\r\n this.setState({networkSettings: networkSettings}) \r\n }\r\n }\r\n break;\r\n case 'USER_EDITOR_INPUT':{\r\n const {event, userID} = action;\r\n let networkSettings = {...this.state.networkSettings}\r\n const userIndex = getIndexByID(userID, networkSettings.Users)\r\n if(userIndex!==null){\r\n const val = event.target.type==='checkbox' ? event.target.checked : event.target.value\r\n const user = {...networkSettings.Users[userIndex], [event.target.name]: val}\r\n networkSettings.Users[userIndex] = user\r\n this.setState({networkSettings: networkSettings})\r\n }\r\n }\r\n break;\r\n\r\n default:\r\n alert(action.type)\r\n }\r\n }\r\n\r\n handleGroupEditorAction(action){\r\n\r\n switch(action.type){\r\n case 'GROUP_EDITOR_SAVE': {\r\n let group = {...action.group}\r\n let networkSettings = {...this.state.networkSettings}\r\n //if(!group.ID){\r\n // group.ID = getBase64ID()\r\n //}\r\n let groupIndex = getIndexByID(group.ID, networkSettings.Groups)\r\n if(groupIndex===null){\r\n if(group.Users===undefined){\r\n //group.Users = []\r\n //group.DMRGroupID = 0,​\r\n //group.DMRNetworkID = \"AAAAAAAAAAAAAAAAAAAAAA==\"\r\n //group.DMRSlot = 0\r\n }\r\n networkSettings.Groups.push(group);\r\n }else{\r\n networkSettings.Groups[groupIndex] = group\r\n }\r\n this.setState({networkSettings: networkSettings, groupEditor: {action:'', groupID:'', group:{}}})\r\n }\r\n break;\r\n\r\n case 'GROUP_EDITOR_CLOSE':\r\n this.setState({groupEditor: {action:'', groupID:'', group:{}}})\r\n break;\r\n\r\n case 'GROUP_EDITOR_OPEN_EDIT': {\r\n let groups = this.state.networkSettings.Groups.filter(item => item.ID===action.groupID)\r\n let group = groups[0]\r\n this.setState({groupEditor: {\r\n action: 'edit', //add|edit\r\n groupID: action.groupID,\r\n group: group\r\n }})\r\n }\r\n break\r\n case 'GROUP_EDITOR_OPEN_ADD': \r\n this.setState({groupEditor: {\r\n action: 'add', //add|edit\r\n groupID: action.groupID,\r\n group: { //group defaults\r\n ID: getBase64ID(),\r\n Users: [],\r\n Dispatchers: [],\r\n Devices: [],\r\n DMRGroupID: 0, \r\n DMRNetworkID: \"AAAAAAAAAAAAAAAAAAAAAA==\",\r\n DMRSlot: 0,\r\n Priority: 0,\r\n AllCall: 0,\r\n Broadcast: 0,\r\n Emergency: 0,\r\n }\r\n }})\r\n break\r\n case 'GROUP_EDITOR_DELETE': {\r\n let networkSettings = {...this.state.networkSettings}\r\n const groupIndex = getIndexByID(action.groupID, networkSettings.Groups)\r\n if(groupIndex!==null){\r\n networkSettings.Groups.splice(groupIndex, 1)\r\n this.setState({networkSettings: networkSettings}) \r\n }\r\n }\r\n break;\r\n\r\n case 'GROUP_EDITOR_INPUT':{\r\n const {event, groupID} = action;\r\n let networkSettings = {...this.state.networkSettings}\r\n const groupIndex = getIndexByID(groupID, networkSettings.Groups)\r\n if(groupIndex!==null){\r\n const val = event.target.type==='checkbox' ? event.target.checked : event.target.value\r\n const group = {...networkSettings.Groups[groupIndex], [event.target.name]: val}\r\n networkSettings.Groups[groupIndex] = group\r\n this.setState({networkSettings: networkSettings})\r\n }\r\n }\r\n break;\r\n default:\r\n alert(action.type)\r\n }\r\n }\r\n\r\n\r\n handleStatusEditorAction(action){\r\n\r\n switch(action.type){\r\n case 'STATUS_EDITOR_SAVE': {\r\n let status = {...action.status}\r\n let networkSettings = {...this.state.networkSettings}\r\n if(!status.ID){\r\n status.ID = getBase64ID()\r\n }\r\n let statusIndex = getIndexByID(status.ID, networkSettings.Statuses)\r\n if(statusIndex===null){\r\n networkSettings.Statuses.push(status);\r\n }else{\r\n networkSettings.Statuses[statusIndex] = status\r\n }\r\n this.setState({networkSettings: networkSettings, statusEditor: {action:'', statusID:'', status:{}}})\r\n }\r\n break;\r\n\r\n case 'STATUS_EDITOR_CLOSE':\r\n this.setState({statusEditor: {action:'', statusID:'', status:{}}})\r\n break;\r\n\r\n case 'STATUS_EDITOR_OPEN_EDIT': {\r\n let statuses = this.state.networkSettings.Statuses.filter(item => item.ID===action.statusID)\r\n let status = statuses[0]\r\n this.setState({statusEditor: {\r\n action: 'edit', //add|edit\r\n statusID: action.statusID,\r\n status: status\r\n }})\r\n }\r\n break\r\n case 'STATUS_EDITOR_OPEN_ADD': \r\n this.setState({statusEditor: {\r\n action: 'add', //add|edit\r\n statusID: action.statusID,\r\n status: {}\r\n }})\r\n break\r\n case 'STATUS_EDITOR_DELETE': {\r\n let networkSettings = {...this.state.networkSettings}\r\n const statusIndex = getIndexByID(action.statusID, networkSettings.Statuses)\r\n if(statusIndex!==null){\r\n networkSettings.Statuses.splice(statusIndex, 1)\r\n this.setState({networkSettings: networkSettings}) \r\n }\r\n }\r\n break;\r\n\r\n case 'STATUS_EDITOR_INPUT':{\r\n const {event, statusID} = action;\r\n let networkSettings = {...this.state.networkSettings}\r\n const statusIndex = getIndexByID(statusID, networkSettings.Statuses)\r\n if(statusIndex!==null){\r\n const val = event.target.type==='checkbox' ? event.target.checked : event.target.value\r\n const status = {...networkSettings.Statuss[statusIndex], [event.target.name]: val}\r\n networkSettings.Statuses[statusIndex] = status\r\n this.setState({networkSettings: networkSettings})\r\n }\r\n }\r\n break;\r\n\r\n default:\r\n alert(action.type)\r\n }\r\n }\r\n\r\n handleProfileEditorAction(action){\r\n\r\n switch(action.type){\r\n case 'PROFILE_EDITOR_SAVE': {\r\n let profile = {...action.profile}\r\n let networkSettings = {...this.state.networkSettings}\r\n if(!profile.ProfileID){\r\n profile.ProfileID = getBase64ID()\r\n }\r\n let profileIndex = getIndexByID(profile.ProfileID, networkSettings.Profiles, \"ProfileID\")\r\n if(profileIndex===null){\r\n networkSettings.Profiles.push(profile);\r\n }else{\r\n networkSettings.Profiles[profileIndex] = profile\r\n }\r\n this.setState({networkSettings: networkSettings, profileEditor: {action:'', profileID:'', profile:{}}})\r\n }\r\n break;\r\n\r\n case 'PROFILE_EDITOR_CLOSE':\r\n this.setState({profileEditor: {action:'', profileID:'', profile:{}}})\r\n break;\r\n\r\n case 'PROFILE_EDITOR_OPEN_EDIT': {\r\n let profiles = this.state.networkSettings.Profiles.filter(item => item.ProfileID===action.profileID)\r\n let profile = profiles[0]\r\n\r\n this.setState({profileEditor: {\r\n action: 'edit', //add|edit\r\n profileID: action.profileID,\r\n profile: profile,\r\n emergencyGroups: this.getProfileEmergencyGroups(),\r\n receivers: this.getProfileReceivers()\r\n }})\r\n }\r\n break\r\n case 'PROFILE_EDITOR_OPEN_ADD': {\r\n this.setState({profileEditor: {\r\n action: 'add', //add|edit\r\n profileID: action.profileID,\r\n profile: {},\r\n emergencyGroups: this.getProfileEmergencyGroups(),\r\n receivers: this.getProfileReceivers()\r\n }})\r\n }\r\n break\r\n case 'PROFILE_EDITOR_DELETE': {\r\n let networkSettings = {...this.state.networkSettings}\r\n const profileIndex = getIndexByID(action.profileID, networkSettings.Profiles, \"ProfileID\")\r\n if(profileIndex!==null){\r\n networkSettings.Profiles.splice(profileIndex, 1)\r\n this.setState({networkSettings: networkSettings}) \r\n }\r\n }\r\n break;\r\n\r\n case 'PROFILE_EDITOR_INPUT':{\r\n const {event, profileID} = action;\r\n let networkSettings = {...this.state.networkSettings}\r\n const profileIndex = getIndexByID(profileID, networkSettings.Profiles, \"ProfileID\")\r\n if(profileIndex!==null){\r\n const val = event.target.type==='checkbox' ? event.target.checked : event.target.value\r\n const profile = {...networkSettings.Profiles[profileIndex], [event.target.name]: val}\r\n networkSettings.Profiles[profileIndex] = profile\r\n this.setState({networkSettings: networkSettings})\r\n }\r\n }\r\n break;\r\n default:\r\n alert(action.type)\r\n }\r\n }\r\n\r\n getProfileEmergencyGroups(){\r\n let emergencyGroups = this.state.networkSettings.Groups.filter(\r\n item => item.Emergency \r\n ).sort(sortByName);\r\n return emergencyGroups\r\n }\r\n\r\n getProfileReceivers(){\r\n let receivers = [\r\n ...this.state.networkSettings.NetworkDispatchers.map(item=>{\r\n return {ID: base64toGuid(item.ID), Name:item.Name, Type:10}\r\n }),\r\n ...this.state.networkSettings.Groups.map(item=>{\r\n return {ID: base64toGuid(item.ID), Name:item.Name, Type:4}\r\n }),\r\n ...this.state.networkSettings.Users.map(item=>{\r\n return {ID: base64toGuid(item.ID), Name:item.Name, Type:3}\r\n }),\r\n ]; \r\n\r\n console.log(receivers);\r\n return receivers;\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n let statusMessage = ''\r\n if(this.props.statusMessage){\r\n statusMessage = (\r\n \r\n {this.props.statusMessage}\r\n \r\n );\r\n }\r\n\r\n //current network\r\n let net = this.getNetwork(this.props.networkID)\r\n //networkSettings\r\n let network = this.state.networkSettings\r\n let users = network && network.Users ? network.Users: [];\r\n let groups = network && network.Groups ? network.Groups: [];\r\n let profiles = network && network.Profiles ? network.Profiles: [];\r\n let statuses = network && network.Statuses ? network.Statuses: [];\r\n let devices = network && network.Devices ? network.Devices: [];\r\n\r\n let list = ''\r\n switch(this.state.selectedTab){\r\n case 'users': \r\n const userAcls = this.getUserAcls(this.state.currentUserID); \r\n const userDialog = this.state.userEditor.action?(\r\n \r\n ):'';\r\n\r\n list = (\r\n \r\n \r\n \r\n {userDialog}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n break;\r\n case 'groups':\r\n const groupAcls = this.getGroupAcls(this.state.currentGroupID); \r\n const groupDialog = this.state.groupEditor.action?(\r\n \r\n ):'';\r\n\r\n list = (\r\n \r\n\r\n \r\n \r\n {groupDialog}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n break;\r\n case 'statuses':\r\n\r\n const statusDialog = this.state.statusEditor.action?(\r\n \r\n ):'';\r\n console.log(statuses)\r\n list = (\r\n <>\r\n \r\n {statusDialog}\r\n \r\n )\r\n break;\r\n case 'devices':\r\n list = (\r\n \r\n )\r\n break;\r\n case 'profiles':\r\n const profileDialog = this.state.profileEditor.action?(\r\n \r\n ):'';\r\n\r\n list = (\r\n <>\r\n \r\n {profileDialog}\r\n \r\n ) \r\n break\r\n default:\r\n alert('Tab action not defined!')\r\n }\r\n\r\n \r\n return (\r\n \r\n\r\n \r\n {network ? network.Name : ''}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {list}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {statusMessage}{/*Server Status*/}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport const NetworkEditor = withTranslation()(NetworkEditor_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport {Dialog, DialogActions, DialogContent, DialogTitle} from '@material-ui/core'\r\nimport {Container, Box} from '@material-ui/core'\r\nimport {Button, TextField } from '@material-ui/core';\r\n\r\nclass EditAccountDialog_ extends React.Component{\r\n\r\n constructor(props){\r\n super(props)\r\n\r\n const {account} = this.props; \r\n this.state = {\r\n account: {\r\n Login: account.ID ? account.Login : '',\r\n Password: account.ID ? account.Password : '',\r\n ServerAddress: account.ID ? account.ServerAddress : '',\r\n },\r\n errors:{\r\n Login: false, \r\n Password: false,\r\n ServerAddress: false,\r\n },\r\n changed: false,\r\n }\r\n }\r\n\r\n handleSave(){\r\n if(this.validate()){\r\n let account = {...this.props.account, ...this.state.account}\r\n this.props.onAction({type: 'ACCOUNT_EDITOR_SAVE', account: account})\r\n }\r\n }\r\n\r\n handleClose(){\r\n if(this.state.changed){\r\n if(!window.confirm(this.props.t('CloseFormConfirm'))) return; \r\n }\r\n this.props.onAction({type: 'ACCOUNT_EDITOR_CLOSE'})\r\n }\r\n\r\n handleInput(event){\r\n let changed = !this.state.changed ? {changed: true} : {}\r\n const val = event.target.type==='checkbox' ? event.target.checked : event.target.value\r\n const account = {...this.state.account, [event.target.name]: val}\r\n this.setState({account: account, ...changed})\r\n }\r\n\r\n validate(){\r\n const {t} = this.props\r\n\r\n let errors = this.state.errors;\r\n let error = false\r\n if(!this.state.account.Login){\r\n errors.Login = t('LoginIsEmpty')\r\n error = true\r\n }else{\r\n errors.Login = false\r\n }\r\n if(!this.state.account.ServerAddress){\r\n errors.ServerAddress = t('ServerAddressIsEmpty')\r\n error = true\r\n }else{\r\n errors.ServerAddress = false\r\n }\r\n this.setState({errors: errors})\r\n\r\n return !error;\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n const title = this.props.action==='add'?t('NewAccount'):t('EditAccount')\r\n\r\n const margin = {margin:'16px 0 8px 0'}\r\n\r\n return(\r\n\r\n \r\n {title}\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n\r\n );\r\n\r\n }\r\n}\r\n\r\nexport const EditAccountDialog = withTranslation()(EditAccountDialog_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport {Dialog, DialogActions, DialogContent, DialogTitle} from '@material-ui/core'\r\nimport {Container, Box} from '@material-ui/core'\r\nimport {Button, TextField } from '@material-ui/core';\r\n\r\nclass EditChannelDialog_ extends React.Component{\r\n\r\n constructor(props){\r\n super(props)\r\n\r\n const {channel} = this.props; \r\n console.log('EditChannelDialog constructor')\r\n console.log(channel)\r\n this.state = {\r\n channel: {\r\n ChannelNum: channel.ChannelNum,\r\n ChannelName: channel.ChannelName || '',\r\n },\r\n errors:{\r\n ChannelNum: false,\r\n ChannelName: false, \r\n },\r\n changed: false,\r\n }\r\n }\r\n\r\n handleSave(){\r\n if(this.validate()){\r\n let channel = {...this.props.channel, ...this.state.channel}\r\n channel.ChannelNum = Number(channel.ChannelNum)\r\n this.props.onAction({type: 'CHANNEL_EDITOR_SAVE', channel: channel, index: this.props.index})\r\n }\r\n }\r\n\r\n handleClose(){\r\n if(this.state.changed){\r\n if(!window.confirm(this.props.t('CloseFormConfirm'))) return; \r\n }\r\n this.props.onAction({type: 'CHANNEL_EDITOR_CLOSE'})\r\n }\r\n\r\n handleInput(event){\r\n let changed = !this.state.changed ? {changed: true} : {}\r\n const val = event.target.type==='checkbox' ? event.target.checked : event.target.value\r\n const channel = {...this.state.channel, [event.target.name]: val}\r\n this.setState({channel: channel, ...changed})\r\n }\r\n\r\n validate(){\r\n const {t} = this.props\r\n\r\n let errors = this.state.errors;\r\n let error = false\r\n\r\n if(!this.state.channel.ChannelNum){\r\n errors.ChannelNum = t('ChannelNumIsEmpty')\r\n error = true\r\n }else if(!Number(this.state.channel.ChannelNum)){\r\n errors.ChannelNum = t('IsNotNumber')\r\n error = true\r\n }else{\r\n errors.ChannelNum = false\r\n }\r\n\r\n if(!this.state.channel.ChannelName){\r\n errors.ChannelName = t('NameIsEmpty')\r\n error = true\r\n }else{\r\n errors.ChannelName = false\r\n }\r\n this.setState({errors: errors})\r\n\r\n return !error;\r\n }\r\n\r\n render(){\r\n const {t} = this.props\r\n\r\n const title = this.props.action==='add'?t('NewChannel'):t('EditChannel')\r\n\r\n const margin = {margin:'16px 0 8px 0'}\r\n\r\n return(\r\n\r\n \r\n {title}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n\r\n );\r\n\r\n }\r\n}\r\n\r\nexport const EditChannelDialog = withTranslation()(EditChannelDialog_);","import React from 'react';\r\nimport { withTranslation } from 'react-i18next/hooks';\r\n\r\nimport theme from '../../theme';\r\n\r\nimport {Dialog, DialogActions, DialogContent, DialogTitle, Typography, Slider, OutlinedInput} from '@material-ui/core'\r\nimport {Box} from '@material-ui/core'\r\nimport {Button, Checkbox, MenuItem, Select} from '@material-ui/core';\r\n\r\nimport {ExpansionPanel, ExpansionPanelSummary, ExpansionPanelDetails} from '@material-ui/core';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport {Tabs, Tab} from '@material-ui/core'\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport {Paper, IconButton, Menu, ListItemIcon, ListItemText} from '@material-ui/core';\r\nimport MoreVert from '@material-ui/icons/MoreVert';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\r\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\r\nimport { EditAccountDialog } from './EditAccountDialog';\r\nimport { EditChannelDialog } from './EditChannelDialog';\r\nimport { getBase64ID, getIndexByID, base64toGuid } from '../../api/ServerApi';\r\n\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n \r\n return (\r\n