version 1.614, 2016/11/26 01:28:14
|
version 1.616, 2016/11/26 19:40:44
|
Line 2970 sub handle_edit_cmd {
|
Line 2970 sub handle_edit_cmd {
|
|
|
sub editor { |
sub editor { |
my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$crstype, |
my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$crstype, |
$supplementalflag,$orderhash,$iconpath,$pathitem,$ltitoolsref,$canedit)=@_; |
$supplementalflag,$orderhash,$iconpath,$pathitem,$ltitoolsref, |
|
$canedit,$navmapref,$hiddentop)=@_; |
my ($randompick,$ishidden,$isencrypted,$plain,$is_random_order,$container); |
my ($randompick,$ishidden,$isencrypted,$plain,$is_random_order,$container); |
if ($allowed) { |
if ($allowed) { |
(my $breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain, |
(my $breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain, |
Line 2993 sub editor {
|
Line 2994 sub editor {
|
$randompick = -1; |
$randompick = -1; |
} |
} |
|
|
my ($errtext,$fatal) = &mapread($coursenum,$coursedom, |
my ($errtext,$fatal); |
$folder.'.'.$container); |
if (($folder eq '') && (!$supplementalflag)) { |
return $errtext if ($fatal); |
if (@LONCAPA::map::order) { |
|
undef(@LONCAPA::map::order); |
|
undef(@LONCAPA::map::resources); |
|
undef(@LONCAPA::map::resparms); |
|
undef(@LONCAPA::map::zombies); |
|
} |
|
$folder = 'default'; |
|
$container = 'sequence'; |
|
} else { |
|
($errtext,$fatal) = &mapread($coursenum,$coursedom, |
|
$folder.'.'.$container); |
|
return $errtext if ($fatal); |
|
} |
|
|
if ($#LONCAPA::map::order<1) { |
if ($#LONCAPA::map::order<1) { |
my $idx=&LONCAPA::map::getresidx(); |
my $idx=&LONCAPA::map::getresidx(); |
Line 3287 sub editor {
|
Line 3300 sub editor {
|
$output .= &entryline($idx,$name,$url,$folder,$allowed,$res, |
$output .= &entryline($idx,$name,$url,$folder,$allowed,$res, |
$coursenum,$coursedom,$crstype, |
$coursenum,$coursedom,$crstype, |
$pathitem,$supplementalflag,$container, |
$pathitem,$supplementalflag,$container, |
\%filters,\%curr_groups,$ltitoolsref,$canedit,$isencrypted); |
\%filters,\%curr_groups,$ltitoolsref,$canedit,$isencrypted,$navmapref); |
$idx++; |
$idx++; |
$shown++; |
$shown++; |
} |
} |
Line 3369 sub editor {
|
Line 3382 sub editor {
|
if (!$allowed) { |
if (!$allowed) { |
$to_show .= $toolslink; |
$to_show .= $toolslink; |
} |
} |
|
my $noresmsg; |
|
if ($allowed && $hiddentop && !$supplementalflag) { |
|
$noresmsg = &mt('Main Content Hidden'); |
|
} else { |
|
$noresmsg = &mt('Currently empty'); |
|
} |
$to_show .= &Apache::loncommon::start_scrollbox('400px','380px','200px','contentscroll') |
$to_show .= &Apache::loncommon::start_scrollbox('400px','380px','200px','contentscroll') |
.'<div class="LC_info" id="contentlist">' |
.'<div class="LC_info" id="contentlist">' |
.&mt('Currently empty') |
.$noresmsg |
.'</div>' |
.'</div>' |
.&Apache::loncommon::end_scrollbox(); |
.&Apache::loncommon::end_scrollbox(); |
} |
} |
Line 3662 sub is_supplemental_title {
|
Line 3681 sub is_supplemental_title {
|
sub entryline { |
sub entryline { |
my ($index,$title,$url,$folder,$allowed,$residx,$coursenum,$coursedom, |
my ($index,$title,$url,$folder,$allowed,$residx,$coursenum,$coursedom, |
$crstype,$pathitem,$supplementalflag,$container,$filtersref,$currgroups, |
$crstype,$pathitem,$supplementalflag,$container,$filtersref,$currgroups, |
$ltitoolsref,$canedit,$isencrypted)=@_; |
$ltitoolsref,$canedit,$isencrypted,$navmapref)=@_; |
my ($foldertitle,$renametitle,$oldtitle); |
my ($foldertitle,$renametitle,$oldtitle); |
if (&is_supplemental_title($title)) { |
if (&is_supplemental_title($title)) { |
($title,$foldertitle,$renametitle) = &Apache::loncommon::parse_supplemental_title($title); |
($title,$foldertitle,$renametitle) = &Apache::loncommon::parse_supplemental_title($title); |
Line 3888 END
|
Line 3907 END
|
my $isfolder; |
my $isfolder; |
my $ispage; |
my $ispage; |
my $containerarg; |
my $containerarg; |
|
my $folderurl; |
if ($uploaded) { |
if ($uploaded) { |
if (($extension eq 'sequence') || ($extension eq 'page')) { |
if (($extension eq 'sequence') || ($extension eq 'page')) { |
$url=~/\Q$coursenum\E\/([\/\w]+)\.\Q$extension\E$/; |
$url=~/\Q$coursenum\E\/([\/\w]+)\.\Q$extension\E$/; |
Line 3899 END
|
Line 3919 END
|
$icon=$iconpath.'page.gif'; |
$icon=$iconpath.'page.gif'; |
$ispage=1; |
$ispage=1; |
} |
} |
|
$folderurl = &Apache::lonnet::declutter($url); |
if ($allowed) { |
if ($allowed) { |
$url='/adm/coursedocs?'; |
$url='/adm/coursedocs?'; |
} else { |
} else { |
Line 3944 END
|
Line 3965 END
|
} |
} |
} |
} |
$url.=(($url=~/\?/)?'&':'?').'symb='.&HTML::Entities::encode($shownsymb,'"<>&'); |
$url.=(($url=~/\?/)?'&':'?').'symb='.&HTML::Entities::encode($shownsymb,'"<>&'); |
} elsif ((!$env{'request.role.adv'}) && |
} elsif (!$env{'request.role.adv'}) { |
(((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i) || |
my $checkencrypt; |
$isencrypted)) { |
if (((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i) || |
my $shownsymb = &Apache::lonenc::encrypted($symb); |
$isencrypted || (&Apache::lonnet::EXT('resource.0.encrypturl',$symb) =~ /^yes$/i)) { |
my $shownurl = &Apache::lonenc::encrypted($url); |
$checkencrypt = 1; |
if (&Apache::lonnet::symbverify($shownsymb,$shownurl)) { |
} else { |
$url = $shownurl.(($shownurl=~/\?/)?'&':'?').'symb='.&HTML::Entities::encode($shownsymb,'"<>&'); |
unless (ref($$navmapref)) { |
if ($env{'request.enc'} ne '') { |
$$navmapref = Apache::lonnavmaps::navmap->new(); |
delete($env{'request.enc'}); |
} |
|
if (ref($$navmapref)) { |
|
if (lc($$navmapref->get_mapparam($symb,undef,"0.encrypturl")) eq 'yes') { |
|
$checkencrypt = 1; |
|
} |
|
} |
|
} |
|
if ($checkencrypt) { |
|
my $shownsymb = &Apache::lonenc::encrypted($symb); |
|
my $shownurl = &Apache::lonenc::encrypted($url); |
|
if (&Apache::lonnet::symbverify($shownsymb,$shownurl)) { |
|
$url = $shownurl.(($shownurl=~/\?/)?'&':'?').'symb='.&HTML::Entities::encode($shownsymb,'"<>&'); |
|
if ($env{'request.enc'} ne '') { |
|
delete($env{'request.enc'}); |
|
} |
|
} else { |
|
$url=''; |
} |
} |
} else { |
} else { |
$url=''; |
$url=''; |
Line 3969 END
|
Line 4006 END
|
} |
} |
} |
} |
} |
} |
my ($rand_pick_text,$rand_order_text); |
my ($rand_pick_text,$rand_order_text,$hiddenfolder); |
if ($isfolder || $ispage || $extension eq 'sequence' || $extension eq 'page') { |
if ($isfolder || $ispage || $extension eq 'sequence' || $extension eq 'page') { |
my $foldername=&escape($foldertitle); |
my $foldername=&escape($foldertitle); |
my $folderpath=$env{'form.folderpath'}; |
my $folderpath=$env{'form.folderpath'}; |
Line 3990 END
|
Line 4027 END
|
.':'.((&LONCAPA::map::getparameter($orderidx, |
.':'.((&LONCAPA::map::getparameter($orderidx, |
'parameter_randomorder'))[0]=~/^yes$/i) |
'parameter_randomorder'))[0]=~/^yes$/i) |
.':'.$ispage; |
.':'.$ispage; |
if ($env{'request.role.adv'} || |
if (!$env{'request.role.adv'}) { |
(&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]!~/^yes$/i) { |
if (lc((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]) eq 'yes') { |
|
$url = ''; |
|
$hiddenfolder = 1; |
|
} else { |
|
unless (ref($$navmapref)) { |
|
$$navmapref = Apache::lonnavmaps::navmap->new(); |
|
} |
|
if (ref($$navmapref)) { |
|
if (lc($$navmapref->get_mapparam(undef,$folderurl,"0.hiddenresource")) eq 'yes') { |
|
$url = ''; |
|
$hiddenfolder = 1; |
|
} |
|
} |
|
} |
|
} |
|
unless ($url eq '') { |
$url.='folderpath='.&escape($folderpath); |
$url.='folderpath='.&escape($folderpath); |
} else { |
|
$url = ''; |
|
} |
} |
my $rpicknum = (&LONCAPA::map::getparameter($orderidx, |
my $rpicknum = (&LONCAPA::map::getparameter($orderidx, |
'parameter_randompick'))[0]; |
'parameter_randompick'))[0]; |
Line 4104 $form_end;
|
Line 4154 $form_end;
|
$anchor = '#'.&HTML::Entities::encode($anchor,'"<>&'); |
$anchor = '#'.&HTML::Entities::encode($anchor,'"<>&'); |
} |
} |
} |
} |
$line.=&Apache::loncommon::modal_link($url.(($url=~/\?/)?'&':'?').'inhibitmenu=yes'. |
$line.=&Apache::loncommon::modal_link(&js_escape($url.(($url=~/\?/)?'&':'?').'inhibitmenu=yes'. |
(($anchor ne '')?$anchor:''), |
(($anchor ne '')?$anchor:'')), |
'<img src="'.$icon.'" alt="" class="LC_icon" />',600,500); |
'<img src="'.$icon.'" alt="" class="LC_icon" />',600,500); |
} else { |
} else { |
$line.='<img src="'.$icon.'" alt="" class="LC_icon" />'; |
$line.='<img src="'.$icon.'" alt="" class="LC_icon" />'; |
Line 4114 $form_end;
|
Line 4164 $form_end;
|
if (($url=~m{/adm/(coursedocs|supplemental)}) || (!$allowed && $url)) { |
if (($url=~m{/adm/(coursedocs|supplemental)}) || (!$allowed && $url)) { |
$line.='<a href="'.$url.'">'.$title.'</a>'; |
$line.='<a href="'.$url.'">'.$title.'</a>'; |
} elsif ($url) { |
} elsif ($url) { |
$line.=&Apache::loncommon::modal_link($url.(($url=~/\?/)?'&':'?').'inhibitmenu=yes'. |
$line.=&Apache::loncommon::modal_link(&js_escape($url.(($url=~/\?/)?'&':'?').'inhibitmenu=yes'. |
(($anchor ne '')?$anchor:''), |
(($anchor ne '')?$anchor:'')), |
$title,600,500); |
$title,600,500); |
|
} elsif ($hiddenfolder) { |
|
$line.=$title.' <span class="LC_warning LC_docs_reinit_warn">'.&mt('(Hidden)').'</span>'; |
} else { |
} else { |
$line.=$title.' <span class="LC_docs_reinit_warn">'.$reinit.'</span>'; |
$line.=$title.' <span class="LC_docs_reinit_warn">'.$reinit.'</span>'; |
} |
} |
Line 5056 sub handler {
|
Line 5108 sub handler {
|
my $containertag; |
my $containertag; |
my $pathitem; |
my $pathitem; |
my %ltitools; |
my %ltitools; |
|
my $navmap; |
|
my $hiddentop; |
|
|
# Do we directly jump somewhere? |
# Do we directly jump somewhere? |
|
|
Line 5095 sub handler {
|
Line 5149 sub handler {
|
if ((!$env{'form.folderpath'}) && $allowed) { |
if ((!$env{'form.folderpath'}) && $allowed) { |
&Apache::loncommon::restore_course_settings($stored_folderpath, |
&Apache::loncommon::restore_course_settings($stored_folderpath, |
{'folderpath' => 'scalar'}); |
{'folderpath' => 'scalar'}); |
unless (&unescape($env{'form.folderpath'}) =~ m{^(default|supplemental)&}) { |
|
|
if (&unescape($env{'form.folderpath'}) =~ m{^(default|supplemental)&}) { |
|
if ($supplementalflag) { |
|
undef($env{'form.folderpath'}) if ($1 eq 'default'); |
|
} else { |
|
undef($env{'form.folderpath'}) if ($1 eq 'supplemental'); |
|
} |
|
} else { |
undef($env{'form.folderpath'}); |
undef($env{'form.folderpath'}); |
} |
} |
} |
} |
Line 5112 sub handler {
|
Line 5173 sub handler {
|
.'&'. |
.'&'. |
$env{'form.folderpath'}; |
$env{'form.folderpath'}; |
} |
} |
|
# If allowed and user's role is not advanced check folderpath is not hidden |
|
if (($allowed) && (!$env{'request.role.adv'}) && |
|
($env{'form.folderpath'} ne '') && (!$supplementalflag)) { |
|
my $folderurl; |
|
my @pathitems = split(/\&/,$env{'form.folderpath'}); |
|
my $container = $pathitems[-2]; |
|
if ($container ne '') { |
|
$folderurl = "uploaded/$coursedom/$coursenum/$container"; |
|
if ((split(/\:/,$pathitems[-1]))[4]) { |
|
$folderurl .= '.page'; |
|
} else { |
|
$folderurl .= '.sequence'; |
|
} |
|
$navmap = Apache::lonnavmaps::navmap->new(); |
|
if (ref($navmap)) { |
|
if (lc($navmap->get_mapparam(undef,$folderurl,"0.hiddenresource")) eq 'yes') { |
|
undef($env{'form.folderpath'}); |
|
} |
|
} |
|
} else { |
|
undef($env{'form.folderpath'}); |
|
} |
|
} |
|
|
|
|
# If after all of this, we still don't have any paths, make them |
# If after all of this, we still don't have any paths, make them |
unless ($env{'form.folderpath'}) { |
unless ($env{'form.folderpath'}) { |
if ($supplementalflag) { |
if ($supplementalflag) { |
Line 5119 sub handler {
|
Line 5205 sub handler {
|
} else { |
} else { |
$env{'form.folderpath'}='default&'.&escape(&mt('Main Content'). |
$env{'form.folderpath'}='default&'.&escape(&mt('Main Content'). |
':::::'); |
':::::'); |
|
if (($allowed) && (!$env{'request.role.adv'})) { |
|
# If allowed and user's role is not advanced check entire course is not hidden |
|
unless (ref($navmap)) { |
|
$navmap = Apache::lonnavmaps::navmap->new(); |
|
} |
|
if (ref($navmap)) { |
|
if (lc($navmap->get_mapparam(undef,"uploaded/$coursedom/$coursenum/default.sequence", |
|
"0.hiddenresource")) eq 'yes') { |
|
undef($env{'form.folderpath'}); |
|
$hiddentop = 1; |
|
if ($env{'form.folder'}) { |
|
undef($env{'form.folder'}); |
|
} |
|
} |
|
} |
|
} |
} |
} |
} |
} |
|
|
|
|
# Store this |
# Store this |
unless ($toolsflag) { |
unless ($toolsflag) { |
if ($allowed) { |
if (($allowed) && ($env{'form.folderpath'} ne '')) { |
&Apache::loncommon::store_course_settings($stored_folderpath, |
&Apache::loncommon::store_course_settings($stored_folderpath, |
{'folderpath' => 'scalar'}); |
{'folderpath' => 'scalar'}); |
} |
} |
Line 5562 CRSFORM
|
Line 5665 CRSFORM
|
if ($folder eq '') { |
if ($folder eq '') { |
$folder='default'; |
$folder='default'; |
} |
} |
my $output = &update_paste_buffer($coursenum,$coursedom,$folder); |
if ($canedit) { |
if ($output) { |
my $output = &update_paste_buffer($coursenum,$coursedom,$folder); |
$r->print($output); |
if ($output) { |
|
$r->print($output); |
|
} |
} |
} |
$r->print(<<HIDDENFORM); |
$r->print(<<HIDDENFORM); |
<form name="renameform" method="post" action="/adm/coursedocs"> |
<form name="renameform" method="post" action="/adm/coursedocs"> |
Line 5601 HIDDENFORM
|
Line 5706 HIDDENFORM
|
|
|
if ($allowed) { |
if ($allowed) { |
my $folder=$env{'form.folder'}; |
my $folder=$env{'form.folder'}; |
if ($folder eq '' || $supplementalflag) { |
if ((($folder eq '') && (!$hiddentop)) || ($supplementalflag)) { |
$folder='default'; |
$folder='default'; |
$savefolderpath = $env{'form.folderpath'}; |
$savefolderpath = $env{'form.folderpath'}; |
$env{'form.folderpath'}='default&'.&escape(&mt('Main Content')); |
$env{'form.folderpath'}='default&'.&escape(&mt('Main Content')); |
Line 6065 unless ($container eq 'page') {
|
Line 6170 unless ($container eq 'page') {
|
$hadchanges=0; |
$hadchanges=0; |
unless (($supplementalflag || $toolsflag)) { |
unless (($supplementalflag || $toolsflag)) { |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype, |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype, |
$supplementalflag,\%orderhash,$iconpath,$pathitem,\%ltitools,$canedit); |
$supplementalflag,\%orderhash,$iconpath,$pathitem, |
|
\%ltitools,$canedit,\$navmap,$hiddentop); |
if ($error) { |
if ($error) { |
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
} |
} |
Line 6212 my %suporderhash = (
|
Line 6318 my %suporderhash = (
|
); |
); |
if ($supplementalflag) { |
if ($supplementalflag) { |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype, |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype, |
$supplementalflag,\%suporderhash,$iconpath,$pathitem,\%ltitools,$canedit); |
$supplementalflag,\%suporderhash,$iconpath,$pathitem, |
|
\%ltitools,$canedit,\$navmap); |
if ($error) { |
if ($error) { |
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
} else { |
} else { |
Line 6232 my %suporderhash = (
|
Line 6339 my %suporderhash = (
|
} |
} |
} elsif ($supplementalflag) { |
} elsif ($supplementalflag) { |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype, |
my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype, |
$supplementalflag,'',$iconpath,$pathitem,$canedit); |
$supplementalflag,'',$iconpath,$pathitem); |
if ($error) { |
if ($error) { |
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
$r->print('<p><span class="LC_error">'.$error.'</span></p>'); |
} |
} |