# Function Include File for Coyote Linux Web Administrator
. /etc/coyote/coyote.conf

. /var/http/webadmin.enu  # Load the default language file (English)

# Include an aditional language files if there is one
[ -r /var/language/language ] && . /var/language/language

# Perform shell variable expansion for any form data
eval "`/usr/bin/proccgi`"

cr2br () {
	${@} | while read LINES; do
		echo "${LINES} <br>"
	done
}

cl_header () {
	echo "Content-type: text/html"
	echo ""
	echo "<html><head><title>${1}</title>"
	echo '<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#0000EE">'
}

cl_footer () {
	echo "<br><center>[<a href=/>$MM</a>]</center></body></html>"
}

cl_menuitem () {
cat << CLEOF
       <tr>
         <td width="100%" bgcolor="#C0C0C0" align="center" height="30">
           <font size="2" color="#000000">
CLEOF
echo "<a href=${2}>${1}</a></font></td></tr>"
}

cl_header2 () {
echo "Content-type: text/html"
echo "Pragma: nocache"
echo "cache-control: no-cache, must-revalidate, no-store"
echo ""
echo "<html><head><title>${1}</title>"
cat /var/http/style.inc
echo "</head>"
. /var/http/header.inc
# Start main Menu ---------
# test for PPP, coyote.conf may not be loaded so not testing INETTYPE
	cl_menuitem "$Mh" "/cgi-bin/index.cgi"
if [ "$INETTYPE" = "PPP" ]; then
	cl_menuitem "$Mdl $PPP_ISP" "/cgi-bin/dial-ppp.cgi"
	cl_menuitem "$Mhg $PPP_ISP" "/cgi-bin/hangup-ppp.cgi"
fi
	cl_menuitem "$Mln" "/cgi-bin/lanconf.cgi"
	cl_menuitem "$Mic" "/cgi-bin/inetconf.cgi"
	[ ! -z $DMZ_IPADDR ] && cl_menuitem "$Mdz" "/cgi-bin/dmzconf.cgi"
	cl_menuitem "$Mdh" "/cgi-bin/dhcpconf.cgi"
	cl_menuitem "$Mac" "/cgi-bin/adminconf.cgi"
	cl_menuitem "$Mpf" "/cgi-bin/portfw.cgi"
	cl_menuitem "$Msf" "/cgi-bin/sfirewall.cgi"
	cl_menuitem "$Mfc" "/cgi-bin/firewall.cgi"
	cl_menuitem "$Mqc" "/cgi-bin/qos.cgi"
	cl_menuitem "$Msp" "/cgi-bin/chpasswd.cgi"
#Allow future packages to add new pages to webadmin menu
   FILES=`ls /var/http/htdocs/cgi-bin/pak_*.inc 2>/dev/null`
   if [ ! -z "$FILES" ]; then
      for INCS in $FILES ; do
         if [ -x $INCS ] ; then
            . $INCS
         fi
      done
   fi   
	cl_menuitem "$Mcf" "/cgi-bin/editconf.cgi"
	cl_menuitem "$Mdt" "/cgi-bin/diags.cgi"
	cl_menuitem "$Mbt" "/cgi-bin/backup.cgi"
	cl_menuitem "$Mpc" "/cgi-bin/reboot.cgi"
# End main menu -----------
cat << CLEOF
</table></td><td><div align="center"><center><table border="0" width="90%"><tr><td>
CLEOF
}

# ---- Footer ---------------------------------------------------------------
cl_footer2 () {
cat /var/http/footer.inc
if [ -e /tmp/need.save ]; then
echo "<font color="#F00000"><b>$Wta</b></font>"
fi
if [ -e /tmp/need.reboot ]; then
echo "<font color="#F00000"><b>$Wtb</b></font>"
fi
}

# ---- Rebuild Conf File ---------------------------------------------------
cl_rebuildconf () {
cat /var/lib/lrpkg/*.configs > /tmp/CLDIRECTIVES
cat << CLEOF > /tmp/buildconf.sh
#!/bin/sh
rm /etc/coyote/coyote.conf
touch /etc/coyote/coyote.conf
CLEOF
chmod 700 /tmp/buildconf.sh
cat /tmp/CLDIRECTIVES | while read DIRECTIVE; do
	echo "[ -z \$${DIRECTIVE} ] || echo ${DIRECTIVE}=\'\$${DIRECTIVE}\' >> /etc/coyote/coyote.conf" >> /tmp/buildconf.sh
done
. /tmp/buildconf.sh
rm /tmp/buildconf.sh
rm /tmp/CLDIRECTIVES
touch /tmp/need.save
}

cl_editfile () {
Me="$1"
File="$2"
Title="$3"
cl_header2 "$Fce $Title"
case "$FORM_OKBTN" in
	"$Feo")
		echo "$Fcw $Title: "
		echo "<pre>"
		echo "$FORM_CFGFILE"
		echo "</pre>"
		echo "$FORM_CFGFILE" > "$File"
		echo
		echo "<font color="#FF0000">$Fdf<br></font>"
		touch /tmp/need.save
		;;
	*)

cat << CLEOF
<form method="POST" action="$Me"><table border="0"><tr><td width="100%" align="center" bgcolor="#000080"><font color="#FFFFFF"><b>$Fee $Title</b></font></td></tr>
<tr><td width="100%"><textarea rows="14" name="CFGFILE" cols="72" wrap=off>
CLEOF
cat "$File"
cat << CLEOF
</textarea></td></tr><tr><td width="100%" align="center"><input type="submit" value="$Feo" name="OKBTN"><input type="reset" value="$Fer" name="B2"></td></tr></table></form>
CLEOF
	;;
esac
cl_footer2
}
	
