Changeset 5205


Ignore:
Timestamp:
05/16/14 14:50:32 (10 years ago)
Author:
Twan Goosen
Message:

Made <collectionsFacet> configuration option optional. If not set, the collection facet is not shown separately.
Fixes #558

Location:
vlo/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • vlo/trunk/vlo-commons/src/main/java/eu/clarin/cmdi/vlo/config/VloConfig.java

    r4935 r5205  
    740740    public List<String> getAllFacetFields() {
    741741        final ArrayList<String> allFacets = new ArrayList<String>(facetField);
    742         allFacets.add(getCollectionFacet());
     742        final String collection = getCollectionFacet();
     743        if (collection != null) {
     744            allFacets.add(collection);
     745        }
    743746        return allFacets;
    744747    }
  • vlo/trunk/vlo-commons/src/main/resources/VloConfig.xml

    r5108 r5205  
    5959    <nationalProjectMapping>/nationalProjectsMapping.xml</nationalProjectMapping>
    6060   
    61     <!-- Facet field used to populate collection selector on search page -->
     61    <!--
     62        Facet field used to populate collection selector on search page
     63        If removed, the collection facet will not be shown (can be used to
     64        move the collection facet in with the other facets).
     65    -->
    6266    <collectionFacet>collection</collectionFacet>
    6367   
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/FacetedSearchPage.html

    r4975 r5205  
    4242            </div>
    4343
    44             <div class="topbar" id="collections">
    45                 <div class="rtop"><div class="r1"></div><div class="r2"></div><div class="r3"></div><div class="r4"></div></div>
    46                 <div wicket:id="collectionsFacet">[COLLECTIONS]</div>
    47                 <!--                <p>
    48                                     Searching in all collections (604056 records).
    49                                 </p>-->
    50                 <div class="rbottom"><div class="r4"></div><div class="r3"></div><div class="r2"></div><div class="r1"></div></div>
     44            <div wicket:id="collections">
     45                <wicket:enclosure>
     46                    <div class="topbar" id="collections">
     47                        <div class="rtop"><div class="r1"></div><div class="r2"></div><div class="r3"></div><div class="r4"></div></div>
     48                        <div wicket:id="collectionsFacet">[COLLECTIONS]</div>
     49                        <!--                <p>
     50                                            Searching in all collections (604056 records).
     51                                        </p>-->
     52                        <div class="rbottom"><div class="r4"></div><div class="r3"></div><div class="r2"></div><div class="r1"></div></div>
     53                    </div>
     54                </wicket:enclosure>
    5155            </div>
    5256
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/FacetedSearchPage.java

    r5140 r5205  
    1717import java.util.List;
    1818import org.apache.solr.client.solrj.response.FacetField;
     19import org.apache.wicket.Component;
    1920import org.apache.wicket.ajax.AjaxRequestTarget;
    2021import org.apache.wicket.markup.html.WebMarkupContainer;
     
    3839    @SpringBean
    3940    private VloConfig vloConfig;
    40     @SpringBean(name="queryParametersConverter")
     41    @SpringBean(name = "queryParametersConverter")
    4142    private PageParametersConverter<QueryFacetsSelection> paramsConverter;
    4243
    4344    private SearchResultsPanel searchResultsPanel;
    44     private Panel facetsPanel;
    45     private Panel collectionsPanel;
    46     private WebMarkupContainer navigation;
     45    private Component facetsPanel;
     46    private Component collectionsPanel;
     47    private Component navigation;
    4748
    4849    public FacetedSearchPage(IModel<QueryFacetsSelection> queryModel) {
     
    6667        add(createSearchForm("search"));
    6768
    68         collectionsPanel = createCollectionsPanel("collectionsFacet");
     69        collectionsPanel = createCollectionsPanel("collections");
    6970        add(collectionsPanel);
    7071
     
    8283        final WebMarkupContainer container = new WebMarkupContainer(id);
    8384        container.setOutputMarkupId(true);
    84         container.add(new BreadCrumbPanel("breadcrumbs", getModel()){
     85        container.add(new BreadCrumbPanel("breadcrumbs", getModel()) {
    8586
    8687            @Override
     
    8990                updateSelection(target);
    9091            }
    91            
     92
    9293        });
    9394        container.add(new TopLinksPanel("permalink", getModel()) {
     
    129130    }
    130131
    131     private Panel createCollectionsPanel(final String id) {
    132         final FacetPanel panel = new SingleFacetPanel(id, getModel(), vloConfig.getCollectionFacet(), facetFieldsService, 3) {
     132    private Component createCollectionsPanel(final String id) {
     133        // collection facet is optional...
     134        final WebMarkupContainer enclosure = new WebMarkupContainer(id);
     135        enclosure.setOutputMarkupId(true);
     136        if (vloConfig.getCollectionFacet() != null) {
     137            final FacetPanel panel = new SingleFacetPanel("collectionsFacet", getModel(), vloConfig.getCollectionFacet(), facetFieldsService, 3) {
    133138
    134             @Override
    135             protected void selectionChanged(AjaxRequestTarget target) {
    136                 updateSelection(target);
    137             }
     139                @Override
     140                protected void selectionChanged(AjaxRequestTarget target) {
     141                    updateSelection(target);
     142                }
    138143
    139         };
    140         panel.setOutputMarkupId(true);
    141         return panel;
     144            };
     145            enclosure.add(panel);
     146        } else {
     147            // no collection facet, do not add the panel
     148            final WebMarkupContainer placeholder = new WebMarkupContainer("collectionsFacet");
     149            placeholder.setVisible(false);
     150            enclosure.add(placeholder);
     151        }
     152        return enclosure;
    142153    }
    143154
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/SimpleSearchPage.html

    r5016 r5205  
    4242            </div>
    4343
    44             <div class="topbar" id="collections">
    45                 <div class="rtop"><div class="r1"></div><div class="r2"></div><div class="r3"></div><div class="r4"></div></div>
    46                 <div wicket:id="collectionsFacet">[COLLECTIONS]</div>
    47                 <div class="rbottom"><div class="r4"></div><div class="r3"></div><div class="r2"></div><div class="r1"></div></div>
    48             </div>
     44            <wicket:enclosure>
     45                <div class="topbar" id="collections">
     46                    <div class="rtop"><div class="r1"></div><div class="r2"></div><div class="r3"></div><div class="r4"></div></div>
     47                    <div wicket:id="collectionsFacet">[COLLECTIONS]</div>
     48                    <div class="rbottom"><div class="r4"></div><div class="r3"></div><div class="r2"></div><div class="r1"></div></div>
     49                </div> 
     50            </wicket:enclosure>
    4951
    5052            <div id="simplesearch" class="content">
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/SimpleSearchPage.java

    r5160 r5205  
    2525import eu.clarin.cmdi.vlo.wicket.panels.TopLinksPanel;
    2626import eu.clarin.cmdi.vlo.wicket.panels.search.SimpleSearchBrowsePanel;
     27import org.apache.wicket.Component;
     28import org.apache.wicket.MarkupContainer;
    2729import org.apache.wicket.RestartResponseException;
    2830import org.apache.wicket.ajax.AjaxRequestTarget;
     
    4648    private FacetFieldsService facetFieldsService;
    4749
    48     private final SingleFacetPanel collectionsPanel;
    49     private final WebMarkupContainer navigation;
    50     private final WebMarkupContainer browse;
     50    private final Component collectionsPanel;
     51    private final MarkupContainer navigation;
     52    private final MarkupContainer browse;
    5153
    5254    public SimpleSearchPage(PageParameters parameters) {
     
    7072
    7173        // add a persistenet panel for selection of a value for the collection facet
    72         collectionsPanel = new SingleFacetPanel("collectionsFacet", model, vloConfig.getCollectionFacet(), facetFieldsService, 3) {
    73 
    74             @Override
    75             protected void selectionChanged(AjaxRequestTarget target) {
    76                 if (target != null) {
    77                     target.add(navigation);
    78                     target.add(collectionsPanel);
    79                     target.add(browse);
    80                 }
    81             }
    82         };
     74        collectionsPanel = createCollectionsPanel("collectionsFacet");
    8375        collectionsPanel.setOutputMarkupId(true);
    8476        add(collectionsPanel);
     
    9890    }
    9991
     92    private Component createCollectionsPanel(String id) {
     93        // collection facet is optional...
     94        if (vloConfig.getCollectionFacet() != null) {
     95            return new SingleFacetPanel(id, getModel(), vloConfig.getCollectionFacet(), facetFieldsService, 3) {
     96
     97                @Override
     98                protected void selectionChanged(AjaxRequestTarget target) {
     99                    if (target != null) {
     100                        target.add(navigation);
     101                        target.add(collectionsPanel);
     102                        target.add(browse);
     103                    }
     104                }
     105            };
     106        } else {
     107            // no collection facet, do not add the panel
     108            final WebMarkupContainer placeholder = new WebMarkupContainer(id);
     109            placeholder.setVisible(false);
     110            return placeholder;
     111        }
     112    }
     113
    100114    @Override
    101115    public void renderHead(IHeaderResponse response) {
Note: See TracChangeset for help on using the changeset viewer.