<%-- 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.*" %> <%@ page import = "com.silverwrist.util.StringUtil" %> <%@ page import = "com.silverwrist.venice.core.*" %> <%@ page import = "com.silverwrist.venice.servlets.Variables" %> <%@ page import = "com.silverwrist.venice.servlets.format.*" %> <% TopicPosts data = TopicPosts.retrieve(request); Variables.failIfNull(data); RenderData rdat = RenderConfig.createRenderData(application,request,response); %> <% if (rdat.useHTMLComments()) { %><!-- <%= data.getIdentifyingData() %> --><% } %> <SPAN CLASS="chead1"><%= rdat.getStdFontTag(ColorSelectors.CONTENT_HEADER,5) %><B> <%= data.getTopicName() %> </B></FONT></SPAN> <SPAN CLASS="chead2"><%= rdat.getStdFontTag(ColorSelectors.CONTENT_HEADER,3) %><B> <% if (data.isTopicArchived()) { %>(Archived)<% } else if (data.isTopicFrozen()) { %>(Frozen)<% } %> <%= data.getTotalMessages() %> Total; <%= data.getNewMessages() %> New; Last: <%= rdat.formatDateForDisplay(data.getLastUpdate()) %> </B></FONT></SPAN> <HR ALIGN=LEFT SIZE=2 WIDTH="90%" NOSHADE> <TABLE BORDER=0 WIDTH="100%" CELLPADDING=0 CELLSPACING=0> <TR VALIGN=BOTTOM> <TD NOWRAP ALIGN=LEFT CLASS="content"> <% if (rdat.useHTMLComments()) { %><!-- Topic user controls section --><% } %> <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getConfLocator()) %>"><IMG SRC="<%= rdat.getFullImagePath("bn_topic_list.gif") %>" ALT="Topic List" WIDTH=80 HEIGHT=24 BORDER=0></A> <% if (data.isTopicHidden()) { %> <A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=HN") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_show_topic.gif") %>" ALT="Show Topic" WIDTH=80 HEIGHT=24 BORDER=0></A> <% } else { %> <A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=HY") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_hide_topic.gif") %>" ALT="Hide Topic" WIDTH=80 HEIGHT=24 BORDER=0></A> <% } // end if %> <% if (data.canDoNextTopic()) { %> <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getNextLocator() + "&rnm=1") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_next_topic.gif") %>" ALT="Next Topic" WIDTH=80 HEIGHT=24 BORDER=0></A> <% if (data.getNewMessages()>0) { %> <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getNextLocator() + "&" + data.getRestoreLocator() + "&rnm=1") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_next_keep_new.gif") %>" ALT="Next & Keep New" WIDTH=80 HEIGHT=24 BORDER=0></A> <% } // end if %> <% } // end if %> </TD> <TD NOWRAP ALIGN=RIGHT CLASS="content"> <% if (rdat.useHTMLComments()) { %><!-- Topic admin controls section --><% } %> <% if (data.canFreezeTopic()) { %> <% if (data.isTopicFrozen()) { %> <A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=FN") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_unfreeze_topic.gif") %>" ALT="Unfreeze Topic" WIDTH=80 HEIGHT=24 BORDER=0></A> <% } else { %> <A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=FY") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_freeze_topic.gif") %>" ALT="Freeze Topic" WIDTH=80 HEIGHT=24 BORDER=0></A> <% } // end if %> <% } // end if %> <% if (data.canArchiveTopic()) { %> <% if (data.isTopicArchived()) { %> <A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=AN") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_unarchive_topic.gif") %>" ALT="Unarchive Topic" WIDTH=80 HEIGHT=24 BORDER=0></A> <% } else { %> <A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=AY") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_archive_topic.gif") %>" ALT="Archive Topic" WIDTH=80 HEIGHT=24 BORDER=0></A> <% } // end if %> <% } // end if %> <% if (data.canDeleteTopic()) { %> <A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=DEL") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_delete_topic.gif") %>" ALT="Delete Topic" WIDTH=80 HEIGHT=24 BORDER=0></A> <% } // end if %> </TD> </TR> <TR><TD COLSPAN=2> </TD></TR> <TR VALIGN=BOTTOM> <TD NOWRAP ALIGN=LEFT CLASS="content"> <% if (rdat.useHTMLComments()) { %><!-- Go box --><% } %> <FORM METHOD="GET" ACTION="<%= rdat.getEncodedServletPath("confdisp") %>"><DIV CLASS="content"> <INPUT TYPE="HIDDEN" NAME="sig" VALUE="<%= data.getSIGID() %>"> <INPUT TYPE="HIDDEN" NAME="conf" VALUE="<%= data.getConfID() %>"> <INPUT TYPE="HIDDEN" NAME="top" VALUE="<%= data.getTopicNumber() %>"> <SPAN CLASS="cinput"><INPUT TYPE="TEXT" CLASS="cinput" NAME="pxg" VALUE="" SIZE=6 MAXLENGTH=13></SPAN> <INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_go.gif") %>" NAME="Go" ALT="Go" ALIGN=BOTTOM WIDTH=80 HEIGHT=24 BORDER=0> </DIV></FORM> </TD> <TD NOWRAP ALIGN=RIGHT CLASS="content"><%= rdat.getStdFontTag(ColorSelectors.CONTENT_FOREGROUND,2) %> <% if (rdat.useHTMLComments()) { %><!-- Upper navigation linkset --><% } %> <A NAME="top">[</A> <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getLocator() + "&p1=0&p2=-1") %>">View All</A> <% if (data.canScrollUp()) { %> | <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getLocator() + "&" + data.getScrollUpLocator()) %>">Scroll Up <%= data.getNumPostsPerPage() %></A> <% } // end if %> <% if (data.canScrollDown()) { %> | <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getLocator() + "&" + data.getScrollDownLocator()) %>">Scroll Down <%= data.getNumPostsPerPage() %></A> <% } // end if %> <% if (data.canScrollDown()) { %> | <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getLocator() + "&" + data.getScrollToEndLocator()) %>">Scroll To End</A> <% } // end if %> | <A HREF="#bottom">Bottom</A> ] </FONT></TD> </TR> </TABLE> <% if (rdat.useHTMLComments()) { %><!-- Begin Actual Messages --><% } %> <% Iterator it = data.getMessageIterator(); String last_post = rdat.getEncodedServletPath("confdisp?" + data.getLocator() + "&shac=1&p1=" + String.valueOf(data.getTotalMessages() - 1)); boolean can_line = false; %> <% while (it.hasNext()) { %> <% TopicMessageContext msg = (TopicMessageContext)(it.next()); String poster = data.getPosterName(msg); %> <% if (can_line && data.emitBreakLinePoint(msg.getPostNumber())) { %><HR WIDTH="70%"><% } %> <% if (data.showAdvanced()) { %> <BR> <TABLE WIDTH="100%" BORDER=0 CELLPADDING=0 CELLSPACING=0><TR VALIGN=TOP><TD NOWRAP ALIGN=LEFT CLASS="content"> <% } // end if %> <%= rdat.getStdFontTag(ColorSelectors.CONTENT_FOREGROUND,2) %> <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getLocator() + "&shac=1&p1=" + msg.getPostNumber()) %>"><%= msg.getPostNumber() %></A> of <A HREF="<%= last_post %>"><%= data.getTotalMessages() - 1 %></A> <%= rdat.getStdFontTag(ColorSelectors.CONTENT_FOREGROUND,1) %><<%= data.getMessageReference(msg) %>></FONT> <% if (data.showAdvanced() && msg.isHidden()) { %> <B><EM>(Hidden)</EM></B> <% } // end if %> <BR> <B><%= msg.getPseud() %></B> (<EM> <A HREF="<%= rdat.getEncodedServletPath("user/" + poster) %>" TARGET="_blank"><%= poster %></A>, <%= rdat.formatDateForDisplay(msg.getPostDate()) %> </EM>) <% if (msg.hasAttachment()) { %> <A HREF="<%= rdat.getEncodedServletPath("attachment?" + data.getConfLocator() + "&msg=" + msg.getPostID()) %>" <% if (data.displayAttachmentInNewWindow(msg)) { %>TARGET="_blank"<% } %> ><IMG SRC="<%= rdat.getFullImagePath("attachment.gif") %>" ALT="(Attachment <%= msg.getAttachmentFilename() %> - <%= msg.getAttachmentLength() %> bytes)" WIDTH=16 HEIGHT=16 BORDER=0></A> <% } // end if %> </FONT><P><FONT COLOR="<%= rdat.getStdColor(ColorSelectors.CONTENT_FOREGROUND) %>"> <% if (msg.isScribbled()) { %> <SPAN CLASS="post"><TT><EM><B> (Scribbled by <%= data.getMessageBodyText(msg) %> on <%= rdat.formatDateForDisplay(msg.getScribbleDate()) %>) </B></EM></TT></SPAN><P> <% } else if (msg.isHidden() && !(data.showAdvanced())) { %> <SPAN CLASS="post"><TT><EM><B> <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getLocator() + "&shac=1&p1=" + msg.getPostNumber()) %>">(Hidden Message: <%= msg.getNumLines() %> <% if (msg.getNumLines()==1) { %>Line<% } else { %>Lines<% } %>)</A> </B></EM></TT></SPAN><P> <% } else { %> <PRE CLASS="post"><%= rdat.rewritePostData(data.getMessageBodyText(msg)) %></PRE> <% } // end if %> </FONT> <% if (data.showAdvanced()) { %> <% String po_loc = data.getLocator() + "&msg=" + msg.getPostNumber(); %> </TD><TD NOWRAP ALIGN=RIGHT CLASS="content"> <% if (!(msg.isScribbled())) { %> <% if (msg.canHide()) { %> <% if (msg.isHidden()) { %> <A HREF="<%= rdat.getEncodedServletPath("postops?" + po_loc + "&cmd=HN") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_show.gif") %>" ALT="Show" WIDTH=80 HEIGHT=24 BORDER=0></A><P> <% } else { %> <A HREF="<%= rdat.getEncodedServletPath("postops?" + po_loc + "&cmd=HY") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_hide.gif") %>" ALT="Hide" WIDTH=80 HEIGHT=24 BORDER=0></A><P> <% } // end if %> <% } // end if (can hide) %> <% if (msg.canScribble()) { %> <A HREF="<%= rdat.getEncodedServletPath("postops?" + po_loc + "&cmd=SCR") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_scribble.gif") %>" ALT="Scribble" WIDTH=80 HEIGHT=24 BORDER=0></A><P> <% } // end if (can scribble) %> <% } // end if (not already scribbled) %> <% if (msg.canNuke()) { %> <A HREF="<%= rdat.getEncodedServletPath("postops?" + po_loc + "&cmd=NUKE") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_nuke.gif") %>" ALT="Nuke" WIDTH=80 HEIGHT=24 BORDER=0></A><P> <% } // end if (can nuke) %> <% if (msg.canPublish()) { %> <A HREF="<%= rdat.getEncodedServletPath("postops?" + po_loc + "&cmd=PU") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_publish.gif") %>" ALT="Publish" WIDTH=80 HEIGHT=24 BORDER=0></A><P> <% } // end if (can publish) %> </TD></TR></TABLE><BR> <% } // end if (showing advanced controls) %> <% can_line = true; %> <% } // end while %> <% if (rdat.useHTMLComments()) { %><!-- End Actual Messages --><% } %> <TABLE BORDER=0 WIDTH="100%" CELLPADDING=0 CELLSPACING=0> <TR VALIGN=BOTTOM> <TD NOWRAP ALIGN=LEFT> </TD> <TD NOWRAP ALIGN=RIGHT CLASS="content"><%= rdat.getStdFontTag(ColorSelectors.CONTENT_FOREGROUND,2) %> <% if (rdat.useHTMLComments()) { %><!-- Lower navigation linkset --><% } %> <A NAME="bottom">[</A> <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getLocator() + "&p1=0&p2=-1") %>">View All</A> <% if (data.canScrollUp()) { %> | <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getLocator() + "&" + data.getScrollUpLocator()) %>">Scroll Up <%= data.getNumPostsPerPage() %></A> <% } // end if %> <% if (data.canScrollDown()) { %> | <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getLocator() + "&" + data.getScrollDownLocator()) %>">Scroll Down <%= data.getNumPostsPerPage() %></A> <% } // end if %> <% if (data.canScrollDown()) { %> | <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getLocator() + "&" + data.getScrollToEndLocator()) %>">Scroll To End</A> <% } // end if %> | <A HREF="#top">Top</A> ] </FONT></TD> </TR> <TR VALIGN=BOTTOM> <TD NOWRAP ALIGN=LEFT CLASS="content"> <% if (rdat.useHTMLComments()) { %><!-- Topic user controls section --><% } %> <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getConfLocator()) %>"><IMG SRC="<%= rdat.getFullImagePath("bn_topic_list.gif") %>" ALT="Topic List" WIDTH=80 HEIGHT=24 BORDER=0></A> <% if (data.isTopicHidden()) { %> <A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=HN") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_show_topic.gif") %>" ALT="Show Topic" WIDTH=80 HEIGHT=24 BORDER=0></A> <% } else { %> <A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=HY") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_hide_topic.gif") %>" ALT="Hide Topic" WIDTH=80 HEIGHT=24 BORDER=0></A> <% } // end if %> <% if (data.canDoNextTopic()) { %> <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getNextLocator() + "&rnm=1") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_next_topic.gif") %>" ALT="Next Topic" WIDTH=80 HEIGHT=24 BORDER=0></A> <% if (data.getNewMessages()>0) { %> <A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getNextLocator() + "&" + data.getRestoreLocator() + "&rnm=1") %>"><IMG SRC="<%= rdat.getFullImagePath("bn_next_keep_new.gif") %>" ALT="Next & Keep New" WIDTH=80 HEIGHT=24 BORDER=0></A> <% } // end if %> <% } // end if %> </TD> <TD NOWRAP ALIGN=RIGHT> </TD> </TR> </TABLE> <% if (data.displayPostBox()) { %> <HR><SPAN STYLE="font-size: 14pt;"><%= rdat.getStdFontTag(ColorSelectors.CONTENT_FOREGROUND,3) %> <B>Post Message in "<%= data.getTopicName() %>":</B> </FONT></SPAN> <BR> <FORM METHOD="POST" ACTION="<%= rdat.getEncodedServletPath("post") %>"><DIV CLASS="content"> <INPUT TYPE="HIDDEN" NAME="sig" VALUE="<%= data.getSIGID() %>"> <INPUT TYPE="HIDDEN" NAME="conf" VALUE="<%= data.getConfID() %>"> <INPUT TYPE="HIDDEN" NAME="top" VALUE="<%= data.getTopicNumber() %>"> <% if (data.canDoNextTopic()) { %> <INPUT TYPE="HIDDEN" NAME="next" VALUE="<%= data.getNextTopicNumber() %>"> <% } // end if %> <INPUT TYPE="HIDDEN" NAME="sd" VALUE="<%= data.getTotalMessages() %>"> <TABLE BORDER=0 CELLPADDING=0> <TR><TD ALIGN=LEFT COLSPAN=2 CLASS="content"> <%= rdat.getStdFontTag(ColorSelectors.CONTENT_FOREGROUND,2) %>Your name/header:</FONT><BR> <SPAN CLASS="cinput"><INPUT TYPE="TEXT" CLASS="cinput" NAME="pseud" SIZE=37 MAXLENGTH=255 VALUE="<%= data.getDefaultPseud() %>"></SPAN> <%= rdat.getStdFontTag(ColorSelectors.CONTENT_FOREGROUND,2) %><INPUT TYPE="CHECKBOX" NAME="attach" VALUE="Y"> Attach a file</FONT> </TD></TR> <TR> <TD ALIGN=LEFT CLASS="content"> <%= rdat.getStdFontTag(ColorSelectors.CONTENT_FOREGROUND,2) %>Message:</FONT> </TD> <TD ALIGN=RIGHT CLASS="content"><%= rdat.getStdFontTag(ColorSelectors.CONTENT_FOREGROUND,2) %> <A HREF="<%= rdat.getStaticFilePath("html-reference.html") %>" TARGET="_blank">HTML Guide</A> </FONT></TD> </TR> <TR><TD ALIGN=LEFT COLSPAN=2 CLASS="cinput"> <TEXTAREA NAME="pb" WRAP=SOFT ROWS=7 COLS=51></TEXTAREA> </TD></TR> <TR><TD ALIGN=CENTER COLSPAN=2 CLASS="content"> <INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_preview.gif") %>" ALT="Preview" NAME="preview" WIDTH=80 HEIGHT=24 BORDER=0> <INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_post_reload.gif") %>" ALT="Post & Reload" NAME="post" WIDTH=80 HEIGHT=24 BORDER=0> <% if (data.canDoNextTopic()) { %> <INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_post_go_next.gif") %>" ALT="Post & Go Next" NAME="postnext" WIDTH=80 HEIGHT=24 BORDER=0> <% } // end if %> <INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_post_go_topics.gif") %>" ALT="Post & Go Topics" NAME="posttopics" WIDTH=80 HEIGHT=24 BORDER=0> </TD></TR> </TABLE> </DIV></FORM> <% } else if (data.isTopicArchived()) { %> <DIV ALIGN=CENTER CLASS="content"><%= rdat.getStdFontTag(ColorSelectors.CONTENT_FOREGROUND,2) %><B>This is an <EM>Archived</EM> Topic</B></DIV> <% } else if (data.isTopicFrozen()) { %> <DIV ALIGN=CENTER CLASS="content"><%= rdat.getStdFontTag(ColorSelectors.CONTENT_FOREGROUND,2) %><B>This is a <EM>Frozen</EM> Topic</B></DIV> <% } // end if %>