--- loncom/interface/lonmsgdisplay.pm 2006/04/25 19:50:09 1.13
+++ loncom/interface/lonmsgdisplay.pm 2006/05/11 20:05:03 1.24
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines for messaging display
#
-# $Id: lonmsgdisplay.pm,v 1.13 2006/04/25 19:50:09 albertel Exp $
+# $Id: lonmsgdisplay.pm,v 1.24 2006/05/11 20:05:03 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -260,14 +260,19 @@ sub movemsg {
sub discourse {
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('
');
- my $sort = sub {
- my $aname=lc($classlist->{$a}[&Apache::loncoursedata::CL_FULLNAME()]);
- if (!$aname) { $aname=$a; }
- my $bname=lc($classlist->{$b}[&Apache::loncoursedata::CL_FULLNAME()]);
- if (!$bname) { $bname=$b; }
- return $aname cmp $bname;
- };
- foreach my $student (sort $sort (keys(%{$classlist}))) {
- my $info=$classlist->{$student};
- my ($sname,$sdom,$status,$fullname,$section) =
- (@{$info}[&Apache::loncoursedata::CL_SNAME(),
- &Apache::loncoursedata::CL_SDOM(),
- &Apache::loncoursedata::CL_STATUS(),
- &Apache::loncoursedata::CL_FULLNAME(),
- &Apache::loncoursedata::CL_SECTION()]);
- next if ($status ne 'Active');
- next if ($env{'request.course.sec'} &&
- $section ne $env{'request.course.sec'});
- my $key = 'send_to_&&&'.$section.'&&&_'.$student;
- if (! defined($fullname) || $fullname eq '') { $fullname = $sname; }
- $r->print(' | '.$sname.'@'.$sdom.' | '.$section.
- ' |
');
+ $r->print(&Apache::loncommon::start_data_table());
+ if (keys(%coursepersonnel) > 0) {
+ $r->print('Non-students
');
+ $r->print(&Apache::loncommon::start_data_table());
+ $r->print('Name | Username:Domain | Role |
');
+ foreach my $role (sort(keys(%coursepersonnel))) {
+ foreach my $user (split(/\,/,$coursepersonnel{$role})) {
+ my ($puname,$pudom)=split(/\:/,$user);
+ $r->print(&Apache::loncommon::start_data_table_row());
+ $r->print(' | '.
+ '('.$user.'), | '.$role.' | ');
+ $r->print(&Apache::loncommon::end_data_table_row());
+ }
+ }
+ $r->print(&Apache::loncommon::end_data_table());
+ }
+ if (keys(%{$classlist}) > 0) {
+ $r->print('Students
');
+ $r->print(&Apache::loncommon::start_data_table());
+ $r->print('Name | Username:Domain | Section | Groups |
');
+ my $sort = sub {
+ my $aname=lc($classlist->{$a}[&Apache::loncoursedata::CL_FULLNAME()]);
+ if (!$aname) { $aname=$a; }
+ my $bname=lc($classlist->{$b}[&Apache::loncoursedata::CL_FULLNAME()]);
+ if (!$bname) { $bname=$b; }
+ return $aname cmp $bname;
+ };
+ foreach my $student (sort $sort (keys(%{$classlist}))) {
+ my $info=$classlist->{$student};
+ my ($sname,$sdom,$status,$fullname,$section) =
+ (@{$info}[&Apache::loncoursedata::CL_SNAME(),
+ &Apache::loncoursedata::CL_SDOM(),
+ &Apache::loncoursedata::CL_STATUS(),
+ &Apache::loncoursedata::CL_FULLNAME(),
+ &Apache::loncoursedata::CL_SECTION()]);
+ next if ($status ne 'Active');
+ next if ($env{'request.course.sec'} &&
+ $section ne $env{'request.course.sec'});
+ my @studentsgroups =
+ &Apache::loncoursedata::get_students_groups($student,$status,
+ $classgroups);
+ my $grouplist = join(', ',@studentsgroups);
+ my $key = 'send_to_&&&'.$section.'&&&_'.$student;
+ if (! defined($fullname) || $fullname eq '') {$fullname = $sname;}
+ my $checked = '';
+ my $groupcount = 0;
+ my $groupitems;
+ $r->print(&Apache::loncommon::start_data_table_row());
+ $r->print(''.$groupitems.
+ ' | '.$sname.':'.$sdom.' | '.$section.
+ ' | '.$grouplist.' | ');
+ $r->print(&Apache::loncommon::end_data_table_row());
+ }
+ $r->print(&Apache::loncommon::end_data_table());
}
- $r->print('
');
}
# ==================================================== Display Critical Message
@@ -359,7 +403,7 @@ sub discrit {
$result.='
'.&mt('From').': '.
&Apache::loncommon::aboutmewrapper(
&Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).' ('.
-$content{'sendername'}.'@'.
+$content{'sendername'}.':'.
$content{'senderdomain'}.') '.$content{'time'}.
'
'.&mt('Subject').': '.$content{'subject'}.
'
'.
@@ -612,7 +656,7 @@ sub disfolder {
my $numblocked = 0;
&blockcheck(\%setters,\$startblock,\$endblock);
$r->print(<
+