Merge remote-tracking branch 'origin/master' into zmiguel

This commit is contained in:
José Valdiviesso 2019-03-16 16:32:50 +00:00
commit bc576de930
20 changed files with 2284 additions and 1553 deletions

View File

@ -81,7 +81,7 @@ class App extends Component {
logged: false,
isModalVisible: false,
state: { text: "" },
username: "QR code",
username: "QR code ou",
failedAttempt: false,
push: 4,
UI_loginScannerActive: false,
@ -105,23 +105,13 @@ class App extends Component {
componentDidMount() {
//this.props.hold();
this.props.loginInternal();
NetInfo.isConnected.addEventListener(
"connectionChange",
this.handleConnectivityChange
);
// this.props.loginInternal();
this.setState({ isModalVisible: false });
//verifica se o utilizador tem token guardado
this.props.checkUser(this.props.userDetails);
this.keyboardDidShowListener = Keyboard.addListener(
"keyboardDidShow",
this._keyboardDidShow
);
this.keyboardDidHideListener = Keyboard.addListener(
"keyboardDidHide",
this._keyboardDidHide
);
this.props.checkUser(this.props.token);
}
componentWillUnmount() {
NetInfo.isConnected.removeEventListener(
@ -135,7 +125,7 @@ class App extends Component {
//faz call
_reset=()=>{
//fecha modal
this.props.resetPassword(this.props.userDetails.token,this.state.resetText),
this.props.resetPassword(this.props.token,this.state.resetText),
this.setState({modalResetPassword:false})
//faz call
}
@ -249,7 +239,7 @@ class App extends Component {
style={styles.input}
placeholder={this.state.username}
onChangeText={searchString => {
this.setState({ searchString });
this.setState({ username:searchString });
}}
maxLength={15}
underlineColorAndroid="transparent"

View File

@ -105,7 +105,7 @@ const AppStack = createBottomTabNavigator(
},
{
initialRouteName: 'Eventos',
initialRouteName: 'Home',
tabBarOptions: {
showLabel: true, // hide labels
@ -132,7 +132,7 @@ const Stack = createStackNavigator({
<TouchableOpacity style={{marginRight: 20, flex: 1, flexDirection: 'row'}}
onPress={() => navigation.navigate('Profile')}>
<Text>editar</Text>
<Text>Editar dados</Text>
<IconFA name="user-edit" size={22}/>
</TouchableOpacity>
@ -152,7 +152,7 @@ const Stack = createStackNavigator({
<TouchableOpacity style={{marginRight: 20, flex: 1, flexDirection: 'row'}}
onPress={() => navigation.navigate('choosePath')}>
<Text>Escolher</Text>
<Text>Inscrições</Text>
<IconFA name="user-edit" size={22}/>
</TouchableOpacity></View>
@ -183,6 +183,7 @@ const Stack = createStackNavigator({
return {
headerTitle: 'Eventos',
}
}
else {
return {
@ -207,7 +208,6 @@ const Stack = createStackNavigator({
screen: FebradaDetail,
},
resetPassword:{
screen:resetPassword
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

@ -47,7 +47,7 @@ class Calendar extends React.Component {
componentDidMount() {
this.props.getEvents(this.props.user);
this.props.getSessions(this.props.userDetails.token);
this.props.getSessions(this.props.token);
}
_openDetails = () => {
@ -142,7 +142,7 @@ class Calendar extends React.Component {
}
_refresh=()=>{
this.props.getEvents(this.props.user);
//this.props.getSessions(this.props.userDetails.token);
}
render() {

View File

@ -1,11 +1,15 @@
import * as React from "react";
import {View, StyleSheet, Dimensions, Text, Button, ScrollView, Image, TouchableOpacity} from "react-native";
import {TabView, TabBar, SceneMap} from "react-native-tab-view";
import rallyImg from '../assets/rallyTascas.jpg';
const SCREEN_HEIGHT = Dimensions.get("window").height;
const SCREEN_WIDTH = Dimensions.get("window").width;
const FirstRoute = () => (
<View style={[styles.scene, {backgroundColor: "#ff4081"}]}/>
);
@ -51,7 +55,6 @@ export default class Eventos extends React.Component {
</Image>
</View>
</TouchableOpacity>
</View>
);
@ -128,6 +131,7 @@ const styles = StyleSheet.create({
cardContainer: {
flex: 1,
flexDirection: 'row',
padding: 10,
margin: 20,
backgroundColor: '#fff',

View File

@ -78,11 +78,12 @@ class Home extends Component {
//console.log(this.props.token);
this.props.getUserInfo(this.props.userDetails.token);
this.props.getUserInfo(this.props.token);
//console.log('logged:'+this.props.logged);
//console.log(th2is.props)
//console.log(th2is.props
this.props.getEvents(this.props.user);
}
componentWillUnmount() {}
@ -97,7 +98,8 @@ class Home extends Component {
//var navigate = this.props.navigation.navigate
}
_update = () => {
this.props.getUserInfo(this.props.userDetails.token);
this.props.getUserInfo(this.props.token);
this.props.getEvents(this.props.user);
};
render() {
@ -143,14 +145,46 @@ class Home extends Component {
</ImageBackground>
<View style={styles.userStats}>
<View style={{backgroundColor:'orange'}}>
<Text style={styles.userStatsTitle}>Informações Importantes</Text>
<View style={{ backgroundColor: "orange" }}>
<Text style={styles.userStatsTitle}>
O que inclui o meu bilhete?
</Text>
</View>
<View style={{ flex: 1, flexDirection: 'row', flexWrap: 'wrap' }}>
<View style={styles.colBilhete}>
<Text style={styles.titleBilhete}>Acesso </Text>
<FlatList
data={this.props.acesso}
renderItem={({item}) =>
<View style={styles.boxStyle}>
<Text><IconFA name="check" size={18} color={'#CC1A17'}/> {item}</Text>
</View>}
/>
</View>
<View style={styles.colBilhete}>
<Text style={styles.titleBilhete}>Alojamento</Text>
<FlatList
data={this.props.alojamento}
renderItem={({item}) =>
<View style={styles.boxStyle}>
<Text><IconFA name="check" size={18} color={'#CC1A17'}/> {item}</Text>
</View>}
/>
</View>
<View style={styles.colBilhete}>
<Text style={styles.titleBilhete}>Alimentação</Text>
<FlatList
data={this.props.alimentacao}
renderItem={({item}) =>
<View style={styles.boxStyle}>
<Text><IconFA name="check" size={18} color={'#CC1A17'}/> {item}</Text>
</View>}
/>
</View>
<View style={styles.userStatsBox}>
<Text style={{margin:10}}>Grupo de ....</Text>
<Text style={{margin:10}}>Alojamento</Text>
</View>
</View>
</View>
<View>
@ -162,32 +196,44 @@ class Home extends Component {
borderRadius: 3
}}
>
<View style={{ backgroundColor: "#CC1A17" , flex:1, flexDirection:'row'}}>
<View style={{width:'79%'}}>
<Text
style={{
fontSize: 25,
color: "white",
margin: 10,
fontWeight: "bold",
marginBottom: 0
}}
>
Os tones
</Text>
<Text
style={{
color: "white",
marginLeft: 10,
marginBottom: 5
}}
>
5/6 elementos
</Text>
<View
style={{
backgroundColor: "#CC1A17",
flex: 1,
flexDirection: "row"
}}
>
<View style={{ width: "79%" }}>
<Text
style={{
fontSize: 25,
color: "white",
margin: 10,
fontWeight: "bold",
marginBottom: 0
}}
>
Os tones
</Text>
<Text
style={{
color: "white",
marginLeft: 10,
marginBottom: 5
}}
>
5/6 elementos
</Text>
</View>
<View style={{alignItems:'center', alignContent:'center',alignSelf:'center'}}>
<IconFA name="plus" color={'white'} size={30} />
<Text style={{color:'white'}}>Adicionar</Text>
<View
style={{
alignItems: "center",
alignContent: "center",
alignSelf: "center"
}}
>
<IconFA name="plus" color={"white"} size={30} />
<Text style={{ color: "white" }}>Adicionar</Text>
</View>
</View>
@ -203,8 +249,7 @@ class Home extends Component {
</View>
<TouchableOpacity style={styles.userRemove}>
<Text style={{fontWeight:'bold'}}>rm equipa</Text>
<Text style={{ fontWeight: "bold" }}>rm equipa</Text>
</TouchableOpacity>
</View>
<Divider style={{ backgroundColor: "black" }} />
@ -267,8 +312,6 @@ class Home extends Component {
<Text>remover</Text>
</TouchableOpacity>
</View>
</View>
</View>
</View>
@ -288,21 +331,40 @@ class Home extends Component {
}
const styles = StyleSheet.create({
userName:{
fontSize:16,
fontWeight:'bold'
},
titleBilhete:{
textAlign:'center',
fontSize:15,
fontWeight:'bold',
marginBottom:10
},
colBilhete:{
width:'33%',
padding:10
},
boxStyle: {
padding:10,
borderWidth: 1,
marginBottom: 5,
borderColor:'#CC1A17'
},
userName: {
fontSize: 16,
fontWeight: "bold"
},
userRemove: {
alignContent: "center",
alignItems: "center",
alignSelf:'center'
alignSelf: "center"
},
userT: {
margin: 10,
width: "55%",
// backgroundColor: "red"
width: "55%"
// backgroundColor: "red"
},
userLogo: {
paddingLeft: 10,
@ -328,7 +390,7 @@ const styles = StyleSheet.create({
},
userStatsBox: {
flex: 1,
backgroundColor:'white',
backgroundColor: "white",
flexDirection: "row"
},
userBox: {
@ -389,15 +451,15 @@ const styles = StyleSheet.create({
},
userStats: {
backgroundColor: "white",
height: SCREEN_HEIGHT * 0.2,
// padding: 10,
//height: SCREEN_HEIGHT * 0.2,
// padding: 10,
margin: 10,
borderRadius: 5,
marginTop: 10,
marginBottom: 0
},
userStatsTitle: {
margin:10,
margin: 10,
color: "white",
fontSize: 17,
fontWeight: "bold",
@ -415,7 +477,11 @@ function mapStateToProps(state, props) {
user: state.apiReducer.user,
logged: state.apiReducer.logged,
userDetails: state.apiReducer.userDetails,
onHold: state.apiReducer.onHold
onHold: state.apiReducer.onHold,
bilhete: state.apiReducer.bilhete,
alimentacao: state.apiReducer.alimentacao,
alojamento: state.apiReducer.alojamento,
acesso: state.apiReducer.acesso
};
}

View File

@ -91,7 +91,7 @@ class Profile extends Component {
_press=()=>{
this.props.changePassword(
this.props.userDetails.token,
this.props.token,
this.state.oldPass,
this.state.new1,
this.state.new2
@ -163,7 +163,7 @@ class Profile extends Component {
if (formValid) {
console.log("data valid");
this.props.updateUser(this.props.userDetails.token, {
this.props.updateUser(this.props.token, {
Name: this.state.name,
Company: jobs,
LastName: curso,

View File

@ -1,151 +1,198 @@
import * as React from 'react';
import * as React from "react";
import {
View,
StyleSheet,
Dimensions,
Image,
ScrollView,
Text,
Button,
TouchableOpacity,
ImageBackground
} from 'react-native';
View,
StyleSheet,
Dimensions,
Image,
ScrollView,
Text,
Button,
TouchableOpacity,
ImageBackground
} from "react-native";
import {Divider, Icon, Avatar} from 'react-native-elements'
import {TabView, TabBar, SceneMap} from 'react-native-tab-view';
import {
RkButton, RkCard, RkText,
RkTheme
} from 'react-native-ui-kitten';
import Timeline from 'react-native-timeline-feed'
import { Divider, Icon, Avatar } from "react-native-elements";
import { TabView, TabBar, SceneMap } from "react-native-tab-view";
import { RkButton, RkCard, RkText, RkTheme } from "react-native-ui-kitten";
import Timeline from "react-native-timeline-feed";
import * as Progress from 'react-native-progress';
import * as Progress from "react-native-progress";
import NavAbsolute from '../components/Nav';
import NavAbsolute from "../components/Nav";
import {connect} from 'react-redux';
import { connect } from "react-redux";
import {bindActionCreators} from 'redux';
import { bindActionCreators } from "redux";
import * as Actions from '../store/actions'; //Import your actionss
import Swiper from 'react-native-swiper';
import * as Actions from "../store/actions"; //Import your actionss
import Swiper from "react-native-swiper";
const SCREEN_HEIGHT = Dimensions.get("window").height;
const SCREEN_WIDTH = Dimensions.get("window").width;
import FitImage from 'react-native-fit-image';
import FitImage from "react-native-fit-image";
import MapView, {PROVIDER_GOOGLE} from 'react-native-maps';
import MapView, { PROVIDER_GOOGLE } from "react-native-maps";
const formatObj = (obj) => {
const formatObj = obj => {
let a = {};
let a = {};
a.push({})
return a
a.push({});
return a;
};
class calendarDetail extends React.Component {
static navigationOptions = ({ navigation }) => ({
header: (
<NavAbsolute
navigation={navigation}
// title={navigation.state.params.info.name}
/>
)
});
static navigationOptions = ({navigation}) => ({
header: (
<NavAbsolute
navigation={navigation}
// title={navigation.state.params.info.name}
state = {};
componentDidMount() {
this.props.getEvents(this.props.user);
console.log("didMount");
console.log(this.props.events);
const { navigation } = this.props;
const info = navigation.getParam("info", "error");
console.log("putas");
console.log(info);
}
_update = () => {
this.setState({ user: this.props.user });
console.log(this.props.events);
};
constructor(props) {
super(props);
this.data = [];
}
renderHeader = info => {
return (
<View style={styles.headerContainer}>
<View style={styles.coverContainer}>
<ImageBackground
source={{
uri: info.imageUrl
}}
style={styles.coverImage}
/>
</View>
</View>
);
};
renderDescription = info => {
return (
<View>
<View style={styles.header}>
<View
style={{
flexDirection: "row",
alignItems: "center",
alignSelf: "center"
}}
>
<View style={styles.timeText}>
<Text style={{ color: "#CC1A17", fontSize: 15 }}>
{info.time === info.timeEnd
? info.time
: `${info.time}H - ${info.timeEnd}H`}
</Text>
</View>
</View>
<View>
<Text
style={{
margin: 10,
marginBottom: 0,
marginTop: 0,
fontSize: 20,
color: "#CC1A17"
}}
>
{info.name}
</Text>
<Text style={{ marginLeft: 10 }}>Workshop</Text>
</View>
<View style={{ margin: 10 }}>
<Progress.Bar
color={"#000000"}
progress={info.Enrolled / info.MaxAttendees}
height={10}
unfilledColor={"white"}
width={210}
/>
),
});
state = {};
componentDidMount() {
this.props.getEvents(this.props.user);
console.log('didMount');
console.log(this.props.events);
const {navigation} = this.props;
const info = navigation.getParam('info', 'error');
console.log("putas")
console.log(info)
}
_update = () => {
this.setState({user: this.props.user});
console.log(this.props.events);
};
constructor(props) {
super(props)
this.data = []
}
renderHeader = (info) => {
return (
<View style={styles.headerContainer}>
<View style={styles.coverContainer}>
<ImageBackground
source={{
uri: info.imageUrl,
}}
style={styles.coverImage}
>
</ImageBackground>
</View>
<Text>
{info.Enrolled} / {info.MaxAttendees}
</Text>
</View>
<Divider style={{ backgroundColor: "#eeeeee" }} />
<View style={{ flex: 1, flexDirection: "row", marginTop: 10 }}>
<View style={{ width: 100, height: 100, padding: 5 }}>
<FitImage
source={{
uri:
"http://enei2019.uingress.com/adminpoint/Content/Images/Uploads/Speakers/ffb043cb-3073-421c-a070-5d273b50fc23.jpeg"
}}
style={{ padding: 5 }}
/>
</View>
)
};
renderDescription = (info) => {
return (
<View>
<View style={styles.header}>
<View style={{flexDirection: "row", alignItems: 'center', alignSelf:'center'}}>
<View style={styles.timeText}>
<Text style={{color: "#CC1A17", fontSize: 15}}>
{info.time === info.timeEnd ? info.time : `${info.time} - ${info.timeEnd}`}
</Text>
</View>
</View>
<View><Text style={{margin:10,marginTop:0, fontSize:20, color:'#CC1A17'}}>{info.name}</Text></View>
<View style={{margin:10}}>
<Progress.Bar color={'#000000'} progress={info.Enrolled / info.MaxAttendees} height={10}
unfilledColor={'white'} width={210}/>
<Text >{info.Enrolled} / {info.MaxAttendees}</Text>
</View>
<Divider style={{backgroundColor: '#000'}}/>
<View>
<Text style={{fontSize:15, color:'#CC1A17', padding:10}}>Descrição</Text>
<Text style={{paddingLeft:10, paddingRigh:10}}></Text>
</View>
</View>
<View style={styles.block}>
<Text style={{fontSize: 20, color: "#CC1A17"}}>Descrição</Text>
<Divider style={{backgroundColor: '#000'}}/>
<View style={{marginTop: 10}}>
<Text>
{info.description}
</Text>
</View>
</View>
<Text style={{ fontWeight: "bold", fontSize: 20, margin: 10 }}>
André Duarte
</Text>
<Text style={{ marginLeft: 10 }}>
Project manager at ubiwhere
</Text>
<TouchableOpacity>
<Text style={{ color: "#CC1A17", marginLeft: 10 }}>
website
</Text>
</TouchableOpacity>
</View>
)
};
/*
</View>
<View>
<Text
style={{
fontWeight: "bold",
color: "#CC1A17",
margin: 10,
marginBottom: 0,
fontSize: 15
}}
>
Descrição do orador:
</Text>
<Text style={{ margin: 10 }}>
Existem muitas variações das passagens do Lorem Ipsum disponíveis,
mas a maior parte sofreu alterações de alguma forma, pela injecção
de humor, ou de palavras aleatórias que nem sequer parecem
suficientemente credíveis.{" "}
</Text>
</View>
</View>
<View style={styles.block}>
<Text style={{ fontSize: 15, color: "#CC1A17", fontWeight:'bold' }}>Descrição da palestra/workshop</Text>
<Divider style={{ backgroundColor: "#000" }} />
<View style={{ marginTop: 10 }}>
<Text>{info.description}</Text>
</View>
</View>
</View>
);
};
/*
renderMap = () => {
return (
@ -168,284 +215,281 @@ class calendarDetail extends React.Component {
)
};
*/
renderAttendee = () => {
return (
<View style={{backgroundColor: '#fff', height: SCREEN_HEIGHT * 0.1}}>
<View style={styles.AttendeeContainer}>
<View style={styles.leftRow}>
<Avatar
rounded
size="medium"
source={{
uri: "https://cdn3.iconfinder.com/data/icons/vector-icons-6/96/256-512.png",
}}
/>
</View>
<View style={styles.centerRow}>
<Text style={styles.titleText} numberOfLines={1}>
Nome do gajo
</Text>
</View>
<View style={styles.rightRow}>
<Icon
size={24}
name="visibility"
type="material-icon"
onPress={() => navigation.goBack(null)}
color='#000'
iconStyle={styles.icon}
underlayColor="transparent"
underlineColorAndroid="transparent"
containerStyle={styles.iconContainer}
hitSlop={{top: 15, bottom: 15, left: 15, right: 15}}
/>
</View>
</View>
renderAttendee = () => {
return (
<View style={{ backgroundColor: "#fff", height: SCREEN_HEIGHT * 0.1 }}>
<View style={styles.AttendeeContainer}>
<View style={styles.leftRow}>
<Avatar
rounded
size="medium"
source={{
uri:
"https://cdn3.iconfinder.com/data/icons/vector-icons-6/96/256-512.png"
}}
/>
</View>
<View style={styles.centerRow}>
<Text style={styles.titleText} numberOfLines={1}>
Nome do gajo
</Text>
</View>
<View style={styles.rightRow}>
<Icon
size={24}
name="visibility"
type="material-icon"
onPress={() => navigation.goBack(null)}
color="#000"
iconStyle={styles.icon}
underlayColor="transparent"
underlineColorAndroid="transparent"
containerStyle={styles.iconContainer}
hitSlop={{ top: 15, bottom: 15, left: 15, right: 15 }}
/>
</View>
</View>
</View>
);
};
render() {
const { navigation } = this.props;
const info = navigation.getParam("info", "error");
return (
<View style={styles.mainViewStyle}>
<ScrollView style={styles.scroll}>
<View style={styles.container}>
<View style={styles.headerContainer}>
{this.renderHeader(info)}
</View>
);
};
render() {
const {navigation} = this.props;
const info = navigation.getParam('info', 'error');
return (
<View style={styles.mainViewStyle}>
<ScrollView style={styles.scroll}>
<View style={styles.container}>
<View style={styles.headerContainer}>
{this.renderHeader(info)}
</View>
{this.renderDescription(info)}
</View>
<View style={styles.block}>
<Text style={{fontSize: 20, color: "#CC1A17"}}>Localização</Text>
<Divider style={{backgroundColor: '#000', marginBottom: 10}}/>
</View>
</ScrollView>
<Divider style={{backgroundColor: 'black'}}/>
</View>
)
}
{this.renderDescription(info)}
</View>
<View style={styles.block}>
<Text style={{ fontSize: 15, color: "#CC1A17",fontWeight:'bold' }}>Localização</Text>
<Divider style={{ backgroundColor: "#000", marginBottom: 10 }} />
<Image source={require('../assets/img/campus.png')} style={{width:SCREEN_WIDTH*0.9}}></Image>
</View>
</ScrollView>
<Divider style={{ backgroundColor: "black" }} />
</View>
);
}
}
const styles = StyleSheet.create({
block: {
marginTop: 15,
block:{
marginTop:15,
backgroundColor: "white",
padding: 20,
shadowOffset: {
width: 0,
height: 2
},
shadowOpacity: 0.25,
shadowRadius: 3.84,
backgroundColor:'white',
padding:20
},
AttendeeContainer: {
flexDirection: 'row',
height: 55,
justifyContent: 'center',
marginLeft: 10,
marginRight: 10,
},
elevation: 3
},
AttendeeContainer: {
flexDirection: "row",
height: 55,
justifyContent: "center",
marginLeft: 10,
marginRight: 10
},
centerRow: {
alignItems: 'center',
backgroundColor: 'transparent',
flex: 3,
flexDirection: 'column',
justifyContent: 'center',
},
centerRow: {
alignItems: "center",
backgroundColor: "transparent",
flex: 3,
flexDirection: "column",
justifyContent: "center"
},
leftRow: {
backgroundColor: 'transparent',
flex: 1,
flexDirection: 'row',
justifyContent: 'flex-start',
alignSelf: 'center',
},
rightRow: {
alignItems: 'flex-end',
backgroundColor: 'transparent',
flex: 2,
flexDirection: 'row',
justifyContent: 'flex-end',
marginRight: 4,
alignSelf: 'center'
},
leftRow: {
backgroundColor: "transparent",
flex: 1,
flexDirection: "row",
justifyContent: "flex-start",
alignSelf: "center"
},
rightRow: {
alignItems: "flex-end",
backgroundColor: "transparent",
flex: 2,
flexDirection: "row",
justifyContent: "flex-end",
marginRight: 4,
alignSelf: "center"
},
icon: {
justifyContent: 'flex-start',
marginTop: 2.8,
},
icon: {
justifyContent: "flex-start",
marginTop: 2.8
},
nameAttendee: {
alignSelf: 'center',
fontSize: 20,
fontWeight: '400',
color: '#000',
marginBottom: 10,
},
nameAttendee: {
alignSelf: "center",
fontSize: 20,
fontWeight: "400",
color: "#000",
marginBottom: 10
},
details: {
marginTop: 20,
flex: 1,
alignSelf: 'center',
},
details: {
marginTop: 20,
flex: 1,
alignSelf: "center"
},
infoRow: {
margin: 25,
},
infoRow: {
margin: 25
},
ramoText: {
alignSelf: 'flex-start',
marginBottom: 5,
color: 'white',
fontSize: 17,
fontWeight: '400',
},
ramoText: {
alignSelf: "flex-start",
marginBottom: 5,
color: "white",
fontSize: 17,
fontWeight: "400"
},
timeText: {
alignItems: 'flex-end',
flex: 2,
lineHeight: 10,
marginRight: 4,
},
timeText: {
alignItems: "flex-end",
flex: 2,
lineHeight: 10,
marginRight: 20
},
mainViewStyle: {
flex: 1,
flexGrow: 1,
flexDirection: 'column',
},
mainViewStyle: {
flex: 1,
flexGrow: 1,
flexDirection: "column"
},
scroll: {
backgroundColor: '#eee',
flex: 1,
//marginBottom: 55,
},
scroll: {
backgroundColor: "#eee",
flex: 1
//marginBottom: 55,
},
header:{
flex: 1,
padding: 10,
backgroundColor: 'white',
borderRadius: 0,
},
cardContainer: {
flex: 1,
padding: 10,
// margin: 20,
backgroundColor: 'white',
borderRadius: 5,
header: {
flex: 1,
padding: 10,
backgroundColor: "white",
borderRadius: 0,
shadowColor: "#000",
shadowOffset: {
width: 0,
height: 2
},
shadowOpacity: 0.25,
shadowRadius: 3.84,
headerContainer: {
flex: 1,
},
elevation: 3
},
cardContainer: {
flex: 1,
padding: 10,
// margin: 20,
backgroundColor: "white",
borderRadius: 5
},
container: {
flex: 1,
flexDirection: 'column',
},
coverContainer: {
position: 'relative',
},
coverImage: {
height: Dimensions.get('window').width * (2 / 4),
width: Dimensions.get('window').width,
},
/*headerContainer: {
headerContainer: {
flex: 1
},
container: {
flex: 1,
flexDirection: "column"
},
coverContainer: {
position: "relative"
},
coverImage: {
height: Dimensions.get("window").width * (2 / 4),
width: Dimensions.get("window").width
},
/*headerContainer: {
alignItems: 'center',
backgroundColor: '#FFF',
},*/
carreerPathContainer: {
backgroundColor: "#CC1A17",
height: 50,
flex: 1,
alignItems: "center",
justifyContent: "center",
paddingTop: 15
},
carreerPathText: {
height: 50,
color: "white",
fontWeight: "bold",
fontSize: 20
},
companyHeader: {
backgroundColor: "#dddddd",
// height:150,
borderRadius: 5,
margin: 10,
padding: 10
},
companyTitle: {
paddingBottom: 5,
fontWeight: "bold",
color: "#777777",
fontSize: 17
carreerPathContainer: {
backgroundColor: '#CC1A17',
height: 50,
flex: 1,
alignItems: 'center',
justifyContent: 'center',
paddingTop: 15,
},
carreerPathText: {
height: 50,
color: 'white',
fontWeight: 'bold',
fontSize: 20,
},
companyHeader: {
backgroundColor: '#dddddd',
// height:150,
borderRadius: 5,
margin: 10,
padding: 10
},
companyTitle: {
paddingBottom: 5,
fontWeight: 'bold',
color: '#777777',
fontSize: 17,
// padding:20
},
companyLogo: {
borderRadius: 20,
},
wrapper: {},
company: {
flex: 1,
flexDirection: 'row',
// backgroundColor:'red',
color: 'black'
},
companyLogoContainer: {
flex: 1,
justifyContent: 'center',
width: '60%',
// backgroundColor:'white',
margin: 20,
},
aboutCompany: {
width: SCREEN_WIDTH,
flex: 1,
justifyContent: 'center',
alignItems: 'center',
}
// padding:20
},
companyLogo: {
borderRadius: 20
},
wrapper: {},
company: {
flex: 1,
flexDirection: "row",
// backgroundColor:'red',
color: "black"
},
companyLogoContainer: {
flex: 1,
justifyContent: "center",
width: "60%",
// backgroundColor:'white',
margin: 20
},
aboutCompany: {
width: SCREEN_WIDTH,
flex: 1,
justifyContent: "center",
alignItems: "center"
}
});
function mapStateToProps(state, props) {
return {
token: state.apiReducer.token,
user: state.apiReducer.user,
logged: state.apiReducer.logged,
events: state.apiReducer.events,
careerPath: state.apiReducer.careerPath,
}
return {
token: state.apiReducer.token,
user: state.apiReducer.user,
logged: state.apiReducer.logged,
events: state.apiReducer.events,
careerPath: state.apiReducer.careerPath
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators(Actions, dispatch);
return bindActionCreators(Actions, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(calendarDetail);
export default connect(
mapStateToProps,
mapDispatchToProps
)(calendarDetail);

View File

@ -77,8 +77,8 @@ class choosePath extends React.Component {
};
componentDidMount() {
// this.props.getEvents(this.props.user);
this.props.getAvailableGuestlists(this.props.userDetails.token);
this.props.getSessions(this.props.userDetails.token);
this.props.getAvailableGuestlists(this.props.token);
this.props.getSessions(this.props.token);
this._mount();
//console.log('didMount');
@ -120,10 +120,10 @@ class choosePath extends React.Component {
_s() {
this.props.signSession(this.props.userDetails.token, item[index].Id);
this.props.signSession(this.props.token, item[index].Id);
}
getCareerPaths = () => {
this.props.getAvailableGuestlists(this.props.userDetails.token);
this.props.getAvailableGuestlists(this.props.token);
console.log(this.props.calendar);
};
_keyExtractor = (item, index) => item.id;
@ -265,13 +265,12 @@ class choosePath extends React.Component {
this.props.waitChangeGuest();
this.props.changeGuestList(
this.props.userDetails.token,
this.props.token,
itemValue
);
// this.props.waitChangeGuest();
// this.props.getAvailableSessions(this.props.userDetails.token);
// this.props.waitChangeGuest();
// this.props.getSessionBlocks(this.props.sessions)
@ -328,7 +327,7 @@ class choosePath extends React.Component {
this.props.removeSession(
this.props.user,
this.props.userDetails.token,
this.props.token,
item[index].Id
);
}}
@ -350,7 +349,7 @@ class choosePath extends React.Component {
//this.props.waitChangeGuest()
this.props.signSession(
this.props.user,
this.props.userDetails.token,
this.props.token,
item[index].Id
);
@ -505,7 +504,8 @@ function mapStateToProps(state, props) {
changingGuest: state.apiReducer.changingGuest,
sessions: state.apiReducer.sessions,
Blocks: state.apiReducer.Blocks,
showAlert: state.apiReducer.showAlert
showAlert: state.apiReducer.showAlert,
token: state.apiReducer.token
};
}

View File

@ -0,0 +1,47 @@
/*
/*
/*
/*Esta página só está disponivel a 1 hora do rally..
*/
import * as React from "react";
import {View, StyleSheet, Dimensions, Text, Button, ScrollView} from "react-native";
import {TabView, TabBar, SceneMap} from "react-native-tab-view";
import * as Actions from "../store/actions";
import {connect} from "react-redux";
import {bindActionCreators} from "redux";
export default class rallyTascas extends React.Component {
render() {
return (
<View>
</View>
)
}
}
function mapStateToProps(state, props) {
return {
token: state.apiReducer.token,
user: state.apiReducer.user,
logged: state.apiReducer.logged,
events: state.apiReducer.events
}
}
function mapDispatchToProps(dispatch) {
return bindActionCreators(Actions, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(rallyTascas);

File diff suppressed because it is too large Load Diff

View File

@ -36,7 +36,8 @@ let apiState = {
password: "",
token: {
expirationDateToken: 0,
access_token: ""
access_token: "",
refresh_token:""
}
},
calendar: {},
@ -49,7 +50,10 @@ let apiState = {
b: {},
c: {},
d: {},
loadingLogin: false
loadingLogin: false,
alimentacao:[],
acesso:[],
alojamento:[]
};
const apiReducer = (state = apiState, action) => {
@ -61,22 +65,31 @@ const apiReducer = (state = apiState, action) => {
var expirationDateTokenA = 0;
var access_tokenA = "";
var refresh_tokenA= "puta";
if (action.payload.apiReducer.userDetails.token != undefined) {
if (action.payload.apiReducer.token != undefined) {
if (
action.payload.apiReducer.userDetails.token.expirationDateToken !=
action.payload.apiReducer.token.expirationDateToken !=
undefined
) {
expirationDateTokenA =
action.payload.apiReducer.userDetails.token.expirationDateToken;
action.payload.apiReducer.token.expirationDateToken;
}
if (
action.payload.apiReducer.userDetails.token.access_token !=
action.payload.apiReducer.token.access_token !=
undefined
) {
access_tokenA =
action.payload.apiReducer.userDetails.token.access_token;
action.payload.apiReducer.token.access_token;
}
if (
action.payload.apiReducer.token.refresh_token !=
undefined
) {
refresh_tokenA =
action.payload.apiReducer.token.refresh_token;
}
}
@ -88,11 +101,13 @@ const apiReducer = (state = apiState, action) => {
userDetails: {
token: {
expirationDateToken: expirationDateTokenA,
access_token: access_tokenA
access_token: access_tokenA,
refresh_token:refresh_tokenA,
},
username: action.payload.apiReducer.userDetails.username,
password: action.payload.apiReducer.userDetails.password
}
},
token:action.payload.apiReducer.token
};
}
@ -123,19 +138,19 @@ const apiReducer = (state = apiState, action) => {
password: action.userDetails.password
},
loadingLogin: false,
onHold: action.onHold
onHold: action.onHold,
token:action.token
});
return state;
case CHECK_USER:
var u = action.userDetails;
if (action.token != undefined) u.token = action.token;
state = Object.assign({}, state, {
logged: action.logged,
onHold: action.onHold,
userDetails: u
// userDetails: u,
token:action.token
});
return state;
@ -144,16 +159,20 @@ const apiReducer = (state = apiState, action) => {
state = Object.assign({}, state, {
user: {},
userDetails: {},
token:{},
logged: false
});
return state;
case USER_INFO:
state = Object.assign({}, state, {
user: action.user,
loggedIn: action.loggedIn,
onHold: action.onHold
onHold: action.onHold,
token: action.token
});
return state;
@ -164,7 +183,11 @@ const apiReducer = (state = apiState, action) => {
a: action.day1,
b: action.day2,
c: action.day3,
d: action.day4
d: action.day4,
alimentacao: action.alimentacao,
alojamento: action.alojamento,
acesso:action.acesso
});
return state;

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@ -0,0 +1,122 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 350 282.3" style="enable-background:new 0 0 350 282.3;" xml:space="preserve">
<g>
<g id="unBVke.tif_1_">
<g>
<path d="M172.6,16.8c9,9,17.7,17.8,26.6,26.8c0,33.5,0,67.2,0,100.7c-9,9-17.8,17.9-26.8,26.9c-26.2,0-52.6,0-79.1,0
c0-5.8,0-11.6,0-17.5c-31.2,0-62.2,0-93.3,0C0,102.4,0,51.3,0,0c31,0,62.1,0,93.3,0c0,5.6,0,11.1,0,16.8
C119.9,16.8,146.2,16.8,172.6,16.8z M179.6,115.3c0-19.7,0-39.6,0-59.1c-2.7-2.8-5.2-5.4-7.7-7.9c-14.2,0-28.4,0-42.6,0
c0,35.2,0,70.2,0,105.4c5.2,0,10.3,0,15.5,0c0-10.2,0-20.3,0-30.5c9.2,0,18.1,0,27,0C174.5,120.5,177,118,179.6,115.3z
M17.4,17.7c0,35.2,0,70.2,0,105.4c14.2,0,28.4,0,42.5,0c2.6-2.6,5.1-5.1,7.7-7.7c0-19.8,0-39.7,0-59.2c-2.8-2.8-5.3-5.4-8-8.2
c-8.8,0-17.7,0-26.8,0c0-10.2,0-20.2,0-30.4C27.5,17.7,22.5,17.7,17.4,17.7z M78,48.3c0,25,0,49.9,0,74.8c5.1,0,10.2,0,15.2,0
c0-25,0-49.9,0-74.8C88.1,48.3,83.1,48.3,78,48.3z M103.8,74c0,16.4,0,32.7,0,49.1c5.1,0,10.2,0,15.3,0c0-16.4,0-32.7,0-49.1
C113.9,74,108.9,74,103.8,74z M103.8,48.3c0,5.2,0,10.3,0,15.3c5.2,0,10.2,0,15.3,0c0-5.2,0-10.2,0-15.3
C114,48.3,108.9,48.3,103.8,48.3z"/>
<path d="M144.8,107.7c0-14.7,0-29.2,0-43.9c6.4,0,12.7,0,19.2,0c0,14.6,0,29.2,0,43.9C157.6,107.7,151.3,107.7,144.8,107.7z"/>
<path d="M32.9,63.7c6.4,0,12.7,0,19.1,0c0,14.6,0,29.2,0,43.9c-6.4,0-12.6,0-19.1,0C32.9,93.1,32.9,78.5,32.9,63.7z"/>
</g>
</g>
<g>
<path d="M280.1,206.5c-2.5,5.1-5,10-7.5,14.9c-0.3,0.6-0.4,1.4-1.6,1.4c-2.9-9.3-5.7-18.7-8.7-28.2c2.4,0,4.6,0,6.9,0
c1.3,4.2,2.5,8.4,3.9,12.9c0.7-1.3,1.3-2.3,1.9-3.4c1.5-2.8,2.9-5.5,4.4-8.3c0.3-0.6,0.5-1.2,1.6-0.9c2.1,4,4.3,8.1,6.7,12.5
c1.3-4.4,2.5-8.6,3.8-12.8c2,0,3.9,0,6.1,0c-0.6,3.3-1.8,6.3-2.6,9.3c-0.9,3.1-1.9,6.2-2.8,9.3c-0.9,3.1-1.8,6.2-2.8,9.4
c-0.3,0.1-0.6,0.2-1,0.3C285.5,217.4,282.8,212,280.1,206.5z"/>
<path d="M248.9,194.1c7.2,0.6,13,6.6,12.7,14.4c-0.2,6.9-4.6,12.5-11.3,13.9c-7.1,1.4-13.9-2-16.6-8.4
c-3.7-8.7,1.9-18.5,11.2-19.7C246.2,194.2,247.6,194.2,248.9,194.1z M246.5,216.5c4.5,0.4,8-2.7,8.3-7.4c0.4-4.6-2.7-8.6-6.9-8.9
c-5.2-0.3-8.2,3.1-8.5,7.2C239,212.3,242,216.1,246.5,216.5z"/>
<path d="M163.1,194.5c3.7,0,7.1-0.2,10.6,0c2,0.1,4,0.7,5.8,1.6c3.8,1.8,5.7,5.1,6.3,9.2c1,6.8-1.8,12.7-7.6,15.5
c-1.4,0.7-2.9,1-4.5,1.3c-1.2,0.2-2.4,0.3-3.6,0.3c-2.2,0-4.5-0.1-7-0.2C163.1,213,163.1,203.9,163.1,194.5z M169.7,216.1
c3.5,0.6,6.2-0.4,8-3.2c1.9-3,2-6.3,0.2-9.4c-1.8-3-4.8-3.5-8.1-3C169.7,205.7,169.7,210.8,169.7,216.1z"/>
<path d="M136.7,221.9c0-9,0-18,0-27.2c1.1-0.1,2.1-0.2,3.2-0.3c3.5-0.2,7.1-0.3,10.5,0.7c5.5,1.6,8.8,5.6,9.1,11.3
c0.2,2.8-0.1,5.6-1.4,8.1c-2.2,4.3-5.8,7-10.6,7.5c-3.4,0.4-6.9,0.1-10.4,0.1C137.1,222.2,137,222,136.7,221.9z M143.4,200.5
c0,5.4,0,10.6,0,15.8c3.6,0.3,6.5-0.7,8.2-3.7c1.7-3.1,1.7-6.3-0.2-9.2C149.5,200.5,146.6,200.1,143.4,200.5z"/>
<path d="M318.9,194.6c4.1-0.2,8.1-0.6,12,0.5c3,0.9,4.7,2.9,5.1,5.9c0.6,3.9-0.6,7-4.1,9.2c2.6,3.9,5.2,7.8,7.9,11.9
c-2.6,0-5,0-7.5,0.1c-2.2-3.6-4.4-7.2-6.6-10.7c-0.1,0-0.3,0.1-0.4,0.1c0,3.5,0,7-0.1,10.6c-2.2,0-4.2,0-6.3,0
C318.9,212.9,318.9,203.8,318.9,194.6z M325.2,206.9c1.8,0.2,3.2-0.2,4.1-1.7c0.8-1.4,0.7-2.8-0.2-4.1c-1-1.3-2.4-1.4-3.9-1
C325.2,202.4,325.2,204.6,325.2,206.9z"/>
<path d="M121,194.1c0.4,0,0.7,0.1,1.1,0.1c4,9.3,8.1,18.5,12.2,28.1c-1.4,0-2.6,0-3.7,0c-1.2,0-2.4,0-3.7,0
c-0.5-1.3-1.1-2.6-1.6-3.9c-2.8,0-5.5,0-8.2,0c-0.5,1.3-1.1,2.6-1.6,3.9c-2.2,0-4.4,0-6.8,0C112.8,212.8,116.9,203.5,121,194.1z
M121.3,207c-0.8,2.1-1.4,3.9-2.2,5.9c1.6,0,2.8,0,4.3,0C122.6,210.9,122,209.1,121.3,207z"/>
<path d="M212.2,222.2c0-9.3,0-18.3,0-27.6c1.2-0.1,2.5-0.2,3.7-0.2c2.7,0,5.3,0,7.9,0.8c3.9,1.3,6.2,4.4,6.3,8.6
c0,3.8-2,7.5-6,8.9c-1.7,0.6-3.6,0.8-5.5,1.2c0,2.6,0,5.4,0,8.2C216.3,222.2,214.3,222.2,212.2,222.2z M218.5,200.2
c0,2.7,0,5.2,0,7.8c3.3,0.3,5.2-1.5,5.1-4C223.5,201.4,221.8,200,218.5,200.2z"/>
<path d="M93.7,194.7c2.7-0.3,5.2-0.4,7.7-0.1c1.6,0.2,3.2,0.4,4.7,1.1c3.6,1.5,5.4,4.3,5.4,8.1c0,3.9-1.6,7-5.2,8.7
c-1.4,0.7-3.1,0.8-4.7,1.2c-0.5,0.1-1,0.1-1.6,0.2c0,2.8,0,5.5,0,8.4c-2.1,0-4.1,0-6.3,0C93.7,213,93.7,203.9,93.7,194.7z
M100,208.1c2.8-0.1,4.1-0.8,4.7-2.3c0.6-1.5,0.6-3-0.5-4.2c-1.1-1.3-2.5-1.6-4.3-1.3C100,202.9,100,205.4,100,208.1z"/>
<path d="M299.7,222.2c0-9.3,0-18.3,0-27.7c4.9,0,9.8,0,14.8-0.1c0,1.8,0,3.6,0,5.6c-2.8,0-5.4,0.1-8.2,0.1c0,1.8,0,3.4,0,5.2
c2.4,0,4.7,0,7.2,0.1c0,1.8,0,3.6,0,5.5c-2.4,0-4.7,0-7.2,0c0,1.8,0,3.6,0,5.5c2.7,0,5.4,0,8.3,0c0,1.8,0,3.7,0,5.6
C309.6,222.2,304.7,222.2,299.7,222.2z"/>
<path d="M203.3,194.5c2.3,0,4.6,0,7,0c-0.3,0.5-0.4,0.9-0.6,1.3c-2.6,4.5-5.1,9-7.8,13.5c-0.5,0.9-0.7,1.8-0.7,2.8
c0,3.2,0,6.4,0.1,9.6c0,0.2-0.1,0.3-0.2,0.6c-2.1,0-4.2,0-6.5,0c0-2.4,0-4.7,0-6.9c0-1.3,0.1-2.6,0-3.8c0-0.6-0.3-1.2-0.6-1.8
c-2.6-4.6-5.2-9.1-7.8-13.7c-0.2-0.4-0.4-0.9-0.7-1.5c2.6,0,5,0,7.4,0c1.7,3.1,3.4,6.2,5.2,9.5
C199.7,200.8,201.5,197.7,203.3,194.5z"/>
<path d="M349.8,219.1c-0.2,2.2-2.2,3.8-4.3,3.6c-2-0.2-3.7-2.2-3.5-4.2c0.2-2.1,2.2-3.8,4.3-3.6
C348.4,214.9,350,216.8,349.8,219.1z"/>
</g>
<g>
<path d="M156.3,236.8h6.8v15.9h0.1c1.3-1.8,4-3.5,8.8-3.5h3.4c11.1,0,15.3,3.5,15.3,13.5v6.6c0,10.7-6.6,13.1-15.6,13.1h-2.2
c-4.3,0-7.8-1.3-9.7-3.9H163v2.9h-6.8L156.3,236.8L156.3,236.8z M183.9,263.1c0-7.2-3.3-8.2-9.4-8.2h-0.7
c-6.2,0-10.8,0.1-10.8,7.6v6.1c0,6,2.1,8.2,9.8,8.2h1.5c8.1,0,9.6-2.6,9.6-8.6L183.9,263.1L183.9,263.1z"/>
<path d="M257,255.6h-3.7V250h3.7l0-2.8c0-7.4,4.6-10.3,10-10.3l9,0v5.3h-6.8c-3.7,0-5.4,2.2-5.4,4.9v2.9h9.1v5.6h-9.1v26.7H257
L257,255.6L257,255.6z"/>
<path d="M233.7,250h-3.7v5.6h3.7l0,16.4c0,7.4,4.6,10.3,10,10.3h8.4v-5.6l-6.8,0c-3.7,0-4.9-1.9-4.9-4.6v-16.4h9.1V250h-9.1v-13.1
h-6.8L233.7,250L233.7,250z"/>
<path d="M311.8,236.9h6.8v7.1l-6.8,0V236.9z M311.8,249.2h6.8v33.1h-6.8L311.8,249.2z"/>
<path d="M221.3,273c-1,2.9-3.4,3.7-8.7,3.7H211c-8.7,0-10.1-1.1-10.1-8.2h0h26.9v-6.1c0-11.1-5.6-13.1-14.5-13.1l-3.3,0
c-7,0-15.6,1.3-15.6,12.5v7.8c0,10.9,7.4,12.7,13.9,12.7h6.1c8.2,0,12-2.7,12.9-7.4L221.3,273z M200.9,261.8c0-6.4,2.9-7,9.9-7
l1.4,0c7.9,0,8.9,2,8.9,6.2l0,1.8l-20.1,0L200.9,261.8L200.9,261.8z"/>
<path d="M290.6,249.2h-2.5c-9.2,0-13.2,2.9-13.4,7.3l6.5,2.2c0.3-3,3.6-3.9,8.7-3.9c7.5,0,9.3,0.4,9.3,6v3h-0.1
c-1.7-2.3-4-2.9-9.9-2.9h-2.6c-8.7,0-13.7,2.2-13.7,9.3v2c0,5.8,2.2,10,11.2,10h6.6c6.5,0,7.2-1.1,8.5-3h0.1v3h6.8V261
C305.8,251.7,299.9,249.2,290.6,249.2 M299,272.4c0,3.1-2.1,4.3-10.1,4.3h-1.8c-6.8,0-7.7-1.4-7.7-4l0-1.7c0-3.1,1.7-4.3,7.3-4.3
h3c5.1,0,9.2,1,9.2,4.5L299,272.4L299,272.4z"/>
<path d="M344.9,257l4.3-3c-1-3-3.9-4.8-9.9-4.8c-3,0-6.1,1.2-8,4.4h-0.2v-4.4l-6.4,0v33.1h6.8v-19.9c0-4,2.2-7.5,7.5-7.5
C342.7,254.8,344.5,255.9,344.9,257"/>
<polygon points="126.2,237 126.2,246.1 116.8,246.1 135,268 153.2,246.1 143.8,246.1 143.8,237 "/>
<polygon points="93.7,273 103.1,273 103.1,282.1 120.6,282.1 120.6,273 130,273 111.8,251.1 "/>
</g>
<g>
<path d="M215.3,155.7c-0.8-0.9-1.7-1.7-2.8-2.2c-1.1-0.5-2.4-0.8-3.9-0.8c-1.1,0-2.3,0.3-3.5,0.9c-0.9,0.4-1.6,1-2.3,1.8v-2.2
h-3.7v27.8h3.7v-10.1c0.7,0.7,1.4,1.3,2.4,1.7c1.2,0.6,2.4,0.9,3.4,0.9c1.4,0,2.7-0.3,3.8-0.8c1.1-0.5,2.1-1.3,2.8-2.2
c0.8-0.9,1.3-2,1.7-3.3c0.4-1.2,0.6-2.6,0.6-4c0-1.4-0.2-2.8-0.6-4C216.6,157.7,216.1,156.6,215.3,155.7z M213.9,162.9
c0,1-0.1,1.9-0.4,2.8c-0.3,0.9-0.6,1.6-1.1,2.3c-0.5,0.6-1.1,1.1-1.7,1.5c-0.7,0.4-1.4,0.6-2.2,0.6c-0.8,0-1.6-0.2-2.2-0.5
c-0.7-0.3-1.2-0.8-1.7-1.5c-0.5-0.6-0.9-1.4-1.2-2.2c-0.3-0.8-0.4-1.7-0.5-2.7v-0.3c0-1,0.1-1.9,0.4-2.8c0.3-0.9,0.7-1.6,1.2-2.3
c0.5-0.6,1.1-1.1,1.8-1.5c0.7-0.4,1.4-0.5,2.3-0.5c0.8,0,1.6,0.2,2.2,0.5c0.7,0.4,1.3,0.9,1.7,1.5c0.5,0.6,0.9,1.4,1.1,2.3
C213.8,161,213.9,161.9,213.9,162.9z"/>
<path d="M237.4,155.8c-0.8-0.9-1.8-1.7-3-2.2c-1.2-0.5-2.6-0.8-4.1-0.8c-1.5,0-2.9,0.3-4.1,0.8c-1.2,0.5-2.2,1.3-3,2.2
c-0.8,0.9-1.4,2-1.8,3.3c-0.4,1.2-0.6,2.6-0.6,4c0,1.4,0.2,2.7,0.6,4c0.4,1.2,1,2.4,1.8,3.3c0.8,0.9,1.8,1.7,3,2.2
c1.2,0.5,2.6,0.8,4.1,0.8c1.5,0,2.9-0.3,4.1-0.8c1.2-0.5,2.2-1.3,3-2.2c0.8-0.9,1.4-2,1.9-3.3c0.4-1.2,0.6-2.6,0.6-4
c0-1.4-0.2-2.7-0.6-4C238.9,157.8,238.3,156.7,237.4,155.8z M236.2,163c0,1-0.1,1.9-0.4,2.8c-0.3,0.9-0.7,1.6-1.2,2.2
c-0.5,0.6-1.1,1.1-1.9,1.5c-0.7,0.4-1.5,0.5-2.4,0.5c-0.9,0-1.7-0.2-2.4-0.5c-0.7-0.4-1.4-0.9-1.8-1.5c-0.5-0.6-0.9-1.4-1.2-2.2
c-0.3-0.9-0.4-1.8-0.4-2.8c0-1,0.1-1.9,0.4-2.8c0.3-0.9,0.7-1.6,1.2-2.2c0.5-0.6,1.1-1.1,1.9-1.5c0.7-0.4,1.5-0.6,2.4-0.6
c0.9,0,1.7,0.2,2.4,0.6c0.7,0.4,1.4,0.9,1.9,1.5c0.5,0.6,0.9,1.4,1.2,2.2C236.1,161.1,236.2,162,236.2,163z"/>
<polygon points="260.3,167.8 256.1,153.1 252.2,153.1 247.9,167.8 243.7,153.1 240,153.1 246,172.9 249.7,172.9 254.1,157.8
258.6,172.9 262.3,172.9 268.3,153.1 264.5,153.1 "/>
<path d="M285.8,155.5c-0.8-0.9-1.8-1.5-2.9-2c-1.1-0.5-2.5-0.7-3.9-0.7c-1.5,0-2.8,0.3-4,0.8c-1.2,0.5-2.2,1.3-3,2.2
c-0.8,0.9-1.5,2-1.9,3.2c-0.4,1.2-0.7,2.5-0.7,3.8c0,1.4,0.2,2.8,0.7,4.1c0.4,1.3,1.1,2.4,1.9,3.4c0.8,1,1.9,1.8,3.1,2.3
c1.2,0.6,2.5,0.9,4,0.9c1,0,2-0.1,3-0.4c1-0.3,1.9-0.7,2.7-1.3c0.8-0.6,1.5-1.3,2-2.1c0.6-0.8,1-1.8,1.2-2.8l0.1-0.4h-3.4
l-0.1,0.2c-0.9,2.4-2.7,3.6-5.5,3.6c-0.8,0-1.6-0.2-2.3-0.5c-0.7-0.4-1.3-0.9-1.8-1.5c-0.5-0.6-1-1.3-1.2-2.1
c-0.3-0.7-0.4-1.4-0.5-2.1h15.1v-1.5c0-1.4-0.2-2.7-0.7-3.8C287.2,157.4,286.6,156.3,285.8,155.5z M284.5,161h-11.3
c0.1-0.6,0.2-1.1,0.4-1.7c0.3-0.7,0.7-1.2,1.2-1.7c0.5-0.5,1.1-0.9,1.8-1.2c0.7-0.3,1.4-0.5,2.2-0.5c0.9,0,1.7,0.1,2.4,0.4
c0.7,0.3,1.3,0.7,1.8,1.1c0.5,0.5,0.9,1.1,1.1,1.7C284.3,159.7,284.5,160.3,284.5,161z"/>
<path d="M300.6,152.8c-0.3,0-0.5-0.1-0.7-0.1c-2,0-3.6,0.8-4.8,2.4l0.1-2.1h-3.7v19.9h3.7V161c0-0.6,0.1-1.2,0.3-1.8
c0.2-0.6,0.5-1.1,0.9-1.5c0.4-0.4,0.9-0.8,1.5-1.1c0.6-0.3,1.2-0.4,2-0.4c0.3,0,0.8,0.1,1.4,0.3l0.4,0.1V153l-0.2-0.1
C301.1,152.9,300.8,152.8,300.6,152.8z"/>
<rect x="304.3" y="153.1" width="3.7" height="19.9"/>
<rect x="304.3" y="145.4" width="3.7" height="4"/>
<path d="M322.1,152.7c-1.3,0-2.6,0.3-3.9,0.8c-1,0.4-2,1.1-2.9,2v-2.4h-3.7v19.9h3.7V161c0-0.6,0.2-1.3,0.5-1.9
c0.3-0.6,0.8-1.2,1.3-1.7c0.6-0.5,1.2-0.9,2-1.2c0.8-0.3,1.6-0.4,2.5-0.4c1.1,0,1.9,0.2,2.5,0.7c0.6,0.5,0.9,1.3,0.9,2.5v13.8h3.7
v-14.1c0-1.9-0.6-3.4-1.7-4.5C325.8,153.3,324.2,152.7,322.1,152.7z"/>
<path d="M346.3,153.1v2.1c-0.8-0.8-1.6-1.4-2.5-1.8c-1.1-0.4-2.2-0.7-3.1-0.7c-1.4,0-2.6,0.3-3.7,0.8c-1.1,0.5-2.1,1.3-2.9,2.2
c-0.8,0.9-1.4,2-1.8,3.3c-0.4,1.2-0.6,2.6-0.6,4c0,1.4,0.2,2.8,0.6,4c0.4,1.2,1,2.4,1.8,3.3c0.8,0.9,1.8,1.7,2.9,2.3
c1.1,0.5,2.5,0.8,3.9,0.8c1.1,0,2.2-0.3,3.2-0.8c0.8-0.4,1.5-1,2.1-1.7v2.3c0,0.7-0.1,1.4-0.4,2c-0.3,0.6-0.7,1.2-1.1,1.6
c-0.5,0.4-1,0.8-1.7,1.1c-0.6,0.3-1.3,0.4-2,0.4c-1.2,0-2.2-0.2-3-0.7c-0.8-0.5-1.5-1.3-2-2.4L336,175h-3.7l0.2,0.5
c0.8,2.1,1.9,3.7,3.4,4.6c1.5,1,3.2,1.4,5.2,1.4c1.1,0,2.2-0.2,3.3-0.5c1.1-0.4,2-0.9,2.9-1.6c0.8-0.7,1.5-1.6,2-2.6
c0.5-1.1,0.7-2.3,0.7-3.6v-20H346.3z M346.3,162.7v0.3c0,1-0.1,1.9-0.4,2.8c-0.2,0.9-0.6,1.6-1,2.3c-0.4,0.6-1,1.1-1.6,1.5
c-0.6,0.4-1.4,0.5-2.2,0.5c-0.8,0-1.6-0.2-2.3-0.6c-0.7-0.4-1.3-0.9-1.8-1.5c-0.5-0.6-0.9-1.4-1.2-2.3c-0.3-0.9-0.4-1.8-0.4-2.8
c0-1,0.1-1.9,0.4-2.8c0.3-0.9,0.7-1.6,1.2-2.2c0.5-0.6,1.1-1.1,1.8-1.5c0.7-0.4,1.5-0.5,2.3-0.5c0.8,0,1.5,0.2,2.1,0.5
c0.6,0.3,1.2,0.8,1.6,1.4c0.4,0.6,0.8,1.4,1,2.2C346.1,160.9,346.3,161.8,346.3,162.7z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -43,7 +43,7 @@
<li class="unavailable">Programa</li>
<li><a href="#precos" title="Preços">Preços</a></li>
<li class="unavailable">App</li>
<li><a href="#ctf" title="Faq's">CTF</li>
<!-- <li><a href="#ctf" title="Faq's">CTF</li> -->
<li><a href="#sponsors" title="Sponsors">Sponsors</a></li>
<li><a href="#faqs" title="Faq's">Faq's</a></li>
</ul>
@ -158,17 +158,19 @@
</div>
</div>
</section>
<!--
<section id="ctf">
<div class="container ctf-container">
<div class="col-lg-12">
<div class="prectf-h1">Brevemente disponível</div>
<h1>Capture the flag</h1>
<a class ="button-ctf" href="ctf.html" title="Comprar" target="_blank">Começar</a>
<a class="button-ctf" href="ctf.html" title="Comprar" target="_blank">Começar</a>
<h1></h1>
</div>
</div>
</section>
</section> -->
<!-- sponsors section -->
<section id="sponsors">
<div class="container">
@ -181,21 +183,23 @@
<div class="row">
<div class="col-lg-10 col-lg-offset-1 col-sm-8 col-sm-offset-2 col-xs-10 col-xs-offset-1">
<a href="https://www.criticalsoftware.com/pt/homepage" title="Critical Software" target="_blank"
class="sponsor-image"><img src="imgs/critical-sponsor.svg" alt="Critical Software Image"></a>
class="sponsor-image"><img src="imgs/critical-sponsor.png" alt="Critical Software Image"></a>
</div>
</div>
</div>
<div class="container gold">
<div class="row">
<div class="col-lg-4 col-lg-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1">
<h1>Gold Sponsor</h1>
<h1>Gold Sponsors</h1>
<hr>
</div>
</div>
<div class="row">
<div class="col-lg-10 col-lg-offset-1 col-sm-8 col-sm-offset-2 col-xs-10 col-xs-offset-1">
<a href="http://www.novabase.pt/pt" title="Novabase" target="_blank"
class="sponsor-image"><img src="imgs/novaBase-sponsor.jpg" alt="Novabase Image"></a>
<div class="col-lg-10 col-lg-offset-1 col-sm-8 col-sm-offset-2 col-xs-10 col-xs-offset-1 vertically-aligned">
<a href="http://www.novabase.pt/pt" title="Novabase" target="_blank" class="sponsor-image"><img
src="imgs/novaBase-sponsor.jpg" alt="Novabase Image"></a>
<a href="https://blip.pt/" title="Blip" target="_blank" class="sponsor-image"><img
src="imgs/blip-sponsor.png" alt="Blip Image"></a>
</div>
</div>
</div>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -360,6 +360,12 @@ select {
margin-left: 25px;
}
.vertically-aligned{
display: flex;
align-items: center;
justify-content: center;
}
.btn {
display: block;
}
@ -1015,8 +1021,8 @@ hr {
}
}
.sponsor-image {
display: block;
margin: 40px auto 0;
display: inline-block;
margin: 40px 20px 0;
max-width: 200px;
filter: grayscale(0.2);
transform: scale(1);
@ -1025,6 +1031,10 @@ hr {
filter: grayscale(0);
transform: scale(1.03);
}
@include mobile{
max-width: 160px;
margin: 40px 15px 0;
}
}
.gold {
h1 {