From 423ed96126799d318139c53cae03767022a12fb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?REBUILD=20=E4=BC=81=E4=B8=9A=E7=AE=A1=E7=90=86=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F?= <42044143+getrebuild@users.noreply.github.com> Date: Wed, 19 Jun 2024 21:51:33 +0800 Subject: [PATCH] Fix 3.7 beta3 (#773) * beta3 * fix: timezone * fix: CreateTask * Update approval-design.js * fix: getNetworkDate * feat: GeneralTriggerAction * be * fix ntext-action * Update @rbv * search classification useSimple37 * PickListDataController * user filters --- @rbv | 2 +- Dockerfile | 2 +- pom.xml | 2 +- .../java/com/rebuild/core/Application.java | 4 +- .../rebuild/core/privileges/UserImporter.java | 2 +- .../service/general/ObservableService.java | 3 +- .../core/service/project/BaseTaskService.java | 11 +++++- .../service/trigger/RobotTriggerManager.java | 4 ++ .../rebuild/core/support/SysbaseSupport.java | 23 ++++++++--- .../java/com/rebuild/utils/OshiUtils.java | 10 ++++- .../rebuild/web/admin/bizz/BizzPageView.java | 2 + .../rebuild/web/commons/ErrorPageView.java | 3 +- .../web/feeds/FeedsListController.java | 8 ++-- ...oller.java => PickListDataController.java} | 6 +-- .../general/ReferenceSearchController.java | 24 ++++++++---- .../web/admin/bizuser/user-list.html | 21 +++++++--- .../web/admin/bizuser/user-view.html | 1 + src/main/resources/web/assets/css/charts.css | 1 + .../resources/web/assets/css/triggers.css | 6 ++- .../resources/web/assets/css/view-page.css | 4 +- .../web/assets/js/admin/approval-design.js | 2 +- .../web/assets/js/admin/report-templates.js | 4 +- .../web/assets/js/bizuser/user-list.js | 38 ++++++++++++++++--- .../web/assets/js/bizuser/user-view.js | 5 ++- .../web/assets/js/feeds/feeds-post.js | 11 +++--- .../assets/js/general/rb-datalist.common.js | 2 - .../web/assets/js/general/rb-forms.js | 26 ++++++------- .../resources/web/assets/js/rb-components.js | 25 +++++++----- src/main/resources/web/assets/js/rb-page.js | 1 - .../web/assets/js/trigger/trigger-list.js | 2 +- src/main/resources/web/feeds/home.html | 6 ++- .../java/com/rebuild/utils/OshiUtilsTest.java | 2 + 32 files changed, 178 insertions(+), 85 deletions(-) rename src/main/java/com/rebuild/web/general/{PicklistDataController.java => PickListDataController.java} (94%) diff --git a/@rbv b/@rbv index e8fd1ab44..036ee5c74 160000 --- a/@rbv +++ b/@rbv @@ -1 +1 @@ -Subproject commit e8fd1ab442671e30786486004933d0f31b903086 +Subproject commit 036ee5c7436fe11eba8f8717e25414d82a017941 diff --git a/Dockerfile b/Dockerfile index 753798318..ea89fee2b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ EXPOSE 18080 COPY ./target/rebuild.jar /app/rebuild/rebuild-boot.jar -#COPY ./.deploy/SourceHanSansK-Regular.ttf /app/rebuild/ +#COPY ./.deploy/SourceHanSansK-Regular.ttf /app/rebuild/.rebuild/ WORKDIR /app/rebuild/ diff --git a/pom.xml b/pom.xml index db04fa96e..9ecae7397 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.rebuild rebuild - 3.7.0-beta2 + 3.7.0-beta3 rebuild Building your business-systems freely! https://getrebuild.com/ diff --git a/src/main/java/com/rebuild/core/Application.java b/src/main/java/com/rebuild/core/Application.java index 344b4df5c..ad4844115 100644 --- a/src/main/java/com/rebuild/core/Application.java +++ b/src/main/java/com/rebuild/core/Application.java @@ -75,11 +75,11 @@ public class Application implements ApplicationListener /** * Rebuild Version */ - public static final String VER = "3.7.0-beta2"; + public static final String VER = "3.7.0-beta3"; /** * Rebuild Build [MAJOR]{1}[MINOR]{2}[PATCH]{2}[BUILD]{2} */ - public static final int BUILD = 3070002; + public static final int BUILD = 3070003; static { // Driver for DB diff --git a/src/main/java/com/rebuild/core/privileges/UserImporter.java b/src/main/java/com/rebuild/core/privileges/UserImporter.java index 2dcc9a5e9..26be29cb8 100644 --- a/src/main/java/com/rebuild/core/privileges/UserImporter.java +++ b/src/main/java/com/rebuild/core/privileges/UserImporter.java @@ -108,7 +108,7 @@ public class UserImporter extends HeavyTask { } } catch (Exception ex) { - log.error("Cannot create new user : " + loginName, ex); + log.error("Cannot create new user : {}", loginName, ex); } finally { this.addCompleted(); } diff --git a/src/main/java/com/rebuild/core/service/general/ObservableService.java b/src/main/java/com/rebuild/core/service/general/ObservableService.java index ff32193f9..2f64673d4 100644 --- a/src/main/java/com/rebuild/core/service/general/ObservableService.java +++ b/src/main/java/com/rebuild/core/service/general/ObservableService.java @@ -142,9 +142,10 @@ public abstract class ObservableService extends SafeObservable implements Servic } /** - * 获取原始用户 + * 获取原始调用用户 * * @return + * @see UserContextHolder#replaceUser(ID) */ protected ID getCurrentUser() { return UserContextHolder.getReplacedUser(); diff --git a/src/main/java/com/rebuild/core/service/project/BaseTaskService.java b/src/main/java/com/rebuild/core/service/project/BaseTaskService.java index af00593f0..179fdbcb9 100644 --- a/src/main/java/com/rebuild/core/service/project/BaseTaskService.java +++ b/src/main/java/com/rebuild/core/service/project/BaseTaskService.java @@ -9,8 +9,10 @@ package com.rebuild.core.service.project; import cn.devezhao.persist4j.PersistManagerFactory; import cn.devezhao.persist4j.engine.ID; +import com.rebuild.core.UserContextHolder; import com.rebuild.core.configuration.ConfigBean; import com.rebuild.core.metadata.EntityHelper; +import com.rebuild.core.privileges.UserService; import com.rebuild.core.service.DataSpecificationException; import com.rebuild.core.service.general.ObservableService; import com.rebuild.core.support.i18n.Language; @@ -43,7 +45,8 @@ public abstract class BaseTaskService extends ObservableService { ? ProjectManager.instance.getProjectByX(taskOrProject, null) : ProjectManager.instance.getProject(taskOrProject, null); - if (c == null || !c.get("members", Set.class).contains(user)) { + if (c == null || + !(c.get("members", Set.class).contains(user) || UserService.SYSTEM_USER.equals(user))) { throw new DataSpecificationException(Language.L("非项目成员禁止操作")); } @@ -53,4 +56,10 @@ public abstract class BaseTaskService extends ObservableService { return true; } + + @Override + protected ID getCurrentUser() { + // 注意父级的方法含义 + return UserContextHolder.getUser(); + } } diff --git a/src/main/java/com/rebuild/core/service/trigger/RobotTriggerManager.java b/src/main/java/com/rebuild/core/service/trigger/RobotTriggerManager.java index 7ca790f87..308c35721 100644 --- a/src/main/java/com/rebuild/core/service/trigger/RobotTriggerManager.java +++ b/src/main/java/com/rebuild/core/service/trigger/RobotTriggerManager.java @@ -97,6 +97,10 @@ public class RobotTriggerManager implements ConfigManager { recordId, StringUtils.join(TRIGGERS_CHAIN_4DEBUG.get(), "\n > ")); } +// ActionContext ctx = new ActionContext(recordId, entity, +// JSONUtils.EMPTY_OBJECT, EntityHelper.newUnsavedId(EntityHelper.RobotTriggerConfig)); +// actions.add(new GeneralTriggerAction(ctx)); + return actions.toArray(new TriggerAction[0]); } diff --git a/src/main/java/com/rebuild/core/support/SysbaseSupport.java b/src/main/java/com/rebuild/core/support/SysbaseSupport.java index c9704729e..0b664dbaf 100644 --- a/src/main/java/com/rebuild/core/support/SysbaseSupport.java +++ b/src/main/java/com/rebuild/core/support/SysbaseSupport.java @@ -7,6 +7,7 @@ See LICENSE and COMMERCIAL in the project root for license information. package com.rebuild.core.support; +import cn.devezhao.commons.CalendarUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.rebuild.utils.OkHttpUtils; @@ -18,6 +19,7 @@ import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.SystemUtils; import java.io.File; import java.io.IOException; @@ -36,22 +38,31 @@ public class SysbaseSupport { * @return */ public String submit() { - StringBuilder logConf = new StringBuilder("RebuildConfiguration :\n----------\n"); + StringBuilder confLog = new StringBuilder("RebuildConfiguration :\n----------\n"); for (ConfigurationItem item : ConfigurationItem.values()) { String v = RebuildConfiguration.get(item); - logConf.append(StringUtils.rightPad(item.name(), 31)).append(" : ").append(v == null ? "" : v).append("\n"); + confLog.append(StringUtils.rightPad(item.name(), 31)).append(" : ").append(v == null ? "" : v).append("\n"); } - log.warn(logConf.append("----------").toString()); - + log.warn(confLog.append("----------").toString()); + + StringBuilder osLog = new StringBuilder("OS/VM Info :\n----------\n"); + osLog.append(StringUtils.rightPad("OS", 31)).append(" : ").append(SystemUtils.OS_NAME).append("/").append(SystemUtils.OS_VERSION).append("\n"); + osLog.append(StringUtils.rightPad("VM", 31)).append(" : ").append(SystemUtils.JAVA_VM_NAME).append("/").append(SystemUtils.JAVA_VERSION).append(SystemUtils.OS_VERSION).append("\n"); + osLog.append(StringUtils.rightPad("TimeZone", 31)).append(" : ").append(CalendarUtils.DEFAULT_TIME_ZONE).append("\n"); + osLog.append(StringUtils.rightPad("Date", 31)).append(" : ").append(CalendarUtils.now()).append("\n"); + osLog.append(StringUtils.rightPad("Headless", 31)).append(" : ").append(SystemUtils.isJavaAwtHeadless()).append("\n"); + + log.warn(osLog.append("----------").toString()); + File logFile = SysbaseHeartbeat.getLogbackFile(); JSONObject resJson; try { String res = upload(logFile, "https://getrebuild.com/api/misc/request-support"); - log.info("Upload support-file : {}", res); + log.info("Upload file of support : {}", res); resJson = (JSONObject) JSON.parse(res); } catch (IOException e) { - log.error("Upload support-file failed", e); + log.error("Upload file of support fails", e); return null; } diff --git a/src/main/java/com/rebuild/utils/OshiUtils.java b/src/main/java/com/rebuild/utils/OshiUtils.java index 349012da8..3b497cc65 100644 --- a/src/main/java/com/rebuild/utils/OshiUtils.java +++ b/src/main/java/com/rebuild/utils/OshiUtils.java @@ -24,6 +24,7 @@ import java.net.URLConnection; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.stream.Stream; @@ -129,8 +130,13 @@ public class OshiUtils { for (String u : FROMURLS) { try { URLConnection conn = new URL(u).openConnection(); - long l = conn.getDate(); - return new Date(l); + final long L = conn.getDate(); + + if (L > 0) { + Calendar c = CalendarUtils.getInstance(); + c.setTimeInMillis(L); + return c.getTime(); + } } catch (Exception ex) { log.warn("Cannot fetch date from : {}", u, ex); } diff --git a/src/main/java/com/rebuild/web/admin/bizz/BizzPageView.java b/src/main/java/com/rebuild/web/admin/bizz/BizzPageView.java index 5e45c3452..c7e70f3e4 100644 --- a/src/main/java/com/rebuild/web/admin/bizz/BizzPageView.java +++ b/src/main/java/com/rebuild/web/admin/bizz/BizzPageView.java @@ -8,6 +8,7 @@ See LICENSE and COMMERCIAL in the project root for license information. package com.rebuild.web.admin.bizz; import cn.devezhao.persist4j.engine.ID; +import com.rebuild.core.support.integration.SMSender; import com.rebuild.web.EntityController; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @@ -32,6 +33,7 @@ public class BizzPageView extends EntityController { ModelAndView mv = createModelAndView( "/admin/bizuser/user-view", "User", getRequestUser(request)); mv.getModel().put("id", id); + mv.getModel().put("serviceMail", SMSender.availableMail()); return mv; } diff --git a/src/main/java/com/rebuild/web/commons/ErrorPageView.java b/src/main/java/com/rebuild/web/commons/ErrorPageView.java index 4839243c5..9a6f4524a 100644 --- a/src/main/java/com/rebuild/web/commons/ErrorPageView.java +++ b/src/main/java/com/rebuild/web/commons/ErrorPageView.java @@ -8,6 +8,7 @@ See LICENSE and COMMERCIAL in the project root for license information. package com.rebuild.web.commons; import cn.devezhao.commons.CodecUtils; +import cn.devezhao.commons.identifier.ComputerIdentifier; import cn.devezhao.commons.web.ServletUtils; import com.alibaba.fastjson.JSONObject; import com.rebuild.core.Application; @@ -70,7 +71,7 @@ public class ErrorPageView extends BaseController { mv.getModel().put("MemoryUsageJvm", OshiUtils.getJvmMemoryUsed()); mv.getModel().put("SystemLoad", OshiUtils.getSystemLoad()); mv.getModelMap().put("isAdminVerified", AppUtils.isAdminVerified(request)); - mv.getModelMap().put("SN", License.SN() + "/" + OshiUtils.getLocalIp() + "/" + ServerStatus.STARTUP_ONCE); + mv.getModelMap().put("SN", License.SN() + "/" + ComputerIdentifier.generateIdentifierKey() + "/" + OshiUtils.getLocalIp() + "/" + ServerStatus.STARTUP_ONCE); final String specDisks = request.getParameter("disks"); if (specDisks != null) { diff --git a/src/main/java/com/rebuild/web/feeds/FeedsListController.java b/src/main/java/com/rebuild/web/feeds/FeedsListController.java index 0703f8527..905f179b5 100644 --- a/src/main/java/com/rebuild/web/feeds/FeedsListController.java +++ b/src/main/java/com/rebuild/web/feeds/FeedsListController.java @@ -27,6 +27,7 @@ import com.rebuild.core.service.query.AdvFilterParser; import com.rebuild.core.support.general.FieldValueHelper; import com.rebuild.core.support.i18n.I18nUtils; import com.rebuild.core.support.i18n.Language; +import com.rebuild.core.support.integration.SMSender; import com.rebuild.utils.JSONUtils; import com.rebuild.web.BaseController; import com.rebuild.web.IdParam; @@ -61,11 +62,8 @@ public class FeedsListController extends BaseController { public ModelAndView pageIndex(@PathVariable String type, HttpServletRequest request) { ModelAndView mv = createModelAndView("/feeds/home"); mv.getModel().put("feedsType", type); - - User user = Application.getUserStore().getUser(getRequestUser(request)); - mv.getModel().put("UserEmail", user.getEmail()); - mv.getModel().put("UserMobile", StringUtils.defaultIfBlank(user.getWorkphone(), "")); - + mv.getModel().put("serviceMail", SMSender.availableMail()); + mv.getModel().put("serviceSms", SMSender.availableSMS()); return mv; } diff --git a/src/main/java/com/rebuild/web/general/PicklistDataController.java b/src/main/java/com/rebuild/web/general/PickListDataController.java similarity index 94% rename from src/main/java/com/rebuild/web/general/PicklistDataController.java rename to src/main/java/com/rebuild/web/general/PickListDataController.java index c5c06ef4a..6225e3c20 100644 --- a/src/main/java/com/rebuild/web/general/PicklistDataController.java +++ b/src/main/java/com/rebuild/web/general/PickListDataController.java @@ -35,13 +35,13 @@ import javax.servlet.http.HttpServletRequest; */ @RestController @RequestMapping("/commons/metadata/") -public class PicklistDataController extends BaseController { +public class PickListDataController extends BaseController { // for PickList/MultiSelect/State @GetMapping({"picklist", "field-options"}) public JSON fetchOptions(HttpServletRequest request) { - String entity = getParameterNotNull(request, "entity"); - String field = getParameterNotNull(request, "field"); + final String entity = getParameterNotNull(request, "entity"); + final String field = getParameterNotNull(request, "field"); Field fieldMeta = getRealField(entity, field); DisplayType dt = EasyMetaFactory.getDisplayType(fieldMeta); diff --git a/src/main/java/com/rebuild/web/general/ReferenceSearchController.java b/src/main/java/com/rebuild/web/general/ReferenceSearchController.java index d9e591656..5c883d69e 100644 --- a/src/main/java/com/rebuild/web/general/ReferenceSearchController.java +++ b/src/main/java/com/rebuild/web/general/ReferenceSearchController.java @@ -171,7 +171,7 @@ public class ReferenceSearchController extends EntityController { /** * 搜索分类字段 - * @see PicklistDataController#fetchClassification(HttpServletRequest) + * @see PickListDataController#fetchClassification(HttpServletRequest) */ @GetMapping("classification") public JSON searchClassification(@EntityParam Entity entity, HttpServletRequest request) { @@ -183,9 +183,12 @@ public class ReferenceSearchController extends EntityController { if (useClassification == null) return JSONUtils.EMPTY_ARRAY; String q = StringUtils.trim(getParameter(request, "q")); + int openLevel = ClassificationManager.instance.getOpenLevel(fieldMeta); + // 直接显示 + boolean useSimple37 = StringUtils.isBlank(q) && openLevel == 0; // 为空则加载最近使用的 - if (StringUtils.isBlank(q)) { + if (StringUtils.isBlank(q) && !useSimple37) { String type = "d" + useClassification + ":" + ClassificationManager.instance.getOpenLevel(fieldMeta); ID[] used = RecentlyUsedHelper.gets(user, "ClassificationData", type); @@ -196,14 +199,19 @@ public class ReferenceSearchController extends EntityController { } } - q = CommonsUtils.escapeSql(q); - int openLevel = ClassificationManager.instance.getOpenLevel(fieldMeta); - String sqlWhere = String.format( - "dataId = '%s' and level = %d and (fullName like '%%%s%%' or quickCode like '%%%s%%' or code like '%s%%') order by code,fullName", - useClassification.toLiteral(), openLevel, q, q, q); + String sqlWhere; + if (useSimple37) { + sqlWhere = String.format("dataId = '%s' and parent is null order by code,fullName", + useClassification.toLiteral()); + } else { + q = CommonsUtils.escapeSql(q); + sqlWhere = String.format( + "dataId = '%s' and level = %d and (fullName like '%%%s%%' or quickCode like '%%%s%%' or code like '%s%%') order by code,fullName", + useClassification.toLiteral(), openLevel, q, q, q); + } List result = resultSearch( - sqlWhere, MetadataHelper.getEntity(EntityHelper.ClassificationData), 20); + sqlWhere, MetadataHelper.getEntity(EntityHelper.ClassificationData), useSimple37 ? 2000 : 20); return (JSON) JSON.toJSON(result); } diff --git a/src/main/resources/web/admin/bizuser/user-list.html b/src/main/resources/web/admin/bizuser/user-list.html index bd2bb0bd9..30e0f1c31 100644 --- a/src/main/resources/web/admin/bizuser/user-list.html +++ b/src/main/resources/web/admin/bizuser/user-list.html @@ -18,6 +18,11 @@ border-color: #38adff; color: #38adff; } + .ufilters { + display: inline-block; + margin-top: 8px; + padding: 2px 0; + } @@ -60,11 +65,17 @@ - diff --git a/src/main/resources/web/admin/bizuser/user-view.html b/src/main/resources/web/admin/bizuser/user-view.html index c1cf1cf78..f3b771963 100644 --- a/src/main/resources/web/admin/bizuser/user-view.html +++ b/src/main/resources/web/admin/bizuser/user-view.html @@ -96,6 +96,7 @@ entity: ['User', '[[${entityLabel}]]', '[[${entityIcon}]]'], recordId: '[[${id}]]', onViewEditable: false, + serviceMail: '[[${serviceMail}]]', } diff --git a/src/main/resources/web/assets/css/charts.css b/src/main/resources/web/assets/css/charts.css index 6a9eee49f..c61c41b35 100644 --- a/src/main/resources/web/assets/css/charts.css +++ b/src/main/resources/web/assets/css/charts.css @@ -128,6 +128,7 @@ See LICENSE and COMMERCIAL in the project root for license information. .chart.index > .data-item strong { font-size: 3.1rem; font-weight: 400; + color: #000; } .chart.index > .data-item .with p, diff --git a/src/main/resources/web/assets/css/triggers.css b/src/main/resources/web/assets/css/triggers.css index a726341be..af0ae6efa 100644 --- a/src/main/resources/web/assets/css/triggers.css +++ b/src/main/resources/web/assets/css/triggers.css @@ -134,7 +134,6 @@ See LICENSE and COMMERCIAL in the project root for license information. color: #999; font-weight: bold; top: 1px; - right: -5px; display: none; } @@ -593,3 +592,8 @@ textarea.formula-code + .fields-vars { .send-notification .select2 { max-width: 100% !important; } + +.create-task .user-selector, +.create-task .form-control { + max-width: 100% !important; +} diff --git a/src/main/resources/web/assets/css/view-page.css b/src/main/resources/web/assets/css/view-page.css index 26416d14b..b66b3ad23 100644 --- a/src/main/resources/web/assets/css/view-page.css +++ b/src/main/resources/web/assets/css/view-page.css @@ -128,7 +128,6 @@ body { top: 5px; right: 5px; opacity: 0; - transition: opacity 0.4s; } .rbview-form .type-NTEXT.editable .ntext-action { @@ -154,7 +153,8 @@ body { } .rbview-form .type-NTEXT .ps-container.ntext-expand { - max-height: unset !important; + max-height: 1000px !important; + height: auto; } .rbview-form .type-NTEXT .ps-container.ntext-expand + .ntext-action .mdi-arrow-expand::before { diff --git a/src/main/resources/web/assets/js/admin/approval-design.js b/src/main/resources/web/assets/js/admin/approval-design.js index 8665cf99a..cca3aca99 100644 --- a/src/main/resources/web/assets/js/admin/approval-design.js +++ b/src/main/resources/web/assets/js/admin/approval-design.js @@ -713,7 +713,7 @@ class ApproverNodeConfig extends StartNodeConfig { diff --git a/src/main/resources/web/assets/js/admin/report-templates.js b/src/main/resources/web/assets/js/admin/report-templates.js index 9b2312b56..d2e27a09f 100644 --- a/src/main/resources/web/assets/js/admin/report-templates.js +++ b/src/main/resources/web/assets/js/admin/report-templates.js @@ -61,7 +61,7 @@ class ReportList extends ConfigList { - + @@ -303,7 +303,7 @@ class ReportEditor extends ConfigFormDlg { $(this._$outputType).find('input:eq(0)').attr('checked', true) - const $pw = $(`${$L('预览')}`) + const $pw = $(`${$L('预览')}`) $(this._btns).find('.btn-primary').after($pw) $pw.on('click', () => { if (this.props.id) { diff --git a/src/main/resources/web/assets/js/bizuser/user-list.js b/src/main/resources/web/assets/js/bizuser/user-list.js index b95dad4a9..582cf7c58 100644 --- a/src/main/resources/web/assets/js/bizuser/user-list.js +++ b/src/main/resources/web/assets/js/bizuser/user-list.js @@ -16,9 +16,29 @@ RbForm.postAfter = function (data, next) { } RbList.queryBefore = function (query) { - if (!$val('#showAllUsers')) { + const filter = ~~$('.ufilters span').attr('data-filter') + if (filter === 1) { query.filterAnd = { - items: [{ field: 'isDisabled', op: 'EQ', value: 'F' }], + items: [ + { field: 'isDisabled', op: 'EQ', value: 'F' }, + { field: 'deptId.isDisabled', op: 'EQ', value: 'F' }, + { field: 'roleId.isDisabled', op: 'EQ', value: 'F' }, + ], + equation: 'AND', + } + } else if (filter === 2) { + query.filterAnd = { + items: [ + { field: 'isDisabled', op: 'EQ', value: 'T' }, + { field: 'deptId.isDisabled', op: 'EQ', value: 'T' }, + { field: 'roleId.isDisabled', op: 'EQ', value: 'T' }, + { field: 'deptId', op: 'NL' }, + { field: 'roleId', op: 'NL' }, + ], + } + } else if (filter === 3) { + query.filterAnd = { + items: [{ field: 'isDisabled', op: 'EQ', value: 'T' }], } } return query @@ -36,9 +56,14 @@ $(document).ready(() => { $('.J_imports').on('click', () => renderRbcomp()) $('.J_resign').on('click', () => renderRbcomp()) - $('#showAllUsers').on('change', () => { - RbListPage._RbList.reload() - }) + $('.ufilters') + .next() + .find('a[data-filter]') + .on('click', function () { + const $f = $(this) + $('.ufilters span').text($f.text()).attr('data-filter', $f.data('filter')) + RbListPage._RbList.reload() + }) }) // 用户导入 @@ -79,7 +104,8 @@ class UserImport extends RbModalHandler { diff --git a/src/main/resources/web/assets/js/bizuser/user-view.js b/src/main/resources/web/assets/js/bizuser/user-view.js index bb61e346e..f815aea63 100644 --- a/src/main/resources/web/assets/js/bizuser/user-view.js +++ b/src/main/resources/web/assets/js/bizuser/user-view.js @@ -53,7 +53,10 @@ $(document).ready(function () {
diff --git a/src/main/resources/web/assets/js/feeds/feeds-post.js b/src/main/resources/web/assets/js/feeds/feeds-post.js index b9883308d..481a59d65 100644 --- a/src/main/resources/web/assets/js/feeds/feeds-post.js +++ b/src/main/resources/web/assets/js/feeds/feeds-post.js @@ -602,8 +602,7 @@ class ScheduleOptions extends React.Component { state = { ...this.props } render() { - const email = window.__USER_EMAIL - const mobile = window.__USER_MOBILE + const wpc = window.__PageConfig return (
@@ -619,18 +618,18 @@ class ScheduleOptions extends React.Component { {$L('通知')} -
-
+
$(this._textarea).toggleClass('ntext-expand')}> @@ -1390,18 +1390,6 @@ class RbFormNText extends RbFormElement { componentDidMount() { super.componentDidMount() this.props.onView && this.onEditModeChanged(true) - - if (this._actionCopy) { - const that = this - const initCopy = function () { - $clipboard($(that._actionCopy), that.state.value) - } - if (window.ClipboardJS) { - initCopy() - } else { - $getScript('/assets/lib/clipboard.min.js', initCopy) - } - } } UNSAFE_componentWillUpdate(nextProps, nextState) { @@ -1424,6 +1412,18 @@ class RbFormNText extends RbFormElement { } if (this.props.useMdedit && !destroy) this._initMde() + + if (this._actionCopy) { + const that = this + const initCopy = function () { + $clipboard($(that._actionCopy), that.state.value) + } + if (window.ClipboardJS) { + initCopy() + } else { + $getScript('/assets/lib/clipboard.min.js', initCopy) + } + } } setValue(val) { diff --git a/src/main/resources/web/assets/js/rb-components.js b/src/main/resources/web/assets/js/rb-components.js index aa0fe6b35..d5a61aed3 100644 --- a/src/main/resources/web/assets/js/rb-components.js +++ b/src/main/resources/web/assets/js/rb-components.js @@ -643,16 +643,18 @@ class UserSelector extends React.Component { }, }) - if (this.props.defaultValue) { - let dv = this.props.defaultValue - if ($type(this.props.defaultValue) === 'string') dv = dv.split(',') + this.props.defaultValue && this._renderValue(this.props.defaultValue) + } - $.post('/commons/search/user-selector', JSON.stringify(dv), (res) => { - if (res.error_code === 0 && res.data.length > 0) { - this.setState({ selected: res.data }) - } - }) - } + _renderValue(value) { + let s = value + if ($type(s) === 'string') s = s.split(',') + + $.post('/commons/search/user-selector', JSON.stringify(s), (res) => { + if (res.error_code === 0 && res.data.length > 0) { + this.setState({ selected: res.data }) + } + }) } componentWillUnmount() { @@ -780,6 +782,11 @@ class UserSelector extends React.Component { } val() { + // v3.7 set + if (arguments[0]) { + this._renderValue(arguments[0]) + return + } return this.getSelected() } diff --git a/src/main/resources/web/assets/js/rb-page.js b/src/main/resources/web/assets/js/rb-page.js index b67db3ec0..d3372d898 100644 --- a/src/main/resources/web/assets/js/rb-page.js +++ b/src/main/resources/web/assets/js/rb-page.js @@ -861,7 +861,6 @@ var $initReferenceSelect2 = function (el, option) { }, theme: 'default ' + (option.appendClass || ''), }) - return $el } diff --git a/src/main/resources/web/assets/js/trigger/trigger-list.js b/src/main/resources/web/assets/js/trigger/trigger-list.js index 22fc1af84..a6604a3a3 100644 --- a/src/main/resources/web/assets/js/trigger/trigger-list.js +++ b/src/main/resources/web/assets/js/trigger/trigger-list.js @@ -95,7 +95,7 @@ class TriggerList extends ConfigList { this.handleShowChain(item[0])}> - + this.handleEdit(item)}> diff --git a/src/main/resources/web/feeds/home.html b/src/main/resources/web/feeds/home.html index 827d03e60..6cdefca1d 100644 --- a/src/main/resources/web/feeds/home.html +++ b/src/main/resources/web/feeds/home.html @@ -101,8 +101,10 @@
diff --git a/src/test/java/com/rebuild/utils/OshiUtilsTest.java b/src/test/java/com/rebuild/utils/OshiUtilsTest.java index 48205bc20..ecb4ff28e 100644 --- a/src/test/java/com/rebuild/utils/OshiUtilsTest.java +++ b/src/test/java/com/rebuild/utils/OshiUtilsTest.java @@ -7,6 +7,7 @@ See LICENSE and COMMERCIAL in the project root for license information. package com.rebuild.utils; +import cn.devezhao.commons.CalendarUtils; import org.junit.jupiter.api.Test; import java.util.Arrays; @@ -38,6 +39,7 @@ class OshiUtilsTest { @Test void getNetworkDate() { System.out.println(OshiUtils.getNetworkDate()); + System.out.println(CalendarUtils.now()); } @Test