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

[dw-free] edited comment notifications in the DW inbox

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

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

Show only a brief summary for edit notifications in your DW inbox. (Email
notifications will still receive the full text)

Patch by [personal profile] wyntarvox.

Files modified:
  • cgi-bin/LJ/Event/JournalNewComment.pm
  • cgi-bin/LJ/Event/JournalNewComment/Edited.pm
  • cgi-bin/LJ/Talk.pm
  • cgi-bin/ljdefaults.pl
--------------------------------------------------------------------------------
diff -r 06d295180af0 -r 946170f4ce7a cgi-bin/LJ/Event/JournalNewComment.pm
--- a/cgi-bin/LJ/Event/JournalNewComment.pm	Fri Mar 11 16:43:35 2011 +0800
+++ b/cgi-bin/LJ/Event/JournalNewComment.pm	Fri Mar 11 19:32:34 2011 +0800
@@ -29,7 +29,7 @@ sub new {
 }
 
 sub related_events {
-    return map { $_->etypeid } ( $_[0], "LJ::Event::JournalNewComment::TopLevel" );
+    return map { $_->etypeid } ( $_[0], "LJ::Event::JournalNewComment::TopLevel", "LJ::Event::JournalNewComment::Edited" );
 }
 
 sub is_common { 1 }
diff -r 06d295180af0 -r 946170f4ce7a cgi-bin/LJ/Event/JournalNewComment/Edited.pm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cgi-bin/LJ/Event/JournalNewComment/Edited.pm	Fri Mar 11 19:32:34 2011 +0800
@@ -0,0 +1,74 @@
+#!/usr/bin/perl
+#
+# LJ::Event::JournalNewComment::Edited - Event that's fired when someone edits a comment
+#
+# Authors:
+#      Aaron Isaac <aaron.isaac@afourth.com>
+#
+# Copyright (c) 2011 by Dreamwidth Studios, LLC.
+#
+# This program is free software; you may redistribute it and/or modify it under
+# the same terms as Perl itself. For a copy of the license, please reference
+# 'perldoc perlartistic' or 'perldoc perlgpl'.
+
+package LJ::Event::JournalNewComment::Edited;
+use strict;
+
+use base 'LJ::Event::JournalNewComment';
+
+sub related_events {
+    return map { $_->etypeid } ( $_[0], "LJ::Event::JournalNewComment::TopLevel", "LJ::Event::JournalNewComment" );
+}
+
+sub content {
+    my ($self, $target) = @_;
+
+    my $comment = $self->comment;
+    return undef unless $self->_can_view_content( $comment, $target );
+
+    LJ::need_res( 'js/commentmanage.js' );
+
+    my $buttons = $comment->manage_buttons;
+    my $dtalkid = $comment->dtalkid;
+    my $htmlid  = LJ::Talk::comment_htmlid( $dtalkid );
+
+    my $reason = LJ::ehtml( $comment->edit_reason );
+    my $comment_body = "This comment was edited.";
+    $comment_body .= " " . LJ::Lang::get_text( $target->prop( "browselang" ), "esn.journal_new_comment.edit_reason", undef, { reason => $reason } ) . "."
+            if $reason;
+
+    my $ret = qq {
+        <div id="$htmlid" class="JournalNewComment-Edited">
+            <div class="ManageButtons">$buttons</div>
+            <div class="Body">$comment_body</div>
+        </div>
+    };
+
+    my $cmt_info = $comment->info;
+    my $cmt_info_js = LJ::js_dumper($cmt_info) || '{}';
+
+    my $posterusername = $self->comment->poster ? $self->comment->poster->{user} : "";
+
+    $ret .= qq {
+        <script language="JavaScript">
+        };
+
+    while (my ($k, $v) = each %$cmt_info) {
+        $k = LJ::ejs($k);
+        $v = LJ::ejs($v);
+        $ret .= "LJ_cmtinfo['$k'] = '$v';\n";
+    }
+
+    my $dtid_cmt_info = {u => $posterusername, rc => []};
+
+    $ret .= "LJ_cmtinfo['$dtalkid'] = " . LJ::js_dumper($dtid_cmt_info) . "\n";
+
+    $ret .= qq {
+        </script>
+        };
+    $ret .= $self->as_html_actions;
+
+    return $ret;
+}
+
+1;
diff -r 06d295180af0 -r 946170f4ce7a cgi-bin/LJ/Talk.pm
--- a/cgi-bin/LJ/Talk.pm	Fri Mar 11 16:43:35 2011 +0800
+++ b/cgi-bin/LJ/Talk.pm	Fri Mar 11 19:32:34 2011 +0800
@@ -19,6 +19,7 @@ use Carp qw(croak);
 
 use LJ::Constants;
 use LJ::Event::JournalNewComment;
+use LJ::Event::JournalNewComment::Edited;
 use LJ::Comment;
 use LJ::EventLogRecord::NewComment;
 use LJ::OpenID;
@@ -3747,7 +3748,7 @@ sub edit_comment {
     if ( LJ::is_enabled('esn') ) {
         my @jobs;
 
-        push @jobs, LJ::Event::JournalNewComment->new($comment_obj)->fire_job;
+        push @jobs, LJ::Event::JournalNewComment::Edited->new($comment_obj)->fire_job;
         push @jobs, LJ::EventLogRecord::NewComment->new($comment_obj)->fire_job;
 
         my $sclient = LJ::theschwartz();
diff -r 06d295180af0 -r 946170f4ce7a cgi-bin/ljdefaults.pl
--- a/cgi-bin/ljdefaults.pl	Fri Mar 11 16:43:35 2011 +0800
+++ b/cgi-bin/ljdefaults.pl	Fri Mar 11 19:32:34 2011 +0800
@@ -229,6 +229,7 @@ no strict "vars";
                                InvitedFriendJoins
                                JournalNewComment
                                JournalNewComment::TopLevel
+                               JournalNewComment::Edited
                                JournalNewEntry
                                NewUserpic
                                OfficialPost
--------------------------------------------------------------------------------

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