--- loncom/interface/loncreateuser.pm 2006/05/30 12:46:09 1.118 +++ loncom/interface/loncreateuser.pm 2006/05/30 20:12:15 1.119 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.118 2006/05/30 12:46:09 www Exp $ +# $Id: loncreateuser.pm,v 1.119 2006/05/30 20:12:15 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -195,81 +195,6 @@ sub user_modification_js { $nondc_setsection_code - function setSections() { - var re1 = /^currsec_/; - var groups = new Array($groupslist); - for (var i=0;i 0) { - if (document.cu.elements[i+1].value != "" && document.cu.elements[i+1].value != null) { - sections = sections + "," + document.cu.elements[i+1].value; - } - } - else { - sections = document.cu.elements[i+1].value; - } - var newseclist = document.cu.elements[i+1].value; - var newsecs = new Array(); - if (newseclist != null && newseclist != "") { - newsecs = newseclist.split(/,/g); - numsec = numsec + newsecs.length; - } - if ((role == 'st') && (numsec > 1)) { - alert("In each course, each user may only have one student role at a time. You had selected "+numsec+" sections.\\nPlease modify your selections so they include no more than one section.") - return; - } - else { - for (var j=0; j END } @@ -304,7 +229,8 @@ sub print_user_modification_page { $ccdomain=~s/\W//g; my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition(); my $dc_setcourse_code = ''; - my $nondc_setsection_code = ''; + my $nondc_setsection_code = ''; + my %loaditem; my $groupslist; @@ -316,7 +242,18 @@ sub print_user_modification_page { if ($env{'request.role'} =~ m-^dc\./(\w+)/$-) { my $dcdom = $1; - $loaditem{'onload'} = "document.cu.coursedesc.value=''"; + $loaditem{'onload'} = "document.cu.coursedesc.value='';"; + my @rolevals = ('st','ta','ep','in','cc'); + my (@crsroles,@grproles); + for (my $i=0; $i<@rolevals; $i++) { + $crsroles[$i]=&Apache::lonnet::plaintext($rolevals[$i]); + $grproles[$i]=&Apache::loncommon::convert_role($crsroles[$i],'Group'); + } + my $rolevalslist = join('","',@rolevals); + my $crsrolenameslist = join('","',@crsroles); + my $grprolenameslist = join('","',@grproles); + my $pickcrsfirst = '<--'.&mt('Pick course first'); + my $pickgrpfirst = '<--'.&mt('Pick group first'); $dc_setcourse_code = <<"ENDSCRIPT"; function setCourse() { var course = document.cu.dccourse.value; @@ -384,10 +321,10 @@ sub print_user_modification_page { else { var coursename = "_$dcdom"+"_"+course+"_"+userrole document.cu.elements[numcourse].name = "act"+coursename - document.cu.elements[numcourse+4].name = "sec"+coursename - document.cu.elements[numcourse+4].value = section - document.cu.elements[numcourse+5].name = "start"+coursename - document.cu.elements[numcourse+6].name = "end"+coursename + document.cu.elements[numcourse+5].name = "sec"+coursename + document.cu.elements[numcourse+5].value = section + document.cu.elements[numcourse+7].name = "start"+coursename + document.cu.elements[numcourse+8].name = "end"+coursename } } document.cu.submit(); @@ -401,6 +338,36 @@ sub print_user_modification_page { } return -1; } + + function setType() { + var crstype = document.cu.crstype.options[document.cu.crstype.selectedIndex].value; + rolevals = new Array("$rolevalslist"); + if (crstype == 'Group') { + if (document.cu.currsec.options[0].text == "$pickcrsfirst") { + document.cu.currsec.options[0].text = "$pickgrpfirst"; + } + grprolenames = new Array("$grprolenameslist"); + for (var i=0; i'.&mt('Domain').': '.$coursedom.(' 'x8). &Apache::loncommon::syllabuswrapper('Syllabus',$coursedir,$coursedom); $sortkey.="\0".$coursedata{'description'}; + $class=$coursedata{'type'}; } else { $carea=&mt('Unavailable course').': '.$area; $sortkey.="\0".&mt('Unavailable course').': '.$area; @@ -738,6 +706,9 @@ END my $plaintext=''; unless ($croletitle) { $plaintext=&Apache::lonnet::plaintext($role_code); + if ($class eq 'Group') { + $plaintext = &Apache::loncommon::convert_role($plaintext,$class); + } } else { $plaintext= "Customrole '$croletitle' defined by $croleuname\@$croleudom"; @@ -757,7 +728,7 @@ END } # end of foreach (table building loop) my $rolesdisplay = 0; my %output = (); - foreach my $type ('Construction Space','Course','Domain','System','Unknown') { + foreach my $type ('Construction Space','Course','Group','Domain','System','Unknown') { $output{$type} = ''; foreach my $which (sort {uc($a) cmp uc($b)} (keys(%sortrole))) { if ( ($roleclass{$sortrole{$which}} =~ /^\Q$type\E/ ) && ($rolepriv{$sortrole{$which}}) ) { @@ -779,7 +750,7 @@ END $lt{'rev'}$lt{'ren'}$lt{'del'}$lt{'rol'}$lt{'e xt'}$lt{'sta'}$lt{'end'} END - foreach my $type ('Construction Space','Course','Domain','System','Unknown') { + foreach my $type ('Construction Space','Course','Group','Domain','System','Unknown') { if ($output{$type}) { $r->print($output{$type}."\n"); } @@ -977,11 +948,11 @@ ENDDROW $r->print($domaintext); } # -# Course level +# Course and group levels # if ($env{'request.role'} =~ m-^dc\./(\w+)/$-) { - $r->print(&course_level_dc($1)); + $r->print(&course_level_dc($1,'Course')); $r->print('
'."\n"); } else { $r->print(&course_level_table(%inccourses)); @@ -1616,7 +1587,7 @@ sub custom_role_editor { } my %lt=&Apache::lonlocal::texthash( 'prv' => "Privilege", - 'crl' => "Course Level", + 'crl' => "Course/Group Level", 'dml' => "Domain Level", 'ssl' => "System Level" ); @@ -1628,16 +1599,22 @@ sub custom_role_editor { $lt{'prv'}$lt{'crl'}$lt{'dml'} $lt{'ssl'} ENDCCF - foreach (sort keys %full) { - $r->print(''.&Apache::lonnet::plaintext($_).''. - ($courselevel{$_}?'':' '). + foreach my $priv (sort keys %full) { + my $privtext = &Apache::lonnet::plaintext($priv); + if ($env{'course.'.$env{'request.course.id'}.'.type'}) { + $privtext =~ s/Student/Member/; + $privtext =~ s/student/member/; + $privtext =~ s/course/group/; + } + $r->print(''.$privtext.''. + ($courselevel{$priv}?'':' '). ''. - ($domainlevel{$_}?'':' '). + ($domainlevel{$priv}?'':' '). ''. - ($systemlevel{$_}?'':' '). + ($systemlevel{$priv}?'':' '). ''); } $r->print( @@ -1765,7 +1742,7 @@ sub course_level_table { 'new' => "Define new section", 'ssd' => "Set Start Date", 'sed' => "Set End Date", - 'crl' => "Course Level", + 'crl' => "Course/Group Level", 'act' => "Activate", 'rol' => "Role", 'ext' => "Extent", @@ -1780,6 +1757,7 @@ sub course_level_table { $thiscourse=~s:_:/:g; my %coursedata=&Apache::lonnet::coursedescription($thiscourse); my $area=$coursedata{'description'}; + my $type=$coursedata{'type'}; if (!defined($area)) { $area=&mt('Unavailable course').': '.$_; } my $bgcol=$thiscourse; $bgcol=~s/[^7-9a-e]//g; @@ -1792,9 +1770,12 @@ sub course_level_table { &Apache::loncommon::get_sections($domain,$cnum); } } - foreach ('st','ta','ep','ad','in','cc') { + foreach ('st','ta','ep','in','cc') { if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) { my $plrole=&Apache::lonnet::plaintext($_); + if ($type eq 'Group') { + $plrole = &Apache::loncommon::convert_role($plrole,$type); + } $table .= < @@ -1911,12 +1892,10 @@ sub course_level_dc { ''. ''; my $courseform=''.&Apache::loncommon::selectcourse_link - ('cu','dccourse','dcdomain','coursedesc').''; - - my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($dcdom,$dcdom); + ('cu','dccourse','dcdomain','coursedesc',undef,undef,'Course/Group').''; + my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($dcdom); my %lt=&Apache::lonlocal::texthash( - 'crl' => "Course Level", - 'crt' => "Course Title", + 'typ' => "Type", 'rol' => "Role", 'grs' => "Section", 'exs' => "Existing sections", @@ -1926,11 +1905,16 @@ sub course_level_dc { 'ssd' => "Set Start Date", 'sed' => "Set End Date" ); - my $header = '

'.$lt{'crl'}.'

'. - ''; - my $otheritems = ''. + my $header = '

'.&mt('Course/Group Level').'

'. + '
'.$courseform.''.$lt{'rol'}.''.$lt{'grs'}.''.$lt{'sta'}.''.$lt{'end'}.'
'; + my $otheritems = ''."\n". '
'.$lt{'typ'}.''.$courseform.''.$lt{'rol'}.''.$lt{'grs'}.''.$lt{'sta'}.''.$lt{'end'}.'
'."\n". + '