version 1.6, 2005/11/02 21:58:14
|
version 1.12, 2006/02/03 22:40:46
|
Line 7
|
Line 7
|
if (exists($env{'form.name'}) || |
if (exists($env{'form.name'}) || |
$env{'form.name'} =~ /\S/) { |
$env{'form.name'} =~ /\S/) { |
$helper->{'VARS'}{'name'}=$env{'form.name'}; |
$helper->{'VARS'}{'name'}=$env{'form.name'}; |
|
$helper->{VARS}{'origname'}=$env{'form.name'}; |
|
$helper->{DATA}{copy} = 1; |
} |
} |
} |
} |
$helper->{DATA}{origslot} = sub { |
$helper->{DATA}{origslot} = sub { |
Line 17
|
Line 19
|
} |
} |
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
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); |
my %slot=&Apache::lonnet::get('slots', [$name], $cdom, $cnum); |
if (!ref($slot{$name})) { return $default; } |
if (!ref($slot{$name})) { return $default; } |
if (!exists($slot{$name}{$which})) { return $default; } |
if (!exists($slot{$name}{$which})) { return $default; } |
Line 25
|
Line 27
|
} |
} |
</exec> |
</exec> |
<message nextstate="OPTIONAL"> |
<message nextstate="OPTIONAL"> |
<message_text> |
Name: <br /> |
Name: <br /> |
|
</message_text> |
|
</message> |
</message> |
<string variable="name" size="30"> |
<string variable="name" size="30"> |
<validator> |
<validator> |
if ($val=~/^\s*$/) { return 'Must specify a 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 undef; |
</validator> |
</validator> |
<defaultvalue> |
<defaultvalue> |
return $helper->{'VARS'}{'name'}; |
return $helper->{'VARS'}{'name'}; |
</defaultvalue> |
</defaultvalue> |
</string> |
</string> |
|
<condition> |
|
<clause>$helper->{DATA}{copy}</clause> |
|
<message nextstate="OPTIONAL"> |
|
<p>Changing the Name will create a new slot with the new name, and not rename the existing slot.</p> |
|
</message> |
|
</condition> |
<message> |
<message> |
<message_text><br />Start time:<br /> </message_text> |
<br />Start time:<br /> |
</message> |
</message> |
<date variable="starttime" hoursminutes="1"> |
<date variable="starttime" hoursminutes="1"> |
<defaultvalue> |
<defaultvalue> |
Line 48
|
Line 55
|
</defaultvalue> |
</defaultvalue> |
</date> |
</date> |
<message> |
<message> |
<message_text><br />End time:<br /> </message_text> |
<br />End time:<br /> |
</message> |
</message> |
<date variable="endtime" hoursminutes="1"> |
<date variable="endtime" hoursminutes="1"> |
<defaultvalue> |
<defaultvalue> |
Line 56
|
Line 63
|
</defaultvalue> |
</defaultvalue> |
</date> |
</date> |
<message> |
<message> |
<message_text><br />Type:</message_text> |
<br />Type: |
</message> |
</message> |
<choices variable="type"> |
<choices variable="type"> |
<choice computer='preassigned'>Instructor asssignable.</choice> |
<choice computer='preassigned'>Instructor asssignable.</choice> |
Line 69
|
Line 76
|
|
|
<state name="OPTIONAL" title="Specify Optional Attributes"> |
<state name="OPTIONAL" title="Specify Optional Attributes"> |
<message> |
<message> |
<message_text> |
<p>Description:<br /> |
<p>Description:<br /> |
|
</message_text> |
|
</message> |
</message> |
<string variable="description" size="60"> |
<string variable="description" size="60"> |
<defaultvalue> |
<defaultvalue> |
return &{$helper->{DATA}{origslot}}('description'); |
return &{$helper->{DATA}{origslot}}('description'); |
</defaultvalue> |
</defaultvalue> |
</string> |
</string> |
|
<condition> |
|
<clause>$helper->{'VARS'}{'type'} eq 'schedulable_student'</clause> |
|
<message> |
|
</p><p>Time students can start reserving:<br /> |
|
</message> |
|
<date variable="startreserve" hoursminutes="1" anytime="1"> |
|
<defaultvalue> |
|
return &{$helper->{DATA}{origslot}}('startreserve','anytime'); |
|
</defaultvalue> |
|
</date> |
|
<message> |
|
</p><p>Maxium number of students allowed in this slot:<br /> |
|
</message> |
|
<string variable="maxspace" size="4"> |
|
<validator> |
|
if ($val ne '' && $val=~/\D/) { return 'Must be numeric.'; } |
|
return undef; |
|
</validator> |
|
<defaultvalue> |
|
return &{$helper->{DATA}{origslot}}('maxspace'); |
|
</defaultvalue> |
|
</string> |
|
<message> |
|
</p><p>Period of time in which this slot is can only be uniquely chosen:<br /> Start: |
|
</message> |
|
<date variable="startunique" hoursminutes="1" anytime="1"> |
|
<defaultvalue> |
|
my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime'); |
|
if ($default eq 'anytime') { return 'anytime' }; |
|
if (ref($default)) { return $default->[0]; } |
|
return 'anytime'; |
|
</defaultvalue> |
|
</date> |
|
<message><br /> End: </message> |
|
<date variable="endunique" hoursminutes="1" anytime="1"> |
|
<defaultvalue> |
|
my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime'); |
|
if ($default eq 'anytime') { return 'anytime' }; |
|
if (ref($default)) { return $default->[1]; } |
|
return 'anytime'; |
|
</defaultvalue> |
|
</date> |
|
</condition> |
|
<condition> |
|
<clause>$helper->{'VARS'}{'type'} eq 'preassigned'</clause> |
|
<exec> |
|
delete($helper->{'VARS'}{'startreserve'}); |
|
delete($helper->{'VARS'}{'maxspace'}); |
|
delete($helper->{'VARS'}{'startunique'}); |
|
delete($helper->{'VARS'}{'endunique'}); |
|
</exec> |
|
</condition> |
<message> |
<message> |
<message_text> |
</p><p>Secret word proctors use to checkin users:<br /> |
</p><p>Time students can start reserving:<br /> |
|
</message_text> |
|
</message> |
|
<date variable="startreserve" hoursminutes="1" anytime="1"> |
|
<defaultvalue> |
|
return &{$helper->{DATA}{origslot}}('startreserve','anytime'); |
|
</defaultvalue> |
|
</date> |
|
<message> |
|
<message_text> |
|
</p><p>Maxium number of students allowed in this slot:<br /> |
|
</message_text> |
|
</message> |
|
<string variable="maxspace" size="4"> |
|
<validator> |
|
if ($val ne '' && $val=~/\D/) { return 'Must be numeric.'; } |
|
return undef; |
|
</validator> |
|
<defaultvalue> |
|
return &{$helper->{DATA}{origslot}}('maxspace'); |
|
</defaultvalue> |
|
</string> |
|
<message> |
|
<message_text> |
|
</p><p>Secret word proctors use to checkin users:<br /> |
|
</message_text> |
|
</message> |
</message> |
<string variable="secret" size="12"> |
<string variable="secret" size="12"> |
<validator> |
<validator> |
Line 116
|
Line 147
|
</defaultvalue> |
</defaultvalue> |
</string> |
</string> |
<message> |
<message> |
<message_text> |
</p><p>Slot is: |
</p><p>Period of time in which this slot is can only be uniquely chosen:<br /> Start: |
|
</message_text> |
|
</message> |
|
<date variable="startunique" hoursminutes="1" anytime="1"> |
|
<defaultvalue> |
|
my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime'); |
|
if ($default eq 'anytime') { return 'anytime' }; |
|
if (ref($default)) { return $default->[0]; } |
|
return 'anytime'; |
|
</defaultvalue> |
|
</date> |
|
<message><message_text><br /> End: </message_text></message> |
|
<date variable="endunique" hoursminutes="1" anytime="1"> |
|
<defaultvalue> |
|
my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime'); |
|
if ($default eq 'anytime') { return 'anytime' }; |
|
if (ref($default)) { return $default->[1]; } |
|
return 'anytime'; |
|
</defaultvalue> |
|
</date> |
|
<message> |
|
<message_text> |
|
</p><p>Slot is: |
|
</message_text> |
|
</message> |
</message> |
<choices variable="restricttosymb"> |
<choices variable="restricttosymb"> |
<choice nextstate="PROCTOR" computer='any'>usable for any resource.</choice> |
<choice nextstate="PROCTOR" computer='any'>usable for any resource.</choice> |
Line 152
|
Line 159
|
</defaultvalue> |
</defaultvalue> |
</choices> |
</choices> |
<message> |
<message> |
<message_text> |
|
</p><p>IP restrictions:<br /> |
</p><p>IP restrictions:<br /> |
</message_text> |
|
</message> |
</message> |
<string variable="ip" size="30"> |
<string variable="ip" size="30"> |
<validator> |
<validator> |
Line 164
|
Line 171
|
return &{$helper->{DATA}{origslot}}('ip'); |
return &{$helper->{DATA}{origslot}}('ip'); |
</defaultvalue> |
</defaultvalue> |
</string> |
</string> |
<message> <message_text> </p> </message_text> </message> |
<message> </p> </message> |
</state> |
</state> |
<state name="RESOURCESELECT" title="Specify Optional Attributes"> |
<state name="RESOURCESELECT" title="Specify Optional Attributes"> |
<resource variable="symb"> |
<resource variable="symb"> |
Line 191
|
Line 198
|
</student> |
</student> |
</state> |
</state> |
<state name="FINISH" title="Creating/Modfying Slot"> |
<state name="FINISH" title="Creating/Modfying Slot"> |
<message> <message_text> Created Slot </message_text> </message> |
<message> Created Slot </message> |
<final> |
<final> |
<finalcode> |
<finalcode> |
my $result; |
my $result; |
Line 206
|
Line 213
|
$slot{$which} = $helper->{'VARS'}{$which}; |
$slot{$which} = $helper->{'VARS'}{$which}; |
} |
} |
} |
} |
|
if ( $helper->{'VARS'}{'startreserve'} > 0) { |
|
$slot{'startreserve'} = $helper->{'VARS'}{'startreserve'}; |
|
} |
if ( $helper->{'VARS'}{'startunique'} > 0 && |
if ( $helper->{'VARS'}{'startunique'} > 0 && |
$helper->{'VARS'}{'endunique'} > 0 ) { |
$helper->{'VARS'}{'endunique'} > 0 ) { |
$slot{'uniqueperiod'} = [$helper->{'VARS'}{'startunique'}, |
$slot{'uniqueperiod'} = [$helper->{'VARS'}{'startunique'}, |
Line 217
|
Line 227
|
my ($uname,$udomain)=split(/:/,$user); |
my ($uname,$udomain)=split(/:/,$user); |
push(@names,"$uname\@$udomain"); |
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 $cname = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
Line 237
|
Line 249
|
&HTML::Entities::encode($slot{$which}).'</li>'; |
&HTML::Entities::encode($slot{$which}).'</li>'; |
} |
} |
} |
} |
|
if (exists($slot{'startreserve'})) { |
|
$result.="\n".'<li> '.$labels{'startreserve'}.': '. |
|
&Apache::lonlocal::locallocaltime($slot{'startreserve'}).'</li>'; |
|
} |
if (exists($slot{'proctor'})) { |
if (exists($slot{'proctor'})) { |
my $proctors = $slot{'proctor'}; |
my $proctors = $slot{'proctor'}; |
$proctors =~ s/,/, /g; |
$proctors =~ s/,/, /g; |