2.4 version
parent
a8f86a3689
commit
de692316c5
40
README.md
40
README.md
|
@ -1,6 +1,6 @@
|
||||||
#KODexplorer (http://kalcaddle.com/)
|
#KODexplorer (http://kalcaddle.com/)
|
||||||
###ver2.2(2014.4.19) power by warlee
|
###ver2.4(2014.6.8) power by warlee
|
||||||
商业版授权请联系:QQ:kalcaddle@qq.com
|
商业版授权请联系:QQ:kalcaddle#qq.com
|
||||||
|
|
||||||
##是什么:
|
##是什么:
|
||||||
Kodexplorer为千帆网络工作室开发的一款服务器文件管理程序。
|
Kodexplorer为千帆网络工作室开发的一款服务器文件管理程序。
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
普通用户:demo/demo
|
普通用户:demo/demo
|
||||||
游客用户:guest/guest
|
游客用户:guest/guest
|
||||||
|
|
||||||
【如何使用】下载程序,上传到你的服务器路径下,解压。访问即可,体验超便捷的服务吧!
|
【如何使用】下载程序,上传到你的服务器路径下,解压,data目录设置777权限。访问体验超便捷的服务吧!
|
||||||
【关于上传问题】 程序没有做任何限制,如果需要上传大文件,则修改php.ini:upload_max_filesize = 1000M post_max_size = 1000M
|
【关于上传问题】 程序没有做任何限制,如果需要上传大文件,则修改php.ini:upload_max_filesize = 1000M post_max_size = 1000M
|
||||||
【关于解压缩问题】 程序不做任何限制,如若失败请设置php内存限制。memory_limit 1000M
|
【关于解压缩问题】 程序不做任何限制,如若失败请设置php内存限制。memory_limit 1000M
|
||||||
【关于兼容性】建议使用chrome firefox ie9+ 体验更完整。ie8以下基本上不做兼容处理。chrome才支持文件夹拖拽上传。
|
【关于兼容性】建议使用chrome firefox ie9+ 体验更完整。ie8以下基本上不做兼容处理。chrome才支持文件夹拖拽上传。
|
||||||
|
@ -36,7 +36,38 @@
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
ver2.2 `2014/4/19`
|
|
||||||
|
ver2.4 `2014/6/8`
|
||||||
|
=====================
|
||||||
|
##update:
|
||||||
|
语言选择
|
||||||
|
远程下载文件名优化
|
||||||
|
树目录事件优化
|
||||||
|
收藏夹点击 undefined
|
||||||
|
没权限建立文件夹错误提示 红色
|
||||||
|
打开dialog 不显示问题。先显示后打开
|
||||||
|
ajax error 系统错误 对话框提示内容
|
||||||
|
懒加载优化
|
||||||
|
|
||||||
|
|
||||||
|
ver2.3 `2014/6/2`
|
||||||
|
=====================
|
||||||
|
##update:
|
||||||
|
拖动url——创建ext app
|
||||||
|
文件管理,树目录变化后(增删改)自动同步到文件列表
|
||||||
|
文件管理,文件列表变化后(增删改)自动同步到树目录
|
||||||
|
中文用户名限制
|
||||||
|
对话框打开关闭动画
|
||||||
|
其他多处优化
|
||||||
|
##fix bug:(bug解决和程序优化)
|
||||||
|
文件名限制bug
|
||||||
|
同目录多个程序cookie bug修复
|
||||||
|
地址栏 最后显示宽度问题
|
||||||
|
服务器路径下 编辑器预览404修复
|
||||||
|
树目录显示优化
|
||||||
|
登陆记住密码优化
|
||||||
|
|
||||||
|
ver2.2 `2014/5/11`
|
||||||
=====================
|
=====================
|
||||||
##update:
|
##update:
|
||||||
公共目录支持(多个用户可以共享目录,写权限跟随用户组权限设定)
|
公共目录支持(多个用户可以共享目录,写权限跟随用户组权限设定)
|
||||||
|
@ -48,6 +79,7 @@ ver2.2 `2014/4/19`
|
||||||
##fix bug:(bug解决和程序优化)
|
##fix bug:(bug解决和程序优化)
|
||||||
桌面任务栏点不中bug
|
桌面任务栏点不中bug
|
||||||
部分文案问题
|
部分文案问题
|
||||||
|
众多细节优化
|
||||||
|
|
||||||
|
|
||||||
ver2.1 `2014/4/2`
|
ver2.1 `2014/4/2`
|
||||||
|
|
|
@ -5,10 +5,12 @@
|
||||||
* @copyright warlee 2014.(Shanghai)Co.,Ltd
|
* @copyright warlee 2014.(Shanghai)Co.,Ltd
|
||||||
* @license http://kalcaddle.com/tools/licenses/license.txt
|
* @license http://kalcaddle.com/tools/licenses/license.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
date_default_timezone_set('PRC');
|
date_default_timezone_set('PRC');
|
||||||
@ini_set('display_errors',0);
|
|
||||||
@ini_set('session.cache_expire',600);
|
@ini_set('session.cache_expire',600);
|
||||||
@set_time_limit(600);//30min pathInfoMuti,search,upload,download...
|
@set_time_limit(600);//30min pathInfoMuti,search,upload,download...
|
||||||
|
@ini_set('display_errors',0);
|
||||||
|
|
||||||
function P($path){return str_replace('\\','/',$path);}
|
function P($path){return str_replace('\\','/',$path);}
|
||||||
define('WEB_ROOT',str_replace(P($_SERVER['SCRIPT_NAME']),'',P(dirname(dirname(__FILE__))).'/index.php').'/');
|
define('WEB_ROOT',str_replace(P($_SERVER['SCRIPT_NAME']),'',P(dirname(dirname(__FILE__))).'/index.php').'/');
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
<?php
|
<?php
|
||||||
define('KOD_VERSION','2.2');//2014.4.2
|
define('KOD_VERSION','2.4');//2014.6.8
|
|
@ -87,7 +87,17 @@ class app extends Controller{
|
||||||
show_json($this->L['error'],false);
|
show_json($this->L['error'],false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function get_url_title(){
|
||||||
|
$html = curl_get_contents($this->in['url']);
|
||||||
|
$result = match($html,"<title>(.*)<\/title>");
|
||||||
|
if (strlen($result)>50) {
|
||||||
|
$result = mb_substr($result,0,50,'utf-8');
|
||||||
|
}
|
||||||
|
if (strlen($result) == 0) {
|
||||||
|
$result = urlencode($this->in['url']);
|
||||||
|
}
|
||||||
|
show_json($result);
|
||||||
|
}
|
||||||
|
|
||||||
private function _init(){
|
private function _init(){
|
||||||
return json_decode(rawurldecode($this->in['data']));
|
return json_decode(rawurldecode($this->in['data']));
|
||||||
|
|
|
@ -47,7 +47,9 @@ class debug extends Controller{
|
||||||
$this->_remove();
|
$this->_remove();
|
||||||
echo '删除成功!<br/><h3>开始替换模板种less相关内容</h3><hr/>';flush();
|
echo '删除成功!<br/><h3>开始替换模板种less相关内容</h3><hr/>';flush();
|
||||||
$this->_fileReplace();
|
$this->_fileReplace();
|
||||||
echo '替换成功!<br/><h3>打包程序</h3><hr/>';flush();
|
echo '替换成功!<br/><h3>初始化默认用户数据...</h3><hr/>';flush();
|
||||||
|
$this->_initUser();
|
||||||
|
echo '初始化默认用户成功!<br/><h3>打包程序</h3><hr/>';flush();
|
||||||
|
|
||||||
load_class('pclzip');
|
load_class('pclzip');
|
||||||
ini_set('memory_limit', '2028M');//2G;
|
ini_set('memory_limit', '2028M');//2G;
|
||||||
|
@ -55,7 +57,6 @@ class debug extends Controller{
|
||||||
$v_list = $archive->create($this->path_to,PCLZIP_OPT_REMOVE_PATH,$this->path_to);
|
$v_list = $archive->create($this->path_to,PCLZIP_OPT_REMOVE_PATH,$this->path_to);
|
||||||
echo '打包成功!<br/><h3>初始化配置文件</h3><hr/>';flush();
|
echo '打包成功!<br/><h3>初始化配置文件</h3><hr/>';flush();
|
||||||
|
|
||||||
$this->_initUser();
|
|
||||||
echo '更新成功!<br/><h1>导出处理完成!^_^</h1>';flush();
|
echo '更新成功!<br/><h1>导出处理完成!^_^</h1>';flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,6 +157,8 @@ class debug extends Controller{
|
||||||
);
|
);
|
||||||
$path_list = array(
|
$path_list = array(
|
||||||
$this->path_to.'/data/log',
|
$this->path_to.'/data/log',
|
||||||
|
$this->path_to.'/data/User',
|
||||||
|
$this->path_to.'/data/public/',
|
||||||
$this->path_to.'/data/thumb',
|
$this->path_to.'/data/thumb',
|
||||||
$this->path_to.'/static/js/_dev',
|
$this->path_to.'/static/js/_dev',
|
||||||
$this->path_to.'/static/js/app/update',
|
$this->path_to.'/static/js/app/update',
|
||||||
|
@ -222,7 +225,8 @@ class debug extends Controller{
|
||||||
'guest'=>array('guest','guest')
|
'guest'=>array('guest','guest')
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($user as $name => $v) {
|
mk_dir($this->path_to.'/data/public/test/');//创建公共目录
|
||||||
|
foreach ($user as $name => $v) {//创建用户目录及初始化
|
||||||
$user_path = $this->path_to.'/data/User/'.$name.'/';
|
$user_path = $this->path_to.'/data/User/'.$name.'/';
|
||||||
mk_dir($user_path);
|
mk_dir($user_path);
|
||||||
foreach ($root as $dir) {
|
foreach ($root as $dir) {
|
||||||
|
@ -232,7 +236,6 @@ class debug extends Controller{
|
||||||
mk_dir($user_path.'home/'.$dir);
|
mk_dir($user_path.'home/'.$dir);
|
||||||
}
|
}
|
||||||
fileCache::save($user_path.'data/config.php',$this->config['setting_default']);
|
fileCache::save($user_path.'data/config.php',$this->config['setting_default']);
|
||||||
|
|
||||||
}
|
}
|
||||||
$this->_initUserData();
|
$this->_initUserData();
|
||||||
}
|
}
|
||||||
|
|
|
@ -245,7 +245,7 @@ class explorer extends Controller{
|
||||||
if(mkdir($new,0777)){
|
if(mkdir($new,0777)){
|
||||||
show_json($this->L['create_success']);
|
show_json($this->L['create_success']);
|
||||||
}else{
|
}else{
|
||||||
show_json($this->L['create_error']);
|
show_json($this->L['create_error'],false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public function pathCopy(){
|
public function pathCopy(){
|
||||||
|
@ -448,7 +448,16 @@ class explorer extends Controller{
|
||||||
public function serverDownload() {
|
public function serverDownload() {
|
||||||
$url = rawurldecode($this->in['url']);
|
$url = rawurldecode($this->in['url']);
|
||||||
$save_path = _DIR($this->in['save_path']);
|
$save_path = _DIR($this->in['save_path']);
|
||||||
$save_path = $save_path.'download_'.rand(100,999).'.tmp';
|
|
||||||
|
$name = get_path_this($url);
|
||||||
|
if (stripos($name,'?')) $name = substr($name,0,stripos($name,'?'));
|
||||||
|
if (!$name) $name = 'index.html';
|
||||||
|
$ext = get_path_ext($name);
|
||||||
|
$ext_arr = explode('|',$GLOBALS['auth']['ext_not_allow']);
|
||||||
|
if (in_array($ext,$ext_arr)){
|
||||||
|
$name .= '.tmp';
|
||||||
|
}
|
||||||
|
$save_path = $save_path.$name;
|
||||||
$result = file_download_this($url,$save_path);
|
$result = file_download_this($url,$save_path);
|
||||||
if ($result == 1){
|
if ($result == 1){
|
||||||
show_json($this->L['download_success'],true,$save_path);
|
show_json($this->L['download_success'],true,$save_path);
|
||||||
|
|
|
@ -45,6 +45,10 @@ class user extends Controller
|
||||||
$this->authApi();//api方式验证
|
$this->authApi();//api方式验证
|
||||||
if($_SESSION['isLogin'] === true){
|
if($_SESSION['isLogin'] === true){
|
||||||
define('USER',USER_PATH.$this->user['name'].'/');
|
define('USER',USER_PATH.$this->user['name'].'/');
|
||||||
|
if (!file_exists(USER)) {
|
||||||
|
$this->logout();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if ($this->user['role'] == 'root') {
|
if ($this->user['role'] == 'root') {
|
||||||
define('MYHOME',USER.'home/');
|
define('MYHOME',USER.'home/');
|
||||||
define('HOME','');
|
define('HOME','');
|
||||||
|
@ -66,7 +70,7 @@ class user extends Controller
|
||||||
$member = new fileCache($this->config['system_file']['member']);
|
$member = new fileCache($this->config['system_file']['member']);
|
||||||
$user = $member->get($_COOKIE['kod_name']);
|
$user = $member->get($_COOKIE['kod_name']);
|
||||||
if(md5($user['password'].get_client_ip()) == $_COOKIE['kod_token']){
|
if(md5($user['password'].get_client_ip()) == $_COOKIE['kod_token']){
|
||||||
|
session_start();//re start
|
||||||
$_SESSION['isLogin'] = true;
|
$_SESSION['isLogin'] = true;
|
||||||
$_SESSION['user']= $user;
|
$_SESSION['user']= $user;
|
||||||
setcookie('kod_name', $_COOKIE['kod_name'], time()+3600*24*365);
|
setcookie('kod_name', $_COOKIE['kod_name'], time()+3600*24*365);
|
||||||
|
@ -180,12 +184,11 @@ class user extends Controller
|
||||||
}
|
}
|
||||||
//扩展名限制:新建文件&上传文件&重命名文件&保存文件&zip解压文件
|
//扩展名限制:新建文件&上传文件&重命名文件&保存文件&zip解压文件
|
||||||
$check_arr = array(
|
$check_arr = array(
|
||||||
'mkfile' => $this->in['path'],
|
'mkfile' => trim($this->in['path']),
|
||||||
'pathRname' => $this->in['rname_to'],
|
'pathRname' => trim($this->in['rname_to']),
|
||||||
'fileUpload'=> $_FILES['file']['name'],
|
'fileUpload'=> trim($_FILES['file']['name']),
|
||||||
'fileSave' => $this->in['path'],
|
'fileSave' => trim($this->in['path'])
|
||||||
);
|
);
|
||||||
|
|
||||||
if (array_key_exists(ACT,$check_arr)){
|
if (array_key_exists(ACT,$check_arr)){
|
||||||
$ext = get_path_ext($check_arr[ACT]);
|
$ext = get_path_ext($check_arr[ACT]);
|
||||||
$ext_arr = explode('|',$auth['ext_not_allow']);
|
$ext_arr = explode('|',$auth['ext_not_allow']);
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
<?php exit;?>{"list_type":"icon","list_sort_field":"name","list_sort_order":"up","theme":"simple\/","codetheme":"crimson_editor","wall":"1","musictheme":"mp3player","movietheme":"webplayer"}
|
<?php exit;?>{"list_type":"icon","list_sort_field":"name","list_sort_order":"up","theme":"metro\/","codetheme":"github","wall":"8","musictheme":"qqmusic","movietheme":"webplayer"}
|
|
@ -1 +1 @@
|
||||||
<?php exit;?>{"0.000":{"name":"0.000","path":"D:\/wwwroot\/0.000\/"},"config":{"name":"config","path":"D:\/wwwroot\/tools\/eXtplorer\/config"},"kod":{"name":"kod","path":"D:\/wwwroot\/www\/kod"}}
|
<?php exit;?>{"0.000":{"name":"0.000","path":"D:\/wwwroot\/0.000\/"},"config":{"name":"config","path":"D:\/wwwroot\/tools\/eXtplorer\/config"},"kod":{"name":"kod","path":"D:\/wwwroot\/www\/kod"},"\u5e7b\u4e61":{"name":"\u5e7b\u4e61","path":"D:\/wwwroot\/www\/kod\/dev\/data\/public\/images\/\u6211\u7684\u6536\u85cf\/\u5e7b\u4e61"}}
|
|
@ -1 +1 @@
|
||||||
<?php exit;?>{"list_type":"icon","list_sort_field":"mtime","list_sort_order":"up","theme":"metro\/","codetheme":"github","wall":"1","musictheme":"kuwo","movietheme":"webplayer"}
|
<?php exit;?>{"list_type":"icon","list_sort_field":"mtime","list_sort_order":"up","theme":"metro\/","codetheme":"github","wall":"1","musictheme":"mp3player","movietheme":"webplayer"}
|
|
@ -14,11 +14,11 @@ define(function(require, exports) {
|
||||||
'bindary':['pdf','bin','zip','swf','gzip','rar','arj','tar','gz','cab','tbz','tbz2','lzh','uue','bz2'
|
'bindary':['pdf','bin','zip','swf','gzip','rar','arj','tar','gz','cab','tbz','tbz2','lzh','uue','bz2'
|
||||||
,'ace','exe','so','dll','chm','rtf','odp','odt','pages','class','psd','ttf']
|
,'ace','exe','so','dll','chm','rtf','odp','odt','pages','class','psd','ttf']
|
||||||
},
|
},
|
||||||
contextmenu:function(){
|
contextmenu:function(event){
|
||||||
rightMenu.hidden();
|
rightMenu.hidden();
|
||||||
var e = event || window.event;
|
var e = event || window.event;
|
||||||
if ($.nodeName(e.target,'TEXTAREA') ||
|
if (e && ($.nodeName(e.target,'TEXTAREA') ||
|
||||||
$.nodeName(e.target,'INPUT')){
|
$.nodeName(e.target,'INPUT'))){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//return false;
|
//return false;
|
||||||
|
@ -70,6 +70,24 @@ define(function(require, exports) {
|
||||||
return G.web_host+G.web_root+path;
|
return G.web_host+G.web_root+path;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
ajaxError:function(XMLHttpRequest, textStatus, errorThrown){
|
||||||
|
core.tips.close(LNG.system_error,false);
|
||||||
|
var error = '<div style="color:#f60;">'+XMLHttpRequest.responseText+'</div>';
|
||||||
|
var dialog = $.dialog.list['ajaxErrorDialog'];
|
||||||
|
if (dialog) {
|
||||||
|
dialog.content(error);
|
||||||
|
}else{
|
||||||
|
$.dialog({
|
||||||
|
id:'ajaxErrorDialog',
|
||||||
|
fixed:true,
|
||||||
|
resize:true,
|
||||||
|
title:'ajax error',
|
||||||
|
width:450,
|
||||||
|
height:200,
|
||||||
|
content:error
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
// setting 对话框
|
// setting 对话框
|
||||||
setting:function(setting){
|
setting:function(setting){
|
||||||
if (setting == undefined) setting = '';
|
if (setting == undefined) setting = '';
|
||||||
|
@ -279,6 +297,7 @@ define(function(require, exports) {
|
||||||
beforeSend:function(){
|
beforeSend:function(){
|
||||||
$message.hide().html(LNG.searching+'<img src="'+G.static_path+'images/loading.gif">').fadeIn(fade);
|
$message.hide().html(LNG.searching+'<img src="'+G.static_path+'images/loading.gif">').fadeIn(fade);
|
||||||
},
|
},
|
||||||
|
error:core.ajaxError,
|
||||||
success:function(data){
|
success:function(data){
|
||||||
if (!data.code) {
|
if (!data.code) {
|
||||||
$message.hide().html(data.data).fadeIn(fade);
|
$message.hide().html(data.data).fadeIn(fade);
|
||||||
|
@ -292,9 +311,6 @@ define(function(require, exports) {
|
||||||
var render = template.compile(tpl.list);
|
var render = template.compile(tpl.list);
|
||||||
data.data.LNG = LNG;
|
data.data.LNG = LNG;
|
||||||
$(render(data.data)).insertAfter('.search_result .message').fadeIn(fade);
|
$(render(data.data)).insertAfter('.search_result .message').fadeIn(fade);
|
||||||
},
|
|
||||||
error:function(data){
|
|
||||||
$message.hide().html(LNG.system_error).fadeIn(fade);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -370,14 +386,12 @@ define(function(require, exports) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url:'?explorer/serverDownload&save_path='+path+'&url='+urlEncode2(urls[i]),
|
url:'?explorer/serverDownload&save_path='+path+'&url='+urlEncode2(urls[i]),
|
||||||
dataType:'json',
|
dataType:'json',
|
||||||
|
error:core.ajaxError,
|
||||||
success:function(data){
|
success:function(data){
|
||||||
if (data.code) {
|
if (data.code) {
|
||||||
FrameCall.father('ui.f5',"");
|
FrameCall.father('ui.f5',"");
|
||||||
}
|
}
|
||||||
core.tips.tips(data);
|
core.tips.tips(data);
|
||||||
},
|
|
||||||
error:function(data){
|
|
||||||
core.tips.tips(LNG.system_error,false);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -451,6 +465,9 @@ define(function(require, exports) {
|
||||||
$(this).delay(index*300).slideUp(600);
|
$(this).delay(index*300).slideUp(600);
|
||||||
});
|
});
|
||||||
select_name_arr = [];
|
select_name_arr = [];
|
||||||
|
if (Config.pageApp == 'explorer') {
|
||||||
|
ui.tree.checkIfChange(G.this_path);
|
||||||
|
}
|
||||||
}).on('error',function(a,b){
|
}).on('error',function(a,b){
|
||||||
//console.log(a,b);
|
//console.log(a,b);
|
||||||
});
|
});
|
||||||
|
@ -458,7 +475,7 @@ define(function(require, exports) {
|
||||||
var timer;
|
var timer;
|
||||||
inState = false;
|
inState = false;
|
||||||
dragOver = function(e){
|
dragOver = function(e){
|
||||||
stopPP(e);
|
//stopPP(e);
|
||||||
if (inState == false){
|
if (inState == false){
|
||||||
inState = true;
|
inState = true;
|
||||||
MaskView.tips(LNG.upload_drag_tips);
|
MaskView.tips(LNG.upload_drag_tips);
|
||||||
|
@ -476,12 +493,19 @@ define(function(require, exports) {
|
||||||
},100);
|
},100);
|
||||||
}
|
}
|
||||||
dragDrop = function(e){
|
dragDrop = function(e){
|
||||||
|
e = e.originalEvent || e;
|
||||||
|
var txt = e.dataTransfer.getData("text/plain");
|
||||||
|
if (txt && txt.substring(0,4) == 'http') {
|
||||||
|
ui.path.pathOperate.appAddURL(txt);
|
||||||
|
console.log(txt);
|
||||||
|
}else{
|
||||||
|
core.upload();//满足 拖拽到当前,则上传到当前。
|
||||||
|
}
|
||||||
stopPP(e);
|
stopPP(e);
|
||||||
if (inState) {
|
if (inState) {
|
||||||
inState = false;
|
inState = false;
|
||||||
MaskView.close();
|
MaskView.close();
|
||||||
}
|
}
|
||||||
core.upload();//满足 拖拽到当前,则上传到当前。
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -39,9 +39,7 @@ define(function(require, exports) {
|
||||||
beforeSend:function(){
|
beforeSend:function(){
|
||||||
core.tips.loading();
|
core.tips.loading();
|
||||||
},
|
},
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
core.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
core.tips.close(data);
|
core.tips.close(data);
|
||||||
if (typeof(callback) == 'function')callback(data);
|
if (typeof(callback) == 'function')callback(data);
|
||||||
|
@ -59,9 +57,7 @@ define(function(require, exports) {
|
||||||
beforeSend:function(){
|
beforeSend:function(){
|
||||||
core.tips.loading();
|
core.tips.loading();
|
||||||
},
|
},
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
core.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
core.tips.close(data);
|
core.tips.close(data);
|
||||||
if (typeof (callback) == 'function')callback(data);
|
if (typeof (callback) == 'function')callback(data);
|
||||||
|
@ -81,9 +77,7 @@ define(function(require, exports) {
|
||||||
beforeSend:function(){
|
beforeSend:function(){
|
||||||
core.tips.loading();
|
core.tips.loading();
|
||||||
},
|
},
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
core.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
core.tips.close(data);
|
core.tips.close(data);
|
||||||
if (typeof(callback) == 'function')callback(data);
|
if (typeof(callback) == 'function')callback(data);
|
||||||
|
@ -97,7 +91,11 @@ define(function(require, exports) {
|
||||||
//删除 文件|文件夹 & 包含批量删除
|
//删除 文件|文件夹 & 包含批量删除
|
||||||
var remove = function(param,callback){
|
var remove = function(param,callback){
|
||||||
if (param.length<1) return;
|
if (param.length<1) return;
|
||||||
var name = param[0]['path'].substr(-40) + '...';
|
var name = param[0]['path'];
|
||||||
|
if (name.length > 20) {
|
||||||
|
name = name.substr(-20) + '...'
|
||||||
|
};
|
||||||
|
|
||||||
$.dialog({
|
$.dialog({
|
||||||
id:'dialog_path_remove',
|
id:'dialog_path_remove',
|
||||||
fixed: true,//不跟随页面滚动
|
fixed: true,//不跟随页面滚动
|
||||||
|
@ -117,9 +115,7 @@ define(function(require, exports) {
|
||||||
beforeSend:function(){
|
beforeSend:function(){
|
||||||
core.tips.loading();
|
core.tips.loading();
|
||||||
},
|
},
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
common.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
core.tips.close(data);
|
core.tips.close(data);
|
||||||
if (typeof(callback) == 'function')callback(data);
|
if (typeof(callback) == 'function')callback(data);
|
||||||
|
@ -137,9 +133,7 @@ define(function(require, exports) {
|
||||||
type:'POST',
|
type:'POST',
|
||||||
dataType:'json',
|
dataType:'json',
|
||||||
data:_json(param),
|
data:_json(param),
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
core.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
core.tips.tips(data);
|
core.tips.tips(data);
|
||||||
}
|
}
|
||||||
|
@ -153,9 +147,7 @@ define(function(require, exports) {
|
||||||
type:'POST',
|
type:'POST',
|
||||||
dataType:'json',
|
dataType:'json',
|
||||||
data:_json(param),
|
data:_json(param),
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
core.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success:function(data){
|
success:function(data){
|
||||||
core.tips.tips(data);
|
core.tips.tips(data);
|
||||||
}
|
}
|
||||||
|
@ -171,9 +163,7 @@ define(function(require, exports) {
|
||||||
beforeSend: function(){
|
beforeSend: function(){
|
||||||
core.tips.loading(LNG.moving);
|
core.tips.loading(LNG.moving);
|
||||||
},
|
},
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
core.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success:function(data){
|
success:function(data){
|
||||||
if (!data.code){
|
if (!data.code){
|
||||||
core.tips.close(data);
|
core.tips.close(data);
|
||||||
|
@ -196,9 +186,7 @@ define(function(require, exports) {
|
||||||
beforeSend: function(){
|
beforeSend: function(){
|
||||||
core.tips.loading(LNG.getting);
|
core.tips.loading(LNG.getting);
|
||||||
},
|
},
|
||||||
error:function(){//请求出错处理
|
error:core.ajaxError,
|
||||||
core.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success:function(data){
|
success:function(data){
|
||||||
if (!data.code){
|
if (!data.code){
|
||||||
core.tips.close(data);return;
|
core.tips.close(data);return;
|
||||||
|
@ -225,9 +213,7 @@ define(function(require, exports) {
|
||||||
beforeSend: function(){
|
beforeSend: function(){
|
||||||
core.tips.loading(LNG.getting);
|
core.tips.loading(LNG.getting);
|
||||||
},
|
},
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
core.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success:function(data){
|
success:function(data){
|
||||||
if (!data.code){
|
if (!data.code){
|
||||||
core.tips.close(data);return;
|
core.tips.close(data);return;
|
||||||
|
@ -258,9 +244,7 @@ define(function(require, exports) {
|
||||||
beforeSend: function(){
|
beforeSend: function(){
|
||||||
core.tips.loading(LNG.ziping);
|
core.tips.loading(LNG.ziping);
|
||||||
},
|
},
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
core.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success:function(data){
|
success:function(data){
|
||||||
core.tips.close(data);
|
core.tips.close(data);
|
||||||
data.code = 100;
|
data.code = 100;
|
||||||
|
@ -277,9 +261,7 @@ define(function(require, exports) {
|
||||||
beforeSend: function(){
|
beforeSend: function(){
|
||||||
core.tips.loading(LNG.unziping);
|
core.tips.loading(LNG.unziping);
|
||||||
},
|
},
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
core.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success:function(data){
|
success:function(data){
|
||||||
core.tips.close(data);
|
core.tips.close(data);
|
||||||
data.code = 100;
|
data.code = 100;
|
||||||
|
@ -298,9 +280,7 @@ define(function(require, exports) {
|
||||||
beforeSend: function(){
|
beforeSend: function(){
|
||||||
core.tips.loading(LNG.moving);
|
core.tips.loading(LNG.moving);
|
||||||
},
|
},
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
core.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success:function(data){
|
success:function(data){
|
||||||
core.tips.close(data);
|
core.tips.close(data);
|
||||||
if (!data.code) return;
|
if (!data.code) return;
|
||||||
|
@ -313,9 +293,7 @@ define(function(require, exports) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url:'index.php?explorer/clipboard',
|
url:'index.php?explorer/clipboard',
|
||||||
dataType:'json',
|
dataType:'json',
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
core.tips.tips(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success:function(data){
|
success:function(data){
|
||||||
if (!data.code) return;
|
if (!data.code) return;
|
||||||
$.dialog({
|
$.dialog({
|
||||||
|
@ -415,9 +393,7 @@ define(function(require, exports) {
|
||||||
beforeSend:function(){
|
beforeSend:function(){
|
||||||
core.tips.loading();
|
core.tips.loading();
|
||||||
},
|
},
|
||||||
error:function(){
|
error:core.ajaxError,
|
||||||
core.tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
core.tips.close(data);
|
core.tips.close(data);
|
||||||
if (!data.code) return;
|
if (!data.code) return;
|
||||||
|
@ -476,10 +452,51 @@ define(function(require, exports) {
|
||||||
var appList = function(){
|
var appList = function(){
|
||||||
core.appStore();
|
core.appStore();
|
||||||
};
|
};
|
||||||
|
//ui.path.pathOperate.appAddURL('http://www.baidu.com');
|
||||||
|
var appAddURL = function(url){
|
||||||
|
if (url && url.length<4 && url.substring(0,4)!='http') return;
|
||||||
|
$.ajax({
|
||||||
|
url: './index.php?app/get_url_title&url='+url,
|
||||||
|
dataType:'json',
|
||||||
|
beforeSend:function(){
|
||||||
|
core.tips.loading();
|
||||||
|
},
|
||||||
|
success: function(result) {
|
||||||
|
var name = result.data;
|
||||||
|
core.tips.close(result);
|
||||||
|
var data = {
|
||||||
|
content:url,
|
||||||
|
desc: "",
|
||||||
|
group: "others",
|
||||||
|
type: "url",
|
||||||
|
icon: "internet.png",
|
||||||
|
name: name,
|
||||||
|
resize: 1,
|
||||||
|
simple: 0,
|
||||||
|
height: "70%",
|
||||||
|
width: "80%"
|
||||||
|
};
|
||||||
|
var filename = urlEncode2(G.this_path+name);
|
||||||
|
url = './index.php?app/user_app&action=add&path='+filename;
|
||||||
|
$.ajax({
|
||||||
|
url: url,
|
||||||
|
type:'POST',
|
||||||
|
dataType:'json',
|
||||||
|
data:'data='+urlEncode2(json_encode(data)),
|
||||||
|
success: function(data) {
|
||||||
|
core.tips.close(data);
|
||||||
|
if (!data.code) return;
|
||||||
|
ui.f5();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return{
|
return{
|
||||||
appEdit:appEdit,
|
appEdit:appEdit,
|
||||||
appList:appList,
|
appList:appList,
|
||||||
|
appAddURL:appAddURL,
|
||||||
|
|
||||||
newFile:newFile,
|
newFile:newFile,
|
||||||
newFolder:newFolder,
|
newFolder:newFolder,
|
||||||
|
|
|
@ -2,6 +2,7 @@ define(function(require, exports) {
|
||||||
var pathOperate = require('./pathOperate');
|
var pathOperate = require('./pathOperate');
|
||||||
var pathOpen = require('./pathOpen');
|
var pathOpen = require('./pathOpen');
|
||||||
var successCallback;
|
var successCallback;
|
||||||
|
var isUpdateRefresh = false;//上传连续更新树目录队列方式。没有处理完不做反应,处理完后sleep 2s;
|
||||||
ui.pathOpen = pathOpen;
|
ui.pathOpen = pathOpen;
|
||||||
|
|
||||||
// 目录树操作
|
// 目录树操作
|
||||||
|
@ -145,9 +146,9 @@ define(function(require, exports) {
|
||||||
showLine: false,
|
showLine: false,
|
||||||
selectedMulti: false,
|
selectedMulti: false,
|
||||||
dblClickExpand: false,
|
dblClickExpand: false,
|
||||||
dblClickExpand: function(treeId, treeNode) {
|
// dblClickExpand: function(treeId, treeNode) {
|
||||||
return treeNode.level >= 0;
|
// return treeNode.level >= 0;
|
||||||
},// 双击 展开&折叠
|
// },// 双击 展开&折叠
|
||||||
addDiyDom: function(treeId, treeNode) {
|
addDiyDom: function(treeId, treeNode) {
|
||||||
var spaceWidth = Global.treeSpaceWide;
|
var spaceWidth = Global.treeSpaceWide;
|
||||||
var switchObj = $("#" + treeNode.tId + "_switch"),
|
var switchObj = $("#" + treeNode.tId + "_switch"),
|
||||||
|
@ -185,8 +186,8 @@ define(function(require, exports) {
|
||||||
|
|
||||||
var title = LNG.name+':'+treeNode.name+"\n"+LNG.size+':'+treeNode.size_friendly+"\n"
|
var title = LNG.name+':'+treeNode.name+"\n"+LNG.size+':'+treeNode.size_friendly+"\n"
|
||||||
+LNG.modify_time+':'+treeNode.mtime;
|
+LNG.modify_time+':'+treeNode.mtime;
|
||||||
if (treeNode.type == 'folder') {
|
if (treeNode.type != 'file') {
|
||||||
title = LNG.name+':'+treeNode.name+"\n"+LNG.modify_time+':'+treeNode.mtime;
|
title = treeNode.name;
|
||||||
}
|
}
|
||||||
switchObj.parent().addClass(selector).attr('title',title);
|
switchObj.parent().addClass(selector).attr('title',title);
|
||||||
}
|
}
|
||||||
|
@ -195,8 +196,15 @@ define(function(require, exports) {
|
||||||
onClick: function(event,treeId,treeNode){
|
onClick: function(event,treeId,treeNode){
|
||||||
var zTree = $.fn.zTree.getZTreeObj("folderList");
|
var zTree = $.fn.zTree.getZTreeObj("folderList");
|
||||||
zTree.selectNode(treeNode);
|
zTree.selectNode(treeNode);
|
||||||
|
zTree.expandNode(treeNode);
|
||||||
|
if(treeNode.type=='folder' && Config.pageApp=='editor') return;
|
||||||
|
if (treeNode.level == 0) {
|
||||||
|
if (Config.pageApp=='explorer' && treeNode.ext != '__fav__'){
|
||||||
|
ui.path.list(treeNode.this_path+'/');//更新文件列表
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if(treeNode.type=='folder'&& Config.pageApp=='editor') return;
|
|
||||||
if (Config.pageApp=='editor'){
|
if (Config.pageApp=='editor'){
|
||||||
ui.tree.openEditor();//编辑器优先打开文件
|
ui.tree.openEditor();//编辑器优先打开文件
|
||||||
}else if(Config.pageApp=='explorer'){
|
}else if(Config.pageApp=='explorer'){
|
||||||
|
@ -207,18 +215,6 @@ define(function(require, exports) {
|
||||||
var zTree = $.fn.zTree.getZTreeObj("folderList");
|
var zTree = $.fn.zTree.getZTreeObj("folderList");
|
||||||
zTree.selectNode(treeNode);
|
zTree.selectNode(treeNode);
|
||||||
},
|
},
|
||||||
beforeClick: function(treeId, treeNode) {
|
|
||||||
if (treeNode.level == 0 ) {
|
|
||||||
var zTree = $.fn.zTree.getZTreeObj("folderList");
|
|
||||||
zTree.selectNode(treeNode);
|
|
||||||
zTree.expandNode(treeNode);
|
|
||||||
if (treeNode.ext == '__root__' && Config.pageApp=='explorer') {
|
|
||||||
ui.path.list(treeNode.this_path+'/');//更新文件列表
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
beforeAsync:function(treeId, treeNode){
|
beforeAsync:function(treeId, treeNode){
|
||||||
treeNode.ajax_name= urlEncode(treeNode.name);
|
treeNode.ajax_name= urlEncode(treeNode.name);
|
||||||
treeNode.ajax_path= urlEncode(treeNode.path);
|
treeNode.ajax_path= urlEncode(treeNode.path);
|
||||||
|
@ -249,6 +245,7 @@ define(function(require, exports) {
|
||||||
successCallback = function(){
|
successCallback = function(){
|
||||||
var sel = zTree.getNodesByParam('name',treeNode.name,parent)[0];
|
var sel = zTree.getNodesByParam('name',treeNode.name,parent)[0];
|
||||||
zTree.selectNode(sel);
|
zTree.selectNode(sel);
|
||||||
|
f5_refresh();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else{//新建文件
|
}else{//新建文件
|
||||||
|
@ -258,14 +255,21 @@ define(function(require, exports) {
|
||||||
successCallback = function(){
|
successCallback = function(){
|
||||||
var sel = zTree.getNodesByParam('name',treeNode.name,parent)[0];
|
var sel = zTree.getNodesByParam('name',treeNode.name,parent)[0];
|
||||||
zTree.selectNode(sel);
|
zTree.selectNode(sel);
|
||||||
|
f5_refresh();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}else{//重命名
|
}else{//重命名
|
||||||
var from = treeNode.path + treeNode.beforeName;
|
var from = treeNode.path + treeNode.beforeName;
|
||||||
var to = treeNode.path + treeNode.name;
|
var to = treeNode.path + treeNode.name;
|
||||||
pathOperate.rname(from,to,treeNode.name,function(){
|
pathOperate.rname(from,to,function(data){
|
||||||
|
if (!data.code) return;
|
||||||
refresh(parent);
|
refresh(parent);
|
||||||
|
successCallback = function(){
|
||||||
|
var sel = zTree.getNodesByParam('name',treeNode.name,parent)[0];
|
||||||
|
zTree.selectNode(sel);
|
||||||
|
f5_refresh();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -294,9 +298,12 @@ define(function(require, exports) {
|
||||||
|
|
||||||
//配置请求数据 通用
|
//配置请求数据 通用
|
||||||
var _param = function(makeArray){
|
var _param = function(makeArray){
|
||||||
var zTree = $.fn.zTree.getZTreeObj("folderList"),path,
|
var zTree = $.fn.zTree.getZTreeObj("folderList");
|
||||||
treeNode = zTree.getSelectedNodes()[0],
|
if (!zTree) return;
|
||||||
path = '',type='';
|
|
||||||
|
var treeNode = zTree.getSelectedNodes()[0],
|
||||||
|
path = '',
|
||||||
|
type ='';
|
||||||
if (!treeNode) return {path:'',type:''};
|
if (!treeNode) return {path:'',type:''};
|
||||||
|
|
||||||
if (treeNode.father){
|
if (treeNode.father){
|
||||||
|
@ -318,13 +325,23 @@ define(function(require, exports) {
|
||||||
}else{
|
}else{
|
||||||
return {path:path,type:type,node:treeNode};
|
return {path:path,type:type,node:treeNode};
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
//通用刷新 不传参数则刷新选中节点
|
//通用刷新 不传参数则刷新选中节点
|
||||||
var refresh = function(treeNode){
|
var refresh = function(treeNode){
|
||||||
var zTree = $.fn.zTree.getZTreeObj("folderList");
|
var zTree = $.fn.zTree.getZTreeObj("folderList");
|
||||||
if (treeNode == undefined) treeNode=zTree.getSelectedNodes()[0];
|
if (treeNode == undefined) treeNode=zTree.getSelectedNodes()[0];
|
||||||
zTree.reAsyncChildNodes(treeNode, "refresh");
|
if (!treeNode.isParent){
|
||||||
|
treeNode = treeNode.getParentNode();
|
||||||
}
|
}
|
||||||
|
zTree.reAsyncChildNodes(treeNode, "refresh");
|
||||||
|
};
|
||||||
|
|
||||||
|
var f5_refresh = function(){//树目录变化后,对应刷新文件目录
|
||||||
|
if (Config.pageApp == 'explorer') {
|
||||||
|
ui.f5();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
//对外接口
|
//对外接口
|
||||||
return {
|
return {
|
||||||
pathOpen:pathOpen,
|
pathOpen:pathOpen,
|
||||||
|
@ -358,6 +375,7 @@ define(function(require, exports) {
|
||||||
var param = _param();
|
var param = _param();
|
||||||
if (!param.node.isParent) param.node = param.node.getParentNode();
|
if (!param.node.isParent) param.node = param.node.getParentNode();
|
||||||
pathOperate.past(param.path,function(){
|
pathOperate.past(param.path,function(){
|
||||||
|
f5_refresh();
|
||||||
refresh(param.node);
|
refresh(param.node);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -369,16 +387,40 @@ define(function(require, exports) {
|
||||||
title:LNG.tips,content: LNG.remove_not,ok:true});
|
title:LNG.tips,content: LNG.remove_not,ok:true});
|
||||||
}else{
|
}else{
|
||||||
pathOperate.remove(param,function(){
|
pathOperate.remove(param,function(){
|
||||||
|
f5_refresh();
|
||||||
refresh(parent);
|
refresh(parent);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
checkIfChange:function(explorer_path){
|
||||||
|
if (isUpdateRefresh) return;
|
||||||
|
isUpdateRefresh = true;
|
||||||
|
var zTree = $.fn.zTree.getZTreeObj("folderList");
|
||||||
|
if (!zTree) return;
|
||||||
|
|
||||||
|
zTree.getNodesByFilter(function(treeNode){
|
||||||
|
var path;
|
||||||
|
if (treeNode.this_path){
|
||||||
|
path = treeNode.this_path;
|
||||||
|
}else if (treeNode.path != ''){
|
||||||
|
path = treeNode.path+treeNode.name;
|
||||||
|
}
|
||||||
|
if (path == explorer_path ||
|
||||||
|
path+'/'==explorer_path) {
|
||||||
|
refresh(treeNode);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},true);
|
||||||
|
setTimeout(function(){
|
||||||
|
isUpdateRefresh = false;
|
||||||
|
},1000);
|
||||||
|
},
|
||||||
explorer:function(){//管理文档
|
explorer:function(){//管理文档
|
||||||
var path = _param().path;
|
var path = _param().path;
|
||||||
if (!path) path = G.this_path;
|
if (!path) path = G.this_path;
|
||||||
core.explorer(path);
|
core.explorer(path);
|
||||||
},
|
},
|
||||||
|
|
||||||
fileBox:function(type){//管理文档
|
fileBox:function(type){//管理文档
|
||||||
if (type = 'save_file') {};//没有则自动创建
|
if (type = 'save_file') {};//没有则自动创建
|
||||||
if (type = 'save_folder') {};
|
if (type = 'save_folder') {};
|
||||||
|
|
|
@ -213,6 +213,7 @@
|
||||||
url:'index.php?explorer/pathList&path='+G.this_path,
|
url:'index.php?explorer/pathList&path='+G.this_path,
|
||||||
dataType:'json',
|
dataType:'json',
|
||||||
//async:false,//同步阻塞.阻塞其他线程,等待执行完成。//解决重命名后设置选中
|
//async:false,//同步阻塞.阻塞其他线程,等待执行完成。//解决重命名后设置选中
|
||||||
|
error:core.ajaxError,
|
||||||
success:function(data){
|
success:function(data){
|
||||||
if (!data.code) {
|
if (!data.code) {
|
||||||
core.tips.tips(data);
|
core.tips.tips(data);
|
||||||
|
@ -224,9 +225,6 @@
|
||||||
if (typeof(callback) == 'function'){
|
if (typeof(callback) == 'function'){
|
||||||
callback(data);
|
callback(data);
|
||||||
}
|
}
|
||||||
},
|
|
||||||
error:function(data){
|
|
||||||
core.tips.tips(LNG.system_error,false);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -259,9 +259,7 @@ define(function(require, exports) {
|
||||||
beforeSend: function(){
|
beforeSend: function(){
|
||||||
Tips.loading(LNG.sending);
|
Tips.loading(LNG.sending);
|
||||||
},
|
},
|
||||||
error:function(data) {
|
error:core.ajaxError,
|
||||||
Tips.close(LNG.system_error,false);
|
|
||||||
},
|
|
||||||
success:function(data){
|
success:function(data){
|
||||||
Tips.close(data);
|
Tips.close(data);
|
||||||
if (!data.code) return;
|
if (!data.code) return;
|
||||||
|
|
|
@ -264,6 +264,7 @@ define(function(require, exports) {
|
||||||
core.tips.tips(LNG.path_exists,'warning');
|
core.tips.tips(LNG.path_exists,'warning');
|
||||||
}else{
|
}else{
|
||||||
pathOperate.newFile(G.this_path+filename,function(){
|
pathOperate.newFile(G.this_path+filename,function(){
|
||||||
|
ui.tree.checkIfChange(G.this_path);
|
||||||
ui.f5_callback(function() {
|
ui.f5_callback(function() {
|
||||||
_setSelectByFilename(filename);
|
_setSelectByFilename(filename);
|
||||||
});
|
});
|
||||||
|
@ -280,6 +281,7 @@ define(function(require, exports) {
|
||||||
_newFile(newname_ext);
|
_newFile(newname_ext);
|
||||||
}else{
|
}else{
|
||||||
pathOperate.newFile(G.this_path+filename,function(){
|
pathOperate.newFile(G.this_path+filename,function(){
|
||||||
|
ui.tree.checkIfChange(G.this_path);
|
||||||
ui.f5_callback(function() {
|
ui.f5_callback(function() {
|
||||||
_setSelectByFilename(filename);
|
_setSelectByFilename(filename);
|
||||||
});
|
});
|
||||||
|
@ -318,6 +320,7 @@ define(function(require, exports) {
|
||||||
core.tips.tips(LNG.path_exists,'warning');
|
core.tips.tips(LNG.path_exists,'warning');
|
||||||
}else{
|
}else{
|
||||||
pathOperate.newFolder(G.this_path+filename,function(){
|
pathOperate.newFolder(G.this_path+filename,function(){
|
||||||
|
ui.tree.checkIfChange(G.this_path);
|
||||||
ui.f5_callback(function() {
|
ui.f5_callback(function() {
|
||||||
_setSelectByFilename(filename);
|
_setSelectByFilename(filename);
|
||||||
});
|
});
|
||||||
|
@ -333,6 +336,7 @@ define(function(require, exports) {
|
||||||
_newFolder();
|
_newFolder();
|
||||||
}else{
|
}else{
|
||||||
pathOperate.newFolder(G.this_path+filename,function(){
|
pathOperate.newFolder(G.this_path+filename,function(){
|
||||||
|
ui.tree.checkIfChange(G.this_path);
|
||||||
ui.f5_callback(function() {
|
ui.f5_callback(function() {
|
||||||
_setSelectByFilename(filename);
|
_setSelectByFilename(filename);
|
||||||
});
|
});
|
||||||
|
@ -381,6 +385,7 @@ define(function(require, exports) {
|
||||||
path =urlEncode(G.this_path+selectid);
|
path =urlEncode(G.this_path+selectid);
|
||||||
rname_to=urlEncode(G.this_path+rname_to);
|
rname_to=urlEncode(G.this_path+rname_to);
|
||||||
pathOperate.rname(path,rname_to,function(){
|
pathOperate.rname(path,rname_to,function(){
|
||||||
|
ui.tree.checkIfChange(G.this_path);
|
||||||
ui.f5_callback(function() {
|
ui.f5_callback(function() {
|
||||||
_setSelectByFilename(select_name);
|
_setSelectByFilename(select_name);
|
||||||
});
|
});
|
||||||
|
@ -403,6 +408,7 @@ define(function(require, exports) {
|
||||||
path =urlEncode(G.this_path+selectid);
|
path =urlEncode(G.this_path+selectid);
|
||||||
rname_to=urlEncode(G.this_path+rname_to);
|
rname_to=urlEncode(G.this_path+rname_to);
|
||||||
pathOperate.rname(path,rname_to,function(){
|
pathOperate.rname(path,rname_to,function(){
|
||||||
|
ui.tree.checkIfChange(G.this_path);
|
||||||
ui.f5_callback(function() {
|
ui.f5_callback(function() {
|
||||||
_setSelectByFilename(select_name);
|
_setSelectByFilename(select_name);
|
||||||
});
|
});
|
||||||
|
@ -413,6 +419,10 @@ define(function(require, exports) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
var refreshCallback=function(){//当前目录文件变化,刷新目录
|
||||||
|
ui.f5();
|
||||||
|
ui.tree.checkIfChange(G.this_path);
|
||||||
|
};
|
||||||
return {
|
return {
|
||||||
//app
|
//app
|
||||||
appEdit:function(create){
|
appEdit:function(create){
|
||||||
|
@ -469,16 +479,17 @@ define(function(require, exports) {
|
||||||
pathOperate:pathOperate,
|
pathOperate:pathOperate,
|
||||||
search :function(){core.search('',_param().path);},
|
search :function(){core.search('',_param().path);},
|
||||||
fav :function(){pathOperate.fav(_param().path);},
|
fav :function(){pathOperate.fav(_param().path);},
|
||||||
remove :function(){pathOperate.remove(_param(true),ui.f5);fileLight.clear();},
|
remove :function(){pathOperate.remove(_param(true),refreshCallback);fileLight.clear();},
|
||||||
copy :function(){pathOperate.copy(_param(true));},
|
copy :function(){pathOperate.copy(_param(true));},
|
||||||
cute :function(){pathOperate.cute(_param(true),ui.f5);},
|
cute :function(){pathOperate.cute(_param(true),ui.f5);},
|
||||||
zip :function(){pathOperate.zip(_param(true),ui.f5);},
|
zip :function(){pathOperate.zip(_param(true),refreshCallback);},
|
||||||
unZip :function(){pathOperate.unZip(_param().path,ui.f5);},
|
unZip :function(){pathOperate.unZip(_param().path,ui.f5);},
|
||||||
cuteDrag:function(dragTo){pathOperate.cuteDrag(_param(true),dragTo,ui.f5);},
|
cuteDrag:function(dragTo){pathOperate.cuteDrag(_param(true),dragTo,refreshCallback);},
|
||||||
info:function(){pathOperate.info(_param(true));},
|
info:function(){pathOperate.info(_param(true));},
|
||||||
past:function(){
|
past:function(){
|
||||||
fileLight.clear();
|
fileLight.clear();
|
||||||
pathOperate.past(G.this_path,function(list){
|
pathOperate.past(G.this_path,function(list){
|
||||||
|
ui.tree.checkIfChange(G.this_path);
|
||||||
ui.f5_callback(function() {
|
ui.f5_callback(function() {
|
||||||
_setSelectByFilename(list.data);
|
_setSelectByFilename(list.data);
|
||||||
});
|
});
|
||||||
|
|
|
@ -14,7 +14,7 @@ define(function(require, exports) {
|
||||||
|
|
||||||
//图片缩略图懒加载 桌面不做处理
|
//图片缩略图懒加载 桌面不做处理
|
||||||
$(".fileContiner .picture img").lazyload({
|
$(".fileContiner .picture img").lazyload({
|
||||||
effect : "fadeIn",
|
//effect : "fadeIn",
|
||||||
//placeholder:G.static_path + 'images/loading_tree.gif',
|
//placeholder:G.static_path + 'images/loading_tree.gif',
|
||||||
container: $(".bodymain")
|
container: $(".bodymain")
|
||||||
});
|
});
|
||||||
|
@ -427,10 +427,10 @@ define(function(require, exports) {
|
||||||
callback(data);
|
callback(data);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error:function(data){
|
error:function(XMLHttpRequest, textStatus, errorThrown){
|
||||||
core.tips.tips(LNG.system_error,false);
|
|
||||||
$('.tools-left .msg').fadeOut(100);
|
$('.tools-left .msg').fadeOut(100);
|
||||||
$(Config.FileBoxSelector).html('');
|
$(Config.FileBoxSelector).html('');
|
||||||
|
core.ajaxError(XMLHttpRequest, textStatus, errorThrown);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -643,16 +643,17 @@ define(function(require, exports) {
|
||||||
//自适应宽度
|
//自适应宽度
|
||||||
set_width:function(){
|
set_width:function(){
|
||||||
$(".yarnball").stop(true,true);
|
$(".yarnball").stop(true,true);
|
||||||
var box_width = $('#yarnball').innerWidth()-3;
|
var box_width = $('#yarnball').innerWidth();
|
||||||
var need_width = 0;
|
var need_width = 0;
|
||||||
$('#yarnball li a').each(function(index){
|
$('#yarnball li a').each(function(index){
|
||||||
need_width += $(this).outerWidth()+ parseInt($(this).css('margin-left'));
|
need_width += $(this).outerWidth()+ parseInt($(this).css('margin-left'))+5;
|
||||||
});
|
});
|
||||||
var m_width = (box_width-30) - need_width;
|
|
||||||
if(m_width<0){
|
var m_width = box_width - need_width;
|
||||||
|
if(m_width<=0){
|
||||||
$(".yarnball")
|
$(".yarnball")
|
||||||
.css('width',box_width - m_width +'px')
|
.css('width',need_width +'px')
|
||||||
.css('left', m_width+'px');
|
.css('left',m_width+'px');
|
||||||
}else{
|
}else{
|
||||||
$(".yarnball").css({'left':'3px','width':box_width +'px'});
|
$(".yarnball").css({'left':'3px','width':box_width +'px'});
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,6 +113,11 @@ define(function(require, exports) {
|
||||||
tips(LNG.not_null,'error');
|
tips(LNG.not_null,'error');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (escape(role).indexOf("%u")>=0){
|
||||||
|
tips('名称不能为中文!','warning');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$('.group_editor .tag.this').each(function(){
|
$('.group_editor .tag.this').each(function(){
|
||||||
var data = $(this).attr('data-role').split(';');
|
var data = $(this).attr('data-role').split(';');
|
||||||
for (var i = 0; i < data.length; i++) {
|
for (var i = 0; i < data.length; i++) {
|
||||||
|
|
|
@ -103,6 +103,11 @@ define(function(require, exports) {
|
||||||
tips(LNG.not_null,'warning');
|
tips(LNG.not_null,'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (escape(name).indexOf("%u")>=0){
|
||||||
|
tips('名称不能为中文!','warning');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url:api+'add&name='+name+'&password='+password+'&role='+role,
|
url:api+'add&name='+name+'&password='+password+'&role='+role,
|
||||||
dataType:'json',
|
dataType:'json',
|
||||||
|
@ -149,6 +154,10 @@ define(function(require, exports) {
|
||||||
tips(LNG.not_null,'error');
|
tips(LNG.not_null,'error');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (escape(name_to).indexOf("%u")>=0){
|
||||||
|
tips('名称不能为中文!','warning');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
var password = '';
|
var password = '';
|
||||||
if (password_to !='') password = '&password_to'+password_to;
|
if (password_to !='') password = '&password_to'+password_to;
|
||||||
|
|
|
@ -83,6 +83,11 @@ var path_info = "<div class='pathinfo'>\
|
||||||
<div class='content'>{{mtime}}</div>\
|
<div class='content'>{{mtime}}</div>\
|
||||||
<div style='clear:both'></div>\
|
<div style='clear:both'></div>\
|
||||||
</div>\
|
</div>\
|
||||||
|
<div class='p'>\
|
||||||
|
<div class='title'>{{LNG.last_time}}</div>\
|
||||||
|
<div class='content'>{{atime}}</div>\
|
||||||
|
<div style='clear:both'></div>\
|
||||||
|
</div>\
|
||||||
<div class='line'></div>\
|
<div class='line'></div>\
|
||||||
<div class='p'>\
|
<div class='p'>\
|
||||||
<div class='title'>{{LNG.permission}}:</div>\
|
<div class='title'>{{LNG.permission}}:</div>\
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -160,6 +160,12 @@ artDialog.fn = artDialog.prototype = {
|
||||||
config.init && config.init.call(that, window);
|
config.init && config.init.call(that, window);
|
||||||
_titleBarHeight = DOM.title.css('height');
|
_titleBarHeight = DOM.title.css('height');
|
||||||
_titleBarHeight = _titleBarHeight.replace('px','');
|
_titleBarHeight = _titleBarHeight.replace('px','');
|
||||||
|
|
||||||
|
DOM.wrap
|
||||||
|
.css({opacity:0.6,top:'-='+DOM.wrap.height()*0.02})
|
||||||
|
.animate(
|
||||||
|
{opacity:1,top:'+='+DOM.wrap.height()*0.02},
|
||||||
|
{easing: 'swing',duration:200});
|
||||||
return that;
|
return that;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -532,7 +538,6 @@ artDialog.fn = artDialog.prototype = {
|
||||||
/** 关闭对话框 */
|
/** 关闭对话框 */
|
||||||
close: function () {
|
close: function () {
|
||||||
if (this.closed) return this;
|
if (this.closed) return this;
|
||||||
|
|
||||||
var that = this,
|
var that = this,
|
||||||
DOM = that.DOM,
|
DOM = that.DOM,
|
||||||
wrap = DOM.wrap,
|
wrap = DOM.wrap,
|
||||||
|
@ -544,9 +549,10 @@ artDialog.fn = artDialog.prototype = {
|
||||||
if (typeof fn === 'function' && fn.call(that, window) === false) {
|
if (typeof fn === 'function' && fn.call(that, window) === false) {
|
||||||
return that;
|
return that;
|
||||||
};
|
};
|
||||||
|
|
||||||
that.unlock();
|
that.unlock();
|
||||||
|
|
||||||
|
wrap.animate({opacity:0,top:'-='+wrap.height() * 0.03},
|
||||||
|
{easing:'swing',duration:250,complete:function(){
|
||||||
// 置空内容
|
// 置空内容
|
||||||
that._elemBack && that._elemBack();
|
that._elemBack && that._elemBack();
|
||||||
wrap[0].className = wrap[0].style.cssText = '';
|
wrap[0].className = wrap[0].style.cssText = '';
|
||||||
|
@ -570,11 +576,11 @@ artDialog.fn = artDialog.prototype = {
|
||||||
for (var i in that) {
|
for (var i in that) {
|
||||||
if (that.hasOwnProperty(i) && i !== 'DOM') delete that[i];
|
if (that.hasOwnProperty(i) && i !== 'DOM') delete that[i];
|
||||||
};
|
};
|
||||||
|
|
||||||
// 移除HTMLElement或重用
|
// 移除HTMLElement或重用
|
||||||
_box ? wrap.remove() : _box = that;
|
_box ? wrap.remove() : _box = that;
|
||||||
this.resetIndex();
|
that.resetIndex();
|
||||||
return that;
|
return that;
|
||||||
|
}});
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -161,8 +161,8 @@ var tips = function(msg,code){
|
||||||
Tips.tips(msg,code);
|
Tips.tips(msg,code);
|
||||||
}
|
}
|
||||||
var Tips = (function(){
|
var Tips = (function(){
|
||||||
var in_time = 600;
|
var in_time = 500;
|
||||||
var delay = 1200;
|
var delay = 500;
|
||||||
var opacity = 0.7;
|
var opacity = 0.7;
|
||||||
var _init = function(msg,code){
|
var _init = function(msg,code){
|
||||||
var tipsIDname = "messageTips";
|
var tipsIDname = "messageTips";
|
||||||
|
|
|
@ -107,6 +107,8 @@ http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
static_path : "<?php echo STATIC_PATH;?>",
|
static_path : "<?php echo STATIC_PATH;?>",
|
||||||
public_path : "<?php echo PUBLIC_PATH;?>",
|
public_path : "<?php echo PUBLIC_PATH;?>",
|
||||||
basic_path : "<?php echo BASIC_PATH;?>",
|
basic_path : "<?php echo BASIC_PATH;?>",
|
||||||
|
version : "<?php echo KOD_VERSION;?>",
|
||||||
|
app_host : "<?php echo APPHOST;?>",
|
||||||
|
|
||||||
myhome : "<?php echo MYHOME;?>",//当前绝对路径
|
myhome : "<?php echo MYHOME;?>",//当前绝对路径
|
||||||
frist_file : "<?php echo $_GET['filename'];?>",
|
frist_file : "<?php echo $_GET['filename'];?>",
|
||||||
|
|
23
todo.txt
23
todo.txt
|
@ -1,23 +0,0 @@
|
||||||
==== todolist ====
|
|
||||||
官网改版:历史版本;更新内容;
|
|
||||||
0.官网改版(英文版),github提交,说明,文档,……
|
|
||||||
1.回收站
|
|
||||||
2.文件共享
|
|
||||||
3.通用文件保存控件(文件、文件夹)
|
|
||||||
4.编辑器新建文件保存;另存为文件
|
|
||||||
5.创建副本,ctrl+拖拽;创建副本
|
|
||||||
6.同名处理(拖拽、上传、上传文件夹、粘贴、解压、压缩)——覆盖、都保留、跳过(全部——当前)
|
|
||||||
7.远程下载——列表——进度。
|
|
||||||
8.选中后直接下载(文件文件夹混合,无需多一步压缩的操作)
|
|
||||||
9.加入task机制 长时间运行的建立task——可以中途中断task(用户关联)
|
|
||||||
搜索、压缩、解压、远程下载、上传(任务,可以指定中断)
|
|
||||||
time()/5=0 每5s检测文件是否存在不存在——终止任务
|
|
||||||
权限前端验证(上传等 上传格式前端限制)
|
|
||||||
目录权限监 pathList时输出时代入目录权限(is_writeable);前端检测 新建、上传、删除、压缩、剪切
|
|
||||||
环境检测 目录权限(data目录必须可写)、GD库检测、set_time_out()...
|
|
||||||
|
|
||||||
|
|
||||||
设置默认根目录(个人设置):pathList=tree_init
|
|
||||||
共享目录测试 共享目录(地址栏显示问题)
|
|
||||||
树目录 根目录 点击没反应
|
|
||||||
集群
|
|
Loading…
Reference in New Issue