diff --git a/webclient/src/App.js b/webclient/src/App.js index 6e88efc..eb6d87d 100644 --- a/webclient/src/App.js +++ b/webclient/src/App.js @@ -26,7 +26,7 @@ class App extends Component { let token = this.storage ? localStorage.getItem('token') : null; this.state = { - login: {token: token, error: null, username: '', password: '', confirmLogout: false}, + login: {token: token, error: false, username: '', password: '', confirmLogout: false}, user: null, toolData: null, toolStatus: null, @@ -37,6 +37,13 @@ class App extends Component { }; } + log = (string) => { + if (this.state.connected) { + const username = this.state.login.username.replace('.', '') || this.state.user.username || 'unknown'; + this.socket.emit('log', `${username} - Web client: ${string}`); + } + } + noNetwork = () => { this.setState({ network: false }); this.socket.disconnect(); @@ -96,6 +103,7 @@ class App extends Component { requestInterlock = change => { this.socket.emit('requestInterlock', { + username: this.state.user.username, token: this.state.login.token, change: change, }); @@ -120,12 +128,16 @@ class App extends Component { .then(response => { if (response.ok) { response.json().then(data => { + this.log('Good login'); this.setState({ login: {...login, ...data, error: false} }); if (this.storage) localStorage.setItem('token', data.token); this.getUser(); }); } else { - this.setState({ login: {...login, error: true} }); + response.json().then(data => { + this.log('Bad login'); + this.setState({ login: {...login, error: data.error} }); + }); } }) .catch(error => { @@ -149,6 +161,7 @@ class App extends Component { } handleLogout = () => { + this.log('Logout'); this.setState({ login: {...this.state.login, token: null, confirmLogout: false} }); @@ -173,14 +186,16 @@ class App extends Component { submitCourses = () => { const toolData = this.state.toolData; const selectedCourses = this.state.selectedCourses; + const courseList = toolData.courses.map(x => x.slug).filter((x, i) => selectedCourses[i]); fetch(AUTH_SERVER_URL + '/select-courses/', { method: 'PUT', headers: {'Authorization': 'Token ' + this.state.login.token, 'Content-Type': 'application/json; charset=utf-8'}, - body: JSON.stringify({'courses': toolData.courses.map(x => x.slug).filter((x, i) => selectedCourses[i]) }) + body: JSON.stringify({ 'courses': courseList }) }) .then(response => { if (response.ok) { + this.log('Selected courses ' + courseList.join(', ')); this.getUser(); } else { this.noNetwork(); @@ -295,7 +310,7 @@ class App extends Component { {login.error && }