view src/main/webapp/search-include-fragment.xhtml @ 14:be7787c36e58 default tip

new: nofity LGSercies for deleted files
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Mon, 02 Nov 2015 16:41:23 +0100
parents a50cf11e5178
children
line wrap: on
line source

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
     xmlns:h="http://java.sun.com/jsf/html"
     xmlns:f="http://java.sun.com/jsf/core"
     xmlns:ui="http://java.sun.com/jsf/facelets"
     xmlns:c="http://java.sun.com/jsp/jstl/core"
     xmlns:p="http://primefaces.org/ui"
     xmlns:o="http://omnifaces.org/ui"
     xmlns:jsf="http://xmlns.jcp.org/jsf">

 

    <!-- Search Form -->
    <p:panel styleClass="panelLayoutBlock panelSerchForm" rendered="#{showSearch == true}">
        <p:panelGrid styleClass="panelgridLayoutTable" columns="2" columnClasses="text-left,text-right col-manage-action">
            <p:column>
                <h:form>
                    <!-- this remote command is called once the page finishes its initial load,
                    in order to display the images for the card -->
                    <ui:remove></ui:remove>
                    <p:remoteCommand  name="postLoad"
                                      process="@this"
                                      update=":#{p:component('resultsTable')}"
                                      actionListener="#{SearchIncludeFragment.setDisplayCardValues()}" />  
                    <p:focus/>
                    <p:inputText id="searchBasic" styleClass="search-input" size="40" value="#{SearchIncludeFragment.query}" onkeypress="if (event.keyCode == 13) { submitsearch(); return false; }"/>
                    <p:watermark for="searchBasic" value="#{dataverseRedirectPage == 'dataverseuser.xhtml' ? bundle['account.search.input.watermark'] : bundle['dataverse.search.input.watermark']}"/>
                    <p:commandLink id="searchbutton" styleClass="btn btn-default" action="#{SearchIncludeFragment.searchRedirect(dataverseRedirectPage)}">
                        <span class="glyphicon glyphicon-search"/> #{bundle['dataverse.search.btn.find']}
                    </p:commandLink>
                    <p:remoteCommand name="submitsearch" action="#{SearchIncludeFragment.searchRedirect(dataverseRedirectPage)}"/>                  
                    <h:outputLink id="advsearchlink" value="/search/advanced.xhtml" target="#{showFacets == true ? '_self' : '_blank'}" rendered="#{showAdvancedSearchLink}">
                        <f:param name="dataverseIdentifier" value="#{SearchIncludeFragment.dataverse.alias}"/>
                        <h:outputText value="#{bundle['dataverse.search.advancedSearch']}"/>
                        <!--<f:param name="q" value="#{SearchIncludeFragment.query}" disable="#{empty SearchIncludeFragment.query}"/>-->
                    </h:outputLink>
                </h:form>
            </p:column>
            <p:column>
                <div class="button-block pull-right">
                    <!-- ADD DATA -->
                    <o:importFunctions type="edu.harvard.iq.dataverse.authorization.groups.impl.builtin.AuthenticatedUsers" />
                    <ui:fragment rendered="#{!dataverseSession.user.authenticated and (permissionServiceBean.userOn(AuthenticatedUsers:get(),SearchIncludeFragment.dataverse).canIssueCommand('CreateDataverseCommand')
                                             or permissionServiceBean.userOn(AuthenticatedUsers:get(),SearchIncludeFragment.dataverse).canIssueCommand('CreateDatasetCommand'))}">
                        <button type="button" class="btn btn-default" onclick="addData_popup.show()">
                            <span class="glyphicon glyphicon-plus"/> #{bundle['dataverse.results.btn.addData']}
                        </button>
                    </ui:fragment>
                    <ui:fragment rendered="#{dataverseSession.user.authenticated and (permissionsWrapper.canIssueCreateDataverseCommand(SearchIncludeFragment.dataverse)
                                             or permissionsWrapper.canIssueCreateDatasetCommand(SearchIncludeFragment.dataverse))}">
                        <h:form id="shareForm" class="btn-form">
                            <div class="btn-group">
                                <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                                    <span class="glyphicon glyphicon-plus"/> #{bundle['dataverse.results.btn.addData']} <span class="caret"></span>
                                </button>
                                <ul class="dropdown-menu pull-right text-left" role="menu">
                                    <ui:fragment rendered="#{permissionsWrapper.canIssueCreateDataverseCommand(SearchIncludeFragment.dataverse) }">
                                        <li><a href="/dataverse.xhtml?ownerId=#{SearchIncludeFragment.dataverse.id}">#{bundle['dataverse.results.btn.addData.newDataverse']}</a></li>
                                    </ui:fragment>
                                    <ui:fragment rendered="#{permissionsWrapper.canIssueCreateDatasetCommand(SearchIncludeFragment.dataverse) }">
                                        <li><a href="/dataset.xhtml?ownerId=#{SearchIncludeFragment.dataverse.id}">#{bundle['dataverse.results.btn.addData.newDataset']}</a></li>
                                    </ui:fragment>
                                </ul>
                            </div>
                        </h:form>
                    </ui:fragment>
                    <!-- END: ADD DATA -->
                </div>
            </p:column>
        </p:panelGrid>
    </p:panel>
    <!-- Search Results -->
    <div class="panel panel-default">
        <div class="panel-body clearfix">
            <ui:fragment rendered="#{!SearchIncludeFragment.solrIsDown}">
                <ui:fragment rendered="#{showFacets}">
                    <div id="dv-sidecolumn">
                        <!--TYPE FACET (DATAVERSES, DATASETS, FILES)-->
                        <h:form id="facetType">
                            <!--DATAVERSE TOGGLE-->
                            <div class="clearfix">
                                <h:outputLink styleClass="facetTypeChBox facetLink #{SearchIncludeFragment.selectedTypesList.contains('dataverses') ? 'facetSelected': ''}" disabled="#{SearchIncludeFragment.getNewSelectedTypes('dataverses') == null}">
                                    <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                    <f:param name="types" value="#{SearchIncludeFragment.getNewSelectedTypes('dataverses')}"/>
                                    <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                        <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                    </c:forEach>
                                    <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                    <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                    <f:param name="page" value="1"/>
                                    <p:selectBooleanCheckbox value="#{SearchIncludeFragment.selectedTypesList.contains('dataverses') ? true : false}" disabled="#{SearchIncludeFragment.getNewSelectedTypes('dataverses') == null ? true : false}"/>
                                </h:outputLink>
                                <!--DATAVERSES ONLY-->
                                <h:outputLink disabled="#{false}" styleClass="facetTypeLink chkbox-label-margin #{SearchIncludeFragment.selectedTypesList.contains('dataverses') ? 'facetSelected': ''}">
                                    <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                    <f:param name="types" value="dataverses"/>
                                    <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                        <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                    </c:forEach>
                                    <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                    <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                    <f:param name="page" value="1"/>

                                    <i class="icon-dataverse text-icon-inline"></i>
                                    
                                    <h:outputFormat styleClass="facetTypeDataverse" value="#{bundle['dataverse.results.types.dataverses']} &#40;{0}&#41;">
                                        <f:param value="#{SearchIncludeFragment.facetCountDataverses}"/>
                                    </h:outputFormat>
                                </h:outputLink>
                            </div>
                            <!--DATASETS TOGGLE-->
                            <div class="clearfix">
                                <h:outputLink styleClass="facetTypeChBox facetLink #{SearchIncludeFragment.selectedTypesList.contains('datasets') ? 'facetSelected': ''}" disabled="#{SearchIncludeFragment.getNewSelectedTypes('datasets') == null}">
                                    <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                    <f:param name="types" value="#{SearchIncludeFragment.getNewSelectedTypes('datasets')}"/>
                                    <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                        <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                    </c:forEach>
                                    <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                    <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                    <f:param name="page" value="1"/>
                                    <p:selectBooleanCheckbox value="#{SearchIncludeFragment.selectedTypesList.contains('datasets') ? true : false}" disabled="#{SearchIncludeFragment.getNewSelectedTypes('datasets') == null ? true : false}"/>
                                </h:outputLink>
                                <!--DATASETS ONLY-->
                                <h:outputLink disabled="#{false}" styleClass="facetTypeLink chkbox-label-margin #{SearchIncludeFragment.selectedTypesList.contains('datasets') ? 'facetSelected': ''}">
                                    <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                    <f:param name="types" value="datasets"/>
                                    <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                        <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                    </c:forEach>
                                    <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                    <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                    <f:param name="page" value="1"/>

                                    <i class="icon-dataset text-icon-inline"></i>

                                    <h:outputFormat styleClass="facetTypeDataset" value="#{bundle['dataverse.results.types.datasets']} &#40;{0}&#41;">
                                        <f:param value="#{SearchIncludeFragment.facetCountDatasets}"/>
                                    </h:outputFormat>
                                </h:outputLink>
                            </div>
                            <!--FILES TOGGLE-->
                            <div class="clearfix">
                                <h:outputLink styleClass="facetTypeChBox facetLink #{SearchIncludeFragment.selectedTypesList.contains('files') ? 'facetSelected': ''}" disabled="#{SearchIncludeFragment.getNewSelectedTypes('files') == null}">
                                    <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                    <f:param name="types" value="#{SearchIncludeFragment.getNewSelectedTypes('files')}"/>
                                    <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                        <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                    </c:forEach>
                                    <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                    <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                    <f:param name="page" value="1"/>
                                    <p:selectBooleanCheckbox value="#{SearchIncludeFragment.selectedTypesList.contains('files') ? true : false}" disabled="#{SearchIncludeFragment.getNewSelectedTypes('files') == null ? true : false}"/>
                                </h:outputLink>
                                <!--FILES ONLY-->
                                <h:outputLink disabled="#{false}" styleClass="facetTypeLink chkbox-label-margin #{SearchIncludeFragment.selectedTypesList.contains('files') ? 'facetSelected': ''}">
                                    <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                    <f:param name="types" value="files"/>
                                    <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                        <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                    </c:forEach>
                                    <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                    <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                    <f:param name="page" value="1"/>

                                    <i class="icon-file text-icon-inline"></i>

                                    <h:outputFormat styleClass="facetTypeFile" value="#{bundle['dataverse.results.types.files']} &#40;{0}&#41;">
                                        <f:param value="#{SearchIncludeFragment.facetCountFiles}"/>
                                    </h:outputFormat>
                                </h:outputLink>
                            </div>
                        </h:form>

                        <!--NON-TYPE FACETS-->
                        <h:form id="facetCategoryForm" rendered="#{SearchIncludeFragment.searchResultsCount > 0}">
                            <p:dataList id="facetCategoryList" value="#{SearchIncludeFragment.facetCategoryList}" var="facetCategory">
                                <h:outputText value="#{facetCategory.friendlyName}" styleClass="facetCategoryName"/>
                                <p:dataList value="#{facetCategory.facetLabel}" var="facetLabel" rows="#{SearchIncludeFragment.getNumberOfFacets(facetCategory.name,5)}">
                                    <h:outputLink rendered="#{!SearchIncludeFragment.filterQueries.contains(facetLabel.filterQuery)}" styleClass="facetLink">
                                        <h:outputFormat value="#{facetLabel.name} &#40;{0}&#41;">
                                            <f:param value="#{facetLabel.count}"/>
                                        </h:outputFormat>
                                        <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                        <f:param name="fq#{SearchIncludeFragment.filterQueries.size()}" value="#{facetLabel.filterQuery}"/>
                                        <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                            <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                        </c:forEach>
                                        <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                        <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                        <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                    </h:outputLink>

                                    <h:outputLink rendered="#{SearchIncludeFragment.filterQueries.contains(facetLabel.filterQuery)}" styleClass="facetLink facetSelected">
                                        <h:outputFormat value="#{facetLabel.name} &#40;{0}&#41;">
                                            <f:param value="#{facetLabel.count}"/>
                                        </h:outputFormat>
                                        <span class="glyphicon glyphicon-remove"></span>
                                        <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                        <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                            <f:param name="fq#{status.index}" value='#{clickedFilterQuery}' disable="#{clickedFilterQuery == facetLabel.filterQuery}"/>
                                        </c:forEach>
                                        <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                        <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                        <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                    </h:outputLink>
                                </p:dataList>
                                <ui:fragment rendered="#{facetCategory.name != SearchIncludeFragment.searchFieldType and facetCategory.name != SearchIncludeFragment.searchFieldSubtree}">
                                    <p:panelGrid styleClass="facetsMoreLess" columns="2" rendered="#{(SearchIncludeFragment.getNumberOfFacets(facetCategory.name,5) lt facetCategory.facetLabel.size()) or (SearchIncludeFragment.getNumberOfFacets(facetCategory.name,5) gt 5)}">
                                        <ui:fragment>
                                            <p:commandLink actionListener="#{SearchIncludeFragment.incrementFacets(facetCategory.name,-5)}" update="facetCategoryList" rendered="#{SearchIncludeFragment.getNumberOfFacets(facetCategory.name,5) gt 5}">#{bundle.less}</p:commandLink>
                                        </ui:fragment>
                                        <ui:fragment>
                                            <p:commandLink actionListener="#{SearchIncludeFragment.incrementFacets(facetCategory.name,5)}" update="facetCategoryList" rendered="#{SearchIncludeFragment.getNumberOfFacets(facetCategory.name,5) lt facetCategory.facetLabel.size()}">#{bundle.more}</p:commandLink>
                                        </ui:fragment>  
                                    </p:panelGrid>
                                </ui:fragment>
                            </p:dataList>
                        </h:form>
                    </div>
                </ui:fragment>
                <ui:param name="dataversePage" value="#{dataverseLinksStayOnPage == true ? '' : '/dataverse.xhtml' }"/>
                <div id="dv-maincolumn" class="#{showFacets == true ? 'showfacets' : 'nofacets'}">
                    <!--DEBUG BEGIN-->
                    <ui:fragment rendered="#{SearchIncludeFragment.debug}">
                        <div style="background-color: lightgray">
                            <tt>
                                <h:outputText value="mode:#{SearchIncludeFragment.mode} "/>
                                <h:outputText value="sort=#{SearchIncludeFragment.sortField}:#{SearchIncludeFragment.sortOrder}"/><br/>
                                <h:outputText value="#{SearchIncludeFragment.filterQueriesDebug}"/><br/>
                                <h:outputText value="solrIsDown=#{SearchIncludeFragment.solrIsDown}"/><br/>
                                <h:outputText value="errorFromSolr: #{SearchIncludeFragment.errorFromSolr}" rendered="#{SearchIncludeFragment.errorFromSolr != null}"/>
                            </tt>
                        </div>
                    </ui:fragment>
                    <!--DEBUG END-->

                    <ui:fragment rendered="#{SearchIncludeFragment.searchResultsList.size() == 0}">
                        <div id="emptyResults" class="emptyResults bg-warning">
                            <ui:fragment rendered="#{SearchIncludeFragment.mode == SearchIncludeFragment.searchModeString}">
                                <!--THIS IS EMPTY / SEARCH-->
                                <ui:fragment rendered="#{SearchIncludeFragment.facetCountDataverses eq 0 and SearchIncludeFragment.facetCountDatasets eq 0 and SearchIncludeFragment.facetCountFiles eq 0}">
                                    <!--SEARCH ZERO COUNTS-->
                                    <p><h:outputText value="#{bundle['dataverse.results.empty.zero']}" escape="false"/></p>
                                </ui:fragment>
                                <ui:fragment rendered="#{SearchIncludeFragment.facetCountDataverses gt 0 or SearchIncludeFragment.facetCountDatasets gt 0 or SearchIncludeFragment.facetCountFiles gt 0}">
                                    <!--SEARCH HIDDEN-->
                                    <p><h:outputText value="#{bundle['dataverse.results.empty.hidden']}" escape="false"/></p>
                                </ui:fragment>
                                <ui:fragment rendered="#{SearchIncludeFragment.errorFromSolr != null}">
                                    <p>
                                        <a data-toggle="collapse" data-parent="#emptyResults" href="#technicalDetails" aria-expanded="true" aria-controls="technicalDetails">[+] #{bundle['dataverse.results.empty.link.technicalDetails']}</a>
                                    </p>
                                    <div id="technicalDetails" class="collapse">
                                        <pre><h:outputText value="#{SearchIncludeFragment.errorFromSolr}"/></pre>
                                    </div>
                                </ui:fragment>
                            </ui:fragment>
                            <ui:fragment rendered="#{!dataverseSession.user.authenticated and SearchIncludeFragment.mode == SearchIncludeFragment.browseModeString}">
                                <!--THIS IS EMPTY / BROWSE / GUEST-->
                                <ui:fragment rendered="#{SearchIncludeFragment.facetCountDataverses eq 0 and SearchIncludeFragment.facetCountDatasets eq 0 and SearchIncludeFragment.facetCountFiles eq 0}">
                                    <!--BROWSE GUEST ZERO COUNTS-->
                                    <p>
                                        <h:outputFormat value="#{bundle['dataverse.results.empty.browse.guest.zero']}" escape="false">
                                            <f:param value="#{dataverseHeaderFragment.loginRedirectPage}"/>
                                        </h:outputFormat>
                                    </p>
                                </ui:fragment>
                                <ui:fragment rendered="#{SearchIncludeFragment.facetCountDataverses gt 0 or SearchIncludeFragment.facetCountDatasets gt 0 or SearchIncludeFragment.facetCountFiles gt 0}">
                                    <!--BROWSE GUEST HIDDEN-->
                                    <p>
                                        <h:outputFormat value="#{bundle['dataverse.results.empty.browse.guest.hidden']}" escape="false">
                                            <f:param value="#{dataverseHeaderFragment.loginRedirectPage}"/>
                                        </h:outputFormat>
                                    </p>
                                </ui:fragment>
                            </ui:fragment>
                            <ui:fragment rendered="#{dataverseSession.user.authenticated and !(permissionsWrapper.canIssueCreateDataverseCommand(SearchIncludeFragment.dataverse) or permissionsWrapper.canIssueCreateDatasetCommand(SearchIncludeFragment.dataverse)) and SearchIncludeFragment.mode == SearchIncludeFragment.browseModeString}">
                                <!--THIS IS EMPTY / BROWSE / LOGGED IN / NO PERMS-->
                                <ui:fragment rendered="#{SearchIncludeFragment.facetCountDataverses eq 0 and SearchIncludeFragment.facetCountDatasets eq 0 and SearchIncludeFragment.facetCountFiles eq 0}">
                                    <!--BROWSE NO_ADD_BUTTON ZERO COUNTS-->
                                    <p>#{bundle['dataverse.results.empty.browse.loggedin.noperms.zero']}</p>
                                </ui:fragment>
                                <ui:fragment rendered="#{SearchIncludeFragment.facetCountDataverses gt 0 or SearchIncludeFragment.facetCountDatasets gt 0 or SearchIncludeFragment.facetCountFiles gt 0}">
                                    <!--BROWSE NO_ADD_BUTTON HIDDEN-->
                                    <p>#{bundle['dataverse.results.empty.browse.loggedin.noperms.hidden']}</p>
                                </ui:fragment>
                            </ui:fragment>
                            <ui:fragment rendered="#{dataverseSession.user.authenticated and (permissionsWrapper.canIssueCreateDataverseCommand(SearchIncludeFragment.dataverse) or permissionsWrapper.canIssueCreateDatasetCommand(SearchIncludeFragment.dataverse)) and SearchIncludeFragment.mode == SearchIncludeFragment.browseModeString}">
                                <!--THIS IS EMPTY / BROWSE / LOGGED IN / PERMS-->
                                <ui:fragment rendered="#{SearchIncludeFragment.facetCountDataverses eq 0 and SearchIncludeFragment.facetCountDatasets eq 0 and SearchIncludeFragment.facetCountFiles eq 0}">
                                    <!--BROWSE CAN_ADD ZERO COUNTS-->
                                    <p>
                                        <h:outputFormat value="#{dataverseRedirectPage == 'dataverseuser.xhtml' ? bundle['account.results.empty.browse.loggedin.perms.zero'] : bundle['dataverse.results.empty.browse.loggedin.perms.zero']}" escape="false">
                                            <f:param value="#{systemConfig.guidesBaseUrl}"/>
                                            <f:param value="#{systemConfig.version}"/>
                                        </h:outputFormat>
                                    </p>
                                </ui:fragment>
                                <ui:fragment rendered="#{SearchIncludeFragment.facetCountDataverses gt 0 or SearchIncludeFragment.facetCountDatasets gt 0 or SearchIncludeFragment.facetCountFiles gt 0}">
                                    <!--BROWSE CAN_ADD HIDDEN-->
                                    <p>#{bundle['dataverse.results.empty.browse.loggedin.perms.hidden']}</p>
                                </ui:fragment>
                            </ui:fragment>
                        </div>
                    </ui:fragment>
                    <ui:fragment>
                        <ui:fragment rendered="#{!empty SearchIncludeFragment.filterQueries}">
                            <div id="resultsFacetsTopBlock">
                                <ui:repeat value="#{SearchIncludeFragment.filterQueries}" var="filterQuery">
                                    <ui:param name="friendlyNames" value="#{SearchIncludeFragment.getFriendlyNamesFromFilterQuery(filterQuery)}"/>
                                    <h:outputLink styleClass="facetLink facetSelected">
                                        <h:outputText value="#{friendlyNames.get(0)}: #{friendlyNames.get(1)}"/> <span class="glyphicon glyphicon-remove"></span>
                                        <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                        <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                            <f:param name="fq#{status.index}" value='#{clickedFilterQuery}' disable="#{clickedFilterQuery == filterQuery}"/>
                                        </c:forEach>
                                        <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                        <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                        <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                    </h:outputLink>
                                </ui:repeat>
                            </div>
                        </ui:fragment>

                        <ui:fragment rendered="#{SearchIncludeFragment.searchResultsCount > 0}">
                            <div id="resultsCountPaginatorBlock" class="clearfix">
                                <!-- RESULTS COUNT -->
                                <div class="results-count pull-left">
                                    <h:outputFormat value="#{bundle['dataverse.results.count.toofresults']}">
                                        <f:param value="#{SearchIncludeFragment.paginationGuiStart}"/>
                                        <f:param value="#{SearchIncludeFragment.paginationGuiEnd}"/>
                                        <f:param value="#{SearchIncludeFragment.searchResultsCount}"/>
                                    </h:outputFormat>
                                </div>
                                <!-- SORT + PAGINATOR -->
                                <div class="results-sort-pagination pull-right">
                                    <!-- PAGINATOR -->
                                    <ui:fragment rendered="#{SearchIncludeFragment.totalPages != 1}">
                                        <o:importFunctions type="java.lang.Math" />
                                        <div class="pagination pull-right">
                                            <ul class="pagination">
                                                <!--should take you to page 1-->
                                                <li class="#{SearchIncludeFragment.page == '1' ? 'disabled' : ''}">
                                                    <h:outputLink>
                                                        <h:outputText value="&#171;"/>
                                                        <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                        <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                            <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                        </c:forEach>
                                                        <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                        <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                                        <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                                        <f:param name="page" value="1"/>
                                                    </h:outputLink>
                                                </li>
                                                <li class="#{SearchIncludeFragment.page == '1' ? 'disabled' : ''}">
                                                    <h:outputLink>
                                                        <h:outputText value="&lt; #{bundle.previous}"/>
                                                        <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                        <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                            <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                        </c:forEach>
                                                        <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                        <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                                        <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                                        <f:param name="page" value="#{Math:max(1,SearchIncludeFragment.page-1).intValue()}"/>
                                                    </h:outputLink>
                                                </li>
                                                <c:forEach begin="#{Math:max(1,SearchIncludeFragment.page-Math:max(2,SearchIncludeFragment.page-SearchIncludeFragment.totalPages+4))}"
                                                           end="#{Math:min(SearchIncludeFragment.totalPages,SearchIncludeFragment.page+Math:max(2,5-SearchIncludeFragment.page))}"
                                                           varStatus="pageStatus">
                                                    <li class="#{SearchIncludeFragment.page == pageStatus.index ? 'active' : ''}">
                                                        <h:outputLink>
                                                            <h:outputText value="#{pageStatus.index}">
                                                                <f:convertNumber pattern="###,###" />
                                                            </h:outputText>
                                                            <span class="#{SearchIncludeFragment.page == pageStatus.index ? 'sr-only' : ''}">
                                                                <h:outputText value="#{SearchIncludeFragment.page == pageStatus.index ? bundle['dataverse.results.paginator.current'] : ''}"/>
                                                            </span>
                                                            <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                            <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                                <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                            </c:forEach>
                                                            <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                            <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                                            <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                                            <f:param name="page" value="#{pageStatus.index}"/>
                                                        </h:outputLink>
                                                    </li>
                                                </c:forEach>
                                                <li class="#{SearchIncludeFragment.page == SearchIncludeFragment.totalPages ? 'disabled' : ''}">
                                                    <h:outputLink>
                                                        <h:outputText value="#{bundle.next} &gt;"/>
                                                        <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                        <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                            <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                        </c:forEach>
                                                        <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                        <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                                        <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                                        <f:param name="page" value="#{Math:min(SearchIncludeFragment.page+1,SearchIncludeFragment.totalPages).intValue()}"/>
                                                    </h:outputLink>
                                                </li>
                                                <li class="#{SearchIncludeFragment.page == SearchIncludeFragment.totalPages ? 'disabled' : ''}">
                                                    <h:outputLink>
                                                        <h:outputText value="&#187;"/>
                                                        <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                        <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                            <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                        </c:forEach>
                                                        <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                                        <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                                        <f:param name="page" value="#{SearchIncludeFragment.totalPages}"/>
                                                        <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                    </h:outputLink>
                                                </li>
                                            </ul>
                                        </div>
                                    </ui:fragment>
                                    <!-- SORT BY -->
                                    <div class="btn-group pull-right">
                                        <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                                            <span class="glyphicon glyphicon-sort"/> #{bundle['dataverse.results.btn.sort']} <span class="caret"/>
                                        </button>
                                        <ul class="dropdown-menu pull-right text-left" role="menu">
                                            <li>
                                                <h:outputLink>
                                                    <h:outputText value="#{bundle['dataverse.results.btn.sort.option.nameAZ']}" styleClass="#{SearchIncludeFragment.sortedByNameAsc ? 'highlightBold' : ''}"/>
                                                    <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                    <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                        <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                    </c:forEach>
                                                    <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                    <f:param name="page" value="1"/>
                                                    <f:param name="sort" value="#{SearchIncludeFragment.searchFieldNameSort}"/>
                                                    <f:param name="order" value="#{SearchIncludeFragment.ASCENDING}"/>
                                                </h:outputLink>
                                            </li>
                                            <li>
                                                <h:outputLink>
                                                    <h:outputText value="#{bundle['dataverse.results.btn.sort.option.nameZA']}" styleClass="#{SearchIncludeFragment.sortedByNameDesc ? 'highlightBold' : ''}"/>
                                                    <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                    <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                        <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                    </c:forEach>
                                                    <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                    <f:param name="page" value="1"/>
                                                    <f:param name="sort" value="#{SearchIncludeFragment.searchFieldNameSort}"/>
                                                    <f:param name="order" value="#{SearchIncludeFragment.DESCENDING}"/>
                                                </h:outputLink>
                                            </li>
                                            <li>
                                                <h:outputLink>
                                                    <h:outputText value="#{bundle['dataverse.results.btn.sort.option.newest']}" styleClass="#{SearchIncludeFragment.sortedByReleaseDateDesc? 'highlightBold' : ''}"/>
                                                    <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                    <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                        <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                    </c:forEach>
                                                    <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                    <f:param name="page" value="1"/>
                                                    <f:param name="sort" value="#{SearchIncludeFragment.searchFieldReleaseOrCreateDate}"/>
                                                    <f:param name="order" value="#{SearchIncludeFragment.DESCENDING}"/>
                                                </h:outputLink>
                                            </li>
                                            <li>
                                                <h:outputLink>
                                                    <h:outputText value="#{bundle['dataverse.results.btn.sort.option.oldest']}" styleClass="#{SearchIncludeFragment.sortedByReleaseDateAsc? 'highlightBold' : ''}"/>
                                                    <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                    <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                        <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                    </c:forEach>
                                                    <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                    <f:param name="page" value="1"/>
                                                    <f:param name="sort" value="#{SearchIncludeFragment.searchFieldReleaseOrCreateDate}"/>
                                                    <f:param name="order" value="#{SearchIncludeFragment.ASCENDING}"/>
                                                </h:outputLink>
                                            </li>
                                            <ui:fragment rendered="#{SearchIncludeFragment.mode == SearchIncludeFragment.searchModeString}">
                                                <li>
                                                    <h:outputLink>
                                                        <h:outputText value="#{bundle['dataverse.results.btn.sort.option.relevance']}" styleClass="#{SearchIncludeFragment.sortedByRelevance ? 'highlightBold' : ''}"/>
                                                        <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                        <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                            <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                        </c:forEach>
                                                        <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                        <f:param name="page" value="1"/>
                                                        <f:param name="sort" value="#{SearchIncludeFragment.searchFieldRelevance}"/>
                                                        <f:param name="order" value="#{SearchIncludeFragment.DESCENDING}"/>
                                                    </h:outputLink>
                                                </li>
                                            </ui:fragment>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </ui:fragment>
                        <o:importFunctions type="org.omnifaces.el.functions.Strings" />
                        <ui:param name="descriptionAbbreviationThreshold" value="200"/>
                        <!--CARDS-->
                        <p:dataTable id="resultsTable" styleClass="#{SearchIncludeFragment.searchResultsCount > 0 ? '' : 'resultsNone'}" value="#{SearchIncludeFragment.searchResultsList}" var="result">
                            <p:column styleClass="#{result.type == 'dataverses' ? 'dataverseResult' : (result.type == 'datasets' ? 'datasetResult' : '')}">
                                <ui:fragment rendered="#{SearchIncludeFragment.debug == true}">
                                    <h:outputText value="score: #{result.score}" rendered="#{SearchIncludeFragment.mode == SearchIncludeFragment.searchModeString}"/>
                                </ui:fragment>
                                <!--DATAVERSE CARDS-->
                                <ui:fragment rendered="#{result.type == 'dataverses'}">
                                    <div class="card-title-icon-block">
                                        <span class="glyphicon glyphicon-link text-brand pull-right" title="#{bundle.linked}" jsf:rendered="#{!result.isInTree}"/>
                                        <span class="glyphicon glyphicon-new-window text-brand pull-right" title="#{bundle.harvested}" jsf:rendered="#{result.entity.harvested}"/>
                                        <span class="icon-dataverse text-brand pull-right" title="#{bundle.dataverse}"/>
                                        
                                        <h:outputLink value="#{dataversePage}?alias=#{result.dataverseAlias}" target="#{showFacets == true ? '_self' : '_blank'}">
                                            <h:outputText value="#{result.name} #{bundle.dataverse}" style="padding:4px 0;" rendered="#{result.nameHighlightSnippet == null}"/>
                                            <h:outputText value="#{result.nameHighlightSnippet} #{bundle.dataverse}" style="padding:4px 0;" rendered="#{result.nameHighlightSnippet != null}" escape="false"/>
                                            <h:outputText value=" (#{result.entityId})" style="padding:4px 0;" rendered="#{SearchIncludeFragment.debug == true}"/>
                                        </h:outputLink>                                      
                                        <h:outputText value="(#{result.dataverseAffiliation})" styleClass="text-muted" style="margin-left: .5em;" rendered="#{!empty result.dataverseAffiliation and result.dataverseAffiliationHighlightSnippet == null}"/>
                                        <h:outputText value="(#{result.dataverseAffiliationHighlightSnippet})" styleClass="text-muted" style="margin-left: .5em;" rendered="#{result.dataverseAffiliationHighlightSnippet != null}" escape="false"/>
                                        <h:outputText value="#{SearchIncludeFragment.DRAFT}" styleClass="label label-primary" rendered="#{result.draftState}"/>
                                        <h:outputText value="#{SearchIncludeFragment.UNPUBLISHED}" styleClass="label label-warning" rendered="#{result.unpublishedState}"/>
                                    </div>
                                    <div class="card-preview-icon-block text-center">
                                        <h:outputLink value="#{dataversePage}?alias=#{result.dataverseAlias}" target="#{showFacets == true ? '_self' : '_blank'}">
                                            <p:graphicImage value="/api/access/dvCardImage/#{result.entityId}" rendered="#{result.displayImage}"/>
                                            <span class="icon-dataverse text-brand" jsf:rendered="#{!result.displayImage}"/>
                                        </h:outputLink>
                                    </div>

                                    <h:outputText value="#{result.dateToDisplayOnCard}" styleClass="text-muted" style="margin-right:.5em;"/>

                                    <h:outputLink value="#{dataversePage}?alias=#{result.dataverseParentAlias}" target="#{showFacets == true ? '_self' : '_blank'}" rendered="#{result.parent.id != SearchIncludeFragment.dataverse.id}">
                                        <h:outputText value="#{result.parent.get('name')} #{bundle.dataverse}"/>
                                    </h:outputLink>

                                    <hr style="margin:.5em;border:0;"/>

                                    <h:outputText value="#{Strings:abbreviate(result.descriptionNoSnippet, descriptionAbbreviationThreshold)}" rendered="#{result.descriptionSnippets.size() eq 0}"/>

                                    <ui:fragment rendered="#{result.descriptionSnippets.size() gt 0}">
                                        <ui:repeat value="#{result.descriptionSnippets}" var="snippet" varStatus="varStatus">
                                            <h:outputText value="#{snippet}" escape="false"/>
                                            <h:outputText value="... " rendered="#{varStatus.last != true}"/>
                                        </ui:repeat>
                                    </ui:fragment>
                                    <ui:fragment rendered="#{false and result.matchedFields.size() > 0}">
                                        <h:outputText value="#{bundle['dataverse.results.cards.foundInMetadata']} "/>
                                        <ui:repeat value="#{result.matchedFields}" var="field" varStatus="varStatus">
                                            <h:outputText value="#{field}"/>
                                            <h:outputText value=", " rendered="#{varStatus.last != true}"/>
                                        </ui:repeat>
                                    </ui:fragment>
                                    <ui:fragment rendered="#{result.highlightsAsList.size() gt 0}">
                                        <ui:repeat value="#{result.highlightsAsList}" var="highlight">
                                            <ui:repeat value="#{highlight.snippets}" var="snippet">
                                                <div>
                                                    <h:outputText value="#{highlight.solrField.nameSearchable}: #{snippet}" escape="false"/>
                                                    <ui:param value="#{highlight.solrField.nameFacetable}:intentional" name="unfriendly"/>
                                                    <!--<h:outputText value="#{SearchIncludeFragment.getFriendlyNamesFromFilterQuery('name:intentional').get(0)}"/>-->
                                                    <!--<h:outputText value="#{SearchIncludeFragment.getFriendlyNamesFromFilterQuery(unfriendly).get(0)}: "/>-->
                                                </div>
                                            </ui:repeat>
                                        </ui:repeat>
                                    </ui:fragment>
                                </ui:fragment>
                                <!--DATASET CARDS-->
                                <ui:fragment rendered="#{result.type == 'datasets'}">
                                    <div class="card-title-icon-block">
                                        <span class="glyphicon glyphicon-link text-info pull-right" title="#{bundle.linked}" jsf:rendered="#{!result.isInTree}"/>
                                        <span class="glyphicon glyphicon-new-window text-info pull-right" title="#{bundle.harvested}" jsf:rendered="#{result.entity.harvested}"/>
                                        <span class="icon-dataset text-info pull-right" title="#{bundle.dataset}"/>
                                        
                                        <a href="#{result.datasetUrl}" target="#{showFacets == true ? '_self' : '_blank'}">
                                            <h:outputText value="#{result.title}" style="padding:4px 0;" rendered="#{result.titleHighlightSnippet == null}"/>
                                            <h:outputText value="#{result.titleHighlightSnippet}" style="padding:4px 0;" rendered="#{result.titleHighlightSnippet != null}" escape="false"/>
                                            <h:outputText value=" (#{result.entityId})" style="padding:4px 0;" rendered="#{SearchIncludeFragment.debug == true}"/></a>
                                        <h:outputText value="#{SearchIncludeFragment.DRAFT}" styleClass="label label-primary" rendered="#{result.draftState}"/>
                                        <h:outputText value="#{SearchIncludeFragment.UNPUBLISHED}" styleClass="label label-warning" rendered="#{result.unpublishedState}"/>
                                        <h:outputText value="#{SearchIncludeFragment.DEACCESSIONED}" styleClass="label label-danger" rendered="#{result.deaccessionedState}"/>
                                    </div>
                                    <div class="card-preview-icon-block text-center">
                                        <a href="#{result.datasetUrl}" target="#{showFacets == true ? '_self' : '_blank'}">
                                            <p:graphicImage value="/api/access/dsCardImage/#{result.datasetVersionId}" rendered="#{result.displayImage}"/>
                                            <span class="icon-dataset text-info" jsf:rendered="#{!result.displayImage}"/>
                                        </a>
                                    </div>

                                    <h:outputText styleClass="text-muted" value="#{result.dateToDisplayOnCard}"/>

                                    <h:outputText styleClass="text-muted" value=" - " rendered="#{result.parent.id != SearchIncludeFragment.dataverse.id}"/>
                                    <h:outputLink value="#{dataversePage}?alias=#{result.dataverseAlias}" target="#{showFacets == true ? '_self' : '_blank'}" rendered="#{result.parent.id != SearchIncludeFragment.dataverse.id}">
                                        <h:outputText value="#{result.parent.get('name')} #{bundle.dataverse}"/>
                                    </h:outputLink>

				    <h:outputText value="#{result.citation}" escape="false" styleClass="resultDatasetCitationBlock #{result.deaccessionedState ? 'bg-danger' : 'bg-citation'}" rendered="#{!result.entity.harvested}"/>
                                    <h:outputText value="#{result.entity.latestVersion.getCitation(true)}" escape="false" styleClass="resultDatasetCitationBlock #{result.deaccessionedState ? 'bg-danger' : 'bg-citation'}" rendered="#{result.entity.harvested}"/>
                                    <h:outputText value="#{Strings:abbreviate(result.descriptionNoSnippet, descriptionAbbreviationThreshold)}" rendered="#{result.descriptionSnippets.size() eq 0}"/>
                                    <ui:fragment rendered="#{result.descriptionSnippets.size() gt 0}">
                                        <ui:repeat value="#{result.descriptionSnippets}" var="snippet" varStatus="varStatus">
                                            <h:outputText value="... #{snippet} ..." escape="false"/>
                                            <!-- <h:outputText value="... " rendered="#{varStatus.last != true}"/> -->
                                        </ui:repeat>
                                    </ui:fragment>

                                    <ui:fragment rendered="#{false and result.matchedFields.size() > 0}">
                                        <h:outputText value="#{bundle['dataverse.results.cards.foundInMetadata']} "/>
                                        <ui:repeat value="#{result.matchedFields}" var="field" varStatus="varStatus">
                                            <h:outputText value="#{field}"/>
                                            <h:outputText value=", " rendered="#{varStatus.last != true}"/>
                                        </ui:repeat>
                                    </ui:fragment>
                                    <ui:fragment rendered="#{result.highlightsAsList.size() > 0}">
                                        <ui:repeat value="#{result.highlightsAsList}" var="highlight">
                                            <ui:repeat value="#{highlight.snippets}" var="snippet">
                                                <div>
                                                    <h:outputText value="#{highlight.displayName}: #{snippet}" escape="false"/>
                                                    <!--<ui:param value="#{highlight.solrField.nameFacetable}:intentional" name="unfriendly"/>-->
                                                    <!--<h:outputText value="#{SearchIncludeFragment.getFriendlyNamesFromFilterQuery('name:intentional').get(0)}"/>-->
                                                    <!--<h:outputText value="#{SearchIncludeFragment.getFriendlyNamesFromFilterQuery(unfriendly).get(0)}: "/>-->
                                                </div>
                                            </ui:repeat>
                                        </ui:repeat>
                                    </ui:fragment>
                                    <div jsf:rendered="#{result.entity.harvested}" class="text-muted small margin-top-half">
                                        <span class="glyphicon glyphicon-info-sign"/> <h:outputText value=" #{result.entity.harvestingDescription}"/>
                                    </div>
                                </ui:fragment>
                                <!--FILE CARDS-->
                                <ui:fragment rendered="#{result.type == 'files'}">
                                    <div class="card-title-icon-block">
                                        <span class="glyphicon glyphicon-lock text-danger pull-right" title="#{bundle.restricted}" jsf:rendered="#{result.entity.restricted and !permissionsWrapper.hasDownloadFilePermission(result.entity)}"/>
                                        <span class="icon-unlock text-success pull-right" title="#{bundle.restrictedaccess}" jsf:rendered="#{result.entity.restricted and permissionsWrapper.hasDownloadFilePermission(result.entity)}"/>
                                        <span class="glyphicon glyphicon-link text-muted pull-right" title="#{bundle.linked}" jsf:rendered="#{!result.isInTree}"/>
                                        <span class="glyphicon glyphicon-new-window text-muted pull-right" title="#{bundle.harvested}" jsf:rendered="#{result.entity.harvested}"/>
                                        <span class="icon-file text-muted pull-right" title="#{bundle.file}"/>
                                        
                                        <a href="#{result.fileUrl}" target="#{showFacets == true ? '_self' : '_blank'}">
                                            <h:outputText value="#{result.name}" style="padding:4px 0;" rendered="#{result.nameHighlightSnippet == null}"/>
                                            <h:outputText value="#{result.nameHighlightSnippet}" style="padding:4px 0;" rendered="#{result.nameHighlightSnippet != null}" escape="false"/>
                                            <h:outputText value=" (#{result.entityId})" style="padding:4px 0;" rendered="#{SearchIncludeFragment.debug == true}"/></a>
                                        <h:outputText value="#{SearchIncludeFragment.DRAFT}" styleClass="label label-primary" rendered="#{result.draftState}"/>
                                        <h:outputText value="#{SearchIncludeFragment.UNPUBLISHED}" styleClass="label label-warning" rendered="#{result.unpublishedState}"/>
                                    </div>
                                    <ui:remove>
                                        <div>
                                            <h:outputText value="(thumbnail available)" rendered="#{result.displayImage}"/>
                                            <h:outputText value="(thumbnail not available)" rendered="#{!result.displayImage}"/>
                                        </div>
                                        <div>
                                            <h:outputText value="#{dataFileServiceBean.getFileClass(result.entity)}"/>
                                        </div>
                                    </ui:remove>

                                    <div class="card-preview-icon-block text-center">
                                        <h:outputLink value="#{result.fileUrl}" target="#{showFacets == true ? '_self' : '_blank'}"
                                                      rendered="#{result.displayImage}">
                                            <p:graphicImage value="/api/access/fileCardImage/#{result.entityId}" />
                                        </h:outputLink>
                                        <span class="icon-#{dataFileServiceBean.getFileClass(result.entity)} text-muted h1"
                                              jsf:rendered="#{!result.displayImage}"/>
                                    </div>

                                    <h:outputText styleClass="text-muted" value="#{result.dateToDisplayOnCard} - "/>

                                    <a href="#{result.fileUrl}" target="#{showFacets == true ? '_self' : '_blank'}">
                                        <h:outputText value="#{result.parent.get('name')}"/></a>

                                    <ui:fragment>
                                        <br/>
                                        <h:outputText value="#{bundle['dataverse.results.cards.files.tabularData']}" styleClass="text-muted" rendered="#{!empty SearchIncludeFragment.tabularDataDisplayInfo(result.entityId)}"/>
                                        <h:outputText value="#{result.filetype}" styleClass="text-muted" rendered="#{empty SearchIncludeFragment.tabularDataDisplayInfo(result.entityId) and result.fileTypeHighlightSnippet == null}"/>
                                        <h:outputText value="#{result.fileTypeHighlightSnippet}" styleClass="text-muted" rendered="#{empty SearchIncludeFragment.tabularDataDisplayInfo(result.entityId) and result.fileTypeHighlightSnippet != null}" escape="false"/>

                                        <h:outputText styleClass="text-muted" value=" - #{SearchIncludeFragment.dataFileSizeDisplay(result.entityId)} - "/>

                                        <h:outputText styleClass="text-muted" value="#{SearchIncludeFragment.dataFileMD5Display(result.entityId)}" rendered="#{!SearchIncludeFragment.isTabular(result.entityId)}"/>

                                        <!-- if this is a tabular data file, extra information, such as the numbers of variables and observations and the unf, is displayed: -->
                                        <ui:fragment rendered="#{!empty SearchIncludeFragment.tabularDataDisplayInfo(result.entityId)}">
                                            <h:outputText styleClass="text-muted" value="#{SearchIncludeFragment.tabularDataDisplayInfo(result.entityId)}"/>
                                        </ui:fragment>

                                        <br/>
                                    </ui:fragment>

                                    <div class="file-tags-block" jsf:rendered="#{(!empty result.entity.fileMetadata.categories) or (!empty result.entity.tags)}">
                                        <ui:repeat value="#{result.entity.fileMetadata.categories}" var="cat">
                                            <h:outputText value="#{cat.name}" styleClass="label label-default"/>
                                        </ui:repeat>
                                        <ui:repeat value="#{result.entity.tags}" var="tag">
                                            <h:outputText value="#{tag.typeLabel}" styleClass="label label-info"/>
                                        </ui:repeat>
                                    </div>

                                    <h:outputText value="#{Strings:abbreviate(result.descriptionNoSnippet, descriptionAbbreviationThreshold)}" rendered="#{result.descriptionSnippets.size() eq 0}"/>
                                    <ui:fragment rendered="#{result.descriptionSnippets.size() gt 0}">
                                        <ui:repeat value="#{result.descriptionSnippets}" var="snippet" varStatus="varStatus">
                                            <h:outputText value="#{snippet}" escape="false"/>
                                            <h:outputText value="... " rendered="#{varStatus.last != true}"/>
                                        </ui:repeat>
                                    </ui:fragment>

                                    <div jsf:rendered="#{result.highlightsAsList.size() > 0}">
                                        <ui:repeat value="#{result.highlightsAsList}" var="highlight">
                                            <ui:repeat value="#{highlight.snippets}" var="snippet">
                                                <div>
                                                    <h:outputText value="#{highlight.displayName}: #{snippet}" escape="false"/>
                                                </div>
                                            </ui:repeat>
                                        </ui:repeat>
                                    </div>
                                    
                                    <ui:fragment rendered="#{result.entity.harvested}">
                                        <div>
                                            <h:outputText value="#{result.entity.harvestingDescription}" styleClass="text-muted" style="margin-right:.5em;"/>
                                        </div>
                                    </ui:fragment>
                                </ui:fragment>
                            </p:column>
                        </p:dataTable>
                        <!-- BOTTOM PAGINATOR -->
                        <ui:fragment rendered="#{SearchIncludeFragment.totalPages != 1}">
                            <div class="results-sort-pagination results-bottom pull-right">
                                <!-- PAGINATOR -->
                                <o:importFunctions type="java.lang.Math" />
                                <div class="pagination pull-right" >
                                    <ul class="pagination">
                                        <!--should take you to page 1-->
                                        <li class="#{SearchIncludeFragment.page == '1' ? 'disabled' : ''}">
                                            <h:outputLink>
                                                <h:outputText value="&#171;"/>
                                                <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                    <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                </c:forEach>
                                                <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                                <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                                <f:param name="page" value="1"/>
                                            </h:outputLink>
                                        </li>
                                        <li class="#{SearchIncludeFragment.page == '1' ? 'disabled' : ''}">
                                            <h:outputLink>
                                                <h:outputText value="&lt; #{bundle.previous}"/>
                                                <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                    <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                </c:forEach>
                                                <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                                <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                                <f:param name="page" value="#{Math:max(1,SearchIncludeFragment.page-1).intValue()}"/>
                                            </h:outputLink>
                                        </li>
                                        <c:forEach begin="#{Math:max(1,SearchIncludeFragment.page-Math:max(2,SearchIncludeFragment.page-SearchIncludeFragment.totalPages+4))}"
                                                   end="#{Math:min(SearchIncludeFragment.totalPages,SearchIncludeFragment.page+Math:max(2,5-SearchIncludeFragment.page))}"
                                                   varStatus="pageStatus">
                                            <li class="#{SearchIncludeFragment.page == pageStatus.index ? 'active' : ''}">
                                                <h:outputLink>
                                                    <h:outputText value="#{pageStatus.index}"/>
                                                    <span class="#{SearchIncludeFragment.page == pageStatus.index ? 'sr-only' : ''}">
                                                        <h:outputText value="#{SearchIncludeFragment.page == pageStatus.index ? bundle['dataverse.results.paginator.current'] : ''}"/>
                                                    </span>
                                                    <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                    <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                        <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                    </c:forEach>
                                                    <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                    <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                                    <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                                    <f:param name="page" value="#{pageStatus.index}"/>
                                                </h:outputLink>
                                            </li>
                                        </c:forEach>
                                        <li class="#{SearchIncludeFragment.page == SearchIncludeFragment.totalPages ? 'disabled' : ''}">
                                            <h:outputLink>
                                                <h:outputText value="#{bundle.next} &gt;"/>
                                                <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                    <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                </c:forEach>
                                                <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                                <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                                <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                                <f:param name="page" value="#{Math:min(SearchIncludeFragment.page+1,SearchIncludeFragment.totalPages).intValue()}"/>
                                            </h:outputLink>
                                        </li>
                                        <li class="#{SearchIncludeFragment.page == SearchIncludeFragment.totalPages ? 'disabled' : ''}">
                                            <h:outputLink>
                                                <h:outputText value="&#187;"/>
                                                <f:param name="q" value="#{SearchIncludeFragment.query}"/>
                                                <c:forEach items="#{SearchIncludeFragment.filterQueries}" var="clickedFilterQuery" varStatus="status">
                                                    <f:param name="fq#{status.index}" value='#{clickedFilterQuery}'/>
                                                </c:forEach>
                                                <f:param name="sort" value="#{SearchIncludeFragment.sortField}"/>
                                                <f:param name="order" value="#{SearchIncludeFragment.sortOrder}"/>
                                                <f:param name="page" value="#{SearchIncludeFragment.totalPages}"/>
                                                <f:param name="types" value="#{SearchIncludeFragment.selectedTypesString}"/>
                                            </h:outputLink>
                                        </li>
                                    </ul>
                                </div>
                            </div>
                        </ui:fragment>
                    </ui:fragment>
                </div>
            </ui:fragment>
            <ui:fragment rendered="#{SearchIncludeFragment.solrIsDown}">
                <div class="bg-danger padding-12 margin-bottom">
                    <span class="glyphicon glyphicon-warning-sign text-danger"/>&#160;

                    <h:outputText value="#{SearchIncludeFragment.searchException.message}" styleClass="text-danger highlightBold"/>

                    <h:outputText value=" - #{bundle['dataverse.results.solrIsDown']}" styleClass="text-danger"/>
                </div>
                <pre><h:outputText value="#{SearchIncludeFragment.searchException.cause.message}"/></pre>
            </ui:fragment>
        </div>
    </div>
    <p:dialog header="#{bundle['dataverse.results.dialog.addDataGuest.header']}" widgetVar="addData_popup" modal="true">                                           
        <p class="help-block">
            <span class="glyphicon glyphicon-warning-sign text-danger"/>
            <h:outputFormat styleClass="text-danger" value="#{dataverseHeaderFragment.signupAllowed ? bundle['dataverse.results.dialog.addDataGuest.msg.signup'] : bundle['dataverse.results.dialog.addDataGuest.msg']}" escape="false">
                <f:param value="#{dataverseHeaderFragment.loginRedirectPage}"/>
            </h:outputFormat>
        </p>
        <div class="button-block">
            <button type="button" onclick="addData_popup.hide()" class="btn btn-default" value="#{bundle.close}">
                #{bundle.close}
            </button>
        </div>
    </p:dialog>
    <script type="text/javascript">
        $(document).ready(function () {
            // Calls the p:remoteCommand postLoad.
            // Posted at end of fragment to work correctly with Account information  
            <ui:remove>                
            // See: https://github.com/IQSS/dataverse/issues/2004 
            </ui:remove>
           postLoad();  
        });
    </script>   
</ui:composition>