fix: projects

This commit is contained in:
devezhao 2020-12-04 15:55:59 +08:00
parent aa179bd118
commit 1a3c22201e
4 changed files with 28 additions and 14 deletions

View file

@ -89,6 +89,7 @@ public class NavBuilder extends NavManager {
JSONObject nav = (JSONObject) iter.next();
JSONArray subNavs = nav.getJSONArray("sub");
// 父级菜单
if (subNavs != null && !subNavs.isEmpty()) {
for (Iterator<Object> subIter = subNavs.iterator(); subIter.hasNext(); ) {
JSONObject subNav = (JSONObject) subIter.next();
@ -98,9 +99,8 @@ public class NavBuilder extends NavManager {
}
// 无子级移除主菜单
if (subNavs.isEmpty()) {
iter.remove();
}
if (subNavs.isEmpty()) iter.remove();
} else if (isFilterNavItem(nav, user)) {
iter.remove();
} else if (NAV_PROJECT.equals(nav.getString("value"))) {
@ -121,6 +121,7 @@ public class NavBuilder extends NavManager {
String type = nav.getString("type");
if ("ENTITY".equalsIgnoreCase(type)) {
String entity = nav.getString("value");
if (NAV_PARENT.equals(entity)) {
return true;
} else if (NAV_FEEDS.equals(entity) || NAV_FILEMRG.equals(entity) || NAV_PROJECT.equals(entity)) {
@ -160,6 +161,8 @@ public class NavBuilder extends NavManager {
}
/**
* 首次安装添加菜单
*
* @param initEntity
*/
public void addInitNavOnInstall(String[] initEntity) {
@ -276,7 +279,7 @@ public class NavBuilder extends NavManager {
navText);
StringBuilder navHtml = new StringBuilder(navItemHtml);
if (subNavs != null) {
if (subNavs != null && !subNavs.isEmpty()) {
StringBuilder subHtml = new StringBuilder()
.append("<ul class=\"sub-menu\"><li class=\"title\">")
.append(navText)

View file

@ -20,6 +20,7 @@ import com.rebuild.core.metadata.MetadataHelper;
import com.rebuild.core.metadata.MetadataSorter;
import com.rebuild.core.metadata.easymeta.DisplayType;
import com.rebuild.core.metadata.easymeta.EasyEntity;
import com.rebuild.core.metadata.easymeta.EasyField;
import com.rebuild.core.metadata.easymeta.EasyMetaFactory;
import com.rebuild.core.privileges.PrivilegesManager;
import com.rebuild.web.BaseController;
@ -70,8 +71,8 @@ public class MetadataGetting extends BaseController {
// 追加二级引用字段
if (appendRefFields) {
for (Field field : entityMeta.getFields()) {
if (!field.isQueryable() || EasyMetaFactory.getDisplayType(field) != DisplayType.REFERENCE) continue;
for (Field field : MetadataSorter.sortFields(entityMeta, DisplayType.REFERENCE)) {
if (!field.isQueryable()) continue;
int code = field.getReferenceEntity().getEntityCode();
if (MetadataHelper.isBizzEntity(code) || code == EntityHelper.RobotApprovalConfig) continue;
@ -99,10 +100,12 @@ public class MetadataGetting extends BaseController {
}
for (Field field : MetadataSorter.sortFields(useEntity)) {
JSONObject map = EasyMetaFactory.toJSON(field);
if (!field.isQueryable()) continue;
// 引用字段处理
if (EasyMetaFactory.getDisplayType(field) == DisplayType.REFERENCE && filterRefField) {
EasyField easyField = EasyMetaFactory.valueOf(field);
// 特殊引用字段处理
if (easyField.getDisplayType() == DisplayType.REFERENCE && filterRefField) {
boolean isApprovalId = field.getName().equalsIgnoreCase(EntityHelper.ApprovalId);
boolean isBizz = MetadataHelper.isBizzEntity(field.getReferenceEntity());
if (!(isApprovalId || isBizz)) {
@ -110,6 +113,7 @@ public class MetadataGetting extends BaseController {
}
}
JSONObject map = (JSONObject) easyField.toJSON();
if (parentField != null) {
map.put("name", parentField.getName() + "." + map.get("name"));
map.put("label", EasyMetaFactory.getLabel(parentField) + "." + map.get("label"));

View file

@ -80,6 +80,9 @@ public class ProjectController extends BaseController {
return mv;
}
/**
* @see com.rebuild.web.general.ListAndViewRedirection
*/
@GetMapping("search")
public void searchProject(HttpServletRequest request, HttpServletResponse response) throws IOException {
String gs = getParameter(request, "gs");
@ -114,11 +117,12 @@ public class ProjectController extends BaseController {
}
// 未找到就跳转到第一个项目
ConfigBean[] ee = ProjectManager.instance.getAvailable(getRequestUser(request));
if (ee.length == 0) {
ConfigBean[] ccc = ProjectManager.instance.getAvailable(getRequestUser(request));
if (ccc.length == 0) {
response.sendError(404, Language.L("NoProjects"));
} else {
String projectUrl = baseUrl + ee[0].getID("id") + "/tasks#gs=" + CodecUtils.urlEncode(gs);
String projectUrl = baseUrl + ccc[0].getID("id") + "/tasks#gs=";
if (gs != null) projectUrl += CodecUtils.urlEncode(gs);
response.sendRedirect(projectUrl);
}
}

View file

@ -13,8 +13,11 @@ let __AdvFilter
$(document).ready(() => {
// $('.side-toggle').click(() => $('.rb-aside').toggleClass('rb-aside-collapsed'))
const gs = $decode($urlp('gs', location.hash))
if (gs) $('.search-input-gs, .J_search .input-search input').val(gs)
if (gs) {
$('.search-input-gs, .J_search .input-search input').val(gs)
$('.J_search .indicator-primary').removeClass('hide')
}
renderRbcomp(<PlanBoxes plans={wpc.projectPlans} readonly={!wpc.isMember} search={gs} />, 'plan-boxes', function () {
__PlanBoxes = this
__draggable()