feat(config): new settings for application (port, cpu usage eth.)

This commit is contained in:
semantic-release-bot 2018-02-05 03:57:40 +03:00
parent c800124f9a
commit a87a59a828
2 changed files with 77 additions and 7 deletions

View File

@ -5,11 +5,13 @@ import {Header} from './index-page'
import Toggle from 'material-ui/Toggle';
import RaisedButton from 'material-ui/RaisedButton';
import TextField from 'material-ui/TextField'
import Slider from 'material-ui/Slider'
export default class AdminPage extends Page {
constructor(props) {
super(props)
this.setTitle('-=-= Some page =-=-');
this.setTitle('Rats settings');
this.options = {}
}
componentDidMount() {
@ -40,13 +42,74 @@ export default class AdminPage extends Page {
style={{marginTop: '10px'}}
label="Enabled network scanning"
toggled={this.options.indexer}
thumbSwitchedStyle={{backgroundColor: 'red'}}
trackSwitchedStyle={{backgroundColor: '#ff9d9d'}}
thumbSwitchedStyle={{backgroundColor: 'red'}}
trackSwitchedStyle={{backgroundColor: '#ff9d9d'}}
onToggle={(e, checked) => {
this.options.indexer = checked
this.saveSettings()
this.forceUpdate()
}}
/>
<div className='row inline w100p'>
<div style={{flex: 1}}>Scanning port</div>
<TextField
style={{width: 65}}
hintText="Port"
errorText={this.options.spiderPort > 0 ? undefined : "This field is required"}
value={this.options.spiderPort}
onChange={(e, value) => {
if(!value)
value = 0
if(value > 65535)
value = 65535
this.options.spiderPort = parseInt(value)
this.forceUpdate()
}}
/>
</div>
<div className='row inline w100p'>
<div style={{flex: 1}}>Trackers responce port</div>
<TextField
style={{width: 65}}
hintText="Port"
errorText={this.options.udpTrackersPort > 0 ? undefined : "This field is required"}
value={this.options.udpTrackersPort}
onChange={(e, value) => {
if(!value)
value = 0
if(value > 65535)
value = 65535
this.options.udpTrackersPort = parseInt(value)
this.forceUpdate()
}}
/>
</div>
<div className='row inline w100p'>
<div style={{flex: 1}}>CPU usage limitation</div>
<Slider
min={0}
max={100}
step={1}
style={{width: 300}}
value={this.options.spider && this.options.spider.cpuLimit === 0 ? 100 : this.options.spider && this.options.spider.cpuLimit}
onChange={(event, value) => {
if(value === 100)
value = 0
this.options.spider.cpuLimit = value
this.forceUpdate()
}}
/>
</div>
<div className='row center pad0-75'>
<RaisedButton label="Save Sttings" primary={true} onClick={() => {
this.saveSettings()
}} />
</div>
<Footer />
</div>
</div>

View File

@ -546,10 +546,17 @@ setInterval(() => {
if(typeof options.indexer !== 'undefined')
{
if(options.indexer)
spider.listen(config.spiderPort)
const upSpider = () => {
if(options.indexer)
spider.listen(config.spiderPort)
else
spider.close()
}
if(options.spiderPort !== config.spiderPort)
spider.close(upSpider)
else
spider.close()
upSpider()
}
for(const option in options)