--- loncom/interface/londocs.pm 2010/12/07 21:34:04 1.444 +++ loncom/interface/londocs.pm 2011/01/21 01:30:07 1.451 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.444 2010/12/07 21:34:04 www Exp $ +# $Id: londocs.pm,v 1.451 2011/01/21 01:30:07 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1521,12 +1521,11 @@ sub editor { $LONCAPA::map::resources[$idx]=''; } - my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order); - if ($allowed) { - ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order) = + my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order) = &breadcrumbs($allowed,$crstype); $r->print($breadcrumbtrail); - } else { + + unless ($allowed) { $randompick = -1; } @@ -1653,7 +1652,8 @@ sub editor { &Apache::loncommon::end_data_table_count(); if ($shown) { - $r->print(&Apache::loncommon::start_data_table()); + $r->print(&Apache::loncommon::start_scrollbox('900px','880px','400px') + .&Apache::loncommon::start_data_table()); if ($allowed) { $r->print(&Apache::loncommon::start_data_table_header_row() .''.&mt('Move').'' @@ -1666,6 +1666,7 @@ sub editor { } $r->print($output .&Apache::loncommon::end_data_table() + .&Apache::loncommon::end_scrollbox() ); } else { $r->print('

' @@ -2646,6 +2647,8 @@ sub startContentScreen { $r->print('

  •       '.&mt('Content Editor').'      
  • '); } + $r->print('     '.&mt('Content Search').'     '); + $r->print('      '.&mt('Content Index').'      '); $r->print('
  • '.&mt('Supplemental Documents').'
  • '); $r->print(''); @@ -2663,6 +2666,10 @@ sub endContentScreen { $r->print(''); } +sub supplemental_base { + return 'supplemental&'.&escape(&mt('Supplemental '.&Apache::loncommon::course_type().' Documents')); +} + sub handler { my $r = shift; &Apache::loncommon::content_type($r,'text/html'); @@ -2715,45 +2722,83 @@ sub handler { &init_breadcrumbs('exportcourse','IMS Export'); &exportcourse($r); } else { -# is this a standard course? +# +# Done catching special calls +# The whole rest is for course and supplemental documents +# Get the parameters that may be needed +# + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['folderpath','pagepath', + 'pagesymb','forcesupplement','forcestandard']); + +# standard=1: this is a "new-style" course with an uploaded map as top level +# standard=2: this is a "old-style" course, and there is nothing we can do my $standard=($env{'request.course.uri'}=~/^\/uploaded\//); - my $forcestandard = 0; - my $forcesupplement; + +# Decide whether this should display supplemental or main content +# supplementalflag=1: show supplemental documents +# supplementalflag=0: show standard documents + + + my $supplementalflag=($env{'form.folderpath'}=~/^supplemental/); + if (($env{'form.folderpath'}=~/^default/) || $env{'form.folderpath'} eq "" || ($env{'form.pagepath'})) { + $supplementalflag=0; + } + if ($env{'form.forcesupplement'}) { $supplementalflag=1; } + if ($env{'form.forcestandard'}) { $supplementalflag=0; } + unless ($allowed) { $supplementalflag=1; } + unless ($standard) { $supplementalflag=1; } + my $script=''; my $showdoc=0; my $containertag; my $uploadtag; - - &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['folderpath','pagepath', - 'pagesymb','forcesupplement','forcestandard']); +# 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, see if we have something stored if ((!$env{'form.folderpath'}) && (!$env{'form.pagepath'})) { - &Apache::loncommon::restore_course_settings('docs_folderpath', + &Apache::loncommon::restore_course_settings($stored_folderpath, {'folderpath' => 'scalar'}); } + +# If we are not allowed to make changes, all we can see are supplemental docs if (!$allowed) { - unless($env{'form.folderpath'} =~ /^supplemental/) { - $env{'form.folderpath'} = ''; + $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('docs_folderpath', + &Apache::loncommon::restore_course_settings($stored_folderpath, {'pagepath' => 'scalar'}); } - if ($env{'form.pagepath'}) { - $env{'form.folderpath'}=''; - } +# 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&'. - &escape(&mt('Supplemental '.$crstype.' Documents')).'&'. + $env{'form.folderpath'} = &supplemental_base() + .'&'. $env{'form.folderpath'}; } - &Apache::loncommon::store_course_settings('docs_folderpath', +# If after all of this, we still don't have any paths, make them + unless (($env{'form.pagepath'}) || ($env{'form.folderpath'})) { + if ($supplementalflag) { + $env{'form.folderpath'}=&supplemental_base(); + } else { + $env{'form.folderpath'}='default'; + } + } + +# Store this + &Apache::loncommon::store_course_settings($stored_folderpath, {'pagepath' => 'scalar', 'folderpath' => 'scalar'}); + if ($env{'form.folderpath'}) { my (@folderpath)=split('&',$env{'form.folderpath'}); $env{'form.foldername'}=&unescape(pop(@folderpath)); @@ -2787,12 +2832,6 @@ sub handler { if ($showdoc) { # got called in sequence from course $allowed=0; } else { - if (($env{'form.folder'}=~/^(?:group|default)_/) || - ($env{'form.folder'} =~ m:^\d+/(pages|sequences)/:)) { - $forcestandard = 1; - } - $forcesupplement=($env{'form.folder'}=~/^supplemental_/); - if ($allowed) { &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']); $script=&Apache::lonratedt::editscript('simple'); @@ -2824,29 +2863,20 @@ sub handler { # Breadcrumbs &Apache::lonhtmlcommon::clear_breadcrumbs(); - if ($allowed) { + unless ($showdoc) { &Apache::lonhtmlcommon::add_breadcrumb({ - href=>"/adm/coursedocs",text=>"$crstype Editor"}); + href=>"/adm/coursedocs",text=>"$crstype Contents"}); - $r->print(&Apache::loncommon::start_page("$crstype Editor", $script, + $r->print(&Apache::loncommon::start_page("$crstype Contents", $script, {'force_register' => $showdoc,}) .&Apache::loncommon::help_open_menu('','',273,'RAT') .&Apache::lonhtmlcommon::breadcrumbs( 'Editing the Table of Contents for your '.$crstype, 'Docs_Adding_Course_Doc') ); - } elsif ($showdoc) { + } else { $r->print(&Apache::loncommon::start_page("$crstype documents",undef, {'force_register' => $showdoc,})); - } else { - my $folder=$env{'form.folder'}; - if ($folder eq '' || $folder eq 'supplemental') { - $env{'form.folderpath'} = 'supplemental&'. - &escape(&mt('Supplemental '.$crstype.' Documents')); - } - my ($breadcrumbtrail) = &breadcrumbs($allowed,$crstype); - $r->print(&Apache::loncommon::start_page("Supplemental documents"). - $breadcrumbtrail); } my %allfiles = (); @@ -2915,7 +2945,7 @@ sub handler { 'sipa' => 'Simple Course Page', 'sipr' => 'Simple Problem', 'drbx' => 'Drop Box', - 'scuf' => 'Score Upload Form', + 'scuf' => 'External Scores (handgrade, upload, clicker)', 'bull' => 'Discussion Board', 'mypi' => 'My Personal Information Page', 'grpo' => 'Group Portfolio', @@ -2962,8 +2992,6 @@ CHBO $checkbox FUFORM - #$list .= Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'}); - #$fileuploadform .= create_form_ul(create_list_elements(@fileuploada)); $fileuploadform .= &create_form_ul(&Apache::lonhtmlcommon::htmltag('li',$fileuploada,{class => 'LC_menubuttons_inline_text'})).''; my $simpleeditdefaultform=(<&"'); + my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); my $newpageform=(< @@ -3233,35 +3251,35 @@ NGFFORM @specialdocumentsforma=( {''.$lt{newp}.''=>$newpageform}, {''.$lt{syll}.''=>$newsylform}, - {''.$lt{grpo}.''=>$newgroupfileform}, - ); + {''.$lt{navc}.''=>$newnavform}, + {''.$lt{sipa}.''=>$newsmppageform}, + ); + $specialdocumentsform = &create_form_ul(&create_list_elements(@specialdocumentsforma)); + my @importdoc = ( {''.$lt{extr}.''=>$extresourcesform}, {''.$lt{imsf}.''=>$imspform},); $fileuploadform = &create_form_ul(&create_list_elements(@importdoc)) . '
    ' . $fileuploadform; - push @specialdocumentsforma, ({''.$lt{navc}.''=>$newnavform}, - {''.$lt{sipa}.''=>$newsmppageform}, - {''.$lt{sipr}.''=>$newsmpproblemform}, - {''.$lt{drbx}.''=>$newdropboxform}, - {''.$lt{scuf}.''=>$newexuploadform}, - {''.$lt{bull}.''=>$newbulform}, - {''.$lt{mypi}.''=>$newaboutmeform}, - {''.$lt{abou}.''=>$newaboutsomeoneform}, - {''.$lt{rost}.''=>$newrosterform},); + @gradingforma=( + {''.$lt{sipr}.''=>$newsmpproblemform}, + {''.$lt{drbx}.''=>$newdropboxform}, + {''.$lt{scuf}.''=>$newexuploadform}, + + ); + $gradingform = &create_form_ul(&create_list_elements(@gradingforma)); + + @communityforma=( + {''.$lt{bull}.''=>$newbulform}, + {''.$lt{mypi}.''=>$newaboutmeform}, + {''.$lt{abou}.''=>$newaboutsomeoneform}, + {''.$lt{rost}.''=>$newrosterform}, + {''.$lt{grpo}.''=>$newgroupfileform}, + ); + $communityform = &create_form_ul(&create_list_elements(@communityforma)); - $specialdocumentsform = &create_form_ul(&create_list_elements(@specialdocumentsforma)); - } -if($env{'form.pagepath'}) { - - @specialdocumentsforma=( - {''.&mt('Simple Problem').''=>$newsmpproblemform}, - {''.&mt('Score Upload Form').''=>$newexuploadform} - ); - $specialdocumentsform= &create_form_ul(&create_list_elements(@specialdocumentsforma)); -} my @tools = ( # {''.$lt{extr}.''=>$extresourcesform}, @@ -3272,11 +3290,13 @@ my @tools = ( my %orderhash = ( 'aa' => ['Import Documents',$fileuploadform], 'bb' => ['Published Resources',$simpleeditdefaultform], - 'cc' => ['Special Documents',$specialdocumentsform], - 'dd' => ['Tools', &create_form_ul(&create_list_elements(@tools)).&generate_admin_options(\%help,\%env)], + 'cc' => ['Grading Resources',$gradingform], + 'ff' => ['Tools', &create_form_ul(&create_list_elements(@tools)).&generate_admin_options(\%help,\%env)], ); -unless($env{'form.pagepath'}) { +unless ($env{'form.pagepath'}) { $orderhash{'00'} = ['Newfolder',$newfolderform]; + $orderhash{'dd'} = ['Community Resources',$communityform]; + $orderhash{'ee'} = ['Special Documents',$specialdocumentsform]; } $hadchanges=0; @@ -3303,8 +3323,7 @@ unless($env{'form.pagepath'}) { } if ($folder =~ /^supplemental$/ && (($env{'form.folderpath'} =~ /^default\&/) || ($env{'form.folderpath'} eq ''))) { - $env{'form.folderpath'} = 'supplemental&'. - &escape(&mt('Supplemental '.$crstype.' Documents')); + $env{'form.folderpath'} = &supplemental_base(); } elsif ($allowed) { $env{'form.folderpath'} = $savefolderpath; } @@ -3558,7 +3577,7 @@ sub editing_js { t_mnf => 'New Folder', p_mnp => 'Name of New Page', t_mnp => 'New Page', - p_mxu => 'Title for the Uploaded Score', + p_mxu => 'Title for the External Score', p_msp => 'Name of Simple Course Page', p_msb => 'Title for the Problem', p_mdb => 'Title for the Drop Box', @@ -3587,7 +3606,7 @@ sub editing_js { } } my $toplevelmain = 'default&Main%20'.$crstype.'%20Documents'; - my $toplevelsupp = 'supplemental&Supplemental%20'.$crstype.'%20Documents'; + my $toplevelsupp = &supplemental_base(); return <