Subversion Repositories bacoAlunos

Rev

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&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("<%=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("\"","&quot;")%>) AND dir:&quot;<%=finalPath%>&quot;','${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')">
                                                    &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}_${searchResults.moduleInternalKey}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>

                                </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}:&quot;${label.label}&quot;','${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.