--- loncom/interface/lonmsgdisplay.pm 2010/02/12 15:21:37 1.148 +++ loncom/interface/lonmsgdisplay.pm 2012/05/23 12:28:21 1.160 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging display # -# $Id: lonmsgdisplay.pm,v 1.148 2010/02/12 15:21:37 bisitz Exp $ +# $Id: lonmsgdisplay.pm,v 1.160 2012/05/23 12:28:21 goltermann Exp $ # # Copyright Michigan State University Board of Trustees # @@ -110,7 +110,7 @@ use Apache::lonfeedback; use Apache::lonrss(); use Apache::lonselstudent(); use lib '/home/httpd/lib/perl/'; -use LONCAPA; +use LONCAPA qw(:DEFAULT :match); # Querystring component with sorting type my $sqs=''; @@ -225,18 +225,18 @@ function folder_choice(targetform,caller
'.$lt{'fold'}.' '."\n". - &Apache::loncommon::select_form($folder,'folder',%formhash).' + &Apache::loncommon::select_form($folder,'folder',\%formhash).' |
'.$lt{'show'}.' '."\n". &Apache::loncommon::select_form($env{'form.interdis'},'interdis', - %show).' + \%show).' |
'.$lt{'status'}.' '."\n". - &Apache::loncommon::select_form($msgstatus,'msgstatus',%statushash).' + &Apache::loncommon::select_form($msgstatus,'msgstatus',\%statushash).' |
'.$lt{'actn'}.' '."\n".' '. - &Apache::loncommon::select_form('view','folderaction',%actions). + &Apache::loncommon::select_form('view','folderaction',\%actions). ' @@ -626,9 +626,7 @@ sub disgroup { return; } else { $hasfloat = 1; - unless($env{'environment.wysiwygeditor'} eq 'on') { - $r->print(' ');
- }
+ $r->print(' ');
}
return $hasfloat;
}
@@ -818,6 +814,15 @@ sub discrit {
foreach my $key (sort(keys(%what))) {
my %content=&Apache::lonmsg::unpackagemsg($what{$key});
next if ($content{'senderdomain'} eq '');
+ my $description;
+ if ($content{'courseid'} ne '') {
+ if ($content{'courseid'} =~ m{/^$match_domain\_$match_courseid$}) {
+ my %courseinfo=&Apache::lonnet::coursedescription($content{'courseid'},{'one_time' => 1});
+ if ($courseinfo{'description'} ne '') {
+ $description = $courseinfo{'description'};
+ }
+ }
+ }
$result .= &Apache::lonhtmlcommon::start_pick_box()
.&Apache::lonhtmlcommon::row_title(&mt('From'),undef,'LC_oddrow_value')
.''.&Apache::loncommon::aboutmewrapper(
@@ -829,8 +834,13 @@ sub discrit {
.&Apache::lonhtmlcommon::row_closure(1)
.&Apache::lonhtmlcommon::row_title(&mt('Subject'),undef,'LC_oddrow_value')
.$content{'subject'}
- .&Apache::lonhtmlcommon::row_closure(1)
- .&Apache::lonhtmlcommon::row_title(&mt('Message'),undef,'LC_evenrow_value')
+ .&Apache::lonhtmlcommon::row_closure(1);
+ if ($description ne '') {
+ $result .= &Apache::lonhtmlcommon::row_title(&mt('Course'),undef,'LC_oddrow_value')
+ .$description
+ .&Apache::lonhtmlcommon::row_closure(1);
+ }
+ $result .= &Apache::lonhtmlcommon::row_title(&mt('Message'),undef,'LC_evenrow_value')
.'');
my %Sortby = (
active => {},
previous => {},
@@ -701,9 +699,7 @@ sub disgroup {
}
}
}
- unless($env{'environment.wysiwygeditor'} eq 'on') {
- $r->print(' ');
- }
+ $r->print(''.&Apache::lontexconvert::msgtexconverted($content{'message'}).'' .&Apache::lonhtmlcommon::row_closure() .&Apache::lonhtmlcommon::row_title('',undef,'LC_oddrow_value') @@ -985,10 +995,15 @@ sub get_course_desc { if (defined($env{'course.'.$fromcid.'.description'})) { $description = $env{'course.'.$fromcid.'.description'}; } else { - my %courseinfo=&Apache::lonnet::coursedescription($fromcid); - $description = $courseinfo{'description'}; + if ($fromcid =~ m{/^$match_domain\_$match_courseid$}) { + my %courseinfo=&Apache::lonnet::coursedescription($fromcid, + {'one_time' => 1}); + $description = $courseinfo{'description'}; + } + } + if ($description ne '') { + $$descriptions{$fromcid} = $description; } - $$descriptions{$fromcid} = $description; } return $description; } @@ -1098,7 +1113,9 @@ ENDDISHEADER if ($lastdis>$#temp) { $lastdis=$#temp; } $r->print(&scrollbuttons($startdis,$number,$firstdis,$lastdis,$totalnumber,$msgstatus)); $r->print(''); if ($hasfloat) { - unless($env{'environment.wysiwygeditor'} eq 'on') { - $r->print(''); - } + $r->print(''); } $r->print(&generate_preview_form); } @@ -1995,6 +2021,7 @@ sub facetoface { .&Apache::lonhtmlcommon::end_pick_box() .' ' .'' + .'' ); if (($stage ne 'query') && @@ -2033,317 +2060,6 @@ ENDBFORM } } -# ----------------------------------------------------------- Blocking during exams - -sub examblock { - my ($r,$action) = @_; - unless ($env{'request.course.id'}) { return;} - if (!&Apache::lonnet::allowed('dcm',$env{'request.course.id'}) - && ! &Apache::lonnet::allowed('dcm',$env{'request.course.id'}. - '/'.$env{'request.course.sec'})) { - $r->print('Not allowed'); - return; - } - my $usertype; - my $crstype = &Apache::loncommon::course_type(); - if ($crstype eq 'Community') { - $usertype = 'members'; - } else { - $usertype = 'students'; - } - my $lctype = lc($crstype); - my %lt=&Apache::lonlocal::texthash( - 'comb' => 'Communication Blocking', - 'cbds' => 'Communication blocking during scheduled exams', - 'desc' => "You can use communication blocking to prevent $usertype enrolled in this $lctype from displaying LON-CAPA messages sent by other $usertype during an online exam. As blocking of communication could potentially interrupt legitimate communication between $usertype who are also both enrolled in a different LON-CAPA course or community, please be careful that you select the correct start and end times for your scheduled exam when setting or modifying these parameters.", - 'mecb' => 'Modify existing communication blocking periods', - 'ncbc' => 'No communication blocks currently saved', - 'stor' => 'Save', - ); - - my %ltext = &Apache::lonlocal::texthash( - 'dura' => 'Duration', - 'setb' => 'Set by', - 'even' => 'Event', - 'blck' => 'Blocked?', - 'actn' => 'Action', - 'star' => 'Start', - 'endd' => 'End' - ); - - &printheader($r,'/adm/email?block=display',$lt{'comb'}); - $r->print(' '.$lt{'cbds'}.''); - - if ($action eq 'store') { - &blockstore($r); - } - - $r->print($lt{'desc'}.'- -$end_page -END - return; -} - -sub blockstore { - my $r = shift; - my %lt=&Apache::lonlocal::texthash( - 'tfcm' => 'The following changes were made', - 'ncwm' => 'No changes were made.' - ); - my %adds = (); - my %removals = (); - my %cancels = (); - my $modtotal = 0; - my $canceltotal = 0; - my $addtotal = 0; - my %blocking = (); - $r->print(' '.$lt{'head'}.''); - foreach my $envkey (keys(%env)) { - if ($envkey =~ m/^form\.modify_(\d+)$/) { - $adds{$1} = $1; - $removals{$1} = $1; - $modtotal ++; - } elsif ($envkey =~ m/^form\.cancel_(\d+)$/) { - $cancels{$1} = $1; - unless ( defined($removals{$1}) ) { - $removals{$1} = $1; - $canceltotal ++; - } - } elsif ($envkey =~ m/^form\.add_(\d+)$/) { - $adds{$1} = $1; - $addtotal ++; - } - } - - foreach my $key (keys(%removals)) { - my $hashkey = $env{'form.key_'.$key}; - &Apache::lonnet::del('comm_block',["$hashkey"], - $env{'course.'.$env{'request.course.id'}.'.domain'}, - $env{'course.'.$env{'request.course.id'}.'.num'} - ); - } - foreach my $key (keys(%adds)) { - unless ( defined($cancels{$key}) ) { - my ($newstart,$newend) = &get_dates_from_form($key); - my $newkey = $newstart.'____'.$newend; - my $blocktypes = &get_block_choices($key); - $blocking{$newkey} = { - setter => $env{'user.name'}.':'.$env{'user.domain'}, - event => &escape($env{'form.title_'.$key}), - blocks => $blocktypes, - }; - } - } - if ($addtotal + $modtotal > 0) { - &Apache::lonnet::put('comm_block',\%blocking, - $env{'course.'.$env{'request.course.id'}.'.domain'}, - $env{'course.'.$env{'request.course.id'}.'.num'} - ); - } - my $chgestotal = $canceltotal + $modtotal + $addtotal; - if ($chgestotal > 0) { - $r->print($lt{'tfcm'}.'
'); - return; -} - -sub get_dates_from_form { - my $item = shift; - my $startdate = &Apache::lonhtmlcommon::get_date_from_form('startdate_'.$item); - my $enddate = &Apache::lonhtmlcommon::get_date_from_form('enddate_'.$item); - return ($startdate,$enddate); -} - -sub get_blockdates { - my ($records,$blockcount) = @_; - $$blockcount = 0; - %{$records} = &Apache::lonnet::dump('comm_block', - $env{'course.'.$env{'request.course.id'}.'.domain'}, - $env{'course.'.$env{'request.course.id'}.'.num'} - ); - $$blockcount = keys(%{$records}); - - if ((keys(%{$records}))[0] =~ /^error: 2 /) { - $records = {}; - $$blockcount = 0; - } -} - -sub get_block_choices { - my $item = shift; - my $blocklist; - my ($typeorder,$types) = &blocktype_text(); - foreach my $type (@{$typeorder}) { - if ($env{'form.'.$type.'_'.$item}) { - $blocklist->{$type} = 'on'; - } else { - $blocklist->{$type} = 'off'; - } - } - return $blocklist; -} - -sub display_blocker_status { - my ($r,$records,$ltext) = @_; - my $parmcount = 0; - - my %lt = &Apache::lonlocal::texthash( - 'modi' => 'Modify', - 'canc' => 'Cancel', - ); - my ($typeorder,$types) = &blocktype_text(); - $r->print(&Apache::loncommon::start_data_table()); - $r->print(<<"END"); - $ltext->{'dura'} |
- $ltext->{'setb'} |
- $ltext->{'even'} |
- $ltext->{'blck'} |
- $ltext->{'actn'} |
- | $ltext->{'star'}: $startform $ltext->{'endd'}: $endform |
- $settername | -- |
-END
- foreach my $block (@{$typeorder}) {
- my $blockstatus = '';
- if ($blocks->{$block} eq 'on') {
- $blockstatus = 'checked="checked"';
- }
- $r->print(' '); - } - $r->print(<<"END"); - |
- - -END - $r->print(&Apache::loncommon::end_data_table_row()); - $parmcount++; - } - $r->print(<<"END"); - |