--- loncom/interface/lonblockingmenu.pm 2014/06/07 19:13:42 1.12
+++ loncom/interface/lonblockingmenu.pm 2016/01/27 03:05:37 1.14.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.12 2014/06/07 19:13:42 raeburn Exp $
+# $Id: lonblockingmenu.pm,v 1.14.2.2 2016/01/27 03:05:37 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -561,6 +561,7 @@ sub handler {
'
'.&mt('accessing content in LON-CAPA portfolios or blogs').''."\n".
''.&mt("generating printouts of $lctype content").''.
''.&mt("accessing $lctype content in specified folders or resources").''.
+ ''.&mt("changing user's own password").''.
''.
''.$lt{'blca'}.'
'.$lt{'pobl'}.'
'
);
@@ -913,6 +914,9 @@ sub get_block_choices {
if (ref($symb_ref) eq 'HASH') {
my %resources = map { $symb_ref->{$_} => 1; }
(split(/,/,$env{'form.docs_resources_'.$item}));
+ if (exists($resources{''})) {
+ delete($resources{''});
+ }
$blocklist->{$type}->{resources} = \%resources;
if (keys(%resources) > 0) {
$blockdocs = 1;
@@ -924,6 +928,9 @@ sub get_block_choices {
if (ref($map_ref) eq 'HASH') {
my %maps = map { $map_ref->{$_} => 1; }
(split(/,/,$env{'form.docs_maps_'.$item}));
+ if (exists($maps{''})) {
+ delete($maps{''});
+ }
$blocklist->{$type}->{maps} = \%maps;
if (keys(%maps) > 0) {
$blockdocs = 1;
@@ -1047,16 +1054,26 @@ ACT
if (&Apache::lonnet::is_on_map($url)) {
if ($type eq 'map') {
if (ref($navmap)) {
- my $res = $navmap->getResourceByUrl($item);
- my $title = $res->compTitle();
+ my $title;
+ my $resobj = $navmap->getResourceByUrl($item);
+ if (ref($resobj)) {
+ $title = $resobj->compTitle();
+ } else {
+ $title = &Apache::lonnet::gettitle($item);
+ }
$itemname = &mt('Timer for all items in folder: [_1]',
''.
$title.'');
}
} else {
if (ref($navmap)) {
- my $res = $navmap->getBySymb($item);
- my $title = $res->compTitle();
+ my $title;
+ my $resobj = $navmap->getBySymb($item);
+ if (ref($resobj)) {
+ $title = $resobj->compTitle();
+ } else {
+ $title = &Apache::lonnet::gettitle($item);
+ }
$itemname = &mt('Timer for resource: [_1]',
''.
$title.'');
@@ -1358,6 +1375,8 @@ sub create_interval_form {
if (ref($intervals->{$type}) eq 'HASH') {
if (ref($navmap)) {
foreach my $map (sort(keys(%{$intervals->{$type}}))) {
+ next if ((!&Apache::lonnet::is_on_map($map)) &&
+ ($currkey ne $map));
my ($checked,$clickaction);
if ($currkey eq $map) {
$checked = ' checked="checked"';
@@ -1368,12 +1387,16 @@ sub create_interval_form {
'" value="'.&HTML::Entities::encode($map,'"<>&').'"'.
$checked.$clickaction.' />';
if ($currkey eq $map) {
- $intervalform .= $itemname.'';
+ $intervalform .= $itemname.''.$iteminfo;
} else {
- my $res = $navmap->getResourceByUrl($map);
- my $title = $res->compTitle();
- my $path;
- my $hierarchy = &show_timer_path($type,$map,$navmap);
+ my ($resobj,$title,$path,$hierarchy);
+ $resobj = $navmap->getResourceByUrl($map);
+ if (ref($resobj)) {
+ $title = $resobj->compTitle();
+ } else {
+ $title = &Apache::lonnet::gettitle($map);
+ }
+ $hierarchy = &show_timer_path($type,$map,$navmap);
if ($hierarchy) {
$path = ' '.
&mt('(in: [_1])',$hierarchy).
@@ -1383,9 +1406,6 @@ sub create_interval_form {
''.$title.'').
''.$path;
}
- if ($currkey eq $map) {
- $intervalform .= $iteminfo;
- }
$intervalform .= '
';
}
}
@@ -1394,22 +1414,29 @@ sub create_interval_form {
if (ref($intervals->{$type}) eq 'HASH') {
if (ref($navmap)) {
foreach my $resource (sort(keys(%{$intervals->{$type}}))) {
- my ($checked,$clickaction);
+ my ($checked,$clickaction,$resobj);
if ($currkey eq $resource) {
$checked = ' checked="checked"';
- } elsif ($jschg) {
- $clickaction = ' onclick="'.$jschg.'"';
+ } else {
+ $resobj = $navmap->getBySymb($resource);
+ next unless(ref($resobj));
+ if ($jschg) {
+ $clickaction = ' onclick="'.$jschg.'"';
+ }
}
$intervalform .= '';
+ $intervalform .= $itemname.''.$iteminfo;
} else {
- my $res = $navmap->getBySymb($resource);
- my $title = $res->compTitle();
- my $path;
- my $hierarchy = &show_timer_path($type,$resource,$navmap);
+ my ($title,$path,$hierarchy);
+ if (ref($resobj)) {
+ $title = $resobj->compTitle();
+ } else {
+ $title = &Apache::lonnet::gettitle($resource);
+ }
+ $hierarchy = &show_timer_path($type,$resource,$navmap);
if ($hierarchy) {
$path = ' '.
&mt('(in: [_1])',$hierarchy).
@@ -1419,9 +1446,6 @@ sub create_interval_form {
''.
$path;
}
- if ($currkey eq $resource) {
- $intervalform .= $iteminfo;
- }
$intervalform .= '
';
}
}
@@ -1478,8 +1502,9 @@ sub blocktype_text {
'blogs' => 'Blogs',
'docs' => 'Content',
'printout' => 'Printouts',
+ 'passwd' => 'Change Password',
);
- my $typeorder = ['com','chat','boards','port','groups','blogs','printout','docs'];
+ my $typeorder = ['com','chat','boards','port','groups','blogs','printout','docs','passwd'];
return ($typeorder,\%types);
}