version 1.612, 2016/11/23 01:28:50
|
version 1.621, 2017/02/18 23:39:15
|
Line 142 sub clean {
|
Line 142 sub clean {
|
return $title; |
return $title; |
} |
} |
|
|
|
sub default_folderpath { |
|
my ($coursenum,$coursedom,$navmapref) = @_; |
|
return unless ($coursenum && $coursedom && ref($navmapref)); |
|
# Check if entire course is hidden and/or encrypted |
|
my ($hiddenmap,$encryptmap,$folderpath,$hiddentop); |
|
my $toplevel = "uploaded/$coursedom/$coursenum/default.sequence"; |
|
unless (ref($$navmapref)) { |
|
$$navmapref = Apache::lonnavmaps::navmap->new(); |
|
} |
|
if (ref($$navmapref)) { |
|
if (lc($$navmapref->get_mapparam(undef,$toplevel,"0.hiddenresource")) eq 'yes') { |
|
my $filterFunc = sub { my $res = shift; return (!$res->randomout() && !$res->is_map()) }; |
|
my @resources = $$navmapref->retrieveResources($toplevel,$filterFunc,1,1); |
|
unless (@resources) { |
|
$hiddenmap = 1; |
|
unless ($env{'request.role.adv'}) { |
|
$hiddentop = 1; |
|
if ($env{'form.folder'}) { |
|
undef($env{'form.folder'}); |
|
} |
|
} |
|
} |
|
} |
|
if (lc($$navmapref->get_mapparam(undef,$toplevel,"0.encrypturl")) eq 'yes') { |
|
$encryptmap = 1; |
|
} |
|
} |
|
unless ($hiddentop) { |
|
$folderpath='default&'.&escape(&mt('Main Content')). |
|
'::'.$hiddenmap.':'.$encryptmap.'::'; |
|
} |
|
if (wantarray) { |
|
return ($folderpath,$hiddentop); |
|
} else { |
|
return $folderpath; |
|
} |
|
} |
|
|
sub dumpcourse { |
sub dumpcourse { |
my ($r) = @_; |
my ($r) = @_; |
Line 879 sub log_docs {
|
Line 915 sub log_docs {
|
sub docs_change_log { |
sub docs_change_log { |
my ($r,$coursenum,$coursedom,$folder,$allowed,$crstype,$iconpath,$canedit)=@_; |
my ($r,$coursenum,$coursedom,$folder,$allowed,$crstype,$iconpath,$canedit)=@_; |
my $supplementalflag=($env{'form.folderpath'}=~/^supplemental/); |
my $supplementalflag=($env{'form.folderpath'}=~/^supplemental/); |
|
my $navmap; |
my $js = '<script type="text/javascript">'."\n". |
my $js = '<script type="text/javascript">'."\n". |
'// <![CDATA['."\n". |
'// <![CDATA['."\n". |
&Apache::loncommon::display_filter_js('docslog')."\n". |
&Apache::loncommon::display_filter_js('docslog')."\n". |
&editing_js($env{'user.domain'},$env{'user.name'},$supplementalflag, |
&editing_js($env{'user.domain'},$env{'user.name'},$supplementalflag, |
$coursedom,$coursenum,'','',$canedit)."\n". |
$coursedom,$coursenum,'','',$canedit,\$navmap)."\n". |
&history_tab_js()."\n". |
&history_tab_js()."\n". |
&Apache::lonratedt::editscript('simple')."\n". |
&Apache::lonratedt::editscript('simple')."\n". |
'// ]]>'."\n". |
'// ]]>'."\n". |
Line 899 sub docs_change_log {
|
Line 936 sub docs_change_log {
|
} |
} |
my $folderpath=$env{'form.folderpath'}; |
my $folderpath=$env{'form.folderpath'}; |
if ($folderpath eq '') { |
if ($folderpath eq '') { |
$folderpath = 'default&'.&escape(&mt('Main Content').':::::'); |
$folderpath = &default_folderpath($coursenum,$coursedom,\$navmap); |
} |
} |
|
undef($navmap); |
$pathitem = '<input type="hidden" name="folderpath" value="'. |
$pathitem = '<input type="hidden" name="folderpath" value="'. |
&HTML::Entities::encode($folderpath,'<>&"').'" />'; |
&HTML::Entities::encode($folderpath,'<>&"').'" />'; |
my $readfile="/uploaded/$coursedom/$coursenum/$folder.$container"; |
my $readfile="/uploaded/$coursedom/$coursenum/$folder.$container"; |
Line 2970 sub handle_edit_cmd {
|
Line 3008 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 3032 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 3284 sub editor {
|
Line 3335 sub editor {
|
if ($url =~ m{/uploaded/.+\.(page|sequence)$}) { |
if ($url =~ m{/uploaded/.+\.(page|sequence)$}) { |
push(@allmapidx,$res); |
push(@allmapidx,$res); |
} |
} |
|
|
$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 3422 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 3721 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 3765 END
|
Line 3824 END
|
'sv' => 'Save', |
'sv' => 'Save', |
'ul' => 'URL', |
'ul' => 'URL', |
'ti' => 'Title', |
'ti' => 'Title', |
'er' => 'Editing rights unavailable for your current role', |
'er' => 'Editing rights unavailable for your current role.', |
); |
); |
my %denied = &action_restrictions($coursenum,$coursedom,$url, |
my %denied = &action_restrictions($coursenum,$coursedom,$url, |
$env{'form.folderpath'}, |
$env{'form.folderpath'}, |
Line 3888 END
|
Line 3947 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 3959 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 3909 END
|
Line 3970 END
|
} |
} |
} |
} |
|
|
my ($editlink,$extresform,$anchor); |
my ($editlink,$extresform,$anchor,$hiddenres,$nomodal); |
my $orig_url = $url; |
my $orig_url = $url; |
$orig_url=~s{http(:|:)//https(:|:)//}{https$2//}; |
$orig_url=~s{http(:|:)//https(:|:)//}{https$2//}; |
$url=~s{^http(|s)(:|:)//}{/adm/wrapper/ext/}; |
$url=~s{^http(|s)(:|:)//}{/adm/wrapper/ext/}; |
Line 3931 END
|
Line 3992 END
|
$url='/adm/wrapper'.$url; |
$url='/adm/wrapper'.$url; |
} elsif ($url=~m{^/adm/$coursedom/$coursenum/\d+/exttools?$}) { |
} elsif ($url=~m{^/adm/$coursedom/$coursenum/\d+/exttools?$}) { |
$url='/adm/wrapper'.$url; |
$url='/adm/wrapper'.$url; |
|
} elsif ($url eq "/public/$coursedom/$coursenum/syllabus") { |
|
if (($ENV{'SERVER_PORT'} == 443) && |
|
($env{'course.'.$env{'request.course.id'}.'.externalsyllabus'} =~ m{^http://})) { |
|
$url .= '?usehttp=1'; |
|
$nomodal = 1; |
|
} |
} |
} |
if (&Apache::lonnet::symbverify($symb,$url)) { |
if (&Apache::lonnet::symbverify($symb,$url)) { |
my $shownsymb = $symb; |
my $shownsymb = $symb; |
Line 3943 END
|
Line 4010 END
|
} |
} |
} |
} |
} |
} |
$url.=(($url=~/\?/)?'&':'?').'symb='.&HTML::Entities::encode($shownsymb,'"<>&'); |
unless ($env{'request.role.adv'}) { |
} elsif ((!$env{'request.role.adv'}) && |
if ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i) { |
(((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i) || |
$url = ''; |
$isencrypted)) { |
} |
my $shownsymb = &Apache::lonenc::encrypted($symb); |
if (&Apache::lonnet::EXT('resource.0.hiddenresource',$symb) =~ /^yes$/i) { |
my $shownurl = &Apache::lonenc::encrypted($url); |
$url = ''; |
if (&Apache::lonnet::symbverify($shownsymb,$shownurl)) { |
$hiddenres = 1; |
$url = $shownurl.(($shownurl=~/\?/)?'&':'?').'symb='.&HTML::Entities::encode($shownsymb,'"<>&'); |
} |
|
} |
|
if ($url ne '') { |
|
$url.=(($url=~/\?/)?'&':'?').'symb='.&HTML::Entities::encode($shownsymb,'"<>&'); |
|
} |
|
} elsif (!$env{'request.role.adv'}) { |
|
my $checkencrypt; |
|
if (((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i) || |
|
$isencrypted || (&Apache::lonnet::EXT('resource.0.encrypturl',$symb) =~ /^yes$/i)) { |
|
$checkencrypt = 1; |
|
} elsif (ref($navmapref)) { |
|
unless (ref($$navmapref)) { |
|
$$navmapref = Apache::lonnavmaps::navmap->new(); |
|
} |
|
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 3958 END
|
Line 4055 END
|
$url=''; |
$url=''; |
} |
} |
} |
} |
} elsif ($supplementalflag) { |
} elsif ($supplementalflag) { |
if ($isexternal) { |
if ($isexternal) { |
if ($url =~ /^([^#]+)#([^#]+)$/) { |
if ($url =~ /^([^#]+)#([^#]+)$/) { |
$url = $1; |
$url = $1; |
$anchor = $2; |
$anchor = $2; |
} |
} |
|
} elsif ($url =~ m{^\Q/public/$coursedom/$coursenum/syllabus\E}) { |
|
if (($ENV{'SERVER_PORT'} == 443) && |
|
($env{'course.'.$env{'request.course.id'}.'.externalsyllabus'} =~ m{^http://})) { |
|
$url .= (($url =~ /\?/) ? '&':'?').'usehttp=1'; |
|
$nomodal = 1; |
|
} |
} |
} |
} |
} |
my ($rand_pick_text,$rand_order_text); |
my ($rand_pick_text,$rand_order_text,$hiddenfolder); |
|
my $filterFunc = sub { my $res = shift; return (!$res->randomout() && !$res->is_map()) }; |
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 3975 END
|
Line 4079 END
|
$folderpath.=$containerarg.'&'.$foldername; |
$folderpath.=$containerarg.'&'.$foldername; |
$url.='folderpath='.&escape($folderpath); |
$url.='folderpath='.&escape($folderpath); |
} else { |
} else { |
|
my $rpicknum = (&LONCAPA::map::getparameter($orderidx, |
|
'parameter_randompick'))[0]; |
|
my $randorder = ((&LONCAPA::map::getparameter($orderidx, |
|
'parameter_randomorder'))[0]=~/^yes$/i); |
|
my $hiddenmap = ((&LONCAPA::map::getparameter($orderidx, |
|
'parameter_hiddenresource'))[0]=~/^yes$/i); |
|
my $encryptmap = ((&LONCAPA::map::getparameter($orderidx, |
|
'parameter_encrypturl'))[0]=~/^yes$/i); |
|
unless ($hiddenmap) { |
|
if (ref($navmapref)) { |
|
unless (ref($$navmapref)) { |
|
$$navmapref = Apache::lonnavmaps::navmap->new(); |
|
} |
|
if (ref($$navmapref)) { |
|
if (lc($$navmapref->get_mapparam(undef,$folderurl,"0.hiddenresource")) eq 'yes') { |
|
my @resources = $$navmapref->retrieveResources($folderurl,$filterFunc,1,1); |
|
unless (@resources) { |
|
$hiddenmap = 1; |
|
unless ($env{'request.role.adv'}) { |
|
$url = ''; |
|
$hiddenfolder = 1; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
unless ($encryptmap) { |
|
if ((ref($navmapref)) && (ref($$navmapref))) { |
|
if (lc($$navmapref->get_mapparam(undef,$folderurl,"0.encrypturl")) eq 'yes') { |
|
$encryptmap = 1; |
|
} |
|
} |
|
} |
|
|
# Append randompick number, hidden, and encrypted with ":" to foldername, |
# Append randompick number, hidden, and encrypted with ":" to foldername, |
# so it gets transferred between levels |
# so it gets transferred between levels |
$folderpath.=$containerarg.'&'.$foldername. |
$folderpath.=$containerarg.'&'.$foldername. |
':'.(&LONCAPA::map::getparameter($orderidx, |
':'.$rpicknum.':'.$hiddenmap.':'.$encryptmap.':'.$randorder.':'.$ispage; |
'parameter_randompick'))[0] |
unless ($url eq '') { |
.':'.((&LONCAPA::map::getparameter($orderidx, |
|
'parameter_hiddenresource'))[0]=~/^yes$/i) |
|
.':'.((&LONCAPA::map::getparameter($orderidx, |
|
'parameter_encrypturl'))[0]=~/^yes$/i) |
|
.':'.((&LONCAPA::map::getparameter($orderidx, |
|
'parameter_randomorder'))[0]=~/^yes$/i) |
|
.':'.$ispage; |
|
if ($env{'request.role.adv'} || |
|
(&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]!~/^yes$/i) { |
|
$url.='folderpath='.&escape($folderpath); |
$url.='folderpath='.&escape($folderpath); |
} else { |
|
$url = ''; |
|
} |
} |
my $rpicknum = (&LONCAPA::map::getparameter($orderidx, |
|
'parameter_randompick'))[0]; |
|
my $rpckchk; |
my $rpckchk; |
if ($rpicknum) { |
if ($rpicknum) { |
$rpckchk = ' checked="checked"'; |
$rpckchk = ' checked="checked"'; |
Line 4014 $form_common."\n".
|
Line 4140 $form_common."\n".
|
$rand_pick_text .= '</span></span>'. |
$rand_pick_text .= '</span></span>'. |
$form_end; |
$form_end; |
my $ro_set; |
my $ro_set; |
if ((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i) { |
if ($randorder) { |
$ro_set = 'checked="checked"'; |
$ro_set = 'checked="checked"'; |
if (($ishash) && (ref($filtersref->{'randomorder'}) eq 'ARRAY')) { |
if (($ishash) && (ref($filtersref->{'randomorder'}) eq 'ARRAY')) { |
push(@{$filtersref->{'randomorder'}},$orderidx); |
push(@{$filtersref->{'randomorder'}},$orderidx); |
Line 4091 $form_end;
|
Line 4217 $form_end;
|
$reinit = &mt('(re-initialize course to access)'); |
$reinit = &mt('(re-initialize course to access)'); |
} |
} |
$line.='<td class="LC_docs_entry_commands"'.$tdalign.'><span class="LC_nobreak">'.$editlink.$renamelink; |
$line.='<td class="LC_docs_entry_commands"'.$tdalign.'><span class="LC_nobreak">'.$editlink.$renamelink; |
|
my $link; |
if (($url=~m{/adm/(coursedocs|supplemental)}) || (!$allowed && $url)) { |
if (($url=~m{/adm/(coursedocs|supplemental)}) || (!$allowed && $url)) { |
$line.='<a href="'.$url.'"><img src="'.$icon.'" alt="" class="LC_icon" /></a>'; |
$line.='<a href="'.$url.'"><img src="'.$icon.'" alt="" class="LC_icon" /></a>'; |
} elsif ($url) { |
} elsif ($url) { |
Line 4101 $form_end;
|
Line 4228 $form_end;
|
$anchor = '#'.&HTML::Entities::encode($anchor,'"<>&'); |
$anchor = '#'.&HTML::Entities::encode($anchor,'"<>&'); |
} |
} |
} |
} |
$line.=&Apache::loncommon::modal_link($url.(($url=~/\?/)?'&':'?').'inhibitmenu=yes'. |
$link = &js_escape($url.(($url=~/\?/)?'&':'?').'inhibitmenu=yes'. |
(($anchor ne '')?$anchor:''), |
(($anchor ne '')?$anchor:'')); |
'<img src="'.$icon.'" alt="" class="LC_icon" />',600,500); |
if ($nomodal) { |
|
$line.='<a href="#" onclick="javascript:window.open('."'$link','syllabuspreview','height=400,width=500,scrollbars=1,resizable=1,menubar=0,location=1')".'; return false;" />'. |
|
'<img src="'.$icon.'" alt="" class="LC_icon" border="0" /></a>'; |
|
} else { |
|
$line.=&Apache::loncommon::modal_link($link, |
|
'<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 4111 $form_end;
|
Line 4244 $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'. |
if ($nomodal) { |
(($anchor ne '')?$anchor:''), |
$line.='<a href="#" onclick="javascript:window.open('."'$link','syllabuspreview','height=400,width=500,scrollbars=1,resizable=1,menubar=0,location=1')".'; return false;" />'. |
$title,600,500); |
$title.'</a>'; |
|
} else { |
|
$line.=&Apache::loncommon::modal_link($link,$title,600,500); |
|
} |
|
} elsif (($hiddenfolder) || ($hiddenres)) { |
|
$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 5053 sub handler {
|
Line 5191 sub handler {
|
my $containertag; |
my $containertag; |
my $pathitem; |
my $pathitem; |
my %ltitools; |
my %ltitools; |
|
my $hiddentop; |
|
my $navmap; |
|
my $filterFunc = sub { my $res = shift; return (!$res->randomout() && !$res->is_map()) }; |
|
|
# Do we directly jump somewhere? |
# Do we directly jump somewhere? |
|
|
if (($env{'form.command'} eq 'direct') || ($env{'form.command'} eq 'directnav')) { |
if (($env{'form.command'} eq 'direct') || ($env{'form.command'} eq 'directnav')) { |
if ($env{'form.symb'} ne '') { |
if ($env{'form.symb'} ne '') { |
$env{'form.folderpath'}= |
$env{'form.folderpath'}= |
&Apache::loncommon::symb_to_docspath($env{'form.symb'}); |
&Apache::loncommon::symb_to_docspath($env{'form.symb'},\$navmap); |
&Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => |
&Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => |
$env{'form.command'}.'_'.$env{'form.symb'}}); |
$env{'form.command'}.'_'.$env{'form.symb'}}); |
} elsif ($env{'form.supppath'} ne '') { |
} elsif ($env{'form.supppath'} ne '') { |
Line 5068 sub handler {
|
Line 5208 sub handler {
|
$env{'form.command'}.'_'.$env{'form.supppath'}}); |
$env{'form.command'}.'_'.$env{'form.supppath'}}); |
} |
} |
} elsif ($env{'form.command'} eq 'editdocs') { |
} elsif ($env{'form.command'} eq 'editdocs') { |
$env{'form.folderpath'} = 'default&'. |
$env{'form.folderpath'} = &default_folderpath($coursenum,$coursedom,\$navmap); |
&escape(&mt('Main Content').':::::'); |
|
&Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => $env{'form.command'}}); |
&Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => $env{'form.command'}}); |
} elsif ($env{'form.command'} eq 'editsupp') { |
} elsif ($env{'form.command'} eq 'editsupp') { |
$env{'form.folderpath'} = 'supplemental&'. |
$env{'form.folderpath'} = &supplemental_base(); |
&escape('Supplemental Content'); |
|
&Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => '/adm/supplemental'}); |
&Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => '/adm/supplemental'}); |
} elsif ($env{'form.command'} eq 'contents') { |
} elsif ($env{'form.command'} eq 'contents') { |
&Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => '/adm/navmaps'}); |
&Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => '/adm/navmaps'}); |
Line 5092 sub handler {
|
Line 5230 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 5109 sub handler {
|
Line 5254 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 $folder = $pathitems[-2]; |
|
if ($folder eq '') { |
|
undef($env{'form.folderpath'}); |
|
} else { |
|
$folderurl = "uploaded/$coursedom/$coursenum/$folder"; |
|
if ((split(/\:/,$pathitems[-1]))[4]) { |
|
$folderurl .= '.page'; |
|
} else { |
|
$folderurl .= '.sequence'; |
|
} |
|
unless (ref($navmap)) { |
|
$navmap = Apache::lonnavmaps::navmap->new(); |
|
} |
|
if (ref($navmap)) { |
|
if (lc($navmap->get_mapparam(undef,$folderurl,"0.hiddenresource")) eq 'yes') { |
|
my @resources = $navmap->retrieveResources($folderurl,$filterFunc,1,1); |
|
unless (@resources) { |
|
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) { |
$env{'form.folderpath'}=&supplemental_base(); |
$env{'form.folderpath'}=&supplemental_base(); |
} else { |
} elsif ($allowed) { |
$env{'form.folderpath'}='default&'.&escape(&mt('Main Content'). |
($env{'form.folderpath'},$hiddentop) = &default_folderpath($coursenum,$coursedom,\$navmap); |
':::::'); |
|
} |
} |
} |
} |
|
|
# 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 5139 sub handler {
|
Line 5313 sub handler {
|
} else { |
} else { |
if ($env{'form.folder'} eq '' || |
if ($env{'form.folder'} eq '' || |
$env{'form.folder'} eq 'supplemental') { |
$env{'form.folder'} eq 'supplemental') { |
$folderpath='default&'. |
if ($env{'form.folder'} eq 'supplemental') { |
&escape(&mt('Main Content').':::::'); |
$folderpath=&supplemental_base(); |
|
} elsif (!$hiddentop) { |
|
$folderpath='default&'. |
|
&escape(&mt('Main Content').':::::'); |
|
} |
} |
} |
} |
} |
$containertag = '<input type="hidden" name="folderpath" value="" />'; |
$containertag = '<input type="hidden" name="folderpath" value="" />'; |
Line 5193 sub handler {
|
Line 5371 sub handler {
|
%ltitools = &Apache::lonnet::get_domain_ltitools($coursedom); |
%ltitools = &Apache::lonnet::get_domain_ltitools($coursedom); |
my $posslti = keys(%ltitools); |
my $posslti = keys(%ltitools); |
$script .= &editing_js($udom,$uname,$supplementalflag,$coursedom,$coursenum,$posslti, |
$script .= &editing_js($udom,$uname,$supplementalflag,$coursedom,$coursenum,$posslti, |
$londocroot,$canedit). |
$londocroot,$canedit,\$navmap). |
&history_tab_js(). |
&history_tab_js(). |
&inject_data_js(). |
&inject_data_js(). |
&Apache::lonhtmlcommon::resize_scrollbox_js('docs',$tabidstr,$tid). |
&Apache::lonhtmlcommon::resize_scrollbox_js('docs',$tabidstr,$tid). |
Line 5225 sub handler {
|
Line 5403 sub handler {
|
{'force_register' => $showdoc,})); |
{'force_register' => $showdoc,})); |
} elsif ($toolsflag) { |
} elsif ($toolsflag) { |
my ($breadtext,$breadtitle); |
my ($breadtext,$breadtitle); |
$breadtext = "$crstype Contents"; |
$breadtext = "$crstype Editor"; |
if ($canedit) { |
if ($canedit) { |
$breadtitle = 'Editing '.$crstype.' Contents'; |
$breadtitle = 'Editing '.$crstype.' Contents'; |
} else { |
} else { |
Line 5245 sub handler {
|
Line 5423 sub handler {
|
{'bread_crumbs' => $brcrum,})); |
{'bread_crumbs' => $brcrum,})); |
} else { |
} else { |
my ($breadtext,$breadtitle,$helpitem); |
my ($breadtext,$breadtitle,$helpitem); |
$breadtext = "$crstype Contents"; |
$breadtext = "$crstype Editor"; |
if ($canedit) { |
if ($canedit) { |
$breadtitle = 'Editing '.$crstype.' Contents'; |
$breadtitle = 'Editing '.$crstype.' Contents'; |
$helpitem = 'Docs_Adding_Course_Doc'; |
$helpitem = 'Docs_Adding_Course_Doc'; |
Line 5376 sub handler {
|
Line 5554 sub handler {
|
'webctce4' => 'WebCT 4 Campus Edition', |
'webctce4' => 'WebCT 4 Campus Edition', |
'yes' => 'Yes', |
'yes' => 'Yes', |
'no' => 'No', |
'no' => 'No', |
'er' => 'Editing rights unavailable for your current role', |
'er' => 'Editing rights unavailable for your current role.', |
); |
); |
# ----------------------------------------------------------------------------- |
# ----------------------------------------------------------------------------- |
|
|
Line 5406 sub handler {
|
Line 5584 sub handler {
|
if ($disk_quota == 0) { |
if ($disk_quota == 0) { |
$percent = 100.0; |
$percent = 100.0; |
} else { |
} else { |
$percent = 100*($current_disk_usage/$disk_quota); |
$percent = 100*($usage/$disk_quota); |
} |
} |
$usage = sprintf("%.2f",$usage); |
$usage = sprintf("%.2f",$usage); |
$quota = sprintf("%.2f",$quota); |
$quota = sprintf("%.2f",$quota); |
Line 5559 CRSFORM
|
Line 5737 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 5598 HIDDENFORM
|
Line 5778 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 6005 NSYLFORM
|
Line 6185 NSYLFORM
|
NGFFORM |
NGFFORM |
@specialdocumentsforma=( |
@specialdocumentsforma=( |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/page.png" alt="'.$lt{newp}.'" onclick="javascript:makenewpage(document.newpage,\''.$pageseq.'\');" />'=>$newpageform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/page.png" alt="'.$lt{newp}.'" onclick="javascript:makenewpage(document.newpage,\''.$pageseq.'\');" />'=>$newpageform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/syllabus.png" alt="'.$lt{syll}.'" onclick="makenew(document.newsyl);" />'=>$newsylform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/syllabus.png" alt="'.$lt{syll}.'" onclick="javascript:makenew(document.newsyl);" />'=>$newsylform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/navigation.png" alt="'.$lt{navc}.'" onclick="javascript:makenew(document.newnav);" />'=>$newnavform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/navigation.png" alt="'.$lt{navc}.'" onclick="javascript:makenew(document.newnav);" />'=>$newnavform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simple.png" alt="'.$lt{sipa}.'" onclick="javascript:makesmppage();" />'=>$newsmppageform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simple.png" alt="'.$lt{sipa}.'" onclick="javascript:makesmppage();" />'=>$newsmppageform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/webpage.png" alt="'.$lt{webp}.'" onclick="javascript:makewebpage();" />'=>$newwebpageform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/webpage.png" alt="'.$lt{webp}.'" onclick="javascript:makewebpage();" />'=>$newwebpageform}, |
Line 6062 unless ($container eq 'page') {
|
Line 6242 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); |
|
undef($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>'); |
} |
} |
Line 6181 SWEBFORM
|
Line 6363 SWEBFORM
|
|
|
|
|
my @specialdocs = ( |
my @specialdocs = ( |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/syllabus.png" alt="'.$lt{syll}.'" onclick="makenew(document.supnewsyl);" />' |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/syllabus.png" alt="'.$lt{syll}.'" onclick="javascript:makenew(document.supnewsyl);" />' |
=>$supnewsylform}, |
=>$supnewsylform}, |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/myaboutme.png" alt="'.$lt{mypi}.'" onclick="javascript:makenew(document.supnewaboutme);" />' |
{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/myaboutme.png" alt="'.$lt{mypi}.'" onclick="javascript:makenew(document.supnewaboutme);" />' |
=>$supnewaboutmeform}, |
=>$supnewaboutmeform}, |
Line 6209 my %suporderhash = (
|
Line 6391 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); |
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 6229 my %suporderhash = (
|
Line 6412 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>'); |
} |
} |
Line 6603 END
|
Line 6786 END
|
} |
} |
|
|
sub editing_js { |
sub editing_js { |
my ($udom,$uname,$supplementalflag,$coursedom,$coursenum,$posslti,$londocroot,$canedit) = @_; |
my ($udom,$uname,$supplementalflag,$coursedom,$coursenum,$posslti,$londocroot,$canedit,$navmapref) = @_; |
my %js_lt = &Apache::lonlocal::texthash( |
my %js_lt = &Apache::lonlocal::texthash( |
p_mnf => 'Name of New Folder', |
p_mnf => 'Name of New Folder', |
t_mnf => 'New Folder', |
t_mnf => 'New Folder', |
Line 6647 sub editing_js {
|
Line 6830 sub editing_js {
|
nofi => 'No file selected', |
nofi => 'No file selected', |
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.', |
); |
); |
&js_escape(\%js_lt); |
&js_escape(\%js_lt); |
my $crstype = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
Line 6656 sub editing_js {
|
Line 6839 sub editing_js {
|
if (&HTML::Entities::decode($env{'environment.internal.'.$env{'request.course.id'}.'.docs_folderpath.folderpath'}) =~ /\:1$/) { |
if (&HTML::Entities::decode($env{'environment.internal.'.$env{'request.course.id'}.'.docs_folderpath.folderpath'}) =~ /\:1$/) { |
$main_container_page = 1; |
$main_container_page = 1; |
} |
} |
my $toplevelmain = |
my $backtourl; |
&escape(&mt('Main Content').':::::'); |
my $toplevelmain = &escape(&default_folderpath($coursenum,$coursedom,$navmapref)); |
my $toplevelsupp = &supplemental_base(); |
my $toplevelsupp = &supplemental_base(); |
|
|
my $backtourl; |
|
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 6676 sub editing_js {
|
Line 6858 sub editing_js {
|
if (($caller =~ m{^([^#]+)\Q#$anchor\E$})) { |
if (($caller =~ m{^([^#]+)\Q#$anchor\E$})) { |
$caller = $1.&escape('#').$anchor; |
$caller = $1.&escape('#').$anchor; |
} |
} |
|
} else { |
|
$url = $res; |
} |
} |
$backtourl = &HTML::Entities::encode(&Apache::lonnet::clutter($url),'<>&"').'?symb='. |
$backtourl = &HTML::Entities::encode(&Apache::lonnet::clutter($url),'<>&"').'?symb='. |
&HTML::Entities::encode($caller,'<>&"'); |
&HTML::Entities::encode($caller,'<>&"'); |