fu: Close-up of Fu, bringing a scoop of water to her mouth (Default)
fu ([personal profile] fu) wrote in [site community profile] changelog2010-10-08 08:09 am

[dw-free] Improve comment preview with metadata and post text

[commit: http://hg.dwscoalition.org/dw-free/rev/4240985f1329]

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

Add post text and metadata as context to the bottom of the comment preview
page.

Patch by [personal profile] kareila.

Files modified:
  • cgi-bin/LJ/Talk.pm
  • htdocs/talkpost_do.bml.text
--------------------------------------------------------------------------------
diff -r 1d360e93f945 -r 4240985f1329 cgi-bin/LJ/Talk.pm
--- a/cgi-bin/LJ/Talk.pm	Fri Oct 08 15:18:44 2010 +0800
+++ b/cgi-bin/LJ/Talk.pm	Fri Oct 08 16:09:08 2010 +0800
@@ -2386,6 +2386,7 @@ package LJ::Talk::Post;
 package LJ::Talk::Post;
 
 use Text::Wrap;
+use LJ::Entry;
 use LJ::EventLogRecord::NewComment;
 
 sub indent {
@@ -3751,12 +3752,12 @@ sub make_preview {
     my ($talkurl, $cookie_auth, $form) = @_;
     my $ret = "";
 
+    # preview form
+
+    $ret .= "<?h2 $BML::ML{'/talkpost_do.bml.preview.title'} h2?><?p $BML::ML{'/talkpost_do.bml.preview'} p?><?hr?>";
+
     my $cleansubject = $form->{'subject'};
     LJ::CleanHTML::clean_subject(\$cleansubject);
-
-    $ret .= "<?h1 $BML::ML{'/talkpost_do.bml.preview.title'} h1?><?p $BML::ML{'/talkpost_do.bml.preview'} p?><?hr?>";
-    $ret .= "<div align=\"center\"><b>(<a href=\"$talkurl\">$BML::ML{'talk.commentsread'}</a>)</b></div>";
-
     my $event = $form->{'body'};
     my $spellcheck_html;
     # clean first; if the cleaner finds it invalid, don't spellcheck, so that we
@@ -3831,6 +3832,52 @@ sub make_preview {
     $ret .= "de?> </p>";
 
     $ret .= "</form></div>";
+
+    # entry details
+    my $entry = LJ::Entry->new_from_url( $talkurl );
+    if ( $entry && $entry->visible_to( $remote ) ) {
+        $ret .= "<?hr?><?h2 $BML::ML{'/talkpost_do.bml.preview.context'} h2?>";
+
+        if ( my $ju = $entry->journal ) {
+            $ret .= "<?p ";
+
+            my $pu = $entry->poster;
+            if ( $pu && !$pu->equals( $ju ) ) {
+                $ret .= BML::ml( '/talkpost_do.bml.preview.entry.journal',
+                                 { user => $pu->ljuser_display,
+                                   journal => $ju->ljuser_display } );
+            } else {
+                $ret .= $ju->ljuser_display;
+            }
+            $ret .= " @ " . $entry->eventtime_mysql;
+
+            $ret .= " p?>\n";
+        }
+
+        $ret .= "<?p ";
+        ### security indicator
+        my $sec = $entry->security;
+        if ( $sec eq "private" ) {
+            $ret .= BML::fill_template( "securityprivate" );
+        } elsif ( $sec eq "usemask" ) {
+            $ret .= BML::fill_template( "securityprotected" );
+        }
+        $ret .= "&nbsp;<i><b>" . $entry->subject_html . "</b></i>";
+        $ret .= " p?>\n";
+
+        my $cleanopts = { preformatted => $entry->prop( 'opt_preformatted' ),
+                          cuturl => $talkurl };
+        my $truncated;
+        my $summary = $entry->event_html_summary( 1000, $cleanopts, \$truncated );
+
+        $ret .= "<?p ";
+        $ret .= $summary;
+        $ret .= "..." if $truncated;
+        $ret .= " p?>\n";
+    }
+
+    $ret .= "<div align=\"center\"><b>(<a href=\"$talkurl\">$BML::ML{'talk.commentsread'}</a>)</b></div>";
+
     return $ret;
 }
 
diff -r 1d360e93f945 -r 4240985f1329 htdocs/talkpost_do.bml.text
--- a/htdocs/talkpost_do.bml.text	Fri Oct 08 15:18:44 2010 +0800
+++ b/htdocs/talkpost_do.bml.text	Fri Oct 08 16:09:08 2010 +0800
@@ -62,11 +62,15 @@
 
 .preview=This is how your comment will look when posted. Using the form below, you can edit your comment further, or you can submit it as is.
 
+.preview.context=Comment Context
+
 .preview.edit.body=<b>New message: </b>
 
 .preview.edit.editreason=<b>Reason for edit: </b>
 
 .preview.edit.subject=<b>New subject: </b>
+
+.preview.entry.journal=[[user]] posting in [[journal]]
 
 .preview.subject=<b>Subject: </b>
 
--------------------------------------------------------------------------------