📄 file_manager_general.js
字号:
break;
default:
menusToRemove[menusToRemove.length] = '#menuPreview';
menusToRemove[menusToRemove.length] = '#menuPlay';
}
menusToRemove[menusToRemove.length] = '#menuPaste';
}
if(!permits.del || permits.view_only)
{
menusToRemove[menusToRemove.length] = '#menuDelete';
}
if(!permits.cut || permits.view_only)
{
menusToRemove[menusToRemove.length] = '#menuCut';
}
if(!permits.copy || permits.view_only)
{
menusToRemove[menusToRemove.length] = '#menuCopy';
}
if((!permits.cut && !permits.copy) || permits.view_only)
{
menusToRemove[menusToRemove.length] = '#menuPaste';
}
if(permits.rename || permits.view_only)
{
menusToRemove[menusToRemove.length] = '#menuRename';
}
$(menusToRemove.join(','), menu).parent().remove();
return menu;
}
}
);
};
var fileUploadElemIds = new Array(); //keep track of the file element ids
/**
* add more file type of input file for multiple uploads
*/
function addMoreFile()
{
var newFileUpload = $($('#fileUploadBody tr').get(0)).clone();
do
{
var elementId = 'upload' + generateUniqueId(10);
}while(fileUploadElemIds.inArray(elementId));
fileUploadElemIds[fileUploadElemIds.length] = elementId;
$(newFileUpload).appendTo('#fileUploadBody');
$('input[@type=file]', newFileUpload).attr('id', elementId);
$('span.uploadProcessing', newFileUpload).attr('id', 'ajax' + elementId);
$('input[@type=button]', newFileUpload).click(
function()
{
uploadFile(elementId);
}
);
$('a', newFileUpload).show().click(
function()
{
cancelFileUpload(elementId);
}
);
$(newFileUpload).show();
return false;
};
/**
* cancel uploading file
* remove hidden upload frame
* remove hidden upload form
*/
function cancelFileUpload(elementId)
{
$('#' + elementId).parent().parent().remove();
//ensure there is at least one visible upload element
while($('#fileUploadBody tr').length < 2)
{
addMoreFile();
}
return false;
};
/**
* upload file
*/
function uploadFile(elementId)
{
var ext = getFileExtension($('#' + elementId).val());
if(ext == '')
{
alert(noFileSelected );
return false;
}
var supportedExts = supportedUploadExts.split(",");
var isSupportedExt = false;
for (i in supportedExts)
{
//alert(typeof(supportedExts[i]));
if(typeof(supportedExts[i]) == 'string')
{
isSupportedExt = true;
break;
}
}
if(!isSupportedExt)
{
alert(msgInvalidExt);
return false;
}
$('#ajax' + elementId).hide();
$('#ajax' + elementId).show();
$.ajaxFileUpload
(
{
url:appendQueryString(getUrl('upload', false, false), 'folder=' + currentFolder.path, ['folder']),
secureuri:false,
fileElementId:elementId,
dataType: 'json',
success: function (data, status)
{
if(typeof(data.error) != 'undefined')
{
if(data.error != '')
{
alert(data.error);
$('#ajax' + elementId).hide();
}else
{
//remove the file type of input
cancelFileUpload(elementId);
numRows++;
files[numRows] = {};
for(var i in data)
{
if(i != 'error')
{
files[numRows][i] = data[i];
}
}
addDocumentHtml(numRows);
}
}
},
error: function (data, status, e)
{
$('#ajax' + elementId).hide();
alert(e);
}
}
)
return false;
};
/**
* generate unique id
*/
function generateUniqueId(leng)
{
var idLength = leng || 32;
var chars = "0123456789abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ";
var id = '';
for(var i = 0; i <= idLength; i++)
{
id += chars.substr( Math.floor(Math.random() * 62), 1 );
}
return (id );
};
/**
* generate a hidden iframe and force to download the specified file
*/
function generateDownloadIframe(url)
{
var frameId = 'ajaxDownloadIframe';
$('#' + frameId).remove();
if(window.ActiveXObject) {
var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
}
else {
var io = document.createElement('iframe');
io.id = frameId;
io.name = frameId;
}
io.style.position = 'absolute';
io.style.top = '-1000px';
io.style.left = '-1000px';
io.src = url;
document.body.appendChild(io);
};
/**
* show the url content in thickbox
*/
function showThickBox(linkElem, url)
{
$(linkElem).attr('href', url);
var t = linkElem.title || linkElem.name || null;
var a = linkElem.href || linkElem.alt;
var g = linkElem.rel || false;
tb_show(t,a,g);
linkElem.blur();
return false;
};
/**
* bring up a file upload window
*/
function uploadFileWin(linkElem)
{
showThickBox(linkElem, appendQueryString('#TB_inline', 'height=200' + '&width=450' + '&inlineId=winUpload&modal=true'));
};
/**
* bring up a new folder window
*/
function newFolderWin(linkElem)
{
showThickBox(linkElem, appendQueryString('#TB_inline', 'height=100' + '&width=250' + '&inlineId=winNewFolder&modal=true'));
return false;
}
/**
* ajax call to create a folder
*/
function doCreateFolder()
{
$('#currentNewfolderPath').val(currentFolder.path);
var pattern=/^[A-Za-z0-9_ \-]+$/i;
var folder = $('#new_folder');
if(!pattern.test($(folder).val()))
{
alert(msgInvalidFolderName);
}else
{
var options =
{
dataType: 'json',
url:getUrl('create_folder'),
error: function (data, status, e)
{
alert(e);
},
success: function(data)
{
//remove those selected items
if(data.error != '')
{
alert(data.error);
}else
{
numRows++;
files[numRows] = {};
for(var i in data)
{
if(i != 'error')
{
files[numRows][i] = data[i];
}
}
addDocumentHtml(numRows);
tb_remove();
}
}
};
$('#formNewFolder').ajaxSubmit(options);
}
return false;
};
/**
* selecte documents and fire an ajax call to delete them
*/
function deleteDocuments(msgNoDocSelected, msgUnableToDelete, msgWarning, elements)
{
if(!window.confirm(warningDel))
{
return false;
}
switch(getView())
{
case 'thumbnail':
var selectedDoc = $('#rightCol dl.thumbnailListing input[@type=checkbox][@checked]');
break;
case 'detail':
default:
var selectedDoc = $('#fileList input[@type=checkbox][@checked]');
}
var hiddenSelectedDoc = document.getElementById('selectedDoc');
var selectedOptions;
var isSelected = false;
//remove all options
$(hiddenSelectedDoc).removeOption(/./);
$(selectedDoc).each(function(i){
$(hiddenSelectedDoc).addOption($(this).val(), getNum($(this).attr('id')), true);
isSelected = true;
});
if(!isSelected)
{
alert(msgNoDocSelected);
}
else
{//remove them via ajax call
var options =
{
dataType: 'json',
url:getUrl('delete'),
error: function (data, status, e)
{
alert(e);
},
success: function(data)
{
if(typeof(data.error) == 'undefined')
{
alert('Unexpected error.');
}else if(data.error != '')
{
alert(data.error);
}else
{
//remove all files
for(var i =0; i < hiddenSelectedDoc.options.length; i++)
{
switch(getView())
{
case 'thumbnail':
$('#dl' + hiddenSelectedDoc.options[i].text).remove();
break;
case 'detail':
default:
$('#row' + hiddenSelectedDoc.options[i].text).remove();
}
}
}
}
};
$('#formAction').ajaxSubmit(options);
}
return false;
};
/**
* renmae the specific file/folder
*/
function doRename()
{
var num = $('#renameNum').val();
if(files[num].fileType == 'folder')
{
var pattern=/^[A-Za-z0-9_ \-]+$/i;
}else
{
var pattern=/^[A-Za-z0-9_ \-\.]+$/i;
}
if(!pattern.test($('#renameName').val()))
{
if(files[num].fileType == 'folder')
{
alert(msgInvalidFolderName);
}else
{
alert(msgInvalidFileName);
}
}else
{
var options =
{
dataType: 'json',
url:getUrl('rename'),
error: function (data, status, e)
{
alert(e);
},
success: function(data)
{
//remove those selected items
if(data.error != '')
{
alert(data.error);
}else
{
var info = '';
for(var i in data)
{
if(i != 'error')
{
files[num][i] = data[i];
}
}
switch(getView())
{
case 'thumbnail':
$('#thumbUrl' + num).attr('href', files[num].path);
$('#thumbImg' + num).attr('src', appendQueryString(getUrl('thumbnail'), 'path=' + files[num].path, ['path']));
$('#cb' + num).val(files[num].path);
$('#a' + num).attr('href', files[num].path).text(files[num].name);
break;
case 'detail':
default:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -