Skip to content
Snippets Groups Projects
Commit 28ec63ad authored by Lucas Eduardo Schoenfelder's avatar Lucas Eduardo Schoenfelder
Browse files

primeira parte de requisicao para ser professor pronta

parent 67fa48c5
Branches
Tags
4 merge requests!57Merge of develop into master,!56Fixed buttons reportar, seguir, compartilhar, guardar and entrar (in comments...,!18Branch do lucas,!17Branch do lucas
......@@ -66,7 +66,7 @@ export default function FormInput(props) {
style={{width:"100%"}}
mask={props.mask}
multiline={props.multi}
rows={props.row}
rows={props.rows}
rowsMax={props.rowMax}
/>
);
......
......@@ -80,8 +80,8 @@ export default function LoginModal (props){
)
props.handleClose();
props.openSnackbar();
localStorage.setItem('@portalmec/accessToken', response.headers['access-token'])
localStorage.setItem('@portalmec/clientToken', response.headers.client,)
sessionStorage.setItem('@portalmec/accessToken', response.headers['access-token'])
sessionStorage.setItem('@portalmec/clientToken', response.headers.client,)
sessionStorage.setItem('@portalmec/id', response.data.data.id)
sessionStorage.setItem('@portalmec/username', response.data.data.name)
sessionStorage.setItem('@portalmec/uid', response.data.data.uid)
......
import React, {useState} from 'react'
import React, {useState, useEffect} from 'react'
import styled from 'styled-components'
import Stepper from '../Stepper.js'
import FormControl from '@material-ui/core/FormControl';
......@@ -9,32 +9,128 @@ import {Button} from '@material-ui/core'
import {RightSideStrikedH3, LeftSideStrikedH3} from '../LoginContainerFunction.js'
import Divider from '@material-ui/core/Divider';
import {ButtonCancelar} from './PartTwo.js'
import axios from 'axios'
import FormInput from '../FormInput.js'
function sortDict (dict) {
const newDict = dict.sort((a, b) => (a.name) > (b.name) ? 1 : -1)
return newDict
}
export default function PartOne (props) {
const [uf, setUF] = useState('')
const handleChangeUF = (event) => {setUF(event.target.value)}
//stores initial get response (list of states, sorted alphabetically)
const [ufList, setStates] = useState([])
const handleSetStates = (states) => {setStates(states)}
//stores list of cities sorted alphabetically
const [municipioList, setMunicipioList] = useState([])
const handleSetMunicipioList = (municipios) => setMunicipioList(municipios)
//stores a single user selected state
const [uf, setUF] = useState(
{
algumFoiEscolhido : false,
value : ''
}
)
//stores a single user selected city
const [municipio, setMunicipio] = useState(
{
algumFoiEscolhido : false,
value : ''
}
)
const [codigoINEP, setCodigoINEP] = useState(
{
codigoInvalido : false,
value : ''
}
)
const handleCodigoINEP = (event) => {
const code = event.target.value
setCodigoINEP({...codigoINEP,
codigoInvalido : false,
value : code
})
}
const validateINEP = () => {
const code = codigoINEP.value
axios.get(('https://www.simcaq.c3sl.ufpr.br/api/v1/portal_mec_inep?filter=school_cod:' + code)
).then( (response) => {
handleSubmit()
}, (error) => {
setCodigoINEP({...codigoINEP,
codigoInvalido : true,
value : ''
})
}
)
}
const handleSubmit = () => {
props.handleBuscar(uf.value, municipio.value, codigoINEP.value)
}
const [municipio, setMunicipio] = useState('')
const handleChangeMunicipio = (event) => {setMunicipio(event.target.value)}
//on render component, call simcaq api and update ufList
useEffect ( () => {
axios.get(('https://simcaq.c3sl.ufpr.br/api/v1/state')
).then( (response) => {
handleSetStates(sortDict(response.data.result))
},
(error) => console.log('erro acessando api do simcaq (estados)'))
}, [])
const handleChooseUF = (event) => {
const ufID = event.target.value
setUF({...uf,
algumFoiEscolhido : true,
value : ufID
}
)
axios.get(('https://simcaq.c3sl.ufpr.br/api/v1/city?filter=state:' + ufID)
).then( (response) => {
handleSetMunicipioList(sortDict(response.data.result))
}, (error) => console.log('erro acessando api do simcaq (cidades)')
)
}
const handleChooseCity = (event) => {
const cityID = event.target.value
setMunicipio({...municipio,
algumFoiEscolhido : true,
value : cityID
}
)
}
return (
<>
{/*/////////////////////////////PRIMEIRA PARTE/////////////////////////////*/}
<Content>
<h4>Vamos localizar o seu cadastro:</h4>
<Stepper items={props.stepper}/>
<form style={{textAlign:"start"}}>
<p>Localize pelo menos uma escola que você tenha atuado até maio de 2017:</p>
<p>Localize pelo menos uma escola em que você tenha atuado até maio de 2017:</p>
<FormControl required style={{width:"100%"}}>
<InputLabel>Procure sua UF</InputLabel>
<Select
labelId="demo-simple-select-label"
id="demo-simple-select"
value={uf}
onChange={handleChangeUF}
value={uf.value}
onChange={handleChooseUF}
>
<MenuItem value={10}>Ten</MenuItem>
<MenuItem value={20}>Twenty</MenuItem>
<MenuItem value={30}>Thirty</MenuItem>
{
ufList.map( (ufs)=>
<MenuItem value={ufs.id}>{ufs.name}</MenuItem>
)
}
</Select>
</FormControl>
<FormControl required style={{width:"100%"}}>
......@@ -42,40 +138,51 @@ export default function PartOne (props) {
<Select
labelId="demo-simple-select-label"
id="demo-simple-select"
value={municipio}
onChange={handleChangeMunicipio}
value={municipio.value}
onChange={handleChooseCity}
>
<MenuItem value={10}>Ten</MenuItem>
<MenuItem value={20}>Twenty</MenuItem>
<MenuItem value={30}>Thirty</MenuItem>
{
municipioList.map( (cidades)=>
<MenuItem value={cidades.id}>{cidades.name}</MenuItem>
)
}
</Select>
</FormControl>
<div style={{display:"flex", justifyContent:"center",paddingTop:"10px", paddingBottom:"10px"}}>
<ButtonConfirmar onClick={props.handleBuscar}>BUSCAR</ButtonConfirmar>
<ButtonConfirmar
onClick={ ( (uf.algumFoiEscolhido && municipio.algumFoiEscolhido) ? handleSubmit : '')}
>
BUSCAR</ButtonConfirmar>
</div>
</form>
</Content>
<div style={{display:"flex", justifyContent:"center", alignItems:"center"}}>
<LeftSideStrikedH3/><StrikeSpan>ou</StrikeSpan><RightSideStrikedH3/>
</div>
{/*/////////////////////////////SEGUNDA PARTE/////////////////////////////*/}
<Content>
<form>
<p>Localize pelo código INEP da escola:</p>
<FormControl required style={{width:"100%"}}>
<InputLabel>Código INEP</InputLabel>
<Select
labelId="demo-simple-select-label"
id="demo-simple-select"
value={municipio}
onChange={handleChangeMunicipio}
<FormInput
inputType={'text'}
name={'Código INEP'}
value={codigoINEP.value}
handleChange = {handleCodigoINEP}
placeholder={'Código INEP'}
required={true}
error={codigoINEP.codigoInvalido}
help={codigoINEP.codigoInvalido ? <span style={{color:'red'}}>código INEP inválido</span> : ''}
>
<MenuItem value={10}>Ten</MenuItem>
<MenuItem value={20}>Twenty</MenuItem>
<MenuItem value={30}>Thirty</MenuItem>
</Select>
</FormInput>
</FormControl>
<div style={{display:"flex", justifyContent:"center",paddingTop:"10px", paddingBottom:"10px"}}>
<ButtonConfirmar onClick={props.handleBuscar}>BUSCAR</ButtonConfirmar>
<ButtonConfirmar
onClick={validateINEP}
>
BUSCAR</ButtonConfirmar>
</div>
</form>
</Content>
......
......@@ -9,6 +9,7 @@ import {Button} from '@material-ui/core'
export default function PartTwo (props) {
return (
<>
{console.log(props.info)}
<Content>
<h4>Vamos localizar o seu cadastro:</h4>
<Stepper items={props.stepper}/>
......
......@@ -16,17 +16,13 @@ export default function TabPanelEditarPerfil (props) {
const [hoverAlterarFoto, handleAlterarFoto] = React.useState(false)
const [formNome, setNome] = useState({
dict : {
key : false,
value : ""
}
})
const [formAboutMe, setAboutMe] = useState({
dict : {
key : false,
value : "",
}
})
const handleHoverAlterarFoto = () => {
......@@ -43,38 +39,38 @@ export default function TabPanelEditarPerfil (props) {
const flag = ValidateUserInput(type, userInput)
if(type === 'username') {
setNome({...formNome, dict : {
setNome({...formNome,
key : flag,
value : userInput
}})
})
console.log(formNome)
}
else if (type === 'aboutMe') {
setAboutMe({...formAboutMe, dict : {
setAboutMe({...formAboutMe,
key : flag,
value : userInput,
}})
})
console.log(formAboutMe)
}
}
const limpaCamposForm = () => {
setNome({...formNome, dict: {
setNome({...formNome,
key : false,
value : ''
}})
})
setAboutMe({...formAboutMe, dict: {
setAboutMe({...formAboutMe,
key : false,
value : ''
}})
})
}
const handleSubmit = (e) => {
e.preventDefault()
const info = {nome : formNome.dict.value, aboutMe : formAboutMe.dict.value}
const flagNome = formNome.dict.key
const flagAboutMe = formAboutMe.dict.key
const info = {nome : formNome.value, aboutMe : formAboutMe.value}
const flagNome = formNome.key
const flagAboutMe = formAboutMe.key
if (!(flagNome || flagAboutMe)) {
console.log(info)
......@@ -118,24 +114,24 @@ export default function TabPanelEditarPerfil (props) {
<FormInput
inputType={"text"}
name={"Nome Completo"}
value={formNome.dict.value}
value={formNome.value}
placeholder={"Nome Completo"}
handleChange={e => handleChange(e, 'username')}
required={true}
error={formNome.dict.key}
error={formNome.key}
/>
<FormInput
inputType={"text"}
name={"Sobre Mim"}
value={formAboutMe.dict.value}
value={formAboutMe.value}
multi = {true}
rows="3"
rowsMax = "3"
error={formAboutMe.dict.key}
error={formAboutMe.key}
placeholder={"Sobre Mim"}
handleChange={e => handleChange(e, 'aboutMe')}
required={false}
help = {formAboutMe.dict.value.length + '/160'}
help = {formAboutMe.value.length + '/160'}
/>
</form>
</div>
......
......@@ -13,24 +13,45 @@ export default function PageProfessor (props) {
props.history.push('/termos-publicar-recurso')
}
const [registerInformation, setRegisterInformation] = useState(
{
teacher_cpf: '',
school_phone: '',
school_name: '',
school_City: '', // perguntar se aqui é o id ou o nome
school_uf : '', //perguntar se aqui é o id ou o nome
inep_code: ''
}
)
const [stepper, handleStepper] = useState(
[ {value : '1', selected : true}, {value : '2', selected : false}, {value : '3', selected : false} ]
)
const handleBuscar = () => {
const toggleStepper = (selected1, selected2, selected3) => {
handleStepper(
[ {value : '1', selected : false}, {value : '2', selected : true}, {value : '3', selected : false} ]
[
{value : '1', selected : selected1},
{value : '2', selected : selected2},
{value : '3', selected : selected3}
]
)
}
const handleBuscar = (uf, municipio, inep) => {
setRegisterInformation({...registerInformation,
school_uf : uf,
school_City : municipio,
inep_code : inep
})
toggleStepper(false, true, false)
}
const handleCancelar = () => {
props.history.push('/perfil/atualizacoes')
}
const onClickTable = () => {
handleStepper(
[ {value : '1', selected : false}, {value : '2', selected : false}, {value : '3', selected : true} ]
)
toggleStepper(false, false, true)
}
return (
......@@ -43,8 +64,12 @@ export default function PageProfessor (props) {
<div style={{display: "flex", justifyContent:"center", paddingTop:"5vh", paddingBottom:"5vh"}}>
<Paper elevation={3} style= {{width:"max-content"}}>
<div style={{paddingRight:"15px", paddingLeft:"15px"}}>
{stepper[0].selected && <PartOne stepper={stepper} handleBuscar={handleBuscar} handleCancelar={handleCancelar}/>}
{stepper[1].selected && <PartTwo stepper={stepper} onClickTable={onClickTable}/>}
{stepper[0].selected &&
<PartOne stepper={stepper} handleBuscar={handleBuscar}
handleCancelar={handleCancelar}
/>
}
{stepper[1].selected && <PartTwo stepper={stepper} onClickTable={onClickTable} info={registerInformation}/>}
{stepper[2].selected && <PartThree stepper={stepper}/>}
</div>
</Paper>
......
......@@ -58,8 +58,8 @@ export default function UserPage (props){
headers : {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Access-Token': localStorage.getItem('@portalmec/accessToken'),
'Client': localStorage.getItem('@portalmec/clientToken'),
'Access-Token': sessionStorage.getItem('@portalmec/accessToken'),
'Client': sessionStorage.getItem('@portalmec/clientToken'),
'Uid': sessionStorage.getItem('@portalmec/uid'),
'Host': 'api.portalmec.c3sl.ufpr.br',
'Cookie': ''
......
......@@ -17,7 +17,7 @@ You should have received a copy of the GNU Affero General Public License
along with Plataforma Integrada MEC. If not, see <http://www.gnu.org/licenses/>.*/
var apiDomain = 'https://api.portalmec.c3sl.ufpr.br',
var apiDomain = 'https://api.portalmec.c3sl.ufpr.br/',
apiVersion = 'v1',
apiUrl = apiDomain + '/' + apiVersion;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment