KodExplorer/static/js/_dev/common/pathOpen.js

187 lines
5.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

define(function(require, exports) {
//双击或者选中后enter 打开 执行事件
//或者打开指定文件
var _open = function(path,ext){
if (path == undefined) return;
if (ext == undefined) ext = core.pathExt(path);//没有扩展名则自动解析
ext = ext.toLowerCase();
if (ext == 'folder'){
if (Config.pageApp == 'explorer'){
ui.path.list(path+'/');//更新文件列表
}else{
core.explorer(path);
}
return;
}
if (ext == 'swf') {
var url = core.path2url(path);
_openWindow(url,core.ico('swf'),core.pathThis(path));
return;
}
if (ext == 'oexe') {
core.openApp(path);
return;
}
if (ext == 'pdf') {
var uuid = 'pdf'+UUID();
var url = core.path2url(path);
var html = '<div id="'+uuid+'" style="height:100%;">\
<a href="'+url+'" target="_blank" style="display:block;margin:0 auto;margin-top:80px;font-size:16px;text-align:center;">'+LNG.error+' '+LNG.download+' PDF</a></div>';
$.dialog({
resize:true,
fixed:true,
ico:core.ico('pdf'),
title:core.pathThis(path),
width:800,
height:400,
padding:0,
content:html
});
new PDFObject({url:url}).embed(uuid);
return;
}
if (ext=='html' || ext =='htm'){
var url = core.path2url(path);
_openWindow(url,core.ico('html'),core.pathThis(path));
return;
}
if (inArray(core.filetype['image'],ext)){//单张图片打开
var url = urlDecode(path);
if (path.indexOf('http:') == -1) {
url = core.path2url(url);
}
MaskView.image(url);
return;
}
if (inArray(core.filetype['music'],ext)
|| inArray(core.filetype['movie'],ext) ) {
var url = core.path2url(path);
_player(url,ext);
return;
}
if (inArray(core.filetype['doc'],ext)){
var url = core.path2url(path);
_openOffice(url,ext);
return;
}
if (inArray(core.filetype['bindary'],ext)) {//二进制文件,则下载
_download(path);
return;
}
_openEditor(path);//代码文件,编辑
}
var _download = function(path){
if (!path) return;
var url='index.php?explorer/fileDownload&path='+urlEncode2(path);
var html = '<iframe src="'+url+'" style="width:0px;height:0px;border:0;" frameborder=0></iframe>'+
LNG.download_ready +'...';
var dlg = $.dialog({
icon:'succeed',
title:false,
time:1,
content:html
});
dlg.DOM.wrap.find('.aui_loading').remove();
};
//新的页面作为地址打开。鼠标右键IE下打开
var _openIE = function(path){
if (path==undefined) return;
var url=core.path2url(path);
window.open(url);
};
var _openWindow = function(url,ico,title,name) {
if (!url) return;
if (name == undefined) name = 'openWindow'+UUID();
var html = "<iframe frameborder='0' name='Open"+name+"' src='"+url+
"' style='width:100%;height:100%;border:0;'></iframe>";
// if(url.substr(url.length-4).toLowerCase() == '.swf'){
// html = core.createFlash(url,'',name);
// }
art.dialog.through({
id:name,
title:title,
ico:ico,
width:'70%',
height:'65%',
padding:0,
content:html,
resize:true
});
};
var _openEditor = function(path){
if (!path) return;
var ext = core.pathExt(path);
var filename = core.pathThis(path);
if (inArray(core.filetype['bindary'],ext) ||
inArray(core.filetype['music'],ext) ||
inArray(core.filetype['image'],ext) ||
inArray(core.filetype['movie'],ext) ||
inArray(core.filetype['doc'],ext)
){
core.tips.tips(ext+LNG.edit_can_not,false);
return;
}
if (window.top.frames["OpenopenEditor"] == undefined) {
var url ='./index.php?editor/edit&filename='+urlEncode(urlEncode2(path));//3次
var title = filename+' ——'+LNG.edit;
_openWindow(url,core.ico('edit'),title.substring(title.length-50),'openEditor');
}else{
if ($.dialog.list['openEditor']) $.dialog.list['openEditor'].display(true);;
FrameCall.top('OpenopenEditor','Editor.add','"'+urlEncode2(path)+'"');//2次
}
};
var _openOffice = function(url,ext){
var app_url,temp_url,frame,ico;
switch (ext) {
case 'doc':
case 'docx':
case 'docm':
case 'dot':
ico=core.ico('doc');
app_url ='http://sg1b-word-view.officeapps.live.com/wv/wordviewerframe.aspx?ui=zh-CN&rs=zh-CN&WOPISrc=';
break;
case 'ppt':
case 'pptm':
case 'pptx':
ico=core.ico('ppt');
app_url ='http://sg1b-powerpoint.officeapps.live.com/p/PowerPointFrame.aspx?PowerPointView=ReadingView&ui=zh-CN&rs=zh-CN&WOPISrc=';
break;
case 'xls':
case 'xlsb':
case 'xlsm':
case 'xlsx':
ico=core.ico('xls');
app_url = 'http://sg1b-excel.officeapps.live.com/x/_layouts/xlviewerinternal.aspx?ui=zh-CN&rs=zh-CN&WOPISrc=';
break;
default:break;
}
temp_url = 'http://sg1b-15-view-wopi.wopi.live.net:808/oh/wopi/files/@/wFileId?wFileId=';
temp_url += urlEncode(url);
frame = app_url+urlEncode(temp_url)+'&access_token=1&access_token_ttl=0';
var title = core.pathThis(urlDecode(url));
art.dialog.open(frame,{
ico:ico,
title:title,width:'70%',
height:'65%',
resize:true
});
}
//传入音乐播放地址,多个的话传入数组。可以扩展播放网络音乐
var _player = function(list,ext){
if (!list) return;
if (typeof(list) == 'string') list=[list];
CMPlayer = require('./CMPlayer');
CMPlayer.play(list,ext);
};
//对外接口
return{
open:_open,
play:_player,
openEditor:_openEditor,
openIE:_openIE,
download:_download
}
});