From e27f25650c3ee6daa49a02909fa93f64b8a008de Mon Sep 17 00:00:00 2001 From: Rafael S Castliho <rsc15@inf.ufpr.br> Date: Mon, 7 Jan 2019 11:32:30 -0200 Subject: [PATCH 01/23] comecando ind 2 --- src/MainPage.js | 18 +- src/Quilombola.js | 6 +- src/SubPages/QuilombolaIndicator1.js | 20 +- src/SubPages/QuilombolaIndicator2.js | 312 +++++++++++++++++++++++++++ src/enviroment.js | 2 + 5 files changed, 344 insertions(+), 14 deletions(-) create mode 100644 src/SubPages/QuilombolaIndicator2.js diff --git a/src/MainPage.js b/src/MainPage.js index 89bdaeb9..14403dab 100644 --- a/src/MainPage.js +++ b/src/MainPage.js @@ -75,13 +75,13 @@ const text2 = <div> <li>Transformação de Territórios</li> <li>Aperfeiçoamento Institucional</li> </div> -const text3 = <div> - <p> - Os mapas a seguir contém dados referentes a: - </p> - <li>Comunidades Quilombolas</li> - <li>Juventude Viva</li> - </div> +// const text3 = <div> +// <p> +// Os mapas a seguir contém dados referentes a: +// </p> +// <li>Comunidades Quilombolas</li> +// <li>Juventude Viva</li> +// </div> const text4 = <div> Este módulo contém informações do CadÚnico sobre comunidades de Matriz Africana. </div> @@ -102,9 +102,9 @@ const text6 = <div> // Subpages is an Array of arrays that in the first position expects the title and in the second position the route const subpages1 = {'route': '/quilombolas', 'links':['EIXO 1', 'EIXO 2', 'EIXO 3', 'EIXO 4', 'SOBRE']} const subpages2 = {'route': '/juventude', 'links':['VULNERABILIDADES', 'EDUCAÇÃO', 'TRABALHO']} -const subpages3 = {'route': '/mapas', 'links':['COMUNIDADES', 'JUVENTUDE VIVA']} +// const subpages3 = {'route': '/mapas', 'links':['COMUNIDADES', 'JUVENTUDE VIVA']} const subpages4 = {'route': '/matrizAfricana', 'links':["DIREITOS", "CULTURA", "SUSTENTABILIDADE"]} const subpages5 = {'route': '/cotas', 'links':['EVASÃO', 'CONCLUINTES', 'ESCOLARIDADE', 'FIES', 'PROUNI', 'FINANCIAMENTO', 'ATIVIDADE EXTRACURRICULAR', 'INGRESSO', 'APOIO SOCIAL', 'VAGAS OFERTADAS']} -const subpages6 = {'route': '/quilombola', 'links':['EIXO 2']} +const subpages6 = {'route': '/quilombola', 'links':['EIXO 2','EIXO 3']} export default MainPage; diff --git a/src/Quilombola.js b/src/Quilombola.js index 4e96830f..65e7631a 100644 --- a/src/Quilombola.js +++ b/src/Quilombola.js @@ -8,6 +8,7 @@ import Cookies from 'universal-cookie'; import {sleep, homeURL} from './enviroment' import ContrastBar from './Components/ContrastBar' import QuilombolaIndicator1 from './SubPages/QuilombolaIndicator1' +import QuilombolaIndicator2 from './SubPages/QuilombolaIndicator2' var ck = new Cookies(); var contrastCK = new Cookies(); @@ -31,10 +32,10 @@ class Quilombola extends Component { } const cookie = new Cookies(); var clicked = cookie.get('mainPageClicked') - var states = {"EIXO 2": true} + var states = {"EIXO 2": true,"EIXO 3": false} if (clicked !== undefined){ if (clicked in states){ - states["EIXO 1"] = false; + states["EIXO 2"] = false; states[clicked] = true; } else{ @@ -53,6 +54,7 @@ class Quilombola extends Component { <div id='contentTabsDiv'> <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageRedTab`} onChange={this.whereIAm}> <Tab title="EIXO 2" active={states["EIXO 2"]}> <QuilombolaIndicator1/> </Tab> + <Tab title="EIXO 3" active={states["EIXO 3"]}> <QuilombolaIndicator2/> </Tab> </Tabs> </div> <AppFooter/> diff --git a/src/SubPages/QuilombolaIndicator1.js b/src/SubPages/QuilombolaIndicator1.js index b0277da6..6f46624c 100644 --- a/src/SubPages/QuilombolaIndicator1.js +++ b/src/SubPages/QuilombolaIndicator1.js @@ -7,11 +7,8 @@ import './Styles/QuilombolaIndicator1.css'; import axios from 'axios'; import { getServerURL, organizeJson, getRegionState, deactivateLoadingAnimation, getStateName, searchHash } from '../enviroment' import BuildStackedBar from '../Charts/BuildStackedBar'; -//import BuildBiaxialBars from '../Charts/BuildBiaxialBars'; -//import AutocompleteApp from '../Components/AutocompleteApp'; import Loading from '../Components/Loading'; import Cookies from 'universal-cookie'; -// import DropdownCampi from '../Components/DropdownCampi'; var ck = new Cookies(); @@ -63,6 +60,10 @@ const sanitaryDump = { 'null': 'Indefinido', 'NA': 'Não informado', } +const AnoLabel ={ + 'undefined': 'Número de famÃlias' +} + class QuilombolaIndicator1 extends Component { constructor(props) { super(props); @@ -111,6 +112,16 @@ class QuilombolaIndicator1 extends Component { <Col s={12} m={10} l={10} offset={'m1 l1'}> <Collapsible onClick={this.getHeader}> + <CollapsibleContainer id={`${contrastString}redCollapsible`} header='Número de famÃlias'> + <div id={'Numero_de_familias'+type}> + <BuildStackedBar + dataKey='Ano' + data={organizeJson(this.state.charts['Número de famÃlias'], "year_none", "ano_pesquisa")} + customKeys={AnoLabel} + /> + </div> + <Loading/> + </CollapsibleContainer> <CollapsibleContainer id={`${contrastString}redCollapsible`} header='Tipo de domicÃlio'> <div id={'Tipo_de_domicilio'+type}> <BuildStackedBar @@ -278,6 +289,9 @@ class QuilombolaIndicator1 extends Component { case 'Tipos de escoamento sanitário': route = type+"_count?dims=cod_sanitary_dump,year&filter=quilombola_family:\"1\"" break; + case 'Número de famÃlias': + route = type+"_count?dims=year&filter=quilombola_family:\"1\"" + break; default: console.log("404"); } diff --git a/src/SubPages/QuilombolaIndicator2.js b/src/SubPages/QuilombolaIndicator2.js new file mode 100644 index 00000000..eb23f187 --- /dev/null +++ b/src/SubPages/QuilombolaIndicator2.js @@ -0,0 +1,312 @@ +import React, { Component } from 'react'; +import {Col, Row } from 'react-materialize'; +import MapPanel from '../Components/MapPanel'; +import { Collapsible, Collection, CollectionItem } from 'react-materialize' +import CollapsibleContainer from '../Components/CollapsibleContainer'; +import './Styles/QuilombolaIndicator1.css'; +import axios from 'axios'; +import { getServerURL, organizeJson, getRegionState, deactivateLoadingAnimation, getStateName, searchHash } from '../enviroment' +import BuildStackedBar from '../Charts/BuildStackedBar'; +import Loading from '../Components/Loading'; +import Cookies from 'universal-cookie'; + + +var ck = new Cookies(); +var contrastCK = new Cookies(); +var cookieStatus = contrastCK.get('contrast'); +const serverURL = getServerURL(); +const type = "cad_unico"; + + +class QuilombolaIndicator2 extends Component { + constructor(props) { + super(props); + this.state = { + charts:{'Tipo de domicÃlio': null, "Forma de iluminação - Pessoas": null, "Forma de iluminação - FamÃlias": null,"Destino do lixo": null + ,"Forma de abastecimento de água": null, "Tipos de escoamento sanitário": null}, + ddValues:{'regiao': null, 'estado': null}, + graduates:{}, + campiNames:[], + tagID: '', + tagName:'' + }; + this.getDataFromAutocomplete = this.getDataFromAutocomplete.bind(this); + this.getDataFromServer = this.getDataFromServer.bind(this); + this.createRoute = this.createRoute.bind(this); + this.getHeader = this.getHeader.bind(this); + this.getDDValues = this.getDDValues.bind(this); + this.updateCharts = this.updateCharts.bind(this); + this.getData = this.getData.bind(this); + this.getCampiFromServer = this.getCampiFromServer.bind(this); + this.saveAutocompleteContent = this.saveAutocompleteContent.bind(this); + this.campiFilter = this.campiFilter.bind(this); + + } + + render() { + var contrastString = ''; + if(cookieStatus === 'true'){ + contrastString = 'Contrast' + } + if (ck.get('mainPageClicked') === "EIXO 3") + return ( + <div id={type}> + <Row> + <Col s={12} m={10} l={10} offset={'m1 l1'}> + <div className={`${contrastString}subpage-margin`}> + <h5 className={`${contrastString}quilombola-title`}>Eixo 3</h5> + <MapPanel + onChange={this.updateCharts} + getDDValues={this.getDDValues} + getData={this.getData} + location={type} + /> + </div> + </Col> + + <Col s={12} m={10} l={10} offset={'m1 l1'}> + <Collapsible onClick={this.getHeader}> + <CollapsibleContainer id={`${contrastString}redCollapsible`} header='Extrativismo'> + <div id={'Extrativismo'+type}> + <BuildStackedBar + dataKey='Ano' + data={organizeJson(this.state.charts['Extrativismo'], "cod_agricultura_trab_memb", "ano_pesquisa")} + /> + </div> + <Loading/> + </CollapsibleContainer> + </Collapsible> + </Col> + </Row> + </div> + ); + else return <div></div> + } + + getDataFromAutocomplete(data) { + var typeAux = type+'s'; + for(let i = 0, j = 0; i < data['data'].length; i++, j++){ + for(;j < this.state[typeAux].length;){ + if (data['data'][i].no_ano_pesquisa === this.state[typeAux][j].no_ano_pesquisa){ + data['data'][i]['total'+typeAux] = this.state[typeAux][j].total + data['data'][i]['percentage'] = data['data'][i]['total']*100/this.state[typeAux][j].total + break; + } + else{ + j++ + } + } + } + + var currentState = this.state.charts + switch(data['option']){ + case 'institution': + currentState['Instituição de Ensino'] = data['data'] + this.setState({IESTotal: data['data']}) + this.setState({campiList: this.getCampi(this.state.campi)}) + this.setState(currentState) + break; + case 'course': + currentState['Curso'] = data['data'] + this.setState(currentState) + break; + default: + break; + } + } + + getDataFromServer(defaultData, chart) { + if(chart !== 'Curso' && chart !== 'Instituição de Ensino'){ + var msg = document.getElementById('no_info'+chart+type); + if (msg){ + document.getElementById(chart+type).style.display = 'block'; + msg.remove() + } + axios.get(`${serverURL}${defaultData}`) + .then(res => { + const data = res.data.result + var temp = this.state.charts + temp[chart.trim()] = data + if (!(Object.values(temp).indexOf(true) > -1)){ + this.setState({ defaultData : temp }); + deactivateLoadingAnimation(chart, type); + } + }) + .catch(error => { + console.log(error) + var node = document.createElement("P"); + var textnode = document.createTextNode(`Sem informação para ${chart} na unidade federativa: ${getStateName(this.state.ddValues.estado)}`); + node.appendChild(textnode); + node.id = 'no_info'+chart+type + deactivateLoadingAnimation(chart, type); + document.getElementById(chart+type).style.display = 'none'; + document.getElementById(chart+type).parentNode.appendChild(node) + }); + } + } + + createRoute(header) { + var route; + let head = header.trim() + switch (head) { + //count pega informações da familia, sem count são pegas as informações por pessoa + case 'Extrativismo': + route = type+"?dims=year,cod_agricultura_trab_memb&filter=quilombola_family:\"1\"" + break; + default: + console.log("404"); + } + if (this.state.ddValues.estado !== null) { + route = route + "&filter=uf:" + this.state.ddValues.estado; + } else + if (this.state.ddValues.regiao !== null) { + route = route + "&filter=region:" + this.state.ddValues.regiao; + } + this.getDataFromServer(route, head); + } + + getHeader(e) { + var target = e.target; + var current_icon = '' + var current_collapsible = '' + + if (target.childNodes[2] === undefined) { + target = e.target.parentNode + } + if(target.childNodes[0].innerText){ + if(target.childNodes[0].innerText[11] === 'd'){ + current_icon = target.childNodes[0].innerText.slice(0,15) + current_collapsible = target.childNodes[0].innerText.slice(15, target.childNodes[0].innerText.length) + if(current_collapsible === ''){ + current_collapsible = target.childNodes[0].parentNode.innerText + .replace('\n','').slice(15, target.childNodes[0].parentNode.innerText.replace('\n','').length) + } + } + else{ + current_icon = target.childNodes[0].innerText.slice(0,13) + current_collapsible = target.childNodes[0].innerText.slice(13, target.childNodes[0].innerText.length) + if(current_collapsible === ''){ + current_collapsible = target.childNodes[0].parentNode.innerText + .replace('\n','').slice(15, target.childNodes[0].parentNode.innerText.replace('\n','').length) + } + } + + if (current_icon === 'arrow_drop_down') { + if ((current_collapsible !== "Instituição de Ensino" && current_collapsible !== "Curso")) { + this.createRoute(current_collapsible, type) + } + } + } + } + + updateCharts() { + var content = document.getElementById(type); + var openCharts = content.querySelectorAll('li.active'); + openCharts = [].map.call(openCharts, function(obj) { + var text = obj.childNodes[0].innerText.replace("arrow_drop_up", ""); + if(text === 'Curso' && document.getElementById("no_curso") !== null) + document.getElementById("no_curso").style.display = "none"; + else if ( text === 'Instituição de Ensino' && document.getElementById("no_ies") !== null) + document.getElementById("no_ies").style.display = "none"; + else + return text; + }); + for(let i = 0; i < openCharts.length; i++) { + if(openCharts[i] !== null && openCharts[i] !== undefined){ + this.createRoute(openCharts[i].replace('\n','')) + } + } + } + + + getDDValues(newValue) { + var aux = this.state + if(newValue.id === 'regiao'+type || newValue.id === 'estado'+type) + newValue.id = newValue.id.replace(type, ''); + + if (newValue.value === 'Todas as regiões') { + aux.ddValues['regiao'] = null; + aux.ddValues['estado'] = null; + } else if (newValue.value === 'TD') { + aux.ddValues['estado'] = null; + } else { + if(newValue.id === 'estado') { + aux.ddValues['estado'] = newValue.value + aux.ddValues['regiao'] = getRegionState(newValue.value); + } else if(newValue.id === 'regiao') { + aux.ddValues['estado'] = null; + aux.ddValues['regiao'] = newValue.value + } + } + this.setState({ + aux + }); + } + + getData(e) { + this.updateCharts() +} + +getCampi(data) { + var unique = ([ ...new Set(data.map(item => item.co_local_oferta))]); + var campi = [] + var campiNames = [] + for(let i = 0; i < unique.length; i++){ + let aux = searchHash(unique[i], data, 'co_local_oferta',"Number") + aux = aux.sort(function(a, b){ + return a.no_ano_pesquisa > b.no_ano_pesquisa; + }); + for(let i = 0, j = 0; i < aux.length; i++, j++){ + for(;j < this.state.IESTotal.length;){ + if (aux[i].no_ano_pesquisa === this.state.IESTotal[j].no_ano_pesquisa){ + aux[i]['total_IES'] = this.state.IESTotal[j].total + aux[i]['percentage'] = aux[i]['total']*100/this.state.IESTotal[j].total + break; + } + else{ + j++ + } + } + } + campi.push(aux); + } + for(let i = 0; i < campi.length; i++){ + let maxValue = Math.max(...campi[i].map(o => o.no_ano_pesquisa)); + campiNames.push(searchHash(maxValue, campi[i], 'no_ano_pesquisa',"Number")[0]); + } + this.setState({campiNames: [{no_local_oferta:'Todos os campi', co_local_oferta:0}].concat(campiNames)}) + + return unique +} +saveAutocompleteContent(tagID, tagName){ + this.setState({ tagID: tagID, tagName: tagName }) + this.getCampiFromServer(tagID) +} +campiFilter(filter) { + let currentState = this.state.charts + if ( filter.value === '0' ){ + currentState['Instituição de Ensino'] = this.state.IESTotal; + } + else { + let aux = searchHash(filter.value,this.state.campi,'co_local_oferta',"Number") + aux = aux.sort(function(a, b){ + return a.no_ano_pesquisa > b.no_ano_pesquisa; + }); + currentState['Instituição de Ensino'] = aux; + } + this.setState({charts:currentState}) +} +getCampiFromServer(id){ + var route = `${type}?dims=cod_offer_location,name_offer_location&filter=institution_cod:${id}` + axios.get(`${serverURL}${route}`) + .then(res => { + const data = res.data.result + this.setState({ campi : data }); + }).catch(error => { + console.log(error) + }); +} + +} + +export default QuilombolaIndicator2; \ No newline at end of file diff --git a/src/enviroment.js b/src/enviroment.js index 15c5b6eb..ccb8143d 100644 --- a/src/enviroment.js +++ b/src/enviroment.js @@ -16,6 +16,8 @@ const patterns = { "cod_abaste_agua_domic_fam" : ["1","2","3","4","null","NA"], "cod_escoa_sanitario_domic_fam" : ["1","2","3","4","5","6","null","NA"], "cod_local_domic_fam" : ["1","2","null","NA"], + "year_none" :[], + "cod_agricultura_trab_memb": ["1","2"], "nu_percent_solicitado_financ": range(10, 100) } export function sleep (time) { -- GitLab From 00a8c211a606a99f120c130dd1fe3fd3b2c52349 Mon Sep 17 00:00:00 2001 From: Rafael S Castliho <rsc15@inf.ufpr.br> Date: Mon, 14 Jan 2019 09:44:50 -0200 Subject: [PATCH 02/23] update enviroments --- src/enviroment.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/enviroment.js b/src/enviroment.js index 675755dd..43043b9c 100644 --- a/src/enviroment.js +++ b/src/enviroment.js @@ -26,7 +26,7 @@ export function range(start, end) { } export function getServerURL() { - //return "http://smppirhomologa.c3sl.ufpr.br:4545/api/v1/" + //return "http://localhost:4000/api/v1/" //caso for fazer build para homologa, utilizar o return de baixo ao invés do de cima return "http://seppirhomologa.c3sl.ufpr.br/data/api/v1/" } -- GitLab From 0a3fbd59c80651f09a5590e8c3c9cf41c6549256 Mon Sep 17 00:00:00 2001 From: Rafael S Castliho <rsc15@inf.ufpr.br> Date: Fri, 18 Jan 2019 11:42:14 -0200 Subject: [PATCH 03/23] created cards for EIXO2 --- src/SubPages/QuilombolaIndicator2.js | 106 +++++++++++++++++++++++++-- src/SubPages/QuotasFies.js | 13 ++-- src/enviroment.js | 7 +- 3 files changed, 112 insertions(+), 14 deletions(-) diff --git a/src/SubPages/QuilombolaIndicator2.js b/src/SubPages/QuilombolaIndicator2.js index eb23f187..adb6e482 100644 --- a/src/SubPages/QuilombolaIndicator2.js +++ b/src/SubPages/QuilombolaIndicator2.js @@ -5,8 +5,9 @@ import { Collapsible, Collection, CollectionItem } from 'react-materialize' import CollapsibleContainer from '../Components/CollapsibleContainer'; import './Styles/QuilombolaIndicator1.css'; import axios from 'axios'; -import { getServerURL, organizeJson, getRegionState, deactivateLoadingAnimation, getStateName, searchHash } from '../enviroment' +import { getServerURL, organizeJson, getRegionState, deactivateLoadingAnimation, getStateName, searchHash, createIntervals } from '../enviroment' import BuildStackedBar from '../Charts/BuildStackedBar'; +//import BuildBar from '../Charts/BuildBar'; import Loading from '../Components/Loading'; import Cookies from 'universal-cookie'; @@ -16,8 +17,20 @@ var contrastCK = new Cookies(); var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "cad_unico"; - - +const extrativismo = { + '1' : 'sim', + '2' : 'não', + 'null' : 'indefinido', + 'NA' : 'Não informado', +} +const pbf = { + '0' : 'não', + '1' : 'sim', + 'null' : 'indefinido', +} +const totalrenda = { + 'total': 'Total', +} class QuilombolaIndicator2 extends Component { constructor(props) { super(props); @@ -68,13 +81,84 @@ class QuilombolaIndicator2 extends Component { <Collapsible onClick={this.getHeader}> <CollapsibleContainer id={`${contrastString}redCollapsible`} header='Extrativismo'> <div id={'Extrativismo'+type}> + <div id={'extrativism-info'}> + <Collection> + <CollectionItem> + O extrativismo é a principal atividade de subsistência das famÃlias quilombolas. + </CollectionItem> + </Collection> + </div> <BuildStackedBar dataKey='Ano' data={organizeJson(this.state.charts['Extrativismo'], "cod_agricultura_trab_memb", "ano_pesquisa")} + customKeys={extrativismo} /> </div> <Loading/> </CollapsibleContainer> + <CollapsibleContainer id={`${contrastString}redCollapsible`} header='Bolsa FamÃlia'> + <div id={'Bolsa_Familia'+type}> + <div id={'bolsafamilia-info'}> + <Collection> + <CollectionItem> + A transferência de renda por meio da Bolsa FamÃlia tem ampla cobertura sobre as famÃlias quilombolas. + </CollectionItem> + </Collection> + </div> + <BuildStackedBar + dataKey='Ano' + data={organizeJson(this.state.charts['Bolsa FamÃlia'], "marc_pbf", "ano_pesquisa")} + customKeys={pbf} + /> + </div> + <Loading/> + </CollapsibleContainer> + <CollapsibleContainer header='Renda média per capita' id={`${contrastString}redCollapsible`} > + <div id={'Familia'}> + <div id={'collection-info'}> + <Collection> + <CollectionItem> + O gráfico abaixo exibe as rendas média per capita das famÃlias quilombolas em faixas de valores. + As faixas de valores estão em Reais (R$). + Desta forma, uma faixa 0 - 400 indica que a famÃlia recebia entre R$0,00 e R$400,00 + </CollectionItem> + </Collection> + </div> + <BuildStackedBar + dataKey={'ano_pesquisa'} + data={this.state.charts['Renda média per capita']} + customKeys={totalrenda} + /> + </div> + <Loading/> + </CollapsibleContainer> + <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Porcentagem de renda'> + <div> + <p className="center-align" style={{fontSize:16}}> + <b>Mova o seletor abaixo para escolher a porcentagem de financiamento a ser exibida</b> + </p> + <p className="range-field"> + <input + id={"percent"+type} + defaultValue={10} + type="range" + name="percent" + min="10" + max="100" + onChange={this.updatePercent} + /> + </p> + <h6>Exibindo a quantidade de quilombolas com <b>{this.state.percent}%</b> de financiamento do FIES.</h6> + + <BuildStackedBar + dataKey={'ano_pesquisa'} + data={organizeJson(this.state.charts['Porcentagem de renda'])} + // visited={this.props.visited} + // percent={this.state.percent} + /> + </div> + <Loading /> + </CollapsibleContainer> </Collapsible> </Col> </Row> @@ -126,7 +210,10 @@ class QuilombolaIndicator2 extends Component { .then(res => { const data = res.data.result var temp = this.state.charts - temp[chart.trim()] = data + if(chart === 'Renda média per capita') + temp[chart] = createIntervals(data, 'vlr_renda_media_fam', 400, 'ano_pesquisa') + else + temp[chart.trim()] = data if (!(Object.values(temp).indexOf(true) > -1)){ this.setState({ defaultData : temp }); deactivateLoadingAnimation(chart, type); @@ -151,7 +238,16 @@ class QuilombolaIndicator2 extends Component { switch (head) { //count pega informações da familia, sem count são pegas as informações por pessoa case 'Extrativismo': - route = type+"?dims=year,cod_agricultura_trab_memb&filter=quilombola_family:\"1\"" + route = type+"?dims=year,cod_agriculture_job&filter=quilombola_family:\"1\"" + break; + case 'Bolsa FamÃlia': + route = type+"_count?dims=year,cod_home_bolsa_familia&filter=quilombola_family:\"1\"" + break; + case 'Renda média per capita': + route = type+"_count?dims=year,per_capita_income&quilombola_family:\"1\""; //Colocar filtro aqui + break; + case 'Porcentagem de renda': + route = type+"_count?dims=year,per_capita_income&quilombola_family:\"1\""; //Colocar filtro aqui break; default: console.log("404"); diff --git a/src/SubPages/QuotasFies.js b/src/SubPages/QuotasFies.js index 5fcb3471..7cc78330 100644 --- a/src/SubPages/QuotasFies.js +++ b/src/SubPages/QuotasFies.js @@ -209,12 +209,13 @@ class QuotasFies extends Component { if(chart !== 'Curso' && chart !== 'Instituição de Ensino') axios.get(`${serverURL}${defaultData}`) .then(res => { - const data = res.data.result - var temp = this.state.charts - temp[chart] = data - if (!(Object.values(temp).indexOf(true) > -1)) - this.setState({ defaultData : temp }); - deactivateLoadingAnimation(chart, type) + console.log(res) + const data = res.data.result + var temp = this.state.charts + temp[chart.trim()] = data + if (!(Object.values(temp).indexOf(true) > -1)) + this.setState({ defaultData : temp }); + deactivateLoadingAnimation(chart, type) }); } diff --git a/src/enviroment.js b/src/enviroment.js index ccb8143d..4dd6e7b3 100644 --- a/src/enviroment.js +++ b/src/enviroment.js @@ -17,7 +17,8 @@ const patterns = { "cod_escoa_sanitario_domic_fam" : ["1","2","3","4","5","6","null","NA"], "cod_local_domic_fam" : ["1","2","null","NA"], "year_none" :[], - "cod_agricultura_trab_memb": ["1","2"], + "cod_agricultura_trab_memb": ["1","2","null","NA"], + "marc_pbf" : ["0","1","null"], "nu_percent_solicitado_financ": range(10, 100) } export function sleep (time) { @@ -207,7 +208,6 @@ export function organizeJson(data, uniqueParameter, yearParameter='no_ano_pesqui groups[item[yearParameter]] = [item]; } }); - if(uniqueParameter === 'tipo_cota'){ for(let key in groups) { aux = {}; @@ -224,7 +224,8 @@ export function organizeJson(data, uniqueParameter, yearParameter='no_ano_pesqui for(let key in groups) { aux = {}; for(let i = 0; i < groups[key].length; i++){ - groups[key][i].ds_raca_cor = "Sem informação" + if (groups[key][i].ds_raca_cor === null) + groups[key][i].ds_raca_cor = "Sem informação" aux[groups[key][i][uniqueParameter]] = groups[key][i].total } aux['Ano'] = parseInt(key,10); -- GitLab From 0450c3e2b44e3a1c9d5d437d1e20f9ca9b34b145 Mon Sep 17 00:00:00 2001 From: Rafael S Castilho <rsc15@inf.ufpr.br> Date: Mon, 11 Feb 2019 10:43:48 -0200 Subject: [PATCH 04/23] Quilombolas indicator --- LICENSE.md | 674 ++++++++++++++++++ src/About.js | 22 + src/AfricanOrigin.js | 22 + src/App.css | 22 + src/App.js | 22 + src/Charts/BuildArea.js | 22 + src/Charts/BuildBar.js | 22 + src/Charts/BuildBarPNAD.js | 22 + src/Charts/BuildBiaxialBars.js | 22 + src/Charts/BuildLine.js | 22 + src/Charts/BuildLineNotFixed.js | 22 + src/Charts/BuildPie.js | 22 + src/Charts/BuildStackedBar.js | 22 + src/Charts/Styles/BuildStackedBar.css | 22 + src/Components/AppFooter.js | 22 + src/Components/AppModal.js | 22 + src/Components/Autocomplete.js | 22 + src/Components/AutocompleteApp.js | 22 + src/Components/BarraBrasil.js | 22 + src/Components/CardFooter.js | 22 + src/Components/CollapsibleContainer.js | 22 + src/Components/ColorfulBar.js | 22 + src/Components/ContactForm.js | 22 + src/Components/ContrastBar.js | 22 + src/Components/DropdownCampi.js | 22 + src/Components/DropdownControl.js | 22 + src/Components/Fraction.js | 22 + src/Components/GrayBar.js | 22 + src/Components/HeatMap.js | 22 + src/Components/Loading.js | 22 + src/Components/MainBanner.js | 22 + src/Components/MainCard.js | 22 + src/Components/Map.js | 22 + src/Components/MapPanel.js | 22 + src/Components/MultiSelector.js | 22 + src/Components/NavigationBar.js | 22 + src/Components/Partner.js | 22 + src/Components/Table.js | 22 + src/Components/UfBar.js | 22 + src/Components/ValueBar.js | 22 + src/MainPage.js | 22 + src/Maps.js | 22 + src/Quilombola.js | 22 + src/Quilombolas.js | 22 + src/RacialQuotas.js | 22 + src/Styles/About.css | 22 + src/Styles/AfricanOrigin.css | 22 + src/Styles/AppFooter.css | 22 + src/Styles/AppModal.css | 22 + src/Styles/Autocomplete.css | 22 + src/Styles/AutocompleteApp.css | 22 + src/Styles/BarraBrasil.css | 22 + src/Styles/CardFooter.css | 22 + src/Styles/CollapsibleContainer.css | 22 + src/Styles/ColorfulBar.css | 22 + src/Styles/ContactForm.css | 22 + src/Styles/ContrastBar.css | 22 + src/Styles/DropdownControl.css | 22 + src/Styles/Fraction.css | 22 + src/Styles/GrayBar.css | 22 + src/Styles/Loading.css | 22 + src/Styles/MainBanner.css | 22 + src/Styles/MainCard.css | 22 + src/Styles/MainPage.css | 22 + src/Styles/MapPanel.css | 22 + src/Styles/Maps.css | 22 + src/Styles/MultiSelector.css | 22 + src/Styles/NavigationBar.css | 22 + src/Styles/Quilombolas.css | 22 + src/Styles/RacialQuotas.css | 22 + src/Styles/Table.css | 22 + src/Styles/UfBar.css | 22 + src/Styles/ValueBar.css | 22 + src/Styles/Youth.css | 22 + src/SubPages/AfricanCulture.js | 22 + src/SubPages/AfricanRights.js | 22 + src/SubPages/AfricanSustainability.js | 22 + src/SubPages/Eixo1.js | 22 + src/SubPages/Eixo2.js | 22 + src/SubPages/Eixo3.js | 22 + src/SubPages/Eixo4.js | 22 + src/SubPages/MapsCommunities.js | 22 + src/SubPages/MapsYouth.js | 22 + src/SubPages/QuilombolaAbout.js | 22 + src/SubPages/QuilombolaIndicator1.js | 22 + src/SubPages/QuilombolaIndicator2.js | 34 +- src/SubPages/QuilombolaPresentation.js | 22 + src/SubPages/QuotasAdmission.js | 32 +- src/SubPages/QuotasEducation.js | 22 + src/SubPages/QuotasEvader.js | 33 +- src/SubPages/QuotasExtracurricularAct.js | 32 +- src/SubPages/QuotasFies.js | 23 +- src/SubPages/QuotasGraduate.js | 32 +- src/SubPages/QuotasLoan.js | 32 +- src/SubPages/QuotasOfferVacancies.js | 22 + src/SubPages/QuotasPROUNI.js | 22 + src/SubPages/QuotasSocialSupport.js | 32 +- src/SubPages/Styles/AfricanRights.css | 22 + src/SubPages/Styles/Eixo1.css | 22 + src/SubPages/Styles/Eixo2.css | 22 + src/SubPages/Styles/Eixo3.css | 22 + src/SubPages/Styles/Eixo4.css | 22 + src/SubPages/Styles/MapsCommunities.css | 22 + src/SubPages/Styles/MapsYouth.css | 22 + src/SubPages/Styles/QuilombolaAbout.css | 22 + src/SubPages/Styles/QuilombolaIndicator1.css | 22 + .../Styles/QuilombolaPresentation.css | 22 + src/SubPages/Styles/QuotasAdmission.css | 22 + src/SubPages/Styles/QuotasEducation.css | 22 + src/SubPages/Styles/QuotasEvader.css | 22 + .../Styles/QuotasExtracurricularAct.css | 22 + src/SubPages/Styles/QuotasFies.css | 22 + src/SubPages/Styles/QuotasGraduate.css | 22 + src/SubPages/Styles/QuotasLoan.css | 22 + src/SubPages/Styles/QuotasOfferVacancies.css | 22 + src/SubPages/Styles/QuotasPROUNI.css | 22 + src/SubPages/Styles/QuotasSocialSupport.css | 22 + src/SubPages/Styles/YouthEducation.css | 22 + src/SubPages/Styles/YouthJob.css | 22 + src/SubPages/Styles/YouthPresentation.css | 22 + src/SubPages/Styles/YouthVulnerabilities.css | 22 + src/SubPages/YouthAbout.js | 22 + src/SubPages/YouthEducation.js | 22 + src/SubPages/YouthJob.js | 22 + src/SubPages/YouthPresentation.js | 22 + src/SubPages/YouthVulnerabilities.js | 22 + src/Youth.js | 22 + src/enviroment.js | 27 +- src/index.css | 22 + src/index.js | 22 + src/maps/br.js | 22 + src/maps/colors.css | 22 + src/maps/heatbr.js | 22 + src/maps/heatcolors.css | 22 + src/registerServiceWorker.js | 22 + 135 files changed, 3686 insertions(+), 15 deletions(-) create mode 100644 LICENSE.md diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..9e419e04 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,674 @@ +GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. \ No newline at end of file diff --git a/src/About.js b/src/About.js index da70e574..28ed5eeb 100644 --- a/src/About.js +++ b/src/About.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import NavigationBar from './Components/NavigationBar' import AppFooter from './Components/AppFooter' diff --git a/src/AfricanOrigin.js b/src/AfricanOrigin.js index 1d1e1bcb..1e8da6ce 100644 --- a/src/AfricanOrigin.js +++ b/src/AfricanOrigin.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import NavigationBar from './Components/NavigationBar'; import AfricanCulture from './SubPages/AfricanCulture'; diff --git a/src/App.css b/src/App.css index 30afdc00..2b02c665 100644 --- a/src/App.css +++ b/src/App.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /*.App { text-align: center; } diff --git a/src/App.js b/src/App.js index 1fe8290d..c95cace2 100644 --- a/src/App.js +++ b/src/App.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { BrowserRouter as Router, Route } from 'react-router-dom' import './App.css'; diff --git a/src/Charts/BuildArea.js b/src/Charts/BuildArea.js index e71fb5b6..1473684b 100644 --- a/src/Charts/BuildArea.js +++ b/src/Charts/BuildArea.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts'; diff --git a/src/Charts/BuildBar.js b/src/Charts/BuildBar.js index e1b8a977..3a3775c9 100644 --- a/src/Charts/BuildBar.js +++ b/src/Charts/BuildBar.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { ResponsiveContainer, Bar, BarChart, XAxis, YAxis, CartesianGrid, Tooltip, Legend } from 'recharts'; diff --git a/src/Charts/BuildBarPNAD.js b/src/Charts/BuildBarPNAD.js index 5c88bf4e..31942f9b 100644 --- a/src/Charts/BuildBarPNAD.js +++ b/src/Charts/BuildBarPNAD.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { ResponsiveContainer, Bar, BarChart, XAxis, YAxis, CartesianGrid, Tooltip, Legend } from 'recharts'; diff --git a/src/Charts/BuildBiaxialBars.js b/src/Charts/BuildBiaxialBars.js index fcde4728..81707ea7 100644 --- a/src/Charts/BuildBiaxialBars.js +++ b/src/Charts/BuildBiaxialBars.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Bar, BarChart, Tooltip, Legend, ResponsiveContainer, XAxis, YAxis, CartesianGrid } from 'recharts'; diff --git a/src/Charts/BuildLine.js b/src/Charts/BuildLine.js index 41511dda..2d5129f6 100644 --- a/src/Charts/BuildLine.js +++ b/src/Charts/BuildLine.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { ResponsiveContainer, Line, LineChart, XAxis, YAxis, CartesianGrid, Tooltip, Legend } from 'recharts'; diff --git a/src/Charts/BuildLineNotFixed.js b/src/Charts/BuildLineNotFixed.js index c081a067..62a6d828 100644 --- a/src/Charts/BuildLineNotFixed.js +++ b/src/Charts/BuildLineNotFixed.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { ResponsiveContainer, Line, LineChart, XAxis, YAxis, CartesianGrid, Tooltip, Legend } from 'recharts'; diff --git a/src/Charts/BuildPie.js b/src/Charts/BuildPie.js index 33e01e0b..d0944b16 100644 --- a/src/Charts/BuildPie.js +++ b/src/Charts/BuildPie.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Pie, Cell, PieChart, Tooltip, Legend, ResponsiveContainer } from 'recharts'; diff --git a/src/Charts/BuildStackedBar.js b/src/Charts/BuildStackedBar.js index 515d5835..c0b26647 100644 --- a/src/Charts/BuildStackedBar.js +++ b/src/Charts/BuildStackedBar.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer} from "recharts"; import './Styles/BuildStackedBar.css'; diff --git a/src/Charts/Styles/BuildStackedBar.css b/src/Charts/Styles/BuildStackedBar.css index ba2b6971..abbf86be 100644 --- a/src/Charts/Styles/BuildStackedBar.css +++ b/src/Charts/Styles/BuildStackedBar.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .tooltipCenter { width:135px; text-align:center; diff --git a/src/Components/AppFooter.js b/src/Components/AppFooter.js index dc3e1b7b..8dcb4b58 100644 --- a/src/Components/AppFooter.js +++ b/src/Components/AppFooter.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Footer } from 'react-materialize' import ColorfulBar from './ColorfulBar' diff --git a/src/Components/AppModal.js b/src/Components/AppModal.js index d6a7fcbb..d04f1d9c 100644 --- a/src/Components/AppModal.js +++ b/src/Components/AppModal.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Modal, Button } from 'react-materialize' diff --git a/src/Components/Autocomplete.js b/src/Components/Autocomplete.js index 72541246..1002485d 100644 --- a/src/Components/Autocomplete.js +++ b/src/Components/Autocomplete.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import ReactTags from 'react-tag-autocomplete' diff --git a/src/Components/AutocompleteApp.js b/src/Components/AutocompleteApp.js index 1164a6eb..57d3b4a8 100644 --- a/src/Components/AutocompleteApp.js +++ b/src/Components/AutocompleteApp.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Row, Col, Icon, Preloader, Button } from 'react-materialize' import axios from 'axios'; diff --git a/src/Components/BarraBrasil.js b/src/Components/BarraBrasil.js index 0acc9a79..8cbaafe4 100644 --- a/src/Components/BarraBrasil.js +++ b/src/Components/BarraBrasil.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import '../Styles/BarraBrasil.css' import Cookies from 'universal-cookie'; diff --git a/src/Components/CardFooter.js b/src/Components/CardFooter.js index b1c18895..fe6a8ee8 100644 --- a/src/Components/CardFooter.js +++ b/src/Components/CardFooter.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Icon, Row, Col } from 'react-materialize' diff --git a/src/Components/CollapsibleContainer.js b/src/Components/CollapsibleContainer.js index ee0cef16..a9ea3946 100644 --- a/src/Components/CollapsibleContainer.js +++ b/src/Components/CollapsibleContainer.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React from 'react'; import { CollapsibleItem } from 'react-materialize'; import '../Styles/CollapsibleContainer.css'; diff --git a/src/Components/ColorfulBar.js b/src/Components/ColorfulBar.js index f52f5972..39d77abb 100644 --- a/src/Components/ColorfulBar.js +++ b/src/Components/ColorfulBar.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Row, Col } from 'react-materialize' diff --git a/src/Components/ContactForm.js b/src/Components/ContactForm.js index f2cb5383..0cbb5cfb 100644 --- a/src/Components/ContactForm.js +++ b/src/Components/ContactForm.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Row, Input, Icon, Button } from 'react-materialize' import '../Styles/ContactForm.css' diff --git a/src/Components/ContrastBar.js b/src/Components/ContrastBar.js index f1ec444d..790deecd 100644 --- a/src/Components/ContrastBar.js +++ b/src/Components/ContrastBar.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import '../Styles/ContrastBar.css' import Cookies from 'universal-cookie'; diff --git a/src/Components/DropdownCampi.js b/src/Components/DropdownCampi.js index 8e68b552..36035be5 100644 --- a/src/Components/DropdownCampi.js +++ b/src/Components/DropdownCampi.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Row, Col, Input } from 'react-materialize'; import { getDDValue } from '../enviroment'; diff --git a/src/Components/DropdownControl.js b/src/Components/DropdownControl.js index 0fe791e9..12440474 100644 --- a/src/Components/DropdownControl.js +++ b/src/Components/DropdownControl.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Row, Input, Button, Icon } from 'react-materialize'; import axios from 'axios'; diff --git a/src/Components/Fraction.js b/src/Components/Fraction.js index ffc6506f..d80ce364 100644 --- a/src/Components/Fraction.js +++ b/src/Components/Fraction.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import '../Styles/Fraction.css' diff --git a/src/Components/GrayBar.js b/src/Components/GrayBar.js index c3151c4f..d50d6c1d 100644 --- a/src/Components/GrayBar.js +++ b/src/Components/GrayBar.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import '../Styles/GrayBar.css' diff --git a/src/Components/HeatMap.js b/src/Components/HeatMap.js index 0e7c5d9a..d11a1ec6 100644 --- a/src/Components/HeatMap.js +++ b/src/Components/HeatMap.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import HeatMapBr from '../maps/heatbr'; import { getStateId } from '../enviroment'; diff --git a/src/Components/Loading.js b/src/Components/Loading.js index e607fa11..848d6602 100644 --- a/src/Components/Loading.js +++ b/src/Components/Loading.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Col, Row, Preloader } from 'react-materialize' diff --git a/src/Components/MainBanner.js b/src/Components/MainBanner.js index 2e6d0fe1..045a3131 100644 --- a/src/Components/MainBanner.js +++ b/src/Components/MainBanner.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import logo from '../Images/SMPPIRBanner.png'; import contrastLogo from '../Images/SMPPIRBannerContrast.png' diff --git a/src/Components/MainCard.js b/src/Components/MainCard.js index b52c1097..feea7f9a 100644 --- a/src/Components/MainCard.js +++ b/src/Components/MainCard.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Card, CardTitle } from 'react-materialize' import Cookies from 'universal-cookie'; diff --git a/src/Components/Map.js b/src/Components/Map.js index 13ae6842..8813a866 100644 --- a/src/Components/Map.js +++ b/src/Components/Map.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import MapBr from '../maps/br'; import { getStateId } from '../enviroment'; diff --git a/src/Components/MapPanel.js b/src/Components/MapPanel.js index 16f0f9e9..11d9989c 100644 --- a/src/Components/MapPanel.js +++ b/src/Components/MapPanel.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Row, Col, Card, Button, Icon } from 'react-materialize' import DropdownControl from './DropdownControl' diff --git a/src/Components/MultiSelector.js b/src/Components/MultiSelector.js index 890d1998..b4201779 100644 --- a/src/Components/MultiSelector.js +++ b/src/Components/MultiSelector.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Row, Input, Button, Icon } from 'react-materialize' import { searchHash } from '../enviroment' diff --git a/src/Components/NavigationBar.js b/src/Components/NavigationBar.js index 05c70371..0217ef2f 100644 --- a/src/Components/NavigationBar.js +++ b/src/Components/NavigationBar.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import logo from '../Images/PortalLogo.png'; import logoContrast from '../Images/PortalLogoContrast.png' diff --git a/src/Components/Partner.js b/src/Components/Partner.js index 8d58112b..3837141a 100644 --- a/src/Components/Partner.js +++ b/src/Components/Partner.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Row, Col } from 'react-materialize' diff --git a/src/Components/Table.js b/src/Components/Table.js index 3e9752dc..1612bbfd 100644 --- a/src/Components/Table.js +++ b/src/Components/Table.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Icon } from 'react-materialize'; diff --git a/src/Components/UfBar.js b/src/Components/UfBar.js index 9ba67c36..027ef1b7 100644 --- a/src/Components/UfBar.js +++ b/src/Components/UfBar.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import { Row, Col } from 'react-materialize' diff --git a/src/Components/ValueBar.js b/src/Components/ValueBar.js index 801af5b3..baa70443 100644 --- a/src/Components/ValueBar.js +++ b/src/Components/ValueBar.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import '../Styles/ValueBar.css' diff --git a/src/MainPage.js b/src/MainPage.js index 14403dab..9139330a 100644 --- a/src/MainPage.js +++ b/src/MainPage.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import MainBanner from './Components/MainBanner' import AppFooter from './Components/AppFooter' diff --git a/src/Maps.js b/src/Maps.js index 49422750..c4138861 100644 --- a/src/Maps.js +++ b/src/Maps.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import NavigationBar from './Components/NavigationBar'; import MapsCommunities from './SubPages/MapsCommunities'; diff --git a/src/Quilombola.js b/src/Quilombola.js index 65e7631a..4602740a 100644 --- a/src/Quilombola.js +++ b/src/Quilombola.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /* Esse arquivo contém dados historicos sobre quilombolas, como se fosse um "quilombolas 2.0" */ import React, { Component } from 'react'; import NavigationBar from './Components/NavigationBar' diff --git a/src/Quilombolas.js b/src/Quilombolas.js index e45e8362..eb26bc6c 100644 --- a/src/Quilombolas.js +++ b/src/Quilombolas.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import NavigationBar from './Components/NavigationBar' import Eixo1 from './SubPages/Eixo1' diff --git a/src/RacialQuotas.js b/src/RacialQuotas.js index f9df0dd4..9768de70 100644 --- a/src/RacialQuotas.js +++ b/src/RacialQuotas.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import NavigationBar from './Components/NavigationBar'; import AppFooter from './Components/AppFooter'; diff --git a/src/Styles/About.css b/src/Styles/About.css index 4f0b803d..ce1a1f5d 100644 --- a/src/Styles/About.css +++ b/src/Styles/About.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .mainPageTealBlue{ background-color: #0e3958; } diff --git a/src/Styles/AfricanOrigin.css b/src/Styles/AfricanOrigin.css index 7270aaf3..1d46c625 100644 --- a/src/Styles/AfricanOrigin.css +++ b/src/Styles/AfricanOrigin.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .mainPageDarkBlueTab{ background-color: #0e3958; } diff --git a/src/Styles/AppFooter.css b/src/Styles/AppFooter.css index 2cec67e4..5abc37a1 100644 --- a/src/Styles/AppFooter.css +++ b/src/Styles/AppFooter.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + img.hoverColor { filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); /* Firefox 3.5+ */ diff --git a/src/Styles/AppModal.css b/src/Styles/AppModal.css index 5f5da89f..882fd32e 100644 --- a/src/Styles/AppModal.css +++ b/src/Styles/AppModal.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .quotasGreenBg{ background-color: #78752e; } diff --git a/src/Styles/Autocomplete.css b/src/Styles/Autocomplete.css index 58f854df..e69cf391 100644 --- a/src/Styles/Autocomplete.css +++ b/src/Styles/Autocomplete.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .react-tags { position: relative; padding: 6px 0 0 6px; diff --git a/src/Styles/AutocompleteApp.css b/src/Styles/AutocompleteApp.css index 7a4411ef..cf13bd5c 100644 --- a/src/Styles/AutocompleteApp.css +++ b/src/Styles/AutocompleteApp.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .AutocompleteApp{ margin:10px; } diff --git a/src/Styles/BarraBrasil.css b/src/Styles/BarraBrasil.css index 44e6df58..223d0cc5 100644 --- a/src/Styles/BarraBrasil.css +++ b/src/Styles/BarraBrasil.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + #barra-brasil{ background: #7F7F7F; height: 20px; diff --git a/src/Styles/CardFooter.css b/src/Styles/CardFooter.css index cf296419..091939d0 100644 --- a/src/Styles/CardFooter.css +++ b/src/Styles/CardFooter.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + a { color: #000; } diff --git a/src/Styles/CollapsibleContainer.css b/src/Styles/CollapsibleContainer.css index 01a6ed3e..824c8d43 100644 --- a/src/Styles/CollapsibleContainer.css +++ b/src/Styles/CollapsibleContainer.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /* Collapsible CSS */ .collapsible-header { background-color: #78752e; diff --git a/src/Styles/ColorfulBar.css b/src/Styles/ColorfulBar.css index 03b6077b..9076d64c 100644 --- a/src/Styles/ColorfulBar.css +++ b/src/Styles/ColorfulBar.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + #color1{ background-color: #363b1b; } diff --git a/src/Styles/ContactForm.css b/src/Styles/ContactForm.css index 7891ea60..688070b8 100644 --- a/src/Styles/ContactForm.css +++ b/src/Styles/ContactForm.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .emailForm{ vertical-align: middle; } diff --git a/src/Styles/ContrastBar.css b/src/Styles/ContrastBar.css index 6c4070cf..440f849e 100644 --- a/src/Styles/ContrastBar.css +++ b/src/Styles/ContrastBar.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .contrastButton{ border: none; padding: 0; diff --git a/src/Styles/DropdownControl.css b/src/Styles/DropdownControl.css index 17f02cf1..db9ac35c 100644 --- a/src/Styles/DropdownControl.css +++ b/src/Styles/DropdownControl.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /*Switch CSS*/ .switch label input[type=checkbox]:checked+.lever { diff --git a/src/Styles/Fraction.css b/src/Styles/Fraction.css index 349c75c8..b642a773 100644 --- a/src/Styles/Fraction.css +++ b/src/Styles/Fraction.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .frac { display: inline-block; position: relative; vertical-align: middle; diff --git a/src/Styles/GrayBar.css b/src/Styles/GrayBar.css index aa90708a..fdef5b82 100644 --- a/src/Styles/GrayBar.css +++ b/src/Styles/GrayBar.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .grayBar{ background-color: #BBB; } diff --git a/src/Styles/Loading.css b/src/Styles/Loading.css index 58fdaa9f..09655ec6 100644 --- a/src/Styles/Loading.css +++ b/src/Styles/Loading.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .outerSearchNotice{ width:100%; diff --git a/src/Styles/MainBanner.css b/src/Styles/MainBanner.css index fd31836f..583665fb 100644 --- a/src/Styles/MainBanner.css +++ b/src/Styles/MainBanner.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + #mainBannerCard{ margin-top: 0px; } diff --git a/src/Styles/MainCard.css b/src/Styles/MainCard.css index 505c68aa..3793cdcf 100644 --- a/src/Styles/MainCard.css +++ b/src/Styles/MainCard.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .mainPageRed{ color: #ca3829; } diff --git a/src/Styles/MainPage.css b/src/Styles/MainPage.css index dbe9750f..15e1c1f2 100644 --- a/src/Styles/MainPage.css +++ b/src/Styles/MainPage.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /* #mainPage{ background-color: #ede9e3; } */ diff --git a/src/Styles/MapPanel.css b/src/Styles/MapPanel.css index f6da5813..ce801277 100644 --- a/src/Styles/MapPanel.css +++ b/src/Styles/MapPanel.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .mappanel-margin { margin-left: -10px; margin-right: -10px; diff --git a/src/Styles/Maps.css b/src/Styles/Maps.css index 698f1559..92bd8210 100644 --- a/src/Styles/Maps.css +++ b/src/Styles/Maps.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .mainPageOrangeTab{ background-color: #ea7c27; } diff --git a/src/Styles/MultiSelector.css b/src/Styles/MultiSelector.css index acfc0368..f9015caf 100644 --- a/src/Styles/MultiSelector.css +++ b/src/Styles/MultiSelector.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + #searchButtonSelector{ background-color: rgba(0,0,0,0.6); color: white; diff --git a/src/Styles/NavigationBar.css b/src/Styles/NavigationBar.css index 2ee6faf8..098c8729 100644 --- a/src/Styles/NavigationBar.css +++ b/src/Styles/NavigationBar.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + ul.z-depth-2{ box-shadow: none; } diff --git a/src/Styles/Quilombolas.css b/src/Styles/Quilombolas.css index d066522c..930fc334 100644 --- a/src/Styles/Quilombolas.css +++ b/src/Styles/Quilombolas.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .mainPageRedTab{ background-color: #ca3829; } diff --git a/src/Styles/RacialQuotas.css b/src/Styles/RacialQuotas.css index be67c16a..f2392993 100644 --- a/src/Styles/RacialQuotas.css +++ b/src/Styles/RacialQuotas.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + #mainPage{ background-color: #ede9e3; } diff --git a/src/Styles/Table.css b/src/Styles/Table.css index 9e17d38c..0486135b 100644 --- a/src/Styles/Table.css +++ b/src/Styles/Table.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .scrolltable{ display: block; overflow: auto; diff --git a/src/Styles/UfBar.css b/src/Styles/UfBar.css index 957052f7..b6ad89c9 100644 --- a/src/Styles/UfBar.css +++ b/src/Styles/UfBar.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + #uf-bar{ background-color: #EEE; } diff --git a/src/Styles/ValueBar.css b/src/Styles/ValueBar.css index e84ce72b..92263032 100644 --- a/src/Styles/ValueBar.css +++ b/src/Styles/ValueBar.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + #val-bar{ background-color: #EEE; padding: 5px 5px; diff --git a/src/Styles/Youth.css b/src/Styles/Youth.css index bba9eeec..053a8e87 100644 --- a/src/Styles/Youth.css +++ b/src/Styles/Youth.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .mainPageTealTab{ background-color: #0c6559; } diff --git a/src/SubPages/AfricanCulture.js b/src/SubPages/AfricanCulture.js index 0d0f09a1..e050aea5 100644 --- a/src/SubPages/AfricanCulture.js +++ b/src/SubPages/AfricanCulture.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import Cookies from 'universal-cookie'; import {Collapsible, Row, Col} from 'react-materialize'; diff --git a/src/SubPages/AfricanRights.js b/src/SubPages/AfricanRights.js index fb1c2b6a..1bdc171e 100644 --- a/src/SubPages/AfricanRights.js +++ b/src/SubPages/AfricanRights.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import Cookies from 'universal-cookie'; import {Collapsible, Row, Col} from 'react-materialize'; diff --git a/src/SubPages/AfricanSustainability.js b/src/SubPages/AfricanSustainability.js index 0cf53a51..3d153ee1 100644 --- a/src/SubPages/AfricanSustainability.js +++ b/src/SubPages/AfricanSustainability.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import Cookies from 'universal-cookie'; import {Collapsible, Row, Col, Collection, CollectionItem} from 'react-materialize'; diff --git a/src/SubPages/Eixo1.js b/src/SubPages/Eixo1.js index bf049890..24302706 100644 --- a/src/SubPages/Eixo1.js +++ b/src/SubPages/Eixo1.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Card,Row,Col, Button} from 'react-materialize'; import CardFooter from '../Components/CardFooter'; diff --git a/src/SubPages/Eixo2.js b/src/SubPages/Eixo2.js index dc35efe7..20e2f66e 100644 --- a/src/SubPages/Eixo2.js +++ b/src/SubPages/Eixo2.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Card,Row,Col,Button} from 'react-materialize'; import family from './icons/family.png'; diff --git a/src/SubPages/Eixo3.js b/src/SubPages/Eixo3.js index ea1158cc..41d8c18a 100644 --- a/src/SubPages/Eixo3.js +++ b/src/SubPages/Eixo3.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Card,Row,Col,Button} from 'react-materialize'; import coins from './icons/coins.png'; diff --git a/src/SubPages/Eixo4.js b/src/SubPages/Eixo4.js index 0f28f4a0..26efa6d8 100644 --- a/src/SubPages/Eixo4.js +++ b/src/SubPages/Eixo4.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Card,Row,Col,Button} from 'react-materialize'; import home from './icons/home.png'; diff --git a/src/SubPages/MapsCommunities.js b/src/SubPages/MapsCommunities.js index 67134732..6ace66a2 100644 --- a/src/SubPages/MapsCommunities.js +++ b/src/SubPages/MapsCommunities.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import Cookies from 'universal-cookie'; diff --git a/src/SubPages/MapsYouth.js b/src/SubPages/MapsYouth.js index 603bb4ee..2fb778a7 100644 --- a/src/SubPages/MapsYouth.js +++ b/src/SubPages/MapsYouth.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import Cookies from 'universal-cookie'; diff --git a/src/SubPages/QuilombolaAbout.js b/src/SubPages/QuilombolaAbout.js index d2212b5c..0d093e2c 100644 --- a/src/SubPages/QuilombolaAbout.js +++ b/src/SubPages/QuilombolaAbout.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import Cookies from 'universal-cookie'; import {Card} from 'react-materialize'; diff --git a/src/SubPages/QuilombolaIndicator1.js b/src/SubPages/QuilombolaIndicator1.js index 6f46624c..f9d62fa0 100644 --- a/src/SubPages/QuilombolaIndicator1.js +++ b/src/SubPages/QuilombolaIndicator1.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Col, Row } from 'react-materialize'; import MapPanel from '../Components/MapPanel'; diff --git a/src/SubPages/QuilombolaIndicator2.js b/src/SubPages/QuilombolaIndicator2.js index adb6e482..873b1f7d 100644 --- a/src/SubPages/QuilombolaIndicator2.js +++ b/src/SubPages/QuilombolaIndicator2.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Col, Row } from 'react-materialize'; import MapPanel from '../Components/MapPanel'; @@ -132,7 +154,7 @@ class QuilombolaIndicator2 extends Component { </div> <Loading/> </CollapsibleContainer> - <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Porcentagem de renda'> + {/* <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Porcentagem de renda'> <div> <p className="center-align" style={{fontSize:16}}> <b>Mova o seletor abaixo para escolher a porcentagem de financiamento a ser exibida</b> @@ -158,7 +180,7 @@ class QuilombolaIndicator2 extends Component { /> </div> <Loading /> - </CollapsibleContainer> + </CollapsibleContainer> */} </Collapsible> </Col> </Row> @@ -244,19 +266,19 @@ class QuilombolaIndicator2 extends Component { route = type+"_count?dims=year,cod_home_bolsa_familia&filter=quilombola_family:\"1\"" break; case 'Renda média per capita': - route = type+"_count?dims=year,per_capita_income&quilombola_family:\"1\""; //Colocar filtro aqui + route = type+"_count?dims=year,per_capita_income&filter=quilombola_family:\"1\""; //Colocar filtro aqui break; case 'Porcentagem de renda': - route = type+"_count?dims=year,per_capita_income&quilombola_family:\"1\""; //Colocar filtro aqui + route = type+"_count?dims=year,per_capita_income&filter=quilombola_family:\"1\""; //Colocar filtro aqui break; default: console.log("404"); } if (this.state.ddValues.estado !== null) { - route = route + "&filter=uf:" + this.state.ddValues.estado; + route = route + "uf:" + this.state.ddValues.estado; } else if (this.state.ddValues.regiao !== null) { - route = route + "&filter=region:" + this.state.ddValues.regiao; + route = route + "region:" + this.state.ddValues.regiao; } this.getDataFromServer(route, head); } diff --git a/src/SubPages/QuilombolaPresentation.js b/src/SubPages/QuilombolaPresentation.js index fc484b86..096efa96 100644 --- a/src/SubPages/QuilombolaPresentation.js +++ b/src/SubPages/QuilombolaPresentation.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import Cookies from 'universal-cookie'; diff --git a/src/SubPages/QuotasAdmission.js b/src/SubPages/QuotasAdmission.js index 148652f9..623cfc36 100644 --- a/src/SubPages/QuotasAdmission.js +++ b/src/SubPages/QuotasAdmission.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Col, Row } from 'react-materialize'; import { Collapsible } from 'react-materialize' @@ -18,6 +40,10 @@ var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "admission"; +const turnoK = { + 'null' : 'indefinido', +} + class QuotasAdmission extends Component { constructor(props) { super(props); @@ -73,7 +99,11 @@ class QuotasAdmission extends Component { <Collapsible onClick={this.getHeader}> <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Turno'> <div id={'Turno'+type}> - <BuildStackedBar dataKey='Ano' data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno")}/> + <BuildStackedBar + dataKey='Ano' + data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno")} + customKeys={turnoK} + /> </div> <Loading/> </CollapsibleContainer> diff --git a/src/SubPages/QuotasEducation.js b/src/SubPages/QuotasEducation.js index ca1f4501..76b3fc16 100644 --- a/src/SubPages/QuotasEducation.js +++ b/src/SubPages/QuotasEducation.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Col, Row, Card, Icon } from 'react-materialize'; import MapPanel from '../Components/MapPanel'; diff --git a/src/SubPages/QuotasEvader.js b/src/SubPages/QuotasEvader.js index b7034bdc..22b41c82 100644 --- a/src/SubPages/QuotasEvader.js +++ b/src/SubPages/QuotasEvader.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Col, Row } from 'react-materialize'; import MapPanel from '../Components/MapPanel'; @@ -20,6 +42,11 @@ var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "evader"; +const turnoK = { + 'null' : 'indefinido', +} + + class QuotasEvader extends Component { constructor(props) { super(props); @@ -82,7 +109,11 @@ class QuotasEvader extends Component { <Collapsible onClick={this.getHeader}> <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Turno'> <div id={'Turno'+type}> - <BuildStackedBar dataKey='Ano' data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno")} /> + <BuildStackedBar + dataKey='Ano' + data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno")} + customKeys={turnoK} + /> </div> <Loading/> </CollapsibleContainer> diff --git a/src/SubPages/QuotasExtracurricularAct.js b/src/SubPages/QuotasExtracurricularAct.js index 33b26d3c..b3821883 100644 --- a/src/SubPages/QuotasExtracurricularAct.js +++ b/src/SubPages/QuotasExtracurricularAct.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Col, Row } from 'react-materialize'; import { Collapsible } from 'react-materialize' @@ -18,6 +40,10 @@ var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "extracurricular_activities"; +const turnoK = { + 'null' : 'indefinido', +} + class QuotasExtracurricularAct extends Component { constructor(props) { super(props); @@ -75,7 +101,11 @@ class QuotasExtracurricularAct extends Component { <Collapsible onClick={this.getHeader}> <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Turno'> <div id={'Turno'+type}> - <BuildStackedBar dataKey='Ano' data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno")}/> + <BuildStackedBar + dataKey='Ano' + data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno")} + customKeys={turnoK} + /> </div> <Loading/> </CollapsibleContainer> diff --git a/src/SubPages/QuotasFies.js b/src/SubPages/QuotasFies.js index 7cc78330..d67bc878 100644 --- a/src/SubPages/QuotasFies.js +++ b/src/SubPages/QuotasFies.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Col, Row } from 'react-materialize'; import MapPanel from '../Components/MapPanel'; @@ -209,7 +231,6 @@ class QuotasFies extends Component { if(chart !== 'Curso' && chart !== 'Instituição de Ensino') axios.get(`${serverURL}${defaultData}`) .then(res => { - console.log(res) const data = res.data.result var temp = this.state.charts temp[chart.trim()] = data diff --git a/src/SubPages/QuotasGraduate.js b/src/SubPages/QuotasGraduate.js index ce8e945d..9c074efe 100644 --- a/src/SubPages/QuotasGraduate.js +++ b/src/SubPages/QuotasGraduate.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Col, Row } from 'react-materialize'; import MapPanel from '../Components/MapPanel'; @@ -20,6 +42,10 @@ var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "graduate"; +const turnoK = { + 'null' : 'indefinido', +} + class QuotasGraduate extends Component { constructor(props) { super(props); @@ -82,7 +108,11 @@ class QuotasGraduate extends Component { <Collapsible onClick={this.getHeader}> <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Turno'> <div id={'Turno'+type}> - <BuildStackedBar dataKey='Ano' data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno")}/> + <BuildStackedBar + dataKey='Ano' + data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno")} + customKeys={turnoK} + /> </div> <Loading/> </CollapsibleContainer> diff --git a/src/SubPages/QuotasLoan.js b/src/SubPages/QuotasLoan.js index f0e9f73b..b6c96745 100644 --- a/src/SubPages/QuotasLoan.js +++ b/src/SubPages/QuotasLoan.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Col, Row } from 'react-materialize'; import { Collapsible, Icon, Card } from 'react-materialize' @@ -24,6 +46,10 @@ const serverURL = getServerURL(); const type = "student_loans"; const tableClasses = "bordered striped highlight centered"; +const turnoK = { + 'null' : 'indefinido', +} + class QuotasLoan extends Component { constructor(props) { super(props); @@ -80,7 +106,11 @@ class QuotasLoan extends Component { <Collapsible onClick={this.getHeader}> <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Turno'> <div> - <BuildStackedBar dataKey='Ano' data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno", "no_ano_pesquisa")} /> + <BuildStackedBar + dataKey='Ano' + data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno", "no_ano_pesquisa")} + customKeys={turnoK} + /> </div> <Loading/> </CollapsibleContainer> diff --git a/src/SubPages/QuotasOfferVacancies.js b/src/SubPages/QuotasOfferVacancies.js index b449ec46..ff03bb34 100644 --- a/src/SubPages/QuotasOfferVacancies.js +++ b/src/SubPages/QuotasOfferVacancies.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import Cookies from 'universal-cookie'; import {Collapsible, Row, Col} from 'react-materialize'; diff --git a/src/SubPages/QuotasPROUNI.js b/src/SubPages/QuotasPROUNI.js index 3d327073..82dcfdf5 100644 --- a/src/SubPages/QuotasPROUNI.js +++ b/src/SubPages/QuotasPROUNI.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Col, Row } from 'react-materialize'; import MapPanel from '../Components/MapPanel'; diff --git a/src/SubPages/QuotasSocialSupport.js b/src/SubPages/QuotasSocialSupport.js index a308ab4c..09bf7aa7 100644 --- a/src/SubPages/QuotasSocialSupport.js +++ b/src/SubPages/QuotasSocialSupport.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Col, Row } from 'react-materialize'; import { Collapsible } from 'react-materialize' @@ -19,6 +41,10 @@ var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "social_support"; +const turnoK = { + 'null' : 'indefinido', +} + class QuotasSocialSupport extends Component { constructor(props) { super(props); @@ -74,7 +100,11 @@ class QuotasSocialSupport extends Component { <Collapsible onClick={this.getHeader}> <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Turno'> <div id={'Turno'+type}> - <BuildStackedBar dataKey='Ano' data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno")}/> + <BuildStackedBar + dataKey='Ano' + data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno")} + customKeys={turnoK} + /> </div> <Loading/> </CollapsibleContainer> diff --git a/src/SubPages/Styles/AfricanRights.css b/src/SubPages/Styles/AfricanRights.css index 33fc8ced..eb03c164 100644 --- a/src/SubPages/Styles/AfricanRights.css +++ b/src/SubPages/Styles/AfricanRights.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .quota-title-african-origin{ color: #0e3958; } diff --git a/src/SubPages/Styles/Eixo1.css b/src/SubPages/Styles/Eixo1.css index 4bc59f88..c0fc8b84 100644 --- a/src/SubPages/Styles/Eixo1.css +++ b/src/SubPages/Styles/Eixo1.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /*###################*/ /*ELEMENTOS DA PAGINA*/ .eixoHeaderQ{ diff --git a/src/SubPages/Styles/Eixo2.css b/src/SubPages/Styles/Eixo2.css index 0611c3b5..f1a56678 100644 --- a/src/SubPages/Styles/Eixo2.css +++ b/src/SubPages/Styles/Eixo2.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /*###################*/ /*ELEMENTOS DA PAGINA*/ .eixoHeaderQ{ diff --git a/src/SubPages/Styles/Eixo3.css b/src/SubPages/Styles/Eixo3.css index b74487fa..2433c17a 100644 --- a/src/SubPages/Styles/Eixo3.css +++ b/src/SubPages/Styles/Eixo3.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /*###################*/ /*ELEMENTOS DA PAGINA*/ .eixoHeader{ diff --git a/src/SubPages/Styles/Eixo4.css b/src/SubPages/Styles/Eixo4.css index afab1b56..a6fc98e0 100644 --- a/src/SubPages/Styles/Eixo4.css +++ b/src/SubPages/Styles/Eixo4.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /*###################*/ /*ELEMENTOS DA PAGINA*/ .eixoHeaderQ{ diff --git a/src/SubPages/Styles/MapsCommunities.css b/src/SubPages/Styles/MapsCommunities.css index e69de29b..4e46199e 100644 --- a/src/SubPages/Styles/MapsCommunities.css +++ b/src/SubPages/Styles/MapsCommunities.css @@ -0,0 +1,22 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + diff --git a/src/SubPages/Styles/MapsYouth.css b/src/SubPages/Styles/MapsYouth.css index e69de29b..4e46199e 100644 --- a/src/SubPages/Styles/MapsYouth.css +++ b/src/SubPages/Styles/MapsYouth.css @@ -0,0 +1,22 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + diff --git a/src/SubPages/Styles/QuilombolaAbout.css b/src/SubPages/Styles/QuilombolaAbout.css index 01687830..eebf3c2a 100644 --- a/src/SubPages/Styles/QuilombolaAbout.css +++ b/src/SubPages/Styles/QuilombolaAbout.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .gridTemplate{ display:grid; grid-template-columns: 1fr; diff --git a/src/SubPages/Styles/QuilombolaIndicator1.css b/src/SubPages/Styles/QuilombolaIndicator1.css index debecb5d..a3ff6c9e 100644 --- a/src/SubPages/Styles/QuilombolaIndicator1.css +++ b/src/SubPages/Styles/QuilombolaIndicator1.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .quilombola-title{ color: #ca3829; } diff --git a/src/SubPages/Styles/QuilombolaPresentation.css b/src/SubPages/Styles/QuilombolaPresentation.css index 8fc1fa42..1c52e6bf 100644 --- a/src/SubPages/Styles/QuilombolaPresentation.css +++ b/src/SubPages/Styles/QuilombolaPresentation.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .apresentacao{ margin-top: 1cm; } diff --git a/src/SubPages/Styles/QuotasAdmission.css b/src/SubPages/Styles/QuotasAdmission.css index f5c9fbed..56b42259 100644 --- a/src/SubPages/Styles/QuotasAdmission.css +++ b/src/SubPages/Styles/QuotasAdmission.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /* Contrast Colors */ #ContrastbrownCollapsible > .collapsible-header{ diff --git a/src/SubPages/Styles/QuotasEducation.css b/src/SubPages/Styles/QuotasEducation.css index 8e943854..7e61e741 100644 --- a/src/SubPages/Styles/QuotasEducation.css +++ b/src/SubPages/Styles/QuotasEducation.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .frac { display: inline-block; position: relative; vertical-align: middle; diff --git a/src/SubPages/Styles/QuotasEvader.css b/src/SubPages/Styles/QuotasEvader.css index ba86767f..e0dc36d2 100644 --- a/src/SubPages/Styles/QuotasEvader.css +++ b/src/SubPages/Styles/QuotasEvader.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .frac { display: inline-block; position: relative; vertical-align: middle; diff --git a/src/SubPages/Styles/QuotasExtracurricularAct.css b/src/SubPages/Styles/QuotasExtracurricularAct.css index f5c9fbed..56b42259 100644 --- a/src/SubPages/Styles/QuotasExtracurricularAct.css +++ b/src/SubPages/Styles/QuotasExtracurricularAct.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /* Contrast Colors */ #ContrastbrownCollapsible > .collapsible-header{ diff --git a/src/SubPages/Styles/QuotasFies.css b/src/SubPages/Styles/QuotasFies.css index 1a7ec135..c47e678d 100644 --- a/src/SubPages/Styles/QuotasFies.css +++ b/src/SubPages/Styles/QuotasFies.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + #percentfies::-webkit-slider-thumb { background-color: #78752e; } diff --git a/src/SubPages/Styles/QuotasGraduate.css b/src/SubPages/Styles/QuotasGraduate.css index 1b2434f4..fe3ba7c3 100644 --- a/src/SubPages/Styles/QuotasGraduate.css +++ b/src/SubPages/Styles/QuotasGraduate.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .quota-title { color: #78752e; } diff --git a/src/SubPages/Styles/QuotasLoan.css b/src/SubPages/Styles/QuotasLoan.css index f1c77e2c..9a60d971 100644 --- a/src/SubPages/Styles/QuotasLoan.css +++ b/src/SubPages/Styles/QuotasLoan.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + #tableData { display: block; height: 100%; diff --git a/src/SubPages/Styles/QuotasOfferVacancies.css b/src/SubPages/Styles/QuotasOfferVacancies.css index 27e31bc3..ee08578d 100644 --- a/src/SubPages/Styles/QuotasOfferVacancies.css +++ b/src/SubPages/Styles/QuotasOfferVacancies.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + #brownShiftCollapsible > .collapsible-body { height: 475px; overflow-y: auto; diff --git a/src/SubPages/Styles/QuotasPROUNI.css b/src/SubPages/Styles/QuotasPROUNI.css index 2ead20a6..b8828974 100644 --- a/src/SubPages/Styles/QuotasPROUNI.css +++ b/src/SubPages/Styles/QuotasPROUNI.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .quota-title { color: #78752e; } diff --git a/src/SubPages/Styles/QuotasSocialSupport.css b/src/SubPages/Styles/QuotasSocialSupport.css index f5c9fbed..56b42259 100644 --- a/src/SubPages/Styles/QuotasSocialSupport.css +++ b/src/SubPages/Styles/QuotasSocialSupport.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /* Contrast Colors */ #ContrastbrownCollapsible > .collapsible-header{ diff --git a/src/SubPages/Styles/YouthEducation.css b/src/SubPages/Styles/YouthEducation.css index 821ae126..e18c8fc0 100644 --- a/src/SubPages/Styles/YouthEducation.css +++ b/src/SubPages/Styles/YouthEducation.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .eixoHeader{ color: #0c6559; } diff --git a/src/SubPages/Styles/YouthJob.css b/src/SubPages/Styles/YouthJob.css index d09bc584..ebff5b3f 100644 --- a/src/SubPages/Styles/YouthJob.css +++ b/src/SubPages/Styles/YouthJob.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .eixoHeader{ color: #0c6559; } diff --git a/src/SubPages/Styles/YouthPresentation.css b/src/SubPages/Styles/YouthPresentation.css index 990f19c8..55d38d03 100644 --- a/src/SubPages/Styles/YouthPresentation.css +++ b/src/SubPages/Styles/YouthPresentation.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .apresentacao{ margin-top: 1cm; } diff --git a/src/SubPages/Styles/YouthVulnerabilities.css b/src/SubPages/Styles/YouthVulnerabilities.css index 9a9af8ee..753cc014 100644 --- a/src/SubPages/Styles/YouthVulnerabilities.css +++ b/src/SubPages/Styles/YouthVulnerabilities.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + .eixoHeader{ color: #0c6559; } diff --git a/src/SubPages/YouthAbout.js b/src/SubPages/YouthAbout.js index 106919e4..0429ab84 100644 --- a/src/SubPages/YouthAbout.js +++ b/src/SubPages/YouthAbout.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import Cookies from 'universal-cookie'; import './Styles/YouthPresentation.css' diff --git a/src/SubPages/YouthEducation.js b/src/SubPages/YouthEducation.js index 9f1e2632..6a7894e6 100644 --- a/src/SubPages/YouthEducation.js +++ b/src/SubPages/YouthEducation.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Card, Col, Row,Button} from 'react-materialize'; import CardFooter from '../Components/CardFooter'; diff --git a/src/SubPages/YouthJob.js b/src/SubPages/YouthJob.js index 38b08b2d..4382dd14 100644 --- a/src/SubPages/YouthJob.js +++ b/src/SubPages/YouthJob.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Card, Col, Row,Button} from 'react-materialize'; import coins from './icons/coins.png'; diff --git a/src/SubPages/YouthPresentation.js b/src/SubPages/YouthPresentation.js index 3c05f50f..cd5d591b 100644 --- a/src/SubPages/YouthPresentation.js +++ b/src/SubPages/YouthPresentation.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import Cookies from 'universal-cookie'; import './Styles/YouthPresentation.css' diff --git a/src/SubPages/YouthVulnerabilities.js b/src/SubPages/YouthVulnerabilities.js index 4cde9988..19cb3ae3 100644 --- a/src/SubPages/YouthVulnerabilities.js +++ b/src/SubPages/YouthVulnerabilities.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import {Card,Row,Col, Button} from 'react-materialize'; import CardFooter from '../Components/CardFooter'; diff --git a/src/Youth.js b/src/Youth.js index ce3ce3d3..413e3fe5 100644 --- a/src/Youth.js +++ b/src/Youth.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React, { Component } from 'react'; import NavigationBar from './Components/NavigationBar' import AppFooter from './Components/AppFooter' diff --git a/src/enviroment.js b/src/enviroment.js index 8843a6b7..ac271099 100644 --- a/src/enviroment.js +++ b/src/enviroment.js @@ -1,5 +1,27 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + const patterns = { - "ds_turno_aluno": ['Matutino', 'Vespertino', 'Noturno', 'Integral', 'Não aplicável'], + "ds_turno_aluno": ['Matutino', 'Vespertino', 'Noturno', 'Integral', 'Não aplicável','null'], "tipo_cota": ['Ampla Concorrência PcD','Ampla Concorrência não PcD','Renda inferior a 1,5 salário mÃnimo, PPI e PcD', 'Renda inferior a 1,5 salário mÃnimo, PPI e não PcD','Renda inferior a 1,5 salário mÃnimo PcD','Renda inferior a 1,5 salário mÃnimo não PcD', 'Renda superior a 1,5 salário mÃnimo, PPI e PcD', 'Renda superior a 1,5 salário mÃnimo, PPI e não PcD', 'Renda superior a 1,5 salário mÃnimo e PcD', 'Renda superior a 1,5 salário mÃnimo e não PcD'], "ds_sexo_aluno": ['Feminino', 'Masculino'], "ds_cor_raca_aluno": ['Aluno não quis declarar cor/raça', 'Amarela', 'Branca', 'IndÃgena', 'Não dispõe da informação', 'Parda', 'Preta'], @@ -29,7 +51,8 @@ export function range(start, end) { } export function getServerURL() { - //return "http://localhost:4000/api/v1/" + // return "http://smppirhomologa.c3sl.ufpr.br:4545/api/v1/" + //return 'http://localhost:4000/api/v1/' //caso for fazer build para homologa, utilizar o return de baixo ao invés do de cima return "http://seppirhomologa.c3sl.ufpr.br/data/api/v1/" } diff --git a/src/index.css b/src/index.css index b4cc7250..e09097c9 100644 --- a/src/index.css +++ b/src/index.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + body { margin: 0; padding: 0; diff --git a/src/index.js b/src/index.js index fae3e350..b9f19c7a 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; diff --git a/src/maps/br.js b/src/maps/br.js index 3714f8ad..b87deff3 100644 --- a/src/maps/br.js +++ b/src/maps/br.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React from 'react' import styled from 'styled-components' import './colors.css'; diff --git a/src/maps/colors.css b/src/maps/colors.css index 9bd208db..6976621b 100644 --- a/src/maps/colors.css +++ b/src/maps/colors.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /*Fixed Colors*/ path#acre { fill: #78752E } path#alagoas { fill: #C0572B } diff --git a/src/maps/heatbr.js b/src/maps/heatbr.js index ec07880a..1e161f7d 100644 --- a/src/maps/heatbr.js +++ b/src/maps/heatbr.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + import React from 'react' import styled from 'styled-components' import './heatcolors.css'; diff --git a/src/maps/heatcolors.css b/src/maps/heatcolors.css index 5ef499bf..a37a8c89 100644 --- a/src/maps/heatcolors.css +++ b/src/maps/heatcolors.css @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + /*Selected Color*/ diff --git a/src/registerServiceWorker.js b/src/registerServiceWorker.js index 4a3ccf02..96f722ea 100644 --- a/src/registerServiceWorker.js +++ b/src/registerServiceWorker.js @@ -1,3 +1,25 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + + // In production, we register a service worker to serve assets from local cache. // This lets the app load faster on subsequent visits in production, and gives -- GitLab From fae621e72ac5b5ae36c24e55937f11f3b67e5e26 Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Mon, 11 Feb 2019 11:31:57 -0200 Subject: [PATCH 05/23] Quilombolas indicator eixo4 --- src/Charts/BuildMixedBar.js | 186 ++++++++++ src/Charts/BuildStackedBar.js | 50 ++- src/MainPage.js | 2 +- src/Quilombola.js | 4 +- src/SubPages/AfricanSustainability.js | 6 +- src/SubPages/QuilombolaIndicator2.js | 4 +- src/SubPages/QuilombolaIndicator3.js | 494 ++++++++++++++++++++++++++ src/enviroment.js | 202 ++++++----- 8 files changed, 841 insertions(+), 107 deletions(-) create mode 100644 src/Charts/BuildMixedBar.js create mode 100644 src/SubPages/QuilombolaIndicator3.js diff --git a/src/Charts/BuildMixedBar.js b/src/Charts/BuildMixedBar.js new file mode 100644 index 00000000..da0d57e8 --- /dev/null +++ b/src/Charts/BuildMixedBar.js @@ -0,0 +1,186 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + +import React, { Component } from 'react'; +import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, LabelList } from "recharts"; +import './Styles/BuildStackedBar.css'; + +const getPercent = (value, total) => { + const ratio = total > 0 ? value / total : 0; + return toPercent(ratio, 2); +}; + +const toPercent = (decimal, fixed = 0) => { + return `${(decimal * 100).toFixed(fixed)}%`; +}; + +const COLORS = ["#0E3959", "#0B7B6B", "#EA7C27", "#B66526", "#CA3828", "#363B1B0", "#78752E", + "#081A24", "#211517", "#763618", "#722417", "#C93829", "#363B1BU", "#003300"]; + +const renderTooltipContent = (o) => { + const { payload, label } = o; + const total = payload.reduce((result, entry) => (result + entry.value), 0); + return ( + <div className={"z-depth-3"} style={{ backgroundColor: "white" }}> + <div className="customized-tooltip-content" style={{ margin: 25 }}> + <div className="total"> + <div className={"tooltipCenter"}><b>{`${label}`}</b></div> + </div> + <ul className="list"> + { + payload.reverse().map((entry, index) => ( + <li key={`item-${index}`} style={{ color: entry.color }}> + {`${entry.name}: ${entry.value} (${getPercent(entry.value, total)})`} + </li> + )) + } + <li id={"totalText"}><b>Total: </b>{total}</li> + </ul> + </div> + </div> + ); +}; + +const renderCustomizedLabel = (props) => { + const { x, y, width, height, value } = props; + const radius = 10; + + return ( + <g> + <circle cx={x + width / 2} cy={y - radius} r={radius} fill="#000" /> + <text x={x + width / 2} y={y - radius} fill="#fff" textAnchor="middle" dominantBaseline="middle"> + {value} + </text> + </g> + ); +}; + +function verifyKeyBar(bar, keysBars) { + let verifiedKey = 'a' + if (keysBars != undefined) { + for (let key in keysBars) { + if (bar == key) verifiedKey = keysBars[key] + } + } + return verifiedKey +}; + +class BuildStackedBar extends Component { + constructor(props) { + super(props); + this.state = { + data: null, + }; + this.filterArrayByPercent = this.filterArrayByPercent.bind(this); + } + componentWillReceiveProps(nextProps) { + var data = nextProps.data; + if (nextProps.percent !== undefined) + data = this.filterArrayByPercent(data, nextProps.percent); + this.setState({ data: data }) + } + + render() { + var newData = this.state.data; + + // Change chart height and interval if it was specified + var cardHeight = 300; + var interval = 0; + if (this.props.height !== undefined) cardHeight = this.props.height; + if (this.props.interval !== undefined) interval = this.props.interval; + + if (this.state.data && this.state.data.length > 0 && this.props.customKeys !== undefined) { + newData = newData.map(function (element) { + return this.renameKeys(element, this.props.customKeys); + }, this); + } + var dataKey = this.props.dataKey + var label = this.props.label + var bKeys = this.props.bKeys + var keysBars = this.props.keysBars + + if (this.state.data !== null && this.state.data !== undefined && this.state.data.length > 0) + return ( + <ResponsiveContainer minHeight={cardHeight}> + <BarChart width={600} height={cardHeight} data={newData} + margin={{ top: 20, right: 0, left: 0, bottom: 5 }}> + <XAxis dataKey={this.props.dataKey} interval={interval} /> + <YAxis /> + <CartesianGrid strokeDasharray="3 3" /> + <Tooltip content={renderTooltipContent} /> + <Legend /> + {Object.keys(newData[0]).map(function (bar, index) { + if (bar !== dataKey) { + if (bar !== label) { + if (label == undefined) + return ( + <Bar + isAnimationActive = {false} + key = {Math.random()} + dataKey = {bar} + stackId = {verifyKeyBar(bar,keysBars)} + fill = {COLORS[index]} + /> + ) + else + return ( + <Bar + isAnimationActive = {false} + key = {Math.random()} + dataKey = {bar} + stackId = {verifyKeyBar(bar, keysBars)} + fill = {COLORS[index]} + > + {index === Object.keys(newData[0]).length - 1 ? + // <LabelList dataKey={label} content={renderCustomizedLabel} /> : null} + <LabelList dataKey={label} position="top" /> : null} + </Bar> + ) + } + } + return null; + }) + } + </BarChart> + </ResponsiveContainer> + ); + else + return (<div> </div>); + } + + filterArrayByPercent(data, percent) { + var arrayFiltered = []; + data.forEach((y) => { + arrayFiltered.push({ "Quantidade de pessoas": y[percent], "Ano": y.Ano }); + }); + return arrayFiltered; + } + + renameKeys(obj, newKeys) { + const keyValues = Object.keys(obj).map(key => { + const newKey = newKeys[key] || key; + return { [newKey]: obj[key] }; + }); + return Object.assign({}, ...keyValues); + } + +} + +export default BuildStackedBar; diff --git a/src/Charts/BuildStackedBar.js b/src/Charts/BuildStackedBar.js index c0b26647..1e3c6563 100644 --- a/src/Charts/BuildStackedBar.js +++ b/src/Charts/BuildStackedBar.js @@ -21,7 +21,7 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; -import {BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer} from "recharts"; +import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, LabelList} from "recharts"; import './Styles/BuildStackedBar.css'; const getPercent = (value, total) => { @@ -33,7 +33,8 @@ const toPercent = (decimal, fixed = 0) => { return `${(decimal * 100).toFixed(fixed)}%`; }; -const COLORS = ["#0E3959", "#0B7B6B", "#EA7C27", "#B66526", "#CA3828", "#363B1B", "#78752E", "#081A24", "#211517","#763618", "#722417", "#C93829", "#363B1BU"]; +const COLORS = ["#0E3959", "#0B7B6B", "#EA7C27", "#B66526", "#CA3828", "#363B1B0", "#78752E", + "#081A24", "#211517", "#763618", "#722417", "#C93829", "#363B1BU", "#003300"]; const renderTooltipContent = (o) => { const { payload, label } = o; @@ -59,11 +60,25 @@ const renderTooltipContent = (o) => { ); }; +const renderCustomizedLabel = (props) => { + const { x, y, width, height, value } = props; + const radius = 10; + + return ( + <g> + <circle cx={x + width / 2} cy={y - radius} r={radius} fill="#000" /> + <text x={x + width / 2} y={y - radius} fill="#fff" textAnchor="middle" dominantBaseline="middle"> + {value} + </text> + </g> + ); +}; + class BuildStackedBar extends Component { constructor(props) { super(props); this.state = { - data: null + data: null, }; this.filterArrayByPercent = this.filterArrayByPercent.bind(this); } @@ -76,25 +91,46 @@ class BuildStackedBar extends Component { render () { var newData = this.state.data; + + // Change chart height if it was specified + var cardHeight = 300; + var interval = 0; + if (this.props.height !== undefined) cardHeight = this.props.height; + if (this.props.interval !== undefined) interval = this.props.interval; + if(this.state.data && this.state.data.length > 0 && this.props.customKeys !== undefined) { newData = newData.map(function(element) { return this.renameKeys(element, this.props.customKeys); }, this); } var dataKey = this.props.dataKey + var label = this.props.label + if(this.state.data !== null && this.state.data !== undefined && this.state.data.length > 0) return ( - <ResponsiveContainer minHeight={300}> - <BarChart width={600} height={300} data={newData} + <ResponsiveContainer minHeight={cardHeight}> + <BarChart width={600} height={cardHeight} data={newData} margin={{top: 20, right: 0, left: 0, bottom: 5}}> - <XAxis dataKey={this.props.dataKey}/> + <XAxis dataKey={this.props.dataKey} interval={interval}/> <YAxis/> <CartesianGrid strokeDasharray="3 3"/> <Tooltip content={renderTooltipContent}/> <Legend /> { Object.keys(newData[0]).map(function(bar, index) { if(bar !== dataKey) { - return <Bar isAnimationActive={false} key={Math.random()} dataKey={bar} stackId="a" fill={COLORS[index]} />} + if(label == undefined) { + return <Bar isAnimationActive={false} key={Math.random()} dataKey={bar} stackId="a" fill={COLORS[index]} /> + } + else if(bar !== label) { + return ( + <Bar isAnimationActive={false} key={Math.random()} dataKey={bar} stackId="a" fill={COLORS[index]}> + {index === Object.keys(newData[0]).length - 1? + // <LabelList dataKey={label} content={renderCustomizedLabel} /> : null} + <LabelList dataKey={label} position="top" /> : null} + </Bar> + ) + } + } return null; }) } diff --git a/src/MainPage.js b/src/MainPage.js index 9139330a..331d6af4 100644 --- a/src/MainPage.js +++ b/src/MainPage.js @@ -127,6 +127,6 @@ const subpages2 = {'route': '/juventude', 'links':['VULNERABILIDADES', 'EDUCAÇ // const subpages3 = {'route': '/mapas', 'links':['COMUNIDADES', 'JUVENTUDE VIVA']} const subpages4 = {'route': '/matrizAfricana', 'links':["DIREITOS", "CULTURA", "SUSTENTABILIDADE"]} const subpages5 = {'route': '/cotas', 'links':['EVASÃO', 'CONCLUINTES', 'ESCOLARIDADE', 'FIES', 'PROUNI', 'FINANCIAMENTO', 'ATIVIDADE EXTRACURRICULAR', 'INGRESSO', 'APOIO SOCIAL', 'VAGAS OFERTADAS']} -const subpages6 = {'route': '/quilombola', 'links':['EIXO 2','EIXO 3']} +const subpages6 = {'route': '/quilombola', 'links':['EIXO 2','EIXO 3','EIXO 4']} export default MainPage; diff --git a/src/Quilombola.js b/src/Quilombola.js index 4602740a..fa6574aa 100644 --- a/src/Quilombola.js +++ b/src/Quilombola.js @@ -31,6 +31,7 @@ import {sleep, homeURL} from './enviroment' import ContrastBar from './Components/ContrastBar' import QuilombolaIndicator1 from './SubPages/QuilombolaIndicator1' import QuilombolaIndicator2 from './SubPages/QuilombolaIndicator2' +import QuilombolaIndicator3 from './SubPages/QuilombolaIndicator3' var ck = new Cookies(); var contrastCK = new Cookies(); @@ -54,7 +55,7 @@ class Quilombola extends Component { } const cookie = new Cookies(); var clicked = cookie.get('mainPageClicked') - var states = {"EIXO 2": true,"EIXO 3": false} + var states = {"EIXO 2": true,"EIXO 3": false,"EIXO 4": false} if (clicked !== undefined){ if (clicked in states){ states["EIXO 2"] = false; @@ -77,6 +78,7 @@ class Quilombola extends Component { <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageRedTab`} onChange={this.whereIAm}> <Tab title="EIXO 2" active={states["EIXO 2"]}> <QuilombolaIndicator1/> </Tab> <Tab title="EIXO 3" active={states["EIXO 3"]}> <QuilombolaIndicator2/> </Tab> + <Tab title="EIXO 4" active={states["EIXO 4"]}> <QuilombolaIndicator3/> </Tab> </Tabs> </div> <AppFooter/> diff --git a/src/SubPages/AfricanSustainability.js b/src/SubPages/AfricanSustainability.js index 3d153ee1..4e5b6583 100644 --- a/src/SubPages/AfricanSustainability.js +++ b/src/SubPages/AfricanSustainability.js @@ -27,7 +27,7 @@ import CollapsibleContainer from '../Components/CollapsibleContainer' import Loading from '../Components/Loading' import BuildStackedBar from '../Charts/BuildStackedBar' import axios from 'axios'; -import { getServerURL, deactivateLoadingAnimation, createIntervals} from '../enviroment' +import { getServerURL, deactivateLoadingAnimation, createIntervals, organizeJson} from '../enviroment' import './Styles/AfricanRights.css' @@ -88,8 +88,8 @@ class AfricanSustainability extends Component { </Collection> </div> <BuildStackedBar - dataKey={'ano_pesquisa'} - data={this.state.charts['Renda média per capita']} + dataKey={'Ano'} + data={organizeJson(this.state.charts['Renda média per capita'], 'vlr_renda_media_fam', 'ano_pesquisa')} customKeys={customKey} /> </div> diff --git a/src/SubPages/QuilombolaIndicator2.js b/src/SubPages/QuilombolaIndicator2.js index 873b1f7d..1b885eae 100644 --- a/src/SubPages/QuilombolaIndicator2.js +++ b/src/SubPages/QuilombolaIndicator2.js @@ -147,8 +147,8 @@ class QuilombolaIndicator2 extends Component { </Collection> </div> <BuildStackedBar - dataKey={'ano_pesquisa'} - data={this.state.charts['Renda média per capita']} + dataKey='Ano' + data={organizeJson(this.state.charts['Renda média per capita'], "vlr_renda_media_fam", "ano_pesquisa")} customKeys={totalrenda} /> </div> diff --git a/src/SubPages/QuilombolaIndicator3.js b/src/SubPages/QuilombolaIndicator3.js new file mode 100644 index 00000000..5df14164 --- /dev/null +++ b/src/SubPages/QuilombolaIndicator3.js @@ -0,0 +1,494 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + + +import React, { Component } from 'react'; +import {Col, Row } from 'react-materialize'; +import MapPanel from '../Components/MapPanel'; +import { Collapsible, Collection, CollectionItem } from 'react-materialize' +import CollapsibleContainer from '../Components/CollapsibleContainer'; +import './Styles/QuilombolaIndicator1.css'; +import axios from 'axios'; +import { getServerURL, organizeJson, getRegionState, deactivateLoadingAnimation, getStateName, searchHash, + createIntervals, filterJson } from '../enviroment' +import BuildStackedBar from '../Charts/BuildStackedBar'; +import BuildMixedBar from '../Charts/BuildMixedBar'; +import BuildBar from '../Charts/BuildBar'; +import Loading from '../Components/Loading'; +import Cookies from 'universal-cookie'; + + +var ck = new Cookies(); +var contrastCK = new Cookies(); +var cookieStatus = contrastCK.get('contrast'); +const serverURL = getServerURL(); +const type = "cad_unico"; +const AnoLabel = { + '0': 'Não', + '1': 'Sim', + 'null': 'Indefinido', +} +const Education = { + 'null': 'Sem informações', + '1': 'Creche', + '2': 'Pré-escola (exceto CA)', + '3': 'Classe de Alfabetização - CA', + '4': 'Ensino Fundamental 1ª a 4ª séries', + '5': 'Ensino Fundamental 5ª a 8ª séries', + '6': 'Ensino fundamental (duração 9 anos)', + '7': 'Ensino Fundamental Especial', + '8': 'Ensino Médio', + '9': 'Ensino Médio Especial', + '10': 'Ensino Fundamental EJA - séries iniciais', + '11': 'Ensino Fundamental EJA - séries finais', + '12': 'Ensino Médio EJA', + '13': 'Superior, Aperfeiçoamento, Especialização, Mestrado, Doutorado', + '14': 'Alfabeticação para Adultos', + '15': 'Nenhum', +} +const Gender = { + '1': 'Masculino', + '2': 'Feminino' +} + + +class QuilombolaIndicator3 extends Component { + constructor(props) { + super(props); + this.state = { + charts:{'Tipo de domicÃlio': null, "Forma de iluminação - Pessoas": null, "Forma de iluminação - FamÃlias": null, + "Destino do lixo": null,"Forma de abastecimento de água": null, "Tipos de escoamento sanitário": null}, + ddValues:{'regiao': null, 'estado': null}, + graduates:{}, + campiNames:[], + tagID: '', + tagName:'' + }; + this.getDataFromAutocomplete = this.getDataFromAutocomplete.bind(this); + this.getDataFromServer = this.getDataFromServer.bind(this); + this.createRoute = this.createRoute.bind(this); + this.getHeader = this.getHeader.bind(this); + this.getDDValues = this.getDDValues.bind(this); + this.updateCharts = this.updateCharts.bind(this); + this.getData = this.getData.bind(this); + this.getCampiFromServer = this.getCampiFromServer.bind(this); + this.saveAutocompleteContent = this.saveAutocompleteContent.bind(this); + this.campiFilter = this.campiFilter.bind(this); + + } + + render() { + var contrastString = ''; + if(cookieStatus === 'true'){ + contrastString = 'Contrast' + } + if (ck.get('mainPageClicked') === "EIXO 4") + return ( + <div id={type}> + <Row> + <Col s={12} m={10} l={10} offset={'m1 l1'}> + <div className={`${contrastString}subpage-margin`}> + <h5 className={`${contrastString}quilombola-title`}>Eixo 4</h5> + <MapPanel + onChange={this.updateCharts} + getDDValues={this.getDDValues} + getData={this.getData} + location={type} + /> + </div> + </Col> + + <Col s={12} m={10} l={10} offset={'m1 l1'}> + <Collapsible onClick={this.getHeader}> + <CollapsibleContainer id={`${contrastString}redCollapsible`} header='Número de famÃlias'> + <div id={'Numero_de_familias' + type}> + <div id={'collection-info'}> + <Collection> + <CollectionItem> + Número de famÃlias quilombolas que recebem Bolsa FamÃlia. + </CollectionItem> + </Collection> + </div> + <BuildMixedBar + dataKey='Ano' + data={organizeJson(this.state.charts['Número de famÃlias'], "marc_pbf", "ano_pesquisa")} + customKeys={AnoLabel} + keysBars={{ 'Não': 'b', 'Sim': 'c', 'Indefinido': 'b' }} + /> + </div> + <Loading /> + </CollapsibleContainer> + <CollapsibleContainer id={`${contrastString}redCollapsible`} header='Escolaridade Segundo CadÚnico'> + <div id={'Escolaridade_Segundo_Cadunico' + type}> + <BuildMixedBar + dataKey='Ano' + data={ + organizeJson(this.state.charts['Escolaridade Segundo CadÚnico'], "cod_curso_frequentou_pessoa_memb", + "ano_pesquisa") + } + customKeys={Education} + height={600} + keysBars={{ 'NA': 'b', 'Sem informações': 'b' }} + /> + </div> + <Loading /> + </CollapsibleContainer> + <CollapsibleContainer id={`${contrastString}redCollapsible`} header='População no CadÚnico por Faixa Etária'> + <div id={'Populacao_Faixa_Etaria' + type}> + <BuildStackedBar + dataKey='Ano' + data={organizeJson(this.state.charts['População no CadÚnico por Faixa Etária'], "idade", "ano_pesquisa")} + // height={600} + /> + </div> + <Loading /> + </CollapsibleContainer> + <CollapsibleContainer id={`${contrastString}redCollapsible`} header='População no CadÚnico por Gênero'> + <div id={'Populacao_Genero' + type}> + <BuildBar + dataKey='Ano' + data={organizeJson(this.state.charts['População no CadÚnico por Gênero'], "genero", "ano_pesquisa")} + customKeys={Gender} + /> + </div> + <Loading /> + </CollapsibleContainer> + <CollapsibleContainer id={`${contrastString}redCollapsible`} + header='População no CadÚnico por Faixa Etária e Gênero'> + <div id={'Populacao_Faixa_Etaria_Genero' + type}> + <div id={'collection-info'}> + <Collection> + <CollectionItem> + 'F' identifica pessoas do sexo feminino e 'M' do masculino. + </CollectionItem> + </Collection> + </div> + <BuildStackedBar + dataKey = 'ano_pesquisa' + data = {this.state.charts['População no CadÚnico por Faixa Etária e Gênero']} + label = 'genero' + interval = {1} + /> + </div> + <Loading /> + </CollapsibleContainer> + </Collapsible> + </Col> + </Row> + </div> + ); + else return <div></div> + } + + getDataFromAutocomplete(data) { + var typeAux = type+'s'; + for(let i = 0, j = 0; i < data['data'].length; i++, j++){ + for(;j < this.state[typeAux].length;){ + if (data['data'][i].no_ano_pesquisa === this.state[typeAux][j].no_ano_pesquisa){ + data['data'][i]['total'+typeAux] = this.state[typeAux][j].total + data['data'][i]['percentage'] = data['data'][i]['total']*100/this.state[typeAux][j].total + break; + } + else{ + j++ + } + } + } + + var currentState = this.state.charts + switch(data['option']){ + case 'institution': + currentState['Instituição de Ensino'] = data['data'] + this.setState({IESTotal: data['data']}) + this.setState({campiList: this.getCampi(this.state.campi)}) + this.setState(currentState) + break; + case 'course': + currentState['Curso'] = data['data'] + this.setState(currentState) + break; + default: + break; + } + } + + getDataFromServer(defaultData, chart) { + if(chart !== 'Curso' && chart !== 'Instituição de Ensino'){ + var msg = document.getElementById('no_info'+chart+type); + if (msg){ + document.getElementById(chart+type).style.display = 'block'; + msg.remove() + } + axios.get(`${serverURL}${defaultData}`) + .then(res => { + const data = res.data.result + var temp = this.state.charts + let filter = [ + { + 'filter': 'ind_familia_quilombola_fam', + 'value': '1', + } + ] + if (chart === 'População no CadÚnico por Faixa Etária') { + temp[chart.trim()] = createIntervals(filterJson(data, filter), 'idade', 10, 'ano_pesquisa', 100); + // temp[chart.trim()] = createIntervals(data, 'idade', 10, 'ano_pesquisa'); + } + else if (chart === 'População no CadÚnico por Faixa Etária e Gênero') { + let chartData = [] + let workData = [] + + // Masculino + filter.push({'filter':'genero','value':'1'}) + chartData.push(createIntervals(filterJson(data, filter), 'idade', 10, 'ano_pesquisa',100)); + + // Feminino + filter[1]['value'] = '2' + chartData.push(createIntervals(filterJson(data, filter), 'idade', 10, 'ano_pesquisa',100)); + + // Join results + chartData[2] = chartData[0] + for(let i=0; i < chartData[1].length; i++) { + for(let j=0; j < chartData[2].length; j++) { + if (chartData[1][i]['ano_pesquisa'] === chartData[2][j]['ano_pesquisa'] + && chartData[1][i]['idade'] === chartData[2][j]['idade']) { + chartData[2][j]['total2'] = chartData[1][i]['total'] + } + } + } + let lowerBound = chartData[2][0]['ano_pesquisa'] + let upperBound = lowerBound + for (let i = 0; i < chartData[2].length; i++) { + upperBound = (chartData[2][i]['ano_pesquisa'] > upperBound ? chartData[2][i]['ano_pesquisa'] : upperBound) + lowerBound = (chartData[2][i]['ano_pesquisa'] < lowerBound ? chartData[2][i]['ano_pesquisa'] : lowerBound) + } + for (let i = 0; i <= upperBound - lowerBound; i++) { + workData[2*i] = { 'ano_pesquisa': lowerBound + i, 'genero':'M' } + workData[2*i+1] = { 'ano_pesquisa': lowerBound + i, 'genero': 'F' } + for (let j = 0; j < chartData[2].length; j++) { + if (chartData[2][j]['ano_pesquisa'] == lowerBound+i) { + workData[2*i][chartData[2][j]['idade']] = chartData[2][j]['total'] + workData[2*i+1][chartData[2][j]['idade']] = chartData[2][j]['total2'] + } + } + } + temp[chart.trim()] = workData + } + else { + temp[chart.trim()] = filterJson(data, filter); + } + + if (!(Object.values(temp).indexOf(true) > -1)){ + this.setState({ defaultData : temp }); + deactivateLoadingAnimation(chart, type); + } + }) + .catch(error => { + console.log(error) + var node = document.createElement("P"); + var textnode = document.createTextNode( + `Sem informação para ${chart} na unidade federativa: ${getStateName(this.state.ddValues.estado)}`); + node.appendChild(textnode); + node.id = 'no_info'+chart+type + deactivateLoadingAnimation(chart, type); + document.getElementById(chart+type).style.display = 'none'; + document.getElementById(chart+type).parentNode.appendChild(node) + }); + } + } + + createRoute(header) { + var route; + let head = header.trim() + switch (head) { + //count pega informações da familia, sem count são pegas as informações por pessoa + case 'Número de famÃlias': + // route = type + "_count?dims=year,cod_home_bolsa_familia&filter=quilombola_family:\"1\"" + route = type + "_count?dims=year,cod_home_bolsa_familia,quilombola_family" + break; + case 'Escolaridade Segundo CadÚnico': + // route = type + "?dims=education_families,year&filter=quilombola_family:\"1\"" + route = type + "?dims=education_families,year,quilombola_family" + break; + case 'População no CadÚnico por Faixa Etária': + // route = type + "?dims=age,year&filter=quilombola_family:\"1\"" + route = type + "?dims=age,year,quilombola_family" + break; + case 'População no CadÚnico por Gênero': + route = type + "?dims=gender,year,quilombola_family" + break; + case 'População no CadÚnico por Faixa Etária e Gênero': + route = type + "?dims=gender,age,year,quilombola_family" + break; + default: + console.log("404"); + } + if (this.state.ddValues.estado !== null) { + route = route + "&filter=uf:" + this.state.ddValues.estado; + } else + if (this.state.ddValues.regiao !== null) { + route = route + "&filter=region:" + this.state.ddValues.regiao; + } + this.getDataFromServer(route, head); + } + + getHeader(e) { + var target = e.target; + var current_icon = '' + var current_collapsible = '' + + if (target.childNodes[2] === undefined) { + target = e.target.parentNode + } + if(target.childNodes[0].innerText){ + if(target.childNodes[0].innerText[11] === 'd'){ + current_icon = target.childNodes[0].innerText.slice(0,15) + current_collapsible = target.childNodes[0].innerText.slice(15, target.childNodes[0].innerText.length) + if(current_collapsible === ''){ + current_collapsible = target.childNodes[0].parentNode.innerText + .replace('\n','').slice(15, target.childNodes[0].parentNode.innerText.replace('\n','').length) + } + } + else{ + current_icon = target.childNodes[0].innerText.slice(0,13) + current_collapsible = target.childNodes[0].innerText.slice(13, target.childNodes[0].innerText.length) + if(current_collapsible === ''){ + current_collapsible = target.childNodes[0].parentNode.innerText + .replace('\n','').slice(15, target.childNodes[0].parentNode.innerText.replace('\n','').length) + } + } + + if (current_icon === 'arrow_drop_down') { + if ((current_collapsible !== "Instituição de Ensino" && current_collapsible !== "Curso")) { + this.createRoute(current_collapsible, type) + } + } + } + } + + updateCharts() { + var content = document.getElementById(type); + var openCharts = content.querySelectorAll('li.active'); + openCharts = [].map.call(openCharts, function(obj) { + var text = obj.childNodes[0].innerText.replace("arrow_drop_up", ""); + if(text === 'Curso' && document.getElementById("no_curso") !== null) + document.getElementById("no_curso").style.display = "none"; + else if ( text === 'Instituição de Ensino' && document.getElementById("no_ies") !== null) + document.getElementById("no_ies").style.display = "none"; + else + return text; + }); + for(let i = 0; i < openCharts.length; i++) { + if(openCharts[i] !== null && openCharts[i] !== undefined){ + this.createRoute(openCharts[i].replace('\n','')) + } + } + } + + + getDDValues(newValue) { + var aux = this.state + if(newValue.id === 'regiao'+type || newValue.id === 'estado'+type) + newValue.id = newValue.id.replace(type, ''); + + if (newValue.value === 'Todas as regiões') { + aux.ddValues['regiao'] = null; + aux.ddValues['estado'] = null; + } else if (newValue.value === 'TD') { + aux.ddValues['estado'] = null; + } else { + if(newValue.id === 'estado') { + aux.ddValues['estado'] = newValue.value + aux.ddValues['regiao'] = getRegionState(newValue.value); + } else if(newValue.id === 'regiao') { + aux.ddValues['estado'] = null; + aux.ddValues['regiao'] = newValue.value + } + } + this.setState({ + aux + }); + } + getData(e) { + this.updateCharts() + } + + getCampi(data) { + var unique = ([ ...new Set(data.map(item => item.co_local_oferta))]); + var campi = [] + var campiNames = [] + for(let i = 0; i < unique.length; i++){ + let aux = searchHash(unique[i], data, 'co_local_oferta',"Number") + aux = aux.sort(function(a, b){ + return a.no_ano_pesquisa > b.no_ano_pesquisa; + }); + for(let i = 0, j = 0; i < aux.length; i++, j++){ + for(;j < this.state.IESTotal.length;){ + if (aux[i].no_ano_pesquisa === this.state.IESTotal[j].no_ano_pesquisa){ + aux[i]['total_IES'] = this.state.IESTotal[j].total + aux[i]['percentage'] = aux[i]['total']*100/this.state.IESTotal[j].total + break; + } + else{ + j++ + } + } + } + campi.push(aux); + } + for(let i = 0; i < campi.length; i++){ + let maxValue = Math.max(...campi[i].map(o => o.no_ano_pesquisa)); + campiNames.push(searchHash(maxValue, campi[i], 'no_ano_pesquisa',"Number")[0]); + } + this.setState({campiNames: [{no_local_oferta:'Todos os campi', co_local_oferta:0}].concat(campiNames)}) + + return unique + } + saveAutocompleteContent(tagID, tagName){ + this.setState({ tagID: tagID, tagName: tagName }) + this.getCampiFromServer(tagID) + } + campiFilter(filter) { + let currentState = this.state.charts + if ( filter.value === '0' ){ + currentState['Instituição de Ensino'] = this.state.IESTotal; + } + else { + let aux = searchHash(filter.value,this.state.campi,'co_local_oferta',"Number") + aux = aux.sort(function(a, b){ + return a.no_ano_pesquisa > b.no_ano_pesquisa; + }); + currentState['Instituição de Ensino'] = aux; + } + this.setState({charts:currentState}) + } + getCampiFromServer(id){ + var route = `${type}?dims=cod_offer_location,name_offer_location&filter=institution_cod:${id}` + axios.get(`${serverURL}${route}`) + .then(res => { + const data = res.data.result + this.setState({ campi : data }); + }).catch(error => { + console.log(error) + }); + } + +} + +export default QuilombolaIndicator3; \ No newline at end of file diff --git a/src/enviroment.js b/src/enviroment.js index ac271099..8b26eb51 100644 --- a/src/enviroment.js +++ b/src/enviroment.js @@ -39,8 +39,12 @@ const patterns = { "cod_escoa_sanitario_domic_fam" : ["1","2","3","4","5","6","null","NA"], "cod_local_domic_fam" : ["1","2","null","NA"], "year_none" :[], - "cod_agricultura_trab_memb": ["1","2","null","NA"], - "marc_pbf" : ["0","1","null"], + "cod_agricultura_trab_memb": ["1", "2", "null", "NA"], + "marc_pbf": ["0","1","null"], + "cod_curso_frequentou_pessoa_memb": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15","NA","null"], + "idade": [], + "genero": [], + "vlr_renda_media_fam": [], "nu_percent_solicitado_financ": range(10, 100) } export function sleep (time) { @@ -54,7 +58,8 @@ export function getServerURL() { // return "http://smppirhomologa.c3sl.ufpr.br:4545/api/v1/" //return 'http://localhost:4000/api/v1/' //caso for fazer build para homologa, utilizar o return de baixo ao invés do de cima - return "http://seppirhomologa.c3sl.ufpr.br/data/api/v1/" + return "http://seppirdev.c3sl.ufpr.br/data/api/v1/" + // return "http://seppirhomologa.c3sl.ufpr.br/data/api/v1/" } export function homeURL() { // Get the current URL @@ -87,11 +92,41 @@ export function uniqueItemsArray(array){ return arr.indexOf(elem) === pos; }); } -export function createIntervals(data, intervalKey, intervalRange, yearKey=undefined){ + +/* + * Apply filter to query + */ +export function filterJson(data, filters) { + var filter, value + let workData = data + let filteredData = [] + + for(let i = 0; i < filters.length; i++) { + filter = filters[i]["filter"] + value = filters[i]["value"] + + for (let j = 0; j < workData.length; j++) { + if (workData[j][filter] === value) + filteredData.push(workData[j]) + } + + workData = filteredData + filteredData = [] + } + return workData +} + +/* + * Divide json in subgroups of regular intervals + * (Interval Key must be integers) + * TODO: Add undefined data support Ex:(NA, Undefined..) + */ +export function createIntervals(data, intervalKey, intervalRange, yearKey=undefined, limit=undefined){ var dataLen = data.length; var years = []; var workData; + // Create an array organized by year if(yearKey){ for(let i = 0; i < dataLen; i++){ years.push(data[i][yearKey]) @@ -113,104 +148,85 @@ export function createIntervals(data, intervalKey, intervalRange, yearKey=undefi workData =[data]; } - var dataPerYear = []; - for(let i = 0; i < workData.length; i++){ - let lowerBound = workData[i][0][intervalKey] - let upperBound = intervalRange - let aux = [] - for(let j = 0; j < workData[i].length; j++){ - if(aux[aux.length-1]){ - if(workData[i][j][intervalKey] >= lowerBound && workData[i][j][intervalKey] < upperBound){ - let interval_string = lowerBound.toString()+' - '+upperBound.toString() - if(aux[aux.length-1][intervalKey] === interval_string){ - aux[aux.length-1]['total'] = aux[aux.length-1]['total'] + workData[i][j]['total'] - } - else{ - if(yearKey){ - let temp = {} - temp[yearKey] = workData[i][j][yearKey]; - temp[intervalKey] = interval_string; - temp['total'] = workData[i][j]['total']; - aux.push(temp); - } - else{ - let interval_string = lowerBound.toString()+' - '+upperBound.toString() - let temp = {} - temp[intervalKey] = interval_string; - temp['total'] = workData[i][j]['total']; - aux.push(temp); - } - } - } - else{ - lowerBound = lowerBound + intervalRange; - upperBound = upperBound + intervalRange; - let interval_string = lowerBound.toString()+' - '+upperBound.toString() - let temp = {} - temp[yearKey] = workData[i][j][yearKey]; - temp[intervalKey] = interval_string; - temp['total'] = workData[i][j]['total']; - aux.push(temp); - } - } - else{ - if(yearKey){ - let interval_string = lowerBound.toString()+' - '+upperBound.toString() - let temp = {} - temp[yearKey] = workData[i][j][yearKey]; - temp[intervalKey] = interval_string; - temp['total'] = workData[i][j]['total']; - aux.push(temp); - } - else{ - let interval_string = lowerBound.toString()+' - '+upperBound.toString() - let temp = {} - temp[intervalKey] = interval_string; - temp['total'] = workData[i][j]['total']; - aux.push(temp); - } + // Find lowerBound and upperBound + let tmp = parseInt(workData[0][0][intervalKey]); + for (let i = 0; i < workData.length && !tmp && tmp !== 0; i++) { + tmp = parseInt(workData[0][i][intervalKey]); + } + let LowerBound = tmp; + let UpperBound = tmp; + for(let i = 0; i < workData.length; i++) { + for (let j = 0; j < workData[i].length; j++) { + let tmp = parseInt(workData[i][j][intervalKey]); + if(tmp || tmp === 0) { + LowerBound = (tmp < LowerBound ? tmp : LowerBound); + UpperBound = (tmp > UpperBound ? tmp : UpperBound); } } - dataPerYear = dataPerYear.concat(aux); } - if (yearKey){ - // Conteúdo deste IF foi criado para Matriz Africana - Sustentabilidade - Renda média per capita - // Generalizar depois!! - let returnArray = [] - let currentYear = dataPerYear[0]['ano_pesquisa'] - let aux = {} - let numEntries = [] - for(let i = 0; i < dataPerYear.length; i++ ){ - if (currentYear === dataPerYear[i]['ano_pesquisa']){ - aux["ano_pesquisa"] = dataPerYear[i]['ano_pesquisa'] - aux[dataPerYear[i]['vlr_renda_media_fam']] = dataPerYear[i]['total'] + UpperBound = UpperBound + intervalRange - (UpperBound % intervalRange); + + // Define limit if it exists + limit = (limit ? limit : UpperBound) + + var dataPerYear = []; + + // Iterate through the years + for(let i = 0; i < workData.length; i++) { + let aux = [] // Array of groups + + // Create all groups for one year + for (let j = LowerBound; j < limit; j+=intervalRange) { + if (yearKey) { + let interval_string = j.toString() + ' - ' + (j + intervalRange - 1).toString() + let temp = {} + temp[yearKey] = workData[i][0][yearKey]; + temp[intervalKey] = interval_string; + temp['total'] = 0; + aux.push(temp); } - else{ - numEntries.push(numEntries.length > 0 ? i - numEntries.reduce((a,b)=>a+b, 0) : i) - returnArray.push(aux) - aux = {} - currentYear = dataPerYear[i]['ano_pesquisa'] - aux["ano_pesquisa"] = dataPerYear[i]['ano_pesquisa'] - aux[dataPerYear[i]['vlr_renda_media_fam']] = dataPerYear[i]['total'] + else { + let interval_string = j.toString() + ' - ' + (j + intervalRange - 1).toString() + let temp = {} + temp[intervalKey] = interval_string; + temp['total'] = 0; + aux.push(temp); } } - returnArray.push(aux) - var max_of_array = Math.max(...numEntries); - for(let i = 0; i < returnArray.length; i++){ - if(numEntries[i] <= max_of_array){ - let beginOfInterval = (numEntries[i]) * intervalRange; - for(let j = 0; j < (max_of_array-numEntries[i])+1; j++){ - returnArray[i][beginOfInterval.toString() + ` - ${beginOfInterval+intervalRange}`] = 0; - beginOfInterval = beginOfInterval + intervalRange; - } + if (limit < UpperBound) { + let interval_string = '≥' + limit.toString() + if (yearKey) { + let temp = {} + temp[yearKey] = workData[i][0][yearKey]; + temp[intervalKey] = interval_string; + temp['total'] = 0; + aux.push(temp); + } + else { + let temp = {} + temp[intervalKey] = interval_string; + temp['total'] = 0; + aux.push(temp); } } - return returnArray; - } - else{ - return dataPerYear; - } + // Iterate through the elements to be grouped + for(let j = 0; j < workData[i].length; j++) { + + // Find index on aux for current data + let value = parseInt(workData[i][j][intervalKey]) + value = (value > limit ? limit+1 : value) + let index = value - LowerBound + index = (index - (index % intervalRange)) / intervalRange + + // Update group total (Undefined data is discarted) + if (aux[index]) + aux[index]['total'] += parseInt(workData[i][j]['total']) + + } + dataPerYear = dataPerYear.concat(aux); + } + return dataPerYear; } export function getDDValue(e) { -- GitLab From 4d0e463b4b66cf443e01a689fd5656fef4f04c18 Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Wed, 20 Feb 2019 10:46:40 -0300 Subject: [PATCH 06/23] Add hooks and context to store environment settings --- src/App.js | 44 +++++++++-- src/Components/MainCard.js | 113 ++++++++++++++++++--------- src/MainPage.js | 1 + src/Store.js | 29 +++++++ src/SubPages/QuilombolaIndicator3.js | 4 +- src/index.js | 10 ++- 6 files changed, 154 insertions(+), 47 deletions(-) create mode 100644 src/Store.js diff --git a/src/App.js b/src/App.js index c95cace2..1c0e5911 100644 --- a/src/App.js +++ b/src/App.js @@ -31,14 +31,46 @@ import Youth from './Youth' import Maps from './Maps' import AfricanOrigin from './AfricanOrigin' import Quilombola from './Quilombola' +import { Store } from './Store'; -class App extends Component { - render() { - return ( +// class App extends Component { + // render() { + // return ( + // <Router> + // <div> + // <Route exact={true} path="/" render={(props) => <MainPage {...props} teste="teste"/>}/> + // <Route exact={true} path="/cotas" component={RacialQuotas} /> + // <Route exact={true} path="/quilombola" component={Quilombola} /> + // <Route exact={true} path="/sobre" component={About} /> + // <Route exact={true} path="/quilombolas" component={Quilombolas} /> + // <Route exact={true} path="/juventude" component={Youth} /> + // <Route exact={true} path="/mapas" component={Maps} /> + // <Route exact={true} path="/matrizAfricana" component={AfricanOrigin} /> + // </div> + // </Router> + // ); + // } + // } + + +function App() { + const { state, dispatch } = React.useContext(Store); + const setPageAction = (newPage) => { + return dispatch({ + type: 'SET_PAGE', + payload: newPage + }) + } + + React.useEffect(() => {}); + + return ( + <React.Fragment> + {console.log(state)} <Router> <div> - <Route exact={true} path="/" component={MainPage} /> + <Route exact={true} path="/" render={(props) => <MainPage {...props} teste="teste"/>}/> <Route exact={true} path="/cotas" component={RacialQuotas} /> <Route exact={true} path="/quilombola" component={Quilombola} /> <Route exact={true} path="/sobre" component={About} /> @@ -48,8 +80,8 @@ class App extends Component { <Route exact={true} path="/matrizAfricana" component={AfricanOrigin} /> </div> </Router> - ); - } + </React.Fragment> + ); } export default App; \ No newline at end of file diff --git a/src/Components/MainCard.js b/src/Components/MainCard.js index feea7f9a..e45b4cf6 100644 --- a/src/Components/MainCard.js +++ b/src/Components/MainCard.js @@ -25,49 +25,88 @@ import { Card, CardTitle } from 'react-materialize' import Cookies from 'universal-cookie'; import '../Styles/MainCard.css' +import { Store } from '../Store'; + var ck = new Cookies(); var contrastCK = new Cookies(); var cookieStatus = contrastCK.get('contrast'); -class MainCard extends Component { - - constructor(props) { - super(props); - this.setCookie = this.setCookie.bind(this); - } +function createRoutes(subpages, color) { - setCookie(e) { - ck.set('mainPageClicked',e.target.text); - } - render() { - - var { color, title, subpages, text, image } = this.props; - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast'; - color = 'mainPageContrast' - } - return ( - <div> - <Card className={`${contrastString}card-MainPage`} header={<CardTitle reveal image={require('../Images/'+image)} waves='light'/>} - title={title} - reveal={<div>{text}</div>}> - {this.createRoutes(subpages, color)} - </Card> - </div> - ); - } -// - createRoutes(subpages, color) { - const listItems = subpages['links'].map((subp, i) => - <a onClick={this.setCookie} key={subp} className={color+' waves-effect waves spacingInCard'} href={subpages['route']} > - {subp} - </a> - ); - return ( - <div className={'listMainPage'}>{listItems}</div> - ); + // Hook to set page context + const { state, dispatch } = React.useContext(Store); + const setPageAction = (newPage) => { + return dispatch({ + type: 'SET_PAGE', + payload: newPage + }) } + React.useEffect(()=>{}); + + const listItems = subpages['links'].map((subp, i) => + <a onClick={() => {setPageAction(subp) && console.log(subp)}} key={subp} className={color+' waves-effect waves spacingInCard'} href="#" > + {subp} + </a> + ); + return ( + <div className={'listMainPage'}>{listItems}</div> + ); } +function MainCard(props){ + + var { color, title, subpages, text, image } = props; + var contrastString = ''; + + return ( + <div> + <Card className={`${contrastString}card-MainPage`} header={<CardTitle reveal image={require('../Images/'+image)} waves='light'/>} + title={title} + reveal={<div>{text}</div>}> + {createRoutes(subpages, color)} + </Card> + </div> + ); +} +// class MainCard extends Component { + +// constructor(props) { +// super(props); +// this.setCookie = this.setCookie.bind(this); +// } + +// setCookie(e) { +// ck.set('mainPageClicked',e.target.text); +// } +// render() { + +// var { color, title, subpages, text, image } = this.props; +// var contrastString = ''; +// if(cookieStatus === 'true'){ +// contrastString = 'Contrast'; +// color = 'mainPageContrast' +// } +// return ( +// <div> +// <Card className={`${contrastString}card-MainPage`} header={<CardTitle reveal image={require('../Images/'+image)} waves='light'/>} +// title={title} +// reveal={<div>{text}</div>}> +// {this.createRoutes(subpages, color)} +// </Card> +// </div> +// ); +// } +// // +// createRoutes(subpages, color) { +// const listItems = subpages['links'].map((subp, i) => +// <a onClick={this.setCookie} key={subp} className={color+' waves-effect waves spacingInCard'} href={subpages['route']} > +// {subp} +// </a> +// ); +// return ( +// <div className={'listMainPage'}>{listItems}</div> +// ); +// } +// } + export default MainCard; \ No newline at end of file diff --git a/src/MainPage.js b/src/MainPage.js index 331d6af4..a855ea85 100644 --- a/src/MainPage.js +++ b/src/MainPage.js @@ -35,6 +35,7 @@ var cookieStatus = contrastCK.get('contrast'); class MainPage extends Component { render() { + var contrastString = ''; if(cookieStatus === 'true'){ contrastString = 'Contrast' diff --git a/src/Store.js b/src/Store.js new file mode 100644 index 00000000..ea2a616c --- /dev/null +++ b/src/Store.js @@ -0,0 +1,29 @@ +import React from 'react' + +export const Store = React.createContext(); + +const initialStore = { + page: '', + contrast: false +} + +function reducer(state, action) { + switch (action.type) { + case 'SET_PAGE': + return { ...state, page: action.payload }; + default: + return state; + } +} + +export function StoreProvider(props) { + + const [state, dispatch] = React.useReducer(reducer, initialStore); + const value = { state, dispatch }; + + return ( + <Store.Provider value={value}> + {props.children} + </Store.Provider> + ) +} \ No newline at end of file diff --git a/src/SubPages/QuilombolaIndicator3.js b/src/SubPages/QuilombolaIndicator3.js index 5df14164..822cbd9f 100644 --- a/src/SubPages/QuilombolaIndicator3.js +++ b/src/SubPages/QuilombolaIndicator3.js @@ -279,8 +279,8 @@ class QuilombolaIndicator3 extends Component { lowerBound = (chartData[2][i]['ano_pesquisa'] < lowerBound ? chartData[2][i]['ano_pesquisa'] : lowerBound) } for (let i = 0; i <= upperBound - lowerBound; i++) { - workData[2*i] = { 'ano_pesquisa': lowerBound + i, 'genero':'M' } - workData[2*i+1] = { 'ano_pesquisa': lowerBound + i, 'genero': 'F' } + workData[2*i] = { 'ano_pesquisa': lowerBound + i, 'genero':`M - ${lowerBound + i}` } + workData[2 * i + 1] = { 'ano_pesquisa': lowerBound + i, 'genero': `F - ${lowerBound + i}` } for (let j = 0; j < chartData[2].length; j++) { if (chartData[2][j]['ano_pesquisa'] == lowerBound+i) { workData[2*i][chartData[2][j]['idade']] = chartData[2][j]['total'] diff --git a/src/index.js b/src/index.js index b9f19c7a..f9fdda0d 100644 --- a/src/index.js +++ b/src/index.js @@ -25,6 +25,12 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import registerServiceWorker from './registerServiceWorker'; - -ReactDOM.render(<App />, document.getElementById('root')); +import { StoreProvider } from './Store'; + +ReactDOM.render( + <StoreProvider> + <App /> + </StoreProvider>, + document.getElementById('root') +); registerServiceWorker(); -- GitLab From 6640d7b2d36c67cdc9ce35447e8cd3c1a8fa9f6f Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Wed, 20 Feb 2019 12:00:27 -0300 Subject: [PATCH 07/23] Fix link to subpages and change navigation bar location --- src/App.js | 33 +++++++++++++-------------------- src/Components/MainBanner.js | 2 +- src/Components/MainCard.js | 5 +++-- src/Components/NavigationBar.js | 4 ++-- src/MainPage.js | 2 -- src/Quilombolas.js | 9 +++++---- 6 files changed, 24 insertions(+), 31 deletions(-) diff --git a/src/App.js b/src/App.js index 1c0e5911..53218653 100644 --- a/src/App.js +++ b/src/App.js @@ -32,26 +32,14 @@ import Maps from './Maps' import AfricanOrigin from './AfricanOrigin' import Quilombola from './Quilombola' import { Store } from './Store'; +import NavigationBar from './Components/NavigationBar' +import AppFooter from './Components/AppFooter' +import ContrastBar from './Components/ContrastBar' +import MainBanner from './Components/MainBanner' +import BarraBrasil from './Components/BarraBrasil' + -// class App extends Component { - // render() { - // return ( - // <Router> - // <div> - // <Route exact={true} path="/" render={(props) => <MainPage {...props} teste="teste"/>}/> - // <Route exact={true} path="/cotas" component={RacialQuotas} /> - // <Route exact={true} path="/quilombola" component={Quilombola} /> - // <Route exact={true} path="/sobre" component={About} /> - // <Route exact={true} path="/quilombolas" component={Quilombolas} /> - // <Route exact={true} path="/juventude" component={Youth} /> - // <Route exact={true} path="/mapas" component={Maps} /> - // <Route exact={true} path="/matrizAfricana" component={AfricanOrigin} /> - // </div> - // </Router> - // ); - // } - // } function App() { @@ -63,11 +51,14 @@ function App() { }) } - React.useEffect(() => {}); + //React.useEffect(() => {}); return ( <React.Fragment> {console.log(state)} + <div id={`mainPage`}> + <ContrastBar /> + <BarraBrasil /> <Router> <div> <Route exact={true} path="/" render={(props) => <MainPage {...props} teste="teste"/>}/> @@ -79,7 +70,9 @@ function App() { <Route exact={true} path="/mapas" component={Maps} /> <Route exact={true} path="/matrizAfricana" component={AfricanOrigin} /> </div> - </Router> + </Router> + <AppFooter /> + </div> </React.Fragment> ); } diff --git a/src/Components/MainBanner.js b/src/Components/MainBanner.js index 045a3131..a49738df 100644 --- a/src/Components/MainBanner.js +++ b/src/Components/MainBanner.js @@ -44,7 +44,7 @@ class MainBanner extends Component { } return ( <div> - <BarraBrasil /> + {/* <BarraBrasil /> */} <Card id={`${contrastString}mainBannerCard`}> <Row> <Col s={12} m={6}> diff --git a/src/Components/MainCard.js b/src/Components/MainCard.js index e45b4cf6..d497c9cb 100644 --- a/src/Components/MainCard.js +++ b/src/Components/MainCard.js @@ -21,6 +21,7 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; +import { Link } from 'react-router-dom' import { Card, CardTitle } from 'react-materialize' import Cookies from 'universal-cookie'; import '../Styles/MainCard.css' @@ -44,9 +45,9 @@ function createRoutes(subpages, color) { React.useEffect(()=>{}); const listItems = subpages['links'].map((subp, i) => - <a onClick={() => {setPageAction(subp) && console.log(subp)}} key={subp} className={color+' waves-effect waves spacingInCard'} href="#" > + <Link onClick={() => { setPageAction(subp) && console.log(subp) }} key={subp} className={color + ' waves-effect waves spacingInCard'} to={subpages['route']} > {subp} - </a> + </Link> ); return ( <div className={'listMainPage'}>{listItems}</div> diff --git a/src/Components/NavigationBar.js b/src/Components/NavigationBar.js index 0217ef2f..9b843a12 100644 --- a/src/Components/NavigationBar.js +++ b/src/Components/NavigationBar.js @@ -46,8 +46,8 @@ class NavigationBar extends Component { } return ( <div> - <BarraBrasil /> - <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{width: 200, marginLeft: 20, marginTop: 15}}/>} right> + {/* <BarraBrasil /> */} + <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{width: 200, marginLeft: 20, marginTop: 15}}/>} right> <NavItem onClick={this.removeCSS} id={`${contrastString}navBarInicio`} className={'z-depth-0 '+actualPath} href='/'>InÃcio</NavItem> <NavItem onClick={this.removeCSS} id={`${contrastString}navBarBrasilQ`} className={'z-depth-0 '+actualPath} href='/quilombolas'>Brasil Quilombola</NavItem> <NavItem onClick={this.removeCSS} id={`${contrastString}navBarJuventudeV`} className={'z-depth-0 '+actualPath} href='/juventude'>Juventude Viva</NavItem> diff --git a/src/MainPage.js b/src/MainPage.js index a855ea85..a609a7be 100644 --- a/src/MainPage.js +++ b/src/MainPage.js @@ -42,7 +42,6 @@ class MainPage extends Component { } return ( <div id={`${contrastString}mainPage`}> - <ContrastBar/> <MainBanner /> <Row/> <Row style={undefined}> @@ -69,7 +68,6 @@ class MainPage extends Component { <MainCard color='mainPageRed' title='Quilombola' subpages={subpages6} text={text6} image={'brasil_quilombola.png'}/> </Col> </Row> - <AppFooter /> </div> ); } diff --git a/src/Quilombolas.js b/src/Quilombolas.js index eb26bc6c..520adb3a 100644 --- a/src/Quilombolas.js +++ b/src/Quilombolas.js @@ -35,6 +35,8 @@ import Cookies from 'universal-cookie'; import {sleep, homeURL} from './enviroment' import ContrastBar from './Components/ContrastBar' +import { Store } from './Store' + var ck = new Cookies(); var contrastCK = new Cookies(); @@ -71,12 +73,12 @@ class Quilombolas extends Component { } else{ // Redirect user to the main page if he/she do not have a cookie - window.location.href = homeURL() + //window.location.href = homeURL() + console.log("teste") } return ( <div id={`${contrastString}mainPage`}> - <ContrastBar/> - <NavigationBar/> + <NavigationBar /> <div id='contentTabsDiv'> <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageRedTab`} onChange={this.whereIAm}> <Tab title="Apresentação" active={states["APRESENTAÇÃO"]}> <QuilombolaPresentation/> </Tab> @@ -87,7 +89,6 @@ class Quilombolas extends Component { <Tab title="Sobre" active={states["SOBRE"]}> <QuilombolaAbout/></Tab> </Tabs> </div> - <AppFooter/> </div> ); } -- GitLab From 91252644fafff0f52fc6beecf941e7b6e32ed4b6 Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Thu, 21 Feb 2019 10:59:47 -0300 Subject: [PATCH 08/23] Implement tabs without cookies --- src/App.js | 30 +++++++------- src/Components/MainCard.js | 1 + src/MainPage.js | 2 +- src/Quilombolas.js | 84 ++++++++++++-------------------------- 4 files changed, 44 insertions(+), 73 deletions(-) diff --git a/src/App.js b/src/App.js index 53218653..b8c64e0a 100644 --- a/src/App.js +++ b/src/App.js @@ -57,21 +57,21 @@ function App() { <React.Fragment> {console.log(state)} <div id={`mainPage`}> - <ContrastBar /> - <BarraBrasil /> - <Router> - <div> - <Route exact={true} path="/" render={(props) => <MainPage {...props} teste="teste"/>}/> - <Route exact={true} path="/cotas" component={RacialQuotas} /> - <Route exact={true} path="/quilombola" component={Quilombola} /> - <Route exact={true} path="/sobre" component={About} /> - <Route exact={true} path="/quilombolas" component={Quilombolas} /> - <Route exact={true} path="/juventude" component={Youth} /> - <Route exact={true} path="/mapas" component={Maps} /> - <Route exact={true} path="/matrizAfricana" component={AfricanOrigin} /> - </div> - </Router> - <AppFooter /> + <ContrastBar /> + <BarraBrasil /> + <Router> + <div> + <Route exact={true} path="/" render={(props) => <MainPage {...props} teste="teste"/>}/> + <Route exact={true} path="/cotas" component={RacialQuotas} /> + <Route exact={true} path="/quilombola" component={Quilombola} /> + <Route exact={true} path="/sobre" component={About} /> + <Route exact={true} path="/quilombolas" component={Quilombolas} /> + <Route exact={true} path="/juventude" component={Youth} /> + <Route exact={true} path="/mapas" component={Maps} /> + <Route exact={true} path="/matrizAfricana" component={AfricanOrigin} /> + </div> + </Router> + <AppFooter /> </div> </React.Fragment> ); diff --git a/src/Components/MainCard.js b/src/Components/MainCard.js index d497c9cb..f4103f24 100644 --- a/src/Components/MainCard.js +++ b/src/Components/MainCard.js @@ -37,6 +37,7 @@ function createRoutes(subpages, color) { // Hook to set page context const { state, dispatch } = React.useContext(Store); const setPageAction = (newPage) => { + window.scrollTo(0, 0) return dispatch({ type: 'SET_PAGE', payload: newPage diff --git a/src/MainPage.js b/src/MainPage.js index a609a7be..c9e26e3e 100644 --- a/src/MainPage.js +++ b/src/MainPage.js @@ -67,7 +67,7 @@ class MainPage extends Component { <Col m={12} l={5} className={'mainPageMargin'} id='soloCard'> <MainCard color='mainPageRed' title='Quilombola' subpages={subpages6} text={text6} image={'brasil_quilombola.png'}/> </Col> - </Row> + </Row> </div> ); } diff --git a/src/Quilombolas.js b/src/Quilombolas.js index 520adb3a..91002fa0 100644 --- a/src/Quilombolas.js +++ b/src/Quilombolas.js @@ -37,71 +37,41 @@ import ContrastBar from './Components/ContrastBar' import { Store } from './Store' - -var ck = new Cookies(); var contrastCK = new Cookies(); var cookieStatus = contrastCK.get('contrast'); +function Quilombolas() { -class Quilombolas extends Component { - constructor(props) { - super(props); - this.whereIAm = this.whereIAm.bind(this); + var contrastString = ''; + if(cookieStatus === 'true'){ + contrastString = 'Contrast' } - componentDidMount() { - this.whereIAm() + // + const { state, dispatch } = React.useContext(Store); + let states = { "APRESENTAÇÃO": false, "EIXO 1": false, "EIXO 2": false, "EIXO 3": false, "EIXO 4": false, "SOBRE": false } + if (state.page in states) { + states[state.page] = true + } + else { + states[0] = true } - render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - const cookie = new Cookies(); - var clicked = cookie.get('mainPageClicked') - var states = {"APRESENTAÇÃO": false, "EIXO 1": true, "EIXO 2": false, "EIXO 3": false, "EIXO 4": false,"SOBRE": false} - if (clicked !== undefined){ - if (clicked in states){ - states["EIXO 1"] = false; - states[clicked] = true; - } - else{ - states = {"APRESENTAÇÃO": true, "EIXO 1": false, "EIXO 2": false, "EIXO 3": false, "EIXO 4": false,"SOBRE": false} - ck.set('mainPageClicked', 'APRESENTAÇÃO'); - } - } - else{ - // Redirect user to the main page if he/she do not have a cookie - //window.location.href = homeURL() - console.log("teste") - } - return ( - <div id={`${contrastString}mainPage`}> - <NavigationBar /> - <div id='contentTabsDiv'> - <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageRedTab`} onChange={this.whereIAm}> - <Tab title="Apresentação" active={states["APRESENTAÇÃO"]}> <QuilombolaPresentation/> </Tab> - <Tab title="Eixo 1" active={states["EIXO 1"]}> <Eixo1/> </Tab> - <Tab title="Eixo 2" active={states["EIXO 2"]}> <Eixo2/> </Tab> - <Tab title="Eixo 3" active={states["EIXO 3"]}> <Eixo3/> </Tab> - <Tab title="Eixo 4" active={states["EIXO 4"]}> <Eixo4/> </Tab> - <Tab title="Sobre" active={states["SOBRE"]}> <QuilombolaAbout/></Tab> - </Tabs> - </div> + return ( + <div id={`${contrastString}mainPage`}> + <NavigationBar /> + <div id='contentTabsDiv'> + {/* <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageRedTab`} onChange={this.whereIAm}> */} + <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageRedTab`}> + <Tab title="Apresentação" active={states["APRESENTAÇÃO"]}> <QuilombolaPresentation/> </Tab> + <Tab title="Eixo 1" active={states["EIXO 1"]}> <Eixo1/> </Tab> + <Tab title="Eixo 2" active={states["EIXO 2"]}> <Eixo2/> </Tab> + <Tab title="Eixo 3" active={states["EIXO 3"]}> <Eixo3/> </Tab> + <Tab title="Eixo 4" active={states["EIXO 4"]}> <Eixo4/> </Tab> + <Tab title="Sobre" active={states["SOBRE"]}> <QuilombolaAbout/></Tab> + </Tabs> </div> - ); - } - - whereIAm(e, ev){ - if(ev){ - ck.set('mainPageClicked', ev.target.innerText); - this.setState({visited:ev.target.innerText}); - } - sleep(1).then(() => { - if(document.getElementsByClassName('clearmapbtn')[0]) - document.getElementsByClassName('clearmapbtn')[0].click() - }); - } + </div> + ); } export default Quilombolas; -- GitLab From 18c72084a4667824b6baec442d807de9e69d073d Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Thu, 21 Feb 2019 12:00:28 -0300 Subject: [PATCH 09/23] Add tab support to page context --- src/Components/MainBanner.js | 4 - src/Components/MainCard.js | 42 +------ src/Components/NavigationBar.js | 2 - src/MainPage.js | 4 - src/Quilombolas.js | 9 +- src/Store.js | 20 +++ src/SubPages/Eixo1.js | 215 +++++++++++++++----------------- src/SubPages/Eixo2.js | 22 ++-- src/SubPages/Eixo3.js | 162 ++++++++++++------------ src/SubPages/Eixo4.js | 11 +- src/SubPages/QuilombolaAbout.js | 177 +++++++++++++------------- 11 files changed, 304 insertions(+), 364 deletions(-) diff --git a/src/Components/MainBanner.js b/src/Components/MainBanner.js index a49738df..25a2011a 100644 --- a/src/Components/MainBanner.js +++ b/src/Components/MainBanner.js @@ -23,16 +23,13 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; import logo from '../Images/SMPPIRBanner.png'; import contrastLogo from '../Images/SMPPIRBannerContrast.png' -import BarraBrasil from './BarraBrasil' import { Card, Row, Col } from 'react-materialize' import Cookies from 'universal-cookie'; - import '../Styles/MainBanner.css' var contrastCK = new Cookies(); var cookieStatus = contrastCK.get('contrast'); var img = logo; -//{`${contrastString}mainPage`} class MainBanner extends Component { @@ -44,7 +41,6 @@ class MainBanner extends Component { } return ( <div> - {/* <BarraBrasil /> */} <Card id={`${contrastString}mainBannerCard`}> <Row> <Col s={12} m={6}> diff --git a/src/Components/MainCard.js b/src/Components/MainCard.js index f4103f24..3759e4f0 100644 --- a/src/Components/MainCard.js +++ b/src/Components/MainCard.js @@ -46,7 +46,7 @@ function createRoutes(subpages, color) { React.useEffect(()=>{}); const listItems = subpages['links'].map((subp, i) => - <Link onClick={() => { setPageAction(subp) && console.log(subp) }} key={subp} className={color + ' waves-effect waves spacingInCard'} to={subpages['route']} > + <Link onClick={() => { setPageAction(subp) }} key={subp} className={color + ' waves-effect waves spacingInCard'} to={subpages['route']} > {subp} </Link> ); @@ -70,45 +70,5 @@ function MainCard(props){ </div> ); } -// class MainCard extends Component { - -// constructor(props) { -// super(props); -// this.setCookie = this.setCookie.bind(this); -// } - -// setCookie(e) { -// ck.set('mainPageClicked',e.target.text); -// } -// render() { - -// var { color, title, subpages, text, image } = this.props; -// var contrastString = ''; -// if(cookieStatus === 'true'){ -// contrastString = 'Contrast'; -// color = 'mainPageContrast' -// } -// return ( -// <div> -// <Card className={`${contrastString}card-MainPage`} header={<CardTitle reveal image={require('../Images/'+image)} waves='light'/>} -// title={title} -// reveal={<div>{text}</div>}> -// {this.createRoutes(subpages, color)} -// </Card> -// </div> -// ); -// } -// // -// createRoutes(subpages, color) { -// const listItems = subpages['links'].map((subp, i) => -// <a onClick={this.setCookie} key={subp} className={color+' waves-effect waves spacingInCard'} href={subpages['route']} > -// {subp} -// </a> -// ); -// return ( -// <div className={'listMainPage'}>{listItems}</div> -// ); -// } -// } export default MainCard; \ No newline at end of file diff --git a/src/Components/NavigationBar.js b/src/Components/NavigationBar.js index 9b843a12..0ed047a7 100644 --- a/src/Components/NavigationBar.js +++ b/src/Components/NavigationBar.js @@ -23,7 +23,6 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; import logo from '../Images/PortalLogo.png'; import logoContrast from '../Images/PortalLogoContrast.png' -import BarraBrasil from './BarraBrasil' import { Navbar, NavItem } from 'react-materialize' import Cookies from 'universal-cookie'; @@ -46,7 +45,6 @@ class NavigationBar extends Component { } return ( <div> - {/* <BarraBrasil /> */} <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{width: 200, marginLeft: 20, marginTop: 15}}/>} right> <NavItem onClick={this.removeCSS} id={`${contrastString}navBarInicio`} className={'z-depth-0 '+actualPath} href='/'>InÃcio</NavItem> <NavItem onClick={this.removeCSS} id={`${contrastString}navBarBrasilQ`} className={'z-depth-0 '+actualPath} href='/quilombolas'>Brasil Quilombola</NavItem> diff --git a/src/MainPage.js b/src/MainPage.js index c9e26e3e..b49902d7 100644 --- a/src/MainPage.js +++ b/src/MainPage.js @@ -18,15 +18,11 @@ You should have received a copy of the GNU General Public License along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. */ - - import React, { Component } from 'react'; import MainBanner from './Components/MainBanner' -import AppFooter from './Components/AppFooter' import MainCard from './Components/MainCard' import { Col, Row } from 'react-materialize' import Cookies from 'universal-cookie'; -import ContrastBar from './Components/ContrastBar' import './Styles/MainPage.css' var contrastCK = new Cookies(); diff --git a/src/Quilombolas.js b/src/Quilombolas.js index 91002fa0..d5e0c8c5 100644 --- a/src/Quilombolas.js +++ b/src/Quilombolas.js @@ -28,13 +28,9 @@ import Eixo3 from './SubPages/Eixo3' import Eixo4 from './SubPages/Eixo4' import QuilombolaPresentation from './SubPages/QuilombolaPresentation' import QuilombolaAbout from './SubPages/QuilombolaAbout' -import AppFooter from './Components/AppFooter' import { Tab, Tabs } from 'react-materialize'; import './Styles/Quilombolas.css'; import Cookies from 'universal-cookie'; -import {sleep, homeURL} from './enviroment' -import ContrastBar from './Components/ContrastBar' - import { Store } from './Store' var contrastCK = new Cookies(); @@ -47,21 +43,20 @@ function Quilombolas() { contrastString = 'Contrast' } - // + // Get imformation about which page was accessed const { state, dispatch } = React.useContext(Store); let states = { "APRESENTAÇÃO": false, "EIXO 1": false, "EIXO 2": false, "EIXO 3": false, "EIXO 4": false, "SOBRE": false } if (state.page in states) { states[state.page] = true } else { - states[0] = true + states["APRESENTAÇÃO"] = true } return ( <div id={`${contrastString}mainPage`}> <NavigationBar /> <div id='contentTabsDiv'> - {/* <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageRedTab`} onChange={this.whereIAm}> */} <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageRedTab`}> <Tab title="Apresentação" active={states["APRESENTAÇÃO"]}> <QuilombolaPresentation/> </Tab> <Tab title="Eixo 1" active={states["EIXO 1"]}> <Eixo1/> </Tab> diff --git a/src/Store.js b/src/Store.js index ea2a616c..8016bc84 100644 --- a/src/Store.js +++ b/src/Store.js @@ -1,3 +1,23 @@ +/* +Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of Portal-SMPPIR-React. + +Portal-SMPPIR-React is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Portal-SMPPIR-React is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. +*/ + import React from 'react' export const Store = React.createContext(); diff --git a/src/SubPages/Eixo1.js b/src/SubPages/Eixo1.js index 24302706..24e4fda2 100644 --- a/src/SubPages/Eixo1.js +++ b/src/SubPages/Eixo1.js @@ -36,14 +36,13 @@ import Cookies from 'universal-cookie'; import Map from '../Components/Map'; -import csv1 from './CSVoriginais/pbq/comunidades_certificadas_por_uf.csv' -import csv2 from './CSVoriginais/pbq/comunidades_tituladas_por_uf_ano.csv' -import csv4 from './CSVoriginais/pbq/COMUNIDADES.csv' -import csv5 from './CSVoriginais/pbq/comunidades_por_status_por_uf.csv' +// import csv1 from './CSVoriginais/pbq/comunidades_certificadas_por_uf.csv' +// import csv2 from './CSVoriginais/pbq/comunidades_tituladas_por_uf_ano.csv' +// import csv4 from './CSVoriginais/pbq/COMUNIDADES.csv' +// import csv5 from './CSVoriginais/pbq/comunidades_por_status_por_uf.csv' import './Styles/Eixo1.css' -var ck = new Cookies(); var contrastCK = new Cookies(); var cookieStatus = contrastCK.get('contrast'); @@ -62,116 +61,112 @@ const customNames = {"Ano":"Ano", "Comunidades Certificadas":"Comunidades Certificadas"} - class Eixo1 extends Component { - constructor(props) { - super(props); - this.state = { - clickedInMap: null - }; - this.getMapClick = this.getMapClick.bind(this); - this.clearMap = this.clearMap.bind(this); - } +class Eixo1 extends Component { + constructor(props) { + super(props); + this.state = { + clickedInMap: null + }; + this.getMapClick = this.getMapClick.bind(this); + this.clearMap = this.clearMap.bind(this); + } componentDidMount(){ - if (ck.get('mainPageClicked') === "EIXO 1") - this.clearMap() + this.clearMap() } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "EIXO 1") - return ( - <div> - <Row> - <Col l={3} m={5} s={8}> - <h4 className="eixoHeaderQ">Eixo 1</h4> - </Col> - <Col l={5} m={8} s={8}> - <p className="eixoSubHeader"> Clique sobre qualquer estado em um mapa ou - tabela para apresentar os dados somente daquele estado. Clique - novamente para voltar aos dados do Brasil. </p> - </Col> - </Row> - - <div className="e1pannels"> - <Card id="e1pannel-1" title="Certificações Emitidas"> - <GrayBar text ="por UF"/> - <Map getMapClick={this.getMapClick} /> - - <Button className="clearmapbtn" onClick={this.clearMap}> Limpar Mapa </Button> - - <p>As comunidades certificadas estão distribuÃdas por todo o Brasil, com - maior concentração nos estados do Maranhão e da Bahia.</p> - - {data.gete1p1()[getStateExtendedName(this.state.clickedInMap).currentState] ? ( - <UfBar img={MapMarker} ufname={getStateExtendedName(this.state.clickedInMap).currentState} val={data.gete1p1()[getStateExtendedName(this.state.clickedInMap).currentState].Certificadas + " comunidades"}/> - ):( - <UfBar img={MapMarker} ufname={getStateExtendedName(this.state.clickedInMap).currentState} val="Sem informação"/> - )} - <CardFooter fonte="Fundação Cultural Palmares / MinC (Jan, 2016)"/> - </Card> - - <Card id="e1pannel-2" title="Evoluções de Certificações e Regularizações"> - <GrayBar text="Certificações Emitidas e Tituladas por Ano"/> - - - {data.gete1p2()[getStateExtendedName(this.state.clickedInMap).currentState] ? ( - <BuildLineNotFixed data={data.gete1p2()[getStateExtendedName(this.state.clickedInMap).currentState]} customKeys={customNames} dataKey="Ano"/> - ):( - <BuildLineNotFixed data={nullInfo} customKeys={nullKeys} dataKey="Ano"/> - )} - - <CardFooter fonte="Comitê Gestor do Programa Brasil Quilombola, Fundação Cultural Palmares e INCRA (Jan, 2016)"/> - </Card> - - <Card id="e1pannel-3" title="Titulações"> - <Table header={["Unidade Federal","Comunidades Tituladas"]} body ={data.gete1p31()} classes="striped smallCells"/> - - {data.gete1p32()[getStateExtendedName(this.state.clickedInMap).currentState] ? ( - <UfBar ufname={getStateExtendedName(this.state.clickedInMap).currentState} val={data.gete1p32()[getStateExtendedName(this.state.clickedInMap).currentState] + " comunidades tituladas"}/> - ):( - <UfBar ufname={getStateExtendedName(this.state.clickedInMap).currentState} val="Sem informação"/> - )} - - <CardFooter fonte="INCRA (Jan, 2016)"/> - </Card> - - <Card id="e1pannel-4" title="Lista de Comunidades Reconhecidas Oficialmente pelo estado"> - <p>Clique na comunidade para ter acesso ao mapa com informações detalhadas sobre ela</p> - - <Table header={["ID","Comunidade","Território","Certificação","Titulação"]} body={this.jsonToArray(data.gete1p4()[getStateExtendedName(this.state.clickedInMap).currentState])} classes="striped smallCells" divClasses="scrolltable"/> - - <CardFooter fonte="Comitê Gestor do Programa Brasil Quilombola, Fundação Cultural Palmares / MinC e INCRA (Jan, 2016)"/> - </Card> - - <Card id="e1pannel-5" title="Estágio dos processos"> - <GrayBar text="por Estágio"/> - {data.gete1p5()[getStateExtendedName(this.state.clickedInMap).currentState] ? ( - <BuildPie data={data.gete1p5()[getStateExtendedName(this.state.clickedInMap).currentState]} dataKey="total" nameKey="estagio" /> - ):( - <BuildPie data={nullInfo} dataKey="valor" nameKey="tipo" /> - )} - - <CardFooter fonte="INCRA (Jan, 2016)"/> - </Card> - </div> - </div> - ); - else return <div></div> - + var contrastString = ''; + if(cookieStatus === 'true'){ + contrastString = 'Contrast' } + return ( + <div> + <Row> + <Col l={3} m={5} s={8}> + <h4 className="eixoHeaderQ">Eixo 1</h4> + </Col> + <Col l={5} m={8} s={8}> + <p className="eixoSubHeader"> Clique sobre qualquer estado em um mapa ou + tabela para apresentar os dados somente daquele estado. Clique + novamente para voltar aos dados do Brasil. </p> + </Col> + </Row> + + <div className="e1pannels"> + <Card id="e1pannel-1" title="Certificações Emitidas"> + <GrayBar text ="por UF"/> + <Map getMapClick={this.getMapClick} /> + + <Button className="clearmapbtn" onClick={this.clearMap}> Limpar Mapa </Button> + + <p>As comunidades certificadas estão distribuÃdas por todo o Brasil, com + maior concentração nos estados do Maranhão e da Bahia.</p> + + {data.gete1p1()[getStateExtendedName(this.state.clickedInMap).currentState] ? ( + <UfBar img={MapMarker} ufname={getStateExtendedName(this.state.clickedInMap).currentState} val={data.gete1p1()[getStateExtendedName(this.state.clickedInMap).currentState].Certificadas + " comunidades"}/> + ):( + <UfBar img={MapMarker} ufname={getStateExtendedName(this.state.clickedInMap).currentState} val="Sem informação"/> + )} + <CardFooter fonte="Fundação Cultural Palmares / MinC (Jan, 2016)"/> + </Card> + + <Card id="e1pannel-2" title="Evoluções de Certificações e Regularizações"> + <GrayBar text="Certificações Emitidas e Tituladas por Ano"/> + + + {data.gete1p2()[getStateExtendedName(this.state.clickedInMap).currentState] ? ( + <BuildLineNotFixed data={data.gete1p2()[getStateExtendedName(this.state.clickedInMap).currentState]} customKeys={customNames} dataKey="Ano"/> + ):( + <BuildLineNotFixed data={nullInfo} customKeys={nullKeys} dataKey="Ano"/> + )} + + <CardFooter fonte="Comitê Gestor do Programa Brasil Quilombola, Fundação Cultural Palmares e INCRA (Jan, 2016)"/> + </Card> + + <Card id="e1pannel-3" title="Titulações"> + <Table header={["Unidade Federal","Comunidades Tituladas"]} body ={data.gete1p31()} classes="striped smallCells"/> + + {data.gete1p32()[getStateExtendedName(this.state.clickedInMap).currentState] ? ( + <UfBar ufname={getStateExtendedName(this.state.clickedInMap).currentState} val={data.gete1p32()[getStateExtendedName(this.state.clickedInMap).currentState] + " comunidades tituladas"}/> + ):( + <UfBar ufname={getStateExtendedName(this.state.clickedInMap).currentState} val="Sem informação"/> + )} + + <CardFooter fonte="INCRA (Jan, 2016)"/> + </Card> + + <Card id="e1pannel-4" title="Lista de Comunidades Reconhecidas Oficialmente pelo estado"> + <p>Clique na comunidade para ter acesso ao mapa com informações detalhadas sobre ela</p> + + <Table header={["ID","Comunidade","Território","Certificação","Titulação"]} body={this.jsonToArray(data.gete1p4()[getStateExtendedName(this.state.clickedInMap).currentState])} classes="striped smallCells" divClasses="scrolltable"/> + + <CardFooter fonte="Comitê Gestor do Programa Brasil Quilombola, Fundação Cultural Palmares / MinC e INCRA (Jan, 2016)"/> + </Card> + + <Card id="e1pannel-5" title="Estágio dos processos"> + <GrayBar text="por Estágio"/> + {data.gete1p5()[getStateExtendedName(this.state.clickedInMap).currentState] ? ( + <BuildPie data={data.gete1p5()[getStateExtendedName(this.state.clickedInMap).currentState]} dataKey="total" nameKey="estagio" /> + ):( + <BuildPie data={nullInfo} dataKey="valor" nameKey="tipo" /> + )} + + <CardFooter fonte="INCRA (Jan, 2016)"/> + </Card> + </div> + </div> + ); + } - getMapClick(clicked) { - this.setState({clickedInMap: clicked}); - // console.log(JSON.stringify(data.gete1p32())) - } + getMapClick(clicked) { + this.setState({clickedInMap: clicked}); + // console.log(JSON.stringify(data.gete1p32())) + } - clearMap(){ - this.setState({clickedInMap: null}); - } + clearMap(){ + this.setState({clickedInMap: null}); + } jsonToArray(jsonData){ var returnArray = [] @@ -188,8 +183,6 @@ const customNames = {"Ano":"Ano", return(returnArray) } } +} - - } - - export default Eixo1; +export default Eixo1; diff --git a/src/SubPages/Eixo2.js b/src/SubPages/Eixo2.js index 20e2f66e..993bae6d 100644 --- a/src/SubPages/Eixo2.js +++ b/src/SubPages/Eixo2.js @@ -44,7 +44,6 @@ import csv5 from './CSVoriginais/pbq/pbq_luz_para_todos_por_regiao.csv' import csv6 from './CSVoriginais/pbq/pbq_mcasamvida_unidades_por_uf_ano.csv' import csv7 from './CSVoriginais/pbq/pbq_obras_saneamento_por_uf_ano.csv' -var ck = new Cookies(); var contrastCK = new Cookies(); var cookieStatus = contrastCK.get('contrast'); @@ -54,26 +53,24 @@ const customNames = {"Ano":"Ano", const customNames2 = {"Ano":"Ano", "Valor Contratado em Milhões":"Valor Contratado em Milhões"} - class Eixo2 extends Component { - constructor(props) { - super(props); - this.state = { - clickedInMap: null - }; - this.getMapClick = this.getMapClick.bind(this); - this.clearMap = this.clearMap.bind(this); +class Eixo2 extends Component { + constructor(props) { + super(props); + this.state = { + clickedInMap: null + }; + this.getMapClick = this.getMapClick.bind(this); + this.clearMap = this.clearMap.bind(this); } componentDidMount(){ - if (ck.get('mainPageClicked') === "EIXO 2") - this.clearMap() + this.clearMap() } render() { var contrastString = ''; if(cookieStatus === 'true'){ contrastString = 'Contrast' } - if (ck.get('mainPageClicked') === "EIXO 2") return ( <div> <Row> @@ -167,7 +164,6 @@ const customNames = {"Ano":"Ano", </div> </div> ); - else return <div></div> } getMapClick(clicked) { this.setState({clickedInMap: clicked}); diff --git a/src/SubPages/Eixo3.js b/src/SubPages/Eixo3.js index 41d8c18a..431f9294 100644 --- a/src/SubPages/Eixo3.js +++ b/src/SubPages/Eixo3.js @@ -44,8 +44,6 @@ import csv5 from './CSVoriginais/pbq/daps_emitidas_por_ano_por_uf.csv' import csv6 from './CSVoriginais/pbq/paa_quilombolas_por_ano_por_uf.csv' - -var ck = new Cookies(); var contrastCK = new Cookies(); var cookieStatus = contrastCK.get('contrast'); @@ -65,103 +63,102 @@ class Eixo3 extends Component { this.clearMap = this.clearMap.bind(this); } + componentDidMount() { + this.clearMap() + } + render() { var contrastString = ''; if(cookieStatus === 'true'){ contrastString = 'Contrast' } - if (ck.get('mainPageClicked') === "EIXO 3"){ - return ( - <div> - <Row> - <Col l={3} m={5} s={8}> - <h4 className={`${contrastString}eixoHeaderQ`}>Eixo 3</h4> - </Col> - <Col l={5} m={8} s={8}> - <p className={`${contrastString}eixoSubHeader`}> Clique sobre qualquer estado em um mapa ou tabela para apresentar os - dados somente daquele estado. Clique novamente para voltar aos dados do Brasil. </p> - </Col> - </Row> - - <div className="e3pannels"> - <Card id="e3pannel-1" title="Renda Média por Pessoa das FamÃlias Quilombolas, Segundo CadÚnico (R$)"> - <p className="center">Por UF</p> - <HeatMap getMapClick={this.getMapClick} datafield="Renda" data={data.gete3p1()} levels={[{"min":0,"max":170,"color":"#c0d1db"},{"min":170,"max":272,"color":"#849eb5"},{"min":272,"max":374,"color":"#476d90"},{"min":377,"max":200000,"color":"#0a3a6a"}]} /> - <Button className="clearmapbtn" onClick={this.clearMap}> Limpar Mapa </Button> - - <p>A maior concentração de renda entre as famÃlias quilombolas cadastradas se localiza nas regiões Centro-Oeste, Sudeste e Sul.</p> - {data.gete3p1()[getStateExtendedName(this.state.clickedInMap).currentState] ? ( - <UfBar img={coins} ufname={getStateExtendedName(this.state.clickedInMap).currentState} val={"R$"+ data.gete3p1()[getStateExtendedName(this.state.clickedInMap).currentState].Renda +" em média"}/> - ):( - <UfBar img={coins} ufname={getStateExtendedName(this.state.clickedInMap).currentState} val="Sem informação"/> + return ( + <div> + <Row> + <Col l={3} m={5} s={8}> + <h4 className={`${contrastString}eixoHeaderQ`}>Eixo 3</h4> + </Col> + <Col l={5} m={8} s={8}> + <p className={`${contrastString}eixoSubHeader`}> Clique sobre qualquer estado em um mapa ou tabela para apresentar os + dados somente daquele estado. Clique novamente para voltar aos dados do Brasil. </p> + </Col> + </Row> + + <div className="e3pannels"> + <Card id="e3pannel-1" title="Renda Média por Pessoa das FamÃlias Quilombolas, Segundo CadÚnico (R$)"> + <p className="center">Por UF</p> + <HeatMap getMapClick={this.getMapClick} datafield="Renda" data={data.gete3p1()} levels={[{"min":0,"max":170,"color":"#c0d1db"},{"min":170,"max":272,"color":"#849eb5"},{"min":272,"max":374,"color":"#476d90"},{"min":377,"max":200000,"color":"#0a3a6a"}]} /> + <Button className="clearmapbtn" onClick={this.clearMap}> Limpar Mapa </Button> + + <p>A maior concentração de renda entre as famÃlias quilombolas cadastradas se localiza nas regiões Centro-Oeste, Sudeste e Sul.</p> + {data.gete3p1()[getStateExtendedName(this.state.clickedInMap).currentState] ? ( + <UfBar img={coins} ufname={getStateExtendedName(this.state.clickedInMap).currentState} val={"R$"+ data.gete3p1()[getStateExtendedName(this.state.clickedInMap).currentState].Renda +" em média"}/> + ):( + <UfBar img={coins} ufname={getStateExtendedName(this.state.clickedInMap).currentState} val="Sem informação"/> + )} + <CardFooter data={csv1} source="Cadastro Único para Programas Sociais (CadÚnico) Min. do Desenvolvimento Social e Combate à Fome (MDS) (Jan, 2016)"/> + </Card> + + <Card id="e3pannel-2" title="FamÃlias Quilombolas Segundo Renda"> + <GrayBar text="Percentual de FamÃlias por Faixa de Renda"/> + <BuildPie data={this.fixdatap2(data.gete3p2()[getStateExtendedName(this.state.clickedInMap).currentState])} dataKey="FamÃlias" nameKey="Faixa de Renda" minHeight={300}/> + <GrayBar text="Número de FamÃlias por Faixa de Renda"/> + <BuildBar data={data.gete3p2()[getStateExtendedName(this.state.clickedInMap).currentState]} dataKey="Faixa de Renda" customKeys={{"Faixa de Renda":"Faixa de Renda","FamÃlias":"FamÃlias"}}/> + + <CardFooter data={csv2} source="CadÚnico / MDS (Jan, 2016)"/> + </Card> + + <Card id="e3pannel-3" title="Extrativismo"> + <GrayBar text="Percentual"/> + + {data.gete3p3()[getStateExtendedName(this.state.clickedInMap).currentState] ? (<div> + <BuildPie data={this.fixDataP3(data.gete3p3()[getStateExtendedName(this.state.clickedInMap).currentState])} dataKey="valor" nameKey="tipo" minHeight={250}/> + <ValueBar val={this.calculaPropP3(data.gete3p3()[getStateExtendedName(this.state.clickedInMap).currentState],0)+ "% são extrativistas"}/> + </div> + ):(<div> + <BuildPie data={nullInfo} dataKey="valor" nameKey="tipo" minHeight={250}/> + <ValueBar val={"Sem informação"}/> + </div> )} - <CardFooter data={csv1} source="Cadastro Único para Programas Sociais (CadÚnico) Min. do Desenvolvimento Social e Combate à Fome (MDS) (Jan, 2016)"/> - </Card> - - <Card id="e3pannel-2" title="FamÃlias Quilombolas Segundo Renda"> - <GrayBar text="Percentual de FamÃlias por Faixa de Renda"/> - <BuildPie data={this.fixdatap2(data.gete3p2()[getStateExtendedName(this.state.clickedInMap).currentState])} dataKey="FamÃlias" nameKey="Faixa de Renda" minHeight={300}/> - <GrayBar text="Número de FamÃlias por Faixa de Renda"/> - <BuildBar data={data.gete3p2()[getStateExtendedName(this.state.clickedInMap).currentState]} dataKey="Faixa de Renda" customKeys={{"Faixa de Renda":"Faixa de Renda","FamÃlias":"FamÃlias"}}/> - - <CardFooter data={csv2} source="CadÚnico / MDS (Jan, 2016)"/> - </Card> - - <Card id="e3pannel-3" title="Extrativismo"> - <GrayBar text="Percentual"/> - - {data.gete3p3()[getStateExtendedName(this.state.clickedInMap).currentState] ? (<div> - <BuildPie data={this.fixDataP3(data.gete3p3()[getStateExtendedName(this.state.clickedInMap).currentState])} dataKey="valor" nameKey="tipo" minHeight={250}/> - <ValueBar val={this.calculaPropP3(data.gete3p3()[getStateExtendedName(this.state.clickedInMap).currentState],0)+ "% são extrativistas"}/> - </div> - ):(<div> - <BuildPie data={nullInfo} dataKey="valor" nameKey="tipo" minHeight={250}/> - <ValueBar val={"Sem informação"}/> - </div> - )} - <p>O extrativismo é a principal atividade de subsistência das famÃlias quilombolas.</p> + <p>O extrativismo é a principal atividade de subsistência das famÃlias quilombolas.</p> - <CardFooter data={csv3} source="CadÚnico / MDS"/> - </Card> + <CardFooter data={csv3} source="CadÚnico / MDS"/> + </Card> - <Card id="e3pannel-4" title="Bolsa FamÃlia"> - <GrayBar text="Percentual de FamÃlias Quilombolas Beneficiárias"/> + <Card id="e3pannel-4" title="Bolsa FamÃlia"> + <GrayBar text="Percentual de FamÃlias Quilombolas Beneficiárias"/> - <BuildPie data={this.fixDataP4(data.gete3p4()[getStateExtendedName(this.state.clickedInMap).currentState])} dataKey="valor" nameKey="tipo" minHeight={250}/> - <ValueBar val={this.calculaPropP4(data.gete3p4()[getStateExtendedName(this.state.clickedInMap).currentState],0)+ "% recebem Bolsa FamÃlia"}/> + <BuildPie data={this.fixDataP4(data.gete3p4()[getStateExtendedName(this.state.clickedInMap).currentState])} dataKey="valor" nameKey="tipo" minHeight={250}/> + <ValueBar val={this.calculaPropP4(data.gete3p4()[getStateExtendedName(this.state.clickedInMap).currentState],0)+ "% recebem Bolsa FamÃlia"}/> - <p>A transferência de renda por meio da Bolsa FamÃlia tem ampla cobertura sobre as famÃlias quilombolas.</p> + <p>A transferência de renda por meio da Bolsa FamÃlia tem ampla cobertura sobre as famÃlias quilombolas.</p> - <CardFooter data={csv4} source="CadÚnico / MDS"/> + <CardFooter data={csv4} source="CadÚnico / MDS"/> - </Card> + </Card> - <Card id="e3pannel-5" title="Declaração de Aptidão ao Pronaf"> - <GrayBar text="DAPs Emitidas por Ano"/> - <BuildBar data={data.gete3p51()[getStateExtendedName(this.state.clickedInMap).currentState]} dataKey="Ano" customKeys={{"Ano":"Ano","DAPs Emitidas":"DAPs Emitidas"}}/> - <p>A DAP (Declaração de Aptidão ao Pronaf) é o documento necessário para obtenção de financiamento do Pronaf (Programa Nacional de Fortalecimento da Agricultura Familiar).</p> - <ValueBar val={data.gete3p52()[getStateExtendedName(this.state.clickedInMap).currentState] + " DAPs emitidas"}/> - <CardFooter data={csv5} source="Ministério do Desenvolvimento Agrário"/> - </Card> + <Card id="e3pannel-5" title="Declaração de Aptidão ao Pronaf"> + <GrayBar text="DAPs Emitidas por Ano"/> + <BuildBar data={data.gete3p51()[getStateExtendedName(this.state.clickedInMap).currentState]} dataKey="Ano" customKeys={{"Ano":"Ano","DAPs Emitidas":"DAPs Emitidas"}}/> + <p>A DAP (Declaração de Aptidão ao Pronaf) é o documento necessário para obtenção de financiamento do Pronaf (Programa Nacional de Fortalecimento da Agricultura Familiar).</p> + <ValueBar val={data.gete3p52()[getStateExtendedName(this.state.clickedInMap).currentState] + " DAPs emitidas"}/> + <CardFooter data={csv5} source="Ministério do Desenvolvimento Agrário"/> + </Card> - <Card id="e3pannel-6" title="Programa de Aquisição de Alimentos"> - <GrayBar text="FamÃlias Participando por Ano"/> - <p>O PAA fomenta a produção agrÃcula familiar ao mesmo tempo em que tenta reduzir a insegurança alimentar.</p> - <BuildBar data={data.gete3p6()[getStateExtendedName(this.state.clickedInMap).currentState]} dataKey="Ano" customKeys={{"Ano":"Ano","FamÃlias que Vendem para o PAA":"FamÃlias que Vendem para o PAA"}}/> - <ValueBar val={data.gete3p6()[getStateExtendedName(this.state.clickedInMap).currentState][1]['FamÃlias que Vendem para o PAA'] + " FamÃlias (2013)"}/> - <CardFooter data={csv6} source="Ministério do Desenvolvimento Agrário"/> + <Card id="e3pannel-6" title="Programa de Aquisição de Alimentos"> + <GrayBar text="FamÃlias Participando por Ano"/> + <p>O PAA fomenta a produção agrÃcula familiar ao mesmo tempo em que tenta reduzir a insegurança alimentar.</p> + <BuildBar data={data.gete3p6()[getStateExtendedName(this.state.clickedInMap).currentState]} dataKey="Ano" customKeys={{"Ano":"Ano","FamÃlias que Vendem para o PAA":"FamÃlias que Vendem para o PAA"}}/> + <ValueBar val={data.gete3p6()[getStateExtendedName(this.state.clickedInMap).currentState][1]['FamÃlias que Vendem para o PAA'] + " FamÃlias (2013)"}/> + <CardFooter data={csv6} source="Ministério do Desenvolvimento Agrário"/> - </Card> - - </div> + </Card> </div> - ); - } - else { - return <div></div> - } + + </div> + ); } getMapClick(clicked) { this.setState({clickedInMap: clicked}); @@ -210,7 +207,4 @@ class Eixo3 extends Component { } } - - - export default Eixo3; diff --git a/src/SubPages/Eixo4.js b/src/SubPages/Eixo4.js index 26efa6d8..ba208d8f 100644 --- a/src/SubPages/Eixo4.js +++ b/src/SubPages/Eixo4.js @@ -47,9 +47,6 @@ import csv7 from './CSVoriginais/pbq/equipes_saude_por_ano_por_uf.csv' import csv8 from './CSVoriginais/pbq/mais_medicos_por_ano_por_uf.csv' - - -var ck = new Cookies(); var contrastCK = new Cookies(); var cookieStatus = contrastCK.get('contrast'); @@ -82,12 +79,16 @@ class Eixo4 extends Component { this.getMapClick = this.getMapClick.bind(this); this.clearMap = this.clearMap.bind(this); } + + componentDidMount() { + this.clearMap() + } + render() { var contrastString = ''; if(cookieStatus === 'true'){ contrastString = 'Contrast' } - if (ck.get('mainPageClicked') === "EIXO 4") return ( <div> <Row> @@ -201,8 +202,6 @@ class Eixo4 extends Component { </div> </div> ); - else return <div></div> - } getMapClick(clicked) { this.setState({clickedInMap: clicked}); diff --git a/src/SubPages/QuilombolaAbout.js b/src/SubPages/QuilombolaAbout.js index 0d093e2c..9e6d979f 100644 --- a/src/SubPages/QuilombolaAbout.js +++ b/src/SubPages/QuilombolaAbout.js @@ -18,8 +18,6 @@ You should have received a copy of the GNU General Public License along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. */ - - import React, { Component } from 'react'; import Cookies from 'universal-cookie'; import {Card} from 'react-materialize'; @@ -33,7 +31,6 @@ import csv7 from './CSVoriginais/pbq/cadunico_domicilios_rurais_por_uf.csv' import csv8 from './CSVoriginais/pbq/cadunico_domicilios_servicos_presentes_por_uf.csv' -var ck = new Cookies(); var contrastCK = new Cookies(); var cookieStatus = contrastCK.get('contrast'); @@ -41,103 +38,99 @@ var cookieStatus = contrastCK.get('contrast'); class QuilombolaAbout extends Component { render() { var contrastString = ''; - if(cookieStatus === 'true'){ + if (cookieStatus === 'true') { contrastString = 'Contrast' } - if (ck.get('mainPageClicked') === "SOBRE") return ( <div> <h4>Catálogo de indicadores disponÃveis no sistema</h4> <div className="gridTemplate"> - <Card id={`${contrastString}c1`} title="Certificações Emitidas" > + <Card id={`${contrastString}c1`} title="Certificações Emitidas" > + <p> + Total de certificações emitidas em todos os anos pela Fundação Cultural Palmares, por Estado em que a comunidade se localiza.<br /> + <b>Fonte:</b> Fundação Cultural Palmares, Ministério da Cultura<br /> + <b>Data de Referência:</b> 2015<br /> + <b>Fórmula de Cálculo:</b> Número total de certificações em cada Estado<br /> + <b><a href={csv1} >Clique aqui para baixar os dados em CSV</a></b> + </p> + </Card> + + <Card id={`${contrastString}c2`} title="Evolução de Certificações e Regularizações" > + <p> + Total de certificações emitidas (pela Fundação Cultural Palmares) e de territórios titulados (pelo INCRA ou Institutos de Terra) em todo o Brasil e nos Estados, a cada ano. Cada certificação se refere a uma comunidade, enquanto a titulação de um território pode englobar diversas comunidades que compartilham o mesmo território.<br /> + <b>Fonte:</b> Comitê Gestor do Programa Brasil Quilombola, INCRA e Fundação Cultural Palmares, Ministério da Cultura<br /> + <b>Data de Referência:</b> 2015<br /> + <b>Fórmula de Cálculo:</b> Número total de certificações em cada ano e número de titulações conferidas em cada ano<br /> + <b><a href={csv2}>Clique aqui para baixar os dados em CSV</a></b> + </p> + </Card> + <Card id={`${contrastString}c3`} title="Comunidades Tituladas" > + <p> + Total de titulações já emitidas em qualquer ano (pelo INCRA ou Institutos de Terra) em todo o Brasil e nos Estados.<br /> + <b>Fonte:</b> INCRA<br /> + <b>Data de Referência:</b> 2015<br /> + <b>Fórmula de Cálculo:</b> Número de titulações conferidas em cada Estado<br /> + <b><a href={csv2}>Clique aqui para baixar os dados em CSV</a></b> + + </p> + </Card> + <Card id={`${contrastString}c4`} title="Lista de Comunidades Reconhecidas Oficialmente pelo Estado" > + <p> + Comunidades que já foram certificadas ou que estão em processo de titulação são oficialmente reconhecidas pelo Estado. Cada comunidade possui um identificador numérico e um nome pelo qual costuma ser chamada.<br /> + + <b>Fonte:</b> Comitê Gestor do Programa Brasil Quilombola, INCRA e Fundação Cultural Palmares, Ministério da Cultura<br /> + <b>Data de Referência:</b> 2015<br /> + <b><a href={csv4}>Clique aqui para baixar os dados em CSV</a></b> + + </p> + </Card> + <Card id={`${contrastString}c5`} title="Estágio dos Processos" > <p> - Total de certificações emitidas em todos os anos pela Fundação Cultural Palmares, por Estado em que a comunidade se localiza.<br/> - <b>Fonte:</b> Fundação Cultural Palmares, Ministério da Cultura<br/> - <b>Data de Referência:</b> 2015<br/> - <b>Fórmula de Cálculo:</b> Número total de certificações em cada Estado<br/> - <b><a href={csv1} >Clique aqui para baixar os dados em CSV</a></b> - </p> - </Card> - - <Card id={`${contrastString}c2`} title="Evolução de Certificações e Regularizações" > - <p> - Total de certificações emitidas (pela Fundação Cultural Palmares) e de territórios titulados (pelo INCRA ou Institutos de Terra) em todo o Brasil e nos Estados, a cada ano. Cada certificação se refere a uma comunidade, enquanto a titulação de um território pode englobar diversas comunidades que compartilham o mesmo território.<br/> - <b>Fonte:</b> Comitê Gestor do Programa Brasil Quilombola, INCRA e Fundação Cultural Palmares, Ministério da Cultura<br/> - <b>Data de Referência:</b> 2015<br/> - <b>Fórmula de Cálculo:</b> Número total de certificações em cada ano e número de titulações conferidas em cada ano<br/> - <b><a href={csv2}>Clique aqui para baixar os dados em CSV</a></b> - </p> - </Card> - <Card id={`${contrastString}c3`} title="Comunidades Tituladas" > - <p> - Total de titulações já emitidas em qualquer ano (pelo INCRA ou Institutos de Terra) em todo o Brasil e nos Estados.<br/> - <b>Fonte:</b> INCRA<br/> - <b>Data de Referência:</b> 2015<br/> - <b>Fórmula de Cálculo:</b> Número de titulações conferidas em cada Estado<br/> - <b><a href={csv2}>Clique aqui para baixar os dados em CSV</a></b> - - </p> - </Card> - <Card id={`${contrastString}c4`} title="Lista de Comunidades Reconhecidas Oficialmente pelo Estado" > - <p> - Comunidades que já foram certificadas ou que estão em processo de titulação são oficialmente reconhecidas pelo Estado. Cada comunidade possui um identificador numérico e um nome pelo qual costuma ser chamada.<br/> - - <b>Fonte:</b> Comitê Gestor do Programa Brasil Quilombola, INCRA e Fundação Cultural Palmares, Ministério da Cultura<br/> - <b>Data de Referência:</b> 2015<br/> - <b><a href={csv4}>Clique aqui para baixar os dados em CSV</a></b> - - </p> - </Card> - <Card id={`${contrastString}c5`} title="Estágio dos Processos" > - <p> - - O processo de titulação dos territórios quilombolas onde há comunidades certificadas passa pelas etapas de (1) RTID, (2) Publicação da Portaria, (3) Publicação do Decreto e (4) Titulação.<br/> - id - <b>Fonte:</b> INCRA<br/> - <b>Data de Referência:</b> 2015<br/> - <b>Fórmula de Cálculo:</b> Percentual de processos em cada estágio com relação ao total de processos em andamento ou concluÃdos<br/> - <b><a href={csv5}>Clique aqui para baixar os dados em CSV</a></b> - - </p> -</Card > -<Card id={`${contrastString}c6`} title="FamÃlias no CadÚnico" > - <p> - FamÃlias quilombolas cadastradas no CadÚnico podem receber benefÃcios sociais de programas do Governo.<br/> - - <b>Fonte:</b> Cadastro Único para Programas Sociais (CadÚnico), Ministério do Desenvolvimento Social e Combate à Fome (MDS)<br/> - <b>Data de Referência:</b> 2015<br/> - <b>Fórmula de Cálculo:</b> SOMA do número de famÃlias nos domicÃlios quilombolas cadastradas no CadÚnico em cada Estado<br/> - <b><a href={csv6}>Clique aqui para baixar os dados em CSV</a></b> - -</p> -</Card> -<Card id={`${contrastString}c7`} title="Ãrea Rural"> - <p> - Concentração dos domicÃlios quilombolas em áreas rurais.<br/> - - <b>Fonte:</b> Cadastro Único para Programas Sociais (CadÚnico), Ministério do Desenvolvimento Social e Combate à Fome (MDS)<br/> - <b>Data de Referência:</b> 2015<br/> - <b>Fórmula de Cálculo:</b> Percentual de famÃlias quilombolas vivendo em áreas rurais<br/> - <b><a href={csv7}>Clique aqui para baixar os dados em CSV</a></b> - - -</p> -</Card> -<Card id={`${contrastString}c8`} title="Serviços Presentes nos DomicÃlios Cadastrados"> - <p> - <b>Fonte:</b> Cadastro Único para Programas Sociais (CadÚnico), Ministério do Desenvolvimento Social e Combate à Fome (MDS)<br/> - <b>Data de Referência: 2015</b><br/> - <b><a href={csv8}>Clique aqui para baixar os dados em CSV</a></b> - - </p> -</Card> -</div> -</div> -); -else return <div></div> -} -} + O processo de titulação dos territórios quilombolas onde há comunidades certificadas passa pelas etapas de (1) RTID, (2) Publicação da Portaria, (3) Publicação do Decreto e (4) Titulação.<br /> + id + <b>Fonte:</b> INCRA<br /> + <b>Data de Referência:</b> 2015<br /> + <b>Fórmula de Cálculo:</b> Percentual de processos em cada estágio com relação ao total de processos em andamento ou concluÃdos<br /> + <b><a href={csv5}>Clique aqui para baixar os dados em CSV</a></b> + </p> + </Card > + <Card id={`${contrastString}c6`} title="FamÃlias no CadÚnico" > + <p> + FamÃlias quilombolas cadastradas no CadÚnico podem receber benefÃcios sociais de programas do Governo.<br /> + + <b>Fonte:</b> Cadastro Único para Programas Sociais (CadÚnico), Ministério do Desenvolvimento Social e Combate à Fome (MDS)<br /> + <b>Data de Referência:</b> 2015<br /> + <b>Fórmula de Cálculo:</b> SOMA do número de famÃlias nos domicÃlios quilombolas cadastradas no CadÚnico em cada Estado<br /> + <b><a href={csv6}>Clique aqui para baixar os dados em CSV</a></b> + + </p> + </Card> + <Card id={`${contrastString}c7`} title="Ãrea Rural"> + <p> + Concentração dos domicÃlios quilombolas em áreas rurais.<br /> + + <b>Fonte:</b> Cadastro Único para Programas Sociais (CadÚnico), Ministério do Desenvolvimento Social e Combate à Fome (MDS)<br /> + <b>Data de Referência:</b> 2015<br /> + <b>Fórmula de Cálculo:</b> Percentual de famÃlias quilombolas vivendo em áreas rurais<br /> + <b><a href={csv7}>Clique aqui para baixar os dados em CSV</a></b> + + + </p> + </Card> + <Card id={`${contrastString}c8`} title="Serviços Presentes nos DomicÃlios Cadastrados"> + <p> + <b>Fonte:</b> Cadastro Único para Programas Sociais (CadÚnico), Ministério do Desenvolvimento Social e Combate à Fome (MDS)<br /> + <b>Data de Referência: 2015</b><br /> + <b><a href={csv8}>Clique aqui para baixar os dados em CSV</a></b> + + </p> + </Card> + </div> + </div> + ); + } +} export default QuilombolaAbout; -- GitLab From 977ed64e144c05179437f603c5f898cf06d237ec Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Fri, 22 Feb 2019 10:55:23 -0300 Subject: [PATCH 10/23] Add contrast on store context --- src/App.js | 20 ++------- src/Components/AppFooter.js | 58 ++++++++++++-------------- src/Components/BarraBrasil.js | 62 ++++++++++++++-------------- src/Components/ContrastBar.js | 69 ++++++++++++------------------- src/Components/MainBanner.js | 60 +++++++++++++-------------- src/MainPage.js | 77 ++++++++++++++++------------------- src/Quilombolas.js | 16 +++----- src/Store.js | 4 +- 8 files changed, 159 insertions(+), 207 deletions(-) diff --git a/src/App.js b/src/App.js index b8c64e0a..4d29190f 100644 --- a/src/App.js +++ b/src/App.js @@ -20,7 +20,7 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. -import React, { Component } from 'react'; +import React from 'react'; import { BrowserRouter as Router, Route } from 'react-router-dom' import './App.css'; import MainPage from './MainPage.js' @@ -32,31 +32,19 @@ import Maps from './Maps' import AfricanOrigin from './AfricanOrigin' import Quilombola from './Quilombola' import { Store } from './Store'; -import NavigationBar from './Components/NavigationBar' import AppFooter from './Components/AppFooter' import ContrastBar from './Components/ContrastBar' -import MainBanner from './Components/MainBanner' import BarraBrasil from './Components/BarraBrasil' - - - function App() { - const { state, dispatch } = React.useContext(Store); - const setPageAction = (newPage) => { - return dispatch({ - type: 'SET_PAGE', - payload: newPage - }) - } - - //React.useEffect(() => {}); + const { state } = React.useContext(Store); + var contrastString = state.contrast return ( <React.Fragment> {console.log(state)} - <div id={`mainPage`}> + <div id={`${contrastString}mainPage`}> <ContrastBar /> <BarraBrasil /> <Router> diff --git a/src/Components/AppFooter.js b/src/Components/AppFooter.js index 8dcb4b58..6cee263e 100644 --- a/src/Components/AppFooter.js +++ b/src/Components/AppFooter.js @@ -19,47 +19,41 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. */ - -import React, { Component } from 'react'; +import React from 'react'; import { Footer } from 'react-materialize' import ColorfulBar from './ColorfulBar' import ContactForm from './ContactForm' import Partner from './Partner' -import Cookies from 'universal-cookie'; - import '../Styles/AppFooter.css' +import { Store } from '../Store' -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); +function AppFooter() { + + const { state } = React.useContext(Store); -class AppFooter extends Component { - render() { - // var contrastString = ''; - var dynamicClassName = 'smppir-blue'; - var dynamicBackgroundColor = 'white'; - if(cookieStatus === 'true'){ - // contrastString = 'Contrast' - dynamicClassName = 'smppir-white'; - dynamicBackgroundColor = 'black' - } - return ( - <div> - <ColorfulBar/> - <Footer className={dynamicBackgroundColor} - links={ - <div> - <ContactForm /> - </div> - } - > - <h4 className={dynamicClassName}>PARCEIROS</h4> - <Partner /> - - </Footer> - </div> - ); + var dynamicClassName = 'smppir-blue'; + var dynamicBackgroundColor = 'white'; + if (state.contrast === 'Contrast'){ + dynamicClassName = 'smppir-white'; + dynamicBackgroundColor = 'black' } + return ( + <div> + <ColorfulBar/> + <Footer className={dynamicBackgroundColor} + links={ + <div> + <ContactForm /> + </div> + } + > + <h4 className={dynamicClassName}>PARCEIROS</h4> + <Partner /> + + </Footer> + </div> + ); } export default AppFooter; \ No newline at end of file diff --git a/src/Components/BarraBrasil.js b/src/Components/BarraBrasil.js index 8cbaafe4..210cb5f0 100644 --- a/src/Components/BarraBrasil.js +++ b/src/Components/BarraBrasil.js @@ -19,40 +19,38 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. */ - -import React, { Component } from 'react'; +import React from 'react'; import '../Styles/BarraBrasil.css' -import Cookies from 'universal-cookie'; - -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - - -class NavigationBar extends Component { - render() { - var body = document.getElementsByTagName("body")[0]; - if(cookieStatus === 'true'){ - body.classList.add("contraste"); - } - return ( - <div id={"nav-brasil"}> - <div id={"barra-brasil"}> - <ul id={"menu-barra-temp"}> - <li id={"barra-brasil-li"}> - <a href={"http://brasil.gov.br"} id={"barra-brasil-link1"}> - Portal do Governo Brasileiro - </a> - </li> - <li> - <a id={"barra-brasil-link1"} href={"http://epwg.governoeletronico.gov.br/barra/atualize.html"}> - Atualize sua Barra de Governo - </a> - </li> - </ul> - </div> - </div> - ); +import { Store } from '../Store' + + +function NavigationBar() { + var body = document.getElementsByTagName("body")[0]; + const { state } = React.useContext(Store); + + if(state.contrast === 'Contrast'){ + body.classList.add("contraste"); + } else { + body.classList.remove("contraste"); } + return ( + <div id={"nav-brasil"}> + <div id={"barra-brasil"}> + <ul id={"menu-barra-temp"}> + <li id={"barra-brasil-li"}> + <a href={"http://brasil.gov.br"} id={"barra-brasil-link1"}> + Portal do Governo Brasileiro + </a> + </li> + <li> + <a id={"barra-brasil-link1"} href={"http://epwg.governoeletronico.gov.br/barra/atualize.html"}> + Atualize sua Barra de Governo + </a> + </li> + </ul> + </div> + </div> + ); } export default NavigationBar; \ No newline at end of file diff --git a/src/Components/ContrastBar.js b/src/Components/ContrastBar.js index 790deecd..5d21e678 100644 --- a/src/Components/ContrastBar.js +++ b/src/Components/ContrastBar.js @@ -20,57 +20,42 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. -import React, { Component } from 'react'; +import React from 'react'; import '../Styles/ContrastBar.css' -import Cookies from 'universal-cookie'; import ContrastImageOn from '../Images/OnContrastIcon.png' import ContrastImageOff from'../Images/OffContrastIcon.png' +import { Store } from '../Store' -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - -class ContrastBar extends Component { - - constructor(props){ - super(props); - this.toggleContrast = this.toggleContrast.bind(this); +function ContrastBar() { + + // Hook to set contrast context + const { state, dispatch } = React.useContext(Store); + const setContrastAction = (newPage) => { + return dispatch({ + type: 'SET_CONTRAST', + payload: newPage + }) } + React.useEffect(() => { }); - componentWillMount(){ - let ck = contrastCK.get('contrast'); - if(!ck){ - contrastCK.set('contrast', 'false'); - } + const toggleContrast = () => { + var status = (state.contrast === '' ? 'Contrast' : '') + setContrastAction(status) + //window.location.reload(); } - render() { - var contrastString = ''; - var contrastIcon = ContrastImageOff; - if(cookieStatus === 'true'){ - contrastString = 'Contrast'; - contrastIcon = ContrastImageOn - } - return ( - <div className={`${contrastString}bar`}> - <div className={`${contrastString}text`} onClick={this.toggleContrast}> - <img src={contrastIcon} style={{marginRight: 5}} alt="ContrastIcon" width="11" height="11"/> - Alto Contraste - </div> - </div> - ); - } + var contrastString = state.contrast; + var contrastIcon = (contrastString === '' ? ContrastImageOff : ContrastImageOn) + + return ( + <div className={`${contrastString}bar`}> + <div className={`${contrastString}text`} onClick={toggleContrast}> + <img src={contrastIcon} style={{marginRight: 5}} alt="ContrastIcon" width="11" height="11"/> + Alto Contraste + </div> + </div> + ); - toggleContrast(){ - var status = contrastCK.get('contrast'); - if(status === 'false'){ - status = true; - } - else{ - status = false; - } - contrastCK.set('contrast', status); - window.location.reload(); - } } export default ContrastBar; \ No newline at end of file diff --git a/src/Components/MainBanner.js b/src/Components/MainBanner.js index 25a2011a..025392c4 100644 --- a/src/Components/MainBanner.js +++ b/src/Components/MainBanner.js @@ -20,44 +20,42 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. -import React, { Component } from 'react'; +import React from 'react'; import logo from '../Images/SMPPIRBanner.png'; import contrastLogo from '../Images/SMPPIRBannerContrast.png' import { Card, Row, Col } from 'react-materialize' -import Cookies from 'universal-cookie'; import '../Styles/MainBanner.css' +import { Store } from '../Store' -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); var img = logo; - -class MainBanner extends Component { - render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - img = contrastLogo; - } - return ( - <div> - <Card id={`${contrastString}mainBannerCard`}> - <Row> - <Col s={12} m={6}> - <img alt='Logo do SMPPIR com descrição' id={'bannerLogo'} src={img} style={{width: 250}}/> - </Col> - <Col s={12} m={4} offset={'m1'}> - <h5 id={`${contrastString}bannerTitle`}>Monitorar é preciso</h5> - <p id={`${contrastString}bannerText`}> - O objetivo do sistema de monitoramento é dar visibilidade à s demandas sociais e à atuação do Estado, de maneira a promover um melhor diálogo social e aprimorar a eficiência e eficácia das polÃticas públicas. - </p> - <a id={`${contrastString}mainBannerLink`} href='/'>SAIBA MAIS</a> - </Col> - </Row> - </Card> - </div> - ); - } +function MainBanner() { + + const { state } = React.useContext(Store); + var contrastString = state.contrast; + if(contrastString === '') + img = logo; + else + img = contrastLogo; + + return ( + <div> + <Card id={`${contrastString}mainBannerCard`}> + <Row> + <Col s={12} m={6}> + <img alt='Logo do SMPPIR com descrição' id={'bannerLogo'} src={img} style={{width: 250}}/> + </Col> + <Col s={12} m={4} offset={'m1'}> + <h5 id={`${contrastString}bannerTitle`}>Monitorar é preciso</h5> + <p id={`${contrastString}bannerText`}> + O objetivo do sistema de monitoramento é dar visibilidade à s demandas sociais e à atuação do Estado, de maneira a promover um melhor diálogo social e aprimorar a eficiência e eficácia das polÃticas públicas. + </p> + <a id={`${contrastString}mainBannerLink`} href='/'>SAIBA MAIS</a> + </Col> + </Row> + </Card> + </div> + ); } export default MainBanner; \ No newline at end of file diff --git a/src/MainPage.js b/src/MainPage.js index b49902d7..1ddc27a7 100644 --- a/src/MainPage.js +++ b/src/MainPage.js @@ -18,55 +18,48 @@ You should have received a copy of the GNU General Public License along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. */ -import React, { Component } from 'react'; +import React from 'react'; import MainBanner from './Components/MainBanner' import MainCard from './Components/MainCard' import { Col, Row } from 'react-materialize' -import Cookies from 'universal-cookie'; import './Styles/MainPage.css' +import { Store } from './Store' -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); +function MainPage() { -class MainPage extends Component { + const { state } = React.useContext(Store); + var contrastString = state.contrast; - render() { - - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - return ( - <div id={`${contrastString}mainPage`}> - <MainBanner /> - <Row/> - <Row style={undefined}> - <Col m={12} l={5} offset={'l1'}> - <MainCard color='mainPageRed' title='Brasil Quilombola' subpages={subpages1} text={text1} image={'brasil_quilombola.png'}/> - </Col> - <Col m={12} l={5} className={'mainPageMargin'}> - <MainCard color='mainPageTeal' title='Juventude Viva' subpages={subpages2} text={text2} image={'juventude_viva.png'}/> - </Col> - </Row> - <Row> - {/* <Col m={12} l={5} offset={'l1'}> - <MainCard color='mainPageOrange' title='Mapas' subpages={subpages3} text={text3} image={'mapas.png'}/> - </Col> */} - <Col m={12} l={10} offset={'l1'} className={'mainPageMargin'}> - <MainCard color='mainPageDarkBlue' title='Matriz Africana' subpages={subpages4} text={text4} image={'matriz_africana4.png'}/> - </Col> - </Row> - <Row> - <Col m={12} l={5} offset={'l1'} className={'mainPageMargin'} id='soloCard'> - <MainCard color='mainPageGreen' title='Cotas Raciais' subpages={subpages5} text={text5} image={'cotas_raciais.png'}/> - </Col> - <Col m={12} l={5} className={'mainPageMargin'} id='soloCard'> - <MainCard color='mainPageRed' title='Quilombola' subpages={subpages6} text={text6} image={'brasil_quilombola.png'}/> - </Col> - </Row> - </div> - ); - } + return ( + <div id={`${contrastString}mainPage`}> + <MainBanner /> + <Row/> + <Row style={undefined}> + <Col m={12} l={5} offset={'l1'}> + <MainCard color='mainPageRed' title='Brasil Quilombola' subpages={subpages1} text={text1} image={'brasil_quilombola.png'}/> + </Col> + <Col m={12} l={5} className={'mainPageMargin'}> + <MainCard color='mainPageTeal' title='Juventude Viva' subpages={subpages2} text={text2} image={'juventude_viva.png'}/> + </Col> + </Row> + <Row> + {/* <Col m={12} l={5} offset={'l1'}> + <MainCard color='mainPageOrange' title='Mapas' subpages={subpages3} text={text3} image={'mapas.png'}/> + </Col> */} + <Col m={12} l={10} offset={'l1'} className={'mainPageMargin'}> + <MainCard color='mainPageDarkBlue' title='Matriz Africana' subpages={subpages4} text={text4} image={'matriz_africana4.png'}/> + </Col> + </Row> + <Row> + <Col m={12} l={5} offset={'l1'} className={'mainPageMargin'} id='soloCard'> + <MainCard color='mainPageGreen' title='Cotas Raciais' subpages={subpages5} text={text5} image={'cotas_raciais.png'}/> + </Col> + <Col m={12} l={5} className={'mainPageMargin'} id='soloCard'> + <MainCard color='mainPageRed' title='Quilombola' subpages={subpages6} text={text6} image={'brasil_quilombola.png'}/> + </Col> + </Row> + </div> + ); } const text1 = <div> <p>Programa Brasil Quilombola (PBQ) reúne ações do Governo Federal para as comunidades quilombolas nas seguintes áreas:</p> diff --git a/src/Quilombolas.js b/src/Quilombolas.js index d5e0c8c5..5b1bbdf0 100644 --- a/src/Quilombolas.js +++ b/src/Quilombolas.js @@ -20,7 +20,7 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. -import React, { Component } from 'react'; +import React from 'react'; import NavigationBar from './Components/NavigationBar' import Eixo1 from './SubPages/Eixo1' import Eixo2 from './SubPages/Eixo2' @@ -30,21 +30,13 @@ import QuilombolaPresentation from './SubPages/QuilombolaPresentation' import QuilombolaAbout from './SubPages/QuilombolaAbout' import { Tab, Tabs } from 'react-materialize'; import './Styles/Quilombolas.css'; -import Cookies from 'universal-cookie'; import { Store } from './Store' -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); function Quilombolas() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - - // Get imformation about which page was accessed - const { state, dispatch } = React.useContext(Store); + // Get information about which page was accessed + const { state } = React.useContext(Store); let states = { "APRESENTAÇÃO": false, "EIXO 1": false, "EIXO 2": false, "EIXO 3": false, "EIXO 4": false, "SOBRE": false } if (state.page in states) { states[state.page] = true @@ -53,6 +45,8 @@ function Quilombolas() { states["APRESENTAÇÃO"] = true } + var contrastString = state.contrast + return ( <div id={`${contrastString}mainPage`}> <NavigationBar /> diff --git a/src/Store.js b/src/Store.js index 8016bc84..5fccd4a5 100644 --- a/src/Store.js +++ b/src/Store.js @@ -24,13 +24,15 @@ export const Store = React.createContext(); const initialStore = { page: '', - contrast: false + contrast: '' } function reducer(state, action) { switch (action.type) { case 'SET_PAGE': return { ...state, page: action.payload }; + case 'SET_CONTRAST': + return { ...state, contrast: action.payload }; default: return state; } -- GitLab From 0be665ad283946d3a201e4db74030450f1c23d67 Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Mon, 25 Feb 2019 09:45:24 -0300 Subject: [PATCH 11/23] Contrast on context --- src/App.js | 6 ++-- src/Components/ContactForm.js | 15 +++------ src/Components/ContrastBar.js | 2 -- src/Components/DropdownControl.js | 16 ++++----- src/Components/MainCard.js | 16 ++++----- src/Components/NavigationBar.js | 56 ++++++++++++++----------------- 6 files changed, 47 insertions(+), 64 deletions(-) diff --git a/src/App.js b/src/App.js index 4d29190f..0def06e5 100644 --- a/src/App.js +++ b/src/App.js @@ -19,7 +19,6 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. */ - import React from 'react'; import { BrowserRouter as Router, Route } from 'react-router-dom' import './App.css'; @@ -43,13 +42,14 @@ function App() { return ( <React.Fragment> - {console.log(state)} + {/* {console.log(state)} */} <div id={`${contrastString}mainPage`}> <ContrastBar /> <BarraBrasil /> <Router> <div> - <Route exact={true} path="/" render={(props) => <MainPage {...props} teste="teste"/>}/> + {/* <Route exact={true} path="/" render={(props) => <MainPage {...props} teste="teste"/>}/> */} + <Route exact={true} path="/" component={MainPage} /> <Route exact={true} path="/cotas" component={RacialQuotas} /> <Route exact={true} path="/quilombola" component={Quilombola} /> <Route exact={true} path="/sobre" component={About} /> diff --git a/src/Components/ContactForm.js b/src/Components/ContactForm.js index 0cbb5cfb..388755d3 100644 --- a/src/Components/ContactForm.js +++ b/src/Components/ContactForm.js @@ -19,31 +19,25 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. */ - import React, { Component } from 'react'; import { Row, Input, Icon, Button } from 'react-materialize' import '../Styles/ContactForm.css' -import Cookies from 'universal-cookie'; - -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); +import { Store } from '../Store' -// /{`${contrastString}mainPage`} function validEmailSyntax(email) { let regex = /^(([^<>()[].,;:s@"]+(.[^<>()[].,;:s@"]+)*)|(".+"))@(([^<>()[].,;:s@"]+.)+[^<>()[].,;:s@"]{2,})$/i; return regex.test(email); } - class ContactForm extends Component { render() { - var contrastString = ''; + + var contrastString = this.context.state.contrast; var dynamicClassName = 'smppir-blue'; var dynamicEmailClassName = 'smppir-blue emailForm'; var dynamicTextClassname = 'smppir-blue-text'; - if(cookieStatus === 'true'){ - contrastString = 'Contrast'; + if (contrastString === 'Contrast'){ dynamicClassName = 'smppir-white'; dynamicEmailClassName = 'smppir-white emailForm'; dynamicTextClassname = 'smppir-white-text'; @@ -113,5 +107,6 @@ class ContactForm extends Component { } } +ContactForm.contextType = Store; export default ContactForm; diff --git a/src/Components/ContrastBar.js b/src/Components/ContrastBar.js index 5d21e678..39437575 100644 --- a/src/Components/ContrastBar.js +++ b/src/Components/ContrastBar.js @@ -19,7 +19,6 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. */ - import React from 'react'; import '../Styles/ContrastBar.css' import ContrastImageOn from '../Images/OnContrastIcon.png' @@ -41,7 +40,6 @@ function ContrastBar() { const toggleContrast = () => { var status = (state.contrast === '' ? 'Contrast' : '') setContrastAction(status) - //window.location.reload(); } var contrastString = state.contrast; diff --git a/src/Components/DropdownControl.js b/src/Components/DropdownControl.js index 12440474..c067197c 100644 --- a/src/Components/DropdownControl.js +++ b/src/Components/DropdownControl.js @@ -25,6 +25,7 @@ import { Row, Input, Button, Icon } from 'react-materialize'; import axios from 'axios'; import { getDDValue, getServerURL, getStateRegion } from '../enviroment'; import Cookies from 'universal-cookie'; +import { Store } from '../Store' import '../Styles/DropdownControl.css'; @@ -60,11 +61,10 @@ export default class DropdownControl extends Component { } } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - return ( + + var contrastString = this.context.state.contrast; + console.log(this.context.state.contrast) + return ( <Row> <Row> <Row> @@ -105,10 +105,7 @@ export default class DropdownControl extends Component { const listItems = regions.map((region) => <option key={Math.random()} value={region} > { region } </option> ); - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } + var contrastString = this.context.state.contrast; return ( <Input s={12} className={`${contrastString}inputRegiao`} id={"regiao" + this.props.location} type='select' label="Região" value={this.state.region} onChange={(event)=>{ this.changeRegion(event); this.handleSelect(event) }} > { listItems } @@ -170,6 +167,7 @@ export default class DropdownControl extends Component { } } +DropdownControl.contextType = Store; function search(nameKey, myArray) { var returnItems = []; diff --git a/src/Components/MainCard.js b/src/Components/MainCard.js index 3759e4f0..665e8145 100644 --- a/src/Components/MainCard.js +++ b/src/Components/MainCard.js @@ -19,23 +19,17 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. */ - -import React, { Component } from 'react'; +import React from 'react'; import { Link } from 'react-router-dom' import { Card, CardTitle } from 'react-materialize' -import Cookies from 'universal-cookie'; import '../Styles/MainCard.css' - import { Store } from '../Store'; -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); function createRoutes(subpages, color) { // Hook to set page context - const { state, dispatch } = React.useContext(Store); + const { dispatch } = React.useContext(Store); const setPageAction = (newPage) => { window.scrollTo(0, 0) return dispatch({ @@ -57,8 +51,12 @@ function createRoutes(subpages, color) { function MainCard(props){ + const { state } = React.useContext(Store); var { color, title, subpages, text, image } = props; - var contrastString = ''; + var contrastString = state.contrast; + + if (contrastString === "Contrast") + color = 'mainPageContrast' return ( <div> diff --git a/src/Components/NavigationBar.js b/src/Components/NavigationBar.js index 0ed047a7..6415d2c5 100644 --- a/src/Components/NavigationBar.js +++ b/src/Components/NavigationBar.js @@ -19,45 +19,39 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. */ - -import React, { Component } from 'react'; +import React from 'react'; import logo from '../Images/PortalLogo.png'; import logoContrast from '../Images/PortalLogoContrast.png' import { Navbar, NavItem } from 'react-materialize' -import Cookies from 'universal-cookie'; - - import '../Styles/NavigationBar.css' +import { Store } from '../Store' -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); -class NavigationBar extends Component { +function NavigationBar() { - render() { - var actualPath = window.location.href.split("/") - actualPath = actualPath[actualPath.length-1] - var logoSMPPIR = logo; - var contrastString = ''; - if(cookieStatus === 'true'){ - logoSMPPIR = logoContrast; - contrastString = 'Contrast' - } - return ( - <div> - <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{width: 200, marginLeft: 20, marginTop: 15}}/>} right> - <NavItem onClick={this.removeCSS} id={`${contrastString}navBarInicio`} className={'z-depth-0 '+actualPath} href='/'>InÃcio</NavItem> - <NavItem onClick={this.removeCSS} id={`${contrastString}navBarBrasilQ`} className={'z-depth-0 '+actualPath} href='/quilombolas'>Brasil Quilombola</NavItem> - <NavItem onClick={this.removeCSS} id={`${contrastString}navBarJuventudeV`} className={'z-depth-0 '+actualPath} href='/juventude'>Juventude Viva</NavItem> - {/* <NavItem onClick={this.removeCSS} id={`${contrastString}navBarMapas`} className={'z-depth-0 '+actualPath} href='/mapas'>Mapas</NavItem> */} - <NavItem onClick={this.removeCSS} id={`${contrastString}navBarMatrizAficana`} className={'z-depth-0 '+actualPath} href='/matrizAfricana'>Matriz Africana</NavItem> - <NavItem onClick={this.removeCSS} id={`${contrastString}navBarBrasilQU`} className={'z-depth-0 '+actualPath} href='/quilombola'>Quilombolas</NavItem> - <NavItem onClick={this.removeCSS} id={`${contrastString}navBarCotasRacias`} className={'z-depth-0 '+actualPath} href='/cotas'>Cotas Raciais</NavItem> - <NavItem onClick={this.removeCSS} id={`${contrastString}navBarSobre`} className={'z-depth-0 '+actualPath} href='/sobre'>Sobre</NavItem> - </Navbar> - </div> - ); + var actualPath = window.location.href.split("/") + actualPath = actualPath[actualPath.length-1] + var logoSMPPIR = logo; + + const { state } = React.useContext(Store); + var contrastString = state.contrast; + if (contrastString === 'Contrast'){ + logoSMPPIR = logoContrast; } + return ( + <div> + <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{width: 200, marginLeft: 20, marginTop: 15}}/>} right> + <NavItem id={`${contrastString}navBarInicio`} className={'z-depth-0 '+actualPath} href='/'>InÃcio</NavItem> + <NavItem id={`${contrastString}navBarBrasilQ`} className={'z-depth-0 '+actualPath} href='/quilombolas'>Brasil Quilombola</NavItem> + <NavItem id={`${contrastString}navBarJuventudeV`} className={'z-depth-0 '+actualPath} href='/juventude'>Juventude Viva</NavItem> + {/* <NavItem id={`${contrastString}navBarMapas`} className={'z-depth-0 '+actualPath} href='/mapas'>Mapas</NavItem> */} + <NavItem id={`${contrastString}navBarMatrizAficana`} className={'z-depth-0 '+actualPath} href='/matrizAfricana'>Matriz Africana</NavItem> + <NavItem id={`${contrastString}navBarBrasilQU`} className={'z-depth-0 '+actualPath} href='/quilombola'>Quilombolas</NavItem> + <NavItem id={`${contrastString}navBarCotasRacias`} className={'z-depth-0 '+actualPath} href='/cotas'>Cotas Raciais</NavItem> + <NavItem id={`${contrastString}navBarSobre`} className={'z-depth-0 '+actualPath} href='/sobre'>Sobre</NavItem> + </Navbar> + </div> + ); } export default NavigationBar; \ No newline at end of file -- GitLab From cc295f3ef88334b616d41f8e12044381ca030e19 Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Mon, 25 Feb 2019 11:37:46 -0300 Subject: [PATCH 12/23] Conditional rendering --- src/Quilombolas.js | 30 +++++++++++++++++++------- src/SubPages/Eixo1.js | 15 +++++-------- src/SubPages/Eixo2.js | 12 +++-------- src/SubPages/Eixo3.js | 11 +++------- src/SubPages/Eixo4.js | 17 +++++---------- src/SubPages/QuilombolaAbout.js | 12 +++-------- src/SubPages/QuilombolaPresentation.js | 12 +++-------- 7 files changed, 44 insertions(+), 65 deletions(-) diff --git a/src/Quilombolas.js b/src/Quilombolas.js index 5b1bbdf0..ec609858 100644 --- a/src/Quilombolas.js +++ b/src/Quilombolas.js @@ -36,7 +36,7 @@ import { Store } from './Store' function Quilombolas() { // Get information about which page was accessed - const { state } = React.useContext(Store); + const { state, dispatch } = React.useContext(Store); let states = { "APRESENTAÇÃO": false, "EIXO 1": false, "EIXO 2": false, "EIXO 3": false, "EIXO 4": false, "SOBRE": false } if (state.page in states) { states[state.page] = true @@ -45,19 +45,33 @@ function Quilombolas() { states["APRESENTAÇÃO"] = true } + // Hook to set page context + const setPageAction = (newPage) => { + return dispatch({ + type: 'SET_PAGE', + payload: newPage + }) + } + React.useEffect(() => { }); + + const whereIAm = (e, ev) => { + if (ev) + setPageAction(ev.target.innerText) + } + var contrastString = state.contrast return ( <div id={`${contrastString}mainPage`}> <NavigationBar /> <div id='contentTabsDiv'> - <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageRedTab`}> - <Tab title="Apresentação" active={states["APRESENTAÇÃO"]}> <QuilombolaPresentation/> </Tab> - <Tab title="Eixo 1" active={states["EIXO 1"]}> <Eixo1/> </Tab> - <Tab title="Eixo 2" active={states["EIXO 2"]}> <Eixo2/> </Tab> - <Tab title="Eixo 3" active={states["EIXO 3"]}> <Eixo3/> </Tab> - <Tab title="Eixo 4" active={states["EIXO 4"]}> <Eixo4/> </Tab> - <Tab title="Sobre" active={states["SOBRE"]}> <QuilombolaAbout/></Tab> + <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageRedTab`} onChange={whereIAm} > + <Tab title="Apresentação" active={states["APRESENTAÇÃO"]}> {states["APRESENTAÇÃO"] ? <QuilombolaPresentation /> :<div/>} </Tab> + <Tab title="Eixo 1" active={states["EIXO 1"]}> {states["EIXO 1"] ? <Eixo1 /> :<div/>} </Tab> + <Tab title="Eixo 2" active={states["EIXO 2"]}> {states["EIXO 2"] ? <Eixo2 /> :<div/>} </Tab> + <Tab title="Eixo 3" active={states["EIXO 3"]}> {states["EIXO 3"] ? <Eixo3 /> :<div/>} </Tab> + <Tab title="Eixo 4" active={states["EIXO 4"]}> {states["EIXO 4"] ? <Eixo4 /> :<div/>} </Tab> + <Tab title="Sobre" active={states["SOBRE"]}> {states["SOBRE"] ? <QuilombolaAbout /> :<div/>} </Tab> </Tabs> </div> </div> diff --git a/src/SubPages/Eixo1.js b/src/SubPages/Eixo1.js index 24e4fda2..4dc66f79 100644 --- a/src/SubPages/Eixo1.js +++ b/src/SubPages/Eixo1.js @@ -32,7 +32,6 @@ import * as data from '../JsonsAntigos/brasil-quilombola/bqe1' import BuildLineNotFixed from '../Charts/BuildLineNotFixed' import BuildPie from '../Charts/BuildPie' import Table from '../Components/Table' -import Cookies from 'universal-cookie'; import Map from '../Components/Map'; @@ -42,9 +41,7 @@ import Map from '../Components/Map'; // import csv5 from './CSVoriginais/pbq/comunidades_por_status_por_uf.csv' import './Styles/Eixo1.css' - -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); +import { Store } from '../Store'; const nullInfo = [{ @@ -76,18 +73,15 @@ class Eixo1 extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } + var contrastString = this.context.state.contrast; return ( <div> <Row> <Col l={3} m={5} s={8}> - <h4 className="eixoHeaderQ">Eixo 1</h4> + <h4 className={`${contrastString}eixoHeaderQ`}>Eixo 1</h4> </Col> <Col l={5} m={8} s={8}> - <p className="eixoSubHeader"> Clique sobre qualquer estado em um mapa ou + <p className={`${contrastString}eixoSubHeader`}> Clique sobre qualquer estado em um mapa ou tabela para apresentar os dados somente daquele estado. Clique novamente para voltar aos dados do Brasil. </p> </Col> @@ -184,5 +178,6 @@ class Eixo1 extends Component { } } } +Eixo1.contextType = Store; export default Eixo1; diff --git a/src/SubPages/Eixo2.js b/src/SubPages/Eixo2.js index 993bae6d..f6375df7 100644 --- a/src/SubPages/Eixo2.js +++ b/src/SubPages/Eixo2.js @@ -32,7 +32,7 @@ import * as data from '../JsonsAntigos/brasil-quilombola/bqe2'; import BuildPie from '../Charts/BuildPie'; import BuildBar from '../Charts/BuildBar'; import HeatMap from '../Components/HeatMap'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store'; import './Styles/Eixo2.css' @@ -44,9 +44,6 @@ import csv5 from './CSVoriginais/pbq/pbq_luz_para_todos_por_regiao.csv' import csv6 from './CSVoriginais/pbq/pbq_mcasamvida_unidades_por_uf_ano.csv' import csv7 from './CSVoriginais/pbq/pbq_obras_saneamento_por_uf_ano.csv' -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - const customNames = {"Ano":"Ano", "Unidades Contratadas":"Unidades Contratadas"} @@ -67,10 +64,7 @@ class Eixo2 extends Component { this.clearMap() } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } + var contrastString = this.context.state.contrast; return ( <div> <Row> @@ -206,7 +200,7 @@ class Eixo2 extends Component { } } } - +Eixo2.contextType = Store; export default Eixo2; diff --git a/src/SubPages/Eixo3.js b/src/SubPages/Eixo3.js index 431f9294..ca0ab821 100644 --- a/src/SubPages/Eixo3.js +++ b/src/SubPages/Eixo3.js @@ -32,7 +32,7 @@ import * as data from '../JsonsAntigos/brasil-quilombola/bqe3'; import BuildPie from '../Charts/BuildPie'; import BuildBar from '../Charts/BuildBar'; import HeatMap from '../Components/HeatMap'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store'; import './Styles/Eixo3.css' @@ -44,9 +44,6 @@ import csv5 from './CSVoriginais/pbq/daps_emitidas_por_ano_por_uf.csv' import csv6 from './CSVoriginais/pbq/paa_quilombolas_por_ano_por_uf.csv' -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - const nullInfo = [{ "tipo":"Sem informação", "valor":null @@ -68,10 +65,7 @@ class Eixo3 extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } + var contrastString = this.context.state.contrast; return ( <div> <Row> @@ -206,5 +200,6 @@ class Eixo3 extends Component { return(val.toFixed(2)) } } +Eixo3.contextType = Store; export default Eixo3; diff --git a/src/SubPages/Eixo4.js b/src/SubPages/Eixo4.js index ba208d8f..ba1472dc 100644 --- a/src/SubPages/Eixo4.js +++ b/src/SubPages/Eixo4.js @@ -32,7 +32,7 @@ import * as data from '../JsonsAntigos/brasil-quilombola/bqe4'; import BuildPie from '../Charts/BuildPie'; import BuildBar from '../Charts/BuildBar'; import HeatMap from '../Components/HeatMap'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store'; import './Styles/Eixo4.css' @@ -47,10 +47,6 @@ import csv7 from './CSVoriginais/pbq/equipes_saude_por_ano_por_uf.csv' import csv8 from './CSVoriginais/pbq/mais_medicos_por_ano_por_uf.csv' -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - - const customKeysP5 = { "Ano": "Ano", "Ensino Infantil":"Ensino Infantil", @@ -85,18 +81,15 @@ class Eixo4 extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } + var contrastString = this.context.state.contrast; return ( <div> <Row> <Col l={3} m={5} s={8}> - <h4 className="eixoHeaderQ">Eixo 4</h4> + <h4 className={`${contrastString}eixoHeaderQ`}>Eixo 4</h4> </Col> <Col l={5} m={8} s={8}> - <p className="eixoSubHeader"> Clique sobre qualquer estado em um mapa ou tabela para apresentar os + <p className={`${contrastString}eixoSubHeader`}> Clique sobre qualquer estado em um mapa ou tabela para apresentar os dados somente daquele estado. Clique novamente para voltar aos dados do Brasil. </p> </Col> </Row> @@ -260,7 +253,7 @@ fixDataP5(data){ } } - +Eixo4.contextType = Store; export default Eixo4; diff --git a/src/SubPages/QuilombolaAbout.js b/src/SubPages/QuilombolaAbout.js index 9e6d979f..45d6db30 100644 --- a/src/SubPages/QuilombolaAbout.js +++ b/src/SubPages/QuilombolaAbout.js @@ -19,7 +19,6 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. */ import React, { Component } from 'react'; -import Cookies from 'universal-cookie'; import {Card} from 'react-materialize'; import './Styles/QuilombolaAbout.css' import csv1 from './CSVoriginais/pbq/comunidades_certificadas_por_uf.csv' @@ -29,18 +28,12 @@ import csv5 from './CSVoriginais/pbq/comunidades_por_status_por_uf.csv' import csv6 from './CSVoriginais/pbq/cadunico_familias_por_uf.csv' import csv7 from './CSVoriginais/pbq/cadunico_domicilios_rurais_por_uf.csv' import csv8 from './CSVoriginais/pbq/cadunico_domicilios_servicos_presentes_por_uf.csv' - - -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); +import { Store } from '../Store' class QuilombolaAbout extends Component { render() { - var contrastString = ''; - if (cookieStatus === 'true') { - contrastString = 'Contrast' - } + var contrastString = this.context.state.contrast; return ( <div> <h4>Catálogo de indicadores disponÃveis no sistema</h4> @@ -132,5 +125,6 @@ class QuilombolaAbout extends Component { ); } } +QuilombolaAbout.contextType = Store; export default QuilombolaAbout; diff --git a/src/SubPages/QuilombolaPresentation.js b/src/SubPages/QuilombolaPresentation.js index 096efa96..75607ea8 100644 --- a/src/SubPages/QuilombolaPresentation.js +++ b/src/SubPages/QuilombolaPresentation.js @@ -21,19 +21,13 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; -import Cookies from 'universal-cookie'; - +import { Store } from '../Store' import './Styles/QuilombolaPresentation.css' -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); class QuilombolaPresentation extends Component { render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } + var contrastString = this.context.state.contrast; return ( <div className="container"> <div className={`${contrastString}apresentacao`}> @@ -59,7 +53,7 @@ class QuilombolaPresentation extends Component { ); } } - +QuilombolaPresentation.contextType = Store; export default QuilombolaPresentation; -- GitLab From f9aad5a28b700bc0bfe756d05a814d870cc6786b Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Wed, 27 Feb 2019 09:34:13 -0300 Subject: [PATCH 13/23] Navbar with links that don't reload --- src/Components/NavigationBar.js | 27 +++++++++++++++++---------- src/Styles/NavigationBar.css | 4 ++++ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/Components/NavigationBar.js b/src/Components/NavigationBar.js index 6415d2c5..d9b7877e 100644 --- a/src/Components/NavigationBar.js +++ b/src/Components/NavigationBar.js @@ -25,6 +25,8 @@ import logoContrast from '../Images/PortalLogoContrast.png' import { Navbar, NavItem } from 'react-materialize' import '../Styles/NavigationBar.css' import { Store } from '../Store' +import { Link } from 'react-router-dom' + function NavigationBar() { @@ -38,18 +40,23 @@ function NavigationBar() { if (contrastString === 'Contrast'){ logoSMPPIR = logoContrast; } + return ( <div> - <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{width: 200, marginLeft: 20, marginTop: 15}}/>} right> - <NavItem id={`${contrastString}navBarInicio`} className={'z-depth-0 '+actualPath} href='/'>InÃcio</NavItem> - <NavItem id={`${contrastString}navBarBrasilQ`} className={'z-depth-0 '+actualPath} href='/quilombolas'>Brasil Quilombola</NavItem> - <NavItem id={`${contrastString}navBarJuventudeV`} className={'z-depth-0 '+actualPath} href='/juventude'>Juventude Viva</NavItem> - {/* <NavItem id={`${contrastString}navBarMapas`} className={'z-depth-0 '+actualPath} href='/mapas'>Mapas</NavItem> */} - <NavItem id={`${contrastString}navBarMatrizAficana`} className={'z-depth-0 '+actualPath} href='/matrizAfricana'>Matriz Africana</NavItem> - <NavItem id={`${contrastString}navBarBrasilQU`} className={'z-depth-0 '+actualPath} href='/quilombola'>Quilombolas</NavItem> - <NavItem id={`${contrastString}navBarCotasRacias`} className={'z-depth-0 '+actualPath} href='/cotas'>Cotas Raciais</NavItem> - <NavItem id={`${contrastString}navBarSobre`} className={'z-depth-0 '+actualPath} href='/sobre'>Sobre</NavItem> - </Navbar> + {/* <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<Link to='/'><img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{ width: 200, marginLeft: 20, marginTop: 15 }} /></Link>}> */} + <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{ width: 200, marginLeft: 20, marginTop: 15 }} />}> + <ul className="right "> + {/* <NavItem id={`${contrastString}navBarInicio`} className={'z-depth-0 '+actualPath} href='/'>InÃcio</NavItem> */} + <li id={`${contrastString}navBarInicio`} className={'z-depth-0 ' + actualPath}><Link to='/'>InÃcio</Link></li> + <li id={`${contrastString}navBarBrasilQ`} className={'z-depth-0 ' + actualPath}><Link to='/quilombolas'>Brasil Quilombola</Link></li> + <li id={`${contrastString}navBarJuventudeV`} className={'z-depth-0 '+actualPath}><Link to='/juventude'>Juventude Viva</Link></li> + {/* <li id={`${contrastString}navBarMapas`} className={'z-depth-0 '+actualPath}><Link to='/mapas'>Mapas</Link></li> */} + <li id={`${contrastString}navBarMatrizAficana`} className={'z-depth-0 '+actualPath}><Link to='/matrizAfricana'>Matriz Africana</Link></li> + <li id={`${contrastString}navBarBrasilQU`} className={'z-depth-0 '+actualPath}><Link to='/quilombola'>Quilombolas</Link></li> + <li id={`${contrastString}navBarCotasRacias`} className={'z-depth-0 '+actualPath}><Link to='/cotas'>Cotas Raciais</Link></li> + <li id={`${contrastString}navBarSobre`} className={'z-depth-0 '+actualPath}><Link to='/sobre'>Sobre</Link></li> + </ul> + </Navbar> </div> ); } diff --git a/src/Styles/NavigationBar.css b/src/Styles/NavigationBar.css index 098c8729..ddb0e78c 100644 --- a/src/Styles/NavigationBar.css +++ b/src/Styles/NavigationBar.css @@ -35,6 +35,10 @@ nav a{ background-color: white; } +.navLogo:hover{ + background-color: white; +} + #navBarInicio > a, #navBarBrasilQ > a, -- GitLab From 779c547854b4e5f25d12fa4b20a967b05d8ecfcd Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Wed, 27 Feb 2019 14:35:39 -0300 Subject: [PATCH 14/23] Fix sidebar toggle --- src/Components/NavigationBar.js | 74 ++++++++++++++++++++++++--------- src/SubPages/QuilombolaAbout.js | 2 +- 2 files changed, 56 insertions(+), 20 deletions(-) diff --git a/src/Components/NavigationBar.js b/src/Components/NavigationBar.js index d9b7877e..caa099b5 100644 --- a/src/Components/NavigationBar.js +++ b/src/Components/NavigationBar.js @@ -22,7 +22,7 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React from 'react'; import logo from '../Images/PortalLogo.png'; import logoContrast from '../Images/PortalLogoContrast.png' -import { Navbar, NavItem } from 'react-materialize' +import { Navbar, NavItem, SideNav } from 'react-materialize' import '../Styles/NavigationBar.css' import { Store } from '../Store' import { Link } from 'react-router-dom' @@ -41,24 +41,60 @@ function NavigationBar() { logoSMPPIR = logoContrast; } - return ( - <div> - {/* <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<Link to='/'><img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{ width: 200, marginLeft: 20, marginTop: 15 }} /></Link>}> */} - <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{ width: 200, marginLeft: 20, marginTop: 15 }} />}> - <ul className="right "> - {/* <NavItem id={`${contrastString}navBarInicio`} className={'z-depth-0 '+actualPath} href='/'>InÃcio</NavItem> */} - <li id={`${contrastString}navBarInicio`} className={'z-depth-0 ' + actualPath}><Link to='/'>InÃcio</Link></li> - <li id={`${contrastString}navBarBrasilQ`} className={'z-depth-0 ' + actualPath}><Link to='/quilombolas'>Brasil Quilombola</Link></li> - <li id={`${contrastString}navBarJuventudeV`} className={'z-depth-0 '+actualPath}><Link to='/juventude'>Juventude Viva</Link></li> - {/* <li id={`${contrastString}navBarMapas`} className={'z-depth-0 '+actualPath}><Link to='/mapas'>Mapas</Link></li> */} - <li id={`${contrastString}navBarMatrizAficana`} className={'z-depth-0 '+actualPath}><Link to='/matrizAfricana'>Matriz Africana</Link></li> - <li id={`${contrastString}navBarBrasilQU`} className={'z-depth-0 '+actualPath}><Link to='/quilombola'>Quilombolas</Link></li> - <li id={`${contrastString}navBarCotasRacias`} className={'z-depth-0 '+actualPath}><Link to='/cotas'>Cotas Raciais</Link></li> - <li id={`${contrastString}navBarSobre`} className={'z-depth-0 '+actualPath}><Link to='/sobre'>Sobre</Link></li> - </ul> - </Navbar> - </div> - ); + let links = ( + <React.Fragment> + {/* <li id={`${contrastString}navBarInicio`} className={'z-depth-0 ' + actualPath}><Link to='/'>InÃcio</Link></li> */} + <li id={`${contrastString}navBarBrasilQ`} className={'z-depth-0 ' + actualPath}><Link to='/quilombolas'>Brasil Quilombola</Link></li> + <li id={`${contrastString}navBarJuventudeV`} className={'z-depth-0 '+actualPath}><Link to='/juventude'>Juventude Viva</Link></li> + <li id={`${contrastString}navBarMatrizAficana`} className={'z-depth-0 '+actualPath}><Link to='/matrizAfricana'>Matriz Africana</Link></li> + <li id={`${contrastString}navBarBrasilQU`} className={'z-depth-0 '+actualPath}><Link to='/quilombola'>Quilombolas</Link></li> + <li id={`${contrastString}navBarCotasRacias`} className={'z-depth-0 '+actualPath}><Link to='/cotas'>Cotas Raciais</Link></li> + <li id={`${contrastString}navBarSobre`} className={'z-depth-0 '+actualPath}><Link to='/sobre'>Sobre</Link></li> + </React.Fragment> + ) + + let content = ( + <nav className={`${contrastString}navBackground z-depth-2`} style={{ height: 65 }}> + <div className="nav-wrapper"> + + <Link className="brand-logo hide-on-med-and-down" to='/'> + <img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{ width: 200, marginLeft: 20, marginTop: 15 }} /> + </Link> + <Link className="brand-logo center hide-on-large-only" to='/'> + <img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{ width: 200, marginLeft: 20, marginTop: 15 }} /> + </Link> + + <ul className="right hide-on-med-and-down">{links}</ul> + + <div className="left hide-on-large-only"> + <SideNav trigger={<a href="#"><i className="material-icons" style={{ marginLeft: 20 }}>menu</i></a>} options={{closeOnClick:true}}> + {links} + </SideNav> + </div> + + </div> + </nav> + ) + return content; + + // return ( + // <div> + // {/* <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<Link to='/'><img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{ width: 200, marginLeft: 20, marginTop: 15 }} /></Link>}> */} + // <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{ width: 200, marginLeft: 20, marginTop: 15 }} />}> + // <ul className="right "> + // {/* <NavItem id={`${contrastString}navBarInicio`} className={'z-depth-0 '+actualPath} href='/'>InÃcio</NavItem> */} + // <li id={`${contrastString}navBarInicio`} className={'z-depth-0 ' + actualPath}><Link to='/'>InÃcio</Link></li> + // <li id={`${contrastString}navBarBrasilQ`} className={'z-depth-0 ' + actualPath}><Link to='/quilombolas'>Brasil Quilombola</Link></li> + // <li id={`${contrastString}navBarJuventudeV`} className={'z-depth-0 '+actualPath}><Link to='/juventude'>Juventude Viva</Link></li> + // {/* <li id={`${contrastString}navBarMapas`} className={'z-depth-0 '+actualPath}><Link to='/mapas'>Mapas</Link></li> */} + // <li id={`${contrastString}navBarMatrizAficana`} className={'z-depth-0 '+actualPath}><Link to='/matrizAfricana'>Matriz Africana</Link></li> + // <li id={`${contrastString}navBarBrasilQU`} className={'z-depth-0 '+actualPath}><Link to='/quilombola'>Quilombolas</Link></li> + // <li id={`${contrastString}navBarCotasRacias`} className={'z-depth-0 '+actualPath}><Link to='/cotas'>Cotas Raciais</Link></li> + // <li id={`${contrastString}navBarSobre`} className={'z-depth-0 '+actualPath}><Link to='/sobre'>Sobre</Link></li> + // </ul> + // </Navbar> + // </div> + // ); } export default NavigationBar; \ No newline at end of file diff --git a/src/SubPages/QuilombolaAbout.js b/src/SubPages/QuilombolaAbout.js index 45d6db30..bc5db817 100644 --- a/src/SubPages/QuilombolaAbout.js +++ b/src/SubPages/QuilombolaAbout.js @@ -36,7 +36,7 @@ class QuilombolaAbout extends Component { var contrastString = this.context.state.contrast; return ( <div> - <h4>Catálogo de indicadores disponÃveis no sistema</h4> + <h4 className={`${contrastString}eixoHeaderQ`}>Catálogo de indicadores disponÃveis no sistema</h4> <div className="gridTemplate"> <Card id={`${contrastString}c1`} title="Certificações Emitidas" > <p> -- GitLab From 73d00cdaf563aad268edfefd781bbdc1cb51c359 Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Wed, 27 Feb 2019 14:52:18 -0300 Subject: [PATCH 15/23] Sidebar contrast --- src/Components/NavigationBar.js | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/src/Components/NavigationBar.js b/src/Components/NavigationBar.js index caa099b5..2f6aa3fa 100644 --- a/src/Components/NavigationBar.js +++ b/src/Components/NavigationBar.js @@ -22,7 +22,7 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React from 'react'; import logo from '../Images/PortalLogo.png'; import logoContrast from '../Images/PortalLogoContrast.png' -import { Navbar, NavItem, SideNav } from 'react-materialize' +import { SideNav } from 'react-materialize' import '../Styles/NavigationBar.css' import { Store } from '../Store' import { Link } from 'react-router-dom' @@ -67,7 +67,7 @@ function NavigationBar() { <ul className="right hide-on-med-and-down">{links}</ul> <div className="left hide-on-large-only"> - <SideNav trigger={<a href="#"><i className="material-icons" style={{ marginLeft: 20 }}>menu</i></a>} options={{closeOnClick:true}}> + <SideNav className={`${contrastString}navBackground`} trigger={<a href="#"><i className="material-icons" style={{ marginLeft: 20 }}>menu</i></a>} options={{closeOnClick:true}}> {links} </SideNav> </div> @@ -76,25 +76,6 @@ function NavigationBar() { </nav> ) return content; - - // return ( - // <div> - // {/* <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<Link to='/'><img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{ width: 200, marginLeft: 20, marginTop: 15 }} /></Link>}> */} - // <Navbar className={`${contrastString}navBackground z-depth-2`} brand={<img alt='Logo do SMPPIR' id={'portal-logo'} src={logoSMPPIR} style={{ width: 200, marginLeft: 20, marginTop: 15 }} />}> - // <ul className="right "> - // {/* <NavItem id={`${contrastString}navBarInicio`} className={'z-depth-0 '+actualPath} href='/'>InÃcio</NavItem> */} - // <li id={`${contrastString}navBarInicio`} className={'z-depth-0 ' + actualPath}><Link to='/'>InÃcio</Link></li> - // <li id={`${contrastString}navBarBrasilQ`} className={'z-depth-0 ' + actualPath}><Link to='/quilombolas'>Brasil Quilombola</Link></li> - // <li id={`${contrastString}navBarJuventudeV`} className={'z-depth-0 '+actualPath}><Link to='/juventude'>Juventude Viva</Link></li> - // {/* <li id={`${contrastString}navBarMapas`} className={'z-depth-0 '+actualPath}><Link to='/mapas'>Mapas</Link></li> */} - // <li id={`${contrastString}navBarMatrizAficana`} className={'z-depth-0 '+actualPath}><Link to='/matrizAfricana'>Matriz Africana</Link></li> - // <li id={`${contrastString}navBarBrasilQU`} className={'z-depth-0 '+actualPath}><Link to='/quilombola'>Quilombolas</Link></li> - // <li id={`${contrastString}navBarCotasRacias`} className={'z-depth-0 '+actualPath}><Link to='/cotas'>Cotas Raciais</Link></li> - // <li id={`${contrastString}navBarSobre`} className={'z-depth-0 '+actualPath}><Link to='/sobre'>Sobre</Link></li> - // </ul> - // </Navbar> - // </div> - // ); } export default NavigationBar; \ No newline at end of file -- GitLab From 8f5eef116c764b4af156db14a47d082b8464cd06 Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Thu, 7 Mar 2019 10:16:17 -0300 Subject: [PATCH 16/23] Remove cookies from Youth --- src/SubPages/YouthEducation.js | 16 +---- src/SubPages/YouthJob.js | 15 +---- src/SubPages/YouthPresentation.js | 14 +--- src/SubPages/YouthVulnerabilities.js | 22 ++----- src/Youth.js | 96 +++++++++++----------------- 5 files changed, 52 insertions(+), 111 deletions(-) diff --git a/src/SubPages/YouthEducation.js b/src/SubPages/YouthEducation.js index 6a7894e6..0a9e7069 100644 --- a/src/SubPages/YouthEducation.js +++ b/src/SubPages/YouthEducation.js @@ -28,10 +28,10 @@ import UfBar from '../Components/UfBar'; import GrayBar from '../Components/GrayBar'; import { getStateExtendedName } from '../enviroment'; import * as data from '../JsonsAntigos/juventude-viva/jved' -import Cookies from 'universal-cookie'; import HeatMap from '../Components/HeatMap'; import BuildBar from '../Charts/BuildBar' import BuildPie from '../Charts/BuildPie' +import { Store } from '../Store' import './Styles/YouthEducation.css' @@ -42,11 +42,6 @@ import csv4 from './CSVoriginais/pjv/pnad_frequenta_escola_por_uf.csv' import csv5 from './CSVoriginais/pjv/pnad_distorcao_por_uf.csv' - -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - class YouthEducation extends Component { constructor(props) { super(props); @@ -57,11 +52,7 @@ class YouthEducation extends Component { this.clearMap = this.clearMap.bind(this); } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "EDUCAÇÃO") + var contrastString = this.context.state.contrast; return ( <div> @@ -142,7 +133,6 @@ class YouthEducation extends Component { </div> </div> ); - else return <div></div> } getMapClick(clicked) { @@ -154,7 +144,7 @@ class YouthEducation extends Component { this.setState({clickedInMap: null}); } } - +YouthEducation.contextType = Store; export default YouthEducation; diff --git a/src/SubPages/YouthJob.js b/src/SubPages/YouthJob.js index 4382dd14..6427c3f5 100644 --- a/src/SubPages/YouthJob.js +++ b/src/SubPages/YouthJob.js @@ -28,10 +28,10 @@ import UfBar from '../Components/UfBar'; import GrayBar from '../Components/GrayBar'; import { getStateExtendedName } from '../enviroment'; import * as data from '../JsonsAntigos/juventude-viva/jvtr' -import Cookies from 'universal-cookie'; import HeatMap from '../Components/HeatMap'; import BuildPie from '../Charts/BuildPie' import BuildStackedBar from '../Charts/BuildStackedBar' +import { Store } from '../Store' import './Styles/YouthJob.css' @@ -41,10 +41,6 @@ import csv3 from './CSVoriginais/pjv/pnad_carteira_assinada_por_uf.csv' import csv4 from './CSVoriginais/pjv/pnad_percentis_salario_por_uf.csv' -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - class YouthJob extends Component { constructor(props) { super(props); @@ -55,11 +51,7 @@ class YouthJob extends Component { this.clearMap = this.clearMap.bind(this); } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "TRABALHO") + var contrastString = this.context.state.contrast; return ( <div> <Row> @@ -120,7 +112,6 @@ class YouthJob extends Component { </div> </div> ); - else return <div></div> } getMapClick(clicked) { @@ -132,7 +123,7 @@ class YouthJob extends Component { this.setState({clickedInMap: null}); } } - +YouthJob.contextType = Store; diff --git a/src/SubPages/YouthPresentation.js b/src/SubPages/YouthPresentation.js index cd5d591b..b02b156c 100644 --- a/src/SubPages/YouthPresentation.js +++ b/src/SubPages/YouthPresentation.js @@ -21,20 +21,13 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; -import Cookies from 'universal-cookie'; import './Styles/YouthPresentation.css' +import { Store } from '../Store' -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); class YouthPresentation extends Component { render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "APRESENTAÇÃO") + var contrastString = this.context.state.contrast; return ( <div> <div className="container"> @@ -61,10 +54,9 @@ class YouthPresentation extends Component { </div> </div> </div> ); - else return <div></div> } } - +YouthPresentation.contextType = Store; export default YouthPresentation; diff --git a/src/SubPages/YouthVulnerabilities.js b/src/SubPages/YouthVulnerabilities.js index 19cb3ae3..dafddc75 100644 --- a/src/SubPages/YouthVulnerabilities.js +++ b/src/SubPages/YouthVulnerabilities.js @@ -34,9 +34,8 @@ import BuildPie from '../Charts/BuildPie' import Table from '../Components/Table' import * as data from '../JsonsAntigos/juventude-viva/jvvu' -import Cookies from 'universal-cookie'; - import './Styles/YouthVulnerabilities.css' +import { Store } from '../Store' import csv1 from './CSVoriginais/pjv/sim_pnad_taxa_homicidios_por_uf.csv' @@ -49,11 +48,6 @@ import csv7 from './CSVoriginais/pjv/pjv_lista_adesao.csv' import csv8 from './CSVoriginais/pjv/taxa_homicidios_por_municipio.csv' - -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - class YouthVulnerabilities extends Component { constructor(props) { super(props); @@ -65,11 +59,7 @@ class YouthVulnerabilities extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "VULNERABILIDADES") + var contrastString = this.context.state.contrast; return ( <div> <Row> @@ -148,7 +138,6 @@ class YouthVulnerabilities extends Component { </div> </div> ); - else return <div></div> } getMapClick(clicked) { @@ -166,9 +155,8 @@ class YouthVulnerabilities extends Component { "Brancos, 15 a 29 anos":data['Taxa de HomicÃdios (Brancos, 15 a 29 anos)'], "Negros, 15 a 29 anos": data['Taxa de HomicÃdios (Negros, 15 a 29 anos)'], "Total, 15 a 29 anos": data['Taxa de HomicÃdios (Total, 15 a 29 anos)'] - } - ]) -} + }]) + } fixDataP7(jsonData){ @@ -234,6 +222,8 @@ fixDataP7(jsonData){ } +YouthVulnerabilities.contextType = Store; + diff --git a/src/Youth.js b/src/Youth.js index 413e3fe5..862d5a64 100644 --- a/src/Youth.js +++ b/src/Youth.js @@ -28,77 +28,55 @@ import YouthVulnerabilities from './SubPages/YouthVulnerabilities' import YouthEducation from './SubPages/YouthEducation' import YouthJob from './SubPages/YouthJob' import { Tab, Tabs } from 'react-materialize' -import Cookies from 'universal-cookie'; +import { Store } from './Store' import { sleep, homeURL } from './enviroment' -import ContrastBar from './Components/ContrastBar' import './Styles/Youth.css' -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); +function Youth() { -class Youth extends Component { - constructor(props) { - super(props); - this.whereIAm = this.whereIAm.bind(this); + // Get information about which page was accessed + const { state, dispatch } = React.useContext(Store); + var states = { "APRESENTAÇÃO": false, "VULNERABILIDADES": false, "EDUCAÇÃO": false, "TRABALHO": false} + if (state.page in states) { + states[state.page] = true } - componentDidMount() { - this.whereIAm() + else { + states["APRESENTAÇÃO"] = true } - render() { - const cookie = new Cookies(); - - var clicked = cookie.get('mainPageClicked') - var states = {"APRESENTAÇÃO": false, "VULNERABILIDADES": true, "EDUCAÇÃO": false, "TRABALHO": false} - if (clicked !== undefined){ - if (clicked in states){ - states["VULNERABILIDADES"] = false; - states[clicked] = true; - } - else{ - states = {"APRESENTAÇÃO": true, "VULNERABILIDADES": false, "EDUCAÇÃO": false, "TRABALHO": false} - ck.set('mainPageClicked', 'APRESENTAÇÃO'); - } - } - else{ - // Redirect user to the main page if he/she do not have a cookie - window.location.href = homeURL() - } - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - return ( - <div id={`${contrastString}mainPage`}> - <ContrastBar/> - <NavigationBar/> - - <div id='contentTabsDiv'> - <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageTealTab`} onChange={this.whereIAm}> - <Tab title="Apresentação" active={states["APRESENTAÇÃO"]}> <YouthPresentation/> </Tab> - <Tab title="Vulnerabilidades" active={states["VULNERABILIDADES"]}> <YouthVulnerabilities/> </Tab> - <Tab title="Educação" active={states["EDUCAÇÃO"]}> <YouthEducation/> </Tab> - <Tab title="Trabalho" active={states["TRABALHO"]}> <YouthJob/> </Tab> - </Tabs> - </div> - <AppFooter/> - </div> - ); + + // Hook to set page context + const setPageAction = (newPage) => { + return dispatch({ + type: 'SET_PAGE', + payload: newPage + }) } + React.useEffect(() => { }); - whereIAm(e, ev){ - if(ev){ - ck.set('mainPageClicked', ev.target.innerText); - this.setState({visited:ev.target.innerText}); - } - sleep(1).then(() => { - if(document.getElementsByClassName('clearmapbtn')[0]) - document.getElementsByClassName('clearmapbtn')[0].click() - }); + const whereIAm = (e, ev) => { + if (ev) + setPageAction(ev.target.innerText) } + + var contrastString = state.contrast + + return ( + <div id={`${contrastString}mainPage`}> + <NavigationBar/> + + <div id='contentTabsDiv'> + <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageTealTab`} onChange={whereIAm}> + <Tab title="Apresentação" active={states["APRESENTAÇÃO"]}> {states["APRESENTAÇÃO"] ? <YouthPresentation /> : <div/>} </Tab> + <Tab title="Vulnerabilidades" active={states["VULNERABILIDADES"]}> {states["VULNERABILIDADES"] ? <YouthVulnerabilities /> : <div/>} </Tab> + <Tab title="Educação" active={states["EDUCAÇÃO"]}> {states["EDUCAÇÃO"] ? <YouthEducation /> : <div/>} </Tab> + <Tab title="Trabalho" active={states["TRABALHO"]}> {states["TRABALHO"] ? <YouthJob /> : <div />} </Tab> + </Tabs> + </div> + </div> + ); } -- GitLab From f2b26e2677c9b153bffe639f94a68a953eb3a747 Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Thu, 7 Mar 2019 11:03:22 -0300 Subject: [PATCH 17/23] Remove cookies from AfricanOrigin --- src/AfricanOrigin.js | 94 ++++++++++----------------- src/SubPages/AfricanCulture.js | 21 ++---- src/SubPages/AfricanRights.js | 19 ++---- src/SubPages/AfricanSustainability.js | 19 +----- src/SubPages/YouthAbout.js | 8 +-- src/Youth.js | 3 - 6 files changed, 48 insertions(+), 116 deletions(-) diff --git a/src/AfricanOrigin.js b/src/AfricanOrigin.js index 1e8da6ce..2b3dcb2f 100644 --- a/src/AfricanOrigin.js +++ b/src/AfricanOrigin.js @@ -25,78 +25,52 @@ import NavigationBar from './Components/NavigationBar'; import AfricanCulture from './SubPages/AfricanCulture'; import AfricanSustainability from './SubPages/AfricanSustainability'; import AfricanRights from './SubPages/AfricanRights'; -import AppFooter from './Components/AppFooter'; -import Cookies from 'universal-cookie'; import { Tab, Tabs } from 'react-materialize'; -import { sleep, homeURL } from './enviroment'; -import ContrastBar from './Components/ContrastBar' +import { Store } from './Store' import './Styles/AfricanOrigin.css' -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); +function AfricanOrigin() { -class AfricanOrigin extends Component { - constructor(props) { - super(props); - this.whereIAm = this.whereIAm.bind(this); + // Get information about which page was accessed + const { state, dispatch } = React.useContext(Store); + var states = {"DIREITOS": false, "CULTURA": false, "SUSTENTABILIDADE":false} + if (state.page in states) { + states[state.page] = true } - componentDidMount() { - this.whereIAm() + else { + states["DIREITOS"] = true } - render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - const cookie = new Cookies(); - - var clicked = cookie.get('mainPageClicked') - var states = {"DIREITOS": true, "CULTURA": false, "SUSTENTABILIDADE":false} - if (clicked !== undefined){ - if (clicked in states){ - states["DIREITOS"] = false; - states[clicked] = true; - } - else{ - states = {"DIREITOS": true, "CULTURA": false, "SUSTENTABILIDADE":false} - ck.set('mainPageClicked', 'DIREITOS'); - } - } - else{ - // Redirect user to the main page if he/she do not have a cookie - window.location.href = homeURL() - } - return ( - <div id={`${contrastString}mainPage`}> - <ContrastBar/> - <NavigationBar/> - - <div id='contentTabsDiv'> - <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageDarkBlueTab`} onChange={this.whereIAm}> - <Tab title="Direitos" active={states["DIREITOS"]}> <AfricanRights key={clicked} /> </Tab> - <Tab title="Cultura" active={states["CULTURA"]}> <AfricanCulture key={clicked} /> </Tab> - <Tab title="Sustentabilidade" active={states["SUSTENTABILIDADE"]}> <AfricanSustainability key={clicked} /> </Tab> - </Tabs> - </div> - <AppFooter/> - </div> - ); + // Hook to set page context + const setPageAction = (newPage) => { + return dispatch({ + type: 'SET_PAGE', + payload: newPage + }) } + React.useEffect(() => { }); - whereIAm(e, ev){ - if(ev){ - ck.set('mainPageClicked', ev.target.innerText); - this.setState({visited:ev.target.innerText}); - } - sleep(1).then(() => { - if(document.getElementsByClassName('clearmapbtn')[0]) - document.getElementsByClassName('clearmapbtn')[0].click() - }); + const whereIAm = (e, ev) => { + if (ev) + setPageAction(ev.target.innerText) } + + var contrastString = state.contrast + + return ( + <div id={`${contrastString}mainPage`}> + <NavigationBar/> + <div id='contentTabsDiv'> + <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageDarkBlueTab`} onChange={whereIAm}> + <Tab title="Direitos" active={states["DIREITOS"]}> {states["DIREITOS"] ? <AfricanRights /> : <div />} </Tab> + <Tab title="Cultura" active={states["CULTURA"]}> {states["CULTURA"] ? <AfricanCulture /> : <div />} </Tab> + <Tab title="Sustentabilidade" active={states["SUSTENTABILIDADE"]}> {states["SUSTENTABILIDADE"] ? <AfricanSustainability /> : <div />} </Tab> + </Tabs> + </div> + </div> + ); } export default AfricanOrigin; \ No newline at end of file diff --git a/src/SubPages/AfricanCulture.js b/src/SubPages/AfricanCulture.js index e050aea5..cb4a0325 100644 --- a/src/SubPages/AfricanCulture.js +++ b/src/SubPages/AfricanCulture.js @@ -21,7 +21,6 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; -import Cookies from 'universal-cookie'; import {Collapsible, Row, Col} from 'react-materialize'; import { getServerURL, organizeJson, deactivateLoadingAnimation } from '../enviroment' import CollapsibleContainer from '../Components/CollapsibleContainer' @@ -30,13 +29,10 @@ import BuildStackedBar from '../Charts/BuildStackedBar'; import BuildBar from '../Charts/BuildBar'; import AutocompleteApp from '../Components/AutocompleteApp'; import axios from 'axios'; +import { Store } from '../Store' import './Styles/AfricanRights.css' -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - const type = "culture"; //Ver se é culture mesmo const cad_unico = "cad_unico" // const ibge = "ibge_census" @@ -65,16 +61,9 @@ class AfricanCulture extends Component { this.getHeader = this.getHeader.bind(this); this.getDataFromAutocomplete = this.getDataFromAutocomplete.bind(this) } - componentDidMount(){ - this.setState({cookie:ck.get('mainPageClicked')}) - } - + render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "CULTURA" || this.state.cookie === 'CULTURA') + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -115,8 +104,6 @@ class AfricanCulture extends Component { </div> ); - - else return <div></div> } getDataFromServer(defaultData, chart) { if(chart !== 'Curso' && chart !== 'Instituição de Ensino'){ @@ -205,7 +192,7 @@ class AfricanCulture extends Component { } - +AfricanCulture.contextType = Store; export default AfricanCulture; \ No newline at end of file diff --git a/src/SubPages/AfricanRights.js b/src/SubPages/AfricanRights.js index 1bdc171e..8a7c90d9 100644 --- a/src/SubPages/AfricanRights.js +++ b/src/SubPages/AfricanRights.js @@ -21,7 +21,6 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; -import Cookies from 'universal-cookie'; import {Collapsible, Row, Col} from 'react-materialize'; import CollapsibleContainer from '../Components/CollapsibleContainer' import Loading from '../Components/Loading' @@ -29,14 +28,11 @@ import BuildBar from '../Charts/BuildBar' import axios from 'axios'; import { getServerURL, deactivateLoadingAnimation, searchHash, getEducationLevel} from '../enviroment' import Table from '../Components/Table'; +import { Store } from '../Store' import './Styles/AfricanRights.css' -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - const type = "rights"; const cad_unico = "cad_unico" const serverURL = getServerURL(); @@ -63,16 +59,8 @@ class AfricanRights extends Component { this.filterJSON = this.filterJSON.bind(this); } - componentDidMount(){ - this.setState({cookie:ck.get('mainPageClicked')}) - } - render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "DIREITOS" || this.state.cookie === 'DIREITOS') + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -116,7 +104,6 @@ class AfricanRights extends Component { </Row> </div> ); - else return <div></div> } filterJSON(data) { @@ -307,4 +294,6 @@ class AfricanRights extends Component { } +AfricanRights.contextType = Store; + export default AfricanRights; diff --git a/src/SubPages/AfricanSustainability.js b/src/SubPages/AfricanSustainability.js index 4e5b6583..4d1f2df0 100644 --- a/src/SubPages/AfricanSustainability.js +++ b/src/SubPages/AfricanSustainability.js @@ -21,20 +21,16 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; -import Cookies from 'universal-cookie'; import {Collapsible, Row, Col, Collection, CollectionItem} from 'react-materialize'; import CollapsibleContainer from '../Components/CollapsibleContainer' import Loading from '../Components/Loading' import BuildStackedBar from '../Charts/BuildStackedBar' import axios from 'axios'; import { getServerURL, deactivateLoadingAnimation, createIntervals, organizeJson} from '../enviroment' +import { Store } from '../Store' import './Styles/AfricanRights.css' -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - const type = "rights"; const cad_unico = "cad_unico" // const ibge = "ibge_census" @@ -55,16 +51,8 @@ class AfricanSustainability extends Component { this.getHeader = this.getHeader.bind(this); } - componentDidMount(){ - this.setState({cookie:ck.get('mainPageClicked')}) - } - render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "SUSTENTABILIDADE" || this.state.cookie === 'SUSTENTABILIDADE') + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -101,7 +89,6 @@ class AfricanSustainability extends Component { </div> ); - else return <div></div> } getDataFromServer(defaultData, chart) { @@ -181,7 +168,7 @@ class AfricanSustainability extends Component { } - +AfricanSustainability.contextType = Store; export default AfricanSustainability; \ No newline at end of file diff --git a/src/SubPages/YouthAbout.js b/src/SubPages/YouthAbout.js index 0429ab84..77b82f26 100644 --- a/src/SubPages/YouthAbout.js +++ b/src/SubPages/YouthAbout.js @@ -21,23 +21,21 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; -import Cookies from 'universal-cookie'; import './Styles/YouthPresentation.css' +import { Store } from '../Store' -var ck = new Cookies(); class YouthPresentation extends Component { render() { - if (ck.get('mainPageClicked') === "SOBRE") + var contrastString = this.context.state.contrast; return ( <div> <h1>SOBRE JUVENTUDE</h1> </div> ); - else return <div></div> } } - +YouthPresentation.contextType = Store; export default YouthPresentation; diff --git a/src/Youth.js b/src/Youth.js index 862d5a64..72dec5f1 100644 --- a/src/Youth.js +++ b/src/Youth.js @@ -22,7 +22,6 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; import NavigationBar from './Components/NavigationBar' -import AppFooter from './Components/AppFooter' import YouthPresentation from './SubPages/YouthPresentation' import YouthVulnerabilities from './SubPages/YouthVulnerabilities' import YouthEducation from './SubPages/YouthEducation' @@ -79,6 +78,4 @@ function Youth() { ); } - - export default Youth; -- GitLab From 9420358e19767bcabc95cf6e3f96f2affcd0d656 Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Fri, 8 Mar 2019 10:13:56 -0300 Subject: [PATCH 18/23] Remove cookies from QuilombolaIndicator --- src/About.js | 15 +---- src/AfricanOrigin.js | 4 +- src/Quilombola.js | 96 +++++++++++----------------- src/SubPages/QuilombolaIndicator1.js | 13 +--- src/SubPages/QuilombolaIndicator2.js | 15 ++--- src/SubPages/QuilombolaIndicator3.js | 14 +--- 6 files changed, 52 insertions(+), 105 deletions(-) diff --git a/src/About.js b/src/About.js index 28ed5eeb..41057faf 100644 --- a/src/About.js +++ b/src/About.js @@ -24,26 +24,17 @@ import React, { Component } from 'react'; import NavigationBar from './Components/NavigationBar' import AppFooter from './Components/AppFooter' import { Tabs, Card, Row, Col} from 'react-materialize' -import Cookies from 'universal-cookie'; import ContrastBar from './Components/ContrastBar' - +import { Store } from './Store' import './Styles/About.css' -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - class About extends Component { render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } + var contrastString = this.context.state.contrast; return ( <div id={`${contrastString}mainPage`}> - <ContrastBar/> <NavigationBar/> - <div id='contentTabsDiv'> <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageTealBlue`}></Tabs> <Row> @@ -56,10 +47,10 @@ class About extends Component { </Col> </Row> </div> - <AppFooter/> </div> ); } } +About.contextType = Store; export default About; diff --git a/src/AfricanOrigin.js b/src/AfricanOrigin.js index 2b3dcb2f..81686001 100644 --- a/src/AfricanOrigin.js +++ b/src/AfricanOrigin.js @@ -20,13 +20,13 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. -import React, { Component } from 'react'; +import React from 'react'; import NavigationBar from './Components/NavigationBar'; import AfricanCulture from './SubPages/AfricanCulture'; import AfricanSustainability from './SubPages/AfricanSustainability'; import AfricanRights from './SubPages/AfricanRights'; import { Tab, Tabs } from 'react-materialize'; -import { Store } from './Store' +import { Store } from './Store'; import './Styles/AfricanOrigin.css' diff --git a/src/Quilombola.js b/src/Quilombola.js index fa6574aa..908dcbda 100644 --- a/src/Quilombola.js +++ b/src/Quilombola.js @@ -21,80 +21,56 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. /* Esse arquivo contém dados historicos sobre quilombolas, como se fosse um "quilombolas 2.0" */ -import React, { Component } from 'react'; +import React from 'react'; import NavigationBar from './Components/NavigationBar' -import AppFooter from './Components/AppFooter' import { Tab, Tabs } from 'react-materialize'; import './Styles/Quilombolas.css'; -import Cookies from 'universal-cookie'; -import {sleep, homeURL} from './enviroment' -import ContrastBar from './Components/ContrastBar' import QuilombolaIndicator1 from './SubPages/QuilombolaIndicator1' import QuilombolaIndicator2 from './SubPages/QuilombolaIndicator2' import QuilombolaIndicator3 from './SubPages/QuilombolaIndicator3' +import { Store } from './Store'; -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); -class Quilombola extends Component { - constructor(props) { - super(props); - this.whereIAm = this.whereIAm.bind(this); - } +function Quilombola() { - componentDidMount() { - this.whereIAm() + // Get information about which page was accessed + const { state, dispatch } = React.useContext(Store); + var states = {"EIXO 2": false,"EIXO 3": false,"EIXO 4": false} + if (state.page in states) { + states[state.page] = true + } + else { + states["EIXO 2"] = true } - render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - const cookie = new Cookies(); - var clicked = cookie.get('mainPageClicked') - var states = {"EIXO 2": true,"EIXO 3": false,"EIXO 4": false} - if (clicked !== undefined){ - if (clicked in states){ - states["EIXO 2"] = false; - states[clicked] = true; - } - else{ - states = {"EIXO 2": true} - ck.set('mainPageClicked', 'EIXO 2'); - } - } - else{ - // Redirect user to the main page if he/she do not have a cookie - window.location.href = homeURL() - } - return ( - <div id={`${contrastString}mainPage`}> - <ContrastBar/> - <NavigationBar/> - <div id='contentTabsDiv'> - <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageRedTab`} onChange={this.whereIAm}> - <Tab title="EIXO 2" active={states["EIXO 2"]}> <QuilombolaIndicator1/> </Tab> - <Tab title="EIXO 3" active={states["EIXO 3"]}> <QuilombolaIndicator2/> </Tab> - <Tab title="EIXO 4" active={states["EIXO 4"]}> <QuilombolaIndicator3/> </Tab> - </Tabs> - </div> - <AppFooter/> - </div> - ); + // Hook to set page context + const setPageAction = (newPage) => { + return dispatch({ + type: 'SET_PAGE', + payload: newPage + }) } + React.useEffect(() => { }); - whereIAm(e, ev){ - if(ev){ - ck.set('mainPageClicked', ev.target.innerText); - this.setState({visited:ev.target.innerText}); - } - sleep(1).then(() => { - if(document.getElementsByClassName('clearmapbtn')[0]) - document.getElementsByClassName('clearmapbtn')[0].click() - }); + const whereIAm = (e, ev) => { + if (ev) + setPageAction(ev.target.innerText) } + + var contrastString = state.contrast + + return ( + <div id={`${contrastString}mainPage`}> + <NavigationBar/> + <div id='contentTabsDiv'> + <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageRedTab`} onChange={whereIAm}> + <Tab title="EIXO 2" active={states["EIXO 2"]}> {states["EIXO 2"] ? <QuilombolaIndicator1 /> : <div/>} </Tab> + <Tab title="EIXO 3" active={states["EIXO 3"]}> {states["EIXO 3"] ? <QuilombolaIndicator2 /> : <div/>} </Tab> + <Tab title="EIXO 4" active={states["EIXO 4"]}> {states["EIXO 4"] ? <QuilombolaIndicator3 /> : <div/>} </Tab> + </Tabs> + </div> + </div> + ); } export default Quilombola; diff --git a/src/SubPages/QuilombolaIndicator1.js b/src/SubPages/QuilombolaIndicator1.js index f9d62fa0..0fefeb05 100644 --- a/src/SubPages/QuilombolaIndicator1.js +++ b/src/SubPages/QuilombolaIndicator1.js @@ -30,12 +30,9 @@ import axios from 'axios'; import { getServerURL, organizeJson, getRegionState, deactivateLoadingAnimation, getStateName, searchHash } from '../enviroment' import BuildStackedBar from '../Charts/BuildStackedBar'; import Loading from '../Components/Loading'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store' -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "cad_unico"; const homeTypelocation = { @@ -112,11 +109,7 @@ class QuilombolaIndicator1 extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "EIXO 2") + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -223,7 +216,6 @@ class QuilombolaIndicator1 extends Component { </Row> </div> ); - else return <div></div> } getDataFromAutocomplete(data) { @@ -469,5 +461,6 @@ getCampiFromServer(id){ } } +QuilombolaIndicator1.contextType = Store; export default QuilombolaIndicator1; \ No newline at end of file diff --git a/src/SubPages/QuilombolaIndicator2.js b/src/SubPages/QuilombolaIndicator2.js index 1b885eae..6edb2ab4 100644 --- a/src/SubPages/QuilombolaIndicator2.js +++ b/src/SubPages/QuilombolaIndicator2.js @@ -31,12 +31,9 @@ import { getServerURL, organizeJson, getRegionState, deactivateLoadingAnimation, import BuildStackedBar from '../Charts/BuildStackedBar'; //import BuildBar from '../Charts/BuildBar'; import Loading from '../Components/Loading'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store' -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "cad_unico"; const extrativismo = { @@ -79,11 +76,9 @@ class QuilombolaIndicator2 extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "EIXO 3") + + var contrastString = this.context.state.contrast; + return ( <div id={type}> <Row> @@ -186,7 +181,6 @@ class QuilombolaIndicator2 extends Component { </Row> </div> ); - else return <div></div> } getDataFromAutocomplete(data) { @@ -426,5 +420,6 @@ getCampiFromServer(id){ } } +QuilombolaIndicator2.contextType = Store; export default QuilombolaIndicator2; \ No newline at end of file diff --git a/src/SubPages/QuilombolaIndicator3.js b/src/SubPages/QuilombolaIndicator3.js index 822cbd9f..cbd3eb8a 100644 --- a/src/SubPages/QuilombolaIndicator3.js +++ b/src/SubPages/QuilombolaIndicator3.js @@ -32,12 +32,8 @@ import BuildStackedBar from '../Charts/BuildStackedBar'; import BuildMixedBar from '../Charts/BuildMixedBar'; import BuildBar from '../Charts/BuildBar'; import Loading from '../Components/Loading'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store' - -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "cad_unico"; const AnoLabel = { @@ -95,11 +91,7 @@ class QuilombolaIndicator3 extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "EIXO 4") + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -194,7 +186,6 @@ class QuilombolaIndicator3 extends Component { </Row> </div> ); - else return <div></div> } getDataFromAutocomplete(data) { @@ -490,5 +481,6 @@ class QuilombolaIndicator3 extends Component { } } +QuilombolaIndicator3.contextType = Store; export default QuilombolaIndicator3; \ No newline at end of file -- GitLab From f62156a9ac84a8230fb5d64b2545b435aeebcc2d Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Fri, 8 Mar 2019 15:55:34 -0300 Subject: [PATCH 19/23] Remove cookies from RacialQuotas --- src/RacialQuotas.js | 132 ++++++++----------- src/SubPages/QuotasAdmission.js | 15 +-- src/SubPages/QuotasEducation.js | 15 +-- src/SubPages/QuotasEvader.js | 154 +++++++++++------------ src/SubPages/QuotasExtracurricularAct.js | 15 +-- src/SubPages/QuotasFies.js | 14 +-- src/SubPages/QuotasGraduate.js | 14 +-- src/SubPages/QuotasLoan.js | 15 +-- src/SubPages/QuotasOfferVacancies.js | 18 +-- src/SubPages/QuotasPROUNI.js | 14 +-- src/SubPages/QuotasSocialSupport.js | 15 +-- 11 files changed, 160 insertions(+), 261 deletions(-) diff --git a/src/RacialQuotas.js b/src/RacialQuotas.js index 9768de70..6a4fad44 100644 --- a/src/RacialQuotas.js +++ b/src/RacialQuotas.js @@ -20,9 +20,8 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. -import React, { Component } from 'react'; +import React from 'react'; import NavigationBar from './Components/NavigationBar'; -import AppFooter from './Components/AppFooter'; import QuotasEvader from './SubPages/QuotasEvader'; import QuotasGraduate from './SubPages/QuotasGraduate'; import QuotasEducation from './SubPages/QuotasEducation'; @@ -34,101 +33,70 @@ import QuotasExtracurricularAct from './SubPages/QuotasExtracurricularAct'; import QuotasSocialSupport from './SubPages/QuotasSocialSupport'; import QuotasOfferVacancies from './SubPages/QuotasOfferVacancies'; import { Tab, Tabs } from 'react-materialize'; -import Cookies from 'universal-cookie'; -import ContrastBar from './Components/ContrastBar' -import {homeURL} from './enviroment' +import { Store } from './Store'; import './Styles/RacialQuotas.css' -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); - -class RacialQuotas extends Component { - constructor(props) { - super(props); - this.whereIAm = this.whereIAm.bind(this); - this.state = { - visited:'EVASORES' - } +function RacialQuotas() { + + // Get information about which page was accessed + const { state, dispatch } = React.useContext(Store); + var states = { + "EVASÃO": false, + "CONCLUINTES": false, + "ESCOLARIDADE": false, + "FIES": false, + "PROUNI": false, + "FINANCIAMENTO": false, + 'ATIVIDADE EXTRACURRICULAR': false, + 'INGRESSO': false, + 'APOIO SOCIAL': false, + 'VAGAS OFERTADAS': false } - componentDidMount() { - this.whereIAm() + if (state.page in states) { + states[state.page] = true } - render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - const cookie = new Cookies(); - var clicked = cookie.get('mainPageClicked') - var states = {"EVASÃO": true, - "CONCLUINTES": false, - "ESCOLARIDADE": false, - "FIES": false, - "PROUNI": false, - "FINANCIAMENTO": false, - 'ATIVIDADE EXTRACURRICULAR':false, - 'INGRESSO':false, - 'APOIO SOCIAL': false, - 'VAGAS OFERTADAS': false - } - - if (clicked !== undefined){ - if (clicked in states){ - states["EVASÃO"] = false; - states[clicked] = true; - } - else{ - states = {"EVASÃO": true, - "CONCLUINTES": false, - "ESCOLARIDADE": false, - "FIES": false, - "PROUNI": false, - "FINANCIAMENTO": false, - 'ATIVIDADE EXTRACURRICULAR':false, - 'INGRESSO':false, - 'APOIO SOCIAL': false, - 'VAGAS OFERTADAS': false - } - ck.set('mainPageClicked', 'EVASÃO'); - } - } - else{ - // Redirect user to the main page if he/she do not have a cookie - window.location.href = homeURL() - } + else { + states["EVASÃO"] = true + } + + // Hook to set page context + const setPageAction = (newPage) => { + return dispatch({ + type: 'SET_PAGE', + payload: newPage + }) + } + React.useEffect(() => { }); + + const whereIAm = (e, ev) => { + if (ev) + setPageAction(ev.target.innerText) + } + + var contrastString = state.contrast + return ( <div id={`${contrastString}mainPage`}> - <ContrastBar/> <NavigationBar /> <div id='contentTabsDiv'> - <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageGreenTab`} onChange={this.whereIAm} > - <Tab title="Evasores" active={states["EVASÃO"]}> <QuotasEvader visited={this.state.visited}/> </Tab> - <Tab title="Concluintes" active={states["CONCLUINTES"]}> <QuotasGraduate visited={this.state.visited}/> </Tab> - <Tab title="Escolaridade" active={states["ESCOLARIDADE"]}> <QuotasEducation visited={this.state.visited}/> </Tab> - <Tab title="FIES" active={states["FIES"]}> <QuotasFies visited={this.state.visited}/> </Tab> - <Tab title="PROUNI" active={states["PROUNI"]}> <QuotasPROUNI visited={this.state.visited}/> </Tab> - <Tab title="Financiamento" active={states["FINANCIAMENTO"]}> <QuotasLoan visited={this.state.visited}/> </Tab> - <Tab title="Atividade Extracurricular" active={states['ATIVIDADE EXTRACURRICULAR']}> <QuotasExtracurricularAct visited={this.state.visited}/> </Tab> - <Tab title="Ingresso" active={states["INGRESSO"]}> <QuotasAdmission visited={this.state.visited}/> </Tab> - <Tab title="Apoio Social" active={states["APOIO SOCIAL"]}> <QuotasSocialSupport visited={this.state.visited}/> </Tab> - <Tab title="Vagas Ofertadas" active={states["VAGAS OFERTADAS"]}> <QuotasOfferVacancies visited={this.state.visited}/> </Tab> + <Tabs className={`tab-demo z-depth-1 ${contrastString}mainPageGreenTab`} onChange={whereIAm} > + <Tab title="Evasores" active={states["EVASÃO"]}> {states["EVASÃO"] ? <QuotasEvader /> : <div />} </Tab> + <Tab title="Concluintes" active={states["CONCLUINTES"]}> {states["CONCLUINTES"] ? <QuotasGraduate /> : <div />} </Tab> + <Tab title="Escolaridade" active={states["ESCOLARIDADE"]}> {states["ESCOLARIDADE"] ? <QuotasEducation /> : <div />} </Tab> + <Tab title="FIES" active={states["FIES"]}> {states["FIES"] ? <QuotasFies /> : <div />} </Tab> + <Tab title="PROUNI" active={states["PROUNI"]}> {states["PROUNI"] ? <QuotasPROUNI /> : <div />} </Tab> + <Tab title="Financiamento" active={states["FINANCIAMENTO"]}> {states["FINANCIAMENTO"] ? <QuotasLoan /> : <div />} </Tab> + <Tab title="Atividade Extracurricular" active={states['ATIVIDADE EXTRACURRICULAR']}> {states["ATIVIDADE EXTRACURRICULAR"] ? <QuotasExtracurricularAct /> : <div />} </Tab> + <Tab title="Ingresso" active={states["INGRESSO"]}> {states["INGRESSO"] ? <QuotasAdmission /> : <div />} </Tab> + <Tab title="Apoio Social" active={states["APOIO SOCIAL"]}> {states["APOIO SOCIAL"] ? <QuotasSocialSupport /> : <div />} </Tab> + <Tab title="Vagas Ofertadas" active={states["VAGAS OFERTADAS"]}> {states["VAGAS OFERTADAS"] ? <QuotasOfferVacancies /> : <div />} </Tab> </Tabs> </div> - <AppFooter/> </div> ); - } - - whereIAm(e, ev) { - if(ev){ - ck.set('mainPageClicked', ev.target.innerText); - this.setState({visited:ev.target.innerText}); - } - } } diff --git a/src/SubPages/QuotasAdmission.js b/src/SubPages/QuotasAdmission.js index 623cfc36..af4dcad7 100644 --- a/src/SubPages/QuotasAdmission.js +++ b/src/SubPages/QuotasAdmission.js @@ -31,12 +31,9 @@ import BuildStackedBar from '../Charts/BuildStackedBar'; import BuildBiaxialBars from '../Charts/BuildBiaxialBars'; import AutocompleteApp from '../Components/AutocompleteApp'; import Loading from '../Components/Loading'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store'; // import DropdownCampi from '../Components/DropdownCampi'; -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "admission"; @@ -78,11 +75,8 @@ class QuotasAdmission extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "INGRESSO") + + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -147,7 +141,6 @@ class QuotasAdmission extends Component { </Row> </div> ); - else return <div></div> } getDataFromAutocomplete(data) { @@ -387,5 +380,5 @@ class QuotasAdmission extends Component { } - +QuotasAdmission.contextType = Store; export default QuotasAdmission; \ No newline at end of file diff --git a/src/SubPages/QuotasEducation.js b/src/SubPages/QuotasEducation.js index 76b3fc16..da939931 100644 --- a/src/SubPages/QuotasEducation.js +++ b/src/SubPages/QuotasEducation.js @@ -29,12 +29,9 @@ import axios from 'axios'; import Fraction from '../Components/Fraction'; import BuildBarPNAD from '../Charts/BuildBarPNAD'; import { getServerURL, getRegionState, sleep } from '../enviroment'; -import Cookies from 'universal-cookie'; import './Styles/QuotasEducation.css' +import { Store } from '../Store'; -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const basicFilter = 'type_of_school:"2",type_of_public_school:"6",level_of_education:"5"'; const serverURL = getServerURL(); const type = "education"; @@ -91,11 +88,7 @@ class QuotasEducation extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "ESCOLARIDADE" && this.state.isDone) + var contrastString = this.context.state.contrast; return ( <Row> <Col s={12} m={10} l={10} offset={'m1 l1'}> @@ -138,7 +131,7 @@ class QuotasEducation extends Component { <div id={'educationChart'}> <BuildBarPNAD data={this.state.totalRate} - visited={ck.get('mainPageClicked')} + // visited={ck.get('mainPageClicked')} customKeys={educationKeys} dataKey={'nu_ano_referencia'} /> @@ -147,7 +140,6 @@ class QuotasEducation extends Component { </Col> </Row> ); - else return <div> </div> } calculateRate(ethnic) { @@ -364,6 +356,7 @@ class QuotasEducation extends Component { } } +QuotasEducation.contextType = Store; const taxaLiquidaBrancosEq = <Fraction id={'taxaLiquidaBrancosEq'} diff --git a/src/SubPages/QuotasEvader.js b/src/SubPages/QuotasEvader.js index 22b41c82..2e366316 100644 --- a/src/SubPages/QuotasEvader.js +++ b/src/SubPages/QuotasEvader.js @@ -32,12 +32,9 @@ import BuildStackedBar from '../Charts/BuildStackedBar'; import BuildBiaxialBars from '../Charts/BuildBiaxialBars'; import Loading from '../Components/Loading'; import AutocompleteApp from '../Components/AutocompleteApp'; +import { Store } from '../Store'; // import DropdownCampi from '../Components/DropdownCampi'; -import Cookies from 'universal-cookie'; -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "evader"; @@ -82,83 +79,79 @@ class QuotasEvader extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "EVASÃO" || ck.get('mainPageClicked') === "EVASORES") - return ( - <div id={type}> - <Row> - <Col s={12} m={10} l={10} offset={'m1 l1'}> - <div className="subpage-margin"> - <h5 className={`${contrastString}quota-title`}>Evasores</h5> - <p className={`${contrastString}quota-subTitle`}>Abaixo encontram-se, separados por categoria, os dados relacionados aos estudantes - evasores,que ingressaram na universidade através da Lei 12.711/2012(Lei de cotas). </p> - <p> Para visualizar os dados você precisará clicar na seção que deseja visualizar.</p> - <MapPanel - onChange={this.updateCharts} - getDDValues={this.getDDValues} - getData={this.getData} - location={type} - /> - </div> - </Col> - - <Col s={12} m={10} l={10} offset={'m1 l1'}> - <Collapsible onClick={this.getHeader}> - <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Turno'> - <div id={'Turno'+type}> - <BuildStackedBar - dataKey='Ano' - data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno")} - customKeys={turnoK} - /> - </div> - <Loading/> - </CollapsibleContainer> - <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Gênero'> - <div id={'Gênero'+type}> - <BuildStackedBar dataKey='Ano' data={organizeJson(this.state.charts['Gênero'], "ds_sexo_aluno")}/> - </div> - <Loading/> - </CollapsibleContainer> - <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Curso' > - <AutocompleteApp - whichAutocomplete={'course'} - mainPage={'evader'} - chartDiv={'no_curso'} - saveData={this.getDataFromAutocomplete} - getTags={this.saveAutocompleteContent} + + var contrastString = this.context.state.contrast; + return ( + <div id={type}> + <Row> + <Col s={12} m={10} l={10} offset={'m1 l1'}> + <div className="subpage-margin"> + <h5 className={`${contrastString}quota-title`}>Evasores</h5> + <p className={`${contrastString}quota-subTitle`}>Abaixo encontram-se, separados por categoria, os dados relacionados aos estudantes + evasores,que ingressaram na universidade através da Lei 12.711/2012(Lei de cotas). </p> + <p> Para visualizar os dados você precisará clicar na seção que deseja visualizar.</p> + <MapPanel + onChange={this.updateCharts} + getDDValues={this.getDDValues} + getData={this.getData} + location={type} + /> + </div> + </Col> + + <Col s={12} m={10} l={10} offset={'m1 l1'}> + <Collapsible onClick={this.getHeader}> + <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Turno'> + <div id={'Turno'+type}> + <BuildStackedBar + dataKey='Ano' + data={organizeJson(this.state.charts['Turno'], "ds_turno_aluno")} + customKeys={turnoK} /> - <BuildBiaxialBars data={this.state.charts['Curso']} nameKey={'no_curso'} dataKey={'total'} dataKey2={'percentage'} year={'no_ano_pesquisa'}/> - </CollapsibleContainer> - <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Instituição de Ensino'> - <AutocompleteApp - whichAutocomplete={'institution'} - mainPage={'evader'} - chartDiv={'no_ies'} - saveData={this.getDataFromAutocomplete} - getTags={this.saveAutocompleteContent} - // dropdown={'ddCampiEvader'} - /> - {/* <div id={"ddCampiEvader"} style={{display:'none'}}> - <DropdownCampi campi={this.state.campiList} getDDValues={this.campiFilter} location={type} campiNames={this.state.campiNames}/> - </div> */} - <BuildBiaxialBars data={this.state.charts['Instituição de Ensino']} nameKey={'no_ies'} dataKey={'total'} dataKey2={'percentage'} year={'no_ano_pesquisa'}/> - </CollapsibleContainer> - <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Raça/Cor'> - <div id={'Raça/Cor'+type}> - <BuildStackedBar dataKey='Ano' data={organizeJson(this.state.charts['Raça/Cor'], "ds_cor_raca_aluno")}/> - </div> - <Loading/> - </CollapsibleContainer> - </Collapsible> - </Col> - </Row> - </div> - ); - else return <div></div>; + </div> + <Loading/> + </CollapsibleContainer> + <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Gênero'> + <div id={'Gênero'+type}> + <BuildStackedBar dataKey='Ano' data={organizeJson(this.state.charts['Gênero'], "ds_sexo_aluno")}/> + </div> + <Loading/> + </CollapsibleContainer> + <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Curso' > + <AutocompleteApp + whichAutocomplete={'course'} + mainPage={'evader'} + chartDiv={'no_curso'} + saveData={this.getDataFromAutocomplete} + getTags={this.saveAutocompleteContent} + /> + <BuildBiaxialBars data={this.state.charts['Curso']} nameKey={'no_curso'} dataKey={'total'} dataKey2={'percentage'} year={'no_ano_pesquisa'}/> + </CollapsibleContainer> + <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Instituição de Ensino'> + <AutocompleteApp + whichAutocomplete={'institution'} + mainPage={'evader'} + chartDiv={'no_ies'} + saveData={this.getDataFromAutocomplete} + getTags={this.saveAutocompleteContent} + // dropdown={'ddCampiEvader'} + /> + {/* <div id={"ddCampiEvader"} style={{display:'none'}}> + <DropdownCampi campi={this.state.campiList} getDDValues={this.campiFilter} location={type} campiNames={this.state.campiNames}/> + </div> */} + <BuildBiaxialBars data={this.state.charts['Instituição de Ensino']} nameKey={'no_ies'} dataKey={'total'} dataKey2={'percentage'} year={'no_ano_pesquisa'}/> + </CollapsibleContainer> + <CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Raça/Cor'> + <div id={'Raça/Cor'+type}> + <BuildStackedBar dataKey='Ano' data={organizeJson(this.state.charts['Raça/Cor'], "ds_cor_raca_aluno")}/> + </div> + <Loading/> + </CollapsibleContainer> + </Collapsible> + </Col> + </Row> + </div> + ); } getDataFromAutocomplete(data) { @@ -393,5 +386,6 @@ class QuotasEvader extends Component { // this.setState({charts:currentState}) // } } +QuotasEvader.contextType = Store; export default QuotasEvader; \ No newline at end of file diff --git a/src/SubPages/QuotasExtracurricularAct.js b/src/SubPages/QuotasExtracurricularAct.js index b3821883..44c8fc77 100644 --- a/src/SubPages/QuotasExtracurricularAct.js +++ b/src/SubPages/QuotasExtracurricularAct.js @@ -31,12 +31,9 @@ import BuildStackedBar from '../Charts/BuildStackedBar'; import BuildBiaxialBars from '../Charts/BuildBiaxialBars'; import AutocompleteApp from '../Components/AutocompleteApp'; import Loading from '../Components/Loading'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store'; // import DropdownCampi from '../Components/DropdownCampi'; -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "extracurricular_activities"; @@ -80,11 +77,8 @@ class QuotasExtracurricularAct extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "ATIVIDADE EXTRACURRICULAR") + + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -149,7 +143,6 @@ class QuotasExtracurricularAct extends Component { </Row> </div> ); - else return <div></div> } getDataFromAutocomplete(data) { @@ -388,5 +381,5 @@ class QuotasExtracurricularAct extends Component { } - +QuotasExtracurricularAct.contextType = Store; export default QuotasExtracurricularAct; \ No newline at end of file diff --git a/src/SubPages/QuotasFies.js b/src/SubPages/QuotasFies.js index d67bc878..9e6aba05 100644 --- a/src/SubPages/QuotasFies.js +++ b/src/SubPages/QuotasFies.js @@ -34,11 +34,8 @@ import BuildBiaxialBars from '../Charts/BuildBiaxialBars'; import AutocompleteApp from '../Components/AutocompleteApp'; import DropdownCampi from '../Components/DropdownCampi'; import Loading from '../Components/Loading'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store' -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "fies"; @@ -82,11 +79,8 @@ class QuotasFies extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "FIES") + + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -175,7 +169,6 @@ class QuotasFies extends Component { </Row> </div> ); - else return <div></div> } updatePercent(e) { @@ -375,5 +368,6 @@ class QuotasFies extends Component { } } +QuotasFies.contextType = Store; export default QuotasFies; \ No newline at end of file diff --git a/src/SubPages/QuotasGraduate.js b/src/SubPages/QuotasGraduate.js index 9c074efe..31cbc0d7 100644 --- a/src/SubPages/QuotasGraduate.js +++ b/src/SubPages/QuotasGraduate.js @@ -32,13 +32,10 @@ import BuildStackedBar from '../Charts/BuildStackedBar'; import BuildBiaxialBars from '../Charts/BuildBiaxialBars'; import AutocompleteApp from '../Components/AutocompleteApp'; import Loading from '../Components/Loading'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store'; // import DropdownCampi from '../Components/DropdownCampi'; -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "graduate"; @@ -81,11 +78,8 @@ class QuotasGraduate extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "CONCLUINTES") + + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -151,7 +145,6 @@ class QuotasGraduate extends Component { </Row> </div> ); - else return <div></div> } getDataFromAutocomplete(data) { @@ -390,5 +383,6 @@ getCampiFromServer(id){ } } +QuotasGraduate.contextType = Store; export default QuotasGraduate; \ No newline at end of file diff --git a/src/SubPages/QuotasLoan.js b/src/SubPages/QuotasLoan.js index b6c96745..5f54c623 100644 --- a/src/SubPages/QuotasLoan.js +++ b/src/SubPages/QuotasLoan.js @@ -33,15 +33,11 @@ import BuildBiaxialBars from '../Charts/BuildBiaxialBars'; import AutocompleteApp from '../Components/AutocompleteApp'; // import DropdownCampi from '../Components/DropdownCampi'; import Loading from '../Components/Loading'; -import Cookies from 'universal-cookie'; - +import { Store } from '../Store' /// TODO: Arrumar URL da consulta /// http://seppirdev.c3sl.ufpr.br:4000/api/v1/student_loans?dims=institution_cod,institution,cod_offer_location,name_offer_location&filter=institution_cod:%22undefined%22,ethnic:[%22Preta%22,%22Parda%22,%22Ind%C3%ADgena%22] -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "student_loans"; const tableClasses = "bordered striped highlight centered"; @@ -85,11 +81,7 @@ class QuotasLoan extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "FINANCIAMENTO") + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -208,7 +200,6 @@ class QuotasLoan extends Component { </Row> </div> ); - else return <div></div> } getDataFromAutocomplete(data) { @@ -485,5 +476,5 @@ bodyStyles[3][6] = ''; bodyStyles[4][6] = ''; bodyStyles[5][6] = ''; - +QuotasLoan.contextType = Store; export default QuotasLoan; \ No newline at end of file diff --git a/src/SubPages/QuotasOfferVacancies.js b/src/SubPages/QuotasOfferVacancies.js index ff03bb34..7dd1edcf 100644 --- a/src/SubPages/QuotasOfferVacancies.js +++ b/src/SubPages/QuotasOfferVacancies.js @@ -21,7 +21,6 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; -import Cookies from 'universal-cookie'; import {Collapsible, Row, Col} from 'react-materialize'; import MapPanel from '../Components/MapPanel'; import CollapsibleContainer from '../Components/CollapsibleContainer' @@ -32,13 +31,11 @@ import Table from '../Components/Table'; import AutocompleteApp from '../Components/AutocompleteApp'; import BuildStackedBar from '../Charts/BuildStackedBar'; import DropdownCampi from '../Components/DropdownCampi'; +import { Store } from '../Store'; import './Styles/QuotasOfferVacancies.css' -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const type = "vacancy"; const vacancy = "vacancy" @@ -69,16 +66,10 @@ class QuotasOfferVacancies extends Component { this.campiFilter = this.campiFilter.bind(this); } - componentDidMount(){ - this.setState({cookie:ck.get('mainPageClicked')}) - } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "VAGAS OFERTADAS" || this.state.cookie === 'VAGAS OFERTADAS') + + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -138,7 +129,6 @@ class QuotasOfferVacancies extends Component { </Row> </div> ); - else return <div></div> } organizeDataTable(data){ @@ -373,4 +363,6 @@ const tableHeader = ['Ano', 'Turno', 'PcD', 'Não PcD', 'Étnica PcD', 'Étnica // headerStyles[3] = 'borderRight'; // headerStyles[4] = 'borderRight'; // headerStyles[5] = 'borderRight'; + +QuotasOfferVacancies.contextType = Store; export default QuotasOfferVacancies; diff --git a/src/SubPages/QuotasPROUNI.js b/src/SubPages/QuotasPROUNI.js index 82dcfdf5..a714c278 100644 --- a/src/SubPages/QuotasPROUNI.js +++ b/src/SubPages/QuotasPROUNI.js @@ -32,11 +32,8 @@ import BuildStackedBar from '../Charts/BuildStackedBar'; import BuildBiaxialBars from '../Charts/BuildBiaxialBars'; import AutocompleteApp from '../Components/AutocompleteApp'; import Loading from '../Components/Loading'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store'; -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "prouni"; @@ -66,11 +63,8 @@ class QuotasPROUNI extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "PROUNI") + + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -127,7 +121,6 @@ class QuotasPROUNI extends Component { </Row> </div> ); - else return <div></div> } getDataFromAutocomplete(data) { @@ -300,5 +293,6 @@ createRoute(header) { } } +QuotasPROUNI.contextType = Store; export default QuotasPROUNI; \ No newline at end of file diff --git a/src/SubPages/QuotasSocialSupport.js b/src/SubPages/QuotasSocialSupport.js index 09bf7aa7..07ea6f85 100644 --- a/src/SubPages/QuotasSocialSupport.js +++ b/src/SubPages/QuotasSocialSupport.js @@ -32,12 +32,9 @@ import BuildBiaxialBars from '../Charts/BuildBiaxialBars'; import AutocompleteApp from '../Components/AutocompleteApp'; import Loading from '../Components/Loading'; import MultiSelector from '../Components/MultiSelector'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store' // import DropdownCampi from '../Components/DropdownCampi'; -var ck = new Cookies(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const serverURL = getServerURL(); const type = "social_support"; @@ -79,11 +76,8 @@ class QuotasSocialSupport extends Component { } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } - if (ck.get('mainPageClicked') === "APOIO SOCIAL") + + var contrastString = this.context.state.contrast; return ( <div id={type}> <Row> @@ -160,7 +154,6 @@ class QuotasSocialSupport extends Component { </Row> </div> ); - else return <div></div> } getDataFromAutocomplete(data) { @@ -410,5 +403,5 @@ const multiSelector = { 'Apoio Transporte': 'in_apoio_transporte', } - +QuotasSocialSupport.contextType = Store; export default QuotasSocialSupport; \ No newline at end of file -- GitLab From a1c6104cac37bf5292b27bc40fde1f301a68baa3 Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Tue, 12 Mar 2019 11:24:57 -0300 Subject: [PATCH 20/23] Fix warnings and contrast in some pages --- src/About.js | 2 -- src/Charts/BuildMixedBar.js | 33 ++++++++++++++-------------- src/Charts/BuildStackedBar.js | 28 +++++++++++------------ src/Components/DropdownControl.js | 7 ++---- src/Components/MapPanel.js | 10 +++------ src/Components/NavigationBar.js | 2 +- src/Styles/NavigationBar.css | 4 ++++ src/SubPages/Eixo1.js | 2 +- src/SubPages/Eixo3.js | 9 -------- src/SubPages/QuilombolaIndicator3.js | 2 +- src/Youth.js | 3 +-- src/enviroment.js | 10 ++++----- 12 files changed, 48 insertions(+), 64 deletions(-) diff --git a/src/About.js b/src/About.js index 41057faf..f00b3827 100644 --- a/src/About.js +++ b/src/About.js @@ -22,9 +22,7 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. import React, { Component } from 'react'; import NavigationBar from './Components/NavigationBar' -import AppFooter from './Components/AppFooter' import { Tabs, Card, Row, Col} from 'react-materialize' -import ContrastBar from './Components/ContrastBar' import { Store } from './Store' import './Styles/About.css' diff --git a/src/Charts/BuildMixedBar.js b/src/Charts/BuildMixedBar.js index da0d57e8..8a23c7f3 100644 --- a/src/Charts/BuildMixedBar.js +++ b/src/Charts/BuildMixedBar.js @@ -58,25 +58,25 @@ const renderTooltipContent = (o) => { ); }; -const renderCustomizedLabel = (props) => { - const { x, y, width, height, value } = props; - const radius = 10; - - return ( - <g> - <circle cx={x + width / 2} cy={y - radius} r={radius} fill="#000" /> - <text x={x + width / 2} y={y - radius} fill="#fff" textAnchor="middle" dominantBaseline="middle"> - {value} - </text> - </g> - ); -}; +// const renderCustomizedLabel = (props) => { +// const { x, y, width, height, value } = props; +// const radius = 10; + +// return ( +// <g> +// <circle cx={x + width / 2} cy={y - radius} r={radius} fill="#000" /> +// <text x={x + width / 2} y={y - radius} fill="#fff" textAnchor="middle" dominantBaseline="middle"> +// {value} +// </text> +// </g> +// ); +// }; function verifyKeyBar(bar, keysBars) { let verifiedKey = 'a' - if (keysBars != undefined) { + if (keysBars !== undefined) { for (let key in keysBars) { - if (bar == key) verifiedKey = keysBars[key] + if (bar === key) verifiedKey = keysBars[key] } } return verifiedKey @@ -113,7 +113,6 @@ class BuildStackedBar extends Component { } var dataKey = this.props.dataKey var label = this.props.label - var bKeys = this.props.bKeys var keysBars = this.props.keysBars if (this.state.data !== null && this.state.data !== undefined && this.state.data.length > 0) @@ -129,7 +128,7 @@ class BuildStackedBar extends Component { {Object.keys(newData[0]).map(function (bar, index) { if (bar !== dataKey) { if (bar !== label) { - if (label == undefined) + if (label === undefined) return ( <Bar isAnimationActive = {false} diff --git a/src/Charts/BuildStackedBar.js b/src/Charts/BuildStackedBar.js index 1e3c6563..a32e7bfe 100644 --- a/src/Charts/BuildStackedBar.js +++ b/src/Charts/BuildStackedBar.js @@ -60,19 +60,19 @@ const renderTooltipContent = (o) => { ); }; -const renderCustomizedLabel = (props) => { - const { x, y, width, height, value } = props; - const radius = 10; - - return ( - <g> - <circle cx={x + width / 2} cy={y - radius} r={radius} fill="#000" /> - <text x={x + width / 2} y={y - radius} fill="#fff" textAnchor="middle" dominantBaseline="middle"> - {value} - </text> - </g> - ); -}; +// const renderCustomizedLabel = (props) => { +// const { x, y, width, height, value } = props; +// const radius = 10; + +// return ( +// <g> +// <circle cx={x + width / 2} cy={y - radius} r={radius} fill="#000" /> +// <text x={x + width / 2} y={y - radius} fill="#fff" textAnchor="middle" dominantBaseline="middle"> +// {value} +// </text> +// </g> +// ); +// }; class BuildStackedBar extends Component { constructor(props) { @@ -118,7 +118,7 @@ class BuildStackedBar extends Component { <Legend /> { Object.keys(newData[0]).map(function(bar, index) { if(bar !== dataKey) { - if(label == undefined) { + if(label === undefined) { return <Bar isAnimationActive={false} key={Math.random()} dataKey={bar} stackId="a" fill={COLORS[index]} /> } else if(bar !== label) { diff --git a/src/Components/DropdownControl.js b/src/Components/DropdownControl.js index c067197c..26a0c232 100644 --- a/src/Components/DropdownControl.js +++ b/src/Components/DropdownControl.js @@ -24,15 +24,12 @@ import React, { Component } from 'react'; import { Row, Input, Button, Icon } from 'react-materialize'; import axios from 'axios'; import { getDDValue, getServerURL, getStateRegion } from '../enviroment'; -import Cookies from 'universal-cookie'; import { Store } from '../Store' import '../Styles/DropdownControl.css'; const serverURL = getServerURL(); -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); export default class DropdownControl extends Component { constructor(props) { @@ -63,7 +60,6 @@ export default class DropdownControl extends Component { render() { var contrastString = this.context.state.contrast; - console.log(this.context.state.contrast) return ( <Row> <Row> @@ -120,8 +116,9 @@ export default class DropdownControl extends Component { { state.state } </option> ); + var contrastString = this.context.state.contrast; return ( - <Input s={12} id={"estado" + this.props.location} type='select' label="Estado" value={this.state.clickedState} onChange={(event)=>{ this.changeState(event); this.handleSelect(event) }}> + <Input s={12} className={`${contrastString}inputRegiao`} id={"estado" + this.props.location} type='select' label="Estado" value={this.state.clickedState} onChange={(event)=>{ this.changeState(event); this.handleSelect(event) }}> { listItems } </Input> ); diff --git a/src/Components/MapPanel.js b/src/Components/MapPanel.js index 11d9989c..ad457159 100644 --- a/src/Components/MapPanel.js +++ b/src/Components/MapPanel.js @@ -26,10 +26,8 @@ import DropdownControl from './DropdownControl' import Map from './Map'; import '../Styles/MapPanel.css'; import { getStateRegion, activateLoadingAnimation } from '../enviroment'; -import Cookies from 'universal-cookie'; +import { Store } from '../Store' -var contrastCK = new Cookies(); -var cookieStatus = contrastCK.get('contrast'); const title = "Selecione um estado ou região para filtrar os dados"; export default class MapPanel extends Component { @@ -44,10 +42,7 @@ export default class MapPanel extends Component { this.getData = this.getData.bind(this); } render() { - var contrastString = ''; - if(cookieStatus === 'true'){ - contrastString = 'Contrast' - } + var contrastString = this.context.state.contrast; return ( <div className='MapPanel'> <Row className="mappanel-margin"> @@ -93,3 +88,4 @@ export default class MapPanel extends Component { activateLoadingAnimation(this.props.location) } } +MapPanel.contextType = Store; \ No newline at end of file diff --git a/src/Components/NavigationBar.js b/src/Components/NavigationBar.js index 2f6aa3fa..4358cde2 100644 --- a/src/Components/NavigationBar.js +++ b/src/Components/NavigationBar.js @@ -67,7 +67,7 @@ function NavigationBar() { <ul className="right hide-on-med-and-down">{links}</ul> <div className="left hide-on-large-only"> - <SideNav className={`${contrastString}navBackground`} trigger={<a href="#"><i className="material-icons" style={{ marginLeft: 20 }}>menu</i></a>} options={{closeOnClick:true}}> + <SideNav className={`${contrastString}navBackground`} trigger={<a href=""><i className={`material-icons ${contrastString}navIcon`} style={{ marginLeft: 20 }}>menu</i></a>} options={{closeOnClick:true}}> {links} </SideNav> </div> diff --git a/src/Styles/NavigationBar.css b/src/Styles/NavigationBar.css index ddb0e78c..ad2dccfd 100644 --- a/src/Styles/NavigationBar.css +++ b/src/Styles/NavigationBar.css @@ -101,4 +101,8 @@ nav a{ .ContrastnavBackground ~ #nav-mobile{ background-color: black; +} + +i.ContrastnavIcon { + color:white; } \ No newline at end of file diff --git a/src/SubPages/Eixo1.js b/src/SubPages/Eixo1.js index 4dc66f79..f2ecbbaf 100644 --- a/src/SubPages/Eixo1.js +++ b/src/SubPages/Eixo1.js @@ -26,7 +26,7 @@ import CardFooter from '../Components/CardFooter'; import UfBar from '../Components/UfBar'; import GrayBar from '../Components/GrayBar'; import MapMarker from './icons/map-marker.png'; -import HeatMap from '../Components/HeatMap'; +// import HeatMap from '../Components/HeatMap'; import { getStateExtendedName } from '../enviroment'; import * as data from '../JsonsAntigos/brasil-quilombola/bqe1' import BuildLineNotFixed from '../Charts/BuildLineNotFixed' diff --git a/src/SubPages/Eixo3.js b/src/SubPages/Eixo3.js index ca0ab821..e3cf39b3 100644 --- a/src/SubPages/Eixo3.js +++ b/src/SubPages/Eixo3.js @@ -171,15 +171,6 @@ class Eixo3 extends Component { return(returnJson) } - fixdatap2(data){ - var returnJson = [] - var i - for(i = 0; i < data.length -1; ++i){ - returnJson.push({"Faixa de Renda":data[i]['Faixa de Renda'],"FamÃlias":data[i]['FamÃlias']}) - } - return(returnJson) - } - fixDataP3(data){ return([{"tipo":"Extrativistas","valor":data.Extrativistas},{"tipo":"Não Extrativistas","valor":data.declararam - data.Extrativistas}]) diff --git a/src/SubPages/QuilombolaIndicator3.js b/src/SubPages/QuilombolaIndicator3.js index cbd3eb8a..02f88554 100644 --- a/src/SubPages/QuilombolaIndicator3.js +++ b/src/SubPages/QuilombolaIndicator3.js @@ -273,7 +273,7 @@ class QuilombolaIndicator3 extends Component { workData[2*i] = { 'ano_pesquisa': lowerBound + i, 'genero':`M - ${lowerBound + i}` } workData[2 * i + 1] = { 'ano_pesquisa': lowerBound + i, 'genero': `F - ${lowerBound + i}` } for (let j = 0; j < chartData[2].length; j++) { - if (chartData[2][j]['ano_pesquisa'] == lowerBound+i) { + if (chartData[2][j]['ano_pesquisa'] === lowerBound+i) { workData[2*i][chartData[2][j]['idade']] = chartData[2][j]['total'] workData[2*i+1][chartData[2][j]['idade']] = chartData[2][j]['total2'] } diff --git a/src/Youth.js b/src/Youth.js index 72dec5f1..b75bfe3f 100644 --- a/src/Youth.js +++ b/src/Youth.js @@ -20,7 +20,7 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. -import React, { Component } from 'react'; +import React from 'react'; import NavigationBar from './Components/NavigationBar' import YouthPresentation from './SubPages/YouthPresentation' import YouthVulnerabilities from './SubPages/YouthVulnerabilities' @@ -28,7 +28,6 @@ import YouthEducation from './SubPages/YouthEducation' import YouthJob from './SubPages/YouthJob' import { Tab, Tabs } from 'react-materialize' import { Store } from './Store' -import { sleep, homeURL } from './enviroment' import './Styles/Youth.css' diff --git a/src/enviroment.js b/src/enviroment.js index 8b26eb51..c125f365 100644 --- a/src/enviroment.js +++ b/src/enviroment.js @@ -149,15 +149,15 @@ export function createIntervals(data, intervalKey, intervalRange, yearKey=undefi } // Find lowerBound and upperBound - let tmp = parseInt(workData[0][0][intervalKey]); + let tmp = parseInt(workData[0][0][intervalKey], 10); for (let i = 0; i < workData.length && !tmp && tmp !== 0; i++) { - tmp = parseInt(workData[0][i][intervalKey]); + tmp = parseInt(workData[0][i][intervalKey], 10); } let LowerBound = tmp; let UpperBound = tmp; for(let i = 0; i < workData.length; i++) { for (let j = 0; j < workData[i].length; j++) { - let tmp = parseInt(workData[i][j][intervalKey]); + let tmp = parseInt(workData[i][j][intervalKey], 10); if(tmp || tmp === 0) { LowerBound = (tmp < LowerBound ? tmp : LowerBound); UpperBound = (tmp > UpperBound ? tmp : UpperBound); @@ -214,14 +214,14 @@ export function createIntervals(data, intervalKey, intervalRange, yearKey=undefi for(let j = 0; j < workData[i].length; j++) { // Find index on aux for current data - let value = parseInt(workData[i][j][intervalKey]) + let value = parseInt(workData[i][j][intervalKey], 10) value = (value > limit ? limit+1 : value) let index = value - LowerBound index = (index - (index % intervalRange)) / intervalRange // Update group total (Undefined data is discarted) if (aux[index]) - aux[index]['total'] += parseInt(workData[i][j]['total']) + aux[index]['total'] += parseInt(workData[i][j]['total'], 10) } dataPerYear = dataPerYear.concat(aux); -- GitLab From debfe6929613eb83dcf9222e0dec8b1edc7fa39e Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Tue, 12 Mar 2019 11:44:34 -0300 Subject: [PATCH 21/23] Fix contrast on Quilombola tabs --- src/SubPages/Styles/QuilombolaIndicator1.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SubPages/Styles/QuilombolaIndicator1.css b/src/SubPages/Styles/QuilombolaIndicator1.css index a3ff6c9e..8ce67513 100644 --- a/src/SubPages/Styles/QuilombolaIndicator1.css +++ b/src/SubPages/Styles/QuilombolaIndicator1.css @@ -42,7 +42,7 @@ along with Portal-SMPPIR-React. If not, see <https://www.gnu.org/licenses/>. color: white; } -#ContrastblueCollapsible > .collapsible-header{ +#ContrastredCollapsible > .collapsible-header{ color: yellow; background-color: black; } \ No newline at end of file -- GitLab From f147130c20cb62535210c617e89bba646378cf7d Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Wed, 13 Mar 2019 10:11:45 -0300 Subject: [PATCH 22/23] Add session storage to mantain informations after a page reload. --- src/App.js | 26 ++++++++++++++++++++++++-- src/Store.js | 2 ++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/App.js b/src/App.js index 0def06e5..6d138ba0 100644 --- a/src/App.js +++ b/src/App.js @@ -37,12 +37,34 @@ import BarraBrasil from './Components/BarraBrasil' function App() { - const { state } = React.useContext(Store); + + // Hook to set contrast and page context + const { state, dispatch } = React.useContext(Store); + const setContrastAction = (newContrast) => { + return dispatch({ + type: 'SET_CONTRAST', + payload: newContrast + }) + } + const setPageAction = (newPage) => { + return dispatch({ + type: 'SET_PAGE', + payload: newPage + }) + } + + // Get session information when the component did mount + React.useEffect(() => { + const contrast = sessionStorage.getItem('contrast'); + if (contrast) setContrastAction(contrast); + const page = sessionStorage.getItem('page'); + if (page) setPageAction(page); + }, []); + var contrastString = state.contrast return ( <React.Fragment> - {/* {console.log(state)} */} <div id={`${contrastString}mainPage`}> <ContrastBar /> <BarraBrasil /> diff --git a/src/Store.js b/src/Store.js index 5fccd4a5..864b9659 100644 --- a/src/Store.js +++ b/src/Store.js @@ -30,8 +30,10 @@ const initialStore = { function reducer(state, action) { switch (action.type) { case 'SET_PAGE': + sessionStorage.setItem('page', action.payload); return { ...state, page: action.payload }; case 'SET_CONTRAST': + sessionStorage.setItem('contrast', action.payload); return { ...state, contrast: action.payload }; default: return state; -- GitLab From bc28eeb4070be6d0c96c7f68b502b2431d266f64 Mon Sep 17 00:00:00 2001 From: eht17 <eht17@inf.ufpr.br> Date: Wed, 13 Mar 2019 11:40:52 -0300 Subject: [PATCH 23/23] Remove comments --- src/App.js | 1 - src/Components/ContrastBar.js | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/App.js b/src/App.js index 6d138ba0..b55ddc1a 100644 --- a/src/App.js +++ b/src/App.js @@ -70,7 +70,6 @@ function App() { <BarraBrasil /> <Router> <div> - {/* <Route exact={true} path="/" render={(props) => <MainPage {...props} teste="teste"/>}/> */} <Route exact={true} path="/" component={MainPage} /> <Route exact={true} path="/cotas" component={RacialQuotas} /> <Route exact={true} path="/quilombola" component={Quilombola} /> diff --git a/src/Components/ContrastBar.js b/src/Components/ContrastBar.js index 39437575..2d879bca 100644 --- a/src/Components/ContrastBar.js +++ b/src/Components/ContrastBar.js @@ -29,10 +29,10 @@ function ContrastBar() { // Hook to set contrast context const { state, dispatch } = React.useContext(Store); - const setContrastAction = (newPage) => { + const setContrastAction = (newContrast) => { return dispatch({ type: 'SET_CONTRAST', - payload: newPage + payload: newContrast }) } React.useEffect(() => { }); -- GitLab