--- loncom/interface/londocs.pm	2004/09/14 21:27:36	1.143
+++ loncom/interface/londocs.pm	2004/12/10 20:47:33	1.153
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Documents
 #
-# $Id: londocs.pm,v 1.143 2004/09/14 21:27:36 raeburn Exp $
+# $Id: londocs.pm,v 1.153 2004/12/10 20:47:33 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -934,10 +934,11 @@ sub editor {
                     $comment=~s/\</\&lt\;/g;
                     $comment=~s/\>/\&gt\;/g;
                     $comment=~s/\:/\&colon;/g;
-                    $Apache::lonratedt::resources[
+		    if ($comment=~/\S/) {
+			$Apache::lonratedt::resources[
 				       $Apache::lonratedt::order[$idx]]=
-                             $comment.':'.join(':',@rrest);
-                    
+				            $comment.':'.join(':',@rrest);
+		    }
                 }
 # Store the changed version
 		($errtext,$fatal)=&storemap($coursenum,$coursedom,
@@ -988,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>');
@@ -1146,10 +1149,16 @@ END
 	    } elsif ($url!~/\.(sequence|page)$/) {
 		$url='/adm/coursedocs/showdoc'.$url;
 	    }
+	} 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) {
@@ -1158,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);
@@ -1168,8 +1180,19 @@ 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);
     }
+    &Apache::lonnet::logthis(" link \n$url");
     $line.='<td bgcolor="#FFFFBB"><a href="'.$url.'"><img src="'.$icon.
 	'" border="0"></a></td>'.
         "<td bgcolor='#FFFFBB'><a href='$url'>$title</a></td>";
@@ -1184,9 +1207,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'}" />
@@ -1599,11 +1622,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="'.
@@ -1662,7 +1691,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));