--- loncom/interface/londocs.pm 2009/09/19 11:01:44 1.386 +++ loncom/interface/londocs.pm 2009/10/26 21:01:36 1.404 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.386 2009/09/19 11:01:44 tempelho Exp $ +# $Id: londocs.pm,v 1.404 2009/10/26 21:01:36 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -998,7 +998,7 @@ sub group_import { } sub breadcrumbs { - my ($where,$allowed,$type)=@_; + my ($allowed,$type)=@_; &Apache::lonhtmlcommon::clear_breadcrumbs(); my (@folders); if ($env{'form.pagepath'}) { @@ -1013,6 +1013,15 @@ sub breadcrumbs { my $isencrypted=0; my $ishidden=0; my $is_random_order=0; + if (!$allowed) { + my $description = $env{'course.'.$env{'request.course.id'}.'.description'}; + &Apache::lonhtmlcommon::add_breadcrumb( + {'href' => '/adm/menu', + 'title'=> 'Go to main menu', + 'text' => $description, + }); + $plain .= $description.' >'; + } while (@folders) { my $folder=shift(@folders); my $foldername=shift(@folders); @@ -1032,11 +1041,7 @@ sub breadcrumbs { if ($3) { $isencrypted=1; } if ($4 ne '') { $is_random_order = 1; } if ($folder eq 'supplemental') { - if ($allowed) { - $name = &mt('Supplemental '.$type.' Documents'); - } else { - $name = &mt($type.' Documents'); - } + $name = &mt('Supplemental '.$type.' Documents'); } &Apache::lonhtmlcommon::add_breadcrumb( {'href'=>$url.$cpinfo, @@ -1493,7 +1498,6 @@ sub handle_edit_cmd { sub editor { my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$type)=@_; - my $container= ($env{'form.pagepath'}) ? 'page' : 'sequence'; @@ -1508,9 +1512,14 @@ sub editor { $LONCAPA::map::resources[$idx]=''; } - my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order)= - &breadcrumbs($folder,$allowed,$type); - $r->print($breadcrumbtrail); + my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order); + if ($allowed) { + ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order) = + &breadcrumbs($allowed,$type); + $r->print($breadcrumbtrail); + } else { + $randompick = -1; + } # ------------------------------------------------------------ Process commands @@ -1632,18 +1641,21 @@ sub editor { $shown++; } if ($shown) { - $r->print(&Apache::loncommon::start_data_table() - .&Apache::loncommon::start_data_table_header_row() - .''.&mt('Move').'' - .''.&mt('Actions').'' - .''.&mt('Document').'' - .''.&mt('Settings').'' - .&Apache::loncommon::end_data_table_header_row() - .$output - .&Apache::loncommon::end_data_table() - ) - } - unless($shown) { + $r->print(&Apache::loncommon::start_data_table()); + if ($allowed) { + $r->print(&Apache::loncommon::start_data_table_header_row() + .''.&mt('Move').'' + .''.&mt('Actions').'' + .''.&mt('Document').''); + if ($folder !~ /^supplemental/) { + $->print(''.&mt('Settings').''); + } + $r->print(&Apache::loncommon::end_data_table_header_row()); + } + $r->print($output + .&Apache::loncommon::end_data_table() + ); + } else { $r->print('

' .&mt('Currently no documents.') .'

' @@ -1793,7 +1805,6 @@ sub parse_supplemental_title { sub entryline { my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_; - my ($foldertitle,$pagetitle,$renametitle); if (&is_supplemental_title($title)) { ($title,$foldertitle,$renametitle) = &parse_supplemental_title($title); @@ -2050,7 +2061,7 @@ END $url.='pagepath='.&escape($pagepath). '&pagesymb='.&escape($symb).$cpinfo; } - if ($external) { + if (($external) && ($allowed)) { my $form = ($folder =~ /^default/)? 'newext' : 'supnewext'; $external = ' '.&mt('Edit').''; } else { @@ -2571,7 +2582,7 @@ sub init_breadcrumbs { my ($form,$text)=@_; &Apache::lonhtmlcommon::clear_breadcrumbs(); &Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/coursedocs", - text=>"Edit ".&Apache::loncommon::course_type(), + text=>&Apache::loncommon::course_type().' '.Editor, faq=>273, bug=>'Instructor Interface', help => 'Docs_Adding_Course_Doc'}); @@ -2687,7 +2698,9 @@ sub handler { if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) { $showdoc='/'.$1; } - unless ($showdoc) { # got called from remote + 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; @@ -2698,8 +2711,6 @@ sub handler { &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']); $script=&Apache::lonratedt::editscript('simple'); } - } else { # got called in sequence from course - $allowed=0; } # subroutine to list form elements @@ -2747,16 +2758,30 @@ sub create_form_ul { # Breadcrumbs &Apache::lonhtmlcommon::clear_breadcrumbs(); - &Apache::lonhtmlcommon::add_breadcrumb({ - href=>"/adm/createuser",text=>"$type Documents"}); + if ($allowed) { + &Apache::lonhtmlcommon::add_breadcrumb({ + href=>"/adm/coursedocs",text=>"$type Editor"}); - $r->print(&Apache::loncommon::start_page("$type Documents", $script, - {'force_register' => $showdoc,}) - .&Apache::loncommon::help_open_menu('','',273,'RAT') - .&Apache::lonhtmlcommon::breadcrumbs( - 'Editing the Table of Contents for your '.$type, - 'Docs_Adding_Course_Doc') - ); + $r->print(&Apache::loncommon::start_page("$type Editor", $script, + {'force_register' => $showdoc,}) + .&Apache::loncommon::help_open_menu('','',273,'RAT') + .&Apache::lonhtmlcommon::breadcrumbs( + 'Editing the Table of Contents for your '.$type, + 'Docs_Adding_Course_Doc') + ); + } elsif ($showdoc) { + $r->print(&Apache::loncommon::start_page("$type documents",undef, + {'force_register' => $showdoc,})); + } else { + my $folder=$env{'form.folder'}; + if ($folder eq '' || $folder eq 'supplemental') { + $env{'form.folderpath'} = 'supplemental&'. + &escape(&mt('Supplemental '.$type.' Documents')); + } + my ($breadcrumbtrail) = &breadcrumbs($allowed,$type); + $r->print(&Apache::loncommon::start_page("Supplemental documents"). + $breadcrumbtrail); + } my %allfiles = (); my %codebase = (); @@ -2878,7 +2903,7 @@ sub create_form_ul { 'file' => 'File', 'title' => 'Title', 'comment' => 'Comment', - 'parse' => 'Upload embedded images/multimedia files if HTML file!', + 'parse' => 'Upload embedded images/multimedia files if HTML file', 'nd' => 'Upload Document', 'pm' => 'Published Map', 'sd' => 'Special Document', @@ -2899,9 +2924,7 @@ FIUP CHBO - my @fileuploada = ( - { pic01 => " $help{'Uploading_From_Harddrive'}" }, - ); + my $fileuploada = " $help{'Uploading_From_Harddrive'}"; my $fileuploadform=(< @@ -2916,7 +2939,9 @@ CHBO $checkbox FUFORM - $fileuploadform .= create_form_ul(create_list_elements(@fileuploada)); + #$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 @@ -2926,9 +2951,9 @@ FUFORM SEDFFORM my @simpleeditdefaultforma = ( - { pic03 => "$uploadtag$lt{'srch'}" }, - { pic04 => "$lt{'impo'}$help{'Importing_LON-CAPA_Resource'}" }, - { pic05 => "$lt{'book'}" }, + { 'pic03' => "$uploadtag$lt{'srch'}" }, + { 'pic04' => "$lt{'impo'}$help{'Importing_LON-CAPA_Resource'}" }, + { 'pic05' => "$lt{'book'}" }, ); $simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma)); $simpleeditdefaultform .=(<print('' - .'
' + $r->print('
' .'
'); # --------------------------------------------------------- Standard documents my $savefolderpath; - my $active = 'style="display: none;"'; + $active = 'style="display: none;"'; if($activeClass == 0){ $active = 'style="display: block;"'; } - if($env{'request.role'}=~/^cc/){ + if ($allowed) { $r->print('
'); my $folder=$env{'form.folder'}; if ($folder eq '' || $folder=~/^supplemental/) { @@ -3159,6 +3186,7 @@ NROSTFORM my $specialdocumentsform; my @specialdocumentsforma; my $newfolderform; +my $newfolderb; unless ($env{'form.pagepath'}) { my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); @@ -3172,7 +3200,8 @@ my $newfolderform; $help{'Adding_Pages'} NPFORM - + + $newfolderform=(< @@ -3181,12 +3210,6 @@ NPFORM $lt{'newf'}$help{'Adding_Folders'} NFFORM - my @newfolderforma= ( - { pic02 => "$newfolderform" } - ); - - - $newfolderform = create_form_ul(create_list_elements(@newfolderforma)); my $newsylform=(< @@ -3211,49 +3234,48 @@ NSYLFORM NGFFORM @specialdocumentsforma=( - {pic06=>$newpageform}, - {pic07=>$newsylform}, - {pic08=>$newgroupfileform}, + {'pic06'=>$newpageform}, + {'pic07'=>$newsylform}, + {'pic08'=>$newgroupfileform}, ); } - push @specialdocumentsforma, ({pic09=>$newnavform}, - {pic10=>$newsmppageform}, - {pic11=>$newsmpproblemform}, - {pic12=>$newdropboxform}, - {pic13=>$newexuploadform}, - {pic14=>$newbulform}, - {pic15=>$newaboutmeform}, - {pic16=>$newaboutsomeoneform}, - {pic17=>$newrosterform},); + push @specialdocumentsforma, ({'pic09'=>$newnavform}, + {'pic10'=>$newsmppageform}, + {'pic11'=>$newsmpproblemform}, + {'pic12'=>$newdropboxform}, + {'pic13'=>$newexuploadform}, + {'pic14'=>$newbulform}, + {'pic15'=>$newaboutmeform}, + {'pic16'=>$newaboutsomeoneform}, + {'pic17'=>$newrosterform},); $specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma)); if($env{'form.pagepath'}) { @specialdocumentsforma=( - {pic32=>$newsmpproblemform}, - {pic33=>$newexuploadform} + {'pic32'=>$newsmpproblemform}, + {'pic33'=>$newexuploadform} ); $specialdocumentsform= create_form_ul(create_list_elements(@specialdocumentsforma)); } my @tools = ( - {pic18=>$extresourcesform}, - {pic19=>$imspform}, - {pic20=>$recoverform}, + {'pic18'=>$extresourcesform}, + {'pic19'=>$imspform}, + {'pic20'=>$recoverform}, ); my %orderhash = ( - 'aa' => ['Upload Document',$fileuploadform.''.$newfolderform], + '00' => ['Newfolder',$newfolderform], + 'aa' => ['Upload Document',$fileuploadform], 'bb' => ['Published Resources',$simpleeditdefaultform], 'cc' => ['Special Documents',$specialdocumentsform], 'dd' => ['Tools', create_form_ul(create_list_elements(@tools)).&generate_admin_options($containertag,$uploadtag,\%help,\%env)], - 'zz' => ['Hide'], ); my $tid='1'; my $varcd = 'Main Course Documents'; -$r->print(&generate_edit_table($tid,$varcd,\%orderhash)); $hadchanges=0; my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type); if ($error) { @@ -3264,12 +3286,14 @@ $r->print(&generate_edit_table($tid,$var } &changewarning($r,''); +$r->print(&generate_edit_table($tid,$varcd,\%orderhash)); + $r->print('
'); } if ($env{'form.pagepath'}) { } # ----------------------------------------------------- Supplemental documents - my $active = 'style="display: none;"'; + $active = 'style="display: none;"'; if($activeClass == 1){ $active = 'style="display: block;"'; } @@ -3282,7 +3306,7 @@ $r->print('
'); (($env{'form.folderpath'} =~ /^default\&/) || ($env{'form.folderpath'} eq ''))) { $env{'form.folderpath'} = 'supplemental&'. &escape(&mt('Supplemental '.$type.' Documents')); - }else{ + } elsif ($allowed) { $env{'form.folderpath'} = $savefolderpath; } $env{'form.pagepath'} = ''; @@ -3293,9 +3317,7 @@ $r->print('
'); my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); - my @supupdocform = ( - {pic27=>"$lt{'upld'}$help{'Uploading_From_Harddrive'}"}, - ); + my $supupdocformbtn = "$help{'Uploading_From_Harddrive'}"; my $supupdocform=(< @@ -3312,7 +3334,7 @@ $r->print('
'); SUPDOCFORM - $supupdocform .= create_form_ul(create_list_elements(@supupdocform)).""; + $supupdocform .= create_form_ul(Apache::lonhtmlcommon::htmltag('li',$supupdocformbtn,{class => 'LC_menubuttons_inline_text'})).""; my $supnewfolderform=(< @@ -3324,9 +3346,6 @@ SUPDOCFORM SNFFORM - my @supnewfolderforma = ({pic28=>$supnewfolderform}); - $supnewfolderform = create_form_ul(create_list_elements(@supnewfolderforma)); - my $supnewextform=(< @@ -3361,26 +3380,31 @@ SNAMFORM my @specialdocs = ( - {pic29=>$supnewextform}, - {pic30=>$supnewsylform}, - {pic31=>$supnewaboutmeform}, + {'pic29'=>$supnewextform}, + {'pic30'=>$supnewsylform}, + {'pic31'=>$supnewaboutmeform}, ); my %suporderhash = ( - 'ee' => ['Upload Document',$supupdocform.' '.$supnewfolderform], - 'ff' => ['Special Documents',create_form_ul(create_list_elements(@specialdocs))], - 'zz' => ['Hide'], + '00' => ['Supnewfolder', $supnewfolderform], + 'ee' => ['Upload Document',$supupdocform], + 'ff' => ['Special Documents',create_form_ul(create_list_elements(@specialdocs))] ); -my $tid='2'; -my $varscd = 'Supplemental Course Documents'; + my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type); + if ($error) { + $r->print('

'.$error.'

'); + } + my $tid='2'; + my $varscd = 'Supplemental Course Documents'; + $r->print(&generate_edit_table($tid,$varscd,\%suporderhash)); + } else { + my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type); + if ($error) { + $r->print('

'.$error.'

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

'.$error.'

'); - } $r->print(''); $r->print(''); @@ -3421,15 +3445,15 @@ sub generate_admin_options { my $dumpbut=&dumpbutton(); my $exportbut=&exportbutton(); my @list = ( - {pic21=>"$lt{'vc'}$help{'Verify_Content'}"}, - {pic22=>"$lt{'cv'}$help{'Check_Resource_Versions'}"}, + {'pic21'=>"$lt{'vc'}$help{'Verify_Content'}"}, + {'pic22'=>"$lt{'cv'}$help{'Check_Resource_Versions'}"}, ); if($dumpbut ne ''){ - push @list, {pic23=>$dumpbut}; + push @list, {'pic23'=>$dumpbut}; } - push @list, ({pic24=>$exportbut}, - {pic25=>"$lt{'ls'}"}, - {pic26=>"$lt{'sl'}"}, + push @list, ({'pic24'=>$exportbut}, + {'pic25'=>"$lt{'ls'}"}, + {'pic26'=>"$lt{'sl'}"}, ); return '
'.create_form_ul(create_list_elements(@list)).'
'; @@ -3448,26 +3472,22 @@ sub generate_edit_table { $form = '
'; $form .= ''; - $form .= '
'; + $form .= '
'; foreach my $field (keys(%orderhash)){ - if($field ne 'zz'){ + if($field ne '00'){ if($activetab eq '' || $activetab ne $field){ $active = 'style="display: none;"'; }elsif($activetab eq $field){ @@ -3715,7 +3735,7 @@ for (i = 0; i < currentDivs.length; i++) function openTabs(pageId) { tabnav = document.getElementById(pageId).getElementsByTagName('UL'); if(tabnav.length > 2 ){ - currentNav = document.getElementById(tabnav[0].id); + currentNav = document.getElementById(tabnav[1].id); currentLis = currentNav.getElementsByTagName('LI'); for(i = 0; i< currentLis.length; i++){ if(currentLis[i].className == 'active') {