{'message_body'} =~ s/\n/\ {'message_body'} =~ s/\n/\
\n/g;
}
#Build the action URLs
my $nextInvitation = $friends->getPreviousInvitation($invitation); #Messages sorted descending so next is actually previous
if( $nextInvitation->{inviteId} ) {
$var->{'hasNext' } = "true";
$var->{'next_message_url'} = $self->getUrl("module=inbox;do=viewInvitation;inviteId=".$nextInvitation->{inviteId});
}
my $prevInvitation = $friends->getNextInvitation($invitation); #Messages sorted descending so previous is actually next
if( $prevInvitation->{inviteId} ) {
$var->{'hasPrevious' } = "true";
$var->{'prev_message_url'} = $self->getUrl("module=inbox;do=viewInvitation;inviteId=".$prevInvitation->{inviteId});
}
$var->{'form_header' } = WebGUI::Form::formHeader($session,{
action => $self->getUrl("module=inbox;do=approveDenyInvitations;inviteId=".$inviteId)
});
$var->{'form_footer' } = WebGUI::Form::formFooter($session);
$var->{'form_accept' } = WebGUI::Form::submit($session,{
name =>"accept",
value =>$i18n->get("accept button label")
});
$var->{'form_deny' } = WebGUI::Form::submit($session,{
name =>"deny",
value =>$i18n->get("deny button label")
});
return $self->processTemplate($var,$self->getViewInvitationTemplateId);
}
#-------------------------------------------------------------------
=head2 www_viewMessage ( )
The page on which users view their messages
=cut
sub www_viewMessage {
my $self = shift;
my $session = $self->session;
my $user = $session->user;
my $var = {};
my $messageId = shift || $session->form->get("messageId");
my $errorMsg = shift;
$self->store->{tab} = "inbox";
my $inbox = WebGUI::Inbox->new($session);
my $message = $inbox->getMessage($messageId);
#Add common template variable for displaying the inbox
$self->appendCommonVars($var,$inbox);
#Handler Errors
if (!(defined $message)) {
my $i18n = WebGUI::International->new($session,'Account_Inbox');
$errorMsg = $i18n->get("message does not exist");
}
elsif (!$inbox->canRead($message)) {
my $i18n = WebGUI::International->new($session,'Account_Inbox');
$errorMsg = $i18n->get("no access");
}
if($errorMsg) {
my $backUrl = $var->{'view_inbox_url'};
$var->{'isInvitation'} = "true";
return $self->showError($var,$errorMsg,$backUrl,$self->getInboxErrorTemplateId);
}
$message->setStatus("read") unless ($message->isRead);
$var->{'message_id' } = $messageId;
$var->{'message_subject' } = $message->get("subject");
$var->{'message_dateStamp' } = $message->get("dateStamp");
$var->{'message_dateStamp_human'} = $session->datetime->epochToHuman($var->{'message_dateStamp'});
$var->{'message_status' } = $message->getStatus;
$var->{'message_body' } = $message->get("message");
unless ($var->{'message_body'} =~ /\{'message_body'} =~ s/(http\S*)/\$1\<\/a\>/g;
}
unless ($var->{'message_body'} =~ /\
{'message_body'} =~ /\
\n/g;
}
#Get the user the message was sent by
my $sentBy = $message->get("sentBy");
my $from = WebGUI::User->new($session,$sentBy);
my $sentByVisitor = 0;
if ($from->isVisitor) {
$sentByVisitor = 1;
$from = WebGUI::User->new($session,3);
}
$var->{'message_from_id' } = $from->userId;
$var->{'message_from' } = $from->getWholeName;
#Build the action URLs
$var->{'delete_url' } = $self->getUrl("module=inbox;do=deleteMessage;messageId=".$messageId);
my $status = $message->get("status");
if($sentBy ne $user->userId
&& !$sentByVisitor
&& $status ne "pending"
&& $status ne "completed" ) {
$var->{'canReply' } = "true";
$var->{'reply_url'} = $self->getUrl("module=inbox;do=sendMessage;messageId=".$messageId);
}
my $nextMessage = $inbox->getPreviousMessage($message); #Message are displayed in descending order so next is actually previous
if( defined $nextMessage ) {
$var->{'hasNext' } = "true";
$var->{'next_message_url'} = $self->getUrl("module=inbox;do=viewMessage;messageId=".$nextMessage->getId);
}
my $prevMessage = $inbox->getNextMessage($message); #Messages are displayed in descending order so previous is actually next
if(defined $prevMessage) {
$var->{'hasPrevious' } = "true";
$var->{'prev_message_url'} = $self->getUrl("module=inbox;do=viewMessage;messageId=".$prevMessage->getId);
}
return $self->processTemplate($var,$self->getViewMessageTemplateId);
}
1;