Diff for /loncom/homework/structuretags.pm between versions 1.104 and 1.105

version 1.104, 2002/08/20 14:42:22 version 1.105, 2002/08/23 21:17:16
Line 101  sub page_start { Line 101  sub page_start {
     }      }
     $body_tag_start.='>';      $body_tag_start.='>';
   }    }
   return ($result,$head_tag_start,$body_tag_start);    my $form_tag_start;
     if (!defined($found{'form'})) {
       $form_tag_start='<form name="lonhomework" method="POST" action="'.
         $ENV{'request.uri'}.'">';
     }
     return ($result,$head_tag_start,$body_tag_start,$form_tag_start);
   }
   
   sub get_resource_name {
     my ($parstack,$safeeval)=@_;
     my $name=&Apache::lonxml::get_param('name',$parstack,$safeeval);
     if ($name eq '') { 
       $name=&Apache::lonnet::EXT('resource.title');
       if ($name eq 'con_lost') { $name = ''; }
     }
     $Apache::lonhomework::name=$name;
     return $name;
   }
   
   sub setup_rndseed {
     my ($safeeval)=@_;
     my $rndseed;
     if ($ENV{'request.state'} eq "construct") {
       $rndseed=$ENV{'form.rndseed'};
       if (!$rndseed) {
         $rndseed=time;
         $ENV{'form.rndseed'}=$rndseed;
       }
       &Apache::run::run('$external::randomseed='.$rndseed.';',$safeeval);
     }
     return $rndseed;
   }
   
   sub problem_edit_header {
     return '<input type="hidden" name="submitted" value="edit" />
          <input type="hidden" name="problemmode" value="Edit" />
          <input type="submit" name="problemmode" value="Discard Edits and View" />
          <input type="submit" name="problemmode" value="EditXML" />
          <input type="submit" name="Undo" value="undo" /> <hr />
          <input type="submit" name="submit" value="Submit Changes" />
          <input type="submit" name="submit" value="Submit Changes and View" /><br />
         ';
   }
   
   sub problem_edit_footer {
     return '<br /><input type="submit" name="submit" value="Submit Changes and Edit" />
       <input type="submit" name="submit" value="Submit Changes and View" />';
   }
   
   sub problem_web_to_edit_header {
     my ($rndseed)=@_;
     my $result.='<input type="hidden" name="problemmode" value="View" />
                <input type="submit" name="problemmode" value="Edit" />
                <input type="submit" name="problemmode" value="EditXML" />
                Random Seed:<input type="text" name="rndseed" width="10" value="'.
          $rndseed.'" />
                <input type="submit" name="changerandseed" value="Change" />
                <input type="submit" name="resetdata" value="Reset Submissions" />
                <input type="checkbox" name="showallfoils" ';
     if (defined($ENV{'form.showallfoils'})) { $result.='checked="on"'; }
     $result.= ' /> Show All Foils
                <hr />';
 }  }
   
 sub initialize_storage {  sub initialize_storage {
Line 200  sub start_problem { Line 261  sub start_problem {
   my $accessmsg;    my $accessmsg;
   
   #should get back a <html> or the neccesary stuff to start XML/MathML    #should get back a <html> or the neccesary stuff to start XML/MathML
   my ($result,$head_tag_start,$body_tag_start)=    my ($result,$head_tag_start,$body_tag_start,$form_tag_start)=
     &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);      &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);
   if ($target eq 'tex' and $ENV{'request.symb'} =~ m/\.page_/) { $result = '';}    if ($target eq 'tex' and $ENV{'request.symb'} =~ m/\.page_/) { $result = '';}
   
Line 216  sub start_problem { Line 277  sub start_problem {
     }      }
   
     #handle rand seed in construction space      #handle rand seed in construction space
     my $rndseed;      my $rndseed=&setup_rndseed($safeeval);
     if ($ENV{'request.state'} eq "construct") {  
       $rndseed=$ENV{'form.rndseed'};  
       if (!$rndseed) {  
  $rndseed=time;  
  $ENV{'form.rndseed'}=$rndseed;  
       }  
       &Apache::run::run('$external::randomseed='.$rndseed.';',$safeeval);  
     }  
     ($status,$accessmsg) = &Apache::lonhomework::check_access('0');      ($status,$accessmsg) = &Apache::lonhomework::check_access('0');
     push (@Apache::inputtags::status,$status);      push (@Apache::inputtags::status,$status);
     my $expression='$external::datestatus="'.$status.'";';      my $expression='$external::datestatus="'.$status.'";';
Line 246  sub start_problem { Line 299  sub start_problem {
  $result.=$msg.'<br />';   $result.=$msg.'<br />';
       }        }
     } elsif ($target eq 'web') {      } elsif ($target eq 'web') {
       my $name= &Apache::lonxml::get_param('name',$parstack,$safeeval);        my $name= &get_resource_name($parstack,$safeeval);
       if ($name eq '') {   
  $name=&Apache::lonnet::EXT('resource.title');  
  if ($name eq 'con_lost') { $name = ''; }  
       }  
       $Apache::lonhomework::name=$name;  
       if ($status eq 'CAN_ANSWER') {        if ($status eq 'CAN_ANSWER') {
  # create a page header and exit   # create a page header and exit
  $result.="$head_tag_start<title>$name</title></head>\n   $result.="$head_tag_start<title>$name</title></head>
               $body_tag_start\n                $body_tag_start \n $form_tag_start".
               <form name=\"lonhomework\" method=\"POST\" action=\"".$ENV{'request.uri'}."\">".  
  '<input type="hidden" name="submitted" value="yes" />';   '<input type="hidden" name="submitted" value="yes" />';
  if ($ENV{'request.state'} eq "construct") {   if ($ENV{'request.state'} eq "construct") {
   $result.=    $result.= &problem_web_to_edit_header($rndseed);
     '<input type="hidden" name="problemmode" value="View" />  
              <input type="submit" name="problemmode" value="Edit" />  
              <input type="submit" name="problemmode" value="EditXML" />  
              Random Seed:<input type="text" name="rndseed" width="10" value="'.  
        $rndseed.'" />  
              <input type="submit" name="changerandseed" value="Change" />  
              <input type="submit" name="resetdata" value="Reset Submissions" />  
              <input type="checkbox" name="showallfoils" ';  
   if (defined($ENV{'form.showallfoils'})) { $result.='checked="on"'; }  
   $result.= ' /> Show All Foils  
              <hr />';  
  }   }
  # if we are viewing someone else preserve that info   # if we are viewing someone else preserve that info
  if (defined $ENV{'form.grade_symb'}) {   if (defined $ENV{'form.grade_symb'}) {
Line 325  sub start_problem { Line 361  sub start_problem {
  }   }
     }      }
   } elsif ($target eq 'edit') {    } elsif ($target eq 'edit') {
     $result.=$head_tag_start."</head>".$body_tag_start.      $result.=$head_tag_start."</head>".$body_tag_start.$form_tag_start.
       '<form name="lonhomework" method="POST" action="'.        &problem_edit_header();
  $ENV{'request.uri'}.'">  
        <input type="hidden" name="submitted" value="edit" />  
        <input type="hidden" name="problemmode" value="Edit" />  
        <input type="submit" name="problemmode" value="Discard Edits and View" />  
        <input type="submit" name="problemmode" value="EditXML" />  
        <input type="submit" name="Undo" value="undo" /> <hr />  
        <input type="submit" name="submit" value="Submit Changes" />  
        <input type="submit" name="submit" value="Submit Changes and View" /><br />  
       ';  
     my $temp=&Apache::edit::insertlist($target,$token);      my $temp=&Apache::edit::insertlist($target,$token);
     $result.=$temp;      $result.=$temp;
   } elsif ($target eq 'modified') {    } elsif ($target eq 'modified') {
Line 384  sub end_problem { Line 411  sub end_problem {
     }      }
   } elsif ($target eq 'edit') {    } elsif ($target eq 'edit') {
     &Apache::lonxml::debug("in end_problem with $target, edit");      &Apache::lonxml::debug("in end_problem with $target, edit");
     $result ='<br /><input type="submit" name="submit" value="Submit Changes and Edit" />';      $result = &problem_edit_footer();
     $result.='<input type="submit" name="submit" value="Submit Changes and View" />';  
   } elsif ($target eq 'tex') {    } elsif ($target eq 'tex') {
       $result .= '\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}';        $result .= '\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}';
       if (not $ENV{'request.symb'} =~ m/\.page_/) {        if (not $ENV{'request.symb'} =~ m/\.page_/) {
Line 399  sub end_problem { Line 425  sub end_problem {
   
 sub start_library {  sub start_library {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   my ($result,$head_tag_start,$body_tag_start)=    my ($result,$head_tag_start,$body_tag_start,$form_tag_start)=
     &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);      &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);
   if ($target eq 'edit') {    if ($target eq 'edit') {
     $result.=$head_tag_start."</head>".$body_tag_start.      $result.=$head_tag_start."</head>".$body_tag_start.$form_tag_start.
       '<form name="lonhomework" method="POST" action="'.$ENV{'request.uri'}.'">        &problem_edit_header();
        <input type="hidden" name="submitted" value="edit" />  
        <input type="hidden" name="problemmode" value="Edit" />  
        <input type="submit" name="problemmode" value="View" />  
        <input type="submit" name="Undo" value="undo" /> <hr />  
       ';  
     my $temp=&Apache::edit::insertlist($target,$token);      my $temp=&Apache::edit::insertlist($target,$token);
     $result.=$temp;      $result.=$temp;
     return $result;    } elsif ($target eq 'modified') {
   }  
   if ($target eq 'modified') {  
     $result=$token->[4];      $result=$token->[4];
     $result.=&Apache::edit::handle_insert();      $result.=&Apache::edit::handle_insert();
     return $result;    } elsif ($target eq 'web' && $ENV{'request.state'} eq "construct" ) {
       my $name=&get_resource_name($parstack,$safeeval);
       my $rndseed=&setup_rndseed($safeeval);
       $result.="$head_tag_start<title>$name</title></head>
                 $body_tag_start \n $form_tag_start".
    '<input type="hidden" name="submitted" value="yes" />';
       $result.=&problem_web_to_edit_header($rndseed);
   }    }
   return '';    return $result;
 }  }
   
 sub end_library {  sub end_library {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   my $result='';    my $result='';
   if ($target eq 'edit') {    if ($target eq 'edit') {
     $result='<br /><input type="submit" name="submit" value="Submit Changes" />';      $result=&problem_edit_footer();
     } elsif ($target eq 'web' && $ENV{'request.state'} eq "construct") {
       $result.='</form></body>'.&Apache::lonxml::xmlend();
   }    }
   return $result;    return $result;
 }  }

Removed from v.1.104  
changed lines
  Added in v.1.105


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>