afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
afuna ([personal profile] afuna) wrote in [site community profile] changelog2009-07-23 05:30 pm

[dw-free] Page does not jump to just-posted comment when collapsed

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

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

Standardize comment thread anchors on #ljcmt, for now. Refactors into
functions so that we can easily change it later.

Patch by [personal profile] kareila.

Files modified:
  • cgi-bin/LJ/Comment.pm
  • cgi-bin/LJ/Event/JournalNewComment.pm
  • cgi-bin/LJ/Portal/Box/RecentComments.pm
  • cgi-bin/LJ/S2/EntryPage.pm
  • cgi-bin/LJ/S2/ReplyPage.pm
  • cgi-bin/talklib.pl
  • htdocs/admin/recent_comments.bml
  • htdocs/talkpost_do.bml
  • htdocs/talkread.bml
  • htdocs/talkscreen.bml
  • htdocs/tools/recent_comments.bml
--------------------------------------------------------------------------------
diff -r 8d97fd81d6c0 -r cbf361b1a2b2 cgi-bin/LJ/Comment.pm
--- a/cgi-bin/LJ/Comment.pm	Thu Jul 23 17:02:45 2009 +0000
+++ b/cgi-bin/LJ/Comment.pm	Thu Jul 23 17:30:00 2009 +0000
@@ -221,8 +221,9 @@ sub url {
     my $entry   = $self->entry;
     my $url     = $entry->url;
 
-    return "$url?thread=$dtalkid#t$dtalkid";
+    return "$url?thread=$dtalkid" . LJ::Talk::comment_anchor( $dtalkid );
 }
+*thread_url = \&url;
 
 sub reply_url {
     my $self    = shift;
@@ -232,16 +233,6 @@ sub reply_url {
     my $url     = $entry->url;
 
     return "$url?replyto=$dtalkid";
-}
-
-sub thread_url {
-    my $self    = shift;
-
-    my $dtalkid = $self->dtalkid;
-    my $entry   = $self->entry;
-    my $url     = $entry->url;
-
-    return "$url?thread=$dtalkid#t$dtalkid";
 }
 
 sub parent_url {
diff -r 8d97fd81d6c0 -r cbf361b1a2b2 cgi-bin/LJ/Event/JournalNewComment.pm
--- a/cgi-bin/LJ/Event/JournalNewComment.pm	Thu Jul 23 17:02:45 2009 +0000
+++ b/cgi-bin/LJ/Event/JournalNewComment.pm	Thu Jul 23 17:30:00 2009 +0000
@@ -200,11 +200,12 @@ sub content {
     my $comment_body = $comment->body_html;
     my $buttons = $comment->manage_buttons;
     my $dtalkid = $comment->dtalkid;
+    my $htmlid  = LJ::Talk::comment_htmlid( $dtalkid );
 
     $comment_body =~ s/\n/<br \/>/g;
 
     my $ret = qq {
-        <div id="ljcmt$dtalkid" class="JournalNewComment">
+        <div id="$htmlid" class="JournalNewComment">
             <div class="ManageButtons">$buttons</div>
             <div class="Body">$comment_body</div>
         </div>
diff -r 8d97fd81d6c0 -r cbf361b1a2b2 cgi-bin/LJ/Portal/Box/RecentComments.pm
--- a/cgi-bin/LJ/Portal/Box/RecentComments.pm	Thu Jul 23 17:02:45 2009 +0000
+++ b/cgi-bin/LJ/Portal/Box/RecentComments.pm	Thu Jul 23 17:30:00 2009 +0000
@@ -129,16 +129,17 @@ sub generate_content {
 
         # print out comment w/ links
         my $posturl  = "$root/$lrow->{ditemid}.html";
-        my $replyurl = LJ::Talk::talkargs($posturl, "replyto=$talkid");
-        my $talkurl  = "$root/$lrow->{ditemid}.html?thread=$talkid\#t$talkid";
+        my $replyurl = LJ::Talk::talkargs( $posturl, "replyto=$talkid" );
+        my $talkurl  = LJ::Talk::talkargs( $posturl, "thread=$talkid" ) . LJ::Talk::comment_anchor( $talkid );
         my $userlink = LJ::isu($pu) ? LJ::ljuser($pu) : "<i>(Anonymous)</i>";
+        my $htmlid   = LJ::Talk::comment_htmlid( $talkid );
 
         # clean comment subject/text
         LJ::CleanHTML::clean_subject_all(\$subject);
         LJ::CleanHTML::clean_comment(\$body);
 
         $content .= qq {
-            <tr id="ljcmt$talkid">
+            <tr id="$htmlid">
                 <td>
 
                   <span class="RecentCommentTitle">$userlink </span>
diff -r 8d97fd81d6c0 -r cbf361b1a2b2 cgi-bin/LJ/S2/EntryPage.pm
--- a/cgi-bin/LJ/S2/EntryPage.pm	Thu Jul 23 17:02:45 2009 +0000
+++ b/cgi-bin/LJ/S2/EntryPage.pm	Thu Jul 23 17:30:00 2009 +0000
@@ -193,7 +193,7 @@ sub EntryPage
 
             if ($com->{'parenttalkid'}) {
                 my $dparent = ($com->{'parenttalkid'} << 8) + $entry->anum;
-                $par_url = LJ::Talk::talkargs($permalink, "thread=$dparent", $style_arg) . "#t$dparent";
+                $par_url = LJ::Talk::talkargs($permalink, "thread=$dparent", $style_arg) . LJ::Talk::comment_anchor( $dparent );
             }
 
             my $poster;
@@ -222,7 +222,7 @@ sub EntryPage
                 'metadata' => {
                     'picture_keyword' => $com->{'props'}->{'picture_keyword'},
                 },
-                'permalink_url' => "$permalink?thread=$dtalkid#t$dtalkid",
+                'permalink_url' => "$permalink?thread=$dtalkid" . LJ::Talk::comment_anchor( $dtalkid ),
                 'reply_url' => $reply_url,
                 'poster' => $poster,
                 'replies' => [],
@@ -242,8 +242,8 @@ sub EntryPage
                 'frozen' => $com->{'state'} eq "F" ? 1 : 0,
                 'deleted' => $com->{'state'} eq "D" ? 1 : 0,
                 'link_keyseq' => [ 'delete_comment' ],
-                'anchor' => "t$dtalkid",
-                'dom_id' => "ljcmt$dtalkid",
+                'anchor' => LJ::Talk::comment_htmlid( $dtalkid ),
+                'dom_id' => LJ::Talk::comment_htmlid( $dtalkid ),
                 'comment_posted' => $commentposted,
                 'edited' => $edited ? 1 : 0,
                 'time_remote' => $datetime_remote,
@@ -274,7 +274,7 @@ sub EntryPage
             push @$link_keyseq, "watching_parent" if LJ::is_enabled('esn');
             unshift @$link_keyseq, "edit_comment" if LJ::is_enabled('edit_comments');
 
-            $s2com->{'thread_url'} = LJ::Talk::talkargs($permalink, "thread=$dtalkid", $style_arg) . "#t$dtalkid";
+            $s2com->{'thread_url'} = LJ::Talk::talkargs($permalink, "thread=$dtalkid", $style_arg) . LJ::Talk::comment_anchor( $dtalkid );
 
             # add the poster_ip metadata if remote user has
             # access to see it.
diff -r 8d97fd81d6c0 -r cbf361b1a2b2 cgi-bin/LJ/S2/ReplyPage.pm
--- a/cgi-bin/LJ/S2/ReplyPage.pm	Thu Jul 23 17:02:45 2009 +0000
+++ b/cgi-bin/LJ/S2/ReplyPage.pm	Thu Jul 23 17:30:00 2009 +0000
@@ -184,7 +184,7 @@ sub ReplyPage
             'poster' => $s2poster,
             'journal' => $s2entry->{'journal'},
             'metadata' => {},
-            'permalink_url' => $u->{'_journalbase'} . "/$ditemid.html?view=$dtalkid#t$dtalkid",
+            'permalink_url' => $u->{'_journalbase'} . "/$ditemid.html?view=$dtalkid" . LJ::Talk::comment_anchor( $dtalkid ),
             'depth' => 1,
             'time' => $datetime,
             'system_time' => $datetime,
diff -r 8d97fd81d6c0 -r cbf361b1a2b2 cgi-bin/talklib.pl
--- a/cgi-bin/talklib.pl	Thu Jul 23 17:02:45 2009 +0000
+++ b/cgi-bin/talklib.pl	Thu Jul 23 17:30:00 2009 +0000
@@ -2110,6 +2110,16 @@ sub get_replycount {
     return $count;
 }
 
+sub comment_htmlid {
+    my $id = shift or return '';
+    return "ljcmt$id";
+}
+
+sub comment_anchor {
+    my $id = shift or return '';
+    return "#ljcmt$id";
+}
+
 package LJ::Talk::Post;
 
 use Text::Wrap;
diff -r 8d97fd81d6c0 -r cbf361b1a2b2 htdocs/admin/recent_comments.bml
--- a/htdocs/admin/recent_comments.bml	Thu Jul 23 17:02:45 2009 +0000
+++ b/htdocs/admin/recent_comments.bml	Thu Jul 23 17:30:00 2009 +0000
@@ -48,7 +48,7 @@
 
         if ($lrow) {
             my $talkid = ($r->{'jtalkid'} << 8) + $lrow->{'anum'};
-            my $url = "$LJ::SITEROOT/users/$ju->{user}/$lrow->{ditemid}.html?thread=$talkid\#t$talkid";
+            my $url = "$LJ::SITEROOT/users/$ju->{user}/$lrow->{ditemid}.html?thread=$talkid" . LJ::Talk::comment_anchor( $talkid );
             $ret .= "$hr_ago hr ago in " . LJ::ljuser($ju) . ": <a href='$url'>$url</a><br />\n";
         } else {
             $ret .= "$hr_ago hr ago in " . LJ::ljuser($ju) . ": link unavailable<br />";
diff -r 8d97fd81d6c0 -r cbf361b1a2b2 htdocs/talkpost_do.bml
--- a/htdocs/talkpost_do.bml	Thu Jul 23 17:02:45 2009 +0000
+++ b/htdocs/talkpost_do.bml	Thu Jul 23 17:30:00 2009 +0000
@@ -219,12 +219,8 @@ body<=
     # Allow style=mine for QR redirects
     my $stylemine = $POST{'stylemine'} ? 'style=mine' : '';
 
-    my $commentlink;
-    if ($POST{'viewing_thread'} eq '') {
-        $commentlink = LJ::Talk::talkargs($talkurl, "view=$dtalkid", $stylemine) . "#t$dtalkid";
-    } else {
-        $commentlink = LJ::Talk::talkargs($talkurl, "thread=$POST{viewing_thread}", $stylemine) . "#t$dtalkid";
-    }
+    my $cthread = $POST{'viewing_thread'} ? "thread=$POST{viewing_thread}" : "view=$dtalkid";
+    my $commentlink = LJ::Talk::talkargs( $talkurl, $cthread, $stylemine ) . LJ::Talk::comment_anchor( $dtalkid );
 
     my $ret = "";
     $ret .= "<?h1 $ML{'.success.title'} h1?>";
diff -r 8d97fd81d6c0 -r cbf361b1a2b2 htdocs/talkread.bml
--- a/htdocs/talkread.bml	Thu Jul 23 17:02:45 2009 +0000
+++ b/htdocs/talkread.bml	Thu Jul 23 17:30:00 2009 +0000
@@ -508,17 +508,19 @@ body<=
             $user = $ML{'.anonuser'};
         }
 
+        my $htmlid = LJ::Talk::comment_htmlid( $dtid );
+
         if ($post->{'state'} eq "D") {
-            $ret .= "<p><a name='t$dtid'></a><table class='delcomment'><tr>";
+            $ret .= "<p><a name='$htmlid'></a><table class='delcomment'><tr>";
             $ret .= "<td><img src='$LJ::IMGPREFIX/dot.gif' height='1' width='" . ($opts->{'depth'} * 25) . "'></td>";
             $ret .= "<td>$ML{'.deletedpost'}</td></tr></table>\n";
         } elsif ($post->{'state'} eq "S" && !$post->{'_loaded'} && !$post->{'_show'}) {
-            $ret .= "<p><a name='t$dtid'></a><table class='screenedcomment'><tr>";
+            $ret .= "<p><a name='$htmlid'></a><table class='screenedcomment'><tr>";
             $ret .= "<td><img src='$LJ::IMGPREFIX/dot.gif' height='1' width='" . ($opts->{'depth'} * 25) . "'></td>";
             my $screenedtext = $ML{'.screenedpost'};
             $ret .= "<td>$screenedtext</td></tr></table>\n";
         } elsif ($pu && $pu->is_suspended && !$viewsome) {
-            $ret .= "<p><a name='t$dtid'></a><table class='suspendedcomment'><tr>";
+            $ret .= "<p><a name='$htmlid'></a><table class='suspendedcomment'><tr>";
             $ret .= "<td><img src='$LJ::IMGPREFIX/dot.gif' height='1' width='" . ($opts->{'depth'} * 25) . "'></td>";
             $ret .= "<td>$ML{'.replysuspended'}";
             if (LJ::Talk::can_delete($remote, $u, $up, $userpost)) {
@@ -550,7 +552,7 @@ body<=
                         ($tz_remote ? " (local)" : " UTC");
                 }
 
-                $ret .= "<a name='t$dtid'></a><span id='ljcmt$dtid'><table width='100%' class='talk-comment'><tbody><tr>";
+                $ret .= "<a name='$htmlid'></a><span id='$htmlid'><table width='100%' class='talk-comment'><tbody><tr>";
                 $ret .= "<td rowspan='2'><img src='$LJ::IMGPREFIX/dot.gif' height='1' width='" . ($opts->{'depth'} * 25) . "'></td>";
                 $ret .= "<td id='cmtbar$dtid' class='cmtbar-$level' style='background-color: $bgcolor' width='100%'>";
 
@@ -584,7 +586,9 @@ body<=
                     $ret .= BML::ml('.fromip', {'ip'=>$post->{'props'}->{'poster_ip'}});
                 }
 
-                $ret .= " <span class='talkargs'>(<a href='" . LJ::Talk::talkargs($talkurl, "thread=$dtid", $formatlight) . "#t$dtid'>$T{'link'}</a>)</span>";
+                $ret .= " <span class='talkargs'>(<a href='";
+                $ret .= LJ::Talk::talkargs( $talkurl, "thread=$dtid", $formatlight );
+                $ret .= LJ::Talk::comment_anchor( $dtid ) . "'>$T{'link'}</a>)</span>";
 
                 if ($comment->remote_can_edit) {
                     $ret .= "<a href='" . LJ::Talk::talkargs($comment->edit_url, $stylemine, $formatlight) . "'>" . LJ::img("editcomment", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
@@ -709,10 +713,11 @@ body<=
                 my $parentid = $post->{'parenttalkid'} || $post->{'parenttalkid_actual'};
                 if ($parentid != 0) {
                     my $dpid = $parentid * 256 + $init->{'anum'};
-                    $ret .= "(<a href='" . LJ::Talk::talkargs($talkurl, "thread=$dpid", $stylemine, $formatlight) . "#t$dpid'>$T{'parent'}</a>)";
+                    $ret .= "(<a href='" . LJ::Talk::talkargs($talkurl, "thread=$dpid", $stylemine, $formatlight);
+                    $ret .= LJ::Talk::comment_anchor( $dpid ) . "'>$T{'parent'}</a>)";
                 }
                 if ($post->{'children'} && @{$post->{'children'}}) {
-                    my $url = LJ::Talk::talkargs($talkurl, "thread=$dtid", $stylemine, $formatlight) . "#t$dtid";
+                    my $url = LJ::Talk::talkargs($talkurl, "thread=$dtid", $stylemine, $formatlight) . LJ::Talk::comment_anchor( $dtid );
                     $ret .= "(<a href='$url'>$T{'thread'}</a>)";
 
                     if ((grep {! $_->{_loaded} and !($_->{state} eq "D")} @{$post->{'children'}}) && $show_thread_expander) {
@@ -728,10 +733,10 @@ body<=
             } else {
                 # link to message
 
-                $ret .= "<a name='t$dtid'></a><span id='ljcmt$dtid'><table ><tbody><tr>";
+                my $url = LJ::Talk::talkargs( $talkurl, "thread=$dtid", $stylemine, $formatlight ) . LJ::Talk::comment_anchor( $dtid );
+                $ret .= "<a name='$htmlid'></a><span id='$htmlid'><table ><tbody><tr>";
                 $ret .= "<td><img src='$LJ::IMGPREFIX/dot.gif' height='1' width='" . ($opts->{'depth'} * 25) . "'></td>";
-                $ret .= "<td><a href='" . LJ::Talk::talkargs($talkurl, "thread=$dtid", $stylemine, $formatlight) . "#t$dtid'>" . LJ::ehtml($post->{'subject'} || $T{'nosubject'}) . "</a> - $user, <i>$datepost</i>";
-                my $url = LJ::Talk::talkargs($talkurl, "thread=$dtid", $stylemine, $formatlight) . "#t$dtid";
+                $ret .= "<td><a href='$url'>" . LJ::ehtml($post->{'subject'} || $T{'nosubject'}) . "</a> - $user, <i>$datepost</i>";
                 $ret .= qq[ (<a href='$url' onClick="Expander.make(this,'$url','$dtid',true);return false;">$T{'expand'}</a>)] if $show_thread_expander;
 
                 # Comment Posted Notice
diff -r 8d97fd81d6c0 -r cbf361b1a2b2 htdocs/talkscreen.bml
--- a/htdocs/talkscreen.bml	Thu Jul 23 17:02:45 2009 +0000
+++ b/htdocs/talkscreen.bml	Thu Jul 23 17:30:00 2009 +0000
@@ -107,7 +107,7 @@ _info?><?_code
     my $ditemid = $qitemid*256 + $anum;
 
     my $itemlink = LJ::journal_base($u) . "/$ditemid.html";
-    my $commentlink = "$itemlink?view=$dtalkid#t$dtalkid";
+    my $commentlink = "$itemlink?view=$dtalkid" . LJ::Talk::comment_anchor( $dtalkid );
 
     if ($mode eq 'screen') {
         my $can_screen = LJ::Talk::can_screen($remote, $u, $up, $post->{'userpost'});
diff -r 8d97fd81d6c0 -r cbf361b1a2b2 htdocs/tools/recent_comments.bml
--- a/htdocs/tools/recent_comments.bml	Thu Jul 23 17:02:45 2009 +0000
+++ b/htdocs/tools/recent_comments.bml	Thu Jul 23 17:30:00 2009 +0000
@@ -165,21 +165,26 @@ body<=
 
         unless ($r->{state} eq "D")
         {
-            $ret .= "<a href='/delcomment.bml?${jargent}id=$talkid'>" . LJ::img("btn_del", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
+            $ret .= "<a href='/delcomment.bml?${jargent}id=$talkid'>";
+            $ret .= LJ::img("btn_del", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
             if ($r->{'state'} ne 'F') {
-                $ret .= "<a href='/talkscreen.bml?mode=freeze&amp;${jargent}talkid=$talkid'>" . LJ::img("btn_freeze", "", { align => 'absmiddle', hspace => 2, vspace => }) . "</a>";
+                $ret .= "<a href='/talkscreen.bml?mode=freeze&amp;${jargent}talkid=$talkid'>";
+                $ret .= LJ::img("btn_freeze", "", { align => 'absmiddle', hspace => 2, vspace => }) . "</a>";
             }
 
             if ($r->{'state'} eq 'F') {
-                $ret .= "<a href='/talkscreen.bml?mode=unfreeze&amp;${jargent}talkid=$talkid'>" . LJ::img("btn_unfreeze", "", { align => 'absmiddle', hspace => 2, vspace => }) . "</a>";
+                $ret .= "<a href='/talkscreen.bml?mode=unfreeze&amp;${jargent}talkid=$talkid'>";
+                $ret .= LJ::img("btn_unfreeze", "", { align => 'absmiddle', hspace => 2, vspace => }) . "</a>";
             }
 
             if ($r->{'state'} ne 'S') {
-                $ret .= "<a href='/talkscreen.bml?mode=screen&amp;${jargent}talkid=$talkid'>" . LJ::img("btn_scr", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
+                $ret .= "<a href='/talkscreen.bml?mode=screen&amp;${jargent}talkid=$talkid'>";
+                $ret .= LJ::img("btn_scr", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
             }
 
             if ($r->{'state'} eq 'S') {
-                 $ret .= "<a href='/talkscreen.bml?mode=unscreen&amp;${jargent}talkid=$talkid'>" . LJ::img("btn_unscr", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
+                 $ret .= "<a href='/talkscreen.bml?mode=unscreen&amp;${jargent}talkid=$talkid'>";
+                 $ret .= LJ::img("btn_unscr", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
              }
          }
 
@@ -187,7 +192,8 @@ body<=
         #$ret .= " <nobr><input type='checkbox' name='selected_$r->{jtalkid}' id='s$r->{jtalkid}' />";
         #$ret .= " <label for='s$r->{jtalkid}'>$ML{'/talkread.bml.select'}</label></nobr>";
 
-        $ret .= "</td><td id='ljcmt$talkid' style='text-align: left; border-top: 1px solid #999; border-left: 1px solid #999'>";
+        $ret .= "</td><td id='" . LJ::Talk::comment_htmlid( $talkid );
+        $ret .= "' style='text-align: left; border-top: 1px solid #999; border-left: 1px solid #999'>";
 
         my $subject = $log_text->{"$u->{userid} $r->{nodeid}"}[0];
         LJ::CleanHTML::clean_subject(\$subject) if $subject ne "";
--------------------------------------------------------------------------------

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