version 1.687, 2022/10/29 14:47:00
|
version 1.699, 2023/05/22 21:10:55
|
Line 205 sub validate_supppath {
|
Line 205 sub validate_supppath {
|
$backto .= '&'.$items[$i]; |
$backto .= '&'.$items[$i]; |
my $is_hidden; |
my $is_hidden; |
unless ($got_supp) { |
unless ($got_supp) { |
my ($supplemental) = &Apache::lonnet::get_supplemental($coursenum,$coursedom); |
my ($supplemental) = &Apache::loncommon::get_supplemental($coursenum,$coursedom); |
if (ref($supplemental) eq 'HASH') { |
if (ref($supplemental) eq 'HASH') { |
if (ref($supplemental->{'hidden'}) eq 'HASH') { |
if (ref($supplemental->{'hidden'}) eq 'HASH') { |
%supphidden = %{$supplemental->{'hidden'}}; |
%supphidden = %{$supplemental->{'hidden'}}; |
Line 719 sub group_import {
|
Line 719 sub group_import {
|
$url = $1; |
$url = $1; |
my $marker = $2; |
my $marker = $2; |
my $info = $3; |
my $info = $3; |
my ($toolid,%toolhash,%toolsettings); |
my ($toolid,$toolprefix,$tooltype,%toolhash,%toolsettings); |
my @extras = ('linktext','explanation','crslabel','crstitle','crsappend'); |
my @extras = ('linktext','explanation','crslabel','crstitle','crsappend'); |
my @toolinfo = split(/:/,$info); |
my @toolinfo = split(/:/,$info); |
if ($residx) { |
if ($residx) { |
Line 728 sub group_import {
|
Line 728 sub group_import {
|
} else { |
} else { |
$toolid = shift(@toolinfo); |
$toolid = shift(@toolinfo); |
} |
} |
|
if ($toolid =~ /^c/) { |
|
$tooltype = 'crs'; |
|
$toolprefix = 'c'; |
|
} else { |
|
$tooltype = 'dom'; |
|
} |
$toolid =~ s/\D//g; |
$toolid =~ s/\D//g; |
($toolhash{'target'},$toolhash{'width'},$toolhash{'height'}, |
($toolhash{'target'},$toolhash{'width'},$toolhash{'height'}, |
$toolhash{'linktext'},$toolhash{'explanation'},$toolhash{'crslabel'}, |
$toolhash{'linktext'},$toolhash{'explanation'},$toolhash{'crslabel'}, |
Line 741 sub group_import {
|
Line 747 sub group_import {
|
$toolhash{'gradable'} =~ s/\D+//g; |
$toolhash{'gradable'} =~ s/\D+//g; |
} |
} |
if (ref($ltitoolsref) eq 'HASH') { |
if (ref($ltitoolsref) eq 'HASH') { |
if (ref($ltitoolsref->{$toolid}) eq 'HASH') { |
if (ref($ltitoolsref->{$tooltype}) eq 'HASH') { |
my @deleted; |
if (ref($ltitoolsref->{$tooltype}->{$toolid}) eq 'HASH') { |
$toolhash{'id'} = $toolid; |
my %tools = %{$ltitoolsref->{$tooltype}->{$toolid}}; |
if (($toolhash{'target'} eq 'iframe') || ($toolhash{'target'} eq 'tab') || |
my @deleted; |
($toolhash{'target'} eq 'window')) { |
$toolhash{'id'} = $toolprefix.$toolid; |
if ($toolhash{'target'} eq 'window') { |
if (($toolhash{'target'} eq 'iframe') || ($toolhash{'target'} eq 'tab') || |
foreach my $item ('width','height') { |
($toolhash{'target'} eq 'window')) { |
$toolhash{$item} =~ s/^\s+//; |
if ($toolhash{'target'} eq 'window') { |
$toolhash{$item} =~ s/\s+$//; |
foreach my $item ('width','height') { |
if ($toolhash{$item} =~ /\D/) { |
$toolhash{$item} =~ s/^\s+//; |
delete($toolhash{$item}); |
$toolhash{$item} =~ s/\s+$//; |
if ($residx) { |
if ($toolhash{$item} =~ /\D/) { |
if ($toolsettings{$item}) { |
delete($toolhash{$item}); |
push(@deleted,$item); |
if ($residx) { |
|
if ($toolsettings{$item}) { |
|
push(@deleted,$item); |
|
} |
} |
} |
} |
} |
} |
} |
} |
} |
} |
} elsif ($residx) { |
} elsif ($residx) { |
$toolhash{'target'} = $toolsettings{'target'}; |
$toolhash{'target'} = $toolsettings{'target'}; |
if ($toolhash{'target'} eq 'window') { |
if ($toolhash{'target'} eq 'window') { |
foreach my $item ('width','height') { |
foreach my $item ('width','height') { |
$toolhash{$item} = $toolsettings{$item}; |
$toolhash{$item} = $toolsettings{$item}; |
} |
|
} |
|
} elsif (ref($tools{'display'}) eq 'HASH') { |
|
$toolhash{'target'} = $tools{'display'}{'target'}; |
|
if ($toolhash{'target'} eq 'window') { |
|
$toolhash{'width'} = $tools{'display'}{'width'}; |
|
$toolhash{'height'} = $tools{'display'}{'height'}; |
} |
} |
} |
} |
} elsif (ref($ltitoolsref->{$toolid}->{'display'}) eq 'HASH') { |
if ($toolhash{'target'} eq 'iframe') { |
$toolhash{'target'} = $ltitoolsref->{$toolid}->{'display'}->{'target'}; |
foreach my $item ('width','height','linktext','explanation') { |
if ($toolhash{'target'} eq 'window') { |
delete($toolhash{$item}); |
$toolhash{'width'} = $ltitoolsref->{$toolid}->{'display'}->{'width'}; |
if ($residx) { |
$toolhash{'height'} = $ltitoolsref->{$toolid}->{'display'}->{'height'}; |
if ($toolsettings{$item}) { |
} |
push(@deleted,$item); |
} |
} |
if ($toolhash{'target'} eq 'iframe') { |
|
foreach my $item ('width','height','linktext','explanation') { |
|
delete($toolhash{$item}); |
|
if ($residx) { |
|
if ($toolsettings{$item}) { |
|
push(@deleted,$item); |
|
} |
} |
} |
} |
} |
} elsif ($toolhash{'target'} eq 'tab') { |
} elsif ($toolhash{'target'} eq 'tab') { |
foreach my $item ('width','height') { |
foreach my $item ('width','height') { |
delete($toolhash{$item}); |
delete($toolhash{$item}); |
if ($residx) { |
if ($residx) { |
if ($toolsettings{$item}) { |
if ($toolsettings{$item}) { |
push(@deleted,$item); |
push(@deleted,$item); |
} |
} |
} |
} |
} |
} |
} |
} |
if (ref($tools{'crsconf'}) eq 'HASH') { |
if (ref($ltitoolsref->{$toolid}->{'crsconf'}) eq 'HASH') { |
foreach my $item ('label','title','linktext','explanation') { |
foreach my $item ('label','title','linktext','explanation') { |
my $crsitem; |
my $crsitem; |
if (($item eq 'label') || ($item eq 'title')) { |
if (($item eq 'label') || ($item eq 'title')) { |
$crsitem = 'crs'.$item; |
$crsitem = 'crs'.$item; |
} else { |
} else { |
$crsitem = $item; |
$crsitem = $item; |
} |
} |
if ($tools{'crsconf'}{$item}) { |
if ($ltitoolsref->{$toolid}->{'crsconf'}->{$item}) { |
$toolhash{$crsitem} =~ s/^\s+//; |
$toolhash{$crsitem} =~ s/^\s+//; |
$toolhash{$crsitem} =~ s/\s+$//; |
$toolhash{$crsitem} =~ s/\s+$//; |
if ($toolhash{$crsitem} eq '') { |
if ($toolhash{$crsitem} eq '') { |
delete($toolhash{$crsitem}); |
|
} |
|
} else { |
delete($toolhash{$crsitem}); |
delete($toolhash{$crsitem}); |
} |
} |
} else { |
if (($residx) && (exists($toolsettings{$crsitem}))) { |
delete($toolhash{$crsitem}); |
unless (exists($toolhash{$crsitem})) { |
} |
push(@deleted,$crsitem); |
if (($residx) && (exists($toolsettings{$crsitem}))) { |
} |
unless (exists($toolhash{$crsitem})) { |
|
push(@deleted,$crsitem); |
|
} |
} |
} |
} |
} |
} |
} |
if ($toolhash{'passback'}) { |
if ($toolhash{'passback'}) { |
my $gradesecret = UUID::Tiny::create_uuid_as_string(UUID_V4); |
my $gradesecret = UUID::Tiny::create_uuid_as_string(UUID_V4); |
$toolhash{'gradesecret'} = $gradesecret; |
$toolhash{'gradesecret'} = $gradesecret; |
$toolhash{'gradesecretdate'} = time; |
$toolhash{'gradesecretdate'} = time; |
|
} |
|
if ($toolhash{'roster'}) { |
|
my $rostersecret = UUID::Tiny::create_uuid_as_string(UUID_V4); |
|
$toolhash{'rostersecret'} = $rostersecret; |
|
$toolhash{'rostersecretdate'} = time; |
|
} |
|
my $changegradable; |
|
if (($residx) && ($folder =~ /^default/)) { |
|
if ($toolsettings{'gradable'}) { |
|
unless (($toolhash{'gradable'}) || (defined($LONCAPA::map::zombies[$residx]))) { |
|
push(@deleted,'gradable'); |
|
$changegradable = 1; |
|
} |
|
} elsif ($toolhash{'gradable'}) { |
|
$changegradable = 1; |
|
} |
} |
if (($caller eq 'londocs') && (defined($LONCAPA::map::zombies[$residx]))) { |
if ($toolhash{'roster'}) { |
$changegradable = 1; |
my $rostersecret = UUID::Tiny::create_uuid_as_string(UUID_V4); |
|
$toolhash{'rostersecret'} = $rostersecret; |
|
$toolhash{'rostersecretdate'} = time; |
|
} |
|
my $changegradable; |
|
if (($residx) && ($folder =~ /^default/)) { |
if ($toolsettings{'gradable'}) { |
if ($toolsettings{'gradable'}) { |
$toolhash{'gradable'} = 1; |
unless (($toolhash{'gradable'}) || (defined($LONCAPA::map::zombies[$residx]))) { |
|
push(@deleted,'gradable'); |
|
$changegradable = 1; |
|
} |
|
} elsif ($toolhash{'gradable'}) { |
|
$changegradable = 1; |
|
} |
|
if (($caller eq 'londocs') && (defined($LONCAPA::map::zombies[$residx]))) { |
|
$changegradable = 1; |
|
if ($toolsettings{'gradable'}) { |
|
$toolhash{'gradable'} = 1; |
|
} |
} |
} |
} |
} |
} |
my $putres = &Apache::lonnet::put('exttool_'.$marker,\%toolhash,$coursedom,$coursenum); |
my $putres = &Apache::lonnet::put('exttool_'.$marker,\%toolhash,$coursedom,$coursenum); |
if ($putres eq 'ok') { |
if ($putres eq 'ok') { |
if (@deleted) { |
if (@deleted) { |
&Apache::lonnet::del('exttool_'.$marker,\@deleted,$coursedom,$coursenum); |
&Apache::lonnet::del('exttool_'.$marker,\@deleted,$coursedom,$coursenum); |
|
} |
|
if (($changegradable) && ($folder =~ /^default/)) { |
|
my $val; |
|
if ($toolhash{'gradable'}) { |
|
$val = 'yes'; |
|
} else { |
|
$val = 'no'; |
|
} |
} |
&LONCAPA::map::storeparameter($residx,'parameter_0_gradable',$val, |
if (($changegradable) && ($folder =~ /^default/)) { |
'string_yesno'); |
my $val; |
&remember_parms($residx,'gradable','set',$val); |
if ($toolhash{'gradable'}) { |
|
$val = 'yes'; |
|
} else { |
|
$val = 'no'; |
|
} |
|
&LONCAPA::map::storeparameter($residx,'parameter_0_gradable',$val, |
|
'string_yesno'); |
|
&remember_parms($residx,'gradable','set',$val); |
|
} |
|
} else { |
|
return (&mt('Failed to save update to external tool.'),1); |
} |
} |
} else { |
|
return (&mt('Failed to save update to external tool.'),1); |
|
} |
} |
} |
} |
} |
} |
Line 1207 sub docs_change_log {
|
Line 1216 sub docs_change_log {
|
} |
} |
$r->print('</ul>'); |
$r->print('</ul>'); |
if ($docslog{$id}{'logentry'}{'parameter_res'}) { |
if ($docslog{$id}{'logentry'}{'parameter_res'}) { |
$r->print(&LONCAPA::map::qtescape((split(/\:/,$docslog{$id}{'logentry'}{'parameter_res'}))[0]).':<ul>'); |
my ($title,$url) = split(/\:/,$docslog{$id}{'logentry'}{'parameter_res'},3); |
|
if ($title eq '') { |
|
($title) = ($url =~ m{/([^/]+)$}); |
|
} elsif ($is_supp) { |
|
$title = &Apache::loncommon::parse_supplemental_title($title); |
|
} |
|
$r->print(&LONCAPA::map::qtescape($title).':<ul>'); |
foreach my $parameter ('randompick','hiddenresource','encrypturl','randomorder','gradable') { |
foreach my $parameter ('randompick','hiddenresource','encrypturl','randomorder','gradable') { |
if ($docslog{$id}{'logentry'}{'parameter_action_'.$parameter}) { |
if ($docslog{$id}{'logentry'}{'parameter_action_'.$parameter}) { |
# FIXME: internationalization seems wrong here |
# FIXME: internationalization seems wrong here |
Line 3109 sub update_parameter {
|
Line 3124 sub update_parameter {
|
my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]); |
my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]); |
$name=&LONCAPA::map::qtescape($name); |
$name=&LONCAPA::map::qtescape($name); |
$url=&LONCAPA::map::qtescape($url); |
$url=&LONCAPA::map::qtescape($url); |
next unless ($name && $url); |
next unless $url; |
my $is_map; |
my $is_map; |
if ($url =~ m{/uploaded/.+\.(page|sequence)$}) { |
if ($url =~ m{/uploaded/.+\.(page|sequence)$}) { |
$is_map = 1; |
$is_map = 1; |
Line 3562 sub editor {
|
Line 3577 sub editor {
|
} |
} |
|
|
if ((!$allowed) && ($folder =~ /^supplemental_\d+$/)) { |
if ((!$allowed) && ($folder =~ /^supplemental_\d+$/)) { |
my ($supplemental) = &Apache::lonnet::get_supplemental($coursenum,$coursedom); |
my ($supplemental) = &Apache::loncommon::get_supplemental($coursenum,$coursedom); |
if (ref($supplemental) eq 'HASH') { |
if (ref($supplemental) eq 'HASH') { |
if ((ref($supplemental->{'hidden'}) eq 'HASH') && |
if ((ref($supplemental->{'hidden'}) eq 'HASH') && |
(ref($supplemental->{'ids'}) eq 'HASH')) { |
(ref($supplemental->{'ids'}) eq 'HASH')) { |
Line 4294 END
|
Line 4309 END
|
$nomodal = 1; |
$nomodal = 1; |
} |
} |
} |
} |
my ($checkencrypt,$shownurl); |
my $checkencrypt; |
if (!$env{'request.role.adv'}) { |
if (!$env{'request.role.adv'}) { |
if (((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i) || |
if (((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i) || |
($isencrypted) || (&Apache::lonnet::EXT('resource.0.encrypturl',$symb) =~ /^yes$/i)) { |
($isencrypted) || (&Apache::lonnet::EXT('resource.0.encrypturl',$symb) =~ /^yes$/i)) { |
Line 4314 END
|
Line 4329 END
|
my $currenc = $env{'request.enc'}; |
my $currenc = $env{'request.enc'}; |
$env{'request.enc'} = 1; |
$env{'request.enc'} = 1; |
$shownsymb = &Apache::lonenc::encrypted($symb); |
$shownsymb = &Apache::lonenc::encrypted($symb); |
$shownurl = &Apache::lonenc::encrypted($url); |
my $shownurl = &Apache::lonenc::encrypted($url); |
if (&Apache::lonnet::symbverify($symb,$url)) { |
if (&Apache::lonnet::symbverify($symb,$url)) { |
$url = $shownurl; |
$url = $shownurl; |
} else { |
} else { |
Line 4329 END
|
Line 4344 END
|
$url = &Apache::lonnet::clutter($url); |
$url = &Apache::lonnet::clutter($url); |
} |
} |
} |
} |
$shownurl = $url; |
} else { |
|
$url = ''; |
} |
} |
unless ($env{'request.role.adv'}) { |
unless ($env{'request.role.adv'}) { |
if ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i) { |
if ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i) { |
Line 4340 END
|
Line 4356 END
|
$hiddenres = 1; |
$hiddenres = 1; |
} |
} |
} |
} |
if ($url ne '') { |
if (($url ne '') && ($shownsymb ne '')) { |
$url = $shownurl.(($shownurl=~/\?/)?'&':'?').'symb='.&escape($shownsymb); |
$url .= (($url=~/\?/)?'&':'?').'symb='.&escape($shownsymb); |
} |
} |
} |
} |
} elsif ($supplementalflag) { |
} elsif ($supplementalflag) { |
Line 4646 $form_end;
|
Line 4662 $form_end;
|
my ($enctext,$hidtext,$formhidden,$formurlhidden); |
my ($enctext,$hidtext,$formhidden,$formurlhidden); |
if ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i) { |
if ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i) { |
$hidtext = ' checked="checked"'; |
$hidtext = ' checked="checked"'; |
if (($ishash) && (ref($filtersref->{'randomorder'}) eq 'ARRAY')) { |
if (($ishash) && (ref($filtersref->{'hiddenresource'}) eq 'ARRAY')) { |
push(@{$filtersref->{'hiddenresource'}},$orderidx); |
push(@{$filtersref->{'hiddenresource'}},$orderidx); |
} |
} |
} |
} |
Line 5718 sub handler {
|
Line 5734 sub handler {
|
my $containertag; |
my $containertag; |
my $pathitem; |
my $pathitem; |
my %ltitools; |
my %ltitools; |
|
my $posslti; |
my $hiddentop; |
my $hiddentop; |
my $navmap; |
my $navmap; |
my $filterFunc = sub { my $res = shift; return (!$res->randomout() && !$res->is_map()) }; |
my $filterFunc = sub { my $res = shift; return (!$res->randomout() && !$res->is_map()) }; |
Line 5802 sub handler {
|
Line 5819 sub handler {
|
if ($supplementalflag) { |
if ($supplementalflag) { |
($foldername,$hiddenfolder) = ($pathitems[-1] =~ /^([^:]*)::(|1):::$/); |
($foldername,$hiddenfolder) = ($pathitems[-1] =~ /^([^:]*)::(|1):::$/); |
$foldername = &HTML::Entities::decode(&unescape($foldername)); |
$foldername = &HTML::Entities::decode(&unescape($foldername)); |
my ($supplemental) = &Apache::lonnet::get_supplemental($coursenum,$coursedom); |
my ($supplemental) = &Apache::loncommon::get_supplemental($coursenum,$coursedom); |
if (ref($supplemental) eq 'HASH') { |
if (ref($supplemental) eq 'HASH') { |
my ($suppmap,$suppmapnum); |
my ($suppmap,$suppmapnum); |
if ($folder eq 'supplemental') { |
if ($folder eq 'supplemental') { |
Line 5951 sub handler {
|
Line 5968 sub handler {
|
} |
} |
} |
} |
my $tabidstr = join("','",@tabids); |
my $tabidstr = join("','",@tabids); |
%ltitools = &Apache::lonnet::get_domain_lti($coursedom,'consumer'); |
my (%domtools,%crstools); |
my $posslti = keys(%ltitools); |
my %tooltypes = &Apache::loncommon::usable_exttools(); |
|
if ($tooltypes{'dom'}) { |
|
%domtools = &Apache::lonnet::get_domain_lti($coursedom,'consumer'); |
|
} |
|
if ($tooltypes{'crs'}) { |
|
%crstools = &Apache::lonnet::get_course_lti($coursenum,$coursedom,'consumer'); |
|
} |
|
%ltitools = ( |
|
dom => \%domtools, |
|
crs => \%crstools, |
|
); |
|
$posslti = scalar(keys(%domtools)) + scalar(keys(%crstools)); |
my $hostname = $r->hostname(); |
my $hostname = $r->hostname(); |
$script .= &editing_js($udom,$uname,$supplementalflag,$coursedom,$coursenum,$posslti, |
$script .= &editing_js($udom,$uname,$supplementalflag,$coursedom,$coursenum,$posslti, |
$londocroot,$canedit,$hostname,\$navmap). |
$londocroot,$canedit,$hostname,\$navmap). |
Line 6135 sub handler {
|
Line 6163 sub handler {
|
'stpr' => 'Standard Problem', |
'stpr' => 'Standard Problem', |
'news' => 'New sub-directory', |
'news' => 'New sub-directory', |
'crpr' => 'Create Problem', |
'crpr' => 'Create Problem', |
|
'swit' => 'Switch Server', |
'drbx' => 'Drop Box', |
'drbx' => 'Drop Box', |
'scuf' => 'External Scores (handgrade, upload, clicker)', |
'scuf' => 'External Scores (handgrade, upload, clicker)', |
'bull' => 'Discussion Board', |
'bull' => 'Discussion Board', |
Line 6155 sub handler {
|
Line 6184 sub handler {
|
'dire' => 'Directory:', |
'dire' => 'Directory:', |
'cate' => 'Category:', |
'cate' => 'Category:', |
'tmpl' => 'Template:', |
'tmpl' => 'Template:', |
|
'empd' => 'No resources found', |
'comment' => 'Comment', |
'comment' => 'Comment', |
'parse' => 'Upload embedded images/multimedia files if HTML file', |
'parse' => 'Upload embedded images/multimedia files if HTML file', |
'bb5' => 'Blackboard 5', |
'bb5' => 'Blackboard 5', |
Line 6293 FUFORM
|
Line 6323 FUFORM
|
SEDFFORM |
SEDFFORM |
my $importcrsresform; |
my $importcrsresform; |
my ($numdirs,$pickfile) = |
my ($numdirs,$pickfile) = |
&Apache::loncommon::import_crsauthor_form('crsresimportform','coursepath','coursefile', |
&Apache::loncommon::import_crsauthor_form('coursepath','coursefile', |
"resize_scrollbox('contentscroll','1','0');", |
"resize_scrollbox('contentscroll','1','0');", |
undef,'res'); |
undef,'res'); |
if ($pickfile) { |
if ($pickfile) { |
$importcrsresform=(<<CRSFORM); |
$importcrsresform=(<<CRSFORM); |
<a class="LC_menubuttons_link" href="javascript:toggleImportCrsres('res','$numdirs');"> |
<a class="LC_menubuttons_link" href="javascript:toggleImportCrsres('res');"> |
$lt{'imcr'}</a>$help{'Course_Resources'} |
$lt{'imcr'}</a>$help{'Course_Resources'} |
<form action="/adm/coursedocs" method="post" name="crsresimportform" onsubmit="return validImportCrsRes();"> |
<form action="/adm/coursedocs" method="post" name="crsresimportform" onsubmit="return validImportCrsRes();"> |
<fieldset id="importcrsresform" style="display: none;"> |
<fieldset id="importcrsresform" style="display: none;"> |
<legend>$lt{'imcr'}</legend> |
<legend>$lt{'imcr'}</legend> |
|
<div id="importcrsrescontent" style="display: none;"> |
<input type="hidden" name="active" value="bb" /> |
<input type="hidden" name="active" value="bb" /> |
$pickfile |
$pickfile |
<p> |
<p> |
$lt{'title'}: <input type="textbox" name="crsrestitle" value="" $disabled /> |
$lt{'title'}: <input type="text" name="crsrestitle" value="" $disabled /> |
</p> |
</p> |
<input type="hidden" name="importdetail" value="" /> |
<input type="hidden" name="importdetail" value="" /> |
<input type="submit" name="crsres" value="$lt{'impo'}" $disabled /> |
<input type="submit" name="crsres" value="$lt{'impo'}" $disabled /><br /> |
|
</div> |
|
<div id="importcrsresempty" style="display: none;"> |
|
<p> |
|
$lt{'empd'} |
|
</p> |
|
</div> |
</fieldset> |
</fieldset> |
</form> |
</form> |
CRSFORM |
CRSFORM |
Line 6329 CRSFORM
|
Line 6366 CRSFORM
|
{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/sequence.png" alt="'.$lt{impm}.'" onclick="javascript:toggleMap(\'map\');" />' => $importpubform }, |
{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/sequence.png" alt="'.$lt{impm}.'" onclick="javascript:toggleMap(\'map\');" />' => $importpubform }, |
); |
); |
if ($pickfile) { |
if ($pickfile) { |
push(@importpubforma,{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/res.png" alt="'.$lt{imcr}.'" onclick="javascript:toggleImportCrsres(\'res\','."'$numdirs'".');"/>' => $importcrsresform}); |
push(@importpubforma,{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/res.png" alt="'.$lt{imcr}.'" onclick="javascript:toggleImportCrsres(\'res\');" />' => $importcrsresform}); |
} |
} |
$importpubform = &create_form_ul(&create_list_elements(@importpubforma)); |
$importpubform = &create_form_ul(&create_list_elements(@importpubforma)); |
my $extresourcesform = |
my $extresourcesform = |
Line 6531 NROSTFORM
|
Line 6568 NROSTFORM
|
NWEBFORM |
NWEBFORM |
|
|
my @ids=&Apache::lonnet::current_machine_ids(); |
my @ids=&Apache::lonnet::current_machine_ids(); |
my %select_menus; |
my $machines_str = "'".join("','",@ids)."'"; |
my $numauthor = 0; |
my (%is_home,%toppath,$rolehomes); |
my $numcrsdirs = 0; |
|
my $toppath = "/priv/$env{'user.domain'}/$env{'user.name'}"; |
|
if ($env{'user.author'}) { |
if ($env{'user.author'}) { |
$numauthor ++; |
|
$select_menus{'author'}->{'text'} = &Apache::lonnet::plaintext('au'); |
|
if (grep(/^\Q$env{'user.home'}\E$/,@ids)) { |
if (grep(/^\Q$env{'user.home'}\E$/,@ids)) { |
my $is_home = 1; |
$is_home{'author'} = 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; |
|
} else { |
|
$select_menus{'author'}->{'select2'}->{'switch'} = &mt('Switch server required'); |
|
$select_menus{'author'}->{'default'} = 'switch'; |
|
$select_menus{'author'}->{'order'} = ['switch']; |
|
} |
} |
|
$rolehomes = '<input type="hidden" id="rolehome_author" name="rolehome_author" value="'.$env{'user.home'}.'" />'."\n"; |
} |
} |
my %roleshash = &Apache::lonnet::get_my_roles($env{'user.name'},$env{'user.domain'},'userroles', |
my %roleshash = &Apache::lonnet::get_my_roles($env{'user.name'},$env{'user.domain'},'userroles', |
['active'],['ca','aa']); |
['active'],['ca','aa']); |
my $crshome = $env{'course.'.$env{'request.course.id'}.'.home'}; |
|
my %by_roletype; |
my %by_roletype; |
if (keys(%roleshash)) { |
if (keys(%roleshash)) { |
foreach my $entry (keys(%roleshash)) { |
foreach my $entry (keys(%roleshash)) { |
my ($auname,$audom,$roletype) = split(/:/,$entry); |
my ($auname,$audom,$roletype) = split(/:/,$entry); |
my $key = $entry; |
my $key = $entry; |
$key =~ s/:/___/g; |
$key =~ s/:/___/g; |
$by_roletype{$roletype}{$auname.'___'.$audom} = 1; |
my $author = $auname.'___'.$audom; |
$select_menus{$key}->{'text'} = &Apache::lonnet::plaintext($roletype)." ($audom/$auname)"; |
$by_roletype{$roletype}{$author} = 1; |
my $rolehome = &Apache::lonnet::homeserver($auname,$audom); |
my $rolehome = &Apache::lonnet::homeserver($auname,$audom); |
if (grep(/^\Q$rolehome\E$/,@ids)) { |
$toppath{$author} = "/priv/$audom/$auname"; |
my $is_home = 1; |
if (grep(/^\Q$rolehome\E$/,@ids)) { |
my (%subdirs,@ordered); |
$is_home{$author} = 1; |
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 { |
|
$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; |
|
} |
|
push(@order,$author.'___'.$possrole); |
|
} |
|
} |
|
} |
} |
|
$rolehomes .= '<input type="hidden" id="rolehome_coauthor_'.$roletype.'_'.$audom.'/'.$auname.'" '. |
|
'name="rolehome_coauthor" value="'.$roletype.'='.$audom.'/'.$auname.'='.$rolehome.'" />'."\n"; |
} |
} |
$select_menus{'course'}->{'text'} = &mt('Course Resource'); |
} |
if (grep(/^\Q$crshome\E$/,@ids)) { |
my $crshome = $env{'course.'.$env{'request.course.id'}.'.home'}; |
my $is_home = 1; |
if (grep(/^\Q$crshome\E$/,@ids)) { |
my %subdirs; |
$is_home{'course'} = 1; |
my $toppath="/priv/$coursedom/$coursenum"; |
} |
&Apache::lonnet::recursedirs($is_home,'priv',$londocroot,$toppath,'',\%subdirs); |
$rolehomes .= '<input type="hidden" id="rolehome_course" name="rolehome_course" value="'.$crshome.'" />'."\n"; |
$numcrsdirs = keys(%subdirs); |
my $pickdir = $lt{'loca'}. |
$select_menus{'course'}->{'default'} = '/'; |
'<select name="authorrole" onchange="populateDirSelects(this.form,'."'authorrole','authorpath'".',1,1,0);">'."\n". |
$select_menus{'course'}->{'select2'}->{'/'} = '/'; |
'<option value="" selected="selected">'.&mt('Select').'</option>'."\n"; |
my @ordered = ('/'); |
if ($env{'user.author'}) { |
foreach my $relpath (sort { lc($a) cmp lc($b) } (keys(%subdirs))) { |
$pickdir .= '<option value="author">'.&Apache::lonnet::plaintext('au').'</option>'."\n"; |
$select_menus{'course'}->{'select2'}->{$relpath} = $relpath; |
} |
push(@ordered,$relpath); |
if (keys(%by_roletype)) { |
} |
foreach my $possrole ('ca','aa') { |
$select_menus{'course'}->{'order'} = \@ordered; |
if (ref($by_roletype{$possrole}) eq 'HASH') { |
} else { |
my $roletitle = &Apache::lonnet::plaintext($possrole); |
$select_menus{'course'}->{'select2'}->{'switch'} = &mt('Switch server required'); |
foreach my $author (sort { lc($a) cmp lc($b) } (keys(%{$by_roletype{$possrole}}))) { |
$select_menus{'course'}->{'default'} = 'switch'; |
my ($none,$where,$auname,$audom) = split(/\//,$toppath{$author}); |
$select_menus{'course'}->{'order'} = ['switch']; |
$pickdir .= '<option value="'.$author.'___'.$possrole.'">'. |
} |
$roletitle." ($audom/$auname)</option>\n"; |
push(@order,'course'); |
|
$pickdir = $lt{'loca'}. |
|
&Apache::loncommon::linked_select_forms('courseresform','<br />'.$lt{'dire'}, |
|
$defrole,'authorrole','authorpath', |
|
\%select_menus,\@order,'toggleCrsResTitle();', |
|
'','priv').'<br />'; |
|
$showtitle = 'none'; |
|
} else { |
|
my $is_home; |
|
$showtitle = 'inline'; |
|
if (grep(/^\Q$crshome\E$/,@ids)) { |
|
$is_home = 1; |
|
$pickdir .= '<input type="hidden" name="authorrole" value="course" />'; |
|
my $toppath="/priv/$coursedom/$coursenum'}"; |
|
my %subdirs; |
|
&Apache::lonnet::recursedirs($is_home,'priv',$londocroot,$toppath,'',\%subdirs); |
|
$numcrsdirs = keys(%subdirs); |
|
if ($numcrsdirs) { |
|
$pickdir .= &mt('Directory: ').'<select name="authorpath">'."\n". |
|
'<option value="/">/</option>'."\n"; |
|
foreach my $key (sort { lc($a) cmp lc($b) } (keys(%subdirs))) { |
|
$pickdir .= '<option value="'.$key.'">'.$key.'</option>'."\n"; |
|
} |
} |
$pickdir .= '</select>'; |
|
} else { |
|
$pickdir .= '<input type="hidden" name="authorpath" value="/" />'."\n"; |
|
} |
} |
} |
} |
} |
} |
|
$pickdir .= '<option value="course">'.&mt('Course Resource').'</option>'."\n". |
|
'</select><br />'."\n". |
|
$lt{'dire'}. |
|
'<select name="authorpath" onchange="toggleCrsResTitle();">'. |
|
'<option value=""></option>'. |
|
'</select><br />'."\n"; |
|
|
my %seltemplate_menus; |
my %seltemplate_menus; |
my @files = &Apache::lonhomework::get_template_list('problem'); |
my @files = &Apache::lonhomework::get_template_list('problem'); |
Line 6700 NWEBFORM
|
Line 6666 NWEBFORM
|
my $templatepreview = '<a href="#" target="sample" onclick="javascript:getExample(600,420,\'yes\',true); return false;">'. |
my $templatepreview = '<a href="#" target="sample" onclick="javascript:getExample(600,420,\'yes\',true); return false;">'. |
'<span id="newresexample">'.&mt('Example').'<span></a>'; |
'<span id="newresexample">'.&mt('Example').'<span></a>'; |
my $crsresform=(<<RESFORM); |
my $crsresform=(<<RESFORM); |
<a class="LC_menubuttons_link" href="javascript:toggleCrsRes('res','$numauthor','$numcrsdirs');"> |
<a class="LC_menubuttons_link" href="javascript:toggleCrsRes('res');"> |
$lt{'stpr'}</a>$help{'Course_Resource'} |
$lt{'stpr'}</a>$help{'Course_Resource'} |
<form action="/adm/coursedocs" method="post" name="courseresform"> |
<form action="/adm/coursedocs" method="post" name="courseresform"> |
<fieldset id="crsresform" style="display:none;"> |
<fieldset id="crsresform" style="display:none;"> |
Line 6708 NWEBFORM
|
Line 6674 NWEBFORM
|
<input type="hidden" name="active" value="bb" /> |
<input type="hidden" name="active" value="bb" /> |
<p> |
<p> |
$pickdir |
$pickdir |
|
<div id="newstdproblem" style="display:none;"> |
<span class="LC_nobreak">$lt{'news'}? |
<span class="LC_nobreak">$lt{'news'}? |
<label><input type="radio" name="newsubdir" value="0" onclick="toggleNewsubdir(this.form);" checked="checked" $disabled />No</label> |
<label><input type="radio" name="newsubdir" value="0" onclick="toggleNewsubdir(this.form);" checked="checked" $disabled />No</label> |
|
|
<label><input type="radio" name="newsubdir" value="1" onclick="toggleNewsubdir(this.form);" $disabled />Yes</label> |
<label><input type="radio" name="newsubdir" value="1" onclick="toggleNewsubdir(this.form);" $disabled />Yes</label> |
</span><span id="newsubdir"></span> |
</span><span id="newsubdir"></span> |
<input type="hidden" name="newsubdirname" id="newsubdirname" value="" autocomplete="off" /> |
<input type="hidden" name="newsubdirname" id="newsubdirname" value="" autocomplete="off" /> |
|
</div> |
</p> |
</p> |
$lt{'fnam'} |
$lt{'fnam'} |
<input type="text" size="20" name="newresourcename" autocomplete="off" $disabled /> |
<input type="text" size="20" name="newresourcename" autocomplete="off" $disabled /> |
<p> |
<p> |
<div id="newresource" style="display:$showtitle"> |
<div id="newresource" style="display:none"> |
$lt{'addp'} |
$lt{'addp'} |
<label><input type="radio" name="newresourceadd" value="0" checked="checked" onclick="toggleNewInCourse(this.form);" $disabled /> |
<label><input type="radio" name="newresourceadd" value="0" checked="checked" onclick="toggleNewInCourse(this.form);" $disabled /> |
$lt{'no'}</label> |
$lt{'no'}</label> |
Line 6743 NWEBFORM
|
Line 6711 NWEBFORM
|
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> |
<input type="submit" name="newcrs" value="$lt{'crpr'}" $disabled /> |
<input type="submit" name="newcrs" value="$lt{'crpr'}" $disabled /> |
</span> |
</span> |
|
</div> |
|
<div id="stdprobswitch" style="display:none;"> |
|
$rolehomes |
|
<input type="button" name="switchfornewprob" value="$lt{'swit'}" onclick="switchForProb();" /> |
|
</div> |
</fieldset> |
</fieldset> |
</form> |
</form> |
|
|
Line 6819 NGFFORM
|
Line 6792 NGFFORM
|
my @external = ( |
my @external = ( |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" onclick="toggleExternal(\'ext\');" />'=>$extresourcesform} |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" onclick="toggleExternal(\'ext\');" />'=>$extresourcesform} |
); |
); |
if (keys(%ltitools)) { |
if ($posslti) { |
push(@external, |
push(@external, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/exttool.png" alt="'.$lt{extt}.'" onclick="toggleExternal(\'tool\');" />'=>$exttoolform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/exttool.png" alt="'.$lt{extt}.'" onclick="toggleExternal(\'tool\');" />'=>$exttoolform}, |
); |
); |
Line 6841 NGFFORM
|
Line 6814 NGFFORM
|
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simpprob.png" alt="'.$lt{sipr}.'" onclick="javascript:makesmpproblem();" />'=>$newsmpproblemform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simpprob.png" alt="'.$lt{sipr}.'" onclick="javascript:makesmpproblem();" />'=>$newsmpproblemform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/dropbox.png" alt="'.$lt{drbx}.'" onclick="javascript:makedropbox();" />'=>$newdropboxform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/dropbox.png" alt="'.$lt{drbx}.'" onclick="javascript:makedropbox();" />'=>$newdropboxform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/scoreupfrm.png" alt="'.$lt{scuf}.'" onclick="javascript:makeexamupload();" />'=>$newexuploadform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/scoreupfrm.png" alt="'.$lt{scuf}.'" onclick="javascript:makeexamupload();" />'=>$newexuploadform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simpprob.png" alt="'.$lt{stpr}.'" onclick="javascript:toggleCrsRes(\'res\','."'$numauthor','$numcrsdirs'".');" />'=>$crsresform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simpprob.png" alt="'.$lt{stpr}.'" onclick="javascript:toggleCrsRes(\'res\');" />'=>$crsresform}, |
); |
); |
$gradingform = &create_form_ul(&create_list_elements(@gradingforma)); |
$gradingform = &create_form_ul(&create_list_elements(@gradingforma)); |
|
|
Line 7002 my @specialdocs = (
|
Line 6975 my @specialdocs = (
|
my @supexternal = ( |
my @supexternal = ( |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" onclick="javascript:toggleExternal(\'suppext\')" />' |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" onclick="javascript:toggleExternal(\'suppext\')" />' |
=>$supextform}); |
=>$supextform}); |
if (keys(%ltitools)) { |
if ($posslti) { |
push(@supexternal, |
push(@supexternal, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/exttool.png" alt="'.$lt{extt}.'" onclick="javascript:toggleExternal(\'supptool\')" />' |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/exttool.png" alt="'.$lt{extt}.'" onclick="javascript:toggleExternal(\'supptool\')" />' |
=>$supexttoolform}); |
=>$supexttoolform}); |
Line 7477 sub editing_js {
|
Line 7450 sub editing_js {
|
tinc => 'Title in course', |
tinc => 'Title in course', |
sunm => 'Sub-directory name', |
sunm => 'Sub-directory name', |
edri => 'Editing rights unavailable for your current role.', |
edri => 'Editing rights unavailable for your current role.', |
|
sele => 'Select', |
|
swit => 'Switch server required', |
); |
); |
&js_escape(\%js_lt); |
&js_escape(\%js_lt); |
my $crstype = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
Line 7488 sub editing_js {
|
Line 7463 sub editing_js {
|
my $backtourl; |
my $backtourl; |
my $toplevelmain = &escape(&default_folderpath($coursenum,$coursedom,$navmapref)); |
my $toplevelmain = &escape(&default_folderpath($coursenum,$coursedom,$navmapref)); |
my $toplevelsupp = &supplemental_base(); |
my $toplevelsupp = &supplemental_base(); |
|
my $showfile_js = &Apache::loncommon::show_crsfiles_js(); |
|
my @ids=&Apache::lonnet::current_machine_ids(); |
|
my $machines_str = "'".join("','",@ids)."'"; |
if ($env{'docs.exit.'.$env{'request.course.id'}} =~ /^direct_(.+)$/) { |
if ($env{'docs.exit.'.$env{'request.course.id'}} =~ /^direct_(.+)$/) { |
my $caller = $1; |
my $caller = $1; |
if ($caller =~ /^supplemental/) { |
if ($caller =~ /^supplemental/) { |
Line 7840 function toggleMap(caller) {
|
Line 7817 function toggleMap(caller) {
|
return; |
return; |
} |
} |
|
|
function toggleCrsRes(caller,numauthorrole,numcrsdirs) { |
function toggleCrsRes(caller) { |
var disp = 'none'; |
var disp = 'none'; |
if (document.getElementById('crsresform')) { |
if (document.getElementById('crsresform')) { |
if (caller == 'res') { |
if (caller == 'res') { |
var curr = document.getElementById('crsresform').style.display; |
var form = document.getElementById('crsresform'); |
|
var curr = form.style.display; |
if (curr == 'none') { |
if (curr == 'none') { |
disp='block'; |
disp='block'; |
numauthor = parseInt(numauthorrole); |
document.courseresform.authorrole.selectedIndex = 0; |
if (numauthor > 0) { |
document.courseresform.authorpath.selectedIndex = 0; |
document.courseresform.authorrole.selectedIndex = 0; |
document.courseresform.newresourceadd.selectedIndex = 0; |
select1priv_changed(); |
populateDirSelects(form,'authorrole','authorpath',1,0,0); |
document.courseresform.authorpath.selectedIndex = 0; |
toggleNewInCourse(document.courseresform); |
document.courseresform.newresourceadd.selectedIndex = 0; |
if (document.getElementById('newresource')) { |
toggleNewInCourse(document.courseresform); |
document.getElementById('newresource').style.display = 'none'; |
if (document.getElementById('newresource')) { |
|
document.getElementById('newresource').style.display = 'none'; |
|
} |
|
} else { |
|
if (numcrsdirs) { |
|
document.courseresform.authorpath.selectedIndex = 0; |
|
} |
|
} |
} |
if (document.courseresform.newresusetemp.length) { |
if (document.courseresform.newresusetemp.length) { |
document.courseresform.newresusetemp[0].checked = true; |
document.courseresform.newresusetemp[0].checked = true; |
Line 7914 function toggleNewsubdir(form) {
|
Line 7885 function toggleNewsubdir(form) {
|
|
|
function toggleCrsResTitle() { |
function toggleCrsResTitle() { |
if (document.getElementById('newresource')) { |
if (document.getElementById('newresource')) { |
if (document.courseresform.authorrole.options[document.courseresform.authorrole.selectedIndex].value == 'course') { |
var selloc = document.courseresform.authorrole.options[document.courseresform.authorrole.selectedIndex].value; |
|
if (selloc == 'course') { |
document.getElementById('newresource').style.display = 'inline'; |
document.getElementById('newresource').style.display = 'inline'; |
document.courseresform.newresourceadd[0].checked = true; |
document.courseresform.newresourceadd[0].checked = true; |
toggleNewInCourse(document.courseresform); |
toggleNewInCourse(document.courseresform); |
} else { |
} else { |
document.getElementById('newresource').style.display = 'none'; |
document.getElementById('newresource').style.display = 'none'; |
} |
} |
} |
} |
|
if (document.getElementById('newstdproblem')) { |
|
if (document.courseresform.authorpath.options[document.courseresform.authorpath.selectedIndex].value == 'switch') { |
|
document.getElementById('newstdproblem').style.display = 'none'; |
|
if (document.getElementById('stdprobswitch')) { |
|
document.getElementById('stdprobswitch').style.display = 'block'; |
|
} |
|
} else { |
|
document.getElementById('newstdproblem').style.display = 'block'; |
|
if (document.getElementById('stdprobswitch')) { |
|
document.getElementById('stdprobswitch').style.display = 'none'; |
|
} |
|
} |
|
} |
} |
} |
|
|
function toggleNewInCourse(form) { |
function toggleNewInCourse(form) { |
Line 8001 function getExample(width,height,scrolli
|
Line 7986 function getExample(width,height,scrolli
|
} |
} |
} |
} |
|
|
function toggleImportCrsres(caller,dircount) { |
function toggleImportCrsres(caller) { |
var disp = 'none'; |
var disp = 'none'; |
if (document.getElementById('importcrsresform')) { |
if (document.getElementById('importcrsresform')) { |
if (caller == 'res') { |
if (caller == 'res') { |
var numdirs = parseInt(dircount); |
|
var curr = document.getElementById('importcrsresform').style.display; |
var curr = document.getElementById('importcrsresform').style.display; |
if (curr == 'none') { |
if (curr == 'none') { |
disp='block'; |
disp='block'; |
if (numdirs > 1) { |
populateCrsSelects(document.crsresimportform,'coursepath','coursefile',1,'',1,0,1,1,0); |
select1res_changed(); |
if ((document.getElementById('importcrsrescontent')) && |
|
(document.getElementById('importcrsresempty'))) { |
|
var selelem = document.crsresimportform.elements['coursepath']; |
|
var numdirs = 0; |
|
if (selelem.options.length) { |
|
numdirs = selelem.options.length - 1; |
|
} |
|
if (numdirs) { |
|
document.getElementById('importcrsrescontent').style.display='block'; |
|
document.getElementById('importcrsresempty').style.display='none'; |
|
} else { |
|
document.getElementById('importcrsrescontent').style.display='none'; |
|
document.getElementById('importcrsresempty').style.display='block'; |
|
} |
} |
} |
} |
} |
} |
} |
Line 8019 function toggleImportCrsres(caller,dirco
|
Line 8016 function toggleImportCrsres(caller,dirco
|
} |
} |
return; |
return; |
} |
} |
|
|
|
$showfile_js |
|
|
|
function populateDirSelects(form,locsel,dirsel,setdir,recurse,nonemptydir) { |
|
var location = form.elements[locsel].options[form.elements[locsel].selectedIndex].value; |
|
if ((setdir) && (dirsel != null) && (dirsel != 'undefined') && (dirsel != '')) { |
|
var selelem = form.elements[dirsel]; |
|
var i, numfiles = selelem.options.length -1; |
|
if (numfiles >=0) { |
|
for (i = numfiles; i >= 0; i--) { |
|
selelem.remove(i); |
|
} |
|
} |
|
if ((location == '') || (location == null) || (location == 'undefined')) { |
|
if (selelem.options.length == 0) { |
|
selelem.options[selelem.options.length] = new Option('',''); |
|
selelem.selectedIndex = 0; |
|
} |
|
if (document.getElementById('newstdproblem')) { |
|
document.getElementById('newstdproblem').style.display = 'none'; |
|
} |
|
return; |
|
} |
|
var machineIds = new Array($machines_str); |
|
var athome = 0; |
|
var role = location; |
|
if ((location == 'author') || (location == 'course')) { |
|
if (document.getElementById('rolehome_'+location)) { |
|
var currhome = document.getElementById('rolehome_'+location).value; |
|
if ((currhome != '') && (currhome != null) && (currhome != 'undefined')) { |
|
if (machineIds.includes(currhome)) { |
|
athome = 1; |
|
} |
|
} |
|
} |
|
} else { |
|
const roleinfo = location.split('___'); |
|
role = encodeURIComponent(roleinfo[0]+'./'+roleinfo[1]); |
|
if (document.getElementById('rolehome_coauthor_'+roleinfo[1]+'_'+roleinfo[0])) { |
|
var currhome = document.getElementById('rolehome_coauthor_'+roleinfo[1]+'_'+roleinfo[0]).value; |
|
if ((currhome != '') && (currhome != null) && (currhome != 'undefined')) { |
|
if (machineIds.includes(currhome)) { |
|
athome = 1; |
|
} |
|
} |
|
} |
|
} |
|
if (athome) { |
|
if (document.getElementById('stdprobswitch')) { |
|
document.getElementById('stdprobswitch').style.display = 'none'; |
|
} |
|
if (document.getElementById('newstdproblem')) { |
|
document.getElementById('newstdproblem').style.display = 'none'; |
|
} |
|
var http = new XMLHttpRequest(); |
|
var url = "/adm/courseauthor"; |
|
var params = "role="+role+"&rec="+recurse+"&nonempty="+nonemptydir+"&addtop=1"; |
|
http.open("POST", url, true); |
|
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); |
|
http.onreadystatechange = function() { |
|
if (http.readyState == 4 && http.status == 200) { |
|
var data = JSON.parse(http.responseText); |
|
if (Array.isArray(data.dirs)) { |
|
var len = data.dirs.length; |
|
if (len) { |
|
if (len > 1) { |
|
selelem.options[selelem.options.length] = new Option('$js_lt{sele}',''); |
|
} |
|
} |
|
if (len) { |
|
var j; |
|
for (j = 0; j < len; j++) { |
|
selelem.options[selelem.options.length] = new Option(data.dirs[j],data.dirs[j]); |
|
} |
|
selelem.selectedIndex = 0; |
|
if (len == 1) { |
|
toggleCrsResTitle(); |
|
} |
|
} |
|
} |
|
} |
|
} |
|
http.send(params); |
|
} else { |
|
selelem.options[selelem.options.length] = new Option('$js_lt{swit}','switch'); |
|
selelem.selectedIndex = 0; |
|
if (document.getElementById('stdprobswitch')) { |
|
document.getElementById('stdprobswitch').style.display = 'block'; |
|
} |
|
if (document.getElementById('newstdproblem')) { |
|
document.getElementById('newstdproblem').style.display = 'none'; |
|
} |
|
} |
|
} |
|
return; |
|
} |
|
|
|
function switchForProb() { |
|
if (document.courseresform.authorpath.options[document.courseresform.authorpath.selectedIndex].value == 'switch') { |
|
var url = '/adm/switchserver?otherserver='; |
|
var newhostid = ''; |
|
var role = ''; |
|
var selloc = document.courseresform.authorrole.options[document.courseresform.authorrole.selectedIndex].value; |
|
if (selloc == 'author') { |
|
newhostid = document.courseresform.rolehome_author.value; |
|
role = "au./&js_escape($env{'user.domain'})/"; |
|
} else if (selloc == 'course') { |
|
newhostid = document.courseresform.rolehome_course.value; |
|
role = "&js_escape($env{'request.role'})"; |
|
} else { |
|
var items = new Array(); |
|
items = selloc.split('___'); |
|
var len = document.courseresform.rolehome_coauthor.length; |
|
if (null == len) { |
|
var currval = document.courseresform.rolehome_coauthor.value; |
|
if (null != currval) { |
|
var info = new Array(); |
|
info = currval.split('='); |
|
newhostid = info[2]; |
|
role = info[0]+'./'+info[1]; |
|
} |
|
} else { |
|
for (var i=0; i<len; i++) { |
|
var currval = document.courseresform.rolehome_coauthor[i].value; |
|
if (null != currval) { |
|
var info = new Array(); |
|
info = currval.split('='); |
|
if ((info[1] == items[1]+'/'+items[0]) && (info[0] == items[2])) { |
|
newhostid = info[2]; |
|
role = info[0]+'./'+info[1]; |
|
break; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
if (newhostid != '') { |
|
url += newhostid; |
|
if (role != '') { |
|
url += '&role='+role; |
|
} |
|
document.location.href = url; |
|
} |
|
} |
|
return; |
|
} |
|
|
function makeims(imsform) { |
function makeims(imsform) { |
if ((imsform.uploaddoc.value == '') || (!imsform.uploaddoc.value)) { |
if ((imsform.uploaddoc.value == '') || (!imsform.uploaddoc.value)) { |