fu: Close-up of Fu, bringing a scoop of water to her mouth (Default)
fu ([personal profile] fu) wrote in [site community profile] changelog2011-05-17 05:14 am

[dw-free] Ugly error when trying to view the threadroot in a deleted entry or with a nonexistent com

[commit: http://hg.dwscoalition.org/dw-free/rev/8c3aebd4accd]

http://bugs.dwscoalition.org/show_bug.cgi?id=3680

Present a user-friendly error message rather than splashing a technical one
across the top of the page.

Patch by [personal profile] fu.

Files modified:
  • htdocs/go.bml
  • htdocs/go.bml.text
--------------------------------------------------------------------------------
diff -r f344cabf9f80 -r 8c3aebd4accd htdocs/go.bml
--- a/htdocs/go.bml	Tue May 17 10:39:03 2011 +0800
+++ b/htdocs/go.bml	Tue May 17 13:14:19 2011 +0800
@@ -41,8 +41,15 @@
     my $u = LJ::load_user( $journal );
     return unless $u;
 
-    my $comment = LJ::Comment->new( $u, dtalkid => $talkid );
-    return unless $comment;
+    my $comment = eval { LJ::Comment->new( $u, dtalkid => $talkid ) };
+    if ( $@ ) {
+        $body = "<p>$ML{'.error.nocomment'}</p>";
+        return;
+    }
+    unless ( $comment->entry && $comment->entry->valid ) {
+        $body = "<p>$ML{'.error.noentry'}</p>";
+        return;
+    }
 
     my $threadroot = LJ::Comment->new( $u, jtalkid => $comment->threadrootid );
     return BML::redirect(  $threadroot->url( LJ::viewing_style_args( %GET ) ) );
diff -r f344cabf9f80 -r 8c3aebd4accd htdocs/go.bml.text
--- a/htdocs/go.bml.text	Tue May 17 10:39:03 2011 +0800
+++ b/htdocs/go.bml.text	Tue May 17 13:14:19 2011 +0800
@@ -3,6 +3,10 @@
 
 .defaulttitle=Error
 
+.error.nocomment=No such comment exists.
+
+.error.noentry=No such entry exists.
+
 .error.noentry.next=There is no entry following this one.
 
 .error.noentry.prev=There is no entry preceding this one.
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org