--- loncom/interface/loncommon.pm 2012/12/27 00:00:23 1.1107
+++ loncom/interface/loncommon.pm 2013/01/18 12:58:42 1.1112
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.1107 2012/12/27 00:00:23 raeburn Exp $
+# $Id: loncommon.pm,v 1.1112 2013/01/18 12:58:42 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -67,6 +67,8 @@ use Apache::lonhtmlcommon();
use Apache::loncoursedata();
use Apache::lontexconvert();
use Apache::lonclonecourse();
+use Apache::lonuserutils();
+use Apache::lonuserstate();
use LONCAPA qw(:DEFAULT :match);
use DateTime::TimeZone;
use DateTime::Locale::Catalog;
@@ -991,7 +993,7 @@ sub select_language {
my ($name,$selected,$includeempty) = @_;
my %langchoices;
if ($includeempty) {
- %langchoices = ('' => 'No language preference');
+ %langchoices = ('' => &mt('No language preference'));
}
foreach my $id (&languageids()) {
my $code = &supportedlanguagecode($id);
@@ -11624,7 +11626,7 @@ sub cleanup_empty_dirs {
my $numitems = 0;
foreach my $item (@dircontents) {
if (-d "$path/$item") {
- &recurse_dirs("$path/$item");
+ &cleanup_empty_dirs("$path/$item");
if (-e "$path/$item") {
$numitems ++;
}
@@ -13317,6 +13319,26 @@ sub commit_studentrole {
return $result;
}
+sub show_role_extent {
+ my ($scope,$context,$role) = @_;
+ $scope =~ s{^/}{};
+ my @courseroles = &Apache::lonuserutils::roles_by_context('course',1);
+ push(@courseroles,'co');
+ my @authorroles = &Apache::lonuserutils::roles_by_context('author');
+ if (($context eq 'course') || (grep(/^\Q$role\E/,@courseroles))) {
+ $scope =~ s{/}{_};
+ return ''.$env{'course.'.$scope.'.description'}.'';
+ } elsif (($context eq 'author') || (grep(/^\Q$role\E/,@authorroles))) {
+ my ($audom,$auname) = split(/\//,$scope);
+ return &mt('[_1] Author Space',''.
+ &Apache::loncommon::plainname($auname,$audom).'');
+ } else {
+ $scope =~ s{/$}{};
+ return &mt('Domain: [_1]',''.
+ &Apache::lonnet::domain($scope,'description').'');
+ }
+}
+
############################################################
############################################################
@@ -14123,6 +14145,32 @@ sub update_content_constraints {
return;
}
+sub allmaps_incourse {
+ my ($cdom,$cnum,$chome,$cid) = @_;
+ if ($cdom eq '' || $cnum eq '' || $chome eq '' || $cid eq '') {
+ $cid = $env{'request.course.id'};
+ $cdom = $env{'course.'.$cid.'.domain'};
+ $cnum = $env{'course.'.$cid.'.num'};
+ $chome = $env{'course.'.$cid.'.home'};
+ }
+ my %allmaps = ();
+ my $lastchange =
+ &Apache::lonnet::get_coursechange($cdom,$cnum);
+ if ($lastchange > $env{'request.course.tied'}) {
+ my ($furl,$ferr) = &Apache::lonuserstate::readmap("$cdom/$cnum");
+ unless ($ferr) {
+ &update_content_constraints($cdom,$cnum,$chome,$cid);
+ }
+ }
+ my $navmap = Apache::lonnavmaps::navmap->new();
+ if (defined($navmap)) {
+ foreach my $res ($navmap->retrieveResources(undef,sub { $_[0]->is_map() },1,0,1)) {
+ $allmaps{$res->src()} = 1;
+ }
+ }
+ return \%allmaps;
+}
+
sub parse_supplemental_title {
my ($title) = @_;
@@ -14332,7 +14380,7 @@ sub check_captcha {
output_folder => $captcha_params{'output_dir'},
data_folder => $captcha_params{'db_dir'},
);
- my $captcha_chk = $captcha->check_code($code,$md5sum);
+ $captcha_chk = $captcha->check_code($code,$md5sum);
my %captcha_hash = (
0 => 'Code not checked (file error)',
-1 => 'Failed: code expired',