mirror of
https://github.com/getrebuild/rebuild.git
synced 2024-09-20 23:45:55 +08:00
fix: projects
This commit is contained in:
parent
aa179bd118
commit
1a3c22201e
|
@ -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)
|
||||
|
|
|
@ -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"));
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in a new issue