--- loncom/interface/loncreateuser.pm 2006/03/21 18:51:28 1.111
+++ loncom/interface/loncreateuser.pm 2006/11/22 21:55:53 1.136
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.111 2006/03/21 18:51:28 albertel Exp $
+# $Id: loncreateuser.pm,v 1.136 2006/11/22 21:55:53 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -64,6 +64,9 @@ use Apache::Constants qw(:common :http);
use Apache::lonnet;
use Apache::loncommon;
use Apache::lonlocal;
+use Apache::longroup;
+use lib '/home/httpd/lib/perl/';
+use LONCAPA;
my $loginscript; # piece of javascript used in two separate instances
my $generalrule;
@@ -96,8 +99,8 @@ sub initialize_authen_forms {
sub my_custom_roles {
my %returnhash=();
my %rolehash=&Apache::lonnet::dump('roles');
- foreach (keys %rolehash) {
- if ($_=~/^rolesdef\_(\w+)$/) {
+ foreach my $key (keys %rolehash) {
+ if ($key=~/^rolesdef\_(\w+)$/) {
$returnhash{$1}=$1;
}
}
@@ -113,6 +116,20 @@ sub authorpriv {
return 1;
}
+# ====================================================
+
+sub portfolio_quota {
+ my ($ccuname,$ccdomain) = @_;
+ my %lt = &Apache::lonlocal::texthash(
+ 'disk' => "Disk space allocated to user's portfolio files",
+ );
+ my $output = '
'.$lt{'disk'}.'
'.
+ ' Mb';
+ return $output;
+}
+
# =================================================================== Phase one
sub print_username_entry_form {
@@ -139,7 +156,7 @@ sub print_username_entry_form {
'nr' => "Name of Role",
'cre' => "Custom Role Editor"
);
- my $help = &Apache::loncommon::help_open_menu('',undef,undef,'',282,'Instructor Interface');
+ my $help = &Apache::loncommon::help_open_menu(undef,undef,282,'Instructor Interface');
my $helpsiur=&Apache::loncommon::help_open_topic('Course_Change_Privileges');
my $helpecpr=&Apache::loncommon::help_open_topic('Course_Editing_Custom_Roles');
$r->print(<<"ENDDOCUMENT");
@@ -170,7 +187,8 @@ ENDCUSTOM
sub user_modification_js {
- my ($pjump_def, $dc_setcourse_code)=@_;
+ my ($pjump_def,$dc_setcourse_code,$nondc_setsection_code,$groupslist)=@_;
+
return <
@@ -189,66 +207,8 @@ sub user_modification_js {
pclose();
}
- function setSections() {
- var re1 = /^currsec_/;
- 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 newsecs = document.cu.elements[i+1].value;
- if (newsecs != null && newsecs != "") {
- var numsplit = newsecs.split(/,/g);
- numsec = numsec + numsplit.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 {
- document.cu.elements[i+2].value = sections;
- }
- }
- }
- }
- }
- document.cu.submit();
- }
+ $nondc_setsection_code
+
END
}
@@ -283,10 +243,31 @@ sub print_user_modification_page {
$ccdomain=~s/\W//g;
my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
my $dc_setcourse_code = '';
- my $loaditem;
+ my $nondc_setsection_code = '';
+
+ my %loaditem;
+
+ my $groupslist;
+ my %curr_groups = &Apache::longroup::coursegroups();
+ if (%curr_groups) {
+ $groupslist = join('","',sort(keys(%curr_groups)));
+ $groupslist = '"'.$groupslist.'"';
+ }
+
if ($env{'request.role'} =~ m-^dc\./(\w+)/$-) {
my $dcdom = $1;
- $loaditem = qq|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],'Course');
+ $grproles[$i]=&Apache::lonnet::plaintext($rolevals[$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;
@@ -298,6 +279,7 @@ sub print_user_modification_page {
var userrole = document.cu.role.options[document.cu.role.selectedIndex].value
var section="";
var numsections = 0;
+ var newsecs = new Array();
for (var i=0; i 1)) {
alert("In each course, each user may only have one student role at a time. You had selected "+numsections+" sections.\\nPlease modify your selections so they include no more than one section.")
return;
}
+ for (var j=0; j 0)) {
alert("Section designations do not apply to Course Coordinator roles.\\nA course coordinator role will be added with access to all sections.");
section = "";
}
+ var coursename = "_$dcdom"+"_"+course+"_"+userrole
var numcourse = getIndex(document.cu.dccourse);
if (numcourse == "-1") {
alert("There was a problem with your course selection");
return
}
- 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
+ else {
+ document.cu.elements[numcourse].name = "act"+coursename;
+ var numnewsec = getIndex(document.cu.newsec);
+ if (numnewsec != "-1") {
+ document.cu.elements[numnewsec].name = "sec"+coursename;
+ document.cu.elements[numnewsec].value = section;
+ }
+ var numstart = getIndex(document.cu.start);
+ if (numstart != "-1") {
+ document.cu.elements[numstart].name = "start"+coursename;
+ }
+ var numend = getIndex(document.cu.end);
+ if (numend != "-1") {
+ document.cu.elements[numend].name = "end"+coursename
+ }
}
}
document.cu.submit();
@@ -355,13 +361,121 @@ sub print_user_modification_page {
}
return -1;
}
-ENDSCRIPT
+
+ 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 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 newsecs = document.cu.elements[i+1].value;
+ var numsplit;
+ if (newsecs != null && newsecs != "") {
+ numsplit = newsecs.split(/,/g);
+ numsec = numsec + numsplit.length;
+ }
- my $js = &user_modification_js($pjump_def, $dc_setcourse_code);
+ 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 if (numsplit != null) {
+ for (var j=0; j $loaditem,});
+ $js,{'add_entries' => \%loaditem,});
my $forminfo =<<"ENDFORMINFO";