{"version":3,"sources":["lib/data/rooms-server.js","lib/constants.js","lib/components lazy /^/.//.*/-dialog$/ groupOptions: {} namespace object","lib/private-layout.js","lib/my-calendar.js","lib/components/table-toolbar.js","lib/components/table-pagination-actions.js","lib/components/my-table.js","lib/my-rooms.js","lib/my-users.js","lib/my-devices.js","lib/my-page.js","lib/my-login.js","App.js","serviceWorker.js","index.js"],"names":["getDevices","sort","order","paginationParams","filterValue","a","axios","post","Constants","token","localStorage","getItem","mode","pageIndex","pageSize","result","data","editDevice","device","deleteDevices","devices","getAllUsers","getRoomsGroups","getRooms","getAllRooms","getUserRooms","newRoom","room","editRoom","saveEvent","event","FormData","append","startDate","getTime","endDate","title","company","idRoom","file","deleteEvent","id","addUsersRoomsRel","idUser","rooms","getUsersRoomsRel","deleteRooms","getEvents","login","user","username","password","getUsers","deleteUsers","users","editUser","console","log","newUser","APIURL","map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","keys","Object","module","exports","PrivateLayout","props","levelDescription","className","name","component","onClick","setItem","ReactDOM","render","document","getElementById","Logo","logoName","alt","src","MyCalendar","localizer","momentLocalizer","moment","useState","eventList","setEventList","dialogOpen","setDialogOpen","deleteDialogOpen","setDeleteDialogOpen","alertDialogOpen","setAlertDialogOpen","setTitle","setCompany","period","setPeriod","selectedEvent","setSelectedEvent","selectedRoom","setSelectedRoom","setRooms","setFile","saving","setSaving","fetchRooms","fetchEvents","eventsFromServer","events","forEach","push","start","Date","end","cp","undefined","useEffect","style","height","Dialog","open","aria-labelledby","aria-describedby","DialogContent","DialogActions","Button","color","autoFocus","type","width","timeout","etitle","elements","split","replace","DialogContentText","renderEventDescription","r","filter","ev","TextField","margin","label","fullWidth","value","onChange","target","InputLabel","Select","defaultValue","selected","MenuItem","key","dt","i","Box","m","accept","files","trim","last","selectable","defaultView","Views","WEEK","startAccessor","endAccessor","step","showMultiDayTimes","onSelectSlot","onSelectEvent","useToolbarStyles","makeStyles","theme","root","paddingLeft","spacing","paddingRight","highlight","palette","secondary","main","backgroundColor","lighten","light","text","primary","dark","TableToolbar","filterInput","setFilterInput","classes","filterHandler","addHandler","numSelected","deleteHandler","selectedFlatRows","tableName","Component","React","lazy","Toolbar","clsx","fallback","Typography","variant","float","placeholder","Tooltip","IconButton","aria-label","useStyles","flexShrink","marginLeft","TablePaginationActions","useTheme","count","page","rowsPerPage","onChangePage","disabled","direction","Math","ceil","max","initialDialog","IndeterminateCheckbox","forwardRef","ref","indeterminate","rest","defaultRef","useRef","resolvedRef","current","Checkbox","MyTable","columns","initialSortBy","onChangeSort","onChangePaginationParams","skipPageReset","initialPaginationParams","recordsCount","tableTitle","dialog","setDialog","useTable","autoResetPage","initialState","sortBy","manualSortBy","manualPagination","useSortBy","useRowSelect","usePagination","hooks","allColumns","Header","getToggleAllRowsSelectedProps","Cell","row","getToggleRowSelectedProps","getTableProps","headerGroups","rows","prepareRow","gotoPage","setPageSize","state","selectedRowIds","handleCloseDialog","handleCloseDeleteDialog","deleteRecord","records","onClose","length","original","TableContainer","record","_","TableHead","headerGroup","TableRow","getHeaderGroupProps","headers","column","TableCell","getHeaderProps","getSortByToggleProps","TableSortLabel","active","isSorted","isSortedDesc","TableBody","getRowProps","cells","cell","getCellProps","TableFooter","TablePagination","colSpan","SelectProps","inputProps","native","newPage","onChangeRowsPerPage","Number","ActionsComponent","rowsPerPageOptions","MyRooms","startSortBy","desc","sortByJson","defaultSortBy","JSON","parse","setSortBy","startPaginationParams","paginationParamsJson","defaultPaginationParams","setPaginationParams","setFilterValue","setSkipPageReset","roomsCount","setRoomsCount","sb","ac","AbortController","isSubscribed","all","response","customizeFields","catch","ex","error","abort","onModifyTableContent","p","capacity","group","priority","useMemo","accessor","stringify","MyUsers","setUsers","usersCount","setUsersCount","fetchUsers","enabled","toLowerCase","LevelCell","setOpen","checked","setChecked","handleClose","item","index","array","MeetingRoom","scroll","DialogTitle","dividers","List","labelId","ListItem","role","dense","button","currentIndex","indexOf","newChecked","splice","handleToggle","ListItemIcon","edge","tabIndex","disableRipple","ListItemText","addUserHandler","MyDevices","setDevices","devicesCount","setDevicesCount","fetchDevices","MyPage","menuHandler","preventDefault","setState","currentContent","level","layout","contentSectionName","this","slot","MenuList","renderSidebar","renderFooter","PureComponent","MyLogin","setUsername","setPassword","setError","handleSubmit","onSubmit","FormGroup","controlId","bssize","FormLabel","FormControl","block","layouts","private","App","Boolean","window","location","hostname","match","navigator","serviceWorker","ready","registration","unregister","message"],"mappings":"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","file":"static/js/main.2febcb02.chunk.js","sourcesContent":["import axios from 'axios';\nimport * as Constants from '../constants'\n\n\nconst getDevices = async (sort, order,paginationParams, filterValue) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"devices\",\n sort: sort,\n order: order,\n pageIndex: paginationParams.pageIndex,\n pageSize: paginationParams.pageSize,\n filterValue: filterValue\n });\n return result.data;\n}\n\nconst editDevice = async (device) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"edit_device\",\n device: device\n });\n return result.data;\n}\n\nconst deleteDevices = async (devices) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"delete_devices\",\n devices: devices\n });\n return result.data;\n}\n\nconst getAllUsers = async () => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"all_users\",\n });\n return result.data;\n}\n\nconst getRoomsGroups = async () => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"rooms_groups\",\n });\n return result.data;\n}\n\nconst getRooms = async (sort, order,paginationParams, filterValue) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"rooms\",\n sort: sort,\n order: order,\n pageIndex: paginationParams.pageIndex,\n pageSize: paginationParams.pageSize,\n filterValue: filterValue\n });\n return result.data;\n}\n\nconst getAllRooms = async () => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"all_rooms\",\n });\n return result.data;\n}\n\nconst getUserRooms = async () => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"user_rooms\",\n });\n return result.data;\n}\n\nconst newRoom = async (room) => {\n\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"save_room\",\n room: room\n });\n\n return result.data;\n}\n\nconst editRoom = async (room) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"edit_room\",\n room: room\n });\n return result.data;\n}\n\nconst saveEvent = async (event) => {\n let data = new FormData()\n data.append('token',localStorage.getItem('token'))\n data.append('mode',\"save_event\")\n data.append('startDate',event.startDate.getTime())\n data.append('endDate',event.endDate.getTime())\n data.append('title',event.title)\n data.append('company',event.company)\n data.append('idRoom',event.idRoom)\n data.append('file',event.file)\n let result = await axios.post(Constants.APIURL, data);\n return result.data;\n}\n\nconst deleteEvent = async (id) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"delete_event\",\n id: id\n });\n return result.data;\n}\n\n\nconst addUsersRoomsRel = async (idUser,rooms) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"add_users_rooms_rel\",\n idUser: idUser,\n rooms: rooms\n });\n return result.data;\n}\n\nconst getUsersRoomsRel = async (idUser) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"get_users_rooms_rel\",\n idUser: idUser\n });\n return result.data;\n}\n\nconst deleteRooms = async (rooms) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"delete_rooms\",\n rooms: rooms\n });\n return result.data;\n}\n\nconst getEvents = async () => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"all_events\",\n });\n return result.data;\n}\n\nconst login = async (user) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token') !== null ? localStorage.getItem('token') : '',\n mode: \"login\",\n username: user.username,\n password: user.password\n });\n return result.data;\n}\n\nconst getUsers = async (sort, order,paginationParams,filterValue) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"users\",\n sort: sort,\n order: order,\n pageIndex: paginationParams.pageIndex,\n pageSize: paginationParams.pageSize,\n filterValue: filterValue\n });\n return result.data\n}\nconst deleteUsers = async (users) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"delete_users\",\n users: users\n });\n return result.data;\n}\n\nconst editUser = async (user) => {\n console.log(user)\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"edit_user\",\n user: user\n });\n return result.data;\n}\n\nconst newUser = async (user) => {\n let result = await axios.post(Constants.APIURL, {\n token: localStorage.getItem('token'),\n mode: \"save_user\",\n user: user\n });\n return result.data;\n}\n\nexport default getRooms;\nexport {\n editRoom,\n deleteRooms,\n newRoom,\n getAllRooms,\n saveEvent,\n deleteEvent,\n getEvents,\n login,\n getUsers,\n deleteUsers,\n editUser,\n newUser,\n getDevices,\n editDevice,\n deleteDevices,\n getAllUsers,\n getUserRooms,\n addUsersRoomsRel,\n getUsersRoomsRel,\n getRoomsGroups\n}\n","//export const APIURL = \"http://localhost:8080/RoomsWeb_war_exploded/rooms_server\";\nexport const APIURL = \"https://rooms-services.fastmedia.it/rooms_server\";\nexport const APIKEY = \"fe1eeRit2pi3bog\";\n","var map = {\n\t\"./devices-dialog\": [\n\t\t214,\n\t\t5\n\t],\n\t\"./rooms-dialog\": [\n\t\t215,\n\t\t4\n\t],\n\t\"./users-dialog\": [\n\t\t216,\n\t\t3\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 198;\nmodule.exports = webpackAsyncContext;","import React from 'react';\n//import PropTypes from 'prop-types';\nimport { Slot } from 'react-page-layout';\n//import localStorage from 'local-storage'\nimport ReactDOM from \"react-dom\";\nimport App from \"../App\";\n\nfunction PrivateLayout(props) {\n const { title } = props;\n const username = localStorage.getItem('username')\n const level = localStorage.getItem('level')\n let levelDescription = ''\n switch (level){\n case '1':\n levelDescription = 'admin'\n break\n case '2':\n levelDescription = 'client'\n break\n case '3':\n levelDescription = 'operator'\n break\n default:\n }\n\n const logout = () => {\n localStorage.setItem('token', '')\n localStorage.setItem('level', '0')\n localStorage.setItem('username', '')\n ReactDOM.render(, document.getElementById('root'));\n }\n\n return (\n
\n \n

{title || 'Unnamed'}

({levelDescription}) {username}  logout
\n
\n
\n \n \n \n \n \n \n \n This footer is defined on the Layout\n \n
\n );\n}\n\nPrivateLayout.propTypes = {\n //title: PropTypes.string.isRequired,\n};\n\nexport default PrivateLayout;\n","import {Calendar, momentLocalizer, Views} from \"react-big-calendar\";\nimport React, {useEffect, useState} from \"react\";\nimport moment from \"moment\";\nimport '../css/mycalendar.css';\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport Button from \"@material-ui/core/Button\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport TextField from \"@material-ui/core/TextField\";\nimport {deleteEvent, getAllRooms, getEvents, saveEvent} from \"./data/rooms-server\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport Select from \"@material-ui/core/Select\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport Box from \"@material-ui/core/Box\";\nimport * as Constants from \"./constants\";\nimport Loader from \"react-loader-spinner\";\n\n\nlet MyCalendar = (props) => {\n const localizer = momentLocalizer(moment);\n const [eventList, setEventList] = useState([]);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const [alertDialogOpen, setAlertDialogOpen] = useState(false);\n const [title, setTitle] = useState(\"\");\n const [company, setCompany] = useState(\"\");\n const [period, setPeriod] = useState({});\n const [selectedEvent, setSelectedEvent] = useState({});\n const [selectedRoom, setSelectedRoom] = useState({id: 0});\n const [rooms, setRooms] = useState([]);\n const [file, setFile] = useState(\"\");\n const [saving, setSaving] = useState(false);\n\n const fetchRooms = async () => {\n setRooms(await getAllRooms());\n }\n\n const fetchEvents = async () => {\n const eventsFromServer = await getEvents()\n const events = []\n eventsFromServer.forEach(event => {\n events.push({\n start: new Date(event.startDate),\n end: new Date(event.endDate),\n title: \"Event: \" + event.title + \" | Company: \" + event.cp + \" | Room: \" + event.room +\n (event.logoName !== '' && event.logoName !== undefined ? \" | Logo: \" + event.logoName : \"\"),\n id: event.id\n })\n })\n setEventList(events)\n }\n\n useEffect(() => {\n fetchRooms()\n fetchEvents()\n }, []);\n\n const handleSelect = ({start, end}) => {\n setDialogOpen(true);\n setPeriod({start, end});\n\n }\n\n const handleCloseDialog = () => {\n setDialogOpen(false);\n setTitle(\"\");\n setCompany(\"\");\n }\n\n const handleOkDialog = () => {\n setSaving(true)\n //setDialogOpen(false);\n if (title.trim() !== \"\" && selectedRoom.id !== 0) {\n saveEvent({\n startDate: period.start,\n endDate: period.end,\n title: title,\n company: company,\n idRoom: selectedRoom.id,\n file: file\n }).then(r => {\n setSaving(false)\n setDialogOpen(false)\n if (r.last !== -1) {\n setEventList([\n ...eventList,\n {\n ...period,\n title: \"Event: \" + title + \" | Company: \" + company + \" | Room: \" + selectedRoom.name\n + (file.name !== undefined ? \" | Logo: \" + file.name : \"\"),\n id: r.last\n }\n ])\n } else {\n setAlertDialogOpen(true);\n }\n })\n\n }\n setTitle(\"\")\n setCompany(\"\")\n setSelectedRoom({id: 0})\n setFile(\"\")\n }\n\n const handleChangeTitle = ({target: {value}}) => {\n setTitle(value);\n }\n\n const handleChangeCompany = ({target: {value}}) => {\n setCompany(value);\n }\n\n const onSelectEvent = e => {\n setSelectedEvent(e);\n setSelectedRoom({id: 0});\n setDeleteDialogOpen(true);\n }\n\n const handleCloseDeleteDialog = () => {\n setDeleteDialogOpen(false);\n setSelectedRoom({id: 0});\n\n }\n\n const handleAlertDeleteDialog = () => {\n setAlertDialogOpen(false);\n }\n\n const handleDeleteDialog = () => {\n setSaving(true)\n deleteEvent(selectedEvent.id).then(r => {\n setSaving(false)\n setEventList(eventList.filter(ev => ev.title !== selectedEvent.title));\n setDeleteDialogOpen(false);\n })\n }\n\n const handleRoomsChange = ({target: {value}}) => {\n const selected = rooms.filter((r) => r.id === value)[0];\n //console.log(selected);\n setSelectedRoom(selected);\n }\n\n const handleFileChange = (event) => {\n setFile(event.target.files[0])\n }\n\n\n const renderEventDescription = etitle => {\n let event = \"\"\n let company = \"\"\n let room = \"\"\n let logoName = \"\"\n if (etitle !== undefined) {\n const elements = etitle.split(\" | \")\n event = elements[0].replace(\"Event: \", \"\")\n company = elements[1].replace(\"Company: \", \"\")\n room = elements[2].replace(\"Room: \", \"\")\n logoName = elements[3] !== undefined ? elements[3].replace(\"Logo: \", \"\") : ''\n }\n return (\n \n Event: {event}
\n Company: {company}
\n Room: {room}
\n {logoName !== '' && }\n
\n )\n }\n\n\n return (\n\n
\n\n \n \n Impossibile salvare l'evento poichè sovrapposto ad un altro nella stessa sala.\n \n \n \n \n \n \n \n {saving ? :renderEventDescription(selectedEvent.title)}\n \n {!saving && \n \n \n }\n \n \n \n {saving ? :\n
\n \n Insert new event.\n \n \n \n Rooms\n \n \n Select logo (max 500x500 pixel)...\n \n
\n }\n
\n\n {!saving && \n \n \n\n }\n \n \n\n
\n\n );\n\n}\n\nconst Logo = (props) => {\n const {logoName, company, event} = props\n return (\n \n Logo: {logoName}

\n\n \"logo\"\n\n
\n );\n}\n\nexport default MyCalendar\n","import React, {Suspense, useState} from 'react'\nimport PropTypes from 'prop-types'\nimport Toolbar from '@material-ui/core/Toolbar'\nimport Typography from '@material-ui/core/Typography'\nimport {makeStyles} from '@material-ui/core/styles'\nimport {lighten} from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport DeleteIcon from '@material-ui/icons/Delete'\n\nconst useToolbarStyles = makeStyles(theme => ({\n root: {\n //border: '1px solid black',\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n },\n highlight:\n theme.palette.type === 'light'\n ? {\n color: theme.palette.secondary.main,\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n }\n : {\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.secondary.dark,\n }\n}))\n\nconst loadComponent = name => {\n const Component = React.lazy(() =>\n import(`../components/${name}-dialog`)\n );\n return Component;\n}\n\n\nconst TableToolbar = props => {\n\n const [filterInput, setFilterInput] = useState(\"\");\n const classes = useToolbarStyles()\n const {\n filterHandler,\n addHandler,\n numSelected,\n deleteHandler,\n selectedFlatRows,\n tableName,\n title\n } = props\n\n const Component = loadComponent(tableName);\n\n const handleFilterChange = e => {\n const value = e.target.value || undefined\n setFilterInput(value)\n filterHandler(value)\n }\n\n return (\n 0,\n })}>\n {numSelected === 0 ? (\n Loading...}>\n \n ) : (null)\n }\n {numSelected > 0 ? (\n \n {numSelected} selected\n \n ) : (\n
\n
\n \n {title}\n \n
\n\n
\n \n
\n\n
\n\n )}\n {numSelected === 1 ? (\n Loading...}>\n \n \n ) : null}\n {numSelected > 0 ? (\n \n \n \n \n \n ) : null}\n
\n );\n\n\n}\n\nTableToolbar.propTypes = {\n filterHandler: PropTypes.func.isRequired,\n addHandler: PropTypes.func.isRequired,\n numSelected: PropTypes.number.isRequired,\n deleteHandler: PropTypes.func.isRequired,\n selectedFlatRows: PropTypes.array.isRequired,\n tableName: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n}\n\nexport default TableToolbar\n","import React from 'react'\n\nimport FirstPageIcon from '@material-ui/icons/FirstPage'\nimport IconButton from '@material-ui/core/IconButton'\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft'\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight'\nimport LastPageIcon from '@material-ui/icons/LastPage'\nimport { makeStyles, useTheme } from '@material-ui/core/styles'\nimport PropTypes from 'prop-types'\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexShrink: 0,\n marginLeft: theme.spacing(2.5),\n },\n}))\n\nconst TablePaginationActions = props => {\n const classes = useStyles()\n const theme = useTheme()\n const { count, page, rowsPerPage, onChangePage } = props\n\n const handleFirstPageButtonClick = event => {\n onChangePage(event, 0)\n }\n\n const handleBackButtonClick = event => {\n onChangePage(event, page - 1)\n }\n\n const handleNextButtonClick = event => {\n onChangePage(event, page + 1)\n }\n\n const handleLastPageButtonClick = event => {\n onChangePage(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1))\n }\n\n return (\n
\n \n {theme.direction === 'rtl' ? : }\n \n \n {theme.direction === 'rtl' ? (\n \n ) : (\n \n )}\n \n = Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"next page\"\n >\n {theme.direction === 'rtl' ? (\n \n ) : (\n \n )}\n \n = Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"last page\"\n >\n {theme.direction === 'rtl' ? : }\n \n
\n )\n}\n\nTablePaginationActions.propTypes = {\n count: PropTypes.number.isRequired,\n onChangePage: PropTypes.func.isRequired,\n page: PropTypes.number.isRequired,\n rowsPerPage: PropTypes.number.isRequired,\n}\n\nexport default TablePaginationActions\n","import React, {useEffect} from 'react';\n\nimport MaUTable from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\nimport TableSortLabel from '@material-ui/core/TableSortLabel'\nimport TableContainer from '@material-ui/core/TableContainer'\n\nimport PropTypes from 'prop-types';\n\nimport {useRowSelect, useSortBy, useTable, usePagination} from 'react-table';\nimport TableToolbar from \"./table-toolbar\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport Button from \"@material-ui/core/Button\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport TableFooter from \"@material-ui/core/TableFooter\";\nimport TablePagination from \"@material-ui/core/TablePagination\";\nimport TablePaginationActions from \"./table-pagination-actions\";\n\nconst initialDialog = {\n text: \"successfully saved\",\n open: false\n}\nconst IndeterminateCheckbox = React.forwardRef(\n ({indeterminate, ...rest}, ref) => {\n const defaultRef = React.useRef()\n const resolvedRef = ref || defaultRef\n\n React.useEffect(() => {\n resolvedRef.current.indeterminate = indeterminate\n }, [resolvedRef, indeterminate])\n\n return (\n <>\n \n \n )\n }\n)\n\n\nconst MyTable = ({columns, data, initialSortBy, onChangeSort, skipPageReset,onChangePaginationParams,initialPaginationParams,recordsCount,addHandler,deleteHandler,tableName,tableTitle,filter}) => {\n\n const [dialog, setDialog] = React.useState(initialDialog);\n const [deleteDialogOpen, setDeleteDialogOpen] = React.useState(false);\n //const [editDialogOpen, setEditDialogOpen] = React.useState(false);\n const {\n getTableProps,\n headerGroups,\n rows,\n prepareRow,\n selectedFlatRows,\n gotoPage,\n setPageSize,\n state: {\n sortBy,\n pageSize,\n pageIndex,\n selectedRowIds\n }\n } = useTable({\n columns,\n data,\n autoResetPage: true,\n initialState: {sortBy: initialSortBy, pageSize: initialPaginationParams.pageSize, pageIndex: initialPaginationParams.pageIndex},\n manualSortBy: true,\n manualPagination: true\n },\n useSortBy,\n useRowSelect,\n usePagination,\n hooks => {\n hooks.allColumns.push(columns => [\n // Let's make a column for selection\n {\n id: 'selection',\n // The header can use the table's getToggleAllRowsSelectedProps method\n // to render a checkbox. Pagination is a problem since this will select all\n // rows even though not all rows are on the current page. The solution should\n // be server side pagination. For one, the clients should not download all\n // rows in most cases. The client should only download data for the current page.\n // In that case, getToggleAllRowsSelectedProps works fine.\n Header: ({getToggleAllRowsSelectedProps}) => (\n
\n \n
\n ),\n // The cell can use the individual row's getToggleRowSelectedProps method\n // to the render a checkbox\n Cell: ({row}) => (\n
\n \n
\n ),\n },\n ...columns,\n ])\n });\n useEffect(() => {\n onChangeSort(sortBy);\n }, [onChangeSort, sortBy]);\n\n\n\n const deleteRecordHandler = _ => {\n setDeleteDialogOpen(true);\n }\n\n const handleCloseDialog = () => {\n setDialog({...dialog, open: false});\n }\n\n const handleCloseDeleteDialog = () => {\n setDeleteDialogOpen(false);\n }\n\n const handleOkDeleteDialog = () => {\n const records = [];\n selectedFlatRows.forEach(r => {\n records.push(r.original.id)\n })\n deleteRecord(records)\n setDeleteDialogOpen(false);\n }\n\n const handleChangePage = (event, newPage) => {\n //console.log(\"newPage -> \"+newPage+\" \"+pageIndex+\" \"+pageSize);\n onChangePaginationParams({pageSize: pageSize, pageIndex: newPage});\n gotoPage(newPage)\n\n }\n\n const deleteRecord = (records) => {\n setDialog(deleteHandler(records))\n }\n\n const addRecord = (record, mode) => {\n return addHandler(record, mode)\n //setDialog(addHandler(record, mode))\n }\n\n const filterHandler = (value) => {\n filter(value)\n }\n\n const handleChangeRowsPerPage = event => {\n setPageSize(Number(event.target.value));\n onChangePaginationParams({pageSize: Number(event.target.value), pageIndex: 0});\n gotoPage(0);\n }\n\n return (\n
\n \n \n \n Delete the {selectedFlatRows.length} selected records?\n \n \n \n \n \n \n \n \n \n \n {dialog.text}\n \n \n \n \n \n \n \n \n \n \n {headerGroups.map(headerGroup => (\n \n {headerGroup.headers.map(column => (\n \n {column.render('Header')}\n {column.id !== 'selection' ? (\n \n ) : null}\n \n ))}\n \n ))}\n \n \n {rows.map((row, i) => {\n prepareRow(row)\n return (\n \n {row.cells.map(cell => {\n return (\n \n {\n typeof cell.value !== \"boolean\"? cell.render('Cell'): cell.value ? \"Y\":\"N\"\n }\n \n )\n })}\n \n )\n })}\n \n \n \n \n \n \n \n \n
\n )\n\n}\n\nMyTable.propTypes = {\n columns: PropTypes.array.isRequired,\n data: PropTypes.array.isRequired,\n initialSortBy: PropTypes.array.isRequired,\n onChangeSort: PropTypes.func.isRequired,\n onModifyTableContent: PropTypes.func.isRequired,\n skipPageReset: PropTypes.bool.isRequired,\n onChangePaginationParams: PropTypes.func.isRequired,\n initialPaginationParams: PropTypes.object.isRequired,\n addHandler: PropTypes.func.isRequired,\n deleteHandler: PropTypes.func.isRequired,\n recordsCount: PropTypes.number.isRequired,\n tableName: PropTypes.string.isRequired,\n tableTitle: PropTypes.string.isRequired,\n filter: PropTypes.func.isRequired,\n}\n\nexport default MyTable\n","import React, {useEffect, useState} from \"react\"\nimport getRooms, {deleteRooms, editRoom, newRoom} from \"./data/rooms-server\"\nimport MyTable from \"./components/my-table\"\n\n\nconst MyRooms = (props) => {\n const startSortBy = [{id: \"id\", desc: false}]\n const sortByJson = localStorage.getItem(\"sortByRooms\")\n const defaultSortBy = sortByJson !== null ? JSON.parse(sortByJson) : startSortBy\n const [sortBy, setSortBy] = useState(defaultSortBy)\n\n const startPaginationParams = {pageSize: 5, pageIndex: 0}\n const paginationParamsJson = localStorage.getItem(\"paginationParamsRooms\")\n const defaultPaginationParams = paginationParamsJson !== null ? JSON.parse(paginationParamsJson) : startPaginationParams\n const [paginationParams, setPaginationParams] = useState(defaultPaginationParams)\n const [filterValue,setFilterValue] = useState('')\n const [skipPageReset, setSkipPageReset] = React.useState(false)\n const [rooms, setRooms] = useState([])\n const [roomsCount, setRoomsCount] = useState(0)\n const initialDialogText = \"successfully saved\"\n\n const fetchRooms = (sortBy, paginationParams, filterValue) => {\n setSkipPageReset(true)\n let sb = sortBy\n if (sb[0] === undefined) {\n if (defaultSortBy[0] !== undefined) {\n sb = defaultSortBy\n } else {\n sb = startSortBy\n }\n }\n if (paginationParams === undefined) {\n if (defaultPaginationParams !== undefined) {\n paginationParams = defaultPaginationParams\n } else {\n paginationParams = startPaginationParams\n }\n }\n return getRooms(sb[0].id, sb[0].desc ? \"desc\" : \"asc\", paginationParams, filterValue)\n }\n\n useEffect(() => {\n const ac = new AbortController()\n let isSubscribed = true\n Promise.all([\n fetchRooms(sortBy, paginationParams, filterValue)\n ]).then((response) => {\n if (isSubscribed) {\n setRoomsCount(response[0].count)\n setRooms(customizeFields(response[0].data))\n }\n }).catch(ex => console.error(ex))\n return () => {\n ac.abort()\n isSubscribed = false\n }\n }, [paginationParams, sortBy,filterValue])// eslint-disable-line react-hooks/exhaustive-deps\n\n const onChangeSort = (sortBy) => {\n setSortBy(sortBy)\n const sortByJson = JSON.stringify(sortBy)\n localStorage.setItem(\"sortByRooms\", sortByJson)\n }\n\n const onChangePaginationParams = (paginationParams) => {\n setPaginationParams(paginationParams)\n const paginationParamsJson = JSON.stringify(paginationParams)\n localStorage.setItem(\"paginationParamsRooms\", paginationParamsJson)\n }\n\n const onModifyTableContent = () => {\n Promise.all([\n fetchRooms(sortBy, paginationParams, filterValue)\n ]).then((response) => {\n setRoomsCount(response[0].count)\n setRooms(customizeFields(response[0].data))\n }).catch(ex => console.error(ex))\n }\n\n const addRoomHandler = (room, mode) => {\n let result = {}\n if(room.capacity === ''){\n room.capacity = 0\n }\n if(room.priority === ''){\n room.priority = 0\n }\n if (mode === \"add\") {\n newRoom(room).then(r => {\n if (r[0] !== null && r[0].result === \"ok\") {\n onModifyTableContent()\n result = {text: initialDialogText, open: true}\n } else {\n result = {text: \"save failed, please try again later\", open: true}\n }\n })\n } else {\n editRoom(room).then(r => {\n if (r[0] !== null && r[0].result === \"ok\") {\n onModifyTableContent()\n result = {text: initialDialogText, open: true}\n } else {\n result = {text: \"save failed, please try again later\", open: true}\n }\n })\n }\n return result\n }\n\n const deleteRoomHandler = (rooms) => {\n let result = {}\n deleteRooms(rooms).then(r => {\n if (r[0] !== null && r[0].result === \"ok\") {\n onModifyTableContent()\n result = {text: initialDialogText, open: true}\n //setDialog({text: initialDialogText, open: true})\n } else {\n result = {text: \"save failed, please try again later\", open: true}\n //setDialog({text: \"save failed, please try again later\", open: true})\n }\n })\n return result\n }\n\n const filter = (value) => {\n if (value !== undefined && value.length > 1){\n setFilterValue(value)\n }else{\n setFilterValue('')\n }\n\n }\n\n const customizeFields = (data) => {\n return data.map(p => {\n if (p.capacity === 0) {\n p = {...p, capacity: ''}\n }\n if (p.group !== '') {\n p = {...p, group: p.group+' (priority '+p.priority+')'}\n }\n return p\n }\n )\n }\n\n const columns = React.useMemo(() => [\n {\n Header: \"id\",\n accessor: \"id\"\n },\n {\n Header: \"Name\",\n accessor: \"name\"\n },\n {\n Header: \"Description\",\n accessor: \"description\"\n },\n {\n Header: \"Price\",\n accessor: \"price\"\n },\n\n {\n Header: \"Capacity\",\n accessor: \"capacity\"\n },\n {\n Header: \"Group\",\n accessor: \"group\"\n },\n {\n Header: \"Device\",\n accessor: \"idDevice\"\n },\n {\n Header: \"Calendar\",\n accessor: \"calendar\"\n }\n ], [])\n return (\n
\n \n
\n )\n}\n\nexport default MyRooms\n","import React, {useEffect, useState} from \"react\"\nimport {\n getUsers,\n deleteUsers,\n editUser,\n newUser,\n getUserRooms,\n addUsersRoomsRel,\n getUsersRoomsRel\n} from \"./data/rooms-server\"\nimport MyTable from \"./components/my-table\"\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport {MeetingRoom} from \"@material-ui/icons\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport Button from \"@material-ui/core/Button\";\nimport List from \"@material-ui/core/List\";\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\n\nconst MyUsers = (props) => {\n const startSortBy = [{id: \"id\", desc: false}]\n const sortByJson = localStorage.getItem(\"sortByUsers\")\n const defaultSortBy = sortByJson !== null ? JSON.parse(sortByJson) : startSortBy\n const [sortBy, setSortBy] = useState(defaultSortBy)\n\n const startPaginationParams = {pageSize: 5, pageIndex: 0}\n const paginationParamsJson = localStorage.getItem(\"paginationParamsUsers\")\n const defaultPaginationParams = paginationParamsJson !== null ? JSON.parse(paginationParamsJson) : startPaginationParams\n const [paginationParams, setPaginationParams] = useState(defaultPaginationParams)\n const [filterValue, setFilterValue] = useState('')\n const [skipPageReset, setSkipPageReset] = React.useState(false)\n const [users, setUsers] = useState([])\n const [usersCount, setUsersCount] = useState(0)\n const initialDialogText = \"successfully saved\"\n\n const fetchUsers = (sortBy, paginationParams, filterValue) => {\n setSkipPageReset(true)\n let sb = sortBy\n if (sb[0] === undefined) {\n if (defaultSortBy[0] !== undefined) {\n sb = defaultSortBy\n } else {\n sb = startSortBy\n }\n }\n if (paginationParams === undefined) {\n if (defaultPaginationParams !== undefined) {\n paginationParams = defaultPaginationParams\n } else {\n paginationParams = startPaginationParams\n }\n }\n return getUsers(sb[0].id, sb[0].desc ? \"desc\" : \"asc\", paginationParams, filterValue)\n }\n\n useEffect(() => {\n const ac = new AbortController()\n let isSubscribed = true\n Promise.all([\n fetchUsers(sortBy, paginationParams, filterValue)\n ]).then((response) => {\n if (isSubscribed) {\n setUsersCount(response[0].count)\n setUsers(customizeFields(response[0].data))\n }\n }).catch(ex => console.error(ex))\n return () => {\n ac.abort()\n isSubscribed = false\n }\n }, [paginationParams, sortBy, filterValue])// eslint-disable-line react-hooks/exhaustive-deps\n\n const customizeFields = (data) => {\n return data.map(p => {\n if (p.enabled) {\n p = {...p, enabled: true}\n } else {\n p = {...p, enabled: false}\n }\n if (p.levelDescription.toLowerCase() === 'operator') {\n p = {...p, levelDescription: }\n }\n return p\n }\n )\n }\n\n const LevelCell = (props) => {\n const {row} = props\n const [open, setOpen] = React.useState(false)\n const [rooms, setRooms] = React.useState([])\n //const [scroll, setScroll] = React.useState('paper')\n const [checked, setChecked] = React.useState([])\n const scroll = 'paper'\n const handleClose = () => {\n setOpen(false)\n };\n React.useEffect(() => {\n const ac = new AbortController()\n let isSubscribed = true\n Promise.all([\n getUserRooms()\n ]).then(response => {\n if (isSubscribed) {\n setRooms(response[0])\n\n }\n }).catch(ex => console.error(ex))\n return () => {\n ac.abort()\n isSubscribed = false\n }\n }, [])// eslint-disable-line react-hooks/exhaustive-deps\n const handleClickOpen = (id) => {\n getUsersRoomsRel(id).then(response => {\n let rooms = []\n response.forEach((item, index, array) => {\n rooms.push(item.idRoom)\n })\n setChecked(rooms)\n setOpen(true)\n })\n\n }\n\n const handleSave = (id) => {\n console.log(id);\n console.log(checked);\n addUsersRoomsRel(id, checked).then(\n r => {\n setOpen(false)\n setChecked([])\n }\n )\n }\n\n const handleToggle = (idRoom) => {\n const currentIndex = checked.indexOf(idRoom)\n const newChecked = [...checked]\n if (currentIndex === -1) {\n newChecked.push(idRoom)\n } else {\n newChecked.splice(currentIndex, 1)\n }\n setChecked(newChecked);\n }\n return (\n
\n {row.levelDescription}\n \n handleClickOpen(row.id)}>\n {}\n \n \n \n Assign rooms\n \n\n \n {\n rooms.map((room) => {\n const labelId = `checkbox-list-label-${room.id}`;\n return (\n handleToggle(room.id)}>\n \n \n \n \n \n )\n })\n }\n \n \n \n \n \n \n \n
\n\n )\n }\n\n\n const onChangeSort = (sortBy) => {\n setSortBy(sortBy)\n const sortByJson = JSON.stringify(sortBy)\n localStorage.setItem(\"sortByUsers\", sortByJson)\n }\n\n const onChangePaginationParams = (paginationParams) => {\n setPaginationParams(paginationParams)\n const paginationParamsJson = JSON.stringify(paginationParams)\n localStorage.setItem(\"paginationParamsUsers\", paginationParamsJson)\n }\n\n const filter = (value) => {\n if (value !== undefined && value.length > 2) {\n setFilterValue(value)\n } else {\n setFilterValue('')\n }\n\n }\n const onModifyTableContent = () => {\n Promise.all([\n fetchUsers(sortBy, paginationParams, filterValue)\n ]).then((response) => {\n setUsersCount(response[0].count)\n setUsers(customizeFields(response[0].data))\n }).catch(ex => console.error(ex))\n }\n\n const addUserHandler = async (user, mode) => {\n let result = {}\n if (mode === \"add\") {\n await newUser(user).then(r => {\n if (r[0] !== null && r[0].result === \"ok\") {\n onModifyTableContent()\n result = {text: initialDialogText, open: false}\n } else if (r[0] !== null && r[0].result === \"np\") {\n result = {text: \"save failed, please chose a new password\", open: true}\n } else {\n result = {text: \"save failed, please try again later\", open: true}\n }\n })\n } else {\n await editUser(user).then(r => {\n if (r[0] !== null && r[0].result === \"ok\") {\n onModifyTableContent()\n result = {text: initialDialogText, open: false}\n } else if (r[0] !== null && r[0].result === \"np\") {\n result = {text: \"save failed, please chose a new password\", open: true}\n } else {\n result = {text: \"save failed, please try again later\", open: true}\n }\n })\n }\n console.log(result)\n return result\n }\n\n const deleteUsersHandler = (users) => {\n let result = {}\n deleteUsers(users).then(r => {\n if (r[0] !== null && r[0].result === \"ok\") {\n onModifyTableContent()\n result = {text: initialDialogText, open: true}\n //setDialog({text: initialDialogText, open: true})\n } else {\n result = {text: \"save failed, please try again later\", open: true}\n //setDialog({text: \"save failed, please try again later\", open: true})\n }\n })\n return result\n }\n\n\n const columns = React.useMemo(() => [\n {\n Header: \"id\",\n accessor: \"id\"\n },\n {\n Header: \"Username\",\n accessor: \"username\"\n },\n {\n Header: \"Password\",\n accessor: \"password\"\n },\n {\n Header: \"Descrizione\",\n accessor: \"description\"\n },\n {\n Header: \"Livello\",\n accessor: \"levelDescription\"\n },\n {\n Header: \"Attivo\",\n accessor: \"enabled\",\n },\n {\n Header: \"Creazione\",\n accessor: \"creationDate\"\n }\n ], [])\n return (\n
\n \n
\n )\n}\nexport default MyUsers\n","import React, {useEffect, useState} from \"react\";\nimport {getDevices, editDevice,deleteDevices} from \"./data/rooms-server\"\nimport MyTable from \"./components/my-table\"\n\nconst MyDevices = (props) => {\n const startSortBy = [{id: \"id\", desc: false}]\n const sortByJson = localStorage.getItem(\"sortByDevices\")\n const defaultSortBy = sortByJson !== null ? JSON.parse(sortByJson) : startSortBy\n const [sortBy, setSortBy] = useState(defaultSortBy)\n\n const startPaginationParams = {pageSize: 5, pageIndex: 0}\n const paginationParamsJson = localStorage.getItem(\"paginationParamsDevices\")\n const defaultPaginationParams = paginationParamsJson !== null ? JSON.parse(paginationParamsJson) : startPaginationParams\n const [paginationParams, setPaginationParams] = useState(defaultPaginationParams)\n const [filterValue,setFilterValue] = useState('')\n const [skipPageReset, setSkipPageReset] = React.useState(false)\n const [devices, setDevices] = useState([])\n const [devicesCount, setDevicesCount] = useState(0)\n const initialDialogText = \"successfully saved\"\n\n const fetchDevices = (sortBy, paginationParams, filterValue) => {\n setSkipPageReset(true)\n let sb = sortBy\n if (sb[0] === undefined) {\n if (defaultSortBy[0] !== undefined) {\n sb = defaultSortBy\n } else {\n sb = startSortBy\n }\n }\n if (paginationParams === undefined) {\n if (defaultPaginationParams !== undefined) {\n paginationParams = defaultPaginationParams\n } else {\n paginationParams = startPaginationParams\n }\n }\n return getDevices(sb[0].id, sb[0].desc ? \"desc\" : \"asc\", paginationParams, filterValue)\n }\n\n useEffect(() => {\n const ac = new AbortController()\n let isSubscribed = true\n Promise.all([\n fetchDevices(sortBy, paginationParams,filterValue)\n ]).then((response) => {\n if (isSubscribed) {\n setDevicesCount(response[0].count)\n setDevices(customizeFields(response[0].data))\n }\n }).catch(ex => console.error(ex))\n return () => {\n ac.abort()\n isSubscribed = false\n }\n }, [paginationParams, sortBy,filterValue])// eslint-disable-line react-hooks/exhaustive-deps\n\n const customizeFields = (data) => {\n return data.map(p =>\n {\n if(p.enabled){\n return { ...p,enabled: true }\n }else{\n return { ...p,enabled: false }\n }\n }\n )\n }\n\n const onChangeSort = (sortBy) => {\n setSortBy(sortBy)\n const sortByJson = JSON.stringify(sortBy)\n localStorage.setItem(\"sortByDevices\", sortByJson)\n }\n\n const onChangePaginationParams = (paginationParams) => {\n setPaginationParams(paginationParams)\n const paginationParamsJson = JSON.stringify(paginationParams)\n localStorage.setItem(\"paginationParamsDevices\", paginationParamsJson)\n }\n\n const filter = (value) => {\n if (value !== undefined && value.length > 2){\n setFilterValue(value)\n }else{\n setFilterValue('')\n }\n\n }\n const onModifyTableContent = () => {\n Promise.all([\n fetchDevices(sortBy, paginationParams,filterValue)\n ]).then((response) => {\n setDevicesCount(response[0].count)\n setDevices(customizeFields(response[0].data))\n }).catch(ex => console.error(ex))\n }\n\n const addDeviceHandler = (device, mode) => {\n let result = {}\n if (mode === \"add\") {\n /*newUser(user).then(r => {\n if (r[0] !== null && r[0].result === \"ok\") {\n onModifyTableContent()\n result = {text: initialDialogText, open: true}\n } else {\n result = {text: \"save failed, please try again later\", open: true}\n }\n })*/\n } else {\n editDevice(device).then(r => {\n if (r[0] !== null && r[0].result === \"ok\") {\n onModifyTableContent()\n result = {text: initialDialogText, open: true}\n } else {\n result = {text: \"save failed, please try again later\", open: true}\n }\n })\n }\n return result\n }\n\n const deleteDevicesHandler = (devices) => {\n let result = {}\n deleteDevices(devices).then(r => {\n if (r[0] !== null && r[0].result === \"ok\") {\n onModifyTableContent()\n result = {text: initialDialogText, open: true}\n } else {\n result = {text: \"save failed, please try again later\", open: true}\n }\n })\n return result\n }\n\n\n const columns = React.useMemo(() => [\n {\n Header: \"id\",\n accessor: \"id\"\n },\n {\n Header: \"Descrizione\",\n accessor: \"description\"\n },\n {\n Header: \"Utente\",\n accessor: \"userDescription\"\n }\n ], [])\n return (\n
\n \n
\n )\n}\n\nexport default MyDevices\n","import React, { PureComponent } from 'react'\nimport { Page, Section } from 'react-page-layout'\nimport MyCalendar from \"./my-calendar\"\nimport MyRooms from \"./my-rooms\"\nimport MyUsers from \"./my-users\"\nimport MyDevices from \"./my-devices\";\nimport MenuList from \"@material-ui/core/MenuList\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\n\nclass MyPage extends PureComponent {\n\n\n\n constructor(props) {\n super(props);\n const level = localStorage.getItem('level')\n this.state = {\n layout: 'private',\n title: 'ROOMS - Calendario prenotazioni',\n contentSectionName: 'content',\n currentContent: level === '1' ? 'users' : 'calendar',\n };\n }\n\n\n\n menuHandler = (e,page) =>{\n e.preventDefault()\n this.setState({currentContent: page})\n }\n\n renderSidebar() {\n const currentContent = this.state.currentContent\n const level = localStorage.getItem('level')\n console.log(level)\n return (\n
\n \n {level === '2' || level === '3' ?\n this.menuHandler(e, 'calendar')}>\n Calendar\n \n :
\n }\n {level === '2' ?\n this.menuHandler(e, 'rooms')}>\n Rooms\n \n :
\n }\n {level === '1' || level === '2' ?\n this.menuHandler(e, 'users')}>\n Users\n \n :
\n }\n {level === '1' ?\n this.menuHandler(e, 'devices')}>\n Devices\n \n :
\n }\n
\n
\n )\n }\n\n renderFooter() {\n return (\n
\n Footer content\n
\n )\n }\n\n render() {\n const { layout, title, contentSectionName, currentContent} = this.state\n\n return (\n \n {this.renderSidebar()}\n
\n {currentContent === 'calendar' && }\n {currentContent === 'rooms' && }\n {currentContent === 'users' && }\n {currentContent === 'devices' && }\n
\n {this.renderFooter()}\n
\n )\n }\n}\n\nexport default MyPage\n","import React, {useState} from \"react\";\nimport '../css/login.css';\nimport { Button, FormGroup, FormControl, FormLabel } from \"react-bootstrap\";\nimport {login} from \"./data/rooms-server\";\n//import localStorage from 'local-storage'\nimport ReactDOM from \"react-dom\";\nimport App from \"../App\";\n\n\nconst MyLogin = (props) => {\n\n const [username, setUsername] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [error, setError] = useState(\"\");\n\n function validateForm() {\n return username.length > 0 && password.length > 0;\n }\n\n const handleSubmit = async (event) => {\n event.preventDefault();\n const {result,level} = await login({username: username,password: password})\n if (result == null || result === 'ko'){\n setError('Wrong username or password')\n }else{\n setError('')\n localStorage.setItem('token', result)\n localStorage.setItem('level', level)\n localStorage.setItem('username', username)\n ReactDOM.render(, document.getElementById('root'));\n }\n }\n\n return (\n
\n\n
\n

ROOMS

\n \n Username\n setUsername(e.target.value)}\n />\n \n \n Password\n setPassword(e.target.value)}\n type=\"password\"\n />\n \n {error !== '' &&
{error}
}\n \n
\n
\n );\n\n}\n\nexport default MyLogin\n","import React from 'react';\nimport PrivateLayout from \"./lib/private-layout\";\nimport MyPage from \"./lib/my-page\";\nimport {LayoutProvider} from 'react-page-layout';\nimport MyLogin from \"./lib/my-login\";\n\nconst layouts = {\n private: PrivateLayout,\n};\n\n\nlet App = (props) => {\n const {mode} = props;\n\n if (mode === \"login\") {\n return (\n
\n \n
\n );\n } else {\n return (\n
\n \n \n \n
\n );\n }\n\n /**/\n\n\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n//import localStorage from 'local-storage'\n\n\nlet mode = \"login\";\n\n//Verifico se localmente esiste un token\nlet token = localStorage.getItem('token')\nif (token !== null && token.length > 0){\n mode = \"main\"\n}\nReactDOM.render(, document.getElementById('root'))\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}