career paths calendar

This commit is contained in:
henrydays 2019-03-10 18:28:14 +00:00
parent 8d25174671
commit 4d10f614ac
4 changed files with 91 additions and 37 deletions

View File

@ -49,7 +49,9 @@ class Calendar extends React.Component {
{key: 'fourth', weekDay: 'seg', day:15}, {key: 'fourth', weekDay: 'seg', day:15},
], ],
CP:'SEM' CP:'SEM',
cpColor:'white',
careerPath:{name:'', color:''}
}; };
componentDidMount() { componentDidMount() {
@ -205,6 +207,8 @@ class Calendar extends React.Component {
}} }}
circleSize={0}
dotColor={'#CC1A17'}
keyExtractor={(item, index) => index.toString()} keyExtractor={(item, index) => index.toString()}
@ -268,16 +272,17 @@ class Calendar extends React.Component {
return ( return (
<View style={{flex:1}}> <View style={{flex:1}}>
<View> <View>
{ this.props.careerPath!=undefined &&
<Text style={{ <Text style={{
backgroundColor:"#CC1A17", backgroundColor:this.props.careerPath.color,
color:'white', color:'white',
fontWeight:'bold', fontWeight:'bold',
fontSize:15, fontSize:15,
textAlign:'center', textAlign:'center',
}}> }}>{this.props.careerPath.name}
{this.props.careerPath}
</Text> </Text>
}
</View> </View>
<TabView <TabView
navigationState={this.state} navigationState={this.state}

View File

@ -67,9 +67,12 @@ class choosePath extends React.Component {
var sessions = this.props.sessions; var sessions = this.props.sessions;
for (let key in sessions) { for (let key in sessions) {
if (sessions[key].Name == "IA") { if (sessions[key].Name == "IA") {
this.setState({ guest: "9" }); this.setState({ guest: "9" });
} }
//...
} }
}; };
componentDidMount() { componentDidMount() {
@ -284,7 +287,9 @@ class choosePath extends React.Component {
</Picker> </Picker>
</View> </View>
<View style={{ width: SCREEN_WIDTH }}> <View style={{ width: SCREEN_WIDTH }}>
{!this.props.changingGuest && ( { this.state.guest==0 && <View><Text>chosse one</Text><View>}
{!this.props.changingGuest && this.state.guest!=0 && (
<FlatList <FlatList
data={this.props.Blocks} data={this.props.Blocks}
renderItem={({ item, index }) => ( renderItem={({ item, index }) => (

View File

@ -28,6 +28,7 @@ import { compose } from "redux";
import tap from "lodash/fp/tap"; import tap from "lodash/fp/tap";
import flow from "lodash/fp/flow"; import flow from "lodash/fp/flow";
import groupBy from "lodash/fp/groupBy"; import groupBy from "lodash/fp/groupBy";
import { colors } from "react-native-elements";
const axios = require("axios"); const axios = require("axios");
@ -38,9 +39,7 @@ axios.defaults.baseURL = "http://enei2019.uingress.com/internal/api";
const map = require("lodash/fp/map").convert({ cap: false }); const map = require("lodash/fp/map").convert({ cap: false });
export function openModal(info, t) { export function openModal(info, t) {
return dispatch => { return dispatch => {
dispatch({ dispatch({
type: OPEN_MODAL, type: OPEN_MODAL,
modalInfo: info, modalInfo: info,
@ -79,7 +78,38 @@ export function updateUser(token, user) {
}); });
}; };
} }
function getCareerPath(sessions) {
careerPath = "Sem Career Path";
careerColor = "white";
for (let key in sessions) {
if (sessions[key].Name == "IA") {
careerPath = "Artificial Inteligence";
careerColor='#CC1A17'
}
if (sessions[key].Name == "IOT") {
careerPath = "Internet of Things";
careerColor= "green"
}
if (sessions[key].Name == "WEB") {
careerPath = "Web Development";
careerColor="purple"
}
if (sessions[key].Name == "NET") {
careerPath = "Networking and Security";
careerColor="blue"
}
if (sessions[key].Name == "MOB") {
careerPath = "Mobile Development";
careerColor="orange"
}
if(sessions[key].Name=="DS"){
careerPath="Data Science"
careerColor="yellow"
}
}
return { name: careerPath, color: careerColor };
}
export const waitChangeGuest = () => { export const waitChangeGuest = () => {
return dispatch => { return dispatch => {
dispatch({ dispatch({
@ -117,26 +147,17 @@ export function signSession(token, idSession) {
.post("/Session/AddAttendee", obj) .post("/Session/AddAttendee", obj)
//se não existir erro na chamada... //se não existir erro na chamada...
.then(a => { .then(a => {
if (response.data.Success == true) { if (a.data.Success) {
axios axios
.get("/Attendee/AvailableSessions") .get("/Attendee/AvailableSessions")
.then(function(response) { .then(function(response) {
console.log(response); console.log(response);
var careerPath = "SEM";
var sessions = response.data; var sessions = response.data;
var careerPath = getCareerPath(sessions);
var cenas = []; var cenas = [];
for (let key in sessions) {
if (sessions[key].Name == "IA") {
careerPath = "IA";
}
//.....
}
const result = flow(groupBy("SessionStart"))(response.data); const result = flow(groupBy("SessionStart"))(response.data);
for (let key in result) { for (let key in result) {
@ -146,19 +167,35 @@ export function signSession(token, idSession) {
alert("Inscrição efectuada com sucesso"); alert("Inscrição efectuada com sucesso");
dispatch({ //obter informações pessoais:
type: SIGN_SESSION, axios
sessions: response.data, .get("/Attendee/Detail")
Blocks: cenas
}); .catch(error => {
alert(error);
})
.then(sucess => {
dispatch({
type: SIGN_SESSION,
sessions: response.data,
Blocks: cenas,
changeGuestList: false,
careerPath: careerPath,
user: sucess.data
});
});
}) })
.catch(function(error) { .catch(function(error) {
alert("Error a obter sessões disponíveis!!"); alert("Erro a obter sessões disponíveis!!");
console.log(error); console.log(error);
}); });
} else { } else {
alert("Erro a inscrever na palestra"); alert("Erro a inscrever na palestra");
dispatch({
type: SIGN_SESSION,
waitChangeGuest: false
});
} }
}) })
.catch(b => { .catch(b => {
@ -168,7 +205,6 @@ export function signSession(token, idSession) {
} }
export function getSessions(token) { export function getSessions(token) {
console.log("aquiiii");
axios.defaults.headers.common = { axios.defaults.headers.common = {
Authorization: `bearer ${token.access_token}` Authorization: `bearer ${token.access_token}`
}; };
@ -183,14 +219,14 @@ export function getSessions(token) {
axios axios
.get("/Attendee/AvailableSessions") .get("/Attendee/AvailableSessions")
.then(function(response) { .then(function(response) {
var careerPath = "SEM";
var sessions = response.data; var sessions = response.data;
var careerPath = getCareerPath(sessions);
console.log(careerPath);
var cenas = []; var cenas = [];
for (let key in sessions) {
if (sessions[key].Name == "IA") {
careerPath = "IA";
}
}
const result = flow( const result = flow(
groupBy("SessionStart") groupBy("SessionStart")
// map((Id) => ({Id})), // map((Id) => ({Id})),
@ -252,6 +288,7 @@ export function getAvailableGuestlists(token) {
*/ */
export function changeGuestList(token, guestID) { export function changeGuestList(token, guestID) {
//http://enei2019.uingress.com/internal/api/Attendee/ChangeGuestlist/ //http://enei2019.uingress.com/internal/api/Attendee/ChangeGuestlist/
axios.defaults.headers.common = { axios.defaults.headers.common = {
@ -264,6 +301,7 @@ export function changeGuestList(token, guestID) {
axios axios
.get(full) .get(full)
.then(function(response) { .then(function(response) {
console.log(response)
axios.defaults.baseURL = "http://enei2019.uingress.com/internal/api"; axios.defaults.baseURL = "http://enei2019.uingress.com/internal/api";
axios.defaults.headers.common = { axios.defaults.headers.common = {
@ -278,12 +316,13 @@ export function changeGuestList(token, guestID) {
//console.log(response); //console.log(response);
var cenas = []; var cenas = [];
c= getCareerPath(response.data);
const result = flow( const result = flow(
groupBy("SessionStart") groupBy("SessionStart")
// map((Id) => ({Id})), // map((Id) => ({Id})),
//tap(console.log) //tap(console.log)
)(response.data); )(response.data);
for (let key in result) { for (let key in result) {
result[key].option = 0; result[key].option = 0;
cenas.push(result[key]); cenas.push(result[key]);
@ -293,8 +332,9 @@ export function changeGuestList(token, guestID) {
dispatch({ dispatch({
type: CHANGE_GUEST, type: CHANGE_GUEST,
sessions: response.data, sessions: response.data,
Blocks: cenas,
careerPath: c
Blocks: cenas
//guests: response.data //guests: response.data
}); });
}) })

View File

@ -39,7 +39,7 @@ let apiState = {
sessions: {}, sessions: {},
Blocks: {}, Blocks: {},
onHoldBlocks: true, onHoldBlocks: true,
careerPath: "SEM", careerPath:{name:'Sem Career Path', color:'#eeeeee'},
}; };
@ -124,7 +124,7 @@ const apiReducer = (state = apiState, action) => {
return state; return state;
case LOGOUT_USER: case LOGOUT_USER:
state = Object.assign({}, state, { logged: false }); state = Object.assign({}, state, { user:{}, userDetails:{}, logged:false});
return state; return state;
@ -161,8 +161,11 @@ const apiReducer = (state = apiState, action) => {
case SIGN_SESSION: case SIGN_SESSION:
state = Object.assign({}, state, { state = Object.assign({}, state, {
sessions: action.sessions,
Blocks: action.Blocks, Blocks: action.Blocks,
changingGuest: false careerPath: action.careerPath,
changingGuest: action.changingGuest,
user:action.user
}); });
return state; return state;
@ -186,7 +189,8 @@ const apiReducer = (state = apiState, action) => {
state = Object.assign({}, state, { state = Object.assign({}, state, {
changingGuest: false, changingGuest: false,
sessions: action.sessions, sessions: action.sessions,
Blocks: action.Blocks Blocks: action.Blocks,
careerPath: action.careerPath
}); });
return state; return state;