Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
青阳龙野
kiftd
提交
eaf74ae6
kiftd
项目概览
青阳龙野
/
kiftd
通知
1240
Star
27
Fork
21
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
6
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
kiftd
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
6
Issue
6
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
eaf74ae6
编写于
5月 19, 2020
作者:
青阳龙野
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update to v1.0.34-release
上级
2a81d74a
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
34 addition
and
29 deletion
+34
-29
README.md
README.md
+4
-3
kiftd-1.0.34-RELEASE.jar
kiftd-1.0.34-RELEASE.jar
+0
-0
kiftd说明文档.pdf
kiftd说明文档.pdf
+0
-0
webContext/home.html
webContext/home.html
+24
-18
webContext/js/home.js
webContext/js/home.js
+4
-6
webContext/js/home.min.js
webContext/js/home.min.js
+2
-2
未找到文件。
README.md
浏览文件 @
eaf74ae6
...
...
@@ -77,10 +77,11 @@ _注:kift为该功能的开发名称,其实际成果命名为kiftd。_
> 提示:当您更新版本后,请手动清除浏览器的缓存,之后刷新网盘主页以确保数据文件保持最新!否则可能导致新版页面功能无法使用。
### 常规更新v1.0.3
3
### 常规更新v1.0.3
4
_本次更新为维护性的更新,修复一些已经发现的问题并优化使用体验,推荐所有用户升级。_
+
升级了内置的图片预览插件,并修复了一个存在于“图片预览”功能中的安全性漏洞。
+
进一步完善了文件系统。
+
进一步完善了文件系统——修复了当上传的文件夹中含有特殊字符且上传路径中存在重名文件夹时,选择“保留两者”会中断上传操作的问题。
+
修复了一个存在于“上传文件夹”功能的非法命名漏洞。
+
其他一些细节优化。
> 需要查看更多版本历史信息?请访问: https://kohgylw.gitee.io/News.html
...
...
kiftd-1.0.3
3
-RELEASE.jar
→
kiftd-1.0.3
4
-RELEASE.jar
浏览文件 @
eaf74ae6
无法预览此类型文件
kiftd说明文档.pdf
浏览文件 @
eaf74ae6
无法预览此类型文件
webContext/home.html
浏览文件 @
eaf74ae6
<!doctype html>
<!-- 青阳网络文件传输系统 kiftd v1.0.3
3
-RELEASE -->
<!-- 青阳网络文件传输系统 kiftd v1.0.3
4
-RELEASE -->
<!-- 欢迎访问主界面 -->
<!-- by 青阳龙野(kohgylw@163.com) -->
<html>
...
...
@@ -101,32 +101,34 @@
class=
"glyphicon glyphicon-cog"
></span>
操作
<span
class=
"caret"
></span></a>
<ul
class=
"dropdown-menu"
id=
"fileListDropDown"
>
<li
id=
"uploadFileButtonLi"
><a
href=
"javascript:void(0);"
>
上传文件
<span
class=
"pull-right"
><span
<li
id=
"uploadFileButtonLi"
><a
href=
"javascript:void(0);"
>
上传文件
<span
class=
"pull-right"
><span
class=
"glyphicon glyphicon-arrow-up"
aria-hidden=
"true"
></span>
+U
</span></a></li>
<li
id=
"uploadFolderButtonLi"
><a
href=
"javascript:void(0);"
>
上传文件夹
<span
<li
id=
"uploadFolderButtonLi"
><a
href=
"javascript:void(0);"
>
上传文件夹
<span
class=
"pull-right"
><span
class=
"glyphicon glyphicon-arrow-up"
aria-hidden=
"true"
></span>
+F
</span></a></li>
<li
role=
"separator"
class=
"divider"
></li>
<li
id=
"createFolderButtonLi"
><a
href=
"javascript:void(0);"
>
新建文件夹
<span
<li
id=
"createFolderButtonLi"
><a
href=
"javascript:void(0);"
>
新建文件夹
<span
class=
"pull-right"
><span
class=
"glyphicon glyphicon-arrow-up"
aria-hidden=
"true"
></span>
+N
</span></a></li>
<li
role=
"separator"
class=
"divider"
></li>
<li
id=
"copyFileButtonLi"
><a
href=
"javascript:void(0);"
><span
id=
'copySignTx'
>
复制
<span
class=
"pull-right"
><span
<li
id=
"copyFileButtonLi"
><a
href=
"javascript:void(0);"
><span
id=
'copySignTx'
>
复制
<span
class=
"pull-right"
><span
class=
"glyphicon glyphicon-arrow-up"
aria-hidden=
"true"
></span>
+C
</span>
</span></a></li>
<li
id=
"cutFileButtonLi"
><a
href=
"javascript:void(0);"
><span
id=
'cutSignTx'
>
剪切
<span
class=
"pull-right"
><span
<li
id=
"cutFileButtonLi"
><a
href=
"javascript:void(0);"
><span
id=
'cutSignTx'
>
剪切
<span
class=
"pull-right"
><span
class=
"glyphicon glyphicon-arrow-up"
aria-hidden=
"true"
></span>
+X
</span>
</span></a></li>
<li
id=
"stickFileButtonLi"
class=
"hidden"
><a
href=
"javascript:void(0);"
><span
id=
'stickSignTx'
>
粘贴
<span
id=
"stickFilesCount"
></span>
<span
class=
"pull-right"
><span
<li
id=
"stickFileButtonLi"
class=
"hidden"
><a
href=
"javascript:void(0);"
><span
id=
'stickSignTx'
>
粘贴
<span
id=
"stickFilesCount"
></span>
<span
class=
"pull-right"
><span
class=
"glyphicon glyphicon-arrow-up"
aria-hidden=
"true"
></span>
+V
</span>
</span></a></li>
<li
id=
"deleteSeelectFileButtonLi"
><a
href=
"javascript:void(0);"
>
删除
<span
class=
"pull-right"
><span
<li
id=
"deleteSeelectFileButtonLi"
><a
href=
"javascript:void(0);"
>
删除
<span
class=
"pull-right"
><span
class=
"glyphicon glyphicon-arrow-up"
aria-hidden=
"true"
></span>
+D
</span></a></li>
</ul></li>
</ul>
...
...
@@ -293,7 +295,8 @@
<h5
id=
"deleteFolderMessage"
></h5>
</div>
<div
class=
"modal-footer"
>
<button
id=
"cancelDeleteFolderBtn"
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
<button
id=
"cancelDeleteFolderBtn"
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
<span
id=
"deleteFolderBox"
></span>
</div>
</div>
...
...
@@ -545,7 +548,8 @@
<h5
id=
"deleteFileMessage"
class=
"wordbreak"
></h5>
</div>
<div
class=
"modal-footer"
>
<button
id=
"cancelDeleteFileBox"
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
<button
id=
"cancelDeleteFileBox"
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
<span
id=
"deleteFileBox"
></span>
</div>
</div>
...
...
@@ -609,7 +613,8 @@
</h5>
</div>
<div
class=
"modal-footer"
>
<button
id=
"cancelDownloadAllCheckedBtn"
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
<button
id=
"cancelDownloadAllCheckedBtn"
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
<span
id=
"downloadAllCheckedBox"
></span>
</div>
</div>
...
...
@@ -698,7 +703,8 @@
</div>
</div>
<div
class=
"modal-footer"
>
<button
id=
"cancelMoveFilesBtn"
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
<button
id=
"cancelMoveFilesBtn"
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
<span
id=
"moveFilesBox"
></span>
</div>
</div>
...
...
webContext/js/home.js
浏览文件 @
eaf74ae6
...
...
@@ -3010,8 +3010,7 @@ function getDownloadURL() {
+
window
.
location
.
host
+
"
/externalLinksController/downloadFileByKey/
"
+
encodeURIComponent
(
getDownloadFileName
.
replace
(
/
\'
/g
,
''
).
replace
(
/
\r
/g
,
""
).
replace
(
/
\n
/g
,
""
))
+
"
?dkey=
"
+
result
;
/
\\
/g
,
"
_
"
))
+
"
?dkey=
"
+
result
;
// 显示链接内容
$
(
"
#downloadHrefBox
"
).
html
(
"
<a href='
"
+
dlurl
+
"
'>
"
+
dlurl
+
"
</a>
"
);
...
...
@@ -3541,9 +3540,8 @@ function getFileChain(fileId, fileName) {
+
"
//
"
+
window
.
location
.
host
+
"
/externalLinksController/chain/
"
+
encodeURIComponent
(
fileName
.
replace
(
/
\'
/g
,
''
).
replace
(
/
\r
/g
,
""
)
.
replace
(
/
\n
/g
,
""
))
+
"
?ckey=
"
+
encodeURIComponent
(
fileName
.
replace
(
/
\\
/g
,
"
_
"
))
+
"
?ckey=
"
+
encodeURIComponent
(
result
));
$
(
"
#copyChainBtn
"
).
attr
(
'
disabled
'
,
false
);
break
;
...
...
@@ -3819,7 +3817,7 @@ function updateTheFolderInfo() {
// 替换所有引号,将其进一步转义,主要用于传递带引号的文件名
function
replaceAllQuotationMarks
(
txt
)
{
return
txt
.
replace
(
/
\"
/g
,
"
\\\"
"
);
return
txt
.
replace
(
/
\
\
/g
,
"
\\\\
"
).
replace
(
/
\
"
/g
,
"
\\\"
"
);
}
// 对所有可能进入html的字符串进行转义操作
...
...
webContext/js/home.min.js
浏览文件 @
eaf74ae6
function
updateWinHeight
(){
window
.
innerHeight
?
winHeight
=
window
.
innerHeight
:
document
.
body
&&
document
.
body
.
clientHeight
&&
(
winHeight
=
document
.
body
.
clientHeight
)}
function
changeFilesTableStyle
(){
var
a
=
$
(
window
).
width
();
768
>
a
?(
$
(
"
#filetableheadera
"
).
addClass
(
"
filetableheaderstyle
"
),
$
(
"
#filetableheadera
"
).
attr
(
"
data-toggle
"
,
"
collapse
"
),
$
(
"
#filetableheadera
"
).
attr
(
"
data-target
"
,
"
#filetableoptmenu
"
),
$
(
"
#mdropdownicon
"
).
html
(
"
(点击展开/折叠菜单)
"
)):(
$
(
"
#filetableheadera
"
).
removeClass
(
"
filetableheaderstyle
"
),
$
(
"
#filetableheadera
"
).
attr
(
"
data-toggle
"
,
"
modal
"
),
$
(
"
#filetableheadera
"
).
attr
(
"
data-target
"
,
"
#folderInfoModal
"
),
$
(
"
#mdropdownicon
"
).
html
(
""
))}
function
doAlert
(){
alert
(
"
错误:无法连接到kiftd服务器,请检查您的网络连接或查看服务器运行状态。
"
)}
function
getServerOS
(){
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{},
url
:
"
homeController/getServerOS.ajax
"
,
success
:
function
(
a
){
return
"
mustLogin
"
==
a
?(
window
.
location
.
href
=
"
prv/login.html
"
,
void
0
):(
$
(
"
#serverOS
"
).
text
(
a
),
void
0
)},
error
:
function
(){
$
(
"
#serverOS
"
).
html
(
"
<a onclick='getServerOS()'>获取失败,点击重试</a>
"
)}})}
function
showFolderView
(
fid
,
targetId
){
loadingFolderView
||
(
startLoading
(),
remainingLoadingRequest
&&
remainingLoadingRequest
.
abort
(),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
fid
:
fid
},
url
:
"
homeController/getFolderView.ajax
"
,
success
:
function
(
result
){
switch
(
endLoading
(),
result
){
case
"
ERROR
"
:
doAlert
(),
$
(
"
#tb
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
),
$
(
"
#publishTime
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
),
$
(
"
#parentlistbox
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
);
break
;
case
"
NOT_FOUND
"
:
case
"
notAccess
"
:
document
.
cookie
=
"
folder_id=
"
+
escape
(
"
root
"
);
case
"
mustLogin
"
:
window
.
location
.
href
=
"
/
"
;
break
;
default
:
folderView
=
eval
(
"
(
"
+
result
+
"
)
"
),
locationpath
=
folderView
.
folder
.
folderId
,
document
.
cookie
=
"
folder_id=
"
+
escape
(
locationpath
),
parentpath
=
folderView
.
folder
.
folderParent
,
constraintLevel
=
folderView
.
folder
.
folderConstraint
,
screenedFoldrView
=
null
,
originFolderView
=
$
.
extend
(
!
0
,{},
folderView
),
totalFoldersOffset
=
folderView
.
foldersOffset
,
totalFilesOffset
=
folderView
.
filesOffset
,
$
(
"
#sreachKeyWordIn
"
).
val
(
""
),
showParentList
(
folderView
),
showAccountView
(
folderView
),
showPublishTime
(
folderView
),
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
(),
showFolderTable
(
folderView
),
$
(
"
#fim_name
"
).
text
(
folderView
.
folder
.
folderName
),
$
(
"
#fim_creator
"
).
text
(
folderView
.
folder
.
folderCreator
),
$
(
"
#fim_folderCreationDate
"
).
text
(
folderView
.
folder
.
folderCreationDate
),
$
(
"
#fim_folderId
"
).
text
(
folderView
.
folder
.
folderId
),
updateTheFolderInfo
(),
folderView
.
foldersOffset
>
folderView
.
selectStep
||
folderView
.
filesOffset
>
folderView
.
selectStep
?(
showLoadingRemaininngBox
(),
loadingRemainingFolderView
(
targetId
)):(
hiddenLoadingRemaininngBox
(),
doFixedRow
(
targetId
))}},
error
:
function
(){
endLoading
(),
doAlert
(),
$
(
"
#tb
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
),
$
(
"
#publishTime
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
),
$
(
"
#parentlistbox
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
)}}))}
function
startLoading
(){
loadingFolderView
=!
0
,
$
(
"
#loadingModal
"
).
modal
({
backdrop
:
"
static
"
,
keyboard
:
!
1
}),
$
(
"
#loadingModal
"
).
modal
(
"
show
"
),
$
(
"
#loadingModal
"
).
addClass
(
"
shown
"
)}
function
endLoading
(){
loadingFolderView
=!
1
,
$
(
"
#loadingModal
"
).
modal
(
"
hide
"
),
$
(
"
#loadingModal
"
).
removeClass
(
"
shown
"
)}
function
startLogin
(){
$
(
"
#accountid
"
).
attr
(
"
disabled
"
,
"
disabled
"
),
$
(
"
#accountpwd
"
).
attr
(
"
disabled
"
,
"
disabled
"
),
$
(
"
#dologinButton
"
).
attr
(
"
disabled
"
,
"
disabled
"
),
$
(
"
#vercode
"
).
attr
(
"
disabled
"
,
"
disabled
"
)}
function
finishLogin
(){
$
(
"
#accountid
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#accountpwd
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#dologinButton
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#vercode
"
).
removeAttr
(
"
disabled
"
)}
function
dologin
(){
var
accountId
=
$
(
"
#accountid
"
).
val
(),
accountPwd
=
$
(
"
#accountpwd
"
).
val
(),
check
=
"
y
"
;
0
==
accountId
.
length
?(
$
(
"
#accountidbox
"
).
addClass
(
"
has-error
"
),
check
=
"
n
"
):
$
(
"
#accountidbox
"
).
removeClass
(
"
has-error
"
),
0
==
accountPwd
.
length
?(
$
(
"
#accountpwdbox
"
).
addClass
(
"
has-error
"
),
check
=
"
n
"
):
$
(
"
#accountpwdbox
"
).
removeClass
(
"
has-error
"
),
"
y
"
==
check
&&
(
startLogin
(),
$
.
ajax
({
url
:
"
homeController/getPublicKey.ajax
"
,
type
:
"
POST
"
,
data
:{},
dataType
:
"
text
"
,
success
:
function
(
result
){
var
encrypted
,
publicKeyInfo
=
eval
(
"
(
"
+
result
+
"
)
"
),
date
=
new
Date
,
loginInfo
=
'
{accountId:"
'
+
accountId
+
'
",accountPwd:"
'
+
accountPwd
+
'
",time:"
'
+
publicKeyInfo
.
time
+
'
"}
'
,
encrypt
=
new
JSEncrypt
;
encrypt
.
setPublicKey
(
publicKeyInfo
.
publicKey
),
encrypted
=
encrypt
.
encrypt
(
loginInfo
),
sendLoginInfo
(
encrypted
)},
error
:
function
(){
finishLogin
(),
$
(
"
#alertbox
"
).
addClass
(
"
alert
"
),
$
(
"
#alertbox
"
).
addClass
(
"
alert-danger
"
),
$
(
"
#alertbox
"
).
text
(
"
提示:登录请求失败,请检查网络或服务器运行状态
"
)}}))}
function
sendLoginInfo
(
a
){
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
url
:
"
homeController/doLogin.ajax
"
,
data
:{
encrypted
:
a
,
vercode
:
$
(
"
#vercode
"
).
val
()},
success
:
function
(
a
){
switch
(
finishLogin
(),
$
(
"
#alertbox
"
).
removeClass
(
"
alert
"
),
$
(
"
#alertbox
"
).
removeClass
(
"
alert-danger
"
),
$
(
"
#alertbox
"
).
text
(
""
),
$
(
"
#vercodebox
"
).
html
(
""
),
$
(
"
#vercodebox
"
).
removeClass
(
"
show
"
),
$
(
"
#vercodebox
"
).
addClass
(
"
hidden
"
),
a
){
case
"
permitlogin
"
:
$
(
"
#accountidbox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#accountpwdbox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#loginModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
);
break
;
case
"
accountnotfound
"
:
$
(
"
#accountidbox
"
).
addClass
(
"
has-error
"
),
$
(
"
#accountpwdbox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#alertbox
"
).
addClass
(
"
alert
"
),
$
(
"
#alertbox
"
).
addClass
(
"
alert-danger
"
),
$
(
"
#alertbox
"
).
text
(
"
提示:登录失败,账户不存在或未设置
"
);
break
;
case
"
accountpwderror
"
:
$
(
"
#accountpwdbox
"
).
addClass
(
"
has-error
"
),
$
(
"
#accountidbox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#alertbox
"
).
addClass
(
"
alert
"
),
$
(
"
#alertbox
"
).
addClass
(
"
alert-danger
"
),
$
(
"
#alertbox
"
).
text
(
"
提示:登录失败,密码错误或未设置
"
);
break
;
case
"
needsubmitvercode
"
:
$
(
"
#vercodebox
"
).
html
(
"
<label id='vercodetitle' class='col-sm-7'><img id='showvercode' class='vercodeimg' alt='点击获取验证码' src='homeController/getNewVerCode.do?s=
"
+
(
new
Date
).
getTime
()
+
"
' onclick='getNewVerCode()'></label><div class='col-sm-5'><input type='text' class='form-control' id='vercode' placeholder='验证码……'></div>
"
),
$
(
"
#vercodebox
"
).
removeClass
(
"
hidden
"
),
$
(
"
#vercodebox
"
).
addClass
(
"
show
"
);
break
;
case
"
error
"
:
$
(
"
#alertbox
"
).
addClass
(
"
alert
"
),
$
(
"
#alertbox
"
).
addClass
(
"
alert-danger
"
),
$
(
"
#alertbox
"
).
text
(
"
提示:登录失败,登录请求无法通过加密效验(可能是请求耗时过长导致的)
"
);
break
;
default
:
$
(
"
#alertbox
"
).
addClass
(
"
alert
"
),
$
(
"
#alertbox
"
).
addClass
(
"
alert-danger
"
),
$
(
"
#alertbox
"
).
text
(
"
提示:无法登录,未知错误
"
)}},
error
:
function
(){
finishLogin
(),
$
(
"
#alertbox
"
).
addClass
(
"
alert
"
),
$
(
"
#alertbox
"
).
addClass
(
"
alert-danger
"
),
$
(
"
#alertbox
"
).
text
(
"
提示:登录请求失败,请检查网络或服务器运行状态
"
)}})}
function
getNewVerCode
(){
$
(
"
#showvercode
"
).
attr
(
"
src
"
,
"
homeController/getNewVerCode.do?s=
"
+
(
new
Date
).
getTime
())}
function
dologout
(){
$
(
"
#logoutModal
"
).
modal
(
"
hide
"
),
$
.
ajax
({
url
:
"
homeController/doLogout.ajax
"
,
type
:
"
POST
"
,
data
:{},
dataType
:
"
text
"
,
success
:
function
(
a
){
"
SUCCESS
"
==
a
&&
showFolderView
(
locationpath
)},
error
:
function
(){
doAlert
()}})}
function
showParentList
(
a
){
$
(
"
#parentFolderList
"
).
html
(
""
);
var
b
=
a
.
folder
;
a
.
parentList
.
length
>
0
?
$
.
each
(
a
.
parentList
,
function
(
a
,
b
){
$
(
"
#parentFolderList
"
).
append
(
"
<li><a href='javascript:void(0);' onclick='entryFolder(
\"
"
+
b
.
folderId
+
'
"
'
+
"
)'>
"
+
b
.
folderName
+
"
</a></li>
"
)}):
$
(
"
#parentFolderList
"
).
html
(
"
<li class='disabled'><a>无</a></li>
"
),
b
.
folderName
.
length
>
6
?
$
(
"
#currentFolderName
"
).
text
(
b
.
folderName
.
substr
(
0
,
6
)
+
"
...
"
):
$
(
"
#currentFolderName
"
).
text
(
b
.
folderName
),
"
ROOT
"
==
b
.
folderName
?(
$
(
"
#folderIconSpan
"
).
removeClass
(
"
glyphicon-folder-close
"
),
$
(
"
#folderIconSpan
"
).
removeClass
(
"
glyphicon-search
"
),
$
(
"
#folderIconSpan
"
).
addClass
(
"
glyphicon-home
"
)):
null
!=
a
.
keyWorld
?(
$
(
"
#folderIconSpan
"
).
removeClass
(
"
glyphicon-folder-close
"
),
$
(
"
#folderIconSpan
"
).
removeClass
(
"
glyphicon-home
"
),
$
(
"
#folderIconSpan
"
).
addClass
(
"
glyphicon-search
"
)):(
$
(
"
#folderIconSpan
"
).
removeClass
(
"
glyphicon-home
"
),
$
(
"
#folderIconSpan
"
).
removeClass
(
"
glyphicon-search
"
),
$
(
"
#folderIconSpan
"
).
addClass
(
"
glyphicon-folder-close
"
))}
function
showAccountView
(
a
){
$
(
"
#tb,#tb2
"
).
html
(
""
),
account
=
a
.
account
,
null
!=
a
.
account
?(
$
(
"
#tb
"
).
append
(
"
<button class='btn btn-link rightbtn hidden-xs' data-toggle='modal' data-target='#logoutModal'>注销 [
"
+
a
.
account
+
"
] <span class='glyphicon glyphicon-off' aria-hidden='true'></span></button>
"
),
$
(
"
#tb2
"
).
append
(
"
<button class='btn btn-link' data-toggle='modal' data-target='#logoutModal'>注销 [
"
+
a
.
account
+
"
] <span class='glyphicon glyphicon-off' aria-hidden='true'></span></button>
"
),
"
true
"
==
a
.
allowChangePassword
&&
(
$
(
"
#tb
"
).
append
(
"
<button class='btn btn-link rightbtn hidden-xs' data-toggle='modal' data-target='#changePasswordModal'>修改密码 <span class='glyphicon glyphicon-edit' aria-hidden='true'></span></button>
"
),
$
(
"
#tb2
"
).
append
(
"
<button class='btn btn-link' data-toggle='modal' data-target='#changePasswordModal'>修改密码 <span class='glyphicon glyphicon-edit' aria-hidden='true'></span></button>
"
))):(
$
(
"
#tb
"
).
append
(
"
<button class='btn btn-link rightbtn hidden-xs' data-toggle='modal' data-target='#loginModal'>登入 <span class='glyphicon glyphicon-user' aria-hidden='true'></span></button>
"
),
$
(
"
#tb2
"
).
append
(
"
<button class='btn btn-link' data-toggle='modal' data-target='#loginModal'>登入 <span class='glyphicon glyphicon-user' aria-hidden='true'></span></button>
"
),
"
true
"
==
a
.
allowSignUp
&&
(
$
(
"
#tb
"
).
append
(
"
<button class='btn btn-link rightbtn hidden-xs' onclick='window.location.href =
\"
/prv/signup.html
\"
'>立即注册 <span class='glyphicon glyphicon-log-in' aria-hidden='true'></span></button>
"
),
$
(
"
#tb2
"
).
append
(
"
<button class='btn btn-link' onclick='window.location.href =
\"
prv/signup.html
\"
'>立即注册 <span class='glyphicon glyphicon-log-in' aria-hidden='true'></span></button>
"
)));
var
b
=
a
.
authList
;
$
(
"
#fileListDropDown li
"
).
addClass
(
"
disabled
"
),
$
(
"
#fileListDropDown li a
"
).
attr
(
"
onclick
"
,
""
),
null
!=
b
&&
(
checkAuth
(
b
,
"
C
"
)
&&
(
$
(
"
#createFolderButtonLi
"
).
removeClass
(
"
disabled
"
),
$
(
"
#createFolderButtonLi a
"
).
attr
(
"
onclick
"
,
"
showNewFolderModel()
"
)),
checkAuth
(
b
,
"
U
"
)
&&
(
$
(
"
#uploadFileButtonLi
"
).
removeClass
(
"
disabled
"
),
$
(
"
#uploadFileButtonLi a
"
).
attr
(
"
onclick
"
,
"
showUploadFileModel()
"
),
checkAuth
(
b
,
"
C
"
)
&&
isSupportWebkitdirectory
()
&&
(
$
(
"
#uploadFolderButtonLi
"
).
removeClass
(
"
disabled
"
),
$
(
"
#uploadFolderButtonLi a
"
).
attr
(
"
onclick
"
,
"
showUploadFolderModel()
"
))),
a
.
enableDownloadZip
&&
checkAuth
(
b
,
"
L
"
)?
$
(
"
#packageDownloadBox
"
).
html
(
"
<button class='btn btn-link navbar-btn' onclick='showDownloadAllCheckedModel()'><span class='glyphicon glyphicon-briefcase'></span> 打包下载</button>
"
):
$
(
"
#packageDownloadBox
"
).
html
(
""
),
checkAuth
(
b
,
"
D
"
)
&&
(
$
(
"
#deleteSeelectFileButtonLi
"
).
removeClass
(
"
disabled
"
),
$
(
"
#deleteSeelectFileButtonLi a
"
).
attr
(
"
onclick
"
,
"
showDeleteAllCheckedModel()
"
)),
checkAuth
(
b
,
"
M
"
)
&&
(
$
(
"
#cutFileButtonLi
"
).
removeClass
(
"
disabled
"
),
$
(
"
#stickFileButtonLi
"
).
removeClass
(
"
disabled
"
),
$
(
"
#copyFileButtonLi
"
).
removeClass
(
"
disabled
"
),
$
(
"
#cutFileButtonLi a
"
).
attr
(
"
onclick
"
,
"
cutFile()
"
),
$
(
"
#copyFileButtonLi a
"
).
attr
(
"
onclick
"
,
"
copyFile()
"
),
$
(
"
#stickFileButtonLi a
"
).
attr
(
"
onclick
"
,
"
stickFile()
"
),
void
0
!==
checkedMovefiles
&&
checkedMovefiles
.
size
>
0
?(
checkedMovefiles
.
size
<
100
?
$
(
"
#stickFilesCount
"
).
text
(
"
(
"
+
checkedMovefiles
.
size
+
"
)
"
):
$
(
"
#stickFilesCount
"
).
text
(
"
(99+)
"
),
$
(
"
#copyFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#copyFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#cutFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#cutFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#stickFileButtonLi
"
).
removeClass
(
"
hidden
"
),
$
(
"
#stickFileButtonLi
"
).
addClass
(
"
show
"
)):(
$
(
"
#copyFileButtonLi
"
).
removeClass
(
"
hidden
"
),
$
(
"
#copyFileButtonLi
"
).
addClass
(
"
show
"
),
$
(
"
#cutFileButtonLi
"
).
removeClass
(
"
hidden
"
),
$
(
"
#cutFileButtonLi
"
).
addClass
(
"
show
"
),
$
(
"
#stickFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#stickFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#stickFilesCount
"
).
text
(
""
))))}
function
checkAuth
(
a
,
b
){
var
c
=!
1
;
return
$
.
each
(
a
,
function
(
a
,
d
){
d
==
b
&&
(
c
=!
0
)}),
c
}
function
showPublishTime
(
a
){
$
(
"
#publishTime
"
).
html
(
""
);
var
b
=
""
;
b
=
null
!=
a
.
publishTime
?
a
.
publishTime
:
"
--
"
,
$
(
"
#publishTime
"
).
text
(
b
)}
function
refreshFolderView
(){
null
!=
locationpath
&&
locationpath
.
length
>
0
?
showFolderView
(
locationpath
):
showFolderView
(
"
root
"
),
subscribeNotice
()}
function
returnPF
(){
null
!=
parentpath
&&
"
null
"
!=
parentpath
?
showFolderView
(
parentpath
):
showFolderView
(
"
root
"
)}
function
showFolderTable
(
a
){
var
b
,
c
,
d
,
e
,
f
,
g
,
h
,
i
,
j
;
for
(
$
(
"
#foldertable
"
).
html
(
""
),
null
!=
parentpath
&&
"
null
"
!=
parentpath
&&
$
(
"
#foldertable
"
).
append
(
"
<tr onclick='returnPF()'><td><button onclick='' class='btn btn-link btn-xs'>../</button></td><td class='hidden-xs'>--</td><td>--</td><td class='hidden-xs'>--</td><td>--</td></tr>
"
),
b
=
a
.
authList
,
c
=!
1
,
d
=!
1
,
e
=!
1
,
f
=!
1
,
checkAuth
(
b
,
"
D
"
)
&&
(
c
=!
0
),
checkAuth
(
b
,
"
R
"
)
&&
(
d
=!
0
),
checkAuth
(
b
,
"
L
"
)
&&
(
e
=!
0
),
checkAuth
(
b
,
"
O
"
)
&&
(
f
=!
0
),
g
=
a
.
folderList
.
length
;
g
>
0
;
g
--
)
h
=
a
.
folderList
[
g
-
1
],
$
(
"
#foldertable
"
).
append
(
createNewFolderRow
(
h
,
c
,
d
,
f
));
for
(
i
=
a
.
fileList
.
length
;
i
>
0
;
i
--
)
j
=
a
.
fileList
[
i
-
1
],
$
(
"
#foldertable
"
).
append
(
createFileRow
(
j
,
e
,
c
,
d
,
f
))}
function
createFileRow
(
a
,
b
,
c
,
d
,
e
){
var
f
,
g
;
if
(
a
.
fileName
=
html2Escape
(
a
.
fileName
),
f
=
"
<tr id=
"
+
a
.
fileId
+
"
onclick='checkfile(event,
"
+
'
"
'
+
a
.
fileId
+
'
"
'
+
"
)' ondblclick='checkConsFile(event,
"
+
'
"
'
+
a
.
fileId
+
'
"
'
+
"
)' id='
"
+
a
.
fileId
+
"
' class='filerow'><td>
"
+
a
.
fileName
+
"
</td><td class='hidden-xs'>
"
+
a
.
fileCreationDate
+
"
</td>
"
,
"
0
"
==
a
.
fileSize
?
f
+=
"
<td><1MB</td>
"
:
f
=
f
+
"
<td>
"
+
a
.
fileSize
+
"
MB</td>
"
,
f
=
f
+
"
<td class='hidden-xs'>
"
+
a
.
fileCreator
+
"
</td><td>
"
,
b
)
switch
(
f
=
f
+
"
<button onclick='showDownloadModel(
"
+
'
"
'
+
a
.
fileId
+
'
","
'
+
replaceAllQuotationMarks
(
a
.
fileName
)
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-cloud-download'></span> 下载</button>
"
,
g
=
getSuffix
(
a
.
fileName
)){
case
"
mp4
"
:
f
=
f
+
"
<button onclick='playVideo(
"
+
'
"
'
+
a
.
fileId
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-play'></span> 播放</button>
"
;
break
;
case
"
webm
"
:
case
"
mov
"
:
case
"
avi
"
:
case
"
wmv
"
:
case
"
mkv
"
:
case
"
flv
"
:
folderView
.
enableFFMPEG
&&
(
f
=
f
+
"
<button onclick='playVideo(
"
+
'
"
'
+
a
.
fileId
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-play'></span> 播放</button>
"
);
break
;
case
"
pdf
"
:
f
=
f
+
"
<button onclick='pdfView(
"
+
'
"
'
+
a
.
fileId
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-eye-open'></span> 预览</button>
"
;
break
;
case
"
jpg
"
:
case
"
jpeg
"
:
case
"
gif
"
:
case
"
png
"
:
case
"
bmp
"
:
f
=
f
+
"
<button onclick='showPicture(
"
+
'
"
'
+
a
.
fileId
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-picture'></span> 查看</button>
"
;
break
;
case
"
mp3
"
:
case
"
wav
"
:
case
"
ogg
"
:
f
=
f
+
"
<button onclick='playAudio(
"
+
'
"
'
+
a
.
fileId
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-play'></span> 播放</button>
"
;
break
;
case
"
docx
"
:
f
=
f
+
"
<button onclick='docxView(
"
+
'
"
'
+
a
.
fileId
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-eye-open'></span> 预览</button>
"
;
break
;
case
"
txt
"
:
f
=
f
+
"
<button onclick='txtView(
"
+
'
"
'
+
a
.
fileId
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-eye-open'></span> 预览</button>
"
;
break
;
case
"
ppt
"
:
case
"
pptx
"
:
f
=
f
+
"
<button onclick='pptView(
"
+
'
"
'
+
a
.
fileId
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-eye-open'></span> 预览</button>
"
}
return
c
&&
(
f
=
f
+
"
<button onclick='showDeleteFileModel(
"
+
'
"
'
+
a
.
fileId
+
'
","
'
+
replaceAllQuotationMarks
(
a
.
fileName
)
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-remove'></span> 删除</button>
"
),
d
&&
(
f
=
f
+
"
<button onclick='showRenameFileModel(
"
+
'
"
'
+
a
.
fileId
+
'
"
'
+
"
,
"
+
'
"
'
+
replaceAllQuotationMarks
(
a
.
fileName
)
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-wrench'></span> 重命名</button>
"
),
e
&&
(
f
=
f
+
"
<button onclick='showFolderView(
"
+
'
"
'
+
a
.
fileParentFolder
+
'
","
'
+
a
.
fileId
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-sunglasses'></span> 定位</button>
"
),
b
&&
"
true
"
==
folderView
.
showFileChain
&&
(
f
=
f
+
"
<button onclick='getFileChain(
"
+
'
"
'
+
a
.
fileId
+
'
","
'
+
replaceAllQuotationMarks
(
a
.
fileName
)
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-link'></span> 链接</button>
"
),
d
||
c
||
b
||
e
||
(
f
+=
"
--
"
),
f
+=
"
</td></tr>
"
}
function
createNewFolderRow
(
a
,
b
,
c
,
d
){
a
.
folderName
=
html2Escape
(
a
.
folderName
);
var
e
=
"
<tr id='
"
+
a
.
folderId
+
"
' onclick='checkfile(event,
"
+
'
"
'
+
a
.
folderId
+
'
"
'
+
"
)' ondblclick='checkConsFile(event,
"
+
'
"
'
+
a
.
folderId
+
'
"
'
+
"
)' class='filerow' iskfolder='true' ><td><button onclick='entryFolder(
"
+
'
"
'
+
a
.
folderId
+
'
"
'
+
"
)' class='btn btn-link btn-xs'>/
"
+
a
.
folderName
+
"
</button></td><td class='hidden-xs'>
"
+
a
.
folderCreationDate
+
"
</td><td>--</td><td class='hidden-xs'>
"
+
a
.
folderCreator
+
"
</td><td>
"
;
return
b
&&
(
e
=
e
+
"
<button onclick='showDeleteFolderModel(
"
+
'
"
'
+
a
.
folderId
+
'
","
'
+
replaceAllQuotationMarks
(
a
.
folderName
)
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-remove'></span> 删除</button>
"
),
c
&&
(
e
=
e
+
"
<button onclick='showRenameFolderModel(
"
+
'
"
'
+
a
.
folderId
+
'
","
'
+
replaceAllQuotationMarks
(
a
.
folderName
)
+
'
",
'
+
a
.
folderConstraint
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-wrench'></span> 编辑</button>
"
),
d
&&
(
e
=
e
+
"
<button onclick='showFolderView(
"
+
'
"
'
+
a
.
folderParent
+
'
","
'
+
a
.
folderId
+
'
"
'
+
"
)' class='btn btn-link btn-xs'><span class='glyphicon glyphicon-sunglasses'></span> 定位</button>
"
),
c
||
b
||
d
||
(
e
+=
"
--
"
),
e
+=
"
</td></tr>
"
}
function
showNewFolderModel
(){
$
(
"
#newFolderModal
"
).
modal
(
"
show
"
)}
function
changeNewFolderType
(
a
){
$
(
"
#newfoldertype
"
).
text
(
folderTypes
[
a
]),
$
(
"
#foldername
"
).
attr
(
"
folderConstraintLevel
"
,
a
+
""
)}
function
createfolder
(){
var
a
=
$
(
"
#foldername
"
).
val
(),
b
=
$
(
"
#foldername
"
).
attr
(
"
folderConstraintLevel
"
),
c
=
new
RegExp
(
'
[/|
\\\\
*
\\
<
\\
>
\\
?
\\
:
\\
&
\\
$"]+
'
,
"
g
"
);
0
==
a
.
length
?
showFolderAlert
(
"
提示:文件夹名称不能为空。
"
):
a
.
length
>
128
?
showFolderAlert
(
"
提示:文件夹名称太长。
"
):
c
.
test
(
a
)
||
0
==
a
.
indexOf
(
"
.
"
)?
showFolderAlert
(
"
提示:文件夹名中不应含有:引号 /
\\
* | < > & $ : ? 且不能以“.”开头。
"
):(
$
(
"
#folderalert
"
).
removeClass
(
"
alert
"
),
$
(
"
#folderalert
"
).
removeClass
(
"
alert-danger
"
),
$
(
"
#foldernamebox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#folderalert
"
).
text
(
""
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
parentId
:
locationpath
,
folderName
:
a
,
folderConstraint
:
b
},
url
:
"
homeController/newFolder.ajax
"
,
success
:
function
(
a
){
if
(
"
mustLogin
"
==
a
)
window
.
location
.
href
=
"
prv/login.html
"
;
else
switch
(
a
){
case
"
noAuthorized
"
:
showFolderAlert
(
"
提示:您的操作未被授权,创建文件夹失败。
"
);
break
;
case
"
errorParameter
"
:
showFolderAlert
(
"
提示:参数不正确,创建文件夹失败。
"
);
break
;
case
"
cannotCreateFolder
"
:
showFolderAlert
(
"
提示:出现意外错误,可能未能创建文件夹。
"
);
break
;
case
"
nameOccupied
"
:
showFolderAlert
(
"
提示:该名称已被占用,请选取其他名称。
"
);
break
;
case
"
foldersTotalOutOfLimit
"
:
showFolderAlert
(
"
提示:该文件夹内存储的文件夹数量已达上限,无法在其中创建更多文件夹。
"
);
break
;
case
"
createFolderSuccess
"
:
$
(
"
#newFolderModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
);
break
;
default
:
showFolderAlert
(
"
提示:出现意外错误,可能未能创建文件夹。
"
)}},
error
:
function
(){
showFolderAlert
(
"
提示:出现意外错误,可能未能创建文件夹
"
)}}))}
function
showFolderAlert
(
a
){
$
(
"
#folderalert
"
).
addClass
(
"
alert
"
),
$
(
"
#folderalert
"
).
addClass
(
"
alert-danger
"
),
$
(
"
#foldernamebox
"
).
addClass
(
"
has-error
"
),
$
(
"
#folderalert
"
).
text
(
a
)}
function
entryFolder
(
a
){
showFolderView
(
a
)}
function
showDeleteFolderModel
(
a
,
b
){
$
(
"
#deleteFolderBox
"
).
html
(
"
<button id='dmbutton' type='button' class='btn btn-danger' onclick='deleteFolder(
\"
"
+
a
+
'
"
'
+
"
)'>删除</button>
"
),
$
(
"
#dmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFolderBtn
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#deleteFolderMessage
"
).
text
(
"
提示:确定要彻底删除文件夹:[
"
+
b
+
"
]及其全部内容么?该操作不可恢复
"
),
$
(
"
#deleteFolderModal
"
).
modal
(
"
toggle
"
)}
function
deleteFolder
(
a
){
$
(
"
#dmbutton
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#cancelDeleteFolderBtn
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#deleteFolderMessage
"
).
text
(
"
提示:正在删除,请稍候...
"
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
folderId
:
a
},
url
:
"
homeController/deleteFolder.ajax
"
,
success
:
function
(
a
){
"
mustLogin
"
==
a
?
window
.
location
.
href
=
"
prv/login.html
"
:
"
noAuthorized
"
==
a
?(
$
(
"
#deleteFolderMessage
"
).
text
(
"
提示:您的操作未被授权,删除文件夹失败
"
),
$
(
"
#dmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFolderBtn
"
).
attr
(
"
disabled
"
,
!
0
)):
"
errorParameter
"
==
a
?(
$
(
"
#deleteFolderMessage
"
).
text
(
"
提示:参数不正确,删除文件夹失败
"
),
$
(
"
#dmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFolderBtn
"
).
attr
(
"
disabled
"
,
!
0
)):
"
cannotDeleteFolder
"
==
a
?(
$
(
"
#deleteFolderMessage
"
).
text
(
"
提示:出现意外错误,可能未能删除文件夹
"
),
$
(
"
#dmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFolderBtn
"
).
attr
(
"
disabled
"
,
!
0
)):
"
deleteFolderSuccess
"
==
a
?(
$
(
"
#deleteFolderModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
)):(
$
(
"
#deleteFolderMessage
"
).
text
(
"
提示:出现意外错误,可能未能删除文件夹
"
),
$
(
"
#dmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFolderBtn
"
).
attr
(
"
disabled
"
,
!
0
))},
error
:
function
(){
$
(
"
#deleteFolderMessage
"
).
text
(
"
提示:出现意外错误,可能未能删除文件夹
"
),
$
(
"
#dmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFolderBtn
"
).
attr
(
"
disabled
"
,
!
0
)}})}
function
showRenameFolderModel
(
a
,
b
,
c
){
$
(
"
#renameFolderBox
"
).
html
(
"
<button type='button' class='btn btn-primary' onclick='renameFolder(
\"
"
+
a
+
'
"
'
+
"
)'>修改</button>
"
),
$
(
"
#newfoldername
"
).
val
(
b
),
changeEditFolderType
(
c
),
$
(
"
#renameFolderModal
"
).
modal
(
"
show
"
)}
function
changeEditFolderType
(
a
){
$
(
"
#editfoldertype
"
).
text
(
folderTypes
[
a
]),
$
(
"
#newfoldername
"
).
attr
(
"
folderConstraintLevel
"
,
a
+
""
)}
function
renameFolder
(
a
){
var
b
=
$
(
"
#newfoldername
"
).
val
(),
c
=
$
(
"
#newfoldername
"
).
attr
(
"
folderConstraintLevel
"
),
d
=
new
RegExp
(
'
[/|
\\\\
*
\\
<
\\
>
\\
?
\\
:
\\
&
\\
$"]+
'
,
"
g
"
);
0
==
b
.
length
?
showRFolderAlert
(
"
提示:文件夹名称不能为空。
"
):
b
.
length
>
128
?
showRFolderAlert
(
"
提示:文件夹名称太长。
"
):
d
.
test
(
b
)
||
0
==
b
.
indexOf
(
"
.
"
)?
showRFolderAlert
(
"
提示:文件夹名中不应含有:引号 /
\\
* | < > & $ : ? 且不能以“.”开头。
"
):(
$
(
"
#newfolderalert
"
).
removeClass
(
"
alert
"
),
$
(
"
#newfolderalert
"
).
removeClass
(
"
alert-danger
"
),
$
(
"
#folderrenamebox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#newfolderalert
"
).
text
(
""
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
folderId
:
a
,
newName
:
b
,
folderConstraint
:
c
},
url
:
"
homeController/renameFolder.ajax
"
,
success
:
function
(
a
){
"
mustLogin
"
==
a
?
window
.
location
.
href
=
"
prv/login.html
"
:
"
noAuthorized
"
==
a
?
showRFolderAlert
(
"
提示:您的操作未被授权,编辑失败。
"
):
"
errorParameter
"
==
a
?
showRFolderAlert
(
"
提示:参数不正确,编辑失败,请刷新后重试。
"
):
"
nameOccupied
"
==
a
?
showRFolderAlert
(
"
提示:该名称已被占用,请选取其他名称。
"
):
"
renameFolderSuccess
"
==
a
?(
$
(
"
#renameFolderModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
)):
showRFolderAlert
(
"
提示:出现意外错误,可能未能编辑文件夹,请刷新后重试。
"
)},
error
:
function
(){
showRFolderAlert
(
"
提示:出现意外错误,可能未能编辑文件夹,请刷新后重试。
"
)}}))}
function
showRFolderAlert
(
a
){
$
(
"
#editfolderalert
"
).
addClass
(
"
alert
"
),
$
(
"
#editfolderalert
"
).
addClass
(
"
alert-danger
"
),
$
(
"
#folderrenamebox
"
).
addClass
(
"
has-error
"
),
$
(
"
#editfolderalert
"
).
text
(
a
)}
function
showUploadFileModel
(){
$
(
"
#uploadFileAlert
"
).
hide
(),
$
(
"
#uploadFileAlert
"
).
text
(
""
),
0
==
isUpLoading
&&
(
$
(
"
#filepath
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#uploadfile
"
).
val
(
""
),
$
(
"
#filepath
"
).
val
(
""
),
$
(
"
#pros
"
).
width
(
"
0%
"
),
$
(
"
#pros
"
).
attr
(
"
aria-valuenow
"
,
"
0
"
),
$
(
"
#umbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#filecount
"
).
text
(
""
),
$
(
"
#uploadstatus
"
).
html
(
""
),
$
(
"
#selectcount
"
).
text
(
""
),
$
(
"
#selectFileUpLoadModelAsAll
"
).
removeAttr
(
"
checked
"
),
$
(
"
#selectFileUpLoadModelAlert
"
).
hide
()),
$
(
"
#uploadFileModal
"
).
modal
(
"
show
"
)}
function
checkpath
(){
$
(
"
#uploadfile
"
).
click
()}
function
getInputUpload
(){
fs
=
$
(
"
#uploadfile
"
).
get
(
0
).
files
,
showfilepath
()}
function
showfilepath
(){
var
b
,
a
=
""
;
for
(
b
=
0
;
b
<
fs
.
length
;
b
++
)
a
+=
fs
[
b
].
name
,
b
<
fs
.
length
-
1
&&
(
a
+=
"
、
"
);
fs
.
length
<=
1
?
$
(
"
#selectcount
"
).
text
(
""
):
$
(
"
#selectcount
"
).
text
(
"
(共
"
+
fs
.
length
+
"
个)
"
),
$
(
"
#filepath
"
).
val
(
a
)}
function
checkUploadFile
(){
var
filenames
,
maxSize
,
maxFileIndex
,
i
,
namelist
;
if
(
0
==
isUpLoading
&&
0
==
isImporting
)
if
(
null
!=
fs
&&
fs
.
length
>
0
){
for
(
$
(
"
#filepath
"
).
attr
(
"
disabled
"
,
"
disabled
"
),
$
(
"
#umbutton
"
).
attr
(
"
disabled
"
,
!
0
),
isUpLoading
=!
0
,
repeModelList
=
null
,
$
(
"
#uploadFileAlert
"
).
hide
(),
$
(
"
#uploadFileAlert
"
).
text
(
""
),
filenames
=
new
Array
,
maxSize
=
0
,
maxFileIndex
=
0
,
i
=
0
;
i
<
fs
.
length
;
i
++
)
filenames
[
i
]
=
fs
[
i
].
name
,
fs
[
i
].
size
>
maxSize
&&
(
maxSize
=
fs
[
i
].
size
,
maxFileIndex
=
i
);
namelist
=
JSON
.
stringify
(
filenames
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
folderId
:
locationpath
,
namelist
:
namelist
,
maxSize
:
maxSize
,
maxFileIndex
:
maxFileIndex
},
url
:
"
homeController/checkUploadFile.ajax
"
,
success
:
function
(
result
){
if
(
"
mustLogin
"
==
result
)
window
.
location
.
href
=
"
prv/login.html
"
;
else
switch
(
result
){
case
"
errorParameter
"
:
showUploadFileAlert
(
"
提示:参数不正确,无法开始上传
"
);
break
;
case
"
noAuthorized
"
:
showUploadFileAlert
(
"
提示:您的操作未被授权,无法开始上传
"
);
break
;
case
"
filesTotalOutOfLimit
"
:
showUploadFileAlert
(
"
提示:该文件夹内存储的文件数量已达上限,无法在其中上传更多文件。您可以尝试将其上传至其他文件夹内。
"
);
break
;
default
:
var
resp
=
eval
(
"
(
"
+
result
+
"
)
"
);
"
fileTooLarge
"
==
resp
.
checkResult
?
showUploadFileAlert
(
"
提示:文件[
"
+
resp
.
overSizeFile
+
"
]的体积超过最大限制(
"
+
resp
.
maxUploadFileSize
+
"
),无法开始上传
"
):
"
hasExistsNames
"
==
resp
.
checkResult
?(
repeList
=
resp
.
pereFileNameList
,
repeIndex
=
0
,
selectFileUpLoadModelStart
()):
"
permitUpload
"
==
resp
.
checkResult
?
doupload
(
1
):
showUploadFileAlert
(
"
提示:出现意外错误,无法开始上传
"
)}},
error
:
function
(){
showUploadFileAlert
(
"
提示:出现意外错误,无法开始上传
"
)}})}
else
showUploadFileAlert
(
"
提示:您未选择任何文件,无法开始上传
"
);
else
showUploadFileAlert
(
"
提示:另一项上传文件或文件夹的任务尚未完成,无法开始上传
"
)}
function
selectFileUpLoadModelStart
(){
var
a
=
originFolderView
.
authList
;
checkAuth
(
a
,
"
D
"
)?
$
(
"
#uploadcoverbtn
"
).
show
():
$
(
"
#uploadcoverbtn
"
).
hide
(),
$
(
"
#selectFileUpLoadModelAlert
"
).
show
(),
$
(
"
#repeFileName
"
).
text
(
repeList
[
repeIndex
])}
function
selectFileUpLoadModelEnd
(
a
){
if
(
null
==
repeModelList
&&
(
repeModelList
=
{}),
repeModelList
[
$
(
"
#repeFileName
"
).
text
()]
=
a
,
$
(
"
#selectFileUpLoadModelAlert
"
).
hide
(),
$
(
"
#selectFileUpLoadModelAsAll
"
).
prop
(
"
checked
"
)){
for
(
var
b
=
repeIndex
;
b
<
repeList
.
length
;
b
++
)
repeModelList
[
repeList
[
b
]]
=
a
;
doupload
(
1
)}
else
repeIndex
++
,
repeIndex
<
repeList
.
length
?
selectFileUpLoadModelStart
():
doupload
(
1
)}
function
doupload
(
a
){
var
c
,
d
,
e
,
b
=
fs
.
length
;
if
(
$
(
"
#pros
"
).
width
(
"
0%
"
),
$
(
"
#pros
"
).
attr
(
"
aria-valuenow
"
,
"
0
"
),
c
=
fs
[
a
-
1
],
null
!=
c
){
if
(
d
=
c
.
name
,
b
>
1
&&
$
(
"
#filecount
"
).
text
(
"
(
"
+
a
+
"
/
"
+
b
+
"
)
"
),
$
(
"
#uploadstatus
"
).
prepend
(
"
<p>
"
+
html2Escape
(
d
)
+
"
<span id='uls_
"
+
a
+
"
'>[正在上传...]</span></p>
"
),
xhr
=
new
XMLHttpRequest
,
e
=
new
FormData
,
e
.
append
(
"
file
"
,
c
),
e
.
append
(
"
fname
"
,
d
),
e
.
append
(
"
folderId
"
,
locationpath
),
null
!=
repeModelList
&&
null
!=
repeModelList
[
d
]){
if
(
"
skip
"
==
repeModelList
[
d
])
return
$
(
"
#uls_
"
+
a
).
text
(
"
[已完成]
"
),
b
>
a
?(
doupload
(
a
+
1
),
void
0
):(
isUpLoading
=!
1
,
$
(
"
#filepath
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#uploadfile
"
).
val
(
""
),
$
(
"
#filepath
"
).
val
(
""
),
$
(
"
#pros
"
).
width
(
"
0%
"
),
$
(
"
#pros
"
).
attr
(
"
aria-valuenow
"
,
"
0
"
),
$
(
"
#umbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#filecount
"
).
text
(
""
),
$
(
"
#uploadstatus
"
).
text
(
""
),
$
(
"
#selectcount
"
).
text
(
""
),
$
(
"
#uploadFileModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
),
void
0
);
e
.
append
(
"
repeType
"
,
repeModelList
[
d
])}
xhr
.
open
(
"
POST
"
,
"
homeController/douploadFile.ajax
"
,
!
0
),
xhr
.
upload
.
addEventListener
(
"
progress
"
,
uploadProgress
,
!
1
),
xhr
.
send
(
e
),
null
==
pingInt
&&
(
pingInt
=
setInterval
(
"
ping()
"
,
6
e4
)),
xhr
.
onloadend
=
function
(){
if
(
null
!=
pingInt
&&
(
window
.
clearInterval
(
pingInt
),
pingInt
=
null
),
200
===
xhr
.
status
){
var
c
=
xhr
.
responseText
;
"
uploadsuccess
"
==
c
?(
$
(
"
#uls_
"
+
a
).
text
(
"
[已完成]
"
),
b
>
a
?
doupload
(
a
+
1
):(
isUpLoading
=!
1
,
$
(
"
#filepath
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#uploadfile
"
).
val
(
""
),
$
(
"
#filepath
"
).
val
(
""
),
$
(
"
#pros
"
).
width
(
"
0%
"
),
$
(
"
#pros
"
).
attr
(
"
aria-valuenow
"
,
"
0
"
),
$
(
"
#umbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#filecount
"
).
text
(
""
),
$
(
"
#uploadstatus
"
).
text
(
""
),
$
(
"
#selectcount
"
).
text
(
""
),
$
(
"
#uploadFileModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
))):
"
uploaderror
"
==
c
?(
showUploadFileAlert
(
"
提示:出现意外错误,文件:[
"
+
d
+
"
]上传失败,上传被中断。
"
),
$
(
"
#uls_
"
+
a
).
text
(
"
[失败]
"
)):
"
filesTotalOutOfLimit
"
==
c
?(
showUploadFileAlert
(
"
提示:该文件夹内存储的文件数量已达上限,文件:[
"
+
d
+
"
]上传失败。您可以尝试将其上传至其他文件夹内。
"
),
$
(
"
#uls_
"
+
a
).
text
(
"
[失败]
"
)):(
showUploadFileAlert
(
"
提示:出现意外错误,文件:[
"
+
d
+
"
]上传失败,上传被中断。
"
),
$
(
"
#uls_
"
+
a
).
text
(
"
[失败]
"
))}
else
showUploadFileAlert
(
"
提示:出现意外错误,文件:[
"
+
d
+
"
]上传失败,上传被中断。
"
),
$
(
"
#uls_
"
+
a
).
text
(
"
[失败]
"
)}}
else
showUploadFileAlert
(
"
提示:要上传的文件不存在。
"
),
$
(
"
#uploadstatus
"
).
prepend
(
"
<p>未找到要上传的文件<span id='uls_
"
+
a
+
"
'>[失败]</span></p>
"
)}
function
uploadProgress
(
a
){
if
(
a
.
lengthComputable
){
var
b
=
Math
.
round
(
100
*
a
.
loaded
/
a
.
total
);
$
(
"
#pros
"
).
width
(
b
+
"
%
"
),
$
(
"
#pros
"
).
attr
(
"
aria-valuenow
"
,
""
+
b
)}}
function
showUploadFileAlert
(
a
){
isUpLoading
=!
1
,
$
(
"
#filepath
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#uploadFileAlert
"
).
show
(),
$
(
"
#uploadFileAlert
"
).
text
(
a
),
$
(
"
#umbutton
"
).
attr
(
"
disabled
"
,
!
1
)}
function
abortUpload
(){
isUpLoading
&&
(
isUpLoading
=!
1
,
null
!=
xhr
&&
xhr
.
abort
()),
$
(
"
#uploadFileModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
)}
function
showDownloadModel
(
a
,
b
){
$
(
"
#downloadFileName
"
).
text
(
"
提示:您确认要下载文件:[
"
+
b
+
"
]么?
"
),
$
(
"
#downloadHrefBox
"
).
html
(
"
<span class='text-muted'>正在生成...</span>
"
),
getDownloadFileId
=
a
,
getDownloadFileName
=
b
,
$
(
"
#downloadFileBox
"
).
html
(
"
<button id='dlmbutton' type='button' class='btn btn-primary' onclick='dodownload(
\"
"
+
a
+
'
"
'
+
"
)'>开始下载</button>
"
),
$
(
"
#dlmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#downloadModal
"
).
modal
(
"
show
"
)}
function
dodownload
(
a
){
$
(
"
#dlmbutton
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#downloadFileName
"
).
text
(
"
提示:准备开始下载,请稍候...
"
),
setTimeout
(
"
$('#downloadModal').modal('hide');
"
,
800
),
window
.
location
.
href
=
"
homeController/downloadFile.do?fileId=
"
+
a
}
function
showDeleteFileModel
(
a
,
b
){
$
(
"
#deleteFileBox
"
).
html
(
"
<button id='dfmbutton' type='button' class='btn btn-danger' onclick='deleteFile(
\"
"
+
a
+
'
"
'
+
"
)'>删除</button>
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:确定要彻底删除文件:[
"
+
b
+
"
]么?该操作不可恢复
"
),
$
(
"
#deleteFileModal
"
).
modal
(
"
toggle
"
)}
function
deleteFile
(
a
){
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:正在删除,请稍候...
"
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
fileId
:
a
},
url
:
"
homeController/deleteFile.ajax
"
,
success
:
function
(
a
){
"
mustLogin
"
==
a
?
window
.
location
.
href
=
"
prv/login.html
"
:
"
noAuthorized
"
==
a
?(
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:您的操作未被授权,删除失败
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
)):
"
errorParameter
"
==
a
?(
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:参数不正确,删除失败
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
)):
"
cannotDeleteFile
"
==
a
?(
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:出现意外错误,可能未能删除文件
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
)):
"
deleteFileSuccess
"
==
a
?(
$
(
"
#deleteFileModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
)):(
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:出现意外错误,可能未能删除文件
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
))},
error
:
function
(){
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:出现意外错误,可能未能删除文件
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
)}})}
function
showRenameFileModel
(
a
,
b
){
$
(
"
#newFileNamealert
"
).
removeClass
(
"
alert
"
),
$
(
"
#newFileNamealert
"
).
removeClass
(
"
alert-danger
"
),
$
(
"
#filerenamebox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#newFileNamealert
"
).
text
(
""
),
$
(
"
#renameFileBox
"
).
html
(
"
<button type='button' class='btn btn-primary' onclick='renameFile(
\"
"
+
a
+
'
"
'
+
"
)'>修改</button>
"
),
$
(
"
#newfilename
"
).
val
(
b
),
$
(
"
#renameFileModal
"
).
modal
(
"
toggle
"
)}
function
renameFile
(
a
){
var
b
=
new
RegExp
(
'
[/|
\\\\
*
\\
<
\\
>
\\
?
\\
:
\\
&
\\
$"]+
'
,
"
g
"
),
c
=
$
(
"
#newfilename
"
).
val
();
c
.
length
>
0
?
c
.
length
<
128
?
b
.
test
(
c
)
||
0
==
c
.
indexOf
(
"
.
"
)?
showRFileAlert
(
"
提示:文件名中不应含有:引号 /
\\
* | < > & $ : ? 且不能以“.”开头。
"
):
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
fileId
:
a
,
newFileName
:
c
},
url
:
"
homeController/renameFile.ajax
"
,
success
:
function
(
a
){
"
mustLogin
"
==
a
?
window
.
location
.
href
=
"
prv/login.html
"
:
"
cannotRenameFile
"
==
a
?
showRFileAlert
(
"
提示:出现意外错误,可能未能重命名文件,请刷新后重试。
"
):
"
renameFileSuccess
"
==
a
?(
$
(
"
#renameFileModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
)):
"
errorParameter
"
==
a
?
showRFileAlert
(
"
提示:参数错误,重命名失败,请刷新后重试。
"
):
"
nameOccupied
"
==
a
?
showRFileAlert
(
"
提示:该名称已被占用,请选取其他名称。
"
):
"
noAuthorized
"
==
a
?
showRFileAlert
(
"
提示:您的操作未被授权,重命名失败,请刷新后重试。
"
):
showRFileAlert
(
"
提示:出现意外错误,可能未能重命名文件,请刷新后重试。
"
)},
error
:
function
(){
showRFileAlert
(
"
提示:出现意外错误,可能未能重命名文件。
"
)}}):
showRFileAlert
(
"
提示:文件名称太长。
"
):
showRFileAlert
(
"
提示:文件名不能为空。
"
)}
function
showRFileAlert
(
a
){
$
(
"
#newFileNamealert
"
).
addClass
(
"
alert
"
),
$
(
"
#newFileNamealert
"
).
addClass
(
"
alert-danger
"
),
$
(
"
#filerenamebox
"
).
addClass
(
"
has-error
"
),
$
(
"
#newFileNamealert
"
).
text
(
a
)}
function
getSuffix
(
a
){
var
b
=
a
.
lastIndexOf
(
"
.
"
),
c
=
a
.
length
,
d
=
a
.
substring
(
b
+
1
,
c
);
return
d
.
toLowerCase
()}
function
playVideo
(
a
){
window
.
open
(
"
quickview/video.html?fileId=
"
+
a
)}
function
pdfView
(
a
){
window
.
open
(
"
/pdfview/web/viewer.html?file=/resourceController/getResource/
"
+
a
)}
function
docxView
(
a
){
window
.
open
(
"
/pdfview/web/viewer.html?file=/resourceController/getWordView/
"
+
a
)}
function
txtView
(
a
){
window
.
open
(
"
/pdfview/web/viewer.html?file=/resourceController/getTxtView/
"
+
a
)}
function
pptView
(
a
){
window
.
open
(
"
/pdfview/web/viewer.html?file=/resourceController/getPPTView/
"
+
a
)}
function
showPicture
(
fileId
){
$
.
ajax
({
url
:
"
homeController/getPrePicture.ajax
"
,
data
:{
fileId
:
fileId
},
type
:
"
POST
"
,
dataType
:
"
text
"
,
success
:
function
(
result
){
if
(
"
ERROR
"
!=
result
)
if
(
pvl
=
eval
(
"
(
"
+
result
+
"
)
"
),
pvl
.
pictureViewList
.
length
<=
viewerPageSize
)
createViewList
();
else
{
viewerPageIndex
=
Math
.
ceil
((
pvl
.
index
+
1
)
/
viewerPageSize
),
viewerTotal
=
Math
.
ceil
(
pvl
.
pictureViewList
.
length
/
viewerPageSize
),
createViewListByPage
();
var
innerIndex
=
pvl
.
index
-
(
viewerPageIndex
-
1
)
*
viewerPageSize
;
viewerPageIndex
>
1
&&
innerIndex
++
,
viewer
.
viewer
(
"
view
"
,
innerIndex
),
viewer
.
viewer
(
"
show
"
,
!
0
)}
else
alert
(
"
错误:无法定位要预览的文件或该操作未被授权。
"
)},
error
:
function
(){
alert
(
"
错误:请求失败,请刷新重试。
"
)
}})}
function
createViewList
(){
var
a
,
b
;
if
(
null
==
viewer
){
for
(
a
=
document
.
createElement
(
"
ul
"
),
b
=
0
;
b
<
pvl
.
pictureViewList
.
length
;
b
++
)
$
(
a
).
append
(
"
<li><img src='
"
+
pvl
.
pictureViewList
[
b
].
url
+
"
' alt='
"
+
html2Escape
(
pvl
.
pictureViewList
[
b
].
fileName
)
+
"
' /></li>
"
);
viewer
=
$
(
a
),
viewer
.
viewer
({
loop
:
!
1
,
hidden
:
function
(){
viewer
.
data
(
"
viewer
"
).
destroy
(),
viewer
=
null
}})}
viewer
.
viewer
(
"
view
"
,
pvl
.
index
),
viewer
.
viewer
(
"
show
"
,
!
0
)}
function
createViewListByPage
(){
var
a
,
b
,
c
;
if
(
null
==
viewer
){
for
(
a
=
document
.
createElement
(
"
ul
"
),
b
=
(
viewerPageIndex
-
1
)
*
viewerPageSize
,
viewerPageIndex
>
1
&&
$
(
a
).
append
(
"
<li><img src='css/left.png' alt='上一页' /></li>
"
),
c
=
0
;
viewerPageSize
>
c
&&
c
<
pvl
.
pictureViewList
.
length
-
(
viewerPageIndex
-
1
)
*
viewerPageSize
;
c
++
)
$
(
a
).
append
(
"
<li><img src='
"
+
pvl
.
pictureViewList
[
b
+
c
].
url
+
"
' alt='
"
+
html2Escape
(
pvl
.
pictureViewList
[
b
+
c
].
fileName
)
+
"
' /></li>
"
);
viewerTotal
>
viewerPageIndex
&&
$
(
a
).
append
(
"
<li><img src='css/right.png' alt='下一页' /></li>
"
),
viewer
=
$
(
a
),
viewer
.
viewer
({
loop
:
!
1
,
view
:
function
(
a
){
0
==
a
.
detail
.
index
&&
1
!=
viewerPageIndex
?(
viewerPageIndex
--
,
viewer
.
data
(
"
viewer
"
).
destroy
(),
viewer
.
empty
(),
viewer
=
null
,
createViewListByPage
(),
viewerPageIndex
>
1
?
viewer
.
viewer
(
"
view
"
,
viewerPageSize
):
viewer
.
viewer
(
"
view
"
,
viewerPageSize
-
1
)):(
a
.
detail
.
index
==
viewerPageSize
+
1
||
a
.
detail
.
index
==
viewerPageSize
&&
1
==
viewerPageIndex
)
&&
(
viewerPageIndex
++
,
viewer
.
data
(
"
viewer
"
).
destroy
(),
viewer
.
empty
(),
viewer
=
null
,
createViewListByPage
(),
viewer
.
viewer
(
"
view
"
,
1
))},
hidden
:
function
(){
viewer
.
data
(
"
viewer
"
).
destroy
(),
viewer
.
empty
(),
viewer
=
null
}})}}
function
isShift
(
a
){
var
b
=
window
.
event
||
a
;
return
b
.
shiftKey
?
!
0
:
!
1
}
function
checkfile
(
a
,
b
){
isShift
(
a
)?
$
(
"
#
"
+
b
).
hasClass
(
"
info
"
)?
$
(
"
#
"
+
b
).
removeClass
(
"
info
"
):
$
(
"
#
"
+
b
).
addClass
(
"
info
"
):(
$
(
"
.filerow
"
).
removeClass
(
"
info
"
),
$
(
"
#
"
+
b
).
addClass
(
"
info
"
))}
function
checkConsFile
(
a
,
b
){
var
c
,
d
,
e
;
if
(
isShift
(
a
)
&&
(
c
=
$
(
"
#
"
+
b
),
d
=
c
.
index
(),
e
=
$
(
"
.filerow.info:last
"
).
index
(),
-
1
!=
e
))
if
(
d
>
e
)
for
(;
c
[
0
]
&&!
c
.
hasClass
(
"
info
"
);)
c
.
addClass
(
"
info
"
),
c
=
c
.
prev
();
else
for
(;
c
[
0
]
&&!
c
.
hasClass
(
"
info
"
);)
c
.
addClass
(
"
info
"
),
c
=
c
.
next
()}
function
getCheckedFilesAndFolders
(){
var
b
,
c
,
d
,
e
,
a
=
new
Object
;
for
(
a
.
size
=
0
,
b
=
new
Array
,
c
=
new
Array
,
d
=
$
(
"
.info
"
).
get
(),
e
=
0
;
e
<
d
.
length
;
e
++
)
"
true
"
==
d
[
e
].
getAttribute
(
"
iskfolder
"
)?
c
.
push
(
d
[
e
].
id
):
b
.
push
(
d
[
e
].
id
),
a
.
size
++
;
return
a
.
filesId
=
JSON
.
stringify
(
b
),
a
.
foldersId
=
JSON
.
stringify
(
c
),
a
}
function
checkallfile
(){
$
(
"
.filerow.info
"
).
length
==
$
(
"
.filerow
"
).
length
?
$
(
"
.filerow
"
).
removeClass
(
"
info
"
):
$
(
"
.filerow
"
).
addClass
(
"
info
"
)}
function
showDownloadAllCheckedModel
(){
if
(
folderView
.
enableDownloadZip
){
$
(
"
#downloadAllCheckedBox
"
).
html
(
""
),
$
(
"
#downloadAllCheckedLoad
"
).
text
(
""
);
var
a
=
getCheckedFilesAndFolders
();
0
==
a
.
size
?
$
(
"
#downloadAllCheckedName
"
).
html
(
checkFilesTip
):(
$
(
"
#downloadAllCheckedName
"
).
text
(
"
提示:您确认要打包并下载这
"
+
a
.
size
+
"
项么?
"
),
$
(
"
#downloadAllCheckedBox
"
).
html
(
"
<button id='dclmbutton' type='button' class='btn btn-primary' onclick='downloadAllChecked()'>开始下载</button>
"
),
$
(
"
#dclmbutton
"
).
attr
(
"
disabled
"
,
!
1
)),
$
(
"
#cancelDownloadAllCheckedBtn
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#downloadAllCheckedModal
"
).
modal
(
"
toggle
"
)}}
function
downloadAllChecked
(){
$
(
"
#dclmbutton
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#cancelDownloadAllCheckedBtn
"
).
attr
(
"
disabled
"
,
!
0
);
var
a
=
getCheckedFilesAndFolders
();
$
(
"
#downloadAllCheckedName
"
).
text
(
"
提示:服务器正在对选中资源进行压缩(共
"
+
a
.
size
+
"
项),这可能需要一些时间(文件越大耗时越长),压缩完成将自动开始下载。
"
),
$
.
ajax
({
url
:
"
homeController/getPackTime.ajax
"
,
type
:
"
POST
"
,
data
:{
strIdList
:
a
.
filesId
,
strFidList
:
a
.
foldersId
},
dataType
:
"
text
"
,
success
:
function
(
a
){
var
b
;
"
0
"
!=
a
?(
b
=
0
,
$
(
"
#downloadAllCheckedLoad
"
).
text
(
"
已耗时:
"
+
b
+
"
秒(预计耗时:
"
+
a
+
"
)
"
),
zipTimer
=
setInterval
(
function
(){
b
++
,
$
(
"
#downloadAllCheckedLoad
"
).
text
(
"
已耗时:
"
+
b
+
"
秒(预计耗时:
"
+
a
+
"
)
"
)},
1
e3
)):(
b
=
0
,
$
(
"
#downloadAllCheckedLoad
"
).
text
(
"
已耗时:
"
+
b
+
"
秒
"
),
zipTimer
=
setInterval
(
function
(){
b
++
,
$
(
"
#downloadAllCheckedLoad
"
).
text
(
"
已耗时:
"
+
b
+
"
秒
"
)},
1
e3
))},
error
:
function
(){
$
(
"
#downloadAllCheckedLoad
"
).
text
(
"
(无法获取预计耗时)
"
)}}),
$
.
ajax
({
type
:
"
POST
"
,
url
:
"
homeController/downloadCheckedFiles.ajax
"
,
data
:{
strIdList
:
a
.
filesId
,
strFidList
:
a
.
foldersId
},
dataType
:
"
text
"
,
success
:
function
(
a
){
var
c
,
d
;
null
!=
zipTimer
&&
window
.
clearInterval
(
zipTimer
),
"
ERROR
"
==
a
?(
$
(
"
#downloadAllCheckedName
"
).
text
(
"
提示:压缩过程出错。无法完成压缩,请重试或告知管理员。
"
),
$
(
"
#dclmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDownloadAllCheckedBtn
"
).
attr
(
"
disabled
"
,
!
1
)):(
$
(
"
#downloadAllCheckedLoad
"
).
text
(
""
),
$
(
"
#downloadAllCheckedName
"
).
text
(
"
提示:压缩完成!准备开始下载...
"
),
setTimeout
(
"
$('#downloadAllCheckedModal').modal('hide');
"
,
800
),
c
=
document
.
createElement
(
"
form
"
),
c
.
action
=
"
homeController/downloadCheckedFilesZip.do
"
,
c
.
method
=
"
post
"
,
c
.
style
.
display
=
"
none
"
,
d
=
document
.
createElement
(
"
input
"
),
d
.
name
=
"
zipId
"
,
d
.
value
=
a
,
c
.
appendChild
(
d
),
document
.
body
.
appendChild
(
c
),
c
.
submit
())},
error
:
function
(){
$
(
"
#downloadAllCheckedName
"
).
text
(
"
提示:请求失败。无法完成压缩,请重试或告知管理员。
"
),
$
(
"
#dclmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDownloadAllCheckedBtn
"
).
attr
(
"
disabled
"
,
!
1
)}})}
function
showDeleteAllCheckedModel
(){
$
(
"
#deleteFileBox
"
).
html
(
""
);
var
a
=
getCheckedFilesAndFolders
();
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
),
0
==
a
.
size
?
$
(
"
#deleteFileMessage
"
).
html
(
checkFilesTip
):(
$
(
"
#deleteFileBox
"
).
html
(
"
<button id='dfmbutton' type='button' class='btn btn-danger' onclick='deleteAllChecked()'>全部删除</button>
"
),
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:确定要彻底删除这
"
+
a
.
size
+
"
项么?该操作不可恢复!
"
)),
$
(
"
#deleteFileModal
"
).
modal
(
"
toggle
"
)}
function
deleteAllChecked
(){
var
a
=
getCheckedFilesAndFolders
();
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:正在删除,请稍候...
"
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
strIdList
:
a
.
filesId
,
strFidList
:
a
.
foldersId
},
url
:
"
homeController/deleteCheckedFiles.ajax
"
,
success
:
function
(
a
){
"
mustLogin
"
==
a
?
window
.
location
.
href
=
"
prv/login.html
"
:
"
noAuthorized
"
==
a
?(
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:您的操作未被授权,删除失败
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
)):
"
errorParameter
"
==
a
?(
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:参数不正确,未能全部删除文件
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
)):
"
cannotDeleteFile
"
==
a
?(
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:出现意外错误,可能未能删除全部文件
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
)):
"
deleteFileSuccess
"
==
a
?(
$
(
"
#deleteFileModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
)):(
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:出现意外错误,可能未能删除全部文件
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
))},
error
:
function
(){
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:出现意外错误,可能未能删除全部文件
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
)}})}
function
playAudio
(
fileId
){
$
(
"
#audioPlayerModal
"
).
modal
(
"
show
"
),
null
==
pingInt
&&
(
pingInt
=
setInterval
(
"
ping()
"
,
6
e4
)),
null
==
ap
&&
(
ap
=
new
APlayer
({
container
:
document
.
getElementById
(
"
aplayer
"
),
lrcType
:
3
,
mutex
:
!
0
,
volume
:.
7
,
theme
:
"
#EDEDED
"
,
audio
:[]}),
ap
.
on
(
"
pause
"
,
function
(){
$
(
"
#playOrPause
"
).
html
(
"
<span class='glyphicon glyphicon-play' aria-hidden='true'></span>
"
)}),
ap
.
on
(
"
play
"
,
function
(){
$
(
"
#playOrPause
"
).
html
(
"
<span class='glyphicon glyphicon-pause' aria-hidden='true'></span>
"
)})),
ap
.
list
.
clear
(),
$
.
ajax
({
url
:
"
homeController/playAudios.ajax
"
,
data
:{
fileId
:
fileId
},
type
:
"
POST
"
,
dataType
:
"
text
"
,
success
:
function
(
result
){
var
i
,
ail
=
eval
(
"
(
"
+
result
+
"
)
"
);
for
(
i
=
ail
.
index
;
i
<
ail
.
as
.
length
;
i
++
)
ail
.
as
[
i
].
name
=
ail
.
as
[
i
].
name
.
replace
(
"
'
"
,
"
'
"
).
replace
(
"
<
"
,
"
<
"
).
replace
(
"
>
"
,
"
>
"
),
ap
.
list
.
add
(
ail
.
as
[
i
]);
for
(
i
=
0
;
i
<
ail
.
index
;
i
++
)
ail
.
as
[
i
].
name
=
ail
.
as
[
i
].
name
.
replace
(
"
'
"
,
"
'
"
).
replace
(
"
<
"
,
"
<
"
).
replace
(
"
>
"
,
"
>
"
),
ap
.
list
.
add
(
ail
.
as
[
i
]);
audio_play
()},
error
:
function
(){
alert
(
"
错误:无法获取音乐列表,请稍后再试
"
),
closeAudioPlayer
()}})}
function
closeAudioPlayer
(){
$
(
"
#audioPlayerModal
"
).
modal
(
"
hide
"
)}
function
audio_playOrPause
(){
ap
.
toggle
()}
function
audio_play
(){
ap
.
play
()}
function
audio_pasue
(){
ap
.
pause
()}
function
audio_fw
(){
ap
.
skipForward
()}
function
audio_bw
(){
ap
.
skipBack
()}
function
audio_vulome_up
(){
ap
.
volume
(
ap
.
audio
.
volume
+
.
1
,
!
0
)}
function
audio_vulome_down
(){
ap
.
volume
(
ap
.
audio
.
volume
-
.
1
,
!
0
)}
function
sortbyfn
(){
if
(
loadingComplete
&&!
$
(
"
#sortByCD,#sortByFS,#sortByCN,#sortByOR
"
).
hasClass
(
"
glyphicon glyphicon-hourglass
"
)){
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
();
var
a
=
1
;
$
(
"
#sortByFN
"
).
hasClass
(
"
glyphicon-triangle-bottom
"
)
&&
(
a
=-
1
),
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByFN
"
).
addClass
(
"
glyphicon glyphicon-hourglass
"
),
setTimeout
(
function
(){
folderView
.
fileList
.
sort
(
function
(
b
,
c
){
return
a
*
c
.
fileName
.
localeCompare
(
b
.
fileName
,
"
zh
"
)}),
folderView
.
folderList
.
sort
(
function
(
b
,
c
){
return
a
*
c
.
folderName
.
localeCompare
(
b
.
folderName
,
"
zh
"
)}),
showFolderTable
(
folderView
),
$
(
"
#sortByFN
"
).
removeClass
(),
-
1
==
a
?
$
(
"
#sortByFN
"
).
addClass
(
"
glyphicon glyphicon-triangle-top
"
):
$
(
"
#sortByFN
"
).
addClass
(
"
glyphicon glyphicon-triangle-bottom
"
)},
0
)}}
function
sortbycd
(){
if
(
loadingComplete
&&!
$
(
"
#sortByFN,#sortByFS,#sortByCN,#sortByOR
"
).
hasClass
(
"
glyphicon glyphicon-hourglass
"
)){
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
();
var
a
=
1
;
$
(
"
#sortByCD
"
).
hasClass
(
"
glyphicon-triangle-bottom
"
)
&&
(
a
=-
1
),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
addClass
(
"
glyphicon glyphicon-hourglass
"
),
setTimeout
(
function
(){
folderView
.
fileList
.
sort
(
function
(
b
,
c
){
var
d
=
b
.
fileCreationDate
.
replace
(
"
年
"
,
"
-
"
).
replace
(
"
月
"
,
"
-
"
).
replace
(
"
日
"
,
""
),
e
=
c
.
fileCreationDate
.
replace
(
"
年
"
,
"
-
"
).
replace
(
"
月
"
,
"
-
"
).
replace
(
"
日
"
,
""
),
f
=
new
Date
(
Date
.
parse
(
d
)).
getTime
()
-
new
Date
(
Date
.
parse
(
e
)).
getTime
();
return
a
*
f
}),
folderView
.
folderList
.
sort
(
function
(
b
,
c
){
var
d
=
b
.
folderCreationDate
.
replace
(
"
年
"
,
"
-
"
).
replace
(
"
月
"
,
"
-
"
).
replace
(
"
日
"
,
""
),
e
=
c
.
folderCreationDate
.
replace
(
"
年
"
,
"
-
"
).
replace
(
"
月
"
,
"
-
"
).
replace
(
"
日
"
,
""
),
f
=
new
Date
(
Date
.
parse
(
d
)).
getTime
()
-
new
Date
(
Date
.
parse
(
e
)).
getTime
();
return
a
*
f
}),
showFolderTable
(
folderView
),
$
(
"
#sortByCD
"
).
removeClass
(),
-
1
==
a
?
$
(
"
#sortByCD
"
).
addClass
(
"
glyphicon glyphicon-triangle-top
"
):
$
(
"
#sortByCD
"
).
addClass
(
"
glyphicon glyphicon-triangle-bottom
"
)},
0
)}}
function
sortbyfs
(){
if
(
loadingComplete
&&!
$
(
"
#sortByFN,#sortByCD,#sortByCN,#sortByOR
"
).
hasClass
(
"
glyphicon glyphicon-hourglass
"
)){
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
();
var
a
=
1
;
$
(
"
#sortByFS
"
).
hasClass
(
"
glyphicon-triangle-bottom
"
)
&&
(
a
=-
1
),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
addClass
(
"
glyphicon glyphicon-hourglass
"
),
setTimeout
(
function
(){
folderView
.
fileList
.
sort
(
function
(
b
,
c
){
return
a
*
(
b
.
fileSize
-
c
.
fileSize
)}),
showFolderTable
(
folderView
),
$
(
"
#sortByFS
"
).
removeClass
(),
-
1
==
a
?
$
(
"
#sortByFS
"
).
addClass
(
"
glyphicon glyphicon-triangle-top
"
):
$
(
"
#sortByFS
"
).
addClass
(
"
glyphicon glyphicon-triangle-bottom
"
)},
0
)}}
function
sortbycn
(){
if
(
loadingComplete
&&!
$
(
"
#sortByFN,#sortByCD,#sortByFS,#sortByOR
"
).
hasClass
(
"
glyphicon glyphicon-hourglass
"
)){
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
();
var
a
=
1
;
$
(
"
#sortByCN
"
).
hasClass
(
"
glyphicon-triangle-bottom
"
)
&&
(
a
=-
1
),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
addClass
(
"
glyphicon glyphicon-hourglass
"
),
setTimeout
(
function
(){
folderView
.
fileList
.
sort
(
function
(
b
,
c
){
return
a
*
c
.
fileCreator
.
localeCompare
(
b
.
fileCreator
,
"
zh
"
)}),
folderView
.
folderList
.
sort
(
function
(
b
,
c
){
return
a
*
c
.
folderCreator
.
localeCompare
(
b
.
folderCreator
,
"
zh
"
)}),
showFolderTable
(
folderView
),
$
(
"
#sortByCN
"
).
removeClass
(),
-
1
==
a
?
$
(
"
#sortByCN
"
).
addClass
(
"
glyphicon glyphicon-triangle-top
"
):
$
(
"
#sortByCN
"
).
addClass
(
"
glyphicon glyphicon-triangle-bottom
"
)},
0
)}}
function
showOriginFolderView
(){
loadingComplete
&&
(
$
(
"
#sortByFN,#sortByCD,#sortByFS,#sortByCN
"
).
hasClass
(
"
glyphicon glyphicon-hourglass
"
)
||
(
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
addClass
(
"
glyphicon glyphicon-hourglass
"
),
setTimeout
(
function
(){
folderView
=
null
!=
screenedFoldrView
?
$
.
extend
(
!
0
,{},
screenedFoldrView
):
$
.
extend
(
!
0
,{},
originFolderView
),
showFolderTable
(
folderView
),
$
(
"
#sortByOR
"
).
removeClass
()},
0
)))}
function
cutFile
(){
checkedMovefiles
=
getCheckedFilesAndFolders
(),
void
0
==
checkedMovefiles
||
0
==
checkedMovefiles
.
size
?(
$
(
"
#moveFilesMessage
"
).
html
(
checkFilesTip
),
$
(
"
#selectFileMoveModelAsAll
"
).
removeAttr
(
"
checked
"
),
$
(
"
#selectFileMoveModelAlert
"
).
hide
(),
$
(
"
#moveFilesModal
"
).
modal
(
"
show
"
)):(
checkedMovefiles
.
size
<
100
?
$
(
"
#stickFilesCount
"
).
text
(
"
(
"
+
checkedMovefiles
.
size
+
"
)
"
):
$
(
"
#stickFilesCount
"
).
text
(
"
(99+)
"
),
$
(
"
#copyFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#copyFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#cutFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#cutFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#stickFileButtonLi
"
).
removeClass
(
"
hidden
"
),
$
(
"
#stickFileButtonLi
"
).
addClass
(
"
show
"
),
isCopy
=!
1
)}
function
copyFile
(){
checkedMovefiles
=
getCheckedFilesAndFolders
(),
void
0
==
checkedMovefiles
||
0
==
checkedMovefiles
.
size
?(
$
(
"
#moveFilesMessage
"
).
html
(
checkFilesTip
),
$
(
"
#selectFileMoveModelAsAll
"
).
removeAttr
(
"
checked
"
),
$
(
"
#selectFileMoveModelAlert
"
).
hide
(),
$
(
"
#moveFilesModal
"
).
modal
(
"
show
"
)):(
checkedMovefiles
.
size
<
100
?
$
(
"
#stickFilesCount
"
).
text
(
"
(
"
+
checkedMovefiles
.
size
+
"
)
"
):
$
(
"
#stickFilesCount
"
).
text
(
"
(99+)
"
),
$
(
"
#copyFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#copyFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#cutFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#cutFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#stickFileButtonLi
"
).
removeClass
(
"
hidden
"
),
$
(
"
#stickFileButtonLi
"
).
addClass
(
"
show
"
),
isCopy
=!
0
)}
function
stickFile
(){
void
0
!==
checkedMovefiles
&&
checkedMovefiles
.
size
>
0
&&
(
isCopy
?(
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:确定将这
"
+
checkedMovefiles
.
size
+
"
项复制到当前位置么?
"
),
$
(
"
#moveFilesBox
"
).
html
(
"
<button id='dmvfbutton' type='button' class='btn btn-primary' onclick='doMoveFiles()'>全部复制</button>
"
)):(
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:确定将这
"
+
checkedMovefiles
.
size
+
"
项移动到当前位置么?
"
),
$
(
"
#moveFilesBox
"
).
html
(
"
<button id='dmvfbutton' type='button' class='btn btn-danger' onclick='doMoveFiles()'>全部移动</button>
"
)),
$
(
"
#selectFileMoveModelAsAll
"
).
removeAttr
(
"
checked
"
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#selectFileMoveModelAlert
"
).
hide
(),
$
(
"
#moveFilesModal
"
).
modal
(
"
show
"
))}
function
doMoveFiles
(){
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
0
);
var
method
=
"
MOVE
"
;
isCopy
?(
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:正在复制,请稍候...
"
),
method
=
"
COPY
"
):
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:正在移动,请稍候...
"
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
strIdList
:
checkedMovefiles
.
filesId
,
strFidList
:
checkedMovefiles
.
foldersId
,
locationpath
:
locationpath
,
method
:
method
},
url
:
"
homeController/confirmMoveFiles.ajax
"
,
success
:
function
(
result
){
if
(
"
mustLogin
"
==
result
)
window
.
location
.
href
=
"
prv/login.html
"
;
else
switch
(
result
){
case
"
noAuthorized
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:您的操作未被授权,操作失败
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
errorParameter
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:参数不正确,无法完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
cannotMoveFiles
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:出现意外错误,可能未能完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
filesTotalOutOfLimit
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:该文件夹内存储的文件数量已达上限,无法添加更多文件
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
foldersTotalOutOfLimit
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:该文件夹内存储的文件夹数量已达上限,无法添加更多文件夹
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
confirmMoveFiles
"
:
strMoveOptMap
=
{},
sendMoveFilesReq
();
break
;
default
:
if
(
result
.
startsWith
(
"
duplicationFileName:
"
)){
repeMap
=
eval
(
"
(
"
+
result
.
substring
(
20
)
+
"
)
"
),
repeIndex
=
0
,
strMoveOptMap
=
{},
mRepeSize
=
repeMap
.
repeFolders
.
length
+
repeMap
.
repeNodes
.
length
,
repeMap
.
repeFolders
.
length
>
0
?
$
(
"
#mrepeFileName
"
).
text
(
repeMap
.
repeFolders
[
repeIndex
].
folderName
):
$
(
"
#mrepeFileName
"
).
text
(
repeMap
.
repeNodes
[
repeIndex
].
fileName
);
var
authList
=
originFolderView
.
authList
;
checkAuth
(
authList
,
"
D
"
)?
$
(
"
#movecoverbtn
"
).
show
():
$
(
"
#movecoverbtn
"
).
hide
(),
$
(
"
#selectFileMoveModelAlert
"
).
show
()}
else
result
.
startsWith
(
"
CANT_MOVE_TO_INSIDE:
"
)?
$
(
"
#moveFilesMessage
"
).
text
(
"
错误:不能将一个文件夹移动到其自身内部:
"
+
result
.
substring
(
20
)):(
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:出现意外错误,可能未能完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
))}},
error
:
function
(){
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:出现意外错误,可能未能完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
)}})}
function
selectFileMoveModel
(
a
){
if
(
$
(
"
#selectFileMoveModelAsAll
"
).
prop
(
"
checked
"
)){
for
(;
mRepeSize
>
repeIndex
;)
repeIndex
<
repeMap
.
repeFolders
.
length
?
strMoveOptMap
[
repeMap
.
repeFolders
[
repeIndex
].
folderId
]
=
a
:
strMoveOptMap
[
repeMap
.
repeNodes
[
repeIndex
-
repeMap
.
repeFolders
.
length
].
fileId
]
=
a
,
repeIndex
++
;
$
(
"
#selectFileMoveModelAlert
"
).
hide
(),
sendMoveFilesReq
()}
repeIndex
<
repeMap
.
repeFolders
.
length
?
strMoveOptMap
[
repeMap
.
repeFolders
[
repeIndex
].
folderId
]
=
a
:
strMoveOptMap
[
repeMap
.
repeNodes
[
repeIndex
-
repeMap
.
repeFolders
.
length
].
fileId
]
=
a
,
repeIndex
++
,
mRepeSize
>
repeIndex
?
repeIndex
<
repeMap
.
repeFolders
.
length
?
$
(
"
#mrepeFileName
"
).
text
(
repeMap
.
repeFolders
[
repeIndex
].
folderName
):
$
(
"
#mrepeFileName
"
).
text
(
repeMap
.
repeNodes
[
repeIndex
-
repeMap
.
repeFolders
.
length
].
fileName
):(
$
(
"
#selectFileMoveModelAlert
"
).
hide
(),
sendMoveFilesReq
())}
function
sendMoveFilesReq
(){
var
a
=
JSON
.
stringify
(
strMoveOptMap
),
b
=
"
MOVE
"
;
isCopy
&&
(
b
=
"
COPY
"
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
strIdList
:
checkedMovefiles
.
filesId
,
strFidList
:
checkedMovefiles
.
foldersId
,
strOptMap
:
a
,
locationpath
:
locationpath
,
method
:
b
},
url
:
"
homeController/moveCheckedFiles.ajax
"
,
success
:
function
(
a
){
if
(
"
mustLogin
"
==
a
)
window
.
location
.
href
=
"
prv/login.html
"
;
else
switch
(
a
){
case
"
noAuthorized
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:您的操作未被授权,操作失败
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
errorParameter
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:参数不正确,无法完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
filesTotalOutOfLimit
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:该文件夹内存储的文件数量已达上限,无法添加更多文件
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
foldersTotalOutOfLimit
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:该文件夹内存储的文件夹数量已达上限,无法添加更多文件夹
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
cannotMoveFiles
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:出现意外错误,可能未能完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
moveFilesSuccess
"
:
$
(
"
#moveFilesModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
);
break
;
default
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:出现意外错误,可能未能完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
)}},
error
:
function
(){
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:出现意外错误,可能未能完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
)}})}
function
doSearchFile
(){
var
a
=
$
(
"
#sreachKeyWordIn
"
).
val
();
0
!=
a
.
length
?
a
.
startsWith
(
"
all:
"
)
||
a
.
startsWith
(
"
all:
"
)?
selectInCompletePath
(
a
.
substring
(
4
)):(
startLoading
(),
selectInThisPath
(
a
),
endLoading
()):
null
!=
folderView
.
keyWorld
?
showFolderView
(
locationpath
):(
screenedFoldrView
=
null
,
showOriginFolderView
())}
function
selectInThisPath
(
a
){
var
b
,
c
,
d
;
try
{
for
(
b
=
new
RegExp
(
a
+
"
+
"
),
screenedFoldrView
=
$
.
extend
(
!
0
,{},
originFolderView
),
screenedFoldrView
.
folderList
=
[],
screenedFoldrView
.
fileList
=
[],
c
=
0
,
d
=
originFolderView
.
folderList
.
length
;
d
>
c
;
c
++
)
b
.
test
(
originFolderView
.
folderList
[
c
].
folderName
)
&&
screenedFoldrView
.
folderList
.
push
(
originFolderView
.
folderList
[
c
]);
for
(
c
=
0
,
d
=
originFolderView
.
fileList
.
length
;
d
>
c
;
c
++
)
b
.
test
(
originFolderView
.
fileList
[
c
].
fileName
)
&&
screenedFoldrView
.
fileList
.
push
(
originFolderView
.
fileList
[
c
]);
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
(),
folderView
=
$
.
extend
(
!
0
,{},
screenedFoldrView
),
showFolderTable
(
folderView
)}
catch
(
e
){
alert
(
"
错误:搜索关键字有误。请在特殊符号(例如“*”)前加上“
\\
”进行转义。
"
)}}
function
selectInCompletePath
(
keyworld
){
return
0
==
keyworld
.
length
?(
showFolderView
(
locationpath
),
void
0
):(
startLoading
(),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
fid
:
locationpath
,
keyworld
:
keyworld
},
url
:
"
homeController/sreachInCompletePath.ajax
"
,
success
:
function
(
result
){
endLoading
(),
"
ERROR
"
==
result
?(
doAlert
(),
$
(
"
#tb
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
),
$
(
"
#publishTime
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
),
$
(
"
#parentlistbox
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
)):
"
mustLogin
"
==
result
?
window
.
location
.
href
=
"
prv/login.html
"
:
"
notAccess
"
==
result
?(
document
.
cookie
=
"
folder_id=
"
+
escape
(
"
root
"
),
window
.
location
.
href
=
"
/
"
):(
folderView
=
eval
(
"
(
"
+
result
+
"
)
"
),
locationpath
=
folderView
.
folder
.
folderId
,
parentpath
=
folderView
.
folder
.
folderParent
,
constraintLevel
=
folderView
.
folder
.
folderConstraint
,
screenedFoldrView
=
null
,
$
(
"
#sreachKeyWordIn
"
).
val
(
"
all:
"
+
folderView
.
keyWorld
),
showParentList
(
folderView
),
showAccountView
(
folderView
),
showPublishTime
(
folderView
),
originFolderView
=
$
.
extend
(
!
0
,{},
folderView
),
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
(),
showFolderTable
(
folderView
),
$
(
"
#fim_name
"
).
text
(
folderView
.
folder
.
folderName
),
$
(
"
#fim_creator
"
).
text
(
"
--
"
),
$
(
"
#fim_folderCreationDate
"
).
text
(
"
--
"
),
$
(
"
#fim_folderId
"
).
text
(
"
--
"
),
updateTheFolderInfo
())},
error
:
function
(){
endLoading
(),
doAlert
(),
$
(
"
#tb
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
),
$
(
"
#publishTime
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
),
$
(
"
#parentlistbox
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
)}}),
void
0
)}
function
goBackToTop
(){
$
(
"
html,body
"
).
animate
({
scrollTop
:
0
},
"
slow
"
)}
function
getDownloadURL
(){
$
.
ajax
({
url
:
"
externalLinksController/getDownloadKey.ajax
"
,
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
fId
:
getDownloadFileId
},
success
:
function
(
a
){
var
b
=
window
.
location
.
protocol
+
"
//
"
+
window
.
location
.
host
+
"
/externalLinksController/downloadFileByKey/
"
+
encodeURIComponent
(
getDownloadFileName
.
replace
(
/
\'
/g
,
""
).
replace
(
/
\r
/g
,
""
).
replace
(
/
\n
/g
,
""
))
+
"
?dkey=
"
+
a
;
$
(
"
#downloadHrefBox
"
).
html
(
"
<a href='
"
+
b
+
"
'>
"
+
b
+
"
</a>
"
)},
error
:
function
(){
$
(
"
#downloadHrefBox
"
).
html
(
"
<span class='text-muted'>获取失败,请检查网络状态或<a href='javascript:void(0);' onclick='getDownloadURL()'>点此</a>重新获取。</span>
"
)}})}
function
ping
(){
$
.
ajax
({
url
:
"
homeController/ping.ajax
"
,
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{},
success
:
function
(
a
){
"
pong
"
!=
a
&&
null
!=
pingInt
&&
(
window
.
clearInterval
(
pingInt
),
pingInt
=
null
)},
error
:
function
(){
null
!=
pingInt
&&
(
window
.
clearInterval
(
pingInt
),
pingInt
=
null
)}})}
function
isSupportWebkitdirectory
(){
var
a
=
document
.
createElement
(
"
input
"
);
return
"
webkitdirectory
"
in
a
&&!
/
(
iPhone|iPad|iPod|iOS
)
/i
.
test
(
navigator
.
userAgent
)?
!
0
:
!
1
}
function
showUploadFolderModel
(){
if
(
$
(
"
#importFolderAlert
"
).
hide
(),
$
(
"
#importFolderAlert
"
).
text
(
""
),
0
==
isImporting
)
if
(
$
(
"
#folderpath
"
).
val
(
""
),
$
(
"
#importfolder
"
).
val
(
""
),
$
(
"
#importpros
"
).
width
(
"
0%
"
),
$
(
"
#importpros
"
).
attr
(
"
aria-valuenow
"
,
"
0
"
),
$
(
"
#importstatus
"
).
html
(
""
),
$
(
"
#folderpath
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#importFolderLevelBtn
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#importcount
"
).
text
(
""
),
$
(
"
#importbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#importfoldertypelist
"
).
html
(
""
),
$
(
"
#selectFolderImportModelAlert
"
).
hide
(),
null
!=
account
){
$
(
"
#folderpath
"
).
attr
(
"
folderConstraintLevel
"
,
constraintLevel
+
""
),
$
(
"
#importfoldertype
"
).
text
(
folderTypes
[
constraintLevel
]);
for
(
var
a
=
constraintLevel
;
a
<
folderTypes
.
length
;
a
++
)
$
(
"
#importfoldertypelist
"
).
append
(
"
<li><a onclick='changeImportFolderType(
"
+
a
+
"
)'>
"
+
folderTypes
[
a
]
+
"
</a></li>
"
)}
else
$
(
"
#importfoldertypelist
"
).
append
(
"
<li><a onclick='changeImportFolderType(0)'>
"
+
folderTypes
[
0
]
+
"
</a></li>
"
);
$
(
"
#importFolderModal
"
).
modal
(
"
show
"
)}
function
checkimportpath
(){
$
(
"
#importfolder
"
).
click
()}
function
getInputImport
(){
ifs
=
$
(
"
#importfolder
"
)[
0
].
files
,
ifs
.
length
>
0
&&
(
importFolderName
=
ifs
[
0
].
webkitRelativePath
.
substring
(
0
,
ifs
[
0
].
webkitRelativePath
.
indexOf
(
"
/
"
)),
$
(
"
#folderpath
"
).
val
(
importFolderName
))}
function
checkImportFolder
(){
var
maxSize
,
maxFileIndex
,
i
;
if
(
0
==
isUpLoading
&&
0
==
isImporting
)
if
(
null
!=
ifs
&&
ifs
.
length
>
0
){
for
(
$
(
"
#folderpath
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#importFolderLevelBtn
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#importbutton
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#importFolderAlert
"
).
hide
(),
$
(
"
#importFolderAlert
"
).
text
(
""
),
isImporting
=!
0
,
maxSize
=
0
,
maxFileIndex
=
0
,
i
=
0
;
i
<
ifs
.
length
;
i
++
)
ifs
[
i
].
size
>
maxSize
&&
(
maxSize
=
ifs
[
i
].
size
,
maxFileIndex
=
i
);
$
.
ajax
({
url
:
"
homeController/checkImportFolder.ajax
"
,
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
folderName
:
importFolderName
,
maxSize
:
maxSize
,
folderId
:
locationpath
},
success
:
function
(
result
){
var
resJson
=
eval
(
"
(
"
+
result
+
"
)
"
);
switch
(
resJson
.
result
){
case
"
noAuthorized
"
:
showImportFolderAlert
(
"
提示:您的操作未被授权,无法开始上传
"
);
break
;
case
"
errorParameter
"
:
showImportFolderAlert
(
"
提示:参数不正确,无法开始上传。必须选择一个文件夹
"
);
break
;
case
"
mustLogin
"
:
window
.
location
.
href
=
"
prv/login.html
"
;
break
;
case
"
fileOverSize
"
:
showImportFolderAlert
(
"
提示:文件[
"
+
ifs
[
maxFileIndex
].
webkitRelativePath
+
"
]的体积超过最大限制(
"
+
resJson
.
maxSize
+
"
),无法开始上传
"
);
break
;
case
"
foldersTotalOutOfLimit
"
:
showImportFolderAlert
(
"
提示:该文件夹内存储的文件夹数量已达上限,无法在其中上传更多文件夹。您可以尝试将其上传至其他文件夹内。
"
);
break
;
case
"
repeatFolder_Both
"
:
$
(
"
#repeFolderName
"
).
text
(
importFolderName
),
$
(
"
#importcoverbtn
"
).
hide
(),
$
(
"
#selectFolderImportModelAlert
"
).
show
();
break
;
case
"
repeatFolder_coverOrBoth
"
:
$
(
"
#repeFolderName
"
).
text
(
importFolderName
),
$
(
"
#importcoverbtn
"
).
show
(),
$
(
"
#selectFolderImportModelAlert
"
).
show
();
break
;
case
"
permitUpload
"
:
iteratorImport
(
0
);
break
;
default
:
showImportFolderAlert
(
"
提示:出现意外错误,无法开始上传
"
)}},
error
:
function
(){
showImportFolderAlert
(
"
提示:出现意外错误,无法开始上传
"
)}})}
else
showImportFolderAlert
(
"
提示:您未选择任何文件夹,无法开始上传
"
);
else
showImportFolderAlert
(
"
提示:另一项上传文件或文件夹的任务尚未完成,无法开始上传
"
)}
function
showImportFolderAlert
(
a
){
isImporting
=!
1
,
$
(
"
#folderpath
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#importFolderLevelBtn
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#importFolderAlert
"
).
show
(),
$
(
"
#importFolderAlert
"
).
text
(
a
),
$
(
"
#importbutton
"
).
attr
(
"
disabled
"
,
!
1
)}
function
importProgress
(
a
){
if
(
a
.
lengthComputable
){
var
b
=
Math
.
round
(
100
*
a
.
loaded
/
a
.
total
);
$
(
"
#importpros
"
).
width
(
b
+
"
%
"
),
$
(
"
#importpros
"
).
attr
(
"
aria-valuenow
"
,
""
+
b
)}}
function
importAndCover
(){
$
(
"
#selectFolderImportModelAlert
"
).
hide
(),
$
.
ajax
({
url
:
"
homeController/deleteFolderByName.ajax
"
,
type
:
"
POST
"
,
data
:{
parentId
:
locationpath
,
folderName
:
importFolderName
},
dataType
:
"
text
"
,
success
:
function
(
a
){
"
deleteSuccess
"
==
a
?
iteratorImport
(
0
):
showImportFolderAlert
(
"
提示:无法覆盖原文件夹,上传失败
"
)},
error
:
function
(){
showImportFolderAlert
(
"
提示:无法覆盖原文件夹,上传失败
"
)}})}
function
importAndBoth
(){
$
(
"
#selectFolderImportModelAlert
"
).
hide
();
var
fc
=
$
(
"
#folderpath
"
).
attr
(
"
folderConstraintLevel
"
);
$
.
ajax
({
url
:
"
homeController/createNewFolderByName.ajax
"
,
type
:
"
POST
"
,
data
:{
parentId
:
locationpath
,
folderName
:
importFolderName
,
folderConstraint
:
fc
},
dataType
:
"
text
"
,
success
:
function
(
result
){
var
resJson
=
eval
(
"
(
"
+
result
+
"
)
"
);
"
success
"
==
resJson
.
result
?
iteratorImport
(
0
,
resJson
.
newName
):
"
foldersTotalOutOfLimit
"
==
resJson
.
result
?
showImportFolderAlert
(
"
提示:该文件夹内存储的文件夹数量已达上限,无法上传同名文件夹并保留两者。您可以尝试将其上传至其他文件夹内。
"
):
showImportFolderAlert
(
"
提示:生成新文件夹名称失败,无法开始上传
"
)},
error
:
function
(){
showImportFolderAlert
(
"
提示:生成新文件夹名称失败,无法开始上传
"
)}})}
function
iteratorImport
(
a
,
b
){
var
c
,
d
,
e
,
f
,
g
;
$
(
"
#importpros
"
).
width
(
"
0%
"
),
$
(
"
#importpros
"
).
attr
(
"
aria-valuenow
"
,
"
0
"
),
c
=
ifs
[
a
],
d
=
ifs
.
length
,
e
=
$
(
"
#folderpath
"
).
attr
(
"
folderConstraintLevel
"
),
null
!=
c
?(
f
=
c
.
webkitRelativePath
,
d
>
1
&&
$
(
"
#importcount
"
).
text
(
"
(
"
+
(
a
+
1
)
+
"
/
"
+
d
+
"
)
"
),
$
(
"
#importstatus
"
).
prepend
(
"
<p>
"
+
html2Escape
(
f
)
+
"
<span id='ils_
"
+
a
+
"
'>[正在上传...]</span></p>
"
),
xhr
=
new
XMLHttpRequest
,
g
=
new
FormData
,
g
.
append
(
"
file
"
,
c
),
g
.
append
(
"
folderId
"
,
locationpath
),
g
.
append
(
"
folderConstraint
"
,
e
),
g
.
append
(
"
originalFileName
"
,
f
),
b
&&
g
.
append
(
"
newFolderName
"
,
b
),
xhr
.
open
(
"
POST
"
,
"
homeController/doImportFolder.ajax
"
,
!
0
),
xhr
.
upload
.
addEventListener
(
"
progress
"
,
importProgress
,
!
1
),
xhr
.
send
(
g
),
null
==
pingInt
&&
(
pingInt
=
setInterval
(
"
ping()
"
,
6
e4
)),
xhr
.
onloadend
=
function
(){
var
c
,
e
;
null
!=
pingInt
&&
(
window
.
clearInterval
(
pingInt
),
pingInt
=
null
),
200
===
xhr
.
status
?(
c
=
xhr
.
responseText
,
"
uploadsuccess
"
==
c
?(
$
(
"
#ils_
"
+
a
).
text
(
"
[已完成]
"
),
e
=
a
+
1
,
d
>
e
?
iteratorImport
(
e
,
b
):(
isImporting
=!
1
,
$
(
"
#folderpath
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#importFolderLevelBtn
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#importfolder
"
).
val
(
""
),
$
(
"
#folderpath
"
).
val
(
""
),
$
(
"
#importpros
"
).
width
(
"
0%
"
),
$
(
"
#importpros
"
).
attr
(
"
aria-valuenow
"
,
"
0
"
),
$
(
"
#importbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#importcount
"
).
text
(
""
),
$
(
"
#importstatus
"
).
text
(
""
),
$
(
"
#importFolderModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
))):
"
uploaderror
"
==
c
?(
showImportFolderAlert
(
"
提示:出现意外错误,文件:[
"
+
f
+
"
]上传失败,上传被中断。
"
),
$
(
"
#ils_
"
+
a
).
text
(
"
[失败]
"
)):
"
foldersTotalOutOfLimit
"
==
c
?(
showImportFolderAlert
(
"
提示:该文件夹内存储的文件夹数量已达上限,文件:[
"
+
f
+
"
]上传失败,上传被中断。
"
),
$
(
"
#ils_
"
+
a
).
text
(
"
[失败]
"
)):
"
filesTotalOutOfLimit
"
==
c
?(
showImportFolderAlert
(
"
提示:该文件夹内存储的文件数量已达上限,文件:[
"
+
f
+
"
]上传失败,上传被中断。
"
),
$
(
"
#ils_
"
+
a
).
text
(
"
[失败]
"
)):(
showImportFolderAlert
(
"
提示:出现意外错误,文件:[
"
+
f
+
"
]上传失败,上传被中断。
"
),
$
(
"
#ils_
"
+
a
).
text
(
"
[失败]
"
))):(
showImportFolderAlert
(
"
提示:出现意外错误,文件:[
"
+
f
+
"
]上传失败,上传被中断。
"
),
$
(
"
#ils_
"
+
a
).
text
(
"
[失败]
"
))}):(
showImportFolderAlert
(
"
提示:要上传的文件不存在。
"
),
$
(
"
#importstatus
"
).
prepend
(
"
<p>未找到要上传的文件<span id='ils_
"
+
a
+
"
'>[失败]</span></p>
"
))}
function
abortImport
(){
isImporting
&&
(
isImporting
=!
1
,
null
!=
xhr
&&
xhr
.
abort
()),
$
(
"
#importFolderModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
)}
function
changeImportFolderType
(
a
){
$
(
"
#importfoldertype
"
).
text
(
folderTypes
[
a
]),
$
(
"
#folderpath
"
).
attr
(
"
folderConstraintLevel
"
,
a
+
""
)}
function
doChangePassword
(){
var
change_oldPassword
,
change_newPassword
,
change_reqNewPassword
;
return
$
(
"
#changepassword_oldepwdbox,#changepassword_newpwdbox,#changepassword_reqnewpwdbox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#changepasswordalertbox
"
).
hide
(),
change_oldPassword
=
$
(
"
#changepassword_oldpwd
"
).
val
(),
change_newPassword
=
$
(
"
#changepassword_newpwd
"
).
val
(),
change_reqNewPassword
=
$
(
"
#changepassword_reqnewpwd
"
).
val
(),
0
==
change_oldPassword
.
length
?(
$
(
"
#changepassword_oldepwdbox
"
).
addClass
(
"
has-error
"
),
$
(
"
#changepassword_oldpwd
"
).
focus
(),
void
0
):
0
==
change_newPassword
.
length
?(
$
(
"
#changepassword_newpwdbox
"
).
addClass
(
"
has-error
"
),
$
(
"
#changepassword_newpwd
"
).
focus
(),
void
0
):
0
==
change_reqNewPassword
.
length
?(
$
(
"
#changepassword_reqnewpwdbox
"
).
addClass
(
"
has-error
"
),
$
(
"
#changepassword_reqnewpwd
"
).
focus
(),
void
0
):(
isChangingPassword
=!
0
,
$
(
"
#changepassword_oldpwd,#changepassword_newpwd,#changepassword_reqnewpwd,#changePasswordButton,#changepassword_vercode
"
).
attr
(
"
disabled
"
,
!
0
),
change_newPassword
+
""
!=
change_reqNewPassword
+
""
?(
showChangePasswordAlert
(
"
提示:两次输入的新密码不一致,请检查确认
"
),
$
(
"
#changepassword_newpwdbox
"
).
addClass
(
"
has-error
"
),
$
(
"
#changepassword_reqnewpwdbox
"
).
addClass
(
"
has-error
"
),
void
0
):(
$
.
ajax
({
url
:
"
homeController/getPublicKey.ajax
"
,
type
:
"
POST
"
,
data
:{},
dataType
:
"
text
"
,
success
:
function
(
result
){
var
encrypted
,
changepwd_publicKeyInfo
=
eval
(
"
(
"
+
result
+
"
)
"
),
changePasswordInfo
=
'
{oldPwd:"
'
+
change_oldPassword
+
'
",newPwd:"
'
+
change_newPassword
+
'
",time:"
'
+
changepwd_publicKeyInfo
.
time
+
'
"}
'
,
encrypt
=
new
JSEncrypt
;
encrypt
.
setPublicKey
(
changepwd_publicKeyInfo
.
publicKey
),
encrypted
=
encrypt
.
encrypt
(
changePasswordInfo
),
sendChangePasswordInfo
(
encrypted
)},
error
:
function
(){
showChangePasswordAlert
(
"
提示:密码修改失败,请检查网络链接或服务器运行状态
"
)}}),
void
0
))}
function
sendChangePasswordInfo
(
a
){
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
url
:
"
homeController/doChangePassword.ajax
"
,
data
:{
encrypted
:
a
,
vercode
:
$
(
"
#changepassword_vercode
"
).
val
()},
success
:
function
(
a
){
switch
(
$
(
"
#changepassword_vccodebox
"
).
hide
(),
isChangingPassword
=!
1
,
a
){
case
"
success
"
:
$
(
"
#changePasswordModal
"
).
modal
(
"
hide
"
);
break
;
case
"
mustlogin
"
:
showChangePasswordAlert
(
"
提示:登录已失效或尚未登录账户,请刷新并登陆账户
"
);
break
;
case
"
illegal
"
:
showChangePasswordAlert
(
"
提示:用户修改密码功能已被禁用,请求被拒绝
"
);
break
;
case
"
oldpwderror
"
:
showChangePasswordAlert
(
"
提示:旧密码输入错误,请求被拒绝
"
),
$
(
"
#changepassword_oldepwdbox
"
).
addClass
(
"
has-error
"
);
break
;
case
"
needsubmitvercode
"
:
$
(
"
#changepassword_oldpwd,#changepassword_newpwd,#changepassword_reqnewpwd,#changePasswordButton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#changepassword_vccodebox
"
).
html
(
"
<label id='changepassword_vercodetitle' class='col-sm-5'><img id='changepassword_showvercode' class='vercodeimg' alt='点击获取验证码' src='homeController/getNewVerCode.do?s=
"
+
(
new
Date
).
getTime
()
+
"
' onclick='changePasswordGetNewVerCode()'></label><div class='col-sm-7'><input type='text' class='form-control' id='changepassword_vercode' placeholder='验证码……'></div>
"
),
$
(
"
#changepassword_vccodebox
"
).
show
(),
isChangingPassword
=!
1
;
break
;
case
"
invalidnewpwd
"
:
showChangePasswordAlert
(
"
提示:密码修改失败,新密码不合法。新密码的长度需为3-32个字符,且仅支持ISO-8859-1中的字符(推荐使用英文字母、英文符号及阿拉伯数字)。
"
);
break
;
case
"
error
"
:
showChangePasswordAlert
(
"
提示:密码修改失败,修改请求无法通过加密效验(可能是请求耗时过长导致的)
"
);
break
;
case
"
cannotchangepwd
"
:
showChangePasswordAlert
(
"
提示:密码修改失败,发生意外错误,请稍后重试或联系管理员
"
);
break
;
default
:
showChangePasswordAlert
(
"
提示:密码修改失败,发生未知错误
"
)}},
error
:
function
(){
showChangePasswordAlert
(
"
提示:密码修改失败,请检查网络链接或服务器运行状态
"
)}})}
function
showChangePasswordAlert
(
a
){
isChangingPassword
=!
1
,
$
(
"
#changepassword_oldpwd,#changepassword_newpwd,#changepassword_reqnewpwd,#changePasswordButton,#changepassword_vercode
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#changepasswordalertbox
"
).
show
(),
$
(
"
#changepasswordalertbox
"
).
text
(
a
)}
function
changePasswordGetNewVerCode
(){
$
(
"
#changepassword_showvercode
"
).
attr
(
"
src
"
,
"
homeController/getNewVerCode.do?s=
"
+
(
new
Date
).
getTime
())}
function
getFileChain
(
a
,
b
){
$
(
"
#fileChainTextarea
"
).
text
(
"
正在获取……
"
),
$
(
"
#copyChainBtn
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#fileChainModal
"
).
modal
(
"
show
"
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
url
:
"
homeController/getFileChainKey.ajax
"
,
data
:{
fid
:
a
},
success
:
function
(
a
){
switch
(
a
){
case
"
ERROR
"
:
$
(
"
#fileChainTextarea
"
).
text
(
"
提示:获取失败,请刷新页面或稍后再试。
"
);
break
;
case
"
mustlogin
"
:
window
.
location
.
href
=
"
prv/login.html
"
;
break
;
default
:
$
(
"
#fileChainTextarea
"
).
text
(
window
.
location
.
protocol
+
"
//
"
+
window
.
location
.
host
+
"
/externalLinksController/chain/
"
+
encodeURIComponent
(
b
.
replace
(
/
\'
/g
,
""
).
replace
(
/
\r
/g
,
""
).
replace
(
/
\n
/g
,
""
))
+
"
?ckey=
"
+
encodeURIComponent
(
a
)),
$
(
"
#copyChainBtn
"
).
attr
(
"
disabled
"
,
!
1
)}},
error
:
function
(){
$
(
"
#fileChainTextarea
"
).
text
(
"
提示:获取失败,无法连接服务器。
"
)}})}
function
copyFileChain
(){
node
=
document
.
getElementById
(
"
fileChainTextarea
"
),
node
.
select
(),
document
.
execCommand
(
"
copy
"
)}
function
showNoticeModal
(){
$
(
"
#noticeModal
"
).
modal
(
"
show
"
)}
function
initNoticeModal
(){
$
(
"
#noticeModalBody
"
).
load
(
"
resourceController/getNoticeContext.do
"
,
function
(){
$
(
"
#noticeModalBody img
"
).
css
(
"
max-width
"
,
"
100%
"
),
winHeight
>=
300
?
$
(
"
#noticeModalBody
"
).
css
(
"
max-height
"
,
winHeight
-
180
+
"
px
"
):
$
(
"
#noticeModalBody
"
).
css
(
"
max-height
"
,
"
300px
"
),
noticeInited
=!
0
,
showNoticeModal
(),
showNoticeBtn
()})}
function
subscribeNotice
(){
$
.
ajax
({
url
:
"
resourceController/getNoticeMD5.ajax
"
,
data
:{},
type
:
"
POST
"
,
dataType
:
"
text
"
,
success
:
function
(
a
){
if
(
""
!=
a
){
var
b
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )notice_md5=([^;]*)(;|$)
"
));
if
(
b
){
if
(
a
==
unescape
(
b
[
2
]))
return
showNoticeBtn
(),
void
0
}
else
if
(
b
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )notice_md5_30=([^;]*)(;|$)
"
)),
b
&&
a
==
unescape
(
b
[
2
]))
return
showNoticeBtn
(),
void
0
;
initNoticeModal
(),
document
.
cookie
=
"
notice_md5=
"
+
escape
(
a
)}},
error
:
function
(){
alert
(
"
错误:无法从服务器获取公告信息,请尝试刷新页面。
"
)}})}
function
showNoticeBtn
(){
$
(
"
#shownoticebox
"
).
removeClass
(
"
hidden
"
),
$
(
"
#shownoticebox
"
).
addClass
(
"
show
"
)}
function
showNotice
(){
noticeInited
?
showNoticeModal
():
initNoticeModal
()}
function
loadingRemainingFolderView
(
targetId
){
var
newfoldersOffset
,
newfilesOffset
,
loadingRemainingRate_folders
,
loadingRemainingRate_files
,
loadingRemainingRate
;
if
(
!
remainingLoadingRequest
){
if
(
newfoldersOffset
=
0
,
newfilesOffset
=
0
,
folderView
.
foldersOffset
-
folderView
.
selectStep
>
0
&&
(
newfoldersOffset
=
folderView
.
foldersOffset
-
folderView
.
selectStep
),
folderView
.
filesOffset
-
folderView
.
selectStep
>
0
&&
(
newfilesOffset
=
folderView
.
filesOffset
-
folderView
.
selectStep
),
0
>=
newfoldersOffset
&&
0
>=
newfilesOffset
)
return
originFolderView
=
$
.
extend
(
!
0
,{},
folderView
),
hiddenLoadingRemaininngBox
(),
doFixedRow
(
targetId
),
void
0
;
loadingRemainingRate_folders
=
1
,
loadingRemainingRate_files
=
1
,
totalFoldersOffset
>
0
&&
(
loadingRemainingRate_folders
=
(
totalFoldersOffset
-
newfoldersOffset
)
/
totalFoldersOffset
),
totalFilesOffset
>
0
&&
(
loadingRemainingRate_files
=
(
totalFilesOffset
-
newfilesOffset
)
/
totalFilesOffset
),
loadingRemainingRate
=
(
loadingRemainingRate_folders
+
loadingRemainingRate_files
)
/
2
,
$
(
"
#loadingrate
"
).
text
(
parseInt
(
100
*
loadingRemainingRate
)
+
"
%
"
),
remainingLoadingRequest
=
$
.
ajax
({
url
:
"
homeController/getRemainingFolderView.ajax
"
,
data
:{
fid
:
locationpath
,
foldersOffset
:
newfoldersOffset
,
filesOffset
:
newfilesOffset
},
type
:
"
POST
"
,
dataType
:
"
text
"
,
success
:
function
(
result
){
switch
(
remainingLoadingRequest
=
null
,
result
){
case
"
ERROR
"
:
alert
(
"
错误:无法加载剩余文件列表,文件数据可能未显示完全,请刷新重试!
"
),
hiddenLoadingRemaininngBox
(),
doFixedRow
();
break
;
case
"
NOT_FOUND
"
:
case
"
notAccess
"
:
document
.
cookie
=
"
folder_id=
"
+
escape
(
"
root
"
);
case
"
mustLogin
"
:
window
.
location
.
href
=
"
/
"
;
break
;
default
:
folderView
.
foldersOffset
=
newfoldersOffset
,
folderView
.
filesOffset
=
newfilesOffset
;
var
remainingFV
=
eval
(
"
(
"
+
result
+
"
)
"
);
updateFolderTable
(
remainingFV
),
updateTheFolderInfo
(),
folderView
.
foldersOffset
>
0
||
folderView
.
filesOffset
>
0
?
loadingRemainingFolderView
(
targetId
):(
originFolderView
=
$
.
extend
(
!
0
,{},
folderView
),
hiddenLoadingRemaininngBox
(),
doFixedRow
(
targetId
))}},
error
:
function
(
a
,
b
){
remainingLoadingRequest
=
null
,
hiddenLoadingRemaininngBox
(),
"
abort
"
!=
b
&&
alert
(
"
错误:无法连接服务器,文件列表加载被中断。请刷新重试!
"
)}})}}
function
doFixedRow
(
a
){
a
&&
a
.
length
>
0
&&
(
$
(
"
#
"
+
a
).
addClass
(
"
info
"
),
$
(
"
html,body
"
).
animate
({
scrollTop
:
$
(
"
#
"
+
a
).
offset
().
top
-
$
(
window
).
height
()
/
2
},
"
slow
"
))}
function
showLoadingRemaininngBox
(){
loadingComplete
=!
1
,
$
(
"
#loadingremaininngbox
"
).
addClass
(
"
show
"
),
$
(
"
#loadingremaininngbox
"
).
removeClass
(
"
hidden
"
),
$
(
"
#searchbtn
"
).
attr
(
"
disabled
"
,
"
disabled
"
)}
function
hiddenLoadingRemaininngBox
(){
loadingComplete
=!
0
,
$
(
"
#loadingremaininngbox
"
).
removeClass
(
"
show
"
),
$
(
"
#loadingremaininngbox
"
).
addClass
(
"
hidden
"
),
$
(
"
#searchbtn
"
).
removeAttr
(
"
disabled
"
)}
function
updateFolderTable
(
a
){
var
g
,
h
,
i
,
j
,
b
=
folderView
.
authList
,
c
=!
1
,
d
=!
1
,
e
=!
1
,
f
=!
1
;
if
(
checkAuth
(
b
,
"
D
"
)
&&
(
c
=!
0
),
checkAuth
(
b
,
"
R
"
)
&&
(
d
=!
0
),
checkAuth
(
b
,
"
L
"
)
&&
(
e
=!
0
),
checkAuth
(
b
,
"
O
"
)
&&
(
f
=!
0
),
a
.
folderList
&&
a
.
folderList
.
length
>
0
)
for
(
g
=
a
.
folderList
.
length
;
g
>
0
;
g
--
)
h
=
a
.
folderList
[
g
-
1
],
folderContains
(
folderView
.
folderList
,
h
.
folderId
)
||
(
folderView
.
folderList
.
unshift
(
h
),
$
(
"
[iskfolder=true]:last
"
).
after
(
createNewFolderRow
(
h
,
c
,
d
,
f
)));
if
(
a
.
fileList
&&
a
.
fileList
.
length
>
0
)
for
(
i
=
a
.
fileList
.
length
;
i
>
0
;
i
--
)
j
=
a
.
fileList
[
i
-
1
],
fileContains
(
folderView
.
fileList
,
j
.
fileId
)
||
(
folderView
.
fileList
.
unshift
(
j
),
$
(
"
#foldertable
"
).
append
(
createFileRow
(
j
,
e
,
c
,
d
,
f
)))}
function
folderContains
(
a
,
b
){
for
(
var
c
=
a
.
length
;
c
>
0
;
c
--
)
if
(
a
[
c
-
1
].
folderId
==
b
)
return
!
0
;
return
!
1
}
function
fileContains
(
a
,
b
){
for
(
var
c
=
a
.
length
;
c
>
0
;
c
--
)
if
(
a
[
c
-
1
].
fileId
==
b
)
return
!
0
;
return
!
1
}
function
updateTheFolderInfo
(){
$
(
"
#fim_statistics
"
).
text
(
"
共包含
"
+
folderView
.
folderList
.
length
+
"
个文件夹,
"
+
folderView
.
fileList
.
length
+
"
个文件。
"
)}
function
replaceAllQuotationMarks
(
a
){
return
a
.
replace
(
/
\"
/g
,
'
\\
"
'
)}
function
html2Escape
(
a
){
return
a
.
replace
(
/
[
<>&
\']
/g
,
function
(
a
){
return
{
"
<
"
:
"
<
"
,
"
>
"
:
"
>
"
,
"
&
"
:
"
&
"
,
"
'
"
:
"
'
"
}[
a
]})}
var
ap
,
zipTimer
,
folderView
,
originFolderView
,
fs
,
ifs
,
checkedMovefiles
,
isCopy
,
repeMap
,
strMoveOptMap
,
mRepeSize
,
constraintLevel
,
account
,
importFolderName
,
xhr
,
viewer
,
viewerPageIndex
,
viewerTotal
,
pvl
,
winHeight
,
pingInt
,
loadingComplete
,
totalFoldersOffset
,
totalFilesOffset
,
remainingLoadingRequest
,
loadingFolderView
,
folderTypes
,
repeList
,
repeIndex
,
repeModelList
,
screenedFoldrView
,
getDownloadFileId
,
getDownloadFileName
,
locationpath
=
"
root
"
,
parentpath
=
"
null
"
,
isUpLoading
=!
1
,
isImporting
=!
1
,
isChangingPassword
=!
1
,
viewerPageSize
=
15
,
checkFilesTip
=
"
提示:您还未选择任何文件,请先选中一些文件后再执行本操作:<br /><br /><kbd>单击</kbd>:选中某一文件<br /><br /><kbd><kbd>Shift</kbd>+<kbd>单击</kbd></kbd>:选中多个文件<br /><br /><kbd><kbd>Shift</kbd>+<kbd>双击</kbd></kbd>:选中连续的文件<br /><br /><kbd><kbd>Shitf</kbd>+<kbd>A</kbd></kbd>:选中/取消选中所有文件
"
,
noticeInited
=!
1
;
$
(
function
(){
window
.
onresize
=
function
(){
changeFilesTableStyle
(),
updateWinHeight
()},
changeFilesTableStyle
(),
getServerOS
(),
subscribeNotice
();
var
a
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )folder_id=([^;]*)(;|$)
"
));
null
!=
a
?
showFolderView
(
unescape
(
a
[
2
])):
showFolderView
(
"
root
"
),
$
(
document
).
click
(
function
(
a
){
var
b
=
$
(
"
#filetable
"
)[
0
],
c
=
a
.
srcElement
;
c
||
(
c
=
a
.
target
),
c
===
b
||
$
.
contains
(
b
,
a
.
target
)
||
$
(
"
.filerow
"
).
removeClass
(
"
info
"
)}),
$
(
"
#audioPlayerModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
null
!=
ap
&&
(
ap
.
seek
(
0
),
ap
.
pause
()),
null
!=
pingInt
&&
(
window
.
clearInterval
(
pingInt
),
pingInt
=
null
)}),
$
(
"
#downloadAllCheckedModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
null
!=
zipTimer
&&
window
.
clearInterval
(
zipTimer
)}),
$
(
"
#loginModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
"
disabled
"
!==
$
(
"
#dologinButton
"
).
attr
(
"
disabled
"
)
&&
(
$
(
"
#accountid
"
).
val
(
""
),
$
(
"
#accountpwd
"
).
val
(
""
)),
$
(
"
#accountidbox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#accountpwdbox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#alertbox
"
).
removeClass
(
"
alert
"
),
$
(
"
#alertbox
"
).
removeClass
(
"
alert-danger
"
),
$
(
"
#alertbox
"
).
text
(
""
),
$
(
"
#vercodebox
"
).
html
(
""
),
$
(
"
#vercodebox
"
).
removeClass
(
"
show
"
),
$
(
"
#vercodebox
"
).
addClass
(
"
hidden
"
)}),
$
(
"
.modal
"
).
on
(
"
shown.bs.modal
"
,
function
(){
$
(
this
).
addClass
(
"
shown
"
)}),
$
(
"
.modal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
$
(
this
).
removeClass
(
"
shown
"
)}),
$
(
"
body
"
).
keypress
(
function
(
a
){
var
c
,
b
=
a
.
keyCode
?
a
.
keyCode
:
a
.
which
?
a
.
which
:
a
.
charCode
;
return
13
==
b
?(
"
sreachKeyWordIn
"
===
document
.
activeElement
.
id
?
doSearchFile
():(
c
=
$
(
"
.shown .btn-primary
"
),
null
!=
c
.
get
(
0
)
&&
0
==
c
.
prop
(
"
disabled
"
)
&&
c
.
click
()),
!
1
):
void
0
}),
$
(
"
#loginModal
"
).
on
(
"
shown.bs.modal
"
,
function
(){
$
(
"
#accountid
"
).
focus
()}),
$
(
"
#newFolderModal
"
).
on
(
"
show.bs.modal
"
,
function
(){
if
(
$
(
"
#folderalert
"
).
removeClass
(
"
alert
"
),
$
(
"
#folderalert
"
).
removeClass
(
"
alert-danger
"
),
$
(
"
#foldernamebox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#folderalert
"
).
text
(
""
),
$
(
"
#foldername
"
).
val
(
""
),
$
(
"
#foldertypelist
"
).
html
(
""
),
null
!=
account
){
$
(
"
#foldername
"
).
attr
(
"
folderConstraintLevel
"
,
constraintLevel
+
""
),
$
(
"
#newfoldertype
"
).
text
(
folderTypes
[
constraintLevel
]);
for
(
var
b
=
constraintLevel
;
b
<
folderTypes
.
length
;
b
++
)
$
(
"
#foldertypelist
"
).
append
(
"
<li><a onclick='changeNewFolderType(
"
+
b
+
"
)'>
"
+
folderTypes
[
b
]
+
"
</a></li>
"
)}
else
$
(
"
#foldertypelist
"
).
append
(
"
<li><a onclick='changeNewFolderType(0)'>
"
+
folderTypes
[
0
]
+
"
</a></li>
"
)}),
$
(
"
#newFolderModal
"
).
on
(
"
shown.bs.modal
"
,
function
(){
$
(
"
#foldername
"
).
focus
()}),
$
(
"
#uploadFileModal,#importFolderModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){(
isUpLoading
||
isImporting
)
&&
(
$
(
"
#operationMenuBox
"
).
attr
(
"
data-placement
"
,
"
top
"
),
$
(
"
#operationMenuBox
"
).
attr
(
"
data-trigger
"
,
"
focus
"
),
$
(
"
#operationMenuBox
"
).
attr
(
"
data-title
"
,
"
上传中
"
),
$
(
"
#operationMenuBox
"
).
attr
(
"
data-content
"
,
"
您可以重新打开上传窗口查看上传进度。
"
),
$
(
"
#operationMenuBox
"
).
popover
(),
$
(
"
#operationMenuBox
"
).
popover
(
"
show
"
),
setTimeout
(
function
(){
$
(
"
#operationMenuBox
"
).
attr
(
"
data-title
"
,
""
),
$
(
"
#operationMenuBox
"
).
attr
(
"
data-content
"
,
""
),
$
(
"
#operationMenuBox
"
).
popover
(
"
destroy
"
)},
2
e3
))}),
$
(
"
#renameFolderModal
"
).
on
(
"
show.bs.modal
"
,
function
(){
if
(
$
(
"
#editfolderalert
"
).
removeClass
(
"
alert
"
),
$
(
"
#editfolderalert
"
).
removeClass
(
"
alert-danger
"
),
$
(
"
#folderrenamebox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#editfolderalert
"
).
text
(
""
),
$
(
"
#editfoldertypelist
"
).
html
(
""
),
null
!=
account
)
for
(
var
b
=
constraintLevel
;
b
<
folderTypes
.
length
;
b
++
)
$
(
"
#editfoldertypelist
"
).
append
(
"
<li><a onclick='changeEditFolderType(
"
+
b
+
"
)'>
"
+
folderTypes
[
b
]
+
"
</a></li>
"
);
else
$
(
"
#editfoldertypelist
"
).
append
(
"
<li><a onclick='changeEditFolderType(0)'>
"
+
folderTypes
[
0
]
+
"
</a></li>
"
)}),
document
.
ondragover
=
function
(
a
){
a
.
preventDefault
?(
a
.
preventDefault
(),
a
.
stopPropagation
()):(
window
.
event
.
cancelBubble
=!
0
,
window
.
event
.
returnValue
=!
1
)},
document
.
ondrop
=
function
(
a
){
var
b
,
c
,
d
,
e
,
f
,
g
;
if
(
a
.
preventDefault
?(
a
.
preventDefault
(),
a
.
stopPropagation
()):(
window
.
event
.
cancelBubble
=!
0
,
window
.
event
.
returnValue
=!
1
),
null
!=
folderView
.
authList
)
if
(
checkAuth
(
folderView
.
authList
,
"
U
"
))
if
(
isUpLoading
||
isImporting
)
alert
(
"
提示:您正在执行另一项上传任务,请在上传完成后再试。
"
);
else
if
(
window
.
ActiveXObject
||
"
ActiveXObject
"
in
window
)
alert
(
"
提示:IE浏览器不支持拖拽上传。您可以使用现代浏览器或将浏览模式切换为“极速模式”来体验该功能。
"
);
else
{
if
(
b
=
null
!=
a
.
dataTransfer
?
a
.
dataTransfer
:
window
.
event
.
dataTransfer
,
c
=!
0
,
void
0
!==
b
.
items
)
for
(
d
=
0
;
d
<
b
.
items
.
length
;
d
++
)
e
=
b
.
items
[
d
],
"
file
"
===
e
.
kind
&&
e
.
webkitGetAsEntry
().
isFile
||
(
c
=!
1
);
else
for
(
d
=
0
;
d
<
b
.
files
.
length
;
d
++
)
if
(
f
=
df
.
files
[
d
],
f
.
type
);
else
try
{
g
=
new
FileReader
,
g
.
readAsDataURL
(
f
.
slice
(
0
,
10
)),
g
.
addEventListener
(
"
load
"
,
function
(){},
!
1
),
g
.
addEventListener
(
"
error
"
,
function
(){
c
=!
1
},
!
1
)}
catch
(
a
){
c
=!
1
}
c
?(
fs
=
a
.
dataTransfer
.
files
,
showUploadFileModel
(),
showfilepath
(),
checkUploadFile
()):
alert
(
"
提示:您拖入的文件中包含了一个或多个文件夹,无法进行上传。
"
)}
else
alert
(
"
提示:您不具备上传权限,无法上传文件。
"
);
else
alert
(
"
提示:您不具备上传权限,无法上传文件。
"
)},
$
(
document
).
keypress
(
function
(
a
){
if
(
0
==
$
(
"
.modal.shown
"
).
length
||
1
==
$
(
"
.modal.shown
"
).
length
&&
"
loadingModal
"
==
$
(
"
.modal.shown
"
).
attr
(
"
id
"
)){
var
b
=
a
.
keyCode
?
a
.
keyCode
:
a
.
which
?
a
.
which
:
a
.
charCode
;
if
(
isShift
(
a
)
&&
"
sreachKeyWordIn
"
!=
document
.
activeElement
.
id
){
switch
(
b
){
case
65
:
checkallfile
();
break
;
case
78
:
$
(
"
#createFolderButtonLi a
"
).
click
();
break
;
case
85
:
$
(
"
#uploadFileButtonLi a
"
).
click
();
break
;
case
68
:
$
(
"
#deleteSeelectFileButtonLi a
"
).
click
();
break
;
case
70
:
$
(
"
#uploadFolderButtonLi a
"
).
click
();
break
;
case
67
:(
void
0
==
checkedMovefiles
||
0
==
checkedMovefiles
.
size
)
&&
$
(
"
#copyFileButtonLi a
"
).
click
();
break
;
case
88
:(
void
0
==
checkedMovefiles
||
0
==
checkedMovefiles
.
size
)
&&
$
(
"
#cutFileButtonLi a
"
).
click
();
break
;
case
86
:
void
0
!==
checkedMovefiles
&&
checkedMovefiles
.
size
>
0
&&
$
(
"
#stickFileButtonLi a
"
).
click
();
break
;
default
:
return
!
0
}
return
!
1
}}}),
$
(
"
#moveFilesModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
checkedMovefiles
=
void
0
,
$
(
"
#copyFileButtonLi
"
).
removeClass
(
"
hidden
"
),
$
(
"
#copyFileButtonLi
"
).
addClass
(
"
show
"
),
$
(
"
#cutFileButtonLi
"
).
removeClass
(
"
hidden
"
),
$
(
"
#cutFileButtonLi
"
).
addClass
(
"
show
"
),
$
(
"
#stickFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#stickFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#stickFilesCount
"
).
text
(
""
),
$
(
"
#moveFilesBox
"
).
html
(
""
)}),
"
function
"
!=
typeof
String
.
prototype
.
startsWith
&&
(
String
.
prototype
.
startsWith
=
function
(
a
){
return
this
.
slice
(
0
,
a
.
length
)
===
a
}),
"
function
"
!=
typeof
String
.
prototype
.
endsWith
&&
(
String
.
prototype
.
endsWith
=
function
(
a
){
return
-
1
!==
this
.
indexOf
(
a
,
this
.
length
-
a
.
length
)}),
$
(
"
#downloadModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
$
(
"
#downloadURLCollapse
"
).
collapse
(
"
hide
"
)}),
updateWinHeight
(),
$
(
window
).
scroll
(
function
(){
$
(
this
).
scrollTop
()
>
2
*
winHeight
?
$
(
"
#gobacktotopbox
"
).
removeClass
(
"
hidden
"
):
$
(
"
#gobacktotopbox
"
).
addClass
(
"
hidden
"
)}),
$
(
"
#downloadURLCollapse
"
).
on
(
"
shown.bs.collapse
"
,
function
(){
getDownloadURL
()}),
$
(
"
#changePasswordModal
"
).
on
(
"
show.bs.modal
"
,
function
(){
isChangingPassword
||
(
$
(
"
#changepassword_oldpwd,#changepassword_newpwd,#changepassword_reqnewpwd,#changePasswordButton,#changepassword_vercode
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#changepassword_oldepwdbox,#changepassword_newpwdbox,#changepassword_reqnewpwdbox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#changepassword_oldpwd,#changepassword_newpwd,#changepassword_reqnewpwd
"
).
val
(
""
),
$
(
"
#changepasswordalertbox,#changepassword_vccodebox
"
).
hide
())}),
$
(
"
#changePasswordModal
"
).
on
(
"
shown.bs.modal
"
,
function
(){
isChangingPassword
||
$
(
"
#changepassword_oldpwd
"
).
focus
()}),
$
(
"
#noticeModal
"
).
on
(
"
show.bs.modal
"
,
function
(){
var
b
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )notice_md5_30=([^;]*)(;|$)
"
));
b
?
$
(
"
#dontShowSomeNoticeAt30Day
"
).
attr
(
"
checked
"
,
"
checked
"
):
$
(
"
#dontShowSomeNoticeAt30Day
"
).
attr
(
"
checked
"
,
!
1
)}),
$
(
"
#noticeModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
var
c
,
d
,
b
=
new
Date
;
$
(
"
#dontShowSomeNoticeAt30Day
"
).
prop
(
"
checked
"
)?(
b
.
setTime
(
b
.
getTime
()
+
2592
e6
),
c
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )notice_md5=([^;]*)(;|$)
"
)),
c
?
document
.
cookie
=
"
notice_md5_30=
"
+
escape
(
unescape
(
c
[
2
]))
+
"
;expires=
"
+
b
.
toUTCString
():(
c
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )notice_md5_30=([^;]*)(;|$)
"
)),
c
&&
(
document
.
cookie
=
"
notice_md5_30=
"
+
escape
(
unescape
(
c
[
2
]))
+
"
;expires=
"
+
b
.
toUTCString
()))):(
b
.
setTime
(
0
),
d
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )notice_md5_30=([^;]*)(;|$)
"
)),
d
&&
(
document
.
cookie
=
"
notice_md5_30=0;expires=
"
+
b
.
toUTCString
()))})}),
folderTypes
=
[
"
公开的
"
,
"
仅小组
"
,
"
仅创建者
"
];
\ No newline at end of file
}})}
function
createViewList
(){
var
a
,
b
;
if
(
null
==
viewer
){
for
(
a
=
document
.
createElement
(
"
ul
"
),
b
=
0
;
b
<
pvl
.
pictureViewList
.
length
;
b
++
)
$
(
a
).
append
(
"
<li><img src='
"
+
pvl
.
pictureViewList
[
b
].
url
+
"
' alt='
"
+
html2Escape
(
pvl
.
pictureViewList
[
b
].
fileName
)
+
"
' /></li>
"
);
viewer
=
$
(
a
),
viewer
.
viewer
({
loop
:
!
1
,
hidden
:
function
(){
viewer
.
data
(
"
viewer
"
).
destroy
(),
viewer
=
null
}})}
viewer
.
viewer
(
"
view
"
,
pvl
.
index
),
viewer
.
viewer
(
"
show
"
,
!
0
)}
function
createViewListByPage
(){
var
a
,
b
,
c
;
if
(
null
==
viewer
){
for
(
a
=
document
.
createElement
(
"
ul
"
),
b
=
(
viewerPageIndex
-
1
)
*
viewerPageSize
,
viewerPageIndex
>
1
&&
$
(
a
).
append
(
"
<li><img src='css/left.png' alt='上一页' /></li>
"
),
c
=
0
;
viewerPageSize
>
c
&&
c
<
pvl
.
pictureViewList
.
length
-
(
viewerPageIndex
-
1
)
*
viewerPageSize
;
c
++
)
$
(
a
).
append
(
"
<li><img src='
"
+
pvl
.
pictureViewList
[
b
+
c
].
url
+
"
' alt='
"
+
html2Escape
(
pvl
.
pictureViewList
[
b
+
c
].
fileName
)
+
"
' /></li>
"
);
viewerTotal
>
viewerPageIndex
&&
$
(
a
).
append
(
"
<li><img src='css/right.png' alt='下一页' /></li>
"
),
viewer
=
$
(
a
),
viewer
.
viewer
({
loop
:
!
1
,
view
:
function
(
a
){
0
==
a
.
detail
.
index
&&
1
!=
viewerPageIndex
?(
viewerPageIndex
--
,
viewer
.
data
(
"
viewer
"
).
destroy
(),
viewer
.
empty
(),
viewer
=
null
,
createViewListByPage
(),
viewerPageIndex
>
1
?
viewer
.
viewer
(
"
view
"
,
viewerPageSize
):
viewer
.
viewer
(
"
view
"
,
viewerPageSize
-
1
)):(
a
.
detail
.
index
==
viewerPageSize
+
1
||
a
.
detail
.
index
==
viewerPageSize
&&
1
==
viewerPageIndex
)
&&
(
viewerPageIndex
++
,
viewer
.
data
(
"
viewer
"
).
destroy
(),
viewer
.
empty
(),
viewer
=
null
,
createViewListByPage
(),
viewer
.
viewer
(
"
view
"
,
1
))},
hidden
:
function
(){
viewer
.
data
(
"
viewer
"
).
destroy
(),
viewer
.
empty
(),
viewer
=
null
}})}}
function
isShift
(
a
){
var
b
=
window
.
event
||
a
;
return
b
.
shiftKey
?
!
0
:
!
1
}
function
checkfile
(
a
,
b
){
isShift
(
a
)?
$
(
"
#
"
+
b
).
hasClass
(
"
info
"
)?
$
(
"
#
"
+
b
).
removeClass
(
"
info
"
):
$
(
"
#
"
+
b
).
addClass
(
"
info
"
):(
$
(
"
.filerow
"
).
removeClass
(
"
info
"
),
$
(
"
#
"
+
b
).
addClass
(
"
info
"
))}
function
checkConsFile
(
a
,
b
){
var
c
,
d
,
e
;
if
(
isShift
(
a
)
&&
(
c
=
$
(
"
#
"
+
b
),
d
=
c
.
index
(),
e
=
$
(
"
.filerow.info:last
"
).
index
(),
-
1
!=
e
))
if
(
d
>
e
)
for
(;
c
[
0
]
&&!
c
.
hasClass
(
"
info
"
);)
c
.
addClass
(
"
info
"
),
c
=
c
.
prev
();
else
for
(;
c
[
0
]
&&!
c
.
hasClass
(
"
info
"
);)
c
.
addClass
(
"
info
"
),
c
=
c
.
next
()}
function
getCheckedFilesAndFolders
(){
var
b
,
c
,
d
,
e
,
a
=
new
Object
;
for
(
a
.
size
=
0
,
b
=
new
Array
,
c
=
new
Array
,
d
=
$
(
"
.info
"
).
get
(),
e
=
0
;
e
<
d
.
length
;
e
++
)
"
true
"
==
d
[
e
].
getAttribute
(
"
iskfolder
"
)?
c
.
push
(
d
[
e
].
id
):
b
.
push
(
d
[
e
].
id
),
a
.
size
++
;
return
a
.
filesId
=
JSON
.
stringify
(
b
),
a
.
foldersId
=
JSON
.
stringify
(
c
),
a
}
function
checkallfile
(){
$
(
"
.filerow.info
"
).
length
==
$
(
"
.filerow
"
).
length
?
$
(
"
.filerow
"
).
removeClass
(
"
info
"
):
$
(
"
.filerow
"
).
addClass
(
"
info
"
)}
function
showDownloadAllCheckedModel
(){
if
(
folderView
.
enableDownloadZip
){
$
(
"
#downloadAllCheckedBox
"
).
html
(
""
),
$
(
"
#downloadAllCheckedLoad
"
).
text
(
""
);
var
a
=
getCheckedFilesAndFolders
();
0
==
a
.
size
?
$
(
"
#downloadAllCheckedName
"
).
html
(
checkFilesTip
):(
$
(
"
#downloadAllCheckedName
"
).
text
(
"
提示:您确认要打包并下载这
"
+
a
.
size
+
"
项么?
"
),
$
(
"
#downloadAllCheckedBox
"
).
html
(
"
<button id='dclmbutton' type='button' class='btn btn-primary' onclick='downloadAllChecked()'>开始下载</button>
"
),
$
(
"
#dclmbutton
"
).
attr
(
"
disabled
"
,
!
1
)),
$
(
"
#cancelDownloadAllCheckedBtn
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#downloadAllCheckedModal
"
).
modal
(
"
toggle
"
)}}
function
downloadAllChecked
(){
$
(
"
#dclmbutton
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#cancelDownloadAllCheckedBtn
"
).
attr
(
"
disabled
"
,
!
0
);
var
a
=
getCheckedFilesAndFolders
();
$
(
"
#downloadAllCheckedName
"
).
text
(
"
提示:服务器正在对选中资源进行压缩(共
"
+
a
.
size
+
"
项),这可能需要一些时间(文件越大耗时越长),压缩完成将自动开始下载。
"
),
$
.
ajax
({
url
:
"
homeController/getPackTime.ajax
"
,
type
:
"
POST
"
,
data
:{
strIdList
:
a
.
filesId
,
strFidList
:
a
.
foldersId
},
dataType
:
"
text
"
,
success
:
function
(
a
){
var
b
;
"
0
"
!=
a
?(
b
=
0
,
$
(
"
#downloadAllCheckedLoad
"
).
text
(
"
已耗时:
"
+
b
+
"
秒(预计耗时:
"
+
a
+
"
)
"
),
zipTimer
=
setInterval
(
function
(){
b
++
,
$
(
"
#downloadAllCheckedLoad
"
).
text
(
"
已耗时:
"
+
b
+
"
秒(预计耗时:
"
+
a
+
"
)
"
)},
1
e3
)):(
b
=
0
,
$
(
"
#downloadAllCheckedLoad
"
).
text
(
"
已耗时:
"
+
b
+
"
秒
"
),
zipTimer
=
setInterval
(
function
(){
b
++
,
$
(
"
#downloadAllCheckedLoad
"
).
text
(
"
已耗时:
"
+
b
+
"
秒
"
)},
1
e3
))},
error
:
function
(){
$
(
"
#downloadAllCheckedLoad
"
).
text
(
"
(无法获取预计耗时)
"
)}}),
$
.
ajax
({
type
:
"
POST
"
,
url
:
"
homeController/downloadCheckedFiles.ajax
"
,
data
:{
strIdList
:
a
.
filesId
,
strFidList
:
a
.
foldersId
},
dataType
:
"
text
"
,
success
:
function
(
a
){
var
c
,
d
;
null
!=
zipTimer
&&
window
.
clearInterval
(
zipTimer
),
"
ERROR
"
==
a
?(
$
(
"
#downloadAllCheckedName
"
).
text
(
"
提示:压缩过程出错。无法完成压缩,请重试或告知管理员。
"
),
$
(
"
#dclmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDownloadAllCheckedBtn
"
).
attr
(
"
disabled
"
,
!
1
)):(
$
(
"
#downloadAllCheckedLoad
"
).
text
(
""
),
$
(
"
#downloadAllCheckedName
"
).
text
(
"
提示:压缩完成!准备开始下载...
"
),
setTimeout
(
"
$('#downloadAllCheckedModal').modal('hide');
"
,
800
),
c
=
document
.
createElement
(
"
form
"
),
c
.
action
=
"
homeController/downloadCheckedFilesZip.do
"
,
c
.
method
=
"
post
"
,
c
.
style
.
display
=
"
none
"
,
d
=
document
.
createElement
(
"
input
"
),
d
.
name
=
"
zipId
"
,
d
.
value
=
a
,
c
.
appendChild
(
d
),
document
.
body
.
appendChild
(
c
),
c
.
submit
())},
error
:
function
(){
$
(
"
#downloadAllCheckedName
"
).
text
(
"
提示:请求失败。无法完成压缩,请重试或告知管理员。
"
),
$
(
"
#dclmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDownloadAllCheckedBtn
"
).
attr
(
"
disabled
"
,
!
1
)}})}
function
showDeleteAllCheckedModel
(){
$
(
"
#deleteFileBox
"
).
html
(
""
);
var
a
=
getCheckedFilesAndFolders
();
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
),
0
==
a
.
size
?
$
(
"
#deleteFileMessage
"
).
html
(
checkFilesTip
):(
$
(
"
#deleteFileBox
"
).
html
(
"
<button id='dfmbutton' type='button' class='btn btn-danger' onclick='deleteAllChecked()'>全部删除</button>
"
),
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:确定要彻底删除这
"
+
a
.
size
+
"
项么?该操作不可恢复!
"
)),
$
(
"
#deleteFileModal
"
).
modal
(
"
toggle
"
)}
function
deleteAllChecked
(){
var
a
=
getCheckedFilesAndFolders
();
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:正在删除,请稍候...
"
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
strIdList
:
a
.
filesId
,
strFidList
:
a
.
foldersId
},
url
:
"
homeController/deleteCheckedFiles.ajax
"
,
success
:
function
(
a
){
"
mustLogin
"
==
a
?
window
.
location
.
href
=
"
prv/login.html
"
:
"
noAuthorized
"
==
a
?(
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:您的操作未被授权,删除失败
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
)):
"
errorParameter
"
==
a
?(
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:参数不正确,未能全部删除文件
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
)):
"
cannotDeleteFile
"
==
a
?(
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:出现意外错误,可能未能删除全部文件
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
)):
"
deleteFileSuccess
"
==
a
?(
$
(
"
#deleteFileModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
)):(
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:出现意外错误,可能未能删除全部文件
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
))},
error
:
function
(){
$
(
"
#deleteFileMessage
"
).
text
(
"
提示:出现意外错误,可能未能删除全部文件
"
),
$
(
"
#dfmbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelDeleteFileBox
"
).
attr
(
"
disabled
"
,
!
1
)}})}
function
playAudio
(
fileId
){
$
(
"
#audioPlayerModal
"
).
modal
(
"
show
"
),
null
==
pingInt
&&
(
pingInt
=
setInterval
(
"
ping()
"
,
6
e4
)),
null
==
ap
&&
(
ap
=
new
APlayer
({
container
:
document
.
getElementById
(
"
aplayer
"
),
lrcType
:
3
,
mutex
:
!
0
,
volume
:.
7
,
theme
:
"
#EDEDED
"
,
audio
:[]}),
ap
.
on
(
"
pause
"
,
function
(){
$
(
"
#playOrPause
"
).
html
(
"
<span class='glyphicon glyphicon-play' aria-hidden='true'></span>
"
)}),
ap
.
on
(
"
play
"
,
function
(){
$
(
"
#playOrPause
"
).
html
(
"
<span class='glyphicon glyphicon-pause' aria-hidden='true'></span>
"
)})),
ap
.
list
.
clear
(),
$
.
ajax
({
url
:
"
homeController/playAudios.ajax
"
,
data
:{
fileId
:
fileId
},
type
:
"
POST
"
,
dataType
:
"
text
"
,
success
:
function
(
result
){
var
i
,
ail
=
eval
(
"
(
"
+
result
+
"
)
"
);
for
(
i
=
ail
.
index
;
i
<
ail
.
as
.
length
;
i
++
)
ail
.
as
[
i
].
name
=
ail
.
as
[
i
].
name
.
replace
(
"
'
"
,
"
'
"
).
replace
(
"
<
"
,
"
<
"
).
replace
(
"
>
"
,
"
>
"
),
ap
.
list
.
add
(
ail
.
as
[
i
]);
for
(
i
=
0
;
i
<
ail
.
index
;
i
++
)
ail
.
as
[
i
].
name
=
ail
.
as
[
i
].
name
.
replace
(
"
'
"
,
"
'
"
).
replace
(
"
<
"
,
"
<
"
).
replace
(
"
>
"
,
"
>
"
),
ap
.
list
.
add
(
ail
.
as
[
i
]);
audio_play
()},
error
:
function
(){
alert
(
"
错误:无法获取音乐列表,请稍后再试
"
),
closeAudioPlayer
()}})}
function
closeAudioPlayer
(){
$
(
"
#audioPlayerModal
"
).
modal
(
"
hide
"
)}
function
audio_playOrPause
(){
ap
.
toggle
()}
function
audio_play
(){
ap
.
play
()}
function
audio_pasue
(){
ap
.
pause
()}
function
audio_fw
(){
ap
.
skipForward
()}
function
audio_bw
(){
ap
.
skipBack
()}
function
audio_vulome_up
(){
ap
.
volume
(
ap
.
audio
.
volume
+
.
1
,
!
0
)}
function
audio_vulome_down
(){
ap
.
volume
(
ap
.
audio
.
volume
-
.
1
,
!
0
)}
function
sortbyfn
(){
if
(
loadingComplete
&&!
$
(
"
#sortByCD,#sortByFS,#sortByCN,#sortByOR
"
).
hasClass
(
"
glyphicon glyphicon-hourglass
"
)){
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
();
var
a
=
1
;
$
(
"
#sortByFN
"
).
hasClass
(
"
glyphicon-triangle-bottom
"
)
&&
(
a
=-
1
),
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByFN
"
).
addClass
(
"
glyphicon glyphicon-hourglass
"
),
setTimeout
(
function
(){
folderView
.
fileList
.
sort
(
function
(
b
,
c
){
return
a
*
c
.
fileName
.
localeCompare
(
b
.
fileName
,
"
zh
"
)}),
folderView
.
folderList
.
sort
(
function
(
b
,
c
){
return
a
*
c
.
folderName
.
localeCompare
(
b
.
folderName
,
"
zh
"
)}),
showFolderTable
(
folderView
),
$
(
"
#sortByFN
"
).
removeClass
(),
-
1
==
a
?
$
(
"
#sortByFN
"
).
addClass
(
"
glyphicon glyphicon-triangle-top
"
):
$
(
"
#sortByFN
"
).
addClass
(
"
glyphicon glyphicon-triangle-bottom
"
)},
0
)}}
function
sortbycd
(){
if
(
loadingComplete
&&!
$
(
"
#sortByFN,#sortByFS,#sortByCN,#sortByOR
"
).
hasClass
(
"
glyphicon glyphicon-hourglass
"
)){
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
();
var
a
=
1
;
$
(
"
#sortByCD
"
).
hasClass
(
"
glyphicon-triangle-bottom
"
)
&&
(
a
=-
1
),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
addClass
(
"
glyphicon glyphicon-hourglass
"
),
setTimeout
(
function
(){
folderView
.
fileList
.
sort
(
function
(
b
,
c
){
var
d
=
b
.
fileCreationDate
.
replace
(
"
年
"
,
"
-
"
).
replace
(
"
月
"
,
"
-
"
).
replace
(
"
日
"
,
""
),
e
=
c
.
fileCreationDate
.
replace
(
"
年
"
,
"
-
"
).
replace
(
"
月
"
,
"
-
"
).
replace
(
"
日
"
,
""
),
f
=
new
Date
(
Date
.
parse
(
d
)).
getTime
()
-
new
Date
(
Date
.
parse
(
e
)).
getTime
();
return
a
*
f
}),
folderView
.
folderList
.
sort
(
function
(
b
,
c
){
var
d
=
b
.
folderCreationDate
.
replace
(
"
年
"
,
"
-
"
).
replace
(
"
月
"
,
"
-
"
).
replace
(
"
日
"
,
""
),
e
=
c
.
folderCreationDate
.
replace
(
"
年
"
,
"
-
"
).
replace
(
"
月
"
,
"
-
"
).
replace
(
"
日
"
,
""
),
f
=
new
Date
(
Date
.
parse
(
d
)).
getTime
()
-
new
Date
(
Date
.
parse
(
e
)).
getTime
();
return
a
*
f
}),
showFolderTable
(
folderView
),
$
(
"
#sortByCD
"
).
removeClass
(),
-
1
==
a
?
$
(
"
#sortByCD
"
).
addClass
(
"
glyphicon glyphicon-triangle-top
"
):
$
(
"
#sortByCD
"
).
addClass
(
"
glyphicon glyphicon-triangle-bottom
"
)},
0
)}}
function
sortbyfs
(){
if
(
loadingComplete
&&!
$
(
"
#sortByFN,#sortByCD,#sortByCN,#sortByOR
"
).
hasClass
(
"
glyphicon glyphicon-hourglass
"
)){
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
();
var
a
=
1
;
$
(
"
#sortByFS
"
).
hasClass
(
"
glyphicon-triangle-bottom
"
)
&&
(
a
=-
1
),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
addClass
(
"
glyphicon glyphicon-hourglass
"
),
setTimeout
(
function
(){
folderView
.
fileList
.
sort
(
function
(
b
,
c
){
return
a
*
(
b
.
fileSize
-
c
.
fileSize
)}),
showFolderTable
(
folderView
),
$
(
"
#sortByFS
"
).
removeClass
(),
-
1
==
a
?
$
(
"
#sortByFS
"
).
addClass
(
"
glyphicon glyphicon-triangle-top
"
):
$
(
"
#sortByFS
"
).
addClass
(
"
glyphicon glyphicon-triangle-bottom
"
)},
0
)}}
function
sortbycn
(){
if
(
loadingComplete
&&!
$
(
"
#sortByFN,#sortByCD,#sortByFS,#sortByOR
"
).
hasClass
(
"
glyphicon glyphicon-hourglass
"
)){
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
();
var
a
=
1
;
$
(
"
#sortByCN
"
).
hasClass
(
"
glyphicon-triangle-bottom
"
)
&&
(
a
=-
1
),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
addClass
(
"
glyphicon glyphicon-hourglass
"
),
setTimeout
(
function
(){
folderView
.
fileList
.
sort
(
function
(
b
,
c
){
return
a
*
c
.
fileCreator
.
localeCompare
(
b
.
fileCreator
,
"
zh
"
)}),
folderView
.
folderList
.
sort
(
function
(
b
,
c
){
return
a
*
c
.
folderCreator
.
localeCompare
(
b
.
folderCreator
,
"
zh
"
)}),
showFolderTable
(
folderView
),
$
(
"
#sortByCN
"
).
removeClass
(),
-
1
==
a
?
$
(
"
#sortByCN
"
).
addClass
(
"
glyphicon glyphicon-triangle-top
"
):
$
(
"
#sortByCN
"
).
addClass
(
"
glyphicon glyphicon-triangle-bottom
"
)},
0
)}}
function
showOriginFolderView
(){
loadingComplete
&&
(
$
(
"
#sortByFN,#sortByCD,#sortByFS,#sortByCN
"
).
hasClass
(
"
glyphicon glyphicon-hourglass
"
)
||
(
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
addClass
(
"
glyphicon glyphicon-hourglass
"
),
setTimeout
(
function
(){
folderView
=
null
!=
screenedFoldrView
?
$
.
extend
(
!
0
,{},
screenedFoldrView
):
$
.
extend
(
!
0
,{},
originFolderView
),
showFolderTable
(
folderView
),
$
(
"
#sortByOR
"
).
removeClass
()},
0
)))}
function
cutFile
(){
checkedMovefiles
=
getCheckedFilesAndFolders
(),
void
0
==
checkedMovefiles
||
0
==
checkedMovefiles
.
size
?(
$
(
"
#moveFilesMessage
"
).
html
(
checkFilesTip
),
$
(
"
#selectFileMoveModelAsAll
"
).
removeAttr
(
"
checked
"
),
$
(
"
#selectFileMoveModelAlert
"
).
hide
(),
$
(
"
#moveFilesModal
"
).
modal
(
"
show
"
)):(
checkedMovefiles
.
size
<
100
?
$
(
"
#stickFilesCount
"
).
text
(
"
(
"
+
checkedMovefiles
.
size
+
"
)
"
):
$
(
"
#stickFilesCount
"
).
text
(
"
(99+)
"
),
$
(
"
#copyFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#copyFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#cutFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#cutFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#stickFileButtonLi
"
).
removeClass
(
"
hidden
"
),
$
(
"
#stickFileButtonLi
"
).
addClass
(
"
show
"
),
isCopy
=!
1
)}
function
copyFile
(){
checkedMovefiles
=
getCheckedFilesAndFolders
(),
void
0
==
checkedMovefiles
||
0
==
checkedMovefiles
.
size
?(
$
(
"
#moveFilesMessage
"
).
html
(
checkFilesTip
),
$
(
"
#selectFileMoveModelAsAll
"
).
removeAttr
(
"
checked
"
),
$
(
"
#selectFileMoveModelAlert
"
).
hide
(),
$
(
"
#moveFilesModal
"
).
modal
(
"
show
"
)):(
checkedMovefiles
.
size
<
100
?
$
(
"
#stickFilesCount
"
).
text
(
"
(
"
+
checkedMovefiles
.
size
+
"
)
"
):
$
(
"
#stickFilesCount
"
).
text
(
"
(99+)
"
),
$
(
"
#copyFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#copyFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#cutFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#cutFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#stickFileButtonLi
"
).
removeClass
(
"
hidden
"
),
$
(
"
#stickFileButtonLi
"
).
addClass
(
"
show
"
),
isCopy
=!
0
)}
function
stickFile
(){
void
0
!==
checkedMovefiles
&&
checkedMovefiles
.
size
>
0
&&
(
isCopy
?(
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:确定将这
"
+
checkedMovefiles
.
size
+
"
项复制到当前位置么?
"
),
$
(
"
#moveFilesBox
"
).
html
(
"
<button id='dmvfbutton' type='button' class='btn btn-primary' onclick='doMoveFiles()'>全部复制</button>
"
)):(
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:确定将这
"
+
checkedMovefiles
.
size
+
"
项移动到当前位置么?
"
),
$
(
"
#moveFilesBox
"
).
html
(
"
<button id='dmvfbutton' type='button' class='btn btn-danger' onclick='doMoveFiles()'>全部移动</button>
"
)),
$
(
"
#selectFileMoveModelAsAll
"
).
removeAttr
(
"
checked
"
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#selectFileMoveModelAlert
"
).
hide
(),
$
(
"
#moveFilesModal
"
).
modal
(
"
show
"
))}
function
doMoveFiles
(){
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
0
);
var
method
=
"
MOVE
"
;
isCopy
?(
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:正在复制,请稍候...
"
),
method
=
"
COPY
"
):
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:正在移动,请稍候...
"
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
strIdList
:
checkedMovefiles
.
filesId
,
strFidList
:
checkedMovefiles
.
foldersId
,
locationpath
:
locationpath
,
method
:
method
},
url
:
"
homeController/confirmMoveFiles.ajax
"
,
success
:
function
(
result
){
if
(
"
mustLogin
"
==
result
)
window
.
location
.
href
=
"
prv/login.html
"
;
else
switch
(
result
){
case
"
noAuthorized
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:您的操作未被授权,操作失败
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
errorParameter
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:参数不正确,无法完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
cannotMoveFiles
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:出现意外错误,可能未能完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
filesTotalOutOfLimit
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:该文件夹内存储的文件数量已达上限,无法添加更多文件
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
foldersTotalOutOfLimit
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:该文件夹内存储的文件夹数量已达上限,无法添加更多文件夹
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
confirmMoveFiles
"
:
strMoveOptMap
=
{},
sendMoveFilesReq
();
break
;
default
:
if
(
result
.
startsWith
(
"
duplicationFileName:
"
)){
repeMap
=
eval
(
"
(
"
+
result
.
substring
(
20
)
+
"
)
"
),
repeIndex
=
0
,
strMoveOptMap
=
{},
mRepeSize
=
repeMap
.
repeFolders
.
length
+
repeMap
.
repeNodes
.
length
,
repeMap
.
repeFolders
.
length
>
0
?
$
(
"
#mrepeFileName
"
).
text
(
repeMap
.
repeFolders
[
repeIndex
].
folderName
):
$
(
"
#mrepeFileName
"
).
text
(
repeMap
.
repeNodes
[
repeIndex
].
fileName
);
var
authList
=
originFolderView
.
authList
;
checkAuth
(
authList
,
"
D
"
)?
$
(
"
#movecoverbtn
"
).
show
():
$
(
"
#movecoverbtn
"
).
hide
(),
$
(
"
#selectFileMoveModelAlert
"
).
show
()}
else
result
.
startsWith
(
"
CANT_MOVE_TO_INSIDE:
"
)?
$
(
"
#moveFilesMessage
"
).
text
(
"
错误:不能将一个文件夹移动到其自身内部:
"
+
result
.
substring
(
20
)):(
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:出现意外错误,可能未能完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
))}},
error
:
function
(){
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:出现意外错误,可能未能完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
)}})}
function
selectFileMoveModel
(
a
){
if
(
$
(
"
#selectFileMoveModelAsAll
"
).
prop
(
"
checked
"
)){
for
(;
mRepeSize
>
repeIndex
;)
repeIndex
<
repeMap
.
repeFolders
.
length
?
strMoveOptMap
[
repeMap
.
repeFolders
[
repeIndex
].
folderId
]
=
a
:
strMoveOptMap
[
repeMap
.
repeNodes
[
repeIndex
-
repeMap
.
repeFolders
.
length
].
fileId
]
=
a
,
repeIndex
++
;
$
(
"
#selectFileMoveModelAlert
"
).
hide
(),
sendMoveFilesReq
()}
repeIndex
<
repeMap
.
repeFolders
.
length
?
strMoveOptMap
[
repeMap
.
repeFolders
[
repeIndex
].
folderId
]
=
a
:
strMoveOptMap
[
repeMap
.
repeNodes
[
repeIndex
-
repeMap
.
repeFolders
.
length
].
fileId
]
=
a
,
repeIndex
++
,
mRepeSize
>
repeIndex
?
repeIndex
<
repeMap
.
repeFolders
.
length
?
$
(
"
#mrepeFileName
"
).
text
(
repeMap
.
repeFolders
[
repeIndex
].
folderName
):
$
(
"
#mrepeFileName
"
).
text
(
repeMap
.
repeNodes
[
repeIndex
-
repeMap
.
repeFolders
.
length
].
fileName
):(
$
(
"
#selectFileMoveModelAlert
"
).
hide
(),
sendMoveFilesReq
())}
function
sendMoveFilesReq
(){
var
a
=
JSON
.
stringify
(
strMoveOptMap
),
b
=
"
MOVE
"
;
isCopy
&&
(
b
=
"
COPY
"
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
strIdList
:
checkedMovefiles
.
filesId
,
strFidList
:
checkedMovefiles
.
foldersId
,
strOptMap
:
a
,
locationpath
:
locationpath
,
method
:
b
},
url
:
"
homeController/moveCheckedFiles.ajax
"
,
success
:
function
(
a
){
if
(
"
mustLogin
"
==
a
)
window
.
location
.
href
=
"
prv/login.html
"
;
else
switch
(
a
){
case
"
noAuthorized
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:您的操作未被授权,操作失败
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
errorParameter
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:参数不正确,无法完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
filesTotalOutOfLimit
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:该文件夹内存储的文件数量已达上限,无法添加更多文件
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
foldersTotalOutOfLimit
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:该文件夹内存储的文件夹数量已达上限,无法添加更多文件夹
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
cannotMoveFiles
"
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:出现意外错误,可能未能完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
);
break
;
case
"
moveFilesSuccess
"
:
$
(
"
#moveFilesModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
);
break
;
default
:
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:出现意外错误,可能未能完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
)}},
error
:
function
(){
$
(
"
#moveFilesMessage
"
).
text
(
"
提示:出现意外错误,可能未能完成此操作,请刷新后重试
"
),
$
(
"
#dmvfbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#cancelMoveFilesBtn
"
).
attr
(
"
disabled
"
,
!
1
)}})}
function
doSearchFile
(){
var
a
=
$
(
"
#sreachKeyWordIn
"
).
val
();
0
!=
a
.
length
?
a
.
startsWith
(
"
all:
"
)
||
a
.
startsWith
(
"
all:
"
)?
selectInCompletePath
(
a
.
substring
(
4
)):(
startLoading
(),
selectInThisPath
(
a
),
endLoading
()):
null
!=
folderView
.
keyWorld
?
showFolderView
(
locationpath
):(
screenedFoldrView
=
null
,
showOriginFolderView
())}
function
selectInThisPath
(
a
){
var
b
,
c
,
d
;
try
{
for
(
b
=
new
RegExp
(
a
+
"
+
"
),
screenedFoldrView
=
$
.
extend
(
!
0
,{},
originFolderView
),
screenedFoldrView
.
folderList
=
[],
screenedFoldrView
.
fileList
=
[],
c
=
0
,
d
=
originFolderView
.
folderList
.
length
;
d
>
c
;
c
++
)
b
.
test
(
originFolderView
.
folderList
[
c
].
folderName
)
&&
screenedFoldrView
.
folderList
.
push
(
originFolderView
.
folderList
[
c
]);
for
(
c
=
0
,
d
=
originFolderView
.
fileList
.
length
;
d
>
c
;
c
++
)
b
.
test
(
originFolderView
.
fileList
[
c
].
fileName
)
&&
screenedFoldrView
.
fileList
.
push
(
originFolderView
.
fileList
[
c
]);
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
(),
folderView
=
$
.
extend
(
!
0
,{},
screenedFoldrView
),
showFolderTable
(
folderView
)}
catch
(
e
){
alert
(
"
错误:搜索关键字有误。请在特殊符号(例如“*”)前加上“
\\
”进行转义。
"
)}}
function
selectInCompletePath
(
keyworld
){
return
0
==
keyworld
.
length
?(
showFolderView
(
locationpath
),
void
0
):(
startLoading
(),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
fid
:
locationpath
,
keyworld
:
keyworld
},
url
:
"
homeController/sreachInCompletePath.ajax
"
,
success
:
function
(
result
){
endLoading
(),
"
ERROR
"
==
result
?(
doAlert
(),
$
(
"
#tb
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
),
$
(
"
#publishTime
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
),
$
(
"
#parentlistbox
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
)):
"
mustLogin
"
==
result
?
window
.
location
.
href
=
"
prv/login.html
"
:
"
notAccess
"
==
result
?(
document
.
cookie
=
"
folder_id=
"
+
escape
(
"
root
"
),
window
.
location
.
href
=
"
/
"
):(
folderView
=
eval
(
"
(
"
+
result
+
"
)
"
),
locationpath
=
folderView
.
folder
.
folderId
,
parentpath
=
folderView
.
folder
.
folderParent
,
constraintLevel
=
folderView
.
folder
.
folderConstraint
,
screenedFoldrView
=
null
,
$
(
"
#sreachKeyWordIn
"
).
val
(
"
all:
"
+
folderView
.
keyWorld
),
showParentList
(
folderView
),
showAccountView
(
folderView
),
showPublishTime
(
folderView
),
originFolderView
=
$
.
extend
(
!
0
,{},
folderView
),
$
(
"
#sortByFN
"
).
removeClass
(),
$
(
"
#sortByCD
"
).
removeClass
(),
$
(
"
#sortByFS
"
).
removeClass
(),
$
(
"
#sortByCN
"
).
removeClass
(),
$
(
"
#sortByOR
"
).
removeClass
(),
showFolderTable
(
folderView
),
$
(
"
#fim_name
"
).
text
(
folderView
.
folder
.
folderName
),
$
(
"
#fim_creator
"
).
text
(
"
--
"
),
$
(
"
#fim_folderCreationDate
"
).
text
(
"
--
"
),
$
(
"
#fim_folderId
"
).
text
(
"
--
"
),
updateTheFolderInfo
())},
error
:
function
(){
endLoading
(),
doAlert
(),
$
(
"
#tb
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
),
$
(
"
#publishTime
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
),
$
(
"
#parentlistbox
"
).
html
(
"
<span class='graytext'>获取失败,请尝试刷新</span>
"
)}}),
void
0
)}
function
goBackToTop
(){
$
(
"
html,body
"
).
animate
({
scrollTop
:
0
},
"
slow
"
)}
function
getDownloadURL
(){
$
.
ajax
({
url
:
"
externalLinksController/getDownloadKey.ajax
"
,
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
fId
:
getDownloadFileId
},
success
:
function
(
a
){
var
b
=
window
.
location
.
protocol
+
"
//
"
+
window
.
location
.
host
+
"
/externalLinksController/downloadFileByKey/
"
+
encodeURIComponent
(
getDownloadFileName
.
replace
(
/
\\
/g
,
"
_
"
))
+
"
?dkey=
"
+
a
;
$
(
"
#downloadHrefBox
"
).
html
(
"
<a href='
"
+
b
+
"
'>
"
+
b
+
"
</a>
"
)},
error
:
function
(){
$
(
"
#downloadHrefBox
"
).
html
(
"
<span class='text-muted'>获取失败,请检查网络状态或<a href='javascript:void(0);' onclick='getDownloadURL()'>点此</a>重新获取。</span>
"
)}})}
function
ping
(){
$
.
ajax
({
url
:
"
homeController/ping.ajax
"
,
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{},
success
:
function
(
a
){
"
pong
"
!=
a
&&
null
!=
pingInt
&&
(
window
.
clearInterval
(
pingInt
),
pingInt
=
null
)},
error
:
function
(){
null
!=
pingInt
&&
(
window
.
clearInterval
(
pingInt
),
pingInt
=
null
)}})}
function
isSupportWebkitdirectory
(){
var
a
=
document
.
createElement
(
"
input
"
);
return
"
webkitdirectory
"
in
a
&&!
/
(
iPhone|iPad|iPod|iOS
)
/i
.
test
(
navigator
.
userAgent
)?
!
0
:
!
1
}
function
showUploadFolderModel
(){
if
(
$
(
"
#importFolderAlert
"
).
hide
(),
$
(
"
#importFolderAlert
"
).
text
(
""
),
0
==
isImporting
)
if
(
$
(
"
#folderpath
"
).
val
(
""
),
$
(
"
#importfolder
"
).
val
(
""
),
$
(
"
#importpros
"
).
width
(
"
0%
"
),
$
(
"
#importpros
"
).
attr
(
"
aria-valuenow
"
,
"
0
"
),
$
(
"
#importstatus
"
).
html
(
""
),
$
(
"
#folderpath
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#importFolderLevelBtn
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#importcount
"
).
text
(
""
),
$
(
"
#importbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#importfoldertypelist
"
).
html
(
""
),
$
(
"
#selectFolderImportModelAlert
"
).
hide
(),
null
!=
account
){
$
(
"
#folderpath
"
).
attr
(
"
folderConstraintLevel
"
,
constraintLevel
+
""
),
$
(
"
#importfoldertype
"
).
text
(
folderTypes
[
constraintLevel
]);
for
(
var
a
=
constraintLevel
;
a
<
folderTypes
.
length
;
a
++
)
$
(
"
#importfoldertypelist
"
).
append
(
"
<li><a onclick='changeImportFolderType(
"
+
a
+
"
)'>
"
+
folderTypes
[
a
]
+
"
</a></li>
"
)}
else
$
(
"
#importfoldertypelist
"
).
append
(
"
<li><a onclick='changeImportFolderType(0)'>
"
+
folderTypes
[
0
]
+
"
</a></li>
"
);
$
(
"
#importFolderModal
"
).
modal
(
"
show
"
)}
function
checkimportpath
(){
$
(
"
#importfolder
"
).
click
()}
function
getInputImport
(){
ifs
=
$
(
"
#importfolder
"
)[
0
].
files
,
ifs
.
length
>
0
&&
(
importFolderName
=
ifs
[
0
].
webkitRelativePath
.
substring
(
0
,
ifs
[
0
].
webkitRelativePath
.
indexOf
(
"
/
"
)),
$
(
"
#folderpath
"
).
val
(
importFolderName
))}
function
checkImportFolder
(){
var
maxSize
,
maxFileIndex
,
i
;
if
(
0
==
isUpLoading
&&
0
==
isImporting
)
if
(
null
!=
ifs
&&
ifs
.
length
>
0
){
for
(
$
(
"
#folderpath
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#importFolderLevelBtn
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#importbutton
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#importFolderAlert
"
).
hide
(),
$
(
"
#importFolderAlert
"
).
text
(
""
),
isImporting
=!
0
,
maxSize
=
0
,
maxFileIndex
=
0
,
i
=
0
;
i
<
ifs
.
length
;
i
++
)
ifs
[
i
].
size
>
maxSize
&&
(
maxSize
=
ifs
[
i
].
size
,
maxFileIndex
=
i
);
$
.
ajax
({
url
:
"
homeController/checkImportFolder.ajax
"
,
type
:
"
POST
"
,
dataType
:
"
text
"
,
data
:{
folderName
:
importFolderName
,
maxSize
:
maxSize
,
folderId
:
locationpath
},
success
:
function
(
result
){
var
resJson
=
eval
(
"
(
"
+
result
+
"
)
"
);
switch
(
resJson
.
result
){
case
"
noAuthorized
"
:
showImportFolderAlert
(
"
提示:您的操作未被授权,无法开始上传
"
);
break
;
case
"
errorParameter
"
:
showImportFolderAlert
(
"
提示:参数不正确,无法开始上传。必须选择一个文件夹
"
);
break
;
case
"
mustLogin
"
:
window
.
location
.
href
=
"
prv/login.html
"
;
break
;
case
"
fileOverSize
"
:
showImportFolderAlert
(
"
提示:文件[
"
+
ifs
[
maxFileIndex
].
webkitRelativePath
+
"
]的体积超过最大限制(
"
+
resJson
.
maxSize
+
"
),无法开始上传
"
);
break
;
case
"
foldersTotalOutOfLimit
"
:
showImportFolderAlert
(
"
提示:该文件夹内存储的文件夹数量已达上限,无法在其中上传更多文件夹。您可以尝试将其上传至其他文件夹内。
"
);
break
;
case
"
repeatFolder_Both
"
:
$
(
"
#repeFolderName
"
).
text
(
importFolderName
),
$
(
"
#importcoverbtn
"
).
hide
(),
$
(
"
#selectFolderImportModelAlert
"
).
show
();
break
;
case
"
repeatFolder_coverOrBoth
"
:
$
(
"
#repeFolderName
"
).
text
(
importFolderName
),
$
(
"
#importcoverbtn
"
).
show
(),
$
(
"
#selectFolderImportModelAlert
"
).
show
();
break
;
case
"
permitUpload
"
:
iteratorImport
(
0
);
break
;
default
:
showImportFolderAlert
(
"
提示:出现意外错误,无法开始上传
"
)}},
error
:
function
(){
showImportFolderAlert
(
"
提示:出现意外错误,无法开始上传
"
)}})}
else
showImportFolderAlert
(
"
提示:您未选择任何文件夹,无法开始上传
"
);
else
showImportFolderAlert
(
"
提示:另一项上传文件或文件夹的任务尚未完成,无法开始上传
"
)}
function
showImportFolderAlert
(
a
){
isImporting
=!
1
,
$
(
"
#folderpath
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#importFolderLevelBtn
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#importFolderAlert
"
).
show
(),
$
(
"
#importFolderAlert
"
).
text
(
a
),
$
(
"
#importbutton
"
).
attr
(
"
disabled
"
,
!
1
)}
function
importProgress
(
a
){
if
(
a
.
lengthComputable
){
var
b
=
Math
.
round
(
100
*
a
.
loaded
/
a
.
total
);
$
(
"
#importpros
"
).
width
(
b
+
"
%
"
),
$
(
"
#importpros
"
).
attr
(
"
aria-valuenow
"
,
""
+
b
)}}
function
importAndCover
(){
$
(
"
#selectFolderImportModelAlert
"
).
hide
(),
$
.
ajax
({
url
:
"
homeController/deleteFolderByName.ajax
"
,
type
:
"
POST
"
,
data
:{
parentId
:
locationpath
,
folderName
:
importFolderName
},
dataType
:
"
text
"
,
success
:
function
(
a
){
"
deleteSuccess
"
==
a
?
iteratorImport
(
0
):
showImportFolderAlert
(
"
提示:无法覆盖原文件夹,上传失败
"
)},
error
:
function
(){
showImportFolderAlert
(
"
提示:无法覆盖原文件夹,上传失败
"
)}})}
function
importAndBoth
(){
$
(
"
#selectFolderImportModelAlert
"
).
hide
();
var
fc
=
$
(
"
#folderpath
"
).
attr
(
"
folderConstraintLevel
"
);
$
.
ajax
({
url
:
"
homeController/createNewFolderByName.ajax
"
,
type
:
"
POST
"
,
data
:{
parentId
:
locationpath
,
folderName
:
importFolderName
,
folderConstraint
:
fc
},
dataType
:
"
text
"
,
success
:
function
(
result
){
var
resJson
=
eval
(
"
(
"
+
result
+
"
)
"
);
"
success
"
==
resJson
.
result
?
iteratorImport
(
0
,
resJson
.
newName
):
"
foldersTotalOutOfLimit
"
==
resJson
.
result
?
showImportFolderAlert
(
"
提示:该文件夹内存储的文件夹数量已达上限,无法上传同名文件夹并保留两者。您可以尝试将其上传至其他文件夹内。
"
):
showImportFolderAlert
(
"
提示:生成新文件夹名称失败,无法开始上传
"
)},
error
:
function
(){
showImportFolderAlert
(
"
提示:生成新文件夹名称失败,无法开始上传
"
)}})}
function
iteratorImport
(
a
,
b
){
var
c
,
d
,
e
,
f
,
g
;
$
(
"
#importpros
"
).
width
(
"
0%
"
),
$
(
"
#importpros
"
).
attr
(
"
aria-valuenow
"
,
"
0
"
),
c
=
ifs
[
a
],
d
=
ifs
.
length
,
e
=
$
(
"
#folderpath
"
).
attr
(
"
folderConstraintLevel
"
),
null
!=
c
?(
f
=
c
.
webkitRelativePath
,
d
>
1
&&
$
(
"
#importcount
"
).
text
(
"
(
"
+
(
a
+
1
)
+
"
/
"
+
d
+
"
)
"
),
$
(
"
#importstatus
"
).
prepend
(
"
<p>
"
+
html2Escape
(
f
)
+
"
<span id='ils_
"
+
a
+
"
'>[正在上传...]</span></p>
"
),
xhr
=
new
XMLHttpRequest
,
g
=
new
FormData
,
g
.
append
(
"
file
"
,
c
),
g
.
append
(
"
folderId
"
,
locationpath
),
g
.
append
(
"
folderConstraint
"
,
e
),
g
.
append
(
"
originalFileName
"
,
f
),
b
&&
g
.
append
(
"
newFolderName
"
,
b
),
xhr
.
open
(
"
POST
"
,
"
homeController/doImportFolder.ajax
"
,
!
0
),
xhr
.
upload
.
addEventListener
(
"
progress
"
,
importProgress
,
!
1
),
xhr
.
send
(
g
),
null
==
pingInt
&&
(
pingInt
=
setInterval
(
"
ping()
"
,
6
e4
)),
xhr
.
onloadend
=
function
(){
var
c
,
e
;
null
!=
pingInt
&&
(
window
.
clearInterval
(
pingInt
),
pingInt
=
null
),
200
===
xhr
.
status
?(
c
=
xhr
.
responseText
,
"
uploadsuccess
"
==
c
?(
$
(
"
#ils_
"
+
a
).
text
(
"
[已完成]
"
),
e
=
a
+
1
,
d
>
e
?
iteratorImport
(
e
,
b
):(
isImporting
=!
1
,
$
(
"
#folderpath
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#importFolderLevelBtn
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#importfolder
"
).
val
(
""
),
$
(
"
#folderpath
"
).
val
(
""
),
$
(
"
#importpros
"
).
width
(
"
0%
"
),
$
(
"
#importpros
"
).
attr
(
"
aria-valuenow
"
,
"
0
"
),
$
(
"
#importbutton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#importcount
"
).
text
(
""
),
$
(
"
#importstatus
"
).
text
(
""
),
$
(
"
#importFolderModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
))):
"
uploaderror
"
==
c
?(
showImportFolderAlert
(
"
提示:出现意外错误,文件:[
"
+
f
+
"
]上传失败,上传被中断。
"
),
$
(
"
#ils_
"
+
a
).
text
(
"
[失败]
"
)):
"
foldersTotalOutOfLimit
"
==
c
?(
showImportFolderAlert
(
"
提示:该文件夹内存储的文件夹数量已达上限,文件:[
"
+
f
+
"
]上传失败,上传被中断。
"
),
$
(
"
#ils_
"
+
a
).
text
(
"
[失败]
"
)):
"
filesTotalOutOfLimit
"
==
c
?(
showImportFolderAlert
(
"
提示:该文件夹内存储的文件数量已达上限,文件:[
"
+
f
+
"
]上传失败,上传被中断。
"
),
$
(
"
#ils_
"
+
a
).
text
(
"
[失败]
"
)):(
showImportFolderAlert
(
"
提示:出现意外错误,文件:[
"
+
f
+
"
]上传失败,上传被中断。
"
),
$
(
"
#ils_
"
+
a
).
text
(
"
[失败]
"
))):(
showImportFolderAlert
(
"
提示:出现意外错误,文件:[
"
+
f
+
"
]上传失败,上传被中断。
"
),
$
(
"
#ils_
"
+
a
).
text
(
"
[失败]
"
))}):(
showImportFolderAlert
(
"
提示:要上传的文件不存在。
"
),
$
(
"
#importstatus
"
).
prepend
(
"
<p>未找到要上传的文件<span id='ils_
"
+
a
+
"
'>[失败]</span></p>
"
))}
function
abortImport
(){
isImporting
&&
(
isImporting
=!
1
,
null
!=
xhr
&&
xhr
.
abort
()),
$
(
"
#importFolderModal
"
).
modal
(
"
hide
"
),
showFolderView
(
locationpath
)}
function
changeImportFolderType
(
a
){
$
(
"
#importfoldertype
"
).
text
(
folderTypes
[
a
]),
$
(
"
#folderpath
"
).
attr
(
"
folderConstraintLevel
"
,
a
+
""
)}
function
doChangePassword
(){
var
change_oldPassword
,
change_newPassword
,
change_reqNewPassword
;
return
$
(
"
#changepassword_oldepwdbox,#changepassword_newpwdbox,#changepassword_reqnewpwdbox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#changepasswordalertbox
"
).
hide
(),
change_oldPassword
=
$
(
"
#changepassword_oldpwd
"
).
val
(),
change_newPassword
=
$
(
"
#changepassword_newpwd
"
).
val
(),
change_reqNewPassword
=
$
(
"
#changepassword_reqnewpwd
"
).
val
(),
0
==
change_oldPassword
.
length
?(
$
(
"
#changepassword_oldepwdbox
"
).
addClass
(
"
has-error
"
),
$
(
"
#changepassword_oldpwd
"
).
focus
(),
void
0
):
0
==
change_newPassword
.
length
?(
$
(
"
#changepassword_newpwdbox
"
).
addClass
(
"
has-error
"
),
$
(
"
#changepassword_newpwd
"
).
focus
(),
void
0
):
0
==
change_reqNewPassword
.
length
?(
$
(
"
#changepassword_reqnewpwdbox
"
).
addClass
(
"
has-error
"
),
$
(
"
#changepassword_reqnewpwd
"
).
focus
(),
void
0
):(
isChangingPassword
=!
0
,
$
(
"
#changepassword_oldpwd,#changepassword_newpwd,#changepassword_reqnewpwd,#changePasswordButton,#changepassword_vercode
"
).
attr
(
"
disabled
"
,
!
0
),
change_newPassword
+
""
!=
change_reqNewPassword
+
""
?(
showChangePasswordAlert
(
"
提示:两次输入的新密码不一致,请检查确认
"
),
$
(
"
#changepassword_newpwdbox
"
).
addClass
(
"
has-error
"
),
$
(
"
#changepassword_reqnewpwdbox
"
).
addClass
(
"
has-error
"
),
void
0
):(
$
.
ajax
({
url
:
"
homeController/getPublicKey.ajax
"
,
type
:
"
POST
"
,
data
:{},
dataType
:
"
text
"
,
success
:
function
(
result
){
var
encrypted
,
changepwd_publicKeyInfo
=
eval
(
"
(
"
+
result
+
"
)
"
),
changePasswordInfo
=
'
{oldPwd:"
'
+
change_oldPassword
+
'
",newPwd:"
'
+
change_newPassword
+
'
",time:"
'
+
changepwd_publicKeyInfo
.
time
+
'
"}
'
,
encrypt
=
new
JSEncrypt
;
encrypt
.
setPublicKey
(
changepwd_publicKeyInfo
.
publicKey
),
encrypted
=
encrypt
.
encrypt
(
changePasswordInfo
),
sendChangePasswordInfo
(
encrypted
)},
error
:
function
(){
showChangePasswordAlert
(
"
提示:密码修改失败,请检查网络链接或服务器运行状态
"
)}}),
void
0
))}
function
sendChangePasswordInfo
(
a
){
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
url
:
"
homeController/doChangePassword.ajax
"
,
data
:{
encrypted
:
a
,
vercode
:
$
(
"
#changepassword_vercode
"
).
val
()},
success
:
function
(
a
){
switch
(
$
(
"
#changepassword_vccodebox
"
).
hide
(),
isChangingPassword
=!
1
,
a
){
case
"
success
"
:
$
(
"
#changePasswordModal
"
).
modal
(
"
hide
"
);
break
;
case
"
mustlogin
"
:
showChangePasswordAlert
(
"
提示:登录已失效或尚未登录账户,请刷新并登陆账户
"
);
break
;
case
"
illegal
"
:
showChangePasswordAlert
(
"
提示:用户修改密码功能已被禁用,请求被拒绝
"
);
break
;
case
"
oldpwderror
"
:
showChangePasswordAlert
(
"
提示:旧密码输入错误,请求被拒绝
"
),
$
(
"
#changepassword_oldepwdbox
"
).
addClass
(
"
has-error
"
);
break
;
case
"
needsubmitvercode
"
:
$
(
"
#changepassword_oldpwd,#changepassword_newpwd,#changepassword_reqnewpwd,#changePasswordButton
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#changepassword_vccodebox
"
).
html
(
"
<label id='changepassword_vercodetitle' class='col-sm-5'><img id='changepassword_showvercode' class='vercodeimg' alt='点击获取验证码' src='homeController/getNewVerCode.do?s=
"
+
(
new
Date
).
getTime
()
+
"
' onclick='changePasswordGetNewVerCode()'></label><div class='col-sm-7'><input type='text' class='form-control' id='changepassword_vercode' placeholder='验证码……'></div>
"
),
$
(
"
#changepassword_vccodebox
"
).
show
(),
isChangingPassword
=!
1
;
break
;
case
"
invalidnewpwd
"
:
showChangePasswordAlert
(
"
提示:密码修改失败,新密码不合法。新密码的长度需为3-32个字符,且仅支持ISO-8859-1中的字符(推荐使用英文字母、英文符号及阿拉伯数字)。
"
);
break
;
case
"
error
"
:
showChangePasswordAlert
(
"
提示:密码修改失败,修改请求无法通过加密效验(可能是请求耗时过长导致的)
"
);
break
;
case
"
cannotchangepwd
"
:
showChangePasswordAlert
(
"
提示:密码修改失败,发生意外错误,请稍后重试或联系管理员
"
);
break
;
default
:
showChangePasswordAlert
(
"
提示:密码修改失败,发生未知错误
"
)}},
error
:
function
(){
showChangePasswordAlert
(
"
提示:密码修改失败,请检查网络链接或服务器运行状态
"
)}})}
function
showChangePasswordAlert
(
a
){
isChangingPassword
=!
1
,
$
(
"
#changepassword_oldpwd,#changepassword_newpwd,#changepassword_reqnewpwd,#changePasswordButton,#changepassword_vercode
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#changepasswordalertbox
"
).
show
(),
$
(
"
#changepasswordalertbox
"
).
text
(
a
)}
function
changePasswordGetNewVerCode
(){
$
(
"
#changepassword_showvercode
"
).
attr
(
"
src
"
,
"
homeController/getNewVerCode.do?s=
"
+
(
new
Date
).
getTime
())}
function
getFileChain
(
a
,
b
){
$
(
"
#fileChainTextarea
"
).
text
(
"
正在获取……
"
),
$
(
"
#copyChainBtn
"
).
attr
(
"
disabled
"
,
!
0
),
$
(
"
#fileChainModal
"
).
modal
(
"
show
"
),
$
.
ajax
({
type
:
"
POST
"
,
dataType
:
"
text
"
,
url
:
"
homeController/getFileChainKey.ajax
"
,
data
:{
fid
:
a
},
success
:
function
(
a
){
switch
(
a
){
case
"
ERROR
"
:
$
(
"
#fileChainTextarea
"
).
text
(
"
提示:获取失败,请刷新页面或稍后再试。
"
);
break
;
case
"
mustlogin
"
:
window
.
location
.
href
=
"
prv/login.html
"
;
break
;
default
:
$
(
"
#fileChainTextarea
"
).
text
(
window
.
location
.
protocol
+
"
//
"
+
window
.
location
.
host
+
"
/externalLinksController/chain/
"
+
encodeURIComponent
(
b
.
replace
(
/
\\
/g
,
"
_
"
))
+
"
?ckey=
"
+
encodeURIComponent
(
a
)),
$
(
"
#copyChainBtn
"
).
attr
(
"
disabled
"
,
!
1
)}},
error
:
function
(){
$
(
"
#fileChainTextarea
"
).
text
(
"
提示:获取失败,无法连接服务器。
"
)}})}
function
copyFileChain
(){
node
=
document
.
getElementById
(
"
fileChainTextarea
"
),
node
.
select
(),
document
.
execCommand
(
"
copy
"
)}
function
showNoticeModal
(){
$
(
"
#noticeModal
"
).
modal
(
"
show
"
)}
function
initNoticeModal
(){
$
(
"
#noticeModalBody
"
).
load
(
"
resourceController/getNoticeContext.do
"
,
function
(){
$
(
"
#noticeModalBody img
"
).
css
(
"
max-width
"
,
"
100%
"
),
winHeight
>=
300
?
$
(
"
#noticeModalBody
"
).
css
(
"
max-height
"
,
winHeight
-
180
+
"
px
"
):
$
(
"
#noticeModalBody
"
).
css
(
"
max-height
"
,
"
300px
"
),
noticeInited
=!
0
,
showNoticeModal
(),
showNoticeBtn
()})}
function
subscribeNotice
(){
$
.
ajax
({
url
:
"
resourceController/getNoticeMD5.ajax
"
,
data
:{},
type
:
"
POST
"
,
dataType
:
"
text
"
,
success
:
function
(
a
){
if
(
""
!=
a
){
var
b
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )notice_md5=([^;]*)(;|$)
"
));
if
(
b
){
if
(
a
==
unescape
(
b
[
2
]))
return
showNoticeBtn
(),
void
0
}
else
if
(
b
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )notice_md5_30=([^;]*)(;|$)
"
)),
b
&&
a
==
unescape
(
b
[
2
]))
return
showNoticeBtn
(),
void
0
;
initNoticeModal
(),
document
.
cookie
=
"
notice_md5=
"
+
escape
(
a
)}},
error
:
function
(){
alert
(
"
错误:无法从服务器获取公告信息,请尝试刷新页面。
"
)}})}
function
showNoticeBtn
(){
$
(
"
#shownoticebox
"
).
removeClass
(
"
hidden
"
),
$
(
"
#shownoticebox
"
).
addClass
(
"
show
"
)}
function
showNotice
(){
noticeInited
?
showNoticeModal
():
initNoticeModal
()}
function
loadingRemainingFolderView
(
targetId
){
var
newfoldersOffset
,
newfilesOffset
,
loadingRemainingRate_folders
,
loadingRemainingRate_files
,
loadingRemainingRate
;
if
(
!
remainingLoadingRequest
){
if
(
newfoldersOffset
=
0
,
newfilesOffset
=
0
,
folderView
.
foldersOffset
-
folderView
.
selectStep
>
0
&&
(
newfoldersOffset
=
folderView
.
foldersOffset
-
folderView
.
selectStep
),
folderView
.
filesOffset
-
folderView
.
selectStep
>
0
&&
(
newfilesOffset
=
folderView
.
filesOffset
-
folderView
.
selectStep
),
0
>=
newfoldersOffset
&&
0
>=
newfilesOffset
)
return
originFolderView
=
$
.
extend
(
!
0
,{},
folderView
),
hiddenLoadingRemaininngBox
(),
doFixedRow
(
targetId
),
void
0
;
loadingRemainingRate_folders
=
1
,
loadingRemainingRate_files
=
1
,
totalFoldersOffset
>
0
&&
(
loadingRemainingRate_folders
=
(
totalFoldersOffset
-
newfoldersOffset
)
/
totalFoldersOffset
),
totalFilesOffset
>
0
&&
(
loadingRemainingRate_files
=
(
totalFilesOffset
-
newfilesOffset
)
/
totalFilesOffset
),
loadingRemainingRate
=
(
loadingRemainingRate_folders
+
loadingRemainingRate_files
)
/
2
,
$
(
"
#loadingrate
"
).
text
(
parseInt
(
100
*
loadingRemainingRate
)
+
"
%
"
),
remainingLoadingRequest
=
$
.
ajax
({
url
:
"
homeController/getRemainingFolderView.ajax
"
,
data
:{
fid
:
locationpath
,
foldersOffset
:
newfoldersOffset
,
filesOffset
:
newfilesOffset
},
type
:
"
POST
"
,
dataType
:
"
text
"
,
success
:
function
(
result
){
switch
(
remainingLoadingRequest
=
null
,
result
){
case
"
ERROR
"
:
alert
(
"
错误:无法加载剩余文件列表,文件数据可能未显示完全,请刷新重试!
"
),
hiddenLoadingRemaininngBox
(),
doFixedRow
();
break
;
case
"
NOT_FOUND
"
:
case
"
notAccess
"
:
document
.
cookie
=
"
folder_id=
"
+
escape
(
"
root
"
);
case
"
mustLogin
"
:
window
.
location
.
href
=
"
/
"
;
break
;
default
:
folderView
.
foldersOffset
=
newfoldersOffset
,
folderView
.
filesOffset
=
newfilesOffset
;
var
remainingFV
=
eval
(
"
(
"
+
result
+
"
)
"
);
updateFolderTable
(
remainingFV
),
updateTheFolderInfo
(),
folderView
.
foldersOffset
>
0
||
folderView
.
filesOffset
>
0
?
loadingRemainingFolderView
(
targetId
):(
originFolderView
=
$
.
extend
(
!
0
,{},
folderView
),
hiddenLoadingRemaininngBox
(),
doFixedRow
(
targetId
))}},
error
:
function
(
a
,
b
){
remainingLoadingRequest
=
null
,
hiddenLoadingRemaininngBox
(),
"
abort
"
!=
b
&&
alert
(
"
错误:无法连接服务器,文件列表加载被中断。请刷新重试!
"
)}})}}
function
doFixedRow
(
a
){
a
&&
a
.
length
>
0
&&
(
$
(
"
#
"
+
a
).
addClass
(
"
info
"
),
$
(
"
html,body
"
).
animate
({
scrollTop
:
$
(
"
#
"
+
a
).
offset
().
top
-
$
(
window
).
height
()
/
2
},
"
slow
"
))}
function
showLoadingRemaininngBox
(){
loadingComplete
=!
1
,
$
(
"
#loadingremaininngbox
"
).
addClass
(
"
show
"
),
$
(
"
#loadingremaininngbox
"
).
removeClass
(
"
hidden
"
),
$
(
"
#searchbtn
"
).
attr
(
"
disabled
"
,
"
disabled
"
)}
function
hiddenLoadingRemaininngBox
(){
loadingComplete
=!
0
,
$
(
"
#loadingremaininngbox
"
).
removeClass
(
"
show
"
),
$
(
"
#loadingremaininngbox
"
).
addClass
(
"
hidden
"
),
$
(
"
#searchbtn
"
).
removeAttr
(
"
disabled
"
)}
function
updateFolderTable
(
a
){
var
g
,
h
,
i
,
j
,
b
=
folderView
.
authList
,
c
=!
1
,
d
=!
1
,
e
=!
1
,
f
=!
1
;
if
(
checkAuth
(
b
,
"
D
"
)
&&
(
c
=!
0
),
checkAuth
(
b
,
"
R
"
)
&&
(
d
=!
0
),
checkAuth
(
b
,
"
L
"
)
&&
(
e
=!
0
),
checkAuth
(
b
,
"
O
"
)
&&
(
f
=!
0
),
a
.
folderList
&&
a
.
folderList
.
length
>
0
)
for
(
g
=
a
.
folderList
.
length
;
g
>
0
;
g
--
)
h
=
a
.
folderList
[
g
-
1
],
folderContains
(
folderView
.
folderList
,
h
.
folderId
)
||
(
folderView
.
folderList
.
unshift
(
h
),
$
(
"
[iskfolder=true]:last
"
).
after
(
createNewFolderRow
(
h
,
c
,
d
,
f
)));
if
(
a
.
fileList
&&
a
.
fileList
.
length
>
0
)
for
(
i
=
a
.
fileList
.
length
;
i
>
0
;
i
--
)
j
=
a
.
fileList
[
i
-
1
],
fileContains
(
folderView
.
fileList
,
j
.
fileId
)
||
(
folderView
.
fileList
.
unshift
(
j
),
$
(
"
#foldertable
"
).
append
(
createFileRow
(
j
,
e
,
c
,
d
,
f
)))}
function
folderContains
(
a
,
b
){
for
(
var
c
=
a
.
length
;
c
>
0
;
c
--
)
if
(
a
[
c
-
1
].
folderId
==
b
)
return
!
0
;
return
!
1
}
function
fileContains
(
a
,
b
){
for
(
var
c
=
a
.
length
;
c
>
0
;
c
--
)
if
(
a
[
c
-
1
].
fileId
==
b
)
return
!
0
;
return
!
1
}
function
updateTheFolderInfo
(){
$
(
"
#fim_statistics
"
).
text
(
"
共包含
"
+
folderView
.
folderList
.
length
+
"
个文件夹,
"
+
folderView
.
fileList
.
length
+
"
个文件。
"
)}
function
replaceAllQuotationMarks
(
a
){
return
a
.
replace
(
/
\\
/g
,
"
\\\\
"
).
replace
(
/
\"
/g
,
'
\\
"
'
)}
function
html2Escape
(
a
){
return
a
.
replace
(
/
[
<>&
\']
/g
,
function
(
a
){
return
{
"
<
"
:
"
<
"
,
"
>
"
:
"
>
"
,
"
&
"
:
"
&
"
,
"
'
"
:
"
'
"
}[
a
]})}
var
ap
,
zipTimer
,
folderView
,
originFolderView
,
fs
,
ifs
,
checkedMovefiles
,
isCopy
,
repeMap
,
strMoveOptMap
,
mRepeSize
,
constraintLevel
,
account
,
importFolderName
,
xhr
,
viewer
,
viewerPageIndex
,
viewerTotal
,
pvl
,
winHeight
,
pingInt
,
loadingComplete
,
totalFoldersOffset
,
totalFilesOffset
,
remainingLoadingRequest
,
loadingFolderView
,
folderTypes
,
repeList
,
repeIndex
,
repeModelList
,
screenedFoldrView
,
getDownloadFileId
,
getDownloadFileName
,
locationpath
=
"
root
"
,
parentpath
=
"
null
"
,
isUpLoading
=!
1
,
isImporting
=!
1
,
isChangingPassword
=!
1
,
viewerPageSize
=
15
,
checkFilesTip
=
"
提示:您还未选择任何文件,请先选中一些文件后再执行本操作:<br /><br /><kbd>单击</kbd>:选中某一文件<br /><br /><kbd><kbd>Shift</kbd>+<kbd>单击</kbd></kbd>:选中多个文件<br /><br /><kbd><kbd>Shift</kbd>+<kbd>双击</kbd></kbd>:选中连续的文件<br /><br /><kbd><kbd>Shitf</kbd>+<kbd>A</kbd></kbd>:选中/取消选中所有文件
"
,
noticeInited
=!
1
;
$
(
function
(){
window
.
onresize
=
function
(){
changeFilesTableStyle
(),
updateWinHeight
()},
changeFilesTableStyle
(),
getServerOS
(),
subscribeNotice
();
var
a
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )folder_id=([^;]*)(;|$)
"
));
null
!=
a
?
showFolderView
(
unescape
(
a
[
2
])):
showFolderView
(
"
root
"
),
$
(
document
).
click
(
function
(
a
){
var
b
=
$
(
"
#filetable
"
)[
0
],
c
=
a
.
srcElement
;
c
||
(
c
=
a
.
target
),
c
===
b
||
$
.
contains
(
b
,
a
.
target
)
||
$
(
"
.filerow
"
).
removeClass
(
"
info
"
)}),
$
(
"
#audioPlayerModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
null
!=
ap
&&
(
ap
.
seek
(
0
),
ap
.
pause
()),
null
!=
pingInt
&&
(
window
.
clearInterval
(
pingInt
),
pingInt
=
null
)}),
$
(
"
#downloadAllCheckedModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
null
!=
zipTimer
&&
window
.
clearInterval
(
zipTimer
)}),
$
(
"
#loginModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
"
disabled
"
!==
$
(
"
#dologinButton
"
).
attr
(
"
disabled
"
)
&&
(
$
(
"
#accountid
"
).
val
(
""
),
$
(
"
#accountpwd
"
).
val
(
""
)),
$
(
"
#accountidbox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#accountpwdbox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#alertbox
"
).
removeClass
(
"
alert
"
),
$
(
"
#alertbox
"
).
removeClass
(
"
alert-danger
"
),
$
(
"
#alertbox
"
).
text
(
""
),
$
(
"
#vercodebox
"
).
html
(
""
),
$
(
"
#vercodebox
"
).
removeClass
(
"
show
"
),
$
(
"
#vercodebox
"
).
addClass
(
"
hidden
"
)}),
$
(
"
.modal
"
).
on
(
"
shown.bs.modal
"
,
function
(){
$
(
this
).
addClass
(
"
shown
"
)}),
$
(
"
.modal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
$
(
this
).
removeClass
(
"
shown
"
)}),
$
(
"
body
"
).
keypress
(
function
(
a
){
var
c
,
b
=
a
.
keyCode
?
a
.
keyCode
:
a
.
which
?
a
.
which
:
a
.
charCode
;
return
13
==
b
?(
"
sreachKeyWordIn
"
===
document
.
activeElement
.
id
?
doSearchFile
():(
c
=
$
(
"
.shown .btn-primary
"
),
null
!=
c
.
get
(
0
)
&&
0
==
c
.
prop
(
"
disabled
"
)
&&
c
.
click
()),
!
1
):
void
0
}),
$
(
"
#loginModal
"
).
on
(
"
shown.bs.modal
"
,
function
(){
$
(
"
#accountid
"
).
focus
()}),
$
(
"
#newFolderModal
"
).
on
(
"
show.bs.modal
"
,
function
(){
if
(
$
(
"
#folderalert
"
).
removeClass
(
"
alert
"
),
$
(
"
#folderalert
"
).
removeClass
(
"
alert-danger
"
),
$
(
"
#foldernamebox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#folderalert
"
).
text
(
""
),
$
(
"
#foldername
"
).
val
(
""
),
$
(
"
#foldertypelist
"
).
html
(
""
),
null
!=
account
){
$
(
"
#foldername
"
).
attr
(
"
folderConstraintLevel
"
,
constraintLevel
+
""
),
$
(
"
#newfoldertype
"
).
text
(
folderTypes
[
constraintLevel
]);
for
(
var
b
=
constraintLevel
;
b
<
folderTypes
.
length
;
b
++
)
$
(
"
#foldertypelist
"
).
append
(
"
<li><a onclick='changeNewFolderType(
"
+
b
+
"
)'>
"
+
folderTypes
[
b
]
+
"
</a></li>
"
)}
else
$
(
"
#foldertypelist
"
).
append
(
"
<li><a onclick='changeNewFolderType(0)'>
"
+
folderTypes
[
0
]
+
"
</a></li>
"
)}),
$
(
"
#newFolderModal
"
).
on
(
"
shown.bs.modal
"
,
function
(){
$
(
"
#foldername
"
).
focus
()}),
$
(
"
#uploadFileModal,#importFolderModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){(
isUpLoading
||
isImporting
)
&&
(
$
(
"
#operationMenuBox
"
).
attr
(
"
data-placement
"
,
"
top
"
),
$
(
"
#operationMenuBox
"
).
attr
(
"
data-trigger
"
,
"
focus
"
),
$
(
"
#operationMenuBox
"
).
attr
(
"
data-title
"
,
"
上传中
"
),
$
(
"
#operationMenuBox
"
).
attr
(
"
data-content
"
,
"
您可以重新打开上传窗口查看上传进度。
"
),
$
(
"
#operationMenuBox
"
).
popover
(),
$
(
"
#operationMenuBox
"
).
popover
(
"
show
"
),
setTimeout
(
function
(){
$
(
"
#operationMenuBox
"
).
attr
(
"
data-title
"
,
""
),
$
(
"
#operationMenuBox
"
).
attr
(
"
data-content
"
,
""
),
$
(
"
#operationMenuBox
"
).
popover
(
"
destroy
"
)},
2
e3
))}),
$
(
"
#renameFolderModal
"
).
on
(
"
show.bs.modal
"
,
function
(){
if
(
$
(
"
#editfolderalert
"
).
removeClass
(
"
alert
"
),
$
(
"
#editfolderalert
"
).
removeClass
(
"
alert-danger
"
),
$
(
"
#folderrenamebox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#editfolderalert
"
).
text
(
""
),
$
(
"
#editfoldertypelist
"
).
html
(
""
),
null
!=
account
)
for
(
var
b
=
constraintLevel
;
b
<
folderTypes
.
length
;
b
++
)
$
(
"
#editfoldertypelist
"
).
append
(
"
<li><a onclick='changeEditFolderType(
"
+
b
+
"
)'>
"
+
folderTypes
[
b
]
+
"
</a></li>
"
);
else
$
(
"
#editfoldertypelist
"
).
append
(
"
<li><a onclick='changeEditFolderType(0)'>
"
+
folderTypes
[
0
]
+
"
</a></li>
"
)}),
document
.
ondragover
=
function
(
a
){
a
.
preventDefault
?(
a
.
preventDefault
(),
a
.
stopPropagation
()):(
window
.
event
.
cancelBubble
=!
0
,
window
.
event
.
returnValue
=!
1
)},
document
.
ondrop
=
function
(
a
){
var
b
,
c
,
d
,
e
,
f
,
g
;
if
(
a
.
preventDefault
?(
a
.
preventDefault
(),
a
.
stopPropagation
()):(
window
.
event
.
cancelBubble
=!
0
,
window
.
event
.
returnValue
=!
1
),
null
!=
folderView
.
authList
)
if
(
checkAuth
(
folderView
.
authList
,
"
U
"
))
if
(
isUpLoading
||
isImporting
)
alert
(
"
提示:您正在执行另一项上传任务,请在上传完成后再试。
"
);
else
if
(
window
.
ActiveXObject
||
"
ActiveXObject
"
in
window
)
alert
(
"
提示:IE浏览器不支持拖拽上传。您可以使用现代浏览器或将浏览模式切换为“极速模式”来体验该功能。
"
);
else
{
if
(
b
=
null
!=
a
.
dataTransfer
?
a
.
dataTransfer
:
window
.
event
.
dataTransfer
,
c
=!
0
,
void
0
!==
b
.
items
)
for
(
d
=
0
;
d
<
b
.
items
.
length
;
d
++
)
e
=
b
.
items
[
d
],
"
file
"
===
e
.
kind
&&
e
.
webkitGetAsEntry
().
isFile
||
(
c
=!
1
);
else
for
(
d
=
0
;
d
<
b
.
files
.
length
;
d
++
)
if
(
f
=
df
.
files
[
d
],
f
.
type
);
else
try
{
g
=
new
FileReader
,
g
.
readAsDataURL
(
f
.
slice
(
0
,
10
)),
g
.
addEventListener
(
"
load
"
,
function
(){},
!
1
),
g
.
addEventListener
(
"
error
"
,
function
(){
c
=!
1
},
!
1
)}
catch
(
a
){
c
=!
1
}
c
?(
fs
=
a
.
dataTransfer
.
files
,
showUploadFileModel
(),
showfilepath
(),
checkUploadFile
()):
alert
(
"
提示:您拖入的文件中包含了一个或多个文件夹,无法进行上传。
"
)}
else
alert
(
"
提示:您不具备上传权限,无法上传文件。
"
);
else
alert
(
"
提示:您不具备上传权限,无法上传文件。
"
)},
$
(
document
).
keypress
(
function
(
a
){
if
(
0
==
$
(
"
.modal.shown
"
).
length
||
1
==
$
(
"
.modal.shown
"
).
length
&&
"
loadingModal
"
==
$
(
"
.modal.shown
"
).
attr
(
"
id
"
)){
var
b
=
a
.
keyCode
?
a
.
keyCode
:
a
.
which
?
a
.
which
:
a
.
charCode
;
if
(
isShift
(
a
)
&&
"
sreachKeyWordIn
"
!=
document
.
activeElement
.
id
){
switch
(
b
){
case
65
:
checkallfile
();
break
;
case
78
:
$
(
"
#createFolderButtonLi a
"
).
click
();
break
;
case
85
:
$
(
"
#uploadFileButtonLi a
"
).
click
();
break
;
case
68
:
$
(
"
#deleteSeelectFileButtonLi a
"
).
click
();
break
;
case
70
:
$
(
"
#uploadFolderButtonLi a
"
).
click
();
break
;
case
67
:(
void
0
==
checkedMovefiles
||
0
==
checkedMovefiles
.
size
)
&&
$
(
"
#copyFileButtonLi a
"
).
click
();
break
;
case
88
:(
void
0
==
checkedMovefiles
||
0
==
checkedMovefiles
.
size
)
&&
$
(
"
#cutFileButtonLi a
"
).
click
();
break
;
case
86
:
void
0
!==
checkedMovefiles
&&
checkedMovefiles
.
size
>
0
&&
$
(
"
#stickFileButtonLi a
"
).
click
();
break
;
default
:
return
!
0
}
return
!
1
}}}),
$
(
"
#moveFilesModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
checkedMovefiles
=
void
0
,
$
(
"
#copyFileButtonLi
"
).
removeClass
(
"
hidden
"
),
$
(
"
#copyFileButtonLi
"
).
addClass
(
"
show
"
),
$
(
"
#cutFileButtonLi
"
).
removeClass
(
"
hidden
"
),
$
(
"
#cutFileButtonLi
"
).
addClass
(
"
show
"
),
$
(
"
#stickFileButtonLi
"
).
removeClass
(
"
show
"
),
$
(
"
#stickFileButtonLi
"
).
addClass
(
"
hidden
"
),
$
(
"
#stickFilesCount
"
).
text
(
""
),
$
(
"
#moveFilesBox
"
).
html
(
""
)}),
"
function
"
!=
typeof
String
.
prototype
.
startsWith
&&
(
String
.
prototype
.
startsWith
=
function
(
a
){
return
this
.
slice
(
0
,
a
.
length
)
===
a
}),
"
function
"
!=
typeof
String
.
prototype
.
endsWith
&&
(
String
.
prototype
.
endsWith
=
function
(
a
){
return
-
1
!==
this
.
indexOf
(
a
,
this
.
length
-
a
.
length
)}),
$
(
"
#downloadModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
$
(
"
#downloadURLCollapse
"
).
collapse
(
"
hide
"
)}),
updateWinHeight
(),
$
(
window
).
scroll
(
function
(){
$
(
this
).
scrollTop
()
>
2
*
winHeight
?
$
(
"
#gobacktotopbox
"
).
removeClass
(
"
hidden
"
):
$
(
"
#gobacktotopbox
"
).
addClass
(
"
hidden
"
)}),
$
(
"
#downloadURLCollapse
"
).
on
(
"
shown.bs.collapse
"
,
function
(){
getDownloadURL
()}),
$
(
"
#changePasswordModal
"
).
on
(
"
show.bs.modal
"
,
function
(){
isChangingPassword
||
(
$
(
"
#changepassword_oldpwd,#changepassword_newpwd,#changepassword_reqnewpwd,#changePasswordButton,#changepassword_vercode
"
).
attr
(
"
disabled
"
,
!
1
),
$
(
"
#changepassword_oldepwdbox,#changepassword_newpwdbox,#changepassword_reqnewpwdbox
"
).
removeClass
(
"
has-error
"
),
$
(
"
#changepassword_oldpwd,#changepassword_newpwd,#changepassword_reqnewpwd
"
).
val
(
""
),
$
(
"
#changepasswordalertbox,#changepassword_vccodebox
"
).
hide
())}),
$
(
"
#changePasswordModal
"
).
on
(
"
shown.bs.modal
"
,
function
(){
isChangingPassword
||
$
(
"
#changepassword_oldpwd
"
).
focus
()}),
$
(
"
#noticeModal
"
).
on
(
"
show.bs.modal
"
,
function
(){
var
b
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )notice_md5_30=([^;]*)(;|$)
"
));
b
?
$
(
"
#dontShowSomeNoticeAt30Day
"
).
attr
(
"
checked
"
,
"
checked
"
):
$
(
"
#dontShowSomeNoticeAt30Day
"
).
attr
(
"
checked
"
,
!
1
)}),
$
(
"
#noticeModal
"
).
on
(
"
hidden.bs.modal
"
,
function
(){
var
c
,
d
,
b
=
new
Date
;
$
(
"
#dontShowSomeNoticeAt30Day
"
).
prop
(
"
checked
"
)?(
b
.
setTime
(
b
.
getTime
()
+
2592
e6
),
c
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )notice_md5=([^;]*)(;|$)
"
)),
c
?
document
.
cookie
=
"
notice_md5_30=
"
+
escape
(
unescape
(
c
[
2
]))
+
"
;expires=
"
+
b
.
toUTCString
():(
c
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )notice_md5_30=([^;]*)(;|$)
"
)),
c
&&
(
document
.
cookie
=
"
notice_md5_30=
"
+
escape
(
unescape
(
c
[
2
]))
+
"
;expires=
"
+
b
.
toUTCString
()))):(
b
.
setTime
(
0
),
d
=
document
.
cookie
.
match
(
new
RegExp
(
"
(^| )notice_md5_30=([^;]*)(;|$)
"
)),
d
&&
(
document
.
cookie
=
"
notice_md5_30=0;expires=
"
+
b
.
toUTCString
()))})}),
folderTypes
=
[
"
公开的
"
,
"
仅小组
"
,
"
仅创建者
"
];
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录