This commit is contained in:
Luca Jäntsch
2019-05-27 16:35:56 +02:00
parent f7a8f28c4c
commit c4c36b2787
8 changed files with 203 additions and 17 deletions

View File

@@ -3,6 +3,7 @@ import React from 'react';
import {Classes} from './class/class_loader';
import {Students_loader} from './class/students_loader';
import { Student } from './ui/student';
import { User } from './static/user';
export class Main extends React.Component{
constructor(props){
@@ -11,15 +12,19 @@ export class Main extends React.Component{
classes :['1'],
selected:"-",
students:[],
stud_html:[]
stud_html:[],
choose:1
}
this.selCh = this.selCh.bind(this);
this.changeChoosen = this.changeChoosen.bind(this);
this.choose = this.choose.bind(this);
var me = this;
Classes.load_Classes((data)=>{
me.setState({classes:data.classes});
});
}
selCh(e){
console.log(e.target.value);
@@ -28,7 +33,9 @@ export class Main extends React.Component{
if(v!=='-'){
Students_loader.loadStudents(e.target.value,(data)=>{
console.log(data)
User.user_arr = [];
me.setState({students:[],stud_html:[]});
var ht = [];
data.user.map((cl,i)=>
ht.push(<Student username={cl} cl={this.state.selected} i={i}></Student>)
@@ -37,19 +44,47 @@ export class Main extends React.Component{
me.setState({students:data.user,selected:v,stud_html:ht})
})
}else{
User.user_arr = [];
me.setState({students:[],selected:v,stud_html:[]})
}
}
changeChoosen(e){
this.setState({choose:e.target.value})
}
choose(){
var me = this;
var c = [];
for(var i = 0;i<this.state.choose;i++){
var y = -1;
var nc = false;
y = Math.floor(Math.random()*User.user_arr.length);
if(c[0]==y){
y = Math.floor(Math.random()*User.user_arr.length);
}
c.push(y);
User.user_arr[y].disappear();
}
console.log(c)
}
render(){
return (
<div>
<div className="nav">
<select onChange={this.selCh} value={this.state.selected}>
<option value="-">-</option>
{this.state.classes.map((cl,i)=>
<option value={cl.toLowerCase()}>{cl.toUpperCase()}</option>
)}
</select>
<div>
<select onChange={this.selCh} value={this.state.selected}>
<option value="-">-</option>
{this.state.classes.map((cl,i)=>
<option value={cl.toLowerCase()}>{cl.toUpperCase()}</option>
)}
</select>
</div>
<div>
<input type="number" min="1" value={this.state.choose} onChange={this.changeChoosen}/>
</div>
<div>
<button onClick={this.choose}>Auswählen</button>
</div>
</div>
<div className="studentList">
{this.state.stud_html}

3
src/jsx/static/user.jsx Normal file
View File

@@ -0,0 +1,3 @@
export class User{
static user_arr = [];
}

View File

@@ -1,5 +1,7 @@
import React from 'react';
import {User} from './../static/user';
export class Student extends React.Component{
constructor(props){
super(props);
@@ -8,10 +10,14 @@ export class Student extends React.Component{
name:props.username,
cl:props.cl,
img_url:'/data/class/'+props.cl+'/'+props.username+'.svg',
num:props.i
num:props.i,
dis:""
}
this.onErr = this.onErr.bind(this);
this.disappear = this.disappear.bind(this);
User.user_arr.push(this);
}
camelize(str) {
var x = str.split('_');
@@ -24,8 +30,11 @@ export class Student extends React.Component{
var url = '/data/class/student.svg';
this.setState({img_url:url});
}
disappear(){
this.setState({dis:"disappear"});
}
render(){
var c = "user chosen_"+this.state.num;
var c = "user chosen_"+this.state.num+' '+this.state.dis;
return (
<div className={c}>
<div className="user_img"><img src={this.state.img_url} onError={this.onErr} alt=""></img></div>