--- loncom/interface/lonprintout.pm	2002/12/03 22:05:08	1.94
+++ loncom/interface/lonprintout.pm	2003/01/06 15:19:21	1.101
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Printout
 #
-# $Id: lonprintout.pm,v 1.94 2002/12/03 22:05:08 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.101 2003/01/06 15:19:21 sakharuk Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -66,11 +66,12 @@ sub headerform {
 <body bgcolor="FFFFFF">
 <form method="post" enctype="multipart/form-data" action="/adm/printout" name="printform">
 ENDHEADER
-    if ($ENV{'request.role'}=~m/^cc\./ or $ENV{'request.role'}=~m/^in\./ or $ENV{'request.role'}=~m/^ta\./) { 
-    $r->print(<<ENDHEADER1);
+
+    if ($ENV{'form.postdata'}=~m|^/res/|) {
+	$r->print(<<ENDHEADER1);
 <b>Path to current document: </b><tt>$ENV{'form.postdata'}</tt><p>
 ENDHEADER1
-}
+    }
 }
 
 
@@ -81,9 +82,10 @@ sub menu_for_output {
     if ($title_for_single_resource ne '') {$title_for_single_resource = '"'.$title_for_single_resource.'"';}
     if ($title_for_sequence ne '') {$title_for_sequence = '"'.$title_for_sequence.'"';}
     if ($title_for_main_map ne '') {$title_for_main_map = '"'.$title_for_main_map.'"';}
+    $ENV{'form.postdata'} =~ s|http://[^/]+||;
     my $subdir_to_print = $ENV{'form.postdata'};
     $subdir_to_print =~ m/\/([^\/]+)$/;
-    $subdir_to_print =~ s/$1//;
+    $subdir_to_print =~ s/\Q$1\E//;
     $r->print(<<ENDMENUOUT1);
 <h1>What do you want to print? Make a choice.</h1><br />
 <input type="hidden" name="phase" value="two">
@@ -151,9 +153,11 @@ ENDMENUOUT5
 
 sub sequence_content_menu {
     my ($key_to,$r) = @_;
+    my $primary_sequence;
     my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});
     my @sequence = split('___',$symbolic);
-    my $primary_sequence = '/res/'.$sequence[0];   
+    if ($sequence[0]=~/^uploaded/) {$primary_sequence = '/'.$sequence[0];} 
+      else {$primary_sequence = '/res/'.$sequence[0];} 
     my @master_seq = &coming_from_hash($primary_sequence,$sequence[0]);
     my @master_seq_view = @master_seq;
     for (my $i=0;$i<=$#master_seq_view;$i++) {
@@ -193,7 +197,7 @@ ENDMENUOUT1
     my $inc=0; 
     for (my $i=0;$i<=$#master_seq_view;$i++) {
       if ($key_to==1 && $master_seq_view[$i]=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {
-	$r->print('<br /><input type=checkbox name="whatfile'.$inc.'" value="'.$master_seq[$i].'"> '.
+	$r->print('<br /><input type=checkbox name="whatfile'.$inc.'" value="'.$master_seq[$i].'"> '."\n".
                   $master_seq_view[$i]);
         $inc++;
     } elsif ($key_to==0 && $master_seq_view[$i]=~/\.(problem|exam|quiz|assess|survey|form|library|xml|htm|html|page)$/) {
@@ -217,14 +221,13 @@ sub problem_choice_menu {
     my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
     $subdirtoprint =~ s/\/[^\/]+$//;
     my @list_of_files = ();
-    if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) {
-	$subdirtoprint =~ s/^[^~]*~(\w+)\//\/home\/$1\/public_html\//;
-    } else {
-	$subdirtoprint =~ s/.*(\/res\/)/$1/;
-    }
     my @content_directory = ();
-    if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) {
-	@content_directory = &Apache::lonnet::dirlist($subdirtoprint,$ENV{'user.domain'}, $ENV{'user.name'},'');
+    if ($subdirtoprint =~ m|/home/([^/]+)/public_html|) {
+	#localmachine CSTR space
+	my $user=$1;
+	my $domain=$Apache::lonnet::perlvar{'lonDefDomain'};
+	@content_directory = &Apache::lonnet::dirlist($subdirtoprint,
+						      $domain, $user,'');
     } else {
 	@content_directory = &Apache::lonnet::dirlist($subdirtoprint);
     }
@@ -330,7 +333,7 @@ ENDMENUOUT1
     }
 </script>
 <input type=button onClick="checkall()" value="Check All">&nbsp;
-<input type=button onClick="checksec()" value="Check Section/Group">
+<input type=button onClick="checksec()" value="Type Section/Group then click">
 <input type=text size=5 name=chksec>&nbsp;
 <input type=button onClick="uncheckall()" value="Uncheck">
 <p>
@@ -431,7 +434,8 @@ ENDPART
 	if ($ENV{'form.papersize'} eq '') {$papersize = 'Letter [8 1/2x11 in]';}
 	if ($ENV{'form.numberofcolumns'} eq '') {$numberofcolumns = 2;}
     }
-    if (($choice eq 'Standard LaTeX output for current document') && ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./)) {
+    if (($choice eq 'Standard LaTeX output for current document') &&
+	($ENV{'form.url'}=~m|^/~|)) {
 	if ($ENV{'form.layout'} eq '') {$layout = 'CAPA';}
 	if ($ENV{'form.papersize'} eq '') {$papersize = 'Letter [8 1/2x11 in]';}
 	if ($ENV{'form.numberofcolumns'} eq '') {$numberofcolumns = 2;}
@@ -465,8 +469,14 @@ ENDPART
         if ($ENV{'form.url'}=~m/\.page\s*$/) {
 	  ($result,$number_of_columns) = &page_cleanup($result);
         }
-      } else{
-        $result='\documentclass[letterpaper]{article}\usepackage{calc}\begin{document}You are trying to print eather sequence or something simular. Currently this option is not supported. Sorry for the inconvenience. Bye. Your current URL is '.$ENV{'form.url'}.' \end{document}'
+      } else {
+	  $result='\documentclass[letterpaper]{article}\usepackage{calc}\begin{document}Printout of this type of document is currently not supported: ';
+	  if ($ENV{'form.url'}=~/\/(aboutme|syllabus|bulletinboard|smppg)$/) {
+	      $result.=$1;
+	  } else {
+	      $result.=$ENV{'form.url'};
+	  }
+	  $result.=' \end{document}'
       }
     } elsif ($choice eq 'Standard LaTeX output for the primary sequence' or 
              $choice eq 'Standard LaTeX output for whole primary sequence') {
@@ -492,7 +502,7 @@ ENDPART
 	   $moreenv{'form.grade_target'}='tex';
 	   $moreenv{'form.textwidth'}=$LaTeXwidth;
 	   &Apache::lonnet::appenv(%moreenv);
-	   &Apache::lonnet::logthis("Trying to get $urlp with symb $symb");
+	   #&Apache::lonnet::logthis("Trying to get $urlp with symb $symb");
 	   my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb));
 	   &Apache::lonnet::delenv('form.grade_target','form.textwidth');
 	   if ($urlp =~ m/\.page/) {
@@ -610,8 +620,8 @@ ENDPART
 		$moreenv{'form.grade_target'}='tex';
 		$moreenv{'form.textwidth'}=$LaTeXwidth;
 		&Apache::lonnet::appenv(%moreenv);
-		if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) { 
-		    $urlp =~ s/\/home\/([^\/]*)\/public_html/\/~$1/; 
+		if ($urlp =~ m|/home/([^/]+)/public_html|) {
+		    $urlp =~ s|/home/([^/]*)/public_html|/~$1|;
 		}
 		my $texversion=&Apache::lonnet::ssi($urlp);
 		&Apache::lonnet::delenv('form.grade_target','form.textwidth');
@@ -719,7 +729,13 @@ sub coming_from_hash {
     my $mapid = $hash{'map_pc_'.$mainsequence};
     my $mapstart = $hash{'map_start_'.$mainsequence};
     my $mapfinish = $hash{'map_finish_'.$mainsequence};
-    my ($presymb) = split(/___/,$symb);
+    my ($presymb);
+    if ($symb) {
+	($presymb)=split(/___/,$symb);
+    } else {
+	$presymb=$mainsequence;
+	$presymb=~s|^/res/||;
+    }
     $presymb = $presymb.'___';
     my $current_resource = $mapstart;
     while ($current_resource ne $mapfinish) {
@@ -1173,6 +1189,7 @@ sub character_chart {
 
 sub page_format_transformation {
 	my ($papersize,$layout,$numberofcolumns,$choice,$text,$assignment) = @_; 
+	$assignment=~s/_/ /g;
 	my ($textwidth,$textheight,$oddoffset,$evenoffset) = &page_format($papersize,$layout,$numberofcolumns);
 	my $courseidinfo = $ENV{'course.'.$ENV{'request.course.id'}.'.description'};	
 	if ($layout eq 'CBI') {