--- loncom/html/adm/helper/newslot.helper 2005/10/17 21:19:30 1.5
+++ loncom/html/adm/helper/newslot.helper 2005/11/18 16:54:01 1.11
@@ -7,6 +7,8 @@
if (exists($env{'form.name'}) ||
$env{'form.name'} =~ /\S/) {
$helper->{'VARS'}{'name'}=$env{'form.name'};
+ $helper->{VARS}{'origname'}=$env{'form.name'};
+ $helper->{DATA}{copy} = 1;
}
}
$helper->{DATA}{origslot} = sub {
@@ -17,7 +19,7 @@
}
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
- my $name=$helper->{'VARS'}{'name'};
+ my $name=$helper->{VARS}{'origname'};
my %slot=&Apache::lonnet::get('slots', [$name], $cdom, $cnum);
if (!ref($slot{$name})) { return $default; }
if (!exists($slot{$name}{$which})) { return $default; }
@@ -25,22 +27,27 @@
}
-
- Name:
-
+ Name:
if ($val=~/^\s*$/) { return 'Must specify a name'; }
- if ($val=~/\s$/) { return 'Must not contain spaces'; }
+ if ($val=~/\s/) { return 'Must not contain spaces'; }
+ if ($val=~/\W/) { return 'Must contain only letters, numbers and _'; }
return undef;
return $helper->{'VARS'}{'name'};
+
+ $helper->{DATA}{copy}
+
+ Changing the Name will create a new slot with the new name, and not rename the existing slot.
+
+
-
Start time:
+
Start time:
@@ -48,7 +55,7 @@
-
End time:
+
End time:
@@ -56,7 +63,7 @@
-
Type:
+
Type:
Instructor asssignable.
@@ -69,43 +76,67 @@
-
- Description:
-
+ Description:
return &{$helper->{DATA}{origslot}}('description');
+
+ $helper->{'VARS'}{'type'} eq 'schedulable_student'
+
+
Time students can start reserving:
+
+
+
+ return &{$helper->{DATA}{origslot}}('startreserve','anytime');
+
+
+
+
Maxium number of students allowed in this slot:
+
+
+
+ if ($val ne '' && $val=~/\D/) { return 'Must be numeric.'; }
+ return undef;
+
+
+ return &{$helper->{DATA}{origslot}}('maxspace');
+
+
+
+
Period of time in which this slot is can only be uniquely chosen:
Start:
+
+
+
+ my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime');
+ if ($default eq 'anytime') { return 'anytime' };
+ if (ref($default)) { return $default->[0]; }
+ return 'anytime';
+
+
+
End:
+
+
+ my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime');
+ if ($default eq 'anytime') { return 'anytime' };
+ if (ref($default)) { return $default->[1]; }
+ return 'anytime';
+
+
+
+
+ $helper->{'VARS'}{'type'} eq 'preassigned'
+
+ delete($helper->{'VARS'}{'startreserve'});
+ delete($helper->{'VARS'}{'maxspace'});
+ delete($helper->{'VARS'}{'startunique'});
+ delete($helper->{'VARS'}{'endunique'});
+
+
-
-
Time students can start reserving:
-
-
-
-
- return &{$helper->{DATA}{origslot}}('startreserve','anytime');
-
-
-
-
-
Maxium number of students allowed in this slot:
-
-
-
-
- if ($val ne '' && $val=~/\D/) { return 'Must be numeric.'; }
- return undef;
-
-
- return &{$helper->{DATA}{origslot}}('maxspace');
-
-
-
-
-
Secret word proctors use to checkin users:
-
+
Secret word proctors use to checkin users:
@@ -116,31 +147,7 @@
-
-
Period of time in which this slot is can only be uniquely chosen:
Start:
-
-
-
-
- my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime');
- if ($default eq 'anytime') { return 'anytime' };
- if (ref($default)) { return $default->[0]; }
- return 'anytime';
-
-
-
End:
-
-
- my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime');
- if ($default eq 'anytime') { return 'anytime' };
- if (ref($default)) { return $default->[1]; }
- return 'anytime';
-
-
-
-
-
Slot is:
-
+
Slot is:
usable for any resource.
@@ -152,9 +159,9 @@
-
+
IP restrictions:
-
+
@@ -164,7 +171,7 @@
return &{$helper->{DATA}{origslot}}('ip');
-
+
@@ -191,7 +198,7 @@
- Created Slot
+ Created Slot
my $result;
@@ -217,7 +224,9 @@
my ($uname,$udomain)=split(/:/,$user);
push(@names,"$uname\@$udomain");
}
- $slot{'proctor'}=join(',',@names);
+ # make sure the usenrmaes are unique
+ my %proctors = map { ($_,1) } @names;
+ $slot{'proctor'}=join(',',sort(keys(%proctors)));
}
my $cname = $env{'course.'.$env{'request.course.id'}.'.num'};
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
@@ -231,13 +240,18 @@
"\n".' Type: '.$slot{'type'}.'';
my %labels =
map {($_->[0],$_->[1])} &Apache::slotrequest::csvupload_fields();
- foreach my $which ('ip','proctor','description','maxspace',
- 'secret','symb') {
+ foreach my $which ('ip','description','maxspace','secret','symb') {
if (exists($slot{$which})) {
$result.="\n".' '.$labels{$which}.': '.
&HTML::Entities::encode($slot{$which}).'';
}
}
+ if (exists($slot{'proctor'})) {
+ my $proctors = $slot{'proctor'};
+ $proctors =~ s/,/, /g;
+ $result.="\n".' '.$labels{'proctor'}.': '.
+ &HTML::Entities::encode($proctors).'';
+ }
if (exists($slot{'uniqueperiod'})) {
$result.=
"\n".' '.$labels{'uniqueperiod'}.': '.