inbox changes
This commit is contained in:
parent
81e60f0a28
commit
e0c86a8915
2 changed files with 36 additions and 11 deletions
|
|
@ -105,12 +105,18 @@ sub getMessagesForUser {
|
||||||
my $user = shift;
|
my $user = shift;
|
||||||
my $limit = shift || 50;
|
my $limit = shift || 50;
|
||||||
my $page = shift || 1;
|
my $page = shift || 1;
|
||||||
|
my $sortBy = shift;
|
||||||
|
|
||||||
my @messages = ();
|
my @messages = ();
|
||||||
my $counter = 0;
|
my $counter = 0;
|
||||||
|
|
||||||
|
unless($sortBy eq "subject" || $sortBy eq "sentBy" || $sortBy eq "dateStamp") {
|
||||||
|
$sortBy = "status='pending' desc, dateStamp desc";
|
||||||
|
}
|
||||||
|
|
||||||
my $start = (($page-1) * $limit) + 1;
|
my $start = (($page-1) * $limit) + 1;
|
||||||
my $end = $page * $limit;
|
my $end = $page * $limit;
|
||||||
my $rs = $self->session->db->read("select messageId, userId, groupId from inbox order by status='pending' desc, dateStamp desc");
|
my $rs = $self->session->db->read("select messageId, userId, groupId from inbox order by $sortBy");
|
||||||
while (my ($messageId, $userId, $groupId) = $rs->array) {
|
while (my ($messageId, $userId, $groupId) = $rs->array) {
|
||||||
if ($user->userId eq $userId || ($groupId && $user->isInGroup($groupId))) {
|
if ($user->userId eq $userId || ($groupId && $user->isInGroup($groupId))) {
|
||||||
$counter++;
|
$counter++;
|
||||||
|
|
|
||||||
|
|
@ -253,20 +253,39 @@ sub www_viewInbox {
|
||||||
my $session = shift;
|
my $session = shift;
|
||||||
return $session->privilege->insufficient() unless ($session->user->isInGroup(2));
|
return $session->privilege->insufficient() unless ($session->user->isInGroup(2));
|
||||||
|
|
||||||
my $i18n = WebGUI::International->new($session);
|
my $i18n = WebGUI::International->new($session);
|
||||||
my $vars = {};
|
my $vars = {};
|
||||||
my @msg = ();
|
my @msg = ();
|
||||||
my $pn = $session->form->get("pn") || 1;
|
my $rpp = 50;
|
||||||
my $rpp = 10;
|
|
||||||
|
#Deal with page number
|
||||||
|
my $pn = $session->form->get("pn") || 1;
|
||||||
|
my $pn_url = "";
|
||||||
|
$pn_url = ";pn=$pn";
|
||||||
|
|
||||||
|
#Deal with sort order
|
||||||
|
my $sortBy = $session->form->get("sortBy");
|
||||||
|
my $sort_url = "";
|
||||||
|
$sort_url = ";sortBy=$sortBy" if($sortBy);
|
||||||
|
|
||||||
|
#Cache the base url
|
||||||
|
my $inboxUrl = $session->url->page('op=viewInbox');
|
||||||
|
|
||||||
$vars->{ title } = $i18n->get(159);
|
$vars->{ title } = $i18n->get(159);
|
||||||
$vars->{'subject_label' } = $i18n->get(351);
|
$vars->{'subject_label' } = $i18n->get(351);
|
||||||
$vars->{'status_label' } = $i18n->get(553);
|
$vars->{'subject_url' } = $inboxUrl.$pn_url.";sortBy=subject";
|
||||||
|
|
||||||
|
$vars->{'status_label' } = $i18n->get(553);
|
||||||
|
$vars->{'status_url' } = $inboxUrl.$pn_url.";sortBy=status";
|
||||||
|
|
||||||
$vars->{'from_label' } = $i18n->get("private message from label");
|
$vars->{'from_label' } = $i18n->get("private message from label");
|
||||||
$vars->{'dateStamp_label'} = $i18n->get(352);
|
$vars->{'from_url' } = $inboxUrl.$pn_url.";sortBy=sentBy";
|
||||||
|
|
||||||
|
$vars->{'dateStamp_label'} = $i18n->get(352);
|
||||||
|
$vars->{'dateStamp_url' } = $inboxUrl.$pn_url.";sortBy=dateStamp";
|
||||||
|
|
||||||
my $adminUser = WebGUI::User->new($session,3)->username;
|
my $adminUser = WebGUI::User->new($session,3)->username;
|
||||||
my $messages = WebGUI::Inbox->new($session)->getMessagesForUser($session->user,$rpp,$pn);
|
my $messages = WebGUI::Inbox->new($session)->getMessagesForUser($session->user,$rpp,$pn,$sortBy);
|
||||||
foreach my $message (@$messages) {
|
foreach my $message (@$messages) {
|
||||||
my $hash = {};
|
my $hash = {};
|
||||||
$hash->{ message_url } = $session->url->page('op=viewInboxMessage;messageId='.$message->getId);
|
$hash->{ message_url } = $session->url->page('op=viewInboxMessage;messageId='.$message->getId);
|
||||||
|
|
@ -296,10 +315,10 @@ sub www_viewInbox {
|
||||||
|
|
||||||
#Pagination has to exist on every page regardless if there are more messages or not.
|
#Pagination has to exist on every page regardless if there are more messages or not.
|
||||||
if($pn > 1 ) {
|
if($pn > 1 ) {
|
||||||
$vars->{'prev_url' } = $session->url->page('op=viewInbox;pn='.($pn-1));
|
$vars->{'prev_url' } = $inboxUrl.';pn='.($pn-1).$sort_url;
|
||||||
$vars->{'prev_label' } = $i18n->get("private message prev label");
|
$vars->{'prev_label' } = $i18n->get("private message prev label");
|
||||||
}
|
}
|
||||||
$vars->{'next_url' } = $session->url->page('op=viewInbox;pn='.($pn+1));
|
$vars->{'next_url' } = $inboxUrl.';pn='.($pn+1).$sort_url;
|
||||||
$vars->{'next_label' } = $i18n->get("private message next label");
|
$vars->{'next_label' } = $i18n->get("private message next label");
|
||||||
|
|
||||||
$vars->{'messages' } = \@msg;
|
$vars->{'messages' } = \@msg;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue