#!/bin/sh
#
# 20/10/2007 selected record disabled to prevent reselection
# 7/11/02Semicolons put into echoed javascript
# disable filename globbing
# this script leads on to editor.cgi for delete or edit functions
 set -f

 dirs=$(./local/dirs)		#get data & script directories
 datadir=${dirs% *} ; scriptdir=${dirs#* }

nextscript="editor.cgi"

# content-type message must be followed by two newlines
echo 'Content-type: text/html'
echo
echo
echo '<html><head>
<script language="javascript">
function valid() {
n=inform.record.selectedIndex; if(n <0) {
alert("You must select a record");
return false;}
else {doform.record.value=inform.record.options[n].value;
inform.record.options[n].selected=false;
inform.record.options[n].disabled=true; 
return true;} }
n=document.URL.indexOf("/selector");
scriptbase=document.URL.substring(0,n);
</script>
</head><body bgcolor="#FFFFC0">'

# $REMOTE_USER only set if script requires authentication...
#
  read posttext

# get destination and data from posttext
 dest=${posttext%%=*}		#first subject
 data=${posttext##*=}		#last object

 if [ "${dest%%*.*}" = "" ]; then
  destroot=${dest%.*};
 else
  destroot=${dest%_*}	#lose suffix
  sufx=${dest##*_}
  dest=$destroot.$sufx;
 fi

#get base
 base=${posttext%&*}		#lose last statement
 base=${base##*=}		#penultimate object (modified)

 base=$(echo $base | sed -f $scriptdir/depost)

#echo "debug $base <br>"

ud=$(./local/udat)		# User data

# Programmer note - users not logged in get user names such as sasu
# and groups such as %G

echo '<font color="#C00000"> <b>'
echo "These records contain the requested text,"
echo "select one.</b><br>"
echo "<form name=\"doform\" method=\"post\""
echo "onSubmit=\"return valid()\">"
#
# if sec2 allows, edit button:
sec2=$( ./local/security2 $dest $ud )
#
echo "<input name=\"$dest\" \
type=\"submit\" "
if [ "$sec2" = "*" ]; then
 echo "value=\"Edit selected record\">"
else
 echo "value=\"Edit not allowed\" disabled>"
fi 
#
# if ecurity3 allows, delete button:
sec3=$( ./local/security3 $dest $ud )
# echo "debug delete on $dest by $ud returned $sec3"
#
echo "<input name=\"$destroot"_"sed\" \
type=\"submit\" "
if [ "$sec3" = "*" ]; then
 echo "value=\"Delete selected record\"><br>"
else
 echo "value=\"Delete not allowed\" disabled><br>"
fi

echo "<input name=\"base\" value=\"$base\" type=\"hidden\">"
echo "<input name=\"record\" type=\"hidden\">"
echo "</form> <form name=\"inform\">"

echo "<select name=\"record\" SIZE=\"25\" onChange="
echo "\"prov(inform.record.options[inform.record.selectedIndex].value)\">"

data=",++%09$data"	# can't echo tab & data needs depost
cleaned=$(echo $data | sed -f depost -f toscr) 

sec=$( ./local/security1 $dest $ud )

 if (! [ -e $datadir/$destroot.sed ] ); then
   echo "# deletions" > $datadir/$destroot.sed ;
 fi

# this debug line can only be seeen in the html source.  It is not rendered.
#echo "debug (|$datadir/$dest| for |$ud| returns |$sec|) <br>"

# The reallocation of IP addresses has still to be adressed....

# Get data file
# delete non-current entries listed in the .sed file
# use doubler to make the data entry and the visible text
# select the required records in the cleaned selection criteria
# build the javascript select command elements

if [ "$sec" = "*" ]; then 
   cat $datadir/$dest \
 | sed -f $datadir/$destroot.sed \
 | sed -f $scriptdir/doubler.txt \
 | grep -i ".*	.*$cleaned"  \
 | sed -e 's:&lt;br&gt;:</option><br>:' \
       -e 's:^:<option value=\":' ;
else  if [ "$sec" != "#" ];then
         grep "$sec" $datadir/$dest \
 | sed -f $datadir/$destroot.sed \
 | sed -f $scriptdir/doubler.txt \
 | grep -i ".*	.*$cleaned"  \
 | sed -e 's:&lt;br&gt;:</option><br>:' \
       -e 's:^:<option value=\":' ;
      else echo '<p><font color="FF0000" size="4"></b>'
         echo "This computer is not properly set up -"
         echo "- please tell a member of staff. Thanks."
         echo "</b></font>"
      fi
fi
echo '</select></form><br>'
# echo '<p>'
echo '<script language="javascript">'
echo 'self.status=inform.record.selectedIndex ;'
echo 'doform.action=scriptbase+"/'$nextscript\"\; 
echo 'if(inform.record.selectedIndex >= 0) {
history.go(-1);
} </script>'

echo '<script> 
function prov(p$) { 
  provenance=""; '
  sec=$(./local/security0 $dest $ud)
echo "// debug security0 returned |$sec| for $dest $ud <br>"
  if [ "$sec" = "*" ]; then
    cat local/prov.txt | sed -e s/ppppp/p$/;
  fi
echo '  pro.innerHTML=provenance; 
  n=p$.indexOf("	"); 
  dat=p$.substring(n); 
  data.innerHTML=dat; 
  } 
</script> 
 
<b><label ID="pro"></label></b><br> 
<label ID="data"></label><p> 
 
<p><font color="green"><b> 
Use your browser Back button to abort this process. 
</b></font><br> 
 
</body></html> '
