--- 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(''); - 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(''); + 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(''. + ''); + $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(''); + 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
('.$user.'),'.$role.'
NameUsername:DomainSectionGroups
'.$groupitems. + ''.$sname.':'.$sdom.''.$section. + ''.$grouplist.'
'); } # ==================================================== 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(<
+