version 1.100, 2009/09/12 17:06:16
|
version 1.101, 2009/10/30 03:57:35
|
Line 235 sub domain_roles_select {
|
Line 235 sub domain_roles_select {
|
# domain context |
# domain context |
# |
# |
# Role types |
# Role types |
my @roletypes = ('domain','author','course'); |
my @roletypes = ('domain','author','course','community'); |
my %lt = &role_type_names(); |
my %lt = &role_type_names(); |
# |
# |
# build up the menu information to be passed to |
# build up the menu information to be passed to |
Line 261 sub domain_roles_select {
|
Line 261 sub domain_roles_select {
|
@roles = &construction_space_roles(); |
@roles = &construction_space_roles(); |
} else { |
} else { |
my $custom = 1; |
my $custom = 1; |
@roles = &course_roles('domain',undef,$custom); |
@roles = &course_roles('domain',undef,$custom,$roletype); |
} |
} |
my $order = ['Any',@roles]; |
my $order = ['Any',@roles]; |
$select_menus{$roletype}->{'order'} = $order; |
$select_menus{$roletype}->{'order'} = $order; |
Line 278 sub domain_roles_select {
|
Line 278 sub domain_roles_select {
|
} |
} |
my $result = &Apache::loncommon::linked_select_forms |
my $result = &Apache::loncommon::linked_select_forms |
('studentform',(' 'x3).&mt('Role: '),$env{'form.roletype'}, |
('studentform',(' 'x3).&mt('Role: '),$env{'form.roletype'}, |
'roletype','showrole',\%select_menus,['domain','author','course']); |
'roletype','showrole',\%select_menus, |
|
['domain','author','course','community']); |
return $result; |
return $result; |
} |
} |
|
|
Line 743 ENDPICK
|
Line 744 ENDPICK
|
############################################################### |
############################################################### |
############################################################### |
############################################################### |
sub print_upload_manager_footer { |
sub print_upload_manager_footer { |
my ($r,$i,$keyfields,$defdom,$today,$halfyear,$context,$permission) = @_; |
my ($r,$i,$keyfields,$defdom,$today,$halfyear,$context,$permission,$crstype) = @_; |
my $form = 'document.studentform'; |
my $form = 'document.studentform'; |
my $formname = 'studentform'; |
my $formname = 'studentform'; |
my ($krbdef,$krbdefdom) = |
my ($krbdef,$krbdefdom) = |
Line 761 sub print_upload_manager_footer {
|
Line 762 sub print_upload_manager_footer {
|
my $intform = &Apache::loncommon::authform_internal(%param); |
my $intform = &Apache::loncommon::authform_internal(%param); |
my $locform = &Apache::loncommon::authform_local(%param); |
my $locform = &Apache::loncommon::authform_local(%param); |
my $date_table = &date_setting_table(undef,undef,$context,undef, |
my $date_table = &date_setting_table(undef,undef,$context,undef, |
$formname,$permission); |
$formname,$permission,$crstype); |
|
|
my $Str = "\n".'<div class="LC_left_float">'; |
my $Str = "\n".'<div class="LC_left_float">'; |
$Str .= &hidden_input('nfields',$i); |
$Str .= &hidden_input('nfields',$i); |
Line 860 sub print_upload_manager_footer {
|
Line 861 sub print_upload_manager_footer {
|
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 $secbox = §ion_picker($cdom,$cnum,'Any',$rowtitle, |
$permission,$context,'upload'); |
$permission,$context,'upload',$crstype); |
$Str .= $secbox |
$Str .= $secbox |
.&Apache::lonhtmlcommon::row_closure(); |
.&Apache::lonhtmlcommon::row_closure(); |
|
my %lt; |
|
if ($crstype eq 'Community') { |
|
%lt = &Apache::lonlocal::texthash ( |
|
disp => 'Display members with current/future access who are not in the uploaded file', |
|
stus => 'Members selected from this list can be dropped.' |
|
); |
|
} else { |
|
%lt = &Apache::lonlocal::texthash ( |
|
disp => 'Display students with current/future access who are not in the uploaded file', |
|
stus => 'Students selected from this list can be dropped.' |
|
); |
|
} |
$Str .= &Apache::lonhtmlcommon::row_title(&mt('Full Update')) |
$Str .= &Apache::lonhtmlcommon::row_title(&mt('Full Update')) |
.'<label><input type="checkbox" name="fullup" value="yes" />'. |
.'<label><input type="checkbox" name="fullup" value="yes" />' |
' '.&mt('Display students with current/future access who are not in the uploaded file.') |
.' '.$lt{'disp'} |
.'</label><br />' |
.'</label><br />' |
.&mt('Students selected from this list can be dropped.') |
.$lt{'stus'} |
.&Apache::lonhtmlcommon::row_closure(); |
.&Apache::lonhtmlcommon::row_closure(); |
} |
} |
if ($context eq 'course' || $context eq 'domain') { |
if ($context eq 'course' || $context eq 'domain') { |
Line 916 sub forceid_change {
|
Line 928 sub forceid_change {
|
############################################################### |
############################################################### |
############################################################### |
############################################################### |
sub print_upload_manager_form { |
sub print_upload_manager_form { |
my ($r,$context,$permission) = @_; |
my ($r,$context,$permission,$crstype) = @_; |
my $firstLine; |
my $firstLine; |
my $datatoken; |
my $datatoken; |
if (!$env{'form.datatoken'}) { |
if (!$env{'form.datatoken'}) { |
Line 999 sub print_upload_manager_form {
|
Line 1011 sub print_upload_manager_form {
|
} |
} |
$r->print('</div>'); |
$r->print('</div>'); |
&print_upload_manager_footer($r,$i,$keyfields,$defdom,$today,$halfyear, |
&print_upload_manager_footer($r,$i,$keyfields,$defdom,$today,$halfyear, |
$context,$permission); |
$context,$permission,$crstype); |
} |
} |
|
|
sub setup_date_selectors { |
sub setup_date_selectors { |
Line 1073 sub get_dates_from_form {
|
Line 1085 sub get_dates_from_form {
|
} |
} |
|
|
sub date_setting_table { |
sub date_setting_table { |
my ($starttime,$endtime,$mode,$bulkaction,$formname,$permission) = @_; |
my ($starttime,$endtime,$mode,$bulkaction,$formname,$permission,$crstype) = @_; |
my $nolink; |
my $nolink; |
if ($bulkaction) { |
if ($bulkaction) { |
$nolink = 1; |
$nolink = 1; |
Line 1090 sub date_setting_table {
|
Line 1102 sub date_setting_table {
|
($env{'form.action'} eq 'upload')) { |
($env{'form.action'} eq 'upload')) { |
if ($env{'request.course.sec'} eq '') { |
if ($env{'request.course.sec'} eq '') { |
$dateDefault = '<span class="LC_nobreak">'. |
$dateDefault = '<span class="LC_nobreak">'. |
'<label><input type="checkbox" name="makedatesdefault" value="1" /> '. |
'<label><input type="checkbox" name="makedatesdefault" value="1" /> '; |
&mt('make these dates the default access dates for future student enrollment'). |
if ($crstype eq 'Community') { |
'</label></span>'; |
$dateDefault .= &mt("make these dates the default access dates for future community enrollment"); |
|
} else { |
|
$dateDefault .= &mt("make these dates the default access dates for future course enrollment"); |
|
} |
|
$dateDefault .= '</label></span>'; |
} |
} |
} |
} |
} |
} |
Line 1121 sub date_setting_table {
|
Line 1137 sub date_setting_table {
|
} |
} |
|
|
sub make_dates_default { |
sub make_dates_default { |
my ($startdate,$enddate,$context) = @_; |
my ($startdate,$enddate,$context,$crstype) = @_; |
my $result = ''; |
my $result = ''; |
if ($context eq 'course') { |
if ($context eq 'course') { |
my ($cnum,$cdom) = &get_course_identity(); |
my ($cnum,$cdom) = &get_course_identity(); |
Line 1129 sub make_dates_default {
|
Line 1145 sub make_dates_default {
|
{'default_enrollment_start_date'=>$startdate, |
{'default_enrollment_start_date'=>$startdate, |
'default_enrollment_end_date' =>$enddate},$cdom,$cnum); |
'default_enrollment_end_date' =>$enddate},$cdom,$cnum); |
if ($put_result eq 'ok') { |
if ($put_result eq 'ok') { |
$result .= &mt('Set default start and end access dates for course.'). |
if ($crstype eq 'Community') { |
'<br />'."\n"; |
$result .= &mt('Set default start and end access dates for community.'); |
|
} else { |
|
$result .= &mt('Set default start and end access dates for course.'); |
|
} |
|
$result .= '<br />'."\n"; |
# |
# |
# Refresh the course environment |
# Refresh the course environment |
&Apache::lonnet::coursedescription($env{'request.course.id'}, |
&Apache::lonnet::coursedescription($env{'request.course.id'}, |
{'freshen_cache' => 1}); |
{'freshen_cache' => 1}); |
} else { |
} else { |
$result .= &mt('Unable to set default access dates for course.').":".$put_result. |
if ($crstype eq 'Community') { |
'<br />'; |
$result .= &mt('Unable to set default access dates for community'); |
|
} else { |
|
$result .= &mt('Unable to set default access dates for course'); |
|
} |
|
$result .= ':'.$put_result.'<br />'; |
} |
} |
} |
} |
return $result; |
return $result; |
} |
} |
|
|
sub default_role_selector { |
sub default_role_selector { |
my ($context,$checkpriv) = @_; |
my ($context,$checkpriv,$crstype) = @_; |
my %customroles; |
my %customroles; |
my ($options,$coursepick,$cb_jscript); |
my ($options,$coursepick,$cb_jscript); |
if ($context ne 'author') { |
if ($context ne 'author') { |
Line 1160 sub default_role_selector {
|
Line 1184 sub default_role_selector {
|
$options = '<select name="defaultrole">'."\n". |
$options = '<select name="defaultrole">'."\n". |
' <option value="">'.&mt('Please select').'</option>'."\n"; |
' <option value="">'.&mt('Please select').'</option>'."\n"; |
if ($context eq 'course') { |
if ($context eq 'course') { |
$options .= &default_course_roles($context,$checkpriv,%customroles); |
$options .= &default_course_roles($context,$checkpriv,$crstype,%customroles); |
} elsif ($context eq 'author') { |
} elsif ($context eq 'author') { |
my @roles = &construction_space_roles($checkpriv); |
my @roles = &construction_space_roles($checkpriv); |
foreach my $role (@roles) { |
foreach my $role (@roles) { |
Line 1185 sub default_role_selector {
|
Line 1209 sub default_role_selector {
|
&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',''".')" /></td>'."\n". |
'<td><input type="text" name="coursedesc" value="" onfocus="this.blur();opencrsbrowser('."'studentform','dccourse','dcdomain','coursedesc',''".')" /></td>'."\n". |
'<td><select name="courserole">'."\n". |
'<td><select name="courserole">'."\n". |
&default_course_roles($context,$checkpriv,%customroles)."\n". |
&default_course_roles($context,$checkpriv,'Course',%customroles)."\n". |
'</select></td><td>'. |
'</select></td><td>'. |
'<table class="LC_createuser">'. |
'<table class="LC_createuser">'. |
'<tr class="LC_section_row"><td valign"top">'. |
'<tr class="LC_section_row"><td valign"top">'. |
Line 1210 sub default_role_selector {
|
Line 1234 sub default_role_selector {
|
} |
} |
|
|
sub default_course_roles { |
sub default_course_roles { |
my ($context,$checkpriv,%customroles) = @_; |
my ($context,$checkpriv,$crstype,%customroles) = @_; |
my $output; |
my $output; |
my $custom = 1; |
my $custom = 1; |
my @roles = &course_roles($context,$checkpriv,$custom); |
my @roles = &course_roles($context,$checkpriv,$custom,lc($crstype)); |
foreach my $role (@roles) { |
foreach my $role (@roles) { |
if ($role ne 'cr') { |
if ($role ne 'cr') { |
my $plrole=&Apache::lonnet::plaintext($role); |
my $plrole=&Apache::lonnet::plaintext($role,$crstype); |
$output .= ' <option value="'.$role.'">'.$plrole.'</option>'; |
$output .= ' <option value="'.$role.'">'.$plrole.'</option>'; |
} |
} |
} |
} |
Line 1265 sub domain_roles {
|
Line 1289 sub domain_roles {
|
} |
} |
|
|
sub course_roles { |
sub course_roles { |
my ($context,$checkpriv,$custom) = @_; |
my ($context,$checkpriv,$custom,$roletype) = @_; |
my @allroles = &roles_by_context('course',$custom); |
my @allroles = &roles_by_context('course',$custom,$roletype); |
my @roles; |
my @roles; |
if ($context eq 'domain') { |
if ($context eq 'domain') { |
@roles = @allroles; |
@roles = @allroles; |
Line 1277 sub course_roles {
|
Line 1301 sub course_roles {
|
if (&Apache::lonnet::allowed('c'.$role,$env{'request.course.id'})) { |
if (&Apache::lonnet::allowed('c'.$role,$env{'request.course.id'})) { |
push(@roles,$role); |
push(@roles,$role); |
} else { |
} else { |
if ($role ne 'cc' && $env{'request.course.sec'} ne '') { |
if ((($role ne 'cc') && ($role ne 'co')) && ($env{'request.course.sec'} ne '')) { |
if (&Apache::lonnet::allowed('c'.$role, |
if (&Apache::lonnet::allowed('c'.$role, |
$env{'request.course.id'}.'/'. |
$env{'request.course.id'}.'/'. |
$env{'request.course.sec'})) { |
$env{'request.course.sec'})) { |
Line 1295 sub course_roles {
|
Line 1319 sub course_roles {
|
} |
} |
|
|
sub curr_role_permissions { |
sub curr_role_permissions { |
my ($context,$setting,$checkpriv) = @_; |
my ($context,$setting,$checkpriv,$type) = @_; |
my $custom = 1; |
my $custom = 1; |
my @roles; |
my @roles; |
if ($context eq 'author') { |
if ($context eq 'author') { |
@roles = &construction_space_roles($checkpriv); |
@roles = &construction_space_roles($checkpriv); |
} elsif ($context eq 'domain') { |
} elsif ($context eq 'domain') { |
if ($setting eq 'course') { |
if ($setting eq 'course') { |
@roles = &course_roles($context,$checkpriv,$custom); |
@roles = &course_roles($context,$checkpriv,$custom,$type); |
} else { |
} else { |
@roles = &domain_roles($checkpriv); |
@roles = &domain_roles($checkpriv); |
} |
} |
} elsif ($context eq 'course') { |
} elsif ($context eq 'course') { |
@roles = &course_roles($context,$checkpriv,$custom); |
@roles = &course_roles($context,$checkpriv,$custom,$type); |
} |
} |
return @roles; |
return @roles; |
} |
} |
Line 1499 sub print_userlist {
|
Line 1523 sub print_userlist {
|
} |
} |
} |
} |
} |
} |
} elsif ($env{'form.roletype'} eq 'course') { |
} elsif (($env{'form.roletype'} eq 'course') || |
|
($env{'form.roletype'} eq 'community')) { |
if ($env{'form.coursepick'}) { |
if ($env{'form.coursepick'}) { |
my %courses = &process_coursepick(); |
my %courses = &process_coursepick(); |
my %allusers; |
my %allusers; |
Line 1511 sub print_userlist {
|
Line 1536 sub print_userlist {
|
my (@roles,@sections,%access,%users,%userdata, |
my (@roles,@sections,%access,%users,%userdata, |
%statushash); |
%statushash); |
if ($env{'form.showrole'} eq 'Any') { |
if ($env{'form.showrole'} eq 'Any') { |
@roles = &course_roles($context,undef,$custom); |
@roles = &course_roles($context,undef,$custom, |
|
$env{'form.roletype'}); |
} else { |
} else { |
@roles = ($env{'form.showrole'}); |
@roles = ($env{'form.showrole'}); |
} |
} |
Line 1557 sub print_userlist {
|
Line 1583 sub print_userlist {
|
$r->print(&mt('There are no authors or co-authors to display.')."\n"); |
$r->print(&mt('There are no authors or co-authors to display.')."\n"); |
} elsif ($env{'form.roletype'} eq 'course') { |
} elsif ($env{'form.roletype'} eq 'course') { |
$r->print(&mt('There are no course users to display')."\n"); |
$r->print(&mt('There are no course users to display')."\n"); |
|
} elsif ($env{'form.roletype'} eq 'community') { |
|
$r->print(&mt('There are no community users to display')."\n"); |
} |
} |
} elsif ($context eq 'course') { |
} elsif ($context eq 'course') { |
$r->print(&mt('There are no course users to display.')."\n"); |
$r->print(&mt('There are no course users to display.')."\n"); |
Line 1599 sub role_filter {
|
Line 1627 sub role_filter {
|
$role_select = '<select name="showrole">'."\n". |
$role_select = '<select name="showrole">'."\n". |
'<option value="Any" '.$roleselected.'>'. |
'<option value="Any" '.$roleselected.'>'. |
&mt('Any role').'</option>'; |
&mt('Any role').'</option>'; |
my @poss_roles = &curr_role_permissions($context); |
my ($roletype,$crstype); |
|
if ($context eq 'course') { |
|
$crstype = &Apache::loncommon::course_type(); |
|
if ($crstype eq 'Community') { |
|
$roletype = 'community'; |
|
} else { |
|
$roletype = 'course'; |
|
} |
|
} |
|
my @poss_roles = &curr_role_permissions($context,'','',$roletype); |
foreach my $role (@poss_roles) { |
foreach my $role (@poss_roles) { |
$roleselected = ''; |
$roleselected = ''; |
if ($role eq $env{'form.showrole'}) { |
if ($role eq $env{'form.showrole'}) { |
Line 1609 sub role_filter {
|
Line 1646 sub role_filter {
|
if ($role eq 'cr') { |
if ($role eq 'cr') { |
$plrole = &mt('Custom role'); |
$plrole = &mt('Custom role'); |
} else { |
} else { |
$plrole=&Apache::lonnet::plaintext($role); |
$plrole=&Apache::lonnet::plaintext($role,$crstype); |
} |
} |
$role_select .= '<option value="'.$role.'"'.$roleselected.'>'.$plrole.'</option>'; |
$role_select .= '<option value="'.$role.'"'.$roleselected.'>'.$plrole.'</option>'; |
} |
} |
Line 2039 sub show_users_list {
|
Line 2076 sub show_users_list {
|
$sortby = 'username'; |
$sortby = 'username'; |
} |
} |
my $setting = $env{'form.roletype'}; |
my $setting = $env{'form.roletype'}; |
my ($cid,$cdom,$cnum,$classgroups,$displayphotos,$displayclickers); |
my ($cid,$cdom,$cnum,$classgroups,$displayphotos,$displayclickers,$crstype); |
if ($context eq 'course') { |
if ($context eq 'course') { |
$cid = $env{'request.course.id'}; |
$cid = $env{'request.course.id'}; |
|
$crstype = &Apache::loncommon::course_type(); |
($cnum,$cdom) = &get_course_identity($cid); |
($cnum,$cdom) = &get_course_identity($cid); |
($classgroups) = &Apache::loncoursedata::get_group_memberships( |
($classgroups) = &Apache::loncoursedata::get_group_memberships( |
$userlist,$keylist,$cdom,$cnum); |
$userlist,$keylist,$cdom,$cnum); |
Line 2207 END
|
Line 2245 END
|
if ($env{'form.showrole'} eq 'cr') { |
if ($env{'form.showrole'} eq 'cr') { |
$rolefilter = &mt('custom'); |
$rolefilter = &mt('custom'); |
} elsif ($env{'form.showrole'} ne 'Any') { |
} elsif ($env{'form.showrole'} ne 'Any') { |
$rolefilter = &Apache::lonnet::plaintext($env{'form.showrole'}); |
$rolefilter = &Apache::lonnet::plaintext($env{'form.showrole'},$crstype); |
} |
} |
my $results_description; |
my $results_description; |
if ($mode ne 'autoenroll') { |
if ($mode ne 'autoenroll') { |
Line 2239 END
|
Line 2277 END
|
if ($env{'form.showrole'} eq 'Any') { |
if ($env{'form.showrole'} eq 'Any') { |
my $custom = 1; |
my $custom = 1; |
if ($context eq 'domain') { |
if ($context eq 'domain') { |
@allroles = &roles_by_context($setting,$custom); |
@allroles = &roles_by_context($setting,$custom,$crstype); |
} else { |
} else { |
@allroles = &roles_by_context($context,$custom); |
@allroles = &roles_by_context($context,$custom,$crstype); |
} |
} |
} else { |
} else { |
@allroles = ($env{'form.showrole'}); |
@allroles = ($env{'form.showrole'}); |
Line 2555 END
|
Line 2593 END
|
if ($clickers!~/\w/) { $clickers='-'; } |
if ($clickers!~/\w/) { $clickers='-'; } |
$in{'clicker'} = $clickers; |
$in{'clicker'} = $clickers; |
my $role = $in{'role'}; |
my $role = $in{'role'}; |
$in{'role'}=&Apache::lonnet::plaintext($sdata->[$index{'role'}]); |
$in{'role'}=&Apache::lonnet::plaintext($sdata->[$index{'role'}],$crstype); |
if (! defined($in{'start'}) || $in{'start'} == 0) { |
if (! defined($in{'start'}) || $in{'start'} == 0) { |
$in{'start'} = &mt('none'); |
$in{'start'} = &mt('none'); |
} else { |
} else { |
Line 2853 sub role_type_names {
|
Line 2891 sub role_type_names {
|
'domain' => 'Domain Roles', |
'domain' => 'Domain Roles', |
'author' => 'Co-Author Roles', |
'author' => 'Co-Author Roles', |
'course' => 'Course Roles', |
'course' => 'Course Roles', |
|
'community' => 'Community Roles', |
); |
); |
return %lt; |
return %lt; |
} |
} |
Line 2989 ENDTWO
|
Line 3028 ENDTWO
|
} |
} |
|
|
sub date_section_selector { |
sub date_section_selector { |
my ($context,$permission) = @_; |
my ($context,$permission,$crstype) = @_; |
my $callingform = $env{'form.callingform'}; |
my $callingform = $env{'form.callingform'}; |
my $formname = 'dateselect'; |
my $formname = 'dateselect'; |
my $groupslist = &get_groupslist(); |
my $groupslist = &get_groupslist(); |
Line 3088 ENDJS
|
Line 3127 ENDJS
|
} |
} |
$date_items = &date_setting_table($starttime,undef,$context, |
$date_items = &date_setting_table($starttime,undef,$context, |
$env{'form.bulkaction'},$formname, |
$env{'form.bulkaction'},$formname, |
$permission); |
$permission,$crstype); |
} |
} |
$output .= '<h3>'.$headertext.'</h3>'. |
$output .= '<h3>'.$headertext.'</h3>'. |
'<form name="'.$formname.'" method="post">'."\n". |
'<form name="'.$formname.'" method="post">'."\n". |
$date_items; |
$date_items; |
if ($context eq 'course' && $env{'form.bulkaction'} eq 'chgsec') { |
if ($context eq 'course' && $env{'form.bulkaction'} eq 'chgsec') { |
my ($cnum,$cdom) = &get_course_identity(); |
my ($cnum,$cdom) = &get_course_identity(); |
|
my $crstype = &Apache::loncommon::course_type(); |
my $info; |
my $info; |
if ($env{'form.showrole'} eq 'st') { |
if ($env{'form.showrole'} eq 'st') { |
$output .= '<p>'.$lt{'fors'}.'</p>'; |
$output .= '<p>'.$lt{'fors'}.'</p>'; |
Line 3120 ENDJS
|
Line 3160 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); |
my $secbox = §ion_picker($cdom,$cnum,$env{'form.showrole'},$rowtitle,$permission,$context,'',$crstype); |
$output .= $info.$secbox; |
$output .= $info.$secbox; |
} |
} |
$output .= '<p>'. |
$output .= '<p>'. |
Line 3130 ENDJS
|
Line 3170 ENDJS
|
} |
} |
|
|
sub section_picker { |
sub section_picker { |
my ($cdom,$cnum,$role,$rowtitle,$permission,$context,$mode) = @_; |
my ($cdom,$cnum,$role,$rowtitle,$permission,$context,$mode,$crstype) = @_; |
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 = '<p>'.&Apache::lonhtmlcommon::start_pick_box()."\n"; |
my $secbox = '<p>'.&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); |
&default_role_selector($context,1,$crstype); |
$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 3324 sub viewable_section {
|
Line 3364 sub viewable_section {
|
################################################# |
################################################# |
################################################# |
################################################# |
sub show_drop_list { |
sub show_drop_list { |
my ($r,$classlist,$nosort,$permission) = @_; |
my ($r,$classlist,$nosort,$permission,$crstype) = @_; |
my $cid = $env{'request.course.id'}; |
my $cid = $env{'request.course.id'}; |
my ($cnum,$cdom) = &get_course_identity($cid); |
my ($cnum,$cdom) = &get_course_identity($cid); |
if (! exists($env{'form.sortby'})) { |
if (! exists($env{'form.sortby'})) { |
Line 3370 END
|
Line 3410 END
|
} |
} |
} |
} |
if (!$studentcount) { |
if (!$studentcount) { |
$r->print(&mt('There are no students to drop.')); |
if ($crstype eq 'Community') { |
|
$r->print(&mt('There are no members to drop.')); |
|
} else { |
|
$r->print(&mt('There are no students to drop.')); |
|
} |
return; |
return; |
} |
} |
my ($classgroups) = &Apache::loncoursedata::get_group_memberships( |
my ($classgroups) = &Apache::loncoursedata::get_group_memberships( |
Line 3378 END
|
Line 3422 END
|
my %lt=&Apache::lonlocal::texthash('usrn' => "username", |
my %lt=&Apache::lonlocal::texthash('usrn' => "username", |
'dom' => "domain", |
'dom' => "domain", |
'sn' => "student name", |
'sn' => "student name", |
|
'mn' => "member name", |
'sec' => "section", |
'sec' => "section", |
'start' => "start date", |
'start' => "start date", |
'end' => "end date", |
'end' => "end date", |
'groups' => "active groups", |
'groups' => "active groups", |
); |
); |
|
my $nametitle = $lt{'sn'}; |
|
if ($crstype eq 'Community') { |
|
$nametitle = $lt{'mn'}; |
|
} |
if ($nosort) { |
if ($nosort) { |
$r->print(&Apache::loncommon::start_data_table(). |
$r->print(&Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table_header_row()); |
&Apache::loncommon::start_data_table_header_row()); |
Line 3391 END
|
Line 3440 END
|
<th>$lt{'usrn'}</th> |
<th>$lt{'usrn'}</th> |
<th>$lt{'dom'}</th> |
<th>$lt{'dom'}</th> |
<th>ID</th> |
<th>ID</th> |
<th>$lt{'sn'}</th> |
<th>$nametitle</th> |
<th>$lt{'sec'}</th> |
<th>$lt{'sec'}</th> |
<th>$lt{'start'}</th> |
<th>$lt{'start'}</th> |
<th>$lt{'end'}</th> |
<th>$lt{'end'}</th> |
Line 3410 END
|
Line 3459 END
|
</th><th> |
</th><th> |
<a href="/adm/createuser?action=$action&sortby=id">ID</a> |
<a href="/adm/createuser?action=$action&sortby=id">ID</a> |
</th><th> |
</th><th> |
<a href="/adm/createuser?action=$action&sortby=fullname">$lt{'sn'}</a> |
<a href="/adm/createuser?action=$action&sortby=fullname">$nametitle</a> |
</th><th> |
</th><th> |
<a href="/adm/createuser?action=$action&sortby=section">$lt{'sec'}</a> |
<a href="/adm/createuser?action=$action&sortby=section">$lt{'sec'}</a> |
</th><th> |
</th><th> |
Line 3480 END
|
Line 3529 END
|
$r->print(&Apache::loncommon::end_data_table().'<br />'); |
$r->print(&Apache::loncommon::end_data_table().'<br />'); |
%lt=&Apache::lonlocal::texthash( |
%lt=&Apache::lonlocal::texthash( |
'dp' => "Drop Students", |
'dp' => "Drop Students", |
|
'dm' => "Drop Members", |
'ca' => "check all", |
'ca' => "check all", |
'ua' => "uncheck all", |
'ua' => "uncheck all", |
); |
); |
|
my $btn = $lt{'dp'}; |
|
if ($crstype eq 'Community') { |
|
$btn = $lt{'dm'}; |
|
} |
$r->print(<<"END"); |
$r->print(<<"END"); |
</p> |
</p> |
<p> |
<p> |
Line 3490 END
|
Line 3544 END
|
<input type="button" value="$lt{'ua'}" onclick="javascript:uncheckAll(document.studentform.droplist)" /> |
<input type="button" value="$lt{'ua'}" onclick="javascript:uncheckAll(document.studentform.droplist)" /> |
</p> |
</p> |
<p> |
<p> |
<input type="submit" value="$lt{'dp'}" /> |
<input type="submit" value="$btn" /> |
</p> |
</p> |
END |
END |
return; |
return; |
Line 3504 sub print_first_users_upload_form {
|
Line 3558 sub print_first_users_upload_form {
|
my $str; |
my $str; |
$str = '<input type="hidden" name="phase" value="two" />'; |
$str = '<input type="hidden" name="phase" value="two" />'; |
$str .= '<input type="hidden" name="action" value="upload" />'; |
$str .= '<input type="hidden" name="action" value="upload" />'; |
$str .= '<input type="hidden" name="state" value="got_file" />'; |
$str .= '<input type="hidden" name="state" value="got_file" />'; |
|
|
$str .= '<h2>'.&mt('Upload a file containing information about users').'</h2>'."\n"; |
$str .= '<h2>'.&mt('Upload a file containing information about users').'</h2>'."\n"; |
|
|
Line 3584 sub upfile_drop_add {
|
Line 3638 sub upfile_drop_add {
|
'domain_choice' => 'scalar', |
'domain_choice' => 'scalar', |
'inststatus_choice' => 'scalar'}); |
'inststatus_choice' => 'scalar'}); |
# |
# |
|
my ($cid,$crstype,$setting); |
|
if ($context eq 'domain') { |
|
$setting = $env{'form.roleaction'}; |
|
} |
|
if ($env{'request.course.id'} ne '') { |
|
$cid = $env{'request.course.id'}; |
|
$crstype = &Apache::loncommon::course_type(); |
|
} elsif ($setting eq 'course') { |
|
if (&Apache::lonnet::is_course($env{'form.dcdomain'},$env{'form.dccourse'})) { |
|
$cid = $env{'form.dcdomain'}.'_'.$env{'form.dccourse'}; |
|
$crstype = &Apache::loncommon::course_type($cid); |
|
} |
|
} |
my ($startdate,$enddate) = &get_dates_from_form(); |
my ($startdate,$enddate) = &get_dates_from_form(); |
if ($env{'form.makedatesdefault'}) { |
if ($env{'form.makedatesdefault'}) { |
$r->print(&make_dates_default($startdate,$enddate,$context)); |
$r->print(&make_dates_default($startdate,$enddate,$context,$crstype)); |
} |
} |
# Determine domain and desired host (home server) |
# Determine domain and desired host (home server) |
my $defdom=$env{'request.role.domain'}; |
my $defdom=$env{'request.role.domain'}; |
Line 3638 sub upfile_drop_add {
|
Line 3705 sub upfile_drop_add {
|
$amode = ''; # This causes the loop below to be skipped |
$amode = ''; # This causes the loop below to be skipped |
} |
} |
} |
} |
my ($cid,$defaultsec,$defaultrole,$setting); |
my ($defaultsec,$defaultrole); |
if ($context eq 'domain') { |
if ($context eq 'domain') { |
$setting = $env{'form.roleaction'}; |
|
if ($setting eq 'domain') { |
if ($setting eq 'domain') { |
$defaultrole = $env{'form.defaultrole'}; |
$defaultrole = $env{'form.defaultrole'}; |
} elsif ($setting eq 'course') { |
} elsif ($setting eq 'course') { |
Line 3653 sub upfile_drop_add {
|
Line 3719 sub upfile_drop_add {
|
$defaultrole = $env{'form.defaultrole'}; |
$defaultrole = $env{'form.defaultrole'}; |
$defaultsec = $env{'form.sections'}; |
$defaultsec = $env{'form.sections'}; |
} |
} |
if ($env{'request.course.id'} ne '') { |
|
$cid = $env{'request.course.id'}; |
|
} elsif ($setting eq 'course') { |
|
if (&Apache::lonnet::is_course($env{'form.dcdomain'},$env{'form.dccourse'})) { |
|
$cid = $env{'form.dcdomain'}.'_'.$env{'form.dccourse'}; |
|
} |
|
} |
|
# 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', |
'permanentemail','id'); |
'permanentemail','id'); |
Line 3672 sub upfile_drop_add {
|
Line 3731 sub upfile_drop_add {
|
} |
} |
my (%userlist,%modifiable_fields,@poss_roles); |
my (%userlist,%modifiable_fields,@poss_roles); |
my $secidx = &Apache::loncoursedata::CL_SECTION(); |
my $secidx = &Apache::loncoursedata::CL_SECTION(); |
my @courseroles = &roles_by_context('course',1); |
my @courseroles = &roles_by_context('course',1,'',$crstype); |
if (!&Apache::lonnet::allowed('mau',$domain)) { |
if (!&Apache::lonnet::allowed('mau',$domain)) { |
if ($context eq 'course' || $context eq 'author') { |
if ($context eq 'course' || $context eq 'author') { |
@poss_roles = &curr_role_permissions($context); |
@poss_roles = &curr_role_permissions($context,'','',$crstype); |
my @statuses = ('active','future'); |
my @statuses = ('active','future'); |
my ($indexhash,$keylist) = &make_keylist_array(); |
my ($indexhash,$keylist) = &make_keylist_array(); |
my %info; |
my %info; |
Line 3762 sub upfile_drop_add {
|
Line 3821 sub upfile_drop_add {
|
} |
} |
my (%curr_rules,%got_rules,%alerts); |
my (%curr_rules,%got_rules,%alerts); |
my %customroles = &my_custom_roles(); |
my %customroles = &my_custom_roles(); |
my @permitted_roles = &roles_on_upload($context,$setting,%customroles); |
my @permitted_roles = |
|
&roles_on_upload($context,$setting,$crstype,%customroles); |
# Get new users list |
# Get new users list |
foreach my $line (@userdata) { |
foreach my $line (@userdata) { |
my @secs; |
my @secs; |
Line 4205 sub user_change_result {
|
Line 4265 sub user_change_result {
|
|
|
# ========================================================= Menu Phase Two Drop |
# ========================================================= Menu Phase Two Drop |
sub print_drop_menu { |
sub print_drop_menu { |
my ($r,$context,$permission) = @_; |
my ($r,$context,$permission,$crstype) = @_; |
$r->print('<h3>'.&mt("Drop Students").'</h3>'."\n". |
my $heading; |
|
if ($crstype eq 'Community') { |
|
$heading = &mt("Drop Members"); |
|
} else { |
|
$heading = &mt("Drop Students"); |
|
} |
|
$r->print('<h3>'.$heading.'</h3>'."\n". |
'<form name="studentform" method="post">'."\n"); |
'<form name="studentform" method="post">'."\n"); |
my $classlist = &Apache::loncoursedata::get_classlist(); |
my $classlist = &Apache::loncoursedata::get_classlist(); |
if (! defined($classlist)) { |
if (! defined($classlist)) { |
$r->print(&mt('There are no students currently enrolled.')."\n"); |
if ($crstype eq 'Community') { |
|
$r->print(&mt('There are no members currently enrolled.')."\n"); |
|
} else { |
|
$r->print(&mt('There are no students currently enrolled.')."\n"); |
|
} |
} else { |
} else { |
&show_drop_list($r,$classlist,'nosort',$permission); |
&show_drop_list($r,$classlist,'nosort',$permission,$crstype); |
} |
} |
$r->print('</form>'. &Apache::loncommon::end_page()); |
$r->print('</form>'. &Apache::loncommon::end_page()); |
return; |
return; |
Line 4224 sub update_user_list {
|
Line 4294 sub update_user_list {
|
my ($r,$context,$setting,$choice) = @_; |
my ($r,$context,$setting,$choice) = @_; |
my $now = time; |
my $now = time; |
my $count=0; |
my $count=0; |
|
my $crstype; |
|
if ($context eq 'course') { |
|
$crstype = &Apache::loncommon::course_type(); |
|
} |
my @changelist; |
my @changelist; |
if ($choice eq 'drop') { |
if ($choice eq 'drop') { |
@changelist = &Apache::loncommon::get_env_multiple('form.droplist'); |
@changelist = &Apache::loncommon::get_env_multiple('form.droplist'); |
Line 4294 sub update_user_list {
|
Line 4368 sub update_user_list {
|
} |
} |
} |
} |
} |
} |
my $plrole = &Apache::lonnet::plaintext($role); |
my $plrole = &Apache::lonnet::plaintext($role,$crstype); |
my $start = $env{'form.'.$item.'_start'}; |
my $start = $env{'form.'.$item.'_start'}; |
my $end = $env{'form.'.$item.'_end'}; |
my $end = $env{'form.'.$item.'_end'}; |
if ($choice eq 'drop') { |
if ($choice eq 'drop') { |
Line 4459 sub update_user_list {
|
Line 4533 sub update_user_list {
|
} |
} |
if ($env{'form.makedatesdefault'}) { |
if ($env{'form.makedatesdefault'}) { |
if ($choice eq 'chgdates' || $choice eq 'reenable' || $choice eq 'activate') { |
if ($choice eq 'chgdates' || $choice eq 'reenable' || $choice eq 'activate') { |
$r->print(&make_dates_default($startdate,$enddate,$context)); |
$r->print(&make_dates_default($startdate,$enddate,$context,$crstype)); |
} |
} |
} |
} |
my $linktext = &mt('Display User Lists'); |
my $linktext = &mt('Display User Lists'); |
Line 4843 sub check_usertype {
|
Line 4917 sub check_usertype {
|
} |
} |
|
|
sub roles_by_context { |
sub roles_by_context { |
my ($context,$custom) = @_; |
my ($context,$custom,$crstype) = @_; |
my @allroles; |
my @allroles; |
if ($context eq 'course') { |
if ($context eq 'course') { |
@allroles = ('st'); |
@allroles = ('st'); |
if ($env{'request.role'} =~ m{^dc\./}) { |
if ($env{'request.role'} =~ m{^dc\./}) { |
push(@allroles,'ad'); |
push(@allroles,'ad'); |
} |
} |
push(@allroles,('ta','ep','in','cc')); |
push(@allroles,('ta','ep','in')); |
|
if ($crstype eq 'Community') { |
|
push(@allroles,'co'); |
|
} else { |
|
push(@allroles,'cc'); |
|
} |
if ($custom) { |
if ($custom) { |
push(@allroles,'cr'); |
push(@allroles,'cr'); |
} |
} |
Line 4863 sub roles_by_context {
|
Line 4942 sub roles_by_context {
|
} |
} |
|
|
sub get_permission { |
sub get_permission { |
my ($context,$roles) = @_; |
my ($context,$crstype) = @_; |
my %permission; |
my %permission; |
if ($context eq 'course') { |
if ($context eq 'course') { |
my $custom = 1; |
my $custom = 1; |
my @allroles = &roles_by_context($context,$custom); |
my @allroles = &roles_by_context($context,$custom,$crstype); |
foreach my $role (@allroles) { |
foreach my $role (@allroles) { |
if (&Apache::lonnet::allowed('c'.$role,$env{'request.course.id'})) { |
if (&Apache::lonnet::allowed('c'.$role,$env{'request.course.id'})) { |
$permission{'cusr'} = 1; |
$permission{'cusr'} = 1; |
Line 4936 sub authorpriv {
|
Line 5015 sub authorpriv {
|
} |
} |
|
|
sub roles_on_upload { |
sub roles_on_upload { |
my ($context,$setting,%customroles) = @_; |
my ($context,$setting,$crstype,%customroles) = @_; |
my (@possible_roles,@permitted_roles); |
my (@possible_roles,@permitted_roles); |
@possible_roles = &curr_role_permissions($context,$setting,1); |
@possible_roles = &curr_role_permissions($context,$setting,1,$crstype); |
foreach my $role (@possible_roles) { |
foreach my $role (@possible_roles) { |
if ($role eq 'cr') { |
if ($role eq 'cr') { |
push(@permitted_roles,keys(%customroles)); |
push(@permitted_roles,keys(%customroles)); |