show empty svg if there is no data
[zc] / www / cgi-bin / template.cgi
index a14e081..f849a5d 100755 (executable)
@@ -12,8 +12,33 @@ offset_y=$( echo $offset | cut -d' ' -f3 )
 test -z "$offset_x" && offset_x=0
 test -z "$offset_y" && offset_y=0
 
+test -z "$QUERY_STRING" && QUERY_STRING='.'
+gnuplot_sed='';
+
+yrange=$( echo $QUERY_STRING | grep '^yrange=[0-9]*\.[0-9]*$' | cut -d= -f2 )
+test -z "$yrange" && yrange=0.2
+
+voltage=0
+echo $HTTP_REFERER | grep -q voltage && voltage=1
+echo $QUERY_STRING | grep -q voltage && voltage=1
+
+set > /dev/shm/$pn.env
+
 cat $dir/template.sql | sed -e "s/2008050087/$pn/" -e "s/x_axis_angle/x_axis_angle + $offset_x/" -e "s/y_axis_angle/y_axis_angle + $offset_y/" | psql --username=dpavlin -A -F "," -t zc > /dev/shm/$pn.txt
-cat $dir/template.gnuplot | sed -e "s,axes.txt,/dev/shm/$pn.txt," -e "s,^set terminal.*$,set terminal svg," -e "s,^set output.*$,set output," > /dev/shm/$pn.gnuplot
-gnuplot /dev/shm/$pn.gnuplot
+if [ -s /dev/shm/$pn.txt ] ; then
+cat $dir/template.gnuplot | sed -e "s,axes.txt,/dev/shm/$pn.txt," -e "s,^set terminal.*$,set terminal svg," -e "s,^set output.*$,set output," -e "s,-0.3 : 0.3,-$yrange : $yrange," > /dev/shm/$pn.gnuplot
+gnuplot -e "voltage=$voltage" /dev/shm/$pn.gnuplot
+else
+cat << __SVG__
+<?xml version="1.0" encoding="utf-8"  standalone="no"?>
+<svg 
+ width="600" height="1"
+ viewBox="0 0 600 480"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+>
+</svg>
+__SVG__
+fi
 
 #rm /dev/shm/axes.txt.$$ /dev/shm/axes.gnuplot.$$