From 629b2f216662edd9bf19bef36fec9710c6307baa Mon Sep 17 00:00:00 2001 From: Diona Kidd Date: Sat, 13 Oct 2007 23:58:39 +0000 Subject: [PATCH] Adding delete method for private messages --- lib/WebGUI/Operation.pm | 1 + lib/WebGUI/Operation/Inbox.pm | 31 ++++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/lib/WebGUI/Operation.pm b/lib/WebGUI/Operation.pm index 137d016eb..c721d4411 100644 --- a/lib/WebGUI/Operation.pm +++ b/lib/WebGUI/Operation.pm @@ -165,6 +165,7 @@ sub getOperations { 'viewInboxMessage' => 'WebGUI::Operation::Inbox', 'sendPrivateMessage' => 'WebGUI::Operation::Inbox', 'sendPrivateMessageSave' => 'WebGUI::Operation::Inbox', + 'deletePrivateMessage' => 'WebGUI::Operation::Inbox', 'inviteUser' => 'WebGUI::Operation::Invite', 'inviteUserSave' => 'WebGUI::Operation::Invite', diff --git a/lib/WebGUI/Operation/Inbox.pm b/lib/WebGUI/Operation/Inbox.pm index 3da6d1b98..fa350c21e 100644 --- a/lib/WebGUI/Operation/Inbox.pm +++ b/lib/WebGUI/Operation/Inbox.pm @@ -270,7 +270,7 @@ sub www_viewInbox { #Cache the base url my $inboxUrl = $session->url->page('op=viewInbox'); - + $vars->{ title } = $i18n->get(159); $vars->{'subject_label' } = $i18n->get(351); $vars->{'subject_url' } = $inboxUrl.$pn_url.";sortBy=subject"; @@ -287,6 +287,8 @@ sub www_viewInbox { my $adminUser = WebGUI::User->new($session,3)->username; my $messages = WebGUI::Inbox->new($session)->getMessagesForUser($session->user,$rpp,$pn,$sortBy); foreach my $message (@$messages) { + next if($message->get('status') eq 'deleted'); + my $hash = {}; $hash->{ message_url } = $session->url->page('op=viewInboxMessage;messageId='.$message->getId); $hash->{ subject } = $message->get("subject"); @@ -332,6 +334,31 @@ sub www_viewInbox { #------------------------------------------------------------------- +=head2 www_deletePrivateMessage ( ) + +Mark a private message in the inbox as deleted. + +=cut + +sub www_deletePrivateMessage { + my $session = shift; + return $session->privilege->insufficient() unless ($session->user->isInGroup(2)); + + #Get the message + my $message = WebGUI::Inbox->new($session)->getMessage($session->form->param("messageId")); + use Data::Dumper; + warn Dumper($message); + if(defined $message) { + # set the message status to 'deleted' + $message->setStatus("deleted"); + } + warn 'status => ' . $message->get('status') . "\n"; + #return WebGUI::Operation::Inbox->www_viewInbox($session); + $session->http->setRedirect('?op=viewInbox'); +} + +#------------------------------------------------------------------- + =head2 www_viewInboxMessage ( ) Templated display of a single message for the user. @@ -367,6 +394,8 @@ sub www_viewInboxMessage { $vars->{'dateStamp'} =$session->datetime->epochToHuman($message->get("dateStamp")); $vars->{'status' } = _status($session)->{$message->get("status")}; $vars->{ message } = $message->get("message"); + $vars->{ delete_text } = $i18n->get("private message delete text"); + $vars->{ delete_url } = '?op=deletePrivateMessage;messageId=' . $message->getId; unless ($vars->{message} =~ /\{message} =~ s/(http\S*)/\$1\<\/a\>/g; }