Files
MIXBOX-ARCHIVE/apps/transmission/web/tr-web-control/template/dialog-system-config.html
2020-03-05 00:08:40 +08:00

1032 lines
40 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div class="easyui-layout" data-options="fit:true" style="width:100%;height:100%;">
<div data-options="region:'center'" style="padding:5px 6px 0px 6px;border:0px;">
<div id="system-config-tabs" class="easyui-tabs" style="width:100%;height:100%;" data-options="fit:true,plain:true">
<div title="Basic Information" style="padding:5px;padding-right:10px;" class="dialog">
<table style="width:100%;">
<tr>
<td width="100%" colspan="2">
<span id="system-config-download-dir"></span>
<span style="float:right;">(<span id="system-config-download-dir-free-space"></span><span id="download-dir-free-space"></span>)</span>
</td>
</tr>
<tr>
<td colspan="2"><select id="download-dir" style="width:100%;"></select></td>
</tr>
<tr>
<td colspan="2"><input id="incomplete-dir-enabled" type="checkbox" style="width:16px;"/><label id="system-config-incomplete-dir-enabled" for="incomplete-dir-enabled"></label></td>
</tr>
<tr>
<td colspan="2"><input id="incomplete-dir" value="" type="text" enabledof="incomplete-dir-enabled" style="width:100%;"/></td>
</tr>
<tr>
<td colspan="2"><input id="rename-partial-files" type="checkbox" style="width:16px;"/><label id="system-config-rename-partial-files" for="rename-partial-files"></label></td>
</tr>
<tr>
<td colspan="2"><input id="start-added-torrents" type="checkbox" style="width:16px;"/><label id="system-config-start-added-torrents" for="start-added-torrents"></label></td>
</tr>
<tr>
<td colspan="2"><hr/></td>
</tr>
<tr>
<td width="65%"><span id="system-config-cache-size-mb"></span></td>
<td width="35%"><input id="cache-size-mb" value="" type="text" class="easyui-numberspinner" style="width:70px;"/> MB</td>
</tr>
<tr>
<td colspan="2"><hr/></td>
</tr>
<tr>
<td colspan="2">
<span id="system-config-config-dir"></span>
</td>
</tr>
<tr>
<td colspan="2"><input id="config-dir" value="" type="text" readonly="readonly" disabled="disabled" style="width:100%;"/></td>
</tr>
<tr>
<td colspan="2"><hr/></td>
</tr>
<tr>
<td colspan="2" align="right">
<span id="system-config-language"></span>&nbsp;<select id="system-config-lang" value="" style="width:200px;"></select>
</td>
</tr>
</table>
</div>
<div title="Network" style="padding:5px;padding-right:10px;" class="dialog">
<table style="width:100%;">
<tr>
<td width="65%">
<input id="download-queue-enabled" type="checkbox" style="width:16px;"/><label id="system-config-download-queue-enabled" for="download-queue-enabled"></label>
</td>
<td width="35%"><input id="download-queue-size" value="" type="text" class="easyui-numberspinner" enabledof="download-queue-enabled"/></td>
</tr>
<tr>
<td>
<input id="seed-queue-enabled" type="checkbox" style="width:16px;"/><label id="system-config-seed-queue-enabled" for="seed-queue-enabled"></label>
</td>
<td><input id="seed-queue-size" value="" type="text" class="easyui-numberspinner" enabledof="seed-queue-enabled"/></td>
</tr>
<tr>
<td colspan="2"><hr/></td>
</tr>
<tr>
<td>
<span id="system-config-encryption"></span>
</td>
<td>
<select id="encryption" class="easyui-combobox" data-options="editable:false"></select>
</td>
</tr>
<tr>
<td valign="top">
<input id="peer-port-random-on-start" type="checkbox" style="width:16px;"/><label id="system-config-peer-port-random-on-start" for="peer-port-random-on-start"></label>
</td>
<td>
<input id="peer-port" value="" type="text" class="easyui-numberspinner" style="width:70px;"/> <a id="system-config-test-port" href="javascript:void(0);" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-test-port'"></a>
</td>
</tr>
<tr>
<td>
<input id="port-forwarding-enabled" type="checkbox" style="width:16px;"/><label id="system-config-port-forwarding-enabled" for="port-forwarding-enabled"></label>
</td>
<td>
<span id="system-config-port-is-open-true" style="display:none;color:#339900;"></span>
<span id="system-config-port-is-open-false" style="display:none;color:red;"></span>
</td>
</tr>
<tr>
<td>
<input id="lpd-enabled" type="checkbox" style="width:16px;"/><label id="system-config-lpd-enabled" for="lpd-enabled"></label>
</td>
<td>
<input id="utp-enabled" type="checkbox" style="width:16px;"/><label id="system-config-utp-enabled" for="utp-enabled"></label>
</td>
</tr>
<tr>
<td>
<input id="dht-enabled" type="checkbox" style="width:16px;"/><label id="system-config-dht-enabled" for="dht-enabled"></label>
</td>
<td>
<input id="pex-enabled" type="checkbox" style="width:16px;"/><label id="system-config-pex-enabled" for="pex-enabled"></label>
</td>
</tr>
<tr>
<td colspan="2">
<hr/>
</td>
</tr>
<tr>
<td colspan="2">
<input id="blocklist-enabled" type="checkbox" style="width:16px;"/><label id="system-config-blocklist-enabled" for="blocklist-enabled"></label>
</td>
</tr>
<tr>
<td colspan="2">
<input id="blocklist-url" type="text" enabledof="blocklist-enabled"/>
</td>
</tr>
<tr>
<td colspan="2">
<span id="system-config-blocklist-size" system-lang="dialog['system-config']['blocklist-size']"></span>
<button id="system-conifg-button-update-blocklist" class="easyui-linkbutton" data-options="iconCls:'iconfont tr-icon-reload'" system-lang="dialog['public']['button-update']" enabledof="blocklist-enabled"></button>
</td>
</tr>
</table>
</div>
<div title="Limit" style="padding:5px;padding-right:10px;" class="dialog">
<table style="width:100%;">
<tr>
<td width="65%">
<input id="speed-limit-down-enabled" type="checkbox" style="width:16px;"/><label id="system-config-speed-limit-down-enabled" for="speed-limit-down-enabled"></label>
</td>
<td width="35%"><input id="speed-limit-down" value="" type="text" class="easyui-numberspinner" enabledof="speed-limit-down-enabled"/> KB/s</td>
</tr>
<tr>
<td>
<input id="speed-limit-up-enabled" type="checkbox" style="width:16px;"/><label id="system-config-speed-limit-up-enabled" for="speed-limit-up-enabled"></label>
</td>
<td><input id="speed-limit-up" value="" type="text" class="easyui-numberspinner" enabledof="speed-limit-up-enabled"/> KB/s</td>
</tr>
<tr>
<td colspan="2">
<hr/>
</td>
</tr>
<tr>
<td>
<span id="system-config-peer-limit-global"></span>
</td>
<td>
<input id="peer-limit-global" value="" type="text" class="easyui-numberspinner"/>
</td>
</tr>
<tr>
<td>
<span id="system-config-peer-limit-per-torrent"></span>
</td>
<td>
<input id="peer-limit-per-torrent" value="" type="text" class="easyui-numberspinner"/>
</td>
</tr>
<tr>
<td colspan="2">
<hr/>
</td>
</tr>
<tr>
<td>
<input id="seedRatioLimited" type="checkbox" style="width:16px;"/><label id="system-config-seedRatioLimited" for="seedRatioLimited"></label>
</td>
<td><input id="seedRatioLimit" value="" type="text" class="easyui-numberspinner" enabledof="seedRatioLimited" data-options="precision:2"/></td>
</tr>
<tr>
<td>
<input id="idle-seeding-limit-enabled" type="checkbox" style="width:16px;"/><label id="system-config-idle-seeding-limit-enabled" for="idle-seeding-limit-enabled"></label>
</td>
<td><input id="idle-seeding-limit" value="" type="text" class="easyui-numberspinner" enabledof="idle-seeding-limit-enabled"/> <span name="system-config-minutes"></span></td>
</tr>
<tr>
<td>
<input id="queue-stalled-enabled" type="checkbox" style="width:16px;"/><label id="system-config-queue-stalled-enabled" for="queue-stalled-enabled"></label>
</td>
<td><input id="queue-stalled-minutes" value="" type="text" class="easyui-numberspinner" enabledof="queue-stalled-enabled"/> <span name="system-config-minutes"></span></td>
</tr>
</table>
</div>
<div title="Alt speeds" style="padding:5px;" class="dialog">
<fieldset>
<table style="width:100%;">
<tr>
<td width="65%">
<span id="system-config-alt-speed-down"></span>
</td>
<td width="35%"><input id="alt-speed-down" value="" type="text" class="easyui-numberspinner" _enabledof="alt-speed-enabled"/> KB/s</td>
</tr>
<tr>
<td>
<label id="system-config-alt-speed-up"></label>
</td>
<td><input id="alt-speed-up" value="" type="text" class="easyui-numberspinner" _enabledof="alt-speed-enabled"/> KB/s</td>
</tr>
</table>
</fieldset>
<fieldset>
<legend id="">
<input id="alt-speed-time-enabled" type="checkbox" style="width:16px;"/><label id="system-config-alt-speed-time-enabled" for="alt-speed-time-enabled"></label>
</legend>
<table style="width:100%;">
<tr>
<td>
<span id="system-config-alt-speed-time"></span>
<input id="alt-speed-time-begin" value="" type="text" class="easyui-timespinner" style="width:80px;" enabledof="alt-speed-time-enabled"/> -
<input id="alt-speed-time-end" value="" type="text" class="easyui-timespinner" style="width:80px;" enabledof="alt-speed-time-enabled"/>
</td>
</tr>
<tr>
<td style="padding:10px 0px 5px 0px;">
<input id="alt-speed-time-weekday-1" type="checkbox" style="width:16px;" enabledof="alt-speed-time-enabled"/><label id="system-config-weekday-1" for="alt-speed-time-weekday-1"></label>
<input id="alt-speed-time-weekday-2" type="checkbox" style="width:16px;" enabledof="alt-speed-time-enabled"/><label id="system-config-weekday-2" for="alt-speed-time-weekday-2"></label>
<input id="alt-speed-time-weekday-3" type="checkbox" style="width:16px;" enabledof="alt-speed-time-enabled"/><label id="system-config-weekday-3" for="alt-speed-time-weekday-3"></label>
<input id="alt-speed-time-weekday-4" type="checkbox" style="width:16px;" enabledof="alt-speed-time-enabled"/><label id="system-config-weekday-4" for="alt-speed-time-weekday-4"></label>
<input id="alt-speed-time-weekday-5" type="checkbox" style="width:16px;" enabledof="alt-speed-time-enabled"/><label id="system-config-weekday-5" for="alt-speed-time-weekday-5"></label>
<input id="alt-speed-time-weekday-6" type="checkbox" style="width:16px;" enabledof="alt-speed-time-enabled"/><label id="system-config-weekday-6" for="alt-speed-time-weekday-6"></label>
<input id="alt-speed-time-weekday-0" type="checkbox" style="width:16px;" enabledof="alt-speed-time-enabled"/><label id="system-config-weekday-0" for="alt-speed-time-weekday-0"></label>
</td>
</tr>
</table>
</fieldset>
<input id="alt-speed-enabled" type="checkbox" style="width:16px;"/><label id="system-config-alt-speed-enabled" for="alt-speed-enabled"></label>
</div>
<div title="Folders Dictionary" style="padding:5px;padding-right:10px;" class="dialog">
<table style="width:100%;height:100%;">
<tr>
<td width="100%" height="100%">
<textarea id="local-storage-dictionary-folders" style="width:100%;height:100%;"></textarea>
</td>
</tr>
</table>
</div>
<div title="More" style="padding:10px;" class="dialog">
<table style="width:100%;">
<tr>
<td width="80%">
<label for="show-bt-servers" system-lang="dialog['system-config']['show-bt-servers']"></label>
</td>
<td>
<input id="show-bt-servers" class="easyui-switchbutton" type="checkbox" config-type="1"/>
</td>
</tr>
<tr>
<td>
<label for="hide-subfolders" system-lang="dialog['system-config']['hide-subfolders']"></label>
</td>
<td>
<input id="hide-subfolders" class="easyui-switchbutton" type="checkbox" config-type="1"/>
</td>
</tr>
<tr>
<td>
<label for="simpleCheckMode" system-lang="dialog['system-config']['simple-check-mode']"></label>
</td>
<td>
<input id="simpleCheckMode" class="easyui-switchbutton" type="checkbox" config-type="1"/>
</td>
</tr>
<tr>
<td colspan="2"><hr/></td>
</tr>
<tr>
<td colspan="2"><span system-lang="dialog['system-config']['nav-contents']"></span></td>
</tr>
<tr>
<td>
<label system-lang="tree['servers']"></label>
</td>
<td>
<input id="nav-servers" class="easyui-switchbutton" type="checkbox" config-type="1"/>
</td>
</tr>
<tr>
<td>
<label system-lang="tree['folders']"></label>
</td>
<td>
<input id="nav-folders" class="easyui-switchbutton" type="checkbox" config-type="1"/>
</td>
</tr>
<tr>
<td>
<label system-lang="tree['statistics']['title']"></label>
</td>
<td>
<input id="nav-statistics" class="easyui-switchbutton" type="checkbox" config-type="1"/>
</td>
</tr>
<tr>
<td>
<label system-lang="tree['labels']"></label>
</td>
<td>
<input id="nav-labels" class="easyui-switchbutton" type="checkbox" config-type="1"/>
</td>
</tr>
</table>
</div>
<div title="User Labels" style="padding:5px;" class="dialog">
<div id="divLabels" style="width:100%;height: 100%;"></div>
<div id="divLabelsToolbar" style="height: auto;">
<a id="btn-UserLabel-addNew" href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'iconfont tr-icon-plus',plain:true" system-lang="dialog['public']['button-addnew']"></a>
<a id="btn-UserLabel-remove" href="javascript:void(0)" class="easyui-linkbutton" style="color:crimson;" data-options="iconCls:'iconfont tr-icon-delete',plain:true" system-lang="dialog['public']['button-delete']"></a>
<span class="button-split">|</span>
<a id="btn-UserLabel-import" href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'iconfont tr-icon-download',plain:true" system-lang="dialog['public']['button-import']"></a>
<a id="btn-UserLabel-export" href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'iconfont tr-icon-upload',plain:true" system-lang="dialog['public']['button-export']"></a>
</div>
</div>
</div>
</div>
<div data-options="region:'south',border:false" style="text-align:right;padding:6px;">
<a id="system-config-button-reload" href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-reload'" style="float:left;display:none;"></a>
<button id="restore-default-settings" style="float:left;" system-lang="dialog['system-config']['restore-default-settings']" data-options="iconCls:'iconfont tr-icon-restore',plain:true" class="easyui-linkbutton"></button>
<span style="float:left;margin-top: 4px;height: auto;" class="button-split">|</span>
<button id="btn-import-config" style="float:left;" system-lang="dialog['public']['button-import']" system-tip-lang="dialog['system-config']['import-config']" data-options="iconCls:'iconfont tr-icon-download',plain:true" class="easyui-linkbutton"></button>
<button id="btn-export-config" style="float:left;" system-lang="dialog['public']['button-export']" system-tip-lang="dialog['system-config']['export-config']" data-options="iconCls:'iconfont tr-icon-upload',plain:true" class="easyui-linkbutton"></button>
<span id="system-config-nochange" style="display:none;"></span>
<span id="system-config-saved" style="display:none;"></span>
<a id="system-config-button-save" class="easyui-linkbutton" data-options="iconCls:'icon-save',plain:true" href="javascript:void(0);">Ok</a>
<a id="system-config-button-cancel" class="easyui-linkbutton" data-options="iconCls:'icon-cancel',plain:true" href="javascript:void(0);">Cancel</a>
</div>
</div>
<script type="text/javascript">
(function (thisDialog) {
var page = {
selectedIndex: -1,
init: function() {
this.initLangText();
this.initTabs();
this.initLanguageCombo();
this.initConfigValue();
this.initEvents();
this.initUserLabels();
},
// 初始化选项卡
initTabs: function() {
var tabs = thisDialog.find("#system-config-tabs");
tabs.tabs();
var base = tabs.tabs("getTab", 0);
tabs.tabs("update", {
tab: tabs.tabs("getTab", 0),
options: {
title: system.lang.dialog["system-config"].tabs.base
}
});
tabs.tabs("update", {
tab: tabs.tabs("getTab", 1),
options: {
title: system.lang.dialog["system-config"].tabs.network
}
});
tabs.tabs("update", {
tab: tabs.tabs("getTab", 2),
options: {
title: system.lang.dialog["system-config"].tabs.limit
}
});
tabs.tabs("update", {
tab: tabs.tabs("getTab", 3),
options: {
title: system.lang.dialog["system-config"].tabs["alt-speed"]
}
});
tabs.tabs("update", {
tab: tabs.tabs("getTab", 4),
options: {
title: system.lang.dialog["system-config"].tabs["dictionary-folders"]
}
});
tabs.tabs("update", {
tab: tabs.tabs("getTab", 5),
options: {
title: system.lang.dialog["system-config"].tabs["more"]
}
});
tabs.tabs("update", {
tab: tabs.tabs("getTab", 6),
options: {
title: system.lang.dialog["system-config"].tabs["labels"]
}
});
},
// Set the language
initLanguageCombo: function() {
$.each(system.languages, function (key, value) {
$("<option/>").text(value).val(key).attr("selected", (key == system.lang.name ? true : false)).appendTo(thisDialog.find("#system-config-lang"));
});
$("#system-config-lang", thisDialog).combobox({
editable: false,
panelHeight: 'auto'
});
},
// 初始化界面文字
initLangText: function() {
var title = "button-save,button-cancel,button-reload".split(",");
$.each(title, function (i, item) {
thisDialog.find("#system-config-" + item).html(system.lang.dialog.public[item]);
});
system.resetLangText(thisDialog);
thisDialog.find("#system-config-blocklist-size").html(system.lang.dialog['system-config']['blocklist-size'].replace("%n", system.serverConfig["blocklist-size"]));
title = ("config-dir,download-dir,incomplete-dir-enabled,cache-size-mb,rename-partial-files,download-dir-free-space,start-added-torrents" +
",download-queue-enabled,seed-queue-enabled,encryption,peer-port-random-on-start,speed-limit-down-enabled,speed-limit-up-enabled" +
",alt-speed-enabled,alt-speed-down,alt-speed-up,test-port,port-forwarding-enabled,utp-enabled,dht-enabled,lpd-enabled,pex-enabled" +
",peer-limit-global,peer-limit-per-torrent,blocklist-enabled,seedRatioLimited,queue-stalled-enabled,idle-seeding-limit-enabled" +
",alt-speed-time-enabled,alt-speed-time,nochange,port-is-open-true,port-is-open-false,language"
).split(",");
$.each(title, function (i, item) {
thisDialog.find("#system-config-" + item).html(system.lang.dialog["system-config"][item]);
});
thisDialog.find("span[name='system-config-minutes']").html(system.lang.dialog["system-config"]["minutes"]);
},
// 初始化参数值
initConfigValue: function() {
// Replace system settings
var title = ("incomplete-dir-enabled,rename-partial-files,start-added-torrents,download-queue-enabled,seed-queue-enabled" +
",peer-port-random-on-start,speed-limit-down-enabled,speed-limit-up-enabled,alt-speed-enabled,idle-seeding-limit-enabled" +
",port-forwarding-enabled,utp-enabled,dht-enabled,lpd-enabled,pex-enabled,blocklist-enabled,seedRatioLimited,queue-stalled-enabled" +
",alt-speed-time-enabled"
).split(",");
$.each(title, function (i, item) {
thisDialog.find("#" + item).prop("checked", system.serverConfig[item])
.click(function () {
thisDialog.find("*[enabledof='" + this.id + "']").prop("disabled", !this.checked);
if (this.checked) {
thisDialog.find(".easyui-numberspinner[enabledof='" + this.id + "']").numberspinner("enable");
thisDialog.find(".easyui-timespinner[enabledof='" + this.id + "']").timespinner("enable");
thisDialog.find(".easyui-linkbutton[enabledof='" + this.id + "']").linkbutton("enable");
} else {
thisDialog.find(".easyui-numberspinner[enabledof='" + this.id + "']").numberspinner("disable");
thisDialog.find(".easyui-timespinner[enabledof='" + this.id + "']").timespinner("disable");
thisDialog.find(".easyui-linkbutton[enabledof='" + this.id + "']").linkbutton("disable");
}
});
});
// Set content
thisDialog.find("#download-dir").val(system.downloadDir);
$.each(transmission.downloadDirs, function (i, item) {
$("<option/>").text(item).val(item).attr("selected", (item == system.downloadDir ? true : false)).appendTo(thisDialog.find("#download-dir"));
});
if (transmission.downloadDirs.length == 0) {
$("<option/>").text(system.downloadDir).val(system.downloadDir).attr("selected", true).appendTo(thisDialog.find("#download-dir"));
}
thisDialog.find("#download-dir").combobox();
thisDialog.find("#config-dir").val(system.serverConfig["config-dir"]);
thisDialog.find("#incomplete-dir").val(system.serverConfig["incomplete-dir"]);
thisDialog.find("#incomplete-dir").prop("disabled", !system.serverConfig["incomplete-dir-enabled"]);
thisDialog.find("#cache-size-mb").val(system.serverConfig["cache-size-mb"]);
thisDialog.find("#download-queue-size").val(system.serverConfig["download-queue-size"]).prop("disabled", !system.serverConfig["download-queue-enabled"]);
thisDialog.find("#seed-queue-size").val(system.serverConfig["seed-queue-size"]).prop("disabled", !system.serverConfig["seed-queue-enabled"]);
thisDialog.find("#peer-port").val(system.serverConfig["peer-port"]).prop("disabled", system.serverConfig["peer-port-random-on-start"]);
thisDialog.find("#speed-limit-down").val(system.serverConfig["speed-limit-down"]).prop("disabled", !system.serverConfig["speed-limit-down-enabled"]);
thisDialog.find("#speed-limit-up").val(system.serverConfig["speed-limit-up"]).prop("disabled", !system.serverConfig["speed-limit-up-enabled"]);
thisDialog.find("#alt-speed-down").val(system.serverConfig["alt-speed-down"]);
thisDialog.find("#alt-speed-up").val(system.serverConfig["alt-speed-up"]);
thisDialog.find("#alt-speed-time-begin").val(getHoursFromMinutes(system.serverConfig["alt-speed-time-begin"])).prop("disabled", !system.serverConfig["alt-speed-time-enabled"]);
thisDialog.find("#alt-speed-time-end").val(getHoursFromMinutes(system.serverConfig["alt-speed-time-end"])).prop("disabled", !system.serverConfig["alt-speed-time-enabled"]);
var days = ("0000000" + system.serverConfig["alt-speed-time-day"].toString(2)).right(7).split("").reverse();
var weekday = system.lang.dialog["system-config"]["weekday"];
// Set schedule
for (var day in weekday) {
thisDialog.find("#alt-speed-time-weekday-" + day).prop("checked", (days[day] == 1 ? true : false)).prop("disabled", !system.serverConfig["alt-speed-time-enabled"]);
thisDialog.find("#system-config-weekday-" + day).text(weekday[day]);
}
thisDialog.find("#peer-limit-global").val(system.serverConfig["peer-limit-global"]);
thisDialog.find("#peer-limit-per-torrent").val(system.serverConfig["peer-limit-per-torrent"]);
thisDialog.find("#blocklist-url").val(system.serverConfig["blocklist-url"]).prop("disabled", !system.serverConfig["blocklist-enabled"]);
thisDialog.find("#system-conifg-button-update-blocklist").prop("disabled", !system.serverConfig["blocklist-enabled"]);
thisDialog.find("#seedRatioLimit").val(system.serverConfig["seedRatioLimit"]).prop("disabled", !system.serverConfig["seedRatioLimited"]);
thisDialog.find("#queue-stalled-minutes").val(system.serverConfig["queue-stalled-minutes"]).prop("disabled", !system.serverConfig["queue-stalled-enabled"]);
thisDialog.find("#idle-seeding-limit").val(system.serverConfig["idle-seeding-limit"]).prop("disabled", !system.serverConfig["idle-seeding-limit-enabled"]);
var etype = system.lang.dialog["system-config"]["encryption-type"];
for (var key in etype) {
$("<option/>").val(key).attr("selected", (key == system.serverConfig["encryption"] ? true : false)).text(etype[key]).appendTo(thisDialog.find("#encryption"));
}
var tmp = system.serverConfig["download-dir-free-space"];
if (tmp == -1) {
tmp = system.lang.public["text-unknown"];
} else {
tmp = formatSize(tmp);
}
thisDialog.find("#download-dir-free-space").text(tmp);
// Local dictionary folder list (not including transmission.downloadDirs)
if (system.dictionary.folders == null || system.dictionary.folders == "") {
thisDialog.find("#local-storage-dictionary-folders").val("");
} else {
thisDialog.find("#local-storage-dictionary-folders").val(system.dictionary.folders);
}
//thisDialog.find("#local-storage-dictionary-folders").val(transmission.downloadDirs);
thisDialog.find("#show-bt-servers").switchbutton({
checked: system.config.showBTServers
});
thisDialog.find("#hide-subfolders").switchbutton({
checked: system.config.hideSubfolders
});
thisDialog.find("#simpleCheckMode").switchbutton({
checked: system.config.simpleCheckMode
});
for (var key in system.config.nav) {
var value = system.config.nav[key];
thisDialog.find("#nav-"+key).switchbutton({
checked: value
});
}
},
// 初始化相关按钮事件
initEvents: function() {
// Cancel
thisDialog.find("#system-config-button-cancel").click(function () {
thisDialog.dialog("close");
});
/**/
// 测试端口
thisDialog.find("#system-config-test-port").click(function () {
var button = $(this);
button.linkbutton({
text: system.lang.dialog["system-config"].testing,
disabled: true
});
// 如果端口有变更,则先保存
if (parseInt(thisDialog.find("#peer-port").val()) != system.serverConfig["peer-port"]) {
transmission.exec({
method: "session-set",
arguments: {
"peer-port": true
}
}, function (data) {
if (data.result == "success") {
transmission.exec({
method: "port-test"
}, function (data) {
if (data.result == "success") {
if (data.arguments["port-is-open"]) {
thisDialog.find("#system-config-port-is-open-true").fadeInAndOut();
} else {
thisDialog.find("#system-config-port-is-open-false").fadeInAndOut();
}
}
button.linkbutton({
text: system.lang.dialog["system-config"]["test-port"],
disabled: false
});
});
}
});
} else {
transmission.exec({
method: "port-test"
}, function (data) {
if (data.result == "success") {
if (data.arguments["port-is-open"]) {
thisDialog.find("#system-config-port-is-open-true").fadeInAndOut();
} else {
thisDialog.find("#system-config-port-is-open-false").fadeInAndOut();
}
button.linkbutton({
text: system.lang.dialog["system-config"]["test-port"],
disabled: false
});
}
});
}
});
// 保存参数
thisDialog.find("#system-config-button-save").click(function () {
var inputs = thisDialog.find("input");
var config = {};
var days = new Array();
var value = null;
var reloadPage = false;
// 提交标签列表的变更
if (page.endEditing()) {
page.userLabelsTable.datagrid("acceptChanges");
}
for (var i=0;i<inputs.length;i++) {
var input = inputs[i];
var configType = input.getAttribute("config-type")||0;
value = null;
// 0 表示服务器配置默认为0
if (configType==0 && input.id != undefined && input.id != "") {
switch (input.type) {
case "checkbox":
switch (input.id) {
// 星期
case "alt-speed-time-weekday-0":
case "alt-speed-time-weekday-1":
case "alt-speed-time-weekday-2":
case "alt-speed-time-weekday-3":
case "alt-speed-time-weekday-4":
case "alt-speed-time-weekday-5":
case "alt-speed-time-weekday-6":
days.push(input.checked ? 1 : 0);
break;
default:
value = input.checked;
break;
}
break;
default:
switch (input.id) {
// 限制时间
case "alt-speed-time-begin":
case "alt-speed-time-end":
value = getMinutesFromHours(input.value);
break;
default:
value = ($.isNumeric(input.value) ? parseFloat(input.value) : input.value);
break;
}
break;
}
if (value != system.serverConfig[input.id] && value != null) {
config[input.id] = value;
}
}
}
//console.log("days:",days);
var sunday = days.pop();
//console.log("days1:",days);
days.unshift(sunday);
value = parseInt(days.reverse().join(""), 2);
if (value != system.serverConfig["alt-speed-time-day"] && value != null) {
config["alt-speed-time-day"] = value;
}
value = thisDialog.find("#encryption").combobox("getValue");
if (value != system.serverConfig["encryption"] && value != null) {
config["encryption"] = value;
}
value = thisDialog.find("#download-dir").combobox("getValue");
if (value != system.serverConfig["download-dir"] && value != null) {
config["download-dir"] = value;
}
system.config.showBTServers = thisDialog.find("#show-bt-servers").prop("checked");
system.config.hideSubfolders = thisDialog.find("#hide-subfolders").prop("checked");
system.config.simpleCheckMode = thisDialog.find("#simpleCheckMode").prop("checked");
var _temp = JSON.stringify(system.config.nav);
for (var key in system.config.nav) {
system.config.nav[key] = thisDialog.find("#nav-"+key).prop("checked");
}
if (_temp!=JSON.stringify(system.config.nav)) {
reloadPage = true;
}
var cuslang = thisDialog.find("#system-config-lang").val();
// If the parameters are changed, save
if (!$.isEmptyObject(config)) {
$(this).linkbutton({
text: system.lang.dialog["system-config"].saving,
disabled: true
});
// Start setting parameters
transmission.exec({
method: "session-set",
arguments: config
}, function (data) {
if (data.result == "success") {
// Once the settings are successful, regain the current parameters
transmission.exec({
method: "session-get"
}, function (data) {
if (data.result == "success") {
system.serverConfig = data.arguments;
$("#status_version").html(system.lang.statusbar.version + data.arguments["version"]);
if (data.arguments["alt-speed-enabled"] == true) {
system.panel.toolbar.find("#toolbar_alt_speed").linkbutton({
iconCls: "icon-alt-speed-true"
});
$("#status_alt_speed").show();
} else {
system.panel.toolbar.find("#toolbar_alt_speed").linkbutton({
iconCls: "icon-alt-speed-false"
});
$("#status_alt_speed").hide();
}
system.downloadDir = data.arguments["download-dir"];
saveLocalData();
if (cuslang != system.lang.name) {
system.changeLanguages(cuslang);
}
}
});
}
});
return;
}
// If the language changes, reload the page
else if (cuslang != system.lang.name) {
system.changeLanguages(cuslang);
} else {
if (system.dictionary.folders == thisDialog.find("#local-storage-dictionary-folders").val()) {
thisDialog.find("#system-config-nochange").fadeInAndOut();
return;
}
}
saveLocalData();
// Save the local data
function saveLocalData() {
if (thisDialog.find("#local-storage-dictionary-folders").val().replace(/^\s*[\r\n]/gm, "").length == 0) {
system.dictionary.folders = "";
} else {
system.dictionary.folders = thisDialog.find("#local-storage-dictionary-folders").val().replace(/^\s*[\r\n]/gm, "");
}
system.saveConfig();
if (reloadPage) {
location.href = location.href;
} else {
thisDialog.dialog("close");
}
}
});
// Update blacklist
thisDialog.find("#system-conifg-button-update-blocklist").click(function () {
var button = $(this);
button.prop("disabled", true);
transmission.updateBlocklist(function (data) {
if (data.result == "success") {
thisDialog.find("#system-config-blocklist-size").html(system.lang.dialog['system-config']['blocklist-size'].replace("%n", data.arguments["blocklist-size"]));
};
button.prop("disabled", false);
});
});
// 恢复界面默认设置
$("#restore-default-settings", thisDialog).click(function(){
if (confirm(system.lang["public"]["text-confirm"])==false)
{
return;
}
system.config = {};
system.userConfig = {};
system.saveConfig();
system.saveUserConfig();
location.href = location.href;
});
},
// 初始化用户标签列表
initUserLabels: function() {
this.userLabelsTable = $("<table/>").appendTo($("#divLabels", thisDialog));
var headContextMenu = null;
var selectedIndex = -1;
// 添加
$("#btn-UserLabel-addNew", thisDialog).on("click", function() {
if (page.endEditing()){
page.userLabelsTable.datagrid('appendRow', {
"ck": false,
"color": "#000000"
});
page.editIndex = page.userLabelsTable.datagrid('getRows').length-1;
page.userLabelsTable.datagrid('selectRow', page.editIndex).datagrid('beginEdit', page.editIndex);
}
});
// 删除
$("#btn-UserLabel-remove", thisDialog).on("click", function() {
var checkedRows = page.userLabelsTable.datagrid("getChecked");
if (checkedRows.length == 0){
return;
}
if (!confirm(system.lang["public"]["text-confirm"])) {
return;
}
page.userLabelsTable.datagrid('cancelEdit', page.editIndex);
var removed = [];
for (var index = checkedRows.length-1; index >= 0; index--) {
var item = checkedRows[index];
var rowIndex = page.userLabelsTable.datagrid("getRowIndex", item);
console.log(rowIndex);
removed.push(rowIndex);
page.userLabelsTable.datagrid('deleteRow', rowIndex);
system.config.labels.splice(rowIndex, 1);
}
// 清除已打过标签的种子
for (var key in system.config.labelMaps) {
if (system.config.labelMaps.hasOwnProperty(key)) {
var items = system.config.labelMaps[key];
for (var index = items.length-1; index >= 0; index--) {
if ($.inArray(items[index], removed) !=-1 ) {
items.splice(index, 1);
}
}
}
}
system.saveConfig();
system.control.torrentlist.refresh();
system.resetNavLabels(true);
page.editIndex = undefined;
});
// 导出
$("#btn-UserLabel-export", thisDialog).on("click", function() {
var data = {
labels: system.config.labels,
maps: system.config.labelMaps
}
var exportData = JSON.parse(JSON.stringify(data));
saveFileAs("tr-web-contorl-labels.json", JSON.stringify(exportData));
});
// 导入
$("#btn-UserLabel-import", thisDialog).on("click", function () {
loadFileContent("json", function (content) {
var item = content;
if (typeof (content) === "string") {
try {
item = JSON.parse(content);
} catch (error) {
alert(system.lang["public"]["text-json-file-parsing-failed"]);
return;
}
}
if (item.labels && item.maps) {
if (confirm(system.lang.dialog["system-config"]["labels-manage"]["import-confirm"])) {
system.config.labels = item.labels;
system.config.labelMaps = item.maps;
system.saveConfig();
reloadData();
system.control.torrentlist.refresh();
system.resetNavLabels(true);
}
}
});
});
function reloadData() {
page.userLabelsTable.empty();
$.get(system.rootPath + "template/config-user-labels-fields.json?time=" + (new Date()), function (data) {
var fields = data.fields;
var _fields = {}
for (var i=0;i<fields.length;i++) {
var item = fields[i];
_fields[item.field] = item;
}
for (var key in fields) {
var item = fields[key];
var _field = _fields[item.field];
if (_field && _field["formatter"]) {
item["formatter"] = _field["formatter"];
}
item.title = system.lang.dialog["system-config"]["labels-manage"][item.field] || item.field;
system.setFieldFormat(item);
}
page.userLabelsTable.datagrid({
autoRowHeight: true,
rownumbers: true,
remoteSort: false,
checkOnSelect: false,
singleSelect: true,
selectOnCheck: false,
toolbar: $("#divLabelsToolbar", thisDialog),
fit: true,
striped: true,
columns: [fields],
data: system.config.labels,
onSelect: function (rowIndex, rowData) {
if (page.selectedIndex != -1) {
// page.userLabelsTable.datagrid("unselectRow", page.selectedIndex);
}
page.selectedIndex = rowIndex;
},
onUnselect: function (rowIndex, rowData) {
page.selectedIndex = -1;
},
onClickCell: function(index, field){
if (page.editIndex != index){
if (page.endEditing()){
page.userLabelsTable.datagrid('selectRow', index).datagrid('beginEdit', index);
var ed = page.userLabelsTable.datagrid('getEditor', {index:index,field:field});
if (ed){
($(ed.target).data('textbox') ? $(ed.target).textbox('textbox') : $(ed.target)).focus();
}
page.editIndex = index;
} else {
setTimeout(function(){
page.userLabelsTable.datagrid('selectRow', page.editIndex);
},0);
}
}
},
onEndEdit: function(index, row, changes){
if (row.name) {
if (row.ck!==undefined) {
delete row.ck;
}
system.config.labels[index] = row;
system.saveConfig();
system.control.torrentlist.refresh();
system.resetNavLabels(true);
}
}
});
}, "json");
};
reloadData();
$("#btn-export-config", thisDialog).on("click.cus", function() {
page.exportConfig(this);
});
$("#btn-import-config", thisDialog).on("click", function() {
page.importConfig(this);
})
},
endEditing: function(){
if (page.editIndex == undefined){return true}
if (page.userLabelsTable.datagrid('validateRow', page.editIndex)){
page.userLabelsTable.datagrid('endEdit', page.editIndex);
page.editIndex = undefined;
return true;
} else {
return false;
}
},
importConfig: function(button) {
loadFileContent("json", function (content) {
var item = content;
if (typeof (content) === "string") {
try {
item = JSON.parse(content);
} catch (error) {
alert(system.lang["public"]["text-json-file-parsing-failed"]);
return;
}
}
if (item.system || item.user || item.server || item.dictionary) {
system.openDialogFromTemplate({
id: "dialog-import-config",
options: {
title: system.lang.dialog["import-config"].title,
width: 500,
height: 120
},
datas: {
config: item
},
type: 1,
source: $(button),
onClose: function() {
$(button).on("click", function(){
page.importConfig(this);
});
}
});
} else {
alert(system.lang.dialog["import-config"]["invalid-file"]);
// thisDialog.find("#system-config-nochange").html(system.lang.dialog["import-config"]["invalid-file"]).fadeInAndOut();
}
});
},
/**
* 导出当前配置到文件
*/
exportConfig: function(button) {
system.openDialogFromTemplate({
id: "dialog-export-config",
options: {
title: system.lang.dialog["export-config"].title,
width: 500,
height: 120
},
type: 1,
source: $(button),
onClose: function() {
$(button).on("click", function(){
page.exportConfig(this);
});
}
});
}
};
page.init();
})($("#dialog-system-config"));
</script>