--- loncom/interface/londocs.pm 2012/11/29 20:37:07 1.511 +++ loncom/interface/londocs.pm 2013/01/03 23:47:51 1.526 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.511 2012/11/29 20:37:07 raeburn Exp $ +# $Id: londocs.pm,v 1.526 2013/01/03 23:47:51 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -391,18 +391,15 @@ sub docs_change_log { my %orderhash; my $container='sequence'; my $pathitem; - if ($env{'form.pagepath'}) { + if ($env{'form.folderpath'} =~ /\:1$/) { $container='page'; - $pathitem = ''; - } else { - my $folderpath=$env{'form.folderpath'}; - if ($folderpath eq '') { - $folderpath = 'default&'.&escape(&mt('Main '.$crstype.' Documents')); - } - $pathitem = ''; } + my $folderpath=$env{'form.folderpath'}; + if ($folderpath eq '') { + $folderpath = 'default&'.&escape(&mt('Main '.$crstype.' Documents').':::::'); + } + $pathitem = ''; my $readfile="/uploaded/$coursedom/$coursenum/$folder.$container"; my $jumpto = $readfile; $jumpto =~ s{^/}{}; @@ -761,16 +758,9 @@ sub print_paste_buffer { } } $r->print('
'.$othercrs); - if ($container eq 'page') { - $r->print(' - - -'); - } else { - $r->print(' + $r->print(' '); - } $r->print(''); } else { $r->print(&mt('Paste buffer contains:').' '.$buffer. @@ -1692,16 +1682,23 @@ sub handle_edit_cmd { sub editor { my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$crstype, $supplementalflag,$orderhash,$iconpath,$pathitem)=@_; - my $container= ($env{'form.pagepath'}) ? 'page' - : 'sequence'; - my ($randompick,$ishidden,$isencrypted,$plain,$is_random_order); + my ($randompick,$ishidden,$isencrypted,$plain,$is_random_order,$container); if ($allowed) { - (my $breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order) = + (my $breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain, + $is_random_order,$container) = &Apache::lonhtmlcommon::docs_breadcrumbs($allowed,$crstype,1); $r->print($breadcrumbtrail); + } elsif ($env{'form.folderpath'} =~ /\:1$/) { + $container = 'page'; + } else { + $container = 'sequence'; } - my $jumpto = "uploaded/$coursedom/$coursenum/$folder.$container"; + my $jumpto; + + unless ($supplementalflag) { + $jumpto = "'uploaded/$coursedom/$coursenum/$folder.$container'"; + } unless ($allowed) { $randompick = -1; @@ -1862,13 +1859,23 @@ sub editor { unless ($name) { $idx++; next; } $output .= &entryline($idx,$name,$url,$folder,$allowed,$res, $coursenum,$coursedom,$crstype, - $pathitem,$supplementalflag); + $pathitem,$supplementalflag,$container); $idx++; $shown++; } &Apache::loncommon::end_data_table_count(); if (($allowed) || ($supplementalflag && $folder eq 'supplemental')) { + my $toolslink = '' + .'
' + .&Apache::loncommon::help_open_menu('Navigation Screen', + 'Navigation_Screen',undef,'RAT') + .''.&mt('Tools:').'

'; if ($shown) { if ($allowed) { $to_show = &Apache::loncommon::start_scrollbox('900px','880px','400px','contentscroll') @@ -1886,19 +1893,15 @@ sub editor { .'
' .&Apache::loncommon::end_scrollbox(); } else { - $to_show = '' - .'
'.&Apache::loncommon::help_open_menu('Navigation Screen','Navigation_Screen',undef,'RAT') - .''.&mt('Tools:').'

' + $to_show .= $toolslink .&Apache::loncommon::start_data_table('LC_tableOfContent') .$output.' ' .&Apache::loncommon::end_data_table(); } } else { + if (!$allowed) { + $to_show .= $toolslink; + } $to_show .= &Apache::loncommon::start_scrollbox('400px','380px','200px','contentscroll') .'
' .&mt('Currently no documents.') @@ -1948,7 +1951,7 @@ sub process_file_upload { my $errtext=''; my $fatal=0; my $container='sequence'; - if ($env{'form.pagepath'}) { + if ($env{'form.folderpath'} =~ /:1$/) { $container='page'; } ($errtext,$fatal)= @@ -2038,7 +2041,6 @@ sub process_file_upload { my $archiveurl = &HTML::Entities::encode($url,'<>&"'); my %archiveitems = ( folderpath => $env{'form.folderpath'}, - pagepath => $env{'form.pagepath'}, cmd => $nextphase, newidx => $newidx, position => $position, @@ -2093,16 +2095,14 @@ sub is_supplemental_title { sub entryline { my ($index,$title,$url,$folder,$allowed,$residx,$coursenum,$coursedom, - $crstype,$pathitem,$supplementalflag)=@_; - my ($foldertitle,$pagetitle,$renametitle); + $crstype,$pathitem,$supplementalflag,$container)=@_; + my ($foldertitle,$renametitle); if (&is_supplemental_title($title)) { ($title,$foldertitle,$renametitle) = &Apache::loncommon::parse_supplemental_title($title); - $pagetitle = $foldertitle; } else { $title=&HTML::Entities::encode($title,'"<>&\''); $renametitle=$title; $foldertitle=$title; - $pagetitle=$title; } my $orderidx=$LONCAPA::map::order[$index]; @@ -2113,19 +2113,17 @@ sub entryline { my $line=&Apache::loncommon::start_data_table_row(); my ($form_start,$form_end,$form_common); # Edit commands - my ($container, $type, $esc_path, $path, $symb); + my ($type, $esc_path, $path, $symb); + if ($container eq 'page') { + $type = 'page'; + } else { + $type = 'folder'; + } if ($env{'form.folderpath'}) { - $type = 'folder'; - $container = 'sequence'; $esc_path=&escape($env{'form.folderpath'}); $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); # $htmlfoldername=&HTML::Entities::encode($env{'form.foldername'},'<>&"'); } - if ($env{'form.pagepath'}) { - $type = $container = 'page'; - $esc_path=&escape($env{'form.pagepath'}); - $path = &HTML::Entities::encode($env{'form.pagepath'},'<>&"'); - } my $isexternal; if ($residx) { my $currurl = $url; @@ -2142,7 +2140,7 @@ sub entryline { &Apache::lonnet::declutter($currurl)); } } - my %lt; + my ($renamelink,%lt); if ($allowed) { my $incindex=$index+1; my $selectbox=''; @@ -2239,7 +2237,7 @@ sub entryline { $nocopy=1; } } - my ($copylink,$cutlink,$removelink,$renamelink); + my ($copylink,$cutlink,$removelink); my $skip_confirm = 0; if ( $folder =~ /^supplemental/ || ($url =~ m{( /smppg$ @@ -2258,7 +2256,7 @@ sub entryline { ENDCOPY } else { $copylink=(<$lt{'cp'} +$lt{'cp'} ENDCOPY } if ($nocut) { @@ -2267,7 +2265,7 @@ ENDCOPY ENDCUT } else { $cutlink=(<$lt{'ct'} +$lt{'ct'} ENDCUT } if ($noremove) { @@ -2276,12 +2274,14 @@ ENDCUT ENDREM } else { $removelink=(<$lt{'rm'} +$lt{'rm'} ENDREM } - $renamelink=(<$lt{'rn'} + unless ($isexternal) { + $renamelink=(<$lt{'rn'} ENDREN + } $form_start = '
'; @@ -2313,7 +2313,6 @@ END $removelink -$renamelink $cutlink $copylink @@ -2325,22 +2324,18 @@ END my ($extension)=($url=~/\.(\w+)$/); my $uploaded=($url=~/^\/*uploaded\//); my $icon=&Apache::loncommon::icon($url); - my $isfolder=0; - my $ispage=0; - my $folderarg; - my $pagearg; - my $pagefile; + my $isfolder; + my $ispage; + my $containerarg; if ($uploaded) { if (($extension eq 'sequence') || ($extension eq 'page')) { $url=~/\Q$coursenum\E\/([\/\w]+)\.\Q$extension\E$/; - my $containerarg = $1; + $containerarg = $1; if ($extension eq 'sequence') { $icon=$iconpath.'navmap.folder.closed.gif'; - $folderarg=$containerarg; $isfolder=1; } else { $icon=$iconpath.'page.gif'; - $pagearg=$containerarg; $ispage=1; } if ($allowed) { @@ -2353,15 +2348,11 @@ END } } - my $editlink; + my ($editlink,$extresform); my $orig_url = $url; $orig_url=~s{http(:|:)//https(:|:)//}{https$2//}; $url=~s{^http(|s)(:|:)//}{/adm/wrapper/ext/}; if (!$supplementalflag && $residx && $symb) { - if ($container eq 'page') { - $url=&Apache::lonnet::clutter((&Apache::lonnet::decode_symb($symb))[2]); - $url.=(($url=~/\?/)?'&':'?').'symb='.&escape($symb); - } if ((!$isfolder) && (!$ispage)) { (undef,undef,$url)=&Apache::lonnet::decode_symb($symb); $url=&Apache::lonnet::clutter($url); @@ -2386,17 +2377,17 @@ END } } my ($rand_pick_text,$rand_order_text); - if ($isfolder || $extension eq 'sequence') { + if ($isfolder || $ispage || $extension eq 'sequence' || $extension eq 'page') { my $foldername=&escape($foldertitle); my $folderpath=$env{'form.folderpath'}; if ($folderpath) { $folderpath.='&' }; if (!$allowed && $supplementalflag) { - $folderpath.=$folderarg.'&'.$foldername; + $folderpath.=$containerarg.'&'.$foldername; $url.='folderpath='.&escape($folderpath); } else { # Append randompick number, hidden, and encrypted with ":" to foldername, # so it gets transferred between levels - $folderpath.=$folderarg.'&'.$foldername. + $folderpath.=$containerarg.'&'.$foldername. ':'.(&LONCAPA::map::getparameter($orderidx, 'parameter_randompick'))[0] .':'.((&LONCAPA::map::getparameter($orderidx, @@ -2404,7 +2395,8 @@ END .':'.((&LONCAPA::map::getparameter($orderidx, 'parameter_encrypturl'))[0]=~/^yes$/i) .':'.((&LONCAPA::map::getparameter($orderidx, - 'parameter_randomorder'))[0]=~/^yes$/i); + 'parameter_randomorder'))[0]=~/^yes$/i) + .':'.$ispage; $url.='folderpath='.&escape($folderpath); my $rpicknum = (&LONCAPA::map::getparameter($orderidx, 'parameter_randompick'))[0]; @@ -2438,20 +2430,12 @@ $form_common.' $url .= '&idx='.$orderidx; } } - if ($ispage) { - my $pagename=&escape($pagetitle); - my $pagepath; - my $folderpath=$env{'form.folderpath'}; - if ($folderpath) { $pagepath = $folderpath.'&' }; - $pagepath.=$pagearg.'&'.$pagename; - $url.='pagepath='.&escape($pagepath). - '&pagesymb='.&escape($symb); - } + my ($tdalign,$tdwidth); if ($allowed) { my $fileloc = &Apache::lonnet::declutter(&Apache::lonnet::filelocation('',$orig_url)); if ($isexternal) { - $editlink = ' '. + ($editlink,$extresform) = &Apache::lonextresedit::extedit_form(0,$residx,$orig_url,$title,$pathitem); } elsif (!$isfolder && !$ispage) { my ($cfile,$home,$switchserver,$forceedit,$forceview) = @@ -2463,21 +2447,23 @@ $form_common.' $forceedit, undef,$symb, &escape($env{'form.folderpath'}), - $renametitle); + $renametitle,'','',1); if ($jscall) { - $editlink = ' '.&mt('Edit').''; + $editlink = ''.&mt('Edit').' '."\n"; } } } + $tdalign = ' align="right" valign="top"'; + $tdwidth = ' width="80%"'; } my $reinit; if ($crstype eq 'Community') { $reinit = &mt('(re-initialize community to access)'); } else { $reinit = &mt('(re-initialize course to access)'); - } - $line.=''; + } + $line.=''.$editlink.$renamelink; if (($url=~m{/adm/(coursedocs|supplemental)}) || (!$allowed && $url)) { $line.=''; } elsif ($url) { @@ -2486,7 +2472,7 @@ $form_common.' } else { $line.=''; } - $line.=''; + $line.=''; if (($url=~m{/adm/(coursedocs|supplemental)}) || (!$allowed && $url)) { $line.=''.$title.''; } elsif ($url) { @@ -2495,7 +2481,7 @@ $form_common.' } else { $line.=$title.' '.$reinit.''; } - $line.=$editlink.""; + $line.="$extresform"; $rand_pick_text = ' ' if ($rand_pick_text eq ''); $rand_order_text = ' ' if ($rand_order_text eq ''); if (($allowed) && ($folder!~/^supplemental/)) { @@ -2645,7 +2631,7 @@ sub checkonthis { $r->print(''.&mt('connection down').''); } elsif ($result eq 'not_found') { unless ($url=~/\$/) { - $r->print(''.&mt('not found').''); + $r->print(''.&mt('not found').''); } else { $r->print(''.&mt('unable to verify variable URL').''); } @@ -2691,7 +2677,7 @@ sub list_symbs { $r->print(&Apache::loncommon::start_data_table_row(). ''.$res->compTitle().''. ''.$res->symb().''. - &Apache::loncommon::start_data_table_row()); + &Apache::loncommon::end_data_table_row()); $count ++; } if (!$count) { @@ -2701,6 +2687,7 @@ sub list_symbs { } $r->print(&Apache::loncommon::end_data_table()); } + $r->print(&endContentScreen()); } @@ -2731,6 +2718,7 @@ sub verifycontent { } &untiehash(); $r->print('

'.&mt('Done').'

'); + $r->print(&endContentScreen()); } @@ -2810,7 +2798,7 @@ sub checkversions { if ($env{'form.timerange'} eq 'all') { # show all documents $header=&mt('All Documents in '.$crstype); - $allsel=1; + $allsel=' selected="selected"'; foreach my $key (keys(%hash)) { if ($key=~/^ids\_(\/res\/.+)$/) { my $src=$1; @@ -2831,19 +2819,19 @@ sub checkversions { .&mt('seconds'); if ($env{'form.timerange'}==-1) { $seltext='since start of course'; - $startsel='selected'; + $startsel=' selected="selected"'; $env{'form.timerange'}=time; } $starttime=time-$env{'form.timerange'}; if ($env{'form.timerange'}==2592000) { $seltext=&mt('during the last month').' ('.&Apache::lonlocal::locallocaltime($starttime).')'; - $monthsel='selected'; + $monthsel=' selected="selected"'; } elsif ($env{'form.timerange'}==604800) { $seltext=&mt('during the last week').' ('.&Apache::lonlocal::locallocaltime($starttime).')'; - $weeksel='selected'; + $weeksel=' selected="selected"'; } elsif ($env{'form.timerange'}==86400) { $seltext=&mt('since yesterday').' ('.&Apache::lonlocal::locallocaltime($starttime).')'; - $daysel='selected'; + $daysel=' selected="selected"'; } $header=&mt('Content changed').' '.$seltext; } else { @@ -2881,11 +2869,11 @@ sub checkversions {
$lt{'cd'}
@@ -2901,111 +2889,93 @@ $lt{'sc'}: - ENDHEADERS #number of columns for version history - my $num_ver_col = 1; $r->print( - &Apache::loncommon::start_data_table(). - &Apache::loncommon::start_data_table_header_row(). - ''. - "". - "". - "". - ''. - ''); + &Apache::loncommon::start_data_table(). + &Apache::loncommon::start_data_table_header_row(). + ''. + "". + "". + "". + ''. + &Apache::loncommon::end_data_table_header_row() + ); foreach my $key (sort(keys(%changes))) { #excludes not versionable problems from resource version history: - if ($changes{$key}>$starttime && $key !~ /^\/res\/lib\/templates/) { - my ($root,$extension)=($key=~/^(.*)\.(\w+)$/); - my $currentversion=&Apache::lonnet::getversion($key); - if ($currentversion<0) { - $currentversion=''.&mt('Could not be determined.').''; - } - my $linkurl=&Apache::lonnet::clutter($key); + next unless ($changes{$key}>$starttime && $key !~ /^\/res\/lib\/templates/); + my ($root,$extension)=($key=~/^(.*)\.(\w+)$/); + my $currentversion=&Apache::lonnet::getversion($key); + if ($currentversion<0) { + $currentversion=''.&mt('Could not be determined.').''; + } + my $linkurl=&Apache::lonnet::clutter($key); $r->print( - &Apache::loncommon::end_data_table_header_row(). &Apache::loncommon::start_data_table_row(). - ''. - ''. - ''); - if ($cols_output != $num_ver_col) { - $r->print(''); + # List all available versions + $r->print(''.&Apache::loncommon::end_data_table_row()); } - $r->print(''.&Apache::loncommon::end_data_table_row(). - &Apache::loncommon::end_data_table(). - ''); + $r->print( + &Apache::loncommon::end_data_table(). + ''. + '' + ); &untiehash(); + $r->print(&endContentScreen()); } sub mark_hash_old { @@ -3037,11 +3007,6 @@ sub changewarning { my $pathvar='folderpath'; my $path=&escape($env{'form.folderpath'}); if (!defined($url)) { - if (defined($env{'form.pagepath'})) { - $pathvar='pagepath'; - $path=&escape($env{'form.pagepath'}); - $path.='&pagesymb='.&escape($env{'form.pagesymb'}); - } $url='/adm/coursedocs?'.$pathvar.'='.$path; } my $course_type = &Apache::loncommon::course_type(); @@ -3215,8 +3180,8 @@ sub handler { # Get the parameters that may be needed # &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['folderpath','pagepath', - 'pagesymb','forcesupplement','forcestandard', + ['folderpath', + 'forcesupplement','forcestandard', 'tools','symb','command','supppath']); # standard=1: this is a "new-style" course with an uploaded map as top level @@ -3231,7 +3196,7 @@ sub handler { my $supplementalflag=($env{'form.folderpath'}=~/^supplemental/); - if (($env{'form.folderpath'}=~/^default/) || $env{'form.folderpath'} eq "" || ($env{'form.pagepath'})) { + if (($env{'form.folderpath'}=~/^default/) || ($env{'form.folderpath'} eq "")) { $supplementalflag=0; } if ($env{'form.forcesupplement'}) { $supplementalflag=1; } @@ -3250,112 +3215,54 @@ sub handler { # Do we directly jump somewhere? - if ($env{'form.command'} eq 'direct') { - my ($mapurl,$id,$resurl); + if (($env{'form.command'} eq 'direct') || ($env{'form.command'} eq 'directnav')) { if ($env{'form.symb'} ne '') { - ($mapurl,$id,$resurl) = &Apache::lonnet::decode_symb($env{'form.symb'}); - if ($resurl=~/\.(sequence|page)$/) { - $mapurl=$resurl; - } elsif ($resurl eq 'adm/navmaps') { - $mapurl=$env{'course.'.$env{'request.course.id'}.'.url'}; - } - my $mapresobj; - my $navmap = Apache::lonnavmaps::navmap->new(); - if (ref($navmap)) { - $mapresobj = $navmap->getResourceByUrl($mapurl); - } - $mapurl=~s{^.*/([^/]+)\.(\w+)$}{$1}; - my $type=$2; - my $path; - if (ref($mapresobj)) { - my $pcslist = $mapresobj->map_hierarchy(); - if ($pcslist ne '') { - foreach my $pc (split(/,/,$pcslist)) { - next if ($pc <= 1); - my $res = $navmap->getByMapPc($pc); - if (ref($res)) { - my $thisurl = $res->src(); - $thisurl=~s{^.*/([^/]+)\.\w+$}{$1}; - my $thistitle = $res->title(); - $path .= '&'. - &Apache::lonhtmlcommon::entity_encode($thisurl).'&'. - &Apache::lonhtmlcommon::entity_encode($thistitle). - ':'.$res->randompick(). - ':'.$res->randomout(). - ':'.$res->encrypted(). - ':'.$res->randomorder(); - } - } - } - $path =~ s/^\&//; - my $maptitle = $mapresobj->title(); - if ($mapurl eq 'default') { - $maptitle = 'Main Course Documents'; - } - $path .= ($path ne '')? '&' : ''. - &Apache::lonhtmlcommon::entity_encode($mapurl).'&'. - &Apache::lonhtmlcommon::entity_encode($maptitle). - ':'.$mapresobj->randompick(). - ':'.$mapresobj->randomout(). - ':'.$mapresobj->encrypted(). - ':'.$mapresobj->randomorder(); - } else { - my $maptitle = &Apache::lonnet::gettitle($mapurl); - if ($mapurl eq 'default') { - $maptitle = 'Main Course Documents'; - } - $path = &Apache::lonhtmlcommon::entity_encode($mapurl).'&'. - &Apache::lonhtmlcommon::entity_encode($maptitle).'::::'; - } - unless ($mapurl eq 'default') { - $path = 'default&'. - &Apache::lonhtmlcommon::entity_encode('Main Course Documents'). - '::::&'.$path; - } - if ($type eq 'sequence') { - $env{'form.folderpath'}=$path; - $env{'form.pagepath'}=''; - } else { - $env{'form.pagepath'}=$path; - $env{'form.folderpath'}=''; - } + $env{'form.folderpath'}= + &Apache::loncommon::symb_to_docspath($env{'form.symb'}); + &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => + $env{'form.command'}.'_'.$env{'form.symb'}}); } elsif ($env{'form.supppath'} ne '') { $env{'form.folderpath'}=$env{'form.supppath'}; + &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => + $env{'form.command'}.'_'.$env{'form.supppath'}}); } } elsif ($env{'form.command'} eq 'editdocs') { - $env{'form.folderpath'} = 'default&'. - &Apache::lonhtmlcommon::entity_encode('Main Course Content'); - $env{'form.pagepath'}=''; + $env{'form.folderpath'} = 'default&'. + &Apache::lonhtmlcommon::entity_encode('Main Course Content'). + ':::::'; + &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => $env{'form.command'}}); } elsif ($env{'form.command'} eq 'editsupp') { - $env{'form.folderpath'} = 'default&'. + $env{'form.folderpath'} = 'supplemental&'. &Apache::lonhtmlcommon::entity_encode('Supplemental Content'); - $env{'form.pagepath'}=''; + &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => '/adm/supplemental'}); + } elsif ($env{'form.command'} eq 'contents') { + &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => '/adm/navmaps'}); + } elsif ($env{'form.command'} eq 'home') { + &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => '/adm/menu'}); } + # Where do we store these for when we come back? my $stored_folderpath='docs_folderpath'; if ($supplementalflag) { $stored_folderpath='docs_sup_folderpath'; } -# No folderpath, no pagepath, and in edit mode, see if we have something stored - if ((!$env{'form.folderpath'}) && (!$env{'form.pagepath'}) && $allowed) { +# No folderpath, and in edit mode, see if we have something stored + if ((!$env{'form.folderpath'}) && $allowed) { &Apache::loncommon::restore_course_settings($stored_folderpath, {'folderpath' => 'scalar'}); + unless (&unescape($env{'form.folderpath'}) =~ m{^(default|supplemental)&}) { + undef($env{'form.folderpath'}); + } } # If we are not allowed to make changes, all we can see are supplemental docs if (!$allowed) { - $env{'form.pagepath'}=''; unless ($env{'form.folderpath'} =~ /^supplemental/) { $env{'form.folderpath'} = &supplemental_base(); } } -# If we still not have a folderpath, see if we can resurrect at pagepath - if (!$env{'form.folderpath'} && $allowed) { - &Apache::loncommon::restore_course_settings($stored_folderpath, - {'pagepath' => 'scalar'}); - } # Make the zeroth entry in supplemental docs page paths, so we can get to top level if ($env{'form.folderpath'} =~ /^supplemental_\d+/) { $env{'form.folderpath'} = &supplemental_base() @@ -3363,11 +3270,12 @@ sub handler { $env{'form.folderpath'}; } # If after all of this, we still don't have any paths, make them - unless (($env{'form.pagepath'}) || ($env{'form.folderpath'})) { + unless ($env{'form.folderpath'}) { if ($supplementalflag) { $env{'form.folderpath'}=&supplemental_base(); } else { - $env{'form.folderpath'}='default'; + $env{'form.folderpath'}='default'.&escape(&mt('Main '.$crstype.' Documents')). + ':::::'; } } @@ -3375,38 +3283,29 @@ sub handler { unless ($toolsflag) { if ($allowed) { &Apache::loncommon::store_course_settings($stored_folderpath, - {'pagepath' => 'scalar', - 'folderpath' => 'scalar'}); + {'folderpath' => 'scalar'}); } + my $folderpath; if ($env{'form.folderpath'}) { - my (@folderpath)=split('&',$env{'form.folderpath'}); - $env{'form.foldername'}=&unescape(pop(@folderpath)); - $env{'form.folder'}=pop(@folderpath); - $container='sequence'; - } - if ($env{'form.pagepath'}) { - my (@pagepath)=split('&',$env{'form.pagepath'}); - $env{'form.pagename'}=&unescape(pop(@pagepath)); - $env{'form.folder'}=pop(@pagepath); - $container='page'; - $containertag = ''. - ''; - $pathitem = - ''. - ''. - ''; + $folderpath = $env{'form.folderpath'}; + my (@folders)=split('&',$env{'form.folderpath'}); + $env{'form.foldername'}=&unescape(pop(@folders)); + if ($env{'form.foldername'} =~ /\:1$/) { + $container = 'page'; + } else { + $container = 'sequence'; + } + $env{'form.folder'}=pop(@folders); } else { - my $folderpath=$env{'form.folderpath'}; - if (!$folderpath) { - if ($env{'form.folder'} eq '' || - $env{'form.folder'} eq 'supplemental') { - $folderpath='default&'. - &escape(&mt('Main '.$crstype.' Documents')); - } + if ($env{'form.folder'} eq '' || + $env{'form.folder'} eq 'supplemental') { + $folderpath='default&'. + &escape(&mt('Main '.$crstype.' Documents')). + ':::::'; } - $containertag = ''; - $pathitem = ''; } + $containertag = ''; + $pathitem = ''; if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) { $showdoc='/'.$1; } @@ -3444,7 +3343,7 @@ sub handler { @tabids = ('002','ee2','ff2'); } else { @tabids = ('aa1','bb1','cc1','ff1'); - unless ($env{'form.pagepath'}) { + unless ($env{'form.folderpath'} =~ /\:1$/) { unshift(@tabids,'001'); push(@tabids,('dd1','ee1')); } @@ -3596,10 +3495,6 @@ sub handler { 'prev' => 'Preview', 'lnk' => 'Add Link', 'parse' => 'Upload embedded images/multimedia files if HTML file', - 'nd' => 'Upload Document', - 'pm' => 'Published Map', - 'sd' => 'Special Document', - 'mo' => 'More Options', ); # ----------------------------------------------------------------------------- my $fileupload=(< $lt{'imsf'} $help{'Importing_IMS_Course'}
-
'.&mt('Resources').'$lt{'mr'}$lt{'ve'}$lt{'vu'}'.&mt('History').''.&mt('Resources').'$lt{'mr'}$lt{'ve'}$lt{'vu'}'.&mt('History').''.&Apache::lonnet::gettitle($linkurl).'
'. + '
'.&Apache::lonnet::gettitle($linkurl).'
'. ''.$linkurl.'
'.$currentversion.'
('. + '
'.$currentversion.'
('. &Apache::lonlocal::locallocaltime(&Apache::lonnet::metadata($root.'.'.$extension,'lastrevisiondate')).')
'); -# Used in course - my $usedversion=$hash{'version_'.$linkurl}; - if (($usedversion) && ($usedversion ne 'mostrecent')) { - if($usedversion != $currentversion){ + '' + ); + # Used in course + my $usedversion=$hash{'version_'.$linkurl}; + if (($usedversion) && ($usedversion ne 'mostrecent')) { + if ($usedversion != $currentversion) { $r->print(''.$usedversion.''); - }else{ + } else { $r->print($usedversion); } - } else { - $r->print($currentversion); - } - $r->print(''); -# Set version - $r->print(&Apache::loncommon::select_form($setversions{$linkurl}, - 'set_version_'.$linkurl, - {'select_form_order' => - ['',1..$currentversion,'mostrecent'], - '' => '', - 'mostrecent' => &mt('most recent'), - map {$_,$_} (1..$currentversion)})); - my $lastold=1; - for (my $prevvers=1;$prevvers<$currentversion;$prevvers++) { - my $url=$root.'.'.$prevvers.'.'.$extension; - if (&Apache::lonnet::metadata($url,'lastrevisiondate')< - $starttime) { - $lastold=$prevvers; - } - } - # - # Code to figure out how many version entries should go in - # each of the four columns - my $entries_per_col = 0; - my $num_entries = ($currentversion-$lastold); - if ($num_entries % $num_ver_col == 0) { - $entries_per_col = $num_entries/$num_ver_col; } else { - $entries_per_col = $num_entries/$num_ver_col + 1; + $r->print($currentversion); } - my $entries_count = 0; - $r->print(''); - my $cols_output = 1; - for (my $prevvers=$lastold;$prevvers<$currentversion;$prevvers++) { - my $url=$root.'.'.$prevvers.'.'.$extension; - $r->print(''.&mt('Version').' '.$prevvers.' ('. - &Apache::lonlocal::locallocaltime( - &Apache::lonnet::metadata($url, - 'lastrevisiondate') - ). - ')'); - if (&Apache::loncommon::fileembstyle($extension) eq 'ssi') { - $r->print(' '.&mt('Diffs').''); - } - $r->print('
'); - if (++$entries_count % $entries_per_col == 0) { - $r->print('
'); - $cols_output++; - } - } - } - while($cols_output++ < $num_ver_col) { - $r->print(''); + $r->print(''); + # Set version + $r->print(&Apache::loncommon::select_form( + $setversions{$linkurl}, + 'set_version_'.$linkurl, + {'select_form_order' => ['',1..$currentversion,'mostrecent'], + '' => '', + 'mostrecent' => &mt('most recent'), + map {$_,$_} (1..$currentversion)})); + my $lastold=1; + for (my $prevvers=1;$prevvers<$currentversion;$prevvers++) { + my $url=$root.'.'.$prevvers.'.'.$extension; + if (&Apache::lonnet::metadata($url,'lastrevisiondate')<$starttime) { + $lastold=$prevvers; + } + } + $r->print(''); + for (my $prevvers=$lastold;$prevvers<$currentversion;$prevvers++) { + my $url=$root.'.'.$prevvers.'.'.$extension; + $r->print( + '' + .'' + .&mt('Version [_1]',$prevvers).'' + .' ('.&Apache::lonlocal::locallocaltime( + &Apache::lonnet::metadata($url,'lastrevisiondate')) + .')'); + if (&Apache::loncommon::fileembstyle($extension) eq 'ssi') { + $r->print( + ' &'). + '" target="diffs">'.&mt('Diffs').''); } - } + $r->print('
'); + } + $r->print('