Rev 1317 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<jsp:useBean id="ICommonSearchResults" scope="request" type="pt.estgp.estgweb.services.common.ICommonSearchResults"/>
<baco:isModuleOff module="searchGoogle">
<script language="Javascript" type="text/javascript">
var moduleResults = <%=ICommonSearchResults.getTotalResults()%>;
var query = '<%=ICommonSearchResults.getQuery()%>';
var searchType = '<%=ICommonSearchResults.getSearchType()%>';
if (moduleResults == 0 )
{
window.location = "<%=request.getContextPath()%>/noresults.do?query=" + query + "&searchType=" + searchType;
}
</script>
</baco:isModuleOff>
<baco:isModuleOn module="searchGoogle">
<script src="http://www.google.com/uds/api?file=uds.js&v=0.1&key=ABQIAAAADxvyl7Xh60gdXI_1zKmmGRRd06UxSSW2VZkRedTOEJUPCAJQLRROEqUvchzdGX57xPqsbbCUOvx1rA"
type="text/javascript"></script>
<script language="Javascript" type="text/javascript">
//<![CDATA[
var moduleResults = <%=ICommonSearchResults.getTotalResults()%>;
var gWebSearch;
var query = '<%=ICommonSearchResults.getQuery()%>';
var searchType = '<%=ICommonSearchResults.getSearchType()%>';
var googlePage = 0;
// var location = window.location;
var loading = '<bean:message key="loading"/>...';
var pagesResultsHeader = '<bean:message key="search.pages.header"/>...';
var pagesResultsForAbout = ' <bean:message key="search.pages.for.about"/> ';
var pagesResultsFound = ' <bean:message key="search.pages.found.results"/> ';
var pages = '<bean:message key="search.pages"/>';
function gotoPage(p)
{
googlePage = p;
var searchresults = document.getElementById("googleSearchResults");
searchresults.innerHTML = loading;
//OnLoad();
gWebSearch.gotoPage(googlePage);
}
function OnLoad()
{
// Initialize the web searcher
gWebSearch = new GwebSearch();
gWebSearch.setSiteRestriction("<%=pt.estgp.estgweb.utils.Globals.SITE_URL%>");
gWebSearch.setResultSetSize(GSearch.LARGE_RESULTSET);
gWebSearch.setSearchCompleteCallback(null, OnWebSearch);
gWebSearch.execute(query);
}
function OnWebSearch()
{
if (moduleResults == 0 && (!gWebSearch.results || gWebSearch.results.length == 0))
{
if(window.location.href.indexOf("Intranet")>=0)
window.location = "<%=request.getContextPath()%>/user/noresultsIntranet.do?query=" + query + "&searchType=" + searchType;
else
window.location = "<%=request.getContextPath()%>/noresults.do?query=" + query + "&searchType=" + searchType;
return;
}
if (!gWebSearch.results) return;
if (gWebSearch.cursor != null)
{
if (gWebSearch.cursor.currentPageIndex != googlePage)
gWebSearch.gotoPage(googlePage);
else
{
var searchresults = getObjectById("googleSearchResults");
searchresults.innerHTML = "";
if (gWebSearch.cursor.estimatedResultCount > 0)
{
var results = "";
results += "<h1>" + pagesResultsHeader + " " + " " + gWebSearch.results.length + " " + pagesResultsFound + pagesResultsForAbout + gWebSearch.cursor.estimatedResultCount + "</h1>";
results += "<div id=\"googleResults\">";
for (var i = 0; i < gWebSearch.results.length; i++)
{
var thisResult = gWebSearch.results[i];
results += "<div class=\"result\">";
results += "<h2><a href=\"" + thisResult.unescapedUrl + "\">" + thisResult.title + "</a></h2>";
results += "<p>" + thisResult.content + "</p>";
// results += "<p class=\"smallUrl\">" + thisResult.unescapedUrl + "</p>";
// if (thisResult.cacheUrl) {
// results += " - <a class=\"cached\" href=\"" + thisResult.cacheUrl + "\">Cached <\/a>";
// }
results += "</div>";
}
results += "<p class=\"pages\">";
results += pages + " ";
var limit = 1;
if(gWebSearch.cursor.estimatedResultCount > 8)
limit = 2;
if(gWebSearch.cursor.estimatedResultCount > 16)
limit = 3;
if(gWebSearch.cursor.estimatedResultCount > 24)
limit = 4;
if(gWebSearch.cursor.estimatedResultCount > 32)
limit = 5;
for (var j = 0; j < gWebSearch.cursor.pages.length && j < limit; j++)
{
if (j == gWebSearch.cursor.currentPageIndex)
results += " " + gWebSearch.cursor.pages[j].label;
else
results += ' <a onClick="gotoPage(' + (j) + ');" href="#googleSearchResults">' + gWebSearch.cursor.pages[j].label + "</a> ";
}
if (gWebSearch.cursor.estimatedResultCount > 32)
{
results += ' <a href="' + gWebSearch.cursor.moreResultsUrl + '"> Mais resultados no Google ... </a> ';
}
results += "</p>";
results += "</div>";
searchresults.innerHTML = results;
}
}
}
}
OnLoad();
</script>
</baco:isModuleOn>
<div id="searchResults" class="listClean">
<ul>
<logic:iterate id="searchResults" name="ICommonSearchResults" property="searchResults"
type="pt.estgp.estgweb.services.common.ISearchResults">
<li>
<h1>
<logic:empty name="searchResults" property="description">
<bean:message key="${searchResults.module.messageKey}"/>
</logic:empty>
<logic:notEmpty name="searchResults" property="description">
<bean:write name="searchResults" property="description"/>
</logic:notEmpty>
<b id="${searchResults.module.messageKey}_total">(${searchResults.totalResults})</b>
<a id="${searchResults.module.messageKey}SeeMore"
href="javascript:showOrHideOne('${searchResults.module.messageKey}_${searchResults.moduleInternalKey}')">
<bean:message key="search.see.more"/>
</a>
</h1>
<%
String visibility;
if (ICommonSearchResults.getSearchResults().size() == 1)
visibility = Globals.VISIBLE;
else
visibility = Globals.HIDDEN;
%>
<div class="module" id="${searchResults.module.messageKey}_${searchResults.moduleInternalKey}" style="<%=visibility%>">
<div align="right" id="turnOffFilters${searchResults.module.messageKey}_${searchResults.moduleInternalKey}" style="<%=Globals.HIDDEN%>;" >
<a onclick="hideOne('turnOffFilters${searchResults.module.messageKey}_${searchResults.moduleInternalKey}');return true;" href="javascript:searchCall('${searchResults.module.messageKey}_${searchResults.moduleInternalKey}Results','${searchResults.query}','${searchResults.searchType}','0','${searchResults.module.messageKey}','${searchResults.moduleInternalKey}','<%=request.getContextPath()%>/search.do')">
<bean:message key="result.turn.off.filters"/>
</a>
</div>
<br/>
<div id="${searchResults.module.messageKey}_${searchResults.moduleInternalKey}Results">
<table cellpadding="0" cellspacing="0" width="100%" style="padding:10px">
<tr>
<td valign="top">
<!--RESULTS-->
<%
int from = searchResults.getPage()*searchResults.getMaxResultsPage() + 1;
int to = (searchResults.getPage()+1)*searchResults.getMaxResultsPage();
if(to > searchResults.getTotalResults())
to = searchResults.getTotalResults();
%>
<p><bean:message key="search.pages.found.results"/> <%=from%> <bean:message key="search.pages.to"/> <%=to%> <bean:message key="search.pages.for.about"/> ${searchResults.totalResults}</p>
<logic:iterate id="result" name="searchResults" property="results"
type="pt.estgp.estgweb.services.common.IResult">
<div class="result">
<h2>
<logic:notEmpty name="result" property="mime">
<%
request.setAttribute("ICON_mime",result.getMime());
request.setAttribute("ICON_alt",result.getMime());
%>
<jsp:include page="/layout/putIcon.jsp"/>
</logic:notEmpty>
<logic:notEmpty name="result" property="url">
<%
if(result.isAbsoluteUrl())
{
%>
<a href="${result.url}">${result.title}</a>
<%
}
else
{
%>
<a href="<%=request.getContextPath()%>${result.url}">${result.title}</a>
<%
}
%>
</logic:notEmpty>
<logic:empty name="result" property="url">
${result.title}
</logic:empty>
<logic:notEmpty name="result" property="sizeKb">
[${result.sizeKb} KB]
</logic:notEmpty>
<logic:notEmpty name="result" property="subTitle">
<logic:equal value="true" name="result" property="subTitleKey">
<bean:message key="${result.subTitle}"/>
</logic:equal>
<logic:notEqual value="true" name="result" property="subTitleKey">
${result.subTitle}
</logic:notEqual>
</logic:notEmpty>
<logic:notEmpty name="result" property="subTitlesGroup">
(
<%
String subTitleSeparator = "";
%>
<logic:iterate id="subTitleLabel" name="result" property="subTitlesGroup.labels">
<%=subTitleSeparator%>
<logic:equal value="true" name="subTitleLabel" property="key">
<bean:message key="${subTitleLabel.label}"/>
</logic:equal>
<logic:notEqual value="true" name="subTitleLabel" property="key">
${subTitleLabel.label}
</logic:notEqual>
<%
subTitleSeparator = ", ";
%>
</logic:iterate>
)
</logic:notEmpty>
</h2>
<logic:notEmpty name="result" property="date">
<p><b><bean:message key="last.modification.date"/>:</b> ${result.date}</p>
</logic:notEmpty>
<logic:notEmpty name="result" property="creator">
<p><b><bean:message key="search.result.creator"/>:</b> ${result.creator}</p>
</logic:notEmpty>
<logic:empty name="result" property="bestFragments">
<p class="fragments">${result.text}</p>
</logic:empty>
<logic:notEmpty name="result" property="bestFragments">
<p class="fragments">${result.bestFragments}</p>
</logic:notEmpty>
<logic:notEmpty name="result" property="directory">
<p class="smallGreen">${result.directory}</p>
<p> <bean:message key="srusource.filter.dirs"/> :
<%
String directory = result.getDirectory();
String[] paths = directory.split("[\\\\]");
String finalPath = "";
for(int i = 0; i < paths.length -1;i++)
{
String path = paths[i];
if(path.trim().length() > 0)
{
finalPath += "/" + path;
%>
\
<a href="javascript:searchCall('${searchResults.module.messageKey}_${searchResults.moduleInternalKey}Results','(<%=searchResults.getQueryNoEncode().replace("\"",""")%>) AND dir:"<%=finalPath%>"','${searchResults.searchType}','0','${searchResults.module.messageKey}','${searchResults.moduleInternalKey}','<%=request.getContextPath()%>/search.do')" onclick="showOne('turnOffFilters${searchResults.module.messageKey}_${searchResults.moduleInternalKey}');return true;">
<%=path%>
</a>
<%
}
}
%>
</p>
</logic:notEmpty>
</div>
</logic:iterate>
<p class="pages">
<bean:message key="search.pages"/>
<logic:equal value="true" name="searchResults" property="hasPreviousPage">
<a href="javascript:searchCall('${searchResults.module.messageKey}_${searchResults.moduleInternalKey}Results','${searchResults.query}','${searchResults.searchType}','${searchResults.previousPage}','${searchResults.module.messageKey}','${searchResults.moduleInternalKey}','<%=request.getContextPath()%>/search.do')">
<
<bean:message key="result.previous"/>
</a>
</logic:equal>
${searchResults.page2Screen}
<logic:equal value="true" name="searchResults" property="hasNextPage">
<a href="javascript:searchCall('${searchResults.module.messageKey}_${searchResults.moduleInternalKey}Results','${searchResults.query}','${searchResults.searchType}','${searchResults.nextPage}','${searchResults.module.messageKey}','${searchResults.moduleInternalKey}','<%=request.getContextPath()%>/search.do')">
<bean:message key="result.next"/>
></a>
</logic:equal>
</p>
</td>
<td valign="top">
<!--FACETS-->
<logic:notEmpty name="searchResults" property="facets">
<div class="facets">
<div class="title" style="white-space:nowrap;"><bean:message key="facets"/></div>
<table class="dataTable">
<logic:iterate id="facet" name="searchResults" property="facets" type="pt.estgp.estgweb.services.common.IFacet">
<tr>
<th colspan="2">
<bean:message key="facet.${facet.index}"/>
</th>
</tr>
<logic:iterate id="label" name="facet" property="labels" type="pt.estgp.estgweb.services.common.IFacetLabel">
<tr>
<td>
<%
if(facet.getIndex().equals("type") || facet.getIndex().equals("facetType"))
{
request.setAttribute("ICON_mime",label.getLabel());
request.setAttribute("ICON_alt",label.getLabel());
%>
<jsp:include page="/layout/putIcon.jsp"/> ${label.label}
<%
}
else
{
%>
${label.label}
<%
}
%>
</td>
<td align="right">
<a href="javascript:searchCall('${searchResults.module.messageKey}_${searchResults.moduleInternalKey}Results','(${searchResults.query}) AND ${facet.index}:"${label.label}"','${searchResults.searchType}','0','${searchResults.module.messageKey}','${searchResults.moduleInternalKey}','<%=request.getContextPath()%>/search.do')" onclick="showOne('turnOffFilters${searchResults.module.messageKey}_${searchResults.moduleInternalKey}');return true;">
${label.occurrences}
</a>
</td>
</tr>
</logic:iterate>
</logic:iterate>
</table>
</div>
</logic:notEmpty>
</td>
</tr>
</table>
</div>
<h3>
<a href="javascript:hide('${searchResults.module.messageKey}_${searchResults.moduleInternalKey}','${searchResults.module.messageKey}SeeMore')">Fechar</a>
</h3>
</div>
</li>
</logic:iterate>
<li id="googleModule">
<div id="googleSearchResults">
</div>
<table class="googleLogo">
<tr>
<td>powered by</td>
<td><img src="<%=request.getContextPath()%>/imgs/google-small-logo.png"/></td>
</tr>
</table>
</li>
</ul>
</div>
Generated by GNU Enscript 1.6.5.2.