Mercurial > hg > LGDataverses
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']} ({0})"> <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']} ({0})"> <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']} ({0})"> <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} ({0})"> <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} ({0})"> <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="«"/> <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="< #{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} >"/> <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="»"/> <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="«"/> <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="< #{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} >"/> <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="»"/> <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"/>  <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>
