Diff for /loncom/interface/lonhelper.pm between versions 1.195 and 1.204

version 1.195, 2015/08/15 20:11:57 version 1.204, 2022/06/27 20:35:51
Line 1800  sub render { Line 1800  sub render {
  if (lc($time) eq 'anytime') {   if (lc($time) eq 'anytime') {
     $anytime=1;      $anytime=1;
     $date = &get_date_object(time);      $date = &get_date_object(time);
     $date->min(0);              $date->set_minute(0);
  } elsif (defined($time) && $time ne 0) {   } elsif (defined($time) && $time ne 0) {
     $date = &get_date_object($time);      $date = &get_date_object($time);
  } else {   } else {
Line 1810  sub render { Line 1810  sub render {
   
     if (!defined($date)) {      if (!defined($date)) {
  $date = &get_date_object(time);   $date = &get_date_object(time);
  $date->min(0);          $date->set_minute(0);
     }      }
   
     if ($anytime) {      if ($anytime) {
Line 2047  be filtered out. The 'addstatus' attribu Line 2047  be filtered out. The 'addstatus' attribu
 and long status display columns to the display. The 'addparts'  and long status display columns to the display. The 'addparts'
 attribute will add in a part selector beside problems that have more  attribute will add in a part selector beside problems that have more
 than 1 part. The 'includecourse' attribute if true, will include  than 1 part. The 'includecourse' attribute if true, will include
 the toplevel default.sequence in the results.  the toplevel default.sequence in the results. The 'modalLink' attribute,
   if true, will cause links to be launched as modal pop-ups, instead of 
   replacing the resource selection listing, currently being displayed. 
   
 =head3 SUB-TAGS  =head3 SUB-TAGS
   
Line 2159  sub start_resource { Line 2161  sub start_resource {
     $paramHash->{'toponly'} = $token->[2]{'toponly'};      $paramHash->{'toponly'} = $token->[2]{'toponly'};
     $paramHash->{'addstatus'} = $token->[2]{'addstatus'};      $paramHash->{'addstatus'} = $token->[2]{'addstatus'};
     $paramHash->{'addparts'} = $token->[2]{'addparts'};      $paramHash->{'addparts'} = $token->[2]{'addparts'};
       $paramHash->{'modalLink'} = $token->[2]{'modallink'};
       $paramHash->{'nocurrloc'} = $token->[2]{'nocurrloc'};
       $paramHash->{'suppressNavmap'} = $token->[2]{'suppressNavmap'};
     if ($paramHash->{'addparts'}) {      if ($paramHash->{'addparts'}) {
  $helper->declareVar($paramHash->{'variable'}.'_part');   $helper->declareVar($paramHash->{'variable'}.'_part');
     }      }
Line 2365  BUTTONS Line 2370  BUTTONS
     my $option_texts   = $self->{OPTION_TEXTS};      my $option_texts   = $self->{OPTION_TEXTS};
     my $option_types   = $self->{OPTION_TYPES};      my $option_types   = $self->{OPTION_TYPES};
     my $addparts       = $self->{'addparts'};      my $addparts       = $self->{'addparts'};
       my $modalLink      = $self->{'modalLink'};
     my $headings_done  = 0;      my $headings_done  = 0;
   
     # Evaluate the map url as needed      # Evaluate the map url as needed
Line 2464  BUTTONS Line 2470  BUTTONS
     $resource_name . "'/> </td>";      $resource_name . "'/> </td>";
     } else {      } else {
  $col .=    $col .= 
     "<td align='center'><input type=$option_type name ='$option_var".      "<td align='center'><input type='$option_type' name ='$option_var".
     "_forminput' value='".      "_forminput' value='".
     $resource_name . "' $checked /> </td>";      $resource_name . "' $checked /> </td>";
     }      }
Line 2540  RADIO Line 2546  RADIO
  push @$cols, (Apache::lonnavmaps::part_status_summary());   push @$cols, (Apache::lonnavmaps::part_status_summary());
   
     }      }
       my $caller;
       if ($helper->{TITLE} eq 'Printing Helper') {
           $caller = 'printout';
       }
     $result .=       $result .= 
         &Apache::lonnavmaps::render( { 'cols' => $cols,          &Apache::lonnavmaps::render( { 'cols' => $cols,
                                        'showParts' => 0,                                         'showParts' => 0,
Line 2549  RADIO Line 2559  RADIO
                                        'suppressEmptySequences' => $self->{'suppressEmptySequences'},                                         'suppressEmptySequences' => $self->{'suppressEmptySequences'},
        'include_top_level_map' => $self->{'include_top_level_map'},         'include_top_level_map' => $self->{'include_top_level_map'},
                                        'iterator_map' => $mapUrl,                                         'iterator_map' => $mapUrl,
                                        'map_no_edit_link' => 1, }                                          'map_no_edit_link' => 1,
                                          'modalLink' => $modalLink,
                                          'nocurrloc' => $self->{'nocurrloc'},
                                          'suppressNavmap' => $self->{'suppressNavmap'},
                                          'caller' => $caller, }
                                        );                                         );
   
     $result .= $buttons;      $result .= $buttons;
Line 2621  selection. Defaults to false. Line 2635  selection. Defaults to false.
 If true, only active students and course personnel will be  If true, only active students and course personnel will be
 shown. Defaults to false.  shown. Defaults to false.
   
   =item * B<sectiononly>:
   
   If true, and user's role is in a specific section, only course personnel 
   will be shown if they also have a section-specific role in the same section.
   Defaults to false.
   
 =item * B<emptyallowed>:  =item * B<emptyallowed>:
   
 If true, the selection of no users is allowed. Defaults to false.  If true, the selection of no users is allowed. Defaults to false.
Line 2656  sub start_student { Line 2676  sub start_student {
     $helper->declareVar($paramHash->{'variable'});      $helper->declareVar($paramHash->{'variable'});
     $paramHash->{'multichoice'} = $token->[2]{'multichoice'};      $paramHash->{'multichoice'} = $token->[2]{'multichoice'};
     $paramHash->{'coursepersonnel'} = $token->[2]{'coursepersonnel'};      $paramHash->{'coursepersonnel'} = $token->[2]{'coursepersonnel'};
       $paramHash->{'sectiononly'} = $token->[2]{'sectiononly'};
     $paramHash->{'activeonly'} = $token->[2]{'activeonly'};      $paramHash->{'activeonly'} = $token->[2]{'activeonly'};
     if (defined($token->[2]{'nextstate'})) {      if (defined($token->[2]{'nextstate'})) {
         $paramHash->{NEXTSTATE} = $token->[2]{'nextstate'};          $paramHash->{NEXTSTATE} = $token->[2]{'nextstate'};
Line 2697  sub render { Line 2718  sub render {
  delete($defaultUsers{''});   delete($defaultUsers{''});
     }      }
   
       my $personnel_section;
       if ($self->{'sectiononly'}) {
           $personnel_section = $env{'request.course.sec'};
       }
   
     my ($course_personnel,       my ($course_personnel, 
  $current_members,    $current_members, 
  $expired_members,    $expired_members, 
  $future_members) =    $future_members) = 
     &Apache::lonselstudent::get_people_in_class($env{'request.course.sec'});      &Apache::lonselstudent::get_people_in_class($env{'request.course.sec'},
                                                   $personnel_section);
   
     # Load up the non-students, if necessary      # Load up the non-students, if necessary
   
Line 2709  sub render { Line 2736  sub render {
  unshift @$current_members, (@$course_personnel);   unshift @$current_members, (@$course_personnel);
     }      }
   
       my %titles = &Apache::lonlocal::texthash(
                      'active'  => 'Select Currently Enrolled Students and Active Course Personnel',
                      'future'  => 'Select Future Enrolled Students',
                      'expired' => 'Select Previously Enrolled Students',
                    );
   
       if ($env{'request.course.sec'}) {
           if ($self->{'sectiononly'}) {
               $titles{'active'} = &mt('Select Currently Enrolled Students and Active Course Personnel in Section: [_1]',
                                   $env{'request.course.sec'});
           } else {
               $titles{'active'} = &mt('Select Currently Enrolled Students in Section: [_1], and Active Course Personnel',
                                       $env{'request.course.sec'});
           }
           $titles{'future'} = &mt('Select Future Enrolled Students in Section: [_1]',
                                   $env{'request.course.sec'});
           $titles{'expired'} = &mt('Select Previously Enrolled Students in Section: [_1]',
                                    $env{'request.course.sec'});
       }
   
     #   Current personel      #   Current personnel
   
     $result .= '<h4>'.&mt('Select Currently Enrolled Students and Active Course Personnel').'</h4>';      $result .= '<h4>'.$titles{'active'}.'</h4>';
     $result .= &Apache::lonselstudent::render_student_list( $current_members,      $result .= &Apache::lonselstudent::render_student_list( $current_members,
     "helpform",      "helpform",
     "current",       "current",
     \%defaultUsers,      \%defaultUsers,
     $self->{'multichoice'},      $self->{'multichoice'},
     $self->{'variable'},      $self->{'variable'},
     1);      1);
   
   
     # If activeonly is not set then we can also give the expired students:      # If activeonly is not set then we can also give the expired students:
     #      #
     if (!$self->{'activeonly'} && ((scalar(@$future_members)) > 0)) {      if (!$self->{'activeonly'} && ((scalar(@$future_members)) > 0)) {
   
  # And future.   # And future.
   
  $result .= '<h4>'.&mt('Select Future Enrolled Students and Future Course Personnel').'</h4>';   $result .= '<h4>'.$titles{'future'}.'</h4>';
                 
  $result .= &Apache::lonselstudent::render_student_list( $future_members,   $result .= &Apache::lonselstudent::render_student_list( $future_members,
  "helpform",   "helpform",
Line 2741  sub render { Line 2786  sub render {
     if (!$self->{'activeonly'} && ((scalar(@$expired_members)) > 0)) {      if (!$self->{'activeonly'} && ((scalar(@$expired_members)) > 0)) {
  # Past    # Past 
   
  $result .= '<h4>'.&mt('Select Previously Enrolled Students and Inactive Course Personnel').'</h4>';   $result .= '<h4>'.$titles{'expired'}.'</h4>';
  $result .= &Apache::lonselstudent::render_student_list($expired_members,   $result .= &Apache::lonselstudent::render_student_list($expired_members,
        "helpform",         "helpform",
        "past",         "past",
Line 3152  It takes the standard attributes "variab Line 3197  It takes the standard attributes "variab
 "allowempty" and "nextstate", meaning what they do for most other  "allowempty" and "nextstate", meaning what they do for most other
 elements.  elements.
   
 also takes a boolean 'onlysections' whcih will restrict this to only  also takes a boolean 'onlysections' which will restrict this to only
 have sections and not include groups  have sections and not include groups
   
 =cut  =cut
Line 3246  It takes the standard attributes "variab Line 3291  It takes the standard attributes "variab
  "allowempty" and "nextstate", meaning what they do for most other   "allowempty" and "nextstate", meaning what they do for most other
  elements.   elements.
   
   also takes a boolean grouponly, which if true, will restrict choice to
   groups in which user is a member, unless user has the mdg priv in the course,
   in which case all groups will be possible choices. Defaults to false.
   
 =cut  =cut
   
 no strict;  no strict;
Line 3275  sub start_group { Line 3324  sub start_group {
     $helper->declareVar($paramHash->{'variable'});      $helper->declareVar($paramHash->{'variable'});
     $paramHash->{'multichoice'} = $token->[2]{'multichoice'};      $paramHash->{'multichoice'} = $token->[2]{'multichoice'};
     $paramHash->{'allowempty'} = $token->[2]{'allowempty'};      $paramHash->{'allowempty'} = $token->[2]{'allowempty'};
       $paramHash->{'grouponly'} = $token->[2]{'grouponly'};
     if (defined($token->[2]{'nextstate'})) {      if (defined($token->[2]{'nextstate'})) {
         $paramHash->{NEXTSTATE} = $token->[2]{'nextstate'};          $paramHash->{NEXTSTATE} = $token->[2]{'nextstate'};
     }      }
Line 3282  sub start_group { Line 3332  sub start_group {
     # Populate the CHOICES element      # Populate the CHOICES element
     my %choices;      my %choices;
   
     my %curr_groups = &Apache::longroup::coursegroups();      my %curr_groups;
       if ((!$paramHash->{'grouponly'}) || (&Apache::lonnet::allowed('mdg',$Apache::lonnet::env{'request.course.id'}))) {
           %curr_groups = &Apache::longroup::coursegroups();
       } elsif ($Apache::lonnet::env{'request.course.groups'} ne '') {
           map { $curr_groups{$_} = 1; } split(/:/,$Apache::lonnet::env{'request.course.groups'});
       }
     foreach my $group_name (sort {lc($a) cmp lc($b)} (keys(%curr_groups))) {      foreach my $group_name (sort {lc($a) cmp lc($b)} (keys(%curr_groups))) {
  push(@{$paramHash->{CHOICES}}, [$group_name, $group_name]);   push(@{$paramHash->{CHOICES}}, [$group_name, $group_name]);
     }      }
Line 3785  sub render { Line 3840  sub render {
     if ($vars->{GRANULARITY} eq 'whole_course') {      if ($vars->{GRANULARITY} eq 'whole_course') {
         $resourceString .= '<li>'.&mt('for [_1]all resources in the course[_2]','<b>','</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 = 18; # general course, see lonparmset.pm perldoc
  } elsif ($vars->{TARGETS} eq 'section') {   } elsif ($vars->{TARGETS} eq 'section') {
     $level = 9;      $level = 12;
  } elsif ($vars->{TARGETS} eq 'group') {   } elsif ($vars->{TARGETS} eq 'group') {
     $level = 6;      $level = 8;
  } else {   } else {
     $level = 3;      $level = 4;
  }   }
         $affectedResourceId = "0.0";          $affectedResourceId = "0.0";
         $symb = 'a';          $symb = 'a';
         $paramlevel = 'general';          $paramlevel = 'general';
     } elsif ($vars->{GRANULARITY} eq 'map') {      } elsif (($vars->{GRANULARITY} eq 'map') || ($vars->{GRANULARITY} eq 'maprecurse')) {
         my $navmap = Apache::lonnavmaps::navmap->new();          my $navmap = Apache::lonnavmaps::navmap->new();
         if (defined($navmap)) {          if (defined($navmap)) {
              my $res = $navmap->getByMapPc($vars->{RESOURCE_ID});               my $res = $navmap->getByMapPc($vars->{RESOURCE_ID});
              my $title = $res->compTitle();               my $title = $res->compTitle();
              $symb = $res->symb();               $symb = $res->symb();
              $resourceString .= '<li>'.&mt('for the map named [_1]',"<b>$title</b>").'</li>';               if ($vars->{GRANULARITY} eq 'map') {
                    $resourceString .= '<li>'.&mt('for the map named [_1]',"<b>$title</b>").'</li>';
                } else {
                    $resourceString .= '<li>'.&mt('for the map named [_1] (applies recursively to sub-folders)',"<b>$title</b>").'</li>';
                }
         } else {          } else {
             $resourceString .= '<li>'.&mt('for the map ID [_1] (name unavailable)','<b>'.$vars->{RESOURCE_ID}.'</b>').'</li>';              $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.');              &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->{GRANULARITY} eq 'maprecurse') {
     $level = 13; # general course, see lonparmset.pm perldoc              if ($vars->{TARGETS} eq 'course') {
  } elsif ($vars->{TARGETS} eq 'section') {                  $level = 17; # general course, see lonparmset.pm perldoc
     $level = 8;              } elsif ($vars->{TARGETS} eq 'section') {
  } elsif ($vars->{TARGETS} eq 'group') {                  $level = 11;
     $level = 5;              } elsif ($vars->{TARGETS} eq 'group') {
  } else {                  $level = 7;
     $level = 2;              } else {
  }                  $level = 3;
               }
           } else {
       if ($vars->{TARGETS} eq 'course') {
           $level = 16; # general course, see lonparmset.pm perldoc
       } elsif ($vars->{TARGETS} eq 'section') {
           $level = 10;
       } elsif ($vars->{TARGETS} eq 'group') {
           $level = 6;
       } else {
           $level = 2;
       }
           }
         $affectedResourceId = $vars->{RESOURCE_ID};          $affectedResourceId = $vars->{RESOURCE_ID};
         $paramlevel = 'map';          $paramlevel = 'map';
     } else {      } else {
Line 3833  sub render { Line 3904  sub render {
             &Apache::lonnet::logthis('Retrieval of resource title failed in lonhelper.pm - could not create navmap object for course.');              &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 = 13; # general course, see lonparmset.pm perldoc
  } elsif ($vars->{TARGETS} eq 'section') {   } elsif ($vars->{TARGETS} eq 'section') {
     $level = 7;      $level = 9;
  } elsif ($vars->{TARGETS} eq 'group') {   } elsif ($vars->{TARGETS} eq 'group') {
     $level = 4;      $level = 5;
  } else {   } else {
     $level = 1;      $level = 1;
  }   }
Line 3853  sub render { Line 3924  sub render {
     if ($vars->{GRANULARITY} eq 'resource') {      if ($vars->{GRANULARITY} eq 'resource') {
  $result .= "<input type='hidden' name='symb' value='".   $result .= "<input type='hidden' name='symb' value='".
     HTML::Entities::encode($symb,"'<>&\"") . "' />\n";      HTML::Entities::encode($symb,"'<>&\"") . "' />\n";
     } elsif ($vars->{GRANULARITY} eq 'map') {      } elsif (($vars->{GRANULARITY} eq 'map') || ($vars->{GRANULARITY} eq 'maprecurse')) {
  $result .= "<input type='hidden' name='pschp' value='".   $result .= "<input type='hidden' name='pschp' value='".
     $affectedResourceId."' />\n";      $affectedResourceId."' />\n";
     }      }

Removed from v.1.195  
changed lines
  Added in v.1.204


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