--- loncom/interface/lonmsgdisplay.pm 2006/04/08 06:53:37 1.1
+++ loncom/interface/lonmsgdisplay.pm 2006/05/17 09:46:01 1.25
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines for messaging display
#
-# $Id: lonmsgdisplay.pm,v 1.1 2006/04/08 06:53:37 albertel Exp $
+# $Id: lonmsgdisplay.pm,v 1.25 2006/05/17 09:46:01 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -28,6 +28,7 @@
package Apache::lonmsgdisplay;
+use Apache::lonselstudent;
=pod
@@ -116,7 +117,6 @@ recipients of the message/e-mail.
use strict;
use Apache::lonnet;
-use vars qw($msgcount);
use HTML::TokeParser();
use Apache::Constants qw(:common);
use Apache::loncommon();
@@ -173,7 +173,7 @@ sub scrollbuttons {
sub statuschange {
my ($msgid,$newstatus,$folder)=@_;
- my $suffix=&foldersuffix($folder);
+ my $suffix=&Apache::lonmsg::foldersuffix($folder);
my %status=&Apache::lonnet::get('email_status'.$suffix,[$msgid]);
if ($status{$msgid}=~/^error\:/) { $status{$msgid}=''; }
unless ($status{$msgid}) { $status{$msgid}='new'; }
@@ -185,8 +185,9 @@ sub statuschange {
&Apache::lonnet::put('email_status'.$suffix,{$msgid => $newstatus});
}
if ($newstatus eq 'deleted') {
- &movemsg(&Apache::lonnet::unescape($msgid),$folder,'trash');
- }
+ return &movemsg($msgid,$folder,'trash');
+ }
+ return ;
}
# ============================================================= Make new folder
@@ -205,35 +206,93 @@ sub makefolder {
sub movemsg {
my ($msgid,$srcfolder,$trgfolder)=@_;
if ($srcfolder eq 'new') { $srcfolder=''; }
- my $srcsuffix=&foldersuffix($srcfolder);
- my $trgsuffix=&foldersuffix($trgfolder);
+ my $srcsuffix=&Apache::lonmsg::foldersuffix($srcfolder);
+ my $trgsuffix=&Apache::lonmsg::foldersuffix($trgfolder);
+ if ($srcsuffix eq $trgsuffix) {
+ return (0,&mt('Message not moved, Attempted to move message to the same folder as it already is in.'));
+ }
# Copy message
my %message=&Apache::lonnet::get('nohist_email'.$srcsuffix,[$msgid]);
- &Apache::lonnet::put('nohist_email'.$trgsuffix,{$msgid => $message{$msgid}});
+ if (!exists($message{$msgid}) || $message{$msgid} eq '') {
+ if (&Apache::slotrequest::network_error(%message)) {
+ return (0,&mt('Message not moved, A network error occurred.'));
+ } else {
+ return (0,&mt('Message not moved as the message is no longer in the source folder.'));
+ }
+ }
+
+ my $result =&Apache::lonnet::put('nohist_email'.$trgsuffix,
+ {$msgid => $message{$msgid}});
+ if (&Apache::slotrequest::network_error($result)) {
+ return (0,&mt('Message not moved, A network error occurred.'));
+ }
# Copy status
unless ($trgfolder eq 'trash') {
- my %status=&Apache::lonnet::get('email_status'.$srcsuffix,[$msgid]);
- &Apache::lonnet::put('email_status'.$trgsuffix,{$msgid => $status{$msgid}});
+ my %status=&Apache::lonnet::get('email_status'.$srcsuffix,[$msgid]);
+ # a non-existant status is the mark of an unread msg
+ if (&Apache::slotrequest::network_error(%status)) {
+ return (0,&mt('Message copied to new folder but status was not, A network error occurred.'));
+ }
+ my $result=&Apache::lonnet::put('email_status'.$trgsuffix,
+ {$msgid => $status{$msgid}});
+ if (&Apache::slotrequest::network_error($result)) {
+ return (0,&mt('Message copied to new folder but status was not, A network error occurred.'));
+ }
}
+
# Delete orginals
- &Apache::lonnet::del('nohist_email'.$srcsuffix,[$msgid]);
- &Apache::lonnet::del('email_status'.$srcsuffix,[$msgid]);
+ my $result_del_msg =
+ &Apache::lonnet::del('nohist_email'.$srcsuffix,[$msgid]);
+ my $result_del_stat =
+ &Apache::lonnet::del('email_status'.$srcsuffix,[$msgid]);
+ if (&Apache::slotrequest::network_error($result_del_msg)) {
+ return (0,&mt('Message copied, but unable to delete the original from the source folder.'));
+ }
+ if (&Apache::slotrequest::network_error($result_del_stat)) {
+ return (0,&mt('Message copied, but unable to delete the original status from the source folder.'));
+ }
+
+ return (1);
}
# ======================================================= Display a course list
sub discourse {
+ my $result;
+ my ($course_personnel,
+ $current_members,
+ $expired_members,
+ $future_members) = &Apache::lonselstudent::get_people_in_class();
+ unshift @$current_members, (@$course_personnel);
+ my %defaultUsers;
+
+ $result = &Apache::lonselstudent::render_student_list($current_members,
+ "compemail",
+ "current",
+ \%defaultUsers,
+ 1,"selectedusers",1);
+
+ return $result;
+}
+
+# --------------------------------- No longer needed ..old display course list.
+sub discourse_obsolete {
my $r=shift;
- my $classlist = &Apache::loncoursedata::get_classlist();
- my $now=time;
+ my ($classlist,$keylist) = &Apache::loncoursedata::get_classlist();
+ my ($classgroups,$studentgroups) =
+ &Apache::loncoursedata::get_group_memberships($classlist,$keylist);
my %lt=&Apache::lonlocal::texthash('cfa' => 'Check All',
'cfs' => 'Check Section/Group',
'cfn' => 'Uncheck All');
+ if (defined($env{'form.group'})) {
+ $r->print(''."\n");
+ }
$r->print(<
ENDDISHEADER my %coursepersonnel=&Apache::lonnet::get_course_adv_roles(); - $r->print('
'. - ' | ('.$_.'), | '.$role.' |
'.$sname.'@'.$sdom.' | '.$section. - ' | ||
Name | Username:Domain | Role | '. + ' | ('.$user.'), | '.$role.' | '); + $r->print(&Apache::loncommon::end_data_table_row()); + } + } + $r->print(&Apache::loncommon::end_data_table()); + } + if (keys(%{$classlist}) > 0) { + $r->print('
---|---|---|---|
Name | Username:Domain | Section | Groups | '.$groupitems. + ' | '.$sname.':'.$sdom.' | '.$section. + ' | '.$grouplist.' | '); + $r->print(&Apache::loncommon::end_data_table_row()); + } + $r->print(&Apache::loncommon::end_data_table()); } - $r->print('