--- loncom/interface/lonmsgdisplay.pm 2008/08/25 11:20:19 1.90 +++ loncom/interface/lonmsgdisplay.pm 2009/01/04 17:43:19 1.107 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging display # -# $Id: lonmsgdisplay.pm,v 1.90 2008/08/25 11:20:19 bisitz Exp $ +# $Id: lonmsgdisplay.pm,v 1.107 2009/01/04 17:43:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -243,9 +243,9 @@ function folder_choice(targetform,caller
- | '.
- ''.&mt('New Folder').' '. + ' | '.&mt('Name').' '. ' |
'.
- ' '. - &Apache::loncommon::start_data_table(). - &Apache::loncommon::start_data_table_header_row(); - $result .= " | $lt{'name'} | ". - "$lt{'usnm'} | ". - "$lt{'doma'} | ". - &Apache::loncommon::end_data_table_header_row(); + my $formname = $status.'users'; + if (ref($access_status) eq 'HASH') { + $access_status->{$status} = $$numitems{$status}; + } + $r->print(''; } - $result .= ' |
---|
+ + + | $prevbutton |
".&mt('No notes, face-to-face discussion records, critical messages, or broadcast messages in this [_1].',$lctype)."
"); } else { @@ -2096,7 +2235,6 @@ sub displaymessage { my %message=&Apache::lonnet::get('nohist_email'.$suffix,[$msgid]); my %content=&Apache::lonmsg::unpackagemsg($message{$msgid}); my $counter=0; - $r->print(''); my $escmsgid=&escape($msgid); foreach (@messages) { if ($_->[5] eq $escmsgid){ @@ -2104,7 +2242,6 @@ sub displaymessage { } $counter++; } - $r->print(''); my $see_anonymous; my $from_student = 0; @@ -2125,29 +2262,66 @@ sub displaymessage { # start output &printheader($r,'/adm/email?display='.&escape($msgid),'Display a Message','',$content{'baseurl'}); my %courseinfo=&Apache::lonnet::coursedescription($content{'courseid'}); -# Functions - $r->print('
'.&mt('Functions').': | '); + +# Functions and Actions + my $li_start='• '; + my $li_end=' '; + +# Prepare available functions + my $functionlist=''; if (!$content{'noreplies'}) { - $r->print(''.&mt('Reply').' | '); - } - $r->print(''.&mt('Forward').' | '. - ''.&mt('Mark Unread').' | '. - ''.&mt('Delete').' | '. - ''.&mt('Back to Folder Display').' | '); + $functionlist.=$li_start + .'' + .&mt('Reply') + .'' + .$li_end; + } + $functionlist.=$li_start + .'' + .&mt('Forward') + .'' + .$li_end; + $functionlist.=$li_start + .'' + .&mt('Mark Unread') + .'' + .$li_end; + $functionlist.=$li_start + .'' + .&mt('Delete') + .'' + .$li_end; + $functionlist.=$li_start + .'' + .&mt('Back to Folder Display') + .'' + .$li_end; if ($counter > 0){ - $r->print(''.&mt('Previous').' | '); + $functionlist.=$li_start + .'' + .&mt('Previous') + .'' + .$li_end; } if ($counter < $number_of_messages - 1){ - $r->print(''.&mt('Next').' | '); - } - $r->print('
' - .&mt('Currently available actions (will open extra window):') - .' | ' + $r->print('
'. - &Apache::lontexconvert::msgtexconverted($content{'message'},1). - '
' + .&Apache::lontexconvert::msgtexconverted($content{'message'},1) + .'' + ); + if (&displayresource(%content)) { + $r->print(&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_title(&mt('Resource Details')) + .&displayresource(%content) + ); + } + $r->print(&Apache::lonhtmlcommon::row_closure(1). + &Apache::lonhtmlcommon::end_pick_box()); + # Display LON-CAPA Message (End) return; } -sub retrieve_cc_recips { - my ($context,%content) = @_; - my %reciphash = - &Apache::lonnet::get('nohist_emailrecip',[$content{'recipid'}], - $content{'senderdomain'},$content{'sendername'}); - my $recipinfo = $reciphash{$content{'recipid'}}; - my @ccs; - if (ref($recipinfo) eq 'HASH') { - if (ref($recipinfo->{'cc'}) eq 'HASH') { - foreach my $cc (sort(keys(%{$recipinfo->{'cc'}}))) { - my ($ccname,$ccdom) = split(/:/,$cc); - if (!(($ccname eq $env{'user.name'}) && - ($ccdom eq $env{'user.domain'}))) { - my $showcc =''; - if ($context eq 'replying') { - $showcc = ''; - } - $showcc .= ''; - push(@ccs,$showcc); +sub retrieve_recips { + my ($context,$content,$recips)= @_; + my $tonum = 0; + if (ref($content) eq 'HASH') { + my %reciphash = + &Apache::lonnet::get('nohist_emailrecip',[$content->{'recipid'}], + $content->{'senderdomain'},$content->{'sendername'}); + my $recipinfo = $reciphash{$content->{'recipid'}}; + if (ref($recipinfo) eq 'HASH') { + foreach my $type ('to','cc','course_broadcast','group_cc_broadcast','group_bcc_broadcast') { + if (ref($recipinfo->{$type}) eq 'HASH') { + if ($type eq 'to') { + $tonum = keys(%{$recipinfo->{$type}}); + } + foreach my $user (sort(keys(%{$recipinfo->{$type}}))) { + my ($uname,$udom) = split(/:/,$user); + next if (($context eq 'replying') && ($uname eq $env{'user.name'}) + && ($udom eq $env{'user.domain'})); + my $showuser =''; + if ($context eq 'replying') { + if (($type eq 'to') || ($type eq 'cc')) { + $showuser = ''; + if (ref($recips) eq 'HASH') { + push(@{$recips->{$type}},$showuser); + } + } + } + } + } + } + return $tonum; +} + +sub recipients_link { + my ($r,$content,$recipients) = @_; + my ($broadcast_link,$show); + if ((ref($content) eq 'HASH') && (ref($recipients) eq 'HASH')) { + if (ref($recipients->{'course_broadcast'}) eq 'ARRAY') { + if (@{$recipients->{'course_broadcast'}} > 0) { + $show = 'course'; + } + } elsif (ref($recipients->{'group_cc_broadcast'}) eq 'ARRAY') { + if (@{$recipients->{'group_cc_broadcast'}} > 0) { + $show = 'group_cc'; + } + } elsif (ref($recipients->{'group_bcc_broadcast'}) eq 'ARRAY') { + if (@{$recipients->{'group_bcc_broadcast'}} > 0) { + $show = 'group_bcc'; + } + } + if ($show) { + my ($nothing,$height,$width,$start_page,$end_page,$body); + $nothing=&Apache::lonhtmlcommon::javascript_nothing(); + $height = 400; + $width = 600; + my $start_page = + &Apache::loncommon::start_page('Broadcast List', undef, + {only_body => 1, + js_ready => 1,}); + my $end_page = &Apache::loncommon::end_page({js_ready => 1,}); + my $body = '