--- rat/lonratedt.pm 2002/08/26 12:38:40 1.33
+++ rat/lonratedt.pm 2002/10/03 15:07:25 1.37
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Edit Handler for RAT Maps
#
-# $Id: lonratedt.pm,v 1.33 2002/08/26 12:38:40 www Exp $
+# $Id: lonratedt.pm,v 1.37 2002/10/03 15:07:25 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -37,6 +37,8 @@ use Apache::Constants qw(:common);
use Apache::lonnet;
use Apache::lonratsrv;
use Apache::lonsequence;
+use Apache::loncommon;
+use File::Copy;
use vars qw(@order @resources);
@@ -298,6 +300,7 @@ sub pastetarget {
my $ext='false';
if ($url=~/^http\:\/\//) { $ext='true'; }
$url=~s/\:/\:/g;
+ $name=~s/\:/\:/g;
$resources[$idx]=$name.':'.$url.':'.$ext.':normal:res';
}
}
@@ -328,7 +331,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;
@@ -462,7 +475,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=();
@@ -654,6 +686,8 @@ sub smpedt {
# ------------------------------------------------------------ Assemble windows
my $idx=-1;
+ $importdetail='&'.$importdetail;
+ $importdetail=~s/^\&+/\&/;
my $importwindow=
''.
join("\n",map {
@@ -677,11 +711,13 @@ sub smpedt {
$targetdetail.='&'.&Apache::lonnet::escape($name).'='.
&Apache::lonnet::escape($url);
$idx++;
+ $name=~s/\:/\:/g;
'';
} @order);
# ----------------------------------------------------- Start simple RAT screen
my $editscript=&editscript('simple');
+ my $bodytag=&Apache::loncommon::bodytag(undef,undef,undef,1);
$r->print(<
@@ -699,29 +735,28 @@ 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
-