#!/usr/bin/perl use CGI; $query = new CGI; umask 007; $user = $query->remote_user(); $http_home = "/home/mha/public_html/server"; $fax_home = "$http_home/fax"; $home = "$fax_home/$user"; $dbfile = "$home/incoming-db"; if ($query->param('file') eq "") { @file = $query->param; $action = $query->param(@file); if ($action eq "View") { while (-e "$home/faxdblock") { sleep 2; } system "touch $home/faxdblock"; system "cat $dbfile | sed -e '/@file/ s/NEW/VIEWED/' >$dbfile.tmp"; system "mv $dbfile.tmp $dbfile"; system "rm $home/faxdblock"; } $t=`cat $dbfile | awk -F "|" 'BEGIN{ORS=\"\"} \$1~/@file/ {print \$2}'`; if ($t eq "Normal") { $factorY=2; } else { $factorY=1; } $factor = `cat $home/setup | grep IMG-SIZE | awk -F: '{print \$2}'`; $factor =~ chomp($factor); $page = 1; $pages = `cat $dbfile | awk -F "|" '\$1~/@file/ {print \$7}'`; $pages =~ chomp($pages); } else { @file = $query->param('file'); $turn = $query->param('turn'); $action = "View"; $factorY= $query->param('factorY'); $factor = $query->param('factor'); $page = $query->param('page'); $pages = $query->param('pages'); if ($query->param('size') eq "Vergrößern") { $factor -= 2; if ($factor<0) {$factor=1;} } elsif ($query->param('size') eq "Verkleinern") { $factor += 2; } elsif ($query->param('size') eq "Umdrehen") { $turn="" if ($query->param('turn') eq "-rev"); $turn="-rev" if ($query->param('turn') eq ""); } } if ($action eq "View") { print $query->header(-expires=>'+4d'); $width_orig =`/usr/local/bin/tiffinfo $home/@file | grep "Image Length" | sed -n -e '$page p' | awk '{print \$3}'`; $height_orig =`/usr/local/bin/tiffinfo $home/@file | grep "Image Length" | sed -n -e '$page p' | awk '{print \$6}'`; $status =`cat $dbfile | awk -F "|" '\$1~/@file/ {print \$8}'`; print "\nView Fax\n\n"; print "\n\n"; print "\n"; print "\n"; print "
        \n"; print "Nutzer: $user | Persönl. Einstellungen | FaxHome | Inbox | View | Forward | Print | Delete\n
\n"; print "\n
Seite: ";
	for ($i=1; $i<=$pages; $i++) {
	  if ($i==$page) {
	    print $i,"  ";
	  } else {
	    print "",$i,"  ";
	  }
	}
	print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "   \n"; print "\n"; print "\n"; print " Verkleinerungs-Faktor: \n"; print "
\n"; $height = int(($height_orig*$factorY)/$factor); $width = int($width_orig/$factor); print "\n

\n"; print "
\nZurück zur Übersicht\n"; print "
\n"; print $query->end_html; system "echo \"`date '+%a %e.%b %X'`: Angeschaut (Seite $page$turn) von `cat $fax_home/admin/users|grep $user|awk -F: '{print \$1}'`\" >>$home/@file.log"; } elsif ($action eq "Forward") { print $query->header; print < Forward Fax
         Nutzer: $user | Persönl. Einstellungen | FaxHome | Inbox | View | Forward | Print | Delete

Leite Fax weiter an:


 \n";
	print "             \n";
	print "
\n
\n"; print "
\n
\nChemnitz FaxServer; ",`date`,"
\n"; print "
\n"; print $query->end_html; } elsif ($action eq "Print") { if (-e "$home/setup") { open (SETUP, "<$home/setup"); while () { SWITCH: /^PRINTER-NAME:(.*)/ && do {$printer=$1;}; /^PRINTER-SERVICE:(.*)/ && do {$service=$1;}; /^PRINTER-PASSWORD:(.*)/ && do {$password=$1;}; /^PRINTER-TYPE:(.*)/ && do {$type=$1;} } close (SETUP); } else { $printer=""; $service=""; $password=""; $type=""; } print $query->header; print "\nPrint Fax\n\n"; print "\n"; print "\n"; print "
        \n"; if (-e "$home/processing-@file") { print "Nutzer: $user | Persönl. Einstellungen | FaxHome | Inbox | View | Forward | Print | Delete\n
\n"; } else { print "Nutzer: $user | Persönl. Einstellungen | FaxHome | Inbox | View | Forward | Print | Delete\n
\n"; } print "

Drucke Fax

\n"; print "

\n"; print "Drucke Seiten von bis             
\n"; print "
"; print "
";
	if ($printer eq "") {
		print " Fester Drucker:  Fester Drucker: \n";
	if ($printer eq "") {
		print " Eigener Drucker: (Muß im Windows-Netzwerk freigegeben sein)\n";
	} else {
		print " Eigener Drucker: (Muß im Windows-Netzwerk freigegeben sein)\n";
	}
	print "     Rechner-Name (im Windows-Netz)\n";
	print "     Service-Name (als was freigegeben)\n";
	print "     Passwort für den Service (wenn vorhanden)\n";
	print "   ";
	print "";
	print "";
	print "";
	print "";
	print "
"; print "(Die Antwort dauert ein paar Sekunden, da das Fax erst konvertiert werden muß)
\n"; print "
\n
\nChemnitz FaxServer; ",`date`,"
\n"; print "
\n"; print $query->end_html; } else { # mark fax as deleted while (-e "$home/faxdblock") { sleep 2; } system "touch $home/faxdblock"; system "cat $dbfile | sed -e '/@file/ d' >$dbfile.tmp"; system "mv $dbfile.tmp $dbfile"; system "rm -f $home/faxdblock"; system "rm -f $home/@file*"; system "/home/mha/public_html/server/fax-usr/view_received.cgi"; }