mirror of
https://github.com/Blair-SGA-Dev-Team/blazerapp.git
synced 2024-11-21 12:31:16 -05:00
finished version of app
This commit is contained in:
parent
baf2210dca
commit
9547d894ea
|
@ -99,8 +99,8 @@ export const TeacherList = ({route}) => {
|
||||||
else if (itemDate.getTime() > todayDate.getTime() && itemDate.getTime() <= weekFutureDate.getTime()) {
|
else if (itemDate.getTime() > todayDate.getTime() && itemDate.getTime() <= weekFutureDate.getTime()) {
|
||||||
future.push(route.params.data[i])
|
future.push(route.params.data[i])
|
||||||
}
|
}
|
||||||
//else if (itemDate >= weekPastDate && itemDate < todayDate) {
|
else if (itemDate >= weekPastDate && itemDate < todayDate) {
|
||||||
else if (itemDate.getTime() < todayDate.getTime()) {
|
//else if (itemDate.getTime() < todayDate.getTime()) {
|
||||||
past.push(route.params.data[i])
|
past.push(route.params.data[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,14 +35,12 @@ const getCurrentDate=()=>{
|
||||||
}
|
}
|
||||||
export const EventInfo = ({route}) => {
|
export const EventInfo = ({route}) => {
|
||||||
const item = route.params;
|
const item = route.params;
|
||||||
const itemDate = new Date(item.event_date)
|
const itemDate = new Date(parseInt(String(item.event_date).split('-')[0]), parseInt(String(item.event_date).split('-')[1])-1, parseInt(String(item.event_date).split('-')[2]))
|
||||||
const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
|
const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
|
||||||
const months = ['January','February','March','April','May','June','July','August','September','October','November','December',]
|
const months = ['January','February','March','April','May','June','July','August','September','October','November','December',]
|
||||||
const dayOfWeek = days[itemDate.getDay()+1]
|
const dayOfWeek = days[itemDate.getDay()]
|
||||||
const month = months[itemDate.getMonth()]
|
const month = months[itemDate.getMonth()]
|
||||||
const date = itemDate.getDate()+1
|
const date = itemDate.getDate()
|
||||||
|
|
||||||
console.log(itemDate.getDate())
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ScrollView style = {{backgroundColor: 'white', flex:1, padding: '5%', paddingRight: '10%'}}>
|
<ScrollView style = {{backgroundColor: 'white', flex:1, padding: '5%', paddingRight: '10%'}}>
|
||||||
|
@ -216,8 +214,8 @@ class Calendar extends React.Component {
|
||||||
else if (itemDate > todayDate && itemDate <= weekFutureDate) {
|
else if (itemDate > todayDate && itemDate <= weekFutureDate) {
|
||||||
future.push(this.state.data[i])
|
future.push(this.state.data[i])
|
||||||
}
|
}
|
||||||
//else if (itemDate >= weekPastDate && itemDate < todayDate) {
|
else if (itemDate >= weekPastDate && itemDate < todayDate) {
|
||||||
else if (itemDate < todayDate) {
|
//else if (itemDate < todayDate) {
|
||||||
past.push(this.state.data[i])
|
past.push(this.state.data[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
37
app/Home.js
37
app/Home.js
|
@ -113,8 +113,8 @@ export const TeacherList = ({route}) => {
|
||||||
else if (itemDate.getTime() > todayDate.getTime() && itemDate.getTime() <= weekFutureDate.getTime()) {
|
else if (itemDate.getTime() > todayDate.getTime() && itemDate.getTime() <= weekFutureDate.getTime()) {
|
||||||
future.push(route.params.data[i])
|
future.push(route.params.data[i])
|
||||||
}
|
}
|
||||||
//else if (itemDate >= weekPastDate && itemDate < todayDate) {
|
else if (itemDate >= weekPastDate && itemDate < todayDate) {
|
||||||
else if (itemDate.getTime() < todayDate.getTime()) {
|
//else if (itemDate.getTime() < todayDate.getTime()) {
|
||||||
past.push(route.params.data[i])
|
past.push(route.params.data[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -168,15 +168,15 @@ export const whatsNew = ({route}) => {
|
||||||
var futureBoolean = true
|
var futureBoolean = true
|
||||||
|
|
||||||
for (var i = 0; i < route.params.data.length; i++) {
|
for (var i = 0; i < route.params.data.length; i++) {
|
||||||
const itemDate = new Date(route.params.data[i].date)
|
const itemDate = new Date(parseInt(String(route.params.data[i].new_date).split('-')[0]), parseInt(String(route.params.data[i].new_date).split('-')[1])-1, parseInt(String(route.params.data[i].new_date).split('-')[2]))
|
||||||
if (itemDate.getTime() == todayDate.getTime()) {
|
if (itemDate.getTime() == todayDate.getTime()) {
|
||||||
today.push(route.params.data[i])
|
today.push(route.params.data[i])
|
||||||
}
|
}
|
||||||
else if (itemDate.getTime() > todayDate.getTime() && itemDate.getTime() <= weekFutureDate.getTime()) {
|
else if (itemDate.getTime() > todayDate.getTime() && itemDate.getTime() <= weekFutureDate.getTime()) {
|
||||||
future.push(route.params.data[i])
|
future.push(route.params.data[i])
|
||||||
}
|
}
|
||||||
//else if (itemDate >= weekPastDate && itemDate < todayDate) {
|
else if (itemDate >= weekPastDate && itemDate < todayDate) {
|
||||||
else if (itemDate.getTime() < todayDate.getTime()) {
|
//else if (itemDate.getTime() < todayDate.getTime()) {
|
||||||
past.push(route.params.data[i])
|
past.push(route.params.data[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -196,16 +196,16 @@ export const whatsNew = ({route}) => {
|
||||||
|
|
||||||
export const NewItem = ({route}) => {
|
export const NewItem = ({route}) => {
|
||||||
const item = route.params.data
|
const item = route.params.data
|
||||||
const iconURI = item.image !== undefined?`data:image/png;charset=utf-8;base64,${item.image}`:''
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ScrollView style={{height: '100%', backgroundColor: 'white'}}>
|
<ScrollView style={{height: '100%', backgroundColor: 'white'}}>
|
||||||
<View style={{backgroundColor: '#e3e3e3'}}>
|
<View style={{backgroundColor: '#e3e3e3'}}>
|
||||||
<Image source={require('./assets/blair_logo.png')} style={{width: windowWidth, height: windowHeight*.6, alignSelf: 'center'}}/>
|
<Image source={{uri: item.image}} style={{width: windowWidth, height: windowHeight*.6, alignSelf: 'center'}}/>
|
||||||
</View>
|
</View>
|
||||||
<View style={{backgroundColor: 'white', marginTop: '-5%', padding: '5%', borderTopLeftRadius: 20, borderTopRightRadius: 20}}>
|
<View style={{backgroundColor: 'white', marginTop: '-5%', padding: '5%', borderTopLeftRadius: 20, borderTopRightRadius: 20}}>
|
||||||
<Text style={{fontSize: 14, fontWeight: '200', textAlign: 'center'}}>{item.date}</Text>
|
<Text style={{fontSize: 14, fontWeight: '200', textAlign: 'center'}}>{item.new_date}</Text>
|
||||||
<Text style={{fontSize: 20, textAlign: 'center', paddingBottom: '2%', fontWeight: 'bold'}}>{item.name}</Text>
|
<Text style={{fontSize: 20, textAlign: 'center', paddingBottom: '2%', fontWeight: 'bold'}}>{item.name}</Text>
|
||||||
|
<Text style={{fontSize: 14}}>{item.text}</Text>
|
||||||
</View>
|
</View>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
)
|
)
|
||||||
|
@ -247,9 +247,9 @@ const New = (props) => {
|
||||||
return (
|
return (
|
||||||
<View style={{paddingRight: '2%'}}>
|
<View style={{paddingRight: '2%'}}>
|
||||||
<TouchableOpacity onPress={()=>props.navigation.navigate('NewItem', {data:props.item.item})}>
|
<TouchableOpacity onPress={()=>props.navigation.navigate('NewItem', {data:props.item.item})}>
|
||||||
<ImageBackground style = {{width: windowWidth*.4, height: windowWidth*.55, backgroundColor:'#e3e3e3', borderRadius: 16, alignItems: 'baseline'}}source = {{iconURI}}>
|
<ImageBackground style = {{width: windowWidth*.4, height: windowWidth*.55, backgroundColor:'#e3e3e3', borderRadius: 16, alignItems: 'baseline'}}source = {{uri: item.item.image}}>
|
||||||
<View style={{padding: '5%', flex: 1, justifyContent: 'flex-end', width: windowWidth*.4, height: windowWidth*.2, shadowColor: '#323232', shadowOffset: {width: 0, height: 0}, shadowOpacity: 0.5}}>
|
<View style={{padding: '5%', flex: 1, justifyContent: 'flex-end', width: windowWidth*.4, height: windowWidth*.2, shadowColor: '#323232', shadowOffset: {width: 0, height: 0}, shadowOpacity: 0.5}}>
|
||||||
<Text style={{fontSize: 12, color: 'white', fontWeight: '700'}}>{item.item.date}</Text>
|
<Text style={{fontSize: 12, color: 'white', fontWeight: '500'}}>{item.item.new_date}</Text>
|
||||||
<Text style={{fontSize: 16, color: 'white', fontWeight: 'bold'}}>{text}</Text>
|
<Text style={{fontSize: 16, color: 'white', fontWeight: 'bold'}}>{text}</Text>
|
||||||
</View>
|
</View>
|
||||||
</ImageBackground>
|
</ImageBackground>
|
||||||
|
@ -380,7 +380,6 @@ function HomeStack() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function HomeScreen (props) {
|
function HomeScreen (props) {
|
||||||
console.log(props.studentData)
|
|
||||||
var showStudent = true
|
var showStudent = true
|
||||||
if (props.studentData.length==0) {showStudent = false}
|
if (props.studentData.length==0) {showStudent = false}
|
||||||
const iconURI = null
|
const iconURI = null
|
||||||
|
@ -393,16 +392,15 @@ function HomeScreen (props) {
|
||||||
var todayNewBoolean = true
|
var todayNewBoolean = true
|
||||||
var showLunch = false
|
var showLunch = false
|
||||||
for (var i = 0; i < props.annData.length; i++) {
|
for (var i = 0; i < props.annData.length; i++) {
|
||||||
const itemDate = new Date(props.annData[i].date)
|
const itemDate = new Date(parseInt(String(props.annData[i].date).split('-')[0]), parseInt(String(props.annData[i].date).split('-')[1])-1, parseInt(String(props.annData[i].date).split('-')[2]))
|
||||||
if (itemDate == todayDate) todayAnn.push(props.annData[i])
|
if (itemDate.getTime() == todayDate.getTime()) todayAnn.push(props.annData[i])
|
||||||
else todayAnn.push(props.annData[i])
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < props.data.length; i++) {
|
for (var i = 0; i < props.data.length; i++) {
|
||||||
const itemDate = new Date(props.data[i].date)
|
const itemDate = new Date(parseInt(String(props.data[i].new_date).split('-')[0]), parseInt(String(props.data[i].new_date).split('-')[1])-1, parseInt(String(props.data[i].new_date).split('-')[2]))
|
||||||
if (itemDate == todayDate) todayNew.push(props.data[i])
|
if (itemDate.getTime() == todayDate.getTime()) todayNew.push(props.data[i])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (todayAnn.length === 0) todayAnnBoolean = false
|
if (todayAnn.length === 0) todayAnnBoolean = false
|
||||||
if (todayNew.length ===0) todayNewBoolean = false
|
if (todayNew.length ===0) todayNewBoolean = false
|
||||||
todayAnn = todayAnn.slice(0, 4)
|
todayAnn = todayAnn.slice(0, 4)
|
||||||
|
@ -467,7 +465,7 @@ function HomeScreen (props) {
|
||||||
<Text style={[liststyles.homeTitle, {paddingBottom: '5%'}]}>{I18n.t('home.SOTW')}</Text>
|
<Text style={[liststyles.homeTitle, {paddingBottom: '5%'}]}>{I18n.t('home.SOTW')}</Text>
|
||||||
<View style={{display: 'flex', flexDirection: 'row'}}>
|
<View style={{display: 'flex', flexDirection: 'row'}}>
|
||||||
<View style={{backgroundColor: 'white', width: windowWidth*.30, height: windowWidth*.30, shadowColor: 'red', shadowOffset: {width: 0, height: 2}, shadowOpacity: 0.5, shadowRadius: 7, borderRadius: (windowWidth*.30)/2}}>
|
<View style={{backgroundColor: 'white', width: windowWidth*.30, height: windowWidth*.30, shadowColor: 'red', shadowOffset: {width: 0, height: 2}, shadowOpacity: 0.5, shadowRadius: 7, borderRadius: (windowWidth*.30)/2}}>
|
||||||
<Image source = {{iconURI}} style = {{height:'100%', width: '100%', borderTopRightRadius: 8, borderTopLeftRadius:8}}/>
|
<Image source = {{uri: props.studentData[props.studentData.length-1].image}} style = {{height:'100%', width: '100%', borderTopRightRadius: 8, borderTopLeftRadius:8}}/>
|
||||||
</View>
|
</View>
|
||||||
<View style ={{width: windowWidth*.60, display: 'flex', paddingLeft: '5%', paddingHorizontal: '2%', alignItems: 'center', justifyContent: 'space-around'}}>
|
<View style ={{width: windowWidth*.60, display: 'flex', paddingLeft: '5%', paddingHorizontal: '2%', alignItems: 'center', justifyContent: 'space-around'}}>
|
||||||
<Text style={{fontSize: 18, textAlign: 'center'}}>{props.studentData[props.studentData.length-1].name}, <Text style={{fontWeight: '200', textAlign: 'center'}}>Grade {props.studentData[props.studentData.length-1].grade}</Text></Text>
|
<Text style={{fontSize: 18, textAlign: 'center'}}>{props.studentData[props.studentData.length-1].name}, <Text style={{fontWeight: '200', textAlign: 'center'}}>Grade {props.studentData[props.studentData.length-1].grade}</Text></Text>
|
||||||
|
@ -560,10 +558,11 @@ class Home extends React.Component {
|
||||||
return response.text();
|
return response.text();
|
||||||
})
|
})
|
||||||
.then((json) => {
|
.then((json) => {
|
||||||
const data = JSON.parse(json).data
|
const data = JSON.parse(json)
|
||||||
data.sort((a,b)=>a.id-b.id)
|
data.sort((a,b)=>a.id-b.id)
|
||||||
data.sort((a,b)=>new Date(b.date).getTime()-new Date(a.date).getTime())
|
data.sort((a,b)=>new Date(b.date).getTime()-new Date(a.date).getTime())
|
||||||
this.setState({data: data});
|
this.setState({data: data});
|
||||||
|
console.log(this.state.data)
|
||||||
})
|
})
|
||||||
.catch((error) => console.error(error))
|
.catch((error) => console.error(error))
|
||||||
}
|
}
|
||||||
|
|
55
app/Staff.js
55
app/Staff.js
|
@ -33,13 +33,13 @@ import I18n from './i18n';
|
||||||
|
|
||||||
const Stack = createStackNavigator();
|
const Stack = createStackNavigator();
|
||||||
|
|
||||||
export const StaffInfo = ({route}) => {
|
/*export const StaffInfo = ({route}) => {
|
||||||
const item = route.params;
|
const item = route.params;
|
||||||
|
|
||||||
console.log(item);
|
console.log(item);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
/*<View style = {{padding: 10, backgroundColor: 'white', height: '100%'}}>
|
<View style = {{padding: 10, backgroundColor: 'white', height: '100%'}}>
|
||||||
{item.emails.map(email =>
|
{item.emails.map(email =>
|
||||||
<View style ={[styles.infoContainer, {flexDirection: 'row', alignItems: 'center'}]}>
|
<View style ={[styles.infoContainer, {flexDirection: 'row', alignItems: 'center'}]}>
|
||||||
<View style={{display: 'flex', justifyContent: 'center'}}>
|
<View style={{display: 'flex', justifyContent: 'center'}}>
|
||||||
|
@ -50,10 +50,10 @@ export const StaffInfo = ({route}) => {
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
)}
|
)}
|
||||||
</View>*/
|
</View>
|
||||||
<ScrollView style={{paddingTop:'5%',paddingHorizontal:'10%', backgroundColor: 'white', height: '100%'}}>
|
<ScrollView style={{paddingTop:'5%',paddingHorizontal:'10%', backgroundColor: 'white', height: '100%'}}>
|
||||||
<View style={{backgroundColor: 'white',borderRadius: 150, height: 300, width: 300, alignSelf: 'center', shadowColor: 'red', shadowOffset: {width: 0, height: 2}, shadowOpacity: 0.5, shadowRadius: 7}}>
|
<View style={{backgroundColor: 'white',borderRadius: 150, height: 300, width: 300, alignSelf: 'center', shadowColor: 'red', shadowOffset: {width: 0, height: 2}, shadowOpacity: 0.5, shadowRadius: 7}}>
|
||||||
<Image style={{resizeMode: 'cover',borderRadius: 150, height: 300, width: 300, alignSelf: 'center'}} source = {{/* CHANGE */}} />
|
<Image style={{resizeMode: 'cover',borderRadius: 150, height: 300, width: 300, alignSelf: 'center'}} source = {{/* CHANGE }} />
|
||||||
</View>
|
</View>
|
||||||
<Text style={{fontSize:28,marginTop:'5%',textAlign:'center'}}>{item.name}</Text>
|
<Text style={{fontSize:28,marginTop:'5%',textAlign:'center'}}>{item.name}</Text>
|
||||||
<Text style={{fontSize:20,textAlign:'center', fontWeight: '200'}}>{item.position || ""}</Text>
|
<Text style={{fontSize:20,textAlign:'center', fontWeight: '200'}}>{item.position || ""}</Text>
|
||||||
|
@ -91,21 +91,32 @@ export const StaffInfo = ({route}) => {
|
||||||
}
|
}
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
)
|
)
|
||||||
}
|
}*/
|
||||||
function StaffElement (props) {
|
function StaffElement (props) {
|
||||||
const item = props.item;
|
const item = props.item;
|
||||||
|
const [expand, setExpand] = useState(false);
|
||||||
|
|
||||||
return(
|
return(
|
||||||
<View>
|
<View>
|
||||||
<TouchableOpacity style={[styles.listItem]} onPress={()=>props.navigation.navigate('StaffInfo', {data:props.data,name:props.name,emails:item.emails})} activeOpacity={0.8}>
|
<TouchableOpacity style={styles.listItem} onPress={()=>setExpand(!expand)}>
|
||||||
<View style = {[styles.container2, {justifyContent: 'space-between'}]}>
|
<View style={styles.container2}>
|
||||||
<View style={{display: 'flex', flexDirection: 'row'}}>
|
<Ionicons name="ios-nutrition-outline" size={36} color={'#323232'} style={{marginRight: 15}} />
|
||||||
<Ionicons name = "ios-nutrition-outline" size={36} color={'#323232'} style={{marginRight: 15}} />
|
<View style = {styles.accordian}>
|
||||||
<Text style={[styles.title, {alignSelf:'center'}]}>{props.item.name}</Text>
|
<Text style={styles.title}>{item.name}</Text>
|
||||||
</View>
|
{expand?<LinearGradient start={{x: 0, y: 0.25}} end={{x: .5, y: 1}} colors={['red', '#FF7373']} style={{borderRadius: 24, alignSelf: 'center'}}><Image source = {require('./assets/collapse.png')} style={{tintColor: 'white'}}/></LinearGradient>:<Image source = {require('./assets/expand.png')} style={{tintColor: '#b2b2b2', alignSelf: 'center'}}/>}
|
||||||
<Image source = {require('./assets/forward.png')} style={{tintColor: '#b2b2b2'}}/>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
</TouchableOpacity>
|
{expand?
|
||||||
</View>
|
<View style={{marginLeft: 50}}>
|
||||||
|
<Text style={styles.accordianHeader}>Email</Text>
|
||||||
|
<Text style={styles.accordianText}>{item.email}</Text>
|
||||||
|
<Text style={styles.accordianHeader}>{'\n'}Phone Number</Text>
|
||||||
|
<Text style={[styles.accordianText, {paddingBottom: '4%'}]}>{item.phone}</Text>
|
||||||
|
<Text syle={styles.accordianHeader}>{'\n'}Position</Text>
|
||||||
|
<Text style={[styles.accordianText, {paddingBottom: '4%'}]}>{item.position}</Text>
|
||||||
|
</View>:<></>}
|
||||||
|
</TouchableOpacity>
|
||||||
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,18 +143,6 @@ function Staff () {
|
||||||
headerTitleAlign: 'center'
|
headerTitleAlign: 'center'
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
<Stack.Screen
|
|
||||||
name = "StaffInfo"
|
|
||||||
component = {StaffInfo}
|
|
||||||
options={({route})=>({
|
|
||||||
title:route.params.name,
|
|
||||||
headerTitleStyle:[morestyles.headerTitle,{alignSelf:'center'}],
|
|
||||||
headerBackground: ()=>background,
|
|
||||||
headerBackTitleVisible:false,
|
|
||||||
headerTintColor: 'black',
|
|
||||||
headerTitleAlign: 'center',
|
|
||||||
})}
|
|
||||||
/>
|
|
||||||
</Stack.Navigator>
|
</Stack.Navigator>
|
||||||
</NavigationContainer>
|
</NavigationContainer>
|
||||||
)
|
)
|
||||||
|
|
|
@ -75,15 +75,16 @@ class StudentWeek extends React.Component {
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
console.log(this.state.data[this.state.data.length-1].image)
|
//const iconURI = this.state.data[this.state.data.length-1].image !== undefined?`data:image/png;charset=utf-8;base64,${this.state.data[this.state.data.length-1].image}`:'';
|
||||||
const iconURI = this.state.data[this.state.data.length-1].image !== undefined?`data:image/png;charset=utf-8;base64,${this.state.data[this.state.data.length-1].image}`:'';
|
|
||||||
const hobbyText = (<Text style = {{marginLeft: 50, paddingHorizontal: '2%', paddingBottom: '2%'}}>{this.state.data[this.state.data.length-1].hobbies}</Text>)
|
const hobbyText = (<Text style = {{marginLeft: 50, paddingHorizontal: '2%', paddingBottom: '2%'}}>{this.state.data[this.state.data.length-1].hobbies}</Text>)
|
||||||
const achievementText = (<Text style = {{marginLeft: 50, paddingHorizontal: '2%', paddingBottom: '2%'}}>{this.state.data[this.state.data.length-1].achievements}</Text>)
|
const achievementText = (<Text style = {{marginLeft: 50, paddingHorizontal: '2%', paddingBottom: '2%'}}>{this.state.data[this.state.data.length-1].achievements}</Text>)
|
||||||
const messageText = (<Text style = {{marginLeft: 50, paddingHorizontal: '2%', paddingBottom: '2%'}}>{this.state.data[this.state.data.length-1].messages}</Text>)
|
const messageText = (<Text style = {{marginLeft: 50, paddingHorizontal: '2%', paddingBottom: '2%'}}>{this.state.data[this.state.data.length-1].messages}</Text>)
|
||||||
return (
|
return (
|
||||||
<ScrollView style={{paddingTop:'5%',paddingHorizontal:'10%', backgroundColor: 'white', height: '100%'}}>
|
<ScrollView style={{paddingTop:'5%',paddingHorizontal:'10%', backgroundColor: 'white', height: '100%'}}>
|
||||||
|
<Image source = {{uri: "https://reactnative.dev/img/tiny_logo.png"}} />
|
||||||
<View style={{backgroundColor: 'white',borderRadius: 150, height: 300, width: 300, alignSelf: 'center', shadowColor: 'red', shadowOffset: {width: 0, height: 2}, shadowOpacity: 0.5, shadowRadius: 7}}>
|
<View style={{backgroundColor: 'white',borderRadius: 150, height: 300, width: 300, alignSelf: 'center', shadowColor: 'red', shadowOffset: {width: 0, height: 2}, shadowOpacity: 0.5, shadowRadius: 7}}>
|
||||||
<Image style={{resizeMode: 'cover',borderRadius: 150, height: 300, width: 300, alignSelf: 'center'}} source = {{iconURI}} />
|
<Image style={{resizeMode: 'cover',borderRadius: 150, height: 300, width: 300, alignSelf: 'center'}} source = {{uri: this.state.data[this.state.data.length-1].image}} />
|
||||||
|
|
||||||
</View>
|
</View>
|
||||||
<Text style={{fontSize:28,marginTop:'5%',textAlign:'center'}}>{this.state.data[this.state.data.length-1].name}</Text>
|
<Text style={{fontSize:28,marginTop:'5%',textAlign:'center'}}>{this.state.data[this.state.data.length-1].name}</Text>
|
||||||
<Text style={{fontSize:20,textAlign:'center', fontWeight: '200'}}>{I18n.t('student.Grade')} {this.state.data[this.state.data.length-1].grade}</Text>
|
<Text style={{fontSize:20,textAlign:'center', fontWeight: '200'}}>{I18n.t('student.Grade')} {this.state.data[this.state.data.length-1].grade}</Text>
|
||||||
|
|
|
@ -23,8 +23,7 @@ CREATE TABLE teachers (
|
||||||
name VARCHAR NOT NULL,
|
name VARCHAR NOT NULL,
|
||||||
email VARCHAR NOT NULL,
|
email VARCHAR NOT NULL,
|
||||||
phone VARCHAR NOT NULL,
|
phone VARCHAR NOT NULL,
|
||||||
position VARCHAR NOT NULL,
|
position VARCHAR NOT NULL
|
||||||
image VARCHAR
|
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE announcements (
|
CREATE TABLE announcements (
|
||||||
|
@ -75,6 +74,7 @@ CREATE TABLE new (
|
||||||
lang VARCHAR,
|
lang VARCHAR,
|
||||||
image VARCHAR,
|
image VARCHAR,
|
||||||
name VARCHAR NOT NULL,
|
name VARCHAR NOT NULL,
|
||||||
|
text VARCHAR NOT NULL,
|
||||||
new_date DATE
|
new_date DATE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -164,7 +164,6 @@ api_route! {
|
||||||
email: (Text, String, String),
|
email: (Text, String, String),
|
||||||
phone: (Text, String, String),
|
phone: (Text, String, String),
|
||||||
position: (Text, String, String),
|
position: (Text, String, String),
|
||||||
image: (Text, String, Image),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -221,6 +220,7 @@ api_route! {
|
||||||
new {
|
new {
|
||||||
image: (Text, String, Image),
|
image: (Text, String, Image),
|
||||||
name: (Text, String, String),
|
name: (Text, String, String),
|
||||||
|
text: (Text, String, String),
|
||||||
new_date: (Date, NaiveDate, DateForm),
|
new_date: (Date, NaiveDate, DateForm),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
<small>ID: {{id}} | LANG: {{lang}}</small>
|
<small>ID: {{id}} | LANG: {{lang}}</small>
|
||||||
<h3 class="my-2" style="font-size: 18px;">{{name}}</h3>
|
<h3 class="my-2" style="font-size: 18px;">{{name}}</h3>
|
||||||
<p class="mb-2">{{image}}</p>
|
<p class="mb-2">{{image}}</p>
|
||||||
|
<p class="mb-2">{{text}}</p>
|
||||||
<p class="mb-2">{{new_date}}</p>
|
<p class="mb-2">{{new_date}}</p>
|
||||||
<form action="new/del" method="post">
|
<form action="new/del" method="post">
|
||||||
<div class="d-flex mt-3">
|
<div class="d-flex mt-3">
|
||||||
|
@ -71,13 +72,22 @@
|
||||||
|
|
||||||
<div class="d-flex mt-3">
|
<div class="d-flex mt-3">
|
||||||
<div style="flex: 1; justify-content: center;">
|
<div style="flex: 1; justify-content: center;">
|
||||||
<p class="my-0">Information</p>
|
<p class="my-0">Title</p>
|
||||||
</div>
|
</div>
|
||||||
<div style="flex: 1; align: center;">
|
<div style="flex: 1; align: center;">
|
||||||
<input type="text" class="form-control form-control-sm" id="name" name="name" required>
|
<input type="text" class="form-control form-control-sm" id="name" name="name" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex mt-3">
|
||||||
|
<div style="flex: 1; justify-content: center;">
|
||||||
|
<p class="my-0">Information</p>
|
||||||
|
</div>
|
||||||
|
<div style="flex: 1; align: center;">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="text" name="text" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="d-flex mt-3">
|
<div class="d-flex mt-3">
|
||||||
<div style="flex: 1; justify-content: center;">
|
<div style="flex: 1; justify-content: center;">
|
||||||
<p class="my-0">Date of What's New Item</p>
|
<p class="my-0">Date of What's New Item</p>
|
||||||
|
@ -124,13 +134,22 @@
|
||||||
|
|
||||||
<div class="d-flex mt-3">
|
<div class="d-flex mt-3">
|
||||||
<div style="flex: 1; justify-content: center;">
|
<div style="flex: 1; justify-content: center;">
|
||||||
<p class="my-0">Information</p>
|
<p class="my-0">Title</p>
|
||||||
</div>
|
</div>
|
||||||
<div style="flex: 1; align: center;">
|
<div style="flex: 1; align: center;">
|
||||||
<input type="text" class="form-control form-control-sm" id="name" name="name" required>
|
<input type="text" class="form-control form-control-sm" id="name" name="name" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex mt-3">
|
||||||
|
<div style="flex: 1; justify-content: center;">
|
||||||
|
<p class="my-0">Information</p>
|
||||||
|
</div>
|
||||||
|
<div style="flex: 1; align: center;">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="text" name="text" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="d-flex mt-3">
|
<div class="d-flex mt-3">
|
||||||
<div style="flex: 1; justify-content: center;">
|
<div style="flex: 1; justify-content: center;">
|
||||||
<p class="my-0">Date of What's New Item</p>
|
<p class="my-0">Date of What's New Item</p>
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
<p class="mb-2">{{email}}</p>
|
<p class="mb-2">{{email}}</p>
|
||||||
<p class="mb-2">{{phone}}</p>
|
<p class="mb-2">{{phone}}</p>
|
||||||
<p class="mb-2">{{position}}</p>
|
<p class="mb-2">{{position}}</p>
|
||||||
<p class="mb-2">{{image}}</p>
|
|
||||||
<form action="teachers/del" method="post">
|
<form action="teachers/del" method="post">
|
||||||
<div class="d-flex mt-3">
|
<div class="d-flex mt-3">
|
||||||
<input type="number" class="form-control form-control-sm" id="id" name="id" value = {{id}} style="display: none">
|
<input type="number" class="form-control form-control-sm" id="id" name="id" value = {{id}} style="display: none">
|
||||||
|
@ -98,15 +97,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="d-flex mt-3">
|
|
||||||
<div style="flex: 1; justify-content: center;">
|
|
||||||
<p class="my-0">Staff Picture</p>
|
|
||||||
</div>
|
|
||||||
<div style="flex: 1; align: center;">
|
|
||||||
<input type="text" class="form-control form-control-sm" name="image" id="image" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<input type="submit" value="Submit">
|
<input type="submit" value="Submit">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -169,15 +159,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="d-flex mt-3">
|
|
||||||
<div style="flex: 1; justify-content: center;">
|
|
||||||
<p class="my-0">Staff Picture</p>
|
|
||||||
</div>
|
|
||||||
<div style="flex: 1; align: center;">
|
|
||||||
<input type="text" class="form-control form-control-sm" name="image" id="image" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<input type="submit", value="Submit">
|
<input type="submit", value="Submit">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user