--- loncom/interface/londocs.pm 2022/10/29 18:13:28 1.688
+++ loncom/interface/londocs.pm 2022/12/31 14:08:59 1.690
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.688 2022/10/29 18:13:28 raeburn Exp $
+# $Id: londocs.pm,v 1.690 2022/12/31 14:08:59 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -6135,6 +6135,7 @@ sub handler {
'stpr' => 'Standard Problem',
'news' => 'New sub-directory',
'crpr' => 'Create Problem',
+ 'swit' => 'Switch Server',
'drbx' => 'Drop Box',
'scuf' => 'External Scores (handgrade, upload, clicker)',
'bull' => 'Discussion Board',
@@ -6293,12 +6294,12 @@ FUFORM
SEDFFORM
my $importcrsresform;
my ($numdirs,$pickfile) =
- &Apache::loncommon::import_crsauthor_form('crsresimportform','coursepath','coursefile',
+ &Apache::loncommon::import_crsauthor_form('coursepath','coursefile',
"resize_scrollbox('contentscroll','1','0');",
undef,'res');
if ($pickfile) {
$importcrsresform=(<
-
+
CRSFORM
@@ -6329,7 +6330,7 @@ CRSFORM
{ '' => $importpubform },
);
if ($pickfile) {
- push(@importpubforma,{ '' => $importcrsresform});
+ push(@importpubforma,{ '' => $importcrsresform});
}
$importpubform = &create_form_ul(&create_list_elements(@importpubforma));
my $extresourcesform =
@@ -6531,35 +6532,39 @@ NROSTFORM
NWEBFORM
my @ids=&Apache::lonnet::current_machine_ids();
- my %select_menus;
+ my (%select_menus,$rolehomes);
my $numauthor = 0;
my $numcrsdirs = 0;
+ my ($showstdprob,$showswitch,$switchlink);
my $toppath = "/priv/$env{'user.domain'}/$env{'user.name'}";
+ my $exclude = &Apache::lonnet::priv_exclude();
if ($env{'user.author'}) {
$numauthor ++;
$select_menus{'author'}->{'text'} = &Apache::lonnet::plaintext('au');
if (grep(/^\Q$env{'user.home'}\E$/,@ids)) {
my $is_home = 1;
my %subdirs;
- &Apache::lonnet::recursedirs($is_home,'priv',$londocroot,$toppath,'',\%subdirs);
+ &Apache::lonnet::recursedirs($is_home,1,'',$exclude,0,$toppath,'',\%subdirs);
$select_menus{'author'}->{'default'} = '/';
- $select_menus{'author'}->{'select2'}->{'/'} = '/';
- my @ordered = ('/');
+ my @ordered = ();
foreach my $relpath (sort { lc($a) cmp lc($b) } (keys(%subdirs))) {
$select_menus{'author'}->{'select2'}->{$relpath} = $relpath;
push(@ordered,$relpath);
}
$select_menus{'author'}->{'order'} = \@ordered;
+ $showstdprob = 'block';
} else {
+ $rolehomes = ''."\n";
$select_menus{'author'}->{'select2'}->{'switch'} = &mt('Switch server required');
$select_menus{'author'}->{'default'} = 'switch';
$select_menus{'author'}->{'order'} = ['switch'];
+ $showstdprob = 'none';
}
}
my %roleshash = &Apache::lonnet::get_my_roles($env{'user.name'},$env{'user.domain'},'userroles',
['active'],['ca','aa']);
my $crshome = $env{'course.'.$env{'request.course.id'}.'.home'};
- my %by_roletype;
+ my (%by_roletype,%at_home);
if (keys(%roleshash)) {
foreach my $entry (keys(%roleshash)) {
my ($auname,$audom,$roletype) = split(/:/,$entry);
@@ -6569,19 +6574,19 @@ NWEBFORM
$select_menus{$key}->{'text'} = &Apache::lonnet::plaintext($roletype)." ($audom/$auname)";
my $rolehome = &Apache::lonnet::homeserver($auname,$audom);
if (grep(/^\Q$rolehome\E$/,@ids)) {
+ $at_home{$auname.'___'.$audom} = 1;
my $is_home = 1;
my (%subdirs,@ordered);
my $toppath="/priv/$audom/$auname";
- &Apache::lonnet::recursedirs($is_home,'priv',$londocroot,$toppath,'',\%subdirs);
+ &Apache::lonnet::recursedirs($is_home,1,'',$exclude,0,$toppath,'',\%subdirs);
$select_menus{$key}->{'default'} = '/';
- $select_menus{$key}->{'select2'}->{'/'} = '/';
- my @ordered = ('/');
foreach my $relpath (sort { lc($a) cmp lc($b) } (keys(%subdirs))) {
$select_menus{$key}->{'select2'}->{$relpath} = $relpath;
push(@ordered,$relpath);
}
$select_menus{$key}->{'order'} = \@ordered;
} else {
+ $rolehomes .= ''."\n";
$select_menus{$key}->{'select2'}->{'switch'} = &mt('Switch server required');
$select_menus{$key}->{'default'} = 'switch';
$select_menus{$key}->{'order'} = ['switch'];
@@ -6603,6 +6608,11 @@ NWEBFORM
foreach my $author (sort { lc($a) cmp lc($b) } (keys(%{$by_roletype{$possrole}}))) {
unless ($defrole) {
$defrole = $author;
+ if ($at_home{$author}) {
+ $showstdprob = 'block';
+ } else {
+ $showstdprob = 'none';
+ }
}
push(@order,$author.'___'.$possrole);
}
@@ -6614,17 +6624,17 @@ NWEBFORM
my $is_home = 1;
my %subdirs;
my $toppath="/priv/$coursedom/$coursenum";
- &Apache::lonnet::recursedirs($is_home,'priv',$londocroot,$toppath,'',\%subdirs);
+ &Apache::lonnet::recursedirs($is_home,1,'',$exclude,0,$toppath,'',\%subdirs);
$numcrsdirs = keys(%subdirs);
$select_menus{'course'}->{'default'} = '/';
- $select_menus{'course'}->{'select2'}->{'/'} = '/';
- my @ordered = ('/');
+ my @ordered = ();
foreach my $relpath (sort { lc($a) cmp lc($b) } (keys(%subdirs))) {
$select_menus{'course'}->{'select2'}->{$relpath} = $relpath;
push(@ordered,$relpath);
}
$select_menus{'course'}->{'order'} = \@ordered;
} else {
+ $rolehomes .= ''."\n";
$select_menus{'course'}->{'select2'}->{'switch'} = &mt('Switch server required');
$select_menus{'course'}->{'default'} = 'switch';
$select_menus{'course'}->{'order'} = ['switch'];
@@ -6641,13 +6651,14 @@ NWEBFORM
$showtitle = 'inline';
if (grep(/^\Q$crshome\E$/,@ids)) {
$is_home = 1;
+ $showstdprob = 'block';
$pickdir .= '';
my $toppath="/priv/$coursedom/$coursenum'}";
my %subdirs;
- &Apache::lonnet::recursedirs($is_home,'priv',$londocroot,$toppath,'',\%subdirs);
+ &Apache::lonnet::recursedirs($is_home,1,'',$exclude,0,$toppath,'',\%subdirs);
$numcrsdirs = keys(%subdirs);
if ($numcrsdirs) {
- $pickdir .= &mt('Directory: ').'