--- rat/lonratedt.pm 2002/08/20 13:02:41 1.32
+++ rat/lonratedt.pm 2002/09/04 16:54:44 1.36
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Edit Handler for RAT Maps
#
-# $Id: lonratedt.pm,v 1.32 2002/08/20 13:02:41 www Exp $
+# $Id: lonratedt.pm,v 1.36 2002/09/04 16:54:44 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -37,9 +37,10 @@ use Apache::Constants qw(:common);
use Apache::lonnet;
use Apache::lonratsrv;
use Apache::lonsequence;
+use Apache::loncommon;
+use File::Copy;
-my @order;
-my @resources;
+use vars qw(@order @resources);
# Mapread read maps into global arrays @links and @resources, determines status
@@ -318,6 +319,10 @@ sub startfinish {
}
my ($name,$url,$ext)=split(/\:/,$resources[$order[0]]);
$resources[$order[0]]=$name.':'.$url.':'.$ext.':start:res';
+ if ($#order==0) {
+ $resources[$#resources+1]='::false';
+ $order[1]=$#resources;
+ }
my ($name,$url,$ext)=split(/\:/,$resources[$order[$#order]]);
$resources[$order[$#order]]=$name.':'.$url.':'.$ext.':finish:res';
}
@@ -325,7 +330,17 @@ sub startfinish {
# ------------------------------------------------------------------- Store map
sub storemap {
- my $fn=shift;
+ my $realfn=shift;
+ my $fn=$realfn;
+# unless this is forced to work from the original file, use a temporary file
+# instead
+ unless (shift) {
+ $fn=$realfn.'.tmp';
+ unless (-e $fn) {
+ copy($realfn,$fn);
+ }
+ }
+# store data either into tmp or real file
&startfinish();
my $output='graphdef<:>no';
my $k=1;
@@ -459,7 +474,26 @@ ENDSCRIPT
sub smpedt {
my ($r,$url,$errtext)=@_;
my $buttons=&buttons(2);
-
+ my $tmpfn=&Apache::lonnet::filelocation('',$url).'.tmp';
+ my $targetmsg='';
+ if ($ENV{'form.save'}) {
+ $targetmsg='Saving ... ';
+ copy($tmpfn,&Apache::lonnet::filelocation('',$url));
+ unlink($tmpfn);
+ my ($errtext,$fatal)=
+ &mapread(&Apache::lonnet::filelocation('',$url),'');
+ }
+ if ($ENV{'form.revert'}) {
+ $targetmsg='Reverting ... ';
+ unlink($tmpfn);
+ my ($errtext,$fatal)=
+ &mapread(&Apache::lonnet::filelocation('',$url),'');
+ }
+ if (-e $tmpfn) {
+ $targetmsg=
+ 'You are working with an unsaved version of your map. ';
+ my ($errtext,$fatal)=&mapread($tmpfn,'');
+ }
# ---------------------------------------------------------- Process form input
my @importselect=();
@@ -651,6 +685,8 @@ sub smpedt {
# ------------------------------------------------------------ Assemble windows
my $idx=-1;
+ $importdetail='&'.$importdetail;
+ $importdetail=~s/^\&+/\&/;
my $importwindow=
''.
join("\n",map {
@@ -679,6 +715,7 @@ sub smpedt {
# ----------------------------------------------------- Start simple RAT screen
my $editscript=&editscript('simple');
+ my $bodytag=&Apache::loncommon::bodytag(undef,undef,undef,1);
$r->print(<
@@ -696,17 +733,17 @@ sub smpedt {
function viewtarget() {
openview((document.forms.simpleedit.targetdetail.value.split('&'))
- [document.forms.simpleedit.target.selectedIndex+1]);
+ [document.forms.simpleedit.target.selectedIndex]);
}
function viewimport() {
openview((document.forms.simpleedit.curimpdetail.value.split('&'))
- [document.forms.simpleedit.importsel.selectedIndex+1]);
+ [document.forms.simpleedit.importsel.selectedIndex]);
}
-
+$bodytag
$buttons
$errtext
$url
@@ -717,8 +754,8 @@ $buttons
Target
-
-
+
+
after selected
@@ -736,7 +773,10 @@ value="Browse">
after selected
-
+$targetmsg
+
+
+