mirror of
https://github.com/getrebuild/rebuild.git
synced 2024-09-20 07:25:54 +08:00
beta1
This commit is contained in:
parent
70209f0d86
commit
f46ca90eb3
14
README.md
14
README.md
|
@ -4,18 +4,18 @@
|
||||||
[![License GPLv3](https://img.shields.io/github/license/getrebuild/rebuild.svg)](LICENSE)
|
[![License GPLv3](https://img.shields.io/github/license/getrebuild/rebuild.svg)](LICENSE)
|
||||||
[![License COMMERCIAL](https://img.shields.io/badge/license-COMMERCIAL-orange.svg)](COMMERCIAL)
|
[![License COMMERCIAL](https://img.shields.io/badge/license-COMMERCIAL-orange.svg)](COMMERCIAL)
|
||||||
|
|
||||||
## REBUILD 2.1 新特性
|
## REBUILD 2.2 新特性
|
||||||
|
|
||||||
本次更新为你带来众多新功能与优化。
|
本次更新为你带来众多新功能与优化。
|
||||||
|
|
||||||
1. [新增] 繁体中文支持
|
1. [新增] 外部表单
|
||||||
2. [新增] 记录转换映射
|
2. [新增] 界面主题选择
|
||||||
3. [新增] 多引用字段
|
3. [新增] 数字型字段计算公式
|
||||||
4. [新增] 支持批量导入用户
|
4. [新增] 多行文本字段富文本编辑器
|
||||||
5. [优化] 所有字段均提供默认值支持
|
5. [新增] 高级表单控制
|
||||||
6. ...
|
6. ...
|
||||||
|
|
||||||
更多新特性请移步 [CHANGLOG](https://getrebuild.com/docs/dev/changelog)
|
更多新特性请移步 [CHANGLOG](https://getrebuild.com/docs/dev/changelog?v=2.2)
|
||||||
|
|
||||||
## 在线体验
|
## 在线体验
|
||||||
|
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -10,7 +10,7 @@
|
||||||
</parent>
|
</parent>
|
||||||
<groupId>com.rebuild</groupId>
|
<groupId>com.rebuild</groupId>
|
||||||
<artifactId>rebuild</artifactId>
|
<artifactId>rebuild</artifactId>
|
||||||
<version>2.2.0-dev</version>
|
<version>2.2.0-beta1</version>
|
||||||
<name>rebuild</name>
|
<name>rebuild</name>
|
||||||
<description>RB V2 use SpringBoot</description>
|
<description>RB V2 use SpringBoot</description>
|
||||||
<!-- UNCOMMENT USE TOMCAT -->
|
<!-- UNCOMMENT USE TOMCAT -->
|
||||||
|
|
|
@ -63,7 +63,7 @@ public class Application implements ApplicationListener<ApplicationStartedEvent>
|
||||||
/**
|
/**
|
||||||
* Rebuild Version
|
* Rebuild Version
|
||||||
*/
|
*/
|
||||||
public static final String VER = "2.2.0-dev";
|
public static final String VER = "2.2.0-beta1";
|
||||||
/**
|
/**
|
||||||
* Rebuild Build
|
* Rebuild Build
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -25,6 +25,12 @@ public class CheckDangers {
|
||||||
|
|
||||||
private static final String CKEY_DANGERS = "_DANGERS";
|
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() {
|
public void checks() {
|
||||||
|
@ -38,27 +44,24 @@ public class CheckDangers {
|
||||||
|
|
||||||
JSONObject checkBuild = License.siteApi("api/authority/check-build", true);
|
JSONObject checkBuild = License.siteApi("api/authority/check-build", true);
|
||||||
if (checkBuild != null && checkBuild.getIntValue("build") > Application.BUILD) {
|
if (checkBuild != null && checkBuild.getIntValue("build") > Application.BUILD) {
|
||||||
String hasUpdate = Language.LF(
|
dangers.put(HasUpdate, checkBuild.getString("version") + "$$$$" + checkBuild.getString("releaseUrl"));
|
||||||
"NewVersion", checkBuild.getString("version"), checkBuild.getString("releaseUrl"));
|
|
||||||
hasUpdate = hasUpdate.replace("<a ", "<a target='_blank' class='link' ");
|
|
||||||
dangers.put("HasUpdate", hasUpdate);
|
|
||||||
} else {
|
} else {
|
||||||
dangers.remove("HasUpdate");
|
dangers.remove(HasUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONObject echoValidity = License.siteApi("api/authority/echo?once=" + ServerStatus.STARTUP_ONCE, false);
|
JSONObject echoValidity = License.siteApi("api/authority/echo?once=" + ServerStatus.STARTUP_ONCE, false);
|
||||||
if (echoValidity != null && !echoValidity.isEmpty()) {
|
if (echoValidity != null && !echoValidity.isEmpty()) {
|
||||||
String adminMsg = echoValidity.getString("adminMsg");
|
String adminMsg = echoValidity.getString("adminMsg");
|
||||||
if (adminMsg == null) dangers.remove("AdminMsg");
|
if (adminMsg == null) dangers.remove(AdminMsg);
|
||||||
else dangers.put("AdminMsg", adminMsg);
|
else dangers.put(AdminMsg, adminMsg);
|
||||||
|
|
||||||
String usersMsg = echoValidity.getString("usersMsg");
|
String usersMsg = echoValidity.getString("usersMsg");
|
||||||
if (usersMsg == null) dangers.remove("UsersMsg");
|
if (usersMsg == null) dangers.remove(UsersMsg);
|
||||||
else dangers.put("UsersMsg", usersMsg);
|
else dangers.put(UsersMsg, usersMsg);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
dangers.remove("AdminMsg");
|
dangers.remove(AdminMsg);
|
||||||
dangers.remove("UsersMsg");
|
dangers.remove(UsersMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 放入缓存
|
// 放入缓存
|
||||||
|
@ -70,25 +73,40 @@ public class CheckDangers {
|
||||||
/**
|
/**
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static Collection<String> getAdminDangers() {
|
public static Collection<String> getAdminDanger() {
|
||||||
LinkedHashMap<String, String> dangers = (LinkedHashMap<String, String>) Application.getCommonsCache().getx(CKEY_DANGERS);
|
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()) {
|
if (dangers == null || dangers.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
dangers = (LinkedHashMap<String, String>) dangers.clone();
|
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 dangers.values();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static String getUserDanger() {
|
public static String getUsersDanger() {
|
||||||
LinkedHashMap<String, String> dangers = (LinkedHashMap<String, String>) Application.getCommonsCache().getx(CKEY_DANGERS);
|
LinkedHashMap<String, String> dangers = (LinkedHashMap<String, String>) Application.getCommonsCache().getx(CKEY_DANGERS);
|
||||||
if (dangers == null || dangers.isEmpty()) {
|
if (dangers == null || dangers.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return dangers.get("UsersMsg");
|
return dangers.get(UsersMsg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,7 +79,7 @@ public class AdminVerfiyController extends BaseController {
|
||||||
|
|
||||||
@RequestMapping("/user/admin-dangers")
|
@RequestMapping("/user/admin-dangers")
|
||||||
public RespBody adminDangers() {
|
public RespBody adminDangers() {
|
||||||
return RespBody.ok(CheckDangers.getAdminDangers());
|
return RespBody.ok(CheckDangers.getAdminDanger());
|
||||||
}
|
}
|
||||||
|
|
||||||
// -- CLI
|
// -- CLI
|
||||||
|
|
|
@ -130,7 +130,7 @@ public class LoginController extends BaseController {
|
||||||
ServletUtils.setSessionAttribute(request, SK_NEED_VCODE, true);
|
ServletUtils.setSessionAttribute(request, SK_NEED_VCODE, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
mv.getModelMap().put("UsersMsg", CheckDangers.getUserDanger());
|
mv.getModelMap().put("UsersMsg", CheckDangers.getUsersDanger());
|
||||||
return mv;
|
return mv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1315,6 +1315,7 @@
|
||||||
"LoginCaptchaPolicy2": "Always display",
|
"LoginCaptchaPolicy2": "Always display",
|
||||||
"DBBackupsKeepingDays": "Backup retention time",
|
"DBBackupsKeepingDays": "Backup retention time",
|
||||||
"RebuildPowered": "Powered by [REBUILD](https://getrebuild.com/)",
|
"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.__": "STATE",
|
||||||
"s.ApprovalState.DRAFT": "Draft",
|
"s.ApprovalState.DRAFT": "Draft",
|
||||||
|
|
|
@ -1315,6 +1315,7 @@
|
||||||
"LoginCaptchaPolicy2": "总是显示",
|
"LoginCaptchaPolicy2": "总是显示",
|
||||||
"DBBackupsKeepingDays": "备份保留时间",
|
"DBBackupsKeepingDays": "备份保留时间",
|
||||||
"RebuildPowered": "[REBUILD](https://getrebuild.com/) 强力驱动",
|
"RebuildPowered": "[REBUILD](https://getrebuild.com/) 强力驱动",
|
||||||
|
"CommercialNoRbvTip": "系统检测到增值功能包未安装,相关增值功能可能无法使用。请联系 REBUILD 服务人员获取",
|
||||||
|
|
||||||
"s.__": "状态",
|
"s.__": "状态",
|
||||||
"s.ApprovalState.DRAFT": "草稿",
|
"s.ApprovalState.DRAFT": "草稿",
|
||||||
|
|
|
@ -1315,6 +1315,7 @@
|
||||||
"LoginCaptchaPolicy2": "總是顯示",
|
"LoginCaptchaPolicy2": "總是顯示",
|
||||||
"DBBackupsKeepingDays": "備份保留時間",
|
"DBBackupsKeepingDays": "備份保留時間",
|
||||||
"RebuildPowered": "[REBUILD](https://getrebuild.com/) 強力驅動",
|
"RebuildPowered": "[REBUILD](https://getrebuild.com/) 強力驅動",
|
||||||
|
"CommercialNoRbvTip": "系統檢測到增值功能包未安裝,相關增值功能可能無法使用。請聯繫 REBUILD 服務人員獲取",
|
||||||
|
|
||||||
"s.__": "狀態",
|
"s.__": "狀態",
|
||||||
"s.ApprovalState.DRAFT": "草稿",
|
"s.ApprovalState.DRAFT": "草稿",
|
||||||
|
|
|
@ -3841,3 +3841,15 @@ a.select-lang:hover {
|
||||||
background-color: #eee;
|
background-color: #eee;
|
||||||
cursor: default;
|
cursor: default;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.popover {
|
||||||
|
max-width: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admin-danger-list > div {
|
||||||
|
padding: 12px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admin-danger-list > div + div {
|
||||||
|
border-top: 1px solid #eee;
|
||||||
|
}
|
|
@ -96,10 +96,11 @@ $(function () {
|
||||||
$.get('/user/admin-dangers', function (res) {
|
$.get('/user/admin-dangers', function (res) {
|
||||||
if ((res.data || []).length > 0) {
|
if ((res.data || []).length > 0) {
|
||||||
$('.admin-danger').removeClass('hide')
|
$('.admin-danger').removeClass('hide')
|
||||||
var dd = []
|
var dd = ['<div class="admin-danger-list">']
|
||||||
$(res.data).each(function () {
|
$(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(''))
|
topPopover($('.admin-danger a'), dd.join(''))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue