Index: openacs.org-dev/packages/forums/www/forum-view-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs.org-dev/packages/forums/www/forum-view-oracle.xql,v
diff -u -r1.1 -r1.2
--- openacs.org-dev/packages/forums/www/forum-view-oracle.xql	9 Jul 2002 17:35:09 -0000	1.1
+++ openacs.org-dev/packages/forums/www/forum-view-oracle.xql	9 Aug 2002 18:11:22 -0000	1.2
@@ -11,12 +11,12 @@
                    fm.posting_date,
                    fm.state,
                    (select count(*)
-                    from forums_messages_approved fm1
+                    from $forums_table fm1
                     where fm1.forum_id = :forum_id
                     and fm1.tree_sortkey between tree.left(fm.tree_sortkey) and tree.right(fm.tree_sortkey)) as n_messages,
                    to_char(acs_objects.last_modified, 'Mon DD YYYY HH24:MI:SS') as last_modified,
                    case when acs_objects.last_modified > (sysdate - 1) then 't' else 'f' end as new_p                   
-            from forums_messages_approved fm,
+            from $forums_table fm,
                  acs_objects
             where fm.forum_id = :forum_id
             and fm.parent_id is null
@@ -25,7 +25,7 @@
         </querytext>
     </fullquery>
 
-    <fullquery name="messages_select_moderator">
+    <partialquery name="display_partial_data">
         <querytext>
             select fm.message_id,
                    fm.subject,
@@ -34,18 +34,19 @@
                    fm.posting_date,
                    fm.state,
                    (select count(*)
-                    from forums_messages fm1
+                    from $forums_table fm1
                     where fm1.forum_id = :forum_id
                     and fm1.tree_sortkey between tree.left(fm.tree_sortkey) and tree.right(fm.tree_sortkey)) as n_messages,
                    to_char(acs_objects.last_modified, 'Mon DD YYYY HH24:MI:SS') as last_modified,
                    case when acs_objects.last_modified > (sysdate - 1) then 't' else 'f' end as new_p                   
-            from forums_messages fm,
+            from $forums_table fm,
                  acs_objects
             where fm.forum_id = :forum_id
             and fm.parent_id is null
             and fm.message_id = acs_objects.object_id
+            and fm.message_id IN (CURRENT_PAGE_SET)
             order by fm.posting_date desc
         </querytext>
-    </fullquery>
+    </partialquery>
 
 </queryset>
Index: openacs.org-dev/packages/forums/www/forum-view-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs.org-dev/packages/forums/www/forum-view-postgresql.xql,v
diff -u -r1.1 -r1.2
--- openacs.org-dev/packages/forums/www/forum-view-postgresql.xql	9 Jul 2002 17:35:09 -0000	1.1
+++ openacs.org-dev/packages/forums/www/forum-view-postgresql.xql	9 Aug 2002 18:11:22 -0000	1.2
@@ -11,12 +11,12 @@
                    fm.posting_date,
                    fm.state,
                    (select count(*)
-                    from forums_messages_approved fm1
+                    from $forums_table fm1
                     where fm1.forum_id = :forum_id
                     and fm1.tree_sortkey between tree_left(fm.tree_sortkey) and tree_right(fm.tree_sortkey)) as n_messages,
                    to_char(acs_objects.last_modified, 'Mon DD YYYY HH24:MI:SS') as last_modified,
                    case when acs_objects.last_modified > (now() - 1) then 't' else 'f' end as new_p                   
-            from forums_messages_approved fm,
+            from $forums_table fm,
                  acs_objects
             where fm.forum_id = :forum_id
             and fm.parent_id is null
@@ -25,7 +25,7 @@
         </querytext>
     </fullquery>
 
-    <fullquery name="messages_select_moderator">
+    <partialquery name="display_data_partial">
         <querytext>
             select fm.message_id,
                    fm.subject,
@@ -34,18 +34,19 @@
                    fm.posting_date,
                    fm.state,
                    (select count(*)
-                    from forums_messages fm1
+                    from $forums_table fm1
                     where fm1.forum_id = :forum_id
                     and fm1.tree_sortkey between tree_left(fm.tree_sortkey) and tree_right(fm.tree_sortkey)) as n_messages,
                    to_char(acs_objects.last_modified, 'Mon DD YYYY HH24:MI:SS') as last_modified,
                    case when acs_objects.last_modified > (now() - 1) then 't' else 'f' end as new_p                   
-            from forums_messages fm,
+            from $forums_table fm,
                  acs_objects
             where fm.forum_id = :forum_id
             and fm.parent_id is null
             and fm.message_id = acs_objects.object_id
+            and fm.message_id IN (CURRENT_PAGE_SET)
             order by fm.posting_date desc
         </querytext>
-    </fullquery>
+    </partialquery>
 
 </queryset>
Index: openacs.org-dev/packages/forums/www/forum-view.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs.org-dev/packages/forums/www/forum-view.adp,v
diff -u -r1.1 -r1.2
--- openacs.org-dev/packages/forums/www/forum-view.adp	9 Jul 2002 17:35:09 -0000	1.1
+++ openacs.org-dev/packages/forums/www/forum-view.adp	9 Aug 2002 18:11:22 -0000	1.2
@@ -2,93 +2,205 @@
 <property name="title">Forum: @forum.name@</property>
 <property name="context_bar">@context_bar@</property>
 
+<if @messages:rowcount@ gt 0>
+
 <center>
 
-  <table cellpadding="5" width="95%">
-
-<if @moderate_p@>
+  <table width="95%">
     <tr>
-      <td colspan="3">
-        <nobr><small>[
-</if>
-
-<if @admin_p@>
-          <a href="admin/forum-edit?forum_id=@forum_id@">Administer</a> | 
-</if>
-
-<if @moderate_p@>
+      <td style="white-space: nowrap; font-size: x-small; line-height: 150%">
+        <if @moderate_p@>
+        [
+          <if @admin_p@>
+            <a href="admin/forum-edit?forum_id=@forum_id@">Administer</a> |
+          </if>
           <a href="moderate/forum?forum_id=@forum_id@">Manage/Moderate</a>
-</if>
+        ]       
+        </if>
 
-<if @moderate_p@>
-        ]</small></nobr>
-        <br><br>
+        <br>
+  
+        @notification_chunk@
+  
+        <br>
+  
+        <if @post_p@>
+          [ <a href="message-post?forum_id=@forum_id@">Post a New Message</a> ]
+        </if>
       </td>
       <td align="right">
-<formtemplate id="search">
-        <formwidget id="forum_id">
-        Search:&nbsp;<formwidget id="search_text">
-</formtemplate>
+        <formtemplate id="search">
+          <formwidget id="forum_id">
+            Search:&nbsp;<formwidget id="search_text">
+          </formtemplate>
       </td>
     </tr>
-</if>
-
+  
+    </table>
+  
+    <br>
+ 
+    <!-- pagination context bar -->
+    <table cellpadding=4 cellspacing=0 border=0 width="95%">
     <tr>
-      <td colspan="4">
-        @notification_chunk@
-        <br><br>
-        <if @post_p@>
-          <nobr><small>[ <a href="message-post?forum_id=@forum_id@">Post a New Message</a> ]</small></nobr>
+      <td align=left width="5%">
+        <if @info.previous_group@ not nil>
+          <a href="forum-view?forum_id=@forum_id@&page=@info.previous_group@">
+            <img src="/templates/images/nav_previous.jpg" border="0" alt="<" width="16" height="26">
+            <img src="/templates/images/nav_previous.jpg" border="0" alt="<" width="16" height="26"></a>
+          &nbsp;&nbsp;
         </if>
+        <if @info.previous_page@ gt 0>
+          <a href="forum-view?forum_id=@forum_id@&page=@info.previous_page@">
+            <img src="/templates/images/nav_previous.jpg" border="0" alt="<" width="16" height="26"></a>
+        </if>
+        <else>&nbsp;</else>
       </td>
-    </tr>
+    
+      <td align=center>
+        <if @info.previous_page@ gt 0>
+          <a href="forum-view?forum_id=@forum_id@&page=@info.previous_page@">
+            <b>Previous</b></a>
+          &nbsp;
+        </if>
+        <else>&nbsp;</else>
+      <multiple name=pages>
+        <if @page@ ne @pages.page@>
+          <a href="forum-view?forum_id=@forum_id@&page=@pages.page@">@pages.page@</a>
+        </if>
+        <else>
+          @page@
+        </else>
+      </multiple>
+        <if @page@ lt @info.page_count@>
+          &nbsp; <a href="forum-view?forum_id=@forum_id@&page=@info.next_page@">
+            <b>Next</b>
+          </a>
+        </if>
+        <else>&nbsp;</else>
+      </td>
 
-  </table>
+      <td align=right width="5%">
+        <if @page@ lt @info.page_count@>
+          <a href="forum-view?forum_id=@forum_id@&page=@info.next_page@">
+            <img src="/templates/images/nav_next.jpg" border="0" alt=">" width="17" height="26"></a>
+        </if>
+        <else>&nbsp;</else>
 
-  <br>
+        <if @info.next_group@ not nil>
+          &nbsp;&nbsp;
+          <a href="forum-view?forum_id=@forum_id@&page=@info.next_group@">
+            <img src="/templates/images/nav_next.jpg" border="0" alt=">" width="17" height="26">
+            <img src="/templates/images/nav_next.jpg" border="0" alt=">" width="17" height="26"></a>
+        </if>
+      </td>
+    </tr>
+    </table>
+    <!-- end pagination -->
 
-  <table bgcolor="#cccccc" cellpadding="5" width="95%">
+ 
+    <table style="color: black; background-color: @table_border_color@;" width="95%">
+  
+      <tr>
+        <th align="left" width="55%">Subject</th>
+        <th align="left" width="20%">Author</th>
+        <th align="center" width="5%">Replies</th>
+        <th align="center" width="20%">Last Post</th>
+      </tr>
+  
+        <multiple name="messages">
+          <if @messages.rownum@ odd>
+            <tr style="color: black; background-color: @table_bgcolor@;" >
+          </if>
+          <else>
+            <tr style="color: black; background-color: @table_other_bgcolor@;">
+          </else>
+  
+          <td style="padding: 4px;">
+            <if @messages.new_p@>
+              <strong>
+            </if>
+              <a href="message-view?message_id=@messages.message_id@">@messages.subject@</a> 
+            <if @messages.new_p@>
+              </strong>
+            </if>
+            <if @moderate_p@ and @messages.state@ ne approved>
+              <small>(@messages.state@)</small>
+            </if>
+          </td>
+          <td style="padding: 4px;"><a href="user-history?user_id=@messages.user_id@">@messages.user_name@</a></td>
+          <td align="center" style="padding: 4px;">@messages.n_messages@</td>
+          <td align="center" style="padding: 4px;">@messages.last_modified@</td>
+          
+            </tr>
+        </multiple>
+      </if>
+      <else>
+        <tr bgcolor="@table_bgcolor@">
+          <td colspan="4"><strong>No Messages</strong></td>
+        </tr>
+      </else>
+  
+    </table>
+  
+    <br>
 
+    <!-- pagination context bar -->
+    <table cellpadding=4 cellspacing=0 border=0 width="95%">
     <tr>
-      <th align="left" width="55%">Subject</th>
-      <th align="left" width="20%">Author</th>
-      <th align="center" width="5%">Replies</th>
-      <th align="center" width="20%">Last Post</th>
-    </tr>
+      <td align=left width="5%">
+        <if @info.previous_group@ not nil>
+          <a href="forum-view?forum_id=@forum_id@&page=@info.previous_group@">
+            <img src="/templates/images/nav_previous.jpg" border="0" alt="<" width="16" height="26">
+            <img src="/templates/images/nav_previous.jpg" border="0" alt="<" width="16" height="26"></a>
+          &nbsp;&nbsp;
+        </if>
+        <if @info.previous_page@ gt 0>
+          <a href="forum-view?forum_id=@forum_id@&page=@info.previous_page@">
+            <img src="/templates/images/nav_previous.jpg" border="0" alt="<" width="16" height="26"></a>
+        </if>
+        <else>&nbsp;</else>
+      </td>
+    
+      <td align=center>
+        <if @info.previous_page@ gt 0>
+          <a href="forum-view?forum_id=@forum_id@&page=@info.previous_page@">
+            <b>Previous</b></a>
+          &nbsp;
+        </if>
+        <else>&nbsp;</else>
+      <multiple name=pages>
+        <if @page@ ne @pages.page@>
+          <a href="forum-view?forum_id=@forum_id@&page=@pages.page@">@pages.page@</a>
+        </if>
+        <else>
+          @page@
+        </else>
+      </multiple>
+        <if @page@ lt @info.page_count@>
+          &nbsp; <a href="forum-view?forum_id=@forum_id@&page=@info.next_page@">
+            <b>Next</b>
+          </a>
+        </if>
+        <else>&nbsp;</else>
+      </td>
 
-<if @messages:rowcount@ gt 0>
-<multiple name="messages">
+      <td align=right width="5%">
+        <if @page@ lt @info.page_count@>
+          <a href="forum-view?forum_id=@forum_id@&page=@info.next_page@">
+            <img src="/templates/images/nav_next.jpg" border="0" alt=">" width="17" height="26"></a>
+        </if>
+        <else>&nbsp;</else>
 
-  <if @messages.rownum@ odd>
-    <tr bgcolor="#eeeeee">
-  </if>
-  <else>
-    <tr bgcolor="#d9e4f9">
-  </else>
-
-      <td>
-        <if @messages.new_p@><b></if>
-        <a href="message-view?message_id=@messages.message_id@">@messages.subject@</a> 
-        <if @messages.new_p@></b></if>
-<if @moderate_p@ and @messages.state@ ne approved>
-        <small>(@messages.state@)</small>
-</if>
+        <if @info.next_group@ not nil>
+          &nbsp;&nbsp;
+          <a href="forum-view?forum_id=@forum_id@&page=@info.next_group@">
+            <img src="/templates/images/nav_next.jpg" border="0" alt=">" width="17" height="26">
+            <img src="/templates/images/nav_next.jpg" border="0" alt=">" width="17" height="26"></a>
+        </if>
       </td>
-      <td><a href="user-history?user_id=@messages.user_id@">@messages.user_name@</a></td>
-      <td align="center">@messages.n_messages@</td>
-      <td align="center">@messages.last_modified@</td>
     </tr>
+    </table>
+    <!-- end pagination -->
 
-</multiple>
-</if>
-<else>
-    <tr bgcolor="#eeeeee">
-      <td colspan="4">
-        <i>No Messages</i>
-      </td>
-    </tr>
-</else>
-
-  </table>
-
 </center>
Index: openacs.org-dev/packages/forums/www/forum-view.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs.org-dev/packages/forums/www/forum-view.tcl,v
diff -u -r1.1 -r1.2
--- openacs.org-dev/packages/forums/www/forum-view.tcl	9 Jul 2002 17:35:09 -0000	1.1
+++ openacs.org-dev/packages/forums/www/forum-view.tcl	9 Aug 2002 18:11:22 -0000	1.2
@@ -3,15 +3,23 @@
     one forum view
 
     @author Ben Adida (ben@openforce.net)
+    @author Paginator stuff added by Roberto Mello (rmello@fslc.usu.edu)
     @creation-date 2002-05-24
     @version $Id$
 
-} -query {
+} {
+    {page 1}
     forum_id:integer,notnull
 }
 
+
 forum::security::require_read_forum -forum_id $forum_id
 
+# get the colors from the params
+set table_border_color [parameter::get -parameter table_border_color]
+set table_bgcolor [parameter::get -parameter table_bgcolor]
+set table_other_bgcolor [parameter::get -parameter table_other_bgcolor]
+
 set package_id [ad_conn package_id]
 set user_id [ad_verify_and_get_user_id]
 set admin_p [forum::security::can_admin_forum_p -forum_id $forum_id]
@@ -33,8 +41,7 @@
 element create search search_text \
     -label Search \
     -datatype text \
-    -widget text \
-    -html {size 60}
+    -widget text
 
 element create search forum_id \
     -label ForumID \
@@ -52,12 +59,24 @@
 }
 
 set query messages_select
+set forums_table forums_messages_approved
+
 if {$moderate_p} {
-    set query messages_select_moderator
+    set forums_table forums_messages
 }
 
-db_multirow messages $query {}
+# paginator stuff
+paginator create $query paginated_messages "" -pagesize 30 -groupsize 10 -contextual
 
+paginator get_data display_data paginated_messages messages "" message_id $page
+
+paginator get_display_info paginated_messages info $page
+
+set group [paginator get_group paginated_messages $page]
+
+paginator get_context paginated_messages pages [paginator get_pages paginated_messages $group]
+paginator get_context paginated_messages groups [paginator get_groups paginated_messages $group 10]
+
 set notification_chunk [notification::display::request_widget \
     -type forums_forum_notif \
     -object_id $forum_id \