102 lines
3.2 KiB
JavaScript
Executable File
102 lines
3.2 KiB
JavaScript
Executable File
define(function(require, exports) {
|
|
var menuAction = function(action,option){
|
|
//console.log(action,option);
|
|
var zip = function(fileType){
|
|
var oprate = ui.path.pathOperate;
|
|
oprate.zip(ui.path.makeParam(true),ui.path.refreshCallback,fileType);
|
|
};
|
|
var unZip = function(createFolder){
|
|
if(!ui.path.checkSystemPath()) return;
|
|
var oprate = ui.path.pathOperate;
|
|
ui.pathOperate.unZip(ui.path.makeParam().path,ui.f5,createFolder);
|
|
};
|
|
switch(action){
|
|
case 'zip-zip': zip();break;
|
|
case 'zip-tar': zip('tar');break;
|
|
case 'zip-tgz': zip('tar.gz');break;
|
|
case 'unzip-folder':unZip();break;
|
|
case 'unzip-this':unZip('toThis');break;
|
|
case 'unzip-to':unZip('toFolder');break;
|
|
}
|
|
}
|
|
var option = {//file;
|
|
"unzip":{
|
|
name:LNG.unzip,
|
|
className:"unzip",
|
|
icon:"icon-folder-open-alt",
|
|
items:{
|
|
"unzip-this":{name:LNG.unzip_this,className:"unzip-this",icon:"icon-external-link",callback:menuAction},
|
|
"unzip-folder":{name:LNG.unzip_folder,className:"unzip-folder",icon:"icon-external-link",callback:menuAction},
|
|
"unzip-to":{name:LNG.unzip_to,className:"unzip-to",icon:"icon-external-link",callback:menuAction}
|
|
}
|
|
},
|
|
"zip":{
|
|
name:LNG.zip,
|
|
className:"zip",
|
|
icon:"icon-external-link",
|
|
items:{
|
|
"zip-zip":{name:"ZIP "+LNG.file,className:"zip-zip",icon:"icon-external-link",callback:menuAction},
|
|
"sep109":"--------",
|
|
"zip-tar":{name:"TAR "+LNG.file,className:"zip-tar",icon:"icon-external-link",callback:menuAction},
|
|
"zip-tgz":{name:"GZIP "+LNG.file,className:"zip-tgz",icon:"icon-external-link",callback:menuAction}
|
|
}
|
|
}
|
|
}
|
|
var menuAdd = function(){
|
|
if (!core.authCheck('explorer.zip')) {
|
|
$('.context-menu-list .zip').addClass('hidden');
|
|
//option.zip = false;
|
|
}
|
|
|
|
$.contextMenu.menuAdd({zip:option.zip},'.menu-more',false,'.clone');
|
|
$.contextMenu.menuAdd(option,'.menu-file',false,'.open-browser');
|
|
$.contextMenu.menuAdd({zip:option.zip},'.menu-folder',false,'.open-browser');
|
|
$.contextMenu.menuAdd(option,'.toolbar-path-more',false,'.others');
|
|
}
|
|
|
|
Hook.bind('rightMenu.show.menu-file,rightMenu.show.menu-tree-file',function($menuAt,$theMenu){
|
|
if($('.context-menu-active').hasClass('menu-tree-file') ){
|
|
var param = ui.tree.makeParam();
|
|
}else{
|
|
var param = ui.path.makeParam();
|
|
}
|
|
var ext = core.pathExt(param.path);
|
|
var hideClass = 'hidden';
|
|
if ( kodApp.appSupportCheck('zipView',ext) ) {
|
|
$theMenu.find('.unzip').removeClass(hideClass);
|
|
}else{
|
|
$theMenu.find('.unzip').addClass(hideClass);
|
|
}
|
|
});
|
|
|
|
//解压缩对话框菜单
|
|
Hook.bind('rightMenu.show',function(selector,$menuAt,$theMenu){
|
|
var menuArr = [
|
|
".menu-folder",
|
|
".menu-file",
|
|
".menu-tree-folder",
|
|
".menu-tree-file",
|
|
]
|
|
if(!_.include(menuArr,selector)){
|
|
return;
|
|
}
|
|
var disableClass = 'disabled';
|
|
var menuNotWrite = '.zip';
|
|
var menuNotRead = '.zip,.unzip-this,.unzip-folder';
|
|
//不可读写
|
|
if($menuAt.hasClass('file-not-readable')){
|
|
$theMenu.find(menuNotRead).addClass(disableClass);
|
|
}else{
|
|
$theMenu.find(menuNotRead).removeClass(disableClass);
|
|
}
|
|
//只读
|
|
if($menuAt.hasClass('file-not-writeable')){
|
|
$theMenu.find(menuNotWrite).addClass(disableClass);
|
|
}else{
|
|
$theMenu.find(menuNotWrite).removeClass(disableClass);
|
|
}
|
|
});
|
|
menuAdd();
|
|
});
|
|
|