Skip to content
Snippets Groups Projects
Commit 9a61af13 authored by Sandro Weber's avatar Sandro Weber
Browse files

some layouting, removed mqtt test code

parent 0a0a1eb1
No related branches found
No related tags found
No related merge requests found
...@@ -3,7 +3,6 @@ import React from 'react'; ...@@ -3,7 +3,6 @@ import React from 'react';
import NrpHeader from '../nrp-header/nrp-header.js'; import NrpHeader from '../nrp-header/nrp-header.js';
import './entry-page.css'; import './entry-page.css';
import PlaceholderImage from '../../assets/images/Artificial_Intelligence_2.jpg';
import NrpCoreDashboard from '../nrp-core-dashboard/nrp-core-dashboard.js'; import NrpCoreDashboard from '../nrp-core-dashboard/nrp-core-dashboard.js';
import TransceiverFunctionEditor from '../tf-editor/tf-editor'; import TransceiverFunctionEditor from '../tf-editor/tf-editor';
......
...@@ -20,14 +20,6 @@ export default class NrpCoreDashboard extends React.Component { ...@@ -20,14 +20,6 @@ export default class NrpCoreDashboard extends React.Component {
console.error(err); console.error(err);
} }
}); });
// As a test to make sure MqttClientService can subscribe to multiple topics (and the same topic) at once
let token1 = MqttClientService.instance.subscribeToTopic('test_topic', (param1) => (console.info(param1)));
let token2 = MqttClientService.instance.subscribeToTopic('test_topic', (param1) => (console.info(param1)));
let token3 = MqttClientService.instance.subscribeToTopic('test_topic', (param1) => (console.info(param1)));
let token4 = MqttClientService.instance.subscribeToTopic('test_topic_proto', (param1) => (console.info(param1)));
// Test unsubscribe
MqttClientService.instance.unsubscribe(token3);
} }
render() { render() {
......
.tf-editor-container {
margin: 10px;
}
.tf-editor-header {
display: flex;
flex-direction: row;
align-items: center;
}
.tf-editor-icon {
width: 40px;
height: 40px;
background-color: yellow;
text-align: center;
border: 1px solid black;
margin: 5px;
font-size: 1.5em;
}
.tf-editor-file-ui {
padding: 10px;
display: flex;
flex-direction: row;
align-items: center;
}
.tf-editor-file-ui-item {
margin: 5px;
}
.tf-editor-ui-save {
display: flex;
flex-direction: row;
align-items: center;
}
.tf-editor-text-saved {
color: green;
}
.tf-editor-text-unsaved {
color: orange;
}
\ No newline at end of file
...@@ -5,6 +5,8 @@ import { Modal, Button } from 'react-bootstrap'; ...@@ -5,6 +5,8 @@ import { Modal, Button } from 'react-bootstrap';
import ExperimentStorageService from '../../services/experiments/files/experiment-storage-service'; import ExperimentStorageService from '../../services/experiments/files/experiment-storage-service';
import './tf-editor.css';
export default class TransceiverFunctionEditor extends React.Component { export default class TransceiverFunctionEditor extends React.Component {
constructor(props) { constructor(props) {
...@@ -14,6 +16,7 @@ export default class TransceiverFunctionEditor extends React.Component { ...@@ -14,6 +16,7 @@ export default class TransceiverFunctionEditor extends React.Component {
this.state = { this.state = {
selectedFilename: this.testListTfFiles[0], selectedFilename: this.testListTfFiles[0],
code: '', code: '',
textChanges: '',
showDialogUnsavedChanges: false showDialogUnsavedChanges: false
}; };
} }
...@@ -58,6 +61,9 @@ export default class TransceiverFunctionEditor extends React.Component { ...@@ -58,6 +61,9 @@ export default class TransceiverFunctionEditor extends React.Component {
this.setState({code: change}); this.setState({code: change});
this.hasUnsavedChanges = !this.fileLoading; this.hasUnsavedChanges = !this.fileLoading;
this.fileLoading = false; this.fileLoading = false;
if (this.hasUnsavedChanges) {
this.setState({textChanges: 'unsaved changes'});
}
console.info(['this.hasUnsavedChanges', this.hasUnsavedChanges]); console.info(['this.hasUnsavedChanges', this.hasUnsavedChanges]);
} }
...@@ -67,6 +73,10 @@ export default class TransceiverFunctionEditor extends React.Component { ...@@ -67,6 +73,10 @@ export default class TransceiverFunctionEditor extends React.Component {
this.props.experimentId, this.state.selectedFilename, this.state.code); this.props.experimentId, this.state.selectedFilename, this.state.code);
if (response.ok) { if (response.ok) {
this.hasUnsavedChanges = false; this.hasUnsavedChanges = false;
this.setState({textChanges: 'saved'});
setTimeout(() => {
this.setState({textChanges: ''});
}, 3000);
return true; return true;
} }
else { else {
...@@ -78,16 +88,29 @@ export default class TransceiverFunctionEditor extends React.Component { ...@@ -78,16 +88,29 @@ export default class TransceiverFunctionEditor extends React.Component {
render() { render() {
return ( return (
<div> <div className='tf-editor-container'>
<select <div className='tf-editor-header'>
name="selectTFFile" <div className='tf-editor-icon'>TF</div>
value={this.state.selectedFilename} <div className='tf-editor-file-ui'>
onChange={(event) => this.onChangeSelectedFile(event)}> <select
{this.testListTfFiles.map(file => { className='tf-editor-file-ui-item'
return (<option key={file} value={file}>{file}</option>); name="selectTFFile"
})} value={this.state.selectedFilename}
</select> onChange={(event) => this.onChangeSelectedFile(event)}>
<button onClick={() => this.saveTF()}>Save</button> {this.testListTfFiles.map(file => {
return (<option key={file} value={file}>{file}</option>);
})}
</select>
<button className='tf-editor-file-ui-item' onClick={() => this.saveTF()}>Save</button>
<div className={this.hasUnsavedChanges ?
'tf-editor-text-unsaved' : 'tf-editor-text-saved'}>
{this.state.textChanges}
</div>
{/*<div className='tf-editor-ui-save'>
</div>*/}
</div>
</div>
<CodeMirror <CodeMirror
value={this.state.code} value={this.state.code}
maxHeight="100%" maxHeight="100%"
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment