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: <formwidget id="search_text"> -</formtemplate> + <formtemplate id="search"> + <formwidget id="forum_id"> + Search: <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> + </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> </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> + + </if> + <else> </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@> + <a href="forum-view?forum_id=@forum_id@&page=@info.next_page@"> + <b>Next</b> + </a> + </if> + <else> </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> </else> - <br> + <if @info.next_group@ not nil> + + <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> + + </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> </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> + + </if> + <else> </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@> + <a href="forum-view?forum_id=@forum_id@&page=@info.next_page@"> + <b>Next</b> + </a> + </if> + <else> </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> </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> + + <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 \