//显示文件列表
//Ref by JQuery,DiskCommon,ListPager
var acceptPhotoExtend = "bmp,gif,ico,jpg,jpeg,png,tif,";
var acceptMusicExtend = "mid,wma,wav,mp3,cda,";
var FileList = {
/* 资源代码 start */
//接口地址
Uri : {
GetCapacity: function(){
return "/Ajax/GetDiskCapacity.ashx";
},
GetFileCount: function(){
return "/Ajax/GetFileCountInAllSubDirectory.ashx";
},
GetFileList: function(){
return "/Ajax/GetFileList.ashx";
},
GetTimeSliceURL:function(){
return "/ajax/getService.aspx?ajaxtype=getcgides&rnd=" + Math.random();
},
GetCGIProcessURL:function(){
return "/ajax/getService.aspx?ajaxtype=cgiprocess&rnd=" + Math.random();//公共URL
},
GetFormatDirectory : function(){
return "/Ajax/GetFormatDirectory.ashx";
},
// GetMMSURL:function(){
// return "http://uc.rd139.com";//uc对应生产线上就是 http://g1.n20svrg.139.com
// },
GetSubmitURL:function(){
return "/Ajax/SubmitData.ashx";
}
},
//提示语
Messages:{
Res_Fail :"下载出错",
Res_CheckFile :"请选择可操作的文件",
Res_UserSize :"尊敬的用户,您好!网盘文件单次打包下载限量为{size}M请您重新选择文件再下载!",
Res_Del_Fail :"删除失败!",
Res_Del_Success :"删除成功!",
CanNotMoveSysFolder :"“{0}”是系统文件夹,不能移动!",
ImageCanNotCopy :"只有图片文件才能移动到“我的相册”中!",
MusicCanNotCopy :"只有音乐文件才能移动到“我的音乐”中!",
SameDiretory :"您不能选择本文件夹移动到本文件夹",
SendFiveFile :"一次只能发送5个文件,请取消部分文件",
CanNotSendFolder :"只能快递文件,暂不支持文件夹快递!",
SendOneMMSFile :"通过彩信发送文件快递只能操作一个文件",
//MoveFolderToImg_Fail :"移动出错:不能向“我的相册”中移动文件夹",
// MoveFolderToMusic_Fail :"移动出错:不能向“我的音乐”中移动文件夹",
MoveSlefFolder_Fail :"不允许将一个目录移动到它的子目录下面!",
HaveSameName_Fail :"移动出错:已有同名目录/文件存在!",
FiveMoreDir_Fail :"最多支持5级目录,超过5级不能移动!",
Move_Success :"移动成功",
Move_Fail :"移动失败"
},
/* 资源代码 End */
/* 行为代码 start */
Action: {
alert : function(msg, action){
Tool.FF.alert(msg, function(){
if(action) {
action();
}
});
},
resConfirmDelete:function(fileCount, folderCount)
{
var s = "确定要删除选定的";
var t = " ";
if (folderCount) {
t += folderCount + " 个文件夹";
}
if (fileCount) {
if (t != " ") {
t += "和 ";
}
t += fileCount + " 个文件";
}
t += "吗?删除后将无法恢复。";
s += t;
return s;
}
},
Event: {
//页面启动
initial : function(){
//工具栏按钮设定
Toolbar.initial();
FileList.Ajax.getAllDirectory();
$.disableElement($("#aDown"));
$.disableElement($("#aShare"));
$.disableElement($("#aSendFile"));
$.disableElement($("#aMove"));
$.disableElement($("#aDel"));
$.disableElement($("#aProperty"));
},
//全选的时候
clickCheckBoxAll: function(v, count){
FileList.Event.clickCheckBoxCommon();
},
//选单行的Checkbox的时候
clickCheckBoxInRow: function(checked, cb, row){
FileList.Render.renderCheckedRow(cb.checked, row);
FileList.Event.clickCheckBoxCommon();
},
clickCheckBoxCommon: function(){
var allChecked = $("#tbl-fileList>tr>td").find(":checked");
var selectCount = allChecked.length;
//文件快递
if(selectCount > 0){
$.enableElement($("#aDown"));
$.enableElement($("#aMove"));
$.enableElement($("#aDel"));
if(selectCount == 1){
$.enableElement($("#aProperty"));
}
else {
$.disableElement($("#aProperty"));
}
var isbreak = false;
allChecked.parent().parent().each(function(){
var type = $(this).data("data").TYPE;
if(type!="2"){
isbreak = true;
return false;
}
});
if(isbreak){
$.disableElement($("#aShare"));
}
else {
$.enableElement($("#aShare"));
}
}
else {
$.disableElement($("#aDown"));
$.disableElement($("#aShare"));
$.disableElement($("#aMove"));
$.disableElement($("#aDel"));
$.disableElement($("#aProperty"));
}
//控制文件快递
Toolbar.controlSendPanel({
data: $.grep(Toolbar.getAllSelectedRow(), function(n){
return n.TYPE == "2";
}),
preValid: function(){
return Toolbar.getCheckFolder("count") < 1;
}
});
},
//刷新列表
refresh: function(list, pid){
$.disableElement($("#aDown"));
$.disableElement($("#aShare"));
$.disableElement($("#aSendFile"));
$.disableElement($("#aMove"));
$.disableElement($("#aDel"));
$.disableElement($("#aProperty"));
var level = window["cachePid"].length;
if(level >= 5){
$.disableElement($("#aCreateDoc"));
}
else {
$.enableElement($("#aCreateDoc"));
}
}
},
/* 行为代码 end */
/* 界面代码 start */
Render: {
//显示容量
renderCapacity: function(data){
var usagePercent = (Math.round(data.useSize * 100 / data.allSize)) ;
var container = $("div.my-info");
container.find("div.progress>.pg-bg").css("width", usagePercent + "%");
container.find("div.progress>.pg-text").html(usagePercent + "%");
container = container.find("dl>dd");
$(container[0]).html(Tool.getFileSizeText(data.allSize)); //总容量
$(container[1]).html(Tool.getFileSizeText(data.useSize)); //已 用
$(container[2]).html(Tool.getFileSizeText(data.allSize - data.useSize)); //剩 余
$(container[3]).html(data.dNum + "个"); //文件夹
$(container[4]).html(data.fNum + "个"); //文 件
},
renderFileList: function(list){
$.getById("cbSelectAllFile", true).checked = false;
var table = $("#tbl-fileList");
table.empty();
if(list.length == 0){
$("div.tbl-list-null").show();
}
else {
$("div.tbl-list-null").hide();
$.each(list, function(){
var tempObj = this;
var imageCss = "";
var rowToolHTML = " <a class='fcI del' href='javascript:;'>删除</a>";
var isAudio = false;
switch(this.TYPE){
case "1" : //文件夹
case "3" : //相册
case "4" :{//音乐
imageCss = "folder";
rowToolHTML = "<a class='fcI open' href='javascript:;'>打开</a> <a class='fcI down' href='javascript:;'>下载</a>" + rowToolHTML;
break;
}
default : {
var ext = Tool.getFileExtName(this.ITEMNAME);
imageCss = Tool.getFileImageClass(ext);
if(tempObj.ISRESUME == 1) {
rowToolHTML = "<a class='fcI resume' href='javascript:;'>续传</a>" + rowToolHTML;
break;
}
var extType = Tool.getExtType(ext);
switch(extType){
case "pic":{
rowToolHTML = "<a class='fcI preview' href='javascript:;'>预览</a>" + rowToolHTML;
break;
}
case "audio":{
rowToolHTML = "<a class='fcI play' href='javascript:;'>播放</a>" + rowToolHTML;
//播放图标
isAudio = true;
break;
}
default:{
rowToolHTML = "<a class='fcI down' href='javascript:;'>下载</a>" + rowToolHTML;
break;
}
}
break;
}
}
if(this.ISSHARE === 0){
imageCss = "share";
}
var fragment = $(" \
<tr> \
<td class='t-check'> \
<input type='checkbox' /> \
<input type='hidden' id='hid{4}' /> \
</td> \
<td class='t-type'><i class='{3}'></i></td> \
<td class='t-name'><a class='title'>{0}</a><span class='subFileCount' /> \
<p>{5}</p> \
</td> \
<td class='t-date'>{1}</td> \
<td class='t-size'>{2}</td> \
</tr>".format(this.ITEMNAME
, this.CREATETIME || this.UPLOADTIME || ""
, this.ITEMSIZE==null?"":Tool.getFileSizeText(parseFloat(this.ITEMSIZE))
, imageCss
, this.ITEMID /* hidden 的id格式为["hid" + 真实id] */
, rowToolHTML)
);
fragment.click(function(){
var cb = $(this).find(":checkbox");
if(cb.length > 0 && !cb[0].disabled){
cb[0].checked = !cb[0].checked;
FileList.Event.clickCheckBoxInRow(cb[0].checked, cb[0], $(this));
}
});
//音频文件图标变换
if(isAudio){
fragment.find("td.t-type").hover(function(){
$(this).find("i").toggleClass(imageCss).toggleClass("mp3-hover");
}, function(){
$(this).find("i").toggleClass(imageCss).toggleClass("mp3-hover");
});
fragment.find("i").click(function(e){
window.top.MusicPlayer.appendSongList([{
FileId :tempObj.ITEMID,
Name :tempObj.ITEMNAME
}]);
e.stopPropagation();
});
}
//点击单选框
var cbSingleClick = function(cb){
var row = $(cb).parent().parent();
FileList.Event.clickCheckBoxInRow(cb.checked, cb, row);
}
var cbCtl = fragment.data("data", this) //缓存数据到Row
.find(":checkbox")
.click(function(e){
cbSingleClick(this);
e.stopPropagation();
});
if(this.TYPE == "3" || this.TYPE == "4"){
cbCtl.attr("disabled", true);
//隐藏删除按钮
fragment.find("a.del").remove();
}
if(tempObj.ISRESUME == 1){
cbCtl.attr("disabled", true);
}
//文件名下方的anchor
var anchorAction = {
"down" : function(){
FileList.Ajax.download(tempObj.ITEMID, tempObj.TYPE);
},
"del" : function(){
FileList.Ajax.deleteItem(tempObj.ITEMID,tempObj.TYPE);
},
"open" : function(){
if(tempObj.TYPE == "3"){
//打开相册
window.location = "album.html";
return ;
}
if(tempObj.TYPE == "4"){
//打开音乐
window.location = "music.html";
return ;
}
FileList.Ajax.getFileList(tempObj.ITEMID);
},
"play" : function(){
window.top.MusicPlayer.appendSongList([{
FileId :tempObj.ITEMID,
Name :tempObj.ITEMNAME
}]);
},
"preview" : function(){
//todo 预览图片
var url = "http://"+window.location.host+"/html/preview.htm?fileid={0}";
url = url.format(tempObj.FILEGUID);
top._diskPreviewdWindow = top.FloatingFrame.open("图片展览", url, 560,460, true, true);
},
"resume" : function(){
var pid = Toolbar.getCurrentDirectoryId();
Tool.openUpload(0,pid,encodeURIComponent(tempObj.ITEMNAME));
}
};
fragment.find("td.t-name>p>a").click(function(e){
var source = $(this);
$.each(anchorAction, function(name, actFunc){
if(source.hasClass(name)){
actFunc();
return false;
}
});
e.preventDefault();
e.stopPropagation();
});
fragment.find("td.t-name>a.title").click(function(e){
//执行下方的第一个行为
var a = $(this);
a.parent().find("p>a:eq(0)").click();
e.preventDefault();
e.stopPropagation();
});
table.append(fragment);
});
//呈现完成后,再读取FileCount
FileList.Ajax.getFileCount();
}
},
renderFileCount: function(list){
var table = $("#tbl-fileList");
table.find("tr").each(function(){
var row = $(this);
var data = row.data("data");
if(data.TYPE == "1" || data.TYPE == "3" || data.TYPE == "4"){
var id = data.ITEMID;
var count = 0;
$.each(list, function(){
if(this.ID == id){
count = this.fCount;
return false;
}
});
row.find("span.subFileCount").html("(" + count + ")");
}
else {
return false;
}
});
},
renderCheckedRow: function(checked, row){
if(!row.find("td>:checkbox").attr("disabled")){
if(checked){
if(!row.hasClass("t-checked")){
row.addClass("t-checked");
}
}
else {
if(row.hasClass("t-checked")){
row.removeClass("t-checked");
}
}
}
}
},
/* 界面代码 end */
/* 通讯代码 start */
Ajax:{
getUserInfo: function(){
if(!window["cacheUid"]){
window["cacheUid"] = Utils.queryString("sid", window.parent.location.href)
}
return window["cacheUid"];
},
getUserServerIP:function(){
return window.parent.DiskMainData.UserServerIP;
},
getUserNumber:function(){
return window.parent.DiskMainData.UserNumber;
},
//获取容量信息
getCapacity: function(){
$.postXml({
url : FileList.Uri.GetCapacity(),
data: XmlUtility.parseFromJson({
name : FileList.Ajax.getUserInfo()
}),
success: function(result){
if(result.resultCode == 0){
FileList.Render.renderCapacity(result.resultData);
}
else {
//服务器抛出异常
FileList.Action.alert(result.errorMsg);
}
},
error: function(error){
Tool.handleError(error);
}
});
},
//获取文件列表
getFileList: function(pid, pageIndex, clearFileCountCache){
if(!window["cachePid"]){
window["cachePid"] = [];
}
if(pid == null || window["cachePid"][window["cachePid"].length - 1] != pid){
window["cachePid"].push(pid);
}
if(!pageIndex) {
pageIndex = 0;
}
//控制上一级
if(cachePid.length <= 1){
$("#aPreDocument").parent().hide();
}
else{
$("#aPreDocument").parent().show();
}
var data = {
name : FileList.Ajax.getUserInfo(),
clear: (clearFileCountCache==null?false:true)
};
if(pid){
data.pid = pid;
}
$.postXml({
url : FileList.Uri.GetFileList(),
data: XmlUtility.parseFromJson(data),
success: function(result){
FileList.Event.refresh(result.resultData.Rows);
//处理正确信息
if(result.resultCode == 0){
//呈现分页器
var pageCount = Math.ceil(result.resultData.Rows.length / ListPager.Filter.pageSize);
ListPager.Render.renderPager(pageCount, pageIndex);
ListPager.Filter.setData(result.resultData.Rows);
ListPager.Render.renderList(ListPager.Filter.getData());
}
else {
//服务器抛出异常
FileList.Action.alert(result.errorMsg);
}
},
error: function(error){
Tool.handleError(error);
}
});
},
//统计文件夹文件数量
getFileCount: function(){
$.postXml({
url : FileList.Uri.GetFileCount(),
data: XmlUtility.parseFromJson({
name : FileList.Ajax.getUserInfo()
}),
success: function(result){
//处理正确信息
if(result.resultCode == 0){
FileList.Render.renderFileCount(result.resultData.Rows);
}
else {
//服务器抛出异常
FileList.Action.alert(result.errorMsg);
}
},
error: function(error){
Tool.handleError(error);
}
});
},
getajax:function(url){
var result="";
try{
result = $.ajax({ url: url, async: false }).responseText;
}
catch(e) {
result = "";
}
return result;
},
//下载 文件夹2,文件1
download:function(itemID,type){
var selectCount=0;var fileList='';var folderList='';
addDiskBehavior(7002, 25, 20);
if(itemID==undefined)//点击列表头操作按钮
{
selectCount = Toolbar.getAllSelectedRow().length;
folderList = Toolbar.getCheckFolder();
fileList = Toolbar.getCheckFile();
}
else
{
selectCount=1;
if(type=="2")
fileList=itemID;
else
folderList=itemID;
}
if (selectCount) {
var downcgiurl = "/ajax/getService.aspx?ajaxtype=getdowncgiurl&sid="+FileList.Ajax.getUserInfo()+"&cgiip="+FileList.Ajax.getUserServerIP()+"&fileid="+ fileList +"&folderid="+ folderList +"&rnd=" + Math.random();
downcgiurl= downcgiurl;
var result =FileList.Ajax.getajax(downcgiurl);
var msg="";
if(result.length<10)
msg=FileList.Messages.Res_Fail;
//0:失败 1成功:返回下载请求的CGI 2用户SESSION不正确 3参数不正确 4返回用户单次下载量(网盘文件单次打包下载量不够)
// switch(result)
// {
// case "2":msg=FileList.Messages.Res_Fail;break;
// case "3":msg=FileList.Messages.Res_Fail;break;
// case "4":msg=FileList.Messages.Res_Fail;break;
// default :break;
// }
if(msg.length==0){
$("#iframecgi").attr("src",result);
addDiskBehavior(13,11, 10, null, selectCount);
}
else{
Tool.FF.alert(msg);
}
}
else {
return false;
}
},
deleteItem:function(itemID,type){
var selectCount=0;var fileList='';var folderList='';var filecount;var foldercount;
if(itemID==undefined){//点击列表头操作按钮
filecount=Toolbar.getCheckFile('count');
foldercount=Toolbar.getCheckFolder('count');
folderList = Toolbar.getCheckFolder();
fileList = Toolbar.getCheckFile();
}
else{
if(type=="2"){
fileList=itemID;
filecount=1;
}
else{
folderList=itemID;
foldercount=1;
}
}
if (filecount||foldercount) {
var deleteMsg=FileList.Action.resConfirmDelete(filecount,foldercount);
Tool.FF.confirm(deleteMsg, function() {
var deleteurl = "/ajax/getService.aspx?ajaxtype=deleteitem&sid="+FileList.Ajax.getUserInfo()+"&cgiip="+FileList.Ajax.getUserServerIP()+"&fileid="+ fileList +"&folderid="+ folderList +"&rnd=" + Math.random();
var result =FileList.Ajax.getajax(deleteurl);
if(result=="1"){
Tool.getDiskWindow().Toolbar.refreshList();
// Tool.FF.alert(FileList.Messages.Res_Del_Success, function(){
//
// });
}
else{
Tool.FF.alert(FileList.Messages.Res_Del_Fail);
}
});
}
else
return false;
},
getAllDirectory:function(){
$.postXml({
url : FileList.Uri.GetFormatDirectory(),
data: XmlUtility.parseFromJson({
name : FileList.Ajax.getUserInfo(),
include :true
}),
success: function(result){
if(result.resultCode == 0){
var select = $("#limove .drop-menu");
select.empty();
var selectedIndex = -1;
var pid = Utils.queryString("pid", window.location.href);
if(pid == null || pid == ""){
selectedIndex = 0;
}
$.each(result.resultData, function(index, n){
var liHtml=$("<li><a href=\"javascript:;\">{0}</a></li>".format(n.FullName));
var a = liHtml.find("a");
a.click(function(e){
FileList.Ajax.move(n.Id,n.FullName);
});
select.append(liHtml);
});
}
else {
//服务器抛出异常
Tool.FF.alert(result.errorMsg);
}
},
error: function(error){
Tool.handleError(error);
}
});
},
checkMove:function(fileId,folderId,extList,dirID,dirName){
var msg="";
var rootDirID = Toolbar.getCurrentDirectoryId();
var selectedRow = Toolbar.getAllSelectedRow();
if(selectedRow.length){
if(rootDirID==undefined&&dirName=="/我的文件夹")
return FileList.Messages.SameDiretory;
if(rootDirID!=undefined&&rootDirID==dirID)
return FileList.Messages.SameDiretory;
if(folderId!=null&&folderId!=""&&folderId==dirID)
return FileList.Messages.SameDiretory;
$.each(selectedRow,function(){
if(this.TYPE=="2"){
fileId=this.ITEMID+",";
}
if(this.TYPE=="1"){
if(this.ITEMNAME=="我的相册"||this.ITEMNAME=="我的音乐"){
msg= FileList.Messages.CanNotMoveSysFolder.replace("{0}",this.ITEMNAME);
return false;
}
}
});
if(msg ){return msg;}
}
if(dirName.indexOf("/我的文件夹/我的相册")!=-1&&$.trim(extList).length==0){
return FileList.Messages.ImageCanNotCopy;
}
if(dirName.indexOf("/我的文件夹/我的音乐")!=-1&&$.trim(extList).length==0)
{
return FileList.Messages.MusicCanNotCopy;
}
if($.trim(fileId).length==0&&$.trim(folderId).length==0)
return FileList.Messages.Res_CheckFile;
if($.trim(extList).length>0){
var arrExt=extList.split(",");
$.each(arrExt,function(){
var filetype=Tool.getExtType(arrExt[0]);
if(dirName=="/我的文件夹/我的相册"&&filetype!="pic"){
msg= FileList.Messages.ImageCanNotCopy;
return false;
}
if(dirName=="/我的文件夹/我的音乐"&&filetype!="audio"){
msg= FileList.Messages.MusicCanNotCopy;
return false;
}
});
if(msg ){return msg;}
}
return null;
},
move:function(dirID,dirName){
//$.disableElement($("#aMove"));
var fileId= Toolbar.getCheckFile();
var folderId= Toolbar.getCheckFolder();
var extList=Toolbar.getCheckExt();
var msg= FileList.Ajax.checkMove(fileId,folderId,extList,dirID,dirName)
if(msg){
Tool.FF.alert(msg);
return;
}
$.postXml({
url : FileList.Uri.GetSubmitURL(),
data: XmlUtility.parseFromJson({
ajaxAct : "movefile",
sid : FileList.Ajax.getUserInfo(),
fileID : fileId,
folderID: folderId,
extList : extList,
dirID : dirID,
dirName : dirName
}),
success: function(result){
if(result.resultCode == 0){
var invalidMsg = "";
var code = result.resultData;
switch(code){
//成功
case '1' : { break; }
case '8':{ invalidMsg = FileList.Messages.ImageCanNotCopy; break; }
case '9':{ invalidMsg = FileList.Messages.MusicCanNotCopy; break; }
case '10':{ invalidMsg = FileList.Messages.MoveSlefFolder_Fail; break; }
case '11':{ invalidMsg = FileList.Messages.HaveSameName_Fail; break; }
case '12':{ invalidMsg = FileList.Messages.FiveMoreDir_Fail; break; }
//空号码
default: { invalidMsg = FileList.Messages.Move_Fail; break; }
}
if(invalidMsg != ""){
Tool.FF.alert(invalidMsg);
}
else {
Tool.FF.alert(FileList.Messages.Move_Success);
//刷新页面
Tool.getDiskWindow().Toolbar.refreshList();
}
}
else {
//服务器抛出异常
Tool.FF.alert(result.errorMsg);
}
},
error: function(error){
Tool.handleError(error);
}
});
}
}
/* 通讯代码 end */
};
$(function(){
//设置分页器属性
ListPager.pageChanged = function(){
FileList.Event.refresh();
};
ListPager.Filter.pageSize = 100;
ListPager.Filter.sortData = function(field, initialIsAsc){
var isAsc = false;
if(ListPager.Filter.order == field){
isAsc = !ListPager.Filter.isAsc;
}
else {
ListPager.Filter.order = field;
isAsc = initialIsAsc;
}
ListPager.Filter.isAsc = isAsc;
var data = ListPager.Filter.getAllData();
if(data != null && data.length > 0){
data.sort(function(x, y){
//文件夹永远放在前面
if(x.TYPE != y.TYPE){
if(x.TYPE == "2"){
return 1;
}
else if(y.TYPE == "2"){
return -1;
}
if(x.TYPE == "1"){
return 1;
}
else if(y.TYPE == "1"){
return -1;
}
return x.TYPE=="4"?-1:1;
}
var compareVal = 0;
switch(ListPager.Filter.order){
//名称
case "name":{
compareVal = x.ITEMNAME.localeCompare(y.ITEMNAME);
break;
}
//类型
case "type":{
if(x.TYPE == "1" || x.TYPE == "3" || x.TYPE == "4"){
compareVal = 0;
}
else {
compareVal = Tool.getFileImageClass(Tool.getFileExtName(x.ITEMNAME))
.localeCompare(Tool.getFileImageClass(Tool.getFileExtName(y.ITEMNAME)));
}
break;
}
//时间
case "date":{
if(x.TYPE == "1"){
compareVal = x.CREATETIME.localeCompare(y.CREATETIME);
}
else {
compareVal = x.UPLOADTIME.localeCompare(y.UPLOADTIME);
}
break;
}
//大小
case "size":{
if(x.TYPE == "1" || x.TYPE == "3" || x.TYPE == "4"){
compareVal = 0;
}
else {
compareVal = x.ITEMSIZE - y.ITEMSIZE;
}
break;
}
}
compareVal = compareVal * (isAsc?1:-1);
return compareVal;
});
}
};
ListPager.Render.renderList = FileList.Render.renderFileList;
})
//-------Tool bar
var Toolbar = $.extend({
initial: function(){
//Id跟函数之间的映射
var map = {
"aPreDocument" : "backToUp",
"aUpload" : "upload",
"aDown" : "down",
"aCreateDoc" : "createDoc",
"aShare" : "share",
"aDel" : "delDocAndFile",
"aProperty" : "showProperty",
"aSendFile" : "showSendFileUL",
"aMove" : "showMoveUL",
"aEmail" : "sendEmail",
"aWap" : "sendMobile",
"aMMS" : "sendMMS"
};
// 测试接口
// result = $.ajax({ url: "/ajax/GetFileDetail.aspx?sid="+FileList.Ajax.getUserInfo()+"&fileid="+Toolbar.getCheckFile(), async: false }).responseText;
// alert(result);
// return;
Tool.registerAnchor(map, function(val){
return Toolbar[val];
});
$("#lisendfile>*").hover(function(e){
//if(e.target.tagName != "A"){
$("#lisendfile .drop-menu").show();
//}
}, function(e){
$("#lisendfile .drop-menu").hide();
});
$("#limove>*").hover(function(e){
//if(e.target.tagName != "A"){
$("#lisendfile .drop-menu").hide();
$("#limove .drop-menu").show();
//}
}, function(e){
$("#limove .drop-menu").hide();
});
},
showDiv:function(obj) {
if($(obj).css("display")=="none")
$(obj).show();
else
$(obj).hide();
},
//移动
showMoveUL:function(){
Toolbar.showDiv($("#limove .drop-menu"));
$("#lisendfile .drop-menu").css("display","none");
},
//文件快递
showSendFileUL:function(){
Toolbar.showDiv($("#lisendfile .drop-menu"));
$("#limove .drop-menu").hide();
},
sendEmail:function(){
var fileId=Toolbar.getCheckFile();
var count=Toolbar.getCheckFile("count");
var foldercount=Toolbar.getCheckFolder();
if(count>5){
Tool.FF.alert(FileList.Messages.SendFiveFile);
return;
}
if(foldercount>0)
{
Tool.FF.alert(FileList.Messages.CanNotSendFolder);
return;
}
if($.trim(fileId))
{
addDiskBehavior(7006, 11, 20);
top.Links.show("quicklyShare","&type=email&fileId="+fileId);
}
else
return;
},
sendMobile:function(){
var fileId=Toolbar.getCheckFile();
if($.trim(fileId))
{
addDiskBehavior(7007, 11, 20);
top.Links.show("quicklyShare","&type=mobile&fileId="+fileId);
}
else
return;
},
sendMMS:function(){
var list = Toolbar.getAllSelectedRow();
if(list.length==1)
{
addDiskBehavior(7008, 11, 20);
var itemid = list[0].ITEMID;
var itemname = list[0].ITEMNAME;
var ext = Tool.getFileExtName(itemname);
var extType = Toolbar.getExtTypeBySend(ext);
var url="";
var downcgiurl = "/ajax/getService.aspx?ajaxtype=getdowncgiurl&sid="+FileList.Ajax.getUserInfo()+"&cgiip="+FileList.Ajax.getUserServerIP()+"&fileid="+ itemid +"&rnd=" + Math.random();
var filepath = FileList.Ajax.getajax(downcgiurl);
filepath = escape(filepath);
if(filepath.length>20)
{
//图片\音乐\文本
switch(extType)
{
case "audio":url="&musicpath="+filepath+"&ext="+ext; break;
case "pic":url="&imagepath="+filepath+"&ext="+ext;break;
case "office":url="&textpath="+filepath+"&ext="+ext;break;
}
//打开标签
top.Links.show("mms",url);
}
}
else {
Tool.FF.alert(FileList.Messages.SendOneMMSFile);
}
},
//返回上一层目录
backToUp : function(){
var cachePid = window["cachePid"];
cachePid.pop();
FileList.Ajax.getFileList(cachePid.pop());
},
//上传
upload : function(){
//如果为空,则为根目录Id,0首页,1相册,2音乐.
var pid = Toolbar.getCurrentDirectoryId();
Tool.openUpload(0,pid);
},
//下载
down : function(){
FileList.Ajax.download();
},
//新增文件夹
createDoc: function(){
var pid = Toolbar.getCurrentDirectoryId();
var url = Toolbar.getDiskHost("html/DialogCreateDocument.htm?sid=" + FileList.Ajax.getUserInfo());
if(pid != null){
url += "&pid=" + pid;
}
/* FF.open参数
title :标题
src :页面路径
width :宽度
height :高度
fixSize:是否固定
*/
window.Tool.FF.open("新增文件夹", url, 450, 150, true);
},
//共享
share: function(){
var selectedRow = Toolbar.getAllSelectedRow();
var count = selectedRow.length;
if(count)
{
addDiskBehavior(14, 11, 10,null,count);
var urlshare = Toolbar.getDiskHost("html/DialogShareFile.htm");
Tool.FF.open("好友共享", urlshare, 530, 287, true);
}
else
return;
},
//删除文件夹和文件
delDocAndFile: function(){
FileList.Ajax.deleteItem();
},
//属性和重命名
showProperty: function(){
var selectedRow = Toolbar.getAllSelectedRow();
var count = selectedRow.length;
if(count == 0){
Tool.FF.alert("请选择一个文件或文件夹");
}
else if(count > 1){
Tool.FF.alert("只能选择一个文件或文件夹");
}
else {
var data = selectedRow[0];
if(data.TYPE == "1"){
//文件夹
var url = Toolbar.getDiskHost("html/DialogDocProperty.htm?sid=" + FileList.Ajax.getUserInfo());
url += "&id=" + data.ITEMID;
window.Tool.FF.open("文件夹属性", url, 450, 280, true);
}
else {
//文件
var url = Toolbar.getDiskHost("html/DialogFileProperty.htm?sid=" + FileList.Ajax.getUserInfo());
url += "&id=" + data.ITEMID;
window.Tool.FF.open("文件属性", url, 450, 280, true);
}
}
},
//获取选中的文件ID或者文件个数
getCheckFile:function(tag){
var fileId="";
var selectedRow = Toolbar.getAllSelectedRow();
var filecount = 0;
if(selectedRow.length)
{
$.each(selectedRow,function(){
if(this.TYPE=="2")
{
fileId+=this.ITEMID+",";
filecount++;
}
});
}
fileId=fileId.length>0?fileId.substring(0,fileId.length-1):"";
if(tag=="count")
return filecount;
else
return fileId;
},
//获取选中的文件夹ID或者文件夹个数
getCheckFolder:function(tag){
var folderId="";
var selectedRow = Toolbar.getAllSelectedRow();
var foldercount=0;
if(selectedRow.length)
{
$.each(selectedRow,function(){
if(this.TYPE=="1")
{
folderId+=this.ITEMID+",";
foldercount++
}
});
}
folderId=folderId.length>0?folderId.substring(0,folderId.length-1):"";
if(tag=="count")
return foldercount;
else
return folderId;
},
getCheckExt:function(){
var extList="";
var selectedRow = Toolbar.getAllSelectedRow();
if(selectedRow.length)
{
$.each(selectedRow,function(){
if(this.TYPE=="2")
{
var ext = Tool.getFileExtName(this.ITEMNAME);
extList+=ext+",";
}
});
}
extList=extList.length>0?extList.substring(0,extList.length-1):"";
return extList;
},
refreshList : function(pid){
if(!pid){
pid = window["cachePid"].pop();
}
//刷新本页面
ListPager.Render.initialPager();
FileList.Ajax.getCapacity();
FileList.Ajax.getAllDirectory();
FileList.Ajax.getFileList(pid, ListPager.Filter.pageIndex, true);
}
}, Tool.Toolbar);
//Ref by JQuery,DiskCommon,ListPager
var acceptPhotoExtend = "bmp,gif,ico,jpg,jpeg,png,tif,";
var acceptMusicExtend = "mid,wma,wav,mp3,cda,";
var FileList = {
/* 资源代码 start */
//接口地址
Uri : {
GetCapacity: function(){
return "/Ajax/GetDiskCapacity.ashx";
},
GetFileCount: function(){
return "/Ajax/GetFileCountInAllSubDirectory.ashx";
},
GetFileList: function(){
return "/Ajax/GetFileList.ashx";
},
GetTimeSliceURL:function(){
return "/ajax/getService.aspx?ajaxtype=getcgides&rnd=" + Math.random();
},
GetCGIProcessURL:function(){
return "/ajax/getService.aspx?ajaxtype=cgiprocess&rnd=" + Math.random();//公共URL
},
GetFormatDirectory : function(){
return "/Ajax/GetFormatDirectory.ashx";
},
// GetMMSURL:function(){
// return "http://uc.rd139.com";//uc对应生产线上就是 http://g1.n20svrg.139.com
// },
GetSubmitURL:function(){
return "/Ajax/SubmitData.ashx";
}
},
//提示语
Messages:{
Res_Fail :"下载出错",
Res_CheckFile :"请选择可操作的文件",
Res_UserSize :"尊敬的用户,您好!网盘文件单次打包下载限量为{size}M请您重新选择文件再下载!",
Res_Del_Fail :"删除失败!",
Res_Del_Success :"删除成功!",
CanNotMoveSysFolder :"“{0}”是系统文件夹,不能移动!",
ImageCanNotCopy :"只有图片文件才能移动到“我的相册”中!",
MusicCanNotCopy :"只有音乐文件才能移动到“我的音乐”中!",
SameDiretory :"您不能选择本文件夹移动到本文件夹",
SendFiveFile :"一次只能发送5个文件,请取消部分文件",
CanNotSendFolder :"只能快递文件,暂不支持文件夹快递!",
SendOneMMSFile :"通过彩信发送文件快递只能操作一个文件",
//MoveFolderToImg_Fail :"移动出错:不能向“我的相册”中移动文件夹",
// MoveFolderToMusic_Fail :"移动出错:不能向“我的音乐”中移动文件夹",
MoveSlefFolder_Fail :"不允许将一个目录移动到它的子目录下面!",
HaveSameName_Fail :"移动出错:已有同名目录/文件存在!",
FiveMoreDir_Fail :"最多支持5级目录,超过5级不能移动!",
Move_Success :"移动成功",
Move_Fail :"移动失败"
},
/* 资源代码 End */
/* 行为代码 start */
Action: {
alert : function(msg, action){
Tool.FF.alert(msg, function(){
if(action) {
action();
}
});
},
resConfirmDelete:function(fileCount, folderCount)
{
var s = "确定要删除选定的";
var t = " ";
if (folderCount) {
t += folderCount + " 个文件夹";
}
if (fileCount) {
if (t != " ") {
t += "和 ";
}
t += fileCount + " 个文件";
}
t += "吗?删除后将无法恢复。";
s += t;
return s;
}
},
Event: {
//页面启动
initial : function(){
//工具栏按钮设定
Toolbar.initial();
FileList.Ajax.getAllDirectory();
$.disableElement($("#aDown"));
$.disableElement($("#aShare"));
$.disableElement($("#aSendFile"));
$.disableElement($("#aMove"));
$.disableElement($("#aDel"));
$.disableElement($("#aProperty"));
},
//全选的时候
clickCheckBoxAll: function(v, count){
FileList.Event.clickCheckBoxCommon();
},
//选单行的Checkbox的时候
clickCheckBoxInRow: function(checked, cb, row){
FileList.Render.renderCheckedRow(cb.checked, row);
FileList.Event.clickCheckBoxCommon();
},
clickCheckBoxCommon: function(){
var allChecked = $("#tbl-fileList>tr>td").find(":checked");
var selectCount = allChecked.length;
//文件快递
if(selectCount > 0){
$.enableElement($("#aDown"));
$.enableElement($("#aMove"));
$.enableElement($("#aDel"));
if(selectCount == 1){
$.enableElement($("#aProperty"));
}
else {
$.disableElement($("#aProperty"));
}
var isbreak = false;
allChecked.parent().parent().each(function(){
var type = $(this).data("data").TYPE;
if(type!="2"){
isbreak = true;
return false;
}
});
if(isbreak){
$.disableElement($("#aShare"));
}
else {
$.enableElement($("#aShare"));
}
}
else {
$.disableElement($("#aDown"));
$.disableElement($("#aShare"));
$.disableElement($("#aMove"));
$.disableElement($("#aDel"));
$.disableElement($("#aProperty"));
}
//控制文件快递
Toolbar.controlSendPanel({
data: $.grep(Toolbar.getAllSelectedRow(), function(n){
return n.TYPE == "2";
}),
preValid: function(){
return Toolbar.getCheckFolder("count") < 1;
}
});
},
//刷新列表
refresh: function(list, pid){
$.disableElement($("#aDown"));
$.disableElement($("#aShare"));
$.disableElement($("#aSendFile"));
$.disableElement($("#aMove"));
$.disableElement($("#aDel"));
$.disableElement($("#aProperty"));
var level = window["cachePid"].length;
if(level >= 5){
$.disableElement($("#aCreateDoc"));
}
else {
$.enableElement($("#aCreateDoc"));
}
}
},
/* 行为代码 end */
/* 界面代码 start */
Render: {
//显示容量
renderCapacity: function(data){
var usagePercent = (Math.round(data.useSize * 100 / data.allSize)) ;
var container = $("div.my-info");
container.find("div.progress>.pg-bg").css("width", usagePercent + "%");
container.find("div.progress>.pg-text").html(usagePercent + "%");
container = container.find("dl>dd");
$(container[0]).html(Tool.getFileSizeText(data.allSize)); //总容量
$(container[1]).html(Tool.getFileSizeText(data.useSize)); //已 用
$(container[2]).html(Tool.getFileSizeText(data.allSize - data.useSize)); //剩 余
$(container[3]).html(data.dNum + "个"); //文件夹
$(container[4]).html(data.fNum + "个"); //文 件
},
renderFileList: function(list){
$.getById("cbSelectAllFile", true).checked = false;
var table = $("#tbl-fileList");
table.empty();
if(list.length == 0){
$("div.tbl-list-null").show();
}
else {
$("div.tbl-list-null").hide();
$.each(list, function(){
var tempObj = this;
var imageCss = "";
var rowToolHTML = " <a class='fcI del' href='javascript:;'>删除</a>";
var isAudio = false;
switch(this.TYPE){
case "1" : //文件夹
case "3" : //相册
case "4" :{//音乐
imageCss = "folder";
rowToolHTML = "<a class='fcI open' href='javascript:;'>打开</a> <a class='fcI down' href='javascript:;'>下载</a>" + rowToolHTML;
break;
}
default : {
var ext = Tool.getFileExtName(this.ITEMNAME);
imageCss = Tool.getFileImageClass(ext);
if(tempObj.ISRESUME == 1) {
rowToolHTML = "<a class='fcI resume' href='javascript:;'>续传</a>" + rowToolHTML;
break;
}
var extType = Tool.getExtType(ext);
switch(extType){
case "pic":{
rowToolHTML = "<a class='fcI preview' href='javascript:;'>预览</a>" + rowToolHTML;
break;
}
case "audio":{
rowToolHTML = "<a class='fcI play' href='javascript:;'>播放</a>" + rowToolHTML;
//播放图标
isAudio = true;
break;
}
default:{
rowToolHTML = "<a class='fcI down' href='javascript:;'>下载</a>" + rowToolHTML;
break;
}
}
break;
}
}
if(this.ISSHARE === 0){
imageCss = "share";
}
var fragment = $(" \
<tr> \
<td class='t-check'> \
<input type='checkbox' /> \
<input type='hidden' id='hid{4}' /> \
</td> \
<td class='t-type'><i class='{3}'></i></td> \
<td class='t-name'><a class='title'>{0}</a><span class='subFileCount' /> \
<p>{5}</p> \
</td> \
<td class='t-date'>{1}</td> \
<td class='t-size'>{2}</td> \
</tr>".format(this.ITEMNAME
, this.CREATETIME || this.UPLOADTIME || ""
, this.ITEMSIZE==null?"":Tool.getFileSizeText(parseFloat(this.ITEMSIZE))
, imageCss
, this.ITEMID /* hidden 的id格式为["hid" + 真实id] */
, rowToolHTML)
);
fragment.click(function(){
var cb = $(this).find(":checkbox");
if(cb.length > 0 && !cb[0].disabled){
cb[0].checked = !cb[0].checked;
FileList.Event.clickCheckBoxInRow(cb[0].checked, cb[0], $(this));
}
});
//音频文件图标变换
if(isAudio){
fragment.find("td.t-type").hover(function(){
$(this).find("i").toggleClass(imageCss).toggleClass("mp3-hover");
}, function(){
$(this).find("i").toggleClass(imageCss).toggleClass("mp3-hover");
});
fragment.find("i").click(function(e){
window.top.MusicPlayer.appendSongList([{
FileId :tempObj.ITEMID,
Name :tempObj.ITEMNAME
}]);
e.stopPropagation();
});
}
//点击单选框
var cbSingleClick = function(cb){
var row = $(cb).parent().parent();
FileList.Event.clickCheckBoxInRow(cb.checked, cb, row);
}
var cbCtl = fragment.data("data", this) //缓存数据到Row
.find(":checkbox")
.click(function(e){
cbSingleClick(this);
e.stopPropagation();
});
if(this.TYPE == "3" || this.TYPE == "4"){
cbCtl.attr("disabled", true);
//隐藏删除按钮
fragment.find("a.del").remove();
}
if(tempObj.ISRESUME == 1){
cbCtl.attr("disabled", true);
}
//文件名下方的anchor
var anchorAction = {
"down" : function(){
FileList.Ajax.download(tempObj.ITEMID, tempObj.TYPE);
},
"del" : function(){
FileList.Ajax.deleteItem(tempObj.ITEMID,tempObj.TYPE);
},
"open" : function(){
if(tempObj.TYPE == "3"){
//打开相册
window.location = "album.html";
return ;
}
if(tempObj.TYPE == "4"){
//打开音乐
window.location = "music.html";
return ;
}
FileList.Ajax.getFileList(tempObj.ITEMID);
},
"play" : function(){
window.top.MusicPlayer.appendSongList([{
FileId :tempObj.ITEMID,
Name :tempObj.ITEMNAME
}]);
},
"preview" : function(){
//todo 预览图片
var url = "http://"+window.location.host+"/html/preview.htm?fileid={0}";
url = url.format(tempObj.FILEGUID);
top._diskPreviewdWindow = top.FloatingFrame.open("图片展览", url, 560,460, true, true);
},
"resume" : function(){
var pid = Toolbar.getCurrentDirectoryId();
Tool.openUpload(0,pid,encodeURIComponent(tempObj.ITEMNAME));
}
};
fragment.find("td.t-name>p>a").click(function(e){
var source = $(this);
$.each(anchorAction, function(name, actFunc){
if(source.hasClass(name)){
actFunc();
return false;
}
});
e.preventDefault();
e.stopPropagation();
});
fragment.find("td.t-name>a.title").click(function(e){
//执行下方的第一个行为
var a = $(this);
a.parent().find("p>a:eq(0)").click();
e.preventDefault();
e.stopPropagation();
});
table.append(fragment);
});
//呈现完成后,再读取FileCount
FileList.Ajax.getFileCount();
}
},
renderFileCount: function(list){
var table = $("#tbl-fileList");
table.find("tr").each(function(){
var row = $(this);
var data = row.data("data");
if(data.TYPE == "1" || data.TYPE == "3" || data.TYPE == "4"){
var id = data.ITEMID;
var count = 0;
$.each(list, function(){
if(this.ID == id){
count = this.fCount;
return false;
}
});
row.find("span.subFileCount").html("(" + count + ")");
}
else {
return false;
}
});
},
renderCheckedRow: function(checked, row){
if(!row.find("td>:checkbox").attr("disabled")){
if(checked){
if(!row.hasClass("t-checked")){
row.addClass("t-checked");
}
}
else {
if(row.hasClass("t-checked")){
row.removeClass("t-checked");
}
}
}
}
},
/* 界面代码 end */
/* 通讯代码 start */
Ajax:{
getUserInfo: function(){
if(!window["cacheUid"]){
window["cacheUid"] = Utils.queryString("sid", window.parent.location.href)
}
return window["cacheUid"];
},
getUserServerIP:function(){
return window.parent.DiskMainData.UserServerIP;
},
getUserNumber:function(){
return window.parent.DiskMainData.UserNumber;
},
//获取容量信息
getCapacity: function(){
$.postXml({
url : FileList.Uri.GetCapacity(),
data: XmlUtility.parseFromJson({
name : FileList.Ajax.getUserInfo()
}),
success: function(result){
if(result.resultCode == 0){
FileList.Render.renderCapacity(result.resultData);
}
else {
//服务器抛出异常
FileList.Action.alert(result.errorMsg);
}
},
error: function(error){
Tool.handleError(error);
}
});
},
//获取文件列表
getFileList: function(pid, pageIndex, clearFileCountCache){
if(!window["cachePid"]){
window["cachePid"] = [];
}
if(pid == null || window["cachePid"][window["cachePid"].length - 1] != pid){
window["cachePid"].push(pid);
}
if(!pageIndex) {
pageIndex = 0;
}
//控制上一级
if(cachePid.length <= 1){
$("#aPreDocument").parent().hide();
}
else{
$("#aPreDocument").parent().show();
}
var data = {
name : FileList.Ajax.getUserInfo(),
clear: (clearFileCountCache==null?false:true)
};
if(pid){
data.pid = pid;
}
$.postXml({
url : FileList.Uri.GetFileList(),
data: XmlUtility.parseFromJson(data),
success: function(result){
FileList.Event.refresh(result.resultData.Rows);
//处理正确信息
if(result.resultCode == 0){
//呈现分页器
var pageCount = Math.ceil(result.resultData.Rows.length / ListPager.Filter.pageSize);
ListPager.Render.renderPager(pageCount, pageIndex);
ListPager.Filter.setData(result.resultData.Rows);
ListPager.Render.renderList(ListPager.Filter.getData());
}
else {
//服务器抛出异常
FileList.Action.alert(result.errorMsg);
}
},
error: function(error){
Tool.handleError(error);
}
});
},
//统计文件夹文件数量
getFileCount: function(){
$.postXml({
url : FileList.Uri.GetFileCount(),
data: XmlUtility.parseFromJson({
name : FileList.Ajax.getUserInfo()
}),
success: function(result){
//处理正确信息
if(result.resultCode == 0){
FileList.Render.renderFileCount(result.resultData.Rows);
}
else {
//服务器抛出异常
FileList.Action.alert(result.errorMsg);
}
},
error: function(error){
Tool.handleError(error);
}
});
},
getajax:function(url){
var result="";
try{
result = $.ajax({ url: url, async: false }).responseText;
}
catch(e) {
result = "";
}
return result;
},
//下载 文件夹2,文件1
download:function(itemID,type){
var selectCount=0;var fileList='';var folderList='';
addDiskBehavior(7002, 25, 20);
if(itemID==undefined)//点击列表头操作按钮
{
selectCount = Toolbar.getAllSelectedRow().length;
folderList = Toolbar.getCheckFolder();
fileList = Toolbar.getCheckFile();
}
else
{
selectCount=1;
if(type=="2")
fileList=itemID;
else
folderList=itemID;
}
if (selectCount) {
var downcgiurl = "/ajax/getService.aspx?ajaxtype=getdowncgiurl&sid="+FileList.Ajax.getUserInfo()+"&cgiip="+FileList.Ajax.getUserServerIP()+"&fileid="+ fileList +"&folderid="+ folderList +"&rnd=" + Math.random();
downcgiurl= downcgiurl;
var result =FileList.Ajax.getajax(downcgiurl);
var msg="";
if(result.length<10)
msg=FileList.Messages.Res_Fail;
//0:失败 1成功:返回下载请求的CGI 2用户SESSION不正确 3参数不正确 4返回用户单次下载量(网盘文件单次打包下载量不够)
// switch(result)
// {
// case "2":msg=FileList.Messages.Res_Fail;break;
// case "3":msg=FileList.Messages.Res_Fail;break;
// case "4":msg=FileList.Messages.Res_Fail;break;
// default :break;
// }
if(msg.length==0){
$("#iframecgi").attr("src",result);
addDiskBehavior(13,11, 10, null, selectCount);
}
else{
Tool.FF.alert(msg);
}
}
else {
return false;
}
},
deleteItem:function(itemID,type){
var selectCount=0;var fileList='';var folderList='';var filecount;var foldercount;
if(itemID==undefined){//点击列表头操作按钮
filecount=Toolbar.getCheckFile('count');
foldercount=Toolbar.getCheckFolder('count');
folderList = Toolbar.getCheckFolder();
fileList = Toolbar.getCheckFile();
}
else{
if(type=="2"){
fileList=itemID;
filecount=1;
}
else{
folderList=itemID;
foldercount=1;
}
}
if (filecount||foldercount) {
var deleteMsg=FileList.Action.resConfirmDelete(filecount,foldercount);
Tool.FF.confirm(deleteMsg, function() {
var deleteurl = "/ajax/getService.aspx?ajaxtype=deleteitem&sid="+FileList.Ajax.getUserInfo()+"&cgiip="+FileList.Ajax.getUserServerIP()+"&fileid="+ fileList +"&folderid="+ folderList +"&rnd=" + Math.random();
var result =FileList.Ajax.getajax(deleteurl);
if(result=="1"){
Tool.getDiskWindow().Toolbar.refreshList();
// Tool.FF.alert(FileList.Messages.Res_Del_Success, function(){
//
// });
}
else{
Tool.FF.alert(FileList.Messages.Res_Del_Fail);
}
});
}
else
return false;
},
getAllDirectory:function(){
$.postXml({
url : FileList.Uri.GetFormatDirectory(),
data: XmlUtility.parseFromJson({
name : FileList.Ajax.getUserInfo(),
include :true
}),
success: function(result){
if(result.resultCode == 0){
var select = $("#limove .drop-menu");
select.empty();
var selectedIndex = -1;
var pid = Utils.queryString("pid", window.location.href);
if(pid == null || pid == ""){
selectedIndex = 0;
}
$.each(result.resultData, function(index, n){
var liHtml=$("<li><a href=\"javascript:;\">{0}</a></li>".format(n.FullName));
var a = liHtml.find("a");
a.click(function(e){
FileList.Ajax.move(n.Id,n.FullName);
});
select.append(liHtml);
});
}
else {
//服务器抛出异常
Tool.FF.alert(result.errorMsg);
}
},
error: function(error){
Tool.handleError(error);
}
});
},
checkMove:function(fileId,folderId,extList,dirID,dirName){
var msg="";
var rootDirID = Toolbar.getCurrentDirectoryId();
var selectedRow = Toolbar.getAllSelectedRow();
if(selectedRow.length){
if(rootDirID==undefined&&dirName=="/我的文件夹")
return FileList.Messages.SameDiretory;
if(rootDirID!=undefined&&rootDirID==dirID)
return FileList.Messages.SameDiretory;
if(folderId!=null&&folderId!=""&&folderId==dirID)
return FileList.Messages.SameDiretory;
$.each(selectedRow,function(){
if(this.TYPE=="2"){
fileId=this.ITEMID+",";
}
if(this.TYPE=="1"){
if(this.ITEMNAME=="我的相册"||this.ITEMNAME=="我的音乐"){
msg= FileList.Messages.CanNotMoveSysFolder.replace("{0}",this.ITEMNAME);
return false;
}
}
});
if(msg ){return msg;}
}
if(dirName.indexOf("/我的文件夹/我的相册")!=-1&&$.trim(extList).length==0){
return FileList.Messages.ImageCanNotCopy;
}
if(dirName.indexOf("/我的文件夹/我的音乐")!=-1&&$.trim(extList).length==0)
{
return FileList.Messages.MusicCanNotCopy;
}
if($.trim(fileId).length==0&&$.trim(folderId).length==0)
return FileList.Messages.Res_CheckFile;
if($.trim(extList).length>0){
var arrExt=extList.split(",");
$.each(arrExt,function(){
var filetype=Tool.getExtType(arrExt[0]);
if(dirName=="/我的文件夹/我的相册"&&filetype!="pic"){
msg= FileList.Messages.ImageCanNotCopy;
return false;
}
if(dirName=="/我的文件夹/我的音乐"&&filetype!="audio"){
msg= FileList.Messages.MusicCanNotCopy;
return false;
}
});
if(msg ){return msg;}
}
return null;
},
move:function(dirID,dirName){
//$.disableElement($("#aMove"));
var fileId= Toolbar.getCheckFile();
var folderId= Toolbar.getCheckFolder();
var extList=Toolbar.getCheckExt();
var msg= FileList.Ajax.checkMove(fileId,folderId,extList,dirID,dirName)
if(msg){
Tool.FF.alert(msg);
return;
}
$.postXml({
url : FileList.Uri.GetSubmitURL(),
data: XmlUtility.parseFromJson({
ajaxAct : "movefile",
sid : FileList.Ajax.getUserInfo(),
fileID : fileId,
folderID: folderId,
extList : extList,
dirID : dirID,
dirName : dirName
}),
success: function(result){
if(result.resultCode == 0){
var invalidMsg = "";
var code = result.resultData;
switch(code){
//成功
case '1' : { break; }
case '8':{ invalidMsg = FileList.Messages.ImageCanNotCopy; break; }
case '9':{ invalidMsg = FileList.Messages.MusicCanNotCopy; break; }
case '10':{ invalidMsg = FileList.Messages.MoveSlefFolder_Fail; break; }
case '11':{ invalidMsg = FileList.Messages.HaveSameName_Fail; break; }
case '12':{ invalidMsg = FileList.Messages.FiveMoreDir_Fail; break; }
//空号码
default: { invalidMsg = FileList.Messages.Move_Fail; break; }
}
if(invalidMsg != ""){
Tool.FF.alert(invalidMsg);
}
else {
Tool.FF.alert(FileList.Messages.Move_Success);
//刷新页面
Tool.getDiskWindow().Toolbar.refreshList();
}
}
else {
//服务器抛出异常
Tool.FF.alert(result.errorMsg);
}
},
error: function(error){
Tool.handleError(error);
}
});
}
}
/* 通讯代码 end */
};
$(function(){
//设置分页器属性
ListPager.pageChanged = function(){
FileList.Event.refresh();
};
ListPager.Filter.pageSize = 100;
ListPager.Filter.sortData = function(field, initialIsAsc){
var isAsc = false;
if(ListPager.Filter.order == field){
isAsc = !ListPager.Filter.isAsc;
}
else {
ListPager.Filter.order = field;
isAsc = initialIsAsc;
}
ListPager.Filter.isAsc = isAsc;
var data = ListPager.Filter.getAllData();
if(data != null && data.length > 0){
data.sort(function(x, y){
//文件夹永远放在前面
if(x.TYPE != y.TYPE){
if(x.TYPE == "2"){
return 1;
}
else if(y.TYPE == "2"){
return -1;
}
if(x.TYPE == "1"){
return 1;
}
else if(y.TYPE == "1"){
return -1;
}
return x.TYPE=="4"?-1:1;
}
var compareVal = 0;
switch(ListPager.Filter.order){
//名称
case "name":{
compareVal = x.ITEMNAME.localeCompare(y.ITEMNAME);
break;
}
//类型
case "type":{
if(x.TYPE == "1" || x.TYPE == "3" || x.TYPE == "4"){
compareVal = 0;
}
else {
compareVal = Tool.getFileImageClass(Tool.getFileExtName(x.ITEMNAME))
.localeCompare(Tool.getFileImageClass(Tool.getFileExtName(y.ITEMNAME)));
}
break;
}
//时间
case "date":{
if(x.TYPE == "1"){
compareVal = x.CREATETIME.localeCompare(y.CREATETIME);
}
else {
compareVal = x.UPLOADTIME.localeCompare(y.UPLOADTIME);
}
break;
}
//大小
case "size":{
if(x.TYPE == "1" || x.TYPE == "3" || x.TYPE == "4"){
compareVal = 0;
}
else {
compareVal = x.ITEMSIZE - y.ITEMSIZE;
}
break;
}
}
compareVal = compareVal * (isAsc?1:-1);
return compareVal;
});
}
};
ListPager.Render.renderList = FileList.Render.renderFileList;
})
//-------Tool bar
var Toolbar = $.extend({
initial: function(){
//Id跟函数之间的映射
var map = {
"aPreDocument" : "backToUp",
"aUpload" : "upload",
"aDown" : "down",
"aCreateDoc" : "createDoc",
"aShare" : "share",
"aDel" : "delDocAndFile",
"aProperty" : "showProperty",
"aSendFile" : "showSendFileUL",
"aMove" : "showMoveUL",
"aEmail" : "sendEmail",
"aWap" : "sendMobile",
"aMMS" : "sendMMS"
};
// 测试接口
// result = $.ajax({ url: "/ajax/GetFileDetail.aspx?sid="+FileList.Ajax.getUserInfo()+"&fileid="+Toolbar.getCheckFile(), async: false }).responseText;
// alert(result);
// return;
Tool.registerAnchor(map, function(val){
return Toolbar[val];
});
$("#lisendfile>*").hover(function(e){
//if(e.target.tagName != "A"){
$("#lisendfile .drop-menu").show();
//}
}, function(e){
$("#lisendfile .drop-menu").hide();
});
$("#limove>*").hover(function(e){
//if(e.target.tagName != "A"){
$("#lisendfile .drop-menu").hide();
$("#limove .drop-menu").show();
//}
}, function(e){
$("#limove .drop-menu").hide();
});
},
showDiv:function(obj) {
if($(obj).css("display")=="none")
$(obj).show();
else
$(obj).hide();
},
//移动
showMoveUL:function(){
Toolbar.showDiv($("#limove .drop-menu"));
$("#lisendfile .drop-menu").css("display","none");
},
//文件快递
showSendFileUL:function(){
Toolbar.showDiv($("#lisendfile .drop-menu"));
$("#limove .drop-menu").hide();
},
sendEmail:function(){
var fileId=Toolbar.getCheckFile();
var count=Toolbar.getCheckFile("count");
var foldercount=Toolbar.getCheckFolder();
if(count>5){
Tool.FF.alert(FileList.Messages.SendFiveFile);
return;
}
if(foldercount>0)
{
Tool.FF.alert(FileList.Messages.CanNotSendFolder);
return;
}
if($.trim(fileId))
{
addDiskBehavior(7006, 11, 20);
top.Links.show("quicklyShare","&type=email&fileId="+fileId);
}
else
return;
},
sendMobile:function(){
var fileId=Toolbar.getCheckFile();
if($.trim(fileId))
{
addDiskBehavior(7007, 11, 20);
top.Links.show("quicklyShare","&type=mobile&fileId="+fileId);
}
else
return;
},
sendMMS:function(){
var list = Toolbar.getAllSelectedRow();
if(list.length==1)
{
addDiskBehavior(7008, 11, 20);
var itemid = list[0].ITEMID;
var itemname = list[0].ITEMNAME;
var ext = Tool.getFileExtName(itemname);
var extType = Toolbar.getExtTypeBySend(ext);
var url="";
var downcgiurl = "/ajax/getService.aspx?ajaxtype=getdowncgiurl&sid="+FileList.Ajax.getUserInfo()+"&cgiip="+FileList.Ajax.getUserServerIP()+"&fileid="+ itemid +"&rnd=" + Math.random();
var filepath = FileList.Ajax.getajax(downcgiurl);
filepath = escape(filepath);
if(filepath.length>20)
{
//图片\音乐\文本
switch(extType)
{
case "audio":url="&musicpath="+filepath+"&ext="+ext; break;
case "pic":url="&imagepath="+filepath+"&ext="+ext;break;
case "office":url="&textpath="+filepath+"&ext="+ext;break;
}
//打开标签
top.Links.show("mms",url);
}
}
else {
Tool.FF.alert(FileList.Messages.SendOneMMSFile);
}
},
//返回上一层目录
backToUp : function(){
var cachePid = window["cachePid"];
cachePid.pop();
FileList.Ajax.getFileList(cachePid.pop());
},
//上传
upload : function(){
//如果为空,则为根目录Id,0首页,1相册,2音乐.
var pid = Toolbar.getCurrentDirectoryId();
Tool.openUpload(0,pid);
},
//下载
down : function(){
FileList.Ajax.download();
},
//新增文件夹
createDoc: function(){
var pid = Toolbar.getCurrentDirectoryId();
var url = Toolbar.getDiskHost("html/DialogCreateDocument.htm?sid=" + FileList.Ajax.getUserInfo());
if(pid != null){
url += "&pid=" + pid;
}
/* FF.open参数
title :标题
src :页面路径
width :宽度
height :高度
fixSize:是否固定
*/
window.Tool.FF.open("新增文件夹", url, 450, 150, true);
},
//共享
share: function(){
var selectedRow = Toolbar.getAllSelectedRow();
var count = selectedRow.length;
if(count)
{
addDiskBehavior(14, 11, 10,null,count);
var urlshare = Toolbar.getDiskHost("html/DialogShareFile.htm");
Tool.FF.open("好友共享", urlshare, 530, 287, true);
}
else
return;
},
//删除文件夹和文件
delDocAndFile: function(){
FileList.Ajax.deleteItem();
},
//属性和重命名
showProperty: function(){
var selectedRow = Toolbar.getAllSelectedRow();
var count = selectedRow.length;
if(count == 0){
Tool.FF.alert("请选择一个文件或文件夹");
}
else if(count > 1){
Tool.FF.alert("只能选择一个文件或文件夹");
}
else {
var data = selectedRow[0];
if(data.TYPE == "1"){
//文件夹
var url = Toolbar.getDiskHost("html/DialogDocProperty.htm?sid=" + FileList.Ajax.getUserInfo());
url += "&id=" + data.ITEMID;
window.Tool.FF.open("文件夹属性", url, 450, 280, true);
}
else {
//文件
var url = Toolbar.getDiskHost("html/DialogFileProperty.htm?sid=" + FileList.Ajax.getUserInfo());
url += "&id=" + data.ITEMID;
window.Tool.FF.open("文件属性", url, 450, 280, true);
}
}
},
//获取选中的文件ID或者文件个数
getCheckFile:function(tag){
var fileId="";
var selectedRow = Toolbar.getAllSelectedRow();
var filecount = 0;
if(selectedRow.length)
{
$.each(selectedRow,function(){
if(this.TYPE=="2")
{
fileId+=this.ITEMID+",";
filecount++;
}
});
}
fileId=fileId.length>0?fileId.substring(0,fileId.length-1):"";
if(tag=="count")
return filecount;
else
return fileId;
},
//获取选中的文件夹ID或者文件夹个数
getCheckFolder:function(tag){
var folderId="";
var selectedRow = Toolbar.getAllSelectedRow();
var foldercount=0;
if(selectedRow.length)
{
$.each(selectedRow,function(){
if(this.TYPE=="1")
{
folderId+=this.ITEMID+",";
foldercount++
}
});
}
folderId=folderId.length>0?folderId.substring(0,folderId.length-1):"";
if(tag=="count")
return foldercount;
else
return folderId;
},
getCheckExt:function(){
var extList="";
var selectedRow = Toolbar.getAllSelectedRow();
if(selectedRow.length)
{
$.each(selectedRow,function(){
if(this.TYPE=="2")
{
var ext = Tool.getFileExtName(this.ITEMNAME);
extList+=ext+",";
}
});
}
extList=extList.length>0?extList.substring(0,extList.length-1):"";
return extList;
},
refreshList : function(pid){
if(!pid){
pid = window["cachePid"].pop();
}
//刷新本页面
ListPager.Render.initialPager();
FileList.Ajax.getCapacity();
FileList.Ajax.getAllDirectory();
FileList.Ajax.getFileList(pid, ListPager.Filter.pageIndex, true);
}
}, Tool.Toolbar);