version 1.34, 2002/08/31 00:42:30
|
version 1.45, 2003/06/16 13:51:46
|
Line 103 sub mapread {
|
Line 103 sub mapread {
|
} |
} |
} |
} |
} |
} |
|
# ---------------------------------------------- Did we just read an empty map? |
|
if ($#resources<1) { |
|
undef $resources[0]; |
|
$resources[1]=':::start'; |
|
$resources[2]=':::finish'; |
|
} |
# -------------------------------------------------- This is a linear map, sort |
# -------------------------------------------------- This is a linear map, sort |
|
|
my $startidx=0; |
my $startidx=0; |
Line 300 sub pastetarget {
|
Line 305 sub pastetarget {
|
my $ext='false'; |
my $ext='false'; |
if ($url=~/^http\:\/\//) { $ext='true'; } |
if ($url=~/^http\:\/\//) { $ext='true'; } |
$url=~s/\:/\:/g; |
$url=~s/\:/\:/g; |
|
$name=~s/\:/\:/g; |
$resources[$idx]=$name.':'.$url.':'.$ext.':normal:res'; |
$resources[$idx]=$name.':'.$url.':'.$ext.':normal:res'; |
} |
} |
} |
} |
Line 312 sub pastetarget {
|
Line 318 sub pastetarget {
|
# modifies @resources |
# modifies @resources |
|
|
sub startfinish { |
sub startfinish { |
|
# Remove all start and finish |
foreach (@order) { |
foreach (@order) { |
my ($name,$url,$ext)=split(/\:/,$resources[$_]); |
my ($name,$url,$ext)=split(/\:/,$resources[$_]); |
if ($url=~/http\&colon\:\/\//) { $ext='true'; } |
if ($url=~/http\&colon\:\/\//) { $ext='true'; } |
$resources[$_]=$name.':'.$url.':'.$ext.':normal:res'; |
$resources[$_]=$name.':'.$url.':'.$ext.':normal:res'; |
} |
} |
|
# Garbage collection |
|
my $stillchange=1; |
|
while (($#order>1) && ($stillchange)) { |
|
$stillchange=0; |
|
for (my $i=0;$i<=$#order;$i++) { |
|
my ($name,$url,$ext)=split(/\:/,$resources[$order[$i]]); |
|
unless ($url) { |
|
# Take out empty resource |
|
for (my $j=$i+1;$j<=$#order;$j++) { |
|
$order[$j-1]=$order[$j]; |
|
} |
|
$#order--; |
|
$stillchange=1; |
|
last; |
|
} |
|
} |
|
} |
|
# Put in a start resource |
my ($name,$url,$ext)=split(/\:/,$resources[$order[0]]); |
my ($name,$url,$ext)=split(/\:/,$resources[$order[0]]); |
$resources[$order[0]]=$name.':'.$url.':'.$ext.':start:res'; |
$resources[$order[0]]=$name.':'.$url.':'.$ext.':start:res'; |
|
# Make sure this has at least start and finish |
if ($#order==0) { |
if ($#order==0) { |
$resources[$#resources+1]='::false'; |
$resources[$#resources+1]='::false'; |
$order[1]=$#resources; |
$order[1]=$#resources; |
} |
} |
my ($name,$url,$ext)=split(/\:/,$resources[$order[$#order]]); |
# Make the last one a finish resource |
|
($name,$url,$ext)=split(/\:/,$resources[$order[$#order]]); |
$resources[$order[$#order]]=$name.':'.$url.':'.$ext.':finish:res'; |
$resources[$order[$#order]]=$name.':'.$url.':'.$ext.':finish:res'; |
} |
} |
|
|
Line 331 sub startfinish {
|
Line 358 sub startfinish {
|
|
|
sub storemap { |
sub storemap { |
my $realfn=shift; |
my $realfn=shift; |
my $fn=$realfn.'.tmp'; |
my $fn=$realfn; |
unless (-e $fn) { |
# unless this is forced to work from the original file, use a temporary file |
copy($realfn,$fn); |
# instead |
|
unless (shift) { |
|
$fn=$realfn.'.tmp'; |
|
unless (-e $fn) { |
|
copy($realfn,$fn); |
|
} |
} |
} |
|
# store data either into tmp or real file |
&startfinish(); |
&startfinish(); |
my $output='graphdef<:>no'; |
my $output='graphdef<:>no'; |
my $k=1; |
my $k=1; |
Line 474 sub smpedt {
|
Line 507 sub smpedt {
|
$targetmsg='<b>Saving ...</b><br>'; |
$targetmsg='<b>Saving ...</b><br>'; |
copy($tmpfn,&Apache::lonnet::filelocation('',$url)); |
copy($tmpfn,&Apache::lonnet::filelocation('',$url)); |
unlink($tmpfn); |
unlink($tmpfn); |
|
my ($errtext,$fatal)= |
|
&mapread(&Apache::lonnet::filelocation('',$url),''); |
} |
} |
if ($ENV{'form.revert'}) { |
if ($ENV{'form.revert'}) { |
$targetmsg='<b>Reverting ...</b><br>'; |
$targetmsg='<b>Reverting ...</b><br>'; |
unlink($tmpfn); |
unlink($tmpfn); |
|
my ($errtext,$fatal)= |
|
&mapread(&Apache::lonnet::filelocation('',$url),''); |
} |
} |
if (-e $tmpfn) { |
if (-e $tmpfn) { |
$targetmsg= |
$targetmsg= |
Line 670 sub smpedt {
|
Line 707 sub smpedt {
|
} |
} |
&pastetarget($lastsel,@newsequence); |
&pastetarget($lastsel,@newsequence); |
&storemap(&Apache::lonnet::filelocation('',$url)); |
&storemap(&Apache::lonnet::filelocation('',$url)); |
# ------------------------------------------------ |
# -------------------------------------------------------------------- Move up |
|
} elsif ($ENV{'form.moveup'}) { |
|
foreach (sort @targetselect) { |
|
if ($_-1>0) { |
|
my $movethis=$order[$_-1]; |
|
$order[$_-1]=$order[$_-2]; |
|
$order[$_-2]=$movethis; |
|
} |
|
} |
|
&storemap(&Apache::lonnet::filelocation('',$url)); |
|
# ------------------------------------------------------------------ Move down |
|
} elsif ($ENV{'form.movedown'}) { |
|
foreach (reverse sort @targetselect) { |
|
if ($_-1<$#order) { |
|
my $movethis=$order[$_-1]; |
|
$order[$_-1]=$order[$_]; |
|
$order[$_]=$movethis; |
|
} |
|
} |
|
&storemap(&Apache::lonnet::filelocation('',$url)); |
|
# --------------------------------------------------------------------- Rename |
|
} elsif ($ENV{'form.renameres'}) { |
|
my $residx=$Apache::lonratedt::order[$ENV{'form.renameidx'}-1]; |
|
my ($name,@resrest)=split(/\:/,$Apache::lonratedt::resources[$residx]); |
|
$name=$ENV{'form.renametitle'}; |
|
$name=~s/\:/\&colon\;/g; |
|
$Apache::lonratedt::resources[$residx]=$name.':'.join(':',@resrest); |
|
&storemap(&Apache::lonnet::filelocation('',$url)); |
} |
} |
# ------------------------------------------------------------ Assemble windows |
# ------------------------------------------------------------ Assemble windows |
|
|
Line 691 sub smpedt {
|
Line 755 sub smpedt {
|
} split(/\&/,$importdetail)); |
} split(/\&/,$importdetail)); |
|
|
$idx=0; |
$idx=0; |
|
$targetdetail=''; |
my $targetwindow= |
my $targetwindow= |
'<option value="0"> ------- Target Edit Map ------- </option>'. |
'<option value="0"> ------- Target Edit Map ------- </option>'. |
join("\n",map { |
join("\n",map { |
Line 700 sub smpedt {
|
Line 765 sub smpedt {
|
$targetdetail.='&'.&Apache::lonnet::escape($name).'='. |
$targetdetail.='&'.&Apache::lonnet::escape($name).'='. |
&Apache::lonnet::escape($url); |
&Apache::lonnet::escape($url); |
$idx++; |
$idx++; |
|
$name=~s/\:/\:/g; |
'<option value="'.$idx.'">'.$name.'</option>'; |
'<option value="'.$idx.'">'.$name.'</option>'; |
} @order); |
} @order); |
|
|
Line 731 sub smpedt {
|
Line 797 sub smpedt {
|
[document.forms.simpleedit.importsel.selectedIndex]); |
[document.forms.simpleedit.importsel.selectedIndex]); |
} |
} |
|
|
|
function renametarget() { |
|
var selidx=document.forms.simpleedit.target.selectedIndex; |
|
var entry=(document.forms.simpleedit.targetdetail.value.split('&')) |
|
[selidx]; |
|
var oldname=unescape((entry.split('='))[0]); |
|
var nameparts=oldname.split(':'); |
|
oldname=unescape(nameparts.join(':')); |
|
nameparts=oldname.split('"'); |
|
oldname=unescape(nameparts.join('"')); |
|
nameparts=oldname.split('''); |
|
oldname=unescape(nameparts.join("'")); |
|
newtitle=prompt('New Title',oldname); |
|
if (newtitle) { |
|
document.forms.simpleedit.renameres.value=1; |
|
document.forms.simpleedit.renameidx.value=selidx; |
|
document.forms.simpleedit.renametitle.value=newtitle; |
|
document.forms.simpleedit.submit(); |
|
} |
|
} |
|
|
</script> |
</script> |
</head> |
</head> |
$bodytag |
$bodytag |
$buttons |
$buttons |
<font color=red>$errtext</font> |
<font color=red>$errtext</font> |
<h1>$url</h1> |
|
<form name=simpleedit method=post> |
<form name=simpleedit method=post> |
<input type=hidden name=forcesmp value=1> |
<input type=hidden name=forcesmp value=1> |
|
<input type=hidden name=renameres value=0> |
|
<input type=hidden name=renametitle value=''> |
|
<input type=hidden name=renameidx value=0> |
<table> |
<table> |
<tr><th width="40%">Import</th> |
<tr><th width="40%">Temporary Assembly Workspace</th> |
<th> </th> |
<th> </th> |
<th width="40%">Target</th></tr> |
<th width="40%">File: $url</th></tr> |
<tr><td bgcolor="#FFFFCC"> |
<tr><td bgcolor="#FFFFCC"> |
<input type=button onClick="javascript:groupsearch()" value="Group Search"> |
<input type=button onClick="javascript:groupsearch()" value="Search"> |
<input type=button onClick="javascript:groupimport();" value="Group Import"> |
<input type=button onClick="javascript:groupimport();" value="Import"> |
after selected |
after selected |
<hr> |
<hr> |
<input type=text size=20 name=importmap> |
<input type=text size=20 name=importmap> |
<input type=button |
<input type=button |
onClick="javascript:openbrowser('simpleedit','importmap','sequence,page','')" |
onClick="javascript:openbrowser('simpleedit','importmap','sequence,page','')" |
value="Browse"><input type=submit name=loadmap value="Load Map"><hr> |
value="Select Map"><input type=submit name=loadmap value="Load Map"><hr> |
<input type=submit name="discard" value="Discard Selected"> |
<input type=submit name="discard" value="Discard Selected"> |
<input type=submit name="clear" value="Clear All"> |
<input type=submit name="clear" value="Clear All"> |
<input type=button onClick="javascript:viewimport()" value="View"> |
<input type=button onClick="javascript:viewimport()" value="View"> |
Line 759 value="Browse"><input type=submit name=l
|
Line 847 value="Browse"><input type=submit name=l
|
</td><td> </td><td bgcolor="#FFFFCC"> |
</td><td> </td><td bgcolor="#FFFFCC"> |
|
|
<input type=button onClick= |
<input type=button onClick= |
"javascript:impfortarget.value=1;groupsearch()" value="Group Search"> |
"javascript:impfortarget.value=1;groupsearch()" value="Search"> |
<input type=button onClick= |
<input type=button onClick= |
"javascript:impfortarget.value=1;groupimport();" value="Group Import"> |
"javascript:impfortarget.value=1;groupimport();" value="Import"> |
after selected |
after selected |
|
<hr> |
|
<input type=submit name="moveup" value="Move Up"> |
|
<input type=submit name="movedown" value="Move Down"> |
|
<input type=button onClick="javascript:renametarget()" value="Rename"> |
<hr>$targetmsg |
<hr>$targetmsg |
<input type=submit name="revert" value="Revert to Last Saved"> |
<input type=submit name="revert" value="Revert to Last Saved"> |
<input type=submit name="save" value="Save"> |
<input type=submit name="save" value="Save"> |
Line 821 sub viewmap {
|
Line 913 sub viewmap {
|
} |
} |
my $idx=0; |
my $idx=0; |
$r->print('<h1>'.$url.'</h1>'); |
$r->print('<h1>'.$url.'</h1>'); |
|
if ($adv) { |
|
$r->print('<p><b><font color="red">Map contents are not shown in order.</font></b></p><br />'); |
|
} |
foreach (&attemptread(&Apache::lonnet::filelocation('',$url))) { |
foreach (&attemptread(&Apache::lonnet::filelocation('',$url))) { |
if (defined($_)) { |
if (defined($_)) { |
$idx++; |
$idx++; |