|
|
|
|
@@ -1,23 +1,23 @@
|
|
|
|
|
var system={version:"1.2 Beta",rootPath:"tr-web-control/",codeupdate:"20171015",configHead:"transmission-web-control",config:{autoReload:true,reloadStep:5E3,pageSize:30,pagination:true,pageList:[10,20,30,40,50,100,150,200,250,300],defaultSelectNode:null,autoExpandAttribute:false,defaultLang:"",foldersShow:false},storageKeys:{dictionary:{folders:"dictionary.folders"}},dictionary:{folders:null},checkUpdateScript:"https://transmission-control.googlecode.com/svn/resouces/checkupdate.js",contextMenus:{},
|
|
|
|
|
panel:null,lang:null,reloading:false,autoReloadTimer:null,downloadDir:"",islocal:false,B64:new Base64,currentTorrentId:0,control:{tree:null,torrentlist:null},userConfig:{torrentList:{fields:[],sortName:null,sortOrder:"asc"}},serverConfig:null,serverSessionStats:null,templates:{},setlang:function(lang,callback){if(!lang)if(this.config.defaultLang)lang=this.config.defaultLang;else lang=navigator.language||navigator.browserLanguage;if(!lang)lang="zh-CN";if(lang.indexOf("-")!=-1)lang=lang.split("-")[0].toLocaleLowerCase()+
|
|
|
|
|
"-"+lang.split("-")[1].toLocaleUpperCase();if(!this.languages[lang])lang="en";$.getScript(system.rootPath+"lang/"+lang+".js",function(){system.lang=$.extend(true,system.defaultLang,system.lang);system.resetLangText();$.getScript(system.rootPath+"script/easyui/locale/easyui-lang-"+lang.replace("-","_")+".js").done(function(script,textStatus){if(callback)callback()}).fail(function(jqxhr,settings,exception){$.getScript(system.rootPath+"script/easyui/locale/easyui-lang-en.js",function(){if(callback)callback()})})})},
|
|
|
|
|
init:function(lang,islocal,devicetype){this.readConfig();this.islocal=islocal==1?true:false;this.panel={main:$("#main"),top:$("#m_top"),toolbar:$("#m_toolbar"),left_layout:$("#m_left_layout"),left:$("#m_left"),body:$("#m_body"),layout_body:$("#layout_body"),list:$("#m_list"),attribute:$("#m_attribute"),bottom:$("#m_bottom"),title:$("#m_title"),status:$("#m_status"),statusbar:$("#m_statusbar"),status_text:$("#status_text"),droparea:$("#dropArea")};if(this.lang==null)this.setlang(lang,function(){system.initdata()});
|
|
|
|
|
else this.initdata()},resetLangText:function(parent){if(!parent)parent=$;var items=parent.find("*[system-lang]");$.each(items,function(key,item){var name=$(item).attr("system-lang");if(name.substr(0,1)=="[")$(item).html(eval("system.lang"+name));else $(item).html(eval("system.lang."+name))});items=parent.find("*[system-tip-lang]");$.each(items,function(key,item){var name=$(item).attr("system-tip-lang");if(name.substr(0,1)=="[")$(item).attr("title",eval("system.lang"+name));else $(item).attr("title",
|
|
|
|
|
eval("system.lang."+name))})},initdata:function(){$(document).attr("title",this.lang.system.title+" "+this.version);var buttons=new Array;var title="\x3cspan\x3e"+this.lang.title.left+"\x3c/span\x3e";buttons.push("\x3cspan class\x3d'tree-title-toolbar'\x3e");for(var key in this.lang.tree.toolbar.nav){var value=this.lang.tree.toolbar.nav[key];buttons.push('\x3ca href\x3d"javascript:void(0);" id\x3d"tree-toolbar-nav-'+key+'" class\x3d"easyui-linkbutton" data-options\x3d"plain:true,iconCls:\'icon-disabled\'" onclick\x3d"javascript:system.navToolbarClick(this);"\x3e'+
|
|
|
|
|
var system={version:"1.4.0",rootPath:"tr-web-control/",codeupdate:"20171108",configHead:"transmission-web-control",config:{autoReload:true,reloadStep:5E3,pageSize:30,pagination:true,pageList:[10,20,30,40,50,100,150,200,250,300],defaultSelectNode:null,autoExpandAttribute:false,defaultLang:"",foldersShow:false},storageKeys:{dictionary:{folders:"dictionary.folders"}},dictionary:{folders:null},checkUpdateScript:"https://raw.githubusercontent.com/ronggang/transmission-web-control/dev/release/update.json",
|
|
|
|
|
contextMenus:{},panel:null,lang:null,reloading:false,autoReloadTimer:null,downloadDir:"",islocal:false,B64:new Base64,currentTorrentId:0,control:{tree:null,torrentlist:null},userConfig:{torrentList:{fields:[],sortName:null,sortOrder:"asc"}},serverConfig:null,serverSessionStats:null,templates:{},setlang:function(lang,callback){if(!lang)if(this.config.defaultLang)lang=this.config.defaultLang;else lang=navigator.language||navigator.browserLanguage;if(!lang)lang="zh-CN";if(lang.indexOf("-")!=-1)lang=
|
|
|
|
|
lang.split("-")[0].toLocaleLowerCase()+"-"+lang.split("-")[1].toLocaleUpperCase();if(!this.languages[lang])lang="en";$.getScript(system.rootPath+"lang/"+lang+".js",function(){system.lang=$.extend(true,system.defaultLang,system.lang);system.resetLangText();$.getScript(system.rootPath+"script/easyui/locale/easyui-lang-"+lang.replace("-","_")+".js").done(function(script,textStatus){if(callback)callback()}).fail(function(jqxhr,settings,exception){$.getScript(system.rootPath+"script/easyui/locale/easyui-lang-en.js",
|
|
|
|
|
function(){if(callback)callback()})})})},init:function(lang,islocal,devicetype){this.readConfig();this.islocal=islocal==1?true:false;this.panel={main:$("#main"),top:$("#m_top"),toolbar:$("#m_toolbar"),left_layout:$("#m_left_layout"),left:$("#m_left"),body:$("#m_body"),layout_body:$("#layout_body"),list:$("#m_list"),attribute:$("#m_attribute"),bottom:$("#m_bottom"),title:$("#m_title"),status:$("#m_status"),statusbar:$("#m_statusbar"),status_text:$("#status_text"),droparea:$("#dropArea")};if(this.lang==
|
|
|
|
|
null)this.setlang(lang,function(){system.initdata()});else this.initdata()},resetLangText:function(parent){if(!parent)parent=$;var items=parent.find("*[system-lang]");$.each(items,function(key,item){var name=$(item).attr("system-lang");if(name.substr(0,1)=="[")$(item).html(eval("system.lang"+name));else $(item).html(eval("system.lang."+name))});items=parent.find("*[system-tip-lang]");$.each(items,function(key,item){var name=$(item).attr("system-tip-lang");if(name.substr(0,1)=="[")$(item).attr("title",
|
|
|
|
|
eval("system.lang"+name));else $(item).attr("title",eval("system.lang."+name))})},initdata:function(){$(document).attr("title",this.lang.system.title+" "+this.version);var buttons=new Array;var title="\x3cspan\x3e"+this.lang.title.left+"\x3c/span\x3e";buttons.push("\x3cspan class\x3d'tree-title-toolbar'\x3e");for(var key in this.lang.tree.toolbar.nav){var value=this.lang.tree.toolbar.nav[key];buttons.push('\x3ca href\x3d"javascript:void(0);" id\x3d"tree-toolbar-nav-'+key+'" class\x3d"easyui-linkbutton" data-options\x3d"plain:true,iconCls:\'icon-disabled\'" onclick\x3d"javascript:system.navToolbarClick(this);"\x3e'+
|
|
|
|
|
value+"\x3c/a\x3e")}buttons.push("\x3c/span\x3e");if(buttons.length>1){title+=buttons.join("");this.panel.left_layout.panel("setTitle",title);for(var key in this.lang.tree.toolbar.nav){$("#tree-toolbar-nav-"+key).linkbutton();switch(key){case "folders":if(system.config.foldersShow)$("tree-toolbar-nav-"+key).linkbutton({iconCls:"icon-enabled"}).data("status",1);else $("tree-toolbar-nav-"+key).linkbutton({iconCls:"icon-disabled"}).data("status",0);break;default:break}}}else this.panel.left_layout.panel("setTitle",
|
|
|
|
|
title);title="\x3cspan\x3e"+this.lang.title.list+"\x3c/span\x3e";buttons.length=0;buttons.push("\x3cspan class\x3d'tree-title-toolbar'\x3e");for(var key in this.lang["torrent-head"].buttons){var value=this.lang["torrent-head"].buttons[key];buttons.push('\x3ca href\x3d"javascript:void(0);" id\x3d"torrent-head-buttons-'+key+'" class\x3d"easyui-linkbutton" data-options\x3d"plain:true,iconCls:\'icon-disabled\'" onclick\x3d"javascript:system.navToolbarClick(this);"\x3e'+value+"\x3c/a\x3e")}buttons.push("\x3c/span\x3e");
|
|
|
|
|
if(buttons.length>1){title+=buttons.join("");this.panel.body.panel("setTitle",title);for(var key in this.lang["torrent-head"].buttons){$("#torrent-head-buttons-"+key).linkbutton();switch(key){case "autoExpandAttribute":if(system.config.autoExpandAttribute)$("#torrent-head-buttons-"+key).linkbutton({iconCls:"icon-enabled"}).data("status",1);else $("#torrent-head-buttons-"+key).linkbutton({iconCls:"icon-disabled"}).data("status",0);break;default:break}}}else this.panel.body.panel("setTitle",title);
|
|
|
|
|
this.panel.status.panel("setTitle",this.lang.title.status);this.panel.attribute.panel({title:this.lang.title.attribute,onExpand:function(){if(system.currentTorrentId!=0&&$(this).data("isload"))system.getTorrentInfos(system.currentTorrentId);else system.clearTorrentAttribute()},onLoad:function(){if(!$(this).data("isload")){$(this).data("isload",true);if(system.currentTorrentId!=0)setTimeout(function(){system.getTorrentInfos(system.currentTorrentId)},500)}}});$.each(this.languages,function(key,value){$("\x3coption/\x3e").text(value).val(key).attr("selected",
|
|
|
|
|
key==system.lang.name?true:false).appendTo(system.panel.top.find("#lang"))});this.panel.top.find("#lang").change(function(){location.href="?lang\x3d"+this.value});this.panel.toolbar.attr("class","panel-header");this.initTree();this.initToolbar();this.initStatusBar();this.initTorrentTable();this.connect();this.initEvent()},initEvent:function(){$(window).resize(function(){$("#main").layout("resize")});this.panel.droparea[0].addEventListener("dragover",function(e){e.stopPropagation();e.preventDefault();
|
|
|
|
|
system.debug("#dropArea.dragover")},false);this.panel.list[0].addEventListener("dragover",function(e){e.stopPropagation();e.preventDefault();system.panel.droparea.show();system.debug("dragover")},false);this.panel.droparea[0].addEventListener("drop",function(e){e.stopPropagation();e.preventDefault();system.panel.droparea.hide();system.debug("drop.e.dataTransfer:",e.dataTransfer);system.checkDropFiles(e.dataTransfer.files)},false);this.panel.droparea[0].addEventListener("dragleave",function(e){e.stopPropagation();
|
|
|
|
|
e.preventDefault();system.panel.droparea.hide();system.debug("dragleave")},false);$("#text-drop-title").html(this.lang["public"]["text-drop-title"])},navToolbarClick:function(source){var key=source.id;var status=$(source).data("status");var treenode=null;switch(key){case "tree-toolbar-nav-folders":treenode=this.panel.left.tree("find","folders");if(status==1)this.config.foldersShow=false;else this.config.foldersShow=true;break;case "tree-toolbar-nav-statistics":treenode=this.panel.left.tree("find",
|
|
|
|
|
"statistics");break;case "torrent-head-buttons-autoExpandAttribute":treenode={};treenode.target=null;if(status==1)this.config.autoExpandAttribute=false;else this.config.autoExpandAttribute=true;break}if(!treenode)return;if(status==1){$(source).linkbutton({iconCls:"icon-disabled"});$(treenode.target).parent().hide();status=0}else{$(source).linkbutton({iconCls:"icon-enabled"});$(treenode.target).parent().show();status=1}$(source).data("status",status);this.saveConfig()},checkDropFiles:function(sources){if(!sources||
|
|
|
|
|
!sources.length)return;var files=new Array;for(var i=0;i<sources.length;i++){var file=sources[i];if(file.name.split(".").pop().toLowerCase()=="torrent")files.push(file)}if(files.length>0)system.openDialogFromTemplate({id:"dialog-torrent-addfile",options:{title:system.lang.toolbar["add-torrent"],width:620,height:300,resizable:true},datas:{"files":files}})},initTree:function(){this.panel.left.tree({data:[{id:"torrent-all",iconCls:"icon-home",text:this.lang.tree.all+" ("+this.lang.tree.status.loading+
|
|
|
|
|
")",children:[{id:"downloading",text:this.lang.tree.downloading,iconCls:"icon-download"},{id:"paused",text:this.lang.tree.paused,iconCls:"icon-pause"},{id:"sending",text:this.lang.tree.sending,iconCls:"icon-seed"},{id:"check",text:this.lang.tree.check,iconCls:"icon-check"},{id:"actively",text:this.lang.tree.actively,iconCls:"icon-actively"},{id:"error",text:this.lang.tree.error,iconCls:"icon-error"},{id:"warning",text:this.lang.tree.warning,iconCls:"icon-warning"}]},{id:"servers",text:this.lang.tree.servers,
|
|
|
|
|
state:"closed",iconCls:"icon-servers",children:[{id:"servers-loading",text:this.lang.tree.status.loading,iconCls:"tree-loading"}]},{id:"folders",text:this.lang.tree.folders,children:[{id:"folders-loading",text:this.lang.tree.status.loading,iconCls:"tree-loading"}]},{id:"statistics",text:this.lang.tree.statistics.title,state:"closed",iconCls:"icon-chart",children:[{id:"cumulative-stats",text:this.lang.tree.statistics.cumulative,children:[{id:"uploadedBytes",text:this.lang.tree.statistics.uploadedBytes},
|
|
|
|
|
{id:"downloadedBytes",text:this.lang.tree.statistics.downloadedBytes},{id:"filesAdded",text:this.lang.tree.statistics.filesAdded},{id:"sessionCount",text:this.lang.tree.statistics.sessionCount},{id:"secondsActive",text:this.lang.tree.statistics.secondsActive}]},{id:"current-stats",text:this.lang.tree.statistics.current,children:[{id:"current-uploadedBytes",text:this.lang.tree.statistics.uploadedBytes},{id:"current-downloadedBytes",text:this.lang.tree.statistics.downloadedBytes},{id:"current-filesAdded",
|
|
|
|
|
text:this.lang.tree.statistics.filesAdded},{id:"current-sessionCount",text:this.lang.tree.statistics.sessionCount},{id:"current-secondsActive",text:this.lang.tree.statistics.secondsActive}]}]}],onSelect:function(node){system.loadTorrentToList({node:node})},lines:true});for(var key in this.lang.tree.toolbar.nav){var treenode=this.panel.left.tree("find",key);switch(key){case "folders":if(system.config.foldersShow){$("#tree-toolbar-nav-"+key).click();$(treenode.target).parent().show()}else $(treenode.target).parent().hide()}}if(this.config.defaultSelectNode){var node=
|
|
|
|
|
this.panel.left.tree("find",this.config.defaultSelectNode);if(node)this.panel.left.tree("select",node.target)}},initTorrentTable:function(){this.control.torrentlist=$("\x3ctable/\x3e").attr("class","torrent-list").appendTo(this.panel.list);var headContextMenu=null;var selectedIndex=-1;var flag_onselect=false;$.get(system.rootPath+"template/torrent-fields.json?time\x3d"+new Date,function(data){var fields=data.fields;if(system.userConfig.torrentList.fields.length!=0)fields=system.userConfig.torrentList.fields;
|
|
|
|
|
key==system.lang.name?true:false).appendTo(system.panel.top.find("#lang"))});this.panel.top.find("#lang").change(function(){location.href="?lang\x3d"+this.value});this.panel.toolbar.attr("class","panel-header");this.initTree();this.initToolbar();this.initStatusBar();this.initTorrentTable();this.connect();this.initEvent();this.checkUpdate()},initEvent:function(){$(window).resize(function(){$("#main").layout("resize")});this.panel.droparea[0].addEventListener("dragover",function(e){e.stopPropagation();
|
|
|
|
|
e.preventDefault();system.debug("#dropArea.dragover")},false);this.panel.list[0].addEventListener("dragover",function(e){e.stopPropagation();e.preventDefault();system.panel.droparea.show();system.debug("dragover")},false);this.panel.droparea[0].addEventListener("drop",function(e){e.stopPropagation();e.preventDefault();system.panel.droparea.hide();system.debug("drop.e.dataTransfer:",e.dataTransfer);system.checkDropFiles(e.dataTransfer.files)},false);this.panel.droparea[0].addEventListener("dragleave",
|
|
|
|
|
function(e){e.stopPropagation();e.preventDefault();system.panel.droparea.hide();system.debug("dragleave")},false);$("#text-drop-title").html(this.lang["public"]["text-drop-title"])},navToolbarClick:function(source){var key=source.id;var status=$(source).data("status");var treenode=null;switch(key){case "tree-toolbar-nav-folders":treenode=this.panel.left.tree("find","folders");if(status==1)this.config.foldersShow=false;else this.config.foldersShow=true;break;case "tree-toolbar-nav-statistics":treenode=
|
|
|
|
|
this.panel.left.tree("find","statistics");break;case "torrent-head-buttons-autoExpandAttribute":treenode={};treenode.target=null;if(status==1)this.config.autoExpandAttribute=false;else this.config.autoExpandAttribute=true;break}if(!treenode)return;if(status==1){$(source).linkbutton({iconCls:"icon-disabled"});$(treenode.target).parent().hide();status=0}else{$(source).linkbutton({iconCls:"icon-enabled"});$(treenode.target).parent().show();status=1}$(source).data("status",status);this.saveConfig()},
|
|
|
|
|
checkDropFiles:function(sources){if(!sources||!sources.length)return;var files=new Array;for(var i=0;i<sources.length;i++){var file=sources[i];if(file.name.split(".").pop().toLowerCase()=="torrent")files.push(file)}if(files.length>0)system.openDialogFromTemplate({id:"dialog-torrent-addfile",options:{title:system.lang.toolbar["add-torrent"],width:620,height:300,resizable:true},datas:{"files":files}})},initTree:function(){this.panel.left.tree({data:[{id:"torrent-all",iconCls:"icon-home",text:this.lang.tree.all+
|
|
|
|
|
" ("+this.lang.tree.status.loading+")",children:[{id:"downloading",text:this.lang.tree.downloading,iconCls:"icon-download"},{id:"paused",text:this.lang.tree.paused,iconCls:"icon-pause"},{id:"sending",text:this.lang.tree.sending,iconCls:"icon-seed"},{id:"check",text:this.lang.tree.check,iconCls:"icon-check"},{id:"actively",text:this.lang.tree.actively,iconCls:"icon-actively"},{id:"error",text:this.lang.tree.error,iconCls:"icon-error"},{id:"warning",text:this.lang.tree.warning,iconCls:"icon-warning"}]},
|
|
|
|
|
{id:"servers",text:this.lang.tree.servers,state:"closed",iconCls:"icon-servers",children:[{id:"servers-loading",text:this.lang.tree.status.loading,iconCls:"tree-loading"}]},{id:"folders",text:this.lang.tree.folders,children:[{id:"folders-loading",text:this.lang.tree.status.loading,iconCls:"tree-loading"}]},{id:"statistics",text:this.lang.tree.statistics.title,state:"closed",iconCls:"icon-chart",children:[{id:"cumulative-stats",text:this.lang.tree.statistics.cumulative,children:[{id:"uploadedBytes",
|
|
|
|
|
text:this.lang.tree.statistics.uploadedBytes},{id:"downloadedBytes",text:this.lang.tree.statistics.downloadedBytes},{id:"filesAdded",text:this.lang.tree.statistics.filesAdded},{id:"sessionCount",text:this.lang.tree.statistics.sessionCount},{id:"secondsActive",text:this.lang.tree.statistics.secondsActive}]},{id:"current-stats",text:this.lang.tree.statistics.current,children:[{id:"current-uploadedBytes",text:this.lang.tree.statistics.uploadedBytes},{id:"current-downloadedBytes",text:this.lang.tree.statistics.downloadedBytes},
|
|
|
|
|
{id:"current-filesAdded",text:this.lang.tree.statistics.filesAdded},{id:"current-sessionCount",text:this.lang.tree.statistics.sessionCount},{id:"current-secondsActive",text:this.lang.tree.statistics.secondsActive}]}]}],onSelect:function(node){system.loadTorrentToList({node:node})},lines:true});for(var key in this.lang.tree.toolbar.nav){var treenode=this.panel.left.tree("find",key);switch(key){case "folders":if(system.config.foldersShow){$("#tree-toolbar-nav-"+key).click();$(treenode.target).parent().show()}else $(treenode.target).parent().hide()}}if(this.config.defaultSelectNode){var node=
|
|
|
|
|
this.panel.left.tree("find",this.config.defaultSelectNode);if(node)this.panel.left.tree("select",node.target)}},initTorrentTable:function(){this.control.torrentlist=$("\x3ctable/\x3e").attr("class","torrent-list").appendTo(this.panel.list);var headContextMenu=null;var selectedIndex=-1;var flag_onselect=false;$.get(system.rootPath+"template/torrent-fields.json?time\x3d"+new Date,function(data){var fields=data.fields;if(system.userConfig.torrentList.fields.length!=0)fields=$.extend(fields,system.userConfig.torrentList.fields);
|
|
|
|
|
var _fields=JSON.stringify(fields);system.userConfig.torrentList.fields=JSON.parse(_fields);for(var key in fields){fields[key].title=system.lang.torrent.fields[fields[key].field]||fields[key].field;system.setFieldFormat(fields[key])}system.control.torrentlist.datagrid({autoRowHeight:false,pagination:system.config.pagination,rownumbers:true,remoteSort:false,checkOnSelect:false,pageSize:system.config.pageSize,pageList:system.config.pageList,idField:"id",fit:true,striped:true,sortName:system.userConfig.torrentList.sortName,
|
|
|
|
|
sortOrder:system.userConfig.torrentList.sortOrder,drophead:true,columns:[fields],onCheck:function(rowIndex,rowData){system.checkTorrentRow(rowIndex,rowData)},onUncheck:function(rowIndex,rowData){system.checkTorrentRow(rowIndex,rowData)},onCheckAll:function(rows){system.checkTorrentRow("all",false)},onUncheckAll:function(rows){system.checkTorrentRow("all",true)},onSelect:function(rowIndex,rowData){if(selectedIndex!=-1){flag_onselect=true;system.control.torrentlist.datagrid("unselectRow",selectedIndex);
|
|
|
|
|
flag_onselect=false}if(system.config.autoExpandAttribute)if(system.panel.attribute.panel("options").collapsed)system.panel.layout_body.layout("expand","south");system.getTorrentInfos(rowData.id);selectedIndex=rowIndex},onUnselect:function(rowIndex,rowData){if(system.config.autoExpandAttribute)if(flag_onselect==false)if(!system.panel.attribute.panel("options").collapsed)system.panel.layout_body.layout("collapse","south");system.currentTorrentId=0;selectedIndex=-1},onBeforeLoad:function(param){system.currentTorrentId=
|
|
|
|
|
@@ -89,15 +89,15 @@ formatLongTime(stats[key]);break;case "lastAnnounceSucceeded":case "lastAnnounce
|
|
|
|
|
item[key];var percentDone=parseFloat(item.progress*100).toFixed(2);rowdata.progress=system.getTorrentProgressBar(percentDone,transmission._status.download);datas.push(rowdata)}this.updateCurrentPageDatas("address",datas,system.panel.attribute.find("#torrent-peers-table"))},fillTorrentConfig:function(torrent){if(system.panel.attribute.find("#torrent-attribute-tabs").data("selectedIndex")!=4)return;transmission.torrents.getConfig(torrent.id,function(result){if(result==null)return;var torrent=transmission.torrents.all[system.currentTorrentId];
|
|
|
|
|
jQuery.extend(torrent,result[0]);if(system.currentTorrentId==0)return;$.each(result[0],function(key,value){var indeterminate=false;var checked=false;var useTag=false;switch(key){case "seedIdleMode":case "seedRatioMode":if(value==0){checked=false;indeterminate=true}useTag=true;case "downloadLimited":case "uploadLimited":if(value==true||value==1)checked=true;system.panel.attribute.find("input[enabledof\x3d'"+key+"']").prop("disabled",!checked);if(useTag)system.panel.attribute.find("#"+key).prop("indeterminate",
|
|
|
|
|
indeterminate).data("_tag",value);system.panel.attribute.find("#"+key).prop("checked",checked);break;default:system.panel.attribute.find("#"+key).val(value);system.panel.attribute.find("#"+key).numberspinner("setValue",value);break}})})},setFieldFormat:function(field){if(field.formatter)switch(field.formatter){case "size":field.formatter=function(value,row,index){return formatSize(value)};break;case "speed":field.formatter=function(value,row,index){return formatSize(value,true,"speed")};break;case "longtime":field.formatter=
|
|
|
|
|
function(value,row,index){return formatLongTime(value)};break;case "progress":field.formatter=function(value,row,index){var percentDone=parseFloat(value*100).toFixed(2);return system.getTorrentProgressBar(percentDone,transmission.torrents.all[row["id"]])};break;case "_usename_":switch(field.field){case "name":field.formatter=function(value,row,index){return system.getTorrentNameBar(transmission.torrents.all[row["id"]])};break}break}},reloadData:function(){this.reloadSession();this.reloading=false;
|
|
|
|
|
this.getServerStatus();this.reloading=false;this.reloadTorrentBaseInfos();this.checkTorrentRow("all",false)},loadFolderList:function(oldFolders){this.removeTreeNode("folders-loading");for(var index in oldFolders){var item=oldFolders[index];if(item)system.removeTreeNode(item.nodeid)}if(transmission.downloadDirs.length==0)return;timedChunk(transmission.downloadDirs,this.appendFolder,this,10,function(){if(navigator.userAgent.indexOf("Firefox")>0)system.panel.left.find("span.nav-total-size").css({"margin-top":"-19px"})})},
|
|
|
|
|
appendFolder:function(fullkey){if(!fullkey)return;var rootkey="folders";var parentkey=rootkey;var folder=fullkey.split("/");var key=rootkey+"-";for(var i in folder){var name=folder[i];if(name=="")continue;key+=this.B64.encode(name);var node=this.panel.left.tree("find",key);var folderinfos=transmission.torrents.folders[key];var text=name+this.showNodeMoreInfos(folderinfos.count,folderinfos.size);if(!node){this.appendTreeNode(parentkey,[{id:key,text:text}]);if(parentkey!=rootkey){node=this.panel.left.tree("find",
|
|
|
|
|
parentkey);this.panel.left.tree("collapse",node.target)}}else this.updateTreeNodeText(key,text);parentkey=key}},replaceURI:function(text){var reg=/(http|https|ftp):\/\/([^/:]+)(:\d*)?([^# ]*)/ig;return text.replace(reg,function(url){return'\x3ca href\x3d"'+url+'" target\x3d"_blank"\x3e'+url+"\x3c/a\x3e"})},readConfig:function(){this.readUserConfig();var config=this.getStorageData(this.configHead+".system");if(config)this.config=$.extend(this.config,JSON.parse(config));for(var key in this.storageKeys.dictionary)this.dictionary[key]=
|
|
|
|
|
this.getStorageData(this.storageKeys.dictionary[key])},saveConfig:function(){this.setStorageData(this.configHead+".system",JSON.stringify(this.config));for(var key in this.storageKeys.dictionary)this.setStorageData(this.storageKeys.dictionary[key],this.dictionary[key]);this.saveUserConfig()},readUserConfig:function(){var local=window.localStorage[this.configHead];if(local){var localOptions=JSON.parse(local);this.userConfig=$.extend(true,this.userConfig,localOptions)}},saveUserConfig:function(){window.localStorage[this.configHead]=
|
|
|
|
|
JSON.stringify(this.userConfig)},uploadTorrentFile:function(fileInputId,savePath,paused,callback){if(window.FileReader){var files=$("input[id\x3d'"+fileInputId+"']")[0].files;$.each(files,function(index,file){transmission.addTorrentFromFile(file,savePath,paused,callback,files.length)})}else alert(system.lang["publit"]["text-browsers-not-support-features"])},checkUpdate:function(){$.getScript(this.checkUpdateScript,function(){if(system.codeupdate<system.lastUpdateInfos.update){$("#area-update-infos").show();
|
|
|
|
|
$("#msg-updateInfos").html(system.lastUpdateInfos.update+" -\x3e "+system.lastUpdateInfos.infos)}else $("#area-update-infos").hide()})},changeLanguages:function(lang){if(lang==this.lang.name||!lang)return;this.config.defaultLang=lang;this.saveConfig();location.href="?lang\x3d"+lang},getStorageData:function(key,defaultValue){return window.localStorage[key]==null?defaultValue:window.localStorage[key]},setStorageData:function(key,value){window.localStorage[key]=value},openDialogFromTemplate:function(config){var defaultConfig=
|
|
|
|
|
{id:null,options:null,datas:null};config=$.extend(true,defaultConfig,config);if(config.id==null)return;var dialogId=config.id;var options=config.options;var datas=config.datas;var dialog=$("#"+dialogId);if(dialog.length){dialog.dialog("open");if(datas)$.each(datas,function(key,value){dialog.data(key,value)});dialog.dialog({content:system.templates[dialogId]});return}var defaultOptions={title:"",width:100,height:100,resizable:false,cache:true,content:"loading...",modal:true};options=$.extend(true,
|
|
|
|
|
defaultOptions,options);$("\x3cdiv/\x3e").attr("id",dialogId).appendTo(document.body).dialog(options);$.get(system.rootPath+"template/"+dialogId+".html?time\x3d"+new Date,function(data){system.templates[dialogId]=data;if(datas)$.each(datas,function(key,value){$("#"+dialogId).data(key,value)});$("#"+dialogId).dialog({content:data})})},debug:function(label,text){if(window.console)if(window.console.log)window.console.log(label,text)}};
|
|
|
|
|
$(document).ready(function(){$.getScript(system.rootPath+"lang/default.js");$.getScript(system.rootPath+"lang/_languages.js",function(){system.init(location.search.getQueryString("lang"),location.search.getQueryString("local"))})});
|
|
|
|
|
function(value,row,index){return formatLongTime(value)};break;case "progress":field.formatter=function(value,row,index){var percentDone=parseFloat(value*100).toFixed(2);return system.getTorrentProgressBar(percentDone,transmission.torrents.all[row["id"]])};break;case "_usename_":switch(field.field){case "name":field.formatter=function(value,row,index){return system.getTorrentNameBar(transmission.torrents.all[row["id"]])};break}break;case "ratio":field.formatter=function(value,row,index){var className=
|
|
|
|
|
"";if(parseFloat(value)<1)className="text-status-warning";return'\x3cspan class\x3d"'+className+'"\x3e'+value+"\x3c/span\x3e"};break}},reloadData:function(){this.reloadSession();this.reloading=false;this.getServerStatus();this.reloading=false;this.reloadTorrentBaseInfos();this.checkTorrentRow("all",false)},loadFolderList:function(oldFolders){this.removeTreeNode("folders-loading");for(var index in oldFolders){var item=oldFolders[index];if(item)system.removeTreeNode(item.nodeid)}if(transmission.downloadDirs.length==
|
|
|
|
|
0)return;timedChunk(transmission.downloadDirs,this.appendFolder,this,10,function(){if(navigator.userAgent.indexOf("Firefox")>0)system.panel.left.find("span.nav-total-size").css({"margin-top":"-19px"})})},appendFolder:function(fullkey){if(!fullkey)return;var rootkey="folders";var parentkey=rootkey;var folder=fullkey.split("/");var key=rootkey+"-";for(var i in folder){var name=folder[i];if(name=="")continue;key+=this.B64.encode(name);var node=this.panel.left.tree("find",key);var folderinfos=transmission.torrents.folders[key];
|
|
|
|
|
var text=name+this.showNodeMoreInfos(folderinfos.count,folderinfos.size);if(!node){this.appendTreeNode(parentkey,[{id:key,text:text}]);if(parentkey!=rootkey){node=this.panel.left.tree("find",parentkey);this.panel.left.tree("collapse",node.target)}}else this.updateTreeNodeText(key,text);parentkey=key}},replaceURI:function(text){var reg=/(http|https|ftp):\/\/([^/:]+)(:\d*)?([^# ]*)/ig;return text.replace(reg,function(url){return'\x3ca href\x3d"'+url+'" target\x3d"_blank"\x3e'+url+"\x3c/a\x3e"})},readConfig:function(){this.readUserConfig();
|
|
|
|
|
var config=this.getStorageData(this.configHead+".system");if(config)this.config=$.extend(this.config,JSON.parse(config));for(var key in this.storageKeys.dictionary)this.dictionary[key]=this.getStorageData(this.storageKeys.dictionary[key])},saveConfig:function(){this.setStorageData(this.configHead+".system",JSON.stringify(this.config));for(var key in this.storageKeys.dictionary)this.setStorageData(this.storageKeys.dictionary[key],this.dictionary[key]);this.saveUserConfig()},readUserConfig:function(){var local=
|
|
|
|
|
window.localStorage[this.configHead];if(local){var localOptions=JSON.parse(local);this.userConfig=$.extend(true,this.userConfig,localOptions)}},saveUserConfig:function(){window.localStorage[this.configHead]=JSON.stringify(this.userConfig)},uploadTorrentFile:function(fileInputId,savePath,paused,callback){if(window.FileReader){var files=$("input[id\x3d'"+fileInputId+"']")[0].files;$.each(files,function(index,file){transmission.addTorrentFromFile(file,savePath,paused,callback,files.length)})}else alert(system.lang["publit"]["text-browsers-not-support-features"])},
|
|
|
|
|
checkUpdate:function(){$.ajax({url:this.checkUpdateScript,dataType:"json",success:function(result){if(result&&result.update)if(system.codeupdate<result.update){$("#area-update-infos").show();$("#msg-updateInfos").html(result.update+" -\x3e "+result.infos)}else $("#area-update-infos").hide()}})},changeLanguages:function(lang){if(lang==this.lang.name||!lang)return;this.config.defaultLang=lang;this.saveConfig();location.href="?lang\x3d"+lang},getStorageData:function(key,defaultValue){return window.localStorage[key]==
|
|
|
|
|
null?defaultValue:window.localStorage[key]},setStorageData:function(key,value){window.localStorage[key]=value},openDialogFromTemplate:function(config){var defaultConfig={id:null,options:null,datas:null};config=$.extend(true,defaultConfig,config);if(config.id==null)return;var dialogId=config.id;var options=config.options;var datas=config.datas;var dialog=$("#"+dialogId);if(dialog.length){dialog.dialog("open");if(datas)$.each(datas,function(key,value){dialog.data(key,value)});dialog.dialog({content:system.templates[dialogId]});
|
|
|
|
|
return}var defaultOptions={title:"",width:100,height:100,resizable:false,cache:true,content:"loading...",modal:true};options=$.extend(true,defaultOptions,options);$("\x3cdiv/\x3e").attr("id",dialogId).appendTo(document.body).dialog(options);$.get(system.rootPath+"template/"+dialogId+".html?time\x3d"+new Date,function(data){system.templates[dialogId]=data;if(datas)$.each(datas,function(key,value){$("#"+dialogId).data(key,value)});$("#"+dialogId).dialog({content:data})})},debug:function(label,text){if(window.console)if(window.console.log)window.console.log(label,
|
|
|
|
|
text)}};$(document).ready(function(){$.getScript(system.rootPath+"lang/default.js");$.getScript(system.rootPath+"lang/_languages.js",function(){system.init(location.search.getQueryString("lang"),location.search.getQueryString("local"))})});
|
|
|
|
|
function pagerFilter(data){if(typeof data.length=="number"&&typeof data.splice=="function")data={total:data.length,rows:data};var dg=$(this);var opts=dg.datagrid("options");var pager=dg.datagrid("getPager");var buttons=dg.data("buttons");pager.pagination({onSelectPage:function(pageNum,pageSize){opts.pageNumber=pageNum;opts.pageSize=pageSize;pager.pagination("refresh",{pageNumber:pageNum,pageSize:pageSize});dg.datagrid("loadData",data)},buttons:buttons});if(!data.originalRows)data.originalRows=data.rows;
|
|
|
|
|
var start=(opts.pageNumber-1)*parseInt(opts.pageSize);var end=start+parseInt(opts.pageSize);data.rows=data.originalRows.slice(start,end);return data};
|
|
|
|
|
|