--- loncom/html/adm/helper/newslot.helper 2006/02/03 22:40:46 1.12 +++ loncom/html/adm/helper/newslot.helper 2006/03/07 16:29:14 1.14 @@ -1,5 +1,8 @@ + + OPTIONAL + if (!exists($helper->{'VARS'}{'name'}) || $helper->{'VARS'}{'name'} !~ /\S/) { @@ -26,7 +29,7 @@ return $slot{$name}{$which}; } - + Name:
   
@@ -42,7 +45,7 @@ $helper->{DATA}{copy} - +

Changing the Name will create a new slot with the new name, and not rename the existing slot.

@@ -74,6 +77,7 @@
+

Description:
    @@ -159,9 +163,7 @@ - -

IP restrictions:
    - +

IP restrictions:
    @@ -173,19 +175,33 @@

+ + + + PROCTOR + return $res->is_problem() return $res->symb() - PROCTOR return &{$helper->{DATA}{origslot}}('symb'); + + + + FINISH + + + $helper->{'VARS'}{'type'} eq 'schedulable_student' + RESTRICTUSER + + + activeonly="1" emptyallowed="1"> my @defaults; my $default=&{$helper->{DATA}{origslot}}('proctor'); @@ -197,6 +213,35 @@ + + + + FINISH + +

Slots are by default available to all users in a course, if you would like this slot to be restricted to a subset of users you can specify restrictions.

+
+ + + Select sections to limit slot availability to:
    +
+
+ + return join('|||', + split(',',&{$helper->{DATA}{origslot}}('allowedsections'))); + +
+ + Select users to limit slot availability to:
    +
+ + + return split(',',&{$helper->{DATA}{origslot}}('allowedusers')); + + +
+ + Created Slot @@ -204,23 +249,27 @@ my $result; if ($helper->{'STATE'} ne 'FINISH') { return; } my %slot; + foreach my $which ('type','starttime','endtime') { $slot{$which} = $helper->{'VARS'}{$which}; } - foreach my $which ('ip','description','maxspace', - 'secret','symb') { + + foreach my $which ('ip','description','maxspace','secret','symb') { if ( $helper->{'VARS'}{$which} =~/\S/ ) { $slot{$which} = $helper->{'VARS'}{$which}; } } + if ( $helper->{'VARS'}{'startreserve'} > 0) { $slot{'startreserve'} = $helper->{'VARS'}{'startreserve'}; } + if ( $helper->{'VARS'}{'startunique'} > 0 && $helper->{'VARS'}{'endunique'} > 0 ) { $slot{'uniqueperiod'} = [$helper->{'VARS'}{'startunique'}, $helper->{'VARS'}{'endunique'}]; } + if ( $helper->{'VARS'}{'proctor'} =~/\S/ ) { my @names; foreach my $user (split(/\|\|\|/, $helper->{'VARS'}{'proctor'})) { @@ -231,6 +280,27 @@ my %proctors = map { ($_,1) } @names; $slot{'proctor'}=join(',',sort(keys(%proctors))); } + + if ( $helper->{'VARS'}{'allowedsections'} =~/\S/ ) { + $slot{'allowedsections'}= + join(',',sort(split(/\|\|\|/, + $helper->{'VARS'}{'allowedsections'}))); + } + + if ( $helper->{'VARS'}{'allowedusers'} =~/\S/ ) { + + my @names; + foreach my $item (split(/\|\|\|/, + $helper->{'VARS'}{'allowedusers'})) { + my ($uname,$udomain)=split(/:/,$item); + push(@names,"$uname:$udomain"); + } + + # make sure the choices are unique + my %users = map { ($_,1) } @names; + $slot{'allowedusers'}=join(',',sort(keys(%users))); + } + my $cname = $env{'course.'.$env{'request.course.id'}.'.num'}; my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; @@ -243,7 +313,8 @@ "\n".'
  • Type: '.$slot{'type'}.'
  • '; my %labels = map {($_->[0],$_->[1])} &Apache::slotrequest::csvupload_fields(); - foreach my $which ('ip','description','maxspace','secret','symb') { + foreach my $which ('ip','description','maxspace','secret','symb', + 'allowedsections','allowedusers') { if (exists($slot{$which})) { $result.="\n".'
  • '.$labels{$which}.': '. &HTML::Entities::encode($slot{$which}).'
  • ';