version 1.706, 2023/12/23 02:17:38
|
version 1.710, 2024/06/07 14:37:55
|
Line 102 sub authorhosts {
|
Line 102 sub authorhosts {
|
my %outhash=(); |
my %outhash=(); |
my $home=0; |
my $home=0; |
my $other=0; |
my $other=0; |
|
my @ids=&Apache::lonnet::current_machine_ids(); |
foreach my $key (keys(%env)) { |
foreach my $key (keys(%env)) { |
if ($key=~/^user\.role\.(au|ca)\.(.+)$/) { |
if ($key=~/^user\.role\.(au|ca)\.(.+)$/) { |
my $role=$1; |
my $role=$1; |
Line 118 sub authorhosts {
|
Line 119 sub authorhosts {
|
} |
} |
my $allowed=0; |
my $allowed=0; |
my $myhome=&Apache::lonnet::homeserver($ca,$cd); |
my $myhome=&Apache::lonnet::homeserver($ca,$cd); |
my @ids=&Apache::lonnet::current_machine_ids(); |
|
foreach my $id (@ids) { |
foreach my $id (@ids) { |
if ($id eq $myhome) { |
if ($id eq $myhome) { |
$allowed=1; |
$allowed=1; |
Line 263 ENDJS
|
Line 263 ENDJS
|
add_entries => {'onload' => "hide_searching();"}, |
add_entries => {'onload' => "hide_searching();"}, |
}; |
}; |
} |
} |
$r->print(&Apache::loncommon::start_page('Copy '.$crstype.' Content to Authoring Space',$js,$starthash)."\n". |
$r->print(&Apache::loncommon::start_page('Copy uploaded content to Authoring Space',$js,$starthash)."\n". |
&Apache::lonhtmlcommon::breadcrumbs('Copy '.$crstype.' Content to Authoring Space')."\n"); |
&Apache::lonhtmlcommon::breadcrumbs('Copy uploaded content to Authoring Space')."\n"); |
$r->print(&startContentScreen('tools')); |
$r->print(&startContentScreen('tools')); |
my ($home,$other,%outhash)=&authorhosts(); |
my ($home,$other,%outhash)=&authorhosts(); |
unless ($home) { |
unless ($home) { |
Line 5965 sub handler {
|
Line 5965 sub handler {
|
&init_breadcrumbs('versions','Check/Set Resource Versions','Docs_Check_Resource_Versions'); |
&init_breadcrumbs('versions','Check/Set Resource Versions','Docs_Check_Resource_Versions'); |
&checkversions($r,$canedit); |
&checkversions($r,$canedit); |
} elsif ($canedit && $env{'form.dumpcourse'}) { |
} elsif ($canedit && $env{'form.dumpcourse'}) { |
&init_breadcrumbs('dumpcourse','Copy '.&Apache::loncommon::course_type().' Content to Authoring Space'); |
&init_breadcrumbs('dumpcourse','Copy uploaded content to Authoring Space'); |
&dumpcourse($r); |
&dumpcourse($r); |
} elsif ($canedit && $env{'form.exportcourse'}) { |
} elsif ($canedit && $env{'form.exportcourse'}) { |
&init_breadcrumbs('exportcourse','IMS Export'); |
&init_breadcrumbs('exportcourse','IMS Export'); |
Line 6503 sub handler {
|
Line 6503 sub handler {
|
|
|
if ($allowed && $toolsflag) { |
if ($allowed && $toolsflag) { |
$r->print(&startContentScreen('tools')); |
$r->print(&startContentScreen('tools')); |
$r->print(&generate_admin_menu($crstype,$canedit)); |
$r->print(&generate_admin_menu($crstype,$canedit,$coursenum,$coursedom)); |
$r->print(&endContentScreen()); |
$r->print(&endContentScreen()); |
} elsif ((!$showdoc) && (!$uploadphase)) { |
} elsif ((!$showdoc) && (!$uploadphase)) { |
# ----------------------------------------------------------------------------- |
# ----------------------------------------------------------------------------- |
Line 6694 SEDFFORM
|
Line 6694 SEDFFORM
|
$checkcrsres = 1; |
$checkcrsres = 1; |
} elsif ($env{'course.'.$coursedom.'_'.$coursenum.'.internal.crsauthor'} ne '0') { |
} elsif ($env{'course.'.$coursedom.'_'.$coursenum.'.internal.crsauthor'} ne '0') { |
my %domdefs=&Apache::lonnet::get_domain_defaults($coursedom); |
my %domdefs=&Apache::lonnet::get_domain_defaults($coursedom); |
if ($domdefs{'crsauthor'}) { |
my $type = lc($env{'course.'.$env{'request.course.id'}.'.type'}); |
|
unless (($type eq 'community') || ($type eq 'placement')) { |
|
$type = 'unofficial'; |
|
if ($env{'course.'.$env{'request.course.id'}.'internal.coursecode'} ne '') { |
|
$type = 'official'; |
|
} elsif ($env{'course.'.$env{'request.course.id'}.'internal.textbook'} ne '') { |
|
$type = 'textbook'; |
|
} else { |
|
$type = 'unofficial'; |
|
} |
|
} |
|
if ($domdefs{$type.'crsauthor'}) { |
$checkcrsres = 1; |
$checkcrsres = 1; |
} |
} |
} |
} |
Line 7216 NGFFORM
|
Line 7227 NGFFORM
|
|
|
my %orderhash = ( |
my %orderhash = ( |
'aa' => ['Upload',$fileuploadform], |
'aa' => ['Upload',$fileuploadform], |
'bb' => ['Import',$importpubform], |
'bb' => ['External',$externalform], |
'cc' => ['External',$externalform], |
'cc' => ['Import',$importpubform], |
'dd' => ['Assessment',$gradingform], |
'dd' => ['Assessment',$gradingform], |
'ff' => ['Other',$specialdocumentsform], |
'ff' => ['Other',$specialdocumentsform], |
); |
); |
Line 7597 sub remove_archive {
|
Line 7608 sub remove_archive {
|
} |
} |
|
|
sub generate_admin_menu { |
sub generate_admin_menu { |
my ($crstype,$canedit) = @_; |
my ($crstype,$canedit,$coursenum,$coursedom) = @_; |
my $lc_crstype = lc($crstype); |
my $lc_crstype = lc($crstype); |
my ($home,$other,%outhash)=&authorhosts(); |
my ($home,$other,%outhash)=&authorhosts(); |
my %lt= ( # do not translate here |
my %lt= ( # do not translate here |
Line 7605 sub generate_admin_menu {
|
Line 7616 sub generate_admin_menu {
|
'cv' => 'Check/Set Resource Versions', |
'cv' => 'Check/Set Resource Versions', |
'ls' => 'List Resource Identifiers', |
'ls' => 'List Resource Identifiers', |
'ct' => 'Display/Set Shortened URLs for Deep-linking', |
'ct' => 'Display/Set Shortened URLs for Deep-linking', |
|
'ca' => "Enter $crstype Authoring Space", |
'imse' => 'Export contents to IMS Archive', |
'imse' => 'Export contents to IMS Archive', |
'dcd' => "Copy $crstype Content to Authoring Space", |
'dcd' => "Copy $crstype Content to Authoring Space", |
); |
); |
Line 7665 sub generate_admin_menu {
|
Line 7677 sub generate_admin_menu {
|
] |
] |
}); |
}); |
if ($canedit) { |
if ($canedit) { |
|
my ($crsauname,$crsaudom,$crshome); |
|
if (($coursenum ne '') && ($coursedom ne '')) { |
|
my $crsauthorurl = "/priv/$coursedom/$coursenum/"; |
|
($crsauname,$crsaudom,$crshome) = &Apache::lonnet::constructaccess($crsauthorurl); |
|
if (($crsauname eq $coursenum) && ($crsaudom eq $coursedom)) { |
|
my @ids=&Apache::lonnet::current_machine_ids(); |
|
my $linkurl; |
|
if (grep(/^\Q$crshome\E$/,@ids)) { |
|
$linkurl = $crsauthorurl; |
|
} else { |
|
$linkurl = |
|
&Apache::lonhtmlcommon::jump_to_editres($crsauthorurl,$crshome,1); |
|
} |
|
if ((ref($menu[0]) eq 'HASH') && (ref($menu[0]->{'items'}) eq 'ARRAY')) { |
|
push(@{$menu[0]->{items}}, |
|
{ linktext => $lt{'ca'}, |
|
url => $linkurl, |
|
permission => 'F', |
|
help => 'Docs_Course_Authorspace', |
|
icon => 'impcrsau.png', |
|
linktitle => $lt{'ca'}, |
|
}); |
|
} |
|
} |
|
} |
push(@menu, |
push(@menu, |
{ categorytitle=>'Export', |
{ categorytitle=>'Export', |
items =>[ |
items =>[ |
Line 9381 sub dump_switchserver_js {
|
Line 9418 sub dump_switchserver_js {
|
); |
); |
my %html_js_lt = &Apache::lonlocal::texthash( |
my %html_js_lt = &Apache::lonlocal::texthash( |
swit => 'Switch server?', |
swit => 'Switch server?', |
duco => 'Copying Content to Authoring Space', |
duco => 'Copying uploaded content to Authoring Space', |
yone => 'You need to switch to a server housing an Authoring Space for which you are author or co-author.', |
yone => 'You need to switch to a server housing an Authoring Space for which you are author or co-author.', |
chos => 'Choose server', |
chos => 'Choose server', |
); |
); |
Line 9522 sub makenewproblem {
|
Line 9559 sub makenewproblem {
|
if ($redirect) { |
if ($redirect) { |
my $rightsfile = 'default.rights'; |
my $rightsfile = 'default.rights'; |
my $sourcerights = "$path/$rightsfile"; |
my $sourcerights = "$path/$rightsfile"; |
|
&Apache::loncommon::crsauthor_rights($rightsfile,$path,$docroot,$coursenum,$coursedom); |
my $targetrights = $docroot."/res/$coursedom/$coursenum/$rightsfile"; |
my $targetrights = $docroot."/res/$coursedom/$coursenum/$rightsfile"; |
my $now = time; |
|
if (!-e $sourcerights) { |
|
my $cid = $coursedom.'_'.$coursenum; |
|
if (open(my $fh,">$sourcerights")) { |
|
print $fh <<END; |
|
<accessrule effect="deny" realm="" type="course" role="" /> |
|
<accessrule effect="allow" realm="$cid" type="course" role="" /> |
|
END |
|
close($fh); |
|
} |
|
} |
|
if (!-e "$sourcerights.meta") { |
|
if (open(my $fh,">$sourcerights.meta")) { |
|
my $author=$env{'environment.firstname'}.' '. |
|
$env{'environment.middlename'}.' '. |
|
$env{'environment.lastname'}.' '. |
|
$env{'environment.generation'}; |
|
$author =~ s/\s+$//; |
|
print $fh <<"END"; |
|
|
|
<abstract></abstract> |
|
<author>$author</author> |
|
<authorspace>$coursenum:$coursedom</authorspace> |
|
<copyright>private</copyright> |
|
<creationdate>$now</creationdate> |
|
<customdistributionfile></customdistributionfile> |
|
<dependencies></dependencies> |
|
<domain>$coursedom</domain> |
|
<highestgradelevel>0</highestgradelevel> |
|
<keywords></keywords> |
|
<language>notset </language> |
|
<lastrevisiondate>$now</lastrevisiondate> |
|
<lowestgradelevel>0</lowestgradelevel> |
|
<mime>rights</mime> |
|
<modifyinguser>$env{'user.name'}:$env{'user.domain'}</modifyinguser> |
|
<notes></notes> |
|
<obsolete></obsolete> |
|
<obsoletereplacement></obsoletereplacement> |
|
<owner>$coursenum:$coursedom</owner> |
|
<rule>deny:::course,allow:$cid::course</rule> |
|
<sourceavail></sourceavail> |
|
<standards></standards> |
|
<subject></subject> |
|
<title>Course Authoring Rights</title> |
|
END |
|
close($fh); |
|
} |
|
} |
|
if ((-e $sourcerights) && (-e "$sourcerights.meta")) { |
if ((-e $sourcerights) && (-e "$sourcerights.meta")) { |
if (!-e "$docroot/res/$coursedom") { |
if (!-e "$docroot/res/$coursedom") { |
mkdir("$docroot/res/$coursedom",0755); |
mkdir("$docroot/res/$coursedom",0755); |