--- loncom/interface/londocs.pm	2004/09/18 17:04:03	1.145
+++ loncom/interface/londocs.pm	2004/12/13 01:57:10	1.155
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Documents
 #
-# $Id: londocs.pm,v 1.145 2004/09/18 17:04:03 albertel Exp $
+# $Id: londocs.pm,v 1.155 2004/12/13 01:57:10 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -989,15 +989,17 @@ sub editor {
 # ---------------------------------------------------------------- End commands
 # ---------------------------------------------------------------- Print screen
         my $idx=0;
+	my $shown=0;
         $r->print('<table>');
         foreach (@Apache::lonratedt::order) {
            my ($name,$url)=split(/\:/,$Apache::lonratedt::resources[$_]);
            unless ($name) {  $name=(split(/\//,$url))[-1]; }
-           unless ($name) { next; }
+           unless ($name) { $idx++; next; }
            $r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum));
            $idx++;
+	   $shown++;
         }
-	unless ($idx) {
+	unless ($shown) {
 	    $r->print('<tr><td>'.&mt('Currently no documents.').'</td></tr>');
 	}
         $r->print('</table>');
@@ -1150,9 +1152,13 @@ END
 	} elsif ($url=~m|^/ext/|) { 
 	    $url='/adm/wrapper'.$url;
 	}
-        unless ($container eq 'page') {
+	$url.=(($url=~/\?/)?'&':'?').'symb='.&Apache::lonnet::escape($symb);
+	if ($container eq 'page') {
+	    my $symb=$ENV{'form.pagesymb'};
+	    	    
+	    $url=&Apache::lonnet::clutter((&Apache::lonnet::decode_symb($symb))[2]);
 	    $url.=(($url=~/\?/)?'&':'?').'symb='.&Apache::lonnet::escape($symb);
-        }
+	}
     }
     my $parameterset='&nbsp;';
     if ($isfolder) {
@@ -1161,9 +1167,12 @@ END
 	if ($folderpath) { $folderpath.='&' };
 	$folderpath.=$folderarg.'&'.$foldername;
 	$url.='folderpath='.&Apache::lonnet::escape($folderpath);
-	$parameterset=&mt('Randomly Pick: ').
+	$parameterset='<label>'.&mt('Randomly Pick: ').
 	    '<input type="text" size="4" name="randpick_'.$orderidx.'" value="'.
-	    (&Apache::lonratedt::getparameter($orderidx,'parameter_randompick'))[0].'" />';
+	    (&Apache::lonratedt::getparameter($orderidx,
+                                              'parameter_randompick'))[0].
+                                              '" />'.'</label>';
+       
     }
     if ($ispage) {
         my $pagename=&Apache::lonnet::escape($pagetitle);
@@ -1171,7 +1180,17 @@ END
         my $folderpath=$ENV{'form.folderpath'};
         if ($folderpath) { $pagepath = $folderpath.'&' };
         $pagepath.=$pagearg.'&'.$pagename;
-        $url.='pagepath='.&Apache::lonnet::escape($pagepath);
+	my $symb=$ENV{'form.pagesymb'};
+	if (!$symb) {
+	    my $path='uploaded/'.
+		$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.'/'.
+		$ENV{'course.'.$ENV{'request.course.id'}.'.num'}.'/';
+	    $symb=&Apache::lonnet::encode_symb($path.$folder.'.sequence',
+					       $residx,
+					       $path.$pagearg.'.page');
+	}
+	$url.='pagepath='.&Apache::lonnet::escape($pagepath).
+	    '&pagesymb='.&Apache::lonnet::escape($symb);
     }
     $line.='<td bgcolor="#FFFFBB"><a href="'.$url.'"><img src="'.$icon.
 	'" border="0"></a></td>'.
@@ -1187,9 +1206,9 @@ END
 	    ((&Apache::lonratedt::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':'');
 	$line.=(<<ENDPARMS);
 <td bgcolor="#BBBBFF"><font size='-2'>
-<input type="checkbox" name="hidprs_$orderidx" $hidtext/> $lt{'hd'}</td>
-<!--<td bgcolor="#BBBBFF"><font size='-2'>
-<input type="checkbox" name="encprs_$orderidx" $enctext/> $lt{'ec'}</td>-->
+<nobr><label><input type="checkbox" name="hidprs_$orderidx" $hidtext/> $lt{'hd'}</label></nobr></td>
+<td bgcolor="#BBBBFF"><font size='-2'>
+<nobr><label><input type="checkbox" name="encprs_$orderidx" $enctext/> $lt{'ec'}</label></nobr></td>
 <td bgcolor="#BBBBFF"><font size="-2">$parameterset</font></td>
 <td bgcolor="#BBBBFF"><font size='-2'>
 <input type="submit" value="$lt{'sp'}" />
@@ -1602,11 +1621,17 @@ sub is_hash_old {
 sub changewarning {
     my ($r,$postexec)=@_;
     if (!&is_hash_old()) { return; }
+    my $pathvar='folderpath';
+    my $path=&Apache::lonnet::escape($ENV{'form.folderpath'});
+    if (defined($ENV{'form.pagepath'})) {
+	$pathvar='pagepath';
+	$path=&Apache::lonnet::escape($ENV{'form.pagepath'});
+    }
     $r->print(
 '<script>function reinit(tf) { tf.submit();'.$postexec.' }</script>'. 
 '<form method="post" action="/adm/roles" target="loncapaclient">'.
-'<input type="hidden" name="orgurl" value="/adm/coursedocs?folderpath='.
-&Apache::lonnet::escape($ENV{'form.folderpath'}).
+'<input type="hidden" name="orgurl" value="/adm/coursedocs?'.
+$pathvar.'='.$path.
 '" /><input type="hidden" name="selectrole" value="1" /><h3><font color="red">'.
 &mt('Changes will become active for your current session after').
 ' <input type="hidden" name="'.
@@ -1656,7 +1681,7 @@ sub handler {
 # is this a standard course?
 
     my $standard=($ENV{'request.course.uri'}=~/^\/uploaded\//);
-    my $forcestandard;
+    my $forcestandard = 0;
     my $forcesupplement;
     my $script='';
     my $allowed;
@@ -1665,7 +1690,7 @@ sub handler {
     my $containertag;
     my $uploadtag;
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
-					    ['folderpath','pagepath']);
+					    ['folderpath','pagepath','pagesymb']);
     if ($ENV{'form.folderpath'}) {
 	my (@folderpath)=split('&',$ENV{'form.folderpath'});
 	$ENV{'form.foldername'}=&Apache::lonnet::unescape(pop(@folderpath));
@@ -1682,7 +1707,10 @@ sub handler {
        $showdoc='/'.$1;
     }
     unless ($showdoc) { # got called from remote
-       $forcestandard=($ENV{'form.folder'}=~/^default_/);
+       if (($ENV{'form.folder'}=~/^default_$/) || 
+          ($ENV{'form.folder'} =~ m#^\d+/(pages|sequences)/#)) {
+           $forcestandard = 1;
+       } 
        $forcesupplement=($ENV{'form.folder'}=~/^supplemental_/);
 
 # does this user have privileges to post, etc?