CCM NG: Tab Suche portieren (#2733)

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5295 8810af33-2d31-482b-a856-94f89814c4df
jensp 2018-02-19 07:18:28 +00:00
parent a324a30b80
commit 30076965f5
9 changed files with 26 additions and 16 deletions

View File

@ -62,7 +62,7 @@ public class ItemSearch extends Form implements Resettable {
super("itemSearch", new SimpleContainer()); super("itemSearch", new SimpleContainer());
//setMethod("GET"); //setMethod("GET");
itemSearchSection = createSearchSection(context, limitToContentSection); itemSearchSection = createSearchSection(context, limitToContentSection);
add(itemSearchSection); super.add(itemSearchSection);
} }
protected ItemSearchSection createSearchSection(final String context, protected ItemSearchSection createSearchSection(final String context,

View File

@ -47,7 +47,7 @@ public class ItemQueryComponent extends BaseQueryComponent {
final boolean limitToContentSection, final boolean limitToContentSection,
final ContentType type) { final ContentType type) {
this.context = context; this.context = context;
//ToDo //ToDo
// add(new PermissionFilterComponent( // add(new PermissionFilterComponent(
// SecurityManager.CMS_PREVIEW_ITEM)); // SecurityManager.CMS_PREVIEW_ITEM));

View File

@ -519,3 +519,4 @@ cms.ui.item.lifecycle.republish=Republish
cms.ui.item.lifecycle.unpublish=Unpublish cms.ui.item.lifecycle.unpublish=Unpublish
cms.ui.item.lifecycle.do=Do cms.ui.item.lifecycle.do=Do
cms.ui.item.lifecycle.republish_and_reset=Republish and reset lifecycle cms.ui.item.lifecycle.republish_and_reset=Republish and reset lifecycle
cms.ui.search.help=Enter some search terms

View File

@ -516,3 +516,4 @@ cms.ui.item.lifecycle.republish=Erneut publizieren
cms.ui.item.lifecycle.unpublish=Depublizieren cms.ui.item.lifecycle.unpublish=Depublizieren
cms.ui.item.lifecycle.do=Ausf\u00fchren cms.ui.item.lifecycle.do=Ausf\u00fchren
cms.ui.item.lifecycle.republish_and_reset=Erneut publizieren und Lebenszyklus zur\u00fccksetzen cms.ui.item.lifecycle.republish_and_reset=Erneut publizieren und Lebenszyklus zur\u00fccksetzen
cms.ui.search.help=Enter some search terms

View File

@ -478,3 +478,4 @@ cms.ui.item.lifecycle.republish=Republish
cms.ui.item.lifecycle.unpublish=Unpublish cms.ui.item.lifecycle.unpublish=Unpublish
cms.ui.item.lifecycle.do=Do cms.ui.item.lifecycle.do=Do
cms.ui.item.lifecycle.republish_and_reset=Republish and reset lifecycle cms.ui.item.lifecycle.republish_and_reset=Republish and reset lifecycle
cms.ui.search.help=Enter some search terms

View File

@ -60,12 +60,13 @@ public class BaseQueryComponent extends QueryComponent {
private Set filters; private Set filters;
private Form form; private Form form;
private StringParameter termsParameter = new StringParameter("terms"); private final StringParameter termsParameter = new StringParameter("terms");
/** /**
* Creates a new query component * Creates a new query component
*/ */
public BaseQueryComponent() { public BaseQueryComponent() {
super("query"); super("query");
filters = new HashSet(); filters = new HashSet();
} }
@ -91,16 +92,18 @@ public class BaseQueryComponent extends QueryComponent {
*/ */
@Override @Override
protected String getTerms(final PageState state) { protected String getTerms(final PageState state) {
final FormData formData = form.getFormData(state); final FormData formData = form.getFormData(state);
if (formData != null) {
if (formData == null) {
return null;
} else {
final ParameterData data = formData.getParameter(termsParameter. final ParameterData data = formData.getParameter(termsParameter.
getName()); getName());
LOGGER.debug("Search terms were: {}", (String) data.getValue()); LOGGER.debug("Search terms were: {}", data.getValue());
return (String) data.getValue(); return (String) data.getValue();
} else {
return null;
} }
} }

View File

@ -22,7 +22,6 @@ import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.SimpleContainer; import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.search.SearchConstants; import com.arsdigita.search.SearchConstants;
import com.arsdigita.util.Assert;
import org.apache.lucene.search.Query; import org.apache.lucene.search.Query;
import org.hibernate.search.query.dsl.QueryBuilder; import org.hibernate.search.query.dsl.QueryBuilder;
import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.cdi.utils.CdiUtil;
@ -59,16 +58,21 @@ public abstract class QueryComponent extends SimpleContainer
*/ */
@Override @Override
public Query getQuerySpecification(final PageState state) { public Query getQuerySpecification(final PageState state) {
final String terms = getTerms(state); final String terms = getTerms(state);
final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final SearchManager searchManager = cdiUtil. final SearchManager searchManager = cdiUtil.
findBean(SearchManager.class); findBean(SearchManager.class);
final QueryBuilder queryBuilder = searchManager.createQueryBuilder(CcmObject.class); final QueryBuilder queryBuilder = searchManager
.createQueryBuilder(CcmObject.class);
return queryBuilder return queryBuilder
.keyword().onFields("displayName", "summary", "description", "title") .keyword().onFields("displayName",
"summary",
"description",
"title")
.matching(terms) .matching(terms)
.createQuery(); .createQuery();

View File

@ -36,7 +36,7 @@
xmlns:nav="http://ccm.redhat.com/navigation" xmlns:nav="http://ccm.redhat.com/navigation"
xmlns:search="http://rhea.redhat.com/search/1.0" xmlns:search="http://rhea.redhat.com/search/1.0"
exclude-result-prefixes="xsl bebop cms foundry nav search" exclude-result-prefixes="xsl bebop cms foundry nav search"
version="1.0"> version="2.0">
<!-- Show the search queries for the admin pages --> <!-- Show the search queries for the admin pages -->
<xsl:template match="search:query"> <xsl:template match="search:query">

View File

@ -52,11 +52,11 @@
<xsl:call-template name="foundry:process-datatree-attributes"/> <xsl:call-template name="foundry:process-datatree-attributes"/>
<xsl:apply-templates select="$data-tree//bebop:currentPane/bebop:form//bebop:layoutPanel/bebop:body <xsl:apply-templates select="$data-tree//bebop:currentPane/bebop:form//bebop:layoutPanel/bebop:body
| $data-tree//bebop:currentPane/bebop:form//bebop:layoutPanel/bebop:right"/> | $data-tree//bebop:currentPane/bebop:form//bebop:layoutPanel/bebop:right"/>
<xsl:message> <!--<xsl:message>
<xsl:value-of select="concat('Applying template for bebop:pageState to ', <xsl:value-of select="concat('Applying template for bebop:pageState to ',
count($data-tree//bebop:currentPane/bebop:form//bebop:pageState), count($data-tree//bebop:currentPane/bebop:form//bebop:pageState),
' objects...')"/> ' objects...')"/>
</xsl:message> </xsl:message>-->
<xsl:apply-templates select="$data-tree//bebop:currentPane/bebop:form//bebop:pageState"/> <xsl:apply-templates select="$data-tree//bebop:currentPane/bebop:form//bebop:pageState"/>
</form> </form>
</xsl:when> </xsl:when>
@ -103,11 +103,11 @@
<!--<xsl:attribute name="method" select="'post'"/>--> <!--<xsl:attribute name="method" select="'post'"/>-->
<xsl:call-template name="foundry:process-datatree-attributes"/> <xsl:call-template name="foundry:process-datatree-attributes"/>
<xsl:apply-templates select="$data-tree//bebop:currentPane/bebop:form//bebop:layoutPanel/bebop:left"/> <xsl:apply-templates select="$data-tree//bebop:currentPane/bebop:form//bebop:layoutPanel/bebop:left"/>
<xsl:message> <!--<xsl:message>
<xsl:value-of select="concat('Applying template for bebop:pageState to ', <xsl:value-of select="concat('Applying template for bebop:pageState to ',
count($data-tree//bebop:currentPane/bebop:form//bebop:pageState), count($data-tree//bebop:currentPane/bebop:form//bebop:pageState),
' objects...')"/> ' objects...')"/>
</xsl:message> </xsl:message>-->
<xsl:apply-templates select="$data-tree//bebop:currentPane/bebop:form//bebop:pageState"/> <xsl:apply-templates select="$data-tree//bebop:currentPane/bebop:form//bebop:pageState"/>
</form> </form>
</xsl:when> </xsl:when>