diff options
author | lpsolit%gmail.com <> | 2005-04-09 09:37:50 +0200 |
---|---|---|
committer | lpsolit%gmail.com <> | 2005-04-09 09:37:50 +0200 |
commit | 61898d18479013cfbcc820ff25f39377db071536 (patch) | |
tree | b575fb4c72da32a5b641e9bad1fafd9499c5e9c1 | |
parent | 940a96d61b436ebc94de8023395ddbbc0d9c7272 (diff) | |
download | bugzilla-61898d18479013cfbcc820ff25f39377db071536.tar.gz bugzilla-61898d18479013cfbcc820ff25f39377db071536.tar.xz |
Bug 199048: Preference option to reverse sort the comments stack - Patch by Shane H. W. Travis <shane.h.w.travis@gmail.com> r=mkanat a=myk
-rwxr-xr-x | Bugzilla/Bug.pm | 12 | ||||
-rwxr-xr-x | checksetup.pl | 7 | ||||
-rwxr-xr-x | process_bug.cgi | 5 | ||||
-rw-r--r-- | template/en/default/bug/comments.html.tmpl | 51 | ||||
-rw-r--r-- | template/en/default/bug/edit.html.tmpl | 13 | ||||
-rw-r--r-- | template/en/default/global/setting-descs.none.tmpl | 10 |
6 files changed, 74 insertions, 24 deletions
diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 5017196b3..8accc452c 100755 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -761,7 +761,11 @@ sub ValidateTime { } sub GetComments { - my ($id) = (@_); + my ($id, $comment_sort_order) = (@_); + $comment_sort_order = $comment_sort_order || + Bugzilla->user->settings->{'comment_sort_order'}->{'value'}; + + my $sort_order = ($comment_sort_order eq "oldest_to_newest") ? 'asc' : 'desc'; my $dbh = Bugzilla->dbh; my @comments; my $sth = $dbh->prepare( @@ -774,7 +778,7 @@ sub GetComments { FROM longdescs, profiles WHERE profiles.userid = longdescs.who AND longdescs.bug_id = ? - ORDER BY longdescs.bug_when"); + ORDER BY longdescs.bug_when $sort_order"); $sth->execute($id); while (my $comment_ref = $sth->fetchrow_hashref()) { @@ -789,6 +793,10 @@ sub GetComments { push (@comments, \%comment); } + + if ($comment_sort_order eq "newest_to_oldest_desc_first") { + unshift(@comments, pop @comments); + } return \@comments; } diff --git a/checksetup.pl b/checksetup.pl index 44930ae73..ce9278f05 100755 --- a/checksetup.pl +++ b/checksetup.pl @@ -3953,6 +3953,13 @@ if ($dbh->bz_get_field_def('quips', 'approved')->[1] eq 'tinyint(1)') { 'tinyint not null default 1'); } +# 2005-03-10 travis@sedsystems.ca -- Bug 199048 +add_setting ("comment_sort_order", {"oldest_to_newest" => 1, + "newest_to_oldest" => 2, + "newest_to_oldest_desc_first" => 3}, + "oldest_to_newest" ); + + } # END LEGACY CHECKS # If you had to change the --TABLE-- definition in any way, then add your diff --git a/process_bug.cgi b/process_bug.cgi index e7d2de104..f85fd45d6 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -1334,7 +1334,10 @@ foreach my $id (@idlist) { $cgi->param('delta_ts')); $vars->{'start_at'} = $cgi->param('longdesclength'); - $vars->{'comments'} = Bugzilla::Bug::GetComments($id); + + # Always sort midair collision comments oldest to newest, + # regardless of the user's personal preference. + $vars->{'comments'} = Bugzilla::Bug::GetComments($id, "oldest_to_newest"); $cgi->param('delta_ts', $delta_ts); diff --git a/template/en/default/bug/comments.html.tmpl b/template/en/default/bug/comments.html.tmpl index 7a9dfb4ef..58eaa376c 100644 --- a/template/en/default/bug/comments.html.tmpl +++ b/template/en/default/bug/comments.html.tmpl @@ -18,21 +18,48 @@ # # Contributor(s): Gervase Markham <gerv@gerv.net> # Maxwell Kanat-Alexander <mkanat@kerio.com> + # Shane H. W. Travis <travis@sedsystems.ca> #%] +[% PROCESS bug/time.html.tmpl %] + [% DEFAULT start_at = 0 mode = "show" %] -[% count = 0 %] [% isinsider = Param("insidergroup") && UserInGroup(Param("insidergroup")) %] +[% sort_order = user.settings.comment_sort_order.value %] + +[%# NOTE: (start_at > 0) means we came here from a midair collision, + # in which case we don't care what the user's preference is. + %] +[% IF (start_at > 0) %] + [% sort_order = "oldest_to_newest" %] +[% END %] + + +[%# Set up the variables as needed, depending on the sort order %] +[% IF sort_order == "oldest_to_newest" %] + [% count = 0 %] + [% description = 0 %] + [% increment = 1 %] +[% ELSE %] + [% increment = -1 %] + [% IF sort_order == "newest_to_oldest" %] + [% count = comments.size - 1 %] + [% description = 0 %] + [% ELSIF sort_order == "newest_to_oldest_desc_first" %] + [% count = comments.size %] + [% description = comments.size %] + [% END %] +[% END %] + + [% FOREACH comment = comments %] [% IF count >= start_at %] [% PROCESS a_comment %] [% END %] - [% count = count + 1 %] + [% count = count + increment %] [% END %] -[% PROCESS bug/time.html.tmpl %] - [%# Note: this template is used in multiple places; if you use this hook, # make sure you are aware of this fact. #%] @@ -46,7 +73,21 @@ [% IF NOT comment.isprivate || isinsider %] <div [% "class=\"bz_private\" " IF comment.isprivate %] [% "class=\"bz_comment_hilite\" " IF marks.$count %]> - [% IF count > 0 %] + [% IF count == description %] + <table> + <tr> + <td align="left"> + <b><a name="c0" href="#c0">Description</a>:</b> <script + type="text/javascript"><!-- + addReplyLink(0); + //--></script> + </td> + <td align="left" width="30%"> + Opened: [% bug.creation_ts FILTER time %] + </td> + </tr> + </table> + [% ELSE %] <br> <span class="bz_comment"> ------- <i>Comment diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl index 86fb4c6b6..d15cf9102 100644 --- a/template/en/default/bug/edit.html.tmpl +++ b/template/en/default/bug/edit.html.tmpl @@ -566,19 +566,6 @@ [%# *** Additional Comments *** %] <hr> -<table> - <tr> - <td align="left"> - <b><a name="c0" href="#c0">Description</a>:</b> <script - type="text/javascript"><!-- - addReplyLink(0); - //--></script> - </td> - <td align="right" width="100%"> - Opened: [% bug.creation_ts FILTER time %] - </td> - </tr> -</table> [% PROCESS bug/comments.html.tmpl comments = bug.longdescs diff --git a/template/en/default/global/setting-descs.none.tmpl b/template/en/default/global/setting-descs.none.tmpl index 9e7ac9596..1a31754a8 100644 --- a/template/en/default/global/setting-descs.none.tmpl +++ b/template/en/default/global/setting-descs.none.tmpl @@ -20,8 +20,12 @@ [% PROCESS global/variables.none.tmpl %] [% setting_descs = { - "display_quips" => "Show a quip at the top of each bug list", - "off" => "Off", - "on" => "On" + "comment_sort_order" => "When viewing $terms.abug, show comments in this order", + "display_quips" => "Show a quip at the top of each bug list", + "newest_to_oldest" => "Newest to Oldest", + "newest_to_oldest_desc_first" => "Newest to Oldest, but keep Description at the top", + "off" => "Off", + "oldest_to_newest" => "Oldest to Newest", + "on" => "On" } %] |