From 33b88fecb296dfa6f4375eb19ea82f5b83deab5b Mon Sep 17 00:00:00 2001 From: "sh118521@163.com" Date: Sat, 23 Apr 2022 18:33:56 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9mysql=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/app.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/resources/app.yml b/src/main/resources/app.yml index 66e6080..3eb69cd 100644 --- a/src/main/resources/app.yml +++ b/src/main/resources/app.yml @@ -7,7 +7,7 @@ server: project: sqlPrint: false beanPackage: com.cym.model - home: /home/svnWebUI/ + home: /data/svn findPass: false solon: @@ -23,8 +23,7 @@ solon: level: INFO database: - type: h2 - url: - username: - password: - \ No newline at end of file + type: mysql + url: jdbc:mysql://xajxnm.com:43306/svnwebui66?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC + username: svnwebui66 + password: sFZf7WsTadSGejbY -- Gitee From 221cd107635305d859f1567f77c79e50d3faeef0 Mon Sep 17 00:00:00 2001 From: "sh118521@163.com" Date: Sat, 23 Apr 2022 18:53:38 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=8E=A8=E9=80=81=E9=92=89=E9=92=89WebHook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/cym/nsl/utils/WebHooks.java | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/main/java/com/cym/nsl/utils/WebHooks.java diff --git a/src/main/java/com/cym/nsl/utils/WebHooks.java b/src/main/java/com/cym/nsl/utils/WebHooks.java new file mode 100644 index 0000000..a58d4bf --- /dev/null +++ b/src/main/java/com/cym/nsl/utils/WebHooks.java @@ -0,0 +1,81 @@ +package com.cym.nsl.utils; + +import cn.hutool.http.HttpUtil; +import com.mysql.cj.util.StringUtils; +import org.codehaus.plexus.util.Base64; + +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; + +public class WebHooks { + + + public static String WebHooks(String url , String secret , String json ){ + + String postUrl = ""; + //钉钉 + if(url.contains("https://oapi.dingtalk.com/robot/send")){ + postUrl = dingding_WebHooks(url,secret); + } + + + + if(StringUtils.isNullOrEmpty(postUrl)){ + return "请求无法识别,请确认推送地址!"; + } + + String res = HttpUtil.post( postUrl , json, 2000); + System.out.println(res); + return res ; + + } + + + private static String dingding_WebHooks( String url , String secret ){ + String postUrl = ""; + try { + + Long timestamp = System.currentTimeMillis(); + + String stringToSign = timestamp + "\n" + secret; + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256")); + byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8")); + String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)),"UTF-8"); + System.out.println(sign); + + postUrl = url + "×tamp="+timestamp+ "&sign=" + sign ; + + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } catch (InvalidKeyException e) { + throw new RuntimeException(e); + } + + return postUrl ; + + } + + public static void main(String[] args) throws Exception { + + WebHooks("https://oapi.dingtalk.com/robot/send?access_token=73ff144ed6c1416ab7f60b6e73168a986dd53bb7cc0239785f0385265154f755","SECafaa07270caeae61527ff11d07b892567b5010a447249d551e9ee6b722d7f62a","{\n" + + " \"commitMessage\": \"123\",\n" + + " \"author\": \"svnAdmin\",\n" + + " \"repository\": \"test3\",\n" + + " \"revision\": 7,\n" + + " \"password\": \"SECafaa07270caeae61527ff11d07b892567b5010a447249d551e9ee6b722d7f62a\",\n" + + " \"time\": \"2022-04-12 22:58:30\"\n" + + "}"); + + } + + + + +} -- Gitee From f8e5e863f01910f2b61abc1c0ebefcdb14ef24d5 Mon Sep 17 00:00:00 2001 From: "sh118521@163.com" Date: Wed, 27 Apr 2022 02:07:20 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E4=BB=93=E5=BA=93=E6=8F=90=E4=BA=A4=E6=97=A5=E5=BF=97=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20repo.zip=E6=B7=BB=E5=8A=A0pre-commit=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=8F=90=E4=BA=A4=E8=AE=B0=E5=BD=95=E5=BF=85=E5=A1=AB?= =?UTF-8?q?4=E4=B8=AA=E5=AD=97=20repo.zip=E6=B7=BB=E5=8A=A0post-commit?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=8F=91=E9=80=81=E6=97=A5=E5=BF=97=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cym/controller/HooksController.java | 120 ++++++++++++++++++ .../controller/RepositoryHisController.java | 78 ++++++++++++ .../java/com/cym/ext/RepositoryHisExt.java | 46 +++++++ .../java/com/cym/model/RepositoryHis.java | 59 +++++++++ src/main/java/com/cym/nsl/utils/WebHooks.java | 2 +- .../com/cym/service/RepositoryHisService.java | 91 +++++++++++++ .../com/cym/service/RepositoryService.java | 5 + .../java/com/cym/service/UserService.java | 5 + .../java/com/cym/utils/SvnAdminUtils.java | 2 +- .../WEB-INF/view/adminPage/menu.html | 3 + .../view/adminPage/repositoryHis/index.html | 65 ++++++++++ src/main/resources/file/repo.zip | Bin 18025 -> 19102 bytes .../resources/static/css/adminPage/base.css | 18 ++- 13 files changed, 491 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/cym/controller/HooksController.java create mode 100644 src/main/java/com/cym/controller/RepositoryHisController.java create mode 100644 src/main/java/com/cym/ext/RepositoryHisExt.java create mode 100644 src/main/java/com/cym/model/RepositoryHis.java create mode 100644 src/main/java/com/cym/service/RepositoryHisService.java create mode 100644 src/main/resources/WEB-INF/view/adminPage/repositoryHis/index.html diff --git a/src/main/java/com/cym/controller/HooksController.java b/src/main/java/com/cym/controller/HooksController.java new file mode 100644 index 0000000..e2fa926 --- /dev/null +++ b/src/main/java/com/cym/controller/HooksController.java @@ -0,0 +1,120 @@ +package com.cym.controller; + + +import cn.hutool.core.date.DateUtil; +import com.cym.ext.RepositoryHisExt; +import com.cym.model.Repository; +import com.cym.model.RepositoryHis; +import com.cym.model.User; +import com.cym.service.RepositoryHisService; +import com.cym.service.RepositoryService; +import com.cym.service.SettingService; +import com.cym.service.UserService; +import com.cym.sqlhelper.bean.Page; +import com.cym.utils.BaseController; +import com.cym.utils.BeanExtUtil; +import com.cym.utils.PathUtls; +import com.cym.utils.SvnAdminUtils; +import org.noear.solon.annotation.Controller; +import org.noear.solon.annotation.Inject; +import org.noear.solon.annotation.Mapping; +import org.noear.solon.core.handle.ModelAndView; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.tmatesoft.svn.core.ISVNLogEntryHandler; +import org.tmatesoft.svn.core.SVNException; +import org.tmatesoft.svn.core.SVNLogEntry; +import org.tmatesoft.svn.core.SVNURL; +import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager; +import org.tmatesoft.svn.core.io.SVNRepository; +import org.tmatesoft.svn.core.io.SVNRepositoryFactory; +import org.tmatesoft.svn.core.wc.SVNWCUtil; + +import java.util.List; + +@Controller +@Mapping("/hooks/") +public class HooksController extends BaseController { + + Logger logger = LoggerFactory.getLogger(HooksController.class); + @Inject + SettingService settingService; + @Inject + PathUtls pathUtls; + @Inject + SvnAdminUtils svnAdminUtils; + @Inject + RepositoryHisService repositoryHisService; + @Inject + UserService userService; + @Inject + RepositoryService repositoryService; + + /** + * 后台Hooks提交日志的方法 + * @param REPOS + * @param REV + * @param TXN_NAME + * @return + */ + @Mapping("addHis") + public String addHis( String REPOS ,String REV,String TXN_NAME ) { + + logger.error("REPOS====:"+ REPOS ); + logger.error("REV====:"+ REV ); + logger.error("TXN_NAME====:"+ TXN_NAME ); + + + try { + + String[] reps = REPOS.split("\\/"); + String repName = reps[reps.length-1]; + + String port = settingService.get("port"); + String url = pathUtls.buildUrl(port) + "/" + repName ; + Repository repository = repositoryService.getByName(repName,""); + + boolean repis = repositoryHisService.getIsRepositoryHis(repository.getId() , REV); + if(repis){ + return "仓库已存在"; + } + + SVNRepository svnRepository = SVNRepositoryFactory.create(SVNURL.parseURIEncoded(url)); + ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(svnAdminUtils.adminUserName, svnAdminUtils.adminUserPass.toCharArray()); + svnRepository.setAuthenticationManager(authManager); + + long version = Long.parseLong(REV); + svnRepository.log(new String[] { }, version , version , true, true, new ISVNLogEntryHandler() { + @Override + public void handleLogEntry(SVNLogEntry svnlogentry) throws SVNException { + + String Auther = svnlogentry.getAuthor(); + String commitMessage = svnlogentry.getMessage(); + String time = DateUtil.format(svnlogentry.getDate(), "yyyy-MM-dd HH:mm:ss"); + + User user = userService.getByName(Auther,""); + + RepositoryHis repositoryHis = new RepositoryHis(); + repositoryHis.setUserId(user.getId()); + repositoryHis.setRepositoryId(repository.getId()); + repositoryHis.setVersion(REV); + repositoryHis.setBizdate(time); + repositoryHis.setDescription(commitMessage); + + repositoryHisService.insertOrUpdate(repositoryHis); + + } + }); + + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + + return "仓库日志记录成功;REPOS="+REPOS+ "|REV="+REV +"|TXN_NAME="+TXN_NAME; + + + } + + + +} diff --git a/src/main/java/com/cym/controller/RepositoryHisController.java b/src/main/java/com/cym/controller/RepositoryHisController.java new file mode 100644 index 0000000..153e400 --- /dev/null +++ b/src/main/java/com/cym/controller/RepositoryHisController.java @@ -0,0 +1,78 @@ +package com.cym.controller; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; +import com.cym.ext.RepositoryHisExt; +import com.cym.model.Repository; +import com.cym.model.RepositoryHis; +import com.cym.model.User; +import com.cym.service.RepositoryHisService; +import com.cym.service.RepositoryService; +import com.cym.service.SettingService; +import com.cym.service.UserService; +import com.cym.sqlhelper.bean.Page; +import com.cym.utils.*; +import org.noear.solon.annotation.Controller; +import org.noear.solon.annotation.Inject; +import org.noear.solon.annotation.Mapping; +import org.noear.solon.core.handle.ModelAndView; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.tmatesoft.svn.core.ISVNLogEntryHandler; +import org.tmatesoft.svn.core.SVNException; +import org.tmatesoft.svn.core.SVNLogEntry; +import org.tmatesoft.svn.core.SVNURL; +import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager; +import org.tmatesoft.svn.core.io.SVNRepository; +import org.tmatesoft.svn.core.io.SVNRepositoryFactory; +import org.tmatesoft.svn.core.wc.SVNWCUtil; + +import java.util.List; + +@Controller +@Mapping("/adminPage/repositoryHis") +public class RepositoryHisController extends BaseController { + + Logger logger = LoggerFactory.getLogger(RepositoryHisController.class); + @Inject + RepositoryHisService repositoryHisService; + @Inject + UserService userService; + @Inject + RepositoryService repositoryService; + + @Mapping("") + public ModelAndView index(Page page , String keywords) { + + User user = getLoginUser(); + + page = repositoryHisService.getListByRepositoryHis( page , user , keywords); + + Page pageExt = BeanExtUtil.copyPageByProperties(page, RepositoryHisExt.class); + + for (RepositoryHisExt repositoryHisExt : (List) pageExt.getRecords()) { + + repositoryHisExt.setUser( userService.getById( repositoryHisExt.getUserId() ) ); + + repositoryHisExt.setUserLastName( repositoryHisExt.getUser().getTrueName().substring(repositoryHisExt.getUser().getTrueName().length()-1) ); + + repositoryHisExt.setRepository( repositoryService.getById( repositoryHisExt.getRepositoryId() )); + + repositoryHisExt.setBizdate( repositoryHisExt.getBizdate().substring(0,19) ); + + } + + ModelAndView modelAndView = new ModelAndView("/adminPage/repositoryHis/index.html"); + modelAndView.put("keywords", keywords); + modelAndView.put("page", pageExt); + + return modelAndView; + + } + + + + +} diff --git a/src/main/java/com/cym/ext/RepositoryHisExt.java b/src/main/java/com/cym/ext/RepositoryHisExt.java new file mode 100644 index 0000000..dc30f3d --- /dev/null +++ b/src/main/java/com/cym/ext/RepositoryHisExt.java @@ -0,0 +1,46 @@ +package com.cym.ext; + +import com.cym.model.Repository; +import com.cym.model.RepositoryHis; +import com.cym.model.User; + +public class RepositoryHisExt extends RepositoryHis { + + RepositoryHis repositoryHis; + + Repository repository; + + User user; + + String userLastName; + + + public RepositoryHis getRepositoryHis() { + return repositoryHis; + } + + public void setRepositoryHis(RepositoryHis repositoryHis) { + this.repositoryHis = repositoryHis; + } + + public Repository getRepository() { + return repository; + } + + public void setRepository(Repository repository) { + this.repository = repository; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public String getUserLastName() { return userLastName; } + + public void setUserLastName(String userLastName) { this.userLastName = userLastName; } + +} diff --git a/src/main/java/com/cym/model/RepositoryHis.java b/src/main/java/com/cym/model/RepositoryHis.java new file mode 100644 index 0000000..6445e3e --- /dev/null +++ b/src/main/java/com/cym/model/RepositoryHis.java @@ -0,0 +1,59 @@ +package com.cym.model; + +import com.cym.sqlhelper.bean.BaseModel; +import com.cym.sqlhelper.config.Table; + + +@Table +public class RepositoryHis extends BaseModel { + + String repositoryId; + + String userId; + + String bizdate; + + String description; + + String version; + + public String getRepositoryId() { + return repositoryId; + } + + public void setRepositoryId(String repositoryId) { + this.repositoryId = repositoryId; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getBizdate() { + return bizdate; + } + + public void setBizdate(String bizdate) { + this.bizdate = bizdate; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } +} diff --git a/src/main/java/com/cym/nsl/utils/WebHooks.java b/src/main/java/com/cym/nsl/utils/WebHooks.java index a58d4bf..b60e9df 100644 --- a/src/main/java/com/cym/nsl/utils/WebHooks.java +++ b/src/main/java/com/cym/nsl/utils/WebHooks.java @@ -62,7 +62,7 @@ public class WebHooks { } - public static void main(String[] args) throws Exception { + public static void main(String[] arRepositoryHisServicegs) throws Exception { WebHooks("https://oapi.dingtalk.com/robot/send?access_token=73ff144ed6c1416ab7f60b6e73168a986dd53bb7cc0239785f0385265154f755","SECafaa07270caeae61527ff11d07b892567b5010a447249d551e9ee6b722d7f62a","{\n" + " \"commitMessage\": \"123\",\n" + diff --git a/src/main/java/com/cym/service/RepositoryHisService.java b/src/main/java/com/cym/service/RepositoryHisService.java new file mode 100644 index 0000000..364616f --- /dev/null +++ b/src/main/java/com/cym/service/RepositoryHisService.java @@ -0,0 +1,91 @@ +package com.cym.service; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.resource.ClassPathResource; +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.ZipUtil; +import com.cym.model.Repository; +import com.cym.model.RepositoryHis; +import com.cym.model.RepositoryUser; +import com.cym.model.User; +import com.cym.sqlhelper.bean.Page; +import com.cym.sqlhelper.bean.Sort; +import com.cym.sqlhelper.utils.ConditionAndWrapper; +import com.cym.sqlhelper.utils.ConditionOrWrapper; +import com.cym.sqlhelper.utils.SqlHelper; +import org.noear.solon.annotation.Inject; +import org.noear.solon.extend.aspect.annotation.Service; + +import java.io.File; +import java.io.InputStream; +import java.util.List; + + +@Service +public class RepositoryHisService { + + @Inject + SqlHelper sqlHelper; + + public Page getListByRepositoryHis(Page page , User user, String keywords) { + + ConditionAndWrapper conditionAndWrapper = new ConditionAndWrapper(); + Sort sort = new Sort(); + sort.add("bizdate",Sort.Direction.DESC ) ; + + //这里是首页仓库查询权限需要的 + if( 1 != user.getType() ){ + //查询用户直接授权 + List listRepositoryUser = sqlHelper.findListByQuery (new ConditionAndWrapper().eq(RepositoryUser::getUserId, user.getId() ), RepositoryUser.class); + + String[] strArr = new String[listRepositoryUser.size()]; + for (int i = 0; i < listRepositoryUser.size(); i++) { + strArr[i] = listRepositoryUser.get(i).getRepositoryId(); + } + + conditionAndWrapper.and(new ConditionOrWrapper().in( RepositoryHis::getRepositoryId , strArr )); + } + if (StrUtil.isNotEmpty(keywords)) { + conditionAndWrapper.and(new ConditionOrWrapper().like(Repository::getName, keywords)); + } + + Page pageResp = sqlHelper.findPage( conditionAndWrapper, sort , page , RepositoryHis.class); + + return pageResp; + + } + + public boolean getIsRepositoryHis(String repository , String version ) { + + ConditionAndWrapper conditionAndWrapper = new ConditionAndWrapper(); + conditionAndWrapper.and(new ConditionOrWrapper().eq( RepositoryHis::getId, repository ).eq(RepositoryHis::getVersion, version )); +// conditionAndWrapper.and(new ConditionOrWrapper().eq( RepositoryHis::getVersion, version )); + + //查询仓库是否存在直接授权 + List repositoryHis = sqlHelper.findListByQuery (conditionAndWrapper , RepositoryHis.class); + + return repositoryHis.size() > 0 ? true : false; + + } + + public Page getListByRepositoryHis(Page page , String repositoryId) { + + ConditionAndWrapper conditionAndWrapper = new ConditionAndWrapper(); + Sort sort = new Sort(); + sort.add("bizdate",Sort.Direction.DESC ) ; + + conditionAndWrapper.and(new ConditionOrWrapper().eq( RepositoryHis::getRepositoryId , repositoryId) ); + + Page pageResp = sqlHelper.findPage( conditionAndWrapper, sort , page , RepositoryHis.class); + + return pageResp; + + } + + public void insertOrUpdate(RepositoryHis repositoryhis) { + + sqlHelper.insertOrUpdate(repositoryhis); + } + + +} diff --git a/src/main/java/com/cym/service/RepositoryService.java b/src/main/java/com/cym/service/RepositoryService.java index fd1bc0b..46a872b 100644 --- a/src/main/java/com/cym/service/RepositoryService.java +++ b/src/main/java/com/cym/service/RepositoryService.java @@ -63,6 +63,11 @@ public class RepositoryService { return sqlHelper.findOneByQuery(conditionAndWrapper, Repository.class); } + public Repository getById( String repositoryId) { + ConditionAndWrapper conditionAndWrapper = new ConditionAndWrapper().eq(Repository::getId, repositoryId); + return sqlHelper.findOneByQuery(conditionAndWrapper, Repository.class); + } + public void deleteById(String repositoryId) { Repository repository = sqlHelper.findById(repositoryId, Repository.class); String dir = homeConfig.home + "repo" + File.separator + repository.getName(); diff --git a/src/main/java/com/cym/service/UserService.java b/src/main/java/com/cym/service/UserService.java index cef426f..8cdb339 100644 --- a/src/main/java/com/cym/service/UserService.java +++ b/src/main/java/com/cym/service/UserService.java @@ -54,6 +54,11 @@ public class UserService { return sqlHelper.findOneByQuery(conditionAndWrapper, User.class); } + public User getById( String userId ) { + ConditionAndWrapper conditionAndWrapper = new ConditionAndWrapper().eq( User:: getId, userId ) ; + + return sqlHelper.findOneByQuery(conditionAndWrapper, User.class); + } public void importUser(String name, String pass) { Long count = sqlHelper.findCountByQuery(new ConditionAndWrapper().eq(User::getName, name), User.class); diff --git a/src/main/java/com/cym/utils/SvnAdminUtils.java b/src/main/java/com/cym/utils/SvnAdminUtils.java index 7a032a2..d40d23b 100644 --- a/src/main/java/com/cym/utils/SvnAdminUtils.java +++ b/src/main/java/com/cym/utils/SvnAdminUtils.java @@ -16,7 +16,7 @@ public class SvnAdminUtils { @Init public void init() throws UnknownHostException, SocketException { adminUserName = "svnAdmin"; - adminUserPass = UUID.randomUUID().toString(); + adminUserPass = "f12ffcbc-4acf-4632-ae7c-19128a517e93";//UUID.randomUUID().toString(); } public String getAdminUserName() { diff --git a/src/main/resources/WEB-INF/view/adminPage/menu.html b/src/main/resources/WEB-INF/view/adminPage/menu.html index b1ed501..572a551 100644 --- a/src/main/resources/WEB-INF/view/adminPage/menu.html +++ b/src/main/resources/WEB-INF/view/adminPage/menu.html @@ -27,6 +27,9 @@
小组管理
+
+ 提交日志 +
diff --git a/src/main/resources/WEB-INF/view/adminPage/repositoryHis/index.html b/src/main/resources/WEB-INF/view/adminPage/repositoryHis/index.html new file mode 100644 index 0000000..2b25c21 --- /dev/null +++ b/src/main/resources/WEB-INF/view/adminPage/repositoryHis/index.html @@ -0,0 +1,65 @@ + + + +<#include "/adminPage/common.html"/> + + + +
+ <#include "/adminPage/header.html"/> + <#include "/adminPage/menu.html"/> + +
+ +
+
+ 仓库动态 +
+ + + + + + + + + + + + + + <#list page.records as recordsHisExt> + + + + + + + + + + +
仓库名头像更新人描述时间操作
+ ${recordsHisExt.repository.name} + + <#if recordsHisExt.user.avatarUrl != null> + + <#else> +
${recordsHisExt.userLastName}
+ +
${recordsHisExt.user.trueName}${recordsHisExt.description}${recordsHisExt.bizdate} + +
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/src/main/resources/file/repo.zip b/src/main/resources/file/repo.zip index d547becef110bc4a4eb5c1e9638ab796e13fe206..b49cd72cb6492e52e065e36f6fc93d11f3a8e03c 100644 GIT binary patch delta 1133 zcmaFa!#Hm$CH@ z9p&FHbMqEn-umDXR}rh$w$LEM5GJF;4Lr)K>n3pQudsKI4_Bx^AJN&Zy>p9(yW@3d z$CH-!>s3tGyO=N8q;OSh;{pYBW6O;y#`ga9t1ayPJsr)NayB;Qbv0FO6}pk2s;yco zYTzB~$*v*7Cd$EFn0T$>Xo5`X(x}qbo=KCKv}^y)`Saw+oSr|AgtU#BjhX-U{Q2`H z>F<##BK>EQ7W7Xt{v>*(e*RbgicQ%kH}`S+?|!yAx|oq6z#A4O&cHA^UX>VWz{J2{ zz|6oPfC!VKRA`X22A$6qb`;t7KK|n-&Uts1Xzs1>SSa%H;1)q;C9_sP^UXIEcN-_B zZ?jinUw!0CQ-nxQ({v~0wNWlDLP6R8#OrU~U8eq@_5M4ySmcD)XShOUq)c5ouqs*WQ``jIGx;%6|D9Br|a>^3NgCa44 z$5cHYCUM;jt6cjlV`?ld<~Y{z?x3wg|U)3~|{>$}ZNXJ6kd7=QB+bE0CB(Cy;b zGg~@+7RhDb;EH9`eHD4Acxz6Py{E8^qge3@mP4-t(&bF2evo*?d&=UR?yECNTjpKg zG+C>8hFVwR5wD6vC%4aeU8wf>?wpLM-j{(B1dcYoIO}LoZ^Pw2clF`VA3kLN_>^36 zrMFHley=U3KmV4Z)Xbf`LZbffpJ3i`qfJ+sr&!h@S!_*Gnb-2>hZ-}QO?ehD$nY`* zToy|RxRAZa=I`T{&-Ul-G(=cd+zzsqydh|}V_(RDiqqjM0(a@kX!_2s5PG}lti@E5 zgGWL{^gVysPFd}<_E^2*tFMOx^{sAqm+fb7zW!KT{9r;wrO}_?+2&PsbGVHD{ndN( z<#_tsk1MRjdG@s|-+MZL{^Gsg4Lj=gILXZU-h8mG;3Mbi Date: Wed, 27 Apr 2022 02:35:43 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E4=BB=93=E5=BA=93=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=97=B6=E6=B7=BB=E5=8A=A0=E6=8F=8F=E8=BF=B0=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=8C=E4=BB=93=E5=BA=93=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cym/controller/RepositoryController.java | 4 ++-- src/main/java/com/cym/model/Repository.java | 10 ++++++++++ .../java/com/cym/service/RepositoryService.java | 7 +++---- .../WEB-INF/view/adminPage/repository/index.html | 14 ++++++++++++++ .../static/js/adminPage/repository/index.js | 5 +++-- 5 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/cym/controller/RepositoryController.java b/src/main/java/com/cym/controller/RepositoryController.java index 94caf56..4fdea98 100644 --- a/src/main/java/com/cym/controller/RepositoryController.java +++ b/src/main/java/com/cym/controller/RepositoryController.java @@ -102,7 +102,7 @@ public class RepositoryController extends BaseController { } @Mapping("addOver") - public JsonResult addOver(String name) { + public JsonResult addOver(String name,String describe) { if (StrUtil.isEmpty(name)) { return renderError("仓库名为空"); } @@ -118,7 +118,7 @@ public class RepositoryController extends BaseController { return renderError("该仓库文件夹已存在, 请使用扫描功能添加"); } - repositoryService.insertOrUpdate(name); + repositoryService.insertOrUpdate(name,describe); configService.refresh(); return renderSuccess(); diff --git a/src/main/java/com/cym/model/Repository.java b/src/main/java/com/cym/model/Repository.java index 7427a09..cc2752b 100644 --- a/src/main/java/com/cym/model/Repository.java +++ b/src/main/java/com/cym/model/Repository.java @@ -15,6 +15,9 @@ public class Repository extends BaseModel { // 文件夹大小 String size; + //描述 + String describe; + public String getSize() { return size; } @@ -39,4 +42,11 @@ public class Repository extends BaseModel { this.name = name; } + public String getDescribe() { + return describe; + } + + public void setDescribe(String describe) { + this.describe = describe; + } } diff --git a/src/main/java/com/cym/service/RepositoryService.java b/src/main/java/com/cym/service/RepositoryService.java index 46a872b..7c0fb94 100644 --- a/src/main/java/com/cym/service/RepositoryService.java +++ b/src/main/java/com/cym/service/RepositoryService.java @@ -26,11 +26,9 @@ import com.cym.sqlhelper.utils.ConditionAndWrapper; import com.cym.sqlhelper.utils.ConditionOrWrapper; import com.cym.sqlhelper.utils.SqlHelper; import com.cym.utils.BeanExtUtil; -import com.cym.utils.SystemTool; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.resource.ClassPathResource; -import cn.hutool.core.util.RuntimeUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ZipUtil; @@ -79,7 +77,7 @@ public class RepositoryService { } - public void insertOrUpdate(String name) { + public void insertOrUpdate(String name, String describe) { // 创建仓库 String dir = homeConfig.home + "repo" + File.separator + name; @@ -95,6 +93,7 @@ public class RepositoryService { Repository repository = new Repository(); repository.setName(name); + repository.setDescribe(describe); sqlHelper.insertOrUpdate(repository); } @@ -271,7 +270,7 @@ public class RepositoryService { && FileUtil.exist(file.getPath() + File.separator + "locks")) { Long count = sqlHelper.findCountByQuery(new ConditionAndWrapper().eq(Repository::getName, file.getName()), Repository.class); if (count == 0) { - insertOrUpdate(file.getName()); + insertOrUpdate(file.getName(), ""); } } } diff --git a/src/main/resources/WEB-INF/view/adminPage/repository/index.html b/src/main/resources/WEB-INF/view/adminPage/repository/index.html index 38b0430..e549522 100644 --- a/src/main/resources/WEB-INF/view/adminPage/repository/index.html +++ b/src/main/resources/WEB-INF/view/adminPage/repository/index.html @@ -54,6 +54,7 @@ 仓库名 url + 描述 仓库大小 全体授权 授权 @@ -68,6 +69,7 @@ ${repositoryExt.url}    复制 + ${repositoryExt.describe} ${repositoryExt.size} <#if repositoryExt.allPermission=='r'> 只读 @@ -86,6 +88,7 @@ +
@@ -98,6 +101,7 @@
+ @@ -125,6 +129,16 @@ +
+ +
+ +
+
+
diff --git a/src/main/resources/static/js/adminPage/repository/index.js b/src/main/resources/static/js/adminPage/repository/index.js index df99f00..7143697 100644 --- a/src/main/resources/static/js/adminPage/repository/index.js +++ b/src/main/resources/static/js/adminPage/repository/index.js @@ -70,7 +70,7 @@ function showWindow(title) { layer.open({ type: 1, title: title, - area: ['400px', '200px'], // 宽高 + area: ['450px', '250px'], // 宽高 content: $('#windowDiv') }); } @@ -93,7 +93,8 @@ function addOver() { type: 'POST', url: ctx + '/adminPage/repository/addOver', data: { - name: $("#name").val() + name: $("#name").val(), + describe: $("#describe").val() }, dataType: 'json', success: function(data) { -- Gitee From 97c3d6daefc924e04ba26ab48c3072f26d1288f4 Mon Sep 17 00:00:00 2001 From: "sh118521@163.com" Date: Wed, 27 Apr 2022 13:54:50 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E4=BB=93=E5=BA=93=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=97=B6=E6=B7=BB=E5=88=B0=E6=9C=9F=E6=97=A5=E6=9C=9F=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=EF=BC=8C=E4=BB=93=E5=BA=93=E5=88=97=E8=A1=A8=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=AD=97=E6=AE=B5=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cym/controller/RepositoryController.java | 4 +- src/main/java/com/cym/model/Repository.java | 16 +-- .../com/cym/service/RepositoryService.java | 6 +- .../view/adminPage/repository/index.html | 23 +++- .../view/adminPage/repositoryHis/index.html | 7 +- .../resources/static/js/adminPage/base.js | 8 ++ .../static/js/adminPage/repository/index.js | 102 +++++++++++++++++- 7 files changed, 148 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/cym/controller/RepositoryController.java b/src/main/java/com/cym/controller/RepositoryController.java index 4fdea98..6f0df09 100644 --- a/src/main/java/com/cym/controller/RepositoryController.java +++ b/src/main/java/com/cym/controller/RepositoryController.java @@ -102,7 +102,7 @@ public class RepositoryController extends BaseController { } @Mapping("addOver") - public JsonResult addOver(String name,String describe) { + public JsonResult addOver(String name,String describe,String rependdate) { if (StrUtil.isEmpty(name)) { return renderError("仓库名为空"); } @@ -118,7 +118,7 @@ public class RepositoryController extends BaseController { return renderError("该仓库文件夹已存在, 请使用扫描功能添加"); } - repositoryService.insertOrUpdate(name,describe); + repositoryService.insertOrUpdate(name,describe,rependdate); configService.refresh(); return renderSuccess(); diff --git a/src/main/java/com/cym/model/Repository.java b/src/main/java/com/cym/model/Repository.java index cc2752b..1b095cf 100644 --- a/src/main/java/com/cym/model/Repository.java +++ b/src/main/java/com/cym/model/Repository.java @@ -18,6 +18,10 @@ public class Repository extends BaseModel { //描述 String describe; + //到期时间 + String rependdate; + + public String getSize() { return size; } @@ -42,11 +46,11 @@ public class Repository extends BaseModel { this.name = name; } - public String getDescribe() { - return describe; - } + public String getDescribe() {return describe;} - public void setDescribe(String describe) { - this.describe = describe; - } + public void setDescribe(String describe) { this.describe = describe;} + + public String getRependdate() {return rependdate;} + + public void setRependdate(String rependdate) { this.rependdate = rependdate;} } diff --git a/src/main/java/com/cym/service/RepositoryService.java b/src/main/java/com/cym/service/RepositoryService.java index 7c0fb94..b2f6836 100644 --- a/src/main/java/com/cym/service/RepositoryService.java +++ b/src/main/java/com/cym/service/RepositoryService.java @@ -77,7 +77,7 @@ public class RepositoryService { } - public void insertOrUpdate(String name, String describe) { + public void insertOrUpdate(String name, String describe,String rependdate) { // 创建仓库 String dir = homeConfig.home + "repo" + File.separator + name; @@ -94,6 +94,8 @@ public class RepositoryService { Repository repository = new Repository(); repository.setName(name); repository.setDescribe(describe); + repository.setRependdate(rependdate); + sqlHelper.insertOrUpdate(repository); } @@ -270,7 +272,7 @@ public class RepositoryService { && FileUtil.exist(file.getPath() + File.separator + "locks")) { Long count = sqlHelper.findCountByQuery(new ConditionAndWrapper().eq(Repository::getName, file.getName()), Repository.class); if (count == 0) { - insertOrUpdate(file.getName(), ""); + insertOrUpdate(file.getName(), "",""); } } } diff --git a/src/main/resources/WEB-INF/view/adminPage/repository/index.html b/src/main/resources/WEB-INF/view/adminPage/repository/index.html index e549522..3c615fb 100644 --- a/src/main/resources/WEB-INF/view/adminPage/repository/index.html +++ b/src/main/resources/WEB-INF/view/adminPage/repository/index.html @@ -49,12 +49,13 @@ - +
+ @@ -70,6 +71,7 @@ 复制 +
仓库名 url 描述到期日期 仓库大小 全体授权 授权 ${repositoryExt.describe}${repositoryExt.rependdate} ${repositoryExt.size} <#if repositoryExt.allPermission=='r'> 只读 @@ -88,7 +90,10 @@ - + + + +
@@ -107,8 +112,9 @@
-
+ +
@@ -126,6 +132,7 @@
+
仓库的访问路径地址,建议使用英文和数字
@@ -139,6 +146,16 @@ +
+ +
+ +
默认仓库到期时间为90天
+
+
diff --git a/src/main/resources/WEB-INF/view/adminPage/repositoryHis/index.html b/src/main/resources/WEB-INF/view/adminPage/repositoryHis/index.html index 2b25c21..4bf6ac1 100644 --- a/src/main/resources/WEB-INF/view/adminPage/repositoryHis/index.html +++ b/src/main/resources/WEB-INF/view/adminPage/repositoryHis/index.html @@ -24,7 +24,7 @@ 头像 更新人 描述 - 时间 + 提交时间 操作 @@ -32,7 +32,8 @@ <#list page.records as recordsHisExt> - ${recordsHisExt.repository.name} + + ${recordsHisExt.repository.name} <#if recordsHisExt.user.avatarUrl != null> @@ -45,7 +46,7 @@ ${recordsHisExt.description} ${recordsHisExt.bizdate} - + diff --git a/src/main/resources/static/js/adminPage/base.js b/src/main/resources/static/js/adminPage/base.js index c9e080f..0f2b862 100644 --- a/src/main/resources/static/js/adminPage/base.js +++ b/src/main/resources/static/js/adminPage/base.js @@ -120,6 +120,14 @@ function formatDate(now) { return new Date(now).format("yyyy-MM-dd HH:mm:ss"); } +function formatDate(format,adddays ){ + var d = new Date();//定义了一个时间类型d, 来获取当前的时间 + + d.setDate(d.getDate() + adddays) + return d.format(format); + +} + // 查看图片 function seePic(url) { window.open(url); diff --git a/src/main/resources/static/js/adminPage/repository/index.js b/src/main/resources/static/js/adminPage/repository/index.js index 7143697..6eee83a 100644 --- a/src/main/resources/static/js/adminPage/repository/index.js +++ b/src/main/resources/static/js/adminPage/repository/index.js @@ -29,6 +29,102 @@ $(function() { }); + var date = formatDate("yyyy-MM-dd", 90 ); + layui.use('laydate', function(){ + var laydate = layui.laydate; + //执行一个laydate实例 + laydate.render({ + elem: '#rependdate' //指定元素 + ,value: date + ,isInitValue: true //是否允许填充初始值,默认为 true + }); + }); + + var dropdown = layui.dropdown + dropdown.render({ + elem: '#actionRep' //可绑定在任意元素中,此处以上述按钮为例 + ,data: [{ + title: '查看文件' + ,id: 100 + ,href: 'javascript:void(0);' + ,repurl: $("#actionRep").attr("repurl") + },{ + title: '导入备份' + ,id: 101 + ,href: 'javascript:void(0);' //开启超链接 + ,onclick:"loadBak('"+ $("#actionRep").attr("repid") +"', '"+ $("#actionRep").attr("repname") +"')" + },{ + title: '导出备份' + ,id: 102 + ,href: 'javascript:void(0);' //开启超链接 + ,onclick:"dumpBak('"+ $("#actionRep").attr("repid") +"')" + },{ + title: '删除' + ,id: 103 + ,href: 'javascript:void(0);' //开启超链接 + ,onclick:"del('"+ $("#actionRep").attr("repid") +"')" + } + + ] + ,id: 'actionRep' + //菜单被点击的事件 + ,click: function(obj){ + debugger + if (obj.id == 100 ){ + seeFile(obj.repurl,'rw') + }else if (obj.id == 101){ + + }else if (obj.id == 102){ + + }else if (obj.id == 103){ + + } + + console.log(obj); + } + + }); + + + var table = layui.table //表格 + //监听行工具事件 + table.on('tool(reptable)', function(obj){ //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值" + debugger + var data = obj.data //获得当前行数据 + ,layEvent = obj.event; //获得 lay-event 对应的值 + if(layEvent === 'detail'){ + layer.msg('查看操作'); + } else if(layEvent === 'more'){ + //下拉菜单 + dropdown.render({ + elem: this //触发事件的 DOM 对象 + ,show: true //外部事件触发即显示 + ,data: [{ + title: '编辑' + ,id: 'edit' + },{ + title: '删除' + ,id: 'del' + }] + ,click: function(menudata){ + debugger + if(menudata.id === 'del'){ + layer.confirm('真的删除行么', function(index){ + obj.del(); //删除对应行(tr)的DOM结构 + layer.close(index); + //向服务端发送删除指令 + }); + } else if(menudata.id === 'edit'){ + layer.msg('编辑操作,当前行 ID:'+ data.id); + } + } + ,align: 'right' //右对齐弹出(v2.6.8 新增) + ,style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' //设置额外样式 + }) + } + }); + + }) @@ -70,7 +166,7 @@ function showWindow(title) { layer.open({ type: 1, title: title, - area: ['450px', '250px'], // 宽高 + area: ['470px', '370px'], // 宽高 content: $('#windowDiv') }); } @@ -94,11 +190,13 @@ function addOver() { url: ctx + '/adminPage/repository/addOver', data: { name: $("#name").val(), - describe: $("#describe").val() + describe: $("#describe").val(), + rependdate: $("#rependdate").val() }, dataType: 'json', success: function(data) { if (data.success) { + layer.msg("添加成功"); location.reload(); } else { layer.msg(data.msg); -- Gitee From 0ac2f8ac03a900e9ae9a0a19af2b6ed7ae84e25d Mon Sep 17 00:00:00 2001 From: "sh118521@163.com" Date: Wed, 27 Apr 2022 15:49:05 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E4=BB=93=E5=BA=93=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=97=B6=E6=B7=BB=E5=8A=A0=E6=98=AF=E5=90=A6=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=97=A5=E5=BF=97=E5=BF=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cym/controller/RepositoryController.java | 4 +- .../com/cym/service/RepositoryService.java | 13 ++++- src/main/java/com/cym/utils/RuntimeExec.java | 48 +++++++++++++++++++ .../view/adminPage/repository/index.html | 6 +++ .../static/js/adminPage/repository/index.js | 7 +-- 5 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/cym/utils/RuntimeExec.java diff --git a/src/main/java/com/cym/controller/RepositoryController.java b/src/main/java/com/cym/controller/RepositoryController.java index 6f0df09..52f2a30 100644 --- a/src/main/java/com/cym/controller/RepositoryController.java +++ b/src/main/java/com/cym/controller/RepositoryController.java @@ -102,7 +102,7 @@ public class RepositoryController extends BaseController { } @Mapping("addOver") - public JsonResult addOver(String name,String describe,String rependdate) { + public JsonResult addOver(String name,String describe,String rependdate,boolean cbislog) { if (StrUtil.isEmpty(name)) { return renderError("仓库名为空"); } @@ -118,7 +118,7 @@ public class RepositoryController extends BaseController { return renderError("该仓库文件夹已存在, 请使用扫描功能添加"); } - repositoryService.insertOrUpdate(name,describe,rependdate); + repositoryService.insertOrUpdate(name,describe,rependdate,cbislog); configService.refresh(); return renderSuccess(); diff --git a/src/main/java/com/cym/service/RepositoryService.java b/src/main/java/com/cym/service/RepositoryService.java index b2f6836..f42c210 100644 --- a/src/main/java/com/cym/service/RepositoryService.java +++ b/src/main/java/com/cym/service/RepositoryService.java @@ -5,6 +5,7 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.List; +import com.cym.utils.RuntimeExec; import org.noear.solon.annotation.Inject; import org.noear.solon.extend.aspect.annotation.Service; import org.slf4j.Logger; @@ -77,7 +78,7 @@ public class RepositoryService { } - public void insertOrUpdate(String name, String describe,String rependdate) { + public void insertOrUpdate(String name, String describe,String rependdate,boolean cbislog) { // 创建仓库 String dir = homeConfig.home + "repo" + File.separator + name; @@ -89,6 +90,14 @@ public class RepositoryService { FileUtil.mkdir(dir); ZipUtil.unzip(temp, new File(dir)); FileUtil.del(temp); + //勾选表示需要,则进行授权,否则进行删除 + if(cbislog){ + RuntimeExec.Runtime(dir); + }else{ + FileUtil.del(dir+"\\hooks\\pre-commit"); + } + + } Repository repository = new Repository(); @@ -272,7 +281,7 @@ public class RepositoryService { && FileUtil.exist(file.getPath() + File.separator + "locks")) { Long count = sqlHelper.findCountByQuery(new ConditionAndWrapper().eq(Repository::getName, file.getName()), Repository.class); if (count == 0) { - insertOrUpdate(file.getName(), "",""); + insertOrUpdate(file.getName(), "","",false); } } } diff --git a/src/main/java/com/cym/utils/RuntimeExec.java b/src/main/java/com/cym/utils/RuntimeExec.java new file mode 100644 index 0000000..11d49f1 --- /dev/null +++ b/src/main/java/com/cym/utils/RuntimeExec.java @@ -0,0 +1,48 @@ +package com.cym.utils; + +import java.io.IOException; + +public class RuntimeExec { + + public static void Runtime(String pathName ) { + try { + + String osType = getOSType(); + if("linux".equals(osType)){ + String [] cmd={"/bin/sh","-c","chmod -R 777 " + pathName }; + //执行curl命令 + Process proc = Runtime.getRuntime().exec(cmd); + //进程阻塞(非常重要,缺少则容易报错) + proc.waitFor(); + }else if("windows".equals(osType)){ + //windos 暂时不考虑授权 + + + } + + }catch (IOException e) { + throw new RuntimeException(e); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + + } + + public static String getOSType(){ + String ostype = ""; + String os = System.getProperty("os.name"); + //Windows操作系统 + if (os != null && os.toLowerCase().startsWith("windows")) { + System.out.println(String.format("当前系统版本是:%s", os)); + ostype = "windows"; + } else if (os != null && os.toLowerCase().startsWith("linux")) {//Linux操作系统 + System.out.println(String.format("当前系统版本是:%s", os)); + ostype = "linux"; + } else { //其它操作系统 + System.out.println(String.format("当前系统版本是:%s", os)); + ostype = "other"; + } + return ostype; + } + +} diff --git a/src/main/resources/WEB-INF/view/adminPage/repository/index.html b/src/main/resources/WEB-INF/view/adminPage/repository/index.html index 3c615fb..45ad698 100644 --- a/src/main/resources/WEB-INF/view/adminPage/repository/index.html +++ b/src/main/resources/WEB-INF/view/adminPage/repository/index.html @@ -156,6 +156,12 @@
默认仓库到期时间为90天
+
+
+ +
+
+
diff --git a/src/main/resources/static/js/adminPage/repository/index.js b/src/main/resources/static/js/adminPage/repository/index.js index 6eee83a..6ca4e0e 100644 --- a/src/main/resources/static/js/adminPage/repository/index.js +++ b/src/main/resources/static/js/adminPage/repository/index.js @@ -166,7 +166,7 @@ function showWindow(title) { layer.open({ type: 1, title: title, - area: ['470px', '370px'], // 宽高 + area: ['550px', '420px'], // 宽高 content: $('#windowDiv') }); } @@ -184,14 +184,15 @@ function addOver() { layer.msg("仓库名不能包含特殊字符"); return; } - +debugger $.ajax({ type: 'POST', url: ctx + '/adminPage/repository/addOver', data: { name: $("#name").val(), describe: $("#describe").val(), - rependdate: $("#rependdate").val() + rependdate: $("#rependdate").val(), + cbislog: $("#cbislog").prop("checked") }, dataType: 'json', success: function(data) { -- Gitee