Subversion Repositories bacoAlunos

Rev

Rev 457 | 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&amp;v=0.1&amp;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("<%=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))
        {
            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 = document.getElementById("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.url + "\">" + thisResult.title + "</a></h2>";
                        results += "<p>" + thisResult.content + "</p>";
                        //                    results += "<p class=\"smallUrl\">" + thisResult.url + "</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>(${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 id="${searchResults.module.messageKey}Results">
                            <logic:iterate id="result" name="searchResults" property="results"
                                           type="pt.estgp.estgweb.services.common.IResult">
                                <div class="result">
                                    <h2>
                                        <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="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>

                                    <p>${result.bestFragments} ...</p>
                                </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}Results','${searchResults.query}','${searchResults.searchType}','${searchResults.previousPage}','${searchResults.module.messageKey}','${searchResults.moduleInternalKey}','<%=request.getContextPath()%>/search.do')">
                                        &lt;
                                        <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}Results','${searchResults.query}','${searchResults.searchType}','${searchResults.nextPage}','${searchResults.module.messageKey}','${searchResults.moduleInternalKey}','<%=request.getContextPath()%>/search.do')">
                                        <bean:message key="result.next"/>
                                        &gt;</a>
                                </logic:equal>
                            </p>
                        </div>
                        <h3>
                            <a href="javascript:hide('${searchResults.module.messageKey}','${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.