@ -85,7 +85,7 @@
< / tr >
< / tr >
< tr >
< tr >
< td >
< td >
< input type = "checkbox" id = "temppath_checkbox" onclick = "updateTempDirEnabled();" / >
< input type = "checkbox" id = "temppath_checkbox" onclick = "qBittorrent.Preferences. updateTempDirEnabled();" / >
< label for = "temppath_checkbox" > QBT_TR(Keep incomplete torrents in:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "temppath_checkbox" > QBT_TR(Keep incomplete torrents in:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / td >
< / td >
< td >
< td >
@ -94,7 +94,7 @@
< / tr >
< / tr >
< tr >
< tr >
< td >
< td >
< input type = "checkbox" id = "exportdir_checkbox" onclick = "updateExportDirEnabled();" / >
< input type = "checkbox" id = "exportdir_checkbox" onclick = "qBittorrent.Preferences. updateExportDirEnabled();" / >
< label for = "exportdir_checkbox" > QBT_TR(Copy .torrent files to:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "exportdir_checkbox" > QBT_TR(Copy .torrent files to:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / td >
< / td >
< td >
< td >
@ -103,7 +103,7 @@
< / tr >
< / tr >
< tr >
< tr >
< td >
< td >
< input type = "checkbox" id = "exportdirfin_checkbox" onclick = "updateExportDirFinEnabled();" / >
< input type = "checkbox" id = "exportdirfin_checkbox" onclick = "qBittorrent.Preferences. updateExportDirFinEnabled();" / >
< label for = "exportdirfin_checkbox" > QBT_TR(Copy .torrent files for finished downloads to:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "exportdirfin_checkbox" > QBT_TR(Copy .torrent files for finished downloads to:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / td >
< / td >
< td >
< td >
@ -128,13 +128,13 @@
< td style = "padding-top:4px;" > < input type = "text" id = "new_watch_folder_txt" autocorrect = "off" autocapitalize = "none" / > < / td >
< td style = "padding-top:4px;" > < input type = "text" id = "new_watch_folder_txt" autocorrect = "off" autocapitalize = "none" / > < / td >
< td style = "padding-top:4px;" >
< td style = "padding-top:4px;" >
< div class = "select-watched-folder-editable" >
< div class = "select-watched-folder-editable" >
< select id = "new_watch_folder_select" onchange = "changeWatchFolderSelect(this)" >
< select id = "new_watch_folder_select" onchange = "qBittorrent.Preferences. changeWatchFolderSelect(this)" >
< option selected value = "watch_folder" > QBT_TR(Monitored folder)QBT_TR[CONTEXT=ScanFoldersModel]< / option >
< option selected value = "watch_folder" > QBT_TR(Monitored folder)QBT_TR[CONTEXT=ScanFoldersModel]< / option >
< option value = "default_folder" > QBT_TR(Default save location)QBT_TR[CONTEXT=ScanFoldersModel]< / option >
< option value = "default_folder" > QBT_TR(Default save location)QBT_TR[CONTEXT=ScanFoldersModel]< / option >
< option value = "other" > QBT_TR(Other...)QBT_TR[CONTEXT=HttpServer]< / option >
< option value = "other" > QBT_TR(Other...)QBT_TR[CONTEXT=HttpServer]< / option >
< / select >
< / select >
< input id = "new_watch_folder_other_txt" type = "text" value = "QBT_TR(Monitored folder)QBT_TR[CONTEXT=ScanFoldersModel]" hidden / >
< input id = "new_watch_folder_other_txt" type = "text" value = "QBT_TR(Monitored folder)QBT_TR[CONTEXT=ScanFoldersModel]" hidden / >
< img src = "images/qbt-theme/list-add.svg" alt = "Add" style = "padding-left:170px;width:16px;cursor:pointer;" onclick = "addWatchFolder();" / >
< img src = "images/qbt-theme/list-add.svg" alt = "Add" style = "padding-left:170px;width:16px;cursor:pointer;" onclick = "qBittorrent.Preferences. addWatchFolder();" / >
< / div >
< / div >
< / td >
< / td >
< / tr >
< / tr >
@ -144,7 +144,7 @@
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend >
< legend >
< input type = "checkbox" id = "mail_notification_checkbox" onclick = "updateMailNotification();" / >
< input type = "checkbox" id = "mail_notification_checkbox" onclick = "qBittorrent.Preferences. updateMailNotification();" / >
< label for = "mail_notification_checkbox" > QBT_TR(Email notification upon download completion)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "mail_notification_checkbox" > QBT_TR(Email notification upon download completion)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / legend >
< / legend >
< table >
< table >
@ -178,7 +178,7 @@
< / div >
< / div >
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend >
< legend >
< input type = "checkbox" id = "mail_auth_checkbox" onclick = "updateMailAuthSettings();" / >
< input type = "checkbox" id = "mail_auth_checkbox" onclick = "qBittorrent.Preferences. updateMailAuthSettings();" / >
< label for = "mail_auth_checkbox" > QBT_TR(Authentication)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "mail_auth_checkbox" > QBT_TR(Authentication)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / legend >
< / legend >
< table >
< table >
@ -204,7 +204,7 @@
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend >
< legend >
< input type = "checkbox" id = "autorun_checkbox" onclick = "updateAutoRun();" / >
< input type = "checkbox" id = "autorun_checkbox" onclick = "qBittorrent.Preferences. updateAutoRun();" / >
< label for = "autorun_checkbox" > QBT_TR(Run external program on torrent completion)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "autorun_checkbox" > QBT_TR(Run external program on torrent completion)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / legend >
< / legend >
< div class = "formRow" >
< div class = "formRow" >
@ -242,14 +242,14 @@
< div class = "formRow" >
< div class = "formRow" >
< label for = "port_value" > QBT_TR(Port used for incoming connections:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "port_value" > QBT_TR(Port used for incoming connections:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< input type = "text" id = "port_value" style = "width: 4em;" / >
< input type = "text" id = "port_value" style = "width: 4em;" / >
< button style = "margin-left: 1em;" onclick = "generateRandomPort();" > Random< / button >
< button style = "margin-left: 1em;" onclick = "qBittorrent.Preferences. generateRandomPort();" > Random< / button >
< / div >
< / div >
< div class = "formRow" >
< div class = "formRow" >
< input type = "checkbox" id = "upnp_checkbox" / >
< input type = "checkbox" id = "upnp_checkbox" / >
< label for = "upnp_checkbox" > QBT_TR(Use UPnP / NAT-PMP port forwarding from my router)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "upnp_checkbox" > QBT_TR(Use UPnP / NAT-PMP port forwarding from my router)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / div >
< / div >
< div class = "formRow" >
< div class = "formRow" >
< input type = "checkbox" id = "random_port_checkbox" onclick = "updatePortValueEnabled();" / >
< input type = "checkbox" id = "random_port_checkbox" onclick = "qBittorrent.Preferences. updatePortValueEnabled();" / >
< label for = "random_port_checkbox" > QBT_TR(Use different port on each startup)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "random_port_checkbox" > QBT_TR(Use different port on each startup)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / div >
< / div >
< / fieldset >
< / fieldset >
@ -259,28 +259,28 @@
< table >
< table >
< tr >
< tr >
< td >
< td >
< input type = "checkbox" id = "max_connec_checkbox" onclick = "updateMaxConnecEnabled();" / >
< input type = "checkbox" id = "max_connec_checkbox" onclick = "qBittorrent.Preferences. updateMaxConnecEnabled();" / >
< label for = "max_connec_checkbox" > QBT_TR(Global maximum number of connections:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "max_connec_checkbox" > QBT_TR(Global maximum number of connections:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / td >
< / td >
< td > < input type = "text" id = "max_connec_value" style = "width: 4em;" / > < / td >
< td > < input type = "text" id = "max_connec_value" style = "width: 4em;" / > < / td >
< / tr >
< / tr >
< tr >
< tr >
< td >
< td >
< input type = "checkbox" id = "max_connec_per_torrent_checkbox" onclick = "updateMaxConnecPerTorrentEnabled();" / >
< input type = "checkbox" id = "max_connec_per_torrent_checkbox" onclick = "qBittorrent.Preferences. updateMaxConnecPerTorrentEnabled();" / >
< label for = "max_connec_per_torrent_checkbox" > QBT_TR(Maximum number of connections per torrent:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "max_connec_per_torrent_checkbox" > QBT_TR(Maximum number of connections per torrent:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / td >
< / td >
< td > < input type = "text" id = "max_connec_per_torrent_value" style = "width: 4em;" / > < / td >
< td > < input type = "text" id = "max_connec_per_torrent_value" style = "width: 4em;" / > < / td >
< / tr >
< / tr >
< tr >
< tr >
< td >
< td >
< input type = "checkbox" id = "max_uploads_checkbox" onclick = "updateMaxUploadsEnabled();" / >
< input type = "checkbox" id = "max_uploads_checkbox" onclick = "qBittorrent.Preferences. updateMaxUploadsEnabled();" / >
< label for = "max_uploads_checkbox" > QBT_TR(Global maximum number of upload slots:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "max_uploads_checkbox" > QBT_TR(Global maximum number of upload slots:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / td >
< / td >
< td > < input type = "text" id = "max_uploads_value" style = "width: 4em;" / > < / td >
< td > < input type = "text" id = "max_uploads_value" style = "width: 4em;" / > < / td >
< / tr >
< / tr >
< tr >
< tr >
< td >
< td >
< input type = "checkbox" id = "max_uploads_per_torrent_checkbox" onclick = "updateMaxUploadsPerTorrentEnabled();" / >
< input type = "checkbox" id = "max_uploads_per_torrent_checkbox" onclick = "qBittorrent.Preferences. updateMaxUploadsPerTorrentEnabled();" / >
< label for = "max_uploads_per_torrent_checkbox" > QBT_TR(Maximum number of upload slots per torrent:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "max_uploads_per_torrent_checkbox" > QBT_TR(Maximum number of upload slots per torrent:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / td >
< / td >
< td > < input type = "text" id = "max_uploads_per_torrent_value" style = "width: 4em;" / > < / td >
< td > < input type = "text" id = "max_uploads_per_torrent_value" style = "width: 4em;" / > < / td >
@ -296,7 +296,7 @@
< label for = "peer_proxy_type_select" > QBT_TR(Type:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "peer_proxy_type_select" > QBT_TR(Type:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / td >
< / td >
< td >
< td >
< select id = "peer_proxy_type_select" onchange = "updatePeerProxySettings();" >
< select id = "peer_proxy_type_select" onchange = "qBittorrent.Preferences. updatePeerProxySettings();" >
< option value = "none" > QBT_TR((None))QBT_TR[CONTEXT=OptionsDialog]< / option >
< option value = "none" > QBT_TR((None))QBT_TR[CONTEXT=OptionsDialog]< / option >
< option value = "socks4" > QBT_TR(SOCKS4)QBT_TR[CONTEXT=OptionsDialog]< / option >
< option value = "socks4" > QBT_TR(SOCKS4)QBT_TR[CONTEXT=OptionsDialog]< / option >
< option value = "socks5" > QBT_TR(SOCKS5)QBT_TR[CONTEXT=OptionsDialog]< / option >
< option value = "socks5" > QBT_TR(SOCKS5)QBT_TR[CONTEXT=OptionsDialog]< / option >
@ -327,7 +327,7 @@
< / div >
< / div >
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend >
< legend >
< input type = "checkbox" id = "peer_proxy_auth_checkbox" onclick = "updatePeerProxyAuthSettings();" / >
< input type = "checkbox" id = "peer_proxy_auth_checkbox" onclick = "qBittorrent.Preferences. updatePeerProxyAuthSettings();" / >
< label for = "peer_proxy_auth_checkbox" > QBT_TR(Authentication)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "peer_proxy_auth_checkbox" > QBT_TR(Authentication)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / legend >
< / legend >
< table >
< table >
@ -356,7 +356,7 @@
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend >
< legend >
< input type = "checkbox" id = "ipfilter_enabled_checkbox" onclick = "updateFilterSettings();" / >
< input type = "checkbox" id = "ipfilter_enabled_checkbox" onclick = "qBittorrent.Preferences. updateFilterSettings();" / >
< label for = "ipfilter_enabled_checkbox" > QBT_TR(IP Filtering)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "ipfilter_enabled_checkbox" > QBT_TR(IP Filtering)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / legend >
< / legend >
< div class = "formRow" >
< div class = "formRow" >
@ -414,7 +414,7 @@
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend >
< legend >
< input type = "checkbox" id = "limit_sheduling_checkbox" onclick = "updateSchedulingEnabled();" / >
< input type = "checkbox" id = "limit_sheduling_checkbox" onclick = "qBittorrent.Preferences. updateSchedulingEnabled();" / >
< label for = "limit_sheduling_checkbox" > QBT_TR(Schedule the use of alternative rate limits)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "limit_sheduling_checkbox" > QBT_TR(Schedule the use of alternative rate limits)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / legend >
< / legend >
< div class = "formRow" >
< div class = "formRow" >
@ -488,7 +488,7 @@
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend >
< legend >
< input type = "checkbox" id = "queueing_checkbox" onclick = "updateQueueingSystem();" / >
< input type = "checkbox" id = "queueing_checkbox" onclick = "qBittorrent.Preferences. updateQueueingSystem();" / >
< label for = "queueing_checkbox" > QBT_TR(Torrent Queueing)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "queueing_checkbox" > QBT_TR(Torrent Queueing)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / legend >
< / legend >
< table >
< table >
@ -519,7 +519,7 @@
< / table >
< / table >
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend >
< legend >
< input type = "checkbox" id = "dont_count_slow_torrents_checkbox" onclick = "updateSlowTorrentsSettings();" / >
< input type = "checkbox" id = "dont_count_slow_torrents_checkbox" onclick = "qBittorrent.Preferences. updateSlowTorrentsSettings();" / >
< label for = "dont_count_slow_torrents_checkbox" > QBT_TR(Do not count slow torrents in these limits)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "dont_count_slow_torrents_checkbox" > QBT_TR(Do not count slow torrents in these limits)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / legend >
< / legend >
< table >
< table >
@ -556,7 +556,7 @@
< table >
< table >
< tr >
< tr >
< td >
< td >
< input type = "checkbox" id = "max_ratio_checkbox" onclick = "updateMaxRatioTimeEnabled();" / >
< input type = "checkbox" id = "max_ratio_checkbox" onclick = "qBittorrent.Preferences. updateMaxRatioTimeEnabled();" / >
< label for = "max_ratio_checkbox" > QBT_TR(Seed torrents until their ratio reaches)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "max_ratio_checkbox" > QBT_TR(Seed torrents until their ratio reaches)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / td >
< / td >
< td >
< td >
@ -564,7 +564,7 @@
< / td >
< / td >
< tr >
< tr >
< td >
< td >
< input type = "checkbox" id = "max_seeding_time_checkbox" onclick = "updateMaxRatioTimeEnabled();" / >
< input type = "checkbox" id = "max_seeding_time_checkbox" onclick = "qBittorrent.Preferences. updateMaxRatioTimeEnabled();" / >
< label for = "max_seeding_time_checkbox" > QBT_TR(Seed torrents until their seeding time reaches)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "max_seeding_time_checkbox" > QBT_TR(Seed torrents until their seeding time reaches)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / td >
< / td >
< td >
< td >
@ -588,7 +588,7 @@
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend >
< legend >
< input type = "checkbox" id = "add_trackers_checkbox" onclick = "updateAddTrackersEnabled();" / >
< input type = "checkbox" id = "add_trackers_checkbox" onclick = "qBittorrent.Preferences. updateAddTrackersEnabled();" / >
< label for = "add_trackers_checkbox" > QBT_TR(Automatically add these trackers to new downloads:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "add_trackers_checkbox" > QBT_TR(Automatically add these trackers to new downloads:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / legend >
< / legend >
< textarea id = "add_trackers_textarea" rows = "5" cols = "70" > < / textarea >
< textarea id = "add_trackers_textarea" rows = "5" cols = "70" > < / textarea >
@ -673,7 +673,7 @@
< / div >
< / div >
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend >
< legend >
< input type = "checkbox" id = "use_https_checkbox" onclick = "updateHttpsSettings();" / >
< input type = "checkbox" id = "use_https_checkbox" onclick = "qBittorrent.Preferences. updateHttpsSettings();" / >
< label for = "use_https_checkbox" > QBT_TR(Use HTTPS instead of HTTP)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "use_https_checkbox" > QBT_TR(Use HTTPS instead of HTTP)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / legend >
< / legend >
< table >
< table >
@ -722,7 +722,7 @@
< label for = "bypass_local_auth_checkbox" > QBT_TR(Bypass authentication for clients on localhost)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "bypass_local_auth_checkbox" > QBT_TR(Bypass authentication for clients on localhost)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / div >
< / div >
< div class = "formRow" >
< div class = "formRow" >
< input type = "checkbox" id = "bypass_auth_subnet_whitelist_checkbox" onclick = "updateBypasssAuthSettings();" / >
< input type = "checkbox" id = "bypass_auth_subnet_whitelist_checkbox" onclick = "qBittorrent.Preferences. updateBypasssAuthSettings();" / >
< label for = "bypass_auth_subnet_whitelist_checkbox" > QBT_TR(Bypass authentication for clients in whitelisted IP subnets)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "bypass_auth_subnet_whitelist_checkbox" > QBT_TR(Bypass authentication for clients in whitelisted IP subnets)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / div >
< / div >
< div class = "formRow" style = "padding-left: 30px; padding-top: 5px;" >
< div class = "formRow" style = "padding-left: 30px; padding-top: 5px;" >
@ -737,7 +737,7 @@
< / fieldset >
< / fieldset >
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend > < input type = "checkbox" id = "use_alt_webui_checkbox" onclick = "updateAlternativeWebUISettings();" / >
< legend > < input type = "checkbox" id = "use_alt_webui_checkbox" onclick = "qBittorrent.Preferences. updateAlternativeWebUISettings();" / >
< label for = "use_alt_webui_checkbox" > QBT_TR(Use alternative Web UI)QBT_TR[CONTEXT=OptionsDialog]< / label > < / legend >
< label for = "use_alt_webui_checkbox" > QBT_TR(Use alternative Web UI)QBT_TR[CONTEXT=OptionsDialog]< / label > < / legend >
< div class = "formRow" >
< div class = "formRow" >
< label for = "webui_files_location_textarea" > QBT_TR(Files location:)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "webui_files_location_textarea" > QBT_TR(Files location:)QBT_TR[CONTEXT=OptionsDialog]< / label >
@ -758,7 +758,7 @@
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend >
< legend >
< input type = "checkbox" id = "host_header_validation_checkbox" onclick = "updateHostHeaderValidationSettings();" / >
< input type = "checkbox" id = "host_header_validation_checkbox" onclick = "qBittorrent.Preferences. updateHostHeaderValidationSettings();" / >
< label for = "host_header_validation_checkbox" > QBT_TR(Enable Host header validation)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "host_header_validation_checkbox" > QBT_TR(Enable Host header validation)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / legend >
< / legend >
< table >
< table >
@ -777,14 +777,14 @@
< fieldset class = "settings" >
< fieldset class = "settings" >
< legend >
< legend >
< input type = "checkbox" id = "use_dyndns_checkbox" onclick = "updateDynDnsSettings();" / >
< input type = "checkbox" id = "use_dyndns_checkbox" onclick = "qBittorrent.Preferences. updateDynDnsSettings();" / >
< label for = "use_dyndns_checkbox" > QBT_TR(Update my dynamic domain name)QBT_TR[CONTEXT=OptionsDialog]< / label >
< label for = "use_dyndns_checkbox" > QBT_TR(Update my dynamic domain name)QBT_TR[CONTEXT=OptionsDialog]< / label >
< / legend >
< / legend >
< select id = "dyndns_select" >
< select id = "dyndns_select" >
< option value = "0" > DynDNS< / option >
< option value = "0" > DynDNS< / option >
< option value = "1" > NO-IP< / option >
< option value = "1" > NO-IP< / option >
< / select >
< / select >
< input type = "button" value = "QBT_TR(Register)QBT_TR[CONTEXT=OptionsDialog]" onclick = "registerDynDns();" / >
< input type = "button" value = "QBT_TR(Register)QBT_TR[CONTEXT=OptionsDialog]" onclick = "qBittorrent.Preferences. registerDynDns();" / >
< table style = "margin-top: 10px;" >
< table style = "margin-top: 10px;" >
< tr >
< tr >
< td >
< td >
@ -1079,20 +1079,60 @@
< / fieldset >
< / fieldset >
< / div >
< / div >
< div style = "text-align: center; margin-top: 1em;" > < input type = "button" value = "QBT_TR(Save)QBT_TR[CONTEXT=HttpServer]" onclick = "applyPreferences();" / > < / div >
< div style = "text-align: center; margin-top: 1em;" > < input type = "button" value = "QBT_TR(Save)QBT_TR[CONTEXT=HttpServer]" onclick = "qBittorrent.Preferences. applyPreferences();" / > < / div >
< script >
< script >
'use strict';
'use strict';
if (window.qBittorrent === undefined) {
window.qBittorrent = {};
}
window.qBittorrent.Preferences = (function() {
const exports = function() {
return {
updateTempDirEnabled: updateTempDirEnabled,
updateExportDirEnabled: updateExportDirEnabled,
updateExportDirFinEnabled: updateExportDirFinEnabled,
addWatchFolder: addWatchFolder,
changeWatchFolderSelect: changeWatchFolderSelect,
updateMailNotification: updateMailNotification,
updateMailAuthSettings: updateMailAuthSettings,
updateAutoRun: updateAutoRun,
generateRandomPort: generateRandomPort,
updatePortValueEnabled: updatePortValueEnabled,
updateMaxConnecEnabled: updateMaxConnecEnabled,
updateMaxConnecPerTorrentEnabled: updateMaxConnecPerTorrentEnabled,
updateMaxUploadsEnabled: updateMaxUploadsEnabled,
updateMaxUploadsPerTorrentEnabled: updateMaxUploadsPerTorrentEnabled,
updatePeerProxySettings: updatePeerProxySettings,
updatePeerProxyAuthSettings: updatePeerProxyAuthSettings,
updateFilterSettings: updateFilterSettings,
updateSchedulingEnabled: updateSchedulingEnabled,
updateQueueingSystem: updateQueueingSystem,
updateSlowTorrentsSettings: updateSlowTorrentsSettings,
updateMaxRatioTimeEnabled: updateMaxRatioTimeEnabled,
updateMaxRatioTimeEnabled: updateMaxRatioTimeEnabled,
updateAddTrackersEnabled: updateAddTrackersEnabled,
updateHttpsSettings: updateHttpsSettings,
updateBypasssAuthSettings: updateBypasssAuthSettings,
updateAlternativeWebUISettings: updateAlternativeWebUISettings,
updateHostHeaderValidationSettings: updateHostHeaderValidationSettings,
updateDynDnsSettings: updateDynDnsSettings,
registerDynDns: registerDynDns,
applyPreferences: applyPreferences
};
};
// Downloads tab
// Downloads tab
this.WatchedFoldersTable = new HtmlTable($("watched_folders_tab"));
const WatchedFoldersTable = new HtmlTable($("watched_folders_tab"));
this.updateTempDirEnabled = function() {
const updateTempDirEnabled = function() {
const isTempDirEnabled = $('temppath_checkbox').getProperty('checked');
const isTempDirEnabled = $('temppath_checkbox').getProperty('checked');
$('temppath_text').setProperty('disabled', !isTempDirEnabled);
$('temppath_text').setProperty('disabled', !isTempDirEnabled);
};
};
this.addWatchFolder = function() {
const addWatchFolder = function() {
const new_folder = $('new_watch_folder_txt').getProperty('value').trim();
const new_folder = $('new_watch_folder_txt').getProperty('value').trim();
if (new_folder.length < = 0) return;
if (new_folder.length < = 0) return;
@ -1112,7 +1152,7 @@
$('new_watch_folder_other_txt').setProperty('value', text);
$('new_watch_folder_other_txt').setProperty('value', text);
};
};
this. changeWatchFolderSelect = function(item) {
const changeWatchFolderSelect = function(item) {
if (item.value == "other") {
if (item.value == "other") {
item.nextElementSibling.hidden = false;
item.nextElementSibling.hidden = false;
item.nextElementSibling.value = 'QBT_TR(Type folder here)QBT_TR[CONTEXT=HttpServer]';
item.nextElementSibling.value = 'QBT_TR(Type folder here)QBT_TR[CONTEXT=HttpServer]';
@ -1125,11 +1165,11 @@
}
}
};
};
this. pushWatchFolder = function(pos, folder, sel, other) {
const pushWatchFolder = function(pos, folder, sel, other) {
const myinput = "< input id = 'text_watch_" + pos + "' type = 'text' value = '" + folder + "' > ";
const myinput = "< input id = 'text_watch_" + pos + "' type = 'text' value = '" + folder + "' > ";
const disableInput = (sel != "other");
const disableInput = (sel != "other");
const mycb = "< div class = 'select-watched-folder-editable' > "
const mycb = "< div class = 'select-watched-folder-editable' > "
+ "< select id = 'cb_watch_" + pos + "' onchange = 'changeWatchFolderSelect(this)' > "
+ "< select id = 'cb_watch_" + pos + "' onchange = 'qBittorrent.Preferences. changeWatchFolderSelect(this)' > "
+ "< option value = 'watch_folder' > QBT_TR(Monitored folder)QBT_TR[CONTEXT=ScanFoldersModel]< / option > "
+ "< option value = 'watch_folder' > QBT_TR(Monitored folder)QBT_TR[CONTEXT=ScanFoldersModel]< / option > "
+ "< option value = 'default_folder' > QBT_TR(Default save location)QBT_TR[CONTEXT=ScanFoldersModel]< / option > "
+ "< option value = 'default_folder' > QBT_TR(Default save location)QBT_TR[CONTEXT=ScanFoldersModel]< / option > "
+ "< option value = 'other' > QBT_TR(Other...)QBT_TR[CONTEXT=HttpServer]< / option > "
+ "< option value = 'other' > QBT_TR(Other...)QBT_TR[CONTEXT=HttpServer]< / option > "
@ -1145,7 +1185,7 @@
$('cb_watch_txt_' + pos).setProperty('value', other);
$('cb_watch_txt_' + pos).setProperty('value', other);
};
};
this. getWatchedFolders = function() {
const getWatchedFolders = function() {
const nb_folders = $("watched_folders_tab").getChildren("tbody")[0].getChildren("tr").length;
const nb_folders = $("watched_folders_tab").getChildren("tbody")[0].getChildren("tr").length;
const folders = new Hash();
const folders = new Hash();
for (let i = 0; i < nb_folders ; + + i ) {
for (let i = 0; i < nb_folders ; + + i ) {
@ -1165,17 +1205,17 @@
return folders;
return folders;
};
};
this. updateExportDirEnabled = function() {
const updateExportDirEnabled = function() {
const isExportDirEnabled = $('exportdir_checkbox').getProperty('checked');
const isExportDirEnabled = $('exportdir_checkbox').getProperty('checked');
$('exportdir_text').setProperty('disabled', !isExportDirEnabled);
$('exportdir_text').setProperty('disabled', !isExportDirEnabled);
};
};
this. updateExportDirFinEnabled = function() {
const updateExportDirFinEnabled = function() {
const isExportDirFinEnabled = $('exportdirfin_checkbox').getProperty('checked');
const isExportDirFinEnabled = $('exportdirfin_checkbox').getProperty('checked');
$('exportdirfin_text').setProperty('disabled', !isExportDirFinEnabled);
$('exportdirfin_text').setProperty('disabled', !isExportDirFinEnabled);
};
};
this. updateMailNotification = function() {
const updateMailNotification = function() {
const isMailNotificationEnabled = $('mail_notification_checkbox').getProperty('checked');
const isMailNotificationEnabled = $('mail_notification_checkbox').getProperty('checked');
$('src_email_txt').setProperty('disabled', !isMailNotificationEnabled);
$('src_email_txt').setProperty('disabled', !isMailNotificationEnabled);
$('dest_email_txt').setProperty('disabled', !isMailNotificationEnabled);
$('dest_email_txt').setProperty('disabled', !isMailNotificationEnabled);
@ -1189,44 +1229,44 @@
}
}
};
};
this. updateMailAuthSettings = function() {
const updateMailAuthSettings = function() {
const isMailAuthEnabled = $('mail_auth_checkbox').getProperty('checked');
const isMailAuthEnabled = $('mail_auth_checkbox').getProperty('checked');
$('mail_username_text').setProperty('disabled', !isMailAuthEnabled);
$('mail_username_text').setProperty('disabled', !isMailAuthEnabled);
$('mail_password_text').setProperty('disabled', !isMailAuthEnabled);
$('mail_password_text').setProperty('disabled', !isMailAuthEnabled);
};
};
this. updateAutoRun = function() {
const updateAutoRun = function() {
const isAutoRunEnabled = $('autorun_checkbox').getProperty('checked');
const isAutoRunEnabled = $('autorun_checkbox').getProperty('checked');
$('autorunProg_txt').setProperty('disabled', !isAutoRunEnabled);
$('autorunProg_txt').setProperty('disabled', !isAutoRunEnabled);
};
};
// Connection tab
// Connection tab
this. updatePortValueEnabled = function() {
const updatePortValueEnabled = function() {
const checked = $('random_port_checkbox').getProperty('checked');
const checked = $('random_port_checkbox').getProperty('checked');
$('port_value').setProperty('disabled', checked);
$('port_value').setProperty('disabled', checked);
};
};
this. updateMaxConnecEnabled = function() {
const updateMaxConnecEnabled = function() {
const isMaxConnecEnabled = $('max_connec_checkbox').getProperty('checked');
const isMaxConnecEnabled = $('max_connec_checkbox').getProperty('checked');
$('max_connec_value').setProperty('disabled', !isMaxConnecEnabled);
$('max_connec_value').setProperty('disabled', !isMaxConnecEnabled);
};
};
this. updateMaxConnecPerTorrentEnabled = function() {
const updateMaxConnecPerTorrentEnabled = function() {
const isMaxConnecPerTorrentEnabled = $('max_connec_per_torrent_checkbox').getProperty('checked');
const isMaxConnecPerTorrentEnabled = $('max_connec_per_torrent_checkbox').getProperty('checked');
$('max_connec_per_torrent_value').setProperty('disabled', !isMaxConnecPerTorrentEnabled);
$('max_connec_per_torrent_value').setProperty('disabled', !isMaxConnecPerTorrentEnabled);
};
};
this. updateMaxUploadsEnabled = function() {
const updateMaxUploadsEnabled = function() {
const isMaxUploadsEnabled = $('max_uploads_checkbox').getProperty('checked');
const isMaxUploadsEnabled = $('max_uploads_checkbox').getProperty('checked');
$('max_uploads_value').setProperty('disabled', !isMaxUploadsEnabled);
$('max_uploads_value').setProperty('disabled', !isMaxUploadsEnabled);
};
};
this. updateMaxUploadsPerTorrentEnabled = function() {
const updateMaxUploadsPerTorrentEnabled = function() {
const isMaxUploadsPerTorrentEnabled = $('max_uploads_per_torrent_checkbox').getProperty('checked');
const isMaxUploadsPerTorrentEnabled = $('max_uploads_per_torrent_checkbox').getProperty('checked');
$('max_uploads_per_torrent_value').setProperty('disabled', !isMaxUploadsPerTorrentEnabled);
$('max_uploads_per_torrent_value').setProperty('disabled', !isMaxUploadsPerTorrentEnabled);
};
};
this. updatePeerProxySettings = function() {
const updatePeerProxySettings = function() {
const isPeerProxyTypeSelected = $('peer_proxy_type_select').getProperty('value') != "none";
const isPeerProxyTypeSelected = $('peer_proxy_type_select').getProperty('value') != "none";
$('peer_proxy_host_text').setProperty('disabled', !isPeerProxyTypeSelected);
$('peer_proxy_host_text').setProperty('disabled', !isPeerProxyTypeSelected);
$('peer_proxy_port_value').setProperty('disabled', !isPeerProxyTypeSelected);
$('peer_proxy_port_value').setProperty('disabled', !isPeerProxyTypeSelected);
@ -1249,13 +1289,13 @@
}
}
};
};
this. updatePeerProxyAuthSettings = function() {
const updatePeerProxyAuthSettings = function() {
const isPeerProxyAuthEnabled = $('peer_proxy_auth_checkbox').getProperty('checked');
const isPeerProxyAuthEnabled = $('peer_proxy_auth_checkbox').getProperty('checked');
$('peer_proxy_username_text').setProperty('disabled', !isPeerProxyAuthEnabled);
$('peer_proxy_username_text').setProperty('disabled', !isPeerProxyAuthEnabled);
$('peer_proxy_password_text').setProperty('disabled', !isPeerProxyAuthEnabled);
$('peer_proxy_password_text').setProperty('disabled', !isPeerProxyAuthEnabled);
};
};
this. updateFilterSettings = function() {
const updateFilterSettings = function() {
const isIPFilterEnabled = $('ipfilter_enabled_checkbox').getProperty('checked');
const isIPFilterEnabled = $('ipfilter_enabled_checkbox').getProperty('checked');
$('ipfilter_text').setProperty('disabled', !isIPFilterEnabled);
$('ipfilter_text').setProperty('disabled', !isIPFilterEnabled);
$('ipfilter_trackers_checkbox').setProperty('disabled', !isIPFilterEnabled);
$('ipfilter_trackers_checkbox').setProperty('disabled', !isIPFilterEnabled);
@ -1263,7 +1303,7 @@
};
};
// Speed tab
// Speed tab
this. updateSchedulingEnabled = function() {
const updateSchedulingEnabled = function() {
const isLimitSchedulingEnabled = $('limit_sheduling_checkbox').getProperty('checked');
const isLimitSchedulingEnabled = $('limit_sheduling_checkbox').getProperty('checked');
$('schedule_from_hour').setProperty('disabled', !isLimitSchedulingEnabled);
$('schedule_from_hour').setProperty('disabled', !isLimitSchedulingEnabled);
$('schedule_from_min').setProperty('disabled', !isLimitSchedulingEnabled);
$('schedule_from_min').setProperty('disabled', !isLimitSchedulingEnabled);
@ -1273,7 +1313,7 @@
};
};
// Bittorrent tab
// Bittorrent tab
this. updateQueueingSystem = function() {
const updateQueueingSystem = function() {
const isQueueingEnabled = $('queueing_checkbox').getProperty('checked');
const isQueueingEnabled = $('queueing_checkbox').getProperty('checked');
$('max_active_dl_value').setProperty('disabled', !isQueueingEnabled);
$('max_active_dl_value').setProperty('disabled', !isQueueingEnabled);
$('max_active_up_value').setProperty('disabled', !isQueueingEnabled);
$('max_active_up_value').setProperty('disabled', !isQueueingEnabled);
@ -1282,14 +1322,14 @@
updateSlowTorrentsSettings();
updateSlowTorrentsSettings();
};
};
this. updateSlowTorrentsSettings = function() {
const updateSlowTorrentsSettings = function() {
const isDontCountSlowTorrentsEnabled = (!$('dont_count_slow_torrents_checkbox').getProperty('disabled')) & & $('dont_count_slow_torrents_checkbox').getProperty('checked');
const isDontCountSlowTorrentsEnabled = (!$('dont_count_slow_torrents_checkbox').getProperty('disabled')) & & $('dont_count_slow_torrents_checkbox').getProperty('checked');
$('dl_rate_threshold').setProperty('disabled', !isDontCountSlowTorrentsEnabled);
$('dl_rate_threshold').setProperty('disabled', !isDontCountSlowTorrentsEnabled);
$('ul_rate_threshold').setProperty('disabled', !isDontCountSlowTorrentsEnabled);
$('ul_rate_threshold').setProperty('disabled', !isDontCountSlowTorrentsEnabled);
$('torrent_inactive_timer').setProperty('disabled', !isDontCountSlowTorrentsEnabled);
$('torrent_inactive_timer').setProperty('disabled', !isDontCountSlowTorrentsEnabled);
};
};
this. updateMaxRatioTimeEnabled = function() {
const updateMaxRatioTimeEnabled = function() {
const isMaxRatioEnabled = $('max_ratio_checkbox').getProperty('checked');
const isMaxRatioEnabled = $('max_ratio_checkbox').getProperty('checked');
$('max_ratio_value').setProperty('disabled', !isMaxRatioEnabled);
$('max_ratio_value').setProperty('disabled', !isMaxRatioEnabled);
@ -1299,34 +1339,34 @@
$('max_ratio_act').setProperty('disabled', !(isMaxRatioEnabled || isMaxSeedingTimeEnabled));
$('max_ratio_act').setProperty('disabled', !(isMaxRatioEnabled || isMaxSeedingTimeEnabled));
};
};
this. updateAddTrackersEnabled = function() {
const updateAddTrackersEnabled = function() {
const isAddTrackersEnabled = $('add_trackers_checkbox').getProperty('checked');
const isAddTrackersEnabled = $('add_trackers_checkbox').getProperty('checked');
$('add_trackers_textarea').setProperty('disabled', !isAddTrackersEnabled);
$('add_trackers_textarea').setProperty('disabled', !isAddTrackersEnabled);
};
};
// Web UI tab
// Web UI tab
this. updateHttpsSettings = function() {
const updateHttpsSettings = function() {
const isUseHttpsEnabled = $('use_https_checkbox').getProperty('checked');
const isUseHttpsEnabled = $('use_https_checkbox').getProperty('checked');
$('ssl_cert_text').setProperty('disabled', !isUseHttpsEnabled);
$('ssl_cert_text').setProperty('disabled', !isUseHttpsEnabled);
$('ssl_key_text').setProperty('disabled', !isUseHttpsEnabled);
$('ssl_key_text').setProperty('disabled', !isUseHttpsEnabled);
};
};
this. updateBypasssAuthSettings = function() {
const updateBypasssAuthSettings = function() {
const isBypassAuthSubnetWhitelistEnabled = $('bypass_auth_subnet_whitelist_checkbox').getProperty('checked');
const isBypassAuthSubnetWhitelistEnabled = $('bypass_auth_subnet_whitelist_checkbox').getProperty('checked');
$('bypass_auth_subnet_whitelist_textarea').setProperty('disabled', !isBypassAuthSubnetWhitelistEnabled);
$('bypass_auth_subnet_whitelist_textarea').setProperty('disabled', !isBypassAuthSubnetWhitelistEnabled);
};
};
this. updateAlternativeWebUISettings = function() {
const updateAlternativeWebUISettings = function() {
const isUseAlternativeWebUIEnabled = $('use_alt_webui_checkbox').getProperty('checked');
const isUseAlternativeWebUIEnabled = $('use_alt_webui_checkbox').getProperty('checked');
$('webui_files_location_textarea').setProperty('disabled', !isUseAlternativeWebUIEnabled);
$('webui_files_location_textarea').setProperty('disabled', !isUseAlternativeWebUIEnabled);
};
};
this. updateHostHeaderValidationSettings = function() {
const updateHostHeaderValidationSettings = function() {
const isHostHeaderValidationEnabled = $('host_header_validation_checkbox').getProperty('checked');
const isHostHeaderValidationEnabled = $('host_header_validation_checkbox').getProperty('checked');
$('webui_domain_textarea').setProperty('disabled', !isHostHeaderValidationEnabled);
$('webui_domain_textarea').setProperty('disabled', !isHostHeaderValidationEnabled);
};
};
this. updateDynDnsSettings = function() {
const updateDynDnsSettings = function() {
const isDynDnsEnabled = $('use_dyndns_checkbox').getProperty('checked');
const isDynDnsEnabled = $('use_dyndns_checkbox').getProperty('checked');
$('dyndns_select').setProperty('disabled', !isDynDnsEnabled);
$('dyndns_select').setProperty('disabled', !isDynDnsEnabled);
$('dyndns_domain_text').setProperty('disabled', !isDynDnsEnabled);
$('dyndns_domain_text').setProperty('disabled', !isDynDnsEnabled);
@ -1334,7 +1374,7 @@
$('dyndns_password_text').setProperty('disabled', !isDynDnsEnabled);
$('dyndns_password_text').setProperty('disabled', !isDynDnsEnabled);
};
};
this. registerDynDns = function() {
const registerDynDns = function() {
if ($('dyndns_select').getProperty('value').toInt() == 1) {
if ($('dyndns_select').getProperty('value').toInt() == 1) {
window.open("http://www.no-ip.com/services/managed_dns/free_dynamic_dns.html", "NO-IP Registration");
window.open("http://www.no-ip.com/services/managed_dns/free_dynamic_dns.html", "NO-IP Registration");
}
}
@ -1343,14 +1383,14 @@
}
}
};
};
this. generateRandomPort = function() {
const generateRandomPort = function() {
const min = 1024;
const min = 1024;
const max = 65535;
const max = 65535;
const port = Math.floor(Math.random() * (max - min + 1) + min);
const port = Math.floor(Math.random() * (max - min + 1) + min);
$('port_value').setProperty('value', port);
$('port_value').setProperty('value', port);
};
};
this. time_padding = function(val) {
const time_padding = function(val) {
let ret = val.toString();
let ret = val.toString();
if (ret.length == 1)
if (ret.length == 1)
ret = '0' + ret;
ret = '0' + ret;
@ -1358,7 +1398,7 @@
};
};
// Advanced Tab
// Advanced Tab
this. updateNetworkInterfaces = function(default_iface) {
const updateNetworkInterfaces = function(default_iface) {
const url = 'api/v2/app/networkInterfaceList';
const url = 'api/v2/app/networkInterfaceList';
$('networkInterface').empty();
$('networkInterface').empty();
new Request.JSON({
new Request.JSON({
@ -1380,7 +1420,7 @@
}).send();
}).send();
};
};
this. updateInterfaceAddresses = function(iface, default_addr) {
const updateInterfaceAddresses = function(iface, default_addr) {
const url = 'api/v2/app/networkInterfaceAddressList';
const url = 'api/v2/app/networkInterfaceAddressList';
$('optionalIPAddressToBind').empty();
$('optionalIPAddressToBind').empty();
new Request.JSON({
new Request.JSON({
@ -1405,7 +1445,7 @@
}).send();
}).send();
}
}
this. loadPreferences = function() {
const loadPreferences = function() {
const url = 'api/v2/app/preferences';
const url = 'api/v2/app/preferences';
new Request.JSON({
new Request.JSON({
url: url,
url: url,
@ -1425,7 +1465,7 @@
$('preallocateall_checkbox').setProperty('checked', pref.preallocate_all);
$('preallocateall_checkbox').setProperty('checked', pref.preallocate_all);
$('appendext_checkbox').setProperty('checked', pref.incomplete_files_ext);
$('appendext_checkbox').setProperty('checked', pref.incomplete_files_ext);
// Saving Managmene t
// Saving Manage ment
$('default_tmm_combobox').setProperty('value', pref.auto_tmm_enabled);
$('default_tmm_combobox').setProperty('value', pref.auto_tmm_enabled);
$('torrent_changed_tmm_combobox').setProperty('value', pref.torrent_changed_tmm_enabled);
$('torrent_changed_tmm_combobox').setProperty('value', pref.torrent_changed_tmm_enabled);
$('save_path_changed_tmm_combobox').setProperty('value', pref.save_path_changed_tmm_enabled);
$('save_path_changed_tmm_combobox').setProperty('value', pref.save_path_changed_tmm_enabled);
@ -1708,7 +1748,7 @@
}).send();
}).send();
};
};
this. applyPreferences = function() {
const applyPreferences = function() {
const settings = new Hash();
const settings = new Hash();
// Validate form data
// Validate form data
// Downloads tab
// Downloads tab
@ -2094,4 +2134,7 @@
});
});
loadPreferences();
loadPreferences();
return exports();
})();
< / script >
< / script >