Committer: sbelyaev
LJSUP-13203: Problem with inbox messages when original post has been deleted.U trunk/cgi-bin/LJ/Event/JournalNewRepost.pm
Modified: trunk/cgi-bin/LJ/Event/JournalNewRepost.pm =================================================================== --- trunk/cgi-bin/LJ/Event/JournalNewRepost.pm 2012-08-04 20:25:36 UTC (rev 22572) +++ trunk/cgi-bin/LJ/Event/JournalNewRepost.pm 2012-08-06 08:27:46 UTC (rev 22573) @@ -39,12 +39,14 @@ sub poster { my ($self) = @_; my $entry = $self->entry; + return unless $entry; return $entry->poster; } sub posterid { my $self = shift; + return unless $self->poster; return $self->poster->userid; } @@ -53,13 +55,15 @@ sub journal { my ($self) = @_; my $entry = $self->entry; + return unless $entry; return $entry->journal; } sub journalid { my ($self) = @_; - my $entry = $self->entry; + my $entry = $self->entry; + return unless $entry; return $entry->journalid; } @@ -71,7 +75,6 @@ sub reposterid { my ($self) = @_; - return $self->u->userid; } @@ -127,11 +130,19 @@ my $entry = $self->entry; my $journal = $self->journal; + if (!$entry) { + my $ml_string = 'notification.string.usernewrepost.deleted'; + return LJ::Lang::get_text($lang, $ml_string, undef, + { + reposter => $self->reposter->display_username, + }); + } + my $about = $entry->subject_text ? "\"" . $entry->subject_text . "\"" : ''; my $ml_string = $journal->is_community ? 'notification.string.usernewrepost_comm' : 'notification.string.usernewrepost'; - + return LJ::Lang::get_text($lang, $ml_string, undef, { reposter => $self->reposter->display_username, @@ -146,8 +157,10 @@ my ($self, $u, $opt) = @_; my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; - my $entry = $self->entry; - my $journalu = $self->journal; + my $entry = $self->entry; + return unless $entry; + + my $journalu = $self->journal; my $ml_string = $journalu->is_community ? 'notification.sms.usernewrepost_comm' : 'notification.sms.usernewrepost'; @@ -193,7 +206,16 @@ my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; my $entry = $self->entry; my $journal = $self->journal; - return "(Invalid entry)" unless $entry && $entry->valid; + + if (!$entry || !$entry->valid) { + my $ml_string = 'notification.string.usernewrepost.deleted'; + return LJ::Lang::get_text($lang, $ml_string, undef, + { + reposter => $self->reposter->display_username, + }); + } + + my $url = $entry->url; my $ml_string = $journal->is_community ? 'esn.user_new_repost_community.ashtml' : @@ -234,8 +256,8 @@ my ($self, $target) = @_; my $entry = $self->entry; - return undef unless $entry && $entry->valid; - return undef unless $entry->visible_to($target); + return unless $entry && $entry->valid; + return unless $entry->visible_to($target); return $entry->event_html . $self->as_html_actions; }