--- rat/lonratsrv.pm 2005/04/07 06:56:27 1.30
+++ rat/lonratsrv.pm 2005/09/26 19:47:52 1.33
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Server for RAT Maps
#
-# $Id: lonratsrv.pm,v 1.30 2005/04/07 06:56:27 albertel Exp $
+# $Id: lonratsrv.pm,v 1.33 2005/09/26 19:47:52 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -92,7 +92,7 @@ sub loadmap {
} elsif ($token->[1] eq 'resource') {
# -------------------------------------------------------------------- Resource
$outstr.='<&>objcont';
- if ($token->[2]->{'id'}) {
+ if (defined($token->[2]->{'id'})) {
$outstr.='<:>'.$token->[2]->{'id'};
if ($obj[$token->[2]->{'id'}]==1) {
$errtext.='Error: multiple use of ID '.
@@ -113,16 +113,20 @@ sub loadmap {
} else {
$outstr.='false:';
}
- if ($token->[2]->{'type'}) {
+ if (defined($token->[2]->{'type'})) {
$outstr.=$token->[2]->{'type'}.':';
} else {
$outstr.='normal:';
}
- $outstr.='res';
+ if ($token->[2]->{'type'} ne 'zombie') {
+ $outstr.='res';
+ } else {
+ $outstr.='zombie';
+ }
} elsif ($token->[1] eq 'condition') {
# ------------------------------------------------------------------- Condition
$outstr.='<&>objcont';
- if ($token->[2]->{'id'}) {
+ if (defined($token->[2]->{'id'})) {
$outstr.='<:>'.$token->[2]->{'id'};
if ($obj[$token->[2]->{'id'}]==1) {
$errtext.='Error: multiple use of ID '.
@@ -137,7 +141,7 @@ sub loadmap {
}
$outstr.='<:>';
$outstr.=qtunescape($token->[2]->{'value'}).':';
- if ($token->[2]->{'type'}) {
+ if (defined($token->[2]->{'type'})) {
$outstr.=$token->[2]->{'type'}.':';
} else {
$outstr.='normal:';
@@ -147,7 +151,7 @@ sub loadmap {
# ----------------------------------------------------------------------- Links
$outstr.='<&>objlinks';
- if ($token->[2]->{'index'}) {
+ if (defined($token->[2]->{'index'})) {
if ($links[$token->[2]->{'index'}]) {
$errtext.='Error: multiple use of link index '.
$token->[2]->{'index'}.'. ';
@@ -163,7 +167,7 @@ sub loadmap {
$outstr.='<:>'.$token->[2]->{'from'}.
':'.$token->[2]->{'to'};
- if ($token->[2]->{'condition'}) {
+ if (defined($token->[2]->{'condition'})) {
$outstr.=':'.$token->[2]->{'condition'};
} else {
$outstr.=':0';
@@ -219,7 +223,7 @@ sub savemap {
if ($parts[0] eq 'objcont') {
my @comp=split(/:/,$parts[$#parts]);
# --------------------------------------------------------------- Logical input
- if ($comp[$#comp] eq 'res') {
+ if (($comp[$#comp] eq 'res') || ($comp[$#comp] eq 'zombie')) {
$comp[0]=qtescape($comp[0]);
$comp[1]=qtescape($comp[1]);
if ($comp[2] eq 'true') {
@@ -241,14 +245,14 @@ sub savemap {
if ($comp[0] ne '') {
$outstr.=' title="'.$comp[0].'"';
}
- $outstr.=">\n";
+ $outstr.=" />\n";
} elsif ($comp[$#comp] eq 'cond') {
$outstr.='\n";
+ $outstr.=" />\n";
}
} elsif ($parts[0] eq 'objlinks') {
my @comp=split(/:/,$parts[$#parts]);
@@ -259,7 +263,7 @@ sub savemap {
$outstr.=' condition="'.$comp[2].'"';
}
$outstr.=' index="'.$parts[1].'"';
- $outstr.=">\n";
+ $outstr.=" />\n";
} elsif ($parts[0] eq 'objparms') {
undef %alltypes;
undef %allvalues;
@@ -272,8 +276,8 @@ sub savemap {
if ($allvalues{$_} ne '') {
$outstr.=''
- ."\n";
+ .'" value="'.$allvalues{$_}.'" />'
+ ."\n";
}
}
} elsif (($parts[0] ne '') && ($graphdef)) {
@@ -282,16 +286,14 @@ sub savemap {
if ($#parts==2) {
$outstr.=' index="'.$parts[1].'"';
}
- $outstr.=' value="'.qtescape($parts[$#parts]).'">'.
- $parts[0].">\n";
+ $outstr.=' value="'.qtescape($parts[$#parts]).'" />'."\n";
}
}
$outstr.="\n";
if ($fn=~/^\/*uploaded\/(\w+)\/(\w+)\/(.*)$/) {
$env{'form.output'}=$outstr;
- my $home=&Apache::lonnet::homeserver($2,$1);
- my $result=&Apache::lonnet::finishuserfileupload($2,$1,$home,
- 'output',$3);
+ my $result=&Apache::lonnet::finishuserfileupload($2,$1,
+ 'output',$3);
if ($result != m|^/uploaded/|) {
$errtext.='Map not saved: A network error occured when trying to save the map. ';
}