{"version":3,"sources":["components/Imagenes/user.png","components/Imagenes/IconInsignias/ciudadania-ETICA(B).svg","components/Imagenes/IconInsignias/liderazgo-AUTOAGENCIA(B).svg","components/Imagenes/IconInsignias/CREATIVIDAD(B).svg","components/Imagenes/IconInsignias/interaccion-COMUNICACION(B).svg","components/Imagenes/IconInsignias/Autonomia-APRENDIZAJE(B).svg","components/Imagenes/IconInsignias/Gestion-ESTRATEGICA(B).svg","components/Content/PlantillaDatos.xlsx","components/Imagenes/Insignias/ETICA_SOSTENIBILIDAD.png","components/Imagenes/Insignias/LIDERAZGO_AUTOAGENCIA.png","components/Imagenes/Insignias/CREATIVIDAD_INNOVACION_EMPRENDIMIENTO.png","components/Imagenes/Insignias/INTERACCION_COMUNICACION.png","components/Imagenes/Insignias/AUTONOMIA_APRENDIZAJE.png","components/Imagenes/Insignias/ESTRATEGIA_CONOCIMIENTO.png","components/Imagenes/Iconos/GESTION.svg","components/Imagenes/Iconos/cargamasiva.svg","components/Imagenes/Iconos/ESPOL-extracurriculares.svg","AppContext.js","components/variables/url.js","webpack:///./src/components/Imagenes/Iconos/GESTION.svg?f5eb","components/NavMenu.js","components/Footer.js","components/Popout.js","components/UserCards.js","components/SideBar.js","components/Layout.js","components/All-page.js","components/Certificado.js","components/LayoutExterno.js","components/InsigniaResultCard.js","components/Home.js","components/FileUpload.js","components/FetchData.js","components/Counter.js","components/AddActExtracurricular.js","components/Paginacion.js","components/ActividadCard.js","components/ActExtracurricular.js","historyBeta.js","components/Vacio.js","components/LoteActividades.js","components/LoteActividadesPorTipo.js","components/ActExtraEstudiante.js","components/InsigniaCard.js","components/Insignias.js","components/DownloadButton.js","components/Reporte.js","components/Autenticado.js","components/UpdateGestion.js","components/GestionActividad.js","components/GestionActividadPagination.js","components/InsigniasAdmin.js","components/ConsultarPerfil.js","components/ConsultarInsignias.js","components/ConsultarReportes.js","services/auth.service.js","App.js","registerServiceWorker.js","index.js","components/Imagenes/IconInsignias/shark.svg","components/Imagenes/Iconos/ESPOL-ExperienciaEstudiantil.svg","components/Imagenes/IconInsignias/ciudadania-ETICA.svg","components/Imagenes/IconInsignias/liderazgo-AUTOAGENCIA.svg","components/Imagenes/IconInsignias/CREATIVIDAD.svg","components/Imagenes/IconInsignias/interaccion-COMUNICACION.svg","components/Imagenes/IconInsignias/Autonomia-APRENDIZAJE.svg","components/Imagenes/IconInsignias/Gestion-ESTRATEGICA.svg"],"names":["module","exports","AppContext","React","createContext","currentUser","updateUser","url","localBack","localFront","cas","foto","CAS_FOTO","CAS_PARAMS","process","split","casOptions","version","constant","CAS_VERSION_2_0","path","protocol","casClient","CasClient","ColoredLine","color","style","backgroundColor","height","NavMenu","props","toggleNavbar","bind","state","collapsed","this","setState","logout","Swal","fire","title","html","timerProgressBar","button","closeOnClickOutside","showConfirmButton","closeOnEsc","allowOutsideClick","showLoading","fetch","backurl","method","headers","body","then","response","json","data","icon","strMensaje","context","Row","Col","src","logo","width","idpersona","className","textAlign","position","top","padding","apellidos","nombres","usuario","Navbar","light","Collapse","isOpen","navbar","NavItem","roles","includes","NavLink","tag","Link","to","onClick","updateInsignias","homepage","hidden","Component","displayName","name","contextType","Popout","externalWindow","containerElement","token","pdfResultDownload","pdfBase64Download","undefined","window","open","document","createElement","appendChild","Array","from","styleSheets","forEach","stylesheet","css","href","newStyleElement","rel","head","cssRules","length","rule","createTextNode","cssText","addEventListener","closeWindow","close","ReactDOM","createPortal","children","xml2js","require","casF","UserCards","uppercase","word","charAt","toUpperCase","slice","loadData","cedula","identificacion","matricula","loading","showPopout","iduser","prevProps","prevState","Container","fluid","key","onError","e","target","onerror","user","alt","fontSize","bodyXml","text","result","parseStringPromise","setPopoutOpen","Spinner","animation","contenido","renderInfoUser","SideBar","activePage","collapse","handleActive","activeRoute","side","routeName","location","pathname","indexOf","iconShape","with","active","styles","contentDiv","display","contentMargin","marginLeft","Layout","alignItems","offsetTop","offsetBottom","paddingRight","minHeight","background","left","bottom","right","marginBottom","AllPages","useState","numPages","setNumPages","pdf","file","options","workerSrc","onLoadSuccess","onLoadError","console","log","error","el","index","pageNumber","pdfjs","GlobalWorkerOptions","Certificado","cod","buscar","setBuscar","pdfResult","setPdfResult","pdfBase64","setPdfBase64","sendRequest","setSendRequest","useParams","codigo","useEffect","searchById","getPdf","useCallback","id","strEstado","objDatos","rutapdf","Card","CardHeader","CardBody","CardText","InputGroup","Input","placeholder","onChange","value","InputGroupAddon","addonType","InputGroupText","alignContent","maxHeight","overflow","LayoutExterno","armado","params","imgInsignia","shark","sostenibilidad","liderazgo","creatibidad","interaccion","autonomia","estrategia","imgInsigniaAP","sostenibilidadAP","liderazgoAP","creatibidadAP","interaccionAP","autonomiaAP","estrategiaAP","colors","InsigniaResultCard","insignia","tipos","criterios","resultados","criterio","populateInfoData","check","orderAndSecuence","idaexinsignia","idaexresultadoinsignia","borderColor","resultado","totalacumplir","nombre","filter","c","map","i","list","orden","descripcion","valor","CardFooter","insignias","verdaderos","act","push","Home","userId","newName","toLowerCase","titulo","FileUpload","toggleChangeAll","checked","ids","actividades","actSeleccionadas","allselectA","fileName","alertModal","loadAlert","successReadAlert","successSaveAlert","errorAlert","showLists","registroList","existenList","categorias","instituciones","totalPageA","actualPage","limite","siblingCount","fileRef","createRef","cleanComponent","closeModal","saveFile","uploadFile","postData","page","onChangeLimite","isForbidden","history","num","p","sibling","total","lenActividades","Math","ceil","event","reLoadTotalPage","idlist","splice","files","current","formData","FormData","append","tlista","tlistaExisten","ie","JSON","stringify","parse","replace","pagesA","Modal","centered","ModalHeader","ModalBody","Alert","role","ModalFooter","float","type","disabled","plantilla","download","accept","ref","Button","xs","selected","Pagination","PaginationItem","PaginationLink","pagePrevious","previous","youAreMySibling","pageNext","next","Table","striped","tipo","idaextipoactividad","find","t","responsable","registroActividadGestion","estudiante","codestudiante","email","anio","horas","inst","idaexentidad","instacredita","actcat","idinstitucion","handleChangeChk","FetchData","forecasts","populateWeatherData","contents","renderForecastsTable","aria-labelledby","forecast","date","temperatureC","temperatureF","summary","Counter","currentCount","incrementCounter","aria-live","MySwal","REACT_DOWNLOAD_FILE","withReactContent","AddActExtracurricular","openInNewTab","onChangeInst","selectedOption","dto","actividad","label","isNaN","institucion","valueInst","alertInst","selectedInst","onChangeInstInterna","elect","clasificacion","selectedInstInterna","onChangeClassInst","siglas","selectedClassInst","onlyNumber","test","preventDefault","edit","matriz","admin","idUser","idaexregistroactividad","categoria","descripcionact","evidencia","descripcionevid","tutor","puesto","contacto","idestudiante","revisado","gestion","idresponsable","comentarios","estado","persona","numeroidentificacion","sexo","estadopersona","tipodiscapacidad","tipoidentificacion","estadoempleado","tienediscapacidad","tienefamildiscapacidad","institucionesSelect","institucionesInternas","classInstitucion","radio","ArchivoEstado","fileState","handleSave","handleCancel","onChangeCategoria","onChangeTipo","oncodChange","onChangeRadio","onChangeFile","setTimeout","actid","match","cat","tip","populateActividadData","populateCategoriaTipoData","forma","registro","mensaje","clave","Number","Boolean","registroactividadgestion","usoInstitucion","confirmButtonText","isConfirmed","gotActividades","endsWith","a","getElementById","per","link","enlace","startsWith","onSubmit","htmlFor","rows","defaultValue","readOnly","required","nombrePorTipo","onKeyPress","usoHora","abrirDoc","handleSubir","size","isSearchable","usoTutor","tutorPorTipo","isClearable","formatCreateLabel","userInput","usoPuesto","renderAddActividadTable","instSel","instClassSel","instInternaSel","status","respuesta","tipoid","texto","d","LEFT_PAGE","range","step","Paginacion","fetchPageNumbers","totalPages","currentPage","pageNeighbours","totalNumbers","startPage","max","endPage","min","pages","hasLeftSpill","hasRightSpill","spillOffset","extraPages","gotoPage","onPageChanged","f","paginationData","pageLimit","totalRecords","handleClick","evt","handleMoveLeft","handleMoveRight","aria-label","aria-hidden","ActividadCard","handleEdit","Label","Badge","ActExtracurricular","offset","currentActividades","populateActividades","totalAct","renderActividadesTable","withRouter","createBrowserHistory","Vacio","editable","LoteActividades","categoriaId","dropdownOpen","toggle","toggleCard","toggleDD","newActEst","Media","flex","tab","activeTab","dataset","LoteActividadesPorTipo","tipoId","responsive","borderless","ActExtraEstudiante","actividades1","actividades2","actividades3","actividades4","actividades5","actividades6","changeTap","handleIsOpen","idTipo","Nav","pills","TabContent","TabPane","tabId","isEditable","UncontrolledCollapse","toggler","InsigniaCard","class","Insignias","insigniaResult","loading1","loading2","loading3","ultimoCambio","populateInsigniaData","getUltimoCambio","populateCriterio","populateInsigniaResult","resul","md","renderInsigniasCard","alertUltimoCambio","substring","iconInsignia","Reporte","idsSeleccionadas","toggleChangeAllInsignia","idsInsignias","allselectI","nombreCompleto","certificado","selectpage","entidades","openModal","agrupacion","report","handleChangeChkInsignia","onChangeAgrupacion","upDateIdsActSelect","upDateIdsInsigSelect","caracter","populateActividad","goToActividad","cate","acttipo","instE","insig","goToInsignia","generarReporteV2","renderReporteCard","cerrarModal","generarPdf","obj","getPdfGenerado","click","hoy","Date","codigoPdf","getHours","getMinutes","getSeconds","getDate","getMonth","getFullYear","acti","activ","insi","ing","vacio","generar","content","idsI","Autenticado","handleSearch","cer","populatePdf","gestionErr","UpdateGestion","estados","estadosErr","onChangeEstado","handleArea","idaexregistroactividadgestion","gotoGestion","gest","isDisabled","est","renderUpdateGestionTable","bandera","gestionId","GestionActividad","buscarCategoria","buscarTipo","loadingItem","pestanias","buscarEstado","actualizarActividades","indice","nextProps","pes","searchByCategoria","searchByTipo","miEstado","renderGestionTable2","GestionActividadPagination","setPage","pageNum","KeyPressEstudiante","charCode","KeyPressEstudianteNombre","buscarNombre","searchByNombre","KeyPressCategoria","KeyPressTipo","handleSearchNombre","siglaEstado","indexOfLastPost","indexOfFirstPost","currentPosts","pageNumbers","respItems","table","filename","sheet","buttonText","setPagePrevious","setYouAreMySibling","setPageNext","renderGestionTable","searchByEstado","InsigniasAdmin","ConsultarPerfil","idEstudianteSeleccionado","nombreEstudiante","identificacionEstudiante","matriculaEstudiante","username","estudianteSeleccionado","cargando","contentLoading","contentSearch","reload","resultData","fotoString","ConsultarInsignias","onChangeCantidad","buscarCantidad","numeroPersonasInsignias","tipoBusqueda","cantidades","handleAsignar","fechaConsegida","searchByCantidad","estudiantesConInsignias","ConsultarReportes","numeroCertificados","certificados","currentTotalPages","certificadosGenerados","currentUserSubject","BehaviorSubject","authService","login","idapp","netid","loggedUser","netId","realFetch","opts","Object","assign","asObservable","hist","App","auth","successRes","currentPath","catch","errorRes","subscription","subscribe","unsubscribe","Provider","render","exact","component","isLocalhost","hostname","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","getElementsByTagName","getAttribute","rootElement","dotenv","URL","origin","get","ready","unregister","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.39055bc5.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/user.e1b4db72.png\";","module.exports = __webpack_public_path__ + \"static/media/ciudadania-ETICA(B).246c4a10.svg\";","module.exports = __webpack_public_path__ + \"static/media/liderazgo-AUTOAGENCIA(B).54003c0d.svg\";","module.exports = __webpack_public_path__ + \"static/media/CREATIVIDAD(B).77437ed8.svg\";","module.exports = __webpack_public_path__ + \"static/media/interaccion-COMUNICACION(B).06960227.svg\";","module.exports = __webpack_public_path__ + \"static/media/Autonomia-APRENDIZAJE(B).31638fc3.svg\";","module.exports = __webpack_public_path__ + \"static/media/Gestion-ESTRATEGICA(B).2c6b9efb.svg\";","module.exports = __webpack_public_path__ + \"static/media/PlantillaDatos.645f2888.xlsx\";","module.exports = __webpack_public_path__ + \"static/media/ETICA_SOSTENIBILIDAD.48e2dc94.png\";","module.exports = __webpack_public_path__ + \"static/media/LIDERAZGO_AUTOAGENCIA.0072a7d0.png\";","module.exports = __webpack_public_path__ + \"static/media/CREATIVIDAD_INNOVACION_EMPRENDIMIENTO.66543b1e.png\";","module.exports = __webpack_public_path__ + \"static/media/INTERACCION_COMUNICACION.d6bfc0bc.png\";","module.exports = __webpack_public_path__ + \"static/media/AUTONOMIA_APRENDIZAJE.ca5eb370.png\";","module.exports = __webpack_public_path__ + \"static/media/ESTRATEGIA_CONOCIMIENTO.45ed36f8.png\";","module.exports = __webpack_public_path__ + \"static/media/GESTION.83698fa2.svg\";","module.exports = __webpack_public_path__ + \"static/media/cargamasiva.2bb2ac40.svg\";","module.exports = __webpack_public_path__ + \"static/media/ESPOL-extracurriculares.f98f5dfc.svg\";","import React from 'react';\r\n\r\nexport const AppContext = React.createContext({\r\n currentUser: null,\r\n updateUser: () => { },\r\n});","const url = {\r\n //Local\r\n localBack: 'https://localhost:44308',\r\n localFront: 'https://localhost:44320',\r\n //localBack: 'http://localhost:6586',\r\n //localFront: 'http://localhost:14518', \r\n cas: 'https://auth.test.espol.edu.ec',\r\n foto: 'http://192.168.253.6:8001/api/Carnet/ByToken?idApp=',\r\n CAS_FOTO: 'http://192.168.253.6:8085/token?idApp='\r\n //Sever-Pruebas\r\n //localBack : 'http://192.168.253.6:8002',\r\n //localFront : 'http://192.168.253.7:8002',\r\n //cas: 'http://auth.test.espol.edu.ec',\r\n}\r\n\r\nexport default url;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#000000;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", {\n id: \"MRxbt0.tif_00000058565096170075601810000016816344771735457724_\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M21.7,1.4c0.3,0.1,0.5,0.3,0.8,0.4c0.3,0.2,0.7,0.3,1.1,0.5c-0.2,0.4-0.3,0.7-0.5,1c0,0.1-0.1,0.1,0,0.2 c0.5,0.4,1,0.8,1.5,1.2c0.3-0.2,0.6-0.5,1-0.7c0.4,0.6,0.8,1.2,1.2,1.8c-0.3,0.2-0.7,0.5-1,0.7c0.1,0.2,0.2,0.4,0.3,0.6 c0.1,0.4,0.3,0.8,0.4,1.2c0,0.1,0.1,0.2,0.2,0.2c0.4,0,0.7-0.1,1.1-0.1c0.1,0.7,0.1,1.4,0.2,2.1c-0.4,0-0.9,0.1-1.3,0.1 c0,0.2,0,0.3,0,0.5c-0.1,0.5-0.2,1-0.3,1.4c-0.1,0.4-0.6,0.7-1,0.6c-0.5-0.1-0.8-0.4-0.9-0.8c0-0.1,0-0.3,0-0.4 c0.6-2.3,0.1-4.3-1.6-6c-2.4-2.4-6.4-2.2-8.7,0.3c-2.4,2.7-2,6.9,0.9,8.9c0.9,0.7,2,1,3.1,1.1c0.5,0,0.9,0.4,0.9,0.9 c0,0.5-0.3,0.9-0.7,1c-0.1,0-0.2,0-0.3,0c-0.6-0.1-1.1-0.2-1.7-0.3c-0.1,0-0.2,0-0.2,0.1c-0.2,0.3-0.3,0.7-0.5,1 c-0.6-0.3-1.3-0.6-1.9-0.9c0.2-0.4,0.3-0.7,0.5-1c0-0.1,0.1-0.1,0-0.2c-0.5-0.4-1-0.8-1.5-1.2c-0.3,0.2-0.6,0.5-1,0.7 c-0.4-0.6-0.8-1.2-1.2-1.8c0.3-0.2,0.7-0.5,1-0.7c-0.1-0.3-0.3-0.6-0.4-0.9c-0.1-0.3-0.2-0.6-0.3-0.9c0-0.1-0.1-0.2-0.2-0.1 C10.4,12,10,12,9.7,12c0-0.5-0.1-1.1-0.1-1.6c0-0.1,0-0.2,0-0.3c0-0.1,0-0.2,0.2-0.2c0.3,0,0.7-0.1,1-0.1c0.1,0,0.1-0.1,0.1-0.1 c0.1-0.6,0.2-1.3,0.3-1.9c-0.4-0.2-0.8-0.4-1.2-0.6c0.3-0.6,0.6-1.3,0.9-1.9c0.3,0.2,0.7,0.3,1,0.5c0.1,0.1,0.2,0,0.3-0.1 c0.4-0.5,0.8-1,1.2-1.5c-0.2-0.3-0.5-0.6-0.7-1c0.6-0.4,1.2-0.8,1.8-1.2c0.2,0.3,0.5,0.7,0.7,1C15.2,3.1,15.3,3,15.4,3 c0.5-0.2,1-0.4,1.5-0.5C17,2.4,17,2.4,17,2.3c0-0.4-0.1-0.7-0.1-1.1C17.5,1.1,18,1,18.6,1c0.1,0,0.2,0,0.4-0.1c0,0,0,0,0,0 c0,0.4,0.1,0.9,0.1,1.3c0.3,0,0.5,0,0.8,0.1c0.4,0.1,0.8,0.2,1.1,0.2c0.1,0,0.1,0,0.2-0.1C21.3,2.1,21.5,1.8,21.7,1.4 C21.7,1.4,21.7,1.4,21.7,1.4z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M15.6,7.9c0.3,0.6,0.6,1.2,0.9,1.7c0.2,0.5,0.5,1,0.7,1.5c0.1,0.3,0.3,0.3,0.6,0.3c0.4,0,0.8-0.1,1.1-0.1 c0.2,0,0.5-0.1,0.6-0.3c0.3-0.3,0.5-0.5,0.8-0.8c0.2-0.2,0.2-0.4,0.1-0.7c-0.5-1-1-2-1.5-3c0-0.1,0-0.1-0.1-0.2 c0.9,0,1.8,0,2.5,0.7c0.2,0.2,0.4,0.4,0.5,0.7c0.3,0.5,0.6,1.1,0.8,1.6c0.4,0.8,0.3,1.6-0.2,2.3c-0.1,0.2-0.3,0.3-0.3,0.5 c0,0.1,0.2,0.3,0.3,0.4c0.8,1.2,1.7,2.4,2.5,3.6c0.4,0.6,0.4,1.3,0,2c-0.4,0.6-1,0.9-1.8,0.8c-0.5-0.1-0.9-0.3-1.2-0.8 c-0.9-1.3-1.8-2.6-2.7-3.9C19.3,14.1,19.2,14,19,14c-0.5,0-0.9,0-1.4,0c-0.8-0.1-1.4-0.5-1.8-1.2c-0.3-0.6-0.6-1.1-0.9-1.7 c-0.3-0.7-0.3-1.4,0.1-2.1C15.2,8.6,15.4,8.3,15.6,7.9z\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"kj01SV.tif_00000133502837329801597560000000083229083816642739_\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M6.5,24.3c0-1.1,0-2.2,0-3.4c0-0.1,0-0.2,0.1-0.2c0.7-0.4,1.4-0.7,2.1-1.1c0.3-0.2,0.7-0.3,1-0.4 c0.5-0.1,1,0,1.5,0.1c1.1,0.4,2.2,0.7,3.2,1.1c0.4,0.1,0.8,0.3,1.2,0.4c0.4,0.1,0.9,0,1.3,0c0.9-0.1,1.7-0.3,2.6-0.4 c0.2,0,0.4,0,0.6,0c0.5,0,1,0.4,1.2,0.9c0.2,0.5,0.1,1-0.2,1.5c-0.1,0.1-0.2,0.2-0.3,0.2c-1.4,0.4-2.7,0.7-4.1,1.1 c-0.7,0.2-1.5,0.1-2.2-0.1c-0.4-0.1-0.8-0.2-1.3-0.3c-0.1,0-0.3,0-0.4,0.1c-0.2,0.1-0.2,0.3,0,0.4c0.2,0.1,0.4,0.2,0.7,0.3 c0.7,0.2,1.3,0.3,2,0.4c0.4,0.1,0.9,0,1.3-0.1c1.4-0.3,2.9-0.6,4.3-0.9c0.5-0.1,1-0.4,1.5-0.6c1.5-0.7,2.9-1.5,4.4-2.2 c0.2-0.1,0.4-0.2,0.7-0.3c0.5-0.2,1.2,0.2,1.3,0.7c0,0.2,0,0.4,0,0.5c0,0.3-0.2,0.5-0.4,0.7c-1.6,1.1-3.1,2.3-4.7,3.4 c-0.5,0.3-1,0.6-1.5,0.8C21,27.5,19.5,28.2,18,29c-0.4,0.2-0.8,0.2-1.2,0.3c-1.6,0.1-3.2,0-4.8-0.1c-0.7,0-1.3,0-2-0.1 c-0.4,0-0.7-0.1-1.1-0.2c-0.7-0.2-1.4-0.3-2.1-0.5c-0.3-0.1-0.3-0.1-0.3-0.3C6.5,26.8,6.5,25.5,6.5,24.3 C6.5,24.3,6.5,24.3,6.5,24.3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M1,24.5c0-1.4,0-2.9,0-4.3c0-0.2,0-0.4,0-0.6c0-0.2,0.2-0.3,0.4-0.3c1.2,0,2.3,0,3.5,0 c0.3,0,0.5,0.1,0.5,0.5c0,1.4,0,2.9,0,4.3c0,1.7,0,3.3,0,5c0,0.1,0,0.3,0,0.3c-0.1,0.1-0.3,0.2-0.5,0.2c-1.1,0-2.3,0-3.4,0 c-0.2,0-0.3-0.2-0.5-0.3c0,0,0-0.1,0-0.2C1,27.5,1,26,1,24.5C1,24.5,1,24.5,1,24.5z M3.2,22C3.6,22,4,21.6,4,21.2 c0-0.4-0.4-0.7-0.7-0.7c-0.4,0-0.8,0.4-0.8,0.8C2.5,21.6,2.8,22,3.2,22z\"\n}))));\n\nvar SvgGestion = function SvgGestion(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 30 30\",\n style: {\n enableBackground: \"new 0 0 30 30\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgGestion, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/GESTION.83698fa2.svg\";\nexport { ForwardRef as ReactComponent };","import React, { Component } from 'react';\r\nimport { AppContext } from './../AppContext';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink, Spinner } from 'reactstrap';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport { FaHome, FaUserGraduate } from 'react-icons/fa';\r\nimport { ImExit } from 'react-icons/im';\r\nimport { BiPackage } from 'react-icons/bi';\r\nimport { GiCardboardBoxClosed, GiFiles } from 'react-icons/gi';\r\nimport { AiFillContacts, AiOutlineSync } from 'react-icons/ai';\r\nimport { FaBookReader, FaUserSecret, FaUserCircle, FaShieldAlt } from \"react-icons/fa\";\r\nimport { RiShieldStarFill, RiFileList3Fill } from \"react-icons/ri\";\r\nimport './NavMenu.css';\r\nimport logo from './Imagenes/Iconos/ESPOL-ExperienciaEstudiantil.svg';\r\nimport url from \"./variables/url.js\";\r\nimport CasClient, { constant } from \"react-cas-client\";\r\nimport { ReactComponent as GestionIcon } from './Imagenes/Iconos/GESTION.svg';\r\nimport Swal from 'sweetalert2';\r\n\r\nimport gestion from './Imagenes/Iconos/GESTION.svg';\r\nimport carga from './Imagenes/Iconos/cargamasiva.svg';\r\nimport { Alert } from 'bootstrap';\r\n/*const CAS_PARAMS = url.cas.split(\"://\");*/\r\nconst CAS_PARAMS = process.env.REACT_APP_CAS.split(\"://\");\r\nconst casOptions = { version: constant.CAS_VERSION_2_0, path: '/', protocol: CAS_PARAMS[0] };\r\nconst casClient = new CasClient(CAS_PARAMS[1], casOptions);\r\nconst homepage = process.env.REACT_APP_EXP;\r\nconst backurl = process.env.REACT_APP_BACK;\r\n\r\nconst ColoredLine = ({ color }) => (\r\n \r\n);\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 };\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 logout() {\r\n casClient.logout();\r\n }\r\n\r\n updateInsignias() {\r\n\r\n Swal.fire({\r\n title: \"Cargando...\",\r\n html: \"Por favor, espere\",\r\n timerProgressBar: true,\r\n button: false,\r\n closeOnClickOutside: false,\r\n showConfirmButton: false,\r\n closeOnEsc: false,\r\n allowOutsideClick: false\r\n });\r\n Swal.showLoading();\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: null\r\n };\r\n fetch(backurl + '/api/ResultadoInsignia/UpdateInsignias', requestOptions)\r\n .then(response => response.json())\r\n .then(function (data) {\r\n Swal.fire({\r\n title: 'Hecho',\r\n icon: 'success',\r\n html: data.strMensaje\r\n });\r\n }\r\n )\r\n }\r\n\r\n render() {\r\n const currentUser = this.context; \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {currentUser && currentUser.idpersona > 0 ?\r\n
{currentUser.apellidos} {currentUser.nombres}   {currentUser.usuario === 'dyance' ? : < FaUserGraduate />}
\r\n :\r\n ''\r\n } \r\n \r\n
\r\n \r\n \r\n {/**/}\r\n \r\n
    \r\n \r\n {currentUser && currentUser.idpersona > 0 && currentUser.roles.includes('ADMINISTRADOR') ?\r\n \r\n : <>}\r\n \r\n \r\n {currentUser && currentUser.idpersona > 0 && currentUser.roles.includes('ADMINISTRADOR') ?\r\n \r\n : <>}\r\n \r\n \r\n {currentUser && currentUser.idpersona > 0 && currentUser.roles.includes('ADMINISTRADOR') ?\r\n \r\n : <>}\r\n \r\n \r\n {currentUser && currentUser.idpersona > 0 && currentUser.roles.includes('ADMINISTRADOR') ?\r\n \r\n : <>}\r\n \r\n \r\n {currentUser && currentUser.idpersona > 0 && currentUser.roles.includes('ADMINISTRADOR') ?\r\n \r\n : <>}\r\n \r\n \r\n {currentUser && currentUser.idpersona > 0 && currentUser.roles.includes('ADMINISTRADOR') ?\r\n \r\n : <>}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentUser && currentUser.idpersona > 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\nNavMenu.contextType = AppContext;","import React from \"react\";\r\nimport { Container } from \"reactstrap\";\r\n// used for making the prop types of this component\r\nimport PropTypes from \"prop-types\";\r\nimport './NavMenu.css';\r\n\r\nclass Footer extends React.Component {\r\n render() {\r\n return (\r\n \r\n \r\n

\r\n Escuela Superior Politécnica del Litoral - Campus Gustavo Galindo - Guayaquil - Ecuador\r\n
\r\n © El contenido de esta obra es de propiedad de la ESPOL. Todos los derechos reservados.\r\n
\r\n Prohibida su reproducción total o parcial, comunicación pública o distribución sin autorización previa del titular de los derechos.\r\n

\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nFooter.propTypes = {\r\n default: PropTypes.bool,\r\n fluid: PropTypes.bool,\r\n};\r\n\r\nexport default Footer;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class Popout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n externalWindow: null,\r\n containerElement: null,\r\n token: \"\",\r\n foto: \"\", \r\n pdfResultDownload: 0, \r\n pdfBase64Download: undefined,\r\n };\r\n }\r\n\r\n // When we create this component, open a new window\r\n componentDidMount() {\r\n const features = 'width=1200, height=750, left=300, top=200';\r\n const externalWindow = window.open('', '', features);\r\n\r\n let containerElement = null;\r\n if (externalWindow) {\r\n containerElement = externalWindow.document.createElement('div');\r\n externalWindow.document.body.appendChild(containerElement);\r\n\r\n /*Copy the app's styles into the new window*/\r\n const stylesheets = Array.from(document.styleSheets);\r\n stylesheets.forEach(stylesheet => {\r\n const css = stylesheet ;\r\n\r\n if (stylesheet.href) {\r\n const newStyleElement = document.createElement('link');\r\n newStyleElement.rel = 'stylesheet';\r\n newStyleElement.href = stylesheet.href;\r\n externalWindow.document.head.appendChild(newStyleElement);\r\n } else if (css && css.cssRules && css.cssRules.length > 0) {\r\n const newStyleElement = document.createElement('style');\r\n Array.from(css.cssRules).forEach(rule => {\r\n newStyleElement.appendChild(document.createTextNode(rule.cssText));\r\n });\r\n externalWindow.document.head.appendChild(newStyleElement);\r\n }\r\n });\r\n\r\n externalWindow.document.title = this.props.title;\r\n\r\n // Make sure the window closes when the component unloads\r\n externalWindow.addEventListener('beforeunload', () => {\r\n this.props.closeWindow();\r\n }); \r\n }\r\n\r\n this.setState({\r\n externalWindow: externalWindow,\r\n containerElement: containerElement\r\n });\r\n }\r\n\r\n // Make sure the window closes when the component unmounts\r\n componentWillUnmount() {\r\n if (this.state.externalWindow) {\r\n this.state.externalWindow.close();\r\n }\r\n }\r\n\r\n loadImage() {\r\n /*console.log(\"load Image\");*/\r\n fetch(this.props.fetch, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(token => { \r\n /*console.log(\"data: \", token);*/ \r\n });\r\n \r\n }\r\n\r\n render() {\r\n if (!this.state.containerElement) {\r\n return null;\r\n } \r\n // Render this component's children into the root element of the popout window\r\n return ReactDOM.createPortal(this.props.children, this.state.containerElement);\r\n }\r\n}\r\n\r\nPopout.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n fetch: PropTypes.string,\r\n closeWindow: PropTypes.func,\r\n imageLoad: PropTypes.func\r\n};\r\n","import React, { Component } from \"react\";\r\nimport { Container, Card, CardHeader, CardText , Spinner } from 'reactstrap';\r\nimport PropTypes from 'prop-types';\r\nimport user from './Imagenes/user.png';\r\nimport url from \"./variables/url.js\";\r\nimport Popout from './Popout';\r\nimport { AppContext } from '../AppContext';\r\n\r\nconst xml2js = require('xml2js');\r\nconst APP_ID = process.env.REACT_APP_ID;\r\nconst casF = url.CAS_FOTO;\r\nconst foto = url.foto;\r\n\r\nclass UserCards extends Component {\r\n constructor(props) {\r\n super(props);\r\n const {\r\n\r\n } = props.UserCards || {};\r\n this.state = {\r\n data: [],\r\n loading: true,\r\n cedula: this.props.cedula,\r\n nombres: this.props.nombres,\r\n apellidos: this.props.apellidos,\r\n foto: \"\",\r\n matricula: \"\",\r\n showPopout: false,\r\n iduser: 0,\r\n };\r\n }\r\n \r\n\r\n uppercase = word => {\r\n return word.charAt(0).toUpperCase() + word.slice(1);\r\n };\r\n\r\n loadData = () => {\r\n const currentUser = this.context;\r\n /*console.log(currentUser);*/\r\n if (currentUser != null) {\r\n this.state.apellidos = currentUser.apellidos;\r\n this.state.nombres = currentUser.nombres;\r\n this.state.cedula = currentUser.identificacion;\r\n this.state.matricula = currentUser.matricula;\r\n this.state.foto = currentUser.foto;\r\n this.state.loading = false; \r\n }\r\n }; \r\n\r\n componentDidMount() {\r\n this.loadData();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona });\r\n this.loadData();\r\n }\r\n }\r\n\r\n renderInfoUser() {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n (e.target.onerror = null, e.target.src = user)}\r\n alt=\"\"\r\n />\r\n
\r\n

\r\n {this.uppercase(this.state.nombres)}
\r\n {this.uppercase(this.state.apellidos)}
\r\n {this.state.cedula}\r\n

\r\n\r\n
\r\n
\r\n
\r\n ); \r\n }\r\n\r\n setPopoutOpen(open) {\r\n this.setState({\r\n showPopout: open\r\n });\r\n }\r\n\r\n loadImage(matricula) {\r\n\r\n let bodyXml = `\r\n \r\n \r\n \r\n ${matricula}\r\n \r\n \r\n `;\r\n\r\n fetch('https://ws.espol.edu.ec/saac/wsMedia.asmx', {\r\n method: 'POST', headers: { 'Content-Type': 'text/xml' }, body: bodyXml \r\n })\r\n .then(response => response.text())\r\n .then((result) => {\r\n xml2js.parseStringPromise(result)\r\n .then((data) => { \r\n this.setState({foto: data['downloadFotoResult']});\r\n /*console.log(this.state.foto);*/\r\n }\r\n )\r\n });\r\n }\r\n \r\n\r\n // When this component is unloaded, make sure we close the popout\r\n componentDidMount() {\r\n window.addEventListener('beforeunload', () => {\r\n this.setPopoutOpen(false);\r\n });\r\n }\r\n\r\n // This returns the HTML for the popout, or null if the popout isn't visible\r\n getPopout() {\r\n if (!this.state.showPopout) {\r\n return null;\r\n }\r\n\r\n return (\r\n this.setPopoutOpen(true)}>\r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n\r\n let contenido = this.state.loading ? <> : this.renderInfoUser();\r\n\r\n return (\r\n
\r\n {contenido} \r\n
\r\n );\r\n }\r\n}\r\n\r\nUserCards.propTypes = {\r\n /*actividades: PropTypes.array.isRequired,*/ \r\n cedula: PropTypes.string.isRequired,\r\n nombre: PropTypes.string,\r\n apellido: PropTypes.string,\r\n user: PropTypes.string.isRequired\r\n};\r\n\r\nUserCards.contextType = AppContext;\r\nexport default UserCards;","import React, { Component } from \"react\";\r\nimport { Collapse, NavbarBrand, NavbarToggler } from \"reactstrap\";\r\nimport { Link } from 'react-router-dom';\r\nimport {\r\n ProSidebar,\r\n Menu,\r\n MenuItem,\r\n SubMenu,\r\n SidebarHeader,\r\n SidebarContent,\r\n SidebarFooter\r\n} from \"react-pro-sidebar\";\r\nimport { FaGem, FaList, FaGithub, FaCodiepie, FaBookReader } from \"react-icons/fa\";\r\nimport { AiFillHome } from \"react-icons/ai\";\r\nimport { RiShieldStarFill, RiFileList3Fill } from \"react-icons/ri\";\r\nimport UserCards from './UserCards';\r\nimport './SideBar.css';\r\nimport { AppContext } from './../AppContext';\r\n\r\nconst homepage = process.env.REACT_APP_EXP;\r\n\r\nconst styles = {\r\n sideBarHeight: {\r\n height: \"100vh\",\r\n },\r\n sidebarBgColor: {\r\n bgcolor: \"#ffffff\",\r\n },\r\n}\r\n\r\nconst headerStyle = {\r\n padding: \"24px\",\r\n textTransform: \"uppercase\",\r\n fontWeight: \"bold\",\r\n letterSpacing: \"1px\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"noWrap\"\r\n};\r\n\r\nconst activeStyle = { \r\n color: \"#DFDFDF\",\r\n};\r\n\r\nexport class SideBar extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n iduser: 0,\r\n roles: [],\r\n activePage: '/',\r\n collapsed: this.props.collapse\r\n };\r\n\r\n this.handleActive = this.handleActive.bind(this);\r\n this.activeRoute.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n let id = 0;\r\n let currentUser = this.context\r\n if (currentUser != null) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n }\r\n /*console.log(\"id\", id);*/\r\n }\r\n\r\n componentDidUpdate() {\r\n let currentUser = this.context\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n }\r\n }\r\n\r\n handleActive(side) {\r\n if (!(side === this.state.activePage)) {\r\n this.setState({ activePage: side });\r\n }\r\n }\r\n\r\n activeRoute(routeName) {\r\n return this.props.location.pathname.indexOf(routeName) > -1 ? \"active\" : \"\";\r\n }\r\n /*765*/\r\n render() {\r\n return (\r\n \r\n \r\n {this.state.collapsed ? <> : < UserCards cedula={\"\"} nombres={\"\"} apellidos={\"\"} user={\"\"} />}\r\n \r\n } >{this.state.collapsed ? '' : 'Inicio'} this.handleActive(homepage + \"Inicio\")} /> \r\n } >{this.state.collapsed ? '' : 'Certificados'} this.handleActive(homepage + \"Reporte\")} /> \r\n } >{this.state.collapsed ? '' : 'Actividades'} this.handleActive(homepage + \"Act-Est\")} />\r\n } >{this.state.collapsed ? '' : 'Insignias'} this.handleActive(homepage + \"Insignia\")} />\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n \r\n}\r\nSideBar.contextType = AppContext;\r\nexport default SideBar;","import React, { Component } from 'react';\r\nimport { Container, Row, Col, Card } from 'reactstrap';\r\nimport { NavMenu } from './NavMenu';\r\nimport Footer from \"./Footer.js\";\r\nimport SideBar from './SideBar.js';\r\nimport StickyBox from \"react-sticky-box\";\r\nimport \"react-pro-sidebar/dist/css/styles.css\";\r\n\r\nconst styles = {\r\n contentDiv: {\r\n display: \"flex\",\r\n },\r\n contentMargin: {\r\n marginLeft: \"10px\",\r\n width: \"100%\",\r\n },\r\n};\r\n\r\n/*PRUEBA stiky style = {{ display: \"flex\", alignItems: \"flex-start\" }}*/\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 \r\n \r\n \r\n {/* */}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {this.props.children}\r\n
\r\n
\r\n
\r\n {/*
*/}\r\n
\r\n

\r\n Escuela Superior Politécnica del Litoral - Campus Gustavo Galindo - Guayaquil - Ecuador\r\n
\r\n © El contenido de esta obra es de propiedad de la ESPOL. Todos los derechos reservados.\r\n
\r\n Prohibida su reproducción total o parcial, comunicación pública o distribución sin autorización previa del titular de los derechos.\r\n

\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import { error } from \"jquery\";\r\nimport React, { useState } from \"react\";\r\nimport { Document, Page, pdfjs } from \"react-pdf\";\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nexport default function AllPages(props) {\r\n const [numPages, setNumPages] = useState(null);\r\n\r\n function onDocumentLoadSuccess({ numPages }) {\r\n setNumPages(numPages);\r\n }\r\n\r\n const { pdf } = props;\r\n\r\n return (\r\n \r\n {Array.from(new Array(numPages), (el, index) => (\r\n \r\n ))}\r\n \r\n );\r\n}","// Functional component\r\nimport React, { useState, useEffect, useCallback } from 'react';\r\nimport { Container, Row, Col, Button } from 'reactstrap';\r\nimport { Input, InputGroup, InputGroupAddon, InputGroupText, Table } from 'reactstrap';\r\nimport { Card, CardHeader, CardBody, CardText, CardFooter } from 'reactstrap';\r\nimport { useParams } from 'react-router-dom';\r\nimport './PDF.css';\r\nimport AllPagesPDFViewer from './All-page';\r\n\r\nconst localBack = process.env.REACT_APP_BACK;\r\n\r\nconst Certificado = ({ cod }) => {\r\n const [loading1, setLoading1] = useState(true);\r\n const [loading2, setLoading2] = useState(true);\r\n const [buscar, setBuscar] = useState(cod);\r\n const [pdfResult, setPdfResult] = useState(0);\r\n const [pdfBase64, setPdfBase64] = useState('');\r\n const [sendRequest, setSendRequest] = useState(false);\r\n const { codigo } = useParams()\r\n /*console.log(codigo);*/\r\n\r\n useEffect(() => {\r\n if (sendRequest) {\r\n searchById(buscar);\r\n setSendRequest(false);\r\n }\r\n },\r\n [sendRequest]);\r\n\r\n useEffect(() => {\r\n /*console.log(`Codigo: ${buscar}`);*/\r\n searchById();\r\n }, [buscar]);\r\n\r\n const getPdf = useCallback((id) => {\r\n fetch(localBack + '/api/FileUpload/DescargarEvidencia/' + id, {\r\n method: 'GET',\r\n })\r\n .then(response => { \r\n return response.json();\r\n })\r\n .then(data => {\r\n if (data !== '') {\r\n setPdfBase64(\"data:application/pdf;base64,\" + data + \"\");\r\n setPdfResult(1);\r\n } else {\r\n setPdfResult(-1)\r\n }\r\n });\r\n });\r\n\r\n const searchById = useCallback(\r\n () => {\r\n /*this.populateActividad(this.state.buscar, 'A');*/\r\n if (buscar !== '') {\r\n fetch(localBack + '/api/Certificado/GetByCodigo/' + buscar, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data.strEstado === \"S\") {\r\n let certificadoRow = data.objDatos;\r\n let codigo = certificadoRow.rutapdf.split(',');\r\n getPdf(codigo[1]);\r\n } else {\r\n //console.log('Documento No existe.');\r\n }\r\n });\r\n setPdfResult(1);\r\n } else {\r\n setPdfResult(-1);\r\n }\r\n });\r\n\r\n return (\r\n
\r\n\r\n \r\n \r\n \r\n Autenticación\r\n \r\n\r\n Ingrese el código del certificado para verificar autenticidad.\r\n \r\n \r\n \r\n setBuscar(e.target.value)} value={buscar} />\r\n \r\n setSendRequest(true)}>\r\n Consultar\r\n \r\n \r\n \r\n \r\n \r\n {pdfResult > 0 ?\r\n \r\n \r\n \r\n : pdfResult < 0\r\n ?\r\n \r\n No se encontró el certificado.\r\n Por favor, verifique que le código se haya escrito correctamente.\r\n \r\n :\r\n <>\r\n }\r\n \r\n \r\n \r\n \r\n\r\n
\r\n );\r\n}\r\nexport default Certificado;","import React, { Component } from 'react';\r\nimport { Container, Row, Col, Button } from 'reactstrap';\r\nimport { useParams } from 'react-router-dom';\r\nimport { Input, InputGroup, InputGroupAddon, InputGroupText, Table } from 'reactstrap';\r\nimport { Card, CardHeader, CardBody, CardText, CardFooter } from 'reactstrap';\r\nimport logo from './Imagenes/Iconos/ESPOL-ExperienciaEstudiantil.svg';\r\nimport url from \"./variables/url.js\";\r\nimport \"react-pro-sidebar/dist/css/styles.css\";\r\n/*import pdfPrueba from './Content/plantilla.pdf';*/\r\nimport './PDF.css';\r\nimport AllPagesPDFViewer from './All-page';\r\nimport Certificado from './Certificado';\r\nimport SinglePagePDFViewer from './Single-page';\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\n\r\nconst ColoredLine = ({ color }) => (\r\n \r\n);\r\n\r\nexport class LayoutExterno extends Component {\r\n static displayName = LayoutExterno.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n armado: 0,\r\n codigo: '', \r\n };\r\n }\r\n\r\n componentDidMount() {\r\n var params = window.location.pathname.split('/');\r\n var codigo = params[params.length - 1];\r\n\r\n //console.log('codigo: ', url); \r\n //this.setState({codigo: url});\r\n this.setState({ codigo: codigo });\r\n }\r\n\r\n render() {\r\n var url = this.state.codigo;\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 {url && }\r\n \r\n \r\n

\r\n Escuela Superior Politécnica del Litoral - Campus Gustavo Galindo - Guayaquil - Ecuador\r\n
\r\n © El contenido de esta obra es de propiedad de la ESPOL. Todos los derechos reservados.\r\n
\r\n Prohibida su reproducción total o parcial, comunicación pública o distribución sin autorización previa del titular de los derechos.\r\n

\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Card, CardImg, CardText, CardBody, CardFooter, CardHeader, Row, Col , List} from 'reactstrap';\r\nimport { AiOutlineCheck, AiOutlineClose, AiFillCheckSquare, AiFillCloseSquare } from 'react-icons/ai';\r\nimport { ImCheckboxChecked, ImCheckboxUnchecked } from 'react-icons/im';\r\nimport url from \"./variables/url.js\";\r\nimport shark from './Imagenes/IconInsignias/shark.svg';\r\nimport sostenibilidad from './Imagenes/IconInsignias/ciudadania-ETICA.svg';\r\nimport liderazgo from './Imagenes/IconInsignias/liderazgo-AUTOAGENCIA.svg';\r\nimport creatibidad from './Imagenes/IconInsignias/CREATIVIDAD.svg';\r\nimport interaccion from './Imagenes/IconInsignias/interaccion-COMUNICACION.svg';\r\nimport autonomia from './Imagenes/IconInsignias/Autonomia-APRENDIZAJE.svg';\r\nimport estrategia from './Imagenes/IconInsignias/Gestion-ESTRATEGICA.svg';\r\n\r\nimport sostenibilidadAP from './Imagenes/IconInsignias/ciudadania-ETICA(B).svg';\r\nimport liderazgoAP from './Imagenes/IconInsignias/liderazgo-AUTOAGENCIA(B).svg';\r\nimport creatibidadAP from './Imagenes/IconInsignias/CREATIVIDAD(B).svg';\r\nimport interaccionAP from './Imagenes/IconInsignias/interaccion-COMUNICACION(B).svg';\r\nimport autonomiaAP from './Imagenes/IconInsignias/Autonomia-APRENDIZAJE(B).svg';\r\nimport estrategiaAP from './Imagenes/IconInsignias/Gestion-ESTRATEGICA(B).svg';\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\n\r\nconst imgInsignia = [shark, sostenibilidad, liderazgo, creatibidad, interaccion, autonomia, estrategia];\r\n\r\nconst imgInsigniaAP = [shark, sostenibilidadAP, liderazgoAP, creatibidadAP, interaccionAP, autonomiaAP, estrategiaAP];\r\n\r\nconst colors = ['#FFFFFF', '#354750', '#F48700', '#A72186', '#1DA656', '#EA3B13','#1F58AB']\r\n\r\n\r\nclass InsigniaResultCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const { \r\n } = props.insignia || {};\r\n\r\n //console.log(this.props.criterios);\r\n\r\n this.state = {\r\n tipos: [],\r\n insignia: [],\r\n criterios: this.props.criterios,\r\n resultados: this.props.insignia.criterio\r\n };\r\n this.populateInfoData();\r\n }\r\n\r\n componentDidMount() {\r\n this.populateInfoData(); \r\n }\r\n\r\n //static getDerivedStateFromProps(props) {\r\n // this.setState({ insignia: props.insignia, criterios: props.criterios, tipos: [], insignia: [] });\r\n // this.populateInfoData();\r\n //}\r\n\r\n render() {\r\n let check = this.orderAndSecuence(this.state.criterios, this.props.insignia.idaexinsignia);\r\n return (\r\n
\r\n \r\n = this.props.insignia.totalacumplir ? { color: colors[0], backgroundColor: colors[this.props.insignia.idaexinsignia], borderColor: '#333' } : { color: '#717D81', backgroundColor: colors[0], borderColor: '#333' }}>\r\n
\r\n \r\n = this.props.insignia.totalacumplir ? imgInsignia[this.props.insignia.idaexinsignia] : imgInsigniaAP[this.props.insignia.idaexinsignia]} style={{ width: \"10%\", height: \"5%\" }} />\r\n  \r\n {this.props.insignia.insignia.nombre}\r\n \r\n
\r\n
\r\n \r\n Actividades Aprobadas:\r\n {this.state.criterios.filter(c => c.criterio.idaexinsignia === this.props.insignia.idaexinsignia).map((resultado, i, list) => {\r\n if (this.props.insignia.idaexinsignia == resultado.criterio.idaexinsignia) { \r\n return (\r\n \r\n {i > 0 && resultado.criterio.orden === list[i - 1].criterio.orden ? O : check.includes(resultado.criterio.orden) ? : }\r\n  {resultado.criterio.descripcion}\r\n  ({resultado.resultado == null ? 0 : resultado.resultado > resultado.criterio.valor ? resultado.criterio.valor : resultado.resultado}/{resultado.criterio.valor})\r\n \r\n )\r\n } \r\n }\r\n )}\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n populateInfoData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n insignias: data.objDatos\r\n });\r\n });\r\n\r\n fetch(localBack + '/api/TipoActividad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n tipos: data.objDatos \r\n });\r\n });\r\n }\r\n\r\n orderAndSecuence(criterios, idaexinsignia) {\r\n let result = [];\r\n let verdaderos = [];\r\n let check = [];\r\n criterios.filter(c => c.criterio.idaexinsignia === idaexinsignia).map(act => { result.push(act) }); \r\n result.map((c, i, list) => {\r\n check.push({ 'orden': c.criterio.orden, 'valor': c.resultado >= c.criterio.valor });\r\n });\r\n check.filter(c => c.valor === true).map(c => { verdaderos.push(c.orden) }); \r\n return verdaderos;\r\n }\r\n \r\n}\r\n\r\nInsigniaResultCard.propTypes = {\r\n insignia: PropTypes.shape({ \r\n idaexresultadoinsignia: PropTypes.number.isRequired,\r\n idaexinsignia: PropTypes.number.isRequired,\r\n resultado: PropTypes.number.isRequired,\r\n totalacumplir: PropTypes.number.isRequired,\r\n insignia: PropTypes.shape({\r\n idaexinsignia: PropTypes.number.isRequired,\r\n nombre: PropTypes.string.isRequired,\r\n descripcion: PropTypes.string.isRequired\r\n }).isRequired, \r\n }).isRequired,\r\n criterios: PropTypes.arrayOf(PropTypes.shape({\r\n idaexresultadocriterio: PropTypes.number.isRequired,\r\n idaexcriterio: PropTypes.number.isRequired,\r\n idestudiante: PropTypes.number.isRequired,\r\n resultado: PropTypes.number.isRequired,\r\n criterio: PropTypes.shape({\r\n idaexcriterio: PropTypes.number.isRequired,\r\n idaexinsignia: PropTypes.number.isRequired,\r\n idaextipoactividad: PropTypes.number.isRequired,\r\n orden: PropTypes.string.isRequired,\r\n secuencia: PropTypes.string.isRequired,\r\n descripcion: PropTypes.string.isRequired,\r\n operacion: PropTypes.string.isRequired,\r\n valor: PropTypes.number.isRequired,\r\n estado: PropTypes.string.isRequired,\r\n }).isRequired\r\n })).isRequired,\r\n};\r\n\r\n//idaexresultadoinsignia: 1,\r\n// idaexinsignia: 1,\r\n// nombre: \"Ciudadan�a y �tica para la sostenibilidad\",\r\n// idestudiante: 0,\r\n// resultado: 3,\r\n// totalacumplir: 5,\r\n// insignia: { },\r\n//criterios: { }\r\n\r\nexport default InsigniaResultCard;\r\n","import React, { Component } from 'react';\r\nimport { Card, CardImg, CardText, CardBody, CardFooter, CardHeader } from 'reactstrap';\r\nimport { AiOutlineCheck, AiOutlineClose } from 'react-icons/ai';\r\nimport InsigniaResultCard from './InsigniaResultCard';\r\nimport { AppContext } from '../AppContext';\r\n\r\nconst colors = ['#FFFFFF', '#354750', '#F48700', '#A72186', '#1DA656', '#EA3B13', '#1F58AB']\r\n\r\nconst nombre = 'Kleber Enrique';\r\n\r\nconst texto = `En este sistema podr�s visualizar tus actividades extracurriculares en la ESPOL, incluyendo clubes, competencias, logros en deportes, cultura entre otros. Adem�s, podr�s descargarte certificados de tus actividades extracurriculares que podr�an ayudarte en procesos de selecci�n laboral personal o en aplicaci�n a programas de postgrados. Se actualizar� constantemente y se pueden incluir actividades de otras instituciones para validarlas. Tambi�n se pueden visualizar insignias digitales obtenidas por destacar en actividades extracurriculares.\r\n\r\nSi tienes dudas nos puedes contactar a acompanamiento@espol.edu.ec`;\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 userId: 0,\r\n nombres: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let user = this.context;\r\n if (user != null) { \r\n this.setState({ userId: user.idpersona, nombres: user.nombres });\r\n //console.log(this.state);\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n let user = this.context;\r\n if (user != null && this.state.iduser == 0) { \r\n this.setState({ userId: user.idpersona, nombres: user.nombres });\r\n //console.log(this.state);\r\n }\r\n }\r\n\r\n titulo(name) {\r\n let lowerCaseName = name.toLowerCase();\r\n let newName = lowerCaseName.split(\" \"); \r\n return newName[0].charAt(0).toUpperCase() + newName[0].slice(1) + \" \" + newName[1].charAt(0).toUpperCase() + newName[1].slice(1);\r\n }\r\n\r\n render() { \r\n const currentUser = this.context;\r\n return (\r\n
\r\n {currentUser && currentUser.idpersona > 0 ?

¡Hola {this.titulo(currentUser.nombres)}!

:

¡Hola!

}\r\n En este sistema podrás visualizar tus actividades extracurriculares en la ESPOL, incluyendo clubes, competencias, logros en deportes, cultura entre otros. Además, podrás descargarte certificados de tus actividades extracurriculares que podrían ayudarte en procesos de selección laboral personal o en aplicación a programas de postgrados. Se actualizará constantemente y se pueden incluir actividades de otras instituciones para validarlas. También se pueden visualizar insignias digitales obtenidas por destacar en actividades extracurriculares.\r\n

\r\n Si tienes dudas nos puedes contactar a acompanamiento@espol.edu.ec\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\nHome.contextType = AppContext;\r\n","import React, { Component } from 'react';\r\nimport { Table, Button, Alert, Card, Input } from 'reactstrap';\r\nimport { Modal, ModalBody, ModalHeader, ModalFooter} from 'reactstrap';\r\nimport { Pagination, PaginationItem, PaginationLink } from 'reactstrap';\r\nimport { Row, Col } from 'reactstrap';\r\nimport plantilla from './Content/PlantillaDatos.xlsx';\r\nimport { AppContext } from '../AppContext';\r\n\r\nimport url from \"./variables/url.js\";\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\nconst homepage = process.env.REACT_APP_EXP;\r\n\r\nexport class FileUpload extends Component {\r\n static displayName = FileUpload.name;\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n file: undefined, fileName: undefined,\r\n alertModal: false, loadAlert: false, successReadAlert: false, successSaveAlert: false, errorAlert: false,\r\n showLists: false, registroList: [], existenList: [],\r\n actividades: [], tipos: [], categorias: [], instituciones: [],\r\n actSeleccionadas: [],\r\n totalPageA: 0,\r\n actualPage: 1,\r\n limite: 10,\r\n allselectA: true,\r\n iduser: 0,\r\n roles: [], \r\n siblingCount: 1,\r\n }\r\n this.fileRef = React.createRef();\r\n\r\n // METODOS\r\n this.cleanComponent = this.cleanComponent.bind(this);\r\n this.closeModal = this.closeModal.bind(this);\r\n this.saveFile = this.saveFile.bind(this);\r\n this.uploadFile = this.uploadFile.bind(this);\r\n this.postData = this.postData.bind(this);\r\n this.page = this.page.bind(this);\r\n this.toggleChangeAll = this.toggleChangeAll.bind(this);\r\n this.onChangeLimite = this.onChangeLimite.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n let currentUser = this.context;\r\n this.populateInfoData();\r\n if (currentUser != null) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n isForbidden() {\r\n this.props.history.push({\r\n pathname: homepage,\r\n })\r\n }\r\n\r\n page(num) {\r\n if (this.state.actualPage !== num) {\r\n this.setState({\r\n actualPage: num\r\n });\r\n }\r\n }\r\n\r\n pagePrevious() {\r\n if (this.state.actualPage !== 1) {\r\n let p = this.state.actualPage;\r\n this.setState({\r\n actualPage: p - 1\r\n });\r\n }\r\n }\r\n\r\n pageNext() {\r\n if (this.state.actualPage !== this.state.totalPageA) {\r\n let p = this.state.actualPage;\r\n this.setState({\r\n actualPage: p + 1\r\n });\r\n }\r\n }\r\n\r\n youAreMySibling(num) {\r\n let actualPage = this.state.actualPage;\r\n let sibling = this.state.siblingCount;\r\n let total = this.state.totalPageA;\r\n let valor = false;\r\n if (num === actualPage || num - sibling === actualPage || num + sibling === actualPage) {\r\n valor = true;\r\n }\r\n if (actualPage === 1 && (num - 1 === actualPage || num - 2 === actualPage || num - 3 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === 2 && (num - 1 === actualPage || num - 2 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === total && (num + 1 === actualPage || num + 2 === actualPage || num + 3 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === total - 1 && (num + 1 === actualPage || num + 2 === actualPage)) {\r\n valor = true;\r\n }\r\n //console.log(num, valor);\r\n return valor;\r\n }\r\n\r\n reLoadTotalPage(lenActividades, limite) {\r\n this.setState({ totalPageA: Math.ceil(lenActividades / limite), actualPage: 1 });\r\n /*console.log('Total Paginas: ',this.state.totalPageA);*/\r\n }\r\n\r\n onChangeLimite(event) {\r\n //console.log('Cambio limite');\r\n //console.log(event.target.value);\r\n var num = event.target.value;\r\n this.setState({ limite: num, actualPage: 1});\r\n this.reLoadTotalPage(this.state.actividades.length, num);\r\n }\r\n\r\n handleChangeChk(act) {\r\n /*console.log(id);*/\r\n let idlist = this.state.actSeleccionadas;\r\n if (idlist.includes(act)) {\r\n let el = idlist.indexOf(act);\r\n if (el > -1) {\r\n idlist.splice(el, 1);\r\n }\r\n } else {\r\n idlist.push(act)\r\n }\r\n this.setState({ actSeleccionadas: idlist });\r\n\r\n if (this.state.actSeleccionadas.length === this.state.actividades.length) {\r\n this.setState({ allselectA: true });\r\n } else {\r\n this.setState({ allselectA: false });\r\n }\r\n //console.log(this.state.actSeleccionadas);\r\n }\r\n\r\n toggleChangeAll = e => {\r\n /*console.log(e.target.checked)*/\r\n if (e.target.checked) {\r\n let ids = [];\r\n this.state.actividades.map(act => { ids.push(act) });\r\n this.setState({ actSeleccionadas: ids, allselectA: e.target.checked });\r\n } else {\r\n this.setState({ actSeleccionadas: [], allselectA: e.target.checked });\r\n }\r\n } \r\n\r\n saveFile(e) {\r\n if (e.target.files[0] !== undefined) {\r\n //console.log(this.state.fileName);\r\n //console.log(this.state.file);\r\n //console.log(e.target.files[0]);\r\n //console.log(e.target.files[0].name);\r\n this.setState({ file: e.target.files[0], fileName: e.target.files[0].name, showLists: false });\r\n\r\n }\r\n }\r\n\r\n cleanComponent() {\r\n this.fileRef.current.value = null;\r\n this.setState({\r\n file: undefined, fileName: undefined,\r\n alertModal: false, loadAlert: false, successReadAlert: false, successSaveAlert: false, errorAlert: false,\r\n showLists: false, registroList: [], existenList: []\r\n });\r\n }\r\n\r\n closeModal() {\r\n this.setState({ alertModal: false, successReadAlert: false, successSaveAlert: false, errorAlert: false });\r\n }\r\n\r\n uploadFile() {\r\n this.setState({ alertModal: true, loadAlert: true });\r\n //console.log(this.state.file);\r\n const formData = new FormData();\r\n formData.append(\"formFile\", this.state.file);\r\n formData.append(\"fileName\", this.state.fileName);\r\n try {\r\n fetch(localBack + \"/api/FileUpload/TransformFile\", { method: 'POST', body: formData })\r\n .then(response => response.json())\r\n .then(data => {\r\n //console.log(data);\r\n if (data.strEstado === \"S\") {\r\n this.setState({\r\n actividades: data.objDatos,\r\n loadAlert: false, successReadAlert: true, showLists: true,\r\n registroList: data.tlista, existenList: data.tlistaExisten,\r\n actualPage: 1,\r\n });\r\n let ids = [];\r\n this.state.actividades.map(act => { ids.push(act) });\r\n this.setState({ actSeleccionadas: ids });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n this.populateInfoData();\r\n } else {\r\n this.setState({ loadAlert: false, errorAlert: true });\r\n }\r\n });\r\n\r\n } catch (ie) {\r\n this.setState({ loadAlert: false, errorAlert: true });\r\n //console.log(\"Error: \" + ie);\r\n }\r\n }\r\n\r\n populateInfoData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n //console.log(data);\r\n this.setState({\r\n categorias: data.objDatos, loadAlert: false,\r\n });\r\n });\r\n\r\n fetch(localBack + '/api/TipoActividad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n //console.log(data);\r\n this.setState({\r\n tipos: data.objDatos, loadAlert: false,\r\n });\r\n });\r\n\r\n fetch(localBack + '/api/Entidad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n //console.log(data);\r\n this.setState({\r\n instituciones: data.objDatos,\r\n loading: false\r\n });\r\n });\r\n\r\n }\r\n\r\n postData() {\r\n this.setState({\r\n alertModal: true, loadAlert: true, successReadAlert: false\r\n });\r\n const data = JSON.stringify(JSON.parse(JSON.stringify(this.state.actSeleccionadas).replace(/\\\\n/g, \"\\\\n\").replace(/\\\\r/g, \"\\\\r\").replace(/\\\\t/g, \"\\\\t\").replace(/\\\\b/g, \"\\\\b\").replace(/\\\\f/g, \"\\\\f\").replace(/\\\\'/g, \"\\\\'\").replace(/\\\\\"/g, '\\\\\"').replace(/\\\\&/g, \"\\\\&\")));\r\n\r\n fetch(localBack + '/api/RegistroActividad/PostRegistrosWithGestion', { method: 'POST', body: data })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data.strEstado == \"S\") {\r\n this.setState({\r\n actividades: data.objDatos,\r\n successSaveAlert: true,\r\n loadAlert: false, successReadAlert: false\r\n });\r\n }\r\n else {\r\n this.setState({ loadAlert: false, errorAlert: true });\r\n //console.log(\"Error: \" + data.strMensaje);\r\n } \r\n })\r\n }\r\n \r\n render() {\r\n const { actividades, tipos, categorias } = this.state;\r\n let pagesA = [];\r\n for (let i = 1; i <= this.state.totalPageA; i++) {\r\n pagesA.push(<>);\r\n }\r\n return (\r\n <>\r\n \r\n \r\n Procesando \r\n \r\n \r\n
 Cargando
\r\n Archivo leído con éxito.\r\n Se han guardado {this.state.actividades.length} datos con éxito.\r\n Se ha producido un error al momento de guardar la información.\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Carga Masiva

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

Bienvenido al módulo de carga masiva, para iniciar con la carga solo necesita de un documento Excel(.xls,.xlsx) con la información de las actividades.

\r\n

En el siguiente enlace encontrara un formato a seguir para cargar la información.

\r\n \r\n Descargar Archivo\r\n \r\n
\r\n {/*

La cabeceras del formato de carga masiva son la siguientes:

*/}\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
CORREOAPELLIDOSNOMBRESNOMBRE ACTIVIDADCATEGORÍATIPOAÑOHORASDESCRIPCIÓNRESPONSABLE DE INFORMACIÓN
Correo instittucionalApellidos EstudianteNombres EstudianteNombre de la Actividad/ Proyecto/ Reto/ CursoNombre CompetenciaTipo actividadAño de la actividadHoras ocupadas, en caso de no ser necesarias colocar valor 0Descripcion de la actividadSiglas de la Institucion responsable de la información, maximo 30 caracteres.
*/}\r\n {/*
*/}\r\n

Recuerde revisar correctamente los nombres de las competencias y tipos de actividad, en caso de ser incorrectas la celda parecera en blanco.

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n { actividades && actividades.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 \r\n {/**/}\r\n \r\n \r\n \r\n {actividades.map((act, i) => {\r\n const tipo = act.idaextipoactividad > 0 ? tipos.find(t => t.idaextipoactividad == act.idaextipoactividad) : \"\";\r\n const responsable = act.registroActividadGestion && act.registroActividadGestion.responsable ? act.registroActividadGestion.responsable.apellidos + \" \" + act.registroActividadGestion.responsable.nombres : \"\";\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 {actividades.length == 0 ?

Actualmente no registra Actividades

: null}\r\n \r\n
#MatriculaEstudianteCorreoActividadTipoAñoHorasResponsable InformaciónResponsableInstitución\r\n
Todos
\r\n
Evidencia
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n :\r\n\r\n <>\r\n

\r\n

\r\n

\r\n \r\n }\r\n
\r\n \r\n );\r\n }\r\n}\r\nFileUpload.contextType = AppContext;\r\n","import React, { Component } from 'react';\r\n\r\nexport class FetchData extends Component {\r\n static displayName = FetchData.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { forecasts: [], loading: true };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateWeatherData();\r\n }\r\n\r\n static renderForecastsTable(forecasts) {\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 {forecasts.map(forecast =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
DateTemp. (C)Temp. (F)Summary
{forecast.date}{forecast.temperatureC}{forecast.temperatureF}{forecast.summary}
\r\n );\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ?

Loading...

\r\n : FetchData.renderForecastsTable(this.state.forecasts);\r\n\r\n return (\r\n
\r\n

Weather forecast

\r\n

This component demonstrates fetching data from the server.

\r\n {contents}\r\n
\r\n );\r\n }\r\n\r\n async populateWeatherData() {\r\n const response = await fetch('weatherforecast');\r\n const data = await response.json();\r\n this.setState({ forecasts: data, loading: false });\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nexport class Counter extends Component {\r\n static displayName = Counter.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { currentCount: 0 };\r\n this.incrementCounter = this.incrementCounter.bind(this);\r\n }\r\n\r\n incrementCounter() {\r\n this.setState({\r\n currentCount: this.state.currentCount + 1\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n

Counter

\r\n\r\n

This is a simple example of a React component.

\r\n\r\n

Current count: {this.state.currentCount}

\r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Input, Spinner } from 'reactstrap';\r\nimport { Button, Alert } from 'reactstrap';\r\nimport { AppContext } from '../AppContext';\r\nimport { RiFileUploadLine } from 'react-icons/ri';\r\nimport { AiOutlineReload } from 'react-icons/ai';\r\nimport { GiCancel, GiConfirmed } from 'react-icons/gi';\r\nimport { HiDocumentDownload, HiDocumentText } from 'react-icons/hi';\r\nimport Select from \"react-select\";\r\nimport CreatableSelect from \"react-select/creatable\";\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport './NavMenu.css';\r\nimport url from \"./variables/url.js\";\r\n/*import history from \"../history\";*/\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\nconst localFront = process.env.REACT_APP_FRONT;\r\nconst homepage = process.env.REACT_APP_EXP;\r\nconst urlFileService = process.env.REACT_DOWNLOAD_FILE;\r\nconst MySwal = withReactContent(Swal);\r\n\r\nexport class AddActExtracurricular extends Component {\r\n static displayName = AddActExtracurricular.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n /*estructura registro actividad*/\r\n edit: false,\r\n matriz: false,\r\n admin: false,\r\n loading: true,\r\n valueInst: false,\r\n alertInst: false,\r\n idUser:0,\r\n actividad: {\r\n idaexregistroactividad: 0,\r\n categoria: 1,\r\n idaextipoactividad: 2,\r\n descripcionact: '',\r\n nombre: '',\r\n anio: '',\r\n horas: 0,\r\n evidencia: '',\r\n descripcionevid: '',\r\n tutor: '',\r\n puesto: '',\r\n contacto: '',\r\n instacredita: 2,\r\n idinstitucion: 2, \r\n idestudiante: 0,\r\n revisado: 0,\r\n institucion: {\r\n idaexentidad: 0 ,\r\n nombre: 'ESPOL',\r\n clasificacion: 'ESPOL',\r\n }\r\n }, \r\n gestion: {\r\n idaexregistroactividad: 0,\r\n idresponsable: 0,\r\n comentarios: '',\r\n estado: 'I ', \r\n },\r\n persona: {\r\n idpersona: 0,\r\n numeroidentificacion: \"\",\r\n apellidos: \"\",\r\n nombres: \"\",\r\n codestudiante: \"\",\r\n email: \"\",\r\n sexo: \"\",\r\n estadopersona: \"A\",\r\n tipodiscapacidad: \"N\",\r\n tipoidentificacion: \"CED\",\r\n estadoempleado: \"\",\r\n tienediscapacidad: \"N\",\r\n tienefamildiscapacidad: \"N\"\r\n }, \r\n insignias: [],\r\n tipos: [],\r\n instituciones: [],\r\n institucionesSelect: [],\r\n institucionesInternas: [{ 'value': 'UNIDAD', 'label': 'Unidad' }, { 'value': 'ASOCIACION', 'label': 'Asociaci\\u00F3n' }, { 'value': 'CLUBES', 'label': 'Clubes' }, { 'value': 'FEDERACION', 'label': 'Federaci\\u00F3n' }/*, { 'value': 'ESPOL', 'label': 'INTERNO', disabled: true }*/],\r\n selectedInstInterna: { 'value': 'UNIDAD', 'label': 'Unidad' },\r\n currentUser: [],\r\n classInstitucion: [{ 'value': 2, 'label': 'ESPOL' }, { 'value': 'EXTERNA', 'label': 'Externa' }],\r\n selectedClassInst: { 'value': 2, 'label': 'ESPOL' },\r\n selectedInst: { },\r\n radio: 'L',\r\n file: undefined,\r\n fileName: undefined,\r\n ArchivoEstado: [{ cod: 'N', nombre: '' }, { cod: 'L', nombre: 'Loading....' }, { cod: 'G', nombre: 'GOOD' }, { cod: 'B', nombre: 'BAD' }],\r\n fileState: 'N',\r\n }; \r\n\r\n // This binding is necessary to make \"this\" work in the callback \r\n this.handleSave = this.handleSave.bind(this);\r\n this.handleCancel = this.handleCancel.bind(this);\r\n this.onChangeCategoria = this.onChangeCategoria.bind(this);\r\n this.onChangeTipo = this.onChangeTipo.bind(this);\r\n this.onChangeInst = this.onChangeInst.bind(this);\r\n this.onChangeClassInst = this.onChangeClassInst.bind(this);\r\n this.oncodChange = this.oncodChange.bind(this);\r\n this.onChangeRadio = this.onChangeRadio.bind(this);\r\n this.onChangeFile = this.onChangeFile.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n //alert(\"hola\");\r\n setTimeout(() => {\r\n let currentUser = this.context;\r\n if (currentUser !== null) {\r\n this.setState({ idUser: currentUser.idpersona });\r\n\r\n var actid = this.props.match.params[\"id\"];\r\n var cat = this.props.match.params[\"categoria\"];\r\n var tip = this.props.match.params[\"tipo\"];\r\n\r\n if (actid > 0) {\r\n this.setState({ loading: true, edit: true });\r\n this.populateActividadData(actid, currentUser.idpersona);\r\n }\r\n if (cat > 0 && tip > 0) {\r\n this.setState({ loading: true, matriz: true });\r\n this.populateCategoriaTipoData(cat, tip);\r\n }\r\n }\r\n this.populateInfoData();\r\n }, 100); \r\n }\r\n\r\n componentDidUpdate() {\r\n let currentUser = this.context;\r\n if (currentUser !== null && this.state.idUser === 0) {\r\n this.setState({ idUser: currentUser.idpersona });\r\n\r\n var actid = this.props.match.params[\"id\"];\r\n var cat = this.props.match.params[\"categoria\"];\r\n var tip = this.props.match.params[\"tipo\"]; \r\n\r\n if (actid > 0) {\r\n this.setState({ loading: true, edit: true });\r\n this.populateActividadData(actid, currentUser.idpersona);\r\n }\r\n if (cat > 0 && tip > 0) {\r\n this.setState({ loading: true, matriz: true });\r\n this.populateCategoriaTipoData(cat, tip);\r\n } \r\n } \r\n }\r\n\r\n handleSave(event) {\r\n /*console.log(\"Crear\");*/\r\n let forma = new FormData(event.target);\r\n let registro = this.state.actividad;\r\n let gestion = this.state.gestion;\r\n let mensaje = 'Su actividad fue ingresada';\r\n forma.forEach((value, clave) => {\r\n if (typeof registro[clave] === 'number') {\r\n registro[clave] = Number(value);\r\n }\r\n else if (typeof registro[clave] === 'boolean') {\r\n /*console.log(Boolean(value));*/\r\n\r\n registro[clave] = Boolean(value);\r\n }\r\n else if (value == '') {\r\n registro[clave] = null;\r\n }\r\n else {\r\n registro[clave] = value;\r\n }\r\n }); \r\n /*I para Ingresado, A para Aprobado y R para Rechazado.*/\r\n if (this.state.admin) {\r\n gestion.estado = \"A\";\r\n gestion.comentarios = \"Actividad registrada y aprobada en el sistema.\";\r\n gestion.idresponsable = 2567;\r\n } else {\r\n gestion.estado = \"I\";\r\n gestion.comentarios = \"Actividad registrada en el Sistema.\";\r\n gestion.idresponsable = registro.idestudiante; \r\n } \r\n registro.registroactividadgestion = gestion;\r\n if (!this.state.valueInst && this.usoInstitucion(registro.idaextipoactividad)) {\r\n this.setState({ alertInst: true });\r\n } else {\r\n this.setState({ alertInst: false });\r\n if (this.state.actividad.idaexregistroactividad > 0) {\r\n const data = JSON.stringify(registro);\r\n mensaje = 'Su actividad fue editada.';\r\n //console.log(data);\r\n fetch(localBack + '/api/RegistroActividad/PutWithGestion/' + this.state.actividad.idaexregistroactividad, {\r\n method: 'PUT',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: data,\r\n\r\n })\r\n .then((response) => response.json())\r\n .then(data => {\r\n if (data.strEstado === \"S\") {\r\n MySwal.fire({\r\n icon: 'success',\r\n title: 'Solicitud Editada',\r\n text: mensaje,\r\n confirmButtonText: 'Listo',\r\n /*timer: 5000*/\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.gotActividades();\r\n }\r\n })\r\n } else {\r\n MySwal.fire({\r\n icon: 'error',\r\n title: 'Oops...',\r\n text: 'Error al editar Actividad',\r\n confirmButtonText: 'salir',\r\n /*timer: 5000*/\r\n })\r\n }\r\n });\r\n\r\n }\r\n // POST. \r\n else {\r\n //console.log(registro);\r\n const data = JSON.stringify(registro);\r\n\r\n fetch(localBack + '/api/RegistroActividad/PostWithGestion', {\r\n\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: data,\r\n\r\n }).then((response) => response.json())\r\n .then(data => {\r\n //console.log(data);\r\n if (data.strEstado === \"S\") {\r\n MySwal.fire({\r\n icon: 'success',\r\n title: 'Solicitud ingresada',\r\n text: mensaje,\r\n confirmButtonText: 'Listo',\r\n /*timer: 5000*/\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.gotActividades();\r\n }\r\n })\r\n } else {\r\n MySwal.fire({\r\n icon: 'error',\r\n title: 'Oops...',\r\n text: 'Error al generar Actividad',\r\n confirmButtonText: 'salir',\r\n /*timer: 5000*/\r\n })\r\n }\r\n });\r\n }\r\n } \r\n event.preventDefault();\r\n }\r\n\r\n gotActividades() {\r\n this.props.history.push(homepage+'Act-Est');\r\n }\r\n\r\n handleCancel() {\r\n //console.log(\"Cancelar\");\r\n /*history.push(\"/Act-Est\");*/\r\n this.props.history.push(homepage + \"Act-Est\");\r\n }\r\n\r\n handleSubir() { \r\n /*/api/FileUpload / DescargarEvidencia / 684694*/\r\n this.setState({ fileState: 'L' });\r\n const formData = new FormData();\r\n formData.append(\"formFile\", this.state.file);\r\n formData.append(\"fileName\", this.state.fileName);\r\n if (this.state.fileName.toLowerCase().endsWith('.pdf')) {\r\n try {\r\n fetch(localBack + \"/api/FileUpload/CargarEvidencia\", { method: 'POST', body: formData })\r\n .then(response => response.json())\r\n .then(data => {\r\n //console.log(data);\r\n if (data.strEstado === \"S\") {\r\n let dto = this.state.actividad;\r\n let id = data.objDatos;\r\n let a = id.split('/');\r\n dto.evidencia = 'https://wsarchivos.espol.edu.ec/api/DspaceFile/DownloadDspace/' + a[a.length - 1] + '/' + a[a.length - 1] + \".pdf\";\r\n this.setState({ fileState: 'G', actividad: dto });\r\n document.getElementById(\"evidencia\").value = dto.evidencia;\r\n //console.log(dto);\r\n } else {\r\n this.setState({ fileState: 'B' });\r\n }\r\n });\r\n\r\n } catch (ie) {\r\n this.setState({ fileState: 'B' });\r\n //console.log(\"Error: \" + ie);\r\n }\r\n }\r\n else\r\n {\r\n this.setState({ fileState: 'B' });\r\n MySwal.fire({\r\n icon: 'error',\r\n title: 'Oops...',\r\n text: 'Se requiere documentos de tipo pdf',\r\n confirmButtonText: 'cerrar',\r\n /*timer: 5000*/\r\n })\r\n }\r\n \r\n \r\n }\r\n\r\n oncodChange(event) {\r\n var cod = event.target.value;\r\n var per = this.state.persona; \r\n per.codestudiante = cod;\r\n this.setState({ persona: per }); \r\n //console.log(this.state.persona); \r\n }\r\n\r\n onChangeFile(e) { \r\n //console.log(this.state.fileName);\r\n //console.log(this.state.file);\r\n //console.log(e.target.files[0]);\r\n //console.log(e.target.files[0].name);\r\n this.setState({ file: e.target.files[0], fileName: e.target.files[0].name })\r\n }\r\n\r\n onChangeCategoria(event) {\r\n //console.log('Cambio Categoria');\r\n //console.log(event.target.value);\r\n var id = event.target.value;\r\n var dto = this.state.actividad;\r\n dto.categoria = id;\r\n this.setState({ actividad: dto }); \r\n fetch(localBack + '/api/TipoActividad/categoria/' + id, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n //console.log(data);\r\n this.setState({\r\n tipos: data.objDatos, loading: false\r\n });\r\n }); \r\n }\r\n\r\n getPdf(link) {\r\n let a = link.split('/');\r\n let id = a[a.length - 1];\r\n let enlace = localFront + homepage + 'Descargar/'+ id;\r\n window.open(enlace, '_blank', 'noopener,noreferrer');\r\n }\r\n\r\n openInNewTab = url => {\r\n window.open(url, '_blank', 'noopener,noreferrer');\r\n };\r\n\r\n abrirDoc(link) {\r\n if (link !== null) {\r\n if (link.startsWith(localBack + '/api/FileUpload/DescargarEvidencia/') || link.startsWith(localFront + homepage + 'Descargar/')) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n onChangeRadio(event) {\r\n //console.log('Cambio Evi');\r\n //console.log(event.target.value);\r\n var id = event.target.value;\r\n this.setState({ radio: id }); \r\n }\r\n\r\n\r\n onChangeTipo(e) {\r\n //console.log('Cambio Tipo');\r\n //console.log(e.target.value);\r\n var id = e.target.value;\r\n var dto = this.state.actividad;\r\n dto.idaextipoactividad = id;\r\n this.setState({ actividad: dto });\r\n }\r\n\r\n onChangeInst = (selectedOption) => {\r\n var dto = this.state.actividad;\r\n const { value, label } = selectedOption;\r\n if (!isNaN(value)) {\r\n dto.institucion.idaexentidad = value;\r\n } else {\r\n dto.institucion.idaexentidad = 0;\r\n }\r\n dto.institucion.nombre = label;\r\n this.setState({\r\n actividad: dto,\r\n valueInst: true,\r\n alertInst: false,\r\n selectedInst: selectedOption\r\n }); \r\n };\r\n\r\n onChangeInstInterna = (selectedOption) => {\r\n var dto = this.state.actividad;\r\n const { value, label } = selectedOption; \r\n let elect = this.state.instituciones.filter(i => i.clasificacion === value)[0];\r\n //console.log(elect);\r\n dto.institucion.nombre = elect.nombre;\r\n dto.institucion.clasificacion = value;\r\n this.setState({\r\n actividad: dto,\r\n selectedInstInterna: selectedOption,\r\n valueInst: false,\r\n selectedInst: {}\r\n });\r\n };\r\n\r\n onChangeClassInst = (selectedOption) => {\r\n var dto = this.state.actividad;\r\n var interna = { 'value': 'UNIDAD', 'label': 'Unidad' }\r\n const { value, label } = selectedOption; \r\n if (label === 'Externa') { \r\n dto.institucion.clasificacion = 'EXTERNA';\r\n /*dto.institucion.nombre = elect.label;*/\r\n dto.institucion.siglas = ''; \r\n } else {\r\n dto.institucion.clasificacion = 'UNIDAD';\r\n /*dto.institucion.nombre = elect.label;*/\r\n dto.institucion.siglas = ''; \r\n }\r\n this.setState({\r\n actividad: dto,\r\n selectedClassInst: selectedOption,\r\n selectedInstInterna: interna,\r\n selectedInst: {},\r\n valueInst: false\r\n }); \r\n };\r\n\r\n onlyNumber = (event) => {\r\n if (!/[0-9]/.test(event.key)) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n renderAddActividadTable(insignias, actividad, tipos, instituciones) { \r\n //let cortar = this.state.actividad.evidencia.split('/');\r\n //let total = cortar.length;\r\n return (\r\n
\r\n {this.state.edit ?\r\n\r\n this.state.actividad.registroActividadGestion.estado != \"I\" ?\r\n \r\n

{this.state.actividad.registroActividadGestion.estado == \"D\" ? \"Devuelto: \" : this.state.actividad.registroActividadGestion.estado == \"A\" ? \"Aprobado: \" : this.state.actividad.registroActividadGestion.estado == \"R\" ? \"Rechazado: \" : \"Ingresado\"}

\r\n

\r\n {this.state.actividad.registroActividadGestion.comentarios}\r\n

\r\n
\r\n : <>\r\n : <>}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {insignias.map(insignia =>\r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n {tipos.map(tipo =>\r\n \r\n )\r\n }\r\n \r\n
\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.usoHora(this.state.actividad.idaextipoactividad)\r\n ? <>< label className=\"control-label col-md-1\" htmlFor=\"Name\">Horas: \r\n \r\n : <>}\r\n
\r\n
\r\n \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.usoInstitucion(this.state.actividad.idaextipoactividad) ?\r\n <>\r\n \r\n \r\n : <>}\r\n
\r\n {this.state.selectedClassInst.label === 'ESPOL' ? \r\n
\r\n {this.usoInstitucion(this.state.actividad.idaextipoactividad) ?\r\n <>\r\n \r\n i.clasificacion === this.state.selectedInstInterna.value)} />\r\n \r\n : <>}\r\n
\r\n :\r\n
\r\n {this.usoInstitucion(this.state.actividad.idaextipoactividad) ?\r\n <>\r\n \r\n `Seleccionar ${userInput}` } value={this.state.selectedInst} onChange={this.onChangeInst} options={instituciones.filter(i => i.clasificacion === 'EXTERNA')} />\r\n \r\n : <>}\r\n\r\n {\r\n <>\r\n \r\n }\r\n
\r\n }\r\n\r\n {this.usoInstitucion(this.state.actividad.idaextipoactividad) ?\r\n \r\n : <>\r\n }\r\n \r\n {this.usoPuesto(this.state.actividad.idaextipoactividad)\r\n ? < div className=\"form-group row\" >\r\n \r\n \r\n
: <>}\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n     \r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n const currentUser = this.context;\r\n if (currentUser == null) {\r\n return <>;\r\n } else if (currentUser != null && this.state.idUser == 0) {\r\n this.setState({ idUser: currentUser.idpersona })\r\n this.populateActividadData(this.props.match.params[\"id\"]);\r\n }\r\n let contents = this.state.loading\r\n ?

Loading...

\r\n : this.renderAddActividadTable(this.state.insignias, this.state.actividad, this.state.tipos, this.state.instituciones);\r\n\r\n let titulo = this.state.edit ? 'Editar Actividad Extracurricular' : 'Nueva Actividad Extracurricular';\r\n\r\n return (\r\n
\r\n

{titulo}

\r\n {contents}\r\n
\r\n );\r\n } \r\n\r\n populateActividadData(id, idUser) {\r\n let instSel = {};\r\n let instClassSel = {};\r\n let instInternaSel = { 'value': 'UNIDAD', 'label': 'Unidad' };\r\n fetch(localBack + '/api/RegistroActividad/GetWithGestion/' + id, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n instSel = this.state.instituciones.filter(i => i.value === data.objDatos.idinstitucion); \r\n if (data.objDatos.institucion.clasificacion === 'EXTERNA') { \r\n instClassSel = { 'value': 'EXTERNA', 'label': 'Externa' };\r\n } else { \r\n instClassSel = { 'value': 2, 'label': 'ESPOL' };\r\n instInternaSel = this.state.institucionesInternas.filter(i => i.value === data.objDatos.institucion.clasificacion);\r\n } \r\n this.setState({\r\n actividad: data.objDatos,\r\n loading: false,\r\n total: 1,\r\n selectedInst: instSel,\r\n valueInst: true,\r\n selectedClassInst: instClassSel,\r\n selectedInstInterna: instInternaSel,\r\n });\r\n if (idUser > 0 && data.objDatos.idestudiante !== idUser) {\r\n this.isForbidden();\r\n } else if (idUser > 0 && data.objDatos.registroActividadGestion.estado !== 'D') {\r\n this.isForbidden();\r\n }\r\n } else {\r\n this.setState({ loading: false });\r\n }\r\n //console.log(this.state.instituciones);\r\n //console.log(this.state.selectedClassInst);\r\n }); \r\n }\r\n\r\n isForbidden() {\r\n this.props.history.push({\r\n pathname: homepage,\r\n })\r\n } \r\n\r\n nombrePorTipo(tipo) {\r\n if (tipo === 1 || tipo === 13 || tipo === 16 || tipo === 25)\r\n return 'Nombre del Proyecto: '\r\n else if (tipo === 2 || tipo === 3)\r\n return 'Nombre del Reto: '\r\n else if (tipo === 5 || tipo === 8 || tipo === 14 || tipo === 17 || tipo === 19 || tipo === 27 || tipo === 28 || tipo === 29)\r\n return 'Nombre del Curso: '\r\n else if (tipo === 20)\r\n return 'Nombre de la Materia: '\r\n else if (tipo === 21)\r\n return 'Nombre de la Unidad: '\r\n else if (tipo === 10 || tipo === 12)\r\n return 'Nombre del Cargo: '\r\n else if (tipo === 26)\r\n return 'Nombre del Deporte: '\r\n else if (tipo === 22)\r\n return 'Mentoring Edici\\u00F3n: '\r\n else if (tipo === 23)\r\n return 'Nombre del Torneo: '\r\n else\r\n return 'Nombre de Actividad: '\r\n }\r\n\r\n tutorPorTipo(tipo) { \r\n if (tipo === 22)\r\n return 'Mentor: '\r\n else\r\n return 'Tutor: '\r\n }\r\n\r\n usoTutor(tipo) {\r\n let ids = [1, 22]\r\n let respuesta = false;\r\n if (ids.includes(tipo))\r\n respuesta = true;\r\n return respuesta;\r\n }\r\n\r\n usoHora(tipo) {\r\n let ids = [1, 2, 3, 5, 8, 9, 10, 12, 13, 14, 17, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31, 32];\r\n if (ids.includes(tipo))\r\n return false;\r\n else\r\n return true;\r\n }\r\n\r\n usoPuesto(tipo) {\r\n let puesto = [23];\r\n let respuesta = false;\r\n if (puesto.includes(tipo))\r\n respuesta = true;\r\n return respuesta;\r\n }\r\n\r\n usoInstitucion(tipo) {\r\n let ids = [1,2,3,5,6,8,9,13,14,16,17,19,22,23,24,25,27,28,29];\r\n let respuesta = false;\r\n if (ids.includes(tipo))\r\n respuesta = true;\r\n return respuesta;\r\n }\r\n\r\n populateCategoriaTipoData(categoria, tipo) {\r\n //console.log(\"Categoria \" + categoria);\r\n //console.log(\"Tipo \" + tipo);\r\n let tipoid = []; \r\n let act = this.state.actividad; \r\n fetch(localBack + '/api/TipoActividad/' + tipo, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n //console.log(data.objDatos);\r\n tipoid = data.objDatos;\r\n act.categoria = categoria;\r\n act.idaextipoactividad = tipoid.idaextipoactividad;\r\n act.descripcionact = tipoid.descripcionact;\r\n act.idestudiante = this.state.idUser;\r\n this.setState({\r\n actividad: act,\r\n loading: false, \r\n }); \r\n });\r\n }\r\n\r\n populateInfoData() {\r\n let ids = [];\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data.strMensaje);*/\r\n this.setState({\r\n insignias: data.objDatos });\r\n });\r\n\r\n fetch(localBack + '/api/TipoActividad/GetOnlyActive', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n tipos: data.objDatos,\r\n loading: false\r\n });\r\n });\r\n\r\n fetch(localBack + '/api/Entidad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => { \r\n data.objDatos.map(inst => { ids.push({ 'value': inst.idaexentidad, 'label': inst.nombre, 'clasificacion': inst.clasificacion }) }); \r\n this.setState({\r\n instituciones: ids,\r\n institucionesSelect: ids,\r\n loading: false\r\n }); \r\n }); \r\n \r\n }\r\n\r\n actualizarInstitutos(texto) {\r\n let ids = [];\r\n \r\n fetch(localBack + '/api/Entidad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => { \r\n data.objDatos.filter(d => d.nombre.includes(texto)).map(inst => { ids.push({ 'value': inst.idaexentidad, 'label': inst.nombre }) });\r\n this.setState({\r\n institucionesSelect: ids,\r\n loading: false\r\n });\r\n });\r\n \r\n }\r\n \r\n}\r\nAddActExtracurricular.contextType = AppContext;","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst LEFT_PAGE = 'LEFT';\r\nconst RIGHT_PAGE = 'RIGHT';\r\n\r\n/**\r\n * Helper method for creating a range of numbers\r\n * range(1, 5) => [1, 2, 3, 4, 5]\r\n */\r\nconst range = (from, to, step = 1) => {\r\n let i = from;\r\n const range = [];\r\n\r\n while (i <= to) {\r\n range.push(i);\r\n i += step;\r\n }\r\n\r\n return range;\r\n}\r\n\r\nclass Paginacion extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { totalRecords = null, pageLimit = 30, pageNeighbours = 0 } = props;\r\n\r\n this.pageLimit = typeof pageLimit === 'number' ? pageLimit : 30;\r\n this.totalRecords = typeof totalRecords === 'number' ? totalRecords : 0;\r\n\r\n // pageNeighbours can be: 0, 1 or 2\r\n this.pageNeighbours = typeof pageNeighbours === 'number'\r\n ? Math.max(0, Math.min(pageNeighbours, 2))\r\n : 0;\r\n\r\n this.totalPages = Math.ceil(this.totalRecords / this.pageLimit);\r\n\r\n this.state = { currentPage: 1 };\r\n }\r\n\r\n fetchPageNumbers = () => {\r\n const totalPages = this.totalPages;\r\n const currentPage = this.state.currentPage;\r\n const pageNeighbours = this.pageNeighbours;\r\n\r\n /**\r\n * totalNumbers: the total page numbers to show on the control\r\n * totalBlocks: totalNumbers + 2 to cover for the left(<) and right(>) controls\r\n */\r\n const totalNumbers = (this.pageNeighbours * 2) + 3;\r\n const totalBlocks = totalNumbers + 2;\r\n\r\n if (totalPages > totalBlocks) {\r\n const startPage = Math.max(2, currentPage - pageNeighbours);\r\n const endPage = Math.min(totalPages - 1, currentPage + pageNeighbours);\r\n let pages = range(startPage, endPage);\r\n\r\n /**\r\n * hasLeftSpill: has hidden pages to the left\r\n * hasRightSpill: has hidden pages to the right\r\n * spillOffset: number of hidden pages either to the left or to the right\r\n */\r\n const hasLeftSpill = startPage > 2;\r\n const hasRightSpill = (totalPages - endPage) > 1;\r\n const spillOffset = totalNumbers - (pages.length + 1);\r\n\r\n switch (true) {\r\n // handle: (1) < {5 6} [7] {8 9} (10)\r\n case (hasLeftSpill && !hasRightSpill): {\r\n const extraPages = range(startPage - spillOffset, startPage - 1);\r\n pages = [LEFT_PAGE, ...extraPages, ...pages];\r\n break;\r\n }\r\n\r\n // handle: (1) {2 3} [4] {5 6} > (10)\r\n case (!hasLeftSpill && hasRightSpill): {\r\n const extraPages = range(endPage + 1, endPage + spillOffset);\r\n pages = [...pages, ...extraPages, RIGHT_PAGE];\r\n break;\r\n }\r\n\r\n // handle: (1) < {4 5} [6] {7 8} > (10)\r\n case (hasLeftSpill && hasRightSpill):\r\n default: {\r\n pages = [LEFT_PAGE, ...pages, RIGHT_PAGE];\r\n break;\r\n }\r\n }\r\n\r\n return [1, ...pages, totalPages];\r\n }\r\n\r\n return range(1, totalPages);\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n //if (prevProps.totalPages !== this.props.totalPages) {\r\n // console.log('1', prevState.currentPage);\r\n // console.log('2', this.state.currentPage);\r\n // this.fetchPageNumbers();\r\n //}\r\n }\r\n\r\n render() {\r\n if (!this.totalRecords || this.totalPages === 1) return null;\r\n\r\n const { currentPage } = this.state;\r\n const pages = this.fetchPageNumbers();\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n componentDidMount() {\r\n this.gotoPage(1);\r\n }\r\n\r\n gotoPage = page => {\r\n const { onPageChanged = f => f } = this.props;\r\n const currentPage = Math.max(0, Math.min(page, this.totalPages));\r\n const paginationData = {\r\n currentPage,\r\n totalPages: this.totalPages,\r\n pageLimit: this.pageLimit,\r\n totalRecords: this.totalRecords\r\n };\r\n\r\n this.setState({ currentPage }, () => onPageChanged(paginationData));\r\n }\r\n\r\n handleClick = page => evt => {\r\n evt.preventDefault();\r\n this.gotoPage(page);\r\n }\r\n\r\n handleMoveLeft = evt => {\r\n evt.preventDefault();\r\n this.gotoPage(this.state.currentPage - (this.pageNeighbours * 2) - 1);\r\n }\r\n\r\n handleMoveRight = evt => {\r\n evt.preventDefault();\r\n this.gotoPage(this.state.currentPage + (this.pageNeighbours * 2) + 1);\r\n }\r\n\r\n}\r\n\r\nPaginacion.propTypes = {\r\n totalRecords: PropTypes.number.isRequired,\r\n pageLimit: PropTypes.number,\r\n pageNeighbours: PropTypes.number,\r\n onPageChanged: PropTypes.func\r\n};\r\n\r\nexport default Paginacion;\r\n","import React from 'react';\r\nimport { FaEdit } from 'react-icons/fa';\r\nimport PropTypes from 'prop-types';\r\nimport { Card, CardImg, CardText, CardBody, CardFooter, CardHeader, Button, Label, Badge } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport url from \"./variables/url.js\";\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\n\r\nconst colors = ['#FFFFFF', '#354750', '#F48700', '#A72186', '#1DA656', '#EA3B13','#1F58AB']\r\n\r\n\r\nclass ActividadCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const {\r\n idaexregistroactividad = 0, categoria = 0, idaextipoactividad = 0,\r\n nombre = '', descripcionact = '', anio = '', horas = 0, idestudiante = 0,\r\n /*gestion = { estado: 'I' }*/\r\n } = props.actividad || {};\r\n this.state = {\r\n tipos: [],\r\n insignias: []\r\n };\r\n this.handleEdit = this.handleEdit.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.populateInfoData(); \r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {this.props.actividad.nombre}\r\n \r\n \r\n Tipo:\r\n \r\n

{this.state.tipos.map(tipo => {\r\n return tipo.idaextipoactividad == this.props.actividad.idaextipoactividad ? : <>\r\n })}

\r\n
\r\n
\r\n \r\n {this.props.actividad.registroActividadGestion.estado === 'I' ? Ingresado : this.props.actividad.registroActividadGestion.estado === 'A' ? Aprobado : this.props.actividad.registroActividadGestion.estado === 'D' ? Devuelto : Rechazado}\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n populateInfoData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n insignias: data.objDatos\r\n });\r\n });\r\n\r\n fetch(localBack + '/api/TipoActividad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n tipos: data.objDatos \r\n });\r\n });\r\n\r\n }\r\n\r\n handleEdit(id) {\r\n /*console.log(\"Editar \" + id);*/\r\n this.props.history.push(\"/Edit-Act/\" + id);\r\n }\r\n}\r\n\r\nActividadCard.propTypes = {\r\n actividad: PropTypes.shape({ \r\n idaexregistroactividad: PropTypes.number.isRequired,\r\n categoria: PropTypes.number.isRequired,\r\n idaextipoactividad: PropTypes.number.isRequired, \r\n nombre: PropTypes.string.isRequired,\r\n descripcionact: PropTypes.string.isRequired,\r\n anio: PropTypes.string.isRequired,\r\n horas: PropTypes.number.isRequired,\r\n idestudiante: PropTypes.number.isRequired,\r\n registroActividadGestion: PropTypes.shape({\r\n estado: PropTypes.string.isRequired\r\n }).isRequired\r\n }).isRequired,\r\n edit: PropTypes.func\r\n};\r\n\r\nexport default ActividadCard;\r\n","import React, { Component } from 'react';\r\nimport { AppContext } from './../AppContext';\r\nimport { Table, Input, Button } from 'reactstrap';\r\nimport { Col, Row, Badge } from 'reactstrap';\r\nimport { FaEdit, FaTrashAlt } from 'react-icons/fa';\r\nimport { withRouter } from 'react-router-dom';\r\n/*import history from \"../history\";*/\r\nimport './NavMenu.css';\r\nimport Paginacion from './Paginacion';\r\nimport ActividadCard from './ActividadCard';\r\nimport url from \"./variables/url.js\";\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\n\r\nexport class ActExtracurricular extends Component {\r\n static displayName = ActExtracurricular.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n status: 0,\r\n loading: true,\r\n total: 0, \r\n categorias: [],\r\n tipos: [],\r\n currentUser: [],\r\n actividades: [],\r\n currentActividades: [], currentPage: null, totalPages: null, \r\n \r\n };\r\n\r\n this.handleEdit = this.handleEdit.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n let user = this.context;\r\n this.setState({ currentUser: user });\r\n //console.log(this.state.currentUser.idpersona);\r\n this.populateInfoData();\r\n this.populateActividades(); \r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevState.actividades.length !== this.state.actividades.length) {\r\n this.populateActividades();\r\n }\r\n }\r\n\r\n onPageChanged = data => {\r\n const { actividades } = this.state;\r\n const { currentPage, totalPages, pageLimit } = data;\r\n const offset = (currentPage - 1) * pageLimit;\r\n const currentActividades = actividades.slice(offset, offset + pageLimit);\r\n\r\n this.setState({ currentPage, currentActividades, totalPages });\r\n } \r\n \r\n\r\n renderActividadesTable(actividades, currentActividades, currentPage, totalPages) {\r\n /*const { currentActividades, currentPage, totalPages } = this.state;*/\r\n const totalAct = actividades.length; \r\n const limite = 4;\r\n const vecindario = 1;\r\n\r\n return (\r\n
\r\n

Mis Actividades Extracurriculares

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

\r\n {totalAct} Actividades\r\n

\r\n {currentPage && (\r\n \r\n Page {currentPage} / {totalPages}\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {currentActividades.map(act =>\r\n
\r\n \r\n Ingresado\r\n   |  \r\n \r\n   |  \r\n \r\n
\r\n )}\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const currentuser = this.context;\r\n //let contents = this.state.loading\r\n // ?

Loading...

\r\n // : this.renderActividadesTable(this.state.actividades, this.state.currentActividades, this.state.currentPage, this.state.totalPages);\r\n\r\n //let contents2 = this.state.loading\r\n // ?

Loading...

\r\n // : this.renderActividadesTable2(this.state.actividades2, this.state.currentActividades2, this.state.currentPage2, this.state.totalPages2);\r\n\r\n let contents = this.state.loading\r\n ?

Loading...

\r\n : this.renderActividadesTable(this.state.actividades, this.state.currentActividades, this.state.currentPage, this.state.totalPages);\r\n\r\n return (\r\n
\r\n {contents} \r\n
\r\n );\r\n }\r\n\r\n populateActividades() {\r\n const user = this.context; \r\n\r\n //console.log(localBack + '/api/RegistroActividad/GetActByCat/' + user.idpersona + '/' + 1);\r\n\r\n fetch(localBack + '/api/RegistroActividad/GetActByCat/' + user.idpersona + '/' + 1, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, total: 1 });\r\n //console.log(this.state.actividades);\r\n } else {\r\n this.setState({ actividades: [] });\r\n }\r\n });\r\n \r\n /*this.setState({ actividades: insig.objDatos, loading: false });*/\r\n } \r\n\r\n populateInfoData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n //console.log(data);\r\n this.setState({\r\n categorias: data.objDatos });\r\n });\r\n\r\n fetch(localBack + '/api/TipoActividad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n //console.log(data);\r\n this.setState({\r\n tipos: data.objDatos \r\n });\r\n }); \r\n \r\n }\r\n\r\n newAct() {\r\n //console.log('Nueva Actividad');\r\n this.props.history.push('/Add-Act');\r\n }\r\n\r\n handleEdit(id) {\r\n //console.log(\"Editar \" + id);\r\n this.props.history.replace(\"/Edit-Act/\" + id);\r\n }\r\n}\r\nActExtracurricular.contextType = AppContext;\r\nexport default withRouter(ActExtracurricular);","import { createBrowserHistory } from 'history';\r\nexport default createBrowserHistory({ });\r\n","import React, { Component } from 'react';\r\nimport { Container, Card, CardText } from 'reactstrap';\r\n\r\nclass Vacio extends Component {\r\n static displayName = Vacio.name;\r\n\r\n constructor(props) {\r\n super(props); \r\n this.state = {\r\n editable: this.props.editable ?? true\r\n };\r\n }\r\n\r\n render () {\r\n return (\r\n \r\n \r\n {this.state.editable\r\n ? <>\r\n No tienes actividades registradas, pero puedes ingresar una nueva actividad dando click en el botón azul (+).\r\n Si estás interesado en realizar este tipo de actividad escríbenos a acompanamiento@espol.edu.ec\r\n \r\n : <>\r\n No tienes actividades registradas para este tipo de actividad\r\n En caso de tener evidencia de haber participado en este tipo de actividad por favor contáctate a acompanamiento@espol.edu.ec.\r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Vacio;\r\n","import React, { Component } from 'react';\r\nimport { Media } from 'reactstrap';\r\nimport history from \"../historyBeta\";\r\nimport './NavMenu.css';\r\nimport url from \"./variables/url.js\";\r\nimport Paginacion from './Paginacion';\r\nimport ActividadCard from './ActividadCard';\r\nimport Vacio from './Vacio';\r\nimport { AppContext } from '../AppContext';\r\nimport PropTypes from 'prop-types';\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\nconst homepage = process.env.REACT_APP_EXP;\r\n\r\nclass LoteActividades extends Component {\r\n static displayName = LoteActividades.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n /*const actividadesList = this.props.actividades;*/\r\n const userId = this.props.userId;\r\n const categoriaId = this.props.categoria;\r\n const edit = this.props.editable;\r\n this.state = { \r\n loading: true, \r\n categorias: [],\r\n tipos: [],\r\n currentUser: [],\r\n collapse: 0,\r\n dropdownOpen: false,\r\n id: userId,\r\n categoria: categoriaId,\r\n actividades: [],\r\n currentActividades: [],\r\n currentPage: null,\r\n totalPages: null,\r\n editable: edit ?? true,\r\n };\r\n\r\n this.handleEdit = this.handleEdit.bind(this);\r\n this.toggle = this.toggle.bind(this);\r\n this.toggleCard = this.toggleCard.bind(this);\r\n this.toggleDD = this.toggleDD.bind(this);\r\n this.newActEst = this.newActEst.bind(this); \r\n }\r\n\r\n componentDidMount() {\r\n let user = this.context;\r\n this.setState({ currentUser: user });\r\n console.log('user', this.state.currentUser.idpersona);\r\n this.populateInfoData();\r\n this.populateActividades();\r\n }\r\n\r\n componentDidUpdate(prevState) {\r\n //let user = this.context;\r\n //if (user != null && prevState.actividades.length !== this.state.actividades.length)\r\n // this.populateActividades();\r\n }\r\n\r\n onPageChanged = data => {\r\n const { actividades } = this.state;\r\n const { currentPage, totalPages, pageLimit } = data;\r\n const offset = (currentPage - 1) * pageLimit;\r\n const currentActividades = actividades.slice(offset, offset + pageLimit);\r\n\r\n this.setState({ currentPage, currentActividades, totalPages });\r\n } \r\n\r\n renderActividadesTable(actividades, currentActividades, currentPage, totalPages) {\r\n const currentUser = this.context;\r\n const { collapse } = this.state; \r\n const totalAct = actividades.length; \r\n const limite = 12;\r\n const vecindario = 1;\r\n return (\r\n
\r\n {actividades.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 {totalAct} Actividades\r\n

\r\n {currentPage && (\r\n \r\n Page {currentPage} / {totalPages}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n {currentActividades.map(act =>\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n } \r\n
\r\n );\r\n }\r\n\r\n render() {\r\n \r\n let contents = this.state.loading\r\n ?

Loading...

\r\n : this.renderActividadesTable(this.state.actividades, this.state.currentActividades, this.state.currentPage, this.state.totalPages); \r\n\r\n\r\n return (\r\n
\r\n {contents} \r\n
\r\n );\r\n }\r\n\r\n populateActividades() {\r\n const user = this.context; \r\n\r\n fetch(localBack + '/api/RegistroActividad/GetActByCat/' + this.state.id + '/' + this.state.categoria, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, });\r\n return response.json();\r\n })\r\n .then(data => {\r\n console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, total: 1 });\r\n /*console.log(this.state.actividades);*/\r\n } else {\r\n this.setState({ actividades: [] });\r\n }\r\n });\r\n\r\n }\r\n\r\n populateInfoData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n categorias: data.objDatos });\r\n });\r\n\r\n fetch(localBack + '/api/TipoActividad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /* console.log(data);*/\r\n this.setState({\r\n tipos: data.objDatos,\r\n });\r\n }); \r\n \r\n } \r\n\r\n toggle(tab) {\r\n if (this.state.activeTab !== tab) {\r\n /*console.log(tab);*/\r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n }\r\n\r\n toggleCard(e) {\r\n let event = e.target.dataset.event;\r\n this.setState({ collapse: this.state.collapse === Number(event) ? 0 : Number(event) });\r\n /*console.log(Number(event));*/ \r\n }\r\n\r\n toggleDD() {\r\n this.setState(prevState => ({\r\n dropdownOpen: !prevState.dropdownOpen\r\n }));\r\n }\r\n\r\n newAct() {\r\n /*console.log('Nueva Actividad');*/\r\n /*history.push('/Add-Act');*/\r\n }\r\n\r\n newActEst(categoria, tipo) {\r\n /*console.log('Nueva Actividad Estudiante');*/\r\n history.push(homepage+'New-Act/' + categoria + '/' + tipo); \r\n }\r\n\r\n handleEdit(id) {\r\n /*console.log(\"Editar \" + id);*/\r\n history.push(homepage+\"Edit-Act/\" + id);\r\n window.location.href = window.location.href;\r\n /*this.props.history.push(\"/Edit-Act/\" + id);*/\r\n }\r\n\r\n}\r\n\r\nLoteActividades.propTypes = {\r\n /*actividades: PropTypes.array.isRequired,*/\r\n userId: PropTypes.number.isRequired,\r\n categoria: PropTypes.number.isRequired,\r\n editable: PropTypes.bool\r\n};\r\n\r\nLoteActividades.contextType = AppContext;\r\nexport default LoteActividades;","import React, { Component } from 'react';\r\nimport { Table, Button, Alert } from 'reactstrap';\r\nimport { TabContent, TabPane, Nav, NavItem, NavLink, CardTitle, CardText, Row, Col } from 'reactstrap';\r\nimport { Collapse, CardBody, Card, CardHeader, CardFooter, Input, Badge, Media, Text } from 'reactstrap';\r\nimport { Dropdown, DropdownItem, DropdownMenu, DropdownToggle } from 'reactstrap';\r\nimport { FaEdit, FaPlus, FaTrashAlt } from 'react-icons/fa';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { AiFillCaretUp, AiFillCaretDown } from 'react-icons/ai';\r\nimport history from \"../historyBeta\";\r\nimport './NavMenu.css';\r\nimport url from \"./variables/url.js\";\r\nimport Paginacion from './Paginacion';\r\nimport ActividadCard from './ActividadCard';\r\nimport Vacio from './Vacio';\r\nimport { AppContext } from '../AppContext';\r\nimport PropTypes from 'prop-types';\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\nconst homepage = process.env.REACT_APP_EXP;\r\n\r\nclass LoteActividadesPorTipo extends Component {\r\n static displayName = LoteActividadesPorTipo.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n /*const actividadesList = this.props.actividades;*/\r\n const userId = this.props.userId;\r\n const categoriaId = this.props.categoria;\r\n const tipoId = this.props.tipo;\r\n this.state = { \r\n loading: true, \r\n categorias: [],\r\n tipos: [],\r\n currentUser: [],\r\n collapse: 0,\r\n dropdownOpen: false,\r\n id: userId,\r\n categoria: categoriaId,\r\n tipo: tipoId,\r\n actividades: [],\r\n instituciones: [],\r\n currentActividades: [],\r\n currentPage: null,\r\n totalPages: null,\r\n editable: this.props.editable ?? true,\r\n };\r\n\r\n this.handleEdit = this.handleEdit.bind(this);\r\n this.toggle = this.toggle.bind(this);\r\n this.toggleCard = this.toggleCard.bind(this);\r\n this.toggleDD = this.toggleDD.bind(this);\r\n this.newActEst = this.newActEst.bind(this); \r\n }\r\n\r\n componentDidMount() {\r\n let user = this.context;\r\n this.setState({ currentUser: user });\r\n /*console.log('user', this.state.currentUser.idpersona);*/\r\n this.populateInfoData();\r\n this.populateActividades();\r\n }\r\n\r\n componentDidUpdate(prevState) {\r\n //let user = this.context;\r\n //if (user != null && prevState.actividades.length !== this.state.actividades.length)\r\n // this.populateActividades();\r\n }\r\n\r\n onPageChanged = data => {\r\n const { actividades } = this.state;\r\n const { currentPage, totalPages, pageLimit } = data;\r\n const offset = (currentPage - 1) * pageLimit;\r\n const currentActividades = actividades.slice(offset, offset + pageLimit);\r\n\r\n this.setState({ currentPage, currentActividades, totalPages });\r\n } \r\n\r\n renderActividadesTable(actividades, currentActividades, currentPage, totalPages) {\r\n const currentUser = this.context;\r\n const { collapse } = this.state; \r\n const totalAct = actividades.length; \r\n const limite = 6; \r\n const vecindario = 1;\r\n \r\n return (\r\n
\r\n {actividades.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 {/* {currentPage && (*/}\r\n {/* */}\r\n {/* Pagina {currentPage} / {totalPages}*/}\r\n {/* */}\r\n {/* )}*/}\r\n {/*
*/}\r\n
\r\n
\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.usoInstitucion(this.state.tipo) ? : <>}\r\n {this.usoTutor(this.state.tipo) ? < th > { this.tutorPorTipo(this.state.tipo) } : <>}\r\n {this.usoPuesto(this.state.tipo) ? : <>}\r\n \r\n \r\n \r\n {currentActividades.map((act,i) => {\r\n return \r\n \r\n \r\n \r\n {this.usoInstitucion(this.state.tipo) ? : <>}\r\n {this.usoTutor(this.state.tipo) ? : <>}\r\n {this.usoPuesto(this.state.tipo) ? : <>}\r\n \r\n }\r\n /*{act.nombre} - {act.anio} - {act.descripcionevid}*/ \r\n )}\r\n \r\n
#{this.nombrePorTipo(this.state.tipo)}Año Institución Puesto
{(i + 1) + (limite * (currentPage-1))}{act.nombre}  \r\n {act.registroActividadGestion != null ? <>{act.registroActividadGestion.estado === 'I' ? En revisión : act.registroActividadGestion.estado === 'R' ? Rechazado : act.registroActividadGestion.estado === 'D' ? this.handleEdit(act.idaexregistroactividad)}>Devuelto : <>} : this.handleEdit(act.idaexregistroactividad)}>No registrado}\r\n {act.anio}{this.state.instituciones.filter(inst => inst.idaexentidad === act.idinstitucion).map(inst => inst.nombre)}{act.tutor}{act.puesto}
\r\n
\r\n
\r\n \r\n } \r\n
\r\n );\r\n }\r\n\r\n render() {\r\n \r\n let contents = this.state.loading\r\n ?

Loading...

\r\n : this.renderActividadesTable(this.state.actividades, this.state.currentActividades, this.state.currentPage, this.state.totalPages); \r\n\r\n\r\n return (\r\n
\r\n {contents} \r\n
\r\n );\r\n }\r\n\r\n populateActividades() {\r\n const user = this.context; \r\n\r\n fetch(localBack + '/api/RegistroActividad/GetActByTipo/' + this.state.id + '/' + this.state.tipo + '/' + this.state.categoria, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, });\r\n return response.json();\r\n })\r\n .then(data => {\r\n /*console.log(data.strMensaje);*/\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, total: 1 });\r\n /*console.log(this.state.actividades);*/\r\n } else {\r\n this.setState({ actividades: [] });\r\n }\r\n });\r\n\r\n }\r\n\r\n populateInfoData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n categorias: data.objDatos });\r\n });\r\n\r\n fetch(localBack + '/api/TipoActividad/GetOnlyActive', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /* console.log(data);*/\r\n this.setState({\r\n tipos: data.objDatos,\r\n });\r\n });\r\n\r\n fetch(localBack + '/api/Entidad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n instituciones: data.objDatos,\r\n loading: false\r\n });\r\n });\r\n \r\n }\r\n\r\n nombrePorTipo(tipo) {\r\n if (tipo === 1 || tipo === 13 || tipo === 16 || tipo === 25)\r\n return 'Proyecto'\r\n else if (tipo === 2 || tipo === 3)\r\n return 'Reto'\r\n else if (tipo === 5 || tipo === 8 || tipo === 14 || tipo === 17 || tipo === 19 || tipo === 27 || tipo === 28 || tipo === 29)\r\n return 'Curso'\r\n else if (tipo === 20)\r\n return 'Materia'\r\n else if (tipo === 21)\r\n return 'Unidad'\r\n else if (tipo === 10 || tipo === 12)\r\n return 'Cargo'\r\n else if (tipo === 26)\r\n return 'Deporte'\r\n else if (tipo === 22)\r\n return 'Mentoring Edici\\u00F3n'\r\n else if (tipo === 23)\r\n return 'Torneo'\r\n else\r\n return 'Actividad'\r\n }\r\n\r\n tutorPorTipo(tipo) {\r\n if (tipo === 22)\r\n return 'Mentor'\r\n else\r\n return 'Tutor'\r\n }\r\n\r\n usoTutor(tipo) {\r\n let ids = [1, 22]\r\n let respuesta = false;\r\n if (ids.includes(tipo))\r\n respuesta = true;\r\n return respuesta;\r\n }\r\n\r\n usoPuesto(tipo) {\r\n let puesto = [23];\r\n let respuesta = false;\r\n if (puesto.includes(tipo))\r\n respuesta = true;\r\n return respuesta;\r\n }\r\n\r\n usoInstitucion(tipo) {\r\n let ids = [1, 2, 3, 5, 6, 8, 9, 13, 14, 16, 17, 19, 22, 23, 24, 25, 27, 28, 29];\r\n let respuesta = false;\r\n if (ids.includes(tipo))\r\n respuesta = true;\r\n return respuesta;\r\n }\r\n\r\n toggle(tab) {\r\n if (this.state.activeTab !== tab) {\r\n /*console.log(tab);*/\r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n }\r\n\r\n toggleCard(e) {\r\n let event = e.target.dataset.event;\r\n this.setState({ collapse: this.state.collapse === Number(event) ? 0 : Number(event) });\r\n /*console.log(Number(event));*/ \r\n }\r\n\r\n toggleDD() {\r\n this.setState(prevState => ({\r\n dropdownOpen: !prevState.dropdownOpen\r\n }));\r\n }\r\n\r\n newAct() {\r\n /*console.log('Nueva Actividad');*/\r\n /*history.push('/Add-Act');*/\r\n }\r\n\r\n newActEst(categoria, tipo) {\r\n /*console.log('Nueva Actividad Estudiante');*/\r\n history.push(homepage+'New-Act/' + categoria + '/' + tipo);\r\n }\r\n\r\n handleEdit(id) {\r\n /*console.log(\"Editar \" + id);*/\r\n history.push(homepage+\"Edit-Act/\" + id);\r\n window.location.href = window.location.href;\r\n /*this.props.history.push(\"/Edit-Act/\" + id);*/\r\n }\r\n\r\n}\r\n\r\nLoteActividadesPorTipo.propTypes = {\r\n /*actividades: PropTypes.array.isRequired,*/\r\n userId: PropTypes.number.isRequired,\r\n categoria: PropTypes.number.isRequired,\r\n tipo: PropTypes.number.isRequired,\r\n};\r\n\r\nLoteActividadesPorTipo.contextType = AppContext;\r\nexport default LoteActividadesPorTipo;","import React, { Component } from 'react';\r\nimport { Table, Button, Alert } from 'reactstrap';\r\nimport { TabContent, TabPane, Nav, NavItem, NavLink, CardTitle, CardText, Row, Col, Spinner } from 'reactstrap';\r\nimport { Collapse, CardBody, Card, CardHeader, Input, Badge, UncontrolledCollapse } from 'reactstrap';\r\nimport { Dropdown, DropdownItem, DropdownMenu, DropdownToggle } from 'reactstrap';\r\nimport { FaEdit, FaPlus, FaTrashAlt } from 'react-icons/fa';\r\nimport { BiCaretDown, BiCaretRight } from 'react-icons/bi';\r\n/*import history from \"../history\";*/\r\nimport './NavMenu.css';\r\nimport url from \"./variables/url.js\";\r\nimport Paginacion from './Paginacion';\r\nimport ActividadCard from './ActividadCard';\r\nimport LoteActividades from './LoteActividades';\r\nimport LoteActividadesPorTipo from './LoteActividadesPorTipo';\r\nimport { AppContext } from '../AppContext';\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\nconst homepage = process.env.REACT_APP_EXP;\r\n\r\nexport class ActExtraEstudiante extends Component {\r\n static displayName = ActExtraEstudiante.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n status: 0,\r\n activeTab: 1,\r\n loading: true,\r\n total: 0, \r\n categorias: [],\r\n tipos: [],\r\n idUser: 0,\r\n collapse: 1,\r\n dropdownOpen: false,\r\n actividades: [], \r\n currentActividades: [],\r\n currentPage: null,\r\n totalPages: null,\r\n isOpen: [],\r\n actividades1: [], \r\n actividades2: [], \r\n actividades3: [], \r\n actividades4: [], \r\n actividades5: [], \r\n actividades6: [],\r\n \r\n };\r\n\r\n /*this.handleEdit = this.handleEdit.bind(this);*/\r\n this.toggle = this.toggle.bind(this);\r\n this.toggleCard = this.toggleCard.bind(this);\r\n this.toggleDD = this.toggleDD.bind(this);\r\n this.newActEst = this.newActEst.bind(this);\r\n this.changeTap = this.changeTap.bind(this);\r\n this.onChangeTipo = this.onChangeTipo.bind(this);\r\n this.handleIsOpen = this.handleIsOpen.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n let user = this.context;\r\n //this.setState({ currentUser: user });\r\n //console.log('user', this.state.currentUser.idpersona);\r\n this.populateInfoData();\r\n if (user != null)\r\n this.populateActividades(user.idpersona);\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n let user = this.context;\r\n if (user != null && prevState.actividades.length !== this.state.actividades.length) {\r\n this.populateActividades(user.idpersona);\r\n }\r\n }\r\n\r\n onPageChanged = data => {\r\n const { actividades } = this.state;\r\n const { currentPage, totalPages, pageLimit } = data;\r\n const offset = (currentPage - 1) * pageLimit;\r\n const currentActividades = actividades.slice(offset, offset + pageLimit);\r\n\r\n this.setState({ currentPage, currentActividades, totalPages });\r\n }\r\n\r\n onChangeTipo(e) {\r\n //console.log('Cambio Tipo');\r\n //console.log(e.target.value);\r\n var id = e.target.value;\r\n this.setState({ collapse: id }); \r\n }\r\n\r\n isEditable(idTipo) {\r\n const intocable = [1, 20, 21, 33];\r\n if (intocable.includes(idTipo))\r\n return false;\r\n else\r\n return true;\r\n }\r\n\r\n renderActividadesTable(actividades, currentActividades, currentPage, totalPages) {\r\n const currentUser = this.context;\r\n const { collapse } = this.state;\r\n \r\n return (\r\n
\r\n

Mis Actividades Extracurriculares

\r\n\r\n \r\n
\r\n \r\n {this.state.categorias.map((categoria) =>\r\n <> \r\n \r\n

{categoria.nombre}

\r\n

\r\n {categoria.descripcion}\r\n

\r\n
\r\n {this.state.tipos.map((tipo) => {\r\n if (tipo.categoria == categoria.idaexinsignia || tipo.categoria == 0)\r\n return <>\r\n \r\n \r\n this.handleIsOpen('toggler-' + categoria.idaexinsignia + '-' + tipo.idaextipoactividad)}>\r\n {this.state.isOpen.includes('toggler-' + categoria.idaexinsignia + '-' + tipo.idaextipoactividad) ? : } {tipo.nombre}\r\n \r\n \r\n {this.isEditable(tipo.idaextipoactividad) ? : <>}\r\n \r\n \r\n \r\n \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.tipos.map(tipo => {*/}\r\n {/* return (categoria.idaexinsignia === tipo.categoria || 0 === tipo.categoria) ?*/}\r\n {/* */}\r\n {/* : <>*/}\r\n {/* }*/}\r\n {/* )}*/}\r\n {/* */}\r\n {/* {this.state.tipos.map(tipo =>*/}\r\n {/* */}\r\n {/* )}*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/**/}\r\n\r\n
\r\n \r\n )} \r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const currentUser = this.context;\r\n if (currentUser == null) {\r\n return <>;\r\n } else if (currentUser != null && this.state.idUser == 0) {\r\n this.setState({ idUser: currentUser.idpersona })\r\n this.populateActividades(currentUser.idpersona);\r\n }\r\n let contents = this.state.loading\r\n ? <>\r\n : this.renderActividadesTable(this.state.actividades, this.state.currentActividades, this.state.currentPage, this.state.totalPages);\r\n\r\n return (\r\n
\r\n {contents} \r\n
\r\n );\r\n }\r\n\r\n populateActividades(idpersona) { \r\n fetch(localBack + '/api/RegistroActividad/GetByEstudiante/' + idpersona, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, }); \r\n } else {\r\n this.setState({ actividades: [], loading: false });\r\n } \r\n });\r\n \r\n /*this.setState({ actividades: insig.objDatos, loading: false });*/\r\n \r\n }\r\n \r\n\r\n changeTap(cat) {\r\n const user = this.context; \r\n\r\n fetch(localBack + '/api/RegistroActividad/GetActByCat/' + user.idpersona + '/' + cat, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: [] });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, total: 1 }); \r\n } else {\r\n this.setState({ actividades: [], loading: false });\r\n }\r\n });\r\n /*console.log(this.state.actividades);*/\r\n /*this.setState({ actividades: insig.objDatos, loading: false });*/\r\n }\r\n\r\n populateInfoData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n categorias: data.objDatos });\r\n });\r\n\r\n fetch(localBack + '/api/TipoActividad/GetOnlyActive', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n tipos: data.objDatos \r\n });\r\n }); \r\n \r\n }\r\n\r\n newAct() {\r\n //console.log('Nueva Actividad');\r\n /*history.push('/Add-Act');*/ \r\n } \r\n\r\n toggle(tab) {\r\n if (this.state.activeTab !== tab) { \r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n }\r\n\r\n handleIsOpen(id) { \r\n let idlist = this.state.isOpen;\r\n if (idlist.includes(id)) {\r\n let el = idlist.indexOf(id);\r\n if (el > -1) {\r\n idlist.splice(el, 1);\r\n }\r\n } else {\r\n idlist.push(id)\r\n }\r\n this.setState({ isOpen: idlist });\r\n\r\n //if (this.state.idsSeleccionadas.length === this.state.actividades.length) {\r\n // this.setState({ allselectA: true });\r\n //} else {\r\n // this.setState({ allselectA: false });\r\n //}\r\n /*console.log(this.state.idsSeleccionadas); */\r\n }\r\n\r\n toggleCard(e) {\r\n let event = e.target.dataset.event;\r\n this.setState({ collapse: this.state.collapse === Number(event) ? 0 : Number(event) }); \r\n }\r\n\r\n toggleDD = (e) => {\r\n this.setState(prevState => ({\r\n dropdownOpen: !prevState.dropdownOpen\r\n }));\r\n }\r\n\r\n newAct() {\r\n //console.log('Nueva Actividad');\r\n /*history.push('/Add-Act');*/\r\n }\r\n\r\n newActEst(categoria, tipo) {\r\n /*console.log('Nueva Actividad Estudiante');*/\r\n /*history.push('/New-Act/' + categoria + '/' + tipo);*/\r\n this.props.history.push(homepage+'New-Act/' + categoria + '/' + tipo);\r\n }\r\n\r\n //handleEdit(id) {\r\n // console.log(\"Editar \" + id);\r\n // /*history.replace(\"/Edit-Act/\" + id);*/\r\n // this.props.history.push(\"/Edit-Act/\" + id);\r\n //}\r\n\r\n}\r\nActExtraEstudiante.contextType = AppContext;\r\n/*export default withRouter(ActExtraEstudiante);*/","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Card, CardImg, CardText, CardBody, CardTitle, CardHeader, Button } from 'reactstrap';\r\nimport sostenibilidad from './Imagenes/Insignias/ETICA_SOSTENIBILIDAD.png';\r\nimport liderazgo from './Imagenes/Insignias/LIDERAZGO_AUTOAGENCIA.png';\r\nimport creatibidad from './Imagenes/Insignias/CREATIVIDAD_INNOVACION_EMPRENDIMIENTO.png';\r\nimport interaccion from './Imagenes/Insignias/INTERACCION_COMUNICACION.png';\r\nimport autonomia from './Imagenes/Insignias/AUTONOMIA_APRENDIZAJE.png';\r\nimport estrategia from './Imagenes/Insignias/ESTRATEGIA_CONOCIMIENTO.png';\r\n\r\nimport shark from './Imagenes/IconInsignias/shark.svg';\r\n//import sostenibilidad from './Imagenes/IconInsignias/ciudadania-ETICA(B).svg';\r\n//import liderazgo from './Imagenes/IconInsignias/liderazgo-AUTOAGENCIA(B).svg';\r\n//import creatibidad from './Imagenes/IconInsignias/CREATIVIDAD(B).svg';\r\n//import interaccion from './Imagenes/IconInsignias/interaccion-COMUNICACION(B).svg';\r\n//import autonomia from './Imagenes/IconInsignias/Autonomia-APRENDIZAJE(B).svg';\r\n//import estrategia from './Imagenes/IconInsignias/Gestion-ESTRATEGICA(B).svg';\r\n\r\nconst imgInsignia = [shark, sostenibilidad, liderazgo, creatibidad, interaccion, autonomia, estrategia];\r\n\r\nconst colors = ['#FFFFFF', '#354750', '#F48700', '#A72186', '#1DA656', '#EA3B13', '#1F58AB']\r\n\r\nclass InsigniaCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const {\r\n idaexinsignia = 0, nombre = '', descripcion = ''\r\n } = props.insignia || {};\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n  \r\n {this.props.insignia.nombre}\r\n
\r\n
\r\n {/**/}\r\n \r\n {this.props.insignia.descripcion}\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nInsigniaCard.propTypes = {\r\n insignia: PropTypes.shape({ \r\n idaexinsignia: PropTypes.number.isRequired,\r\n nombre: PropTypes.string.isRequired,\r\n descripcion: PropTypes.string.isRequired \r\n }).isRequired\r\n};\r\n\r\nexport default InsigniaCard;\r\n","import React, { Component } from 'react';\r\nimport { Table, Row, Col, Container, Spinner, Alert } from 'reactstrap';\r\nimport { AiOutlineCheck, AiOutlineClose } from 'react-icons/ai';\r\nimport InsigniaCard from './InsigniaCard';\r\nimport InsigniaResultCard from './InsigniaResultCard';\r\nimport url from \"./variables/url.js\";\r\nimport { AppContext } from '../AppContext';\r\nimport SideBar from './SideBar';\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\n\r\nexport class Insignias extends Component {\r\n static displayName = Insignias.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n iduser: 0,\r\n insignias: [],\r\n insigniaResult: [],\r\n criterio: [],\r\n loading1: true,\r\n loading2: true,\r\n loading3: true,\r\n ultimoCambio: '0001/01/01T00:00',\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let currentUser = this.AppContext;\r\n this.populateInsigniaData();\r\n if (currentUser != null) {\r\n this.getUltimoCambio();\r\n this.setState({ iduser: currentUser.idpersona });\r\n this.populateCriterio(currentUser.idpersona);\r\n this.populateInsigniaResult(currentUser.idpersona);\r\n //console.log(this.state);\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n const currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.getUltimoCambio();\r\n this.setState({ iduser: currentUser.idpersona });\r\n this.populateCriterio(currentUser.idpersona);\r\n this.populateInsigniaResult(currentUser.idpersona);\r\n }\r\n }\r\n\r\n renderInsigniasCard(insignias, result, criterio) {\r\n let className2 = \"col-4\";\r\n return ( \r\n <> \r\n

Insignias

\r\n
\r\n {result.map((resul,i) =>\r\n \r\n \r\n \r\n )}\r\n
\r\n {this.state.insigniaResult.length == 0 ?\r\n <>\r\n \r\n

\r\n En este momento no registra actividades aprobadas, posiblemente se encuentren en revisión. Una vez aprobadas el avance de sus insignias se reflejara en esta sección.\r\n

\r\n
\r\n
\r\n {insignias.map(insignia =>\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n : <>\r\n }\r\n \r\n )\r\n }\r\n\r\n render() {\r\n\r\n let contents = this.state.loading1 || this.state.loading2 ?\r\n <> \r\n : this.renderInsigniasCard(this.state.insignias, this.state.insigniaResult, this.state.criterio);\r\n\r\n let alertUltimoCambio = this.state.loading3 ?\r\n <> \r\n : \r\n

\r\n Para las insignias solo cuentan las actividades aprobadas.\r\n

\r\n

\r\n Ultima Actualización: {this.state.ultimoCambio != null ? this.state.ultimoCambio.split(\"T\")[0] : 'Null'} {this.state.ultimoCambio != null ? this.state.ultimoCambio.split(\"T\")[1].substring(0, 5) : ''}.\r\n

\r\n
;\r\n\r\n return (\r\n
\r\n {alertUltimoCambio}\r\n
\r\n {contents} \r\n
\r\n
\r\n );\r\n }\r\n\r\n populateInsigniaData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n insignias: data.objDatos,\r\n });\r\n }); \r\n\r\n }\r\n\r\n populateInsigniaResult(id) {\r\n fetch(localBack + '/api/ResultadoInsignia/GetbyEstudiante/' + id, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log('insignia: ', data);*/\r\n this.setState({ insigniaResult: data.objDatos, loading1: false });\r\n });\r\n /*console.log('Resultado ', this.state.insigniaResult);*/\r\n\r\n }\r\n\r\n populateCriterio(id) {\r\n fetch(localBack + '/api/ResultadoCriterio/GetWithCriterioAgrupado/'+id, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n //console.log('criterio: ', data);\r\n this.setState({ criterio: data.objDatos, loading2: false });\r\n });\r\n }\r\n\r\n getUltimoCambio() {\r\n fetch(localBack + '/api/ResultadoInsignia/GetUltimoCambio', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log('insignia: ', data);*/\r\n if (data.objDatos != null)\r\n this.setState({ ultimoCambio: data.objDatos.ultimoCambio, loading3: false });\r\n\r\n });\r\n\r\n }\r\n\r\n}\r\nInsignias.contextType = AppContext;\r\n","import React, { Component } from 'react';\r\nimport { Button } from 'reactstrap';\r\n\r\nconst DownloadButton = props => {\r\n const downloadFile = () => {\r\n window.location.href = \"https://yoursite.com/src/assets/files/exampleDoc.pdf\"\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 cerrarModal() {\r\n this.setState({\r\n openModal: !this.state.openModal\r\n });\r\n }\r\n\r\n render() { \r\n let contents = this.state.loading1 || this.state.loading2 ?\r\n <> \r\n : this.renderReporteCard(this.state.actividades, this.state.insignias);\r\n\r\n return (\r\n
\r\n
\r\n {contents} \r\n
\r\n
\r\n this.cerrarModal()} className={this.props.className}>\r\n this.cerrarModal()}>Vista Evidencia\r\n \r\n \r\n {this.state.pdfResult > 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 populateInsigniaData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n categorias: data.objDatos\r\n });\r\n });\r\n /*console.log(this.state.categorias);*/\r\n\r\n fetch(localBack + '/api/TipoActividad/GetOnlyActive', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n tipos: data.objDatos\r\n });\r\n });\r\n\r\n fetch(localBack + '/api/Entidad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data.strEstado);*/\r\n this.setState({\r\n entidades: data.objDatos,\r\n loading: false\r\n });\r\n });\r\n \r\n }\r\n\r\n getUltimoCambio() {\r\n fetch(localBack + '/api/ResultadoInsignia/GetUltimoCambio', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log('insignia: ', data);*/\r\n if (data.objDatos != null)\r\n this.setState({ ultimoCambio: data.objDatos.ultimoCambio });\r\n \r\n }); \r\n\r\n }\r\n\r\n populateInsigniaResult(id) {\r\n fetch(localBack + '/api/ResultadoInsignia/GetbyEstado/' + id, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log('insignia: ', data);*/\r\n this.setState({ insignias: data.objDatos, loading1: false });\r\n let ids = [];\r\n this.state.insignias.map(obj => { ids.push(obj.idaexresultadoinsignia) });\r\n this.setState({ idsInsignias: ids });\r\n });\r\n }\r\n\r\n populateActividad(id,estado) {\r\n fetch(localBack + '/api/RegistroActividad/GetActByEstado/'+id+'/'+estado, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log('criterio: ', data);*/\r\n this.setState({ actividades: data.objDatos, loading2: false });\r\n let ids = [];\r\n this.state.actividades.map(act => { ids.push(act.idaexregistroactividad) });\r\n this.setState({ idsSeleccionadas: ids });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }); \r\n }\r\n\r\n getPdf(idpersona, codigo) {\r\n\r\n let report = this.state.Reporte;\r\n report.codigo = codigo;\r\n report.idestudiante = idpersona;\r\n report.tipo = this.state.agrupacion;\r\n report.actividades = this.state.idsSeleccionadas;\r\n report.insignias = this.state.idsInsignias;\r\n\r\n this.setState({ Reporte: report });\r\n /*console.log(this.state.Reporte.codigo.length);*/\r\n\r\n const data = JSON.stringify(report);\r\n\r\n fetch(localBack + '/api/Reporte/', {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: data,\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => {\r\n /*console.log(data.strMensaje);*/\r\n if (data.strEstado == 'S') {\r\n this.setState({\r\n pdfBase64: \"data:application/pdf;base64,\" + data.objDatos + \"\", pdfResult: 1\r\n });\r\n /*console.log(this.state.pdfBase64);*/\r\n } else {\r\n this.setState({ pdfResult: -1 });\r\n } \r\n });\r\n }\r\n\r\n generarPdf(idpersona) {\r\n\r\n let report = this.state.Reporte; \r\n report.idestudiante = idpersona;\r\n report.tipo = this.state.agrupacion;\r\n report.actividades = this.state.idsSeleccionadas;\r\n report.insignias = this.state.idsInsignias; \r\n this.setState({ Reporte: report, fileState: 'L' });\r\n /*console.log(this.state.Reporte.codigo.length);*/\r\n const data = JSON.stringify(report);\r\n try {\r\n fetch(localBack + '/api/Reporte/generar', {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: data,\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => {\r\n /*console.log(data.strMensaje);*/\r\n if (data.strEstado == 'S') {\r\n this.setState({\r\n report: data.objDatos,\r\n fileState: 'G'\r\n });\r\n let codigo = data.objDatos.rutapdf.split(',');\r\n this.getPdfGenerado(codigo[1]); \r\n } else {\r\n this.setState({ \r\n fileState: 'B'\r\n });\r\n } \r\n });\r\n } catch (ie) {\r\n this.setState({ fileState: 'B' });\r\n console.log(\"Error: \" + ie);\r\n }\r\n }\r\n\r\n getPdfGenerado(id) {\r\n let codigo = this.state.report.codigo; \r\n fetch(localBack + '/api/FileUpload/DescargarEvidencia/' + id, {\r\n method: 'GET',\r\n })\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(data => {\r\n if (data !== '') { \r\n this.setState({\r\n pdfBase64Download: \"data:application/pdf;base64,\" + data + \"\",\r\n pdfResultDownload: 1,\r\n });\r\n let a = document.createElement('a');\r\n a.href = \"data:application/pdf;base64,\" + data + \"\";\r\n a.download = \"certificado-\"+codigo+\".pdf\";\r\n a.click();\r\n } else {\r\n this.setState({ pdfResultDownload: -1 });\r\n }\r\n });\r\n }\r\n\r\n goToInsignia() {\r\n /*console.log(\"/Insignia\"); */\r\n this.props.history.push(homepage+\"Insignia\");\r\n }\r\n\r\n goToActividad() {\r\n /*console.log(\"/Act-Est\");*/\r\n this.props.history.push(homepage+\"Act-Est\");\r\n }\r\n\r\n generarReporte() {\r\n let cod = this.state.codigo;\r\n let hoy = new Date();\r\n let hora = `${hoy.getHours()}${hoy.getMinutes()}${hoy.getSeconds()}`;\r\n let dia = `${hoy.getDate()}${hoy.getMonth() + 1}${hoy.getFullYear()}`;\r\n let codigoPdf = cod + hora + dia;\r\n this.setState({ certificado: codigoPdf });\r\n //console.log(\"hora: \", hora);\r\n //console.log(\"fecha: \", dia);\r\n //console.log(\"reporte: \", codigoPdf);\r\n //console.log(\"Actividades Selecionadas\",this.state.idsSeleccionadas);\r\n //console.log(\"Insignias Selecionadas\", this.state.idsInsignias);\r\n this.setPopoutOpen(true);\r\n }\r\n\r\n generarReporteV2() {\r\n let cod = this.state.codigo;\r\n let hoy = new Date();\r\n let hora = `${hoy.getHours()}${hoy.getMinutes()}`;\r\n let dia = `${hoy.getDate()}${hoy.getMonth() + 1}${hoy.getFullYear()}`;\r\n let codigoPdf = cod + hora + dia;\r\n this.setState({ certificado: codigoPdf });\r\n this.getPdf(this.state.iduser, codigoPdf);\r\n this.cerrarModal();\r\n }\r\n\r\n setPopoutOpen(open) {\r\n this.setState({\r\n showPopout: open\r\n });\r\n }\r\n\r\n getPopout() {\r\n let currentUser = this.AppContext;\r\n let acti = this.state.actividades.filter(activ => this.state.idsSeleccionadas.includes(activ.idaexregistroactividad));\r\n let insi = this.state.insignias.filter(ing => this.state.idsInsignias.includes(ing.idaexresultadoinsignia));\r\n let vacio = \r\n No tiene actividades o insignias seleccionadas para el reporte.\r\n Por favor, verifique que tenga seleccionada alguna actividad o insignia.\r\n ;\r\n\r\n let encabezado = \r\n \r\n \r\n \r\n
Certificado #: {this.state.certificado}
Matricula: {this.state.codigo}
Nombre: {this.state.nombreCompleto}
\r\n let resumen = {acti.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 {acti.map((act, i) => {\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n } \r\n )}\r\n \r\n
#ActividadAñoCategoríaTipo Actividad
{(i + 1)}{act.nombre}{act.anio}{this.state.categorias.filter(cate => cate.idaexinsignia === act.categoria).map(actcat => actcat.nombre)}{this.state.tipos.filter(tipo => tipo.idaextipoactividad === act.idaextipoactividad).map(acttipo => acttipo.nombre)}
\r\n
\r\n : <>}\r\n {insi.length > 0\r\n ? \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {insi.map((result, i) => {\r\n return \r\n \r\n \r\n \r\n \r\n } \r\n )}\r\n \r\n
InsigniaDescripcion
{result.insignia.nombre}{result.insignia.descripcion}
\r\n : <>}\r\n
;\r\n\r\n let generar = \r\n\r\n if (!this.state.showPopout) {\r\n return null;\r\n }\r\n\r\n let content = acti.length === 0 && insi.length === 0\r\n ?
{vacio}
\r\n :
\r\n {this.state.pdfResult > 0 ?\r\n \r\n \r\n \r\n : this.state.pdfResult < 0\r\n ?\r\n \r\n Error al generar Preview.\r\n \r\n :\r\n <>\r\n }\r\n
\r\n\r\n return (\r\n this.setPopoutOpen(false)}>\r\n \r\n \r\n {content}\r\n \r\n {generar}\r\n \r\n \r\n );\r\n }\r\n\r\n generarCertificado() {\r\n console.log(\"#Certificado: \", this.state.certificado);\r\n console.log(\"Matricula: \", this.state.codigo);\r\n console.log(\"Nombre: \", this.state.nombreCompleto);\r\n console.log(\"Actividades: \", this.state.idsSeleccionadas);\r\n console.log(\"Insignias: \", this.state.idsInsignias);\r\n }\r\n\r\n autentica(id) {\r\n /*console.log(\"Usuario-Externo/Autentica/\" + id);*/\r\n this.props.history.push(\"/Externo/Autenticado/\" + id);\r\n }\r\n\r\n handleChangeChk(id) {\r\n /*console.log(id);*/\r\n let idlist = this.state.idsSeleccionadas; \r\n if (idlist.includes(id)) {\r\n let el = idlist.indexOf(id);\r\n if (el > -1) {\r\n idlist.splice(el, 1);\r\n }\r\n } else {\r\n idlist.push(id)\r\n } \r\n this.setState({ idsSeleccionadas: idlist });\r\n\r\n if (this.state.idsSeleccionadas.length === this.state.actividades.length) {\r\n this.setState({ allselectA: true });\r\n } else {\r\n this.setState({ allselectA: false });\r\n }\r\n /*console.log(this.state.idsSeleccionadas); */ \r\n }\r\n\r\n toggleChangeAll = e => { \r\n if (e.target.checked) {\r\n let ids = [];\r\n this.state.actividades.map(act => { ids.push(act.idaexregistroactividad) });\r\n this.setState({ idsSeleccionadas: ids, allselectA: e.target.checked }); \r\n } else {\r\n this.setState({ idsSeleccionadas: [], allselectA: e.target.checked }); \r\n }\r\n }\r\n\r\n toggleChangeAllInsignia = e => {\r\n /*console.log(e.target.checked)*/\r\n if (e.target.checked) {\r\n let ids = [];\r\n this.state.insignias.map(act => { ids.push(act.idaexregistroactividad) });\r\n this.setState({ idsInsignias: ids, allselectI: e.target.checked }); \r\n } else {\r\n this.setState({ idsInsignias: [], allselectI: e.target.checked });\r\n }\r\n }\r\n \r\n\r\n handleChangeChkInsignia(id) {\r\n /*console.log(id);*/\r\n let idlist = this.state.idsInsignias;\r\n if (idlist.includes(id)) {\r\n let el = idlist.indexOf(id);\r\n if (el > -1) {\r\n idlist.splice(el, 1);\r\n }\r\n } else {\r\n idlist.push(id)\r\n }\r\n this.setState({ idsInsignias: idlist });\r\n\r\n if (this.state.idsInsignias.length === this.state.insignias.length) {\r\n this.setState({ allselectI: true });\r\n } else {\r\n this.setState({ allselectI: false });\r\n } \r\n }\r\n\r\n upDateIdsActSelect(tab) {\r\n let ids = [];\r\n if (tab === 0) {\r\n /*console.log(\"todo\");*/\r\n this.state.actividades.map(act => { ids.push(act.idaexregistroactividad) });\r\n this.reLoadTotalPage(ids.length, this.state.limite);\r\n this.setState({ idsSeleccionadas: ids });\r\n } else {\r\n /*console.log(\"filtrar: \", tab);*/\r\n this.state.actividades.filter(actividad => actividad.categoria === tab).map(act => { ids.push(act.idaexregistroactividad) });\r\n this.reLoadTotalPage(ids.length, this.state.limite);\r\n this.setState({ idsSeleccionadas: ids });\r\n }\r\n /*console.log(this.state.totalPageA)*/\r\n }\r\n\r\n upDateIdsInsigSelect(tab) {\r\n let idsI = [];\r\n if (tab === 0) {\r\n this.state.insignias.map(obj => { idsI.push(obj.idaexresultadoinsignia) });\r\n this.setState({ idsInsignias: idsI });\r\n } else {\r\n this.state.insignias.filter(insig => insig.idaexinsignia === tab).map(obj => { idsI.push(obj.idaexresultadoinsignia) });\r\n this.setState({ idsInsignias: idsI });\r\n }\r\n }\r\n\r\n\r\n reLoadTotalPage(lenActividades, limite) {\r\n this.setState({ totalPageA: Math.ceil(lenActividades / limite) });\r\n /*console.log('Total Paginas: ',this.state.totalPageA);*/\r\n }\r\n\r\n}\r\nReporte.contextType = AppContext;\r\n","import React, { Component } from 'react';\r\nimport { Container, Row, Col, Button } from 'reactstrap';\r\nimport { Input, InputGroup, InputGroupAddon, InputGroupText, Table } from 'reactstrap';\r\nimport { Card, CardHeader, CardBody, CardText, CardFooter } from 'reactstrap';\r\nimport logo from './Imagenes/Iconos/ESPOL-extracurriculares.svg';\r\nimport url from \"./variables/url.js\";\r\nimport \"react-pro-sidebar/dist/css/styles.css\";\r\n/*import pdfPrueba from './Content/plantilla.pdf';*/\r\nimport './PDF.css';\r\nimport AllPagesPDFViewer from './All-page';\r\nimport Certificado from './Certificado';\r\nimport SinglePagePDFViewer from './Single-page';\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\n\r\nconst ColoredLine = ({ color }) => (\r\n \r\n);\r\n\r\nexport class Autenticado extends Component {\r\n static displayName = Autenticado.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n iduser: 0,\r\n Autenticado: [],\r\n actividades: [],\r\n codigo: '',\r\n insignias: [],\r\n loading1: true,\r\n loading2: true,\r\n buscar: '',\r\n pdfResult: 0,\r\n pdfBase64: ''\r\n };\r\n\r\n this.handleSearch = this.handleSearch.bind(this);\r\n this.searchById = this.searchById.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n var cer = this.props.match.params[\"codigo\"]; \r\n if (cer !== '') { \r\n this.setState({ buscar: cer });\r\n this.populatePdf();\r\n }\r\n /*console.log(this.state.buscar);*/ \r\n }\r\n\r\n handleSearch = async function (event) {\r\n await this.setState({ buscar: event.target.value });\r\n /*console.log(this.state.buscar);*/\r\n }\r\n\r\n searchById() {\r\n /*this.populateActividad(this.state.buscar, 'A');*/\r\n if (this.state.buscar !== '') {\r\n fetch(localBack + '/api/Certificado/GetByCodigo/' + this.state.buscar, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => { \r\n if (data.strEstado === \"S\") {\r\n let certificadoRow = data.objDatos;\r\n let codigo = certificadoRow.rutapdf.split(','); \r\n this.getPdf(codigo[1]);\r\n } else {\r\n //console.log('Documento No existe.');\r\n }\r\n });\r\n this.setState({ pdfResult: 1 });\r\n } else {\r\n this.setState({ pdfResult: -1 });\r\n } \r\n }\r\n\r\n populatePdf() {\r\n /*this.populateActividad(this.state.buscar, 'A');*/\r\n if (this.state.buscar !== '') {\r\n fetch(localBack + '/api/Certificado/GetByCodigo/' + this.props.match.params[\"codigo\"], {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data.strEstado === \"S\") {\r\n let certificadoRow = data.objDatos;\r\n let codigo = certificadoRow.rutapdf.split(',');\r\n this.getPdf(codigo[1]);\r\n } else {\r\n //console.log('Documento No existe.');\r\n }\r\n });\r\n this.setState({ pdfResult: 1 });\r\n } else {\r\n this.setState({ pdfResult: -1 });\r\n }\r\n }\r\n\r\n getPdf(id) {\r\n fetch(localBack+'/api/FileUpload/DescargarEvidencia/'+id, {\r\n method: 'GET',\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => {\r\n if (data !== '') {\r\n this.setState({\r\n pdfBase64: \"data:application/pdf;base64,\" + data + \"\", pdfResult: 1\r\n }); \r\n } else {\r\n this.setState({ pdfResult: -1 });\r\n } \r\n });\r\n }\r\n\r\n populateInsigniaResult(id) {\r\n fetch(localBack + '/api/ResultadoInsignia/GetbyEstado/' + id, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log('insignia: ', data);*/\r\n this.setState({ insignias: data.objDatos, loading1: false });\r\n });\r\n /*console.log('Resultado ', this.state.insigniaResult);*/\r\n\r\n }\r\n\r\n populateActividad(id, estado) {\r\n fetch(localBack + '/api/RegistroActividad/GetActByEstado/' + id + '/' + estado, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log('criterio: ', data);*/\r\n this.setState({ actividades: data.objDatos, loading2: false });\r\n });\r\n /*console.log('Criterio ', this.state.criterio);*/\r\n }\r\n\r\n render () {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Autenticación\r\n \r\n \r\n Ingrese el código del certificado para verificar autenticidad.\r\n \r\n \r\n \r\n \r\n \r\n this.searchById()}>\r\n Consultar\r\n \r\n \r\n \r\n \r\n \r\n {this.state.pdfResult > 0 ? \r\n \r\n \r\n \r\n : this.state.pdfResult < 0\r\n ?\r\n \r\n No se encontró el certificado.\r\n Por favor, verifique que le código se haya escrito correctamente.\r\n \r\n :\r\n <>\r\n }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Input, Button, Card } from 'reactstrap';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport './NavMenu.css';\r\nimport { AppContext } from '../AppContext';\r\nimport { HiDocumentDownload, HiDocumentText } from 'react-icons/hi';\r\nimport AllPagesPDFViewer from './All-page';\r\nimport Select from \"react-select/creatable\";\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport url from \"./variables/url.js\";\r\n/*import history from \"../history\";*/\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\nconst homepage = process.env.REACT_APP_EXP;\r\nconst MySwal = withReactContent(Swal)\r\n\r\nconst gestionErr = {\r\n \"idaexregistroactividadgestion\": 0,\r\n \"idaexregistroactividad\": 0,\r\n \"estado\": \"R\",\r\n \"comentarios\": \"Error al ingresar, no se genero el primer estado inicial de la actividad.\",\r\n \"idresponsable\": 0,\r\n \"fecha\": \"\",\r\n \"ultimoCambio\": \"\"\r\n}\r\n\r\nexport class UpdateGestion extends Component {\r\n static displayName = UpdateGestion.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n /*estructura registro actividad*/\r\n edit: false, \r\n loading: true,\r\n iduser: 0,\r\n roles: [],\r\n actividad: {\r\n idaexregistroactividad: 0,\r\n categoria: 1,\r\n idaextipoactividad: 2,\r\n descripcionact: '',\r\n nombre: '',\r\n anio: '',\r\n horas: 0,\r\n evidencia: '',\r\n descripcionevid: '',\r\n tutor: '',\r\n puesto: '',\r\n instacredita: 0,\r\n idestudiante: 91227,\r\n revisado: 0,\r\n }, \r\n gestion: {\r\n idaexregistroactividad: 0,\r\n idresponsable: 0,\r\n comentarios: '',\r\n estado: '' \r\n },\r\n persona: {\r\n idpersona: 0,\r\n numeroidentificacion: \"\",\r\n apellidos: \"\",\r\n nombres: \"\",\r\n codestudiante: \"\",\r\n email: \"\",\r\n sexo: \"\",\r\n estadopersona: \"A\",\r\n tipodiscapacidad: \"N\",\r\n tipoidentificacion: \"CED\",\r\n estadoempleado: \"\",\r\n tienediscapacidad: \"N\",\r\n tienefamildiscapacidad: \"N\"\r\n }, \r\n insignias: [],\r\n tipos: [],\r\n instituciones: [],\r\n institucionesSelect: [],\r\n institucionesInternas: [{ 'value': 'UNIDAD', 'label': 'Unidad' }, { 'value': 'ASOCIACION', 'label': 'Asociaci\\u00F3n' }, { 'value': 'CLUBES', 'label': 'Clubes' }, { 'value': 'FEDERACION', 'label': 'Federaci\\u00F3n' }, { 'value': 'ESPOL', 'label': 'INTERNO' }],\r\n selectedInstInterna: { 'value': 'UNIDAD', 'label': 'Unidad' },\r\n currentUser: [],\r\n classInstitucion: [{ 'value': 2, 'label': 'ESPOL' }, { 'value': 'EXTERNA', 'label': 'Externa' }],\r\n selectedClassInst: { 'value': 2, 'label': 'ESPOL' },\r\n selectedInst: {},\r\n openModal: false,\r\n pdfBase64: '',\r\n pdfResult: 0,\r\n /*I para Ingresado, A para Aprobado y R para Rechazado.*/\r\n estados: [ { id: 'R', nombre: 'Rechazado' }, {id:'D',nombre:'Devuelto'},{ id: 'A', nombre: 'Aprobado'}], \r\n estadosErr: [{ id: 'I', nombre: 'Ingresado' },{ id: 'R', nombre: 'Rechazado' }, {id:'D',nombre:'Devuelto'},{ id: 'A', nombre: 'Aprobado'}]\r\n }; \r\n\r\n // This binding is necessary to make \"this\" work in the callback \r\n this.handleSave = this.handleSave.bind(this);\r\n this.handleCancel = this.handleCancel.bind(this); \r\n this.onChangeEstado = this.onChangeEstado.bind(this);\r\n this.handleArea = this.handleArea.bind(this);\r\n this.cerrarModal = this.cerrarModal.bind(this);\r\n }\r\n\r\n componentDidMount() { \r\n var actid = this.props.match.params[\"id\"]; \r\n if (actid > 0) {\r\n this.setState({ loading: true, edit: true });\r\n this.populateActividadData(actid); \r\n }\r\n this.populateInfoData();\r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n isForbidden() {\r\n this.props.history.push({\r\n pathname: homepage,\r\n })\r\n }\r\n\r\n handleSave(event) {\r\n const currentUser = this.context;\r\n //console.log(\"Gestionar\");\r\n let forma = new FormData(event.target); \r\n let gestion = this.state.gestion;\r\n forma.forEach((value, clave) => {\r\n if (typeof gestion[clave] === 'number') {\r\n gestion[clave] = Number(value);\r\n }\r\n else if (typeof gestion[clave] === 'boolean') {\r\n //console.log(Boolean(value));\r\n\r\n gestion[clave] = Boolean(value);\r\n }\r\n else if (value == '') {\r\n gestion[clave] = null;\r\n }\r\n else {\r\n gestion[clave] = value;\r\n }\r\n });\r\n\r\n gestion.idaexregistroactividadgestion = 0;\r\n gestion.idresponsable = currentUser.idpersona;\r\n gestion.responsable = null;\r\n gestion.idaexregistroactividad = this.state.actividad.idaexregistroactividad;\r\n\r\n //console.log(gestion);\r\n\r\n if (gestion.idresponsable > 0) {\r\n const data = JSON.stringify(gestion);\r\n\r\n fetch(localBack + '/api/RegistroActividad/PostGestion/', {\r\n\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: data,\r\n\r\n })\r\n .then((response) => {\r\n let resp = response.json();\r\n /*console.log(response.objDatos)*/\r\n return resp;\r\n /*this.props.location.props.onUpdateActividades(response.objDatos)*/\r\n }).then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividad: data.objDatos, loading: false, total: 1, gestion: data.objDatos.registroActividadGestion }); \r\n MySwal.fire({\r\n icon: 'success',\r\n title: 'Actualizaci\\u00F3n de Estado',\r\n text: 'Se actualizo el estado.',\r\n confirmButtonText: 'Listo',\r\n /*timer: 5000*/\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.gotoGestion(data);\r\n }\r\n })\r\n } else {\r\n this.setState({ loading: false });\r\n MySwal.fire({\r\n icon: 'error',\r\n title: 'Oops...',\r\n text: 'Error al actulizar estado.',\r\n confirmButtonText: 'salir',\r\n /*timer: 5000*/\r\n })\r\n }\r\n })\r\n } \r\n\r\n else {\r\n //console.log(\"No hubo id\");\r\n } \r\n /*this.props.history.push('/GestionActividad');*/\r\n event.preventDefault();\r\n }\r\n\r\n gotoGestion(data) {\r\n this.props.history.push({ pathname: homepage + 'GestionActividad', state: { actividad: data.objDatos } });\r\n }\r\n\r\n handleCancel() {\r\n //console.log(\"Cancelar\");\r\n this.props.history.push(homepage + \"GestionActividad\");\r\n } \r\n\r\n onChangeEstado(e) {\r\n //console.log('Cambio Estado');\r\n //console.log(e.target.value);\r\n var id = e.target.value;\r\n var gest = this.state.gestion;\r\n gest.estado = id;\r\n if (id === 'A') {\r\n gest.comentarios = 'Actividad Aprobada.'\r\n } else if (id === 'R') {\r\n gest.comentarios = ''\r\n }else {\r\n gest.comentarios = ''\r\n }\r\n this.setState({ gestion: gest });\r\n //console.log(this.state.gestion);\r\n }\r\n\r\n handleArea(event) {\r\n let gest = this.state.gestion;\r\n gest.comentarios = event.target.value\r\n this.setState({ gestion: gest });\r\n }\r\n\r\n getPdf(link) { \r\n //console.log(link);\r\n let cortar = this.state.actividad.evidencia.split('/');\r\n let total = cortar.length;\r\n fetch(link, {\r\n method: 'GET',\r\n })\r\n .then(response => { \r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => { \r\n if (data !== '') {\r\n this.setState({\r\n pdfBase64: \"data:application/pdf;base64,\" + data + \"\", pdfResult: 1, openModal: false\r\n });\r\n //console.log(total);\r\n //console.log(cortar[total-1]); \r\n let a = document.createElement('a');\r\n a.href = \"data:application/pdf;base64,\" + data + \"\";\r\n a.download = \"evidencia-\" + this.state.actividad.nombre + \".pdf\";\r\n a.click();\r\n } else {\r\n this.setState({ pdfResult: -1 });\r\n } \r\n });\r\n }\r\n\r\n openInNewTab = url => {\r\n window.open(url, '_blank', 'noopener,noreferrer');\r\n };\r\n\r\n abrirDoc(link) {\r\n if (link !== null) {\r\n if (link.startsWith(localBack + '/api/FileUpload/DescargarEvidencia/')) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n cerrarModal() { \r\n this.setState({\r\n openModal: !this.state.openModal\r\n });\r\n }\r\n\r\n renderUpdateGestionTable(insignias, tipos, instituciones) {\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 {insignias.map(insignia =>\r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n {tipos.map(tipo =>\r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n {this.usoHora(this.state.actividad.idaextipoactividad)\r\n ? <>< label className=\"control-label col-md-1\" htmlFor=\"Name\">Horas: \r\n \r\n : <>}\r\n
\r\n
\r\n \r\n \r\n {this.state.actividad.evidencia !== '' ? this.abrirDoc(this.state.actividad.evidencia)\r\n ? \r\n : this.state.actividad.evidencia === '' ? <> : : <>}\r\n \r\n
\r\n
\r\n {this.usoInstitucion(this.state.actividad.idaextipoactividad) ?\r\n <>\r\n \r\n \r\n : <>}\r\n
\r\n {this.state.selectedClassInst.label === 'ESPOL' ?\r\n
\r\n {this.usoInstitucion(this.state.actividad.idaextipoactividad) ?\r\n <>\r\n \r\n i.clasificacion === this.state.selectedInstInterna.value)} isDisabled />\r\n \r\n : <>}\r\n
\r\n :\r\n
\r\n {this.usoInstitucion(this.state.actividad.idaextipoactividad) ?\r\n <>\r\n \r\n \r\n \r\n }\r\n
\r\n }\r\n {this.usoPuesto(this.state.actividad.idaextipoactividad)\r\n ? < div className=\"form-group row\" >\r\n \r\n \r\n
: <>}\r\n
\r\n \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.estadosErr.map(est =>\r\n \r\n )\r\n }\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n    \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n );\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ?

Loading...

\r\n : this.renderUpdateGestionTable(this.state.insignias, this.state.tipos, this.state.instituciones);\r\n\r\n return (\r\n
\r\n

Gestión Actividad

\r\n {contents}\r\n\r\n this.cerrarModal()} className={this.props.className}>\r\n this.cerrarModal()}>Vista Evidencia\r\n \r\n \r\n {this.state.pdfResult > 0 ? : <>No pdf}\r\n \r\n \r\n \r\n {' '}\r\n \r\n \r\n \r\n
\r\n );\r\n } \r\n\r\n populateActividadData(id) {\r\n let instSel = {};\r\n let instClassSel = {};\r\n let instInternaSel = { 'value': 'UNIDAD', 'label': 'Unidad' }; \r\n let bandera = true\r\n fetch(localBack + '/api/RegistroActividad/GetWithGestion/' + id, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data);\r\n if (data.strEstado == 'S') {\r\n instSel = this.state.instituciones.filter(i => i.value === data.objDatos.idinstitucion);\r\n if (data.objDatos.institucion.clasificacion === 'EXTERNA') {\r\n //console.log('EXTERNA');\r\n instClassSel = { 'value': 'EXTERNA', 'label': 'Externa' };\r\n } else {\r\n //console.log('ESPOL');\r\n instClassSel = { 'value': 2, 'label': 'ESPOL' };\r\n instInternaSel = this.state.institucionesInternas.filter(i => i.value === data.objDatos.institucion.clasificacion);\r\n }\r\n this.setState({\r\n actividad: data.objDatos,\r\n persona: data.objDatos.estudiante,\r\n loading: false,\r\n total: 1,\r\n gestion: data.objDatos.registroActividadGestion,\r\n selectedInst: instSel, \r\n selectedClassInst: instClassSel,\r\n selectedInstInterna: instInternaSel,\r\n });\r\n bandera = false;\r\n //console.log(this.state.persona);\r\n } else {\r\n this.setState({ loading: false, gestion: gestionErr }); \r\n }\r\n });\r\n\r\n if (bandera) {\r\n //console.log(\"Populate actividad\" + id);\r\n fetch(localBack + '/api/RegistroActividad/' + id, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividad: data.objDatos, loading: false });\r\n }\r\n });\r\n }\r\n //console.log('Actividad: ',this.state.actividad);\r\n //console.log('Gestion: ',this.state.gestion);\r\n }\r\n\r\n populateActividad(id) {\r\n //console.log(\"Populate actividad\" + id);\r\n fetch(localBack + '/api/RegistroActividad/' + id, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividad: data.objDatos, loading: false });\r\n } else {\r\n this.setState({ loading: false, actividad: [] });\r\n }\r\n });\r\n }\r\n\r\n populateGestionData(id) {\r\n //console.log(\"Gestion \" + id);\r\n let gestionId = this.state.gestion;\r\n gestionId.idresponsable = 2567;\r\n gestionId.idaexregistroactividad = id;\r\n this.setState({ gestion: gestionId });\r\n //console.log(this.state.gestion);\r\n //fetch(localBack + '/api/RegistroActividad/' + id, {\r\n // method: 'GET',\r\n // /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n //})\r\n // .then(response => {\r\n // this.setState({ status: response.status });\r\n // return response.json();\r\n // })\r\n // .then(data => {\r\n // console.log(data.strMensaje);\r\n // if (data.strEstado == 'S') {\r\n // this.setState({ actividad: data.objDatos, loading: false, total: 1 });\r\n // } else {\r\n // this.setState({ loading: false });\r\n // }\r\n // });\r\n }\r\n\r\n populateInfoData() {\r\n let ids = [];\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data.strMensaje);*/\r\n this.setState({\r\n insignias: data.objDatos\r\n });\r\n });\r\n\r\n fetch(localBack + '/api/TipoActividad/GetOnlyActive', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n tipos: data.objDatos,\r\n loading: false\r\n });\r\n });\r\n\r\n fetch(localBack + '/api/Entidad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n data.objDatos.map(inst => { ids.push({ 'value': inst.idaexentidad, 'label': inst.nombre, 'clasificacion': inst.clasificacion }) });\r\n this.setState({\r\n instituciones: ids,\r\n institucionesSelect: ids,\r\n loading: false\r\n });\r\n });\r\n\r\n }\r\n\r\n nombrePorTipo(tipo) {\r\n if (tipo === 1 || tipo === 13 || tipo === 16 || tipo === 25)\r\n return 'Nombre del Proyecto: '\r\n else if (tipo === 2 || tipo === 3)\r\n return 'Nombre del Reto: '\r\n else if (tipo === 5 || tipo === 8 || tipo === 14 || tipo === 17 || tipo === 19 || tipo === 27 || tipo === 28 || tipo === 29)\r\n return 'Nombre del Curso: '\r\n else if (tipo === 20)\r\n return 'Nombre de la Materia: '\r\n else if (tipo === 21)\r\n return 'Nombre de la Unidad: '\r\n else if (tipo === 10 || tipo === 12)\r\n return 'Nombre del Cargo: '\r\n else if (tipo === 26)\r\n return 'Nombre del Deporte: '\r\n else if (tipo === 22)\r\n return 'Mentoring Edici\\u00F3n: '\r\n else if (tipo === 23)\r\n return 'Nombre del Torneo: '\r\n else\r\n return 'Nombre de Actividad: '\r\n }\r\n\r\n tutorPorTipo(tipo) {\r\n if (tipo === 22)\r\n return 'Mentor: '\r\n else\r\n return 'Tutor: '\r\n }\r\n\r\n usoTutor(tipo) {\r\n let ids = [1, 22]\r\n let respuesta = false;\r\n if (ids.includes(tipo))\r\n respuesta = true;\r\n return respuesta;\r\n }\r\n\r\n usoHora(tipo) {\r\n let ids = [1, 2, 3, 5, 8, 9, 10, 12, 13, 14, 17, 19, 20, 21, 22, 23, 26, 27, 28, 29, 31, 32];\r\n if (ids.includes(tipo))\r\n return false;\r\n else\r\n return true;\r\n }\r\n\r\n usoPuesto(tipo) {\r\n let puesto = [23];\r\n let respuesta = false;\r\n if (puesto.includes(tipo))\r\n respuesta = true;\r\n return respuesta;\r\n }\r\n\r\n usoInstitucion(tipo) {\r\n let ids = [1, 2, 3, 5, 6, 8, 9, 13, 14, 16, 17, 19, 22, 23, 24, 25, 27, 28, 29];\r\n let respuesta = false;\r\n if (ids.includes(tipo))\r\n respuesta = true;\r\n return respuesta;\r\n }\r\n\r\n}\r\nUpdateGestion.contextType = AppContext;\r\n","import React, { Component } from 'react';\r\nimport { Table, Button, Alert, Spinner } from 'reactstrap';\r\nimport { TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';\r\nimport { Pagination, PaginationItem, PaginationLink } from 'reactstrap';\r\nimport { Card, CardHeader, CardBody, Row, Col, Collapse, Input } from 'reactstrap';\r\nimport { InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';\r\nimport { AiOutlineSearch, AiOutlineReload } from 'react-icons/ai';\r\nimport { FaEdit, FaPlus, FaTrashAlt } from 'react-icons/fa';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\n/*import history from \"../history\";*/\r\nimport './NavMenu.css';\r\nimport url from \"./variables/url.js\";\r\nimport { AppContext } from '../AppContext';\r\nimport Paginacion from './Paginacion';\r\nimport ActividadCard from './ActividadCard';\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\nconst homepage = process.env.REACT_APP_EXP;\r\n\r\n\r\nexport class GestionActividad extends Component {\r\n static displayName = GestionActividad.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n status: 0,\r\n page: 1,\r\n buscar: '',\r\n buscarCategoria: 1,\r\n buscarTipo: 1,\r\n loading: true,\r\n loadingItem: true,\r\n activeTab: 1,\r\n collapse: 1,\r\n idestudiante: 0,\r\n actividades: [],\r\n categorias: [],\r\n tipos: [],\r\n iduser: 0,\r\n roles: [],\r\n currentActividades: [], currentPage: null, totalPages: null,\r\n pestanias: [{id: 1, nombre: 'Estudiante' },{ id: 2, nombre: 'Categoria' },{ id: 3, nombre: 'Tipo Actividad' }],\r\n estados: [{ id: 'I', nombre: 'En Revisi�n' }, { id: 'R', nombre: 'Rechazadas' }, { id: 'A', nombre: 'Aprobadas' }, { id: 'D', nombre: 'Devueltas' }],\r\n buscarEstado: 'I',\r\n totalPageA: 0,\r\n actualPage: 1,\r\n limite: 10,\r\n siblingCount: 1, \r\n };\r\n\r\n this.handleEdit = this.handleEdit.bind(this);\r\n this.toggle = this.toggle.bind(this);\r\n this.toggleCard = this.toggleCard.bind(this); \r\n this.searchById = this.searchById.bind(this);\r\n this.handleSearch = this.handleSearch.bind(this);\r\n this.onChangeCategoria = this.onChangeCategoria.bind(this);\r\n this.onChangeTipo = this.onChangeTipo.bind(this);\r\n this.actualizarActividades = this.actualizarActividades.bind(this);\r\n this.onChangeLimite = this.onChangeLimite.bind(this);\r\n if (this.props.location.state)\r\n this.actualizarActividades(this.props.location.state.actividad)\r\n }\r\n\r\n componentDidMount() {\r\n this.populateInfoData();\r\n this.populateActividades();\r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n isForbidden() {\r\n this.props.history.push({\r\n pathname: homepage,\r\n })\r\n }\r\n\r\n page(num) {\r\n if (this.state.actualPage !== num) {\r\n this.setState({\r\n actualPage: num\r\n });\r\n }\r\n }\r\n\r\n pagePrevious() {\r\n if (this.state.actualPage !== 1) {\r\n let p = this.state.actualPage;\r\n this.setState({\r\n actualPage: p - 1\r\n });\r\n }\r\n }\r\n\r\n pageNext() {\r\n if (this.state.actualPage !== this.state.totalPageA) {\r\n let p = this.state.actualPage;\r\n this.setState({\r\n actualPage: p + 1\r\n });\r\n }\r\n }\r\n\r\n youAreMySibling(num) {\r\n let actualPage = this.state.actualPage;\r\n let sibling = this.state.siblingCount;\r\n let total = this.state.totalPageA;\r\n let valor = false;\r\n if (num === actualPage || num - sibling === actualPage || num + sibling === actualPage) {\r\n valor = true;\r\n }\r\n if (actualPage === 1 && (num - 1 === actualPage || num - 2 === actualPage || num - 3 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === 2 && (num - 1 === actualPage || num - 2 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === total && (num + 1 === actualPage || num + 2 === actualPage || num + 3 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === total - 1 && (num + 1 === actualPage || num + 2 === actualPage)) {\r\n valor = true;\r\n }\r\n //console.log(num, valor);\r\n return valor;\r\n }\r\n\r\n reLoadTotalPage(lenActividades, limite) {\r\n this.setState({ totalPageA: Math.ceil(lenActividades / limite), actualPage: 1 });\r\n \r\n }\r\n\r\n actualizarActividades(actividad) {\r\n let actividades = this.state.actividades;\r\n let indice = actividades.indexOf(actividad);\r\n actividades[indice] = actividad;\r\n this.setState({ actividades: actividades });\r\n }\r\n\r\n onChangeLimite(event) {\r\n //console.log('Cambio limite');\r\n //console.log(event.target.value);\r\n var num = event.target.value;\r\n this.setState({ limite: num });\r\n this.reLoadTotalPage(this.state.actividades.length, num);\r\n }\r\n\r\n miEstado(est) {\r\n let estado = 'En Revisi\\u00F3n';\r\n if (est == 'A') {\r\n estado = 'Aprobado';\r\n } else if (est == 'R') {\r\n estado = 'Rechazado';\r\n } else if (est == 'D') {\r\n estado = 'Devuelto';\r\n }\r\n return estado;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n //console.log('componentWillReceiveProps', nextProps);\r\n this.setState(nextProps);\r\n }\r\n\r\n onPageChanged = data => {\r\n const { actividades } = this.state;\r\n const { currentPage, totalPages, pageLimit } = data;\r\n const offset = (currentPage - 1) * pageLimit;\r\n const currentActividades = actividades.slice(offset, offset + pageLimit);\r\n\r\n this.setState({ currentPage, currentActividades, totalPages });\r\n } \r\n\r\n renderGestionTable(actividades, categorias, tipos) {\r\n const { collapse } = this.state;\r\n const { currentActividades, currentPage, totalPages } = this.state;\r\n const totalAct = actividades.length;\r\n const limite = 10;\r\n const vecindario = 1; \r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.searchById()}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {categorias.map(insignia =>\r\n \r\n )\r\n }\r\n \r\n \r\n this.searchByCategoria()}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {tipos.map(tipo =>\r\n \r\n )\r\n }\r\n \r\n \r\n this.searchByTipo()}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {this.state.actividades.length > 0 ?\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {totalAct} Actividades\r\n

\r\n {currentPage && (\r\n \r\n Page {currentPage} / {totalPages}\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentActividades.map((act, i) => \r\n \r\n < tr id={act.idaexregistroactividad} >\r\n \r\n {act.estudiante !== null ? : }\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {actividades.length == 0 ?

No se encontraron actividades

: null}\r\n \r\n
ActividadEstudianteTipoEstadoAccionesResponsable
{act.nombre}{ act.estudiante.apellidos +' '+ act.estudiante.nombres}----- \r\n {tipos.map(tip => {\r\n return act.idaextipoactividad == tip.idaextipoactividad ?\r\n : <>\r\n })}\r\n {act.registroActividadGestion != null ? this.miEstado(act.registroActividadGestion.estado) : <>X} this.handleEdit(act.idaexregistroactividad)} />{act.registroActividadGestion != null ? <>{act.registroActividadGestion.responsable.apellidos} {act.registroActividadGestion.responsable.nombres} : <>No registrado }
\r\n \r\n
\r\n
\r\n \r\n : <>No se encontraron actividades}\r\n
\r\n );\r\n }\r\n\r\n renderGestionTable2(actividades, categorias, tipos) {\r\n let pagesA = [];\r\n for (let i = 1; i <= this.state.totalPageA; i++) {\r\n pagesA.push(<>);\r\n }\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.searchById()}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {categorias.map(insignia =>\r\n \r\n )\r\n }\r\n \r\n \r\n this.searchByCategoria()}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {tipos.map(tipo =>\r\n \r\n )\r\n }\r\n \r\n \r\n this.searchByTipo()}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {this.state.actividades.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 {actividades.map((act, i) => {\r\n return \r\n \r\n \r\n {act.estudiante !== null ? : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n )}\r\n \r\n\r\n
#ActividadEstudianteCompetenciaTipo ActividadEstadoAccionesResponsable
\r\n
\r\n \r\n : <>}\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ? <>\r\n : this.renderGestionTable2(this.state.actividades,this.state.categorias, this.state.tipos);\r\n\r\n return (\r\n
\r\n {contents}\r\n
\r\n );\r\n }\r\n\r\n populateActividades() {\r\n\r\n fetch(localBack + '/api/RegistroActividad/GetWithGestion', {\r\n //fetch(localBack + '/api/RegistroActividad/GetByEstado/I', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: []});\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') { \r\n //console.log(data.objDatos);\r\n this.setState({ actividades: data.objDatos, loading: false }); \r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n } else {\r\n this.setState({ actividades: [], loading: false });\r\n }\r\n });\r\n /*this.setState({ actividades: insig.objDatos, loading: false });*/\r\n }\r\n\r\n populateGestion() {\r\n\r\n fetch(localBack + '/api/RegistroActividad/GetWithGestion', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false });\r\n } else {\r\n this.setState({ actividades: [], loading: false });\r\n }\r\n });\r\n /*this.setState({ actividades: insig.objDatos, loading: false });*/\r\n }\r\n\r\n populateInfoData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n //console.log(data);\r\n this.setState({\r\n categorias: data.objDatos, loading: false,\r\n });\r\n });\r\n\r\n fetch(localBack + '/api/TipoActividad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n //console.log(data);\r\n this.setState({\r\n tipos: data.objDatos \r\n });\r\n }); \r\n \r\n }\r\n\r\n newAct() {\r\n //console.log('Nueva Actividad');\r\n this.props.history.push(homepage+'Add-Act');\r\n }\r\n\r\n handleEdit(id) {\r\n //console.log(\"Editar \" + id);\r\n this.props.history.replace(homepage+\"Gestion/\" + id);\r\n }\r\n\r\n toggle(tab) {\r\n if (this.state.activeTab !== tab) {\r\n //console.log(tab);\r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n }\r\n\r\n toggleCard(e) {\r\n let event = e.target.dataset.event;\r\n this.setState({ collapse: this.state.collapse === Number(event) ? 0 : Number(event) });\r\n //console.log(Number(event));\r\n } \r\n\r\n handleSearch = async function(event) {\r\n await this.setState({ buscar: event.target.value });\r\n //console.log(this.state.buscar);\r\n }\r\n\r\n onChangeCategoria = async function (event) {\r\n //console.log('Cambio Categoria');\r\n //console.log(event.target.value);\r\n var id = event.target.value;\r\n await this.setState({ buscarCategoria: id });\r\n //console.log(this.state.buscarCategoria); \r\n }\r\n\r\n\r\n onChangeTipo = async function(e) {\r\n //console.log('Cambio Tipo');\r\n //console.log(e.target.value);\r\n var id = e.target.value;\r\n await this.setState({ buscarTipo: id });\r\n //console.log(this.state.actividad); \r\n }\r\n\r\n searchById() {\r\n this.setState({ loadingItem: true });\r\n\r\n if (this.state.buscar !== '') {\r\n fetch(localBack + '/api/RegistroActividad/GetByCodestudiante/' + this.state.buscar, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: [] });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loadingItem: false });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n });\r\n //console.log(this.state.actividades);\r\n } else {\r\n //console.log('buscar esta vacio.');\r\n }\r\n\r\n \r\n }\r\n\r\n searchByCategoria() {\r\n this.setState({ loadingItem: true });\r\n\r\n fetch(localBack + '/api/RegistroActividad/GetByCategoria/' + this.state.buscarCategoria, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: [] });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loadingItem: false });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n });\r\n //console.log(this.state.actividades);\r\n }\r\n\r\n searchByTipo() {\r\n this.setState({ loadingItem: true });\r\n\r\n fetch(localBack + '/api/RegistroActividad/GetByTipoActividad/' + this.state.buscarTipo, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: [] });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loadingItem: false});\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n });\r\n //console.log(this.state.actividades);\r\n }\r\n\r\n}\r\nGestionActividad.contextType = AppContext;\r\nexport default withRouter(GestionActividad);","import React, { Component } from 'react';\r\nimport { Table, Button, Alert, Spinner } from 'reactstrap';\r\nimport { TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';\r\nimport { Pagination, PaginationItem, PaginationLink } from 'reactstrap';\r\nimport { Card, CardHeader, CardBody, Row, Col, Collapse, Input } from 'reactstrap';\r\nimport { InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';\r\nimport { AiOutlineSearch, AiOutlineReload } from 'react-icons/ai';\r\nimport { FaEdit, FaPlus, FaTrashAlt } from 'react-icons/fa';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\n/*import history from \"../history\";*/\r\nimport './NavMenu.css';\r\nimport url from \"./variables/url.js\";\r\nimport { AppContext } from '../AppContext';\r\nimport Paginacion from './Paginacion';\r\nimport ActividadCard from './ActividadCard';\r\nimport ReactHTMLTableToExcel from \"react-html-table-to-excel\";\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\nconst homepage = process.env.REACT_APP_EXP;\r\n\r\n\r\nexport class GestionActividadPagination extends Component {\r\n static displayName = GestionActividadPagination.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n status: 0,\r\n page: 1,\r\n buscar: '',\r\n buscarNombre: '',\r\n buscarCategoria: 1,\r\n buscarTipo: 1,\r\n buscarEstado: 'I',\r\n loading: true, \r\n activeTab: 1,\r\n collapse: 1,\r\n idestudiante: 0,\r\n actividades: [],\r\n categorias: [],\r\n tipos: [],\r\n iduser: 0,\r\n roles: [],\r\n currentActividades: [], currentPage: null, totalPages: null,\r\n /*pestanias: [{id: 1, nombre: 'Estudiante' },{ id: 2, nombre: 'Categoria' },{ id: 3, nombre: 'Tipo Actividad' }],*/\r\n pestanias: [{ id: 1, nombre: 'Estado' },{id: 2, nombre: 'Matricula' },{id: 3, nombre: 'Apellidos/Nombres' },{ id: 4, nombre: 'Categoria' },{ id: 5, nombre: 'Tipo Actividad' }],\r\n estados: [{ id: 'I', nombre: 'En Revisi\\u00F3n' }, { id: 'R', nombre: 'Rechazadas' }, { id: 'A', nombre: 'Aprobadas' }, { id: 'D', nombre: 'Devueltas' }],\r\n totalPageA: 0,\r\n actualPage: 1,\r\n limite: 10,\r\n siblingCount: 1,\r\n currentPage: 1,\r\n currentTotalPages: 0,\r\n postsActividad: [],\r\n respItems: -1,\r\n postsPerPage: 10\r\n };\r\n\r\n this.handleEdit = this.handleEdit.bind(this);\r\n this.toggle = this.toggle.bind(this);\r\n this.toggleCard = this.toggleCard.bind(this); \r\n this.searchById = this.searchById.bind(this);\r\n this.handleSearch = this.handleSearch.bind(this);\r\n this.handleSearchNombre = this.handleSearchNombre.bind(this);\r\n this.onChangeCategoria = this.onChangeCategoria.bind(this);\r\n this.onChangeTipo = this.onChangeTipo.bind(this);\r\n this.onChangeEstado = this.onChangeEstado.bind(this);\r\n this.actualizarActividades = this.actualizarActividades.bind(this);\r\n this.onChangeLimite = this.onChangeLimite.bind(this);\r\n if (this.props.location.state)\r\n this.actualizarActividades(this.props.location.state.actividad)\r\n }\r\n\r\n componentDidMount() {\r\n this.populateInfoData();\r\n this.populateActividades(); \r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n isForbidden() {\r\n this.props.history.push({\r\n pathname: homepage,\r\n })\r\n }\r\n\r\n setPagePrevious() {\r\n if (this.state.currentPage !== 1) {\r\n let p = this.state.currentPage;\r\n this.setState({\r\n currentPage: p - 1\r\n });\r\n }\r\n }\r\n\r\n setPageNext() {\r\n if (this.state.currentPage !== this.state.totalPageA) {\r\n let p = this.state.currentPage;\r\n this.setState({\r\n currentPage: p + 1\r\n });\r\n }\r\n }\r\n\r\n setPage = (pageNum) => {\r\n this.setState({ currentPage: pageNum })\r\n } \r\n\r\n setYouAreMySibling(num) {\r\n let actualPage = this.state.currentPage;\r\n let sibling = this.state.siblingCount;\r\n let total = this.state.totalPageA;\r\n let valor = false;\r\n if (num === actualPage || num - sibling === actualPage || num + sibling === actualPage) {\r\n valor = true;\r\n }\r\n if (actualPage === 1 && (num - 1 === actualPage || num - 2 === actualPage || num - 3 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === 2 && (num - 1 === actualPage || num - 2 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === total && (num + 1 === actualPage || num + 2 === actualPage || num + 3 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === total - 1 && (num + 1 === actualPage || num + 2 === actualPage)) {\r\n valor = true;\r\n } \r\n return valor;\r\n }\r\n\r\n reLoadTotalPage(lenActividades, limite) {\r\n this.setState({ totalPageA: Math.ceil(lenActividades / limite), actualPage: 1, currentPage: 1 });\r\n \r\n }\r\n\r\n actualizarActividades(actividad) {\r\n let actividades = this.state.actividades;\r\n let indice = actividades.indexOf(actividad);\r\n actividades[indice] = actividad;\r\n this.setState({ actividades: actividades });\r\n }\r\n\r\n onChangeLimite(event) {\r\n //console.log('Cambio limite');\r\n //console.log(event.target.value);\r\n var num = event.target.value;\r\n this.setState({ limite: num });\r\n this.reLoadTotalPage(this.state.actividades.length, num);\r\n }\r\n\r\n miEstado(est) {\r\n let estado = 'En Revisi\\u00F3n';\r\n if (est == 'A') {\r\n estado = 'Aprobado';\r\n } else if (est == 'R') {\r\n estado = 'Rechazado';\r\n } else if (est == 'D') {\r\n estado = 'Devuelto';\r\n }\r\n return estado;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n /*console.log('componentWillReceiveProps', nextProps);*/\r\n this.setState(nextProps);\r\n }\r\n\r\n onPageChanged = data => {\r\n const { actividades } = this.state;\r\n const { currentPage, totalPages, pageLimit } = data;\r\n const offset = (currentPage - 1) * pageLimit;\r\n const currentActividades = actividades.slice(offset, offset + pageLimit);\r\n\r\n this.setState({ currentPage, currentActividades, totalPages });\r\n }\r\n\r\n KeyPressEstudiante = (event) => {\r\n if (event.charCode === 13 && this.state.buscar !== \"\") { \r\n this.searchById();\r\n }\r\n }\r\n\r\n KeyPressEstudianteNombre = (event) => {\r\n if (event.charCode === 13 && this.state.buscarNombre !== \"\") {\r\n this.searchByNombre();\r\n }\r\n }\r\n\r\n KeyPressCategoria = (event) => {\r\n if (event.charCode === 13 && this.state.buscarCategoria >= 1) {\r\n this.searchByCategoria();\r\n }\r\n }\r\n\r\n KeyPressTipo = (event) => {\r\n if (event.charCode === 13 && this.state.buscarCategoria >= 1) {\r\n this.searchByTipo();\r\n }\r\n }\r\n\r\n renderGestionTable(actividades) {\r\n \r\n const indexOfLastPost = this.state.currentPage * this.state.limite;\r\n\r\n const indexOfFirstPost = indexOfLastPost - this.state.limite;\r\n\r\n const currentPosts = actividades.slice(indexOfFirstPost, indexOfLastPost);\r\n\r\n const pageNumbers = []\r\n\r\n for (let i = 1; i <= Math.ceil(actividades.length / this.state.limite); i++) {\r\n pageNumbers.push(i);\r\n }\r\n\r\n return (\r\n
\r\n {this.state.respItems > 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 \r\n \r\n \r\n \r\n \r\n\r\n \r\n {currentPosts.map((act, i) => {\r\n return \r\n \r\n \r\n {act.estudiante !== null ? : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n )}\r\n \r\n\r\n
#ActividadEstudianteCompetenciaTipo ActividadEstadoAccionesResponsable
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {actividades.map((act, i) => {\r\n return \r\n \r\n \r\n {act.estudiante !== 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
#ActividadEstudianteCompetenciaTipo ActividadAñoFechaEstadoResponsable
{(i + 1 + (this.state.limite * (this.state.currentPage - 1)))}{act.nombre}{act.estudiante.apellidos + ' ' + act.estudiante.nombres}-----{this.state.categorias.filter(cate => cate.idaexinsignia === act.categoria).map(actcat => actcat.nombre)}{this.state.tipos.filter(tipo => tipo.idaextipoactividad === act.idaextipoactividad).map(acttipo => acttipo.nombre)} {act.anio} {act.ultimoCambio} {act.registroActividadGestion != null ? this.miEstado(act.registroActividadGestion.estado) : <>X} {act.registroActividadGestion != null ? <>{act.registroActividadGestion.responsable.apellidos} {act.registroActividadGestion.responsable.nombres} : <>No registrado}
\r\n
\r\n\r\n \r\n : <>
}\r\n {this.state.respItems === 0 ? < Card body className=\"text-center py-3\">No se encontraron Resultados. : <>}\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ? <>\r\n : this.renderGestionTable(this.state.actividades);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.estados.map(estado =>\r\n \r\n )\r\n }\r\n \r\n \r\n this.searchByEstado()}>\r\n \r\n \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.searchById()}>\r\n \r\n \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.searchByNombre()}>\r\n \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.categorias.map(insignia =>\r\n \r\n )\r\n }\r\n \r\n \r\n this.searchByCategoria()}>\r\n \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.tipos.map(tipo =>\r\n \r\n )\r\n }\r\n \r\n \r\n this.searchByTipo()}>\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\r\n populateActividades() {\r\n\r\n //fetch(localBack + '/api/RegistroActividad/GetWithGestion', {\r\n fetch(localBack + '/api/RegistroActividad/GetByEstado/I', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: []});\r\n return response.json();\r\n })\r\n .then(data => { \r\n if (data.strEstado == 'S') { \r\n this.setState({ actividades: data.objDatos, loading: false, respItems: data.objDatos.length });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n } else {\r\n this.setState({ actividades: [], loading: false, respItems: 0 });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n });\r\n /*this.setState({ actividades: insig.objDatos, loading: false });*/\r\n }\r\n\r\n populateGestion() {\r\n\r\n fetch(localBack + '/api/RegistroActividad/GetWithGestion', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos });\r\n } else {\r\n this.setState({ actividades: [] });\r\n }\r\n });\r\n /*this.setState({ actividades: insig.objDatos, loading: false });*/\r\n }\r\n\r\n populateInfoData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => { \r\n this.setState({\r\n categorias: data.objDatos\r\n });\r\n });\r\n\r\n fetch(localBack + '/api/TipoActividad', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => { \r\n this.setState({\r\n tipos: data.objDatos \r\n });\r\n }); \r\n \r\n }\r\n\r\n newAct() {\r\n //console.log('Nueva Actividad');\r\n this.props.history.push(homepage+'Add-Act');\r\n }\r\n\r\n handleEdit(id) { \r\n this.props.history.replace(homepage+\"Gestion/\" + id);\r\n }\r\n\r\n toggle(tab) {\r\n if (this.state.activeTab !== tab) { \r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n }\r\n\r\n toggleCard(e) {\r\n let event = e.target.dataset.event;\r\n this.setState({ collapse: this.state.collapse === Number(event) ? 0 : Number(event) }); \r\n } \r\n\r\n handleSearch = async function(event) {\r\n await this.setState({ buscar: event.target.value }); \r\n }\r\n\r\n handleSearchNombre = async function (event) {\r\n //console.log(event.target.value);\r\n await this.setState({ buscarNombre: event.target.value });\r\n }\r\n\r\n onChangeCategoria = async function (event) {\r\n //console.log('Cambio Categoria');\r\n //console.log(event.target.value);\r\n var id = event.target.value;\r\n await this.setState({ buscarCategoria: id }); \r\n }\r\n\r\n\r\n onChangeTipo = async function(e) {\r\n //console.log('Cambio Tipo');\r\n //console.log(e.target.value);\r\n var id = e.target.value;\r\n await this.setState({ buscarTipo: id }); \r\n }\r\n\r\n onChangeEstado = async function (e) {\r\n //console.log('Cambio Tipo');\r\n //console.log(e.target.value);\r\n var siglaEstado = e.target.value;\r\n //console.log(id);\r\n await this.setState({ buscarEstado: siglaEstado });\r\n }\r\n\r\n searchById() {\r\n this.setState({ loading: true });\r\n\r\n if (this.state.buscar !== '') {\r\n fetch(localBack + '/api/RegistroActividad/GetByCodestudiante/' + this.state.buscar, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, loading: false, actividades: [] });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strEstado);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, respItems: data.objDatos.length });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n } else {\r\n this.setState({ actividades: [], loading: false, respItems: 0 });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n }); \r\n } else {\r\n this.setState({ loading: false });\r\n //console.log('No se ha escrito un matricula');\r\n } \r\n }\r\n\r\n searchByNombre() {\r\n this.setState({ loading: true });\r\n\r\n if (this.state.buscarNombre !== '') {\r\n fetch(localBack + '/api/RegistroActividad/GetByNombreEstudiante/' + this.state.buscarNombre, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, loading: false, actividades: [] });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strEstado);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, respItems: data.objDatos.length });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n } else {\r\n this.setState({ actividades: [], loading: false, respItems: 0 });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n });\r\n } else {\r\n this.setState({ loading: false });\r\n //console.log('No se ha escrito nombre estudiante');\r\n }\r\n }\r\n\r\n searchByCategoria() {\r\n this.setState({ loading: true });\r\n\r\n fetch(localBack + '/api/RegistroActividad/GetByCategoria/' + this.state.buscarCategoria, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: [] });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, respItems: data.objDatos.length});\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n } else {\r\n this.setState({ actividades: [], loading: false, respItems: 0 });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n }); \r\n }\r\n\r\n searchByTipo() {\r\n this.setState({ loading: true });\r\n\r\n fetch(localBack + '/api/RegistroActividad/GetByTipoActividad/' + this.state.buscarTipo, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: [] });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, respItems: data.objDatos.length});\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n } else {\r\n this.setState({ actividades: [], loading: false, respItems: 0 });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n }); \r\n }\r\n\r\n searchByEstado() {\r\n this.setState({ loading: true });\r\n //console.log(this.state.buscarEstado);\r\n\r\n fetch(localBack + '/api/RegistroActividad/GetByEstado/' + this.state.buscarEstado, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: [] });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, respItems: data.objDatos.length });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n } else {\r\n this.setState({ actividades: [], loading: false, respItems: 0 });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n });\r\n }\r\n\r\n onlyNumber = (event) => {\r\n if (!/[0-9]/.test(event.key)) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n}\r\nGestionActividadPagination.contextType = AppContext;\r\nexport default withRouter(GestionActividadPagination);","import React, { Component } from 'react';\r\nimport { Table, Row, Col, Container, Spinner, Alert } from 'reactstrap';\r\nimport { AiOutlineCheck, AiOutlineClose } from 'react-icons/ai';\r\nimport InsigniaCard from './InsigniaCard';\r\nimport InsigniaResultCard from './InsigniaResultCard';\r\nimport url from \"./variables/url.js\";\r\nimport { AppContext } from '../AppContext';\r\nimport SideBar from './SideBar';\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\n\r\nexport class InsigniasAdmin extends Component {\r\n static displayName = InsigniasAdmin.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n iduser: props.iduser,\r\n insignias: [],\r\n insigniaResult: [],\r\n criterio: {},\r\n loading1: true,\r\n loading2: true,\r\n loading3: true,\r\n ultimoCambio: '0001/01/01T00:00',\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (this.state.iduser > 0) {\r\n this.populateInsigniaData();\r\n this.getUltimoCambio();\r\n this.populateCriterio(this.state.iduser);\r\n this.populateInsigniaResult(this.state.iduser);\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.state.iduser > 0) {\r\n this.getUltimoCambio();\r\n this.populateCriterio(this.state.iduser);\r\n this.populateInsigniaResult(this.state.iduser);\r\n }\r\n }\r\n\r\n componentWillReceiveProps(props) {\r\n this.setState({\r\n iduser: props.iduser, insignias: [],\r\n insigniaResult: [],\r\n criterio: [],\r\n loading1: true,\r\n loading2: true,\r\n loading3: true,\r\n ultimoCambio: '0001/01/01T00:00',\r\n });\r\n }\r\n\r\n renderInsigniasCard(insignias, result, criterio) {\r\n let className2 = \"col-4\";\r\n return ( \r\n <> \r\n

Insignias

\r\n
\r\n {result.map((resul, i) =>\r\n \r\n \r\n \r\n )}\r\n
\r\n {this.state.insigniaResult.length == 0 ?\r\n <>\r\n \r\n

\r\n En este momento no registra actividades aprobadas, posiblemente se encuentren en revisión. Una vez aprobadas el avance de sus insignias se reflejara en esta sección.\r\n

\r\n
\r\n
\r\n {insignias.map(insignia =>\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n : <>\r\n }\r\n \r\n )\r\n }\r\n\r\n render() {\r\n\r\n if (this.state.iduser > 0) {\r\n let contents = this.state.loading1 || this.state.loading2 ?\r\n <> \r\n : this.renderInsigniasCard(this.state.insignias, this.state.insigniaResult, this.state.criterio);\r\n\r\n let alertUltimoCambio = this.state.loading3 ?\r\n <> \r\n : \r\n

\r\n Para las insignias solo cuentan las actividades aprobadas.\r\n

\r\n

\r\n Ultima Actualización: {this.state.ultimoCambio != null ? this.state.ultimoCambio.split(\"T\")[0] : 'Null'} {this.state.ultimoCambio != null ? this.state.ultimoCambio.split(\"T\")[1].substring(0, 5) : ''}.\r\n

\r\n
;\r\n\r\n return (\r\n
\r\n {alertUltimoCambio}\r\n
\r\n {contents}\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 populateInsigniaData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log(data);*/\r\n this.setState({\r\n insignias: data.objDatos,\r\n });\r\n }); \r\n\r\n }\r\n\r\n populateInsigniaResult(id) {\r\n fetch(localBack + '/api/ResultadoInsignia/GetbyEstudiante/' + id, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log('insignia: ', data);*/\r\n this.setState({ insigniaResult: data.objDatos, loading1: false });\r\n });\r\n /*console.log('Resultado ', this.state.insigniaResult);*/\r\n\r\n }\r\n\r\n populateCriterio(id) {\r\n fetch(localBack + '/api/ResultadoCriterio/GetWithCriterioAgrupado/'+id, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log('criterio: ', data);*/\r\n this.setState({ criterio: data.objDatos, loading2: false });\r\n });\r\n }\r\n\r\n getUltimoCambio() {\r\n fetch(localBack + '/api/ResultadoInsignia/GetUltimoCambio', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n /*console.log('insignia: ', data);*/\r\n if (data.objDatos != null)\r\n this.setState({ ultimoCambio: data.objDatos.ultimoCambio, loading3: false });\r\n\r\n });\r\n\r\n }\r\n\r\n}\r\n\r\n\r\nexport default InsigniasAdmin;\r\n","import React, { Component } from 'react';\r\nimport { Table, Button, Alert, Spinner } from 'reactstrap';\r\nimport { TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';\r\nimport { Pagination, PaginationItem, PaginationLink } from 'reactstrap';\r\nimport { Card, CardHeader, CardBody, Row, Col, Collapse, Input } from 'reactstrap';\r\nimport { InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';\r\nimport { AiOutlineSearch, AiOutlineReload } from 'react-icons/ai';\r\nimport { FaEdit, FaPlus, FaTrashAlt } from 'react-icons/fa';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\n/*import history from \"../history\";*/\r\nimport './NavMenu.css';\r\nimport url from \"./variables/url.js\";\r\nimport { AppContext } from '../AppContext';\r\nimport Paginacion from './Paginacion';\r\nimport ActividadCard from './ActividadCard';\r\nimport InsigniasAdmin from './InsigniasAdmin';\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\nconst homepage = process.env.REACT_APP_EXP;\r\n\r\n\r\nexport class ConsultarPerfil extends Component {\r\n static displayName = ConsultarPerfil.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n buscar: '',\r\n buscarNombre: '',\r\n loading: false,\r\n activeTab: 1,\r\n collapse: 1,\r\n idestudiante: 0,\r\n actividades: [],\r\n categorias: [],\r\n tipos: [],\r\n iduser: 0,\r\n idEstudianteSeleccionado: 0,\r\n nombreEstudiante: \"\",\r\n identificacionEstudiante: \"\",\r\n matriculaEstudiante: \"\",\r\n username: \"\",\r\n foto: \"\",\r\n estudianteSeleccionado: false,\r\n cargando: false,\r\n mensaje: \"\",\r\n roles: [],\r\n currentActividades: [], currentPage: null, totalPages: null,\r\n pestanias: [{id: 1, nombre: 'Matricula' },{id: 2, nombre: 'Apellidos/Nombres' }],\r\n };\r\n\r\n this.toggle = this.toggle.bind(this);\r\n this.toggleCard = this.toggleCard.bind(this); \r\n this.searchById = this.searchById.bind(this);\r\n this.handleSearch = this.handleSearch.bind(this);\r\n this.handleSearchNombre = this.handleSearchNombre.bind(this);\r\n this.actualizarActividades = this.actualizarActividades.bind(this);\r\n this.onChangeLimite = this.onChangeLimite.bind(this);\r\n \r\n }\r\n\r\n componentDidMount() { \r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n isForbidden() {\r\n this.props.history.push({\r\n pathname: homepage,\r\n })\r\n }\r\n\r\n actualizarActividades(actividad) {\r\n let actividades = this.state.actividades;\r\n let indice = actividades.indexOf(actividad);\r\n actividades[indice] = actividad;\r\n this.setState({ actividades: actividades });\r\n }\r\n\r\n onChangeLimite(event) {\r\n //console.log('Cambio limite');\r\n //console.log(event.target.value);\r\n var num = event.target.value;\r\n this.setState({ limite: num });\r\n this.reLoadTotalPage(this.state.actividades.length, num);\r\n }\r\n\r\n KeyPressEstudiante = (event) => {\r\n if (event.charCode === 13 && this.state.buscar !== \"\") { \r\n this.searchById();\r\n }\r\n }\r\n\r\n KeyPressEstudianteNombre = (event) => {\r\n if (event.charCode === 13 && this.state.buscarNombre !== \"\") {\r\n this.searchByNombre();\r\n }\r\n }\r\n\r\n render() {\r\n let contents = ;\r\n\r\n let contentLoading = this.cargando ? \r\n (<>)\r\n : (
);\r\n\r\n let contentSearch = this.loading ? <> : (this.state.estudianteSeleccionado\r\n ? <>
\r\n
\r\n
\r\n \"foto\r\n
\r\n
\r\n
Nombre: {this.state.nombreEstudiante}
\r\n
Identificación: {this.state.identificacionEstudiante}
\r\n
Matricula: {this.state.matriculaEstudiante}
\r\n
\r\n
:\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.searchById()}>\r\n \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.searchByNombre()}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
);\r\n\r\n\r\n return (\r\n
\r\n {contentSearch}\r\n {contentLoading}\r\n {contents}\r\n
\r\n );\r\n }\r\n\r\n toggle(tab) {\r\n if (this.state.activeTab !== tab) { \r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n }\r\n\r\n toggleCard(e) {\r\n let event = e.target.dataset.event;\r\n this.setState({ collapse: this.state.collapse === Number(event) ? 0 : Number(event) }); \r\n } \r\n\r\n handleSearch = async function(event) {\r\n await this.setState({ buscar: event.target.value }); \r\n }\r\n\r\n handleSearchNombre = async function (event) {\r\n //console.log(event.target.value);\r\n await this.setState({ buscarNombre: event.target.value });\r\n }\r\n\r\n searchById() {\r\n this.setState({ cargando: true });\r\n\r\n Swal.fire({\r\n title: \"Cargando...\",\r\n html: \"Por favor, espere\",\r\n timerProgressBar: true,\r\n button: false,\r\n closeOnClickOutside: false,\r\n showConfirmButton: false,\r\n closeOnEsc: false,\r\n allowOutsideClick: false\r\n });\r\n Swal.showLoading();\r\n\r\n if (this.state.buscar !== '') {\r\n fetch(localBack + '/api/Persona/GetByEstudiante/' + this.state.buscar, {\r\n method: 'GET',\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => {\r\n if (data.strEstado == 'S' && data.objDatos != null) {\r\n if (data.objDatos.idpersona != null\r\n && data.objDatos.codestudiante != null\r\n && data.objDatos.numeroidentificacion != null && data.objDatos.email != null) {\r\n fetch('https://ws.espol.edu.ec/carnetvirtual/api/fotoperfil/getfotoperfil?netid=' + data.objDatos.email.split(\"@\")[0], {\r\n method: 'GET',\r\n })\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(resultData => {\r\n this.setState({\r\n idEstudianteSeleccionado: data.objDatos.idpersona, cargando: false, estudianteSeleccionado: true, mensaje: \"\",\r\n matriculaEstudiante: data.objDatos.codestudiante,\r\n identificacionEstudiante: data.objDatos.numeroidentificacion,\r\n nombreEstudiante: data.objDatos.apellidos + \" \" + data.objDatos.nombres,\r\n username: data.objDatos.email.split(\"@\")[0],\r\n foto: resultData.fotoString,\r\n });\r\n Swal.close();\r\n });\r\n }\r\n else {\r\n this.setState({ idEstudianteSeleccionado: 0, cargando: false, estudianteSeleccionado: false, mensaje: \"Usuario no encontrado\" });\r\n Swal.fire({\r\n title: 'Error',\r\n icon: 'error',\r\n html: \"Error en la busqueda del estudiante\"\r\n });\r\n }\r\n } else {\r\n this.setState({ idEstudianteSeleccionado: 0, cargando: false, estudianteSeleccionado: false, mensaje: \"Usuario no encontrado\" });\r\n Swal.fire({\r\n title: 'Error',\r\n icon: 'error',\r\n html: \"Error en la busqueda del estudiante\"\r\n });\r\n }\r\n });\r\n } else {\r\n this.setState({ idEstudianteSeleccionado: 0, cargando: false, estudianteSeleccionado: false, mensaje: \"Usuario no encontrado\" });\r\n Swal.fire({\r\n title: 'Error',\r\n icon: 'error',\r\n html: \"Error en la busqueda del estudiante\"\r\n });\r\n } \r\n }\r\n\r\n searchByNombre() {\r\n this.setState({ cargando: true });\r\n\r\n Swal.fire({\r\n title: \"Cargando...\",\r\n html: \"Por favor, espere\",\r\n timerProgressBar: true,\r\n button: false,\r\n closeOnClickOutside: false,\r\n showConfirmButton: false,\r\n closeOnEsc: false,\r\n allowOutsideClick: false\r\n });\r\n Swal.showLoading();\r\n\r\n if (this.state.buscarNombre !== '') {\r\n fetch(localBack + '/api/Persona/GetByNombre/' + this.state.buscarNombre, {\r\n method: 'GET',\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status });\r\n return response.json();\r\n })\r\n .then(data => {\r\n if (data.strEstado == 'S' && data.objDatos != null) {\r\n if (data.objDatos.idpersona != null\r\n && data.objDatos.codestudiante != null\r\n && data.objDatos.numeroidentificacion != null && data.objDatos.email != null) {\r\n fetch('https://ws.espol.edu.ec/carnetvirtual/api/fotoperfil/getfotoperfil?netid=' + data.objDatos.email.split(\"@\")[0], {\r\n method: 'GET',\r\n })\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(resultData => {\r\n this.setState({\r\n idEstudianteSeleccionado: data.objDatos.idpersona, cargando: false, estudianteSeleccionado: true, mensaje: \"\",\r\n matriculaEstudiante: data.objDatos.codestudiante,\r\n identificacionEstudiante: data.objDatos.numeroidentificacion,\r\n nombreEstudiante: data.objDatos.apellidos + \" \" + data.objDatos.nombres,\r\n username: data.objDatos.email.split(\"@\")[0],\r\n foto: resultData.fotoString,\r\n });\r\n Swal.close();\r\n });\r\n }\r\n else {\r\n this.setState({ idEstudianteSeleccionado: 0, cargando: false, estudianteSeleccionado: false, mensaje: \"Usuario no encontrado\" });\r\n Swal.fire({\r\n title: 'Error',\r\n icon: 'error',\r\n html: \"Error en la busqueda del estudiante\"\r\n });\r\n }\r\n } else {\r\n this.setState({ idEstudianteSeleccionado: 0, cargando: false, estudianteSeleccionado: false, mensaje: \"Usuario no encontrado\" });\r\n Swal.fire({\r\n title: 'Error',\r\n icon: 'error',\r\n html: \"Error en la busqueda del estudiante\"\r\n });\r\n }\r\n });\r\n } else {\r\n this.setState({ idEstudianteSeleccionado: 0, cargando: false, estudianteSeleccionado: false, mensaje: \"Usuario no encontrado\" });\r\n Swal.fire({\r\n title: 'Error',\r\n icon: 'error',\r\n html: \"Error en la busqueda del estudiante\"\r\n });\r\n }\r\n }\r\n\r\n onlyNumber = (event) => {\r\n if (!/[0-9]/.test(event.key)) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n}\r\nConsultarPerfil.contextType = AppContext;\r\nexport default withRouter(ConsultarPerfil);","import React, { Component } from 'react';\r\nimport { Table, Button, Alert, Spinner } from 'reactstrap';\r\nimport { TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';\r\nimport { Pagination, PaginationItem, PaginationLink } from 'reactstrap';\r\nimport { Card, CardHeader, CardBody, Row, Col, Collapse, Input } from 'reactstrap';\r\nimport { InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';\r\nimport { AiOutlineSearch, AiOutlineReload } from 'react-icons/ai';\r\nimport { FaEdit, FaPlus, FaTrashAlt, FaCheckSquare } from 'react-icons/fa';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\n/*import history from \"../history\";*/\r\nimport './NavMenu.css';\r\nimport url from \"./variables/url.js\";\r\nimport { AppContext } from '../AppContext';\r\nimport Paginacion from './Paginacion';\r\nimport ActividadCard from './ActividadCard';\r\nimport ReactHTMLTableToExcel from \"react-html-table-to-excel\";\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\nconst homepage = process.env.REACT_APP_EXP;\r\n\r\n\r\nexport class ConsultarInsignias extends Component {\r\n static displayName = ConsultarInsignias.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n status: 0,\r\n numeroPersonasInsignias: 0,\r\n page: 1,\r\n buscar: '',\r\n buscarNombre: '',\r\n buscarCategoria: 1,\r\n buscarCantidad: 1,\r\n tipoBusqueda: \"C\",\r\n loading: true, \r\n activeTab: 1,\r\n collapse: 1,\r\n idestudiante: 0,\r\n actividades: [],\r\n categorias: [],\r\n iduser: 0,\r\n roles: [],\r\n currentActividades: [], currentPage: null, totalPages: null,\r\n pestanias: [{ id: 1, nombre: 'Insignias conseguidas' }, { id: 2, nombre: 'Insignias a punto de conseguirse' }],\r\n cantidades: [{ id: 1, nombre: 'Faltando 1 criterio' }, { id: 2, nombre: 'Faltando 2 criterios' }, { id: 3, nombre: 'Faltando 3 criterios' }],\r\n totalPageA: 0,\r\n actualPage: 1,\r\n limite: 10,\r\n siblingCount: 1,\r\n currentPage: 1,\r\n currentTotalPages: 0,\r\n postsActividad: [],\r\n respItems: -1,\r\n postsPerPage: 10\r\n };\r\n\r\n this.toggle = this.toggle.bind(this);\r\n this.toggleCard = this.toggleCard.bind(this);\r\n this.onChangeCategoria = this.onChangeCategoria.bind(this);\r\n this.onChangeCantidad = this.onChangeCantidad.bind(this);\r\n this.searchByCategoria = this.searchByCategoria.bind(this);\r\n this.handleAsignar = this.handleAsignar.bind(this);\r\n this.actualizarActividades = this.actualizarActividades.bind(this);\r\n this.onChangeLimite = this.onChangeLimite.bind(this);\r\n if (this.props.location.state)\r\n this.actualizarActividades(this.props.location.state.actividad)\r\n }\r\n\r\n componentDidMount() {\r\n this.populateInfoData();\r\n this.populateActividades(); \r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n isForbidden() {\r\n this.props.history.push({\r\n pathname: homepage,\r\n })\r\n }\r\n\r\n setPagePrevious() {\r\n if (this.state.currentPage !== 1) {\r\n let p = this.state.currentPage;\r\n this.setState({\r\n currentPage: p - 1\r\n });\r\n }\r\n }\r\n\r\n setPageNext() {\r\n if (this.state.currentPage !== this.state.totalPageA) {\r\n let p = this.state.currentPage;\r\n this.setState({\r\n currentPage: p + 1\r\n });\r\n }\r\n }\r\n\r\n setPage = (pageNum) => {\r\n this.setState({ currentPage: pageNum })\r\n } \r\n\r\n setYouAreMySibling(num) {\r\n let actualPage = this.state.currentPage;\r\n let sibling = this.state.siblingCount;\r\n let total = this.state.totalPageA;\r\n let valor = false;\r\n if (num === actualPage || num - sibling === actualPage || num + sibling === actualPage) {\r\n valor = true;\r\n }\r\n if (actualPage === 1 && (num - 1 === actualPage || num - 2 === actualPage || num - 3 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === 2 && (num - 1 === actualPage || num - 2 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === total && (num + 1 === actualPage || num + 2 === actualPage || num + 3 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === total - 1 && (num + 1 === actualPage || num + 2 === actualPage)) {\r\n valor = true;\r\n } \r\n return valor;\r\n }\r\n\r\n reLoadTotalPage(lenActividades, limite) {\r\n this.setState({ totalPageA: Math.ceil(lenActividades / limite), actualPage: 1, currentPage: 1 });\r\n \r\n }\r\n\r\n actualizarActividades(actividad) {\r\n let actividades = this.state.actividades;\r\n let indice = actividades.indexOf(actividad);\r\n actividades[indice] = actividad;\r\n this.setState({ actividades: actividades });\r\n }\r\n\r\n onChangeLimite(event) {\r\n //console.log('Cambio limite');\r\n //console.log(event.target.value);\r\n var num = event.target.value;\r\n this.setState({ limite: num });\r\n this.reLoadTotalPage(this.state.actividades.length, num);\r\n }\r\n\r\n miEstado(est) {\r\n let estado = 'En Revisi\\u00F3n';\r\n if (est == 'A') {\r\n estado = 'Aprobado';\r\n } else if (est == 'R') {\r\n estado = 'Rechazado';\r\n } else if (est == 'D') {\r\n estado = 'Devuelto';\r\n }\r\n return estado;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n /*console.log('componentWillReceiveProps', nextProps);*/\r\n this.setState(nextProps);\r\n }\r\n\r\n onPageChanged = data => {\r\n const { actividades } = this.state;\r\n const { currentPage, totalPages, pageLimit } = data;\r\n const offset = (currentPage - 1) * pageLimit;\r\n const currentActividades = actividades.slice(offset, offset + pageLimit);\r\n\r\n this.setState({ currentPage, currentActividades, totalPages });\r\n }\r\n\r\n KeyPressEstudiante = (event) => {\r\n if (event.charCode === 13 && this.state.buscar !== \"\") { \r\n this.searchById();\r\n }\r\n }\r\n\r\n KeyPressEstudianteNombre = (event) => {\r\n if (event.charCode === 13 && this.state.buscarNombre !== \"\") {\r\n this.searchByNombre();\r\n }\r\n }\r\n\r\n KeyPressCategoria = (event) => {\r\n if (event.charCode === 13 && this.state.buscarCategoria >= 1) {\r\n this.searchByCategoria();\r\n }\r\n }\r\n\r\n KeyPressTipo = (event) => {\r\n if (event.charCode === 13 && this.state.buscarCategoria >= 1) {\r\n this.searchByTipo();\r\n }\r\n }\r\n\r\n renderGestionTable(actividades) {\r\n \r\n const indexOfLastPost = this.state.currentPage * this.state.limite;\r\n\r\n const indexOfFirstPost = indexOfLastPost - this.state.limite;\r\n\r\n const currentPosts = actividades.slice(indexOfFirstPost, indexOfLastPost);\r\n\r\n const pageNumbers = []\r\n\r\n for (let i = 1; i <= Math.ceil(actividades.length / this.state.limite); i++) {\r\n pageNumbers.push(i);\r\n }\r\n\r\n return (\r\n
\r\n {this.state.respItems > 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 {this.state.tipoBusqueda == 'C' ? \r\n <>\r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n }\r\n \r\n \r\n\r\n \r\n {currentPosts.map((act, i) => {\r\n return \r\n \r\n {act.estudiante !== null ? : }\r\n {act.estudiante !== null ? : }\r\n {act.estudiante !== null ? : }\r\n {act.insignia !== null ? : }\r\n {this.state.tipoBusqueda == 'C' ?\r\n <>{ act.fechaConsegida !== null ? : }\r\n {act.responsable != null ? : }\r\n {act.responsable == null ? : }\r\n :\r\n <>\r\n \r\n }\r\n \r\n \r\n }\r\n )}\r\n \r\n\r\n
#EstudianteMatriculaIdentificaciónInsigniaFechaResponsableOpcionesResultado actualTotal a cumplir
\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.tipoBusqueda == 'C' ?\r\n <>\r\n \r\n :\r\n <>\r\n \r\n \r\n }\r\n \r\n \r\n\r\n \r\n {actividades.map((act, i) => {\r\n return \r\n \r\n {act.estudiante !== null ? : }\r\n {act.estudiante !== null ? : }\r\n {act.estudiante !== null ? : }\r\n {act.insignia !== null ? : }\r\n {this.state.tipoBusqueda == 'C' ?\r\n <>{act.fechaConsegida !== null ? : }\r\n {act.responsable != null ? : }\r\n :\r\n <>\r\n \r\n }\r\n\r\n \r\n }\r\n )}\r\n \r\n\r\n
#EstudianteMatriculaIdentificaciónInsigniaFechaResponsableResultado actualTotal a cumplir
\r\n
\r\n\r\n
\r\n \r\n : <>
}\r\n {this.state.respItems === 0 ? < Card body className=\"text-center py-3\">No se encontraron Resultados. : <>}\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ? <>\r\n : this.renderGestionTable(this.state.actividades);\r\n\r\n return (\r\n
\r\n Total de estudiantes que han conseguido de insignias: {this.state.numeroPersonasInsignias}
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.categorias.map(insignia =>\r\n \r\n )\r\n }\r\n \r\n \r\n this.searchByCategoria()}>\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.cantidades.map(cantidades =>\r\n \r\n )\r\n }\r\n \r\n \r\n this.searchByCantidad()}>\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\r\n populateActividades() {\r\n\r\n //fetch(localBack + '/api/RegistroActividad/GetWithGestion', {\r\n fetch(localBack + '/api/ResultadoInsignia/GetConseguidas', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: []});\r\n return response.json();\r\n })\r\n .then(data => { \r\n if (data.strEstado == 'S') { \r\n this.setState({ actividades: data.objDatos, loading: false, respItems: data.objDatos.length, tipoBusqueda: \"C\" });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n } else {\r\n this.setState({ actividades: [], loading: false, respItems: 0 });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n });\r\n /*this.setState({ actividades: insig.objDatos, loading: false });*/\r\n }\r\n\r\n populateInfoData() {\r\n fetch(localBack + '/api/Insignia', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => { \r\n this.setState({\r\n categorias: data.objDatos\r\n });\r\n });\r\n fetch(localBack + '/api/Estadisticas', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n this.setState({\r\n numeroPersonasInsignias: data.objDatos.estudiantesConInsignias,\r\n });\r\n });\r\n }\r\n\r\n\r\n toggle(tab) {\r\n if (this.state.activeTab !== tab) {\r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n }\r\n\r\n toggleCard(e) {\r\n let event = e.target.dataset.event;\r\n this.setState({ collapse: this.state.collapse === Number(event) ? 0 : Number(event) });\r\n }\r\n\r\n handleSearch = async function (event) {\r\n await this.setState({ buscar: event.target.value });\r\n }\r\n\r\n handleSearchNombre = async function (event) {\r\n //console.log(event.target.value);\r\n await this.setState({ buscarNombre: event.target.value });\r\n }\r\n\r\n onChangeCategoria = async function (event) {\r\n //console.log('Cambio Categoria');\r\n //console.log(event.target.value);\r\n var id = event.target.value;\r\n await this.setState({ buscarCategoria: id });\r\n }\r\n\r\n onChangeCantidad = async function (event) {\r\n //console.log('Cambio Categoria');\r\n //console.log(event.target.value);\r\n var id = event.target.value;\r\n //alert(id);\r\n await this.setState({ buscarCantidad: id });\r\n }\r\n\r\n\r\n onChangeTipo = async function (e) {\r\n //console.log('Cambio Tipo');\r\n //console.log(e.target.value);\r\n var id = e.target.value;\r\n await this.setState({ buscarTipo: id });\r\n }\r\n\r\n onChangeEstado = async function (e) {\r\n //console.log('Cambio Tipo');\r\n //console.log(e.target.value);\r\n var siglaEstado = e.target.value;\r\n //console.log(id);\r\n await this.setState({ buscarEstado: siglaEstado });\r\n }\r\n\r\n\r\n searchByCategoria() {\r\n this.setState({ loading: true });\r\n\r\n if (this.state.buscarCategoria == 0) {\r\n fetch(localBack + '/api/ResultadoInsignia/GetConseguidas', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: [] });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, respItems: data.objDatos.length, tipoBusqueda: \"C\"});\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n } else {\r\n this.setState({ actividades: [], loading: false, respItems: 0 });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n });\r\n }\r\n else {\r\n fetch(localBack + '/api/ResultadoInsignia/GetbyInsignia/' + this.state.buscarCategoria, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: [] });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, respItems: data.objDatos.length, tipoBusqueda: \"C\" });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n } else {\r\n this.setState({ actividades: [], loading: false, respItems: 0 });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n });\r\n }\r\n }\r\n\r\n searchByCantidad() {\r\n this.setState({ loading: true });\r\n\r\n fetch(localBack + '/api/ResultadoInsignia/GetByCantidadFaltante/' + this.state.buscarCantidad, {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => {\r\n this.setState({ status: response.status, actividades: [] });\r\n return response.json();\r\n })\r\n .then(data => {\r\n //console.log(data.strMensaje);\r\n if (data.strEstado == 'S') {\r\n this.setState({ actividades: data.objDatos, loading: false, respItems: data.objDatos.length, tipoBusqueda: \"F\" });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n } else {\r\n this.setState({ actividades: [], loading: false, respItems: 0 });\r\n this.reLoadTotalPage(this.state.actividades.length, this.state.limite);\r\n }\r\n });\r\n \r\n }\r\n\r\n onlyNumber = (event) => {\r\n if (!/[0-9]/.test(event.key)) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n handleAsignar(id) {\r\n //Swal.fire({\r\n // title: \"Cargando...\",\r\n // html: \"Por favor, espere\",\r\n // timerProgressBar: true,\r\n // button: false,\r\n // closeOnClickOutside: false,\r\n // showConfirmButton: false,\r\n // closeOnEsc: false,\r\n // allowOutsideClick: false\r\n //});\r\n //Swal.showLoading();\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: null\r\n };\r\n fetch(localBack + '/api/ResultadoInsignia/ActualizarResponsable/' + id + '/' + this.state.iduser, requestOptions)\r\n .then(response => response.json())\r\n .then(function (data) {\r\n //alert(\"hola\");\r\n window.location.reload();\r\n }\r\n );\r\n }\r\n\r\n}\r\nConsultarInsignias.contextType = AppContext;\r\nexport default withRouter(ConsultarInsignias);","import React, { Component } from 'react';\r\nimport { Table, Button, Alert, Spinner } from 'reactstrap';\r\nimport { TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';\r\nimport { Pagination, PaginationItem, PaginationLink } from 'reactstrap';\r\nimport { Card, CardHeader, CardBody, Row, Col, Collapse, Input } from 'reactstrap';\r\nimport { InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';\r\nimport { AiOutlineSearch, AiOutlineReload } from 'react-icons/ai';\r\nimport { FaEdit, FaPlus, FaTrashAlt, FaCheckSquare } from 'react-icons/fa';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\n/*import history from \"../history\";*/\r\nimport './NavMenu.css';\r\nimport url from \"./variables/url.js\";\r\nimport { AppContext } from '../AppContext';\r\nimport Paginacion from './Paginacion';\r\nimport ActividadCard from './ActividadCard';\r\nimport ReactHTMLTableToExcel from \"react-html-table-to-excel\";\r\n\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\nconst homepage = process.env.REACT_APP_EXP;\r\n\r\n\r\nexport class ConsultarReportes extends Component {\r\n static displayName = ConsultarReportes.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n iduser: 0,\r\n roles: [],\r\n numeroCertificados: 0,\r\n certificados: [],\r\n loading: true,\r\n totalPageA: 0,\r\n actualPage: 1,\r\n limite: 10,\r\n siblingCount: 1,\r\n currentPage: 1,\r\n currentTotalPages: 0\r\n };\r\n\r\n }\r\n\r\n componentDidMount() {\r\n this.populateInfoData(); \r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n let currentUser = this.context;\r\n if (currentUser != null && this.state.iduser == 0) {\r\n this.setState({ iduser: currentUser.idpersona, roles: currentUser.roles });\r\n if (currentUser.roles.includes('ADMINISTRADOR')) {\r\n //console.log('Ok');\r\n } else {\r\n this.isForbidden();\r\n }\r\n\r\n }\r\n }\r\n\r\n isForbidden() {\r\n this.props.history.push({\r\n pathname: homepage,\r\n })\r\n }\r\n\r\n isForbidden() {\r\n this.props.history.push({\r\n pathname: homepage,\r\n })\r\n }\r\n\r\n setPagePrevious() {\r\n if (this.state.currentPage !== 1) {\r\n let p = this.state.currentPage;\r\n this.setState({\r\n currentPage: p - 1\r\n });\r\n }\r\n }\r\n\r\n setPageNext() {\r\n if (this.state.currentPage !== this.state.totalPageA) {\r\n let p = this.state.currentPage;\r\n this.setState({\r\n currentPage: p + 1\r\n });\r\n }\r\n }\r\n\r\n setPage = (pageNum) => {\r\n this.setState({ currentPage: pageNum })\r\n }\r\n\r\n setYouAreMySibling(num) {\r\n let actualPage = this.state.currentPage;\r\n let sibling = this.state.siblingCount;\r\n let total = this.state.totalPageA;\r\n let valor = false;\r\n if (num === actualPage || num - sibling === actualPage || num + sibling === actualPage) {\r\n valor = true;\r\n }\r\n if (actualPage === 1 && (num - 1 === actualPage || num - 2 === actualPage || num - 3 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === 2 && (num - 1 === actualPage || num - 2 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === total && (num + 1 === actualPage || num + 2 === actualPage || num + 3 === actualPage)) {\r\n valor = true;\r\n }\r\n if (actualPage === total - 1 && (num + 1 === actualPage || num + 2 === actualPage)) {\r\n valor = true;\r\n }\r\n return valor;\r\n }\r\n\r\n reLoadTotalPage(lenActividades, limite) {\r\n this.setState({ totalPageA: Math.ceil(lenActividades / limite), actualPage: 1, currentPage: 1 });\r\n\r\n }\r\n\r\n onChangeLimite(event) {\r\n //console.log('Cambio limite');\r\n //console.log(event.target.value);\r\n var num = event.target.value;\r\n this.setState({ limite: num });\r\n this.reLoadTotalPage(this.state.certificados.length, num);\r\n }\r\n\r\n render() {\r\n const indexOfLastPost = this.state.currentPage * this.state.limite;\r\n\r\n const indexOfFirstPost = indexOfLastPost - this.state.limite;\r\n\r\n const currentPosts = this.state.certificados.slice(indexOfFirstPost, indexOfLastPost);\r\n\r\n const pageNumbers = []\r\n\r\n for (let i = 1; i <= Math.ceil(this.state.certificados.length / this.state.limite); i++) {\r\n pageNumbers.push(i);\r\n }\r\n\r\n let contents = this.state.loading\r\n ? <>\r\n : <>Certificados generados: {this.state.numeroCertificados}
\r\n {this.state.certificados.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 \r\n {currentPosts.map((act, i) => {\r\n return \r\n \r\n {act.estudiante !== null ? : }\r\n {act.estudiante !== null ? : }\r\n {act.ultimoCambio !== null ? : }\r\n {act.agrupacion !== null ? : }\r\n {act.rutapdf != null ? : }\r\n \r\n }\r\n )}\r\n \r\n\r\n
#EstudianteMatriculaFechaTipoCertificado
\r\n
\r\n
\r\n \r\n \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.certificados.map((act, i) => {\r\n return \r\n \r\n {act.estudiante !== null ? : }\r\n {act.estudiante !== null ? : }\r\n {act.ultimoCambio !== null ? : }\r\n {act.agrupacion !== null ? : }\r\n {act.rutapdf != null ? : }\r\n \r\n }\r\n )}\r\n \r\n\r\n
#EstudianteMatriculaFechaTipoLink
\r\n
\r\n \r\n : <>
}\r\n {this.state.certificados.length === 0 ? < Card body className=\"text-center py-3\">No se encontraron Resultados. : <>}\r\n \r\n return (\r\n
\r\n {contents}\r\n
\r\n );\r\n }\r\n\r\n populateInfoData() {\r\n\r\n fetch(localBack + '/api/Estadisticas', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => { \r\n this.setState({\r\n numeroCertificados: data.objDatos.certificadosGenerados,\r\n });\r\n });\r\n\r\n fetch(localBack + '/api/Certificado', {\r\n method: 'GET',\r\n /*headers: { \"Authorization\": `Bearer ${getCookie('token')}` },*/\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n this.setState({\r\n certificados: data.objDatos,\r\n loading: false,\r\n });\r\n this.reLoadTotalPage(this.state.certificados.length, this.state.limite);\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n}\r\nConsultarReportes.contextType = AppContext;\r\nexport default withRouter(ConsultarReportes);","import { BehaviorSubject } from 'rxjs';\r\nimport url from \"./../components/variables/url.js\";\r\n\r\nconst APP_ID = process.env.REACT_APP_ID;\r\n/*const localBack = url.localBack;*/\r\nconst localBack = process.env.REACT_APP_BACK;\r\nconst casF = url.CAS_FOTO;\r\nconst foto = url.foto;\r\n\r\nconst currentUser = {\r\n usuario: \"\",\r\n idpersona: 0,\r\n identificacion: \"\",\r\n ultimoCambio: \"\",\r\n apellidos: \"\",\r\n nombres: \"\",\r\n roles: [],\r\n foto: \"\",\r\n token: \"\"\r\n};\r\n\r\nconst currentUserSubject = new BehaviorSubject(currentUser);\r\n\r\nexport const authService = {\r\n login,\r\n logout,\r\n currentUser: currentUserSubject.asObservable(),\r\n get currentUserValue() { return currentUserSubject.value },\r\n};\r\n\r\nfunction login(username) {\r\n \r\n fetch(localBack + \"/api/Account\", {\r\n method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ idapp: APP_ID, netid: username })\r\n })\r\n .then(response => response.json())\r\n .then((result) => {\r\n\r\n let loggedUser = {\r\n idpersona: result.user.idpersona,\r\n matricula: result.user.codestudiante,\r\n usuario: result.user.netId,\r\n identificacion: result.user.numeroidentificacion,\r\n apellidos: result.user.apellidos,\r\n nombres: result.user.nombres,\r\n roles: result.user.roles,\r\n foto: result.user.foto,\r\n token: result.token, \r\n };\r\n\r\n let realFetch = window.fetch;\r\n window.fetch = function (url, opts = null) {\r\n let headers = opts.headers;\r\n /*console.log(\"fetch opts = \" + JSON.stringify(opts.headers));*/\r\n if (loggedUser.token) {\r\n headers = Object.assign({}, headers, { 'Authorization': `Bearer ${loggedUser.token}` });\r\n //console.log(\"fileupload = \" + url.indexOf('FileUpload'));\r\n //console.log(\"content-type = \" + headers['Content-Type']);\r\n if (url.indexOf('FileUpload') < 0 && headers['Content-Type'] == undefined) {\r\n /*console.log(\"add content-type\");*/\r\n headers = Object.assign({}, headers, { 'Content-Type': 'application/json' });\r\n //opts = Object.assign({}, opts, { 'headers': { 'Content-Type': 'application/json'} });\r\n }\r\n //opts = Object.assign({}, opts, { 'headers': { 'Authorization': `Bearer ${loggedUser.token}` } });\r\n opts.headers = headers;\r\n /*console.log(JSON.stringify(opts));*/\r\n return realFetch(url, opts);\r\n } else {\r\n return realFetch(url, opts);\r\n }\r\n };\r\n\r\n currentUserSubject.next(loggedUser);\r\n });\r\n \r\n}\r\n\r\nfunction logout() {\r\n // remove user and go to logout CAS\r\n currentUserSubject.next(null);\r\n window.location.href = \"/Account/Logout\";\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Route, Router, Switch } from 'react-router-dom';\r\nimport { Layout } from './components/Layout';\r\nimport { LayoutExterno } from './components/LayoutExterno';\r\nimport { Home } from './components/Home';\r\nimport { FileUpload } from './components/FileUpload';\r\nimport { FetchData } from './components/FetchData';\r\nimport { Counter } from './components/Counter';\r\nimport { AddActExtracurricular } from './components/AddActExtracurricular';\r\nimport { ActExtracurricular } from './components/ActExtracurricular';\r\nimport { ActExtraEstudiante } from './components/ActExtraEstudiante';\r\nimport { Insignias } from './components/Insignias';\r\nimport { Reporte } from './components/Reporte';\r\nimport { Autenticado } from './components/Autenticado';\r\nimport { UpdateGestion } from './components/UpdateGestion';\r\nimport { GestionActividad } from './components/GestionActividad';\r\nimport { GestionActividadPagination } from './components/GestionActividadPagination';\r\nimport { ConsultarPerfil } from './components/ConsultarPerfil';\r\nimport { ConsultarInsignias } from './components/ConsultarInsignias';\r\nimport { ConsultarReportes } from './components/ConsultarReportes';\r\nimport { Spinner } from 'reactstrap';\r\n//import { Cargando } from './components/Cargando';\r\n\r\nimport history from \"./historyBeta\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport { AppContext } from './AppContext';\r\nimport url from \"./components/variables/url.js\";\r\nimport CasClient, { constant } from \"react-cas-client\";\r\nimport { authService } from './services/auth.service';\r\nimport './custom.css';\r\nimport Certificado from './components/Certificado';\r\n\r\n/*const CAS_PARAMS = url.cas.split(\"://\");*/\r\nconst CAS_PARAMS = process.env.REACT_APP_CAS.split(\"://\");\r\nconst casOptions = { version: constant.CAS_VERSION_2_0, path: '/', protocol: CAS_PARAMS[0] };\r\nconst casClient = new CasClient(CAS_PARAMS[1], casOptions);\r\n\r\nconst homepage = process.env.REACT_APP_EXP;\r\nconst localBack = process.env.REACT_APP_BACK;\r\n\r\nconst hist = createBrowserHistory();\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n username: null,\r\n currentUser: null,\r\n loading: true,\r\n };\r\n\r\n const { username } = this.state;\r\n\r\n /*Se debe estar logeado excepto para autenticacion de certificados.*/\r\n if (!username && !hist.location.pathname.includes('/Autenticado/') && !hist.location.pathname.includes('/Descargar/')) {\r\n casClient\r\n .auth()\r\n .then(successRes => {\r\n //alert(\"asdasdasd\");\r\n console.log(\"App successRes = \" + JSON.stringify(successRes)); this.setState({ username: successRes.user });\r\n history.replace(successRes.currentPath);\r\n })\r\n .catch(errorRes => { console.log(\"App errorRes = \" + JSON.stringify(errorRes)) });\r\n }\r\n }\r\n\r\n //constructor(props) {\r\n // super(props);\r\n\r\n // this.state = {\r\n // username: null,\r\n // currentUser: null,\r\n // loading: true,\r\n // };\r\n\r\n // const { username } = this.state;\r\n // /*Se debe estar logeado excepto para autenticacion de certificados.*/\r\n // if (!username && !hist.location.pathname.includes('/Autenticado/') && !hist.location.pathname.includes('/Descargar/')) {\r\n // window.location.href = 'https://www.bienestar.espol.edu.ec/sistema-de-experiencia-estudiantil';\r\n // }\r\n //}\r\n\r\n componentDidMount() {\r\n\r\n //alert(hist.location.pathname);\r\n\r\n if (hist.location.pathname == \"/\") {\r\n window.location.href = 'https://www.bienestar.espol.edu.ec/sistema-de-experiencia-estudiantil';\r\n }\r\n\r\n console.log(\"app state = \" + JSON.stringify(this.state));\r\n\r\n this.subscription = authService.currentUser.subscribe(currentUser => {\r\n if (currentUser && currentUser.idpersona) {\r\n this.setState({ currentUser: currentUser, loading: false });\r\n //console.log(this.state.currentUser.roles);\r\n //console.log(this.state.currentUser.usuario);\r\n }\r\n });\r\n }\r\n\r\n componentDidUpdate() {\r\n //alert(hist.location.pathname);\r\n\r\n if (hist.location.pathname == \"/\") {\r\n window.location.href = 'https://www.bienestar.espol.edu.ec/sistema-de-experiencia-estudiantil';\r\n }\r\n\r\n const { username, currentUser } = this.state;\r\n if (username && !currentUser) {\r\n authService.login(username);\r\n }\r\n\r\n }\r\n\r\n componentWillUnmount() {\r\n // unsubscribe to ensure no memory leaks\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n logout() {\r\n casClient.logout();\r\n }\r\n\r\n render () {\r\n const page = (\r\n \r\n \r\n \r\n } />\r\n } />\r\n {\r\n fetch(localBack + '/api/FileUpload/DescargarEvidencia/' + props.match.params[\"id\"], {\r\n method: 'GET',\r\n })\r\n .then(response => {\r\n return response.json();\r\n })\r\n .then(data => {\r\n if (data !== '') {\r\n\r\n let a = document.createElement('a');\r\n a.href = \"data:application/pdf;base64,\" + data + \"\";\r\n a.download = \"certificado-\" + \".pdf\";\r\n a.click();\r\n }\r\n });\r\n }\r\n } />\r\n \r\n \r\n \r\n {/**/}\r\n { window.location.href = 'https://www.bienestar.espol.edu.ec/sistema-de-experiencia-estudiantil'; }} />\r\n {/* { window.location.href = 'https://www.bienestar.espol.edu.ec/sistema-de-experiencia-estudiantil'; }} />*/}\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n if (this.state.loading) {\r\n return (\r\n
\r\n
\r\n \r\n Cargando\r\n
\r\n )\r\n } \r\n else {\r\n return page\r\n }\r\n\r\n }\r\n}\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 { createBrowserHistory } from \"history\";\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter, Router, Route, Switch } from 'react-router-dom';\r\nimport * as dotenv from 'dotenv';\r\nimport App from './App';\r\n/*import history from \"./history\";*/\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\ndotenv.config();\r\n\r\nconst hist = createBrowserHistory();\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();\r\n\r\n","module.exports = __webpack_public_path__ + \"static/media/shark.c6e3f8c1.svg\";","module.exports = __webpack_public_path__ + \"static/media/ESPOL-ExperienciaEstudiantil.13ca78f1.svg\";","module.exports = __webpack_public_path__ + \"static/media/ciudadania-ETICA.af67f754.svg\";","module.exports = __webpack_public_path__ + \"static/media/liderazgo-AUTOAGENCIA.adfa95f6.svg\";","module.exports = __webpack_public_path__ + \"static/media/CREATIVIDAD.ea988036.svg\";","module.exports = __webpack_public_path__ + \"static/media/interaccion-COMUNICACION.13dc4505.svg\";","module.exports = __webpack_public_path__ + \"static/media/Autonomia-APRENDIZAJE.2b6bec9e.svg\";","module.exports = __webpack_public_path__ + \"static/media/Gestion-ESTRATEGICA.48ca5c6b.svg\";"],"sourceRoot":""}