347 lines
16 KiB
Plaintext
347 lines
16 KiB
Plaintext
<%--
|
|
The contents of this file are subject to the Mozilla Public License Version 1.1
|
|
(the "License"); you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
|
|
|
|
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
|
WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
|
language governing rights and limitations under the License.
|
|
|
|
The Original Code is the Venice Web Communities System.
|
|
|
|
The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
|
for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
|
Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
|
|
|
Contributor(s):
|
|
--%>
|
|
<%@ page import = "java.util.Iterator" %>
|
|
<%@ page import = "java.util.List" %>
|
|
<%@ page import = "com.silverwrist.venice.core.*" %>
|
|
<%@ page import = "com.silverwrist.venice.ui.view.FindView" %>
|
|
<%@ taglib uri="/tlds/util" prefix="util" %>
|
|
<%
|
|
FindView data = FindView.get(request);
|
|
%>
|
|
<util:comment>Find page</util:comment>
|
|
<util:menuheader caption="Find:">
|
|
<% if (data.testDisplayMode(FindView.FD_COMMUNITIES)) { %>
|
|
<util:menuheaderitem selected="true">
|
|
<util:href type="servlet">find.js.vs?disp=<%= FindView.FD_COMMUNITIES %></util:href>
|
|
<util:text>Communities</util:text>
|
|
</util:menuheaderitem>
|
|
<% } else { %>
|
|
<util:menuheaderitem>
|
|
<util:href type="servlet">find.js.vs?disp=<%= FindView.FD_COMMUNITIES %></util:href>
|
|
<util:text>Communities</util:text>
|
|
</util:menuheaderitem>
|
|
<% } // end if %>
|
|
<% if (data.testDisplayMode(FindView.FD_USERS)) { %>
|
|
<util:menuheaderitem selected="true">
|
|
<util:href type="servlet">find.js.vs?disp=<%= FindView.FD_USERS %></util:href>
|
|
<util:text>Users</util:text>
|
|
</util:menuheaderitem>
|
|
<% } else { %>
|
|
<util:menuheaderitem>
|
|
<util:href type="servlet">find.js.vs?disp=<%= FindView.FD_USERS %></util:href>
|
|
<util:text>Users</util:text>
|
|
</util:menuheaderitem>
|
|
<% } // end if %>
|
|
<% if (data.testDisplayMode(FindView.FD_CATEGORIES)) { %>
|
|
<util:menuheaderitem selected="true">
|
|
<util:href type="servlet">find.js.vs?disp=<%= FindView.FD_CATEGORIES %></util:href>
|
|
<util:text>Categories</util:text>
|
|
</util:menuheaderitem>
|
|
<% } else { %>
|
|
<util:menuheaderitem>
|
|
<util:href type="servlet">find.js.vs?disp=<%= FindView.FD_CATEGORIES %></util:href>
|
|
<util:text>Categories</util:text>
|
|
</util:menuheaderitem>
|
|
<% } // end if %>
|
|
<% if (data.testDisplayMode(FindView.FD_POSTS)) { %>
|
|
<util:menuheaderitem selected="true">
|
|
<util:href type="servlet">find.js.vs?disp=<%= FindView.FD_POSTS %></util:href>
|
|
<util:text>Posts</util:text>
|
|
</util:menuheaderitem>
|
|
<% } else { %>
|
|
<util:menuheaderitem>
|
|
<util:href type="servlet">find.js.vs?disp=<%= FindView.FD_POSTS %></util:href>
|
|
<util:text>Posts</util:text>
|
|
</util:menuheaderitem>
|
|
<% } // end if %>
|
|
</util:menuheader>
|
|
|
|
<%-- Display the search form --%>
|
|
<util:comment>Find form</util:comment>
|
|
<util:form action="find.js.vs" type="servlet"><DIV CLASS="content">
|
|
<INPUT TYPE=HIDDEN NAME="disp" VALUE="<%= data.getDisplayMode() %>">
|
|
<INPUT TYPE=HIDDEN NAME="ofs" VALUE="0">
|
|
<% if (data.testDisplayMode(FindView.FD_POSTS)) { %>
|
|
<util:comment>Find Posts form</util:comment>
|
|
<util:font color="content.fg" size="content-heading"><B>Find Posts:</B></util:font>
|
|
<util:font color="content.fg" size="content">
|
|
Keywords: <SPAN CLASS="cinput"><INPUT TYPE=TEXT CLASS="cinput" NAME="term" SIZE=64 MAXLENGTH=255
|
|
VALUE="<%= data.getTerm() %>"></SPAN>
|
|
</util:font><BR>
|
|
<% } else { %>
|
|
<% if (data.testDisplayMode(FindView.FD_COMMUNITIES)) { %>
|
|
<util:comment>Find Communities form</util:comment>
|
|
<util:font color="content.fg" size="content-heading"><B>Find Communities:</B></util:font>
|
|
<util:font color="content.fg" size="content">
|
|
Display all communities whose
|
|
<SELECT NAME="field" SIZE=1>
|
|
<OPTION VALUE="<%= SearchMode.FIELD_COMMUNITY_NAME %>"
|
|
<% if (data.testField(SearchMode.FIELD_COMMUNITY_NAME)) { %>SELECTED<% } %> >name</OPTION>
|
|
<OPTION VALUE="<%= SearchMode.FIELD_COMMUNITY_SYNOPSIS %>"
|
|
<% if (data.testField(SearchMode.FIELD_COMMUNITY_SYNOPSIS)) { %>SELECTED<% } %> >synopsis</OPTION>
|
|
</SELECT><BR>
|
|
</util:font>
|
|
<% } else if (data.testDisplayMode(FindView.FD_USERS)) { %>
|
|
<util:comment>Find Users form</util:comment>
|
|
<util:font color="content.fg" size="content-heading"><B>Find Users:</B></util:font>
|
|
<util:font color="content.fg" size="content">
|
|
Display all users whose
|
|
<SELECT NAME="field" SIZE=1>
|
|
<OPTION VALUE="<%= SearchMode.FIELD_USER_NAME %>"
|
|
<% if (data.testField(SearchMode.FIELD_USER_NAME)) { %>SELECTED<% } %> >user name</OPTION>
|
|
<OPTION VALUE="<%= SearchMode.FIELD_USER_DESCRIPTION %>"
|
|
<% if (data.testField(SearchMode.FIELD_USER_DESCRIPTION)) { %>SELECTED<% } %> >description</OPTION>
|
|
<OPTION VALUE="<%= SearchMode.FIELD_USER_GIVEN_NAME %>"
|
|
<% if (data.testField(SearchMode.FIELD_USER_GIVEN_NAME)) { %>SELECTED<% } %> >first name</OPTION>
|
|
<OPTION VALUE="<%= SearchMode.FIELD_USER_FAMILY_NAME %>"
|
|
<% if (data.testField(SearchMode.FIELD_USER_FAMILY_NAME)) { %>SELECTED<% } %> >last name</OPTION>
|
|
</SELECT><BR>
|
|
</util:font>
|
|
<% } else if (data.testDisplayMode(FindView.FD_CATEGORIES)) { %>
|
|
<util:comment>Find Categories form</util:comment>
|
|
<util:font color="content.fg" size="content-heading"><B>Find Categories:</B></util:font>
|
|
<util:font color="content.fg" size="content">
|
|
Display all categories whose name
|
|
</util:font>
|
|
<% } else { %>
|
|
<%-- shouldn't get here --%>
|
|
<H1><FONT COLOR="red">Display parameter invalid!</FONT></H1>
|
|
<% } // end if %>
|
|
<util:font color="content.fg" size="content">
|
|
<SELECT NAME="mode" SIZE=1>
|
|
<OPTION VALUE="<%= SearchMode.SEARCH_PREFIX %>"
|
|
<% if (data.testMode(SearchMode.SEARCH_PREFIX)) { %>SELECTED<% } %> >starts with the string</OPTION>
|
|
<OPTION VALUE="<%= SearchMode.SEARCH_SUBSTRING %>"
|
|
<% if (data.testMode(SearchMode.SEARCH_SUBSTRING)) { %>SELECTED<% } %> >contains the string</OPTION>
|
|
<OPTION VALUE="<%= SearchMode.SEARCH_REGEXP %>"
|
|
<% if (data.testMode(SearchMode.SEARCH_REGEXP)) { %>SELECTED<% } %> >matches the regular
|
|
expression</OPTION>
|
|
</SELECT>
|
|
<% if (data.testDisplayMode(FindView.FD_CATEGORIES)) { %><BR><% } else { %> <% } %>
|
|
<SPAN CLASS="cinput"><INPUT TYPE=TEXT CLASS="cinput" NAME="term" SIZE=32 MAXLENGTH=255
|
|
VALUE="<%= data.getTerm() %>"></SPAN><BR>
|
|
</util:font>
|
|
<% } // end if %>
|
|
<util:button id="search" type="input"/>
|
|
</DIV></util:form>
|
|
|
|
<%-- Display the current category --%>
|
|
<% CategoryDescriptor cat = data.getCategory(); %>
|
|
<% if (cat!=null) { %>
|
|
<util:comment>Display Category Name</util:comment>
|
|
<HR><util:font color="content.fg" size="subhead">
|
|
<B>Category:
|
|
<% if (cat.getCategoryID()<0) { %>
|
|
Top
|
|
<% } else { %>
|
|
<util:xlink>
|
|
<util:href type="servlet">find.js.vs?disp=<%= FindView.FD_COMMUNITIES %></util:href>
|
|
<util:text>Top</util:text>
|
|
</util:xlink>
|
|
<% for (int i=0; i<cat.getNumLevels(); i++) { %>
|
|
<% if (i<(cat.getNumLevels()-1)) { %>
|
|
:
|
|
<util:xlink>
|
|
<util:href type="servlet">find.js.vs?disp=<%= FindView.FD_COMMUNITIES %>&cat=<%= cat.getIDAtLevel(i) %></util:href>
|
|
<util:text><util:escape><%= cat.getTitleAtLevel(i) %></util:escape></util:text>
|
|
</util:xlink>
|
|
<% } else { %>
|
|
: <util:escape><%= cat.getTitleAtLevel(i) %></util:escape>
|
|
<% } // end if %>
|
|
<% } // end for %>
|
|
<% } // end if (displaying the subcategory tree) %>
|
|
</B><P>
|
|
|
|
<%-- Display the subcategory list --%>
|
|
<% List subcats = data.getSubCategories(); %>
|
|
<% if ((subcats!=null) && (subcats.size()>0)) { %>
|
|
<util:comment>Display Subcategory List</util:comment>
|
|
<B>Subcategories:</B><BR>
|
|
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=2>
|
|
<% Iterator it = subcats.iterator(); %>
|
|
<% while (it.hasNext()) { %>
|
|
<TR VALIGN=TOP>
|
|
<TD ALIGN=CENTER WIDTH=14><util:stdbullet/></TD>
|
|
<TD ALIGN=LEFT CLASS="content"><util:font color="content.fg" size="content">
|
|
<% CategoryDescriptor c = (CategoryDescriptor)(it.next()); %>
|
|
<B><util:xlink>
|
|
<util:href type="servlet">find.js.vs?disp=<%= FindView.FD_COMMUNITIES %>&cat=<%= c.getLinkedCategoryID() %></util:href>
|
|
<util:text><util:escape><%= c.getTitleAtLevel(c.getNumLevels()-1) %></util:escape></util:text>
|
|
</util:xlink>
|
|
<% if (c.isSymbolicLink()) { %><EM>@</EM><% } %>
|
|
</util:font></TD>
|
|
</TR>
|
|
<% } // end while %>
|
|
</TABLE>
|
|
<% } // end if (displaying subcategory list) %>
|
|
</util:font>
|
|
<% } // end if (category specified) %>
|
|
|
|
<%-- Display the search results --%>
|
|
<% List results = data.getResults(); %>
|
|
<% if (results!=null) { %>
|
|
<util:comment>Display Search Results</util:comment>
|
|
<%
|
|
// Determine the number of results to display and whether to display a "next" button
|
|
int dcount = results.size();
|
|
boolean go_next = false;
|
|
if (dcount>data.getMaxResults())
|
|
{ // there's a "next"
|
|
dcount = data.getMaxResults();
|
|
go_next = true;
|
|
|
|
} // end if
|
|
%>
|
|
<HR>
|
|
<TABLE WIDTH="100%" BORDER=0 ALIGN=CENTER><TR VALIGN=MIDDLE>
|
|
<TD WIDTH="50%" ALIGN=LEFT CLASS="content"><util:font color="content.fg" size="content">
|
|
<%-- The initial search results --%>
|
|
<B><% if (cat!=null) { %>Communities in Category<% } else { %>Search Results<% } %></B>
|
|
<% if (data.getFindCount()>0) { %>
|
|
(Displaying <%= data.getOffset() + 1 %>-<%= data.getOffset() + dcount %> of
|
|
<%= data.getFindCount() %>)
|
|
<% } else { %>(None)<% } %>
|
|
</util:font></TD>
|
|
|
|
<TD WIDTH="50%" ALIGN=RIGHT CLASS="content">
|
|
<% if (go_next || (data.getOffset()>0)) { %>
|
|
<%-- The navigational form that allows us to page through the results --%>
|
|
<util:comment>Navigational form</util:comment>
|
|
<util:form action="find.js.vs" type="servlet"><DIV CLASS="content">
|
|
<INPUT TYPE=HIDDEN NAME="disp" VALUE="<%= data.getDisplayMode() %>">
|
|
<% if (cat!=null) { %><INPUT TYPE=HIDDEN NAME="cat" VALUE="<%= cat.getCategoryID() %>"><% } %>
|
|
<INPUT TYPE=HIDDEN NAME="ofs" VALUE="<%= data.getOffset() %>">
|
|
<INPUT TYPE=HIDDEN NAME="field" VALUE="<%= data.getField() %>">
|
|
<INPUT TYPE=HIDDEN NAME="mode" VALUE="<%= data.getMode() %>">
|
|
<INPUT TYPE=HIDDEN NAME="term" VALUE="<%= data.getTerm() %>">
|
|
<INPUT TYPE=HIDDEN NAME="fcount" VALUE="<%= data.getFindCount() %>">
|
|
<% if (data.getOffset()>0) { %>
|
|
<util:button id="previous" type="input"/>
|
|
<% } else { %>
|
|
<util:button id="_null_"/>
|
|
<% } // end if %>
|
|
|
|
<% if (go_next) { %>
|
|
<util:button id="next" type="input"/>
|
|
<% } else { %>
|
|
<util:button id="_null_"/>
|
|
<% } // end if %>
|
|
</DIV></util:form>
|
|
<% } else { %> <% } %>
|
|
</TD>
|
|
</TR></TABLE><BR>
|
|
|
|
<%-- Display the results of the search --%>
|
|
<TABLE BORDER=0 ALIGN=LEFT CELLPADDING=0 CELLSPACING=4>
|
|
<% if (data.testDisplayMode(FindView.FD_POSTS) && (dcount>0)) { %>
|
|
<TR VALIGN=TOP>
|
|
<TH ALIGN=LEFT CLASS="CONTENT">
|
|
<util:font color="content.fg" size="content"><B><U>Post Link</U></B></util:font>
|
|
</TH>
|
|
<TH ALIGN=LEFT CLASS="CONTENT">
|
|
<util:font color="content.fg" size="content"><B><U>Author</U></B></util:font>
|
|
</TH>
|
|
<TH ALIGN=LEFT CLASS="CONTENT">
|
|
<util:font color="content.fg" size="content"><B><U>Post Date</U></B></util:font>
|
|
</TH>
|
|
<TH ALIGN=LEFT CLASS="CONTENT">
|
|
<util:font color="content.fg" size="content"><B><U>Lines</U></B></util:font>
|
|
</TH>
|
|
<TH ALIGN=LEFT CLASS="CONTENT"> </TH>
|
|
</TR>
|
|
<% } // end if %>
|
|
<% for (int i=0; i<dcount; i++) { %>
|
|
<TR VALIGN=TOP>
|
|
<% if (data.testDisplayMode(FindView.FD_POSTS)) { %>
|
|
<% TopicMessageFound post = (TopicMessageFound)(results.get(i)); %>
|
|
<TD ALIGN=LEFT CLASS="content"><util:font color="content.fg" size="content">
|
|
<util:xlink>
|
|
<util:href type="servlet">go/<%= post.getIdentifier() %></util:href>
|
|
<util:text><%= post.getIdentifier() %></util:text>
|
|
</util:xlink>
|
|
</util:font></TD>
|
|
<TD ALIGN=LEFT CLASS="content"><util:font color="content.fg" size="content">
|
|
<util:xlink>
|
|
<util:href type="servlet">user/<%= post.getAuthor() %></util:href>
|
|
<util:text><%= post.getAuthor() %></util:text>
|
|
</util:xlink>
|
|
</util:font></TD>
|
|
<TD ALIGN=LEFT CLASS="content" NOWRAP><util:font color="content.fg" size="content">
|
|
<%= data.formatDate(post.getPostDate()) %>
|
|
</util:font></TD>
|
|
<TD ALIGN=LEFT CLASS="content"><util:font color="content.fg" size="content">
|
|
<%= post.getLineCount() %>
|
|
</util:font></TD>
|
|
<TD ALIGN=LEFT CLASS="content"><util:font color="content.fg" size="content">
|
|
<util:escape><%= post.getText() %></util:escape>
|
|
</util:font></TD>
|
|
<% } else { %>
|
|
<TD ALIGN=CENTER WIDTH=14><util:stdbullet/></TD>
|
|
<TD ALIGN=LEFT CLASS="content"><util:font color="content.fg" size="content">
|
|
<% Object item = results.get(i); %>
|
|
<% if (data.testDisplayMode(FindView.FD_COMMUNITIES)) { %>
|
|
<%
|
|
CommunityContext comm = (CommunityContext)item;
|
|
String host_name = FindView.getCommunityHostName(comm);
|
|
int members = FindView.getCommunityMemberCount(comm);
|
|
%>
|
|
<util:xlink>
|
|
<util:href type="servlet">sig/<%= comm.getAlias() %></util:href>
|
|
<util:text><util:escape><%= comm.getName() %></util:escape></util:text>
|
|
</util:xlink><BR>
|
|
<% if (host_name!=null) { %>
|
|
Host:
|
|
<util:xlink>
|
|
<util:href type="servlet">user/<%= host_name %></util:href>
|
|
<util:text><%= host_name %></util:text>
|
|
</util:xlink>
|
|
<% } // end if (got host name) %>
|
|
<% if (members>=0) { %>
|
|
<% if (host_name!=null) { %> - <% } %>
|
|
<%= members %> members
|
|
<% } // end if (got member count) %>
|
|
<% if ((host_name!=null) || (members>=0)) { %><BR><% } %>
|
|
Latest activity: <%= data.getActivityString(comm.getLastAccessDate()) %><BR>
|
|
<EM><util:escape><%= comm.getSynopsis() %></util:escape></EM>
|
|
<% } else if (data.testDisplayMode(FindView.FD_USERS)) { %>
|
|
<% UserFound uf = (UserFound)item; %>
|
|
<util:xlink>
|
|
<util:href type="servlet">user/<%= uf.getName() %></util:href>
|
|
<util:text><%= uf.getName() %></util:text>
|
|
</util:xlink><BR>
|
|
<util:escape><%= uf.getGivenName() %></util:escape>
|
|
<util:escape><%= uf.getFamilyName() %></util:escape>,
|
|
from <util:escape><%= uf.getLocality() %></util:escape>,
|
|
<util:escape><%= uf.getRegion() %></util:escape> <%= uf.getCountry() %>
|
|
<% if (uf.getDescription()!=null) { %>
|
|
<BR><EM><util:escape><%= uf.getDescription() %></util:escape></EM>
|
|
<% } // end if %>
|
|
<% } else if (data.testDisplayMode(FindView.FD_CATEGORIES)) { %>
|
|
<% CategoryDescriptor cd = (CategoryDescriptor)item; %>
|
|
<util:xlink>
|
|
<util:href type="servlet">find.js.vs?disp=<%= FindView.FD_COMMUNITIES %>&cat=<%= cd.getLinkedCategoryID() %></util:href>
|
|
<util:text><util:escape><%= cd.toString() %></util:escape></util:text>
|
|
</util:xlink>
|
|
<% } // end if %>
|
|
</util:font></TD>
|
|
<% } // end if %>
|
|
</TR>
|
|
<% } // end for %>
|
|
</TABLE><BR CLEAR=LEFT>
|
|
<% } // end if (results found) %>
|