Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/cym1102/svnWebUI
Browse files Browse the repository at this point in the history
# Conflicts:
#	README.md
#	pom.xml
#	src/main/java/com/cym/controller/MainController.java
  • Loading branch information
cym1102 committed Jul 5, 2023
2 parents af11f7d + 68d943f commit b93e420
Show file tree
Hide file tree
Showing 8 changed files with 131 additions and 76 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM alpine:3.16
FROM alpine:3.17
ENV LANG=zh_CN.UTF-8 \
TZ=Asia/Shanghai \
PS1="\u@\h:\w \$ "
Expand Down
65 changes: 0 additions & 65 deletions src/main/java/com/cym/controller/RepositoryController.java
Original file line number Diff line number Diff line change
Expand Up @@ -194,11 +194,6 @@ public JsonResult delUser(String id) {
return renderSuccess();
}

// @Mapping("userDetail")
// public JsonResult userDetail(String id) {
//
// return renderSuccess(sqlHelper.findById(id, RepositoryUser.class));
// }

@Mapping("groupPermission")
public ModelAndView groupPermission(Page page, String keywords, String repositoryId, String order) {
Expand Down Expand Up @@ -255,66 +250,6 @@ public JsonResult delGroup(String id) {
}


// @Mapping("loadOver")
// public JsonResult loadOver(String id, String dirTemp) {
//
// Repository repository = sqlHelper.findById(id, Repository.class);
//
// String rs = "";
// String home = homeConfig.home;
//
// if (SystemTool.isWindows()) {
//
// String cmd = "svnadmin.exe load " + (home + File.separator + "repo" + File.separator + repository.getName() + File.separator).replace("/", "\\") + " < " + dirTemp;
// FileUtil.writeString(cmd, home + File.separator + "dump.bat", CharsetUtil.GBK);
//
// rs = RuntimeUtil.execForStr(home + File.separator + "dump.bat");
// } else {
// String sh = "svnadmin load " + (home + File.separator + "repo" + File.separator + repository.getName() + File.separator) + " < " + dirTemp;
// FileUtil.writeString(sh, home + File.separator + "dump.sh", CharsetUtil.CHARSET_UTF_8);
//
// rs = RuntimeUtil.execForStr("sh", home + File.separator + "dump.sh");
// }
// logger.info(rs);
// FileUtil.del(dirTemp);
//
// return renderSuccess(rs.replace("\n", "<br>"));
// }

// @Mapping("dumpOver")
// public void dumpOver(String id, Context context) throws Exception {
// Repository repository = sqlHelper.findById(id, Repository.class);
//
// String rs = "";
// String home = homeConfig.home;
// String dumpTemp = null;
//
// if (SystemTool.isWindows()) {
//
// dumpTemp = home + File.separator + "temp" + File.separator + repository.getName() + ".dump";
// String cmd = "svnadmin.exe dump " + (home + File.separator + "repo" + File.separator + repository.getName() + File.separator).replace("/", "\\") + " > " + dumpTemp;
//
// FileUtil.writeString(cmd, home + File.separator + "dump.bat", CharsetUtil.GBK);
//
// rs = RuntimeUtil.execForStr(home + File.separator + "dump.bat");
// } else {
//
// dumpTemp = home + File.separator + "temp" + File.separator + repository.getName() + ".dump";
// String sh = "svnadmin dump " + (home + File.separator + "repo" + File.separator + repository.getName() + File.separator) + " > " + dumpTemp;
//
// FileUtil.writeString(sh, home + File.separator + "dump.sh", CharsetUtil.CHARSET_UTF_8);
//
// rs = RuntimeUtil.execForStr("sh", home + File.separator + "dump.sh");
// }
//
// logger.info(rs);
//
// if (FileUtil.exist(dumpTemp)) {
// Context.current().outputAsFile(new File(dumpTemp));
// FileUtil.del(dumpTemp);
// }
//
// }

@Mapping("setEnable")
public JsonResult setEnable(Repository repository) {
Expand Down
36 changes: 32 additions & 4 deletions src/main/java/com/cym/controller/SelectRootController.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

@Controller
@Mapping("/adminPage/selectRoot")
public class SelectRootController extends BaseController{
public class SelectRootController extends BaseController {
@Inject
SvnAdminUtils svnAdminUtils;
@Inject
Expand Down Expand Up @@ -66,11 +66,26 @@ public JsonResult addFileDir(String svnUrl, String dir) {
userName = svnAdminUtils.adminUserName;
userPass = svnAdminUtils.adminUserPass;
}

svnUrl = restore(svnUrl);
pathUtls.createPath(svnUrl, dir, userName, userPass);
return renderSuccess();
}

@Mapping("upload")
public JsonResult upload(String svnUrl, String dir, String filePath) {
User user = getLoginUser();

String userName = user.getName();
String userPass = user.getPass();
if (user.getType() == 1) {
userName = svnAdminUtils.adminUserName;
userPass = svnAdminUtils.adminUserPass;
}
svnUrl = restore(svnUrl);
pathUtls.upload(svnUrl, dir, filePath, userName, userPass);
return renderSuccess();
}

@Mapping("rmfile")
public JsonResult rmfile(String svnUrl, String dir) {
User user = getLoginUser();
Expand All @@ -81,11 +96,24 @@ public JsonResult rmfile(String svnUrl, String dir) {
userName = svnAdminUtils.adminUserName;
userPass = svnAdminUtils.adminUserPass;
}

svnUrl = restore(svnUrl);
pathUtls.removePath(svnUrl, dir, userName, userPass);
return renderSuccess();
}


// 将多余的路径去除
private String restore(String svnUrl) {

String[] svnUrls = svnUrl.split("/");

String rsUrl = "";
for (int i = 0; i <= 3; i++) {
rsUrl += svnUrls[i] + "/";
}

return rsUrl;
}

@Mapping("download")
public void download(String url, Context context) throws SVNException, IOException {
User user = getLoginUser();
Expand Down
19 changes: 19 additions & 0 deletions src/main/java/com/cym/utils/PathUtls.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.cym.utils;

import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
Expand All @@ -15,6 +16,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tmatesoft.svn.core.ISVNDirEntryHandler;
import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.SVNDirEntry;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNLogEntry;
Expand Down Expand Up @@ -54,6 +56,22 @@ public class PathUtls {
@Inject
SvnAdminUtils svnAdminUtils;

public void upload(String svnUrl, String dir, String filePath, String userName, String userPass) {
try {
svnUrl = transLocalhost(svnUrl);
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(userName, userPass.toCharArray());

DefaultSVNOptions options = SVNWCUtil.createDefaultOptions(true);
SVNClientManager clientManager = SVNClientManager.newInstance(options, authManager);

File file = new File(filePath);
clientManager.getCommitClient().doImport(file, SVNURL.parseURIEncoded(svnUrl + "/" + dir + "/" + file.getName()), "上传文件", null, false, false, SVNDepth.INFINITY);

} catch (SVNException e) {
logger.error(e.getMessage(), e);
}
}

public void createPath(String svnUrl, String dir, String userName, String userPass) {
try {
svnUrl = transLocalhost(svnUrl);
Expand Down Expand Up @@ -187,4 +205,5 @@ public String getIP() {
}
return "localhost";
}

}
3 changes: 3 additions & 0 deletions src/main/resources/WEB-INF/view/adminPage/select_root.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@
<div class="layui-inline" id="download">
<button type="button" class="layui-btn layui-btn-sm" onclick="download()">下载</button>
</div>
<div class="layui-inline" id="uploadDiv">
<button type="button" class="layui-btn layui-btn-sm" id="upload">上传文件</button>
</div>
<div class="layui-inline" id="mkdir">
<button type="button" class="layui-btn layui-btn-sm" onclick="mkdir()">创建文件夹</button>
</div>
Expand Down
5 changes: 3 additions & 2 deletions src/main/resources/app.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
server:
port: 6060
request:
maxBodySize: 2048mb
maxHeaderSize: 20mb
maxBodySize: 200kb
maxFileSize: 2048mb
maxHeaderSize: 200kb

project:
sqlPrint: false
Expand Down
5 changes: 3 additions & 2 deletions src/main/resources/static/js/adminPage/repository/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var load;
//var load;

$(function() {
form.on('switch(enable)', function(data) {
Expand All @@ -20,6 +20,7 @@ $(function() {
});
});

/*
layui.use('upload', function() {
var upload = layui.upload;
upload.render({
Expand Down Expand Up @@ -47,7 +48,7 @@ $(function() {
});
});

*/
})


Expand Down
72 changes: 70 additions & 2 deletions src/main/resources/static/js/adminPage/select_root.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,71 @@ var rootSelect = {
}
}

var load;
$(function() {
layui.use('upload', function() {
var upload = layui.upload;
upload.render({
elem: '#upload',
url: '/adminPage/main/upload',
accept: 'file',
before: function(res) {
load = layer.load();
},
done: function(res) {
layer.close(load);
// 上传完毕回调
if (res.success) {
sendFile(res.obj);
}
},
error: function() {
layer.close(load);
// 请求异常回调
}
});
});
})

function sendFile(filePath) {
// 获取选中的路径
var dir = "/";
var nodes = rootSelect.zTreeObj.getSelectedNodes();
if (nodes.length > 0) {
var url = decodeURIComponent(nodes[0].id);

var relativePaths = [];
var urls = url.split("/");
for (let i = 4; i < urls.length; i++) {
relativePaths.push(urls[i]);
}

dir = relativePaths.join("/") + "/";
}

$.ajax({
type: 'POST',
url: ctx + '/adminPage/selectRoot/upload',
data: {
filePath: filePath,
svnUrl: svnUrl,
dir: dir
},
dataType: 'json',
success: function(data) {
if (data.success) {
rootSelect.load();
} else {
layer.msg(data.msg);
}
},
error: function() {
layer.alert("出错了,请联系技术人员!");
}
});
}


function cancelSelect() {
rootSelect.zTreeObj.cancelSelectedNode();
}
Expand All @@ -50,11 +115,12 @@ function selectRoot(id, repositoryId) {
if (data.success) {
$("#selectOver").show();
$("#selectRootOver").show();
$("#uploadDiv").show();
$("#mkdir").show();
$("#rmfile").show();
$("#download").hide();
$("#rmfile").hide();

showTree(data.obj.url, true);
} else {
layer.msg(data.msg);
Expand All @@ -71,11 +137,13 @@ function seeFile(url, permission) {
$("#selectRootOver").hide();
$("#download").show();
$("#rmfile").show();

if (permission == 'rw') {
$("#uploadDiv").show();
$("#mkdir").show();
$("#rmfile").show();
} else {
$("#uploadDiv").hide();
$("#mkdir").hide();
$("#rmfile").hide();
}
Expand Down

0 comments on commit b93e420

Please sign in to comment.