--- loncom/interface/londocs.pm 2010/12/25 04:40:15 1.434.2.3 +++ loncom/interface/londocs.pm 2010/12/07 21:34:04 1.444 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.434.2.3 2010/12/25 04:40:15 raeburn Exp $ +# $Id: londocs.pm,v 1.444 2010/12/07 21:34:04 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1721,7 +1721,7 @@ sub process_file_upload { $destination .= $newidx; my $url=&Apache::lonnet::userfileupload('uploaddoc','coursedoc',$destination, $parseaction,$allfiles, - $codebase,undef,undef,undef,undef, + $codebase,undef,undef,undef,undef, undef,undef,\$mimetype); if ($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E.*/([^/]+)$}) { my $stored = $1; @@ -1729,7 +1729,7 @@ sub process_file_upload { $stored.'').'

'; } else { my ($filename) = ($env{'form.uploaddoc.filename'} =~ m{([^/]+)$}); - + $$upload_output = '

'.&mt('Unable to save file [_1].',''.$filename.'').'

'; return; } @@ -1758,14 +1758,14 @@ sub process_file_upload { if ($total_embedded > 0) { my $uploadphase = 'upload_embedded'; my $primaryurl = &HTML::Entities::encode($url,'<>&"'); - my $state = &embedded_form_elems($uploadphase,$primaryurl,$newidx); - my ($embedded,$num) = + my $state = &embedded_form_elems($uploadphase,$primaryurl,$newidx); + my ($embedded,$num) = &Apache::loncommon::ask_for_embedded_content( '/adm/coursedocs',$state,$allfiles,$codebase,{'docs_url' => $url}); if ($embedded) { if ($num) { $$upload_output .= - '

'.&mt('This file contains embedded multimedia objects, which need to be uploaded.').'

'.$embedded; + '

'.&mt('This file contains embedded multimedia objects, which need to be uploaded.').'

'.$embedded; $nextphase = $uploadphase; } else { $$upload_output .= $embedded; @@ -2238,6 +2238,7 @@ sub list_symbs { my $crstype = &Apache::loncommon::course_type(); $r->print(&Apache::loncommon::start_page('Symb List')); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Symb List')); + &startContentScreen($r,'tools'); my $navmap = Apache::lonnavmaps::navmap->new(); if (!defined($navmap)) { $r->print('

'.&mt('Retrieval of List Failed').'

'. @@ -2252,7 +2253,6 @@ sub list_symbs { } $r->print("\n\n"); } - $r->print('
'.&mt('Back to Course Editor').''); } @@ -2261,6 +2261,7 @@ sub verifycontent { my $crstype = &Apache::loncommon::course_type(); $r->print(&Apache::loncommon::start_page('Verify '.$crstype.' Documents')); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Verify '.$crstype.' Documents')); + &startContentScreen($r,'tools'); $hashtied=0; undef %alreadyseen; %alreadyseen=(); @@ -2279,13 +2280,7 @@ sub verifycontent { } } &untiehash(); - $r->print( - '

'.&mt('Done').'

' - .'
' - .'

' - .&mt('Back to Course Editor') - .'

' - ); + $r->print('

'.&mt('Done').'

'); } @@ -2300,6 +2295,8 @@ sub checkversions { my $crstype = &Apache::loncommon::course_type(); $r->print(&Apache::loncommon::start_page("Check $crstype Document Versions")); $r->print(&Apache::lonhtmlcommon::breadcrumbs("Check $crstype Document Versions")); + &startContentScreen($r,'tools'); + my $header=''; my $startsel=''; my $monthsel=''; @@ -2610,8 +2607,61 @@ sub init_breadcrumbs { bug=>'Instructor Interface'}); } +# subroutine to list form elements +sub create_list_elements { + my @formarr = @_; + my $list = ''; + for my $button (@formarr){ + for my $picture(keys %$button) { + $list .= &Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'}); + } + } + return $list; +} + +# subroutine to create ul from list elements +sub create_form_ul { + my $list = shift; + my $ul = &Apache::lonhtmlcommon::htmltag('ul',$list, {class => 'LC_ListStyleNormal'}); + return $ul; +} + +# +# Start tabs +# + +sub startContentScreen { + my ($r,$mode)=@_; + $r->print(''); + $r->print('
' + .'
'); + $r->print('
'); +} +# +# End tabs +# + +sub endContentScreen { + my ($r)=@_; + $r->print('
'); +} sub handler { my $r = shift; @@ -2620,7 +2670,7 @@ sub handler { return OK if $r->header_only; my $crstype = &Apache::loncommon::course_type(); - +# # --------------------------------------------- Initialize help topics for this foreach my $topic ('Adding_Course_Doc','Main_Course_Documents', 'Adding_External_Resource','Navigate_Content', @@ -2678,7 +2728,7 @@ sub handler { &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['folderpath','pagepath', - 'pagesymb']); + 'pagesymb','forcesupplement','forcestandard']); # No folderpath, no pagepath, see if we have something stored if ((!$env{'form.folderpath'}) && (!$env{'form.pagepath'})) { &Apache::loncommon::restore_course_settings('docs_folderpath', @@ -2749,26 +2799,6 @@ sub handler { } } -# subroutine to list form elements -sub create_list_elements { - my @formarr = @_; - my $list = ''; - for my $button (@formarr){ - for my $picture(keys %$button) { - #my $link = Apache::lonhtmlcommon::htmltag('a' ,$button->{$picture}, {href => "test"}); - $list .= Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'}); - } - } - return $list; -} - -# subroutine to create ul from list elements -sub create_form_ul { - my $list = shift; - my $ul = Apache::lonhtmlcommon::htmltag('ul',$list, {class => 'LC_ListStyleNormal'}); - return $ul; -} - # get course data my $coursenum=$env{'course.'.$env{'request.course.id'}.'.num'}; my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'}; @@ -2825,9 +2855,9 @@ sub create_form_ul { if ($allowed) { if (($env{'form.uploaddoc.filename'}) && ($env{'form.cmd'}=~/^upload_(\w+)/)) { - my $context = $1; + my $context = $1; # Process file upload - phase one - upload and parse primary file. - undef($hadchanges); + undef($hadchanges); $uploadphase = &process_file_upload(\$upload_output,$coursenum,$coursedom, \%allfiles,\%codebase,$context); if ($hadchanges) { @@ -2835,9 +2865,9 @@ sub create_form_ul { } $r->print($upload_output); } elsif ($env{'form.phase'} eq 'upload_embedded') { - # Process file upload - phase two - upload embedded objects + # Process file upload - phase two - upload embedded objects $uploadphase = 'check_embedded'; - my $primaryurl = &HTML::Entities::encode($env{'form.primaryurl'},'<>&"'); + my $primaryurl = &HTML::Entities::encode($env{'form.primaryurl'},'<>&"'); my $state = &embedded_form_elems($uploadphase,$primaryurl, $env{'form.newidx'}); my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'}; @@ -2845,7 +2875,7 @@ sub create_form_ul { my ($destination,$dir_root) = &embedded_destination(); my $url_root = '/uploaded/'.$docudom.'/'.$docuname; my $actionurl = '/adm/coursedocs'; - my ($result,$flag) = + my ($result,$flag) = &Apache::loncommon::upload_embedded('coursedoc',$destination, $docuname,$docudom,$dir_root,$url_root,undef,undef,undef,$state, $actionurl); @@ -2863,7 +2893,7 @@ sub create_form_ul { } } - unless ($showdoc || $uploadphase) { + unless ($showdoc || $uploadphase) { # ----------------------------------------------------------------------------- my %lt=&Apache::lonlocal::texthash( 'uplm' => 'Upload a new main '.lc($crstype).' document', @@ -2873,7 +2903,7 @@ sub create_form_ul { 'upld' => 'Import Document', 'srch' => 'Search', 'impo' => 'Import', - 'book' => 'Import Bookmarks', + 'wish' => 'Import from Wishlist', 'selm' => 'Select Map', 'load' => 'Load Map', 'reco' => 'Recover Deleted Documents', @@ -2934,10 +2964,7 @@ CHBO 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'})); - $fileuploadform .= (< -FUFORM + $fileuploadform .= &create_form_ul(&Apache::lonhtmlcommon::htmltag('li',$fileuploada,{class => 'LC_menubuttons_inline_text'})).''; my $simpleeditdefaultform=(< @@ -2946,9 +2973,9 @@ SEDFFORM my @simpleeditdefaultforma = ( { ''.$lt{srch}.'' => "$uploadtag$lt{'srch'}" }, { ''.$lt{impo}.'' => "$lt{'impo'}$help{'Importing_LON-CAPA_Resource'}" }, - { ''.$lt{book}.'' => "$lt{'book'}" }, + { ''.$lt{wish}.'' => "$lt{'wish'}" }, ); - $simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma)); + $simpleeditdefaultform .= &create_form_ul(&create_list_elements(@simpleeditdefaultforma)); $simpleeditdefaultform .=(<

@@ -2962,14 +2989,15 @@ SEDFFORM SEDFFORM - my $extresourcesform=(< - $uploadtag - - $lt{'extr'}$help{'Adding_External_Resource'} - + my $extresourcesform=(< + $uploadtag + + $lt{'extr'}$help{'Adding_External_Resource'} + ERFORM + if ($allowed) { &update_paste_buffer($coursenum,$coursedom); my %lt=&Apache::lonlocal::texthash( @@ -2993,57 +3021,34 @@ ERFORM HIDDENFORM } -# --------------------------------------------------------- Main tab structure - - my $activeClass = 1; - my $active = ''; - my %tabtitles = ( - main => { - Course => &mt('Main Course Documents'), - Community => &mt('Main Community Documents'), - }, - supplemental => { - Course => &mt('Supplemental Course Documents'), - Community => &mt('Supplemental Community Documents'), - }, - ); + +# +# 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 (($standard) && (($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; } + +# Generate the tabs + &startContentScreen($r,($supplementalflag?'supdocs':'docs')); + + +# + + my $savefolderpath; + if ($allowed) { - $r->print('

'); - } else { - $r->print('
'); - } - $r->print('
' - .'
'); -# --------------------------------------------------------- Standard documents - my $savefolderpath; - $active = 'style="display: none;"'; - if($activeClass == 0){ - $active = 'style="display: block;"'; - } - if ($allowed) { - $r->print('
'); my $folder=$env{'form.folder'}; - if ($folder eq '' || $folder=~/^supplemental/) { + if ($folder eq '' || $supplementalflag) { $folder='default'; $savefolderpath = $env{'form.folderpath'}; - $env{'form.folderpath'}='default&'.&escape($tabtitles{'main'}{$crstype}); + $env{'form.folderpath'}='default&'.&escape(&mt('Content')); $uploadtag = ''; } @@ -3072,7 +3077,7 @@ HIDDENFORM my $recoverform=(< - $lt{'reco'} + $lt{'reco'} RFORM @@ -3234,7 +3239,7 @@ NGFFORM my @importdoc = ( {''.$lt{extr}.''=>$extresourcesform}, {''.$lt{imsf}.''=>$imspform},); - $fileuploadform = create_form_ul(create_list_elements(@importdoc)) . '
' . $fileuploadform; + $fileuploadform = &create_form_ul(&create_list_elements(@importdoc)) . '
' . $fileuploadform; push @specialdocumentsforma, ({''.$lt{navc}.''=>$newnavform}, {''.$lt{sipa}.''=>$newsmppageform}, @@ -3246,7 +3251,7 @@ NGFFORM {''.$lt{abou}.''=>$newaboutsomeoneform}, {''.$lt{rost}.''=>$newrosterform},); - $specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma)); + $specialdocumentsform = &create_form_ul(&create_list_elements(@specialdocumentsforma)); } if($env{'form.pagepath'}) { @@ -3255,48 +3260,45 @@ if($env{'form.pagepath'}) { {''.&mt('Simple Problem').''=>$newsmpproblemform}, {''.&mt('Score Upload Form').''=>$newexuploadform} ); - $specialdocumentsform= create_form_ul(create_list_elements(@specialdocumentsforma)); + $specialdocumentsform= &create_form_ul(&create_list_elements(@specialdocumentsforma)); } my @tools = ( # {''.$lt{extr}.''=>$extresourcesform}, # {''.$lt{imsf}.''=>$imspform}, - {''.$lt{reco}.''=>$recoverform}, + {''.$lt{reco}.''=>$recoverform}, ); 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)], + 'dd' => ['Tools', &create_form_ul(&create_list_elements(@tools)).&generate_admin_options(\%help,\%env)], ); unless($env{'form.pagepath'}) { $orderhash{'00'} = ['Newfolder',$newfolderform]; } -my $tid='1'; $hadchanges=0; - my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype); - if ($error) { - $r->print('

'.$error.'

'); - } - if ($hadchanges) { - &mark_hash_old(); - } + unless ($supplementalflag) { + my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype); + if ($error) { + $r->print('

'.$error.'

'); + } + if ($hadchanges) { + &mark_hash_old(); + } - &changewarning($r,''); -$r->print(&generate_edit_table($tid,\%orderhash)); + &changewarning($r,''); + $r->print(&generate_edit_table('1',\%orderhash)); + } -$r->print('
'); } -# ----------------------------------------------------- Supplemental documents - $active = 'style="display: none;"'; - if($activeClass == 1){ - $active = 'style="display: block;"'; - } - $r->print('
'); + +# Supplemental documents start here + my $folder=$env{'form.folder'}; - unless ($folder=~/^supplemental/) { + unless ($supplementalflag) { $folder='supplemental'; } if ($folder =~ /^supplemental$/ && @@ -3331,7 +3333,7 @@ $r->print('
'); SUPDOCFORM - $supupdocform .= create_form_ul(Apache::lonhtmlcommon::htmltag('li',$supupdocformbtn,{class => 'LC_menubuttons_inline_text'})).""; + $supupdocform .= &create_form_ul(&Apache::lonhtmlcommon::htmltag('li',$supupdocformbtn,{class => 'LC_menubuttons_inline_text'})).""; my $supnewfolderform=(< @@ -3386,30 +3388,27 @@ my @supimportdoc = ( {''.$lt{extr}.'' =>$supnewextform}, ); -$supupdocform = create_form_ul(create_list_elements(@supimportdoc)) . '
' . $supupdocform; +$supupdocform = &create_form_ul(&create_list_elements(@supimportdoc)) . '
' . $supupdocform; my %suporderhash = ( '00' => ['Supnewfolder', $supnewfolderform], 'ee' => ['Import Documents',$supupdocform], - 'ff' => ['Special Documents',create_form_ul(create_list_elements(@specialdocs))] + 'ff' => ['Special Documents',&create_form_ul(&create_list_elements(@specialdocs))] ); - - my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype); - if ($error) { - $r->print('

'.$error.'

'); + if ($supplementalflag) { + my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype); + if ($error) { + $r->print('

'.$error.'

'); + } + $r->print(&generate_edit_table('2',\%suporderhash)); } - my $tid='2'; - $r->print(&generate_edit_table($tid,\%suporderhash)); - } else { + } elsif ($supplementalflag) { my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype); if ($error) { $r->print('

'.$error.'

'); } } - -$r->print('
'); -$r->print('
'); - + &endContentScreen($r); if ($allowed) { $r->print(' @@ -3464,7 +3463,7 @@ sub embedded_destination { sub return_to_editor { my $actionurl = '/adm/coursedocs'; - return '

'."\n". + return '

'."\n". '

'."\n". ''.&mt('Return to Editor'). '

'; @@ -3500,7 +3499,7 @@ sub generate_admin_options { {''.$lt{sl}.'' =>"$lt{'sl'}"}, ); - return '
'.create_form_ul(create_list_elements(@list)).'
'; + return '
'.&create_form_ul(&create_list_elements(@list)).'
'; }