--- loncom/interface/lonprintout.pm 2008/03/31 09:51:11 1.527 +++ loncom/interface/lonprintout.pm 2008/12/06 12:49:18 1.546 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.527 2008/03/31 09:51:11 foxr Exp $ +# $Id: lonprintout.pm,v 1.546 2008/12/06 12:49:18 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -39,6 +39,8 @@ use Apache::File(); use Apache::lonnavmaps; use Apache::admannotations; use Apache::lonenc; +use Apache::entities; + use HTTP::Response; use LONCAPA::map(); @@ -150,7 +152,7 @@ sub ssi_with_retries { $ssi_error = 1; $ssi_last_error_resource = $resource; $ssi_last_error = $response->code . " " . $response->message; - $content='\section*{!!! An error occured !!!}'; + $content='\section*{!!! An error occurred !!!}'; &Apache::lonnet::logthis("Error in SSI resource: $resource Error: $ssi_last_error"); } @@ -166,7 +168,7 @@ sub get_student_view_with_retries { $ssi_error = 1; $ssi_last_error_resource = $curresline.' for user '.$username.':'.$userdomain; $ssi_last_error = $response->code . " " . $response->message; - $content='\section*{!!! An error occured !!!}'; + $content='\section*{!!! An error occurred !!!}'; &Apache::lonnet::logthis("Error in SSI (student view) resource: $curresline Error: $ssi_last_error User: $username:$userdomain"); } return $content; @@ -227,9 +229,11 @@ sub printf_style_subst { # %a - Assignment name. # %c - Course name. # %n - Student name. +# %s - The section if it is supplied. # sub format_page_header { - my ($width, $format, $assignment, $course, $student) = @_; + my ($width, $format, $assignment, $course, $student, $section) = @_; + $width = &recalcto_mm($width); # Get width in mm. # Default format? @@ -246,38 +250,43 @@ sub format_page_header { # - Allow the assignment to be 2 lines (wrapped). # my $chars_per_line = $width/2; # Character/textline. + - my $firstline = "$student $course"; - if (length($firstline) > $chars_per_line) { - my $lastchar = $chars_per_line - length($student) - 1; - if ($lastchar > 0) { - $course = substr($course, 0, $lastchar); - } else { # Nothing left of course: - $course = ''; - } - } - if (length($assignment) > $chars_per_line) { - $assignment = substr($assignment, 0, $chars_per_line); + my $name_length = int($chars_per_line *3 /4); + my $sec_length = int($chars_per_line / 5); + + $format = "%$name_length".'n'; + + if ($section) { + $format .= ' - Sec: '."%$sec_length".'s'; } - - $format = "\\textbf{$student} $course \\hfill \\thepage \\\\ \\textit{$assignment}"; - - } else { - # An open question is how to handle long user formatted page headers... - # A possible future is to support e.g. %na so that the user can control - # the truncation of the elements that can appear in the header. - # - $format = &printf_style_subst("a", $format, $assignment); - $format = &printf_style_subst("c", $format, $course); - $format = &printf_style_subst("n", $format, $student); - - # If the user put %'s in the format string, they must be escaped - # to \% else LaTeX will think they are comments and terminate - # the line.. which is bad!!! + $format .= '\\\\%c \\\\ %a'; + } + # An open question is how to handle long user formatted page headers... + # A possible future is to support e.g. %na so that the user can control + # the truncation of the elements that can appear in the header. + # + $format = &printf_style_subst("a", $format, $assignment); + $format = &printf_style_subst("c", $format, $course); + $format = &printf_style_subst("n", $format, $student); + $format = &printf_style_subst("s", $format, $section); + + + # If the user put %'s in the format string, they must be escaped + # to \% else LaTeX will think they are comments and terminate + # the line.. which is bad!!! + + # If the user has role author, $course and $assignment are empty so + # there is '\\ \\ ' in the page header. That's cause a error in LaTeX + if($format =~ /\\\\\s\\\\\s/) { + #TODO find sensible caption for page header + my $testPrintout = '\\\\'.&mt('Construction Space').' \\\\'.&mt('Test-Printout '); + $format =~ s/\\\\\s\\\\\s/$testPrintout/; + } return $format; @@ -383,8 +392,8 @@ sub is_valid_alpha_code { sub is_code_valid { my ($code_value, $code_option) = @_; my ($code_type, $code_length) = ('letter', 6); # defaults. - open(FG, $Apache::lonnet::perlvar{'lonTabDir'}.'/scantronformat.tab'); - foreach my $line () { + my @lines = &Apache::grades::get_scantronformat_file(); + foreach my $line (@lines) { my ($name, $type, $length) = (split(/:/, $line))[0,2,4]; if($name eq $code_option) { $code_length = $length; @@ -502,12 +511,19 @@ sub adjust_number_to_print { # Unmodified. } else { # Error!!!! - + croak "bad SPLIT_PDFS: $split_pdf in lonprintout::adjust_number_to_print"; + } } + sub character_chart { + my $result = shift; + return &Apache::entities::replace_entities($result); +} + +sub old_character_chart { my $result = shift; $result =~ s/&\#0?0?(7|9);//g; $result =~ s/&\#0?(10|13);//g; @@ -629,7 +645,7 @@ sub character_chart { $result =~ s/&(\#165|yen);/\\textyen /g; $result =~ s/&(\#166|brvbar);/\\textbrokenbar /g; $result =~ s/&(\#167|sect);/\\textsection /g; - $result =~ s/&(\#168|uml);/\\texthighdieresis /g; + $result =~ s/&(\#168|uml);/\\"\{\} /g; $result =~ s/&(\#169|copy);/\\copyright /g; $result =~ s/&(\#170|ordf);/\\textordfeminine /g; $result =~ s/&(\#172|not);/\\ensuremath\{\\neg\}/g; @@ -640,7 +656,7 @@ sub character_chart { $result =~ s/&(\#177|plusmn);/\\ensuremath\{\\pm\}/g; $result =~ s/&(\#178|sup2);/\\ensuremath\{^2\}/g; $result =~ s/&(\#179|sup3);/\\ensuremath\{^3\}/g; - $result =~ s/&(\#180|acute);/\\textacute /g; + $result =~ s/&(\#180|acute);/\\'\{\} /g; $result =~ s/&(\#181|micro);/\\ensuremath\{\\mu\}/g; $result =~ s/&(\#182|para);/\\P/g; $result =~ s/&(\#183|middot);/\\ensuremath\{\\cdot\}/g; @@ -969,6 +985,8 @@ sub get_course { my $courseidinfo; if (defined($env{'request.course.id'})) { $courseidinfo = &Apache::lonxml::latex_special_symbols(&unescape($env{'course.'.$env{'request.course.id'}.'.description'}),'header'); + my $sec = $env{'request.course.sec'}; + } return $courseidinfo; } @@ -991,7 +1009,6 @@ sub page_format_transformation { my $name = &get_name(); my $courseidinfo = &get_course(); - if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo } my $header_text = $parmhash{'print_header_format'}; $header_text = &format_page_header($textwidth, $header_text, $assignment, $courseidinfo, $name); @@ -1142,7 +1159,12 @@ sub print_latex_header { '\usepackage[dvips]{graphicx}\usepackage{epsfig}'."\n". '\usepackage{wrapfig}'. '\usepackage{picins}\usepackage{calc}'."\n". - '\usepackage[utf8]{inputenc}'."\n". + '\usepackage[T1]{fontenc}'."\n". + '\usepackage{lmodern}'."\n". + '\usepackage[postscript]{ucs}'."\n". + '\usepackage[utf8x]{inputenc}'."\n". + '\usepackage{pifont}' . "\n". + '\usepackage{latexsym}'."\n". '\usepackage{amsmath}'. '\usepackage{amssymb}'. '\usepackage{amsfonts}'. @@ -1259,20 +1281,43 @@ sub recently_generated { $cuid,$cgid,$crdev,$csize, $catime,$cmtime,$cctime, $cblksize,$cblocks)=stat($prtspool.'/'.$filename); - my $result="". - &mt('Generated [_1] ([_2] bytes)', - &Apache::lonlocal::locallocaltime($cctime),$csize). - '
'; + my $ext_text = 'pdf' ? &mt('PDF File'):&mt('Zip File'); + my $result=&Apache::loncommon::start_data_table_row() + .'' + .''.$ext_text.'' + .'' + .''.&Apache::lonlocal::locallocaltime($cctime).'' + .''.$csize.'' + .&Apache::loncommon::end_data_table_row(); if ($ext eq 'pdf') { $pdf_result .= $result; } if ($ext eq 'zip') { $zip_result .= $result; } } + if ($zip_result || $pdf_result) { + $r->print('
'); + } if ($zip_result) { - $r->print('

'.&mt('Recently generated printout zip files')."

\n" - .$zip_result); + $r->print('

'.&mt('Recently generated printout zip files')."

\n" + .&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() + .''.&mt('Download').'' + .''.&mt('Creation Date').'' + .''.&mt('File Size (Bytes)').'' + .&Apache::loncommon::end_data_table_header_row() + .$zip_result + .&Apache::loncommon::end_data_table() + ); } if ($pdf_result) { - $r->print('

'.&mt('Recently generated printouts')."

\n" - .$pdf_result); + $r->print('

'.&mt('Recently generated printouts')."

\n" + .&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() + .''.&mt('Download').'' + .''.&mt('Creation Date').'' + .''.&mt('File Size (Bytes)').'' + .&Apache::loncommon::end_data_table_header_row() + .$pdf_result + .&Apache::loncommon::end_data_table() + ); } } @@ -1460,7 +1505,7 @@ ENDPART my ($result,$selectionmade) = ('',''); my $number_of_columns = 1; #used only for pages to determine the width of the cell my @temporary_array=split /\|/,$format_from_helper; - my ($laystyle,$numberofcolumns,$papersize)=@temporary_array; + my ($laystyle,$numberofcolumns,$papersize,$pdfFormFields)=@temporary_array; if ($laystyle eq 'L') { $laystyle='album'; } else { @@ -1481,6 +1526,7 @@ ENDPART my %form; $form{'grade_target'} = 'tex'; $form{'textwidth'} = &get_textwidth($helper, $LaTeXwidth); + $form{'pdfFormFields'} = $pdfFormFields; # If form.showallfoils is set, then request all foils be shown: # privilege will be enforced both by not allowing the @@ -1652,7 +1698,8 @@ ENDPART ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') or ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_resources') or # BUGBUG - ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences')) { + ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences') + ) { #-- produce an output string @@ -1660,7 +1707,8 @@ ENDPART $selectionmade = 2; } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') { $selectionmade = 3; - } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') { + } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') + ) { $selectionmade = 4; } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_resources') { #BUGBUG $selectionmade = 4; @@ -1764,7 +1812,6 @@ ENDPART if (($selectionmade == 4) and ($assignment ne $prevassignment)) { my $name = &get_name(); my $courseidinfo = &get_course(); - if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo } $prevassignment=$assignment; my $header_text = $parmhash{'print_header_format'}; $header_text = &format_page_header($textwidth, $header_text, @@ -1815,12 +1862,14 @@ ENDPART } $result .= '\end{document}'; } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') || + ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems_students') || ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_students')){ #-- prints assignments for whole class or for selected students my $type; - if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') { + if (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') || + ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems_students') ) { $selectionmade=5; $type='problems'; } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_students') { @@ -1917,9 +1966,9 @@ ENDPART my $selected_code = $helper->{'VARS'}->{'CODE_SELECTED_FROM_LIST'}; my $code_option=$helper->{'VARS'}->{'CODE_OPTION'}; - open(FH,$Apache::lonnet::perlvar{'lonTabDir'}.'/scantronformat.tab'); + my @lines = &Apache::grades::get_scantronformat_file(); my ($code_type,$code_length)=('letter',6); - foreach my $line () { + foreach my $line (@lines) { my ($name,$type,$length) = (split(/:/,$line))[0,2,4]; if ($name eq $code_option) { $code_length=$length; @@ -2185,26 +2234,26 @@ ENDPART "cgi.$identifier.resources" => $resources_printed}); my $end_page = &Apache::loncommon::end_page(); + my $continue_text = &mt('Continue'); # If there's been an unrecoverable SSI error, report it to the user if ($ssi_error) { my $helpurl = &Apache::loncommon::top_nav_help('Helpdesk'); - my $end_page = &Apache::loncommon::end_page(); $r->print('

'.&mt('An unrecoverable network error occurred:').'

'. &mt('At least one of the resources you chose to print could not be rendered due to an unrecoverable error when communicating with a server:'). '
'.$ssi_last_error_resource.'
'.$ssi_last_error. '

'.&mt('You can continue using the link provided below, but make sure to carefully inspect your output file! The errors will be marked in the file.').'
'. - &mt('You may be able to reprint the individual resources for which this error occured, as the issue may be temporary.'). + &mt('You may be able to reprint the individual resources for which this error occurred, as the issue may be temporary.'). '
'.&mt('If the error persists, please contact the [_1] for assistance.',$helpurl).'

'. &mt('We apologize for the inconvenience.').'

'. - 'Continue'.$end_page); + ''.$continue_text.''.$end_page); } else { $r->print(< -Continue +$continue_text $end_page FINALEND - } # endif ssi errors. + } # endif ssi errors. } @@ -2319,7 +2368,7 @@ sub print_resources { $current_output .= $rendered; } elsif ($res_url=~/\/(smppg|syllabus|aboutme|bulletinboard)$/) { $printed .= $curresline.':'; - my $rendered = &get_student_view($curresline,$ssi_retry_count,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv); + my $rendered = &get_student_view_with_retries($curresline,$ssi_retry_count,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv); if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') { my $url = &Apache::lonnet::clutter($res_url); my $annotation = &annotate($url); @@ -2347,12 +2396,10 @@ sub print_resources { if (&Apache::loncommon::connection_aborted($r)) { last; } } my $courseidinfo = &get_course(); - if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo } - if ($usersection ne '') {$courseidinfo.=' - Sec. '.$usersection} my $currentassignment=&Apache::lonxml::latex_special_symbols($helper->{VARS}->{'assignment'},'header'); my $header_line = &format_page_header($LaTeXwidth, $parmhash{'print_header_format'}, - $currentassignment, $courseidinfo, $fullname); + $currentassignment, $courseidinfo, $fullname, $usersection); my $header_start = ($columns_in_format == 1) ? '\lhead' : '\fancyhead[LO]'; $header_line = $header_start.'{'.$header_line.'}'; @@ -2624,9 +2671,9 @@ sub printHelper { } # Useful filter strings - my $isProblem = '($res->is_problem()||$res->contains_problem) '; + my $isProblem = '($res->is_problem()||$res->contains_problem||$res->is_practice()) '; $isProblem .= ' && !$res->randomout()' if !$userCanSeeHidden; - my $isProblemOrMap = '$res->is_problem() || $res->contains_problem() || $res->is_sequence()'; + my $isProblemOrMap = '$res->is_problem() || $res->contains_problem() || $res->is_sequence() || $res->is_practice()'; my $isNotMap = '!$res->is_sequence()'; $isNotMap .= ' && !$res->randomout()' if !$userCanSeeHidden; my $isMap = '$res->is_map()'; @@ -2649,9 +2696,9 @@ sub printHelper { $helper->{VARS}->{'postdata'} && $helper->{VARS}->{'assignment'}) { # Allow problems from sequence - push @{$printChoices}, [&mt('Selected Problems in folder [_1]',$sequenceTitle), 'map_problems', 'CHOOSE_PROBLEMS']; + push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from folder [_3]','','',''.$sequenceTitle.''), 'map_problems', 'CHOOSE_PROBLEMS']; # Allow all resources from sequence - push @{$printChoices}, [&mt('Selected Resources in folder [_1]',$sequenceTitle), 'map_problems_pages', 'CHOOSE_PROBLEMS_HTML']; + push @{$printChoices}, [&mt('Selected [_1]Resources[_2] from folder [_3]','','',''.$sequenceTitle.''), 'map_problems_pages', 'CHOOSE_PROBLEMS_HTML']; my $helperFragment = < @@ -2680,13 +2727,14 @@ HELPERFRAGMENT &Apache::lonxml::xmlparse($r, 'helper', $helperFragment); } - # If the user has pfo (print for otheres) allow them to print all - # problems and resources in the entier course, optionally for selected students + # If the user has pfo (print for others) allow them to print all + # problems and resources in the entire course, optionally for selected students if ($perm{'pfo'} && !$is_published && ($helper->{VARS}->{'postdata'}=~/\/res\// || $helper->{VARS}->{'postdata'}=~/\/(syllabus|smppg|aboutme|bulletinboard)$/)) { push @{$printChoices}, [&mtn('Selected Problems from entire course'), 'all_problems', 'ALL_PROBLEMS']; push @{$printChoices}, [&mtn('Selected Resources from entire course'), 'all_resources', 'ALL_RESOURCES']; + push @{$printChoices}, [&mtn('Selected Problems from entire course for selected people'), 'all_problems_students', 'ALL_PROBLEMS_STUDENTS']; &Apache::lonxml::xmlparse($r, 'helper', < + + + STUDENTS1 + return $isProblemOrMap; + return $isNotMap; + return $symbFilter; + $start_new_option + + + + Select sorting order of printout + + Sort by section then student + Sort by students across sections. + +


+ +
+ ALL_PROBLEMS if ($helper->{VARS}->{'assignment'}) { - push @{$printChoices}, [&mt("Selected Problems from folder [_1] for selected people",$sequenceTitle), 'problems_for_students', 'CHOOSE_STUDENTS']; - push @{$printChoices}, [&mt("Selected Problems from folder [_1] for CODEd assignments",$sequenceTitle), 'problems_for_anon', 'CHOOSE_ANON1']; + push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from folder [_3] for [_4]selected people[_5]','','',''.$sequenceTitle.'','',''), 'problems_for_students', 'CHOOSE_STUDENTS']; + push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from folder [_3] for [_4]CODEd assignments[_5]','','',''.$sequenceTitle.'','',''), 'problems_for_anon', 'CHOOSE_ANON1']; } my $randomly_ordered_warning = @@ -2816,10 +2884,9 @@ CHOOSE_STUDENTS } - - open(FH,$Apache::lonnet::perlvar{'lonTabDir'}.'/scantronformat.tab'); + my @lines = &Apache::grades::get_scantronformat_file(); my $codechoice=''; - foreach my $line () { + foreach my $line (@lines) { my ($name,$description,$code_type,$code_length)= (split(/:/,$line))[0,1,2,4]; if ($code_length > 0 && @@ -2890,8 +2957,8 @@ CHOOSE_ANON1 if ($helper->{VARS}->{'assignment'}) { - push @{$printChoices}, [&mt("Selected Resources from folder [_1] for selected people",$sequenceTitle), 'resources_for_students', 'CHOOSE_STUDENTS1']; - push @{$printChoices}, [&mt("Selected Resources from folder [_1] for CODEd assignments",$sequenceTitle), 'resources_for_anon', 'CHOOSE_ANON2']; + push @{$printChoices}, [&mt('Selected [_1]Resources[_2] from folder [_3] for [_4]selected people[_5]','','',''.$sequenceTitle.'','',''), 'resources_for_students', 'CHOOSE_STUDENTS1']; + push @{$printChoices}, [&mt('Selected [_1]Resources[_2] from folder [_3] for [_4]CODEd assignments[_5]','','',''.$sequenceTitle.'','',''), 'resources_for_anon', 'CHOOSE_ANON2']; } @@ -3014,7 +3081,7 @@ CHOOSE_ANON2 ) { my $pretty_dir = &Apache::lonnet::hreflocation($subdir); - push @{$printChoices}, [&mt("Selected Problems from current subdirectory [_1]",$pretty_dir), 'problems_from_directory', 'CHOOSE_FROM_SUBDIR']; + push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from current subdirectory [_3]','','',''.$pretty_dir.'','',''), 'problems_from_directory', 'CHOOSE_FROM_SUBDIR']; my $xmlfrag = < @@ -3084,10 +3151,18 @@ CHOOSE_FROM_ANY_SEQUENCE if (($perm{'pav'} and &Apache::lonnet::allowed('vgr',$env{'request.course.id'})) or ($helper->{VARS}->{'construction'} eq '1')) { - addMessage("
"); + &addMessage(&Apache::lonhtmlcommon::row_closure()); $startedTable = 1; } @@ -3109,10 +3184,12 @@ CHOOSE_FROM_ANY_SEQUENCE ": "); + &addMessage(&Apache::lonhtmlcommon::row_closure()); if (not $helper->{VARS}->{'construction'}) { - addMessage(""); - addMessage(""); + &addMessage(&Apache::lonhtmlcommon::row_closure()); # Prompt for printing annotations too. - addMessage(""); + &addMessage(&Apache::lonhtmlcommon::row_closure()); - addMessage(""); + &addMessage(&Apache::lonhtmlcommon::row_closure(1)); } if ($helper->{'VARS'}->{'construction'}) { @@ -3198,32 +3284,44 @@ CHOOSE_FROM_ANY_SEQUENCE my $stylefiletext=&mt("Use style file"); my $selectfiletext=&mt("Select style file"); - my $xmlfrag .= <<"RNDSEED"; - -RNDSEED +   + ' + .'' + .&Apache::lonhtmlcommon::row_closure() + .''; &Apache::lonxml::xmlparse($r, 'helper', $xmlfrag); - addMessage(""); + &addMessage(&Apache::lonhtmlcommon::row_closure(1)); - } + } } if ($startedTable) { - addMessage("
". - ': "); + &addMessage('
' + .'

'.&mt('Print Options').'

' + .&Apache::lonhtmlcommon::start_pick_box() +# .&Apache::lonhtmlcommon::row_headline() +# .'

'.&mt('Print Options').'

' +# .&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_title( + '' + ) + ); $paramHash = Apache::lonhelper::getParamHash(); $paramHash->{'variable'} = 'ANSWER_TYPE'; $helper->declareVar('ANSWER_TYPE'); @@ -3097,7 +3172,7 @@ CHOOSE_FROM_ANY_SEQUENCE ['Only Answers', 'only'] ]; Apache::lonhelper::dropdown->new(); - addMessage("
"); $startedTable = 1; } else { - addMessage("
". - ': "); + &addMessage(&Apache::lonhtmlcommon::row_title( + '' + ) + ); } $paramHash = Apache::lonhelper::getParamHash(); $paramHash->{'variable'} = 'LATEX_TYPE'; @@ -3128,10 +3205,13 @@ CHOOSE_FROM_ANY_SEQUENCE } Apache::lonhelper::dropdown->new(); - addMessage("
". - ': "); + &addMessage(&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_title( + '' + ) + ); $paramHash = Apache::lonhelper::getParamHash(); $paramHash->{'variable'} = 'TABLE_CONTENTS'; $helper->declareVar('TABLE_CONTENTS'); @@ -3139,13 +3219,15 @@ CHOOSE_FROM_ANY_SEQUENCE ['No', 'no'], ['Yes', 'yes'] ]; Apache::lonhelper::dropdown->new(); - addMessage("
". - ': "); + &addMessage(&Apache::lonhtmlcommon::row_title( + '' + ) + ); $paramHash = Apache::lonhelper::getParamHash(); $paramHash->{'variable'} = 'TABLE_INDEX'; $helper->declareVar('TABLE_INDEX'); @@ -3153,11 +3235,13 @@ CHOOSE_FROM_ANY_SEQUENCE ['No', 'no'], ['Yes', 'yes'] ]; Apache::lonhelper::dropdown->new(); - addMessage("
". - ': "); + &addMessage(&Apache::lonhtmlcommon::row_closure()); + &addMessage(&Apache::lonhtmlcommon::row_title( + '' + ) + ); $paramHash = Apache::lonhelper::getParamHash(); $paramHash->{'variable'} = 'PRINT_DISCUSSIONS'; $helper->declareVar('PRINT_DISCUSSIONS'); @@ -3165,14 +3249,16 @@ CHOOSE_FROM_ANY_SEQUENCE ['No', 'no'], ['Yes', 'yes'] ]; Apache::lonhelper::dropdown->new(); - addMessage("
". - ':"); + &addMessage(&Apache::lonhtmlcommon::row_title( + '' + ) + ); $paramHash = Apache::lonhelper::getParamHash(); $paramHash->{'variable'} = "PRINT_ANNOTATIONS"; $helper->declareVar("PRINT_ANNOTATIONS"); @@ -3180,16 +3266,16 @@ CHOOSE_FROM_ANY_SEQUENCE ['No', 'no'], ['Yes', 'yes']]; Apache::lonhelper::dropdown->new(); - addMessage("
"); + &addMessage(&Apache::lonhtmlcommon::row_title(&mt('Foils'))); $paramHash = Apache::lonhelper::getParamHash(); $paramHash->{'multichoice'} = "true"; $paramHash->{'allowempty'} = "true"; $paramHash->{'variable'} = "showallfoils"; $paramHash->{'CHOICES'} = [ ["Show all foils", "1"] ]; Apache::lonhelper::choices->new(); - addMessage("
- : - - - - return $helper->{VARS}->{'curseed'}; - - -
- : - + my $xmlfrag .= '' + .&Apache::lonhtmlcommon::row_title('' + ) + .' + + + return '.$helper->{VARS}->{'curseed'}.'; + ' + .'' + .'' + .&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_title('' + ) + .' - - return $stylevalue; - -   $selectfiletext
+ + return '.$stylevalue.'; + +  ' +.qq|| +.$selectfiletext.'' + .&Apache::lonhtmlcommon::row_closure() + .&Apache::lonhtmlcommon::row_title(&mt('Show all foils')) + .' - Show all foils - -
Problem Type:"); + &addMessage(&Apache::lonhtmlcommon::row_title(&mt('Problem Type'))); # # Initial value from construction space: # @@ -3242,16 +3340,16 @@ RNDSEED PROBTYPE &Apache::lonxml::xmlparse($r, 'helper', $xmlfrag); - addMessage("
"); + &addMessage(&Apache::lonhtmlcommon::end_pick_box()); } Apache::lonprintout::page_format_state->new("FORMAT"); @@ -3350,23 +3448,25 @@ sub render { my $PaperType=&mt('Paper type'); my $landscape=&mt('Landscape'); my $portrait=&mt('Portrait'); - $result .= <' + .&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() + .''.$PageLayout.'' + .''.$NumberOfColumns.'' + .''.$PaperType.'' + .''.$pdfFormLabel.'' + .&Apache::loncommon::end_data_table_header_row() + .&Apache::loncommon::start_data_table_row() + .'' + .'
' + .'' + .''; -
- - - - - - - - -
$PageLayout$NumberOfColumns$PaperType
-
- -
- ' + .'
"; + $result .= < + + + + +HTML + $result.=&Apache::loncommon::end_data_table_row() + .&Apache::loncommon::end_data_table(); + return $result; } @@ -3406,7 +3518,7 @@ sub postprocess { my $helper = Apache::lonhelper->getHelper(); $helper->{VARS}->{$var} = $env{"form.$var.layout"} . '|' . $env{"form.$var.cols"} . '|' . - $env{"form.$var.paper"}; + $env{"form.$var.paper"} . '|' . $env{"form.$var.pdfFormFields"}; return 1; }