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> </td> |
<td> </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> </td> |
<td> </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> </td> |
<td> </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> </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> </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> </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> </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> </td> |
|
<td>'.&mt('Use [_1]Crosslisting[_2] to display enrollment settings for crosslisted classes.', |
|
'<i>"','"</i>').'</td> |
|
</tr> |
|
<tr> |
|
<td> </td> |
|
<td>'.&mt('Use [_1]Section settings[_2] to display sections included for enrollment.', |
|
'<i>"','"</i>').'</td> |
|
</tr> |
|
<tr> |
|
<td> </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> </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> </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"> </td> |
<td colspan="2"> </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:').' '); |
'.&mt('Additions based on classlist changes:').' '); |
if ($enrollvar{autoadds}) { |
if ($enrollvar{autoadds}) { |
$r->print(' |
$r->print(' |
<label><input type="radio" name="autoadds" value="1" checked="checked" /> '. |
<label><input type="radio" name="autoadds" value="1" checked="checked"'.$disabled.' /> '. |
&mt('Enable').' </label> |
&mt('Enable').' </label> |
<label><input type="radio" name="autoadds" value="0" /> '. |
<label><input type="radio" name="autoadds" value="0"'.$disabled.' /> '. |
&mt('Disable').'</label>'); |
&mt('Disable').'</label>'); |
} else { |
} else { |
$r->print(' |
$r->print(' |
<label><input type="radio" name="autoadds" value="1" /> '. |
<label><input type="radio" name="autoadds" value="1"'.$disabled.' /> '. |
&mt('Enable').' </label> |
&mt('Enable').' </label> |
<label><input type="radio" name="autoadds" value="0" checked="checked" /> '. |
<label><input type="radio" name="autoadds" value="0" checked="checked"'.$disabled.' /> '. |
&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:').' '); |
'.&mt('Removals based on classlist changes:').' '); |
if ($enrollvar{autodrops}) { |
if ($enrollvar{autodrops}) { |
$r->print(' |
$r->print(' |
<label><input type="radio" name="autodrops" value="1" checked="checked" /> '. |
<label><input type="radio" name="autodrops" value="1" checked="checked"'.$disabled.' /> '. |
&mt('Enable').' </label> |
&mt('Enable').' </label> |
<label><input type="radio" name="autodrops" value="0" /> '. |
<label><input type="radio" name="autodrops" value="0"'.$disabled.' /> '. |
&mt('Disable').'</label>'); |
&mt('Disable').'</label>'); |
} else { |
} else { |
$r->print(' |
$r->print(' |
<label><input type="radio" name="autodrops" value="1" /> '. |
<label><input type="radio" name="autodrops" value="1"'.$disabled.' /> '. |
&mt('Enable').' </label> |
&mt('Enable').' </label> |
<label><input type="radio" name="autodrops" value="0" checked="checked" /> '. |
<label><input type="radio" name="autodrops" value="0" checked="checked"'.$disabled,' /> '. |
&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> |
'.&mt('Failsafe (enter an integer)').'</b> |
<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" /> '.&mt('Yes').' </label> |
<label><input type="radio" name="notify" value="1" checked="checked"'.$disabled.' /> '.&mt('Yes').' </label> |
<label><input type="radio" name="notify" value="0" /> '.&mt('No').'</label> |
<label><input type="radio" name="notify" value="0"'.$disabled.' /> '.&mt('No').'</label> |
'); |
'); |
} else { |
} else { |
$r->print(' |
$r->print(' |
<label><input type="radio" name="notify" value="1" /> '.&mt('Yes').' </label> |
<label><input type="radio" name="notify" value="1"'.$disabled.' /> '.&mt('Yes').' </label> |
<label><input type="radio" name="notify" value="0" checked="checked" /> '.&mt('No').'</label> |
<label><input type="radio" name="notify" value="0" checked="checked"'.$disabled.' /> '.&mt('No').'</label> |
'); |
'); |
} |
} |
$r->print(' |
$r->print(' |
Line 709 sub print_main_frame {
|
Line 775 sub print_main_frame {
|
<td> |
<td> |
'); |
'); |
$r->print(¬ifier_tables('cc',\%lt,\@ccs,\%status,\%notifystate, |
$r->print(¬ifier_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(¬ifier_tables('dc',\%lt,\@showdom,\%status,\%notifystate,\%pname, |
$r->print(¬ifier_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]',' <input type="text" size="2" name="numcross" value="0" />').' |
&mt('Number of new crosslistings to add:[_1]',' <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:').' <input type="text" size="2" name="numsec" value="0" /> |
&mt('Number of new sections to add:').' <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:').' '); |
'.&mt('Automatic import of student photos from institutional data repository:').' '); |
if ($enrollvar{showphoto}) { |
if ($enrollvar{showphoto}) { |
$r->print(' |
$r->print(' |
<label><input type="radio" name="showphotos" value="1" checked="checked" /> '.&mt('Yes').' </label> |
<label><input type="radio" name="showphotos" value="1" checked="checked"'.$disabled.' /> '.&mt('Yes').' </label> |
<label><input type="radio" name="showphotos" value="0" /> '.&mt('No').'</label> |
<label><input type="radio" name="showphotos" value="0"'.$disabled.' /> '.&mt('No').'</label> |
'); |
'); |
} else { |
} else { |
$r->print(' |
$r->print(' |
<label><input type="radio" name="showphotos" value="1" /> '.&mt('Yes').' </label> |
<label><input type="radio" name="showphotos" value="1"'.$disabled.' /> '.&mt('Yes').' </label> |
<label><input type="radio" name="showphotos" value="0" checked="checked" /> '.&mt('No').'</label> |
<label><input type="radio" name="showphotos" value="0" checked="checked"'.$disabled.' /> '.&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>').' <input type="checkbox" name="cancel_agreement" value="1" /></label></span> |
&mt('[_1]Cancel[_2] owner acceptance of these conditions of use?','<b>','</b>').' <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" /> '.&mt('Yes').' </label> |
<label><input type="radio" name="updateadds" value="1"'.$disabled.' /> '.&mt('Yes').' </label> |
<label><input type="radio" name="updateadds" value="0" /> '.&mt('No').' </label> |
<label><input type="radio" name="updateadds" value="0"'.$disabled.' /> '.&mt('No').' </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" /> '.&mt('Yes').' </label> |
<label><input type="radio" name="updatedrops" value="1"'.$disabled.' /> '.&mt('Yes').' </label> |
<label><input type="radio" name="updatedrops" value="0" /> '.&mt('No').' </label><br /> |
<label><input type="radio" name="updatedrops" value="0"'.$disabled.' /> '.&mt('No').' </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)" /> |
<td><fieldset><legend>'.&mt('Change auto').'</legend><input type="button" value="'.&mt('check all').'" onclick="javascript:checkAll(document.studentform.chgauto)"'.$disabled.' /> |
<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)" /> |
<td><fieldset><legend>'.&mt('Change manual').'</legend><input type="button" value="'.&mt('check all').'" onclick="javascript:checkAll(document.studentform.chgmanual)"'.$disabled.' /> |
<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)" /> |
<td><fieldset><legend>'.&mt('Lock manual').'</legend><input type="button" value="'.&mt('check all').'" onclick="javascript:checkAll(document.studentform.lockchg)"'.$disabled.' /> |
<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)" /> |
</legend><input type="button" value="'.&mt('check all').'" onclick="javascript:checkAll(document.studentform.unlockchg)"'.$disabled.' /> |
<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=' '; } |
unless ($realm) { $realm=' '; } |
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); |