mirror of
https://github.com/logos-storage/deluge.git
synced 2026-01-05 22:53:07 +00:00
206 lines
6.2 KiB
JavaScript
206 lines
6.2 KiB
JavaScript
/*!
|
|
* Deluge.preferences.QueuePage.js
|
|
*
|
|
* Copyright (c) Damien Churchill 2009-2010 <damoxc@gmail.com>
|
|
*
|
|
* This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with
|
|
* the additional special exception to link portions of this program with the OpenSSL library.
|
|
* See LICENSE for more details.
|
|
*/
|
|
Ext.namespace('Deluge.preferences');
|
|
|
|
/**
|
|
* @class Deluge.preferences.Queue
|
|
* @extends Ext.form.FormPanel
|
|
*/
|
|
Deluge.preferences.Queue = Ext.extend(Ext.form.FormPanel, {
|
|
|
|
border: false,
|
|
title: _('Queue'),
|
|
header: false,
|
|
layout: 'form',
|
|
|
|
initComponent: function() {
|
|
Deluge.preferences.Queue.superclass.initComponent.call(this);
|
|
|
|
var om = deluge.preferences.getOptionsManager();
|
|
|
|
var fieldset = this.add({
|
|
xtype: 'fieldset',
|
|
border: false,
|
|
title: _('New Torrents'),
|
|
style: 'padding-top: 5px; margin-bottom: 0px;',
|
|
autoHeight: true,
|
|
labelWidth: 1,
|
|
defaultType: 'checkbox'
|
|
});
|
|
om.bind('queue_new_to_top', fieldset.add({
|
|
fieldLabel: '',
|
|
labelSeparator: '',
|
|
height: 22,
|
|
boxLabel: _('Queue to top'),
|
|
name: 'queue_new_to_top'
|
|
}));
|
|
|
|
fieldset = this.add({
|
|
xtype: 'fieldset',
|
|
border: false,
|
|
title: _('Active Torrents'),
|
|
autoHeight: true,
|
|
labelWidth: 150,
|
|
defaultType: 'spinnerfield',
|
|
style: 'padding-top: 5px; margin-bottom: 0px'
|
|
});
|
|
om.bind('max_active_limit', fieldset.add({
|
|
fieldLabel: _('Total:'),
|
|
labelSeparator: '',
|
|
name: 'max_active_limit',
|
|
value: 8,
|
|
width: 80,
|
|
decimalPrecision: 0,
|
|
minValue: -1,
|
|
maxValue: 99999
|
|
}));
|
|
om.bind('max_active_downloading', fieldset.add({
|
|
fieldLabel: _('Downloading:'),
|
|
labelSeparator: '',
|
|
name: 'max_active_downloading',
|
|
value: 3,
|
|
width: 80,
|
|
decimalPrecision: 0,
|
|
minValue: -1,
|
|
maxValue: 99999
|
|
}));
|
|
om.bind('max_active_seeding', fieldset.add({
|
|
fieldLabel: _('Seeding:'),
|
|
labelSeparator: '',
|
|
name: 'max_active_seeding',
|
|
value: 5,
|
|
width: 80,
|
|
decimalPrecision: 0,
|
|
minValue: -1,
|
|
maxValue: 99999
|
|
}));
|
|
om.bind('dont_count_slow_torrents', fieldset.add({
|
|
xtype: 'checkbox',
|
|
name: 'dont_count_slow_torrents',
|
|
height: 22,
|
|
hideLabel: true,
|
|
boxLabel: _('Ignore slow torrents')
|
|
}));
|
|
om.bind('auto_manage_prefer_seeds', fieldset.add({
|
|
xtype: 'checkbox',
|
|
name: 'auto_manage_prefer_seeds',
|
|
hideLabel: true,
|
|
boxLabel: _('Prefer seeding torrents')
|
|
}));
|
|
|
|
fieldset = this.add({
|
|
xtype: 'fieldset',
|
|
border: false,
|
|
title: _('Seeding Rotation'),
|
|
autoHeight: true,
|
|
labelWidth: 150,
|
|
defaultType: 'spinnerfield',
|
|
style: 'padding-top: 5px; margin-bottom: 0px'
|
|
});
|
|
om.bind('share_ratio_limit', fieldset.add({
|
|
fieldLabel: _('Share Ratio:'),
|
|
labelSeparator: '',
|
|
name: 'share_ratio_limit',
|
|
value: 8,
|
|
width: 80,
|
|
incrementValue: 0.1,
|
|
minValue: -1,
|
|
maxValue: 99999,
|
|
alternateIncrementValue: 1,
|
|
decimalPrecision: 2
|
|
}));
|
|
om.bind('seed_time_ratio_limit', fieldset.add({
|
|
fieldLabel: _('Time Ratio:'),
|
|
labelSeparator: '',
|
|
name: 'seed_time_ratio_limit',
|
|
value: 3,
|
|
width: 80,
|
|
incrementValue: 0.1,
|
|
minValue: -1,
|
|
maxValue: 99999,
|
|
alternateIncrementValue: 1,
|
|
decimalPrecision: 2
|
|
}));
|
|
om.bind('seed_time_limit', fieldset.add({
|
|
fieldLabel: _('Time (m):'),
|
|
labelSeparator: '',
|
|
name: 'seed_time_limit',
|
|
value: 5,
|
|
width: 80,
|
|
decimalPrecision: 0,
|
|
minValue: -1,
|
|
maxValue: 99999
|
|
}));
|
|
|
|
fieldset = this.add({
|
|
xtype: 'fieldset',
|
|
border: false,
|
|
autoHeight: true,
|
|
style: 'padding-top: 5px; margin-bottom: 0px',
|
|
title: _('Share Ratio Reached'),
|
|
|
|
layout: 'table',
|
|
layoutConfig: {columns: 2},
|
|
labelWidth: 0,
|
|
defaultType: 'checkbox',
|
|
|
|
defaults: {
|
|
fieldLabel: '',
|
|
labelSeparator: ''
|
|
}
|
|
});
|
|
this.stopAtRatio = fieldset.add({
|
|
name: 'stop_seed_at_ratio',
|
|
boxLabel: _('Share Ratio:')
|
|
});
|
|
this.stopAtRatio.on('check', this.onStopRatioCheck, this);
|
|
om.bind('stop_seed_at_ratio', this.stopAtRatio);
|
|
|
|
this.stopRatio = fieldset.add({
|
|
xtype: 'spinnerfield',
|
|
name: 'stop_seed_ratio',
|
|
ctCls: 'x-deluge-indent-checkbox',
|
|
disabled: true,
|
|
value: '2.0',
|
|
width: 60,
|
|
incrementValue: 0.1,
|
|
minValue: -1,
|
|
maxValue: 99999,
|
|
alternateIncrementValue: 1,
|
|
decimalPrecision: 2
|
|
});
|
|
om.bind('stop_seed_ratio', this.stopRatio);
|
|
|
|
this.removeAtRatio = fieldset.add({
|
|
xtype: 'radiogroup',
|
|
columns: 1,
|
|
colspan: 2,
|
|
disabled: true,
|
|
style: "margin-left: 10px",
|
|
items: [{
|
|
boxLabel: _('Pause torrent'),
|
|
name: 'at_ratio',
|
|
inputValue: false,
|
|
checked: true
|
|
}, {
|
|
boxLabel: _('Remove torrent'),
|
|
name: 'at_ratio',
|
|
inputValue: true
|
|
}]
|
|
});
|
|
om.bind('remove_seed_at_ratio', this.removeAtRatio);
|
|
},
|
|
|
|
onStopRatioCheck: function(e, checked) {
|
|
this.stopRatio.setDisabled(!checked);
|
|
this.removeAtRatio.setDisabled(!checked);
|
|
}
|
|
});
|