version 1.97.2.13, 2010/01/20 21:42:30
|
version 1.107, 2009/11/23 03:45:16
|
Line 386 sub javascript_validations {
|
Line 386 sub javascript_validations {
|
if (($context eq 'course') || ($context eq 'domain')) { |
if (($context eq 'course') || ($context eq 'domain')) { |
if ($context eq 'course') { |
if ($context eq 'course') { |
if ($env{'request.course.sec'} eq '') { |
if ($env{'request.course.sec'} eq '') { |
$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); |
Line 1141 sub date_setting_table {
|
Line 1141 sub date_setting_table {
|
} |
} |
|
|
sub make_dates_default { |
sub make_dates_default { |
my ($startdate,$enddate,$context,$crstype = @_; |
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 1447 sub print_userlist {
|
Line 1447 sub print_userlist {
|
return; |
return; |
} |
} |
if (!(($context eq 'domain') && |
if (!(($context eq 'domain') && |
(($env{'form.roletype'} eq 'course') || ($env{'form.roletype'} eq 'community')))) { |
(($env{'form.roletype'} eq 'course') || ($env{'form.roletype'} eq 'community')))) { |
$r->print( |
$r->print(' '.&list_submit_button(&mt('Update Display')). |
"\n</p>\n" |
"\n</p>\n"); |
.'<p>' |
|
.&list_submit_button(&mt('Update Display')) |
|
."</p>\n" |
|
); |
|
} |
} |
my ($indexhash,$keylist) = &make_keylist_array(); |
my ($indexhash,$keylist) = &make_keylist_array(); |
my (%userlist,%userinfo,$clearcoursepick); |
my (%userlist,%userinfo,$clearcoursepick); |
if (($context eq 'domain') && |
if (($context eq 'domain') && |
($env{'form.roletype'} eq 'course') || |
($env{'form.roletype'} eq 'course') || |
($env{'form.roletype'} eq 'community')) { |
($env{'form.roletype'} eq 'community')) { |
my ($crstype,$numcodes,$title,$warning); |
my ($crstype,$numcodes,$title,$warning); |
if ($env{'form.roletype'} eq 'course') { |
if ($env{'form.roletype'} eq 'course') { |
Line 1562 sub print_userlist {
|
Line 1558 sub print_userlist {
|
} |
} |
} |
} |
} |
} |
} elsif ($env{'form.roletype'} eq 'course') { |
} elsif (($env{'form.roletype'} eq 'course') || |
|
($env{'form.roletype'} eq 'community')) { |
if (($env{'form.coursepick'}) && (!$clearcoursepick)) { |
if (($env{'form.coursepick'}) && (!$clearcoursepick)) { |
my %courses = &process_coursepick(); |
my %courses = &process_coursepick(); |
my %allusers; |
my %allusers; |
Line 1731 sub section_group_filter {
|
Line 1728 sub section_group_filter {
|
} |
} |
if (@options > 0) { |
if (@options > 0) { |
my $currsel; |
my $currsel; |
$markup = '<select name="'.$name{$item}.'">'."\n"; |
$markup = '<select name="'.$name{$item}.'" />'."\n"; |
foreach my $option ('all','none',@options) { |
foreach my $option ('all','none',@options) { |
$currsel = ''; |
$currsel = ''; |
if ($env{'form.'.$name{$item}} eq $option) { |
if ($env{'form.'.$name{$item}} eq $option) { |
Line 1746 sub section_group_filter {
|
Line 1743 sub section_group_filter {
|
$markup .= '</option>'."\n"; |
$markup .= '</option>'."\n"; |
} |
} |
$markup .= '</select>'."\n"; |
$markup .= '</select>'."\n"; |
$output .= (' 'x3).'<span class="LC_nobreak">' |
$output .= (' 'x3).'<label>'.$title{$item}.': '.$markup.'</label>'; |
.'<label>'.$title{$item}.': '.$markup.'</label>' |
|
.'</span> '; |
|
} |
} |
} |
} |
return $output; |
return $output; |
Line 2276 END
|
Line 2271 END
|
push(@cols,'section'); |
push(@cols,'section'); |
} |
} |
if (!($context eq 'domain' && ($env{'form.roletype'} eq 'course') |
if (!($context eq 'domain' && ($env{'form.roletype'} eq 'course') |
&& ($env{'form.roletype'} eq 'community'))) { |
&& ($env{'form.roletype'} eq 'community'))) { |
push(@cols,('start','end')); |
push(@cols,('start','end')); |
} |
} |
if ($env{'form.showrole'} eq 'Any' || $env{'form.showrole'} eq 'cr') { |
if ($env{'form.showrole'} eq 'Any' || $env{'form.showrole'} eq 'cr') { |
Line 2287 END
|
Line 2282 END
|
$env{'form.roletype'} eq 'community')) { |
$env{'form.roletype'} eq 'community')) { |
push (@cols,'extent'); |
push (@cols,'extent'); |
} |
} |
if (($statusmode eq 'Any') && |
if (($statusmode eq 'Any') && |
(!($context eq 'domain' && (($env{'form.roletype'} eq 'course') |
(!($context eq 'domain' && (($env{'form.roletype'} eq 'course') |
|| ($env{'form.roletype'} eq 'community'))))) { |
|| ($env{'form.roletype'} eq 'community'))))) { |
push(@cols,'status'); |
push(@cols,'status'); |
Line 2302 END
|
Line 2297 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') { |
$results_description = &results_header_row($rolefilter,$statusmode, |
$results_description = &results_header_row($rolefilter,$statusmode, |
$context,$permission,$mode,$crstype); |
$context,$permission,$mode,$crstype); |
|
|
$r->print('<b>'.$results_description.'</b><br /><br />'); |
$r->print('<b>'.$results_description.'</b><br /><br />'); |
} |
} |
my ($output,$actionselect,%canchange,%canchangesec); |
my ($output,$actionselect,%canchange,%canchangesec); |
Line 2330 END
|
Line 2324 END
|
END |
END |
if ($actionselect) { |
if ($actionselect) { |
$output .= <<"END"; |
$output .= <<"END"; |
<div class="LC_left_float"><fieldset><legend><b>$lt{'ac'}</b></legend> |
<div class="LC_left_float"><fieldset><legend>$lt{'ac'}</legend> |
$actionselect |
$actionselect |
<br/><br /><input type="button" value="$lt{'ca'}" onclick="javascript:checkAll(document.$formname.actionlist)" /> |
<br/><br /><input type="button" value="$lt{'ca'}" onclick="javascript:checkAll(document.$formname.actionlist)" /> |
<input type="button" value="$lt{'ua'}" onclick="javascript:uncheckAll(document.$formname.actionlist)" /><br /><input type="button" value="$lt{'pr'}" onclick="javascript:verify_action('actionlist')" /></fieldset></div> |
<input type="button" value="$lt{'ua'}" onclick="javascript:uncheckAll(document.$formname.actionlist)" /><br /><input type="button" value="$lt{'pr'}" onclick="javascript:verify_action('actionlist')" /></fieldset></div> |
Line 2375 END
|
Line 2369 END
|
} |
} |
} |
} |
} |
} |
$output .= '<div class="LC_left_float"><fieldset><legend><b>'.$lt{'link'}.'</b></legend>'. |
$output .= '<div class="LC_left_float"><fieldset><legend>'.$lt{'link'}.'</legend>'. |
'<table><tr>'; |
'<table><tr>'; |
my @linkdests = ('aboutme'); |
my @linkdests = ('aboutme'); |
if ($permission->{'cusr'}) { |
if ($permission->{'cusr'}) { |
Line 2386 END
|
Line 2380 END
|
$env{'request.course.sec'})) { |
$env{'request.course.sec'})) { |
push(@linkdests,'track'); |
push(@linkdests,'track'); |
} |
} |
|
|
$output .= '<td>'; |
$output .= '<td>'; |
my $usernamelink = $env{'form.usernamelink'}; |
my $usernamelink = $env{'form.usernamelink'}; |
if ($usernamelink eq '') { |
if ($usernamelink eq '') { |
Line 2467 END
|
Line 2462 END
|
time.'_'.rand(1000000000).'.csv'; |
time.'_'.rand(1000000000).'.csv'; |
unless ($CSVfile = Apache::File->new('>/home/httpd'.$CSVfilename)) { |
unless ($CSVfile = Apache::File->new('>/home/httpd'.$CSVfilename)) { |
$r->log_error("Couldn't open $CSVfilename for output $!"); |
$r->log_error("Couldn't open $CSVfilename for output $!"); |
$r->print( |
$r->print(&mt('Problems occurred in writing the CSV file. ' |
'<p class="LC_error">' |
.'This error has been logged. ' |
.&mt('Problems occurred in writing the CSV file.') |
.'Please alert your LON-CAPA administrator.')); |
.' '.&mt('This error has been logged.') |
|
.' '.&mt('Please alert your LON-CAPA administrator.') |
|
.'</p>' |
|
); |
|
$CSVfile = undef; |
$CSVfile = undef; |
} |
} |
# |
# |
Line 2655 END
|
Line 2646 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'}],$crstype); |
$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 2942 sub print_username_link {
|
Line 2933 sub print_username_link {
|
$output = $in->{'username'}; |
$output = $in->{'username'}; |
} else { |
} else { |
$output = '<a href="javascript:username_display_launch('. |
$output = '<a href="javascript:username_display_launch('. |
"'$in->{'username'}','$in->{'domain'}'".')">'. |
"'$in->{'username'}','$in->{'domain'}'".')" />'. |
$in->{'username'}.'</a>'; |
$in->{'username'}.'</a>'; |
} |
} |
return $output; |
return $output; |
Line 2954 sub role_type_names {
|
Line 2945 sub role_type_names {
|
'author' => 'Co-Author Roles', |
'author' => 'Co-Author Roles', |
'course' => 'Course Roles', |
'course' => 'Course Roles', |
'community' => 'Community Roles', |
'community' => 'Community Roles', |
|
|
); |
); |
return %lt; |
return %lt; |
} |
} |
Line 3409 sub results_header_row {
|
Line 3399 sub results_header_row {
|
} |
} |
} elsif (($env{'form.roletype'} eq 'course') || |
} elsif (($env{'form.roletype'} eq 'course') || |
($env{'form.roletype'} eq 'community')) { |
($env{'form.roletype'} eq 'community')) { |
|
|
my $coursefilter = $env{'form.coursepick'}; |
my $coursefilter = $env{'form.coursepick'}; |
if ($env{'form.roletype'} eq 'course') { |
if ($env{'form.roletype'} eq 'course') { |
if ($coursefilter eq 'category') { |
if ($coursefilter eq 'category') { |
Line 3662 sub print_first_users_upload_form {
|
Line 3651 sub print_first_users_upload_form {
|
$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"; |
|
|
# Excel and CSV Help |
# Excel and CSV Help |
Line 3674 sub print_first_users_upload_form {
|
Line 3662 sub print_first_users_upload_form {
|
&mt("How do I create a CSV file from a spreadsheet")) |
&mt("How do I create a CSV file from a spreadsheet")) |
.'</div><br clear="all" />'."\n"; |
.'</div><br clear="all" />'."\n"; |
$str .= &Apache::lonhtmlcommon::start_pick_box() |
$str .= &Apache::lonhtmlcommon::start_pick_box() |
.&Apache::lonhtmlcommon::row_title(&mt('File')) |
.&Apache::lonhtmlcommon::row_title(&mt('File')); |
.&Apache::loncommon::upfile_select_html() |
if (&Apache::lonlocal::current_language() ne 'en') { |
|
if ($context eq 'course') { |
|
$str .= '<p class="LC_info">'."\n" |
|
.&mt('Please upload an UTF8 encoded file to ensure a correct character encoding in your classlist.')."\n" |
|
.'</p>'."\n"; |
|
} |
|
} |
|
$str .= &Apache::loncommon::upfile_select_html() |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_title( |
.&Apache::lonhtmlcommon::row_title( |
'<label for="noFirstLine">' |
'<label for="noFirstLine">' |
Line 3689 sub print_first_users_upload_form {
|
Line 3684 sub print_first_users_upload_form {
|
.'<input type="submit" name="fileupload" value="'.&mt('Next').'" />' |
.'<input type="submit" name="fileupload" value="'.&mt('Next').'" />' |
.'</p>'; |
.'</p>'; |
|
|
|
$str .= &Apache::loncommon::end_page(); |
|
|
$r->print($str); |
$r->print($str); |
return; |
return; |
} |
} |
Line 3750 sub upfile_drop_add {
|
Line 3747 sub upfile_drop_add {
|
} |
} |
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,$crstype); |
$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 3809 sub upfile_drop_add {
|
Line 3806 sub upfile_drop_add {
|
} elsif ($setting eq 'course') { |
} elsif ($setting eq 'course') { |
$defaultrole = $env{'form.courserole'}; |
$defaultrole = $env{'form.courserole'}; |
$defaultsec = $env{'form.sections'}; |
$defaultsec = $env{'form.sections'}; |
} |
} |
} elsif ($context eq 'author') { |
} elsif ($context eq 'author') { |
$defaultrole = $env{'form.defaultrole'}; |
$defaultrole = $env{'form.defaultrole'}; |
} elsif ($context eq 'course') { |
} elsif ($context eq 'course') { |
Line 4161 sub upfile_drop_add {
|
Line 4158 sub upfile_drop_add {
|
$role = 'cr_'.$env{'user.domain'}.'_'. |
$role = 'cr_'.$env{'user.domain'}.'_'. |
$env{'user.name'}.'_'.$role; |
$env{'user.name'}.'_'.$role; |
} |
} |
if (($role ne 'cc') && ($role ne 'co')) { |
if (($role ne 'cc') && ($role ne 'co')) { |
if (@secs > 1) { |
if (@secs > 1) { |
$multiple = 1; |
$multiple = 1; |
foreach my $sec (@secs) { |
foreach my $sec (@secs) { |
Line 4820 sub setsections_javascript {
|
Line 4817 sub setsections_javascript {
|
accr => 'A course coordinator role will be added with access to all sections.', |
accr => 'A course coordinator role will be added with access to all sections.', |
acor => 'A coordinator role will be added with access to all sections', |
acor => 'A coordinator role will be added with access to all sections', |
inea => 'In each course, each user may only have one student role at a time.', |
inea => 'In each course, each user may only have one student role at a time.', |
inec => 'In each community, each user may only have one member role at a time.', |
inec => 'In each community, each user may only have on member role at a time.', |
youh => 'You had selected ', |
youh => 'You had selected ', |
secs => 'sections.', |
secs => 'sections.', |
plmo => 'Please modify your selections so they include no more than one section.', |
plmo => 'Please modify your selections so they include no more than one section.', |
Line 4828 sub setsections_javascript {
|
Line 4825 sub setsections_javascript {
|
plch => 'Please choose a different section name.', |
plch => 'Please choose a different section name.', |
mnot => 'may not be used as a section name, as it is the name of a course group.', |
mnot => 'may not be used as a section name, as it is the name of a course group.', |
secn => 'Section names and group names must be distinct. Please choose a different section name.', |
secn => 'Section names and group names must be distinct. Please choose a different section name.', |
nonw => 'Section names may only contain letters or numbers.', |
|
); |
); |
$setsection_js .= <<"ENDSECCODE"; |
$setsection_js .= <<"ENDSECCODE"; |
|
|
function setSections(formname,crstype) { |
function setSections(formname,crstype) { |
var re1 = /^currsec_/; |
var re1 = /^currsec_/; |
var re2 =/\\W/; |
|
var groups = new Array($groupslist); |
var groups = new Array($groupslist); |
for (var i=0;i<formname.elements.length;i++) { |
for (var i=0;i<formname.elements.length;i++) { |
var str = formname.elements[i].name; |
var str = formname.elements[i].name; |
Line 4878 function setSections(formname,crstype) {
|
Line 4873 function setSections(formname,crstype) {
|
} |
} |
var newsecs = formname.elements[i+1].value; |
var newsecs = formname.elements[i+1].value; |
var numsplit; |
var numsplit; |
var validsecs = new Array(); |
|
var badsecs = new Array(); |
|
if (newsecs != null && newsecs != "") { |
if (newsecs != null && newsecs != "") { |
numsplit = newsecs.split(/,/g); |
numsplit = newsecs.split(/,/g); |
numsec = numsec + numsplit.length; |
numsec = numsec + numsplit.length; |
for (var i=0; i<numsplit.length; i++) { |
|
if (re2.test(numsplit[i]) == true) { |
|
badsecs.push(numsplit[i]); |
|
} else { |
|
validsecs.push(numsplit[i]); |
|
} |
|
} |
|
if (badsecs.length > 0) { |
|
alert("$alerts{'nonw'}\\n$alerts{'plch'}"); |
|
return; |
|
} |
|
numsec = numsec + validsecs.length; |
|
} |
} |
|
|
if ((role == 'st') && (numsec > 1)) { |
if ((role == 'st') && (numsec > 1)) { |
Line 5378 sub sectioncheck_alerts {
|
Line 5359 sub sectioncheck_alerts {
|
my %alerts = &Apache::lonlocal::texthash( |
my %alerts = &Apache::lonlocal::texthash( |
curd => 'You must select a course or community in the current domain', |
curd => 'You must select a course or community in the current domain', |
inea => 'In each course, each user may only have one student role at a time', |
inea => 'In each course, each user may only have one student role at a time', |
inco => 'In each community, each user may only have one member role at a time', |
inco => 'In each community, each user may only have one member role at a time', |
youh => 'You had selected', |
youh => 'You had selected', |
sect => 'sections', |
sect => 'sections', |
plsm => 'Please modify your selections so they include no more than one section', |
plsm => 'Please modify your selections so they include no more than one section', |