diff --git a/src/main/config/es/fess_config.json b/src/main/config/es/fess_config.json index 470287a38..567af8c5d 100644 --- a/src/main/config/es/fess_config.json +++ b/src/main/config/es/fess_config.json @@ -834,6 +834,9 @@ "permissions" : { "type": "keyword" }, + "virtualHost" : { + "type": "keyword" + }, "sortOrder" : { "type" : "integer" }, diff --git a/src/main/java/org/codelibs/fess/app/web/admin/design/AdminDesignAction.java b/src/main/java/org/codelibs/fess/app/web/admin/design/AdminDesignAction.java index c99360b5e..10f2eab1b 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/design/AdminDesignAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/design/AdminDesignAction.java @@ -85,7 +85,7 @@ public class AdminDesignAction extends FessAdminAction { for (final Pair p : systemHelper.getDesignJspFileNames()) { jspItems.add(new Pair<>(":" + p.getFirst(), "/" + p.getSecond())); } - for (String key : fessConfig.getVirtualHostKeys()) { + for (String key : fessConfig.getVirtualHostPaths()) { if (StringUtil.isBlank(key)) { key = "/"; } diff --git a/src/main/java/org/codelibs/fess/app/web/admin/labeltype/CreateForm.java b/src/main/java/org/codelibs/fess/app/web/admin/labeltype/CreateForm.java index 1d84e523d..a35fcf641 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/labeltype/CreateForm.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/labeltype/CreateForm.java @@ -54,6 +54,9 @@ public class CreateForm { @CustomSize(maxKey = "form.admin.max.input.size") public String permissions; + @Size(max = 1000) + public String virtualHost; + @Min(value = 0) @Max(value = 2147483647) @ValidateTypeFailure diff --git a/src/main/java/org/codelibs/fess/app/web/admin/searchlist/EditForm.java b/src/main/java/org/codelibs/fess/app/web/admin/searchlist/EditForm.java index 17cbfa256..0cfcbb9f7 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/searchlist/EditForm.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/searchlist/EditForm.java @@ -15,7 +15,6 @@ */ package org.codelibs.fess.app.web.admin.searchlist; -import org.lastaflute.web.validation.Required; import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure; /** diff --git a/src/main/java/org/codelibs/fess/es/config/bsbhv/BsLabelTypeBhv.java b/src/main/java/org/codelibs/fess/es/config/bsbhv/BsLabelTypeBhv.java index ffab90e15..0f124f2cc 100644 --- a/src/main/java/org/codelibs/fess/es/config/bsbhv/BsLabelTypeBhv.java +++ b/src/main/java/org/codelibs/fess/es/config/bsbhv/BsLabelTypeBhv.java @@ -79,6 +79,7 @@ public abstract class BsLabelTypeBhv extends EsAbstractBehavior ((LabelType) et).getName(), (et, vl) -> ((LabelType) et).setName(DfTypeUtil.toString(vl)), "name"); setupEpg(_epgMap, et -> ((LabelType) et).getPermissions(), (et, vl) -> ((LabelType) et).setPermissions((String[]) vl), "permissions"); + setupEpg(_epgMap, et -> ((LabelType) et).getVirtualHost(), (et, vl) -> ((LabelType) et).setVirtualHost(DfTypeUtil.toString(vl)), + "virtualHost"); setupEpg(_epgMap, et -> ((LabelType) et).getSortOrder(), (et, vl) -> ((LabelType) et).setSortOrder(DfTypeUtil.toInteger(vl)), "sortOrder"); setupEpg(_epgMap, et -> ((LabelType) et).getUpdatedBy(), (et, vl) -> ((LabelType) et).setUpdatedBy(DfTypeUtil.toString(vl)), @@ -145,6 +147,8 @@ public class LabelTypeDbm extends AbstractDBMeta { 0, null, false, null, null, null, null, null, false); protected final ColumnInfo _columnPermissions = cci("permissions", "permissions", null, null, String[].class, "permissions", null, false, false, false, "keyword", 0, 0, null, false, null, null, null, null, null, false); + protected final ColumnInfo _columnVirtualHost = cci("virtualHost", "virtualHost", null, null, String.class, "virtualHost", null, false, + false, false, "keyword", 0, 0, null, false, null, null, null, null, null, false); protected final ColumnInfo _columnSortOrder = cci("sortOrder", "sortOrder", null, null, Integer.class, "sortOrder", null, false, false, false, "Integer", 0, 0, null, false, null, null, null, null, null, false); protected final ColumnInfo _columnUpdatedBy = cci("updatedBy", "updatedBy", null, null, String.class, "updatedBy", null, false, false, @@ -178,6 +182,10 @@ public class LabelTypeDbm extends AbstractDBMeta { return _columnPermissions; } + public ColumnInfo columnVirtualHost() { + return _columnVirtualHost; + } + public ColumnInfo columnSortOrder() { return _columnSortOrder; } @@ -202,6 +210,7 @@ public class LabelTypeDbm extends AbstractDBMeta { ls.add(columnIncludedPaths()); ls.add(columnName()); ls.add(columnPermissions()); + ls.add(columnVirtualHost()); ls.add(columnSortOrder()); ls.add(columnUpdatedBy()); ls.add(columnUpdatedTime()); diff --git a/src/main/java/org/codelibs/fess/es/config/cbean/bs/BsLabelTypeCB.java b/src/main/java/org/codelibs/fess/es/config/cbean/bs/BsLabelTypeCB.java index 059f16336..d2a1cdae9 100644 --- a/src/main/java/org/codelibs/fess/es/config/cbean/bs/BsLabelTypeCB.java +++ b/src/main/java/org/codelibs/fess/es/config/cbean/bs/BsLabelTypeCB.java @@ -200,6 +200,10 @@ public class BsLabelTypeCB extends EsAbstractConditionBean { doColumn("permissions"); } + public void columnVirtualHost() { + doColumn("virtualHost"); + } + public void columnSortOrder() { doColumn("sortOrder"); } diff --git a/src/main/java/org/codelibs/fess/es/config/cbean/ca/bs/BsLabelTypeCA.java b/src/main/java/org/codelibs/fess/es/config/cbean/ca/bs/BsLabelTypeCA.java index 64b90f1c3..df37a8226 100644 --- a/src/main/java/org/codelibs/fess/es/config/cbean/ca/bs/BsLabelTypeCA.java +++ b/src/main/java/org/codelibs/fess/es/config/cbean/ca/bs/BsLabelTypeCA.java @@ -983,6 +983,137 @@ public abstract class BsLabelTypeCA extends EsAbstractConditionAggregation { } } + public void setVirtualHost_Terms() { + setVirtualHost_Terms(null); + } + + public void setVirtualHost_Terms(ConditionOptionCall opLambda) { + setVirtualHost_Terms("virtualHost", opLambda, null); + } + + public void setVirtualHost_Terms(ConditionOptionCall opLambda, OperatorCall aggsLambda) { + setVirtualHost_Terms("virtualHost", opLambda, aggsLambda); + } + + public void setVirtualHost_Terms(String name, ConditionOptionCall opLambda, + OperatorCall aggsLambda) { + TermsAggregationBuilder builder = regTermsA(name, "virtualHost"); + if (opLambda != null) { + opLambda.callback(builder); + } + if (aggsLambda != null) { + LabelTypeCA ca = new LabelTypeCA(); + aggsLambda.callback(ca); + ca.getAggregationBuilderList().forEach(builder::subAggregation); + } + } + + public void setVirtualHost_SignificantTerms() { + setVirtualHost_SignificantTerms(null); + } + + public void setVirtualHost_SignificantTerms(ConditionOptionCall opLambda) { + setVirtualHost_SignificantTerms("virtualHost", opLambda, null); + } + + public void setVirtualHost_SignificantTerms(ConditionOptionCall opLambda, + OperatorCall aggsLambda) { + setVirtualHost_SignificantTerms("virtualHost", opLambda, aggsLambda); + } + + public void setVirtualHost_SignificantTerms(String name, ConditionOptionCall opLambda, + OperatorCall aggsLambda) { + SignificantTermsAggregationBuilder builder = regSignificantTermsA(name, "virtualHost"); + if (opLambda != null) { + opLambda.callback(builder); + } + if (aggsLambda != null) { + LabelTypeCA ca = new LabelTypeCA(); + aggsLambda.callback(ca); + ca.getAggregationBuilderList().forEach(builder::subAggregation); + } + } + + public void setVirtualHost_IpRange() { + setVirtualHost_IpRange(null); + } + + public void setVirtualHost_IpRange(ConditionOptionCall opLambda) { + setVirtualHost_IpRange("virtualHost", opLambda, null); + } + + public void setVirtualHost_IpRange(ConditionOptionCall opLambda, OperatorCall aggsLambda) { + setVirtualHost_IpRange("virtualHost", opLambda, aggsLambda); + } + + public void setVirtualHost_IpRange(String name, ConditionOptionCall opLambda, + OperatorCall aggsLambda) { + IpRangeAggregationBuilder builder = regIpRangeA(name, "virtualHost"); + if (opLambda != null) { + opLambda.callback(builder); + } + if (aggsLambda != null) { + LabelTypeCA ca = new LabelTypeCA(); + aggsLambda.callback(ca); + ca.getAggregationBuilderList().forEach(builder::subAggregation); + } + } + + public void setVirtualHost_Count() { + setVirtualHost_Count(null); + } + + public void setVirtualHost_Count(ConditionOptionCall opLambda) { + setVirtualHost_Count("virtualHost", opLambda); + } + + public void setVirtualHost_Count(String name, ConditionOptionCall opLambda) { + ValueCountAggregationBuilder builder = regCountA(name, "virtualHost"); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_Cardinality() { + setVirtualHost_Cardinality(null); + } + + public void setVirtualHost_Cardinality(ConditionOptionCall opLambda) { + setVirtualHost_Cardinality("virtualHost", opLambda); + } + + public void setVirtualHost_Cardinality(String name, ConditionOptionCall opLambda) { + CardinalityAggregationBuilder builder = regCardinalityA(name, "virtualHost"); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_Missing() { + setVirtualHost_Missing(null); + } + + public void setVirtualHost_Missing(ConditionOptionCall opLambda) { + setVirtualHost_Missing("virtualHost", opLambda, null); + } + + public void setVirtualHost_Missing(ConditionOptionCall opLambda, OperatorCall aggsLambda) { + setVirtualHost_Missing("virtualHost", opLambda, aggsLambda); + } + + public void setVirtualHost_Missing(String name, ConditionOptionCall opLambda, + OperatorCall aggsLambda) { + MissingAggregationBuilder builder = regMissingA(name, "virtualHost"); + if (opLambda != null) { + opLambda.callback(builder); + } + if (aggsLambda != null) { + LabelTypeCA ca = new LabelTypeCA(); + aggsLambda.callback(ca); + ca.getAggregationBuilderList().forEach(builder::subAggregation); + } + } + public void setSortOrder_Avg() { setSortOrder_Avg(null); } diff --git a/src/main/java/org/codelibs/fess/es/config/cbean/cq/bs/BsLabelTypeCQ.java b/src/main/java/org/codelibs/fess/es/config/cbean/cq/bs/BsLabelTypeCQ.java index 09c61e104..c7eda1d81 100644 --- a/src/main/java/org/codelibs/fess/es/config/cbean/cq/bs/BsLabelTypeCQ.java +++ b/src/main/java/org/codelibs/fess/es/config/cbean/cq/bs/BsLabelTypeCQ.java @@ -1473,6 +1473,228 @@ public abstract class BsLabelTypeCQ extends EsAbstractConditionQuery { return this; } + public void setVirtualHost_Equal(String virtualHost) { + setVirtualHost_Term(virtualHost, null); + } + + public void setVirtualHost_Equal(String virtualHost, ConditionOptionCall opLambda) { + setVirtualHost_Term(virtualHost, opLambda); + } + + public void setVirtualHost_Term(String virtualHost) { + setVirtualHost_Term(virtualHost, null); + } + + public void setVirtualHost_Term(String virtualHost, ConditionOptionCall opLambda) { + TermQueryBuilder builder = regTermQ("virtualHost", virtualHost); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_NotEqual(String virtualHost) { + setVirtualHost_NotTerm(virtualHost, null); + } + + public void setVirtualHost_NotTerm(String virtualHost) { + setVirtualHost_NotTerm(virtualHost, null); + } + + public void setVirtualHost_NotEqual(String virtualHost, ConditionOptionCall opLambda) { + setVirtualHost_NotTerm(virtualHost, opLambda); + } + + public void setVirtualHost_NotTerm(String virtualHost, ConditionOptionCall opLambda) { + not(not -> not.setVirtualHost_Term(virtualHost), opLambda); + } + + public void setVirtualHost_Terms(Collection virtualHostList) { + setVirtualHost_Terms(virtualHostList, null); + } + + public void setVirtualHost_Terms(Collection virtualHostList, ConditionOptionCall opLambda) { + TermsQueryBuilder builder = regTermsQ("virtualHost", virtualHostList); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_InScope(Collection virtualHostList) { + setVirtualHost_Terms(virtualHostList, null); + } + + public void setVirtualHost_InScope(Collection virtualHostList, ConditionOptionCall opLambda) { + setVirtualHost_Terms(virtualHostList, opLambda); + } + + public void setVirtualHost_Match(String virtualHost) { + setVirtualHost_Match(virtualHost, null); + } + + public void setVirtualHost_Match(String virtualHost, ConditionOptionCall opLambda) { + MatchQueryBuilder builder = regMatchQ("virtualHost", virtualHost); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_MatchPhrase(String virtualHost) { + setVirtualHost_MatchPhrase(virtualHost, null); + } + + public void setVirtualHost_MatchPhrase(String virtualHost, ConditionOptionCall opLambda) { + MatchPhraseQueryBuilder builder = regMatchPhraseQ("virtualHost", virtualHost); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_MatchPhrasePrefix(String virtualHost) { + setVirtualHost_MatchPhrasePrefix(virtualHost, null); + } + + public void setVirtualHost_MatchPhrasePrefix(String virtualHost, ConditionOptionCall opLambda) { + MatchPhrasePrefixQueryBuilder builder = regMatchPhrasePrefixQ("virtualHost", virtualHost); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_Fuzzy(String virtualHost) { + setVirtualHost_Fuzzy(virtualHost, null); + } + + public void setVirtualHost_Fuzzy(String virtualHost, ConditionOptionCall opLambda) { + MatchQueryBuilder builder = regFuzzyQ("virtualHost", virtualHost); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_Prefix(String virtualHost) { + setVirtualHost_Prefix(virtualHost, null); + } + + public void setVirtualHost_Prefix(String virtualHost, ConditionOptionCall opLambda) { + PrefixQueryBuilder builder = regPrefixQ("virtualHost", virtualHost); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_Wildcard(String virtualHost) { + setVirtualHost_Wildcard(virtualHost, null); + } + + public void setVirtualHost_Wildcard(String virtualHost, ConditionOptionCall opLambda) { + WildcardQueryBuilder builder = regWildcardQ("virtualHost", virtualHost); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_Regexp(String virtualHost) { + setVirtualHost_Regexp(virtualHost, null); + } + + public void setVirtualHost_Regexp(String virtualHost, ConditionOptionCall opLambda) { + RegexpQueryBuilder builder = regRegexpQ("virtualHost", virtualHost); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_SpanTerm(String virtualHost) { + setVirtualHost_SpanTerm("virtualHost", null); + } + + public void setVirtualHost_SpanTerm(String virtualHost, ConditionOptionCall opLambda) { + SpanTermQueryBuilder builder = regSpanTermQ("virtualHost", virtualHost); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_GreaterThan(String virtualHost) { + setVirtualHost_GreaterThan(virtualHost, null); + } + + public void setVirtualHost_GreaterThan(String virtualHost, ConditionOptionCall opLambda) { + final Object _value = virtualHost; + RangeQueryBuilder builder = regRangeQ("virtualHost", ConditionKey.CK_GREATER_THAN, _value); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_LessThan(String virtualHost) { + setVirtualHost_LessThan(virtualHost, null); + } + + public void setVirtualHost_LessThan(String virtualHost, ConditionOptionCall opLambda) { + final Object _value = virtualHost; + RangeQueryBuilder builder = regRangeQ("virtualHost", ConditionKey.CK_LESS_THAN, _value); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_GreaterEqual(String virtualHost) { + setVirtualHost_GreaterEqual(virtualHost, null); + } + + public void setVirtualHost_GreaterEqual(String virtualHost, ConditionOptionCall opLambda) { + final Object _value = virtualHost; + RangeQueryBuilder builder = regRangeQ("virtualHost", ConditionKey.CK_GREATER_EQUAL, _value); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_LessEqual(String virtualHost) { + setVirtualHost_LessEqual(virtualHost, null); + } + + public void setVirtualHost_LessEqual(String virtualHost, ConditionOptionCall opLambda) { + final Object _value = virtualHost; + RangeQueryBuilder builder = regRangeQ("virtualHost", ConditionKey.CK_LESS_EQUAL, _value); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_Exists() { + setVirtualHost_Exists(null); + } + + public void setVirtualHost_Exists(ConditionOptionCall opLambda) { + ExistsQueryBuilder builder = regExistsQ("virtualHost"); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public void setVirtualHost_CommonTerms(String virtualHost) { + setVirtualHost_CommonTerms(virtualHost, null); + } + + public void setVirtualHost_CommonTerms(String virtualHost, ConditionOptionCall opLambda) { + CommonTermsQueryBuilder builder = regCommonTermsQ("virtualHost", virtualHost); + if (opLambda != null) { + opLambda.callback(builder); + } + } + + public BsLabelTypeCQ addOrderBy_VirtualHost_Asc() { + regOBA("virtualHost"); + return this; + } + + public BsLabelTypeCQ addOrderBy_VirtualHost_Desc() { + regOBD("virtualHost"); + return this; + } + public void setSortOrder_Equal(Integer sortOrder) { setSortOrder_Term(sortOrder, null); } diff --git a/src/main/java/org/codelibs/fess/helper/LabelTypeHelper.java b/src/main/java/org/codelibs/fess/helper/LabelTypeHelper.java index 1363c945d..3b3c015bc 100644 --- a/src/main/java/org/codelibs/fess/helper/LabelTypeHelper.java +++ b/src/main/java/org/codelibs/fess/helper/LabelTypeHelper.java @@ -35,6 +35,7 @@ import org.codelibs.fess.Constants; import org.codelibs.fess.app.service.LabelTypeService; import org.codelibs.fess.entity.SearchRequestParams.SearchRequestType; import org.codelibs.fess.es.config.exentity.LabelType; +import org.codelibs.fess.mylasta.direction.FessConfig; import org.codelibs.fess.util.ComponentUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -66,6 +67,7 @@ public class LabelTypeHelper { item.setLabel(labelType.getName()); item.setValue(labelType.getValue()); item.setPermissions(labelType.getPermissions()); + item.setVirtualHost(labelType.getVirtualHost()); itemList.add(item); } labelTypeItemList = itemList; @@ -76,10 +78,19 @@ public class LabelTypeHelper { init(); } + final String virtualHostKey = ComponentUtil.getFessConfig().getVirtualHostKey(); + final List labelList; + if (StringUtil.isBlank(virtualHostKey)) { + labelList = labelTypeItemList; + } else { + labelList = + labelTypeItemList.stream().filter(item -> virtualHostKey.equals(item.getVirtualHost())).collect(Collectors.toList()); + } + final List> itemList = new ArrayList<>(); final Set roleSet = roleQueryHelper.build(searchRequestType); if (roleSet.isEmpty()) { - for (final LabelTypeItem item : labelTypeItemList) { + for (final LabelTypeItem item : labelList) { if (item.getPermissions().length == 0) { final Map map = new HashMap<>(2); map.put(Constants.ITEM_LABEL, item.getLabel()); @@ -88,7 +99,7 @@ public class LabelTypeHelper { } } } else { - for (final LabelTypeItem item : labelTypeItemList) { + for (final LabelTypeItem item : labelList) { final Set permissions = stream(item.getPermissions()).get(stream -> stream.collect(Collectors.toSet())); for (final String roleValue : roleSet) { if (permissions.contains(roleValue)) { @@ -148,6 +159,8 @@ public class LabelTypeHelper { private String[] permissions; + private String virtualHost; + public String getLabel() { return label; } @@ -171,6 +184,14 @@ public class LabelTypeHelper { public void setPermissions(final String[] permissions) { this.permissions = permissions; } + + public String getVirtualHost() { + return virtualHost; + } + + public void setVirtualHost(String virtualHost) { + this.virtualHost = virtualHost; + } } public static class LabelTypePattern { diff --git a/src/main/java/org/codelibs/fess/helper/SystemHelper.java b/src/main/java/org/codelibs/fess/helper/SystemHelper.java index 31e971605..ccb127063 100644 --- a/src/main/java/org/codelibs/fess/helper/SystemHelper.java +++ b/src/main/java/org/codelibs/fess/helper/SystemHelper.java @@ -221,7 +221,7 @@ public class SystemHelper { public void refreshDesignJspFiles() { final ServletContext servletContext = LaServletContextUtil.getServletContext(); - stream(ComponentUtil.getFessConfig().getVirtualHostKeys()).of( + stream(ComponentUtil.getFessConfig().getVirtualHostPaths()).of( stream -> stream.filter(s -> s != null && !s.equals("/")).forEach( key -> { designJspFileNameMap diff --git a/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java b/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java index e189ac81a..9bf6cd191 100644 --- a/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java +++ b/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java @@ -1055,6 +1055,9 @@ public class FessLabels extends UserMessages { /** The key of the message: Virtual Hosts */ public static final String LABELS_virtual_hosts = "{labels.virtual_hosts}"; + /** The key of the message: Virtual Host */ + public static final String LABELS_virtual_host = "{labels.virtual_host}"; + /** The key of the message: Label */ public static final String LABELS_label_type = "{labels.label_type}"; @@ -1463,9 +1466,6 @@ public class FessLabels extends UserMessages { /** The key of the message: Key Match */ public static final String LABELS_key_match_title_details = "{labels.key_match_title_details}"; - /** The key of the message: Virtual Host */ - public static final String LABELS_key_match_virtual_host = "{labels.key_match_virtual_host}"; - /** The key of the message: Page Design */ public static final String LABELS_design_configuration = "{labels.design_configuration}"; @@ -2265,9 +2265,6 @@ public class FessLabels extends UserMessages { /** The key of the message: Related Content */ public static final String LABELS_related_content_title_details = "{labels.related_content_title_details}"; - /** The key of the message: Virtual Host */ - public static final String LABELS_related_content_virtual_host = "{labels.related_content_virtual_host}"; - /** The key of the message: Related Query */ public static final String LABELS_related_query_configuration = "{labels.related_query_configuration}"; @@ -2283,9 +2280,6 @@ public class FessLabels extends UserMessages { /** The key of the message: Related Query */ public static final String LABELS_related_query_title_details = "{labels.related_query_title_details}"; - /** The key of the message: Virtual Host */ - public static final String LABELS_related_query_virtual_host = "{labels.related_query_virtual_host}"; - /** The key of the message: Create */ public static final String LABELS_crud_button_create = "{labels.crud_button_create}"; diff --git a/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java b/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java index a5629be21..3c1aaa784 100644 --- a/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java +++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java @@ -1598,7 +1598,10 @@ public interface FessProp { String getVirtualHostHeaders(); public default HtmlNext getVirtualHostPath(final HtmlNext page) { - return processVirtualHost(s -> new HtmlNext(s + page.getRoutingPath()), page); + return processVirtualHost(s -> { + final String basePath = StringUtil.isBlank(s) ? StringUtil.EMPTY : "/" + s; + return new HtmlNext(basePath + page.getRoutingPath()); + }, page); } public default String getVirtualHostKey() { @@ -1634,6 +1637,10 @@ public interface FessProp { return stream(getVirtualHosts()).get(stream -> stream.map(h -> h.getValue3()).toArray(n -> new String[n])); } + public default String[] getVirtualHostPaths() { + return stream(getVirtualHosts()).get(stream -> stream.map(h -> "/" + h.getValue3()).toArray(n -> new String[n])); + } + @SuppressWarnings("unchecked") public default Tuple3[] getVirtualHosts() { Tuple3[] hosts = (Tuple3[]) propMap.get(VIRTUAL_HOST_HEADERS); @@ -1644,10 +1651,10 @@ public interface FessProp { .map(s -> { final String[] v1 = s.split("="); if (v1.length == 2) { - final String[] v2 = v1[0].split(":"); + final String[] v2 = v1[0].split(":", 2); if (v2.length == 2) { - return new Tuple3<>(v2[0].trim(), v2[0].trim(), "/" - + v1[1].replaceAll("[^a-zA-Z0-9_]", StringUtil.EMPTY).trim()); + return new Tuple3<>(v2[0].trim(), v2[1].trim(), v1[1].replaceAll("[^a-zA-Z0-9_]", + StringUtil.EMPTY).trim()); } } return null; @@ -1656,9 +1663,9 @@ public interface FessProp { if (v == null) { return false; } - if ("/admin".equalsIgnoreCase(v.getValue3()) || "/common".equalsIgnoreCase(v.getValue3()) - || "/error".equalsIgnoreCase(v.getValue3()) || "/login".equalsIgnoreCase(v.getValue3()) - || "/profile".equalsIgnoreCase(v.getValue3())) { + if ("admin".equalsIgnoreCase(v.getValue3()) || "common".equalsIgnoreCase(v.getValue3()) + || "error".equalsIgnoreCase(v.getValue3()) || "login".equalsIgnoreCase(v.getValue3()) + || "profile".equalsIgnoreCase(v.getValue3())) { return false; } return true; diff --git a/src/main/resources/fess_indices/.fess_config/label_type.json b/src/main/resources/fess_indices/.fess_config/label_type.json index fe9e9398a..e0b874fb5 100644 --- a/src/main/resources/fess_indices/.fess_config/label_type.json +++ b/src/main/resources/fess_indices/.fess_config/label_type.json @@ -22,6 +22,9 @@ "permissions": { "type": "keyword" }, + "virtualHost": { + "type": "keyword" + }, "sortOrder": { "type": "integer" }, diff --git a/src/main/resources/fess_label.properties b/src/main/resources/fess_label.properties index b3e5ca055..ad06cb8d5 100644 --- a/src/main/resources/fess_label.properties +++ b/src/main/resources/fess_label.properties @@ -342,6 +342,7 @@ labels.interval_time=Interval time labels.millisec=ms labels.permissions=Permissions labels.virtual_hosts=Virtual Hosts +labels.virtual_host=Virtual Host labels.label_type=Label labels.file_crawling_button_create=Create labels.file_crawling_button_create_job=Create new job @@ -478,7 +479,6 @@ labels.key_match_size=Size labels.key_match_boost=Boost labels.key_match_urls=Urls labels.key_match_title_details=Key Match -labels.key_match_virtual_host=Virtual Host labels.design_configuration=Page Design labels.design_title_file_upload=File Upload labels.design_title_file=File Manager @@ -745,13 +745,11 @@ labels.related_content_content=Content labels.related_content_list_term=Term labels.related_content_term=Term labels.related_content_title_details=Related Content -labels.related_content_virtual_host=Virtual Host labels.related_query_configuration=Related Query labels.related_query_list_term=Term labels.related_query_queries=Queries labels.related_query_term=Term labels.related_query_title_details=Related Query -labels.related_query_virtual_host=Virtual Host labels.crud_button_create=Create labels.crud_button_update=Update labels.crud_button_delete=Delete diff --git a/src/main/resources/fess_label_en.properties b/src/main/resources/fess_label_en.properties index e655ab425..314d52d83 100644 --- a/src/main/resources/fess_label_en.properties +++ b/src/main/resources/fess_label_en.properties @@ -342,6 +342,7 @@ labels.interval_time=Interval time labels.millisec=ms labels.permissions=Permissions labels.virtual_hosts=Virtual Hosts +labels.virtual_host=Virtual Host labels.label_type=Label labels.file_crawling_button_create=Create labels.file_crawling_button_create_job=Create new job @@ -478,7 +479,6 @@ labels.key_match_size=Size labels.key_match_boost=Boost labels.key_match_urls=Urls labels.key_match_title_details=Key Match -labels.key_match_virtual_host=Virtual Host labels.design_configuration=Page Design labels.design_title_file_upload=File Upload labels.design_title_file=File Manager @@ -745,13 +745,11 @@ labels.related_content_content=Content labels.related_content_list_term=Term labels.related_content_term=Term labels.related_content_title_details=Related Content -labels.related_content_virtual_host=Virtual Host labels.related_query_configuration=Related Query labels.related_query_list_term=Term labels.related_query_queries=Queries labels.related_query_term=Term labels.related_query_title_details=Related Query -labels.related_query_virtual_host=Virtual Host labels.crud_button_create=Create labels.crud_button_update=Update labels.crud_button_delete=Delete diff --git a/src/main/resources/fess_label_ja.properties b/src/main/resources/fess_label_ja.properties index bc1b420c9..02975ecab 100644 --- a/src/main/resources/fess_label_ja.properties +++ b/src/main/resources/fess_label_ja.properties @@ -335,6 +335,7 @@ labels.interval_time=\u9593\u9694 labels.millisec=\u30df\u30ea\u79d2 labels.permissions=\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3 labels.virtual_hosts=\u4eee\u60f3\u30db\u30b9\u30c8 +labels.virtual_host=\u4eee\u60f3\u30db\u30b9\u30c8 labels.label_type=\u30e9\u30d9\u30eb labels.file_crawling_button_create=\u4f5c\u6210 labels.file_crawling_button_create_job=\u65b0\u3057\u3044\u30b8\u30e7\u30d6\u306e\u4f5c\u6210 @@ -471,7 +472,6 @@ labels.key_match_size=\u30b5\u30a4\u30ba labels.key_match_boost=\u30d6\u30fc\u30b9\u30c8\u5024 labels.key_match_urls=URL labels.key_match_title_details=\u30ad\u30fc\u30de\u30c3\u30c1 -labels.key_match_virtual_host=\u4eee\u60f3\u30db\u30b9\u30c8 labels.design_configuration=\u30da\u30fc\u30b8\u306e\u30c7\u30b6\u30a4\u30f3 labels.design_title_file_upload=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb labels.design_title_file=\u30d5\u30a1\u30a4\u30eb\u30de\u30cd\u30fc\u30b8\u30e3\u30fc @@ -740,13 +740,11 @@ labels.related_content_content=\u30b3\u30f3\u30c6\u30f3\u30c4 labels.related_content_list_term=\u691c\u7d22\u8a9e labels.related_content_term=\u691c\u7d22\u8a9e labels.related_content_title_details=\u95a2\u9023\u30b3\u30f3\u30c6\u30f3\u30c4 -labels.related_content_virtual_host=\u4eee\u60f3\u30db\u30b9\u30c8 labels.related_query_configuration=\u95a2\u9023\u30af\u30a8\u30ea\u30fc labels.related_query_list_term=\u691c\u7d22\u8a9e labels.related_query_queries=\u30af\u30a8\u30ea\u30fc labels.related_query_term=\u691c\u7d22\u8a9e labels.related_query_title_details=\u95a2\u9023\u30af\u30a8\u30ea\u30fc -labels.related_query_virtual_host=\u4eee\u60f3\u30db\u30b9\u30c8 labels.crud_button_create=\u4f5c\u6210 labels.crud_button_update=\u66f4\u65b0 labels.crud_button_delete=\u524a\u9664 diff --git a/src/main/webapp/WEB-INF/view/admin/keymatch/admin_keymatch_details.jsp b/src/main/webapp/WEB-INF/view/admin/keymatch/admin_keymatch_details.jsp index a27bba647..a1384e9de 100644 --- a/src/main/webapp/WEB-INF/view/admin/keymatch/admin_keymatch_details.jsp +++ b/src/main/webapp/WEB-INF/view/admin/keymatch/admin_keymatch_details.jsp @@ -74,7 +74,7 @@ + key="labels.virtual_host" /> ${f:h(virtualHost)} diff --git a/src/main/webapp/WEB-INF/view/admin/keymatch/admin_keymatch_edit.jsp b/src/main/webapp/WEB-INF/view/admin/keymatch/admin_keymatch_edit.jsp index 5f87c59eb..1e32690bb 100644 --- a/src/main/webapp/WEB-INF/view/admin/keymatch/admin_keymatch_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/keymatch/admin_keymatch_edit.jsp @@ -80,7 +80,7 @@
+ key="labels.virtual_host" />
diff --git a/src/main/webapp/WEB-INF/view/admin/labeltype/admin_labeltype_details.jsp b/src/main/webapp/WEB-INF/view/admin/labeltype/admin_labeltype_details.jsp index 3952783de..e0b8ba0af 100644 --- a/src/main/webapp/WEB-INF/view/admin/labeltype/admin_labeltype_details.jsp +++ b/src/main/webapp/WEB-INF/view/admin/labeltype/admin_labeltype_details.jsp @@ -73,6 +73,11 @@ ${f:br(f:h(permissions))} + + + ${f:h(virtualHost)} + ${f:h(sortOrder)} diff --git a/src/main/webapp/WEB-INF/view/admin/labeltype/admin_labeltype_edit.jsp b/src/main/webapp/WEB-INF/view/admin/labeltype/admin_labeltype_edit.jsp index 617f02ddb..f4c27a7cd 100644 --- a/src/main/webapp/WEB-INF/view/admin/labeltype/admin_labeltype_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/labeltype/admin_labeltype_edit.jsp @@ -87,6 +87,14 @@ rows="5" />
+
+ +
+ + +
+
diff --git a/src/main/webapp/WEB-INF/view/admin/relatedcontent/admin_relatedcontent_details.jsp b/src/main/webapp/WEB-INF/view/admin/relatedcontent/admin_relatedcontent_details.jsp index 74b4ab441..e70ebfc4d 100644 --- a/src/main/webapp/WEB-INF/view/admin/relatedcontent/admin_relatedcontent_details.jsp +++ b/src/main/webapp/WEB-INF/view/admin/relatedcontent/admin_relatedcontent_details.jsp @@ -61,7 +61,7 @@ + key="labels.virtual_host" /> ${f:h(virtualHost)} diff --git a/src/main/webapp/WEB-INF/view/admin/relatedcontent/admin_relatedcontent_edit.jsp b/src/main/webapp/WEB-INF/view/admin/relatedcontent/admin_relatedcontent_edit.jsp index 5742e0baa..a916ede2e 100644 --- a/src/main/webapp/WEB-INF/view/admin/relatedcontent/admin_relatedcontent_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/relatedcontent/admin_relatedcontent_edit.jsp @@ -62,7 +62,7 @@
+ key="labels.virtual_host" />
diff --git a/src/main/webapp/WEB-INF/view/admin/relatedquery/admin_relatedquery_details.jsp b/src/main/webapp/WEB-INF/view/admin/relatedquery/admin_relatedquery_details.jsp index 2fe0e61a1..665636fee 100644 --- a/src/main/webapp/WEB-INF/view/admin/relatedquery/admin_relatedquery_details.jsp +++ b/src/main/webapp/WEB-INF/view/admin/relatedquery/admin_relatedquery_details.jsp @@ -61,7 +61,7 @@ + key="labels.virtual_host" /> ${f:h(virtualHost)} diff --git a/src/main/webapp/WEB-INF/view/admin/relatedquery/admin_relatedquery_edit.jsp b/src/main/webapp/WEB-INF/view/admin/relatedquery/admin_relatedquery_edit.jsp index 42fb3720d..179833a90 100644 --- a/src/main/webapp/WEB-INF/view/admin/relatedquery/admin_relatedquery_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/relatedquery/admin_relatedquery_edit.jsp @@ -62,7 +62,7 @@
+ key="labels.virtual_host" />