Diff for /loncom/interface/lonpopulate.pm between versions 1.84 and 1.85

version 1.84, 2016/07/24 14:34:59 version 1.85, 2016/11/09 00:48:52
Line 40  use LONCAPA::Enrollment; Line 40  use LONCAPA::Enrollment;
   
 ###############################################################  ###############################################################
 sub header {  sub header {
     my ($action) = @_;      my ($action,$permref) = @_;
     my $args = &make_crumbs($action);      my $args = &make_crumbs($action,$permref);
     return       return 
         &Apache::loncommon::start_page('Classlist Manager',undef,$args);          &Apache::loncommon::start_page('Classlist Manager',undef,$args);
 }  }
Line 49  sub header { Line 49  sub header {
 ###############################################################  ###############################################################
   
 sub choose_header {  sub choose_header {
     my ($action) = @_;      my ($action,$permref) = @_;
     my $notify_check = '/^note_[0-9]+$/';      my $notify_check = '/^note_[0-9]+$/';
     my %js_lt =       my %js_lt = 
         &Apache::lonlocal::texthash(          &Apache::lonlocal::texthash(
Line 60  sub choose_header { Line 60  sub choose_header {
             eras => 'Click "OK" to erase all recipients, or "Cancel".',              eras => 'Click "OK" to erase all recipients, or "Cancel".',
             ynot => 'You have indicated that you want notification of roster changes messages to be sent, but you have not selected any recipients.',              ynot => 'You have indicated that you want notification of roster changes messages to be sent, but you have not selected any recipients.',
             atle => 'You must check at least one checkbox, before proceeding to the next page',              atle => 'You must check at least one checkbox, before proceeding to the next page',
               noed => 'You do not have rights to modify automated enrollment settings',
     );      );
     $js_lt{'both'} = &mt('You have selected "No" for both addition and removal of students[_1] in the institutional classlist but not in your LON-CAPA course.[_1]',"\n");      $js_lt{'both'} = &mt('You have selected "No" for both addition and removal of students[_1] in the institutional classlist but not in your LON-CAPA course.[_1]',"\n");
     $js_lt{'nnot'} = &mt('You have indicated that you do not want notification of roster changes messages to be sent, but [_1] have been checked as recipients.[_2]',"'+totalnote+'","\n");      $js_lt{'nnot'} = &mt('You have indicated that you do not want notification of roster changes messages to be sent, but [_1] have been checked as recipients.[_2]',"'+totalnote+'","\n");
     &js_escape(\%js_lt);      &js_escape(\%js_lt);
       
     my $scripttag = <<ENDJSONE;      my $scripttag = '
 <script type="text/javascript" language="JavaScript">  <script type="text/javascript" language="JavaScript">
 // <![CDATA[  // <![CDATA[
   ';
       if ((ref($permref) ne 'HASH') || (!$permref->{'edit'})) {
           $scripttag .= <<ENDJS;
   function process(calling,numauto,nummanual,numlock,numunlock) {
       alert('$js_lt{'noed'}');
       return false;
   }
   ENDJS
       } else {
           $scripttag .= <<ENDJSONE;
 function process(calling,numauto,nummanual,numlock,numunlock) {  function process(calling,numauto,nummanual,numlock,numunlock) {
  var checker = 1   var checker = 1
  var rad1 = 0   var rad1 = 0
Line 187  function process(calling,numauto,nummanu Line 198  function process(calling,numauto,nummanu
  }   }
 }  }
 ENDJSONE  ENDJSONE
       }
     if ($action eq 'viewclass') {      if ($action eq 'viewclass') {
         $scripttag .= &Apache::loncommon::check_uncheck_jscript();          $scripttag .= &Apache::loncommon::check_uncheck_jscript();
         $scripttag .= <<ENDJSTWO;          $scripttag .= <<ENDJSTWO;
Line 212  ENDJSTWO Line 224  ENDJSTWO
 // ]]>  // ]]>
 </script>  </script>
 ENDJS  ENDJS
     my $args = &make_crumbs($action);      my $args = &make_crumbs($action,$permref);
     return &Apache::loncommon::start_page('Classlist Manager',      return &Apache::loncommon::start_page('Classlist Manager',
   $scripttag,$args);    $scripttag,$args);
 }  }
   
 sub make_crumbs {  sub make_crumbs {
     my ($action) = @_;      my ($action,$permref) = @_;
     my ($tasklong,$tasktitle) = &get_task_text();      my ($tasklong,$tasktitle) = &get_task_text($permref);
     my $brcrum = [{href=>"/adm/createuser",      my $brcrum = [{href=>"/adm/createuser",
                    text=>"User Management",},                     text=>"User Management",},
                  {href=>"/adm/populate",                   {href=>"/adm/populate",
Line 231  sub make_crumbs { Line 243  sub make_crumbs {
     } elsif ($action eq 'newsections') {      } elsif ($action eq 'newsections') {
         $action = 'sections';          $action = 'sections';
     }      }
     my ($tasklong,$tasktitle) = &get_task_text();  
     my $text;      my $text;
     if (ref($tasklong) eq 'HASH') {      if (ref($tasklong) eq 'HASH') {
         $text = $tasklong->{$action};          $text = $tasklong->{$action};
Line 282  sub print_navmenu { Line 293  sub print_navmenu {
 ###############################################################  ###############################################################
   
 sub print_main_frame {  sub print_main_frame {
   my ($r,$realm,$dom,$crs,$tasktitleref) = @_;    my ($r,$realm,$dom,$crs,$tasktitleref,$permref) = @_;
   my $action = "information";    my $action = "information";
   if (exists($env{'form.action'}) ) {    if (exists($env{'form.action'}) ) {
       $action = $env{'form.action'};        $action = $env{'form.action'};
   }    }
     my ($disabled,$readonly);
     unless ($permref->{'edit'}) {
         $disabled = ' disabled="disabled"';
         $readonly = 1;
     }
   
 # Get course settings  # Get course settings
   my %enrollvar;    my %enrollvar;
Line 305  sub print_main_frame { Line 321  sub print_main_frame {
             <tr>              <tr>
               <td>&nbsp;</td>                <td>&nbsp;</td>
               <td><b>'.&mt('Use the menu on the left to choose an enrollment management task.').'</b><br /><br /></td>                <td><b>'.&mt('Use the menu on the left to choose an enrollment management task.').'</b><br /><br /></td>
             </tr>              </tr>');
         if ($permref->{'edit'}) {
             $r->print(' 
             <tr>              <tr>
               <td>&nbsp;</td>                <td>&nbsp;</td>
               <td>'.&mt('Use [_1]Automated adds/drops[_2] to enable or disable automatic nightly adds or drops in your LON-CAPA course based on institutional enrollment information.','<i>"','"</i>').'</td>                <td>'.&mt('Use [_1]Automated adds/drops[_2] to enable or disable automatic nightly adds or drops in your LON-CAPA course based on institutional enrollment information.','<i>"','"</i>').'</td>
Line 352  sub print_main_frame { Line 370  sub print_main_frame {
             <tr>              <tr>
             <td>&nbsp;</td>              <td>&nbsp;</td>
               <td>'.&mt('Use [_1]Change zero enrollment failsafe[_2] to set number of existing enrollments in an institutional section above which no automated drops occur whenever section enrollment retrieved from institutional data is zero.','<i>"','"</i>').'</td>                <td>'.&mt('Use [_1]Change zero enrollment failsafe[_2] to set number of existing enrollments in an institutional section above which no automated drops occur whenever section enrollment retrieved from institutional data is zero.','<i>"','"</i>').'</td>
               </tr>');
         } else {
             if (($permref->{'view'}) || ($permref->{'view_section'} ne '')) {
                 $r->print('
               <tr>
                 <td>&nbsp;</td>
                 <td>'.&mt('Use [_1]Automated adds/drops[_2] to display status of automatic nightly adds or drops based on institutional enrollment information.','<i>"','"</i>').'</td>
               </tr>
               <tr>
                 <td>&nbsp;</td>
                 <td>'.&mt('Use [_1]Enrollment dates[_2] to display the date of first automated enrollment and last automated enrollment for registered students.','<i>"','"</i>').'</td>
               </tr>
               <tr>
                 <td>&nbsp;</td>
                 <td>'.&mt('Use [_1]Access dates[_2] to display the default start and/or end dates for student roles created by automated enrollment.','<i>"','"</i>').'</td>
               </tr>
               <tr>
                 <td>&nbsp;</td>
                 <td>'.&mt('Use [_1]Notification of changes[_2] to display which course coordinators (if any) receive notification of enrollment changes.','<i>"','"</i>').'</td>
               </tr>
               <tr>
                 <td>&nbsp;</td>
                 <td>'.&mt('Use [_1]Crosslisting[_2] to display enrollment settings for crosslisted classes.',
                           '<i>"','"</i>').'</td>
               </tr>
               <tr>
                 <td>&nbsp;</td>
                 <td>'.&mt('Use [_1]Section settings[_2] to display sections included for enrollment.',
                           '<i>"','"</i>').'</td>
               </tr>
               <tr>
                 <td>&nbsp;</td>
                 <td>'.&mt('Use [_1]Student photo settings[_2] to display settings for automatic import of photos for registered students.',
                           '<i>"','"</i>').'</td>
             </tr>              </tr>
             <tr>              <tr>
               <td>&nbsp;</td>
                 <td>'.&mt('Use [_1]Zero enrollment failsafe[_2] to set number of existing enrollments in an institutional section above which no automated drops occur whenever section enrollment retrieved from institutional data is zero.','<i>"','"</i>').'</td>
               </tr>');
             }
             if (($permref->{'show'}) || ($permref->{'show_section'} ne '')) {
                 $r->print('
               <tr>
                 <td>&nbsp;</td>
                 <td>'.&mt('Use [_1]View students and enrollment type[_2] to display the current course roster and enrollment type ("auto" or "manual").','<i>"','"</i>').'</td>
               </tr>');
             }
             $r->print('
               <tr>
              <td colspan="2">&nbsp;</td>               <td colspan="2">&nbsp;</td>
             </tr>              </tr>
             <tr>              <tr>
Line 361  sub print_main_frame { Line 426  sub print_main_frame {
              <td><b>'.&mt('Note: if automated adds and/or drops are enabled, the nightly enrollment update will ONLY occur once the first enrollment date has been reached.').'</b></td>               <td><b>'.&mt('Note: if automated adds and/or drops are enabled, the nightly enrollment update will ONLY occur once the first enrollment date has been reached.').'</b></td>
             </tr>              </tr>
           </table>');            </table>');
         }
   } elsif ($action eq 'chgsettings') {    } elsif ($action eq 'chgsettings') {
       my @autosets = (&mt('OFF'),&mt('ON'));        my @autosets = (&mt('OFF'),&mt('ON'));
       $r->print('        $r->print('
Line 378  sub print_main_frame { Line 444  sub print_main_frame {
         '.&mt('Additions based on classlist changes:').'&nbsp;&nbsp;');          '.&mt('Additions based on classlist changes:').'&nbsp;&nbsp;');
       if ($enrollvar{autoadds}) {        if ($enrollvar{autoadds}) {
           $r->print('            $r->print('
     <label><input type="radio" name="autoadds" value="1" checked="checked" />&nbsp;'.      <label><input type="radio" name="autoadds" value="1" checked="checked"'.$disabled.' />&nbsp;'.
                             &mt('Enable').'&nbsp;&nbsp;&nbsp;</label>                              &mt('Enable').'&nbsp;&nbsp;&nbsp;</label>
     <label><input type="radio" name="autoadds" value="0" />&nbsp;'.      <label><input type="radio" name="autoadds" value="0"'.$disabled.' />&nbsp;'.
                             &mt('Disable').'</label>');                              &mt('Disable').'</label>');
       } else {        } else {
           $r->print('            $r->print('
                             <label><input type="radio" name="autoadds" value="1" />&nbsp;'.                              <label><input type="radio" name="autoadds" value="1"'.$disabled.' />&nbsp;'.
                             &mt('Enable').'&nbsp;&nbsp;&nbsp;</label>                              &mt('Enable').'&nbsp;&nbsp;&nbsp;</label>
                             <label><input type="radio" name="autoadds" value="0" checked="checked" />&nbsp;'.                              <label><input type="radio" name="autoadds" value="0" checked="checked"'.$disabled.' />&nbsp;'.
                             &mt('Disable').'</label>');                              &mt('Disable').'</label>');
       }        }
       $r->print('        $r->print('
Line 397  sub print_main_frame { Line 463  sub print_main_frame {
         '.&mt('Removals based on classlist changes:').'&nbsp;&nbsp;');          '.&mt('Removals based on classlist changes:').'&nbsp;&nbsp;');
       if ($enrollvar{autodrops}) {        if ($enrollvar{autodrops}) {
           $r->print('            $r->print('
                 <label><input type="radio" name="autodrops" value="1" checked="checked" />&nbsp;'.                  <label><input type="radio" name="autodrops" value="1" checked="checked"'.$disabled.' />&nbsp;'.
                 &mt('Enable').'&nbsp;&nbsp;&nbsp;</label>                  &mt('Enable').'&nbsp;&nbsp;&nbsp;</label>
                 <label><input type="radio" name="autodrops" value="0" />&nbsp;'.                  <label><input type="radio" name="autodrops" value="0"'.$disabled.' />&nbsp;'.
                 &mt('Disable').'</label>');                  &mt('Disable').'</label>');
       } else {        } else {
           $r->print('            $r->print('
                 <label><input type="radio" name="autodrops" value="1" />&nbsp;'.                  <label><input type="radio" name="autodrops" value="1"'.$disabled.' />&nbsp;'.
                 &mt('Enable').'&nbsp;&nbsp;&nbsp;</label>                  &mt('Enable').'&nbsp;&nbsp;&nbsp;</label>
                 <label><input type="radio" name="autodrops" value="0" checked="checked" />&nbsp;'.                  <label><input type="radio" name="autodrops" value="0" checked="checked"'.$disabled,' />&nbsp;'.
                 &mt('Disable').'</label>');                  &mt('Disable').'</label>');
       }        }
       $r->print('        $r->print('
Line 420  sub print_main_frame { Line 486  sub print_main_frame {
              </tr>               </tr>
              <tr>               <tr>
               <td align="right">                <td align="right">
                <input type="button" name="chgsettings" value="'.&mt('Go').'" onclick="process('."'chgsettings'".')" />                 <input type="button" name="chgsettings" value="'.&mt('Go').'" onclick="process('."'chgsettings'".')"'.$disabled.' />
       </td>        </td>
              </tr>               </tr>
     </table>      </table>
Line 463  sub print_main_frame { Line 529  sub print_main_frame {
             <tr>              <tr>
              <td><b>               <td><b>
             '.&mt('Failsafe (enter an integer)').'</b>&nbsp;&nbsp;              '.&mt('Failsafe (enter an integer)').'</b>&nbsp;&nbsp;
               <input type="textbox" name="autodropfailsafe" value="'.$enrollvar{'autodropfailsafe'}.'" size="4" /><br />');                <input type="textbox" name="autodropfailsafe" value="'.$enrollvar{'autodropfailsafe'}.'" size="4"'.$disabled.' /><br />');
        if ($enrollvar{'autodropfailsafe'}) {         if ($enrollvar{'autodropfailsafe'}) {
           if ($autofailsafe) {              if ($autofailsafe) {  
               $r->print(&mt('Leave blank to use domain default of [_1].',$autofailsafe));                $r->print(&mt('Leave blank to use domain default of [_1].',$autofailsafe));
Line 484  sub print_main_frame { Line 550  sub print_main_frame {
             </tr>              </tr>
             <tr>              <tr>
              <td align="right">               <td align="right">
               <input type="button" name="updatefailsafe" value="'.&mt('Go').'" onclick="'."process('chgfailsafe')".'" />                <input type="button" name="updatefailsafe" value="'.&mt('Go').'" onclick="'."process('chgfailsafe')".'"'.$disabled.' />
              </td>               </td>
             </tr>              </tr>
            </table>             </table>
Line 492  sub print_main_frame { Line 558  sub print_main_frame {
            <input type="hidden" name="state" value="process" />             <input type="hidden" name="state" value="process" />
            </form>'."\n");             </form>'."\n");
   } elsif ($action eq 'setdates') {    } elsif ($action eq 'setdates') {
       my ($start_table,$end_table) = &date_setting_table($enrollvar{autostart},$enrollvar{autoend},$action);        my ($start_table,$end_table) = &date_setting_table($enrollvar{autostart},$enrollvar{autoend},$action,$readonly);
       my $oldstartshow = '';        my $oldstartshow = '';
       my $oldendshow = '';        my $oldendshow = '';
       if ( defined($enrollvar{autostart}) ) {        if ( defined($enrollvar{autostart}) ) {
Line 563  sub print_main_frame { Line 629  sub print_main_frame {
                   <table width="100%">                    <table width="100%">
                    <tr>                     <tr>
                     <td align="right">                      <td align="right">
                       <input type="button" name="setdates" value="'.&mt('Go').'" onclick="process('."'setdates'".')" />                        <input type="button" name="setdates" value="'.&mt('Go').'" onclick="process('."'setdates'".')"'.$disabled.' />
                     </td>                      </td>
            </tr>             </tr>
                   </table>                    </table>
Line 572  sub print_main_frame { Line 638  sub print_main_frame {
                   </form>                    </form>
 ');  ');
   } elsif ($action eq 'setaccess') {    } elsif ($action eq 'setaccess') {
       &print_accessdate_table($r,\%enrollvar,$tasktitleref,$action);        &print_accessdate_table($r,\%enrollvar,$tasktitleref,$action,$readonly);
       $r->print('        $r->print('
                   <table width="100%">                    <table width="100%">
                    <tr>                     <tr>
                     <td align="right">                      <td align="right">
                       <input type="button" name="'.$action.'" value="'.&mt('Go').'" onclick="'."process('$action')".'" />                        <input type="button" name="'.$action.'" value="'.&mt('Go').'" onclick="'."process('$action')".'"'.$disabled.' />
                     </td>                      </td>
                    </tr>                     </tr>
                   </table>                    </table>
Line 640  sub print_main_frame { Line 706  sub print_main_frame {
       );        );
       if ($notifycount) {        if ($notifycount) {
           $r->print('            $r->print('
                         <label><input type="radio" name="notify" value="1" checked="checked" />&nbsp;'.&mt('Yes').'&nbsp;&nbsp;&nbsp;</label>                          <label><input type="radio" name="notify" value="1" checked="checked"'.$disabled.' />&nbsp;'.&mt('Yes').'&nbsp;&nbsp;&nbsp;</label>
                         <label><input type="radio" name="notify" value="0" />&nbsp;'.&mt('No').'</label>                          <label><input type="radio" name="notify" value="0"'.$disabled.' />&nbsp;'.&mt('No').'</label>
           ');            ');
       } else {        } else {
           $r->print('            $r->print('
                         <label><input type="radio" name="notify" value="1" />&nbsp;'.&mt('Yes').'&nbsp;&nbsp;&nbsp;</label>                          <label><input type="radio" name="notify" value="1"'.$disabled.' />&nbsp;'.&mt('Yes').'&nbsp;&nbsp;&nbsp;</label>
                         <label><input type="radio" name="notify" value="0" checked="checked" />&nbsp;'.&mt('No').'</label>                          <label><input type="radio" name="notify" value="0" checked="checked"'.$disabled.' />&nbsp;'.&mt('No').'</label>
           ');            ');
       }        }
       $r->print('        $r->print('
Line 709  sub print_main_frame { Line 775  sub print_main_frame {
               <td>                <td>
           ');            ');
           $r->print(&notifier_tables('cc',\%lt,\@ccs,\%status,\%notifystate,            $r->print(&notifier_tables('cc',\%lt,\@ccs,\%status,\%notifystate,
                                      \%pname,\$notifyshow));                                       \%pname,\$notifyshow,undef,undef,$disabled));
           $r->print('</td></tr>');            $r->print('</td></tr>');
       } else {        } else {
           $r->print('            $r->print('
Line 769  sub print_main_frame { Line 835  sub print_main_frame {
              <tr>               <tr>
               <td>');                <td>');
           $r->print(&notifier_tables('dc',\%lt,\@showdom,\%status,\%notifystate,\%pname,            $r->print(&notifier_tables('dc',\%lt,\@showdom,\%status,\%notifystate,\%pname,
                                      \$notifyshow,\@olddomcoord,\@futuredomcoord));                                       \$notifyshow,\@olddomcoord,\@futuredomcoord,$disabled));
           $r->print('            $r->print('
              </td>               </td>
           </tr>');            </tr>');
Line 787  sub print_main_frame { Line 853  sub print_main_frame {
            <table width="100%" border="0" cellpadding="2" cellspacing="2">             <table width="100%" border="0" cellpadding="2" cellspacing="2">
             <tr>              <tr>
              <td align="right">               <td align="right">
               <input type="button" name="notifyset" value="'.&mt('Go').'" onclick="'."process('notify')".'" />                <input type="button" name="notifyset" value="'.&mt('Go').'" onclick="'."process('notify')".'"'.$disabled.' />
              </td>               </td>
             </tr>              </tr>
            </table>             </table>
Line 846  sub print_main_frame { Line 912  sub print_main_frame {
               }                               }               
               $r->print(&Apache::loncommon::start_data_table_row());                $r->print(&Apache::loncommon::start_data_table_row());
               $r->print('                $r->print('
                  <td><input type="checkbox" name="cross_'.$i.'" checked="checked" /></td>                   <td><input type="checkbox" name="cross_'.$i.'" checked="checked"'.$disabled.' /></td>
                  <td>'.$xl.'</td>                   <td>'.$xl.'</td>
                  <td><input type="text" size="10" name="lcsec_'.$i.'" value="'.$lc_sec.'" /></td>                   <td><input type="text" size="10" name="lcsec_'.$i.'" value="'.$lc_sec.'"'.$disabled.' /></td>
               ');                ');
               $r->print(&Apache::loncommon::end_data_table_row());                $r->print(&Apache::loncommon::end_data_table_row());
           }            }
Line 868  sub print_main_frame { Line 934  sub print_main_frame {
              <tr>               <tr>
               <td align="left">                <td align="left">
                <b>'.&mt('Add new crosslistings.').'</b><br />'.                 <b>'.&mt('Add new crosslistings.').'</b><br />'.
                &mt('Number of new crosslistings to add:[_1]','&nbsp;&nbsp;<input type="text" size="2" name="numcross" value="0" />').'                 &mt('Number of new crosslistings to add:[_1]','&nbsp;&nbsp;<input type="text" size="2" name="numcross" value="0"'.$disabled.' />').'
               </td>                </td>
              </tr>               </tr>
             </table>              </table>
Line 876  sub print_main_frame { Line 942  sub print_main_frame {
             <table width="100%" border="0" cellpadding="2" cellspacing="2">              <table width="100%" border="0" cellpadding="2" cellspacing="2">
              <tr>               <tr>
               <td align="right">                <td align="right">
                <input type="button" name="crosslist" value="',&mt('Go').'" onclick="'."process('crosslist')".'" />                 <input type="button" name="crosslist" value="',&mt('Go').'" onclick="'."process('crosslist')".'"'.$disabled.' />
               </td>                </td>
              </tr>               </tr>
             </table>              </table>
Line 931  sub print_main_frame { Line 997  sub print_main_frame {
                   $checked = ' checked="checked"';                    $checked = ' checked="checked"';
               }                }
               $r->print(&Apache::loncommon::start_data_table_row().'                $r->print(&Apache::loncommon::start_data_table_row().'
                   <td><input type="checkbox" name="sec_'.$i.'"'.$checked.' /></td>                    <td><input type="checkbox" name="sec_'.$i.'"'.$checked.$disabled.' /></td>
                   <td>'.$sections[$i].'<input type="hidden" name="secnum_'.$i.'" value="'.$sections[$i].'" /></td>                    <td>'.$sections[$i].'<input type="hidden" name="secnum_'.$i.'" value="'.$sections[$i].'" /></td>
                   <td><input type="text" size="10" name="loncapasec_'.$i.'" value="'.$sec_id{$sections[$i]}.'" /></td>'.                    <td><input type="text" size="10" name="loncapasec_'.$i.'" value="'.$sec_id{$sections[$i]}.'"'.$disabled.' /></td>'.
                   &Apache::loncommon::end_data_table_row());                    &Apache::loncommon::end_data_table_row());
           }            }
           $r->print(&Apache::loncommon::end_data_table());            $r->print(&Apache::loncommon::end_data_table());
Line 943  sub print_main_frame { Line 1009  sub print_main_frame {
              <tr>                <tr> 
               <td align="right">                <td align="right">
                <input type="hidden" name="secshow" value="'.$secshow.'" />                 <input type="hidden" name="secshow" value="'.$secshow.'" />
                <input type="button" name="sections" value="'.&mt('Go').'" onclick="'."process('sections')".'" />                 <input type="button" name="sections" value="'.&mt('Go').'" onclick="'."process('sections')".'"'.$disabled.' />
               </td>                </td>
              </tr>               </tr>
             </table>              </table>
Line 983  sub print_main_frame { Line 1049  sub print_main_frame {
               for (my $j=0; $j<@currsections; $j++) {                for (my $j=0; $j<@currsections; $j++) {
                   $r->print(                    $r->print(
                  &Apache::loncommon::start_data_table_row().                   &Apache::loncommon::start_data_table_row().
                  '<td><input type="checkbox" name="sec_'.$j.'" checked="checked" /></td>                   '<td><input type="checkbox" name="sec_'.$j.'" checked="checked"'.$disabled.' /></td>
                  <td>'.$currsections[$j].'</td>                   <td>'.$currsections[$j].'</td>
                  <td><input type="text" name="lcsec_'.$j.'" size="10" value="'.$sec_id{$currsections[$j]}.'" /></td>                   <td><input type="text" name="lcsec_'.$j.'" size="10" value="'.$sec_id{$currsections[$j]}.'"'.$disabled.' /></td>
                  '.&Apache::loncommon::end_data_table_row());                   '.&Apache::loncommon::end_data_table_row());
               }                }
               $r->print(&Apache::loncommon::end_data_table());                $r->print(&Apache::loncommon::end_data_table());
Line 1003  sub print_main_frame { Line 1069  sub print_main_frame {
              <tr>               <tr>
               <td align="left">                <td align="left">
                <b>'.&mt('Add enrollment from additional sections.').'</b><br />'.                 <b>'.&mt('Add enrollment from additional sections.').'</b><br />'.
                &mt('Number of new sections to add:').'&nbsp;&nbsp;<input type="text" size="2" name="numsec" value="0" />                 &mt('Number of new sections to add:').'&nbsp;&nbsp;<input type="text" size="2" name="numsec" value="0"'.$disabled.' />
               </td>                </td>
              </tr>               </tr>
             </table>              </table>
Line 1011  sub print_main_frame { Line 1077  sub print_main_frame {
             <table width="100%" border="0" cellpadding="2" cellspacing="2">              <table width="100%" border="0" cellpadding="2" cellspacing="2">
              <tr>               <tr>
               <td align="right">                <td align="right">
                <input type="button" name="sections" value="'.&mt('Go').'" onclick="'."process('sections')".'" />                 <input type="button" name="sections" value="'.&mt('Go').'" onclick="'."process('sections')".'"'.$disabled.' />
               </td>                </td>
              </tr>               </tr>
             </table>              </table>
Line 1037  sub print_main_frame { Line 1103  sub print_main_frame {
                          '.&mt('Automatic import of student photos from institutional data repository:').'&nbsp;&nbsp;');                           '.&mt('Automatic import of student photos from institutional data repository:').'&nbsp;&nbsp;');
       if ($enrollvar{showphoto}) {        if ($enrollvar{showphoto}) {
           $r->print('            $r->print('
                         <label><input type="radio" name="showphotos" value="1" checked="checked" />&nbsp;'.&mt('Yes').'&nbsp;&nbsp;&nbsp;</label>                          <label><input type="radio" name="showphotos" value="1" checked="checked"'.$disabled.' />&nbsp;'.&mt('Yes').'&nbsp;&nbsp;&nbsp;</label>
                         <label><input type="radio" name="showphotos" value="0" />&nbsp;'.&mt('No').'</label>                          <label><input type="radio" name="showphotos" value="0"'.$disabled.' />&nbsp;'.&mt('No').'</label>
           ');            ');
       } else {        } else {
           $r->print('            $r->print('
                         <label><input type="radio" name="showphotos" value="1" />&nbsp;'.&mt('Yes').'&nbsp;&nbsp;&nbsp;</label>                          <label><input type="radio" name="showphotos" value="1"'.$disabled.' />&nbsp;'.&mt('Yes').'&nbsp;&nbsp;&nbsp;</label>
                         <label><input type="radio" name="showphotos" value="0" checked="checked" />&nbsp;'.&mt('No').'</label>                          <label><input type="radio" name="showphotos" value="0" checked="checked"'.$disabled.' />&nbsp;'.&mt('No').'</label>
           ');            ');
       }        }
       $r->print('        $r->print('
Line 1065  sub print_main_frame { Line 1131  sub print_main_frame {
 &mt('Previously the owner of this course agreed to the conditions of use of digital student photos required by [_1].', $institution).'<br />'.  &mt('Previously the owner of this course agreed to the conditions of use of digital student photos required by [_1].', $institution).'<br />'.
 &mt('As a result [_1]s can choose to automatically import student photos into this course.',&Apache::lonnet::plaintext('cc')).  &mt('As a result [_1]s can choose to automatically import student photos into this course.',&Apache::lonnet::plaintext('cc')).
 '<br /><span class="LC_nobreak"><label>'.  '<br /><span class="LC_nobreak"><label>'.
 &mt('[_1]Cancel[_2] owner acceptance of these conditions of use?','<b>','</b>').'&nbsp;<input type="checkbox" name="cancel_agreement" value="1" /></label></span>  &mt('[_1]Cancel[_2] owner acceptance of these conditions of use?','<b>','</b>').'&nbsp;<input type="checkbox" name="cancel_agreement" value="1"'.$disabled.' /></label></span>
                      </td>                       </td>
                     </tr>                      </tr>
                       ');                        ');
Line 1132  sub print_main_frame { Line 1198  sub print_main_frame {
                     </tr>                      </tr>
                     <tr>                      <tr>
                      <td align="right">                       <td align="right">
                       <input type="button" name="showphotos" value="'.&mt('Go').'" onclick="process('."'photos'".')" />                        <input type="button" name="showphotos" value="'.&mt('Go').'" onclick="process('."'photos'".')"'.$disabled.' />
                      </td>                       </td>
                     </tr>                      </tr>
                    </table>                     </table>
Line 1153  sub print_main_frame { Line 1219  sub print_main_frame {
     <tr>      <tr>
      <td>'.       <td>'.
              &mt('Add any students currently included in institutional classlist(s) but not enrolled in your LON-CAPA course.').'<br />                 &mt('Add any students currently included in institutional classlist(s) but not enrolled in your LON-CAPA course.').'<br />  
       <label><input type="radio" name="updateadds" value="1" />&nbsp;'.&mt('Yes').'&nbsp;</label>        <label><input type="radio" name="updateadds" value="1"'.$disabled.' />&nbsp;'.&mt('Yes').'&nbsp;</label>
                       <label><input type="radio" name="updateadds" value="0" />&nbsp;'.&mt('No').'&nbsp;</label>                        <label><input type="radio" name="updateadds" value="0"'.$disabled.' />&nbsp;'.&mt('No').'&nbsp;</label>
                      </td>                       </td>
                     </tr>                      </tr>
                     <tr>                      <tr>
                      <td>'.                       <td>'.
               &mt('Expire students previously added by nightly enrollment process, but no longer listed in institutional classlist(s).').'<br />                &mt('Expire students previously added by nightly enrollment process, but no longer listed in institutional classlist(s).').'<br />
                       <label><input type="radio" name="updatedrops" value="1" />&nbsp;'.&mt('Yes').'&nbsp;</label>                        <label><input type="radio" name="updatedrops" value="1"'.$disabled.' />&nbsp;'.&mt('Yes').'&nbsp;</label>
                       <label><input type="radio" name="updatedrops" value="0" />&nbsp;'.&mt('No').'&nbsp;</label><br />                        <label><input type="radio" name="updatedrops" value="0"'.$disabled.' />&nbsp;'.&mt('No').'&nbsp;</label><br />
                      </td>                       </td>
                     </tr>                      </tr>
                     <tr>                      <tr>
Line 1173  sub print_main_frame { Line 1239  sub print_main_frame {
                     <tr>                      <tr>
                      <td>                       <td>
       ');        ');
       &print_accessdate_table($r,\%enrollvar,$tasktitleref,$action);        &print_accessdate_table($r,\%enrollvar,$tasktitleref,$action,$readonly);
       $r->print('        $r->print('
                      </td>                       </td>
                     </tr>                      </tr>
                     <tr>                      <tr>
                      <td align="right">                       <td align="right">
                       <input type="button" name="updatenow" value="'.&mt('Go').'" onclick="'."process('updatenow')".'" />                        <input type="button" name="updatenow" value="'.&mt('Go').'" onclick="'."process('updatenow')".'"'.$disabled.' />
                      </td>                       </td>
                     </tr>                      </tr>
            </table>             </table>
Line 1201  sub print_main_frame { Line 1267  sub print_main_frame {
               $r->print('<br />'.$commentary.'<br /><br />                $r->print('<br />'.$commentary.'<br /><br />
 <form name="photoupdate" method="post" action="">  <form name="photoupdate" method="post" action="">
 <input type="button" name="retrieve" value="'.&mt('Update photo repository').'"  <input type="button" name="retrieve" value="'.&mt('Update photo repository').'"
 onclick="javascript:document.photoupdate.submit()" />  onclick="javascript:document.photoupdate.submit()"'.$disabled.' />
 <input type="hidden" name="action" value="'.$action.'" />  <input type="hidden" name="action" value="'.$action.'" />
 <input type="hidden" name="state" value="process" />  <input type="hidden" name="state" value="process" />
 </form>');  </form>');
Line 1275  onclick="javascript:document.photoupdate Line 1341  onclick="javascript:document.photoupdate
               "\n");                "\n");
           my $context = 'course';            my $context = 'course';
           my $mode = 'autoenroll';            my $mode = 'autoenroll';
           my ($studentcount,$autocount,$manualcount,$lockcount,$unlockcount) = &Apache::lonuserutils::show_users_list($r,$context,$mode,$permission,$env{'form.Status'},\%userlist,$keylist);            my ($studentcount,$autocount,$manualcount,$lockcount,$unlockcount) = 
                 &Apache::lonuserutils::show_users_list($r,$context,$mode,$permission,$env{'form.Status'},\%userlist,$keylist);
           $r->print('            $r->print('
                      </td>                       </td>
                     </tr>                      </tr>
Line 1288  onclick="javascript:document.photoupdate Line 1355  onclick="javascript:document.photoupdate
               if ($autocount > 0) {                if ($autocount > 0) {
                   $cellcount ++;                    $cellcount ++;
                   $r->print('                    $r->print('
                       <td><fieldset><legend>'.&mt('Change auto').'</legend><input type="button" value="'.&mt('check all').'" onclick="javascript:checkAll(document.studentform.chgauto)" />&nbsp;&nbsp;                        <td><fieldset><legend>'.&mt('Change auto').'</legend><input type="button" value="'.&mt('check all').'" onclick="javascript:checkAll(document.studentform.chgauto)"'.$disabled.' />&nbsp;&nbsp;
                       <input type="button" value="'.&mt('uncheck all').'" onclick="javascript:uncheckAll(document.studentform.chgauto)" /></fieldset></td>                        <input type="button" value="'.&mt('uncheck all').'" onclick="javascript:uncheckAll(document.studentform.chgauto)"'.$disabled.' /></fieldset></td>
                   ');                    ');
               }                }
               if ($manualcount > 0) {                if ($manualcount > 0) {
                   $cellcount ++;                    $cellcount ++;
                   $r->print('                    $r->print('
                       <td><fieldset><legend>'.&mt('Change manual').'</legend><input type="button" value="'.&mt('check all').'" onclick="javascript:checkAll(document.studentform.chgmanual)" />&nbsp;&nbsp;                        <td><fieldset><legend>'.&mt('Change manual').'</legend><input type="button" value="'.&mt('check all').'" onclick="javascript:checkAll(document.studentform.chgmanual)"'.$disabled.' />&nbsp;&nbsp;
                       <input type="button" value="'.&mt('uncheck all').'" onclick="javascript:uncheckAll(document.studentform.chgmanual)" /></fieldset></td>                        <input type="button" value="'.&mt('uncheck all').'" onclick="javascript:uncheckAll(document.studentform.chgmanual)"'.$disabled.' /></fieldset></td>
                   ');                    ');
               }                }
               if ($lockcount > 0) {                if ($lockcount > 0) {
Line 1305  onclick="javascript:document.photoupdate Line 1372  onclick="javascript:document.photoupdate
                   }                    }
                   $cellcount ++;                    $cellcount ++;
                   $r->print('                    $r->print('
                        <td><fieldset><legend>'.&mt('Lock manual').'</legend><input type="button" value="'.&mt('check all').'" onclick="javascript:checkAll(document.studentform.lockchg)" />&nbsp;&nbsp;                         <td><fieldset><legend>'.&mt('Lock manual').'</legend><input type="button" value="'.&mt('check all').'" onclick="javascript:checkAll(document.studentform.lockchg)"'.$disabled.' />&nbsp;&nbsp;
                        <input type="button" value="'.&mt('uncheck all').'" onclick="javascript:uncheckAll(document.studentform.lockchg)" /></fieldset></td>                         <input type="button" value="'.&mt('uncheck all').'" onclick="javascript:uncheckAll(document.studentform.lockchg)"'.$disabled.' /></fieldset></td>
                   ');                    ');
               }                }
               if ($unlockcount > 0) {                if ($unlockcount > 0) {
Line 1316  onclick="javascript:document.photoupdate Line 1383  onclick="javascript:document.photoupdate
                   $cellcount ++;                    $cellcount ++;
                   $r->print('                    $r->print('
                        <td><fieldset><legend>'.&mt('Unlock manual').'                         <td><fieldset><legend>'.&mt('Unlock manual').'
                        </legend><input type="button" value="'.&mt('check all').'" onclick="javascript:checkAll(document.studentform.unlockchg)" />&nbsp;&nbsp;                         </legend><input type="button" value="'.&mt('check all').'" onclick="javascript:checkAll(document.studentform.unlockchg)"'.$disabled.' />&nbsp;&nbsp;
                        <input type="button" value="'.&mt('uncheck all').'" onclick="javascript:uncheckAll(document.studentform.unlockchg)" /></fieldset></td>');                         <input type="button" value="'.&mt('uncheck all').'" onclick="javascript:uncheckAll(document.studentform.unlockchg)"'.$disabled.' /></fieldset></td>');
               }                }
               $r->print('                $r->print('
                        </tr>                         </tr>
Line 1326  onclick="javascript:document.photoupdate Line 1393  onclick="javascript:document.photoupdate
                     </tr>                      </tr>
                     <tr>                      <tr>
                      <td align="right">                       <td align="right">
                       <input type="button" name="viewclass" value="'.&mt('Go').'" onclick="'."process('viewclass','$autocount','$manualcount','$lockcount','$unlockcount')".'" />                        <input type="button" name="viewclass" value="'.&mt('Go').'" onclick="'."process('viewclass','$autocount','$manualcount','$lockcount','$unlockcount')".'"'.$disabled.' />
                      </td>                       </td>
                     </tr>                      </tr>
               ');                ');
Line 1351  onclick="javascript:document.photoupdate Line 1418  onclick="javascript:document.photoupdate
   
 sub notifier_tables {  sub notifier_tables {
     my ($role,$lt,$users,$status,$notifystate,$pname,$notifyshow,$olddomcoord,      my ($role,$lt,$users,$status,$notifystate,$pname,$notifyshow,$olddomcoord,
         $futuredomcoord) = @_;          $futuredomcoord,$disabled) = @_;
     my $output = &Apache::loncommon::start_data_table();      my $output = &Apache::loncommon::start_data_table();
     $output .= &Apache::loncommon::start_data_table_header_row();      $output .= &Apache::loncommon::start_data_table_header_row();
     $output .= "<th>$$lt{name}</th>      $output .= "<th>$$lt{name}</th>
Line 1394  sub notifier_tables { Line 1461  sub notifier_tables {
         if ($$notifystate{$$users[$i]} == 1) {          if ($$notifystate{$$users[$i]} == 1) {
             $output .= ' checked="checked"';              $output .= ' checked="checked"';
         }          }
         $output .= ' /></td>';          $output .= $disabled.' /></td>';
         $output .= &Apache::loncommon::end_data_table_row();          $output .= &Apache::loncommon::end_data_table_row();
         $$notifyshow ++;          $$notifyshow ++;
     }      }
Line 1403  sub notifier_tables { Line 1470  sub notifier_tables {
 }  }
   
 sub print_accessdate_table {  sub print_accessdate_table {
     my ($r,$enrollvar,$tasktitleref,$action) = @_;      my ($r,$enrollvar,$tasktitleref,$action,$readonly) = @_;
     my ($start_table,$end_table) = &date_setting_table($$enrollvar{'default_enrollment_start_date'},$$enrollvar{'default_enrollment_end_date'},$action);      my ($start_table,$end_table) = &date_setting_table($$enrollvar{'default_enrollment_start_date'},$$enrollvar{'default_enrollment_end_date'},$action,$readonly);
     my ($oldstartshow,$oldendshow);      my ($oldstartshow,$oldendshow);
     if ( defined($$enrollvar{'default_enrollment_start_date'}) ) {      if ( defined($$enrollvar{'default_enrollment_start_date'}) ) {
         $oldstartshow = &Apache::lonlocal::locallocaltime($$enrollvar{'default_enrollment_start_date'});          $oldstartshow = &Apache::lonlocal::locallocaltime($$enrollvar{'default_enrollment_start_date'});
Line 3154  sub print_reply { Line 3221  sub print_reply {
 }  }
   
 sub setup_date_selectors {  sub setup_date_selectors {
     my ($starttime,$endtime,$action) = @_;      my ($starttime,$endtime,$action,$readonly) = @_;
       my $disabled;
       if ($readonly) {
           $disabled = 'disabled';
       }
     if (! defined($starttime)) {      if (! defined($starttime)) {
         $starttime = time;          $starttime = time;
         if ($action eq 'setdates') {          if ($action eq 'setdates') {
Line 3177  sub setup_date_selectors { Line 3248  sub setup_date_selectors {
     }      }
     my $startdateform = &Apache::lonhtmlcommon::date_setter('enter',      my $startdateform = &Apache::lonhtmlcommon::date_setter('enter',
                                                             'startdate',                                                              'startdate',
                                                             $starttime);                                                              $starttime,'','',$disabled);
     my $enddateform = &Apache::lonhtmlcommon::date_setter('enter',      my $enddateform = &Apache::lonhtmlcommon::date_setter('enter',
                                                           'enddate',                                                            'enddate',
                                                           $endtime);                                                            $endtime,'','',$disabled);
     return ($startdateform,$enddateform);      return ($startdateform,$enddateform);
 }  }
   
Line 3195  sub get_dates_from_form { Line 3266  sub get_dates_from_form {
 }  }
   
 sub date_setting_table {  sub date_setting_table {
     my ($starttime,$endtime,$action) = @_;      my ($starttime,$endtime,$action,$readonly) = @_;
       my $disabled;
       if ($readonly) {
           $disabled = ' disabled="disabled"';
       }
     my ($startform,$endform) =       my ($startform,$endform) = 
         &setup_date_selectors($starttime,$endtime,$action);          &setup_date_selectors($starttime,$endtime,$action,$readonly);
     my $perpetual = '<span class="LC_nobreak"><label>'.      my $perpetual = '<span class="LC_nobreak"><label>'.
                     '<input type="checkbox" name="no_end_date"';                      '<input type="checkbox" name="no_end_date"';
     if (($action eq 'setdates' && defined($endtime) && $endtime == 0) ||       if (($action eq 'setdates' && defined($endtime) && $endtime == 0) || 
Line 3205  sub date_setting_table { Line 3280  sub date_setting_table {
          ($endtime eq '' || $endtime == 0)) ) {           ($endtime eq '' || $endtime == 0)) ) {
         $perpetual .= ' checked="checked"';          $perpetual .= ' checked="checked"';
     }      }
     $perpetual.= ' /> '.&mt('no end date').'</label></span>';      $perpetual.= $disabled.' /> '.&mt('no end date').'</label></span>';
     my $start_table = "<table>\n".      my $start_table = "<table>\n".
                       '<tr><td align="right">'.&mt('Starting Date').'</td>'.                        '<tr><td align="right">'.&mt('Starting Date').'</td>'.
                       '<td>'.$startform.'</td>'.                        '<td>'.$startform.'</td>'.
Line 3243  sub user_is_courseowner { Line 3318  sub user_is_courseowner {
 }  }
   
 sub get_task_text {  sub get_task_text {
     my %tasklong =       my ($permref) = @_;
       my %tasklong =
         &Apache::lonlocal::texthash(          &Apache::lonlocal::texthash(
                information   => 'Task information',             information   => 'Task information',
                chgsettings   => 'Automated adds/drops',             chgsettings   => 'Automated adds/drops',
                chgfailsafe   => 'Change zero enrollment failsafe',             chgfailsafe   => 'Change zero enrollment failsafe',
                setdates      => 'Change enrollment dates',             setdates      => 'Change enrollment dates',
                setaccess     => 'Change access dates',             setaccess     => 'Change access dates',
                notify        => 'Notification of changes',             notify        => 'Notification of changes',
                crosslist     => 'Change crosslistings',             crosslist     => 'Change crosslistings',
                sections      => 'Section settings',             sections      => 'Section settings',
                photos        => 'Student photo settings',             photos        => 'Student photo settings',
                updatephotos  => 'Update student photos',             updatephotos  => 'Update student photos',
                updatenow     => 'Update roster now',             updatenow     => 'Update roster now',
                newcross      => 'Add crosslistings',             newcross      => 'Add crosslistings',
                newsections   => 'Add sections',             newsections   => 'Add sections',
                viewclass     => 'View students and change type',             viewclass     => 'View students and change type',
     );      );
   
     my %tasktitle =       my %tasktitle =
         &Apache::lonlocal::texthash(          &Apache::lonlocal::texthash(
                chgsettings  => 'Changes to nightly automated enrollments',             chgsettings  => 'Changes to nightly automated enrollments',
                chgfailsafe  => 'Changes to failsafe protection for data retrieval problems',             chgfailsafe  => 'Changes to failsafe protection for data retrieval problems',
                setdates     => 'Changes to first and/or last automated enrollment dates',             setdates     => 'Changes to first and/or last automated enrollment dates',
                setaccess    => 'Changes to default start and/or end dates for student access',             setaccess    => 'Changes to default start and/or end dates for student access',
                notify       => 'Notification of enrollment changes',             notify       => 'Notification of enrollment changes',
                crosslist    => 'Changes to crosslistings',             crosslist    => 'Changes to crosslistings',
                sections     => 'Changes to section settings',             sections     => 'Changes to section settings',
                photos       => 'Student photo settings',             photos       => 'Student photo settings',
                updatephotos => 'Update student photos',             updatephotos => 'Update student photos',
                updatenow => "Immediate course roster update",             updatenow => "Immediate course roster update",
                newcross => "Adding new crosslisted courses",             newcross => "Adding new crosslisted courses",
                newsections => "Adding new course sections",             newsections => "Adding new course sections",
                viewclass => "Viewing class roster and enrollment type"             viewclass => "Viewing class roster and enrollment type"
     );      );
   
       if ((ref($permref) eq 'HASH') && (!$permref->{'edit'})) {
           $tasklong{'chgfailsafe'} = &mt('Zero enrollment failsafe');
           $tasklong{'setdates'}    = &mt('Enrollment dates');
           $tasklong{'setaccess'}   = &mt('Access dates');
           $tasklong{'crosslist'}   = &mt('Crosslistings');
           $tasklong{'viewclass'}   = &mt('View students and type');
       }
     return (\%tasklong,\%tasktitle);      return (\%tasklong,\%tasktitle);
 }  }
   
   sub check_permission {
       my ($permref) = @_;
       return unless (ref($permref) eq 'HASH');
       my $hasaccess;
       if ($env{'request.course.id'}) {
           foreach my $priv ('cst','vpa','vcl') {
               my ($allowed,$section);
               if (&Apache::lonnet::allowed($priv,$env{'request.course.id'})) {
                   $allowed = 1;
               } elsif ($env{'request.course.sec'} ne '') {
                   if (&Apache::lonnet::allowed($priv,$env{'request.course.id'}.'/'.
                                                      $env{'request.course.sec'})) {
                       $allowed = 1;
                       $section = $env{'request.course.sec'};
                   }
               }
               if ($allowed) {
                   $hasaccess = 1;
                   if ($priv eq 'cst') {
                       if ($section ne '') {
                           $permref->{'edit_section'} = $section;
                       } else {
                           $permref->{'edit'} = 1;
                       }
                   } elsif ($priv eq 'vpa') {
                       if ($section ne '') {
                           $permref->{'view_section'} = $section;
                       } else {
                           $permref->{'view'} = 1;
                       }
                   } elsif ($priv eq 'vcl') {
                       if ($section ne '') {
                           $permref->{'show_section'} = $section;
                       } else {
                           $permref->{'show'} = 1;
                       }
                   }
               }
           }
       }
       return $hasaccess;
   }
   
           
 ###################################################################  ###################################################################
 sub handler {  sub handler {
Line 3290  sub handler { Line 3418  sub handler {
     }      }
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                             ['action','state']);                                              ['action','state']);
       my %permhash;
     #  Needs to be in a course      #  Needs to be in a course
     if (! (($env{'request.course.fn'}) &&        if (!($env{'request.course.fn'})) {
            (&Apache::lonnet::allowed('cst',$env{'request.course.id'})))) {          # Not in a course
         # Not in a course, or not allowed to modify parms          $env{'user.error.msg'}="/adm/populate:cst:0:0:Cannot display automated enrollment";
         $env{'user.error.msg'}="/adm/populate:cst:0:0:Cannot drop or add students";  
         return HTTP_NOT_ACCEPTABLE;          return HTTP_NOT_ACCEPTABLE;
       } elsif (!&check_permission(\%permhash)) {
           # Not allowed to modify students, view settings, or view classlist.
           $env{'user.error.msg'}="/adm/populate:cst:0:0:Cannot display automated enrollment";
           return HTTP_NOT_ACCEPTABLE; 
     }      }
     # Start page      # Start page
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
Line 3304  sub handler { Line 3436  sub handler {
     my @tasks = ('information','chgsettings','setdates','setaccess','notify','crosslist',      my @tasks = ('information','chgsettings','setdates','setaccess','notify','crosslist',
                  'sections','photos','updatenow','updatephotos','viewclass','chgfailsafe');                   'sections','photos','updatenow','updatephotos','viewclass','chgfailsafe');
     
     my ($tasklong,$tasktitle) = &get_task_text();      my ($tasklong,$tasktitle) = &get_task_text(\%permhash);
     my $realm;      my $realm;
     if ( exists($env{'request.course.id'}) ) {      if ( exists($env{'request.course.id'}) ) {
         $realm=$env{'course.'.$env{'request.course.id'}.'.description'};          $realm=$env{'course.'.$env{'request.course.id'}.'.description'};
Line 3312  sub handler { Line 3444  sub handler {
     unless ($realm) { $realm='&nbsp;'; }      unless ($realm) { $realm='&nbsp;'; }
     my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};      my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
     my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};      my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
       
     #      #
     # Main switch on form.action and form.state, as appropriate      # Main switch on form.action and form.state, as appropriate
     #      #
Line 3328  sub handler { Line 3460  sub handler {
     }      }
   
     if ($action eq "information") {      if ($action eq "information") {
         $r->print(&header($action));          $r->print(&header($action,\%permhash));
     } else {      } else {
         if ($state eq "choose") {          if ($state eq "choose") {
             $r->print(&choose_header($action));              $r->print(&choose_header($action,\%permhash));
         } else {          } else {
             if ($action eq "crosslist") {              if ($action eq "crosslist") {
                 if ( exists($env{'form.numcross'}) ) {                  if ( exists($env{'form.numcross'}) ) {
                     if ( $env{'form.numcross'} > 0 ) {                      if ( $env{'form.numcross'} > 0 ) {
                         $r->print(&choose_header($action));                          $r->print(&choose_header($action,\%permhash));
                     } else {                      } else {
                         $r->print(&header($action));                          $r->print(&header($action,\%permhash));
                     }                      }
                 } else {                  } else {
                     $r->print(&header());                      $r->print(&header(undef,\%permhash));
                 }                  }
             } elsif ($action eq "sections") {              } elsif ($action eq "sections") {
                 if ( exists($env{'form.numsec'}) ) {                  if ( exists($env{'form.numsec'}) ) {
                     if ( $env{'form.numsec'} > 0 ) {                      if ( $env{'form.numsec'} > 0 ) {
                         $r->print(&choose_header($action));                          $r->print(&choose_header($action,\%permhash));
                     } else {                      } else {
                         $r->print(&header($action));                          $r->print(&header($action,\%permhash));
                     }                      }
                 } else {                  } else {
                     $r->print(&header($action));                      $r->print(&header($action,\%permhash));
                 }                  }
             } else {              } else {
                 $r->print(&header($action));                  $r->print(&header($action,\%permhash));
             }              }
         }          }
     }      }
Line 3365  sub handler { Line 3497  sub handler {
     &print_navmenu($r,\@tasks,$tasklong,$action,$state);      &print_navmenu($r,\@tasks,$tasklong,$action,$state);
   
     if (($state eq "choose") || ($action eq "information")) {      if (($state eq "choose") || ($action eq "information")) {
         &print_main_frame($r,$realm,$dom,$crs,$tasktitle);          &print_main_frame($r,$realm,$dom,$crs,$tasktitle,\%permhash);
     } elsif ($action eq "chgsettings") {      } elsif (($action eq "chgsettings") && ($permhash{'edit'})) {
         &print_chgsettings_response($r,$realm,$dom,$crs,$action,$tasktitle);          &print_chgsettings_response($r,$realm,$dom,$crs,$action,$tasktitle);
     } elsif ($action eq "chgfailsafe") {      } elsif (($action eq "chgfailsafe") && ($permhash{'edit'})) {
         &print_chgfailsafe_response($r,$realm,$dom,$crs,$action,$tasktitle);          &print_chgfailsafe_response($r,$realm,$dom,$crs,$action,$tasktitle);
     } elsif ($action eq "setdates") {      } elsif (($action eq "setdates") && ($permhash{'edit'})) {
         &print_setdates_response($r,$realm,$dom,$crs,$action,$tasktitle);          &print_setdates_response($r,$realm,$dom,$crs,$action,$tasktitle);
     } elsif ($action eq "setaccess") {      } elsif (($action eq "setaccess") && ($permhash{'edit'})) {
         &print_setaccess_response($r,$realm,$dom,$crs,$action,$tasktitle);          &print_setaccess_response($r,$realm,$dom,$crs,$action,$tasktitle);
     } elsif ($action eq "notify") {      } elsif (($action eq "notify") && ($permhash{'edit'})) {
         &print_notify_response($r,$realm,$dom,$crs,$action,$tasktitle);          &print_notify_response($r,$realm,$dom,$crs,$action,$tasktitle);
     } elsif ($action eq "sections") {      } elsif (($action eq "sections") && ($permhash{'edit'})) {
         &print_sections_menu($r,$realm,$dom,$crs,$action,$tasktitle);          &print_sections_menu($r,$realm,$dom,$crs,$action,$tasktitle);
     } elsif ($action eq "crosslist") {      } elsif (($action eq "crosslist") && ($permhash{'edit'})) {
         &print_crosslistings_menu($r,$realm,$dom,$crs,$action,$tasktitle);          &print_crosslistings_menu($r,$realm,$dom,$crs,$action,$tasktitle);
     } elsif ($action eq "updatenow") {      } elsif (($action eq "updatenow") && ($permhash{'edit'})) {
         &print_update_result($r,$realm,$dom,$crs,$action,$tasktitle);          &print_update_result($r,$realm,$dom,$crs,$action,$tasktitle);
     } elsif ($action eq "photos") {      } elsif (($action eq "photos") && ($permhash{'edit'})) {
         if ($state eq "photoupdate") {          if ($state eq "photoupdate") {
             &print_photoupdate_response($r,$realm,$dom,$crs,$action,$tasktitle);              &print_photoupdate_response($r,$realm,$dom,$crs,$action,$tasktitle);
         } else {           } else {
             &photo_permission($r,$realm,$dom,$crs,$action,$tasktitle);              &photo_permission($r,$realm,$dom,$crs,$action,$tasktitle);
         }          }
     } elsif ($action eq "updatephotos") {      } elsif (($action eq "updatephotos") && ($permhash{'edit'})) {
         &print_photoupdate_response($r,$realm,$dom,$crs,$action,$tasktitle);          &print_photoupdate_response($r,$realm,$dom,$crs,$action,$tasktitle);
     } elsif ($action eq "newcross") {      } elsif (($action eq "newcross") && ($permhash{'edit'})) {
         &print_crosslistings_response($r,$realm,$dom,$crs,$action,$tasktitle);              &print_crosslistings_response($r,$realm,$dom,$crs,$action,$tasktitle);    
     } elsif ($action eq "newsections") {      } elsif (($action eq "newsections") && ($permhash{'edit'})) {
         &print_sections_response($r,$realm,$dom,$crs,$action,$tasktitle);          &print_sections_response($r,$realm,$dom,$crs,$action,$tasktitle);
     } elsif ($action eq "viewclass") {      } elsif (($action eq "viewclass") && ($permhash{'edit'})) {
         &print_viewclass_response($r,$realm,$dom,$crs,$action,$tasktitle);          &print_viewclass_response($r,$realm,$dom,$crs,$action,$tasktitle);
     }      }
     &print_doc_base($r);        &print_doc_base($r);  

Removed from v.1.84  
changed lines
  Added in v.1.85


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