version 1.149, 2013/02/19 17:30:35
|
version 1.151, 2013/04/11 15:11:09
|
Line 399 sub javascript_validations {
|
Line 399 sub javascript_validations {
|
$param{'curr_autharg'} = $curr_authfield; |
$param{'curr_autharg'} = $curr_authfield; |
} |
} |
|
|
|
my $showcredits; |
|
my %domdefaults = &Apache::lonnet::get_domain_defaults($domain); |
|
if ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'}) { |
|
$showcredits = 1; |
|
} |
|
|
my ($setsection_call,$setsections_js); |
my ($setsection_call,$setsections_js); |
my $finish = " vf.submit();\n"; |
my $finish = " vf.submit();\n"; |
if ($mode eq 'upload') { |
if ($mode eq 'upload') { |
Line 408 sub javascript_validations {
|
Line 414 sub javascript_validations {
|
$setsection_call = 'setSections(document.'.$param{'formname'}.",'$crstype'".');'; |
$setsection_call = 'setSections(document.'.$param{'formname'}.",'$crstype'".');'; |
$setsections_js = |
$setsections_js = |
&setsections_javascript($param{'formname'},$groupslist, |
&setsections_javascript($param{'formname'},$groupslist, |
$mode,'',$crstype); |
$mode,'',$crstype,$showcredits); |
} else { |
} else { |
$setsection_call = "'ok'"; |
$setsection_call = "'ok'"; |
} |
} |
} elsif ($context eq 'domain') { |
} elsif ($context eq 'domain') { |
$setsection_call = 'setCourse()'; |
$setsection_call = 'setCourse()'; |
$setsections_js = &dc_setcourse_js($param{'formname'},$mode,$context); |
$setsections_js = &dc_setcourse_js($param{'formname'},$mode, |
|
$context,$showcredits); |
} |
} |
$finish = " var checkSec = $setsection_call\n". |
$finish = " var checkSec = $setsection_call\n". |
" if (checkSec == 'ok') {\n". |
" if (checkSec == 'ok') {\n". |
Line 437 sub javascript_validations {
|
Line 444 sub javascript_validations {
|
domain => 'The optional domain field was not specified.', |
domain => 'The optional domain field was not specified.', |
continue => 'Continue adding users?', |
continue => 'Continue adding users?', |
); |
); |
|
if ($showcredits) { |
|
$alert{'credits'} = &mt('The optional credits field was not specified'); |
|
} |
if (($mode eq 'upload') && ($context eq 'domain')) { |
if (($mode eq 'upload') && ($context eq 'domain')) { |
$alert{'inststatus'} = &mt('The optional affiliation field was not specified'); |
$alert{'inststatus'} = &mt('The optional affiliation field was not specified'); |
} |
} |
my $function_name = <<"END"; |
my $function_name = <<"END"; |
$setsections_js |
$setsections_js |
|
|
function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail,foundrole,founddomain,foundinststatus) { |
function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail,foundrole,founddomain,foundinststatus,foundcredits) { |
END |
END |
my ($authnum,%can_assign) = &Apache::loncommon::get_assignable_auth($domain); |
my ($authnum,%can_assign) = &Apache::loncommon::get_assignable_auth($domain); |
my $auth_checks; |
my $auth_checks; |
Line 500 END
|
Line 510 END
|
return; |
return; |
} |
} |
} |
} |
|
/* regexp here to check for non \d \. in credits */ |
END |
END |
} else { |
} else { |
$auth_checks .= (<<END); |
$auth_checks .= (<<END); |
Line 572 END
|
Line 583 END
|
message+='$alert{'domain'}'; |
message+='$alert{'domain'}'; |
} |
} |
END |
END |
|
if ($showcredits) { |
|
$optional_checks .= <<END; |
|
if (foundcredits==0) { |
|
if (message!='') { |
|
message+='\\n'; |
|
} |
|
message+='$alert{'credits'}'; |
|
} |
|
END |
|
} |
if (($mode eq 'upload') && ($context eq 'domain')) { |
if (($mode eq 'upload') && ($context eq 'domain')) { |
$optional_checks .= (<<END); |
$optional_checks .= (<<END); |
|
|
Line 656 function verify(vf,sec_caller) {
|
Line 677 function verify(vf,sec_caller) {
|
var foundrole=0; |
var foundrole=0; |
var founddomain=0; |
var founddomain=0; |
var foundinststatus=0; |
var foundinststatus=0; |
|
var foundcredits=0; |
var tw; |
var tw; |
for (i=0;i<=vf.nfields.value;i++) { |
for (i=0;i<=vf.nfields.value;i++) { |
tw=eval('vf.f'+i+'.selectedIndex'); |
tw=eval('vf.f'+i+'.selectedIndex'); |
Line 668 function verify(vf,sec_caller) {
|
Line 690 function verify(vf,sec_caller) {
|
if (tw==11) { foundrole=1; } |
if (tw==11) { foundrole=1; } |
if (tw==12) { founddomain=1; } |
if (tw==12) { founddomain=1; } |
if (tw==13) { foundinststatus=1; } |
if (tw==13) { foundinststatus=1; } |
|
if (tw==14) { foundcredits=1; } |
} |
} |
verify_message(vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail,foundrole,founddomain,foundinststatus); |
verify_message(vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail,foundrole,founddomain,foundinststatus,foundcredits); |
} |
} |
|
|
// |
// |
Line 692 function verify(vf,sec_caller) {
|
Line 715 function verify(vf,sec_caller) {
|
// 11 = role |
// 11 = role |
// 12 = domain |
// 12 = domain |
// 13 = inststatus |
// 13 = inststatus |
|
// 14 = foundcredits |
|
|
function flip(vf,tf) { |
function flip(vf,tf) { |
var nw=eval('vf.f'+tf+'.selectedIndex'); |
var nw=eval('vf.f'+tf+'.selectedIndex'); |
Line 789 function verify(vf,sec_caller) {
|
Line 813 function verify(vf,sec_caller) {
|
var foundrole=0; |
var foundrole=0; |
var founddomain=0; |
var founddomain=0; |
var foundinststatus=0; |
var foundinststatus=0; |
|
var foundcredits=0; |
var tw; |
var tw; |
for (i=0;i<=vf.nfields.value;i++) { |
for (i=0;i<=vf.nfields.value;i++) { |
tw=eval('vf.f'+i+'.selectedIndex'); |
tw=eval('vf.f'+i+'.selectedIndex'); |
Line 801 function verify(vf,sec_caller) {
|
Line 826 function verify(vf,sec_caller) {
|
if (i==10 && tw!=0) { foundrole=1; } |
if (i==10 && tw!=0) { foundrole=1; } |
if (i==11 && tw!=0) { founddomain=1; } |
if (i==11 && tw!=0) { founddomain=1; } |
if (i==12 && tw!=0) { foundinstatus=1; } |
if (i==12 && tw!=0) { foundinstatus=1; } |
|
if (i==13 && tw!=0) { foundcredits=1; } |
} |
} |
verify_message(vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail,foundrole,founddomain,foundinststatus); |
verify_message(vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail,foundrole,founddomain,foundinststatus,foundcredits); |
} |
} |
|
|
function flip(vf,tf) { |
function flip(vf,tf) { |
Line 834 ENDPICK
|
Line 860 ENDPICK
|
############################################################### |
############################################################### |
############################################################### |
############################################################### |
sub print_upload_manager_footer { |
sub print_upload_manager_footer { |
my ($r,$i,$keyfields,$defdom,$today,$halfyear,$context,$permission,$crstype) = @_; |
my ($r,$i,$keyfields,$defdom,$today,$halfyear,$context,$permission,$crstype, |
|
$showcredits) = @_; |
my $form = 'document.studentform'; |
my $form = 'document.studentform'; |
my $formname = 'studentform'; |
my $formname = 'studentform'; |
my ($krbdef,$krbdefdom) = |
my ($krbdef,$krbdefdom) = |
Line 923 sub print_upload_manager_footer {
|
Line 950 sub print_upload_manager_footer {
|
&mt('Default role')) |
&mt('Default role')) |
.&mt('Choose the role to assign to users without a value specified in the uploaded file.') |
.&mt('Choose the role to assign to users without a value specified in the uploaded file.') |
} elsif ($context eq 'course') { |
} elsif ($context eq 'course') { |
$Str .= &Apache::lonhtmlcommon::row_title( |
if ($showcredits) { |
|
$Str .= &Apache::lonhtmlcommon::row_title( |
|
&mt('Default role, section and credits')) |
|
.&mt('Choose the role and/or section(s) and/or credits to assign to users without values specified in the uploaded file.'); |
|
} else { |
|
$Str .= &Apache::lonhtmlcommon::row_title( |
&mt('Default role and section')) |
&mt('Default role and section')) |
.&mt('Choose the role and/or section(s) to assign to users without values specified in the uploaded file.'); |
.&mt('Choose the role and/or section(s) to assign to users without values specified in the uploaded file.'); |
|
} |
} else { |
} else { |
$Str .= &Apache::lonhtmlcommon::row_title( |
$Str .= &Apache::lonhtmlcommon::row_title( |
&mt('Default role and/or section(s)')) |
&mt('Default role and/or section(s)')) |
Line 933 sub print_upload_manager_footer {
|
Line 966 sub print_upload_manager_footer {
|
} |
} |
if (($context eq 'domain') || ($context eq 'author')) { |
if (($context eq 'domain') || ($context eq 'author')) { |
$Str .= '<br />'; |
$Str .= '<br />'; |
my ($options,$cb_script,$coursepick) = &default_role_selector($context,1); |
my ($options,$cb_script,$coursepick) = |
|
&default_role_selector($context,1,'',$showcredits); |
if ($context eq 'domain') { |
if ($context eq 'domain') { |
$Str .= '<p>' |
$Str .= '<p>' |
.'<b>'.&mt('Domain Level').'</b><br />' |
.'<b>'.&mt('Domain Level').'</b><br />' |
Line 950 sub print_upload_manager_footer {
|
Line 984 sub print_upload_manager_footer {
|
} else { |
} else { |
my ($cnum,$cdom) = &get_course_identity(); |
my ($cnum,$cdom) = &get_course_identity(); |
my $rowtitle = &mt('section'); |
my $rowtitle = &mt('section'); |
my $secbox = §ion_picker($cdom,$cnum,'Any',$rowtitle, |
my $defaultcredits; |
$permission,$context,'upload',$crstype); |
if ($showcredits) { |
|
$defaultcredits = &get_defaultcredits(); |
|
} |
|
my $secbox = §ion_picker($cdom,$cnum,'Any',$rowtitle,$permission, |
|
$context,'upload',$crstype,$showcredits, |
|
$defaultcredits); |
$Str .= $secbox |
$Str .= $secbox |
.&Apache::lonhtmlcommon::row_closure(); |
.&Apache::lonhtmlcommon::row_closure(); |
my %lt; |
my %lt; |
Line 997 sub print_upload_manager_footer {
|
Line 1036 sub print_upload_manager_footer {
|
return; |
return; |
} |
} |
|
|
|
sub get_defaultcredits { |
|
my ($cdom,$cnum) = @_; |
|
|
|
if ($cdom eq '' || $cnum eq '') { |
|
return unless ($env{'request.course.id'}); |
|
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
} |
|
return unless(($cdom =~ /^$match_domain$/) && ($cnum =~ /^$match_courseid$/)); |
|
my ($defaultcredits,$domdefcredits); |
|
my %domdefaults = &Apache::lonnet::get_domain_defaults($cdom); |
|
if ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'}) { |
|
my $instcode = $env{'course.'.$cdom.'_'.$cnum.'.internal.coursecode'}; |
|
if ($instcode) { |
|
$domdefcredits = $domdefaults{'officialcredits'}; |
|
} else { |
|
$domdefcredits = $domdefaults{'unofficialcredits'}; |
|
} |
|
} else { |
|
return; |
|
} |
|
|
|
if ($env{'request.course.id'} eq $cdom.'_'.$cnum) { |
|
$defaultcredits = $env{'course.'.$cdom.'_'.$cnum.'.internal.defaultcredits'}; |
|
} elsif (exists($env{'course.'.$cdom.'_'.$cnum.'.internal.defaultcredits'})) { |
|
$defaultcredits = $env{'course.'.$cdom.'_'.$cnum.'.internal.defaultcredits'}; |
|
} else { |
|
my %crsinfo = |
|
&Apache::lonnet::coursedescription("$cdom/$cnum",{'one_time' => 1}); |
|
$defaultcredits = $crsinfo{'internal.defaultcredits'}; |
|
} |
|
if ($defaultcredits eq '') { |
|
$defaultcredits = $domdefcredits; |
|
} |
|
return $defaultcredits; |
|
} |
|
|
sub forceid_change { |
sub forceid_change { |
my ($context) = @_; |
my ($context) = @_; |
my $output = |
my $output = |
Line 1018 sub forceid_change {
|
Line 1094 sub forceid_change {
|
############################################################### |
############################################################### |
############################################################### |
############################################################### |
sub print_upload_manager_form { |
sub print_upload_manager_form { |
my ($r,$context,$permission,$crstype) = @_; |
my ($r,$context,$permission,$crstype,$showcredits) = @_; |
my $firstLine; |
my $firstLine; |
my $datatoken; |
my $datatoken; |
if (!$env{'form.datatoken'}) { |
if (!$env{'form.datatoken'}) { |
Line 1051 sub print_upload_manager_form {
|
Line 1127 sub print_upload_manager_form {
|
'domain_choice' => 'scalar', |
'domain_choice' => 'scalar', |
'inststatus_choice' => 'scalar', |
'inststatus_choice' => 'scalar', |
}; |
}; |
my $defdom = $env{'request.role.domain'}; |
if ($showcredits) { |
|
$col_setting_names->{'credits_choice'} = 'scalar'; |
|
} |
if ($context eq 'course') { |
if ($context eq 'course') { |
&Apache::loncommon::restore_course_settings('enrollment_upload', |
&Apache::loncommon::restore_course_settings('enrollment_upload', |
$col_setting_names); |
$col_setting_names); |
Line 1059 sub print_upload_manager_form {
|
Line 1137 sub print_upload_manager_form {
|
&Apache::loncommon::restore_settings($context,'user_upload', |
&Apache::loncommon::restore_settings($context,'user_upload', |
$col_setting_names); |
$col_setting_names); |
} |
} |
|
my $defdom = $env{'request.role.domain'}; |
# |
# |
# Determine kerberos parameters as appropriate |
# Determine kerberos parameters as appropriate |
my ($krbdef,$krbdefdom) = |
my ($krbdef,$krbdefdom) = |
Line 1084 sub print_upload_manager_form {
|
Line 1163 sub print_upload_manager_form {
|
['role',&mt('Role'), $env{'form.role_choice'}], |
['role',&mt('Role'), $env{'form.role_choice'}], |
['domain',&mt('Domain'), $env{'form.domain_choice'}], |
['domain',&mt('Domain'), $env{'form.domain_choice'}], |
['inststatus',&mt('Affiliation'), $env{'form.inststatus_choice'}]); |
['inststatus',&mt('Affiliation'), $env{'form.inststatus_choice'}]); |
|
if ($showcredits) { |
|
push(@field, |
|
['credits',&mt('Student Credits'), $env{'form.credits_choice'}]); |
|
} |
if ($env{'form.upfile_associate'} eq 'reverse') { |
if ($env{'form.upfile_associate'} eq 'reverse') { |
&Apache::loncommon::csv_print_samples($r,\@records); |
&Apache::loncommon::csv_print_samples($r,\@records); |
$i=&Apache::loncommon::csv_print_select_table($r,\@records, |
$i=&Apache::loncommon::csv_print_select_table($r,\@records, |
Line 1101 sub print_upload_manager_form {
|
Line 1184 sub print_upload_manager_form {
|
} |
} |
} |
} |
&print_upload_manager_footer($r,$i,$keyfields,$defdom,$today,$halfyear, |
&print_upload_manager_footer($r,$i,$keyfields,$defdom,$today,$halfyear, |
$context,$permission,$crstype); |
$context,$permission,$crstype,$showcredits); |
} |
} |
|
|
sub setup_date_selectors { |
sub setup_date_selectors { |
Line 1258 sub make_dates_default {
|
Line 1341 sub make_dates_default {
|
} |
} |
|
|
sub default_role_selector { |
sub default_role_selector { |
my ($context,$checkpriv,$crstype) = @_; |
my ($context,$checkpriv,$crstype,$showcredits) = @_; |
my %customroles; |
my %customroles; |
my ($options,$coursepick,$cb_jscript); |
my ($options,$coursepick,$cb_jscript); |
if ($context ne 'author') { |
if ($context ne 'author') { |
Line 1270 sub default_role_selector {
|
Line 1353 sub default_role_selector {
|
'grs' => "Section", |
'grs' => "Section", |
'exs' => "Existing sections", |
'exs' => "Existing sections", |
'new' => "New section", |
'new' => "New section", |
|
'crd' => "Credits", |
); |
); |
$options = '<select name="defaultrole">'."\n". |
$options = '<select name="defaultrole">'."\n". |
' <option value="">'.&mt('Please select').'</option>'."\n"; |
' <option value="">'.&mt('Please select').'</option>'."\n"; |
Line 1289 sub default_role_selector {
|
Line 1373 sub default_role_selector {
|
} |
} |
my $courseform = &Apache::loncommon::selectcourse_link |
my $courseform = &Apache::loncommon::selectcourse_link |
('studentform','dccourse','dcdomain','coursedesc',"$env{'request.role.domain'}",undef,'Course/Community'); |
('studentform','dccourse','dcdomain','coursedesc',"$env{'request.role.domain'}",undef,'Course/Community'); |
|
my ($credit_elem,$creditsinput); |
|
if ($showcredits) { |
|
$credit_elem = 'credits'; |
|
$creditsinput = '<td><input type="text" name="credits" value="" /></td>'; |
|
} |
$cb_jscript = |
$cb_jscript = |
&Apache::loncommon::coursebrowser_javascript($env{'request.role.domain'},'currsec','studentform','courserole','Course/Community'); |
&Apache::loncommon::coursebrowser_javascript($env{'request.role.domain'},'currsec','studentform','courserole','Course/Community',$credit_elem); |
$coursepick = &Apache::loncommon::start_data_table(). |
$coursepick = &Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table_header_row(). |
&Apache::loncommon::start_data_table_header_row(). |
'<th>'.$courseform.'</th><th>'.$lt{'rol'}.'</th>'. |
'<th>'.$courseform.'</th><th>'.$lt{'rol'}.'</th>'. |
'<th>'.$lt{'grs'}.'</th>'. |
'<th>'.$lt{'grs'}.'</th>'. |
|
'<th>'.$lt{'crd'}.'</th>'. |
&Apache::loncommon::end_data_table_header_row(). |
&Apache::loncommon::end_data_table_header_row(). |
&Apache::loncommon::start_data_table_row()."\n". |
&Apache::loncommon::start_data_table_row()."\n". |
'<td><input type="text" name="coursedesc" value="" onfocus="this.blur();opencrsbrowser('."'studentform','dccourse','dcdomain','coursedesc','','','','crstype'".')" /></td>'."\n". |
'<td><input type="text" name="coursedesc" value="" onfocus="this.blur();opencrsbrowser('."'studentform','dccourse','dcdomain','coursedesc','','','','crstype'".')" /></td>'."\n". |
Line 1316 sub default_role_selector {
|
Line 1406 sub default_role_selector {
|
'<input type="hidden" name="dccourse" value="" />'. |
'<input type="hidden" name="dccourse" value="" />'. |
'<input type="hidden" name="dcdomain" value="" />'. |
'<input type="hidden" name="dcdomain" value="" />'. |
'<input type="hidden" name="crstype" value="" />'. |
'<input type="hidden" name="crstype" value="" />'. |
'</td></tr></table></td>'. |
'</td></tr></table></td>'.$creditsinput. |
&Apache::loncommon::end_data_table_row(). |
&Apache::loncommon::end_data_table_row(). |
&Apache::loncommon::end_data_table()."\n"; |
&Apache::loncommon::end_data_table()."\n"; |
} |
} |
Line 1453 sub my_custom_roles {
|
Line 1543 sub my_custom_roles {
|
|
|
sub print_userlist { |
sub print_userlist { |
my ($r,$mode,$permission,$context,$formname,$totcodes,$codetitles, |
my ($r,$mode,$permission,$context,$formname,$totcodes,$codetitles, |
$idlist,$idlist_titles) = @_; |
$idlist,$idlist_titles,$showcredits) = @_; |
my $format = $env{'form.output'}; |
my $format = $env{'form.output'}; |
if (! exists($env{'form.sortby'})) { |
if (! exists($env{'form.sortby'})) { |
$env{'form.sortby'} = 'username'; |
$env{'form.sortby'} = 'username'; |
Line 1488 sub print_userlist {
|
Line 1578 sub print_userlist {
|
@statuses = ('future'); |
@statuses = ('future'); |
} |
} |
|
|
# if ($context eq 'course') { |
|
# $r->print(&display_adv_courseroles()); |
|
# } |
|
# |
|
# Interface output |
# Interface output |
$r->print('<form name="studentform" method="post" action="/adm/createuser">'."\n". |
$r->print('<form name="studentform" method="post" action="/adm/createuser">'."\n". |
'<input type="hidden" name="action" value="'. |
'<input type="hidden" name="action" value="'. |
Line 1529 sub print_userlist {
|
Line 1615 sub print_userlist {
|
$r->print(§ion_group_filter($cnum,$cdom)); |
$r->print(§ion_group_filter($cnum,$cdom)); |
} |
} |
$r->print('</div><div class="LC_left_float">'. |
$r->print('</div><div class="LC_left_float">'. |
&column_checkboxes($context,$mode,$formname). |
&column_checkboxes($context,$mode,$formname,$showcredits). |
'</div>'); |
'</div>'); |
if ($env{'form.phase'} eq '') { |
if ($env{'form.phase'} eq '') { |
$r->print('<br clear="all" />'. |
$r->print('<br clear="all" />'. |
Line 1543 sub print_userlist {
|
Line 1629 sub print_userlist {
|
&list_submit_button(&mt('Update Display'))."\n"); |
&list_submit_button(&mt('Update Display'))."\n"); |
} |
} |
|
|
my @cols = &infocolumns($context,$mode); |
my @cols = &infocolumns($context,$mode,$showcredits); |
if (!@cols) { |
if (!@cols) { |
$r->print('<hr clear="all" /><span class="LC_warning">'. |
$r->print('<hr clear="all" /><span class="LC_warning">'. |
&mt('No user information selected for display.').'</span>'. |
&mt('No user information selected for display.').'</span>'. |
Line 1730 sub print_userlist {
|
Line 1816 sub print_userlist {
|
my $usercount; |
my $usercount; |
if ($env{'form.action'} eq 'modifystudent') { |
if ($env{'form.action'} eq 'modifystudent') { |
($usercount) = &show_users_list($r,$context,'view',$permission, |
($usercount) = &show_users_list($r,$context,'view',$permission, |
$env{'form.Status'},\%userlist,$keylist); |
$env{'form.Status'},\%userlist,$keylist,'', |
|
$showcredits); |
} else { |
} else { |
($usercount) = &show_users_list($r,$context,$env{'form.output'}, |
($usercount) = &show_users_list($r,$context,$env{'form.output'}, |
$permission,$env{'form.Status'},\%userlist,$keylist); |
$permission,$env{'form.Status'},\%userlist, |
|
$keylist,'',$showcredits); |
} |
} |
if (!$usercount) { |
if (!$usercount) { |
$r->print('<br /><span class="LC_info">' |
$r->print('<br /><span class="LC_info">' |
Line 1854 sub section_group_filter {
|
Line 1942 sub section_group_filter {
|
} |
} |
|
|
sub infocolumns { |
sub infocolumns { |
my ($context,$mode) = @_; |
my ($context,$mode,$showcredits) = @_; |
my @cols; |
my @cols; |
if (($mode eq 'pickauthor') || ($mode eq 'autoenroll')) { |
if (($mode eq 'pickauthor') || ($mode eq 'autoenroll')) { |
@cols = &get_cols_array($context,$mode); |
@cols = &get_cols_array($context,$mode,$showcredits); |
} else { |
} else { |
my @posscols = &get_cols_array($context,$mode); |
my @posscols = &get_cols_array($context,$mode,$showcredits); |
if ($env{'form.phase'} ne '') { |
if ($env{'form.phase'} ne '') { |
my @checkedcols = &Apache::loncommon::get_env_multiple('form.showcol'); |
my @checkedcols = &Apache::loncommon::get_env_multiple('form.showcol'); |
foreach my $col (@checkedcols) { |
foreach my $col (@checkedcols) { |
Line 1875 sub infocolumns {
|
Line 1963 sub infocolumns {
|
} |
} |
|
|
sub get_cols_array { |
sub get_cols_array { |
my ($context,$mode) = @_; |
my ($context,$mode,$showcredits) = @_; |
my @cols; |
my @cols; |
if ($mode eq 'pickauthor') { |
if ($mode eq 'pickauthor') { |
@cols = ('username','fullname','status','email'); |
@cols = ('username','fullname','status','email'); |
Line 1893 sub get_cols_array {
|
Line 1981 sub get_cols_array {
|
} |
} |
push(@cols,'email'); |
push(@cols,'email'); |
if (($context eq 'course') && ($mode ne 'autoenroll')) { |
if (($context eq 'course') && ($mode ne 'autoenroll')) { |
|
if ($showcredits) { |
|
push(@cols,'credits'); |
|
} |
push(@cols,'lastlogin','clicker'); |
push(@cols,'lastlogin','clicker'); |
} |
} |
if (($context eq 'course') && ($mode ne 'autoenroll') && |
if (($context eq 'course') && ($mode ne 'autoenroll') && |
Line 1907 sub get_cols_array {
|
Line 1998 sub get_cols_array {
|
} |
} |
|
|
sub column_checkboxes { |
sub column_checkboxes { |
my ($context,$mode,$formname) = @_; |
my ($context,$mode,$formname,$showcredits) = @_; |
my @cols = &get_cols_array($context,$mode); |
my @cols = &get_cols_array($context,$mode,$showcredits); |
my @showncols = &Apache::loncommon::get_env_multiple('form.showcol'); |
my @showncols = &Apache::loncommon::get_env_multiple('form.showcol'); |
my (%disabledchk,%unchecked); |
my (%disabledchk,%unchecked); |
if ($env{'form.phase'} eq '') { |
if ($env{'form.phase'} eq '') { |
Line 1917 sub column_checkboxes {
|
Line 2008 sub column_checkboxes {
|
$disabledchk{'role'} = 1; |
$disabledchk{'role'} = 1; |
$unchecked{'photo'} = 1; |
$unchecked{'photo'} = 1; |
$unchecked{'clicker'} = 1; |
$unchecked{'clicker'} = 1; |
|
if ($showcredits) { |
|
$unchecked{'credits'} = 1; |
|
} |
} elsif ($context eq 'domain') { |
} elsif ($context eq 'domain') { |
$unchecked{'extent'} = 1; |
$unchecked{'extent'} = 1; |
} |
} |
Line 2012 sub get_column_names {
|
Line 2106 sub get_column_names {
|
'end' => "end date", |
'end' => "end date", |
'status' => "status", |
'status' => "status", |
'role' => "role", |
'role' => "role", |
|
'credits' => "credits", |
'type' => "enroll type/action", |
'type' => "enroll type/action", |
'email' => "e-mail address", |
'email' => "e-mail address", |
'photo' => "photo", |
'photo' => "photo", |
Line 2281 sub instcode_from_coursefilter {
|
Line 2376 sub instcode_from_coursefilter {
|
return $instcode; |
return $instcode; |
} |
} |
|
|
sub display_adv_courseroles { |
|
my $output; |
|
# |
|
# List course personnel |
|
my %coursepersonnel = |
|
&Apache::lonnet::get_course_adv_roles($env{'request.course.id'}); |
|
# |
|
$output = '<br />'.&Apache::loncommon::start_data_table(); |
|
foreach my $role (sort(keys(%coursepersonnel))) { |
|
next if ($role =~ /^\s*$/); |
|
$output .= &Apache::loncommon::start_data_table_row(). |
|
'<td>'.$role.'</td><td>'; |
|
foreach my $user (split(',',$coursepersonnel{$role})) { |
|
my ($puname,$pudom)=split(':',$user); |
|
$output .= ' '.&Apache::loncommon::aboutmewrapper( |
|
&Apache::loncommon::plainname($puname,$pudom), |
|
$puname,$pudom); |
|
} |
|
$output .= '</td>'.&Apache::loncommon::end_data_table_row(); |
|
} |
|
$output .= &Apache::loncommon::end_data_table(); |
|
} |
|
|
|
sub make_keylist_array { |
sub make_keylist_array { |
my ($index,$keylist); |
my ($index,$keylist); |
$index->{'domain'} = &Apache::loncoursedata::CL_SDOM(); |
$index->{'domain'} = &Apache::loncoursedata::CL_SDOM(); |
Line 2322 sub make_keylist_array {
|
Line 2394 sub make_keylist_array {
|
$index->{'extent'} = &Apache::loncoursedata::CL_EXTENT(); |
$index->{'extent'} = &Apache::loncoursedata::CL_EXTENT(); |
$index->{'photo'} = &Apache::loncoursedata::CL_PHOTO(); |
$index->{'photo'} = &Apache::loncoursedata::CL_PHOTO(); |
$index->{'thumbnail'} = &Apache::loncoursedata::CL_THUMBNAIL(); |
$index->{'thumbnail'} = &Apache::loncoursedata::CL_THUMBNAIL(); |
|
$index->{'credits'} = &Apache::loncoursedata::CL_CREDITS(); |
foreach my $key (keys(%{$index})) { |
foreach my $key (keys(%{$index})) { |
$keylist->[$index->{$key}] = $key; |
$keylist->[$index->{$key}] = $key; |
} |
} |
Line 2370 sub process_date_info {
|
Line 2443 sub process_date_info {
|
} |
} |
|
|
sub show_users_list { |
sub show_users_list { |
my ($r,$context,$mode,$permission,$statusmode,$userlist,$keylist,$formname)=@_; |
my ($r,$context,$mode,$permission,$statusmode,$userlist,$keylist,$formname, |
|
$showcredits)=@_; |
if ($formname eq '') { |
if ($formname eq '') { |
$formname = 'studentform'; |
$formname = 'studentform'; |
} |
} |
Line 2385 sub show_users_list {
|
Line 2459 sub show_users_list {
|
my @sortable = ('username','domain','id','fullname','start','end','email','role'); |
my @sortable = ('username','domain','id','fullname','start','end','email','role'); |
if ($context eq 'course') { |
if ($context eq 'course') { |
push(@sortable,('section','groups','type')); |
push(@sortable,('section','groups','type')); |
|
if ($showcredits) { |
|
push(@sortable,'credits'); |
|
} |
} else { |
} else { |
push(@sortable,'extent'); |
push(@sortable,'extent'); |
} |
} |
Line 2395 sub show_users_list {
|
Line 2472 sub show_users_list {
|
$sortby = 'username'; |
$sortby = 'username'; |
} |
} |
my $setting = $env{'form.roletype'}; |
my $setting = $env{'form.roletype'}; |
my ($cid,$cdom,$cnum,$classgroups,$crstype); |
my ($cid,$cdom,$cnum,$classgroups,$crstype,$defaultcredits); |
if ($context eq 'course') { |
if ($context eq 'course') { |
$cid = $env{'request.course.id'}; |
$cid = $env{'request.course.id'}; |
$crstype = &Apache::loncommon::course_type(); |
$crstype = &Apache::loncommon::course_type(); |
($cnum,$cdom) = &get_course_identity($cid); |
($cnum,$cdom) = &get_course_identity($cid); |
|
$defaultcredits = $env{'course.'.$cid.'.internal.defaultcredits'}; |
($classgroups) = &Apache::loncoursedata::get_group_memberships( |
($classgroups) = &Apache::loncoursedata::get_group_memberships( |
$userlist,$keylist,$cdom,$cnum); |
$userlist,$keylist,$cdom,$cnum); |
if ($mode eq 'autoenroll') { |
if ($mode eq 'autoenroll') { |
Line 2492 END
|
Line 2570 END
|
$r->print(<<END); |
$r->print(<<END); |
<input type="hidden" name="sortby" value="$sortby" /> |
<input type="hidden" name="sortby" value="$sortby" /> |
END |
END |
my @cols = &infocolumns($context,$mode); |
my @cols = &infocolumns($context,$mode,$showcredits); |
my %coltxt = &get_column_names($context); |
my %coltxt = &get_column_names($context); |
my %acttxt = &Apache::lonlocal::texthash( |
my %acttxt = &Apache::lonlocal::texthash( |
'pr' => "Proceed", |
'pr' => "Proceed", |
Line 2794 END
|
Line 2872 END
|
'gif','thumbnail'); |
'gif','thumbnail'); |
} |
} |
} |
} |
|
if (($role eq 'st') && ($defaultcredits)) { |
|
if ($userlist->{$user}->[$index{'credits'}] eq '') { |
|
$userlist->{$user}->[$index{'credits'}] = $defaultcredits; |
|
} |
|
} |
} |
} |
} |
} |
my %emails = &Apache::loncommon::getemails($uname,$udom); |
my %emails = &Apache::loncommon::getemails($uname,$udom); |
Line 2911 END
|
Line 2994 END
|
$checkval .= ':'.$in{'section'}; |
$checkval .= ':'.$in{'section'}; |
if ($role eq 'st') { |
if ($role eq 'st') { |
$checkval .= ':'.$in{'type'}.':'. |
$checkval .= ':'.$in{'type'}.':'. |
$in{'lockedtype'}; |
$in{'lockedtype'}.':'. |
|
$in{'credits'}; |
} |
} |
} |
} |
} |
} |
Line 3159 sub select_actions {
|
Line 3243 sub select_actions {
|
chgdates => "Change starting/ending dates", |
chgdates => "Change starting/ending dates", |
chgsec => "Change section associated with user roles", |
chgsec => "Change section associated with user roles", |
); |
); |
|
# FIXME Add an option to change credits for student roles. |
my ($output,$options,%choices); |
my ($output,$options,%choices); |
# FIXME Disable actions for now for roletype=course in domain context |
# FIXME Disable actions for now for roletype=course in domain context |
if ($context eq 'domain' && $setting eq 'course') { |
if ($context eq 'domain' && $setting eq 'course') { |
Line 3286 ENDTWO
|
Line 3371 ENDTWO
|
} |
} |
|
|
sub date_section_selector { |
sub date_section_selector { |
my ($context,$permission,$crstype) = @_; |
my ($context,$permission,$crstype,$showcredits) = @_; |
my $callingform = $env{'form.callingform'}; |
my $callingform = $env{'form.callingform'}; |
my $formname = 'dateselect'; |
my $formname = 'dateselect'; |
my $groupslist = &get_groupslist(); |
my $groupslist = &get_groupslist(); |
my $sec_js = &setsections_javascript($formname,$groupslist); |
my $sec_js = |
|
&setsections_javascript($formname,$groupslist,undef,undef,$crstype, |
|
$showcredits); |
my $output = <<"END"; |
my $output = <<"END"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
Line 3422 ENDJS
|
Line 3509 ENDJS
|
$info = '<input type="hidden" name="retainsec" value="0" />'; |
$info = '<input type="hidden" name="retainsec" value="0" />'; |
} |
} |
my $rowtitle = &mt('New section to assign'); |
my $rowtitle = &mt('New section to assign'); |
my $secbox = §ion_picker($cdom,$cnum,$env{'form.showrole'},$rowtitle,$permission,$context,'',$crstype); |
my $secbox = §ion_picker($cdom,$cnum,$env{'form.showrole'},$rowtitle, |
|
$permission,$context,'chgsec',$crstype); |
$output .= $info.$secbox; |
$output .= $info.$secbox; |
} |
} |
$output .= '<p>'. |
$output .= '<p>'. |
Line 3432 ENDJS
|
Line 3520 ENDJS
|
} |
} |
|
|
sub section_picker { |
sub section_picker { |
my ($cdom,$cnum,$role,$rowtitle,$permission,$context,$mode,$crstype) = @_; |
my ($cdom,$cnum,$role,$rowtitle,$permission,$context,$mode,$crstype, |
|
$showcredits,$credits) = @_; |
my %sections_count = &Apache::loncommon::get_sections($cdom,$cnum); |
my %sections_count = &Apache::loncommon::get_sections($cdom,$cnum); |
my $sections_select .= &course_sections(\%sections_count,$role); |
my $sections_select .= &course_sections(\%sections_count,$role); |
my $secbox = '<div>'.&Apache::lonhtmlcommon::start_pick_box()."\n"; |
my $secbox = '<div>'.&Apache::lonhtmlcommon::start_pick_box()."\n"; |
if ($mode eq 'upload') { |
if ($mode eq 'upload') { |
my ($options,$cb_script,$coursepick) = |
my ($options,$cb_script,$coursepick) = |
&default_role_selector($context,1,$crstype); |
&default_role_selector($context,1,$crstype,$showcredits); |
$secbox .= &Apache::lonhtmlcommon::row_title(&mt('role'),'LC_oddrow_value'). |
$secbox .= &Apache::lonhtmlcommon::row_title(&mt('role'),'LC_oddrow_value'). |
$options. &Apache::lonhtmlcommon::row_closure(1)."\n"; |
$options. &Apache::lonhtmlcommon::row_closure(1)."\n"; |
} |
} |
Line 3456 sub section_picker {
|
Line 3545 sub section_picker {
|
$env{'request.course.sec'}.'" />'. |
$env{'request.course.sec'}.'" />'. |
$env{'request.course.sec'}; |
$env{'request.course.sec'}; |
} |
} |
$secbox .= &Apache::lonhtmlcommon::row_closure(1)."\n". |
$secbox .= &Apache::lonhtmlcommon::row_closure(1)."\n"; |
&Apache::lonhtmlcommon::end_pick_box().'</div>'; |
unless ($mode eq 'chgsec') { |
|
if ($showcredits) { |
|
$secbox .= |
|
&Apache::lonhtmlcommon::row_title(&mt('credits (students)'), |
|
'LC_evenrow_value')."\n". |
|
'<input type="text" name="credits" size="3" value="'.$credits.'" />'."\n". |
|
&Apache::lonhtmlcommon::row_closure(1)."\n"; |
|
} |
|
} |
|
$secbox .= &Apache::lonhtmlcommon::end_pick_box().'</div>'; |
return $secbox; |
return $secbox; |
} |
} |
|
|
Line 3898 sub print_first_users_upload_form {
|
Line 3996 sub print_first_users_upload_form {
|
|
|
# ================================================= Drop/Add from uploaded file |
# ================================================= Drop/Add from uploaded file |
sub upfile_drop_add { |
sub upfile_drop_add { |
my ($r,$context,$permission) = @_; |
my ($r,$context,$permission,$showcredits) = @_; |
&Apache::loncommon::load_tmp_file($r); |
&Apache::loncommon::load_tmp_file($r); |
my @userdata=&Apache::loncommon::upfile_record_sep(); |
my @userdata=&Apache::loncommon::upfile_record_sep(); |
if($env{'form.noFirstLine'}){shift(@userdata);} |
if($env{'form.noFirstLine'}){shift(@userdata);} |
Line 3919 sub upfile_drop_add {
|
Line 4017 sub upfile_drop_add {
|
} |
} |
# |
# |
# Store the field choices away |
# Store the field choices away |
foreach my $field (qw/username names |
my @storefields = qw/username names fname mname lname gen id |
fname mname lname gen id sec ipwd email role domain/) { |
sec ipwd email role domain inststatus/; |
|
if ($showcredits) { |
|
push (@storefields,'credits'); |
|
} |
|
my %fieldstype; |
|
foreach my $field (@storefields) { |
$env{'form.'.$field.'_choice'}=$fields{$field}; |
$env{'form.'.$field.'_choice'}=$fields{$field}; |
|
$fieldstype{$field.'_choice'} = 'scalar'; |
} |
} |
&Apache::loncommon::store_course_settings('enrollment_upload', |
&Apache::loncommon::store_course_settings('enrollment_upload',\%fieldstype); |
{ 'username_choice' => 'scalar', |
|
'names_choice' => 'scalar', |
|
'fname_choice' => 'scalar', |
|
'mname_choice' => 'scalar', |
|
'lname_choice' => 'scalar', |
|
'gen_choice' => 'scalar', |
|
'id_choice' => 'scalar', |
|
'sec_choice' => 'scalar', |
|
'ipwd_choice' => 'scalar', |
|
'email_choice' => 'scalar', |
|
'role_choice' => 'scalar', |
|
'domain_choice' => 'scalar', |
|
'inststatus_choice' => 'scalar'}); |
|
# |
|
my ($cid,$crstype,$setting); |
my ($cid,$crstype,$setting); |
if ($context eq 'domain') { |
if ($context eq 'domain') { |
$setting = $env{'form.roleaction'}; |
$setting = $env{'form.roleaction'}; |
Line 4005 sub upfile_drop_add {
|
Line 4095 sub upfile_drop_add {
|
$amode = ''; # This causes the loop below to be skipped |
$amode = ''; # This causes the loop below to be skipped |
} |
} |
} |
} |
my ($defaultsec,$defaultrole); |
my ($defaultsec,$defaultrole,$defaultcredits,$commoncredits); |
if ($context eq 'domain') { |
if ($context eq 'domain') { |
if ($setting eq 'domain') { |
if ($setting eq 'domain') { |
$defaultrole = $env{'form.defaultrole'}; |
$defaultrole = $env{'form.defaultrole'}; |
} elsif ($setting eq 'course') { |
} elsif ($setting eq 'course') { |
$defaultrole = $env{'form.courserole'}; |
$defaultrole = $env{'form.courserole'}; |
$defaultsec = $env{'form.sections'}; |
$defaultsec = $env{'form.sections'}; |
|
if ($showcredits) { |
|
$commoncredits = $env{'form.credits'}; |
|
if ($crstype ne 'Community') { |
|
my %coursehash=&Apache::lonnet::coursedescription($cid); |
|
$defaultcredits = $coursehash{'internal.defaultcredits'}; |
|
} |
|
} |
} |
} |
} elsif ($context eq 'author') { |
} elsif ($context eq 'author') { |
$defaultrole = $env{'form.defaultrole'}; |
$defaultrole = $env{'form.defaultrole'}; |
} elsif ($context eq 'course') { |
} elsif ($context eq 'course') { |
$defaultrole = $env{'form.defaultrole'}; |
$defaultrole = $env{'form.defaultrole'}; |
$defaultsec = $env{'form.sections'}; |
$defaultsec = $env{'form.sections'}; |
|
if ($showcredits) { |
|
$commoncredits = $env{'form.credits'}; |
|
$defaultcredits = $env{'course.'.$cid.'.internal.defaultcredits'}; |
|
} |
} |
} |
# Check to see if user information can be changed |
# Check to see if user information can be changed |
my @userinfo = ('firstname','middlename','lastname','generation', |
my @userinfo = ('firstname','middlename','lastname','generation', |
Line 4277 sub upfile_drop_add {
|
Line 4378 sub upfile_drop_add {
|
foreach (\$id,\$fname,\$mname,\$lname,\$gen,\$inststatus) { |
foreach (\$id,\$fname,\$mname,\$lname,\$gen,\$inststatus) { |
$$_ =~ s/(\s+$|^\s+)//g; |
$$_ =~ s/(\s+$|^\s+)//g; |
} |
} |
|
my $credits; |
|
if ($showcredits) { |
|
if (($role eq 'st') && ($crstype ne 'Community')) { |
|
$credits = $entries{$fields{'credits'}}; |
|
if ($credits ne '') { |
|
$credits =~ s/[^\d\.]//g; |
|
} |
|
if ($credits eq '') { |
|
$credits = $commoncredits; |
|
} |
|
if ($credits eq $defaultcredits) { |
|
undef($credits); |
|
} |
|
} |
|
} |
# check against rules |
# check against rules |
my $checkid = 0; |
my $checkid = 0; |
my $newuser = 0; |
my $newuser = 0; |
Line 4407 sub upfile_drop_add {
|
Line 4523 sub upfile_drop_add {
|
$fname,$mname,$lname,$gen,$sec,$enddate, |
$fname,$mname,$lname,$gen,$sec,$enddate, |
$startdate,$env{'form.forceid'}, |
$startdate,$env{'form.forceid'}, |
$desiredhost,$email,'manual','',$cid, |
$desiredhost,$email,'manual','',$cid, |
'',$context,$inststatus); |
'',$context,$inststatus,$credits); |
$userresult = $roleresult; |
$userresult = $roleresult; |
} else { |
} else { |
if ($role ne '') { |
if ($role ne '') { |
Line 4681 sub update_user_list {
|
Line 4797 sub update_user_list {
|
foreach my $item (@changelist) { |
foreach my $item (@changelist) { |
my ($role,$uname,$udom,$cid,$sec,$scope,$result,$type,$locktype, |
my ($role,$uname,$udom,$cid,$sec,$scope,$result,$type,$locktype, |
@sections,$scopestem,$singlesec,$showsecs,$warn_singlesec, |
@sections,$scopestem,$singlesec,$showsecs,$warn_singlesec, |
$nothingtodo,$keepnosection); |
$nothingtodo,$keepnosection,$credits); |
if ($choice eq 'drop') { |
if ($choice eq 'drop') { |
($uname,$udom,$sec) = split(/:/,$item,-1); |
($uname,$udom,$sec) = split(/:/,$item,-1); |
$role = 'st'; |
$role = 'st'; |
Line 4694 sub update_user_list {
|
Line 4810 sub update_user_list {
|
$scope = $scopestem.'/'.$sec; |
$scope = $scopestem.'/'.$sec; |
} |
} |
} elsif ($context eq 'course') { |
} elsif ($context eq 'course') { |
($uname,$udom,$role,$sec,$type,$locktype) = split(/\:/,$item,-1); |
($uname,$udom,$role,$sec,$type,$locktype,$credits) = |
|
split(/\:/,$item); |
$cid = $env{'request.course.id'}; |
$cid = $env{'request.course.id'}; |
$scopestem = '/'.$cid; |
$scopestem = '/'.$cid; |
$scopestem =~s/\_/\//g; |
$scopestem =~s/\_/\//g; |
Line 4713 sub update_user_list {
|
Line 4830 sub update_user_list {
|
} elsif ($setting eq 'author') { |
} elsif ($setting eq 'author') { |
($uname,$udom,$role,$scope) = split(/\:/,$item); |
($uname,$udom,$role,$scope) = split(/\:/,$item); |
} elsif ($setting eq 'course') { |
} elsif ($setting eq 'course') { |
($uname,$udom,$role,$cid,$sec,$type,$locktype) = |
($uname,$udom,$role,$cid,$sec,$type,$locktype,$credits) = |
split(/\:/,$item); |
split(/\:/,$item); |
$scope = '/'.$cid; |
$scope = '/'.$cid; |
$scope =~s/\_/\//g; |
$scope =~s/\_/\//g; |
Line 4736 sub update_user_list {
|
Line 4853 sub update_user_list {
|
$end = $now; |
$end = $now; |
if ($role eq 'st') { |
if ($role eq 'st') { |
$result = |
$result = |
&Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,$sec,$end,$start,$type,$locktype,$cid,'',$context); |
&Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,$sec,$end,$start,$type,$locktype,$cid,'',$context,$credits); |
} else { |
} else { |
$result = |
$result = |
&Apache::lonnet::revokerole($udom,$uname,$scope,$role, |
&Apache::lonnet::revokerole($udom,$uname,$scope,$role, |
Line 4744 sub update_user_list {
|
Line 4861 sub update_user_list {
|
} |
} |
} elsif ($choice eq 'delete') { |
} elsif ($choice eq 'delete') { |
if ($role eq 'st') { |
if ($role eq 'st') { |
&Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,$sec,$now,$start,$type,$locktype,$cid,'',$context); |
&Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,$sec,$now,$start,$type,$locktype,$cid,'',$context,$credits); |
} |
} |
$result = |
$result = |
&Apache::lonnet::assignrole($udom,$uname,$scope,$role,$now, |
&Apache::lonnet::assignrole($udom,$uname,$scope,$role,$now, |
Line 4757 sub update_user_list {
|
Line 4874 sub update_user_list {
|
} |
} |
if ($choice eq 'reenable') { |
if ($choice eq 'reenable') { |
if ($role eq 'st') { |
if ($role eq 'st') { |
$result = &Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,$sec,$end,$start,$type,$locktype,$cid,'',$context); |
$result = &Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,$sec,$end,$start,$type,$locktype,$cid,'',$context,$credits); |
} else { |
} else { |
$result = |
$result = |
&Apache::lonnet::assignrole($udom,$uname,$scope,$role,$end, |
&Apache::lonnet::assignrole($udom,$uname,$scope,$role,$end, |
Line 4765 sub update_user_list {
|
Line 4882 sub update_user_list {
|
} |
} |
} elsif ($choice eq 'activate') { |
} elsif ($choice eq 'activate') { |
if ($role eq 'st') { |
if ($role eq 'st') { |
$result = &Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,$sec,$end,$start,$type,$locktype,$cid,'',$context); |
$result = &Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,$sec,$end,$start,$type,$locktype,$cid,'',$context,$credits); |
} else { |
} else { |
$result = &Apache::lonnet::assignrole($udom,$uname,$scope,$role,$end, |
$result = &Apache::lonnet::assignrole($udom,$uname,$scope,$role,$end, |
$now,'','',$context); |
$now,'','',$context); |
} |
} |
} elsif ($choice eq 'chgdates') { |
} elsif ($choice eq 'chgdates') { |
if ($role eq 'st') { |
if ($role eq 'st') { |
$result = &Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,$sec,$end,$start,$type,$locktype,$cid,'',$context); |
$result = &Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,$sec,$end,$start,$type,$locktype,$cid,'',$context,$credits); |
} else { |
} else { |
$result = &Apache::lonnet::assignrole($udom,$uname,$scope,$role,$end, |
$result = &Apache::lonnet::assignrole($udom,$uname,$scope,$role,$end, |
$start,'','',$context); |
$start,'','',$context); |
Line 4842 sub update_user_list {
|
Line 4959 sub update_user_list {
|
} else { |
} else { |
if ($role eq 'st') { |
if ($role eq 'st') { |
$result = |
$result = |
&Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,undef,$end,$start,$type,$locktype,$cid,'',$context); |
&Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,undef,$end,$start,$type,$locktype,$cid,'',$context,$credits); |
} else { |
} else { |
my $newscope = $scopestem; |
my $newscope = $scopestem; |
$result = &Apache::lonnet::assignrole($udom,$uname,$newscope,$role,$end,$start,'','',$context); |
$result = &Apache::lonnet::assignrole($udom,$uname,$newscope,$role,$end,$start,'','',$context); |
Line 4856 sub update_user_list {
|
Line 4973 sub update_user_list {
|
foreach my $newsec (@newsecs) { |
foreach my $newsec (@newsecs) { |
if (!grep(/^\Q$newsec\E$/,@retained)) { |
if (!grep(/^\Q$newsec\E$/,@retained)) { |
if ($role eq 'st') { |
if ($role eq 'st') { |
$result = &Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,$newsec,$end,$start,$type,$locktype,$cid,'',$context); |
$result = &Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,undef,undef,$newsec,$end,$start,$type,$locktype,$cid,'',$context,$credits); |
if (@newsecs > 1) { |
if (@newsecs > 1) { |
my $showsingle; |
my $showsingle; |
if ($newsec eq '') { |
if ($newsec eq '') { |
Line 5148 sub get_groupslist {
|
Line 5265 sub get_groupslist {
|
} |
} |
|
|
sub setsections_javascript { |
sub setsections_javascript { |
my ($formname,$groupslist,$mode,$checkauth,$crstype) = @_; |
my ($formname,$groupslist,$mode,$checkauth,$crstype,$showcredits) = @_; |
my ($checkincluded,$finish,$rolecode,$setsection_js); |
my ($checkincluded,$finish,$rolecode,$setsection_js); |
if ($mode eq 'upload') { |
if ($mode eq 'upload') { |
$checkincluded = 'formname.name == "'.$formname.'"'; |
$checkincluded = 'formname.name == "'.$formname.'"'; |
$finish = "return 'ok';"; |
$finish = "return 'ok';"; |
$rolecode = "var role = formname.defaultrole.options[formname.defaultrole.selectedIndex].value;\n"; |
$rolecode = "var role = formname.defaultrole.options[formname.defaultrole.selectedIndex].value;\n"; |
} elsif ($formname eq 'cu') { |
} elsif ($formname eq 'cu') { |
$checkincluded = 'formname.elements[i-1].checked == true'; |
if (($crstype eq 'Course') && ($showcredits)) { |
|
$checkincluded = "((role == 'st') && (formname.elements[i-2].checked == true)) || ((role != 'st') && (formname.elements[i-1].checked == true))"; |
|
} else { |
|
$checkincluded = 'formname.elements[i-1].checked == true'; |
|
} |
if ($checkauth) { |
if ($checkauth) { |
$finish = "var authcheck = auth_check();\n". |
$finish = "var authcheck = auth_check();\n". |
" if (authcheck == 'ok') {\n". |
" if (authcheck == 'ok') {\n". |
Line 5214 function setSections(formname,crstype) {
|
Line 5335 function setSections(formname,crstype) {
|
var checkcurr = str.match(re1); |
var checkcurr = str.match(re1); |
if (checkcurr != null) { |
if (checkcurr != null) { |
var num = i; |
var num = i; |
|
$rolecode |
if ($checkincluded) { |
if ($checkincluded) { |
$rolecode |
|
if (role == 'cc' || role == 'co') { |
if (role == 'cc' || role == 'co') { |
if (role == 'cc') { |
if (role == 'cc') { |
alert("$alerts{'secd'}\\n$alerts{'accr'}"); |
alert("$alerts{'secd'}\\n$alerts{'accr'}"); |
Line 5588 sub get_course_identity {
|
Line 5709 sub get_course_identity {
|
} |
} |
|
|
sub dc_setcourse_js { |
sub dc_setcourse_js { |
my ($formname,$mode,$context) = @_; |
my ($formname,$mode,$context,$showcredits) = @_; |
my ($dc_setcourse_code,$authen_check); |
my ($dc_setcourse_code,$authen_check); |
my $cctext = &Apache::lonnet::plaintext('cc'); |
my $cctext = &Apache::lonnet::plaintext('cc'); |
my $cotext = &Apache::lonnet::plaintext('co'); |
my $cotext = &Apache::lonnet::plaintext('co'); |
Line 5674 function setCourse() {
|
Line 5795 function setCourse() {
|
} |
} |
SCRIPTTOP |
SCRIPTTOP |
if ($mode ne 'upload') { |
if ($mode ne 'upload') { |
$dc_setcourse_code .= (<<"ENDSCRIPT"); |
$dc_setcourse_code .= (<<"SCRIPTMID"); |
var coursename = "_$env{'request.role.domain'}"+"_"+course+"_"+userrole |
var coursename = "_$env{'request.role.domain'}"+"_"+course+"_"+userrole |
var numcourse = getIndex(document.$formname.dccourse); |
var numcourse = getIndex(document.$formname.dccourse); |
if (numcourse == "-1") { |
if (numcourse == "-1") { |
Line 5700 SCRIPTTOP
|
Line 5821 SCRIPTTOP
|
if (numend != "-1") { |
if (numend != "-1") { |
document.$formname.elements[numend].name = "end"+coursename |
document.$formname.elements[numend].name = "end"+coursename |
} |
} |
|
SCRIPTMID |
|
if ($showcredits) { |
|
$dc_setcourse_code .= <<ENDCRED; |
|
var numcredits = getIndex(document.$formname.credits); |
|
if (numcredits != "-1") { |
|
document.$formname.elements[numcredits].name = "credits"+coursename; |
|
} |
|
ENDCRED |
|
} |
|
$dc_setcourse_code .= <<ENDSCRIPT; |
} |
} |
} |
} |
var authcheck = auth_check(); |
var authcheck = auth_check(); |