--- loncom/interface/londocs.pm 2022/12/17 18:07:47 1.689
+++ loncom/interface/londocs.pm 2023/01/18 18:10:26 1.692
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.689 2022/12/17 18:07:47 raeburn Exp $
+# $Id: londocs.pm,v 1.692 2023/01/18 18:10:26 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -3109,7 +3109,7 @@ sub update_parameter {
my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]);
$name=&LONCAPA::map::qtescape($name);
$url=&LONCAPA::map::qtescape($url);
- next unless ($name && $url);
+ next unless $url;
my $is_map;
if ($url =~ m{/uploaded/.+\.(page|sequence)$}) {
$is_map = 1;
@@ -6294,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
@@ -6330,7 +6330,7 @@ CRSFORM
{ '
' => $importpubform },
);
if ($pickfile) {
- push(@importpubforma,{ '
' => $importcrsresform});
+ push(@importpubforma,{ '
' => $importcrsresform});
}
$importpubform = &create_form_ul(&create_list_elements(@importpubforma));
my $extresourcesform =
@@ -6532,168 +6532,62 @@ NROSTFORM
NWEBFORM
my @ids=&Apache::lonnet::current_machine_ids();
- my (%select_menus,$rolehomes);
- my $numauthor = 0;
- my $numcrsdirs = 0;
- my ($showstdprob,$showswitch,$switchlink);
- my $toppath = "/priv/$env{'user.domain'}/$env{'user.name'}";
+ my $machines_str = "'".join("','",@ids)."'";
+ my (%is_home,%toppath,$rolehomes);
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);
- $select_menus{'author'}->{'default'} = '/';
- $select_menus{'author'}->{'select2'}->{'/'} = '/';
- 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';
+ $is_home{'author'} = 1;
}
+ $rolehomes = ''."\n";
}
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,%at_home);
+ my %by_roletype;
if (keys(%roleshash)) {
foreach my $entry (keys(%roleshash)) {
my ($auname,$audom,$roletype) = split(/:/,$entry);
my $key = $entry;
$key =~ s/:/___/g;
- $by_roletype{$roletype}{$auname.'___'.$audom} = 1;
- $select_menus{$key}->{'text'} = &Apache::lonnet::plaintext($roletype)." ($audom/$auname)";
+ my $author = $auname.'___'.$audom;
+ $by_roletype{$roletype}{$author} = 1;
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);
- $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'];
- }
- $numauthor ++;
- }
- }
- my ($pickdir,$showtitle);
- if ($numauthor) {
- my @order;
- my $defrole;
- if ($env{'user.author'}) {
- push(@order,'author');
- $defrole = 'author';
- }
- if (keys(%by_roletype)) {
- foreach my $possrole ('ca','aa') {
- if (ref($by_roletype{$possrole}) eq 'HASH') {
- 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);
- }
- }
+ $toppath{$author} = "/priv/$audom/$auname";
+ if (grep(/^\Q$rolehome\E$/,@ids)) {
+ $is_home{$author} = 1;
}
+ $rolehomes .= ''."\n";
}
- $select_menus{'course'}->{'text'} = &mt('Course Resource');
- if (grep(/^\Q$crshome\E$/,@ids)) {
- my $is_home = 1;
- my %subdirs;
- my $toppath="/priv/$coursedom/$coursenum";
- &Apache::lonnet::recursedirs($is_home,'priv',$londocroot,$toppath,'',\%subdirs);
- $numcrsdirs = keys(%subdirs);
- $select_menus{'course'}->{'default'} = '/';
- $select_menus{'course'}->{'select2'}->{'/'} = '/';
- 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'];
- }
- push(@order,'course');
- $pickdir = $lt{'loca'}.
- &Apache::loncommon::linked_select_forms('courseresform','
'.$lt{'dire'},
- $defrole,'authorrole','authorpath',
- \%select_menus,\@order,'toggleCrsResTitle();',
- '','priv').'
';
- $showtitle = 'none';
- } else {
- my $is_home;
- $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);
- $numcrsdirs = keys(%subdirs);
- if ($numcrsdirs) {
- $pickdir .= $lt{'dire'}.'
'."\n".
+ $lt{'dire'}.
+ ''.
+ ''.
+ '
'."\n";
my %seltemplate_menus;
my @files = &Apache::lonhomework::get_template_list('problem');
@@ -6736,7 +6630,7 @@ NWEBFORM
my $templatepreview = ''.
''.&mt('Example').'';
my $crsresform=(<