--- rat/lonratedt.pm	2003/12/12 15:16:35	1.49
+++ rat/lonratedt.pm	2004/04/26 17:50:37	1.58
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Edit Handler for RAT Maps
 #
-# $Id: lonratedt.pm,v 1.49 2003/12/12 15:16:35 sakharuk Exp $
+# $Id: lonratedt.pm,v 1.58 2004/04/26 17:50:37 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -25,10 +25,7 @@
 #
 # http://www.lon-capa.org/
 #
-# (TeX Content Handler
-#
-# 05/29/00,05/30 Gerd Kortemeyer)
-# 7/1,6/30 Gerd Kortemeyer
+
 
 package Apache::lonratedt;
 
@@ -176,7 +173,7 @@ use Apache::loncommon;
 use Apache::lonlocal;
 use File::Copy;
 
-use vars qw(@order @resources);
+use vars qw(@order @resources @resparms);
 
 
 # Mapread read maps into global arrays @links and @resources, determines status
@@ -190,8 +187,10 @@ sub mapread {
     undef @links;
     undef @resources;
     undef @order;
+    undef @resparms;
     @resources=('');
     @order=();
+    @resparms=();
 
     my ($outtext,$errtext)=&Apache::lonratsrv::loadmap($fn,'');
     if ($errtext) { return ($errtext,2); }
@@ -206,7 +205,11 @@ sub mapread {
             $links[$number]=$content;
         }
         if ($command eq 'objparms') {
-	    return(&mt('Map has resource parameters. Use advanced editor.'),1);
+	    if ($resparms[$number]) {
+		$resparms[$number].='&&&'.$content;
+	    } else {
+		$resparms[$number]=$content;
+	    }
         }
     }
 # ------------------------------------------------------- Is this a linear map?
@@ -414,12 +417,15 @@ sub buttons {
     my $adv=shift;
     my $output='<form method=post>';     
     if ($adv==1) {
-	$output.='<input type=submit name=forceadv value="'.&mt('Edit').'">';
+	$output.='<input type=submit name=forceadv value="'.&mt('Edit').'">'.
+	    &Apache::loncommon::help_open_topic('Sequence_Advanced_Editor_Creation');;
     } else {
         unless ($adv==2) {
-           $output.='<input type=submit name=forcesmp value="'.&mt('Simple Edit').'">';
+           $output.='<input type=submit name=forcesmp value="'.&mt('Simple Edit').'">'.
+	    &Apache::loncommon::help_open_topic('Sequence_Simple_Editor_Creation');
         }
-	$output.='<input type=submit name=forceadv value="'.&mt('Advanced Edit').'">';
+	$output.='<input type=submit name=forceadv value="'.&mt('Advanced Edit').'">'.
+	    &Apache::loncommon::help_open_topic('Sequence_Advanced_Editor_Creation');
     }
     return $output.'</form><hr>';
 }
@@ -511,6 +517,13 @@ sub storemap {
         if (defined($resources[$order[$i]])) {
 	    $output.='<&>objcont<:>'.$order[$i].'<:>'.$resources[$order[$i]];
         }
+	if (defined($resparms[$order[$i]])) {
+	    foreach (split('&&&',$resparms[$order[$i]])) {
+		if ($_) {
+		    $output.='<&>objparms<:>'.$order[$i].'<:>'.$_;
+		}
+	    }
+	}
         if (defined($order[$i+1])) {
 	    if (defined($resources[$order[$i+1]])) {
                $output.='<&>objlinks<:>'.$k.'<:>'.
@@ -525,8 +538,61 @@ sub storemap {
      &Apache::lonratsrv::loadmap($fn,&Apache::lonratsrv::savemap($fn,''));
 }
 
+# ------------------------------------------ Store and get parameters in global
+
+sub storeparameter {
+    my ($to,$name,$value,$ptype)=@_;
+    my $newentry='';
+    my $nametype='';
+    foreach (split('&&&',$resparms[$to])) {
+	my ($thistype,$thisname,$thisvalue)=split('___',$_);
+	if ($thisname) {
+	    unless ($thisname eq $name) {
+		$newentry.=$_.'&&&';
+	    } else {
+		$nametype=$thistype;
+	    }
+	}
+    }
+    unless ($ptype) { $ptype=$nametype; }
+    unless ($ptype) { $ptype='string'; }
+    $newentry.=$ptype.'___'.$name.'___'.$value;
+    $resparms[$to]=$newentry;
+}
+
+sub delparameter {
+    my ($to,$name)=@_;
+    my $newentry='';
+    my $nametype='';
+    foreach (split('&&&',$resparms[$to])) {
+	my ($thistype,$thisname,$thisvalue)=split('___',$_);
+	if ($thisname) {
+	    unless ($thisname eq $name) {
+		$newentry.=$_.'&&&';
+	    }
+	}
+    }
+    $resparms[$to]=$newentry;
+}
+
+sub getparameter {
+    my ($to,$name)=@_;
+    my $value=undef;
+    my $ptype=undef;
+    foreach (split('&&&',$resparms[$to])) {
+	my ($thistype,$thisname,$thisvalue)=split('___',$_);
+	if ($thisname eq $name) {
+	    $value=$thisvalue;
+	    $ptype=$thistype;
+	}
+    }
+    return ($value,$ptype);
+}
+
+# ----------------------------------------------------------------- Edit script
 sub editscript {
     my $mode=shift;
+    my $resurl=&Apache::loncommon::lastresurl();
     return(<<ENDSCRIPT);
 var srch;
 var srchflag=-1; // 1 means currently open
@@ -571,7 +637,7 @@ function idxopen(mode) {
    var options="scrollbars=1,resizable=1,menubar=0";
    idxmode=mode;
    idxflag=1;
-   idx=open("/res/?launch=1&mode=$mode&catalogmode="+mode,"idxout",options);
+   idx=open("$resurl/?launch=1&mode=$mode&catalogmode="+mode,"idxout",options);
    idx.focus();
 }
 
@@ -610,7 +676,7 @@ function idxcheck(mode) {
 
     var editbrowser;
     function openbrowser(formname,elementname,only,omit) {
-        var url = '/res/?';
+        var url = '$resurl/?';
         if (editbrowser == null) {
             url += 'launch=1&';
         }
@@ -878,7 +944,7 @@ sub smpedt {
    $importdetail='&'.$importdetail;
    $importdetail=~s/^\&+/\&/;
    my $importwindow=
-       '<option value="-1"> ---- Import and Paste Area ---- </option>'.
+       '<option value="-1"> ---- '.&mt('Import and Paste Area').' ---- </option>'.
      join("\n",map {
        $idx++;
        if ($_) { 
@@ -907,7 +973,10 @@ sub smpedt {
 
 # ----------------------------------------------------- Start simple RAT screen
    my $editscript=&editscript('simple');
-   my $bodytag=&Apache::loncommon::bodytag(undef,undef,undef,1);
+   my $bodytag=&Apache::loncommon::bodytag(undef,undef,undef,1).
+       &Apache::loncommon::help_open_topic('Sequence_Simple_Editor_Creation').
+       &Apache::loncommon::help_open_faq(6).
+       &Apache::loncommon::help_open_bug('RAT');
    my %lt=&Apache::lonlocal::texthash(
 				      'sa' => 'Save',
 				      'nt' => 'New Title',
@@ -1063,9 +1132,11 @@ sub viewmap {
     my ($r,$url,$adv,$errtext)=@_;
     $r->print('<html>'.
      &Apache::loncommon::bodytag('Edit Content of a Map').
-     &buttons($adv));
+	      &Apache::loncommon::help_open_faq(6).
+	      &Apache::loncommon::help_open_bug('RAT').
+	      &buttons($adv));
     if ($errtext) {
-	$r->print($errtext.'<hr>');
+	$r->print($errtext.'<hr />');
     }
     my $idx=0;
     $r->print('<h1>'.$url.'</h1>');