--- loncom/interface/londocs.pm 2012/12/13 04:15:30 1.484.2.18 +++ loncom/interface/londocs.pm 2012/10/31 04:59:11 1.499 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.484.2.18 2012/12/13 04:15:30 raeburn Exp $ +# $Id: londocs.pm,v 1.499 2012/10/31 04:59:11 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -312,6 +312,61 @@ sub group_import { return &storemap($coursenum, $coursedom, $folder.'.'.$container,1); } +sub breadcrumbs { + my ($allowed,$crstype)=@_; + &Apache::lonhtmlcommon::clear_breadcrumbs(); + my (@folders); + if ($env{'form.pagepath'}) { + @folders = split('&',$env{'form.pagepath'}); + } else { + @folders=split('&',$env{'form.folderpath'}); + } + my $folderpath; + my $plain=''; + my $randompick=-1; + my $isencrypted=0; + my $ishidden=0; + my $is_random_order=0; + while (@folders) { + my $folder=shift(@folders); + my $foldername=shift(@folders); + if ($folderpath) {$folderpath.='&';} + $folderpath.=$folder.'&'.$foldername; + my $url; + if ($allowed) { + $url = '/adm/coursedocs?folderpath='; + } else { + $url = '/adm/supplemental?folderpath='; + } + $url .= &escape($folderpath); + my $name=&unescape($foldername); +# randompick number, hidden, encrypted, random order, is appended with ":"s to the foldername + $name=~s/\:(\d*)\:(\w*)\:(\w*):(\d*)$//; + if ($1 ne '') { + $randompick=$1; + } else { + $randompick=-1; + } + if ($2) { $ishidden=1; } + if ($3) { $isencrypted=1; } + if ($4 ne '') { $is_random_order = 1; } + if ($folder eq 'supplemental') { + $name = &mt('Supplemental '.$crstype.' Content'); + } + &Apache::lonhtmlcommon::add_breadcrumb( + {'href'=>$url, + 'title'=>$name, + 'text'=>$name, + 'no_mt'=>1, + }); + $plain.=$name.' > '; + } + $plain=~s/\>\;\s*$//; + return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp', + undef, undef, 1 ),$randompick,$ishidden, + $isencrypted,$plain,$is_random_order); +} + sub log_docs { return &Apache::lonnet::write_log('course','docslog',@_); } @@ -399,8 +454,7 @@ sub docs_change_log { if ($folderpath eq '') { $folderpath = 'default&'.&escape(&mt('Main '.$crstype.' Documents')); } - $pathitem = ''; + $pathitem = ''; } my $readfile="/uploaded/$coursedom/$coursenum/$folder.$container"; my $jumpto = $readfile; @@ -409,8 +463,7 @@ sub docs_change_log { if ($supplementalflag) { $tid = 2; } - my ($breadcrumbtrail) = - &Apache::lonhtmlcommon::docs_breadcrumbs($allowed,$crstype,1); + my ($breadcrumbtrail) = &breadcrumbs($allowed,$crstype); $r->print($breadcrumbtrail. &generate_edit_table($tid,\%orderhash,undef,$iconpath,$jumpto, $readfile)); @@ -484,7 +537,7 @@ sub docs_change_log { ':'.$docslog{$id}{'exe_udom'}.''. $send_msg_link.''. $docslog{$id}{'logentry'}{'folder'}.''); - my $is_supp = 0; + my $is_supp = 0; if ($docslog{$id}{'logentry'}{'currentfolder'} =~ /^supplemental/) { $is_supp = 1; } @@ -507,7 +560,7 @@ sub docs_change_log { if ($is_supp) { $shown = &Apache::loncommon::parse_supplemental_title($shown); } - $r->print('
  • '.$shown.'
  • '); + $r->print('
  • '.$shown.'
  • '); } } $r->print(''); @@ -658,7 +711,7 @@ sub print_paste_buffer { $canpaste = &supp_pasteable($env{'docs.markedcopy_url'}); unless ($canpaste) { $nopaste = &mt('Paste into Supplemental Content unavailable for this type of content.'); - } + } } else { $canpaste = 1; } @@ -672,11 +725,11 @@ sub print_paste_buffer { $othercourse = 1; if ($env{"user.priv.cm./$srcdom/$srcnum"} =~ /\Q:mdc&F\E/) { if ($canpaste) { - $othercrs = '
    '.&mt('(from another course).'); + $othercrs = '
    '.&mt('(from another course).'); } } else { $canpaste = 0; - $nopaste = &mt('Paste from another course unavailable.') + $nopaste = &mt('Paste from another course unavailable.') } } if ($rem =~ m{^(default|supplemental)_?(\d*)\.(?:page|sequence)$}) { @@ -694,18 +747,18 @@ sub print_paste_buffer { .''.&mt('Clipboard').''); my ($type,$buffer); if ($is_external) { - $type = &mt('External Resource'); - $buffer = $type.': '. - &LONCAPA::map::qtescape($env{'docs.markedcopy_title'}).' ('. + $type = &mt('External Resource'); + $buffer = $type.': '. + &LONCAPA::map::qtescape($env{'docs.markedcopy_title'}).' ('. &LONCAPA::map::qtescape($env{'docs.markedcopy_url'}).')'; } else { - my $icon = &Apache::loncommon::icon($extension); - if ($extension eq 'sequence' && - $env{'docs.markedcopy_url'} =~ m{/default_\d+\.sequence$ }x) { - $icon = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL')); - $icon .= '/navmap.folder.closed.gif'; - } - $icon = ''; + my $icon = &Apache::loncommon::icon($extension); + if ($extension eq 'sequence' && + $env{'docs.markedcopy_url'} =~ m{/default_\d+\.sequence$ }x) { + $icon = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL')); + $icon .= '/navmap.folder.closed.gif'; + } + $icon = ''; $buffer = $icon.$type.': '. &Apache::loncommon::parse_supplemental_title(&LONCAPA::map::qtescape($env{'docs.markedcopy_title'})); } if ($canpaste) { @@ -719,7 +772,7 @@ sub print_paste_buffer { ''.(' ' x2). - '