This commit is contained in:
devezhao 2021-01-20 20:45:52 +08:00
parent 70209f0d86
commit f46ca90eb3
11 changed files with 62 additions and 28 deletions

View file

@ -4,18 +4,18 @@
[![License GPLv3](https://img.shields.io/github/license/getrebuild/rebuild.svg)](LICENSE)
[![License COMMERCIAL](https://img.shields.io/badge/license-COMMERCIAL-orange.svg)](COMMERCIAL)
## REBUILD 2.1 新特性
## REBUILD 2.2 新特性
本次更新为你带来众多新功能与优化。
1. [新增] 繁体中文支持
2. [新增] 记录转换映射
3. [新增] 多引用字段
4. [新增] 支持批量导入用户
5. [优化] 所有字段均提供默认值支持
1. [新增] 外部表单
2. [新增] 界面主题选择
3. [新增] 数字型字段计算公式
4. [新增] 多行文本字段富文本编辑器
5. [新增] 高级表单控制
6. ...
更多新特性请移步 [CHANGLOG](https://getrebuild.com/docs/dev/changelog)
更多新特性请移步 [CHANGLOG](https://getrebuild.com/docs/dev/changelog?v=2.2)
## 在线体验

View file

@ -10,7 +10,7 @@
</parent>
<groupId>com.rebuild</groupId>
<artifactId>rebuild</artifactId>
<version>2.2.0-dev</version>
<version>2.2.0-beta1</version>
<name>rebuild</name>
<description>RB V2 use SpringBoot</description>
<!-- UNCOMMENT USE TOMCAT -->

View file

@ -63,7 +63,7 @@ public class Application implements ApplicationListener<ApplicationStartedEvent>
/**
* Rebuild Version
*/
public static final String VER = "2.2.0-dev";
public static final String VER = "2.2.0-beta1";
/**
* Rebuild Build
*/

View file

@ -25,6 +25,12 @@ public class CheckDangers {
private static final String CKEY_DANGERS = "_DANGERS";
// 检查项
private static final String HasUpdate = "HasUpdate";
private static final String AdminMsg = "AdminMsg";
private static final String UsersMsg = "UsersMsg";
private static final String CommercialNoRbv = "CommercialNoRbv";
/**
*/
public void checks() {
@ -38,27 +44,24 @@ public class CheckDangers {
JSONObject checkBuild = License.siteApi("api/authority/check-build", true);
if (checkBuild != null && checkBuild.getIntValue("build") > Application.BUILD) {
String hasUpdate = Language.LF(
"NewVersion", checkBuild.getString("version"), checkBuild.getString("releaseUrl"));
hasUpdate = hasUpdate.replace("<a ", "<a target='_blank' class='link' ");
dangers.put("HasUpdate", hasUpdate);
dangers.put(HasUpdate, checkBuild.getString("version") + "$$$$" + checkBuild.getString("releaseUrl"));
} else {
dangers.remove("HasUpdate");
dangers.remove(HasUpdate);
}
JSONObject echoValidity = License.siteApi("api/authority/echo?once=" + ServerStatus.STARTUP_ONCE, false);
if (echoValidity != null && !echoValidity.isEmpty()) {
String adminMsg = echoValidity.getString("adminMsg");
if (adminMsg == null) dangers.remove("AdminMsg");
else dangers.put("AdminMsg", adminMsg);
if (adminMsg == null) dangers.remove(AdminMsg);
else dangers.put(AdminMsg, adminMsg);
String usersMsg = echoValidity.getString("usersMsg");
if (usersMsg == null) dangers.remove("UsersMsg");
else dangers.put("UsersMsg", usersMsg);
if (usersMsg == null) dangers.remove(UsersMsg);
else dangers.put(UsersMsg, usersMsg);
} else {
dangers.remove("AdminMsg");
dangers.remove("UsersMsg");
dangers.remove(AdminMsg);
dangers.remove(UsersMsg);
}
// 放入缓存
@ -70,25 +73,40 @@ public class CheckDangers {
/**
* @return
*/
public static Collection<String> getAdminDangers() {
public static Collection<String> getAdminDanger() {
LinkedHashMap<String, String> dangers = (LinkedHashMap<String, String>) Application.getCommonsCache().getx(CKEY_DANGERS);
if (License.isCommercial() && !License.isRbvAttached()) {
if (dangers == null) dangers = new LinkedHashMap<>();
dangers.put(CommercialNoRbv, Language.L("CommercialNoRbvTip"));
}
if (dangers == null || dangers.isEmpty()) {
return null;
}
dangers = (LinkedHashMap<String, String>) dangers.clone();
dangers.remove("UsersMsg");
dangers.remove(UsersMsg);
String hasUpdate = dangers.get(HasUpdate);
if (hasUpdate != null && hasUpdate.contains("$$$$")) {
String[] ss = hasUpdate.split("\\$\\$\\$\\$");
hasUpdate = Language.LF("NewVersion", ss[0], ss[1]);
hasUpdate = hasUpdate.replace("<a ", "<a target=\"_blank\" ");
dangers.put(HasUpdate, hasUpdate);
}
return dangers.values();
}
/**
* @return
*/
public static String getUserDanger() {
public static String getUsersDanger() {
LinkedHashMap<String, String> dangers = (LinkedHashMap<String, String>) Application.getCommonsCache().getx(CKEY_DANGERS);
if (dangers == null || dangers.isEmpty()) {
return null;
}
return dangers.get("UsersMsg");
return dangers.get(UsersMsg);
}
}

View file

@ -79,7 +79,7 @@ public class AdminVerfiyController extends BaseController {
@RequestMapping("/user/admin-dangers")
public RespBody adminDangers() {
return RespBody.ok(CheckDangers.getAdminDangers());
return RespBody.ok(CheckDangers.getAdminDanger());
}
// -- CLI

View file

@ -130,7 +130,7 @@ public class LoginController extends BaseController {
ServletUtils.setSessionAttribute(request, SK_NEED_VCODE, true);
}
mv.getModelMap().put("UsersMsg", CheckDangers.getUserDanger());
mv.getModelMap().put("UsersMsg", CheckDangers.getUsersDanger());
return mv;
}

View file

@ -1315,6 +1315,7 @@
"LoginCaptchaPolicy2": "Always display",
"DBBackupsKeepingDays": "Backup retention time",
"RebuildPowered": "Powered by [REBUILD](https://getrebuild.com/)",
"CommercialNoRbvTip": "System has detected the commercial feature package is not installed, and the relevant commercial feature may not be available. Please contact the REBUILD to obtain it",
"s.__": "STATE",
"s.ApprovalState.DRAFT": "Draft",

View file

@ -1315,6 +1315,7 @@
"LoginCaptchaPolicy2": "总是显示",
"DBBackupsKeepingDays": "备份保留时间",
"RebuildPowered": "[REBUILD](https://getrebuild.com/) 强力驱动",
"CommercialNoRbvTip": "系统检测到增值功能包未安装,相关增值功能可能无法使用。请联系 REBUILD 服务人员获取",
"s.__": "状态",
"s.ApprovalState.DRAFT": "草稿",

View file

@ -1315,6 +1315,7 @@
"LoginCaptchaPolicy2": "總是顯示",
"DBBackupsKeepingDays": "備份保留時間",
"RebuildPowered": "[REBUILD](https://getrebuild.com/) 強力驅動",
"CommercialNoRbvTip": "系統檢測到增值功能包未安裝,相關增值功能可能無法使用。請聯繫 REBUILD 服務人員獲取",
"s.__": "狀態",
"s.ApprovalState.DRAFT": "草稿",

View file

@ -3841,3 +3841,15 @@ a.select-lang:hover {
background-color: #eee;
cursor: default;
}
.popover {
max-width: 300px;
}
.admin-danger-list > div {
padding: 12px 0;
}
.admin-danger-list > div + div {
border-top: 1px solid #eee;
}

View file

@ -96,10 +96,11 @@ $(function () {
$.get('/user/admin-dangers', function (res) {
if ((res.data || []).length > 0) {
$('.admin-danger').removeClass('hide')
var dd = []
var dd = ['<div class="admin-danger-list">']
$(res.data).each(function () {
dd.push('<div class="p-1">' + this + '</div>')
dd.push('<div>' + this + '</div>')
})
dd.push('</div>')
topPopover($('.admin-danger a'), dd.join(''))
}
})