version 1.36, 2007/12/26 14:38:13
|
version 1.41, 2008/01/02 09:01:02
|
Line 76 sub modifystudent {
|
Line 76 sub modifystudent {
|
} |
} |
} |
} |
if ($result eq '') { |
if ($result eq '') { |
$result = 'Unable to find section for this student'; |
$result = &mt('Unable to find section for this student'); |
} else { |
} else { |
$result =~ s/(ok:)+/ok/g; |
$result =~ s/(ok:)+/ok/g; |
} |
} |
Line 333 sub print_upload_manager_header {
|
Line 333 sub print_upload_manager_header {
|
sub javascript_validations { |
sub javascript_validations { |
my ($mode,$krbdefdom,$curr_authtype,$curr_authfield,$domain, |
my ($mode,$krbdefdom,$curr_authtype,$curr_authfield,$domain, |
$context,$groupslist)=@_; |
$context,$groupslist)=@_; |
|
|
my %param = ( |
my %param = ( |
kerb_def_dom => $krbdefdom, |
kerb_def_dom => $krbdefdom, |
curr_authtype => $curr_authtype, |
curr_authtype => $curr_authtype, |
); |
); |
if ($mode eq 'createuser') { |
if ($mode eq 'upload') { |
$param{'formname'} = 'cu'; |
|
} elsif ($mode eq 'upload') { |
|
$param{'formname'} = 'studentform'; |
$param{'formname'} = 'studentform'; |
} elsif ($mode eq 'singlestudent') { |
|
$param{'formname'} = 'cu'; |
|
} elsif ($mode eq 'createcourse') { |
} elsif ($mode eq 'createcourse') { |
$param{'formname'} = 'ccrs'; |
$param{'formname'} = 'ccrs'; |
} elsif ($mode eq 'modifycourse') { |
} elsif ($mode eq 'modifycourse') { |
Line 367 sub javascript_validations {
|
Line 362 sub javascript_validations {
|
} |
} |
} elsif ($context eq 'domain') { |
} elsif ($context eq 'domain') { |
$setsection_call = 'setCourse()'; |
$setsection_call = 'setCourse()'; |
$setsections_js = &dc_setcourse_js($param{'formname'},$mode); |
$setsections_js = &dc_setcourse_js($param{'formname'},$mode,$context); |
} |
} |
$finish = " var checkSec = $setsection_call\n". |
$finish = " var checkSec = $setsection_call\n". |
" if (checkSec == 'ok') {\n". |
" if (checkSec == 'ok') {\n". |
Line 389 sub javascript_validations {
|
Line 384 sub javascript_validations {
|
role => 'The optional role field was not specified.', |
role => 'The optional role field was not specified.', |
continue => 'Continue adding users?', |
continue => 'Continue adding users?', |
); |
); |
|
my $function_name = <<"END"; |
my $function_name =(<<END); |
|
$setsections_js |
$setsections_js |
|
|
function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail) { |
function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail) { |
Line 456 END
|
Line 450 END
|
foundatype=1; |
foundatype=1; |
if (current.argfield == null || current.argfield == '') { |
if (current.argfield == null || current.argfield == '') { |
var alertmsg = ''; |
var alertmsg = ''; |
switch (current.value) { |
switch (current.radiovalue) { |
case 'krb': |
case 'krb': |
alertmsg = '$alert{'krb'}'; |
alertmsg = '$alert{'krb'}'; |
break; |
break; |
Line 521 END
|
Line 515 END
|
} |
} |
END |
END |
} |
} |
my $result = $function_name; |
my $result = $function_name.$auth_checks.$optional_checks."\n". |
if ( ($mode eq 'upload') || ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) { |
$section_checks.$authheader; |
$result .= $auth_checks; |
|
} |
|
$result .= $optional_checks."\n".$section_checks; |
|
if ( ($mode eq 'upload') || ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) { |
|
$result .= $authheader; |
|
} |
|
return $result; |
return $result; |
} |
} |
############################################################### |
############################################################### |
Line 1341 sub print_userlist {
|
Line 1329 sub print_userlist {
|
$showroles = undef; |
$showroles = undef; |
} |
} |
my $withsec = 1; |
my $withsec = 1; |
|
my $hidepriv = 1; |
my %advrolehash = &Apache::lonnet::get_my_roles($cnum,$cdom,undef, |
my %advrolehash = &Apache::lonnet::get_my_roles($cnum,$cdom,undef, |
\@statuses,$showroles,undef,$withsec); |
\@statuses,$showroles,undef,$withsec,$hidepriv); |
&gather_userinfo($context,$format,\%userlist,$indexhash,\%userinfo, |
&gather_userinfo($context,$format,\%userlist,$indexhash,\%userinfo, |
\%advrolehash,$permission); |
\%advrolehash,$permission); |
} else { |
} else { |
Line 1393 sub print_userlist {
|
Line 1382 sub print_userlist {
|
} elsif ($env{'form.roletype'} eq 'course') { |
} elsif ($env{'form.roletype'} eq 'course') { |
if ($env{'form.coursepick'}) { |
if ($env{'form.coursepick'}) { |
my %courses = &process_coursepick(); |
my %courses = &process_coursepick(); |
my %allusers; |
my %allusers; |
|
my $hidepriv = 1; |
foreach my $cid (keys(%courses)) { |
foreach my $cid (keys(%courses)) { |
my ($cnum,$cdom,$cdesc) = &get_course_identity($cid); |
my ($cnum,$cdom,$cdesc) = &get_course_identity($cid); |
next if ($cnum eq '' || $cdom eq ''); |
next if ($cnum eq '' || $cdom eq ''); |
Line 1411 sub print_userlist {
|
Line 1401 sub print_userlist {
|
foreach my $type (@statuses) { |
foreach my $type (@statuses) { |
$access{$type} = $type; |
$access{$type} = $type; |
} |
} |
&Apache::loncommon::get_course_users($cdom,$cnum,\%access,\@roles,\@sections,\%users,\%userdata,\%statushash); |
&Apache::loncommon::get_course_users($cdom,$cnum,\%access,\@roles,\@sections,\%users,\%userdata,\%statushash,$hidepriv); |
foreach my $user (keys(%userdata)) { |
foreach my $user (keys(%userdata)) { |
next if (ref($userinfo{$user}) eq 'HASH'); |
next if (ref($userinfo{$user}) eq 'HASH'); |
foreach my $item ('fullname','id') { |
foreach my $item ('fullname','id') { |
Line 1917 END
|
Line 1907 END
|
my $alert = &mt("You must select at least one user by checking a user's 'Select' checkbox"); |
my $alert = &mt("You must select at least one user by checking a user's 'Select' checkbox"); |
my $singconfirm = &mt(' for a single user?'); |
my $singconfirm = &mt(' for a single user?'); |
my $multconfirm = &mt(' for multiple users?'); |
my $multconfirm = &mt(' for multiple users?'); |
my $date_sec_selector = &date_section_javascript($context,$setting,$statusmode); |
my $date_sec_selector = &date_section_javascript($context,$setting,$statusmode); |
|
my %lt = &Apache::lonlocal::texthash( |
|
acwi => 'Access will be set to start immediately', |
|
asyo => 'as you did not select an end date in the pop-up window', |
|
accw => 'Access will be set to continue indefinitely', |
|
asyd => 'as you did not select an end date in the pop-up window', |
|
sewi => "Sections will be switched to 'No section'", |
|
ayes => "as you either selected the 'No section' option", |
|
oryo => 'or you did not select a section in the pop-up window', |
|
arol => 'A role with no section will be added', |
|
swbs => 'Sections will be switched to:', |
|
rwba => 'Roles will be added for section(s):', |
|
); |
$r->print(<<END); |
$r->print(<<END); |
|
|
<script type="text/javascript" language="Javascript"> |
<script type="text/javascript" language="Javascript"> |
Line 1943 function verify_action (field) {
|
Line 1945 function verify_action (field) {
|
} |
} |
else { |
else { |
var message = document.studentform.bulkaction[document.studentform.bulkaction.selectedIndex].text; |
var message = document.studentform.bulkaction[document.studentform.bulkaction.selectedIndex].text; |
|
var choice = document.studentform.bulkaction[document.studentform.bulkaction.selectedIndex].value; |
if (numchecked == 1) { |
if (numchecked == 1) { |
message += singconf; |
message += singconf; |
} |
} |
else { |
else { |
message += multconf; |
message += multconf; |
} |
} |
|
if (choice == 'chgdates' || choice == 'reenable' || choice == 'activate') { |
|
var datemsg = ''; |
|
if ((document.studentform.startdate_month.value == '') && |
|
(document.studentform.startdate_day.value == '') && |
|
(document.studentform.startdate_year.value == '')) { |
|
datemsg = "\\n$lt{'acwi'},\\n$lt{'asyo'}.\\n"; |
|
} |
|
if ((document.studentform.enddate_month.value == '') && |
|
(document.studentform.enddate_day.value == '') && |
|
(document.studentform.enddate_year.value == '')) { |
|
datemsg += "\\n$lt{'accw'},\\n$lt{'asyd'}.\\n"; |
|
} |
|
if (datemsg != '') { |
|
message += "\\n"+datemsg; |
|
} |
|
} |
|
if (choice == 'chgsec') { |
|
var rolefilter = document.studentform.showrole.options[document.studentform.showrole.selectedIndex].value; |
|
var retained = document.studentform.retainsec.value; |
|
var secshow = document.studentform.newsecs.value; |
|
if (secshow == '') { |
|
if (rolefilter == 'st' || retained == 0 || retained == "") { |
|
message += "\\n\\n$lt{'sewi'},\\n$lt{'ayes'},\\n$lt{'oryo'}.\\n"; |
|
} else { |
|
message += "\\n\\n$lt{'arol'}\\n$lt{'ayes'},\\n$lt{'oryo'}.\\n"; |
|
} |
|
} else { |
|
if (rolefilter == 'st' || retained == 0 || retained == "") { |
|
message += "\\n\\n$lt{'swbs'} "+secshow+".\\n"; |
|
} else { |
|
message += "\\n\\n$lt{'rwba'} "+secshow+".\\n"; |
|
} |
|
} |
|
} |
if (confirm(message)) { |
if (confirm(message)) { |
document.studentform.phase.value = 'bulkchange'; |
document.studentform.phase.value = 'bulkchange'; |
document.studentform.submit(); |
document.studentform.submit(); |
Line 1999 END
|
Line 2036 END
|
'clicker' => "clicker id", |
'clicker' => "clicker id", |
'photo' => "photo", |
'photo' => "photo", |
'extent' => "extent", |
'extent' => "extent", |
|
'go' => "go", |
'pr' => "Proceed", |
'pr' => "Proceed", |
'ca' => "check all", |
'ca' => "check all", |
'ua' => "uncheck all", |
'ua' => "uncheck all", |
Line 2081 END
|
Line 2119 END
|
$output .= &mt("Click on a username to view the user's personal page.").'<br />'; |
$output .= &mt("Click on a username to view the user's personal page.").'<br />'; |
} |
} |
if ($actionselect) { |
if ($actionselect) { |
$output .= <<"END"; |
$output .= <<"END"; |
$lt{'ac'}: $actionselect <input type="button" value="$lt{'pr'}" onclick="javascript:verify_action(document.studentform.actionlist)" /></p> |
$lt{'ac'}: $actionselect <input type="button" value="$lt{'go'}" onclick="javascript:opendatebrowser(this.form,'studentform','go')" /></p> |
<p><input type="button" value="$lt{'ca'}" onclick="javascript:checkAll(document.studentform.actionlist)" /> |
<p><input type="button" value="$lt{'ca'}" onclick="javascript:checkAll(document.studentform.actionlist)" /> |
<input type="button" value="$lt{'ua'}" onclick="javascript:uncheckAll(document.studentform.actionlist)" /> |
<input type="button" value="$lt{'ua'}" onclick="javascript:uncheckAll(document.studentform.actionlist)" /><br /><br /><input type="button" value="$lt{'pr'}" onclick="javascript:verify_action(document.studentform.actionlist)" /> |
END |
END |
my @allroles; |
my @allroles; |
if ($env{'form.showrole'} eq 'Any') { |
if ($env{'form.showrole'} eq 'Any') { |
Line 2588 sub select_actions {
|
Line 2626 sub select_actions {
|
} |
} |
} |
} |
if ($options) { |
if ($options) { |
$output = '<select name="bulkaction" onchange="javascript:opendatebrowser(this.form,'."'studentform'".')" />'."\n". |
$output = '<select name="bulkaction" onchange="javascript:opendatebrowser(this.form,'."'studentform','change'".')" />'."\n". |
'<option value="" selected="selected">'. |
'<option value="" selected="selected">'. |
&mt('Please select').'</option>'."\n".$options."\n".'</select>'; |
&mt('Please select').'</option>'."\n".$options."\n".'</select>'; |
if ($choices{'dates'}) { |
if ($choices{'dates'}) { |
Line 2625 sub date_section_javascript {
|
Line 2663 sub date_section_javascript {
|
} else { |
} else { |
$title = &mt('Date selector'); |
$title = &mt('Date selector'); |
} |
} |
|
my %nopopup = &Apache::lonlocal::texthash ( |
|
revoke => "Check the boxes for any users for whom roles are to be revoked, and click 'Proceed'", |
|
delete => "Check the boxes for any users for whom roles are to be deleted, and click 'Proceed'", |
|
none => "Choose an action to take for selected users", |
|
); |
my $output = ' |
my $output = ' |
<script type="text/javascript"> |
<script type="text/javascript"> |
var stdeditbrowser;'."\n"; |
var stdeditbrowser;'."\n"; |
$output .= <<"ENDONE"; |
$output .= <<"ENDONE"; |
function opendatebrowser(callingform,formname) { |
function opendatebrowser(callingform,formname,calledby) { |
var bulkaction = callingform.bulkaction.options[callingform.bulkaction.selectedIndex].value; |
var bulkaction = callingform.bulkaction.options[callingform.bulkaction.selectedIndex].value; |
if (bulkaction == 'revoke' || bulkaction == 'delete' || bulkaction == '') { |
if (bulkaction == 'revoke' || bulkaction == 'delete' || bulkaction == '') { |
|
if (calledby == 'go') { |
|
if (bulkaction == 'revoke') { |
|
alert("$nopopup{'revoke'}"); |
|
} |
|
if (bulkaction == 'delete') { |
|
alert("$nopopup{'delete'}"); |
|
} |
|
if (bulkaction == '') { |
|
alert("$nopopup{'none'}"); |
|
} |
|
} |
return; |
return; |
} |
} |
var url = '/adm/createuser?'; |
var url = '/adm/createuser?'; |
Line 2675 function saveselections(formname) {
|
Line 2729 function saveselections(formname) {
|
END |
END |
if ($env{'form.bulkaction'} eq 'chgsec') { |
if ($env{'form.bulkaction'} eq 'chgsec') { |
$output .= <<"END"; |
$output .= <<"END"; |
opener.document.$callingform.retainsec.value = formname.retainsec.value; |
if (formname.retainsec.length > 1) { |
|
for (var i=0; i<formname.retainsec.length; i++) { |
|
if (formname.retainsec[i].checked == true) { |
|
opener.document.$callingform.retainsec.value = formname.retainsec[i].value; |
|
} |
|
} |
|
} else { |
|
opener.document.$callingform.retainsec.value = formname.retainsec.value; |
|
} |
setSections(formname); |
setSections(formname); |
if (seccheck == 'ok') { |
if (seccheck == 'ok') { |
opener.document.$callingform.newsecs.value = formname.sections.value; |
opener.document.$callingform.newsecs.value = formname.sections.value; |
Line 3949 sub update_user_list {
|
Line 4011 sub update_user_list {
|
if (@newsecs == 0) { |
if (@newsecs == 0) { |
$result = &mt('No change in section assignment (none)'); |
$result = &mt('No change in section assignment (none)'); |
$nochg = 1; |
$nochg = 1; |
} |
} else { |
|
$revresult = |
|
&Apache::lonnet::revokerole($udom,$uname, |
|
$scope,$role); |
|
} |
} else { |
} else { |
if (@newsecs > 0) { |
if (@newsecs > 0) { |
if (grep(/^\Q$sec\E$/,@newsecs)) { |
if (grep(/^\Q$sec\E$/,@newsecs)) { |
Line 4168 sub get_groupslist {
|
Line 4234 sub get_groupslist {
|
} |
} |
|
|
sub setsections_javascript { |
sub setsections_javascript { |
my ($formname,$groupslist,$mode) = @_; |
my ($formname,$groupslist,$mode,$checkauth) = @_; |
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.'"'; |
Line 4176 sub setsections_javascript {
|
Line 4242 sub setsections_javascript {
|
$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'; |
$checkincluded = 'formname.elements[i-1].checked == true'; |
$finish = 'formname.submit()'; |
if ($checkauth) { |
|
$finish = "var authcheck = auth_check();\n". |
|
" if (authcheck == 'ok') {\n". |
|
" formname.submit();\n". |
|
" }\n"; |
|
} else { |
|
$finish = 'formname.submit()'; |
|
} |
$rolecode = "var match = str.split('_'); |
$rolecode = "var match = str.split('_'); |
var role = match[3];\n"; |
var role = match[3];\n"; |
} elsif ($formname eq 'enrollstudent') { |
} elsif ($formname eq 'enrollstudent') { |
$checkincluded = 'formname.name == "'.$formname.'"'; |
$checkincluded = 'formname.name == "'.$formname.'"'; |
$finish = 'formname.submit()'; |
if ($checkauth) { |
|
$finish = "var authcheck = auth_check();\n". |
|
" if (authcheck == 'ok') {\n". |
|
" formname.submit();\n". |
|
" }\n"; |
|
} else { |
|
$finish = 'formname.submit()'; |
|
} |
$rolecode = "var match = str.split('_'); |
$rolecode = "var match = str.split('_'); |
var role = match[1];\n"; |
var role = match[1];\n"; |
} else { |
} else { |
Line 4518 sub get_course_identity {
|
Line 4598 sub get_course_identity {
|
} |
} |
|
|
sub dc_setcourse_js { |
sub dc_setcourse_js { |
my ($formname,$mode) = @_; |
my ($formname,$mode,$context) = @_; |
my $dc_setcourse_code; |
my ($dc_setcourse_code,$authen_check); |
my $cctext = &Apache::lonnet::plaintext('cc'); |
my $cctext = &Apache::lonnet::plaintext('cc'); |
my %alerts = §ioncheck_alerts(); |
my %alerts = §ioncheck_alerts(); |
my $role = 'role'; |
my $role = 'role'; |
if ($mode eq 'upload') { |
if ($mode eq 'upload') { |
$role = 'courserole'; |
$role = 'courserole'; |
|
} else { |
|
$authen_check = &verify_authen($formname,$context); |
} |
} |
$dc_setcourse_code = (<<"SCRIPTTOP"); |
$dc_setcourse_code = (<<"SCRIPTTOP"); |
|
$authen_check |
|
|
function setCourse() { |
function setCourse() { |
var course = document.$formname.dccourse.value; |
var course = document.$formname.dccourse.value; |
if (course != "") { |
if (course != "") { |
Line 4611 SCRIPTTOP
|
Line 4695 SCRIPTTOP
|
} |
} |
} |
} |
} |
} |
document.$formname.submit(); |
var authcheck = auth_check(); |
|
if (authcheck == 'ok') { |
|
document.$formname.submit(); |
|
} |
} |
} |
|
|
ENDSCRIPT |
ENDSCRIPT |
} else { |
} else { |
$dc_setcourse_code .= " |
$dc_setcourse_code .= " |
Line 4634 ENDSCRIPT
|
Line 4720 ENDSCRIPT
|
return -1; |
return -1; |
} |
} |
ENDSCRIPT |
ENDSCRIPT |
|
return $dc_setcourse_code; |
|
} |
|
|
|
sub verify_authen { |
|
my ($formname,$context) = @_; |
|
my %alerts = &authcheck_alerts(); |
|
my $finish = "return 'ok';"; |
|
if ($context eq 'author') { |
|
$finish = "document.$formname.submit();"; |
|
} |
|
my $outcome = <<"ENDSCRIPT"; |
|
|
|
function auth_check() { |
|
var logintype; |
|
if (document.$formname.login.length) { |
|
if (document.$formname.login.length > 0) { |
|
var loginpicked = 0; |
|
for (var i=0; i<document.$formname.login.length; i++) { |
|
if (document.$formname.login[i].checked == true) { |
|
loginpicked = 1; |
|
logintype = document.$formname.login[i].value; |
|
} |
|
} |
|
if (loginpicked == 0) { |
|
alert("$alerts{'authen'}"); |
|
return; |
|
} |
|
} |
|
} else { |
|
logintype = document.$formname.login.value; |
|
} |
|
if (logintype == 'nochange') { |
|
return 'ok'; |
|
} |
|
var argpicked = document.$formname.elements[logintype+'arg'].value; |
|
if ((argpicked == null) || (argpicked == '') || (typeof argpicked == 'undefined')) { |
|
var alertmsg = ''; |
|
switch (logintype) { |
|
case 'krb': |
|
alertmsg = '$alerts{'krb'}'; |
|
break; |
|
case 'int': |
|
alertmsg = '$alerts{'ipass'}'; |
|
case 'fsys': |
|
alertmsg = '$alerts{'ipass'}'; |
|
break; |
|
case 'loc': |
|
alertmsg = ''; |
|
break; |
|
default: |
|
alertmsg = ''; |
|
} |
|
if (alertmsg != '') { |
|
alert(alertmsg); |
|
return; |
|
} |
|
} |
|
$finish |
|
} |
|
ENDSCRIPT |
} |
} |
|
|
sub sectioncheck_alerts { |
sub sectioncheck_alerts { |
Line 4655 sub sectioncheck_alerts {
|
Line 4801 sub sectioncheck_alerts {
|
return %alerts; |
return %alerts; |
} |
} |
|
|
|
sub authcheck_alerts { |
|
my %alerts = |
|
&Apache::lonlocal::texthash( |
|
authen => 'You must choose an authentication type.', |
|
krb => 'You need to specify the Kerberos domain.', |
|
ipass => 'You need to specify the initial password.', |
|
); |
|
return %alerts; |
|
} |
|
|
1; |
1; |
|
|