--- loncom/publisher/lonrights.pm 2003/09/22 15:39:53 1.10
+++ loncom/publisher/lonrights.pm 2006/04/06 22:15:19 1.18
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to show and edit custom distribution rights
#
-# $Id: lonrights.pm,v 1.10 2003/09/22 15:39:53 www Exp $
+# $Id: lonrights.pm,v 1.18 2006/04/06 22:15:19 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -32,7 +32,7 @@ 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;
@@ -41,14 +41,23 @@ use Apache::lonlocal;
sub handler {
my $r=shift;
+ 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;
@@ -58,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'}='';
@@ -84,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) {
@@ -101,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];
}
@@ -163,11 +172,11 @@ sub handler {
my $token;
my $rulecounter=0;
my $colzero=&mt($constructmode?'Edit action':'Rule');
-my %lt=&Apache::loncommon::texthash('ef' => 'Effect',
- 'do' => 'Domain',
- 'co' => 'Course',
- 'se' => 'Section/Group',
- 'ro' => 'Role');
+ my %lt=&Apache::lonlocal::texthash('ef' => 'Effect',
+ 'do' => 'Domain',
+ 'co' => 'Course',
+ 'se' => 'Section/Group',
+ 'ro' => 'Role');
# ---------------------------------------------------------- Start table output
$r->print(<
@@ -238,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 {
@@ -283,8 +292,10 @@ ENDSTARTTABLE
&Apache::lonnet::coursedescription($rdom.'_'.$rcourse);
$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('');
}
@@ -294,7 +305,7 @@ ENDSTARTTABLE
if ($constructmode) {
$r->print('');
}
- $r->print('