{"version":3,"sources":["components/NavMenu.js","components/Layout.js","components/LayoutNoMenu.js","components/Home.js","components/Login.js","components/Logout.js","components/Users.js","components/ProjectRecordsModal.js","components/Projects.js","components/Vehicles.js","components/Rooms.js","components/Calendar.js","components/NotFound.js","App.js","registerServiceWorker.js","index.js"],"names":["NavMenu","props","toggleNavbar","bind","state","collapsed","roles","token","localStorage","getItem","decodedToken","decode","this","setState","Array","isArray","role","Navbar","className","light","Container","NavbarBrand","tag","Link","to","src","process","alt","height","NavbarToggler","onClick","Collapse","isOpen","navbar","NavItem","NavLink","find","r","Component","displayName","name","Layout","fluid","children","LayoutNoMenu","Home","openProjectChartModal","project","userRoles","includes","user","currentManager","userName","selectedProject","toggleProjectChartModal","toogleFilter","showFilter","toogleExpandPlans","showExpandedPlans","toogleExpandRecords","showExpandedRecords","toggleErrorModal","showErrorModal","showProjectChartModal","handleSubmitFilter","e","preventDefault","loading","typeValue","undefined","target","type","value","productValue","product","populateProjects","code","manager","status","area","renderProjects","projects","i","passes","Math","ceil","length","contents","push","Row","key","slice","map","Col","id","sm","xs","style","background","semaphore","Input","readOnly","plaintext","Date","lastUpdate","toLocaleDateString","Table","responsive","parseFloat","currentExecutionRatio","toFixed","currentUsedHoursRatio","currentUsedCostRatio","currentUsedDaysRatio","managers","areas","types","products","populateManagers","populateStatus","populateAreas","populateTypes","populateProducts","unique_name","icon","size","color","spin","Button","block","Form","onSubmit","md","FormGroup","Label","for","placeholder","selected","text","disabled","Modal","toggle","ModalHeader","ModalBody","Alert","ModalFooter","lg","form","numPlans","records","ResponsiveContainer","width","ScatterChart","CartesianGrid","strokeDasharray","XAxis","tick","fontSize","angle","textAnchor","dataKey","scale","domain","recordDate","getTime","tickFormatter","t","YAxis","unit","ZAxis","range","Tooltip","content","data","active","payload","Legend","layout","verticalAlign","align","iconSize","Scatter","record","x","y","executionRatio","fill","line","usedHoursRatio","usedCostRatio","usedDaysRatio","executionHoursRatio","executionCostRatio","executionDaysRatio","executionPredictedRatio","bordered","striped","plans","plan","planDate","plannedHours","plannedCost","startDate","endDate","days","referenceExecutionRatio","referenceExecutionRatioReason","usedHours","usedCost","url","fetch","headers","response","ok","json","Login","handleSubmit","attemptLogin","username","password","errorMessage","offset","required","method","body","JSON","stringify","success","setItem","window","location","href","replace","clear","message","Logout","Users","openNewUserModal","populateRoles","toggleNewUserModal","openSetPasswordModal","selectedUser","setPasswordResponse","toggleSetPasswordModal","openUpdateRolesModal","selectedUserRoles","toggleUpdateRolesModal","openConfirmDeleteModal","toggleConfirmDeleteModal","showNewUserModal","showSetPasswordModal","showUpdateRolesModal","showConfirmDeleteModal","handleSubmitNewUser","createUser","email","handleSubmitSetPassword","setUserPassword","users","loadingSetPassword","populateUsers","aria-labelledby","Object","keys","k","description","join","lastLogin","toLocaleString","title","check","checked","onChange","removeUserFromRole","addUserToRole","deleteUser","ProjectRecordsModal","toISOString","split","onInputchange","prevProps","autoRecord","totalRecordAddInput","event","showProjectRecordsModal","toggleProjectRecordsModal","handleSubmitProjectRecord","getProjectRecordAutomatic","parseInt","showAutoRecordInfo","projectRecordAddInput","acpRecordAddInput","InputGroup","InputGroupAddon","addonType","InputGroupText","console","log","Projects","openNewProjectModal","toggleNewProjectModal","openProjectInfoModal","toggleProjectInfoModal","openProjectRecordsModal","openAddProjectPlanForm","toggleAddProjectPlanForm","showNewProjectModal","showProjectInfoModal","showAddProjectPlanForm","toggleAutoRecordModal","handleSubmitNewProject","createProject","handleSubmitProjectPlan","addProjectPlanByAdmin","projectId","addProjectPlan","addProjectRecord","filter","initialDate","defaultValue","min","step","latestRecord","deleteProject","d","p","Vehicles","vehicle","selectedVehicle","toggleNewVehicleModal","showNewVehicleModal","handleSubmitNewVehicle","createVehicle","licensePlate","vehicles","populateVehicles","deleteVehicle","vehicleId","Rooms","room","selectedRoom","toggleNewRoomModal","showNewRoomModal","handleSubmitNewRoom","createRoom","rooms","populateRooms","deleteRoom","roomId","Calendar","openNewReservationModal","selectedStartTime","start","selectedEndTime","end","populateReservables","toggleNewReservationModal","openReservationInfoModal","selectedEvent","toggleReservationInfoModal","showNewReservationModal","showReservationInfoModal","handleSubmitNewReservation","createReservation","reservable","reason","reservations","reservables","populateReservations","allDaySlot","eventClick","info","events","headerToolbar","center","initialView","locale","pt","nowIndicator","plugins","dayGridPlugin","timeGridPlugin","listPLugin","interactionPlugin","select","selectable","selectConstraint","slotEventOverlap","views","timeGrid","dayHeaderFormat","weekday","day","month","omitCommas","ref","year","hour","minute","extendedProps","reservee","deleteReservation","startTime","endTime","reservationId","NotFound","library","add","fas","App","tokenIsValid","exp","nbf","unlisten","history","listen","exact","path","component","withRouter","isLocalhost","Boolean","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","controller","catch","error","baseUrl","document","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename","URL","origin","addEventListener","get","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.ca607122.chunk.js","sourcesContent":["import React, { Component } from 'react';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport { decode } from 'jsonwebtoken';\r\nimport './NavMenu.css';\r\n\r\nexport class NavMenu extends Component {\r\n static displayName = NavMenu.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.toggleNavbar = this.toggleNavbar.bind(this);\r\n this.state = {\r\n collapsed: true,\r\n roles: []\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let token = localStorage.getItem('opt.projects.token');\r\n if (token) {\r\n let decodedToken = decode(token);\r\n this.setState({ roles: Array.isArray(decodedToken.role) ? decodedToken.role : [decodedToken.role] });\r\n }\r\n }\r\n\r\n toggleNavbar() {\r\n this.setState({\r\n collapsed: !this.state.collapsed\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \"Logo\r\n \r\n \r\n
    \r\n \r\n Início\r\n \r\n \r\n Calendário\r\n \r\n {\r\n this.state.roles.find(r => r !== 'Worker')\r\n ? \r\n Projetos\r\n \r\n : null\r\n } \r\n {\r\n this.state.roles.find(r => r === 'SuperAdmin')\r\n ? \r\n Utilizadores\r\n \r\n : null\r\n }\r\n {\r\n this.state.roles.find(r => r === 'SuperAdmin' || r === 'Admin')\r\n ? \r\n Veículos\r\n \r\n : null\r\n }\r\n {\r\n this.state.roles.find(r => r === 'SuperAdmin' || r === 'Admin')\r\n ? \r\n Salas\r\n \r\n : null\r\n }\r\n {/*\r\n Counter\r\n \r\n \r\n Fetch data\r\n */}\r\n \r\n Sair\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { NavMenu } from './NavMenu';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n\r\n render () {\r\n return (\r\n
\r\n \r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\n\r\nexport class LayoutNoMenu extends Component {\r\n static displayName = LayoutNoMenu.name;\r\n\r\n render () {\r\n return (\r\n
\r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container, Row, Col, FormGroup, Label, Input, Table, Modal, ModalHeader, ModalBody, Alert, ModalFooter, Button, Form } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { decode } from 'jsonwebtoken';\r\nimport {\r\n ScatterChart,\r\n Scatter,\r\n XAxis,\r\n YAxis,\r\n ZAxis,\r\n CartesianGrid,\r\n Tooltip,\r\n Legend,\r\n ResponsiveContainer,\r\n} from 'recharts';\r\n\r\nexport class Home extends Component {\r\n static displayName = Home.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n userRoles: [], user: undefined,\r\n projects: [], managers: [], status: [], areas: [], types: [], products: [],\r\n showErrorModal: false, showProjectChartModal: false, showExpandedPlans: false,\r\n showExpandedRecords: false, loading: true, selectedProject: {}, showFilter: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateProjects('', '', '', 'Active', '', '', '');\r\n this.populateManagers();\r\n this.populateStatus();\r\n this.populateAreas();\r\n this.populateTypes();\r\n this.populateProducts();\r\n\r\n let token = localStorage.getItem('opt.projects.token');\r\n if (token) {\r\n let decodedToken = decode(token);\r\n this.setState({\r\n userRoles: Array.isArray(decodedToken.role) ? decodedToken.role : [decodedToken.role],\r\n user: decodedToken.unique_name\r\n });\r\n }\r\n }\r\n\r\n openProjectChartModal = (project) => {\r\n if (!this.state.userRoles.includes('SuperAdmin') && !this.state.userRoles.includes('Admin') && !(this.state.userRoles.includes('Manager') && this.state.user === project.currentManager.userName)) {\r\n return;\r\n }\r\n\r\n this.setState({ selectedProject: project });\r\n this.toggleProjectChartModal();\r\n }\r\n\r\n toogleFilter = () => {\r\n this.setState({ showFilter: !this.state.showFilter });\r\n }\r\n\r\n toogleExpandPlans = () => {\r\n this.setState({ showExpandedPlans: !this.state.showExpandedPlans });\r\n }\r\n\r\n toogleExpandRecords = () => {\r\n this.setState({ showExpandedRecords: !this.state.showExpandedRecords });\r\n }\r\n\r\n toggleErrorModal = () => {\r\n const { showErrorModal } = this.state;\r\n\r\n this.setState({ showErrorModal: !showErrorModal })\r\n }\r\n\r\n toggleProjectChartModal = () => {\r\n const { showProjectChartModal } = this.state;\r\n\r\n this.setState({ showProjectChartModal: !showProjectChartModal })\r\n }\r\n\r\n handleSubmitFilter = (e) => {\r\n e.preventDefault();\r\n\r\n this.setState({ loading: true });\r\n\r\n const typeValue = undefined === e.target.type ? '' : e.target.type.value;\r\n const productValue = undefined === e.target.product ? '' : e.target.product.value;\r\n this.populateProjects(e.target.code.value, e.target.name.value, e.target.manager.value, e.target.status.value, e.target.area.value, typeValue, productValue);\r\n }\r\n\r\n renderProjects = (projects) => {\r\n let i, chunk = 4;\r\n let passes = Math.ceil(projects.length / chunk);\r\n let contents = [];\r\n\r\n for (i = 0; i < passes; i++) {\r\n contents.push(\r\n {projects.slice(i * chunk, (i * chunk) + chunk).map(project => {\r\n return \r\n
this.openProjectChartModal(project)}>\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
% Execução% Horas% Custo% Dias
{`${(parseFloat(project.currentExecutionRatio) * 100).toFixed()}%`}{`${(parseFloat(project.currentUsedHoursRatio) * 100).toFixed()}%`}{`${(parseFloat(project.currentUsedCostRatio) * 100).toFixed()}%`}{`${(parseFloat(project.currentUsedDaysRatio) * 100).toFixed()}%`}
\r\n \r\n
\r\n
\r\n \r\n })\r\n }\r\n
)\r\n }\r\n\r\n return contents;\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ? \r\n : {this.renderProjects(this.state.projects)}\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 \r\n \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.state.managers.length === 0\r\n ?

\r\n : \r\n \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.state.status.length === 0\r\n ?

\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.state.areas.length === 0\r\n ?

\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.state.types.length === 0\r\n ?

\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.state.products.length === 0\r\n ?

\r\n : \r\n \r\n )}\r\n \r\n }\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n {contents}\r\n \r\n \r\n Erro\r\n \r\n \r\n

Não foi possível concluir a operação!

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n Projeto\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.state.selectedProject.records !== undefined\r\n ? this.state.selectedProject.records.length > 0\r\n ? \r\n \r\n \r\n new Date(t).toLocaleDateString(\"pt-PT\")} />\r\n \r\n \r\n {\r\n return data.active\r\n ?

{new Date(data.payload[0].value).toLocaleDateString(\"pt-PT\")}: {data.payload[1].value.toFixed(2)}%

\r\n : null\r\n }} />\r\n \r\n { return { x: new Date(record.recordDate).getTime(), y: record.executionRatio * 100 } })} fill=\"rgb(37,170,183)\" line />\r\n { return { x: new Date(record.recordDate).getTime(), y: record.usedHoursRatio * 100 } })} fill=\"rgb(155,155,155)\" line />\r\n { return { x: new Date(record.recordDate).getTime(), y: record.usedCostRatio * 100 } })} fill=\"#7f7fef\" line />\r\n { return { x: new Date(record.recordDate).getTime(), y: record.usedDaysRatio * 100 } })} fill=\"rgb(236,105,7)\" line />\r\n { return { x: new Date(record.recordDate).getTime(), y: record.executionHoursRatio * 100 } })} fill=\"rgb(203,203,203)\" line />\r\n { return { x: new Date(record.recordDate).getTime(), y: record.executionCostRatio * 100 } })} fill=\"#b7b5e5\" line />\r\n { return { x: new Date(record.recordDate).getTime(), y: record.executionDaysRatio * 100 } })} fill=\"rgb(244,180,137)\" line />\r\n { return { x: new Date(record.recordDate).getTime(), y: record.executionPredictedRatio * 100 } })} fill=\"#af611b\" line />\r\n
\r\n
\r\n : null\r\n : null}\r\n \r\n \r\n\r\n \r\n \r\n

Planeamento

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.state.selectedProject.id !== undefined ?\r\n this.state.showExpandedPlans || 0 === this.state.selectedProject.plans.length ?\r\n this.state.selectedProject.plans.map(plan =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n \r\n
GestorData do PlaneamentoHorasCustoData Início PrevistaData Fim PrevistaDiasEstado% Execução Ref.Motivo
{plan.manager.userName}{new Date(plan.planDate).toLocaleDateString(\"pt-PT\")}{plan.plannedHours}h{plan.plannedCost}€{new Date(plan.startDate).toLocaleDateString(\"pt-PT\")}{new Date(plan.endDate).toLocaleDateString(\"pt-PT\")}{plan.days}d{plan.status.text}{plan.referenceExecutionRatio === null ? '' : `${(plan.referenceExecutionRatio * 100).toFixed()}%`}{plan.referenceExecutionRatioReason}
{this.state.selectedProject.plans[0].manager.userName}{new Date(this.state.selectedProject.plans[0].planDate).toLocaleDateString(\"pt-PT\")}{this.state.selectedProject.plans[0].plannedHours}h{this.state.selectedProject.plans[0].plannedCost}€{new Date(this.state.selectedProject.plans[0].startDate).toLocaleDateString(\"pt-PT\")}{new Date(this.state.selectedProject.plans[0].endDate).toLocaleDateString(\"pt-PT\")}{this.state.selectedProject.plans[0].days}d{this.state.selectedProject.plans[0].status.text}{this.state.selectedProject.plans[0].referenceExecutionRatio === null ? '' : `${(this.state.selectedProject.plans[0].referenceExecutionRatio * 100).toFixed()}%`}{this.state.selectedProject.plans[0].referenceExecutionRatioReason}
\r\n \r\n
\r\n\r\n \r\n \r\n

Registos

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.state.selectedProject.id !== undefined ?\r\n this.state.showExpandedRecords || 0 === this.state.selectedProject.records.length ?\r\n this.state.selectedProject.records.map(record =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n \r\n
Data do RegistoHorasCusto% Execução% Horas% Custo% Dias% Execução / % Horas% Execução / % Custo% Execução / % Dias% Execução / % Execução Prevista
{new Date(record.recordDate).toLocaleDateString(\"pt-PT\")}{record.usedHours}h{record.usedCost}€{(record.executionRatio * 100).toFixed()}%{(record.usedHoursRatio * 100).toFixed()}%{(record.usedCostRatio * 100).toFixed()}%{(record.usedDaysRatio * 100).toFixed()}%{(record.executionHoursRatio * 100).toFixed()}%{(record.executionCostRatio * 100).toFixed()}%{(record.executionDaysRatio * 100).toFixed()}%{(record.executionPredictedRatio * 100).toFixed()}%
{new Date(this.state.selectedProject.records[0].recordDate).toLocaleDateString(\"pt-PT\")}{this.state.selectedProject.records[0].usedHours}h{this.state.selectedProject.records[0].usedCost}€{(this.state.selectedProject.records[0].executionRatio * 100).toFixed()}%{(this.state.selectedProject.records[0].usedHoursRatio * 100).toFixed()}%{(this.state.selectedProject.records[0].usedCostRatio * 100).toFixed()}%{(this.state.selectedProject.records[0].usedDaysRatio * 100).toFixed()}%{(this.state.selectedProject.records[0].executionHoursRatio * 100).toFixed()}%{(this.state.selectedProject.records[0].executionCostRatio * 100).toFixed()}%{(this.state.selectedProject.records[0].executionDaysRatio * 100).toFixed()}%{(this.state.selectedProject.records[0].executionPredictedRatio * 100).toFixed()}%
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n async populateProjects(code, name, manager, status, area, type, product) {\r\n let url = 'api/dashboard';\r\n\r\n if (code !== '' || name !== '' || manager !== '' || status !== '' || area !== '' || type !== '' || product !== '') {\r\n url += '?'\r\n }\r\n\r\n if (code !== '') {\r\n url += `code=${code}`\r\n }\r\n if (name !== '') {\r\n if (url.slice(url.length - 1) !== '?') {\r\n url += '&'\r\n }\r\n url += `name=${name}`\r\n }\r\n if (manager !== '') {\r\n if (url.slice(url.length - 1) !== '?') {\r\n url += '&'\r\n }\r\n url += `manager=${manager}`\r\n }\r\n if (status !== '') {\r\n if (url.slice(url.length - 1) !== '?') {\r\n url += '&'\r\n }\r\n url += `status=${status}`\r\n }\r\n if (area !== '') {\r\n if (url.slice(url.length - 1) !== '?') {\r\n url += '&'\r\n }\r\n url += `area=${area}`\r\n }\r\n if (type !== '') {\r\n if (url.slice(url.length - 1) !== '?') {\r\n url += '&'\r\n }\r\n url += `type=${type}`\r\n }\r\n if (product !== '') {\r\n if (url.slice(url.length - 1) !== '?') {\r\n url += '&'\r\n }\r\n url += `product=${product}`\r\n }\r\n\r\n const response = await fetch(url, {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ projects: data, loading: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async populateManagers() {\r\n const response = await fetch('api/manager/all', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ managers: data });\r\n } else {\r\n this.setState({ showErrorModal: true });\r\n }\r\n }\r\n\r\n async populateStatus() {\r\n const response = await fetch('api/project/status', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ status: data });\r\n } else {\r\n this.setState({ showErrorModal: true });\r\n }\r\n }\r\n\r\n async populateAreas() {\r\n const response = await fetch('api/project/areas', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ areas: data });\r\n } else {\r\n this.setState({ showErrorModal: true });\r\n }\r\n }\r\n\r\n async populateTypes() {\r\n const response = await fetch('api/project/types', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ types: data });\r\n } else {\r\n this.setState({ showErrorModal: true });\r\n }\r\n }\r\n\r\n async populateProducts() {\r\n const response = await fetch('api/project/products', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ products: data });\r\n } else {\r\n this.setState({ showErrorModal: true });\r\n }\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container, Row, Col, Form, FormGroup, Label, Input, Button, Alert } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nexport class Login extends Component {\r\n static displayName = Login.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { errorMessage: \"\", loading: false };\r\n }\r\n\r\n handleSubmit = (e) => {\r\n e.preventDefault();\r\n\r\n this.setState({ loading: true });\r\n this.attemptLogin(e.target.username.value, e.target.password.value)\r\n }\r\n\r\n render() {\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 \r\n
\r\n {\r\n this.state.errorMessage.length > 0\r\n ? \r\n {this.state.errorMessage}\r\n \r\n : null\r\n }\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n async attemptLogin(userName, password) {\r\n const response = await fetch('api/login', {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ userName: userName, password: password })\r\n });\r\n const data = await response.json();\r\n\r\n if (data.success) {\r\n localStorage.setItem('opt.projects.token', data.token);\r\n\r\n this.setState({ errorMessage: \"\" });\r\n\r\n window.location.href = `/${process.env.PUBLIC_URL.replace('/','')}`;\r\n } else {\r\n localStorage.clear();\r\n\r\n this.setState({ errorMessage: data.message, loading: false });\r\n }\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nexport class Logout extends Component {\r\n static displayName = Logout.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n localStorage.clear();\r\n window.location.href = `/${process.env.PUBLIC_URL.replace('/', '')}`;\r\n } \r\n\r\n render() {\r\n return (\r\n \r\n \r\n

Até breve

\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container, Row, Col, Button, Table, Modal, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Label, Input, Alert } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nexport class Users extends Component {\r\n static displayName = Users.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n users: [], roles: [], selectedUser: '', selectedUserRoles: [],\r\n showNewUserModal: false, showSetPasswordModal: false, showUpdateRolesModal: false, showErrorModal: false, showConfirmDeleteModal: false,\r\n loading: true, loadingSetPassword: false, setPasswordResponse: {}\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateUsers();\r\n }\r\n\r\n openNewUserModal = () => {\r\n const { roles } = this.state;\r\n\r\n if (roles.length === 0) {\r\n this.populateRoles();\r\n }\r\n\r\n this.toggleNewUserModal();\r\n }\r\n\r\n openSetPasswordModal = (userName) => {\r\n this.setState({ selectedUser: userName, setPasswordResponse: {} });\r\n\r\n this.toggleSetPasswordModal();\r\n }\r\n\r\n openUpdateRolesModal = (userName, userRoles) => {\r\n const { roles } = this.state;\r\n\r\n if (roles.length === 0) {\r\n this.populateRoles();\r\n }\r\n\r\n this.setState({ selectedUser: userName, selectedUserRoles: userRoles });\r\n\r\n this.toggleUpdateRolesModal();\r\n }\r\n\r\n openConfirmDeleteModal = (userName) => {\r\n this.setState({ selectedUser: userName });\r\n this.toggleConfirmDeleteModal();\r\n }\r\n\r\n toggleNewUserModal = () => {\r\n const { showNewUserModal } = this.state;\r\n\r\n this.setState({ showNewUserModal: !showNewUserModal })\r\n }\r\n\r\n toggleSetPasswordModal = () => {\r\n const { showSetPasswordModal } = this.state;\r\n\r\n this.setState({ showSetPasswordModal: !showSetPasswordModal });\r\n }\r\n\r\n toggleUpdateRolesModal = () => {\r\n const { showUpdateRolesModal } = this.state;\r\n\r\n this.setState({ showUpdateRolesModal: !showUpdateRolesModal });\r\n }\r\n\r\n toggleErrorModal = () => {\r\n const { showErrorModal } = this.state;\r\n\r\n this.setState({ showErrorModal: !showErrorModal })\r\n }\r\n\r\n toggleConfirmDeleteModal = () => {\r\n const { showConfirmDeleteModal } = this.state;\r\n\r\n this.setState({ showConfirmDeleteModal: !showConfirmDeleteModal })\r\n }\r\n\r\n handleSubmitNewUser = (e) => {\r\n e.preventDefault();\r\n\r\n this.toggleNewUserModal();\r\n this.createUser(e.target.username.value, e.target.email.value, e.target.role.value);\r\n }\r\n\r\n handleSubmitSetPassword = (e) => {\r\n e.preventDefault();\r\n\r\n this.setUserPassword(e.target.username.value, e.target.password.value);\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ? \r\n : \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.state.users.map(user =>\r\n \r\n \r\n \r\n \r\n {/**/}\r\n \r\n {/**/}\r\n \r\n \r\n )}\r\n \r\n
UtilizadorE-mailPerfilData de CriaçãoÚltimo Início de SessãoNº de Sessões\r\n
{user.userName}{user.email}{Object.keys(user.roles).map(k => user.roles[k].description).join(\", \")}{new Date(user.createTime).toLocaleDateString(\"pt-PT\")}{user.lastLogin !== null ? new Date(user.lastLogin).toLocaleString(\"pt-PT\") : ''}{user.loginCount}\r\n {\r\n user.userName !== 'root'\r\n ?
\r\n \r\n \r\n \r\n
\r\n : null\r\n }\r\n
\r\n\r\n return (\r\n \r\n \r\n \r\n

Utilizadores

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {contents}\r\n \r\n \r\n
\r\n Novo Utilizador\r\n \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.state.roles.length === 0\r\n ?

\r\n : \r\n {this.state.roles.map((role) =>\r\n \r\n )}\r\n \r\n }\r\n
\r\n
\r\n \r\n {' '}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n Definir Palavra-Passe\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.state.setPasswordResponse.success !== undefined\r\n ?\r\n this.state.setPasswordResponse.success === false\r\n ? \r\n \r\n \r\n {this.state.setPasswordResponse.message}\r\n \r\n \r\n \r\n : \r\n \r\n \r\n Alteração Concluída\r\n \r\n \r\n \r\n : null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Atualizar Perfil\r\n \r\n
\r\n {this.state.roles.length === 0\r\n ?

\r\n :\r\n this.state.roles.map((role) =>\r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n Erro\r\n \r\n \r\n

Não foi possível concluir a operação!

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n Remover Utilizador\r\n \r\n \r\n

Confirma a remoção do utilizador {this.state.selectedUser}? Esta ação é irreversível. Caso existam projetos e reservas associadas o utilizador não será eliminado.

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n async populateUsers() {\r\n const response = await fetch('api/user', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ users: data, loading: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async populateRoles() {\r\n const response = await fetch('api/role', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ roles: data });\r\n } else {\r\n this.setState({ showErrorModal: true });\r\n }\r\n }\r\n\r\n async createUser(userName, email, role) {\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/user', {\r\n method: 'POST',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ userName: userName, email: email, role: role })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ users: data, loading: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async deleteUser(userName) {\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/user', {\r\n method: 'DELETE',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ userName: userName })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ users: data, loading: false, showConfirmDeleteModal: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true, showConfirmDeleteModal: false });\r\n }\r\n }\r\n\r\n async setUserPassword(userName, password) {\r\n this.setState({ loadingSetPassword: true });\r\n\r\n const response = await fetch('api/user/password', {\r\n method: 'PUT',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ userName: userName, password: password })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ setPasswordResponse: data, loadingSetPassword: false });\r\n } else {\r\n this.setState({ loadingSetPassword: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async addUserToRole(userName, role) {\r\n this.setState({ showUpdateRolesModal: false, loading: true });\r\n\r\n const response = await fetch('api/user/role', {\r\n method: 'POST',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ userName: userName, role: role })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ users: data, loading: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async removeUserFromRole(userName, role) {\r\n this.setState({ showUpdateRolesModal: false, loading: true });\r\n\r\n const response = await fetch('api/user/role', {\r\n method: 'DELETE',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ userName: userName, role: role })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ users: data, loading: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Table, Row, Col, Button, Modal, Form, ModalHeader, ModalBody, ModalFooter, FormGroup, Label, Input, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nexport class ProjectRecordsModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n recordDate:new Date().toISOString().split('T')[0],\r\n usedHours:this.props.selectedProject.records.length > 0 ? this.props.selectedProject.records[0].usedHours : '',\r\n usedCost:this.props.selectedProject.records.length > 0 ? this.props.selectedProject.records[0].usedCost : '',\r\n executionRatio:this.props.selectedProject.records.length > 0 ? (this.props.selectedProject.records[0].executionRatio * 100) : ''\r\n };\r\n this.onInputchange = this.onInputchange.bind(this);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.selectedProject !== this.props.selectedProject && this.props.autoRecord === undefined) {\r\n this.setState({\r\n usedHours:this.props.selectedProject.records.length > 0 ? this.props.selectedProject.records[0].usedHours : '',\r\n usedCost:this.props.selectedProject.records.length > 0 ? this.props.selectedProject.records[0].usedCost : '',\r\n executionRatio:this.props.selectedProject.records.length > 0 ? (this.props.selectedProject.records[0].executionRatio * 100) : ''\r\n })\r\n }\r\n if (prevProps.autoRecord !== this.props.autoRecord && this.props.autoRecord !== undefined) {\r\n this.setState({\r\n usedHours: this.props.autoRecord.totalRecordAddInput.usedHours,\r\n usedCost: this.props.autoRecord.totalRecordAddInput.usedCost,\r\n executionRatio: this.props.selectedProject.records.length > 0 ? (this.props.selectedProject.records[0].executionRatio * 100) : ''\r\n })\r\n }\r\n }\r\n\r\n onInputchange(event) {\r\n this.setState({\r\n [event.target.id]: event.target.value\r\n });\r\n }\r\n\r\n render(){\r\n return \r\n Registos - {this.props.selectedProject.name}\r\n \r\n {this.props.showProjectRecordsModal\r\n ?
\r\n \r\n \r\n \r\n \r\n {this.props.selectedProject.id && this.props.autoRecord !== undefined && this.props.showAutoRecordInfo ?\r\n \r\n

Projeto

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

Processo

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

Total

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : (null)\r\n } \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n h\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {console.log(this.state)}\r\n \r\n \r\n %\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n : null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.selectedProject.id !== undefined\r\n ? this.props.selectedProject.records.map(record =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : null\r\n }\r\n \r\n
Data do RegistoHorasCusto% Execução% Horas% Custo% Dias% Execução / % Horas% Execução / % Custo% Execução / % Dias% Execução / % Execução Prevista
{new Date(record.recordDate).toLocaleDateString(\"pt-PT\")}{record.usedHours}h{record.usedCost}€{(record.executionRatio * 100).toFixed()}%{(record.usedHoursRatio * 100).toFixed()}%{(record.usedCostRatio * 100).toFixed()}%{(record.usedDaysRatio * 100).toFixed()}%{(record.executionHoursRatio * 100).toFixed()}%{(record.executionCostRatio * 100).toFixed()}%{(record.executionDaysRatio * 100).toFixed()}%{(record.executionPredictedRatio * 100).toFixed()}%
\r\n
\r\n \r\n \r\n \r\n
\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Container, Table, Row, Col, Button, Modal, Form, ModalHeader, ModalBody, ModalFooter, FormGroup, Label, Input, InputGroup, InputGroupAddon, InputGroupText, Alert } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { decode } from 'jsonwebtoken';\r\nimport { ProjectRecordsModal } from './ProjectRecordsModal';\r\n\r\nexport class Projects extends Component {\r\n static displayName = Projects.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n projects: [], managers: [], status: [], areas: [], types: [], products: [], filter: { code: '', name: '', manager: '', status: '', area: '', type: '', product: ''},\r\n showNewProjectModal: false, showProjectInfoModal: false, showProjectRecordsModal: false, showAddProjectPlanForm: false, showErrorModal: false, showConfirmDeleteModal: false,\r\n showAutoRecordInfo: false, loading: true, userRoles: [], selectedProject: {}, showFilter: false,\r\n };\r\n this.toggleProjectRecordsModal = this.toggleProjectRecordsModal.bind(this);\r\n this.handleSubmitProjectRecord = this.handleSubmitProjectRecord.bind(this);\r\n this.getProjectRecordAutomatic = this.getProjectRecordAutomatic.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.populateProjects('','','','','','','');\r\n this.populateManagers();\r\n this.populateStatus();\r\n this.populateAreas();\r\n this.populateTypes();\r\n this.populateProducts();\r\n\r\n let token = localStorage.getItem('opt.projects.token');\r\n if (token) {\r\n let decodedToken = decode(token);\r\n this.setState({ userRoles: Array.isArray(decodedToken.role) ? decodedToken.role : [decodedToken.role] });\r\n }\r\n }\r\n\r\n openNewProjectModal = () => {\r\n const { managers, status } = this.state;\r\n\r\n if (managers.length === 0) {\r\n this.populateManagers();\r\n }\r\n\r\n if (status.length === 0) {\r\n this.populateStatus();\r\n }\r\n\r\n this.toggleNewProjectModal();\r\n }\r\n\r\n openProjectInfoModal = (project) => {\r\n this.setState({ selectedProject: project });\r\n this.toggleProjectInfoModal();\r\n }\r\n\r\n openProjectRecordsModal = (project) => {\r\n this.setState({ selectedProject: project, autoRecord: undefined, showAutoRecordInfo:false });\r\n this.toggleProjectRecordsModal();\r\n }\r\n\r\n openAddProjectPlanForm = () => {\r\n const { managers, status } = this.state;\r\n\r\n if (managers.length === 0) {\r\n this.populateManagers();\r\n }\r\n\r\n if (status.length === 0) {\r\n this.populateStatus();\r\n }\r\n\r\n this.toggleAddProjectPlanForm();\r\n }\r\n\r\n openConfirmDeleteModal = (project) => {\r\n this.setState({ selectedProject: project });\r\n this.toggleConfirmDeleteModal();\r\n }\r\n\r\n toggleNewProjectModal = () => {\r\n const { showNewProjectModal } = this.state;\r\n\r\n this.setState({ showNewProjectModal: !showNewProjectModal })\r\n }\r\n\r\n toogleFilter = () => {\r\n this.setState({ showFilter: !this.state.showFilter });\r\n }\r\n\r\n toggleProjectInfoModal = () => {\r\n const { showProjectInfoModal } = this.state;\r\n\r\n this.setState({ showProjectInfoModal: !showProjectInfoModal })\r\n }\r\n\r\n toggleProjectRecordsModal = () => {\r\n const { showProjectRecordsModal } = this.state;\r\n\r\n this.setState({ showProjectRecordsModal: !showProjectRecordsModal })\r\n }\r\n\r\n toggleAddProjectPlanForm = () => {\r\n const { showAddProjectPlanForm } = this.state;\r\n\r\n this.setState({ showAddProjectPlanForm: !showAddProjectPlanForm })\r\n }\r\n\r\n toggleErrorModal = () => {\r\n const { showErrorModal } = this.state;\r\n\r\n this.setState({ showErrorModal: !showErrorModal })\r\n }\r\n\r\n toggleConfirmDeleteModal = () => {\r\n const { showConfirmDeleteModal } = this.state;\r\n\r\n this.setState({ showConfirmDeleteModal: !showConfirmDeleteModal })\r\n }\r\n\r\n toggleAutoRecordModal = () => {\r\n const { showAutoRecordInfo } = this.state;\r\n this.setState({ showAutoRecordInfo: !showAutoRecordInfo })\r\n }\r\n\r\n handleSubmitNewProject = (e) => {\r\n e.preventDefault();\r\n\r\n this.toggleNewProjectModal();\r\n this.createProject(\r\n e.target.code.value, e.target.name.value, e.target.process.value, e.target.area.value, e.target.type.value.length === 0 ? null : e.target.type.value, e.target.product.value.length === 0 ? null : e.target.product.value,\r\n e.target.manager.value, e.target.planDate.value, e.target.startDate.value, e.target.endDate.value, parseInt(e.target.plannedHours.value), parseFloat(e.target.plannedCost.value), e.target.status.value\r\n );\r\n }\r\n\r\n handleSubmitProjectPlan = (e) => {\r\n e.preventDefault(); \r\n\r\n if (this.state.userRoles.find((r) => r === 'SuperAdmin') || this.state.userRoles.find((r) => r === 'Admin')) {\r\n this.addProjectPlanByAdmin(parseInt(e.target.projectId.value), e.target.manager.value, e.target.planDate.value, e.target.startDate.value, e.target.endDate.value, parseInt(e.target.plannedHours.value), parseFloat(e.target.plannedCost.value), e.target.status.value, e.target.referenceExecutionRatio.value.length === 0 ? null : parseFloat(e.target.referenceExecutionRatio.value) / 100, e.target.referenceExecutionRatioReason.value.length === 0 ? null : e.target.referenceExecutionRatioReason.value);\r\n } else if (this.state.userRoles.find((r) => r === 'Manager')) {\r\n this.addProjectPlan(parseInt(e.target.projectId.value), e.target.manager.value, e.target.planDate.value, e.target.startDate.value, e.target.endDate.value, parseInt(e.target.plannedHours.value), parseFloat(e.target.plannedCost.value), e.target.status.value);\r\n }\r\n }\r\n\r\n handleSubmitProjectRecord = (e) => {\r\n e.preventDefault();\r\n console.log(e);\r\n this.addProjectRecord(parseInt(e.target.projectId.value), e.target.recordDate.value, parseInt(e.target.usedHours.value), parseFloat(e.target.usedCost.value), parseFloat(e.target.executionRatio.value) / 100);\r\n }\r\n\r\n handleSubmitFilter = (e) => {\r\n e.preventDefault();\r\n\r\n this.setState({ loading: true });\r\n\r\n const typeValue = undefined === e.target.type ? '' : e.target.type.value;\r\n const productValue = undefined === e.target.product ? '' : e.target.product.value;\r\n this.populateProjects(e.target.code.value, e.target.name.value, e.target.manager.value, e.target.status.value, e.target.area.value, typeValue, productValue);\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ? \r\n : \r\n \r\n \r\n \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.state.projects.map(project =>\r\n \r\n \r\n \r\n \r\n {/*\r\n */}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
CódigoNomeÁreaTipoProdutoDataGestorEstado\r\n
{project.code}{project.name}{project.area}{project.type}{project.product}{new Date(project.initialDate).toLocaleDateString(\"pt-PT\")}{project.currentManager.userName}{project.status}\r\n \r\n \r\n {\r\n this.state.userRoles.find((r) => r === 'SuperAdmin') || this.state.userRoles.find((r) => r === 'Admin')\r\n ? \r\n : null\r\n }\r\n
\r\n
\r\n\r\n return (\r\n \r\n \r\n \r\n

Projetos

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \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.state.managers.length === 0\r\n ?

\r\n : \r\n \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.state.status.length === 0\r\n ?

\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.state.areas.length === 0\r\n ?

\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.state.types.length === 0\r\n ?

\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.state.products.length === 0\r\n ?

\r\n : \r\n \r\n )}\r\n \r\n }\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {contents}\r\n \r\n \r\n
\r\n Novo Projeto\r\n \r\n

Dados Gerais

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

Planeamento

\r\n \r\n \r\n \r\n \r\n {\r\n this.state.managers.length === 0\r\n ?

\r\n : \r\n {this.state.managers.map((manager) =>\r\n \r\n )}\r\n \r\n }\r\n
\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.state.status.length === 0\r\n ?

\r\n : \r\n {this.state.status.map((status) =>\r\n \r\n )}\r\n \r\n }\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n h\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Projeto\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.state.selectedProject.latestRecord ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n
\r\n \r\n \r\n

Planeamento

\r\n \r\n \r\n \r\n \r\n
\r\n {this.state.showAddProjectPlanForm\r\n ?
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.state.managers.length === 0\r\n ?

\r\n : \r\n {this.state.managers.map((manager) =>\r\n \r\n )}\r\n \r\n }\r\n
\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.state.status.length === 0\r\n ?

\r\n : \r\n {this.state.status.map((status) =>\r\n \r\n )}\r\n \r\n }\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n h\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.state.userRoles.find((r) => r === 'SuperAdmin') || this.state.userRoles.find((r) => r === 'Admin')\r\n ? \r\n \r\n \r\n \r\n \r\n \r\n \r\n %\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n : null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.selectedProject.id !== undefined\r\n ? this.state.selectedProject.plans.map(plan => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : null\r\n }\r\n \r\n
GestorData do PlaneamentoHorasCustoData Início PrevistaData Fim PrevistaDiasEstado% Execução Ref.Motivo
{plan.manager.userName}{new Date(plan.planDate).toLocaleDateString(\"pt-PT\")}{plan.plannedHours}h{plan.plannedCost}€{new Date(plan.startDate).toLocaleDateString(\"pt-PT\")}{new Date(plan.endDate).toLocaleDateString(\"pt-PT\")}{plan.days}d{plan.status.text}{plan.referenceExecutionRatio === null ? '' : `${(plan.referenceExecutionRatio * 100).toFixed()}%`}{plan.referenceExecutionRatioReason}
\r\n
\r\n \r\n \r\n \r\n
\r\n { this.state.selectedProject && this.state.selectedProject.records &&\r\n \r\n }\r\n \r\n Erro\r\n \r\n \r\n

Não foi possível concluir a operação!

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {this.state.selectedProject.id\r\n ? \r\n Remover Projeto\r\n \r\n \r\n

Confirma a remoção do projeto {this.state.selectedProject.name}? Esta ação é irreversível e irá eliminar todos os registos associados a este projeto.

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n : null}\r\n
\r\n );\r\n }\r\n\r\n async populateProjects(code, name, manager, status, area, type, product) {\r\n let url = 'api/project';\r\n\r\n if (code !== '' || name !== '' || manager !== '' || status !== '' || area !== '' || type !== '' || product !== '') {\r\n url += '?'\r\n }\r\n\r\n if (code !== '') {\r\n url += `code=${code}`\r\n }\r\n if (name !== '') {\r\n if (url.slice(url.length - 1) !== '?') {\r\n url += '&'\r\n }\r\n url += `name=${name}`\r\n }\r\n if (manager !== '') {\r\n if (url.slice(url.length - 1) !== '?') {\r\n url += '&'\r\n }\r\n url += `manager=${manager}`\r\n }\r\n if (status !== '') {\r\n if (url.slice(url.length - 1) !== '?') {\r\n url += '&'\r\n }\r\n url += `status=${status}`;\r\n }\r\n if (area !== '') {\r\n if (url.slice(url.length - 1) !== '?') {\r\n url += '&'\r\n }\r\n url += `area=${area}`\r\n }\r\n if (type !== '') {\r\n if (url.slice(url.length - 1) !== '?') {\r\n url += '&'\r\n }\r\n url += `type=${type}`\r\n }\r\n if (product !== '') {\r\n if (url.slice(url.length - 1) !== '?') {\r\n url += '&'\r\n }\r\n url += `product=${product}`\r\n }\r\n \r\n this.setState({\r\n filter: {\r\n code: code,\r\n name: name,\r\n manager: manager,\r\n status: status,\r\n area: area,\r\n type: type,\r\n product: product\r\n }\r\n });\r\n\r\n const response = await fetch(url, {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ projects: data, loading: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async populateManagers() {\r\n const response = await fetch('api/manager', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ managers: data });\r\n } else {\r\n this.setState({ showErrorModal: true });\r\n }\r\n }\r\n\r\n async populateStatus() {\r\n const response = await fetch('api/project/status', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ status: data });\r\n } else {\r\n this.setState({ showErrorModal: true });\r\n }\r\n }\r\n\r\n async populateAreas() {\r\n const { filter } = this.state;\r\n this.setState({ areas: [] });\r\n\r\n const response = await fetch('api/project/areas', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n if (filter.area !== '' && data.filter(d => d === filter.area).length === 0) {\r\n filter.area = '';\r\n\r\n this.setState({ areas: data, filter: filter });\r\n this.populateProjects(filter.code, filter.name, filter.manager, filter.status, filter.area, filter.type, filter.product);\r\n }\r\n else {\r\n this.setState({ areas: data });\r\n }\r\n } else {\r\n this.setState({ showErrorModal: true });\r\n }\r\n }\r\n\r\n async populateTypes() {\r\n const { filter } = this.state;\r\n this.setState({ types: [] });\r\n\r\n const response = await fetch('api/project/types', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n if (filter.type !== '' && data.filter(d => d === filter.type).length === 0) {\r\n filter.type = '';\r\n\r\n this.setState({ types: data, filter: filter });\r\n this.populateProjects(filter.code, filter.name, filter.manager, filter.status, filter.area, filter.type, filter.product);\r\n }\r\n else {\r\n this.setState({ types: data });\r\n }\r\n } else {\r\n this.setState({ showErrorModal: true });\r\n }\r\n }\r\n\r\n async populateProducts() {\r\n const { filter } = this.state;\r\n this.setState({ products: [] });\r\n\r\n const response = await fetch('api/project/products', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n if (filter.product !== '' && data.filter(d => d === filter.product).length === 0) {\r\n filter.product = '';\r\n\r\n this.setState({ products: data, filter: filter });\r\n this.populateProjects(filter.code, filter.name, filter.manager, filter.status, filter.area, filter.type, filter.product);\r\n }\r\n else {\r\n this.setState({ products: data });\r\n }\r\n } else {\r\n this.setState({ showErrorModal: true });\r\n }\r\n }\r\n\r\n async createProject(code, name, process, area, type, product, manager, planDate, startDate, endDate, plannedHours, plannedCost, status) {\r\n const { filter } = this.state;\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/project', {\r\n method: 'POST',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ code: code, name: name, process: process, area: area, type: type, product: product, manager: manager, planDate: planDate, startDate: startDate, endDate: endDate, plannedHours: plannedHours, plannedCost: plannedCost, status: status, filter: filter })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ projects: data, loading: false });\r\n\r\n this.populateAreas();\r\n this.populateTypes();\r\n this.populateProducts();\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async deleteProject(projectId) {\r\n const { filter } = this.state;\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/project', {\r\n method: 'DELETE',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ id: projectId, filter: filter })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ projects: data, loading: false, showConfirmDeleteModal: false });\r\n\r\n this.populateAreas();\r\n this.populateTypes();\r\n this.populateProducts();\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true, showConfirmDeleteModal: false });\r\n }\r\n }\r\n\r\n async addProjectPlan(projectId, manager, planDate, startDate, endDate, plannedHours, plannedCost, status) {\r\n const { filter } = this.state;\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/project/plan', {\r\n method: 'POST',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ projectId: projectId, manager: manager, planDate: planDate, startDate: startDate, endDate: endDate, plannedHours: plannedHours, plannedCost: plannedCost, status: status, filter: filter })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ projects: data, loading: false, showAddProjectPlanForm: false, selectedProject: data.find(p => p.id === projectId) });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async addProjectPlanByAdmin(projectId, manager, planDate, startDate, endDate, plannedHours, plannedCost, status, referenceExecutionRatio, referenceExecutionRatioReason) {\r\n const { filter } = this.state;\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/project/planbyadmin', {\r\n method: 'POST',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ projectId: projectId, manager: manager, planDate: planDate, startDate: startDate, endDate: endDate, plannedHours: plannedHours, plannedCost: plannedCost, status: status, referenceExecutionRatio: referenceExecutionRatio, referenceExecutionRatioReason: referenceExecutionRatioReason, filter: filter })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ projects: data, loading: false, showAddProjectPlanForm: false, selectedProject: data.find(p => p.id === projectId) });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async addProjectRecord(projectId, recordDate, usedHours, usedCost, executionRatio) {\r\n const { filter } = this.state;\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/project/record', {\r\n method: 'POST',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ projectId: projectId, recordDate: recordDate, usedHours: usedHours, usedCost: usedCost, executionRatio: executionRatio, filter: filter })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ projects: data, loading: false, selectedProject: data.find(p => p.id === projectId) });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async getProjectRecordAutomatic(projectId) {\r\n const { filter } = this.state;\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/project/record/auto', {\r\n method: 'POST',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ projectId: projectId, filter: filter })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ autoRecord: data , loading: false});\r\n this.toggleAutoRecordModal()\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n}\r\n\r\n\r\n","import React, { Component } from 'react';\r\nimport { Container, Row, Col, Button, Table, Modal, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Label, Input, Alert } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nexport class Vehicles extends Component {\r\n static displayName = Vehicles.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n vehicles: [], selectedVehicle: undefined,\r\n showNewVehicleModal: false, showErrorModal: false, showConfirmDeleteModal: false,\r\n loading: true\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateVehicles();\r\n }\r\n\r\n openConfirmDeleteModal = (vehicle) => { \r\n this.setState({ selectedVehicle: vehicle });\r\n this.toggleConfirmDeleteModal();\r\n }\r\n\r\n toggleNewVehicleModal = () => {\r\n const { showNewVehicleModal } = this.state;\r\n\r\n this.setState({ showNewVehicleModal: !showNewVehicleModal })\r\n }\r\n\r\n toggleErrorModal = () => {\r\n const { showErrorModal } = this.state;\r\n\r\n this.setState({ showErrorModal: !showErrorModal })\r\n }\r\n\r\n toggleConfirmDeleteModal = () => {\r\n const { showConfirmDeleteModal } = this.state;\r\n\r\n this.setState({ showConfirmDeleteModal: !showConfirmDeleteModal })\r\n }\r\n\r\n handleSubmitNewVehicle = (e) => {\r\n e.preventDefault();\r\n\r\n this.toggleNewVehicleModal();\r\n this.createVehicle(e.target.description.value, e.target.licensePlate.value);\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ? \r\n : \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.vehicles.map(vehicle =>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
VeículoMatrícula\r\n
{vehicle.description}{vehicle.licensePlate}\r\n
\r\n \r\n
\r\n
\r\n\r\n return (\r\n \r\n \r\n \r\n

Veículos

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {contents}\r\n \r\n \r\n
\r\n Novo Veículo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {' '}\r\n \r\n \r\n
\r\n
\r\n \r\n Erro\r\n \r\n \r\n

Não foi possível concluir a operação!

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {this.state.selectedVehicle !== undefined\r\n ? \r\n Remover Veículo\r\n \r\n \r\n

Confirma a remoção do veículo {this.state.selectedVehicle.description} ({this.state.selectedVehicle.licensePlate})? Esta ação é irreversível e irá eliminar as marcações realizadas para este veículo.

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n : null}\r\n
\r\n )\r\n }\r\n\r\n async populateVehicles() {\r\n const response = await fetch('api/vehicle', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ vehicles: data, loading: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async createVehicle(description, licensePlate) {\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/vehicle', {\r\n method: 'POST',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ description: description, licensePlate: licensePlate })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ vehicles: data, loading: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async deleteVehicle(vehicleId) {\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/vehicle', {\r\n method: 'DELETE',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ id: vehicleId })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ vehicles: data, loading: false, showConfirmDeleteModal: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true, showConfirmDeleteModal: false });\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Container, Row, Col, Button, Table, Modal, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Label, Input, Alert } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nexport class Rooms extends Component {\r\n static displayName = Rooms.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n rooms: [], selectedRoom: undefined,\r\n showNewRoomModal: false, showErrorModal: false, showConfirmDeleteModal: false,\r\n loading: true\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateRooms();\r\n }\r\n\r\n openConfirmDeleteModal = (room) => {\r\n this.setState({ selectedRoom: room });\r\n this.toggleConfirmDeleteModal();\r\n }\r\n\r\n toggleNewRoomModal = () => {\r\n const { showNewRoomModal } = this.state;\r\n\r\n this.setState({ showNewRoomModal: !showNewRoomModal })\r\n }\r\n\r\n toggleErrorModal = () => {\r\n const { showErrorModal } = this.state;\r\n\r\n this.setState({ showErrorModal: !showErrorModal })\r\n }\r\n\r\n toggleConfirmDeleteModal = () => {\r\n const { showConfirmDeleteModal } = this.state;\r\n\r\n this.setState({ showConfirmDeleteModal: !showConfirmDeleteModal })\r\n }\r\n\r\n handleSubmitNewRoom = (e) => {\r\n e.preventDefault();\r\n\r\n this.toggleNewRoomModal();\r\n this.createRoom(e.target.description.value);\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ? \r\n : \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.rooms.map(room =>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
Sala\r\n
{room.description}\r\n
\r\n \r\n
\r\n
\r\n\r\n return (\r\n \r\n \r\n \r\n

Salas

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {contents}\r\n \r\n \r\n
\r\n Nova Sala\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {' '}\r\n \r\n \r\n
\r\n
\r\n \r\n Erro\r\n \r\n \r\n

Não foi possível concluir a operação!

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {this.state.selectedRoom !== undefined\r\n ? \r\n Remover Sala\r\n \r\n \r\n

Confirma a remoção da sala {this.state.selectedRoom.description}? Esta ação é irreversível e irá eliminar as marcações realizadas para esta sala.

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n : null}\r\n
\r\n )\r\n }\r\n\r\n async populateRooms() {\r\n const response = await fetch('api/room', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ rooms: data, loading: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async createRoom(description) {\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/room', {\r\n method: 'POST',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ description: description })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ rooms: data, loading: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async deleteRoom(roomId) {\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/room', {\r\n method: 'DELETE',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ id: roomId })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n this.setState({ rooms: data, loading: false, showConfirmDeleteModal: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true, showConfirmDeleteModal: false });\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Container, Row, Modal, ModalHeader, ModalBody, Alert, ModalFooter, Button, Form, Col, FormGroup, Label, Input, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport FullCalendar from '@fullcalendar/react';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport timeGridPlugin from '@fullcalendar/timegrid';\r\nimport listPLugin from '@fullcalendar/list';\r\nimport interactionPlugin from '@fullcalendar/interaction';\r\nimport pt from '@fullcalendar/core/locales/pt';\r\nimport { decode } from 'jsonwebtoken';\r\n\r\nexport class Calendar extends Component {\r\n static displayName = Calendar.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n reservations: [], reservables: [],\r\n showNewReservationModal: false, showReservationInfoModal: false, showErrorModal: false,\r\n loading: true, selectedStartTime: {}, selectedEndTime: {}, selectedEvent: undefined, userRoles: [], user: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateReservations();\r\n\r\n let token = localStorage.getItem('opt.projects.token');\r\n if (token) {\r\n let decodedToken = decode(token);\r\n this.setState({ userRoles: Array.isArray(decodedToken.role) ? decodedToken.role : [decodedToken.role], user: decodedToken.unique_name });\r\n }\r\n }\r\n\r\n openNewReservationModal = (e) => {\r\n this.setState({ selectedStartTime: e.start, selectedEndTime: e.end });\r\n\r\n this.populateReservables(e.start, e.end);\r\n\r\n this.toggleNewReservationModal();\r\n }\r\n\r\n openReservationInfoModal = (e) => {\r\n this.setState({ selectedEvent: e });\r\n this.toggleReservationInfoModal();\r\n }\r\n\r\n toggleNewReservationModal = () => {\r\n const { showNewReservationModal } = this.state;\r\n\r\n this.setState({ showNewReservationModal: !showNewReservationModal })\r\n }\r\n\r\n toggleReservationInfoModal = () => {\r\n const { showReservationInfoModal } = this.state;\r\n\r\n this.setState({ showReservationInfoModal: !showReservationInfoModal })\r\n }\r\n\r\n toggleErrorModal = () => {\r\n const { showErrorModal } = this.state;\r\n\r\n this.setState({ showErrorModal: !showErrorModal })\r\n }\r\n\r\n handleSubmitNewReservation = (e) => {\r\n const { selectedStartTime, selectedEndTime } = this.state;\r\n\r\n e.preventDefault();\r\n\r\n this.toggleNewReservationModal();\r\n this.createReservation(\r\n selectedStartTime, selectedEndTime, parseInt(e.target.reservable.value), e.target.reason.value\r\n );\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ? \r\n : \r\n this.openReservationInfoModal(info.event)}\r\n events={this.state.reservations}\r\n headerToolbar={{\r\n start: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek',\r\n center: 'title',\r\n end: 'today prev,next'\r\n }}\r\n initialView=\"timeGridWeek\"\r\n locale={pt}\r\n nowIndicator={true}\r\n plugins={[dayGridPlugin, timeGridPlugin, listPLugin, interactionPlugin]}\r\n select={(e) => this.openNewReservationModal(e)}\r\n selectable={true}\r\n selectConstraint={{\r\n start: new Date()\r\n }}\r\n slotEventOverlap={false}\r\n views={{\r\n timeGrid: {\r\n dayHeaderFormat: {\r\n weekday: 'short',\r\n day: 'numeric',\r\n month: 'numeric',\r\n omitCommas: true\r\n }\r\n }\r\n }}\r\n />\r\n \r\n\r\n return ( \r\n \r\n \r\n {contents}\r\n \r\n \r\n
\r\n Nova Reserva\r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.state.reservables.length === 0\r\n ?

\r\n : \r\n {this.state.reservables.map((reservable) =>\r\n \r\n )}\r\n \r\n }\r\n
\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.state.selectedEvent !== undefined\r\n ? \r\n {new Date(this.state.selectedEvent.start).toLocaleString(\r\n \"pt-PT\", {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit'\r\n })} - {new Date(this.state.selectedEvent.end).toLocaleString(\r\n \"pt-PT\", {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit'\r\n })} | {this.state.selectedEvent.extendedProps.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\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.state.selectedEvent.start.getTime() >= (new Date()).getTime() && (this.state.userRoles.find((r) => r === 'SuperAdmin') || this.state.userRoles.find((r) => r === 'Admin') || this.state.user === this.state.selectedEvent.extendedProps.reservee)\r\n ? \r\n : null}\r\n \r\n \r\n \r\n : null}\r\n \r\n Erro\r\n \r\n \r\n

Não foi possível concluir a operação!

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n async populateReservations() {\r\n const response = await fetch('api/reservation', {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ reservations: data, loading: false })\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async populateReservables(startTime, endTime) {\r\n this.setState({ reservables: [] });\r\n\r\n const response = await fetch(`api/reservable?start=${startTime.toISOString()}&end=${endTime.toISOString()}`, {\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`\r\n }\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ reservables: data })\r\n } else {\r\n this.setState({ showErrorModal: true });\r\n }\r\n }\r\n\r\n async createReservation(startTime, endTime, reservable, reason) {\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/reservation', {\r\n method: 'POST',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ startTime: startTime, endTime: endTime, reservable: reservable, reason: reason })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ reservations: data, loading: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n\r\n async deleteReservation(reservationId) {\r\n this.setState({ loading: true });\r\n\r\n const response = await fetch('api/reservation', {\r\n method: 'DELETE',\r\n headers: {\r\n \"Authorization\": `Bearer ${localStorage.getItem('opt.projects.token')}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ id: reservationId })\r\n });\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n this.setState({ reservations: data, loading: false, showReservationInfoModal: false });\r\n } else {\r\n this.setState({ loading: false, showErrorModal: true });\r\n }\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nexport class NotFound extends Component {\r\n static displayName = NotFound.name;\r\n\r\n render() {\r\n return (\r\n \r\n \r\n

404 Not Found

\r\n

Erm.... Nada para ver aqui

\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Route, Switch } from 'react-router';\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { decode } from 'jsonwebtoken';\r\nimport { library } from '@fortawesome/fontawesome-svg-core'\r\nimport { fas } from '@fortawesome/free-solid-svg-icons'\r\nimport { Layout } from './components/Layout';\r\nimport { LayoutNoMenu } from './components/LayoutNoMenu';\r\nimport { Home } from './components/Home';\r\nimport { Login } from './components/Login';\r\nimport { Logout } from './components/Logout';\r\nimport { Users } from './components/Users';\r\nimport { Projects } from './components/Projects';\r\nimport { Vehicles } from './components/Vehicles';\r\nimport { Rooms } from './components/Rooms';\r\nimport { Calendar } from './components/Calendar';\r\nimport { NotFound } from './components/NotFound';\r\n\r\nimport './custom.css'\r\n\r\nlibrary.add(fas);\r\n\r\nclass App extends Component {\r\n static displayName = App.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n tokenIsValid: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n let token = localStorage.getItem('opt.projects.token');\r\n\r\n if (token) {\r\n if (new Date(decode(token).exp * 1000) >= new Date() && new Date(decode(token).nbf * 1000) <= new Date(new Date().getTime() + 300000)) {\r\n this.setState({ tokenIsValid: true })\r\n }\r\n else {\r\n localStorage.clear();\r\n window.location.href = `/${process.env.PUBLIC_URL.replace('/', '')}`;\r\n }\r\n }\r\n\r\n this.unlisten = this.props.history.listen(() => {\r\n let token = localStorage.getItem('opt.projects.token');\r\n \r\n if (token) {\r\n if (new Date(decode(token).exp * 1000) >= new Date() && new Date(decode(token).nbf * 1000) <= new Date(new Date().getTime() + 300000)) {\r\n this.setState({tokenIsValid: true})\r\n }\r\n else {\r\n localStorage.clear();\r\n window.location.href = `/${process.env.PUBLIC_URL.replace('/', '')}`;\r\n }\r\n }\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n this.unlisten();\r\n }\r\n\r\n render() {\r\n if (this.state.tokenIsValid) {\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 } else {\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\nexport default withRouter(App);\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register () {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister () {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();\r\n\r\n"],"sourceRoot":""}