version 1.79.2.4, 2016/11/10 21:57:10
|
version 1.79.2.6, 2017/04/08 19:05:44
|
Line 189 sub print_course_search_page {
|
Line 189 sub print_course_search_page {
|
$settingsoption = &mt('View or modify course settings which only a [_1] may modify.',$dctitle); |
$settingsoption = &mt('View or modify course settings which only a [_1] may modify.',$dctitle); |
} |
} |
} elsif (&Apache::lonnet::allowed('rar',$dom)) { |
} elsif (&Apache::lonnet::allowed('rar',$dom)) { |
my %adhocroles = &Apache::lonnet::userenvironment($env{'user.domain'},$env{'user.name'}, |
my ($roles_by_num,$description,$accessref,$accessinfo) = &Apache::lonnet::get_all_adhocroles($dom); |
'adhocroles.'.$dom); |
if ((ref($roles_by_num) eq 'ARRAY') && (ref($description) eq 'HASH')) { |
if (keys(%adhocroles)) { |
if (@{$roles_by_num} > 1) { |
my @adhoc = split(',',$adhocroles{'adhocroles.'.$dom}); |
|
if (@adhoc > 1) { |
|
if ($type eq 'Community') { |
if ($type eq 'Community') { |
$roleoption = &mt('Enter the community with one of the available ad hoc roles: [_1].', |
$roleoption = &mt('Enter the community with one of the available ad hoc roles'); |
join(', ',@adhoc)); |
|
} else { |
} else { |
$roleoption = &mt('Enter the course with one of the available ad hoc roles: [_1].', |
$roleoption = &mt('Enter the course with one of the available ad hoc roles.'); |
join(', ',@adhoc)); |
|
} |
} |
} else { |
} else { |
|
my $rolename = $description->{$roles_by_num->[0]}; |
if ($type eq 'Community') { |
if ($type eq 'Community') { |
$roleoption = &mt('Enter the community with the ad hoc role of: [_1]',$adhoc[0]); |
$roleoption = &mt('Enter the community with the ad hoc role of: [_1]',$rolename); |
} else { |
} else { |
$roleoption = &mt('Enter the course with the ad hoc role of: [_1]',$adhoc[0]); |
$roleoption = &mt('Enter the course with the ad hoc role of: [_1]',$rolename); |
} |
} |
} |
} |
} |
} |
Line 224 sub print_course_search_page {
|
Line 221 sub print_course_search_page {
|
} |
} |
|
|
sub print_course_selection_page { |
sub print_course_selection_page { |
my ($r,$dom,$domdesc) = @_; |
my ($r,$dom,$domdesc,$permission) = @_; |
my $type = $env{'form.type'}; |
my $type = $env{'form.type'}; |
if (!defined($type)) { |
if (!defined($type)) { |
$type = 'Course'; |
$type = 'Course'; |
} |
} |
&print_header($r,$type); |
&print_header($r,$type); |
|
|
# Criteria for course search |
if ($permission->{'adhocrole'} eq 'custom') { |
|
my %lt = &Apache::lonlocal::texthash( |
|
title => 'Ad hoc role selection', |
|
preamble => 'Please choose an ad hoc role in the course.', |
|
cancel => 'Click "OK" to enter the course, or "Cancel" to choose a different course.', |
|
); |
|
my %jslt = &Apache::lonlocal::texthash ( |
|
none => 'You are not eligible to use an ad hoc role for the selected course', |
|
ok => 'OK', |
|
exit => 'Cancel', |
|
); |
|
&js_escape(\%jslt); |
|
$r->print(<<"END"); |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
\$(document).ready(function(){ |
|
\$( "#LC_adhocrole_chooser" ).dialog({ autoOpen: false }); |
|
}); |
|
|
|
function gochoose(cname,cdom,cdesc) { |
|
document.courselist.pickedcourse.value = cdom+'_'+cname; |
|
\$("#LC_choose_adhoc").empty(); |
|
var pickedaction = \$('input[name=phase]:checked', '#LCcoursepicker').val(); |
|
if (pickedaction == 'adhocrole') { |
|
var http = new XMLHttpRequest(); |
|
var url = "/adm/pickcourse"; |
|
var params = "cid="+cdom+"_"+cname+"&context=adhoc"; |
|
http.open("POST", url, true); |
|
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); |
|
http.onreadystatechange = function() { |
|
if (http.readyState == 4 && http.status == 200) { |
|
var data = \$.parseJSON(http.responseText); |
|
var len = data.roles.length; |
|
if (len == '' || len == null || len == 0) { |
|
alert('$jslt{none}'); |
|
} else { |
|
if (len == 1) { |
|
\$( '[name="adhocrole"]' )[0].value = data.roles[0].name; |
|
document.courselist.submit(); |
|
} else { |
|
var str = ''; |
|
\$("#LC_choose_adhoc").empty(); |
|
for (var i=0; i<data.roles.length; i++) { |
|
\$("<label><input type='radio' value='"+data.roles[i].name+"' name='LC_get_role' id='LC_get_role_"+i+"' />"+data.roles[i].desc+"</label><span> </span>") |
|
.appendTo("#LC_choose_adhoc"); |
|
} |
|
\$( "#LC_adhocrole_chooser" ).toggle( true ); |
|
\$( "#LC_get_role_0").prop("checked", true); |
|
\$( "#LC_adhocrole_chooser" ).dialog({ autoOpen: false }); |
|
\$( "#LC_adhocrole_chooser" ).dialog("open"); |
|
\$( "#LC_adhocrole_chooser" ).dialog({ |
|
height: 400, |
|
width: 500, |
|
modal: true, |
|
resizable: false, |
|
buttons: [ |
|
{ |
|
text: "$jslt{'ok'}", |
|
click: function() { |
|
var rolename = \$('input[name=LC_get_role]:checked', '#LChelpdeskpicker').val(); |
|
\$( '[name="adhocrole"]' )[0].value = rolename; |
|
document.courselist.submit(); |
|
} |
|
}, |
|
{ |
|
text: "$jslt{'exit'}", |
|
click: function() { |
|
\$("#LC_adhocrole_chooser").dialog( "close" ); |
|
} |
|
} |
|
], |
|
}); |
|
\$( "#LC_adhocrole_chooser" ).find( "form" ).on( "submit", function( event ) { |
|
event.preventDefault(); |
|
var rolename = \$('input[name=LC_get_role]:checked', '#LChelpdeskpicker').val() |
|
\$( '[name="adhocrole"]' )[0].value = rolename; |
|
document.courselist.submit(); |
|
\$("#LC_adhocrole_chooser").dialog( "close" ); |
|
}); |
|
} |
|
} |
|
} |
|
} |
|
http.send(params); |
|
} else { |
|
document.courselist.submit(); |
|
} |
|
return; |
|
} |
|
// ]]> |
|
</script> |
|
|
|
<div id="LC_adhocrole_chooser" title="$lt{'title'}" style="display:none"> |
|
<p>$lt{'preamble'}</p> |
|
<form name="LChelpdeskadhoc" id="LChelpdeskpicker" action=""> |
|
<div id="LC_choose_adhoc"> |
|
</div> |
|
<input type="hidden" name="adhocrole" id="LCadhocrole" value="" /> |
|
<input type="submit" tabindex="-1" style="position:absolute; top:-1000px" /> |
|
</form> |
|
<p>$lt{'cancel'}</p> |
|
</div> |
|
END |
|
} elsif ($permission->{'adhocrole'} eq 'coord') { |
|
$r->print(<<"END"); |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
|
|
function gochoose(cname,cdom,cdesc) { |
|
document.courselist.pickedcourse.value = cdom+'_'+cname; |
|
document.courselist.submit(); |
|
return; |
|
} |
|
|
|
// ]]> |
|
</script> |
|
END |
|
} |
|
|
|
# Criteria for course search |
my ($filterlist,$filter) = &get_filters(); |
my ($filterlist,$filter) = &get_filters(); |
my $action = '/adm/modifycourse'; |
my $action = '/adm/modifycourse'; |
my $dctitle = &Apache::lonnet::plaintext('dc'); |
my $dctitle = &Apache::lonnet::plaintext('dc'); |
Line 476 sub print_modification_menu {
|
Line 592 sub print_modification_menu {
|
} |
} |
|
|
sub print_adhocrole_selected { |
sub print_adhocrole_selected { |
my ($r,$type) = @_; |
my ($r,$type,$permission) = @_; |
&print_header($r,$type); |
&print_header($r,$type); |
my ($cdom,$cnum) = split(/_/,$env{'form.pickedcourse'}); |
my ($cdom,$cnum) = split(/_/,$env{'form.pickedcourse'}); |
my ($newrole,$selectrole); |
my ($newrole,$selectrole); |
if (&Apache::lonnet::allowed('ccc',$cdom)) { |
if ($permission->{'adhocrole'} eq 'coord') { |
if ($type eq 'Community') { |
if ($type eq 'Community') { |
$newrole = "co./$cdom/$cnum"; |
$newrole = "co./$cdom/$cnum"; |
} else { |
} else { |
$newrole = "cc./$cdom/$cnum"; |
$newrole = "cc./$cdom/$cnum"; |
} |
} |
$selectrole = 1; |
$selectrole = 1; |
} elsif (&Apache::lonnet::allowed('rar',$cdom)) { |
} elsif ($permission->{'adhocrole'} eq 'custom') { |
my %adhocroles = &Apache::lonnet::userenvironment($env{'user.domain'},$env{'user.name'}, |
my ($okroles,$description) = &Apache::lonnet::get_my_adhocroles($env{'form.pickedcourse'},1); |
'adhocroles.'.$cdom); |
if (ref($okroles) eq 'ARRAY') { |
if (keys(%adhocroles)) { |
|
my $possrole = $env{'form.adhocrole'}; |
my $possrole = $env{'form.adhocrole'}; |
if ($possrole ne '') { |
if (($possrole ne '') && (grep(/^\Q$possrole\E$/,@{$okroles}))) { |
my @adhoc = split(',',$adhocroles{'adhocroles.'.$cdom}); |
my $confname = &Apache::lonnet::get_domainconfiguser($cdom); |
if (grep(/^\Q$possrole\E$/,@adhoc)) { |
$newrole = "cr/$cdom/$confname/$possrole./$cdom/$cnum"; |
my $confname = &Apache::lonnet::get_domainconfiguser($cdom); |
$selectrole = 1; |
$newrole = "cr/$cdom/$confname/$possrole./$cdom/$cnum"; |
|
$selectrole = 1; |
|
} |
|
} |
} |
} |
} |
} |
} |
Line 2044 function changePage(formname,newphase) {
|
Line 2156 function changePage(formname,newphase) {
|
if ($phase eq 'setparms') { |
if ($phase eq 'setparms') { |
$js .= $javascript_validations; |
$js .= $javascript_validations; |
} elsif ($phase eq 'courselist') { |
} elsif ($phase eq 'courselist') { |
$js .= qq| |
$js .= <<"ENDJS"; |
|
|
function gochoose(cname,cdom,cdesc) { |
|
document.courselist.pickedcourse.value = cdom+'_'+cname; |
|
document.courselist.submit(); |
|
} |
|
|
|
function hide_searching() { |
function hide_searching() { |
if (document.getElementById('searching')) { |
if (document.getElementById('searching')) { |
document.getElementById('searching').style.display = 'none'; |
document.getElementById('searching').style.display = 'none'; |
Line 2058 function hide_searching() {
|
Line 2164 function hide_searching() {
|
return; |
return; |
} |
} |
|
|
|; |
ENDJS |
} elsif ($phase eq 'setquota') { |
} elsif ($phase eq 'setquota') { |
my $invalid = &mt('The quota you entered contained invalid characters.'); |
my $invalid = &mt('The quota you entered contained invalid characters.'); |
my $alert = &mt('You must enter a number'); |
my $alert = &mt('You must enter a number'); |
Line 2322 sub get_permission {
|
Line 2428 sub get_permission {
|
catsettings => 'edit', |
catsettings => 'edit', |
processcat => 'edit', |
processcat => 'edit', |
selfenroll => 'edit', |
selfenroll => 'edit', |
|
adhocrole => 'coord', |
); |
); |
} elsif (&Apache::lonnet::allowed('rar',$dom)) { |
} elsif (&Apache::lonnet::allowed('rar',$dom)) { |
$allowed = 1; |
$allowed = 1; |
Line 2333 sub get_permission {
|
Line 2440 sub get_permission {
|
setparms => 'view', |
setparms => 'view', |
catsettings => 'view', |
catsettings => 'view', |
selfenroll => 'view', |
selfenroll => 'view', |
|
adhocrole => 'custom', |
); |
); |
} |
} |
return ($allowed,\%permission); |
return ($allowed,\%permission); |
Line 2385 sub handler {
|
Line 2493 sub handler {
|
{href=>"javascript:changePage(document.$phase,'courselist')", |
{href=>"javascript:changePage(document.$phase,'courselist')", |
text=>$choose_text}); |
text=>$choose_text}); |
if ($phase eq 'courselist') { |
if ($phase eq 'courselist') { |
&print_course_selection_page($r,$dom,$domdesc); |
&print_course_selection_page($r,$dom,$domdesc,$permission); |
} else { |
} else { |
my ($checked,$cdesc,$coursehash) = &check_course($dom,$domdesc); |
my ($checked,$cdesc,$coursehash) = &check_course($dom,$domdesc); |
if ($checked eq 'ok') { |
if ($checked eq 'ok') { |
Line 2406 sub handler {
|
Line 2514 sub handler {
|
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"javascript:changePage(document.$phase,'adhocrole')", |
({href=>"javascript:changePage(document.$phase,'adhocrole')", |
text=>$enter_text}); |
text=>$enter_text}); |
&print_adhocrole_selected($r,$type); |
&print_adhocrole_selected($r,$type,$permission); |
} else { |
} else { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"javascript:changePage(document.$phase,'menu')", |
({href=>"javascript:changePage(document.$phase,'menu')", |