--- loncom/interface/loncommon.pm 2009/09/27 15:27:26 1.892 +++ loncom/interface/loncommon.pm 2009/10/30 04:44:56 1.905 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.892 2009/09/27 15:27:26 amueller Exp $ +# $Id: loncommon.pm,v 1.905 2009/10/30 04:44:56 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -482,7 +482,7 @@ ENDAUTHORBRW } sub coursebrowser_javascript { - my ($domainfilter,$sec_element,$formname)=@_; + my ($domainfilter,$sec_element,$formname,$role_element)=@_; my $crs_or_grp_alert = &mt('Please select the type of LON-CAPA entity - Course or Community - for which you wish to add/modify a user role.'); my $id_functions = &javascript_index_functions(); my $output = ' @@ -493,6 +493,7 @@ sub coursebrowser_javascript { $output .= <<"ENDSTDBRW"; function opencrsbrowser(formname,uname,udom,desc,extra_element,multflag,crstype) { var url = '/adm/pickcourse?'; + var formid = getFormIdByName(formname); var domainfilter = getDomainFromSelectbox(formname,udom); if (domainfilter != null) { if (domainfilter != '') { @@ -547,8 +548,8 @@ sub coursebrowser_javascript { } $id_functions ENDSTDBRW - if ($sec_element ne '') { - $output .= &setsec_javascript($sec_element,$formname); + if (($sec_element ne '') || ($role_element ne '')) { + $output .= &setsec_javascript($sec_element,$formname,$role_element); } $output .= ' // ]]> @@ -660,7 +661,28 @@ ENDUSERBRW } sub setsec_javascript { - my ($sec_element,$formname) = @_; + my ($sec_element,$formname,$role_element) = @_; + my (@courserolenames,@communityrolenames,$rolestr,$courserolestr, + $communityrolestr); + if ($role_element ne '') { + my @allroles = ('st','ta','ep','in','ad'); + foreach my $crstype ('Course','Community') { + if ($crstype eq 'Community') { + foreach my $role (@allroles) { + push(@communityrolenames,&Apache::lonnet::plaintext($role,$crstype)); + } + push(@communityrolenames,&Apache::lonnet::plaintext('co')); + } else { + foreach my $role (@allroles) { + push(@courserolenames,&Apache::lonnet::plaintext($role,$crstype)); + } + push(@courserolenames,&Apache::lonnet::plaintext('cc')); + } + } + $rolestr = '"'.join('","',@allroles).'"'; + $courserolestr = '"'.join('","',@courserolenames).'"'; + $communityrolestr = '"'.join('","',@communityrolenames).'"'; + } my $setsections = qq| function setSect(sectionlist) { var sectionsArray = new Array(); @@ -694,11 +716,49 @@ function setSect(sectionlist) { } } } + +function setRole(crstype) { |; + if ($role_element eq '') { + $setsections .= ' return; +} +'; + } else { + $setsections .= qq| + var elementLength = document.$formname.$role_element.length; + var allroles = Array($rolestr); + var courserolenames = Array($courserolestr); + var communityrolenames = Array($communityrolestr); + if (elementLength != undefined) { + if (document.$formname.$role_element.options[5].value == 'cc') { + if (crstype == 'Course') { + return; + } else { + allroles[5] = 'co'; + for (var i=0; i<6; i++) { + document.$formname.$role_element.options[i].value = allroles[i]; + document.$formname.$role_element.options[i].text = communityrolenames[i]; + } + } + } else { + if (crstype == 'Community') { + return; + } else { + allroles[5] = 'cc'; + for (var i=0; i<6; i++) { + document.$formname.$role_element.options[i].value = allroles[i]; + document.$formname.$role_element.options[i].text = courserolenames[i]; + } + } + } + } + return; +} +|; + } return $setsections; } - sub selectcourse_link { my ($form,$unameele,$udomele,$desc,$extra_element,$multflag,$selecttype)=@_; my $linktext = &mt('Select Course'); @@ -2954,7 +3014,7 @@ sub messagewrapper { sub noteswrapper { my ($link,$un,$do)=@_; return -"$link"; +"$link"; } # ------------------------------------------------------------- Aboutme Wrapper @@ -4046,7 +4106,7 @@ sub determinedomain { my $domain=shift; if (! $domain) { # Determine domain if we have not been given one - $domain = $Apache::lonnet::perlvar{'lonDefDomain'}; + $domain = &Apache::lonnet::default_login_domain(); if ($env{'user.domain'}) { $domain=$env{'user.domain'}; } if ($env{'request.role.domain'}) { $domain=$env{'request.role.domain'}; @@ -4396,6 +4456,9 @@ sub bodytag { if ($env{'request.role'} !~ /^cr/) { $role = &Apache::lonnet::plaintext($role,&course_type()); } + if ($env{'request.course.sec'}) { + $role .= (' 'x2).'- '.&mt('section:').' '.$env{'request.course.sec'}; + } $realm = $env{'course.'.$env{'request.course.id'}.'.description'}; } else { $role = &Apache::lonnet::plaintext($role); @@ -4435,35 +4498,49 @@ sub bodytag { $dc_info = '('.$dc_info.')'; } - $role = "($role)" if $role; + $role = '('.$role.')' if $role; &get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['inhibitmenu']); if ($env{'environment.remote'} eq 'off') { # No Remote - if ($env{'request.state'} eq 'construct') { - $forcereg=1; - } + if ($no_nav_bar) { return $bodytag; } -# if ($env{'request.state'} eq 'construct') { -# $titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls -# } - - my $titletable = '
$titleinfo $dc_info | " - .'