Diff for /loncom/interface/loncoursegroups.pm between versions 1.36 and 1.39

version 1.36, 2006/07/02 17:08:42 version 1.39, 2006/07/07 15:54:15
Line 112  sub handler { Line 112  sub handler {
                           'privileges in this [_2]',$gpterm,lc($crstype)));                            'privileges in this [_2]',$gpterm,lc($crstype)));
         }          }
     } else {      } else {
         &print_main_menu($r,$cdom,$cnum,$function,$tabcol,\%functions,\%idx,          &print_main_menu($r,$cdom,$cnum,\%functions,\%idx,$view_permission,
                          $view_permission,$manage_permission,$action,$state,   $manage_permission,$action,$state,$gpterm,$ucgpterm,
                          $rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype);   $crstype);
     }      }
     return OK;      return OK;
 }  }
   
 sub print_main_menu {  sub print_main_menu {
     my ($r,$cdom,$cnum,$function,$tabcol,$functions,$idx,$view_permission,      my ($r,$cdom,$cnum,$functions,$idx,$view_permission,$manage_permission,
         $manage_permission,$action,$state,$rowColor1,$rowColor2,$gpterm,   $action,$state,$gpterm,$ucgpterm,$crstype) = @_;
         $ucgpterm,$crstype) = @_;  
     my $pagename = "$crstype $ucgpterm".'s';      my $pagename = "$crstype $ucgpterm".'s';
     my $jscript = qq|      my $jscript = qq|
 function changeSort(caller) {  function changeSort(caller) {
     document.$state.sortby.value = caller;      document.$state.sortby.value = caller;
     document.$state.submit();      document.$state.submit();
 }\n|;  }\n|;
     $r->print(&header($pagename,$jscript,$action,$state,      $r->print(&header($pagename,$jscript,$action,$state));
                       undef,$function));  
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>"/adm/coursegroups",          ({href=>"/adm/coursegroups",
           text=>"$pagename"});            text=>"$pagename"});
     $r->print(&Apache::lonhtmlcommon::breadcrumbs($pagename));      $r->print(&Apache::lonhtmlcommon::breadcrumbs($pagename));
     &display_groups($r,$cdom,$cnum,$function,$tabcol,$functions,$idx,      &display_groups($r,$cdom,$cnum,$functions,$idx,$view_permission,
                     $view_permission,$manage_permission,$action,$state,      $manage_permission,$action,$state,$gpterm,$ucgpterm,
                     $rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype);      $crstype);
     $r->print(&footer());      $r->print(&footer());
     return;      return;
 }  }
   
 sub display_groups {  sub display_groups {
     my ($r,$cdom,$cnum,$function,$tabcol,$functions,$idx,$view_permission,      my ($r,$cdom,$cnum,$functions,$idx,$view_permission,
         $manage_permission,$action,$state,$rowColor1,$rowColor2,$gpterm,          $manage_permission,$action,$state,$gpterm,$ucgpterm,$crstype) = @_;
         $ucgpterm,$crstype) = @_;  
     my %curr_groups = ();      my %curr_groups = ();
     my %grp_info = ();      my %grp_info = ();
     my %actionlinks = (      my %actionlinks = (
Line 188  sub display_groups { Line 185  sub display_groups {
                 $r->print('<br /><a href="/adm/coursegroups?action=create&refpage='.$env{'form.refpage'}.'">'.$lt{'crng'}.'</a>');                  $r->print('<br /><a href="/adm/coursegroups?action=create&refpage='.$env{'form.refpage'}.'">'.$lt{'crng'}.'</a>');
             }              }
             $r->print('<br /><br />');              $r->print('<br /><br />');
             $r->print(&Apache::lonhtmlcommon::start_pick_box());      $r->print(&Apache::loncommon::start_data_table().
         &Apache::loncommon::start_data_table_header_row());
         
             $r->print(<<"END");              $r->print(<<"END");
       <table border="0" cellpadding="4" cellspacing="1">          <th>$lt{'act'}</th>
        <tr bgcolor="$tabcol" align="center">          <th><a href="javascript:changeSort('groupname')">$lt{'gname'}</a></th>
         <td><b>$lt{'act'}</b></td>          <th><a href="javascript:changeSort('description')">$lt{'desc'}</a></th>
         <td><b><a href="javascript:changeSort('groupname')">$lt{'gname'}</a></b></td>          <th><a href="javascript:changeSort('creator')">$lt{'crea'}</a></th>
         <td><b><a href="javascript:changeSort('description')">$lt{'desc'}</a></b></td>          <th><a href="javascript:changeSort('creation')">$lt{'crtd'}</a></th>
         <td><b><a href="javascript:changeSort('creator')">$lt{'crea'}</a></b>          <th><a href="javascript:changeSort('modified')">$lt{'last'}</a></th>
         </td>          <th>$lt{'func'}</b></td>
         <td><b><a href="javascript:changeSort('creation')">$lt{'crtd'}</a></b>          <th><a href="javascript:changeSort('quota')">$lt{'quot'}</a></th>
         </td>          <th><a href="javascript:changeSort('totalmembers')">$lt{'memb'}</a></th>
         <td><b><a href="javascript:changeSort('modified')">$lt{'last'}</a></b>          <th><a href="javascript:changeSort('totalfiles')">$lt{'file'}</a></th>
         </td>          <th><a href="javascript:changeSort('boards')">$lt{'dibd'}</a></th>
         <td><b>$lt{'func'}</b>          <th><a href="javascript:changeSort('diskuse')">$lt{'dius'}</a></th>
         </td>  
         <td><b><a href="javascript:changeSort('quota')">$lt{'quot'}</a></b></td>  
         <td><b><a href="javascript:changeSort('totalmembers')">$lt{'memb'}</a></b></td>  
         <td><b><a href="javascript:changeSort('totalfiles')">$lt{'file'}</a></b></td>  
         <td><b><a href="javascript:changeSort('boards')">$lt{'dibd'}</a></b></td>  
         <td><b><a href="javascript:changeSort('diskuse')">$lt{'dius'}</a></b></td>  
        </tr>  
 END  END
       $r->print(&Apache::loncommon::end_data_table_header_row());
             my %Sortby = ();              my %Sortby = ();
             foreach my $group (sort(keys(%curr_groups))) {              foreach my $group (sort(keys(%curr_groups))) {
                 %{$grp_info{$group}} =                   %{$grp_info{$group}} = 
Line 259  END Line 252  END
                     push(@{$Sortby{$group}},$group);                      push(@{$Sortby{$group}},$group);
                 }                  }
             }              }
             my $rowNum = 0;  
             my $rowColor;  
             foreach my $key (sort(keys(%Sortby))) {              foreach my $key (sort(keys(%Sortby))) {
                 foreach my $group (@{$Sortby{$key}}) {                  foreach my $group (@{$Sortby{$key}}) {
                     if ($rowNum %2 == 1) {  
                         $rowColor = $rowColor1;  
                     } else {  
                         $rowColor = $rowColor2;  
                     }  
                     my $description =                       my $description = 
                    &unescape($grp_info{$group}{'description'});   &unescape($grp_info{$group}{'description'});
                     my $creator = $grp_info{$group}{'creator'};                      my $creator = $grp_info{$group}{'creator'};
                     my $creation = $grp_info{$group}{'creation'};                      my $creation = $grp_info{$group}{'creation'};
                     my $modified = $grp_info{$group}{'modified'};                       my $modified = $grp_info{$group}{'modified'}; 
Line 302  END Line 288  END
                                       $group.'">'.$lt{'modify'}.'</a>';                                        $group.'">'.$lt{'modify'}.'</a>';
                         }                          }
                     }                      }
                     $r->print('<tr bgcolor="'.$rowColor.'"><td><small>'.$link.'</small></td><td><small>'.$group.'</small></td><td><small>'.$description.'</small></td><td><small>'.$creator.'</small></td><td><small>'. &Apache::lonnavmaps::timeToHumanString($creation).'</small></td><td><small>'. &Apache::lonnavmaps::timeToHumanString($modified).'</small></td><td><small>'.$functionality.'</small></td><td align="right"><small>'.$quota.'</small></td><td align="right"><small>'.$totalmembers.'</small></td><td align="right"><small><nobr>'.&mt('Files: ').$totalfiles.'</nobr><br /><nobr>'.&mt('Folders: ').$totaldirs.'</nobr></small></td><td align="right"><small>'.$boards.'</small></td><td align="right"><small>'.$diskuse.'</small></td></tr>');                      $r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense').
                     $rowNum ++;        '<td>'.$link.'</td>'.
         '<td>'.$group.'</td>'.
         '<td>'.$description.'</td>'.
         '<td>'.$creator.'</td>'.
         '<td>'. &Apache::lonnavmaps::timeToHumanString($creation).'</td>'.
         '<td>'. &Apache::lonnavmaps::timeToHumanString($modified).'</td>'.
         '<td>'.$functionality.'</td>'.
         '<td align="right">'.$quota.'</td>'.
         '<td align="right">'.$totalmembers.'</td>'.
         '<td align="right"><nobr>'.&mt('Files: ').$totalfiles.'</nobr><br /><nobr>'.&mt('Folders: ').$totaldirs.'</nobr></td>'.
         '<td align="right">'.$boards.'</td>'.
         '<td align="right">'.$diskuse.'</td>'.
         &Apache::loncommon::end_data_table_row());
                 }                  }
             }              }
             $r->print('</table>');              $r->print(&Apache::loncommon::end_data_table());
             $r->print(&Apache::lonhtmlcommon::end_pick_box());  
             $r->print('<input type="hidden" name="refpage" '.              $r->print('<input type="hidden" name="refpage" '.
                       'value="'.$env{'form.refpage'}.'" />');                        'value="'.$env{'form.refpage'}.'" />');
             if ($action eq 'view') {              if ($action eq 'view') {
Line 368  sub group_administration { Line 365  sub group_administration {
     my @member_changes = ('deletion','expire','activate','reenable',      my @member_changes = ('deletion','expire','activate','reenable',
                           'changefunc','changepriv');                            'changefunc','changepriv');
     my ($groupname,$description,$startdate,$enddate,$granularity,$specificity,      my ($groupname,$description,$startdate,$enddate,$granularity,$specificity,
         $quota);          $quota,$validate_script);
   
     if (defined($env{'form.groupname'})) {      if (defined($env{'form.groupname'})) {
         $groupname = $env{'form.groupname'};          $groupname = $env{'form.groupname'};
Line 727  sub group_administration { Line 724  sub group_administration {
             }              }
         }          }
     }      }
    
       if (($action eq 'create' && $state eq 'pick_name') || 
           ($action eq 'modify' && $state eq 'change_settings')) {
           my ($crsquota,$freespace,$maxposs) = &get_quota_constraints($action,\%stored);
           my $space_trim = '/^\s*|\s*\$/g,""';
           my $float_check = '/^([0-9]*\.?[0-9]*)$/';
           $validate_script = '
       var newquota = document.'.$state.'.quota.value;
       newquota.replace('.$space_trim.');
       if (newquota == "" ) {
           document.'.$state.'.quota.value = 0;
           newquota = 0;       
       }
       var maxposs = '.$maxposs.';
       if (newquota > maxposs) {
           alert("The file repository quota you entered for this group ("+newquota+" Mb) exceeds the maximum possible ("+maxposs+" Mb). Please enter a smaller number.");
           return;
       }
       var re_quota = '.$float_check.';
       var check_quota = newquota.match(re_quota);
       if (check_quota == null) {
           alert("The quota you entered contains invalid characters, the quota should only include numbers, with or without a decimal point.");
           return;
       }
       if (newquota == 0) {
           var warn_zero = 0;
           for (var i=0; i<document.'.$state.'.tool.length; i++) {
               if (document.'.$state.'.tool[i].value == "files") {
                   if (document.'.$state.'.tool[i].checked) {
                       warn_zero = 1;
                   }
               }
           }
           if (warn_zero == 1) {
               alert("You have indicated that the file repository should be enabled, but you have set the respository quota to 0 Mb.\nThis will prevent any upload of files.\nPlease set a value or disable the repository feature.");
               return;
           }
       } 
   ';
       }
     my $jscript = &Apache::loncommon::check_uncheck_jscript();      my $jscript = &Apache::loncommon::check_uncheck_jscript();
     $jscript .= qq|      $jscript .= qq|
 function nextPage(formname,nextstate) {  function nextPage(formname,nextstate) {
     formname.state.value= nextstate;      formname.state.value= nextstate;
       $validate_script
     formname.submit();      formname.submit();
 }  }
 function backPage(formname,prevstate) {  function backPage(formname,prevstate) {
Line 777  function changeSort(caller) { Line 814  function changeSort(caller) {
     my $loaditems =  &onload_action($action,$state);      my $loaditems =  &onload_action($action,$state);
     my $crumbtitle = "$crstype $ucgpterm".'s';       my $crumbtitle = "$crstype $ucgpterm".'s'; 
     $r->print(&header("$crumbtitle Manager",      $r->print(&header("$crumbtitle Manager",
       $jscript,$action,$state,$page,$function,$loaditems));        $jscript,$action,$state,$page,$loaditems));
   
     if ($env{'form.refpage'} eq 'enrl') {      if ($env{'form.refpage'} eq 'enrl') {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
Line 855  function changeSort(caller) { Line 892  function changeSort(caller) {
         my $crumbtitle = "$crstype $ucgpterm".'s Manager';          my $crumbtitle = "$crstype $ucgpterm".'s Manager';
         $r->print(&Apache::lonhtmlcommon::breadcrumbs          $r->print(&Apache::lonhtmlcommon::breadcrumbs
   (&mt($crumbtitle)));    (&mt($crumbtitle)));
         &display_groups($r,$cdom,$cnum,$function,$tabcol,$functions,$idx,          &display_groups($r,$cdom,$cnum,$functions,$idx,$view_permission,
                         $view_permission,$manage_permission,$action,$state,   $manage_permission,$action,$state,$gpterm,$ucgpterm,
                         $rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype);   $crstype);
   
     }      }
     $r->print(&footer());      $r->print(&footer());
Line 962  sub display_control { Line 999  sub display_control {
     } elsif ($action eq 'modify') {      } elsif ($action eq 'modify') {
         my $groupname = $env{'form.groupname'};          my $groupname = $env{'form.groupname'};
         if ($state eq 'pick_group') {          if ($state eq 'pick_group') {
             &display_groups($r,$cdom,$cnum,$function,$tabcol,$functions,$idx,              &display_groups($r,$cdom,$cnum,$functions,$idx,$view_permission,
                             $view_permission,$manage_permission,$action,$state,      $manage_permission,$action,$state,$gpterm,
                             $rowColor1,$rowColor2,$gpterm,$ucgpterm,$crstype);      $ucgpterm,$crstype);
         } elsif ($state eq 'pick_task') {          } elsif ($state eq 'pick_task') {
             &modify_menu($r,$groupname,$page,$gpterm);              &modify_menu($r,$groupname,$page,$gpterm);
         } elsif ($state eq 'change_settings') {          } elsif ($state eq 'change_settings') {
Line 1020  sub display_control { Line 1057  sub display_control {
 }  }
   
 sub header {  sub header {
     my ($bodytitle,$jscript,$action,$state,$page,$function,$loaditems) = @_;      my ($bodytitle,$jscript,$action,$state,$page,$loaditems) = @_;
     my $start_page=      my $start_page=
  &Apache::loncommon::start_page($bodytitle,   &Apache::loncommon::start_page($bodytitle,
        '<script type="text/javascript">'.         '<script type="text/javascript">'.
        $jscript.'</script>',         $jscript.'</script>',
        {'function'    => $function,         {'add_entries' => $loaditems,});
  'add_entries' => $loaditems,});  
     my $output = <<"END";      my $output = <<"END";
 $start_page  $start_page
 <form method="POST" name="$state">  <form method="POST" name="$state">
Line 1204  sub groupsettings_options { Line 1240  sub groupsettings_options {
         'doyo' => "Do you want to assign different functionality ".          'doyo' => "Do you want to assign different functionality ".
                   "to different $gpterm members?",                    "to different $gpterm members?",
     );      );
     my $crsquota = $env{'course.'.$env{'request.course.id'}.'.internal.coursequota'};      my ($crsquota,$freespace,$maxposs) = &get_quota_constraints($action,$stored);
     if ($crsquota eq '') {  
         $crsquota = 20;  
     }  
     my $freespace = $crsquota - &Apache::longroup::sum_quotas();  
     my $maxposs = $$stored{'quota'} + $freespace;  
     &topic_bar($r,$tabcol,$image,$lt{'gnde'});      &topic_bar($r,$tabcol,$image,$lt{'gnde'});
     $r->print('      $r->print('
    <tr>     <tr>
Line 1310  END Line 1341  END
     return;      return;
 }  }
   
   sub get_quota_constraints {
       my ($action,$stored) = @_;
       my ($crsquota,$freespace,$maxposs); 
       $crsquota = $env{'course.'.$env{'request.course.id'}.'.internal.coursequota'};
       if ($crsquota eq '') {
           $crsquota = 20;
       }
       $freespace = $crsquota - &Apache::longroup::sum_quotas();
       if ($action eq 'create') {
           $maxposs = $freespace;
       } else {
           $maxposs = $$stored{'quota'} + $freespace;
       }
       return ($crsquota,$freespace,$maxposs);
   }
   
 sub membership_options {  sub membership_options {
     my ($r,$action,$state,$tabcol,$sectioncount,$image,$gpterm,$ucgpterm) = @_;      my ($r,$action,$state,$tabcol,$sectioncount,$image,$gpterm,$ucgpterm) = @_;
     my $crstype = &Apache::loncommon::course_type();      my $crstype = &Apache::loncommon::course_type();
Line 2875  sub write_group_data { Line 2922  sub write_group_data {
                              'specificity','autoadd','autodrop','quota');                               'specificity','autoadd','autodrop','quota');
     my @mult_attributes = ('roles','types','sectionpick','defpriv');      my @mult_attributes = ('roles','types','sectionpick','defpriv');
   
       my ($crsquota,$freespace,$maxposs) = &get_quota_constraints($action,
                                                                   $stored);
       my $quota = $env{'form.quota'};
       
       $quota =~ s/^\s*([^\s]*)\s*$/$1/;
       if ($quota eq '') {
           $quota = 0;
       }
       if ($quota !~ /^\d*\.?\d*$/) {
           $quota = 0;
           $r->print(&mt('The value you entered for the quota for the file repository in this [_1] contained invalid characters, so it has been set to 0 Mb. You can change this by modifying the [_1] settings.<br />',$gpterm));
       }
       if ($quota > $maxposs) {
           $quota = $maxposs;
           $r->print(&mt('The value you entered for the quota for the file repository in this [_1] exceeded the maximum possible value, so it has been set to [_2] Mb (the maximum possible value).<br />',$gpterm,$maxposs));
       }
     my %groupinfo = (      my %groupinfo = (
                      description => $esc_description,                       description => $esc_description,
                      startdate => $startdate,                       startdate => $startdate,
Line 2886  sub write_group_data { Line 2949  sub write_group_data {
                      specificity => $specificity,                       specificity => $specificity,
                      autoadd => $env{'form.autoadd'},                       autoadd => $env{'form.autoadd'},
                      autodrop => $env{'form.autodrop'},                       autodrop => $env{'form.autodrop'},
                      quota => $env{'form.quota'},                                       quota => $quota,
                    );                     );
   
     foreach my $func (keys(%{$functions})) {      foreach my $func (keys(%{$functions})) {
         my $status;          my $status;
         if (grep(/^$func$/,@{$tools})) {          if (grep(/^$func$/,@{$tools})) {
Line 2938  sub write_group_data { Line 3002  sub write_group_data {
                                            $description,$tools,\%groupinfo,                                             $description,$tools,\%groupinfo,
                                            $gpterm,$ucgpterm,$crstype);                                             $gpterm,$ucgpterm,$crstype);
             if ($result ne 'ok') {              if ($result ne 'ok') {
                 $r->print(&mt('A problem occurred when creating folders for the new [_1]. [_2].',$gpterm,$result));                      $r->print(&mt('A problem occurred when creating folders for the new [_1]. [_2].<br />',$gpterm,$result));
             }              }
             $r->print(&mt('[_1] [_2] was created.<br />',$ucgpterm,$groupname));              $r->print(&mt('[_1] [_2] was created.<br />',$ucgpterm,$groupname));
         } else {          } else {
Line 2952  sub write_group_data { Line 3016  sub write_group_data {
         &Apache::lonnet::logthis("Failed to store $gpterm $groupname ".          &Apache::lonnet::logthis("Failed to store $gpterm $groupname ".
                                  'in '.lc($crstype).': '.$cnum.                                   'in '.lc($crstype).': '.$cnum.
                                  ' in domain: '.$cdom);                                   ' in domain: '.$cdom);
         $r->print(&mt('An error occurred when [_1] the new [_2]. '.          $r->print(&mt('An error occurred when [_1] the [_2]. '.
                       'Please try again.',$actiontype{$action},$gpterm));                        'Please try again.',$actiontype{$action},$gpterm));
     }      }
     return $result;      return $result;
Line 3072  sub process_membership { Line 3136  sub process_membership {
         my $start = $startdate;          my $start = $startdate;
         my $end = $enddate;          my $end = $enddate;
         if ($state eq 'memresult') {          if ($state eq 'memresult') {
             if ($curr_privs{$user} eq $group_privs{$user}) {  
                push(@unchanged,$user);  
                next;  
             }  
             if (exists($curr_start{$user})) {  
                 $start = $curr_start{$user};  
             }  
             if (exists($curr_end{$user})) {  
                 $end = $curr_end{$user};  
             }  
             $type = 'modified';  
             if (@activate > 0) {              if (@activate > 0) {
                 if (grep/^$user$/,@activate) {                  if (grep/^$user$/,@activate) {
                     $start = $now;                      $start = $now;
Line 3097  sub process_membership { Line 3150  sub process_membership {
                     $type = 'reenabled';                      $type = 'reenabled';
                 }                  }
             }              }
               if ($type eq '') {
                   if ($curr_privs{$user} eq $group_privs{$user}) {
                       push(@unchanged,$user);
                       next;
                   }
                   if (exists($curr_start{$user})) {
                       $start = $curr_start{$user};
                   }
                   if (exists($curr_end{$user})) {
                       $end = $curr_end{$user};
                   }
                   $type = 'modified';
               }
         } else {          } else {
             $type = 'added';              $type = 'added';
         }          }
Line 3555  sub map_updater { Line 3621  sub map_updater {
     my $newmapurl=&Apache::lonnet::finishuserfileupload($cnum,$cdom,$itemname,      my $newmapurl=&Apache::lonnet::finishuserfileupload($cnum,$cdom,$itemname,
                                                         $newfile);                                                          $newfile);
     if ($newmapurl !~ m|^/uploaded|) {      if ($newmapurl !~ m|^/uploaded|) {
         $outcome = "Error uploading new folder ($newfile): $newmapurl";          $outcome = &mt('Error uploading new folder.')." ($newfile): $newmapurl".'<br />';
         return $outcome;          return $outcome;
     }       } 
     my ($errtext,$fatal)=&Apache::lonratedt::mapread($parentmap);      my ($errtext,$fatal)=&Apache::lonratedt::mapread($parentmap);
     if ($fatal) {      if ($fatal) {
         $outcome = "Error reading contents of parent folder ($parentmap): $errtext\n";          $outcome = &mt('Error reading contents of parent folder')." ($parentmap): $errtext".'<br />';
         return $outcome;          return $outcome;
     } else {      } else {
         my $newidx=&Apache::lonratedt::getresidx($newmapurl);          my $newidx=&Apache::lonratedt::getresidx($newmapurl);
Line 3569  sub map_updater { Line 3635  sub map_updater {
         $Apache::lonratedt::order[1+$#Apache::lonratedt::order]=$newidx;          $Apache::lonratedt::order[1+$#Apache::lonratedt::order]=$newidx;
         my ($outtext,$errtext) = &Apache::lonratedt::storemap($parentmap,1);          my ($outtext,$errtext) = &Apache::lonratedt::storemap($parentmap,1);
         if ($errtext) {          if ($errtext) {
            $outcome = "Error storing updated parent folder ($parentmap):  $errtext\n";              $outcome = &mt('Error storing updated parent folder')." ($parentmap):  $errtext".'<br />';
             return $outcome;              return $outcome;
         }          }
     }      }
Line 3590  sub new_map { Line 3656  sub new_map {
   
 sub parm_setter {  sub parm_setter {
     my ($navmap,$cdom,$url,$groupname) = @_;      my ($navmap,$cdom,$url,$groupname) = @_;
     my %parmresult;      my $allresults;
     my %hide_settings = (      my %hide_settings = (
                            'course' =>  {                             'course' =>  {
                                           'num' => 13,                                            'num' => 13,
Line 3605  sub parm_setter { Line 3671  sub parm_setter {
     my $res = $navmap->getResourceByUrl($url);      my $res = $navmap->getResourceByUrl($url);
     my $symb = $res->symb();      my $symb = $res->symb();
     foreach my $level (keys(%hide_settings)) {      foreach my $level (keys(%hide_settings)) {
         $parmresult{$level} =  &Apache::lonparmset::storeparm_by_symb($symb,          my $parmresult =  &Apache::lonparmset::storeparm_by_symb($symb,
                                                  '0_hiddenresource',                                                   '0_hiddenresource',
                                                  $hide_settings{$level}{'num'},                                                   $hide_settings{$level}{'num'},
                                                  $hide_settings{$level}{'set'},                                                   $hide_settings{$level}{'set'},
                                                  'string_yesno',undef,$cdom,                                                   'string_yesno',undef,$cdom,
                                                  undef,undef,                                                   undef,undef,
                                                  $hide_settings{$level}{'extra'});                                                   $hide_settings{$level}{'extra'});
           if ($parmresult) {
               $allresults .= $level.': '.$parmresult;
           }
     }      }
     return %parmresult;      return $allresults;
 }  }
   
 sub create_homepage {  sub create_homepage {

Removed from v.1.36  
changed lines
  Added in v.1.39


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