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

200 lines
5.5 KiB
JavaScript
Raw Normal View History

2014-09-17 16:16:17 +00:00
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){
if (G.office_server !='') {
var office_url = G.office_server + urlEncode(url);
var title = core.pathThis(urlDecode(url));
art.dialog.open(office_url,{
ico:ico,
title:title,width:'70%',
height:'65%',
resize:true
});
return;
}
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
}
});