KodExplorer/plugins/zipView/static/page.js

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();
});