--- loncom/publisher/lonrights.pm 2003/03/28 01:53:55 1.9
+++ loncom/publisher/lonrights.pm 2006/04/26 14:53:48 1.19
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to show and edit custom distribution rights
#
-# $Id: lonrights.pm,v 1.9 2003/03/28 01:53:55 www Exp $
+# $Id: lonrights.pm,v 1.19 2006/04/26 14:53:48 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -32,22 +32,32 @@ package Apache::lonrights;
use strict;
use Apache::Constants qw(:common :http);
-use Apache::lonnet();
+use Apache::lonnet;
use Apache::loncommon();
use HTML::LCParser;
use Apache::File;
+use Apache::lonlocal;
sub handler {
my $r=shift;
- $r->content_type('text/html');
+ my $target = $env{'form.grade_target'};
+ if ($target eq 'meta') {
+ &Apache::loncommon::content_type($r,'text/html');
+ $r->send_http_header;
+ $env{'request.uri'}=$r->uri;
+ my $file = &Apache::lonnet::filelocation("",$r->uri);
+ my $content=&Apache::lonnet::getfile($file);
+ my $result=&Apache::lonxml::xmlparse(undef,'meta',$content);
+ $r->print($result);
+ return OK;
+ }
+ &Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
- $r->print(
- '
LON-CAPA Custom Distribution Rights'.
- &Apache::loncommon::coursebrowser_javascript().'');
+ my $js = &Apache::loncommon::coursebrowser_javascript();
- $r->print(&Apache::loncommon::bodytag('Custom Distribution Rights'));
+ $r->print(&Apache::loncommon::start_page('Custom Distribution Rights',$js));
$r->rflush();
my $uri=$r->uri;
@@ -57,16 +67,16 @@ sub handler {
# ============================================================ Modify and store
if ($constructmode) {
- if ($ENV{'form.store'}) {
+ if ($env{'form.store'}) {
my @newrules=();
undef @newrules;
# read rules from form
- foreach (keys %ENV) {
+ foreach (keys %env) {
if ($_=~/^form\.effect\_(\d+)$/) {
my $number=$1;
my %rulehash=();
foreach ('effect','domain','course','section','role') {
- $rulehash{$_}=$ENV{'form.'.$_.'_'.$number};
+ $rulehash{$_}=$env{'form.'.$_.'_'.$number};
}
if ($rulehash{'role'} eq 'au') {
$rulehash{'course'}='';
@@ -83,7 +93,7 @@ sub handler {
$rulehash{'course'}=~s/\W//g;
$rulehash{'section'}=~s/\W//g;
unless ($rulehash{'domain'}) {
- $rulehash{'domain'}=$ENV{'user.domain'};
+ $rulehash{'domain'}=$env{'user.domain'};
}
my $realm='';
if ($number) {
@@ -100,27 +110,27 @@ sub handler {
}
}
# edit actions?
- foreach (keys %ENV) {
+ foreach (keys %env) {
if ($_=~/^form\.action\_(\d+)$/) {
my $number=$1;
- if ($ENV{$_} eq 'delete') { $newrules[$number]=''; }
- if (($ENV{$_} eq 'moveup') && ($number>2)) {
+ if ($env{$_} eq 'delete') { $newrules[$number]=''; }
+ if (($env{$_} eq 'moveup') && ($number>1)) {
my $buffer=$newrules[$number];
$newrules[$number]=$newrules[$number-1];
$newrules[$number-1]=$buffer;
}
- if (($ENV{$_} eq 'movedown') && ($number<$#newrules)) {
+ if (($env{$_} eq 'movedown') && ($number<$#newrules)) {
my $buffer=$newrules[$number];
$newrules[$number]=$newrules[$number+1];
$newrules[$number+1]=$buffer;
}
- if ($ENV{$_} eq 'insertabove') {
+ if ($env{$_} eq 'insertabove') {
for (my $i=$#newrules;$i>=$number;$i--) {
$newrules[$i+1]=$newrules[$i];
}
$newrules[$number]='deny';
}
- if ($ENV{$_} eq 'insertbelow') {
+ if ($env{$_} eq 'insertbelow') {
for (my $i=$#newrules;$i>$number;$i--) {
$newrules[$i+1]=$newrules[$i];
}
@@ -161,12 +171,17 @@ sub handler {
my $parser=HTML::LCParser->new(\$contents);
my $token;
my $rulecounter=0;
- my $colzero=($constructmode?'Edit action':'Rule');
+ my $colzero=&mt($constructmode?'Edit action':'Rule');
+ my %lt=&Apache::lonlocal::texthash('ef' => 'Effect',
+ 'do' => 'Domain',
+ 'co' => 'Course',
+ 'se' => 'Section/Group',
+ 'ro' => 'Role');
# ---------------------------------------------------------- Start table output
$r->print(<
- $colzero | Effect | Domain | Course |
-Section | Role |
+ $colzero | $lt{'ef'} | $lt{'do'} | $lt{'co'} |
+$lt{'se'} | $lt{'ro'} |
ENDSTARTTABLE
# --------------------------------------------------------------------- Default
# Fast forward to first rule
@@ -193,7 +208,8 @@ ENDSTARTTABLE
}
$r->print('Default');
if (($token->[2]->{'realm'}) || ($token->[2]->{'role'})) {
- $r->print(' - Error! No default set.');
+ $r->print(' - '.&mt('Error! No default set.').
+ '');
}
$r->print(' | ');
# Additional roles
@@ -231,7 +247,7 @@ ENDSTARTTABLE
my ($rdom,$rcourse,$rsec)=split(/[\/\_]/,$realm);
# realm domain
if ($constructmode) {
- unless ($rdom) { $rdom=$ENV{'user.domain'}; }
+ unless ($rdom) { $rdom=$env{'user.domain'}; }
$r->print(&Apache::loncommon::select_dom_form($rdom,
'domain_'.$rulecounter));
} else {
@@ -273,11 +289,14 @@ ENDSTARTTABLE
$r->print('');
if ($rcourse) {
my %descript=
- &Apache::lonnet::coursedescription($rdom.'_'.$rcourse);
+ &Apache::lonnet::coursedescription($rdom.'_'.$rcourse,
+ {'one_time' => 1});
$r->print($descript{'description'}.' ');
}
- $r->print(&Apache::loncommon::selectcourse_link('rules',
- 'course_'.$rulecounter,'domain_'.$rulecounter));
+ if ($constructmode) {
+ $r->print(&Apache::loncommon::selectcourse_link('rules',
+ 'course_'.$rulecounter,'domain_'.$rulecounter));
+ }
# close row
$r->print(' |
');
}
@@ -285,9 +304,9 @@ ENDSTARTTABLE
$r->print('');
# ------------------------------------------------------------ End table output
if ($constructmode) {
- $r->print('');
+ $r->print('');
}
- $r->print('