--- loncom/interface/londocs.pm 2006/11/20 17:45:11 1.254 +++ loncom/interface/londocs.pm 2007/01/05 18:45:40 1.267 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.254 2006/11/20 17:45:11 albertel Exp $ +# $Id: londocs.pm,v 1.267 2007/01/05 18:45:40 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -42,7 +42,7 @@ use HTML::Entities; use GDBM_File; use Apache::lonlocal; use Cwd; -use LONCAPA; +use LONCAPA qw(:DEFAULT :match); my $iconpath; @@ -99,7 +99,7 @@ sub authorhosts { $ca=$env{'user.name'}; $cd=$env{'user.domain'}; } else { - ($cd,$ca)=($realm=~/^\/(\w+)\/(\w+)$/); + ($cd,$ca)=($realm=~/^\/($match_domain)\/($match_username)$/); } my $allowed=0; my $myhome=&Apache::lonnet::homeserver($ca,$cd); @@ -147,6 +147,7 @@ sub dumpcourse { my $type = &Apache::loncommon::course_type(); $r->print(&Apache::loncommon::start_page('Dump '.$type.' DOCS to Construction Space'). '<form name="dumpdoc" method="post">'); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Dump '.$type.' DOCS to Construction Space')); my ($home,$other,%outhash)=&authorhosts(); unless ($home) { return ''; } my $origcrsid=$env{'request.course.id'}; @@ -315,6 +316,7 @@ sub exportcourse { } } $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package')); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package')); $r->print($outcome); $r->print(&Apache::loncommon::end_page()); } else { @@ -364,7 +366,7 @@ sub exportcourse { if (ref($curRes)) { my $symb = $curRes->symb(); my $ressymb = $symb; - if ($ressymb =~ m|adm/(\w+)/(\w+)/(\d+)/bulletinboard$|) { + if ($ressymb =~ m|adm/($match_domain)/($match_username)/(\d+)/bulletinboard$|) { unless ($ressymb =~ m|adm/wrapper/adm|) { $ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; } @@ -456,6 +458,7 @@ function containerCheck(item) { |; $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package', $scripttag)); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package')); $r->print($display.'</table>'. '<p><input type="hidden" name="finishexport" value="1">'. '<input type="submit" name="exportcourse" value="'. @@ -610,7 +613,7 @@ sub build_package { if (grep/^$count$/,@$discussions) { my $ressymb = $symb; my $mode; - if ($ressymb =~ m|adm/(\w+)/(\w+)/(\d+)/bulletinboard$|) { + if ($ressymb =~ m|adm/($match_domain)/($match_username)/(\d+)/bulletinboard$|) { unless ($ressymb =~ m|adm/wrapper/adm|) { $ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; } @@ -695,7 +698,7 @@ sub process_content { } } elsif ($symb =~ m-lib/templates/examupload\.problem$-) { $content_type = 'examupload'; - } elsif ($symb =~ m-adm/(\w+)/(\w+)/(\d+)/bulletinboard$-) { + } elsif ($symb =~ m-adm/($match_domain)/($match_username)/(\d+)/bulletinboard$-) { $content_type = 'bulletinboard'; my $contents = &Apache::imsexport::templatedpage($content_type,$3,$count,\@uploads,$1,$2); if ($contents) { @@ -910,7 +913,7 @@ sub group_import { while (@_) { my $name = shift; my $url = shift; - if (($url =~ m#^/uploaded/$coursedom/$coursenum/(default_\d+\.)(page|sequence)$#) && ($caller eq 'londocs')) { + if (($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$}) && ($caller eq 'londocs')) { my $errtext = ''; my $fatal = 0; my $newmapstr = '<map>'."\n". @@ -933,7 +936,7 @@ sub group_import { my $idx = &LONCAPA::map::getresidx($url); $LONCAPA::map::order[$#LONCAPA::map::order+1]=$idx; my $ext = 'false'; - if ($url=~/^http:\/\//) { $ext = 'true'; } + if ($url=~m{^http://} || $url=~m{^https://}) { $ext = 'true'; } $url =~ s/:/\:/g; $name =~ s/:/\:/g; $LONCAPA::map::resources[$idx] = @@ -985,7 +988,8 @@ sub breadcrumbs { {'href'=>$url.$cpinfo, 'title'=>$name, 'text'=>'<font size="+1">'. - $name.'</font>' + $name.'</font>', + 'no_mt'=>1, }); $plain.=$name.' > '; } @@ -1025,7 +1029,8 @@ sub log_docs { sub log_differences { my ($plain)=@_; - my %storehash=('folder' => $plain); + my %storehash=('folder' => $plain, + 'currentfolder' => $env{'form.folder'}); if ($parmidx) { $storehash{'parameter_res'}=$oldresources[$parmidx]; foreach my $parm (keys %parmaction) { @@ -1060,9 +1065,9 @@ sub log_docs { # sub docs_change_log { my ($r)=@_; + my $folder=$env{'form.folder'}; $r->print(&Apache::loncommon::start_page('Course Document Change Log')); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Course Document Change Log')); - my %docslog=&Apache::lonnet::dump('nohist_docslog', $env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'}); @@ -1083,12 +1088,8 @@ sub docs_change_log { 'randompick' => 'Randomly pick', 'set' => 'set to', 'del' => 'deleted'); - - my $countselect = - &Apache::lonmeta::selectbox('show',$env{'form.show'},undef, - (&mt('all'),10,20,50,100,1000,10000)); - - $r->print('<nobr>'.&mt('[_1] Records',$countselect).'</nobr>'. + $r->print(&Apache::loncommon::display_filter(). + '<input type="hidden" name="folder" value="'.$folder.'" />'. '<input type="submit" value="'.&mt('Display').'" /></form>'); $r->print(&Apache::loncommon::start_data_table().&Apache::loncommon::start_data_table_header_row(). '<th>'.&mt('Time').'</th><th>'.&mt('User').'</th><th>'.&mt('Folder').'</th><th>'.&mt('Before').'</th><th>'. @@ -1096,7 +1097,18 @@ sub docs_change_log { &Apache::loncommon::end_data_table_header_row()); my $shown=0; foreach my $id (sort { $docslog{$b}{'exe_time'}<=>$docslog{$a}{'exe_time'} } (keys(%docslog))) { + if ($env{'form.displayfilter'} eq 'currentfolder') { + if ($docslog{$id}{'logentry'}{'currentfolder'} ne $folder) { next; } + } my @changes=keys(%{$docslog{$id}{'logentry'}}); + if ($env{'form.displayfilter'} eq 'containing') { + my $wholeentry=$docslog{$id}{'exe_uname'}.':'.$docslog{$id}{'exe_udom'}.':'. + &Apache::loncommon::plainname($docslog{$id}{'exe_uname'},$docslog{$id}{'exe_udom'}); + foreach my $key (@changes) { + $wholeentry.=':'.$docslog{$id}{'logentry'}{$key}; + } + if ($wholeentry!~/\Q$env{'form.containingphrase'}\E/i) { next; } + } my $count = 0; my $time = &Apache::lonlocal::locallocaltime($docslog{$id}{'exe_time'}); @@ -1212,27 +1224,33 @@ sub editor { if ($env{'form.changeparms'}) { my $idx=$env{'form.setparms'}; # set parameters - if ($env{'form.randpick_'.$idx}) { - &LONCAPA::map::storeparameter($idx,'parameter_randompick',$env{'form.randpick_'.$idx},'int_pos'); - &remember_parms($idx,'randompick','set',$env{'form.randpick_'.$idx}); - } else { - &LONCAPA::map::delparameter($idx,'parameter_randompick'); - &remember_parms($idx,'randompick','del'); + if ($env{'form.changeparms'} eq 'randompick') { + if ($env{'form.randpick_'.$idx}) { + &LONCAPA::map::storeparameter($idx,'parameter_randompick',$env{'form.randpick_'.$idx},'int_pos'); + &remember_parms($idx,'randompick','set',$env{'form.randpick_'.$idx}); + } else { + &LONCAPA::map::delparameter($idx,'parameter_randompick'); + &remember_parms($idx,'randompick','del'); + } + } + if ($env{'form.changeparms'} eq 'hiddenresource') { + if ($env{'form.hidprs_'.$idx}) { + &LONCAPA::map::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno'); + &remember_parms($idx,'hiddenresource','set',$env{'form.hidprs_'.$idx}); + } else { + &LONCAPA::map::delparameter($idx,'parameter_hiddenresource'); + &remember_parms($idx,'hiddenresource','del'); + } + } + if ($env{'form.changeparms'} eq 'encrypturl') { + if ($env{'form.encprs_'.$idx}) { + &LONCAPA::map::storeparameter($idx,'parameter_encrypturl','yes','string_yesno'); + &remember_parms($idx,'encrypturl','set',$env{'form.encprs_'.$idx}); + } else { + &LONCAPA::map::delparameter($idx,'parameter_encrypturl'); + &remember_parms($idx,'encrypturl','del'); + } } - if ($env{'form.hidprs_'.$idx}) { - &LONCAPA::map::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno'); - &remember_parms($idx,'hiddenresource','set',$env{'form.hidprs_'.$idx}); - } else { - &LONCAPA::map::delparameter($idx,'parameter_hiddenresource'); - &remember_parms($idx,'hiddenresource','del'); - } - if ($env{'form.encprs_'.$idx}) { - &LONCAPA::map::storeparameter($idx,'parameter_encrypturl','yes','string_yesno'); - &remember_parms($idx,'encrypturl','set',$env{'form.encprs_'.$idx}); - } else { - &LONCAPA::map::delparameter($idx,'parameter_encrypturl'); - &remember_parms($idx,'encrypturl','del'); - } # store the changed version ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); if ($fatal) { @@ -1292,7 +1310,7 @@ sub editor { $url=~/^(.+)\.(\w+)$/; my $newurl=$1.$newid.'.'.$2; my $storefn=$newurl; - $storefn=~s/^\/\w+\/\w+\/\w+\///; + $storefn=~s{^/\w+/$match_domain/$match_username/}{}; &Apache::lonclonecourse::writefile ($env{'request.course.id'},$storefn, &Apache::lonnet::getfile($url)); @@ -1600,7 +1618,7 @@ sub process_secondary_uploads { $destination .= $newidx; my ($url,$filename); $url=&Apache::lonnet::userfileupload($formname.$num,1,$destination); - ($filename) = ($url =~ m-^/uploaded/$coursedom/$coursenum/$destination/(.+)$-); + ($filename) = ($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/\Q$destination\E/(.+)$}); return $filename; } @@ -1615,7 +1633,7 @@ sub entryline { my $foldertitle=$title; my $pagetitle=$title; my $orderidx=$LONCAPA::map::order[$index]; - if ($title=~ /^(\d+)___&&&___(\w+)___&&&___(\w+)___&&&___(.*)$/ ) { + if ($title=~ /^(\d+)___&&&___($match_username)___&&&___($match_domain)___&&&___(.*)$/ ) { $foldertitle=&Apache::lontexconvert::msgtexconverted($4); $renametitle=$4; $title='<i>'.&Apache::lonlocal::locallocaltime($1).'</i> '. @@ -1686,13 +1704,19 @@ sub entryline { } } } + if ($url=~/^\/res\/lib\/templates\//) { $nocopy=1; } my $copylink=' '; + my $cutlink=' '; if ($env{'form.pagepath'}) { unless ($nocopy) { $copylink=(<<ENDCOPY); <a href='javascript:markcopy("$pagepath","$index","$renametitle","page","$pagesymb");'> <font size="-2" color="#000099">$lt{'cp'}</font></a></td> ENDCOPY + $cutlink=(<<ENDCUT); +<a href='javascript:cutres("$pagepath","$index","$renametitle","page","$pagesymb");'> +<font size="-2" color="#550044">$lt{'ct'}</font></a> +ENDCUT } $line.=(<<END); <form name="entry_$index" action="/adm/coursedocs" method="post"> @@ -1714,8 +1738,7 @@ ENDCOPY </td><td bgcolor="#DDDDDD"> <a href='javascript:removeres("$pagepath","$index","$renametitle","page","$pagesymb");'> <font size="-2" color="#990000">$lt{'rm'}</font></a> -<a href='javascript:cutres("$pagepath","$index","$renametitle","page","$pagesymb");'> -<font size="-2" color="#550044">$lt{'ct'}</font></a> +$cutlink <a href='javascript:changename("$pagepath","$index","$renametitle","page","$pagesymb");'> <font size="-2" color="#009900">$lt{'rn'}</font></a> $copylink @@ -1726,6 +1749,10 @@ END <a href='javascript:markcopy("$folderpath","$index","$renametitle","sequence");'> <font size="-2" color="#000099">$lt{'cp'}</font></a></td> ENDCOPY + $cutlink=(<<ENDCUT); +<a href='javascript:cutres("$folderpath","$index","$renametitle","sequence");'> +<font size="-2" color="#550044">$lt{'ct'}</font></a> +ENDCUT } $line.=(<<END); <form name="entry_$index" action="/adm/coursedocs" method="post"> @@ -1746,8 +1773,7 @@ ENDCOPY </td><td bgcolor="#DDDDDD"> <a href='javascript:removeres("$folderpath","$index","$renametitle","sequence");'> <font size="-2" color="#990000">$lt{'rm'}</font></a> -<a href='javascript:cutres("$folderpath","$index","$renametitle","sequence");'> -<font size="-2" color="#550044">$lt{'ct'}</font></a> +$cutlink <a href='javascript:changename("$folderpath","$index","$renametitle","sequence");'> <font size="-2" color="#009900">$lt{'rn'}</font></a> $copylink @@ -1766,13 +1792,13 @@ END if ($uploaded) { if ($extension eq 'sequence') { $icon=$iconpath.'/folder_closed.gif'; - $url=~/$coursenum\/([\/\w]+)\.sequence$/; + $url=~/\Q$coursenum\E\/([\/\w]+)\.sequence$/; $url='/adm/coursedocs?'; $folderarg=$1; $isfolder=1; } elsif ($extension eq 'page') { $icon=$iconpath.'/page.gif'; - $url=~/$coursenum\/([\/\w]+)\.page$/; + $url=~/\Q$coursenum\E\/([\/\w]+)\.page$/; $pagearg=$1; $url='/adm/coursedocs?'; $ispage=1; @@ -1831,7 +1857,7 @@ END 'parameter_encrypturl'))[0]=~/^yes$/i); $url.='folderpath='.&escape($folderpath).$cpinfo; $parameterset='<label>'.&mt('Randomly Pick: '). - '<input type="text" size="4" onChange="this.form.changeparms.value=1;this.form.submit()" name="randpick_'.$orderidx.'" value="'. + '<input type="text" size="4" onChange="this.form.changeparms.value='."'randompick'".';this.form.submit()" name="randpick_'.$orderidx.'" value="'. (&LONCAPA::map::getparameter($orderidx, 'parameter_randompick'))[0]. '" />'. @@ -1870,9 +1896,9 @@ END ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':''); $line.=(<<ENDPARMS); <td bgcolor="#BBBBFF"><font size='-2'> -<nobr><label><input type="checkbox" name="hidprs_$orderidx" onClick="this.form.changeparms.value=1;this.form.submit()" $hidtext /> $lt{'hd'}</label></nobr></td> +<nobr><label><input type="checkbox" name="hidprs_$orderidx" onClick="this.form.changeparms.value='hiddenresource';this.form.submit()" $hidtext /> $lt{'hd'}</label></nobr></td> <td bgcolor="#BBBBFF"><font size='-2'> -<nobr><label><input type="checkbox" name="encprs_$orderidx" onClick="this.form.changeparms.value=1;this.form.submit()" $enctext /> $lt{'ec'}</label></nobr></td> +<nobr><label><input type="checkbox" name="encprs_$orderidx" onClick="this.form.changeparms.value='encrypturl';this.form.submit()" $enctext /> $lt{'ec'}</label></nobr></td> <td bgcolor="#BBBBFF"><font size="-2">$parameterset</font></td> ENDPARMS } @@ -1986,6 +2012,7 @@ sub list_symbs { my ($r) = @_; $r->print(&Apache::loncommon::start_page('Symb List')); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Symb List')); my $navmap = Apache::lonnavmaps::navmap->new(); $r->print("<pre>\n"); foreach my $res ($navmap->retrieveResources()) { @@ -2005,6 +2032,7 @@ sub verifycontent { my $loaderror=&Apache::lonnet::overloaderror($r); if ($loaderror) { return $loaderror; } $r->print(&Apache::loncommon::start_page('Verify '.$type.' Documents')); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Verify '.$type.' Documents')); $hashtied=0; undef %alreadyseen; %alreadyseen=(); @@ -2040,6 +2068,7 @@ sub checkversions { my ($r) = @_; my $type = &Apache::loncommon::course_type(); $r->print(&Apache::loncommon::start_page("Check $type Document Versions")); + $r->print(&Apache::lonhtmlcommon::breadcrumbs("Check $type Document Versions")); my $header=''; my $startsel=''; my $monthsel=''; @@ -2331,6 +2360,22 @@ sub changewarning { $help{'Caching'}.'</font></h3></form>'."\n\n"); } +# =========================================== Breadcrumbs for special functions + +sub init_breadcrumbs { + my ($form,$text)=@_; + &Apache::lonhtmlcommon::clear_breadcrumbs(); + &Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/coursedocs", + text=>&Apache::loncommon::course_type()." Documents", + faq=>273, + bug=>'Instructor Interface', + help => 'Docs_Adding_Course_Doc'}); + &Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/coursedocs?".$form.'=1', + text=>$text, + faq=>273, + bug=>'Instructor Interface'}); +} + # ================================================================ Main Handler sub handler { my $r = shift; @@ -2359,22 +2404,28 @@ sub handler { 'Docs_About_Bulletin_Board,Docs_Editing_Templated_Pages'); $help{'My Personal Info'} = &Apache::loncommon::help_open_topic( 'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages'); + $help{'Group Files'} = &Apache::loncommon::help_open_topic('Docs_About_Group_Files'); $help{'Caching'} = &Apache::loncommon::help_open_topic('Caching'); # does this user have privileges to modify docs my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'}); - if ($allowed && $env{'form.verify'}) { + &init_breadcrumbs('verify','Verify Content'); &verifycontent($r); } elsif ($allowed && $env{'form.listsymbs'}) { + &init_breadcrumbs('listsymbs','List Symbs'); &list_symbs($r); } elsif ($allowed && $env{'form.docslog'}) { + &init_breadcrumbs('docslog','Show Log'); &docs_change_log($r); } elsif ($allowed && $env{'form.versions'}) { + &init_breadcrumbs('versions','Check/Set Resource Versions'); &checkversions($r); } elsif ($allowed && $env{'form.dumpcourse'}) { + &init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' DOCS to Construction Space'); &dumpcourse($r); } elsif ($allowed && $env{'form.exportcourse'}) { + &init_breadcrumbs('exportcourse','Export '.&Apache::loncommon::course_type().' to IMS'); &exportcourse($r); } else { # is this a standard course? @@ -2448,7 +2499,8 @@ sub handler { my %codebase = (); my ($upload_result,$upload_output); if ($allowed) { - if (($env{'form.uploaddoc.filename'}) && ($env{'form.cmd'}=~/^upload_(\w+)/)) { + if (($env{'form.uploaddoc.filename'}) && + ($env{'form.cmd'}=~/^upload_(\w+)/)) { # Process file upload - phase one - upload and parse primary file. $upload_result = &process_file_upload(\$upload_output,$coursenum, $coursedom,\%allfiles, @@ -2553,6 +2605,7 @@ sub handler { 'scuf' => 'Score Upload Form', 'bull' => 'Bulletin Board', 'mypi' => 'My Personal Info', + 'grpo' => 'Group Files', 'abou' => 'About User', 'imsf' => 'Import IMS package', 'file' => 'File', @@ -2592,7 +2645,7 @@ sub handler { $containertag </form> <form name="simpleedit" method="post" action="/adm/coursedocs"> -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> $uploadtag </form> <form action="/adm/coursedocs" method="post" name="courseverify"> @@ -2606,6 +2659,7 @@ $exportbut </td><td bgcolor="#DDDDCC"> <input type="submit" name="listsymbs" value="$lt{'ls'}" /> </td><td bgcolor="#DDDDCC"> + <input type="hidden" name="folder" value="$env{'form.folder'}" /> <input type="submit" name="docslog" value="$lt{'sl'}" /> </td></tr></table> </form> @@ -2706,7 +2760,7 @@ ENDFORM <hr /> <form action="/adm/coursedocs" method="post" name="newext"> $uploadtag -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newext" type="button" onClick="javascript:makenewext('newext');" value="$lt{'extr'}" /> $help{'Adding_External_Resource'} @@ -2724,7 +2778,7 @@ ENDFORM $r->print(<<ENDFORM); <br /><form action="/adm/coursedocs" method="post" name="newfolder"> <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newfolder" type="button" onClick="javascript:makenewfolder(this.form,'$folderseq');" @@ -2733,7 +2787,7 @@ value="$lt{'newf'}" />$help{'Adding_Fold </form> <br /><form action="/adm/coursedocs" method="post" name="newpage"> <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newpage" type="button" onClick="javascript:makenewpage(this.form,'$pageseq');" @@ -2742,8 +2796,8 @@ value="$lt{'newp'}" />$help{'Adding_Page </form> <br /><form action="/adm/coursedocs" method="post" name="newsyl"> $uploadtag -<input type=hidden name="importdetail" -value="Syllabus=/public/$coursedom/$coursenum/syllabus"> +<input type="hidden" name="importdetail" +value="Syllabus=/public/$coursedom/$coursenum/syllabus" /> <nobr> <input name="newsyl" type="submit" value="$lt{'syll'}" /> $help{'Syllabus'} @@ -2751,8 +2805,8 @@ value="Syllabus=/public/$coursedom/$cour </form> <br /><form action="/adm/coursedocs" method="post" name="newnav"> $uploadtag -<input type=hidden name="importdetail" -value="Navigate Content=/adm/navmaps"> +<input type="hidden" name="importdetail" +value="Navigate Content=/adm/navmaps" /> <nobr> <input name="newnav" type="submit" value="$lt{'navc'}" /> $help{'Navigate_Content'} @@ -2760,7 +2814,7 @@ $help{'Navigate_Content'} </form> <br /><form action="/adm/coursedocs" method="post" name="newsmppg"> $uploadtag -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newsmppg" type="button" value="$lt{'sipa'}" onClick="javascript:makesmppage();" /> $help{'Simple Page'} @@ -2768,7 +2822,7 @@ onClick="javascript:makesmppage();" /> $ </form> <br /><form action="/adm/coursedocs" method="post" name="newsmpproblem"> $uploadtag -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newsmpproblem" type="button" value="$lt{'sipr'}" onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} @@ -2776,7 +2830,7 @@ onClick="javascript:makesmpproblem();" / </form> <br /><form action="/adm/coursedocs" method="post" name="newdropbox"> $uploadtag -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newdropbox" type="button" value="$lt{'drbx'}" onClick="javascript:makedropbox();" /> @@ -2784,7 +2838,7 @@ onClick="javascript:makedropbox();" /> </form> <br /><form action="/adm/coursedocs" method="post" name="newexamupload"> $uploadtag -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newexamupload" type="button" value="$lt{'scuf'}" onClick="javascript:makeexamupload();" /> @@ -2793,7 +2847,7 @@ $help{'Score_Upload_Form'} </form> <br /><form action="/adm/coursedocs" method="post" name="newbul"> $uploadtag -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newbulletin" type="button" value="$lt{'bull'}" onClick="javascript:makebulboard();" /> @@ -2802,8 +2856,8 @@ $help{'Bulletin Board'} </form> <br /><form action="/adm/coursedocs" method="post" name="newaboutme"> $uploadtag -<input type=hidden name="importdetail" -value="$plainname=/adm/$udom/$uname/aboutme"> +<input type="hidden" name="importdetail" +value="$plainname=/adm/$udom/$uname/aboutme" /> <nobr> <input name="newaboutme" type="submit" value="$lt{'mypi'}" /> $help{'My Personal Info'} @@ -2811,19 +2865,28 @@ $help{'My Personal Info'} </form> <br /><form action="/adm/coursedocs" method="post" name="newaboutsomeone"> $uploadtag -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newaboutsomeone" type="button" value="$lt{'abou'}" onClick="javascript:makeabout();" /> </nobr> </form> +<br /><form action="/adm/coursedocs" method="post" name="newgroupfiles"> +$uploadtag +<input type="hidden" name="importdetail" +value="Group Files=/adm/$coursedom/$coursenum/aboutme" /> +<nobr> +<input name="newgroupfiles" type="submit" value="$lt{'grpo'}" /> +$help{'Group Files'} +</nobr> +</form> ENDFORM } if ($env{'form.pagepath'}) { $r->print(<<ENDBLOCK); <form action="/adm/coursedocs" method="post" name="newsmpproblem"> $uploadtag -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newsmpproblem" type="button" value="$lt{'sipr'}" onClick="javascript:makesmpproblem();" />$help{'Simple Problem'} @@ -2831,7 +2894,7 @@ onClick="javascript:makesmpproblem();" / </form> <br /><form action="/adm/coursedocs" method="post" name="newexamupload"> $uploadtag -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newexamupload" type="button" value="$lt{'scuf'}" onClick="javascript:makeexamupload();" /> @@ -2895,7 +2958,7 @@ $lt{'comment'}:<br /> <td bgcolor="#DDDDDD"> <form action="/adm/coursedocs" method="post" name="supnewfolder"> <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newfolder" type="button" onClick="javascript:makenewfolder(this.form,'$folderseq');" @@ -2904,7 +2967,7 @@ value="$lt{'newf'}" /> $help{'Adding_Fol </form> <br /><form action="/adm/coursedocs" method="post" name="supnewext"> <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> -<input type=hidden name="importdetail" value=""> +<input type="hidden" name="importdetail" value="" /> <nobr> <input name="newext" type="button" onClick="javascript:makenewext('supnewext');" @@ -2913,8 +2976,8 @@ value="$lt{'extr'}" /> $help{'Adding_Ext </form> <br /><form action="/adm/coursedocs" method="post" name="supnewsyl"> <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> -<input type=hidden name="importdetail" -value="Syllabus=/public/$coursedom/$coursenum/syllabus"> +<input type="hidden" name="importdetail" +value="Syllabus=/public/$coursedom/$coursenum/syllabus" /> <nobr> <input name="newsyl" type="submit" value="$lt{'syll'}" /> $help{'Syllabus'} @@ -2922,8 +2985,8 @@ $help{'Syllabus'} </form> <br /><form action="/adm/coursedocs" method="post" name="subnewaboutme"> <input type="hidden" name="folderpath" value="$env{'form.folderpath'}" /> -<input type=hidden name="importdetail" -value="$plainname=/adm/$udom/$uname/aboutme"> +<input type="hidden" name="importdetail" +value="$plainname=/adm/$udom/$uname/aboutme" /> <nobr> <input name="newaboutme" type="submit" value="$lt{'mypi'}" /> $help{'My Personal Info'}