--- loncom/interface/lonmsgdisplay.pm 2006/04/26 14:43:03 1.19 +++ loncom/interface/lonmsgdisplay.pm 2006/05/01 05:57:26 1.20 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging display # -# $Id: lonmsgdisplay.pm,v 1.19 2006/04/26 14:43:03 albertel Exp $ +# $Id: lonmsgdisplay.pm,v 1.20 2006/05/01 05:57:26 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -261,10 +261,15 @@ sub movemsg { sub discourse { my $r=shift; my $classlist = &Apache::loncoursedata::get_classlist(); - my $now=time; + my ($classgroups,$studentgroups) = + &Apache::loncoursedata::get_group_memberships($classlist); 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(''); - foreach my $role (sort keys %coursepersonnel) { - foreach (split(/\,/,$coursepersonnel{$role})) { - my ($puname,$pudom)=split(/\:/,$_); - $r->print(''. - ''); - } - } - $r->print('
('.$_.'),'.$role.'
'); - 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(''); + $r->print(&Apache::loncommon::start_data_table()); + if (keys(%coursepersonnel) > 0) { + $r->print('

Non-students

'); + $r->print(&Apache::loncommon::start_data_table()); + $r->print(&Apache::loncommon::start_data_table_row()); + $r->print(''); + $r->print(&Apache::loncommon::end_data_table_row()); + foreach my $role (sort keys %coursepersonnel) { + foreach (split(/\,/,$coursepersonnel{$role})) { + my ($puname,$pudom)=split(/\:/,$_); + $r->print(&Apache::loncommon::start_data_table_row()); + $r->print(''. + ''); + $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(&Apache::loncommon::start_data_table_row()); + $r->print(''); + $r->print(&Apache::loncommon::end_data_table_row()); + 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(''); + $r->print(&Apache::loncommon::end_data_table_row()); + } + $r->print(&Apache::loncommon::end_data_table()); } - $r->print('
'.$sname.':'.$sdom.''.$section. - '
NameUsername:DomainRole('.$_.'),'.$role.'NameUsername:DomainSectionGroups'.$groupitems. + ''.$sname.':'.$sdom.''.$section. + ''.$grouplist.'
'); } # ==================================================== Display Critical Message @@ -1858,7 +1905,7 @@ sub handler { ['display','replyto','forward','markread','markdel','markunread', 'sendreply','compose','sendmail','critical','recname','recdom', 'recordftf','sortedby','block','folder','startdis','interdis', - 'showcommentbaseurl','dismode']); + 'showcommentbaseurl','dismode','group']); $sqs='&sortedby='.$env{'form.sortedby'}; # ------------------------------------------------------ They checked for email