mirror of https://gitee.com/zhang_1334717033/kiftd
Compare commits
38 Commits
v1.0.20-re
...
master
| Author | SHA1 | Date |
|---|---|---|
|
|
dbb335ca09 | |
|
|
eaf74ae6c5 | |
|
|
2a81d74a51 | |
|
|
7e44880f93 | |
|
|
79e6f2a434 | |
|
|
9d104a2de9 | |
|
|
317b6bb50a | |
|
|
ea59059f33 | |
|
|
5c19709a2d | |
|
|
00817287c8 | |
|
|
077c3150fa | |
|
|
4f5d0e377b | |
|
|
8b7a235b25 | |
|
|
18cfba5249 | |
|
|
de84f1885c | |
|
|
cbc838895d | |
|
|
2b5d2152e6 | |
|
|
54018d6e7b | |
|
|
ab12390b51 | |
|
|
5ba01aaebc | |
|
|
23ef3fd95c | |
|
|
9c3ab72d57 | |
|
|
5a55a2937d | |
|
|
21319d7e34 | |
|
|
b9c332d48d | |
|
|
68bae3d79d | |
|
|
1a3ca0b9ab | |
|
|
57eeb3164c | |
|
|
efd8d991ff | |
|
|
67322caf88 | |
|
|
8b4952bb83 | |
|
|
38eb22c742 | |
|
|
07a1c8f175 | |
|
|
642e9a0e8b | |
|
|
2bcc6e7a7f | |
|
|
c54fd6b0ea | |
|
|
690805759d | |
|
|
08b6d9ccd2 |
22
README.md
22
README.md
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
## 快速导航
|
||||
* 访问kiftd官方主页来快速了解kiftd? -- [kiftd官方主页](https://kohgylw.gitee.io/)
|
||||
* 国内托管地址——腾讯开发者平台上的项目主页:https://dev.tencent.com/u/kohgylw/p/kiftd/git -- [点击下载](https://dev.tencent.com/u/kohgylw/p/kiftd/git/archive/master)
|
||||
* 国内托管地址——阿里云上的项目主页:https://code.aliyun.com/kohgylw/kiftd/tree/master -- [点击下载](https://code.aliyun.com/kohgylw/kiftd/repository/archive.zip?ref=master)
|
||||
* 国内托管地址——码云上的项目主页: https://gitee.com/kohgylw/kiftd -- [点击下载](https://gitee.com/kohgylw/kiftd/repository/archive/master.zip)
|
||||
* 国际托管地址——github上的项目主页: https://github.com/KOHGYLW/kiftd -- [点击下载](https://github.com/KOHGYLW/kiftd/archive/master.zip)
|
||||
|
||||
|
|
@ -64,8 +64,8 @@ _注:kift为该功能的开发名称,其实际成果命名为kiftd。_
|
|||
|
||||
### 现在,您只需抽出3分钟时间,就可以立即体验这款专业快捷的网盘服务器了。
|
||||
|
||||
* 马上下载本网盘服务器?请点击右上方绿色按钮“Clone or Download”,之后选择“Download ZIP”进行下载(Github),也可以前往国内托管的下载地址: https://gitee.com/kohgylw/kiftd (码云)
|
||||
* 想要开始使用?您应该从阅读《kiftd说明文档》开始,这是一份十分全面的官方介绍文档,简单易懂且图文并茂,相信您能很快学会它。想在线阅读?请直接点击上方文件列表中的《kiftd说明文档》来在线预览(该操作仅GitHub有效)。
|
||||
* 马上下载本网盘服务器?请点击右上方绿色按钮“Clone or Download”,之后选择“Download ZIP”进行下载(Github),也可以前往国内托管的下载地址: https://gitee.com/kohgylw/kiftd (码云)或 https://code.aliyun.com/kohgylw/kiftd/tree/master (阿里云)
|
||||
* 想要开始使用?您应该从阅读《kiftd说明文档》开始,这是一份十分全面的官方介绍文档,简单易懂且图文并茂,相信您能很快学会它。想在线阅读?请直接点击上方文件列表中的《kiftd说明文档》来在线预览(该操作仅GitHub有效)
|
||||
* 立刻获取源代码?请访问本应用代码托管地址:https://github.com/KOHGYLW/kiftd-source (Github)
|
||||
* 使用中遇到问题?请将您的发现提交到 https://github.com/KOHGYLW/kiftd/issues (Github)
|
||||
* 需要联系作者?请立即发件至 kohgylw@163.com ,描述您所遇到的任何问题
|
||||
|
|
@ -77,15 +77,11 @@ _注:kift为该功能的开发名称,其实际成果命名为kiftd。_
|
|||
|
||||
> 提示:当您更新版本后,请手动清除浏览器的缓存,之后刷新网盘主页以确保数据文件保持最新!否则可能导致新版页面功能无法使用。
|
||||
|
||||
### 新版本v1.0.20
|
||||
_本次更新增加了较多用户们一直期待的、实用性较强的新功能,进一步增强kiftd的使用体验。推荐所有用户升级体验。_
|
||||
+ 文件夹上传——现在,众多用户期待已久的上传文件夹功能现已上线。当用户同时具备“上传”和“新建文件夹”权限时,便可使用该功能进行文件夹的上传,同时还可以像新建文件夹一样自由设置上传后的文件夹的访问级别。详情请见《kiftd说明文档》。
|
||||
+ PPT预览功能——现在,众多用户期待已久的PPT文档在线预览功能正式上线,方便办公使用。PPT预览功能提供ppt和pptx格式的在线打开和预览,且该功能无需额外安装任何插件,可免费用于商业用途。注:在线预览无法显示动画效果,部分复杂内容可能与官方PPT版式有所差异。
|
||||
+ 添加扩展存储区——现在,kiftd的文件系统允许用户额外添加最多31个“扩展存储区”路径。这些“扩展存储区”能够设置在不同的硬盘分区中并分担“主文件系统存储区”的存储压力,从而方便用户在不借助硬盘阵列技术的前提下使用多块硬盘来进一步扩展kiftd的可用容量。详情请见《kiftd说明文档》。
|
||||
+ 升级了文件列表的排序功能——文件列表现在可以对文件的各项属性进行切换式的双向(升序/降序)排序。
|
||||
+ 优化文件列表的显示顺序——文件列表现在将按照上传的时间由新至旧向下排列显示,更加贴合用户的查看习惯。
|
||||
+ 优化配置检查机制——当配置出现错误后系统将不再自动还原初配置文件,以便用户根据提示信息进行检查和修改。
|
||||
+ 进一步提高了文件系统的安全性和稳定性。
|
||||
### 常规更新v1.0.35
|
||||
_本次更新为维护性的更新,修复一些已经发现的问题并优化使用体验,推荐所有用户升级。_
|
||||
+ 修复了当用户执行批量上传操作时,中途切换所在的文件夹可能会导致上传路径发生改变的问题。
|
||||
+ 升级了内置的MySQL数据库驱动的版本。
|
||||
|
||||
|
||||
> 需要查看更多版本历史信息?请访问: https://kohgylw.gitee.io/News.html
|
||||
|
||||
|
|
@ -128,4 +124,4 @@ _本次更新增加了较多用户们一直期待的、实用性较强的新功
|
|||
|
||||
_作者会每隔1-3周浏览一次邮箱,如未能及时回复请耐心等待。回复或许会迟到,但它不会缺席。_
|
||||
|
||||
2018-09-29 kohgylw@青阳龙野 作者保留版权
|
||||
2018-2020 kohgylw@青阳龙野 作者保留版权
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
kiftd说明文档.pdf
BIN
kiftd说明文档.pdf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -13,18 +13,35 @@
|
|||
|
||||
<select id="queryById" parameterType="java.lang.String"
|
||||
resultMap="BaseResultMap">
|
||||
SELECT * FROM FOLDER WHERE folder_id = #{fid,jdbcType=VARCHAR}
|
||||
SELECT * FROM FOLDER WHERE folder_id =
|
||||
#{fid,jdbcType=VARCHAR}
|
||||
</select>
|
||||
|
||||
<select id="queryByParentId" parameterType="java.lang.String"
|
||||
resultMap="BaseResultMap">
|
||||
SELECT * FROM FOLDER WHERE folder_parent = #{pid,jdbcType=VARCHAR}
|
||||
SELECT * FROM FOLDER WHERE folder_parent =
|
||||
#{pid,jdbcType=VARCHAR} LIMIT 0,2147483647
|
||||
</select>
|
||||
|
||||
<select id="countByParentId" parameterType="java.lang.String"
|
||||
resultType="java.lang.Long">
|
||||
SELECT COUNT(folder_id) FROM FOLDER WHERE folder_parent =
|
||||
#{pid,jdbcType=VARCHAR}
|
||||
</select>
|
||||
|
||||
<select id="queryByParentIdSection" parameterType="java.util.Map"
|
||||
resultMap="BaseResultMap">
|
||||
SELECT * FROM FOLDER WHERE folder_parent =
|
||||
#{pid,jdbcType=VARCHAR} LIMIT
|
||||
#{offset,jdbcType=INTEGER},#{rows,jdbcType=INTEGER}
|
||||
</select>
|
||||
|
||||
<select id="queryByParentIdAndFolderName" parameterType="java.util.Map"
|
||||
resultMap="BaseResultMap">
|
||||
SELECT * FROM FOLDER WHERE folder_parent = #{parentId,jdbcType=VARCHAR} AND
|
||||
folder_name = #{folderName,jdbcType=VARCHAR}
|
||||
SELECT * FROM FOLDER WHERE folder_parent =
|
||||
#{parentId,jdbcType=VARCHAR} AND
|
||||
folder_name =
|
||||
#{folderName,jdbcType=VARCHAR}
|
||||
</select>
|
||||
|
||||
<insert id="insertNewFolder" parameterType="kohgylw.kiftd.server.model.Folder">
|
||||
|
|
@ -33,16 +50,21 @@
|
|||
</insert>
|
||||
|
||||
<delete id="deleteById" parameterType="java.lang.String">
|
||||
DELETE FROM FOLDER WHERE folder_id=#{folderId,jdbcType=VARCHAR}
|
||||
DELETE FROM FOLDER WHERE
|
||||
folder_id=#{folderId,jdbcType=VARCHAR}
|
||||
</delete>
|
||||
|
||||
<update id="updateFolderNameById" parameterType="java.util.Map">
|
||||
UPDATE FOLDER SET folder_name = #{newName,jdbcType=VARCHAR} WHERE folder_id
|
||||
= #{folderId,jdbcType=VARCHAR}
|
||||
UPDATE FOLDER
|
||||
SET folder_name = #{newName,jdbcType=VARCHAR} WHERE folder_id
|
||||
=
|
||||
#{folderId,jdbcType=VARCHAR}
|
||||
</update>
|
||||
|
||||
<update id="updateFolderConstraintById" parameterType="java.util.Map">
|
||||
UPDATE FOLDER SET folder_constraint = #{newConstraint,jdbcType=INTEGER} WHERE folder_id
|
||||
UPDATE
|
||||
FOLDER SET folder_constraint = #{newConstraint,jdbcType=INTEGER} WHERE
|
||||
folder_id
|
||||
= #{folderId,jdbcType=VARCHAR}
|
||||
</update>
|
||||
|
||||
|
|
@ -52,4 +74,15 @@
|
|||
#{folderId,jdbcType=VARCHAR}
|
||||
</update>
|
||||
|
||||
<update id="update" parameterType="kohgylw.kiftd.server.model.Folder">
|
||||
UPDATE FOLDER SET folder_name
|
||||
=
|
||||
#{folderName,jdbcType=VARCHAR},folder_creation_date =
|
||||
#{folderCreationDate,jdbcType=VARCHAR},folder_creator =
|
||||
#{folderCreator,jdbcType=VARCHAR},folder_parent =
|
||||
#{folderParent,jdbcType=VARCHAR},folder_constraint =
|
||||
#{folderConstraint,jdbcType=INTEGER} WHERE folder_id =
|
||||
#{folderId,jdbcType=VARCHAR}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -16,6 +16,19 @@
|
|||
<select id="queryByParentFolderId" parameterType="java.lang.String"
|
||||
resultMap="BaseResultMap">
|
||||
SELECT * FROM FILE WHERE file_parent_folder =
|
||||
#{pfid,jdbcType=VARCHAR} LIMIT 0,2147483647
|
||||
</select>
|
||||
|
||||
<select id="queryByParentFolderIdSection" parameterType="java.util.Map"
|
||||
resultMap="BaseResultMap">
|
||||
SELECT * FROM FILE WHERE file_parent_folder =
|
||||
#{pfid,jdbcType=VARCHAR} LIMIT
|
||||
#{offset,jdbcType=INTEGER},#{rows,jdbcType=INTEGER}
|
||||
</select>
|
||||
|
||||
<select id="countByParentFolderId" parameterType="java.lang.String"
|
||||
resultType="java.lang.Long">
|
||||
SELECT COUNT(file_id) FROM FILE WHERE file_parent_folder =
|
||||
#{pfid,jdbcType=VARCHAR}
|
||||
</select>
|
||||
|
||||
|
|
@ -57,14 +70,17 @@
|
|||
#{fileId,jdbcType=VARCHAR}
|
||||
</update>
|
||||
|
||||
<select id="queryAll" resultMap="BaseResultMap">
|
||||
SELECT * FROM FILE
|
||||
</select>
|
||||
|
||||
<select id="queryByPath" parameterType="java.lang.String"
|
||||
resultMap="BaseResultMap">
|
||||
SELECT * FROM FILE WHERE file_path =
|
||||
#{path,jdbcType=VARCHAR}
|
||||
#{path,jdbcType=VARCHAR} LIMIT 0,2147483647
|
||||
</select>
|
||||
|
||||
<select id="queryByPathExcludeById" parameterType="java.util.Map"
|
||||
resultMap="BaseResultMap">
|
||||
SELECT * FROM FILE WHERE file_path =
|
||||
#{path,jdbcType=VARCHAR} AND file_id <>
|
||||
#{fileId,jdbcType=VARCHAR} LIMIT 0,2147483647
|
||||
</select>
|
||||
|
||||
<select id="queryBySomeFolder" parameterType="java.lang.String"
|
||||
|
|
@ -72,13 +88,7 @@
|
|||
SELECT * FROM FILE WHERE file_parent_folder in (SELECT
|
||||
file_parent_folder
|
||||
FROM FILE WHERE file_id =
|
||||
#{fileId,jdbcType=VARCHAR})
|
||||
#{fileId,jdbcType=VARCHAR}) LIMIT 0,2147483647
|
||||
</select>
|
||||
|
||||
<update id="moveById" parameterType="java.util.Map">
|
||||
UPDATE FILE SET
|
||||
file_parent_folder = #{locationpath,jdbcType=VARCHAR} WHERE file_id =
|
||||
#{fileId,jdbcType=VARCHAR}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="kohgylw.kiftd.server.mapper.PropertiesMapper">
|
||||
<resultMap id="BaseResultMap" type="kohgylw.kiftd.server.model.Propertie">
|
||||
<id column="propertie_key" jdbcType="VARCHAR" property="propertieKey" />
|
||||
<result column="propertie_value" jdbcType="VARCHAR" property="propertieValue" />
|
||||
</resultMap>
|
||||
|
||||
<insert id="insert" parameterType="kohgylw.kiftd.server.model.Propertie">
|
||||
INSERT INTO PROPERTIES
|
||||
VALUES(#{propertieKey,jdbcType=VARCHAR},#{propertieValue,jdbcType=VARCHAR})
|
||||
</insert>
|
||||
|
||||
<update id="update" parameterType="kohgylw.kiftd.server.model.Propertie">
|
||||
UPDATE PROPERTIES SET propertie_value =
|
||||
#{propertieValue,jdbcType=VARCHAR} WHERE propertie_key =
|
||||
#{propertieKey,jdbcType=VARCHAR}
|
||||
</update>
|
||||
|
||||
<delete id="deleteByKey" parameterType="java.lang.String">
|
||||
DELETE FROM PROPERTIES WHERE
|
||||
propertie_key = #{propertieKey,jdbcType=VARCHAR}
|
||||
</delete>
|
||||
|
||||
<select id="selectByKey" parameterType="java.lang.String"
|
||||
resultMap="BaseResultMap">
|
||||
SELECT * FROM PROPERTIES WHERE propertie_key =
|
||||
#{propertieKey,jdbcType=VARCHAR}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -96,6 +96,21 @@ body {
|
|||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.shownoticebox {
|
||||
width: 40px;
|
||||
height: 75px;
|
||||
position: fixed;
|
||||
top: 50px;
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
.shownoticebutton {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #FCFCFC;
|
||||
color: #104E8B; alpha (Opacity=70);
|
||||
}
|
||||
|
||||
td {
|
||||
word-break: break-all;
|
||||
word-wrap: break-all;
|
||||
|
|
@ -106,3 +121,13 @@ td {
|
|||
max-height: 35px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.loadingremaininngbox {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
line-height: 40px;
|
||||
color: #104E8B; alpha (Opacity=70);
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
@charset "UTF-8";.titlebox{height:30px;line-height:30px;padding-top:5px;padding-bottom:5px;padding-left:10px;padding-right:10px;position:relative;bottom:-7px}.titletext{color:#000;font-size:22px}.graytext{color:#8b8b8b}.subtitle{color:#5cacee;text-align:center}.rightbtn{border-right:10px;float:right;margin-left:10px}.heading{margin-top:-10px;margin-bottom:-10px}.centerText{text-align:center}.uploadstatusbox{color:#9c9c9c;height:48px;overflow:auto}html{height:100%}body{height:100%}.loading{line-height:56px;color:#545454;padding-left:60px;font-size:15px;background:#fff url(loading.gif) no-repeat 10px 50%;opacity:.7;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;filter:alpha(opacity=70)}.wordbreak{word-break:break-all}.filetableheaderstyle{height:40px;float:left;height:100%;margin-top:15px;overflow:hidden}.gobacktopbox{width:100%;height:30px;position:fixed;top:0;left:0}.gobacktopbutton{width:150px;height:35px;background-color:#fcfcfc;color:#104e8b;alpha(Opacity=70);-moz-opacity:.7;opacity:.7}td{word-break:break-all;word-wrap:break-all}.vercodeimg{width:100%;max-height:35px;cursor:pointer}
|
||||
@charset "UTF-8";.titlebox{height:30px;line-height:30px;padding-top:5px;padding-bottom:5px;padding-left:10px;padding-right:10px;position:relative;bottom:-7px}.titletext{color:#000;font-size:22px}.graytext{color:#8b8b8b}.subtitle{color:#5cacee;text-align:center}.rightbtn{border-right:10px;float:right;margin-left:10px}.heading{margin-top:-10px;margin-bottom:-10px}.centerText{text-align:center}.uploadstatusbox{color:#9c9c9c;height:48px;overflow:auto}html{height:100%}body{height:100%}.loading{line-height:56px;color:#545454;padding-left:60px;font-size:15px;background:#fff url(loading.gif) no-repeat 10px 50%;opacity:.7;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;filter:alpha(opacity=70)}.wordbreak{word-break:break-all}.filetableheaderstyle{height:40px;float:left;height:100%;margin-top:15px;overflow:hidden}.gobacktopbox{width:100%;height:30px;position:fixed;top:0;left:0}.gobacktopbutton{width:150px;height:35px;background-color:#fcfcfc;color:#104e8b;alpha(Opacity=70);-moz-opacity:.7;opacity:.7}.shownoticebox{width:40px;height:75px;position:fixed;top:50px;right:0}.shownoticebutton{width:100%;height:100%;background-color:#fcfcfc;color:#104e8b;alpha(Opacity=70)}td{word-break:break-all;word-wrap:break-all}.vercodeimg{width:100%;max-height:35px;cursor:pointer}.loadingremaininngbox{width:100%;height:40px;position:fixed;bottom:0;left:0;line-height:40px;color:#104e8b;alpha(Opacity=70)}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,7 @@
|
|||
<!doctype html>
|
||||
<!-- kiftd 主页面 by 青阳龙野 -->
|
||||
<!-- 青阳网络文件传输系统 kiftd v1.0.35-RELEASE -->
|
||||
<!-- 欢迎访问主界面 -->
|
||||
<!-- by 青阳龙野(kohgylw@163.com) -->
|
||||
<html>
|
||||
<head>
|
||||
<base href="/">
|
||||
|
|
@ -38,8 +40,9 @@
|
|||
class="graytext">KIFT</span>
|
||||
</small>
|
||||
</em>
|
||||
</span> <span id="tb" class="rightbtn"></span>
|
||||
<button class="btn btn-link rightbtn" onclick="refreshFolderView()">
|
||||
</span> <span id="tb" class="rightbtn hidden-xs"></span>
|
||||
<button class="btn btn-link rightbtn hidden-xs"
|
||||
onclick="refreshFolderView()">
|
||||
刷新 <span class="glyphicon glyphicon-repeat" aria-hidden="true"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -49,7 +52,7 @@
|
|||
<!-- 信息栏、操作栏与文件列表 -->
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<p id="vicetbbox" class="subtitle" style="display: none;">
|
||||
<p class="subtitle visible-xs-block">
|
||||
<span id="tb2"></span>
|
||||
<button class="btn btn-link" onclick="refreshFolderView()">
|
||||
刷新 <span class="glyphicon glyphicon-repeat" aria-hidden="true"></span>
|
||||
|
|
@ -81,13 +84,12 @@
|
|||
class="caret"></span></a>
|
||||
<ul class="dropdown-menu" id="parentFolderList"></ul></li>
|
||||
</ul>
|
||||
<form id="filetableoptmenusreach"
|
||||
class="navbar-form navbar-left">
|
||||
<form class="navbar-form navbar-left hidden-xs">
|
||||
<div class="form-group">
|
||||
<input id="sreachKeyWordIn" type="text" class="form-control"
|
||||
placeholder="请输入文件名...">
|
||||
</div>
|
||||
<button type="button" class="btn btn-default"
|
||||
<button id="searchbtn" type="button" class="btn btn-default"
|
||||
onclick="doSearchFile()">搜索</button>
|
||||
</form>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
|
|
@ -99,23 +101,34 @@
|
|||
class="glyphicon glyphicon-cog"></span> 操作 <span
|
||||
class="caret"></span></a>
|
||||
<ul class="dropdown-menu" id="fileListDropDown">
|
||||
<li id="uploadFileButtonLi"><a>上传文件 <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>上传文件夹 <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>新建文件夹 <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="cutFileButtonLi"><a><span id='cutSignTx'>剪切
|
||||
<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="deleteSeelectFileButtonLi"><a>删除 <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
|
||||
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
|
||||
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+D</span></a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
|
|
@ -127,13 +140,14 @@
|
|||
<tr>
|
||||
<th onclick="sortbyfn()">文件名<span id="sortByFN"
|
||||
aria-hidden="true" style="float: right"></span></th>
|
||||
<th class="hiddenColumn" onclick="sortbycd()">创建日期<span
|
||||
<th class="hidden-xs" onclick="sortbycd()">创建日期<span
|
||||
id="sortByCD" aria-hidden="true" style="float: right"></span></th>
|
||||
<th onclick="sortbyfs()">大小<span id="sortByFS"
|
||||
aria-hidden="true" style="float: right"></span></th>
|
||||
<th class="hiddenColumn" onclick="sortbycn()">创建者<span
|
||||
<th class="hidden-xs" onclick="sortbycn()">创建者<span
|
||||
id="sortByCN" aria-hidden="true" style="float: right"></span></th>
|
||||
<th onclick="showOriginFolderView()">操作</th>
|
||||
<th onclick="showOriginFolderView()">操作<span id="sortByOR"
|
||||
aria-hidden="true" style="float: right"></span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="foldertable"></tbody>
|
||||
|
|
@ -281,7 +295,8 @@
|
|||
<h5 id="deleteFolderMessage"></h5>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button 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>
|
||||
|
|
@ -428,9 +443,9 @@
|
|||
onclick="checkimportpath()" onfocus="this.blur()"
|
||||
placeholder="请点击选择要上传的文件夹……" folderConstraintLevel="0">
|
||||
<div class="input-group-btn">
|
||||
<button id="importFolderLevelBtn" type="button" class="btn btn-default dropdown-toggle"
|
||||
data-toggle="dropdown" aria-haspopup="true"
|
||||
aria-expanded="false">
|
||||
<button id="importFolderLevelBtn" type="button"
|
||||
class="btn btn-default dropdown-toggle" data-toggle="dropdown"
|
||||
aria-haspopup="true" aria-expanded="false">
|
||||
<span id="importfoldertype">公开的</span> <span
|
||||
class="caret"></span>
|
||||
</button>
|
||||
|
|
@ -440,7 +455,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<input type="file" id="importfolder" style="display: none;"
|
||||
onchange="getInputImport()" multiple="multiple" webkitdirectory>
|
||||
onchange="getInputImport()" multiple="multiple"
|
||||
webkitdirectory="true">
|
||||
<h5>
|
||||
上传进度:<span id="importcount"></span>
|
||||
</h5>
|
||||
|
|
@ -466,8 +482,7 @@
|
|||
</p>
|
||||
<p>
|
||||
<button id="importcoverbtn" type="button"
|
||||
class="btn btn-danger btn-sm"
|
||||
onclick="importAndCover()">覆盖</button>
|
||||
class="btn btn-danger btn-sm" onclick="importAndCover()">覆盖</button>
|
||||
<button type="button" class="btn btn-default btn-sm"
|
||||
onclick="abortImport()">取消上传</button>
|
||||
<button type="button" class="btn btn-default btn-sm"
|
||||
|
|
@ -476,7 +491,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" onclick='abortImport()'>取消</button>
|
||||
<button type="button" class="btn btn-default"
|
||||
onclick='abortImport()'>取消</button>
|
||||
<button id="importbutton" type='button' class='btn btn-primary'
|
||||
onclick='checkImportFolder()'>开始上传</button>
|
||||
</div>
|
||||
|
|
@ -532,7 +548,8 @@
|
|||
<h5 id="deleteFileMessage" class="wordbreak"></h5>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button 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>
|
||||
|
|
@ -596,7 +613,8 @@
|
|||
</h5>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button 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>
|
||||
|
|
@ -685,7 +703,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button 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>
|
||||
|
|
@ -714,6 +733,8 @@
|
|||
<dd id="fim_folderCreationDate"></dd>
|
||||
<dt>文件统计:</dt>
|
||||
<dd id="fim_statistics"></dd>
|
||||
<dt>文件夹ID:</dt>
|
||||
<dd id="fim_folderId"></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
|
|
@ -723,6 +744,119 @@
|
|||
</div>
|
||||
</div>
|
||||
<!-- end 文件夹详情模态框 -->
|
||||
<!-- 修改密码模态框 -->
|
||||
<div class="modal fade bs-example-modal-sm" id="changePasswordModal"
|
||||
tabindex="-1" role="dialog" aria-labelledby="changePasswordModelTitle">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal"
|
||||
aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title" id="changePasswordModelTitle">
|
||||
<span class="glyphicon glyphicon-edit"></span> 修改密码
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal">
|
||||
<div class="form-group" id="changepassword_oldepwdbox">
|
||||
<label for="changepassword_oldpwd"
|
||||
id="changepassword_oldpwdtitle" class="col-sm-3 control-label">旧密码:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="password" class="form-control"
|
||||
id="changepassword_oldpwd" placeholder="请输入旧密码确认身份……">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" id="changepassword_newpwdbox">
|
||||
<label for="changepassword_newpwd"
|
||||
id="changepassword_newpwdtitle" class="col-sm-3 control-label">新密码:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="password" class="form-control"
|
||||
id="changepassword_newpwd" placeholder="请输入新密码……">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" id="changepassword_reqnewpwdbox">
|
||||
<label for="changepassword_reqnewpwd"
|
||||
id="changepassword_reqnewpwdtitle"
|
||||
class="col-sm-3 control-label">确认新密码:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="password" class="form-control"
|
||||
id="changepassword_reqnewpwd" placeholder="请再次输入新密码……">
|
||||
</div>
|
||||
</div>
|
||||
<div id="changepassword_vccodebox" class="form-group"></div>
|
||||
<div id="changepasswordalertbox" class="alert alert-danger"
|
||||
role="alert"></div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
||||
<button type="button" id="changePasswordButton"
|
||||
class="btn btn-danger" onclick="doChangePassword()">立即修改</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end 改密 -->
|
||||
<!-- 永久资源链接显示模态框 -->
|
||||
<div class="modal fade" id="fileChainModal" tabindex="-1" role="dialog"
|
||||
aria-labelledby="chainModalLabel">
|
||||
<div class="modal-dialog modal-sm" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal"
|
||||
aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title" id="chainModalLabel">
|
||||
<span class="glyphicon glyphicon-link"></span> 资源链接
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<textarea id="fileChainTextarea" class="form-control" rows="3"
|
||||
readonly></textarea>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button id="copyChainBtn" type="button" class="btn btn-info"
|
||||
onclick="copyFileChain()">复制链接</button>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end 永久资源链接 -->
|
||||
<!-- 公告信息栏 -->
|
||||
<div class="modal fade" id="noticeModal" tabindex="-1" role="dialog"
|
||||
aria-labelledby="noticeModalLabel">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal"
|
||||
aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title" id="noticeModalLabel">公告信息</h4>
|
||||
</div>
|
||||
<div class="modal-body" style="overflow: scroll;"
|
||||
id="noticeModalBody"></div>
|
||||
<div class="modal-footer">
|
||||
<label class="text-muted"> <input type="checkbox"
|
||||
id="dontShowSomeNoticeAt30Day"> 30天内不再显示相同的公告信息
|
||||
</label>
|
||||
<button type="button" class="btn btn-primary" data-dismiss="modal">关闭</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end 公告信息栏 -->
|
||||
<!-- 显示公告按钮 -->
|
||||
<div id="shownoticebox" class="shownoticebox text-center hidden">
|
||||
<button type="button" onclick="showNotice()" class="shownoticebutton">
|
||||
<span class="glyphicon glyphicon-bookmark" aria-hidden="true"></span><br />公<br />告
|
||||
</button>
|
||||
</div>
|
||||
<!-- end 显示公告按钮 -->
|
||||
<!-- 返回顶部按钮(隐藏式) -->
|
||||
<div id="gobacktotopbox" class="gobacktopbox text-center hidden">
|
||||
<button type="button" onclick="goBackToTop()" class="gobacktopbutton">
|
||||
|
|
@ -730,6 +864,13 @@
|
|||
</button>
|
||||
</div>
|
||||
<!-- end 返回顶部按钮 -->
|
||||
<!-- 加载余下部分的提示 -->
|
||||
<div id="loadingremaininngbox"
|
||||
class="loadingremaininngbox text-center bg-info hidden">
|
||||
正在加载文件列表:<span id="loadingrate">0%</span>... <span
|
||||
class="glyphicon glyphicon-hourglass" aria-hidden="true"></span>
|
||||
</div>
|
||||
<!-- end 加载余下部分的提示 -->
|
||||
</body>
|
||||
<!-- jquery基本框架 -->
|
||||
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
|
@ -16,6 +16,23 @@ $(function() {
|
|||
$("#vercodebox").addClass("hidden");
|
||||
// 打开页面自动聚焦账户输入框
|
||||
$("#accountid").focus();
|
||||
// 询问是否可以显示注册按钮
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
dataType : "text",
|
||||
data : {},
|
||||
url : "homeController/askForAllowSignUpOrNot.ajax",
|
||||
success : function(result) {
|
||||
if (result == "true") {
|
||||
$("#signupBox").removeClass("hidden");
|
||||
$("#signupBox").addClass("show");
|
||||
return;
|
||||
}
|
||||
},
|
||||
error : function() {
|
||||
alert("错误:无法连接到kiftd服务器,请检查您的网络连接或查看服务器运行状态。");
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
function dologin() {
|
||||
|
|
@ -35,6 +52,7 @@ function dologin() {
|
|||
$("#accountpwdbox").removeClass("has-error");
|
||||
}
|
||||
if (check == "y") {
|
||||
startLogin();
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
dataType : "text",
|
||||
|
|
@ -50,9 +68,7 @@ function dologin() {
|
|||
sendLoginInfo(encrypted);
|
||||
},
|
||||
error : function() {
|
||||
$("#alertbox").addClass("alert");
|
||||
$("#alertbox").addClass("alert-danger");
|
||||
$("#alertbox").text("提示:登录请求失败,请检查网络或服务器运行状态");
|
||||
showAlert("提示:登录请求失败,请检查网络或服务器运行状态");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -76,45 +92,37 @@ function sendLoginInfo(encrypted) {
|
|||
$("#vercodebox").addClass("hidden");
|
||||
switch (result) {
|
||||
case "permitlogin":
|
||||
finishLogin();
|
||||
$("#accountidbox").removeClass("has-error");
|
||||
$("#accountpwdbox").removeClass("has-error");
|
||||
window.location.href = "home.html";
|
||||
window.location.href = "/home.html";
|
||||
break;
|
||||
case "accountnotfound":
|
||||
$("#accountidbox").addClass("has-error");
|
||||
$("#accountpwdbox").removeClass("has-error");
|
||||
$("#alertbox").addClass("alert");
|
||||
$("#alertbox").addClass("alert-danger");
|
||||
$("#alertbox").text("提示:登录失败,账户不存在或未设置");
|
||||
showAlert("提示:登录失败,账户不存在或未设置");
|
||||
break;
|
||||
case "accountpwderror":
|
||||
$("#accountpwdbox").addClass("has-error");
|
||||
$("#accountidbox").removeClass("has-error");
|
||||
$("#alertbox").addClass("alert");
|
||||
$("#alertbox").addClass("alert-danger");
|
||||
$("#alertbox").text("提示:登录失败,密码错误或未设置");
|
||||
showAlert("提示:登录失败,密码错误或未设置");
|
||||
break;
|
||||
case "needsubmitvercode":
|
||||
finishLogin();
|
||||
$("#vercodebox").html("<label id='vercodetitle' class='col-sm-6'><img id='showvercode' class='vercodeimg' alt='点击获取验证码' src='homeController/getNewVerCode.do?s="+(new Date()).getTime()+"' onclick='getNewVerCode()'></label><div class='col-sm-6'><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("提示:登录失败,登录请求无法通过效验(可能是请求耗时过长导致的)");
|
||||
showAlert("提示:登录失败,登录请求无法通过效验(可能是请求耗时过长导致的)");
|
||||
break;
|
||||
default:
|
||||
$("#alertbox").addClass("alert");
|
||||
$("#alertbox").addClass("alert-danger");
|
||||
$("#alertbox").text("提示:无法登录,未知错误");
|
||||
showAlert("提示:无法登录,未知错误");
|
||||
break;
|
||||
}
|
||||
},
|
||||
error : function() {
|
||||
$("#alertbox").addClass("alert");
|
||||
$("#alertbox").addClass("alert-danger");
|
||||
$("#alertbox").text("提示:登录请求失败,请检查网络或服务器运行状态");
|
||||
showAlert("提示:登录请求失败,请检查网络或服务器运行状态");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -123,3 +131,26 @@ function sendLoginInfo(encrypted) {
|
|||
function getNewVerCode(){
|
||||
$("#showvercode").attr("src","homeController/getNewVerCode.do?s="+(new Date()).getTime());
|
||||
}
|
||||
|
||||
function showAlert(text){
|
||||
finishLogin();
|
||||
$("#alertbox").addClass("alert");
|
||||
$("#alertbox").addClass("alert-danger");
|
||||
$("#alertbox").text(text);
|
||||
}
|
||||
|
||||
function startLogin(){
|
||||
$("#loginBtn").attr('disabled','disabled');
|
||||
$("#accountid").attr('disabled','disabled');
|
||||
$("#accountpwd").attr('disabled','disabled');
|
||||
$("#vercode").attr('disabled','disabled');
|
||||
$("#loginBtn").val('正在登录...');
|
||||
}
|
||||
|
||||
function finishLogin(){
|
||||
$("#loginBtn").removeAttr('disabled');
|
||||
$("#accountid").removeAttr('disabled');
|
||||
$("#accountpwd").removeAttr('disabled');
|
||||
$("#vercode").removeAttr('disabled');
|
||||
$("#loginBtn").val('登录');
|
||||
}
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
/**
|
||||
* For signup.html
|
||||
*/
|
||||
$(function(){
|
||||
// 回车键快捷操作
|
||||
$("body").keypress(function(e) {
|
||||
var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
|
||||
if (keyCode == 13) {
|
||||
var g = $("#signupBtn").click();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
$("#accountid").focus();//再自动聚焦账户输入框
|
||||
})
|
||||
|
||||
//获取一个新的验证码
|
||||
function getNewVerCode(){
|
||||
$("#showvercode").attr("src","homeController/getNewVerCode.do?s="+(new Date()).getTime());
|
||||
}
|
||||
|
||||
//执行注册过程
|
||||
function doSignUp(){
|
||||
// 还原提示状态
|
||||
$("#accountidbox,#accountpwdbox,#repaccountpwdbox").removeClass("has-error");
|
||||
$("#alertbox").removeClass("show");
|
||||
$("#alertbox").addClass("hidden");
|
||||
var accountId = $("#accountid").val();
|
||||
var accountPwd = $("#accountpwd").val();
|
||||
var repAccountPwd = $("#repaccountpwd").val();
|
||||
// 输入非空检查
|
||||
if (accountId.length == 0) {
|
||||
$("#accountidbox").addClass("has-error");
|
||||
$("#accountid").focus();
|
||||
return;
|
||||
}
|
||||
if (accountPwd.length == 0) {
|
||||
$("#accountpwdbox").addClass("has-error");
|
||||
$("#accountpwd").focus();
|
||||
return;
|
||||
}
|
||||
if (repAccountPwd.length == 0) {
|
||||
$("#repaccountpwdbox").addClass("has-error");
|
||||
$("#repaccountpwd").focus();
|
||||
return;
|
||||
}
|
||||
// 确认密码检查
|
||||
$("#accountid,#accountpwd,#repaccountpwd,#signupBtn,#vercode").attr('disabled', true);
|
||||
if (accountPwd+"" != repAccountPwd+"") {
|
||||
showAlert("提示:两次输入的新密码不一致,请检查确认");
|
||||
$("#accountpwdbox").addClass("has-error");
|
||||
$("#repaccountpwdbox").addClass("has-error");
|
||||
return;
|
||||
}
|
||||
// 以加密方式发送修改密码请求
|
||||
$.ajax({
|
||||
url : 'homeController/getPublicKey.ajax',
|
||||
type : 'POST',
|
||||
data : {},
|
||||
dataType : 'text',
|
||||
success : function(result) {
|
||||
// 获取公钥
|
||||
var signup_publicKeyInfo=eval("("+result+")");
|
||||
// 生成JSON对象格式的信息
|
||||
var signUpInfo = '{account:"' + accountId + '",pwd:"'
|
||||
+ accountPwd + '",time:"' + signup_publicKeyInfo.time + '"}';
|
||||
var encrypt = new JSEncrypt();// 加密插件对象
|
||||
encrypt.setPublicKey(signup_publicKeyInfo.publicKey);// 设置公钥
|
||||
var encrypted = encrypt.encrypt(signUpInfo);// 进行加密
|
||||
sendSignUpInfo(encrypted);
|
||||
},
|
||||
error : function() {
|
||||
showAlert("提示:注册失败,请检查网络链接或服务器运行状态");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 将加密数据发送至服务器并显示操作结果
|
||||
function sendSignUpInfo(encrypted){
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
dataType : "text",
|
||||
url : "homeController/doSigUp.ajax",
|
||||
data : {
|
||||
encrypted : encrypted,
|
||||
vercode : $("#vercode").val()
|
||||
},
|
||||
success : function(result) {
|
||||
switch (result) {
|
||||
case "success":
|
||||
$("#accountidbox,#accountpwdbox,#repaccountpwdbox").removeClass("has-error");
|
||||
window.location.href = "/home.html";
|
||||
break;
|
||||
case "illegal":
|
||||
showAlert("提示:注册功能已被禁用,请求被拒绝");
|
||||
break;
|
||||
case "accountexists":
|
||||
showAlert("提示:该账户名已存在,请使用其他账户名进行注册");
|
||||
$("#accountidbox").addClass("has-error");
|
||||
break;
|
||||
case "needvercode":
|
||||
$("#accountid,#accountpwd,#repaccountpwd,#signupBtn,#vercode").attr('disabled', false);
|
||||
$("#vercodebox").removeClass("hidden");
|
||||
$("#vercodebox").addClass("show");
|
||||
getNewVerCode();
|
||||
break;
|
||||
case "invalidaccount":
|
||||
showAlert("提示:注册失败,账户名不合法。账户名的长度需为3-32个字符,且仅支持ISO-8859-1中的字符(推荐使用英文字母、英文符号及阿拉伯数字)。");
|
||||
$("#accountidbox").addClass("has-error");
|
||||
break;
|
||||
case "illegalaccount":
|
||||
showAlert("提示:注册失败,账户名中不得包含“=”或“:”,且首个字符不能为“#”。");
|
||||
$("#accountidbox").addClass("has-error");
|
||||
break;
|
||||
case "mustlogout":
|
||||
showAlert("提示:您已经登入了一个账户,请先注销后再执行本操作");
|
||||
break;
|
||||
case "invalidpwd":
|
||||
showAlert("提示:注册失败,密码格式不正确。密码的长度需为3-32个字符,且仅支持ISO-8859-1中的字符(推荐使用英文字母、英文符号及阿拉伯数字)。");
|
||||
$("#accountpwdbox").addClass("has-error");
|
||||
$("#repaccountpwdbox").addClass("has-error");
|
||||
break;
|
||||
case "error":
|
||||
showAlert("提示:注册失败,注册请求无法通过加密效验(可能是请求耗时过长导致的)");
|
||||
break;
|
||||
case "cannotsignup":
|
||||
showAlert("提示:注册失败,发生意外错误,请稍后重试或联系管理员");
|
||||
break;
|
||||
default:
|
||||
showAlert("提示:注册失败,发生未知错误");
|
||||
break;
|
||||
}
|
||||
},
|
||||
error : function() {
|
||||
showAlert("提示:注册失败,请检查网络链接或服务器运行状态");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 显示修改密码错误提示
|
||||
function showAlert(txt) {
|
||||
$("#accountid,#accountpwd,#repaccountpwd,#signupBtn,#vercode").attr('disabled', false);
|
||||
$("#alertbox").removeClass("hidden");
|
||||
$("#alertbox").addClass("show");
|
||||
$("#alertbox").text(txt);
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -67,24 +67,26 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);
|
||||
}
|
||||
|
||||
@-webkit-keyframes zoom {
|
||||
from {
|
||||
-webkit-transform:scale(0)
|
||||
}
|
||||
to {
|
||||
-webkit-transform: scale(1)
|
||||
}
|
||||
@
|
||||
-webkit-keyframes zoom {from { -webkit-transform:scale(0)
|
||||
|
||||
}
|
||||
|
||||
@keyframes zoom {
|
||||
from {
|
||||
transform:scale(0)
|
||||
}
|
||||
to {
|
||||
transform: scale(1)
|
||||
}
|
||||
to {
|
||||
-webkit-transform: scale(1)
|
||||
}
|
||||
|
||||
}
|
||||
@
|
||||
keyframes zoom {from { transform:scale(0)
|
||||
|
||||
}
|
||||
|
||||
to {
|
||||
transform: scale(1)
|
||||
}
|
||||
|
||||
}
|
||||
.pdf-modal-body {
|
||||
font-size: 18px;
|
||||
box-sizing: border-box;
|
||||
|
|
@ -540,24 +542,29 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||
//增加了加载需要耗时转换的文档时的加载提示
|
||||
window.onload = function() {
|
||||
var url = location.search;
|
||||
if (url.indexOf(".block") < 0) {
|
||||
if (url.indexOf("getResource") < 0) {
|
||||
var modal = document.getElementById('pdf-modal');
|
||||
if (url.indexOf("getWordView") >= 0) {
|
||||
document.getElementById('doc-type-box').innerHTML="Word";
|
||||
}else if(url.indexOf("getTxtView") >= 0){
|
||||
document.getElementById('doc-type-box').innerHTML="TXT";
|
||||
}else if(url.indexOf("getPPTView") >= 0){
|
||||
document.getElementById('doc-type-box').innerHTML="PPT";
|
||||
}else{
|
||||
document.getElementById('doc-type-box').innerHTML="未知类型";
|
||||
document.getElementById('doc-type-box').innerHTML = "Word";
|
||||
} else if (url.indexOf("getTxtView") >= 0) {
|
||||
document.getElementById('doc-type-box').innerHTML = "TXT";
|
||||
} else if (url.indexOf("getPPTView") >= 0) {
|
||||
document.getElementById('doc-type-box').innerHTML = "PPT";
|
||||
} else {
|
||||
document.getElementById('doc-type-box').innerHTML = "未知类型";
|
||||
}
|
||||
modal.style.display = "block";
|
||||
var interval = setInterval(function() {
|
||||
if (PDFViewerApplication.pdfDocument != null) {
|
||||
clearInterval(interval);
|
||||
modal.style.display = "none";
|
||||
}
|
||||
}, 1);
|
||||
var interval = setInterval(
|
||||
function() {
|
||||
if (PDFViewerApplication.pdfDocument != null
|
||||
|| PDFViewerApplication.appConfig.errorWrapper.container.hidden == false) {
|
||||
clearInterval(interval);
|
||||
modal.style.display = "none";
|
||||
if (PDFViewerApplication.appConfig.errorWrapper.container.hidden == false) {
|
||||
alert("提示:打开目标文档时发生意外错误(刷新页面将再次尝试打开该文档)。");
|
||||
}
|
||||
}
|
||||
}, 1);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,46 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<base href="/">
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>KIFT</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/overrall.min.css">
|
||||
<link rel="icon" type="image/x-icon" href="css/icon.png" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="js/html5shiv.min.js"></script>
|
||||
<script src="js/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="titlebox">
|
||||
<span class="titletext"><em> 青阳网络文件传输系统 <small><span
|
||||
class="graytext">KIFT</span></small></em></span>
|
||||
</div>
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2 class="centerText">
|
||||
<span class="glyphicon glyphicon-exclamation-sign"
|
||||
aria-hidden="true"></span>错误:拒绝访问!
|
||||
</h2>
|
||||
<br />
|
||||
<h4 class="centerText">您无权访问该服务器,请求已经被阻止。如有疑问请联系管理员。</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="js/bootstrap.min.js"></script>
|
||||
</html>
|
||||
|
|
@ -66,6 +66,11 @@
|
|||
<div id="alertbox" role="alert"></div>
|
||||
<input id="loginBtn" class="form-control btn-success"
|
||||
type="button" value="登录" onclick="dologin()"> <br />
|
||||
<div id="signupBox" class="hidden">
|
||||
<input class="form-control btn-info"
|
||||
type="button" value="立即注册"
|
||||
onclick="window.location.href = '/prv/signup.html'"> <br />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,91 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<base href="/">
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta
|
||||
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"
|
||||
name="viewport" />
|
||||
<title>KIFT</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/overrall.min.css">
|
||||
<link rel="icon" type="image/x-icon" href="css/icon.png" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="js/html5shiv.min.js"></script>
|
||||
<script src="js/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="titlebox">
|
||||
<span class="titletext"><em> 青阳网络文件传输系统 <small><span
|
||||
class="graytext">KIFT</span></small></em></span>
|
||||
</div>
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<p class="centerText" style="font-size: 30px; color: #4D4D4D">
|
||||
<strong>欢迎注册新账户</strong>
|
||||
</p>
|
||||
<p class="centerText" style="font-size: 18px; color: #9C9C9C">
|
||||
<span class="glyphicon glyphicon-log-in"></span> 请输入以下信息来创建您的新账户
|
||||
</p>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">注册新账户</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form class="form-horizontal">
|
||||
<div class="form-group" id="accountidbox">
|
||||
<label for="accountid" id="accountidtitle"
|
||||
class="col-sm-3 control-label">账户名:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control" id="accountid"
|
||||
placeholder="请输入要注册的账户名……">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" id="accountpwdbox">
|
||||
<label for="accountpwd" id="accountpwdtitle"
|
||||
class="col-sm-3 control-label">密码:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="password" class="form-control" id="accountpwd"
|
||||
placeholder="请输入新账户的密码……">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" id="repaccountpwdbox">
|
||||
<label for="accountpwd" id="repaccountpwdtitle"
|
||||
class="col-sm-3 control-label">确认密码:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="password" class="form-control" id="repaccountpwd"
|
||||
placeholder="请再次输入新账户的密码……">
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div id="vercodebox" class="form-group hidden"><label class='col-sm-5'><img id='showvercode' class='vercodeimg' alt='点击获取验证码' src='' onclick='getNewVerCode()'></label><div class='col-sm-7'><input type='text' class='form-control' id='vercode' placeholder='请输入验证码进行验证……'></div></div>
|
||||
<div id="alertbox" role="alert" class="alert alert-danger hidden"></div>
|
||||
<input id="signupBtn" class="form-control btn-primary"
|
||||
type="button" value="立即注册" onclick="doSignUp()"> <br />
|
||||
<input class="form-control btn-danger" type="button" value="返回"
|
||||
onclick="window.location.href = '/home.html'"> <br />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="js/jsencrypt.min.js"></script>
|
||||
<script type="text/javascript" src="js/signup.js"></script>
|
||||
</html>
|
||||
|
|
@ -5,10 +5,10 @@ var tReq;
|
|||
var tTimer;
|
||||
var pingInt;
|
||||
$(function() {
|
||||
window.onresize = function(){
|
||||
window.onresize = function() {
|
||||
showCloseBtn();
|
||||
}
|
||||
pingInt = setInterval("ping()",60000);
|
||||
}
|
||||
pingInt = setInterval("ping()", 60000);
|
||||
var fileId = getFileId();
|
||||
$
|
||||
.ajax({
|
||||
|
|
@ -21,7 +21,7 @@ $(function() {
|
|||
success : function(result) {
|
||||
if (result != "ERROR") {
|
||||
f = eval("(" + result + ")");
|
||||
$("#vname").text(f.fileName.replace('\'',''').replace('<','<').replace('>','>'));
|
||||
$("#vname").text(f.fileName);
|
||||
$("#vcreator").text(f.fileCreator);
|
||||
$("#vcdate").text(f.fileCreationDate);
|
||||
$("#vsize").text(f.fileSize);
|
||||
|
|
@ -59,9 +59,11 @@ function playVideo() {
|
|||
$("#playerbox")
|
||||
.html(
|
||||
"<video id='kiftplayer' class='video-js col-md-12' controls preload='auto' height='500'>"
|
||||
+ "<source src='resourceController/getResource.do?fid="
|
||||
+ "<source src='resourceController/getResource/"
|
||||
+ f.fileId + "' type='video/mp4'></video>");
|
||||
var player = videojs('kiftplayer');
|
||||
var player = videojs('kiftplayer', {
|
||||
preload : 'auto'
|
||||
});
|
||||
player.ready(function() {
|
||||
this.play();
|
||||
});
|
||||
|
|
@ -69,10 +71,10 @@ function playVideo() {
|
|||
|
||||
// 关闭当前窗口并释放播放器
|
||||
function reMainPage() {
|
||||
if(tReq != null){
|
||||
if (tReq != null) {
|
||||
tReq.abort()
|
||||
}
|
||||
if(tTimer != null){
|
||||
if (tTimer != null) {
|
||||
window.clearTimeout(tTimer);
|
||||
}
|
||||
window.opener = null;
|
||||
|
|
@ -82,7 +84,7 @@ function reMainPage() {
|
|||
|
||||
// 进行转码请求并监听进度状态(轮询)
|
||||
function doTranscode() {
|
||||
tReq=$.ajax({
|
||||
tReq = $.ajax({
|
||||
url : 'resourceController/getVideoTranscodeStatus.ajax',
|
||||
type : 'POST',
|
||||
dataType : 'text',
|
||||
|
|
@ -97,7 +99,7 @@ function doTranscode() {
|
|||
reMainPage();
|
||||
} else {
|
||||
$("#transcodeProgress").text(result);
|
||||
tTimer=setTimeout('doTranscode()', 500);// 每隔1秒询问一次进度
|
||||
tTimer = setTimeout('doTranscode()', 500);// 每隔1秒询问一次进度
|
||||
}
|
||||
},
|
||||
error : function() {
|
||||
|
|
@ -107,28 +109,28 @@ function doTranscode() {
|
|||
});
|
||||
}
|
||||
|
||||
function showCloseBtn(){
|
||||
function showCloseBtn() {
|
||||
var win = $(window).width();
|
||||
if(win < 450){
|
||||
$("#closeBtn").addClass("hidden");
|
||||
}else{
|
||||
$("#closeBtn").removeClass("hidden");
|
||||
}
|
||||
if (win < 450) {
|
||||
$("#closeBtn").addClass("hidden");
|
||||
} else {
|
||||
$("#closeBtn").removeClass("hidden");
|
||||
}
|
||||
}
|
||||
|
||||
//防止播放视频时会话超时的应答器,每分钟应答一次
|
||||
function ping(){
|
||||
// 防止播放视频时会话超时的应答器,每分钟应答一次
|
||||
function ping() {
|
||||
$.ajax({
|
||||
url:"homeController/ping.ajax",
|
||||
type:"POST",
|
||||
dataType:"text",
|
||||
data:{},
|
||||
success:function(result){
|
||||
if(result != 'pong'){
|
||||
url : "homeController/ping.ajax",
|
||||
type : "POST",
|
||||
dataType : "text",
|
||||
data : {},
|
||||
success : function(result) {
|
||||
if (result != 'pong') {
|
||||
window.clearInterval(pingInt);
|
||||
}
|
||||
},
|
||||
error:function(){
|
||||
error : function() {
|
||||
window.clearInterval(pingInt);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
function getFileId(){var b,a=location.search;return-1!=a.indexOf("?")?(b=a.substr(1),strs=b.split("="),strs[1]):""}function playVideo(){$("#playerbox").html("<video id='kiftplayer' class='video-js col-md-12' controls preload='auto' height='500'><source src='resourceController/getResource.do?fid="+f.fileId+"' type='video/mp4'></video>");var a=videojs("kiftplayer");a.ready(function(){this.play()})}function reMainPage(){null!=tReq&&tReq.abort(),null!=tTimer&&window.clearTimeout(tTimer),window.opener=null,window.open("","_self"),window.close()}function doTranscode(){tReq=$.ajax({url:"resourceController/getVideoTranscodeStatus.ajax",type:"POST",dataType:"text",data:{fileId:f.fileId},success:function(a){"FIN"==a?playVideo():"ERROR"==a?(alert("错误:请求失败,请刷新重试。"),reMainPage()):($("#transcodeProgress").text(a),tTimer=setTimeout("doTranscode()",500))},error:function(){alert("错误:请求失败,请刷新重试。"),reMainPage()}})}function showCloseBtn(){var a=$(window).width();450>a?$("#closeBtn").addClass("hidden"):$("#closeBtn").removeClass("hidden")}function ping(){$.ajax({url:"homeController/ping.ajax",type:"POST",dataType:"text",data:{},success:function(a){"pong"!=a&&window.clearInterval(pingInt)},error:function(){window.clearInterval(pingInt)}})}var tReq,tTimer,pingInt;$(function(){window.onresize=function(){showCloseBtn()},pingInt=setInterval("ping()",6e4);var fileId=getFileId();$.ajax({url:"homeController/playVideo.ajax",type:"POST",dataType:"text",data:{fileId:fileId},success:function(result){"ERROR"!=result?(f=eval("("+result+")"),$("#vname").text(f.fileName.replace("'","'").replace("<","<").replace(">",">")),$("#vcreator").text(f.fileCreator),$("#vcdate").text(f.fileCreationDate),$("#vsize").text(f.fileSize),"N"==f.needEncode?playVideo():($("#playerMassage").html("<h2>播放器正在努力解码中...</h2><h3>已完成:<span id='transcodeProgress'>0</span>%</h3><p class='text-muted'>提示:该视频需解码后播放,请耐心等待!</p>"),doTranscode())):(alert("错误:无法定位要预览的文件或该操作未被授权。"),reMainPage())},error:function(){alert("错误:请求失败,请刷新重试。"),reMainPage()}})});
|
||||
function getFileId(){var b,a=location.search;return-1!=a.indexOf("?")?(b=a.substr(1),strs=b.split("="),strs[1]):""}function playVideo(){$("#playerbox").html("<video id='kiftplayer' class='video-js col-md-12' controls preload='auto' height='500'><source src='resourceController/getResource/"+f.fileId+"' type='video/mp4'></video>");var a=videojs("kiftplayer",{preload:"auto"});a.ready(function(){this.play()})}function reMainPage(){null!=tReq&&tReq.abort(),null!=tTimer&&window.clearTimeout(tTimer),window.opener=null,window.open("","_self"),window.close()}function doTranscode(){tReq=$.ajax({url:"resourceController/getVideoTranscodeStatus.ajax",type:"POST",dataType:"text",data:{fileId:f.fileId},success:function(a){"FIN"==a?playVideo():"ERROR"==a?(alert("错误:请求失败,请刷新重试。"),reMainPage()):($("#transcodeProgress").text(a),tTimer=setTimeout("doTranscode()",500))},error:function(){alert("错误:请求失败,请刷新重试。"),reMainPage()}})}function showCloseBtn(){var a=$(window).width();450>a?$("#closeBtn").addClass("hidden"):$("#closeBtn").removeClass("hidden")}function ping(){$.ajax({url:"homeController/ping.ajax",type:"POST",dataType:"text",data:{},success:function(a){"pong"!=a&&window.clearInterval(pingInt)},error:function(){window.clearInterval(pingInt)}})}var tReq,tTimer,pingInt;$(function(){window.onresize=function(){showCloseBtn()},pingInt=setInterval("ping()",6e4);var fileId=getFileId();$.ajax({url:"homeController/playVideo.ajax",type:"POST",dataType:"text",data:{fileId:fileId},success:function(result){"ERROR"!=result?(f=eval("("+result+")"),$("#vname").text(f.fileName),$("#vcreator").text(f.fileCreator),$("#vcdate").text(f.fileCreationDate),$("#vsize").text(f.fileSize),"N"==f.needEncode?playVideo():($("#playerMassage").html("<h2>播放器正在努力解码中...</h2><h3>已完成:<span id='transcodeProgress'>0</span>%</h3><p class='text-muted'>提示:该视频需解码后播放,请耐心等待!</p>"),doTranscode())):(alert("错误:无法定位要预览的文件或该操作未被授权。"),reMainPage())},error:function(){alert("错误:请求失败,请刷新重试。"),reMainPage()}})});
|
||||
4
使用许可
4
使用许可
|
|
@ -1,13 +1,13 @@
|
|||
kiftd 使用许可
|
||||
|
||||
Copyright © 2019 青阳龙野 <kohgylw@163.com>
|
||||
Copyright © 2018-2020 青阳龙野 <kohgylw@163.com>
|
||||
|
||||
使用、分发或修改kiftd及其程序的源代码均代表您接受如下条款:
|
||||
1,任何组织或个人均能够自由、无偿地获得kiftd发行版及其源代码的原版拷贝,并对其享有无限制使用的权利——无论是商业性的还是非商业性的。
|
||||
2,任何组织或个人均能够自由复制、分发或修改kiftd发行版及其源代码,并将其用于任何用途。修改后的作品版权由修改者自身享有。
|
||||
3,kiftd的作者无需为使用该软件及其源代码所造成的任何直接或间接后果承担责任。
|
||||
4,kiftd的作者对kiftd中的全部java源代码、页面文件、js及css文件、jar程序、mybatisResource文件夹内的资源、README.md文件以及随发行版程序附带的原版《kiftd说明文档》享有版权,并作为kiftd软件的版权人。
|
||||
5,kiftd软件中涉及的所有第三方软件、工具、图片、插件及其代码,其权利由该资源之作者享有并授予kiftd使用许可。任何单位和个人认为kiftd包含的上述内容可能涉嫌侵犯其合法权益时,应及时向kiftd作者进行书面反馈,并提供其身份证明、权属证明及详细侵权情况的说明,kiftd将会立即移除被控侵权的内容。
|
||||
5,kiftd软件中涉及的所有第三方软件、工具、图片、插件及其代码,其权利由该作品的权利人享有并授予kiftd使用许可。任何单位和个人认为kiftd包含的上述内容可能涉嫌侵犯其合法权益时,应及时向kiftd作者进行书面反馈,并提供其身份证明、权属证明及详细侵权情况的说明,kiftd将会立即移除被控侵权的内容。
|
||||
|
||||
版权人信息:
|
||||
地址:河北省唐山市路北区兴源里玫瑰庄园6单元602号
|
||||
|
|
|
|||
Loading…
Reference in New Issue