Diff for /loncom/interface/lonhelper.pm between versions 1.166 and 1.175

version 1.166, 2008/09/17 15:53:34 version 1.175, 2009/06/12 17:58:22
Line 188  use Apache::lonlocal; Line 188  use Apache::lonlocal;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::longroup;  use Apache::longroup;
 use Apache::lonselstudent;  use Apache::lonselstudent;
   
   
 use LONCAPA;  use LONCAPA;
   
 # Register all the tags with the helper, so the helper can   # Register all the tags with the helper, so the helper can 
Line 529  sub process { Line 531  sub process {
     # Phase 1: Post processing for state of previous screen (which is actually      # Phase 1: Post processing for state of previous screen (which is actually
     # the "current state" in terms of the helper variables), if it wasn't the       # the "current state" in terms of the helper variables), if it wasn't the 
     # beginning state.      # beginning state.
     if ($self->{STATE} ne "START" || $env{"form.SUBMIT"} eq &mt("Next ->")) {      if ($self->{STATE} ne "START" || $env{"form.SUBMIT"} eq &mt("Next")) {
  my $prevState = $self->{STATES}{$self->{STATE}};   my $prevState = $self->{STATES}{$self->{STATE}};
         $prevState->postprocess();          $prevState->postprocess();
     }      }
Line 587  sub display { Line 589  sub display {
  &Apache::loncommon::browser_and_searcher_javascript().   &Apache::loncommon::browser_and_searcher_javascript().
  "\n".'</script>';   "\n".'</script>';
   
       # Breadcrumbs
       my $brcrum = [{'href' => '',
                      'text' => 'Helper'}];
       # FIXME: Dynamically add context sensitive breadcrumbs
       #        depending on the caller,
       #        e.g. printing, parametrization, etc.
       # FIXME: Add breadcrumbs to reflect current helper state
   
     $result .= &Apache::loncommon::start_page($self->{TITLE},      $result .= &Apache::loncommon::start_page($self->{TITLE},
       $browser_searcher_js);                                                $browser_searcher_js,
                                                     {'bread_crumbs' => $brcrum,});
     my $previous = HTML::Entities::encode(&mt("<- Previous"), '<>&"');  
     my $next = HTML::Entities::encode(&mt("Next ->"), '<>&"');      my $previous = HTML::Entities::encode(&mt("Back"), '<>&"');
       my $next = HTML::Entities::encode(&mt("Next"), '<>&"');
     # FIXME: This should be parameterized, not concatenated - Jeremy      # FIXME: This should be parameterized, not concatenated - Jeremy
   
   
     if (!$state->overrideForm()) { $result.="<form name='helpform' method='POST'>"; }      if (!$state->overrideForm()) { $result.='<form name="helpform" method="post">'; }
     if ($stateHelp) {      if ($stateHelp) {
  $stateHelp = &Apache::loncommon::help_open_topic($stateHelp);          $stateHelp = &Apache::loncommon::help_open_topic($stateHelp);
     }  
     $result .= <<HEADER;  
         <table border="0" width='100%'><tr><td>  
         <h2><i>$stateTitle</i>$stateHelp</h2>  
 HEADER  
   
     $result .= "<table cellpadding='10' width='100%'><tr><td rowspan='2' valign='top'>";  
   
     if (!$state->overrideForm()) {  
         $result .= $self->_saveVars();  
     }      }
     $result .= $state->render();  
   
     $result .= "</td><td valign='top' align='right'>";  
   
     # Warning: Copy and pasted from below, because it's too much trouble to       # Prepare buttons
     # turn this into a subroutine      my $buttons;
     if (!$state->overrideForm()) {      if (!$state->overrideForm()) {
         if ($self->{STATE} ne $self->{START_STATE}) {          if ($self->{STATE} ne $self->{START_STATE}) {
             #$result .= '<input name="SUBMIT" type="submit" value="&lt;- Previous" />&nbsp;&nbsp;';              #$result .= '<input name="SUBMIT" type="submit" value="&lt;- Previous" />&nbsp;&nbsp;';
         }          }
           $buttons = '<p>'; # '<fieldset>';
         if ($self->{DONE}) {          if ($self->{DONE}) {
             my $returnPage = $self->{RETURN_PAGE};              my $returnPage = $self->{RETURN_PAGE};
             $result .= "<a href=\"$returnPage\">" . &mt("End Helper") . "</a>";              $buttons .= '<a href="'.$returnPage.'">'.&mt('End Helper').'</a>';
         }          }
         else {          else {
             $result .= '<nobr><input name="back" type="button" ';              $buttons .= '<span class="LC_nobreak">'
             $result .= 'value="' . $previous . '" onclick="history.go(-1)" /> ';                         .'<input name="back" type="button" '
             $result .= '<input name="SUBMIT" type="submit" value="' . $next . '" /></nobr>';                         .'value="'.$previous.'" onclick="history.go(-1)" /> '
                          .'<input name="SUBMIT" type="submit" value="'.$next.'" />'
                          .'</span>';
         }          }
       $buttons .= '</p>'; # '</fieldset>';
     }      }
   
     $result .= "</td></tr><tr><td valign='bottom' align='right'>";  
   
     # Warning: Copy and pasted from above, because it's too much trouble to   
     # turn this into a subroutine      $result .= '<h2>'.$stateTitle.$stateHelp.'</h2>';
   
   #   $result .= '<div>';
   
       # Top buttons
       $result .= $buttons;
   
       # Main content of current helper screen
     if (!$state->overrideForm()) {      if (!$state->overrideForm()) {
         if ($self->{STATE} ne $self->{START_STATE}) {          $result .= $self->_saveVars();
             #$result .= '<input name="SUBMIT" type="submit" value="&lt;- Previous" />&nbsp;&nbsp;';  
         }  
         if ($self->{DONE}) {  
             my $returnPage = $self->{RETURN_PAGE};  
             $result .= "<a href=\"$returnPage\">" . &mt('End Helper') . "</a>";  
         }  
         else {  
             $result .= '<nobr><input name="back" type="button" ';  
             $result .= 'value="' . $previous . '" onclick="history.go(-1)" /> ';  
             $result .= '<input name="SUBMIT" type="submit" value="' . $next . '" /></nobr>';  
         }  
     }      }
       $result .= $state->render();
   
       # Bottom buttons
       $result .= $buttons;
   
   
     #foreach my $key (keys %{$self->{VARS}}) {      #foreach my $key (keys %{$self->{VARS}}) {
     #    $result .= "|$key| -> " . $self->{VARS}->{$key} . "<br />";      #    $result .= "|$key| -> " . $self->{VARS}->{$key} . "<br />";
     #}      #}
   
     $result .= "</td></tr></table>";  #   $result .= '</div>';
   
     $result .= <<FOOTER;      $result .= <<FOOTER;
               </td>  
             </tr>  
           </table>  
         </form>          </form>
 FOOTER  FOOTER
   
Line 1508  sub postprocess { Line 1507  sub postprocess {
     my $self = shift;      my $self = shift;
     my $chosenValue = $env{'form.' . $self->{'variable'} . '_forminput'};      my $chosenValue = $env{'form.' . $self->{'variable'} . '_forminput'};
   
   
     if (!defined($chosenValue) && !$self->{'allowempty'}) {      if (!defined($chosenValue) && !$self->{'allowempty'}) {
         $self->{ERROR_MSG} =           $self->{ERROR_MSG} = 
     &mt("You must choose one or more choices to continue.");      &mt("You must choose one or more choices to continue.");
         return 0;          return 0;
     }      }
   
   
   
     if (ref($chosenValue)) {      if (ref($chosenValue)) {
         $helper->{VARS}->{$self->{'variable'}} = join('|||', @$chosenValue);          $helper->{VARS}->{$self->{'variable'}} = join('|||', @$chosenValue);
     }      }
Line 2446  sub postprocess { Line 2448  sub postprocess {
         $self->{ERROR_MSG} = 'You must choose at least one resource to continue.';          $self->{ERROR_MSG} = 'You must choose at least one resource to continue.';
         return 0;          return 0;
     }      }
       # For each of the attached options.  If it's env var is undefined, set it to
       # an empty string instead.. an undef'd env var means no choices selected.
       #
   
       my $option_vars = $self->{OPTION_VARS};
       if ($option_vars) {
    foreach my $var (@$option_vars) {
       my $env_name = "form.".$var."_forminput";
       if (!defined($env{$env_name})) {
    $env{$env_name} = '';
    $helper->{VARS}->{$var} = '';
       }
    }
       }
   
   
     if (defined($self->{NEXTSTATE})) {      if (defined($self->{NEXTSTATE})) {
         $helper->changeState($self->{NEXTSTATE});          $helper->changeState($self->{NEXTSTATE});
Line 3542  sub render { Line 3559  sub render {
  }   }
  my $finish=&mt('Finish Course Initialization');   my $finish=&mt('Finish Course Initialization');
     }      }
     my $previous = HTML::Entities::encode(&mt("<- Previous"), '<>&"');      my $previous = HTML::Entities::encode(&mt("Back"), '<>&"');
     my $next = HTML::Entities::encode(&mt("Next ->"), '<>&"');      my $next = HTML::Entities::encode(&mt("Next"), '<>&"');
     my $target = " target='loncapaclient'";      my $target = " target='loncapaclient'";
     if (($env{'browser.interface'} eq 'textual') ||      if ($env{'environment.remote'} eq 'off') {  $target='';  }
         ($env{'environment.remote'} eq 'off')) {  $target='';  }  
     $result .= "<center>\n" .      $result .= "<center>\n" .
  "<form action='".$actionURL."' method='post' $target>\n" .   "<form action='".$actionURL."' method='post' $target>\n" .
  "<input type='button' onclick='history.go(-1)' value='$previous' />" .   "<input type='button' onclick='history.go(-1)' value='$previous' />" .
Line 3633  sub render { Line 3649  sub render {
           
     # Print the granularity, depending on the action      # Print the granularity, depending on the action
     if ($vars->{GRANULARITY} eq 'whole_course') {      if ($vars->{GRANULARITY} eq 'whole_course') {
         $resourceString .= '<li>'.&mt('for <b>all resources in the course</b>').'</li>';          $resourceString .= '<li>'.&mt('for [_1]all resources in the course[_2]','<b>','</b>').'</li>';
  if ($vars->{TARGETS} eq 'course') {   if ($vars->{TARGETS} eq 'course') {
     $level = 14; # general course, see lonparmset.pm perldoc      $level = 14; # general course, see lonparmset.pm perldoc
  } elsif ($vars->{TARGETS} eq 'section') {   } elsif ($vars->{TARGETS} eq 'section') {
Line 3648  sub render { Line 3664  sub render {
         $paramlevel = 'general';          $paramlevel = 'general';
     } elsif ($vars->{GRANULARITY} eq 'map') {      } elsif ($vars->{GRANULARITY} eq 'map') {
         my $navmap = Apache::lonnavmaps::navmap->new();          my $navmap = Apache::lonnavmaps::navmap->new();
         my $res = $navmap->getByMapPc($vars->{RESOURCE_ID});          if (defined($navmap)) {
         my $title = $res->compTitle();               my $res = $navmap->getByMapPc($vars->{RESOURCE_ID});
         $symb = $res->symb();               my $title = $res->compTitle();
         $resourceString .= '<li>'.&mt('for the map named [_1]',"<b>$title</b>").'</li>';               $symb = $res->symb();
                $resourceString .= '<li>'.&mt('for the map named [_1]',"<b>$title</b>").'</li>';
           } else {
               $resourceString .= '<li>'.&mt('for the map ID [_1] (name unavailable)','<b>'.$vars->{RESOURCE_ID}.'</b>').'</li>';
               &Apache::lonnet::logthis('Retrieval of map title failed in lonhelper.pm - could not create navmap object for course.');
   
           }
  if ($vars->{TARGETS} eq 'course') {   if ($vars->{TARGETS} eq 'course') {
     $level = 13; # general course, see lonparmset.pm perldoc      $level = 13; # general course, see lonparmset.pm perldoc
  } elsif ($vars->{TARGETS} eq 'section') {   } elsif ($vars->{TARGETS} eq 'section') {
Line 3664  sub render { Line 3686  sub render {
         $affectedResourceId = $vars->{RESOURCE_ID};          $affectedResourceId = $vars->{RESOURCE_ID};
         $paramlevel = 'map';          $paramlevel = 'map';
     } else {      } else {
         my $navmap = Apache::lonnavmaps::navmap->new();  
         my $res = $navmap->getById($vars->{RESOURCE_ID});  
         my $part = $vars->{RESOURCE_ID_part};          my $part = $vars->{RESOURCE_ID_part};
  if ($part ne 'All Parts' && $part) { $parm_name=~s/^0/$part/; } else { $part=&mt('All Parts'); }   if ($part ne 'All Parts' && $part) { $parm_name=~s/^0/$part/; } else { $part=&mt('All Parts'); }
         $symb = $res->symb();          my $navmap = Apache::lonnavmaps::navmap->new();
         my $title = $res->compTitle();          if (defined($navmap)) {
         $resourceString .= '<li>'.&mt('for the resource named [_1] part [_2]',"<b>$title</b>","<b>$part</b>").'</li>';              my $res = $navmap->getById($vars->{RESOURCE_ID});
               $symb = $res->symb();
               my $title = $res->compTitle();
               $resourceString .= '<li>'.&mt('for the resource named [_1] part [_2]',"<b>$title</b>","<b>$part</b>").'</li>';
           } else {
               $resourceString .= '<li>'.&mt('for the resource ID [_1] (name unavailable) part [_2]','<b>'.$vars->{RESOURCE_ID}.'</b>',"<b>$part</b>").'</li>';
               &Apache::lonnet::logthis('Retrieval of resource title failed in lonhelper.pm - could not create navmap object for course.');
           }
  if ($vars->{TARGETS} eq 'course') {   if ($vars->{TARGETS} eq 'course') {
     $level = 10; # general course, see lonparmset.pm perldoc      $level = 10; # general course, see lonparmset.pm perldoc
  } elsif ($vars->{TARGETS} eq 'section') {   } elsif ($vars->{TARGETS} eq 'section') {
Line 3684  sub render { Line 3711  sub render {
         $paramlevel = 'full';          $paramlevel = 'full';
     }      }
   
     my $result = "<form name='helpform' method='POST' action='/adm/parmset#$affectedResourceId&$parm_name&$level'>\n";      my $result = "<form name='helpform' method='post' action='/adm/parmset#$affectedResourceId&$parm_name&$level'>\n";
     $result .= "<input type='hidden' name='action' value='settable' />\n";      $result .= "<input type='hidden' name='action' value='settable' />\n";
     $result .= "<input type='hidden' name='dis' value='helper' />\n";      $result .= "<input type='hidden' name='dis' value='helper' />\n";
     $result .= "<input type='hidden' name='pscat' value='".      $result .= "<input type='hidden' name='pscat' value='".
Line 3749  sub render { Line 3776  sub render {
           
     # Print targets      # Print targets
     if ($vars->{TARGETS} eq 'course') {      if ($vars->{TARGETS} eq 'course') {
         $result .= '<li>'.&mt('for <b>all students in course</b>').'</li>';          $result .= '<li>'.&mt('for [_1]all students in course[_2]','<b>','</b>').'</li>';
     } elsif ($vars->{TARGETS} eq 'section') {      } elsif ($vars->{TARGETS} eq 'section') {
         my $section = $vars->{SECTION_NAME};          my $section = $vars->{SECTION_NAME};
         $result .= '<li>'.&mt('for section [_1]',"<b>$section</b>").'</li>';          $result .= '<li>'.&mt('for section [_1]',"<b>$section</b>").'</li>';

Removed from v.1.166  
changed lines
  Added in v.1.175


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