--- loncom/interface/londocs.pm	2010/08/14 00:00:29	1.430
+++ loncom/interface/londocs.pm	2010/10/27 01:00:38	1.439
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Documents
 #
-# $Id: londocs.pm,v 1.430 2010/08/14 00:00:29 raeburn Exp $
+# $Id: londocs.pm,v 1.439 2010/10/27 01:00:38 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1607,12 +1607,12 @@ sub editor {
     my $shown=0;
     if (($ishidden) || ($isencrypted) || ($randompick>=0) || ($is_random_order)) {
 	$r->print('<div class="LC_Box">'.
-          '<ol class="LC_docs_parameters"><li style="font-weight:bold;">'.&mt('Parameters:').'</li>'.
-		  ($randompick>=0?'<li>&bull;&nbsp;'.&mt('randomly pick [quant,_1,resource]',$randompick).'</li>':'').
-		  ($ishidden?'<li>&bull;&nbsp;'.&mt('contents hidden').'</li>':'').
-		  ($isencrypted?'<li>&bull;&nbsp;'.&mt('URLs hidden').'</li>':'').
-		  ($is_random_order?'<li>&bull;&nbsp;'.&mt('random order').'</li>':'').
-		  '</ol></p>');
+          '<ol class="LC_docs_parameters"><li class="LC_docs_parameters_title">'.&mt('Parameters:').'</li>'.
+		  ($randompick>=0?'<li>'.&mt('randomly pick [quant,_1,resource]',$randompick).'</li>':'').
+		  ($ishidden?'<li>'.&mt('contents hidden').'</li>':'').
+		  ($isencrypted?'<li>'.&mt('URLs hidden').'</li>':'').
+		  ($is_random_order?'<li>'.&mt('random order').'</li>':'').
+		  '</ol>');
         if ($randompick>=0) {
             $r->print('<p class="LC_warning">'
                  .&mt('Caution: this folder is set to randomly pick a subset'
@@ -1720,7 +1720,7 @@ sub process_file_upload {
 # probably the only place in the system where this should be "1"
         my $newidx=&LONCAPA::map::getresidx();
         $destination .= $newidx;
-        my $url=&Apache::lonnet::userfileupload('uploaddoc',1,$destination,
+        my $url=&Apache::lonnet::userfileupload('uploaddoc','coursedoc',$destination,
 						$parseaction,$allfiles,
 						$codebase);
         my $ext='false';
@@ -1781,7 +1781,7 @@ sub process_secondary_uploads {
     }
     $destination .= $newidx;
     my ($url,$filename);
-    $url=&Apache::lonnet::userfileupload($formname.$num,1,$destination);
+    $url=&Apache::lonnet::userfileupload($formname.$num,'coursedoc',$destination);
     ($filename) = ($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/\Q$destination\E/(.+)$});
     return $filename;
 }
@@ -2718,9 +2718,22 @@ sub handler {
         $env{'form.pagename'}=&unescape(pop(@pagepath));
         $env{'form.folder'}=pop(@pagepath);
         $containertag = '<input type="hidden" name="pagepath" value="" />'.
-	    '<input type="hidden" name="pagesymb" value="" />';
-        $uploadtag = '<input type="hidden" name="pagepath" value="'.&HTML::Entities::encode($env{'form.pagepath'},'<>&"').'" />'.
-	    '<input type="hidden" name="pagesymb" value="'.&HTML::Entities::encode($env{'form.pagesymb'},'<>&"').'" />';
+	                '<input type="hidden" name="pagesymb" value="" />';
+        $uploadtag = 
+            '<input type="hidden" name="pagepath" value="'.&HTML::Entities::encode($env{'form.pagepath'},'<>&"').'" />'.
+	    '<input type="hidden" name="pagesymb" value="'.&HTML::Entities::encode($env{'form.pagesymb'},'<>&"').'" />'.
+            '<input type="hidden" name="folderpath" value="" />';
+    } 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'));
+            }
+        }
+        $containertag = '<input type="hidden" name="folderpath" value="" />';
+        $uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />';
     }
     if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) {
        $showdoc='/'.$1;
@@ -2907,7 +2920,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',
@@ -2958,7 +2971,7 @@ CHBO
 	$fileupload
 	<br />
 	$lt{'title'}:<br />
-	<input type="text" size="50" name="comment" />
+	<input type="text" size="80" name="comment" />
 	$uploadtag
 	<input type="hidden" name="cmd" value="upload_default" />
 	<br />
@@ -2980,7 +2993,7 @@ SEDFFORM
 	my @simpleeditdefaultforma = ( 
 	{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/src.png" alt="'.$lt{srch}.'"  onclick="javascript:groupsearch()" />' => "$uploadtag<a class='LC_menubuttons_link' href='javascript:groupsearch()'>$lt{'srch'}</a>" },
 	{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/res.png" alt="'.$lt{impo}.'"  onclick="javascript:groupimport();"/>' => "<a class='LC_menubuttons_link' href='javascript:groupimport();'>$lt{'impo'}</a>$help{'Importing_LON-CAPA_Resource'}" },
-	{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/vbkm.png" alt="'.$lt{book}.'" onclick="javascript:groupopen(0,1,1);" />' => "<a class='LC_menubuttons_link' href='javascript:groupopen(0,1,1);'>$lt{'book'}</a>" },
+	{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/wishlist.png" alt="'.$lt{wish}.'" onclick="javascript:open_Wishlist_Import();" />' => "<a class='LC_menubuttons_link' href='javascript:open_Wishlist_Import();'>$lt{'wish'}</a>" },
 	);
 	$simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma));
 	$simpleeditdefaultform .=(<<SEDFFORM);
@@ -3013,18 +3026,6 @@ ERFORM
                                          'sl' => 'Show Log'
 					  );
 
-       my $folderpath=$env{'form.folderpath'};
-       if (!$folderpath) {
-	   if ($env{'form.folder'} eq '' ||
-	       $env{'form.folder'} eq 'supplemental') {
-	       $folderpath='default&'.
-		   &escape(&mt('Main '.$crstype.' Documents'));
-	   }
-       }
-       unless ($env{'form.pagepath'}) {
-           $containertag = '<input type="hidden" name="folderpath" value="" />';
-           $uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />';
-       }
 	$r->print(<<HIDDENFORM);
 	<form name="renameform" method="post" action="/adm/coursedocs">
    <input type="hidden" name="title" />
@@ -3062,7 +3063,6 @@ HIDDENFORM
 	    }
         }
         $r->print('<li '.$active
-               . ' onmouseover="javascript:showPage(this,\'mainCourseDocuments\',\'mainnav\',\'maincoursedoc\');"'
                . ' onclick="javascript:showPage(this,\'mainCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.$tabtitles{'main'}{$crstype}.'</b></a></li>');
         $active = '';
         if (!$forcestandard || ($env{'form.folderpath'}=~/^supplemental/)) {
@@ -3071,7 +3071,6 @@ HIDDENFORM
             }
         }
         $r->print('<li '.$active
-            .' onmouseover="javascript:showPage(this,\'supplCourseDocuments\',\'mainnav\',\'maincoursedoc\');"'
             .' onclick="javascript:showPage(this,\'supplCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.$tabtitles{'supplemental'}{$crstype}.'</b></a></li>');
         $r->print('</ul>');
     } else {
@@ -3120,7 +3119,7 @@ HIDDENFORM
 
 	my $recoverform=(<<RFORM);
 	<form action="/adm/groupsort" method="post" name="recover">
-	<a class="LC_menubuttons_link" href="javascript:groupopen('$readfile',1,0)">$lt{'reco'}</a>
+	<a class="LC_menubuttons_link" href="javascript:groupopen('$readfile',1)">$lt{'reco'}</a>
 	</form>
 RFORM
 
@@ -3277,9 +3276,13 @@ NGFFORM
 	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/page.png" alt="'.$lt{newp}.'"  onclick="javascript:makenewpage(document.newpage,\''.$pageseq.'\');" />'=>$newpageform},
 	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/syllabus.png" alt="'.$lt{syll}.'" onclick="document.newsyl.submit()" />'=>$newsylform},
 	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/groupportfolio.png" alt="'.$lt{grpo}.'" onclick="document.newgroupfiles.submit()" />'=>$newgroupfileform},
-	); 
-	
-      }
+	);
+
+        my @importdoc = (
+        {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" onclick="javascript:makenewext(\'newext\');" />'=>$extresourcesform},
+        {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/ims.png" alt="'.$lt{imsf}.'" onclick="javascript:makeims();" />'=>$imspform},);
+        $fileuploadform =  create_form_ul(create_list_elements(@importdoc)) . '<hr/>' . $fileuploadform;
+
 	push @specialdocumentsforma, ({'<img class="LC_noBorder LC_middle" src="/res/adm/pages/navigation.png" alt="'.$lt{navc}.'" onclick="document.newnav.submit()" />'=>$newnavform},
 	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simple.png" alt="'.$lt{sipa}.'" onclick="javascript:makesmppage();" />'=>$newsmppageform},
 	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simpprob.png" alt="'.$lt{sipr}.'" onclick="javascript:makesmpproblem();" />'=>$newsmpproblemform},
@@ -3291,6 +3294,7 @@ NGFFORM
 	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/clst.png" alt="'.$lt{rost}.'" onclick="document.newroster.submit()" />'=>$newrosterform},);
 
 	$specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma));
+      }
 
 if($env{'form.pagepath'}) {
 	
@@ -3304,21 +3308,19 @@ if($env{'form.pagepath'}) {
 my @tools = (
 #	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" />'=>$extresourcesform},
 #	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/ims.png" alt="'.$lt{imsf}.'" />'=>$imspform},
-	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/recover.png" alt="'.$lt{reco}.'" onclick="javascript:groupopen(\''.$readfile.'\',1,0)" />'=>$recoverform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/recover.png" alt="'.$lt{reco}.'" onclick="javascript:groupopen(\''.$readfile.'\',1)" />'=>$recoverform},
 	);
 
-my @importdoc = (
-    {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" onclick="javascript:makenewext(\'newext\');" />'=>$extresourcesform},
-    {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/ims.png" alt="'.$lt{imsf}.'" onclick="javascript:makeims();" />'=>$imspform}, 
-);
-$fileuploadform =  create_form_ul(create_list_elements(@importdoc)) . '<hr/>' . $fileuploadform;
 my %orderhash = (
-		'00' => ['Newfolder',$newfolderform],
                 'aa' => ['Import Documents',$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)],
+		'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);
@@ -3334,8 +3336,6 @@ $r->print(&generate_edit_table($tid,\%or
 
 $r->print('</div>');
 	}
-       if ($env{'form.pagepath'}) {
-       }
 # ----------------------------------------------------- Supplemental documents
        $active = 'style="display: none;"';
        if($activeClass == 1){
@@ -3482,8 +3482,8 @@ $r->print('</div></div>');
 }
 
 sub generate_admin_options {
-  my ($containertag,$uploadtag,$help_ref,$env_ref) = @_;
- my %lt=&Apache::lonlocal::texthash(
+  my ($help_ref,$env_ref) = @_;
+  my %lt=&Apache::lonlocal::texthash(
                                          'vc' => 'Verify Content',
                                          'cv' => 'Check/Set Resource Versions',
                                          'ls' => 'List Symbs',
@@ -3504,7 +3504,7 @@ sub generate_admin_options {
   if($dumpbut ne ''){
   push @list, {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/dump.png" alt="'.$lt{dcd}.'" />'=>$dumpbut};
   }
-  push @list, ({'<img class="LC_noBorder LC_middle" src="/res/adm/pages/imsexport.png" alt="'.$lt{imse}.'" class="LC_menubuttons_link" href=\'javascript:injectData(document.courseverify, "dummy", "exportcourse", "'.&mt('IMS Export').'")\' />'
+  push @list, ({'<img class="LC_noBorder LC_middle" src="/res/adm/pages/imsexport.png" alt="'.$lt{imse}.'" onclick="javascript:injectData(document.courseverify, \'dummy\', \'exportcourse\', \''.&mt('IMS Export').'\');" />'
           =>$exportbut},
 	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/symbs.png" alt="'.$lt{ls}.'"  onclick=\'javascript:injectData(document.courseverify, "dummy", "listsymbs", "'.$lt{'ls'}.'")\'  />'
         =>"<a class='LC_menubuttons_link' href='javascript:injectData(document.courseverify, \"dummy\", \"listsymbs\", \"$lt{'ls'}\")'>$lt{'ls'}</a><input type='hidden' name='folder' value='$env{'form.folder'}' />"},
@@ -3589,6 +3589,18 @@ sub editing_js {
                                           p_ctr2b => '?[_98]'
                                         );
 
+    my $crstype = &Apache::loncommon::course_type();
+    my $docs_folderpath = &HTML::Entities::encode($env{'environment.internal.'.$env{'request.course.id'}.'.docs_folderpath.folderpath'},'<>&"');
+    my $docs_pagepath = &HTML::Entities::encode($env{'environment.internal.'.$env{'request.course.id'}.'.docs_folderpath.pagepath'},'<>&"');
+    my $main_container_page;
+    if ($docs_folderpath eq '') {
+        if ($docs_pagepath ne '') {
+            $main_container_page = 1;
+        }
+    }
+    my $toplevelmain = 'default&Main%20'.$crstype.'%20Documents';
+    my $toplevelsupp = 'supplemental&Supplemental%20'.$crstype.'%20Documents';
+
     return <<ENDNEWSCRIPT;
 function makenewfolder(targetform,folderseq) {
     var foldername=prompt('$lt{"p_mnf"}','$lt{"t_mnf"}');
@@ -3817,6 +3829,40 @@ function showPage(current, pageId, nav,
 	current.className = 'active';
 	currentData = document.getElementById(pageId);
 	currentData.style.display = 'block';
+        if (nav == 'mainnav') {
+            var storedpath = "$docs_folderpath";
+            if (storedpath == '') {
+                storedpath = "$docs_pagepath";
+            }
+            var storedpage = "$main_container_page";
+            var reg = new RegExp("^supplemental");
+            if (pageId == 'mainCourseDocuments') {
+                if (storedpage == 1) {
+                    document.simpleedit.folderpath.value = '';
+                    document.uploaddocument.folderpath.value = '';
+                } else {
+                    if (reg.test(storedpath)) {
+                        document.simpleedit.folderpath.value = '$toplevelmain';
+                        document.uploaddocument.folderpath.value = '$toplevelmain';
+                        document.newext.folderpath.value = '$toplevelmain';
+                    } else {
+                        document.simpleedit.folderpath.value = storedpath;
+                        document.uploaddocument.folderpath.value = storedpath;
+                        document.newext.folderpath.value = storedpath;
+                    }
+                }
+            } else {
+                if (reg.test(storedpath)) {
+                    document.simpleedit.folderpath.value = storedpath;
+                    document.supuploaddocument.folderpath.value = storedpath;
+                    document.supnewext.folderpath.value = storedpath;
+                } else {
+                    document.simpleedit.folderpath.value = '$toplevelsupp';
+                    document.supuploaddocument.folderpath.value = '$toplevelsupp';
+                    document.supnewext.folderpath.value = '$toplevelsupp';
+                }
+            }
+        }
 	return false;
 }