version 1.3, 2005/10/14 22:17:33
|
version 1.5, 2005/10/17 21:19:30
|
Line 1
|
Line 1
|
<helper title="Slot Creation" requiredpriv="mgq"> |
<helper title="Slot Creation" requiredpriv="mgq"> |
<state name="START" title="Specify Required Attributes"> |
<state name="START" title="Specify Required Attributes"> |
|
<exec> |
|
if (!exists($helper->{'VARS'}{'name'}) || |
|
$helper->{'VARS'}{'name'} !~ /\S/) { |
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}); |
|
if (exists($env{'form.name'}) || |
|
$env{'form.name'} =~ /\S/) { |
|
$helper->{'VARS'}{'name'}=$env{'form.name'}; |
|
} |
|
} |
|
$helper->{DATA}{origslot} = sub { |
|
my ($which,$default)=@_; |
|
if (!exists($helper->{'VARS'}{'name'}) || |
|
$helper->{'VARS'}{'name'} !~ /\S/) { |
|
return $default; |
|
} |
|
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
my $name=$helper->{'VARS'}{'name'}; |
|
my %slot=&Apache::lonnet::get('slots', [$name], $cdom, $cnum); |
|
if (!ref($slot{$name})) { return $default; } |
|
if (!exists($slot{$name}{$which})) { return $default; } |
|
return $slot{$name}{$which}; |
|
} |
|
</exec> |
<message nextstate="OPTIONAL"> |
<message nextstate="OPTIONAL"> |
<message_text> |
<message_text> |
Name: <br /> |
Name: <br /> |
Line 11
|
Line 35
|
if ($val=~/\s$/) { return 'Must not contain spaces'; } |
if ($val=~/\s$/) { return 'Must not contain spaces'; } |
return undef; |
return undef; |
</validator> |
</validator> |
|
<defaultvalue> |
|
return $helper->{'VARS'}{'name'}; |
|
</defaultvalue> |
</string> |
</string> |
<message> |
<message> |
<message_text><br />Start time:<br /> </message_text> |
<message_text><br />Start time:<br /> </message_text> |
</message> |
</message> |
<date variable="starttime" hoursminutes="1"></date> |
<date variable="starttime" hoursminutes="1"> |
|
<defaultvalue> |
|
return &{$helper->{DATA}{origslot}}('starttime'); |
|
</defaultvalue> |
|
</date> |
<message> |
<message> |
<message_text><br />End time:<br /> </message_text> |
<message_text><br />End time:<br /> </message_text> |
</message> |
</message> |
<date variable="endtime" hoursminutes="1"></date> |
<date variable="endtime" hoursminutes="1"> |
|
<defaultvalue> |
|
return &{$helper->{DATA}{origslot}}('endtime'); |
|
</defaultvalue> |
|
</date> |
<message> |
<message> |
<message_text><br />Type:</message_text> |
<message_text><br />Type:</message_text> |
</message> |
</message> |
<choices variable="type"> |
<choices variable="type"> |
<choice computer='preassigned'>Instructor asssignable.</choice> |
<choice computer='preassigned'>Instructor asssignable.</choice> |
<choice computer='student_schedulable'>Student selectable.</choice> |
<choice computer='schedulable_student'>Student selectable.</choice> |
<defaultvalue> |
<defaultvalue> |
return 'preassigned'; |
return &{$helper->{DATA}{origslot}}('type','preassigned'); |
</defaultvalue> |
</defaultvalue> |
</choices> |
</choices> |
</state> |
</state> |
Line 38
|
Line 73
|
<p>Description:<br /> |
<p>Description:<br /> |
</message_text> |
</message_text> |
</message> |
</message> |
<string variable="description" size="60"></string> |
<string variable="description" size="60"> |
|
<defaultvalue> |
|
return &{$helper->{DATA}{origslot}}('description'); |
|
</defaultvalue> |
|
</string> |
<message> |
<message> |
<message_text> |
<message_text> |
</p><p>Time students can start reserving:<br /> |
</p><p>Time students can start reserving:<br /> |
</message_text> |
</message_text> |
</message> |
</message> |
<date variable="startreserve" hoursminutes="1" anytime="1"> |
<date variable="startreserve" hoursminutes="1" anytime="1"> |
<defaultvalue>'anytime'</defaultvalue> |
<defaultvalue> |
|
return &{$helper->{DATA}{origslot}}('startreserve','anytime'); |
|
</defaultvalue> |
</date> |
</date> |
<message> |
<message> |
<message_text> |
<message_text> |
Line 57
|
Line 98
|
if ($val ne '' && $val=~/\D/) { return 'Must be numeric.'; } |
if ($val ne '' && $val=~/\D/) { return 'Must be numeric.'; } |
return undef; |
return undef; |
</validator> |
</validator> |
|
<defaultvalue> |
|
return &{$helper->{DATA}{origslot}}('maxspace'); |
|
</defaultvalue> |
</string> |
</string> |
<message> |
<message> |
<message_text> |
<message_text> |
Line 67
|
Line 111
|
<validator> |
<validator> |
return undef; |
return undef; |
</validator> |
</validator> |
|
<defaultvalue> |
|
return &{$helper->{DATA}{origslot}}('secret'); |
|
</defaultvalue> |
</string> |
</string> |
<message> |
<message> |
<message_text> |
<message_text> |
Line 74
|
Line 121
|
</message_text> |
</message_text> |
</message> |
</message> |
<date variable="startunique" hoursminutes="1" anytime="1"> |
<date variable="startunique" hoursminutes="1" anytime="1"> |
<defaultvalue>'anytime'</defaultvalue> |
<defaultvalue> |
|
my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime'); |
|
if ($default eq 'anytime') { return 'anytime' }; |
|
if (ref($default)) { return $default->[0]; } |
|
return 'anytime'; |
|
</defaultvalue> |
</date> |
</date> |
<message><message_text><br /> End: </message_text></message> |
<message><message_text><br /> End: </message_text></message> |
<date variable="endunique" hoursminutes="1" anytime="1"> |
<date variable="endunique" hoursminutes="1" anytime="1"> |
<defaultvalue>'anytime'</defaultvalue> |
<defaultvalue> |
|
my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime'); |
|
if ($default eq 'anytime') { return 'anytime' }; |
|
if (ref($default)) { return $default->[1]; } |
|
return 'anytime'; |
|
</defaultvalue> |
</date> |
</date> |
<message> |
<message> |
<message_text> |
<message_text> |
Line 86
|
Line 143
|
</message_text> |
</message_text> |
</message> |
</message> |
<choices variable="restricttosymb"> |
<choices variable="restricttosymb"> |
<choice nextstate="FINISH" computer='any'>usable for any resource.</choice> |
<choice nextstate="PROCTOR" computer='any'>usable for any resource.</choice> |
<choice nextstate="RESOURCESELECT" computer='resource'>restricted to a specific resource.</choice> |
<choice nextstate="RESOURCESELECT" computer='resource'>restricted to a specific resource.</choice> |
<defaultvalue>'any'</defaultvalue> |
<defaultvalue> |
|
my $default=&{$helper->{DATA}{origslot}}('symb'); |
|
if ($default) { return 'resource'; } |
|
return 'any'; |
|
</defaultvalue> |
</choices> |
</choices> |
<message> |
<message> |
<message_text> |
<message_text> |
Line 99
|
Line 160
|
<validator> |
<validator> |
return undef; |
return undef; |
</validator> |
</validator> |
|
<defaultvalue> |
|
return &{$helper->{DATA}{origslot}}('ip'); |
|
</defaultvalue> |
</string> |
</string> |
<message> <message_text> </p> </message_text> </message> |
<message> <message_text> </p> </message_text> </message> |
</state> |
</state> |
Line 106
|
Line 170
|
<resource variable="symb"> |
<resource variable="symb"> |
<filterfunc>return $res->is_problem()</filterfunc> |
<filterfunc>return $res->is_problem()</filterfunc> |
<valuefunc>return $res->symb()</valuefunc> |
<valuefunc>return $res->symb()</valuefunc> |
<nextstate>FINISH</nextstate> |
<nextstate>PROCTOR</nextstate> |
|
<defaultvalue> |
|
return &{$helper->{DATA}{origslot}}('symb'); |
|
</defaultvalue> |
</resource> |
</resource> |
</state> |
</state> |
|
<state name="PROCTOR" title="Specify Proctors"> |
|
<student variable="proctor" multichoice="1" coursepersonnel="1" |
|
nextstate="FINISH" activeonly="1" emptyallowed="1"> |
|
<defaultvalue> |
|
my @defaults; |
|
my $default=&{$helper->{DATA}{origslot}}('proctor'); |
|
if ($default) { |
|
$default=~ tr/@/:/; |
|
@defaults=(split(',',$default)); |
|
} |
|
return @defaults; |
|
</defaultvalue> |
|
</student> |
|
</state> |
<state name="FINISH" title="Creating/Modfying Slot"> |
<state name="FINISH" title="Creating/Modfying Slot"> |
<message> <message_text> Created Slot </message_text> </message> |
<message> <message_text> Created Slot </message_text> </message> |
<final> |
<final> |
Line 119
|
Line 200
|
foreach my $which ('type','starttime','endtime') { |
foreach my $which ('type','starttime','endtime') { |
$slot{$which} = $helper->{'VARS'}{$which}; |
$slot{$which} = $helper->{'VARS'}{$which}; |
} |
} |
foreach my $which ('ip','proctor','description','maxspace', |
foreach my $which ('ip','description','maxspace', |
'secret','symb') { |
'secret','symb') { |
if ( $helper->{'VARS'}{$which} =~/\S/ ) { |
if ( $helper->{'VARS'}{$which} =~/\S/ ) { |
$slot{$which} = $helper->{'VARS'}{$which}; |
$slot{$which} = $helper->{'VARS'}{$which}; |
Line 130
|
Line 211
|
$slot{'uniqueperiod'} = [$helper->{'VARS'}{'startunique'}, |
$slot{'uniqueperiod'} = [$helper->{'VARS'}{'startunique'}, |
$helper->{'VARS'}{'endunique'}]; |
$helper->{'VARS'}{'endunique'}]; |
} |
} |
|
if ( $helper->{'VARS'}{'proctor'} =~/\S/ ) { |
|
my @names; |
|
foreach my $user (split(/\|\|\|/, $helper->{'VARS'}{'proctor'})) { |
|
my ($uname,$udomain)=split(/:/,$user); |
|
push(@names,"$uname\@$udomain"); |
|
} |
|
$slot{'proctor'}=join(',',@names); |
|
} |
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'}; |
|
|
my $ret = &Apache::lonnet::cput('slots', |
my $ret = &Apache::lonnet::cput('slots', |
{$helper->{'VARS'}{'name'} => \%slot}, |
{$helper->{'VARS'}{'name'} => \%slot}, |
$cdom,$cname); |
$cdom,$cname); |
$result.="\n".'<li> Name: '.&HTML::Entities::encode($slot{name}).'</li>'. |
$result.="\n ".'Name: '.&HTML::Entities::encode($helper->{'VARS'}{'name'}).'</li>'. |
"\n".'<li> Starts: '.&Apache::lonlocal::locallocaltime($slot{start}).'</li>'. |
"\n".'<li> Starts: '.&Apache::lonlocal::locallocaltime($slot{'starttime'}).'</li>'. |
"\n".'<li> Ends: '.&Apache::lonlocal::locallocaltime($slot{end}).'</li>'. |
"\n".'<li> Ends: '.&Apache::lonlocal::locallocaltime($slot{'endtime'}).'</li>'. |
"\n".'<li> Type: '.$slot{'type'}.'</li>'; |
"\n".'<li> Type: '.$slot{'type'}.'</li>'; |
my %labels = |
my %labels = |
map {($_->[0],$_->[1])} &Apache::slotrequest::csvupload_fields(); |
map {($_->[0],$_->[1])} &Apache::slotrequest::csvupload_fields(); |
Line 159
|
Line 248
|
} |
} |
return $result; |
return $result; |
</finalcode> |
</finalcode> |
<exitpage>/adm/flip?postdata=return:</exitpage> |
<exitpage>/adm/slotrequest?command=showslots</exitpage> |
</final> |
</final> |
</state> |
</state> |
</helper> |
</helper> |