--- loncom/interface/lonblockingmenu.pm 2016/10/23 17:06:49 1.14.2.3 +++ loncom/interface/lonblockingmenu.pm 2020/05/25 16:48:07 1.14.2.3.2.2 @@ -2,7 +2,7 @@ # Routines for configuring blocking of access to collaborative functions, # and specific resources during an exam # -# $Id: lonblockingmenu.pm,v 1.14.2.3 2016/10/23 17:06:49 raeburn Exp $ +# $Id: lonblockingmenu.pm,v 1.14.2.3.2.2 2020/05/25 16:48:07 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -527,7 +527,7 @@ sub handler { $r->print(&Apache::loncourserespicker::create_picker($navmap, 'examblock','resourceblocks',$crstype, \%blockedmaps,\%blockedresources, - $env{'form.block'},'','',undef,$readonly)); + $env{'form.block'},'','',undef,undef,$readonly)); } else { $r->print($errormsg); } @@ -578,6 +578,7 @@ sub handler { my %lt=&Apache::lonlocal::texthash ( 'cbds' => 'Blocking communication and/or content access during exams', 'prev' => "For the duration of an exam, or a timed quiz, students in this course can be prevented from:", + 'flow' => "For the duration of an exam, or a timed quiz, event-driven interruptions to a student's workflow can be suppressed:", 'blca' => "Blocks can potentially interrupt legitimate communication between $usertype who are also both enrolled in a different LON-CAPA $lctype.", 'pobl' => "Portfolio blocking can impact a student's ability to complete assignments in courses besides your own. Please use this feature wisely.", 'actt' => "Action to take:", @@ -622,6 +623,11 @@ sub handler { '
  • '.&mt("accessing $lctype content in specified folders or resources").'
  • '. '
  • '.&mt("changing user's own password").'
  • '. ''. + $lt{'flow'}. + ''. '

    '.$lt{'blca'}.'
    '.$lt{'pobl'}.'

    ' ); } @@ -877,6 +883,24 @@ sub blockstore { &escape($env{'form.title_'.$key})).'
    '; } } + if ($blocktypes->{'alert'} eq 'on') { + ($status,$needsrelease) = &check_release_required('alert',$chomemajor,$chomeminor); + if ($status eq 'fail') { + $blocktypes->{'alert'} = 'off'; + $output .= '

    '. + &mt('Message Alert blocking not allowed for [_1]', + &escape($env{'form.title_'.$key})).'
    '; + } + } + if ($blocktypes->{'reinit'} eq 'on') { + ($status,$needsrelease) = &check_release_required('reinit',$chomemajor,$chomeminor); + if ($status eq 'fail') { + $blocktypes->{'reinit'} = 'off'; + $output .= '

    '. + &mt('Course Re-initialization blocking not allowed for [_1]', + &escape($env{'form.title_'.$key})).'
    '; + } + } } if ($blockdocs) { ($status,$needsrelease) = &check_release_required('docs',$chomemajor,$chomeminor); @@ -1632,8 +1656,10 @@ sub blocktype_text { 'docs' => 'Content', 'printout' => 'Printouts', 'passwd' => 'Change Password', + 'alert' => 'Critical Alert', + 'reinit' => 'Course Re-init', ); - my $typeorder = ['com','chat','boards','port','groups','blogs','printout','docs','passwd']; + my $typeorder = ['com','chat','boards','port','groups','blogs','printout','docs','alert','reinit','passwd']; return ($typeorder,\%types); }