--- loncom/publisher/lonrights.pm 2003/03/20 20:58:40 1.5 +++ loncom/publisher/lonrights.pm 2003/03/21 14:13:30 1.7 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to show and edit custom distribution rights # -# $Id: lonrights.pm,v 1.5 2003/03/20 20:58:40 www Exp $ +# $Id: lonrights.pm,v 1.7 2003/03/21 14:13:30 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -99,6 +99,34 @@ sub handler { } } # edit actions? + foreach (keys %ENV) { + if ($_=~/^form\.action\_(\d+)$/) { + my $number=$1; + if ($ENV{$_} eq 'delete') { $newrules[$number]=''; } + if (($ENV{$_} eq 'moveup') && ($number>2)) { + my $buffer=$newrules[$number]; + $newrules[$number]=$newrules[$number-1]; + $newrules[$number-1]=$buffer; + } + if (($ENV{$_} eq 'movedown') && ($number<$#newrules)) { + my $buffer=$newrules[$number]; + $newrules[$number]=$newrules[$number+1]; + $newrules[$number+1]=$buffer; + } + if ($ENV{$_} eq 'insertabove') { + for (my $i=$#newrules;$i>=$number;$i--) { + $newrules[$i+1]=$newrules[$i]; + } + $newrules[$number]='deny'; + } + if ($ENV{$_} eq 'insertbelow') { + for (my $i=$#newrules;$i>$number;$i--) { + $newrules[$i+1]=$newrules[$i]; + } + $newrules[$number+1]='deny'; + } + } + } # store file my $fh=Apache::File->new('>'.$fn); @@ -144,7 +172,16 @@ ENDSTARTTABLE $token=$parser->get_token; while ($token->[1] ne 'accessrule') { $token=$parser->get_token; } # print default - $r->print(' '); + $r->print(''); + if ($constructmode) { + $r->print(&Apache::loncommon::select_form('','action_0', + ('' => '', + 'insertbelow' => 'Insert rule below '))); + + } else { + $r->print(' '); + } + $r->print(''); if ($constructmode) { $r->print(&Apache::loncommon::select_form ($token->[2]->{'effect'},'effect_0', @@ -162,7 +199,7 @@ ENDSTARTTABLE while ($token=$parser->get_token) { if (($token->[0] eq 'S') && ($token->[1] eq 'accessrule')) { $rulecounter++; - $r->print(''); + $r->print(''); # insert, delete, etc $r->print($rulecounter.'. '); if ($constructmode) { @@ -171,7 +208,7 @@ ENDSTARTTABLE ('' => '', 'delete' => 'Delete this rule', 'insertabove' => 'Insert rule above', - 'insertbelow' => 'Insert rule below', + 'insertbelow' => 'Insert rule below ', 'moveup' => 'Move rule up', 'movedown' => 'Move rule down'))); } @@ -191,8 +228,9 @@ ENDSTARTTABLE my $realm=$token->[2]->{'realm'}; $realm=~s/^\W//; my ($rdom,$rcourse,$rsec)=split(/[\/\_]/,$realm); -# realm role +# realm domain if ($constructmode) { + unless ($rdom) { $rdom=$ENV{'user.domain'}; } $r->print(&Apache::loncommon::select_dom_form($rdom, 'domain_'.$rulecounter)); } else {