[bknr-cvs] r1995 - in branches/xml-class-rework/projects/bos: . payment-website/infosystem payment-website/infosystem/de payment-website/infosystem/en worldpay-test

bknr at bknr.net bknr at bknr.net
Sun Oct 15 08:58:33 UTC 2006


Author: hhubner
Date: 2006-10-15 04:58:32 -0400 (Sun, 15 Oct 2006)
New Revision: 1995

Modified:
   branches/xml-class-rework/projects/bos/build.lisp
   branches/xml-class-rework/projects/bos/payment-website/infosystem/de/satellitenkarte.htm
   branches/xml-class-rework/projects/bos/payment-website/infosystem/en/satellitenkarte.htm
   branches/xml-class-rework/projects/bos/payment-website/infosystem/javascript.js
   branches/xml-class-rework/projects/bos/worldpay-test/contract-image-handler.lisp
   branches/xml-class-rework/projects/bos/worldpay-test/reports-xml-handler.lisp
Log:
Contract clipping fixed for IE, not yet finished though.


Modified: branches/xml-class-rework/projects/bos/build.lisp
===================================================================
--- branches/xml-class-rework/projects/bos/build.lisp	2006-10-14 13:23:45 UTC (rev 1994)
+++ branches/xml-class-rework/projects/bos/build.lisp	2006-10-15 08:58:32 UTC (rev 1995)
@@ -51,6 +51,7 @@
 
 (defun init ()
   (fix-dpd)
+  (asdf:oos 'asdf:load-op :bos.web)
   (format t "BOS Online-System~%")
   (when *cert-daemon*
     (format t "; starting certificate generation daemon, slime and webserver not started~%")

Modified: branches/xml-class-rework/projects/bos/payment-website/infosystem/de/satellitenkarte.htm
===================================================================
--- branches/xml-class-rework/projects/bos/payment-website/infosystem/de/satellitenkarte.htm	2006-10-14 13:23:45 UTC (rev 1994)
+++ branches/xml-class-rework/projects/bos/payment-website/infosystem/de/satellitenkarte.htm	2006-10-15 08:58:32 UTC (rev 1995)
@@ -5,6 +5,7 @@
 	<head>
 		<title>Satellitenkarte - Samboja Lestari</title>
 		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" charset="utf-8" />
+		<meta http-equiv="imagetoolbar" content="no"/>
 
 		<link href="../satellitenkarte_style.css" rel="stylesheet"/>
 		<script language="JavaScript" type="text/JavaScript" src="messages.js"></script>
@@ -313,6 +314,9 @@
 		<div id="selected_contract" style="position:absolute; z-index:10; visibility: inherit;">
 		 <img id="selected_contract_img" src="../bilder/spacer.gif" width="1" height="1"/>
 		</div>
+		<div id="own_contract" style="position:absolute; z-index:10; visibility: inherit;">
+		 <img id="own_contract_img" src="../bilder/spacer.gif" width="1" height="1"/>
+		</div>
 		<div id="LayersMenu" class="KarteRahmen" style="position: absolute; bottom: 31px; right: 1px; z-index: 15; visibility: inherit;">
 		  <table width="90" border="0" cellspacing="0" cellpadding="0">
 		    <tr> 
@@ -401,6 +405,12 @@
 	   "verkaufte" m²
 	  </div>
 	  <div id="qmAusschnitt" style="position:absolute; width:200px; height:115px; z-index:7; left: 172px; top: 512px; visibility: inherit;">
+		<div id="lupe_selected_contract" style="position:absolute; z-index:10; visibility: inherit;">
+		 <img id="lupe_selected_contract_img" src="../bilder/spacer.gif" width="1" height="1"/>
+		</div>
+		<div id="lupe_own_contract" style="position:absolute; z-index:10; visibility: inherit;">
+		 <img id="lupe_own_contract_img" src="../bilder/spacer.gif" width="1" height="1"/>
+		</div>
 		<table width="1800" height="1800" border="0" cellpadding="0" cellspacing="0">
 		  <tr>
 			<td><img name="qmlupe11" width="450" height="450" id="qmlupe11"/></td>

Modified: branches/xml-class-rework/projects/bos/payment-website/infosystem/en/satellitenkarte.htm
===================================================================
--- branches/xml-class-rework/projects/bos/payment-website/infosystem/en/satellitenkarte.htm	2006-10-14 13:23:45 UTC (rev 1994)
+++ branches/xml-class-rework/projects/bos/payment-website/infosystem/en/satellitenkarte.htm	2006-10-15 08:58:32 UTC (rev 1995)
@@ -5,6 +5,7 @@
 	<head>
 		<title>Satellite View - Samboja Lestari</title>
 		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" charset="utf-8" />
+		<meta http-equiv="imagetoolbar" content="no"/>
 
 		<link href="../satellitenkarte_style.css" rel="stylesheet"/>
 		<script language="JavaScript" type="text/JavaScript" src="messages.js"></script>
@@ -304,6 +305,12 @@
 	<div id="qmDetail" style="position:absolute; width:1px; height:1; z-index:4; left: 0px; top: 0px; visibility: hidden;"> 
 	  <div id="qmDetailKarte" style="position:absolute; width:360px; height:390px; z-index:1; left: 169px; top: 100px; visibility: inherit;" class="KarteRahmen"> 
 		<div id="qmLupe" style="position:absolute; width:36px; height:24px; z-index:11; visibility: inherit;"><img src="../bilder/lupe.gif" width="36" height="24"/></div>
+		<div id="selected_contract" style="position:absolute; z-index:10; visibility: inherit;">
+		 <img id="selected_contract_img" src="../bilder/spacer.gif" width="1" height="1"/>
+		</div>
+		<div id="own_contract" style="position:absolute; z-index:10; visibility: inherit;">
+		 <img id="own_contract_img" src="../bilder/spacer.gif" width="1" height="1"/>
+		</div>
 		<div id="LayersMenu" class="KarteRahmen" style="position: absolute; bottom: 31px; right: 1px; z-index: 15; visibility: inherit;">
 		  <table width="90" border="0" cellspacing="0" cellpadding="0">
 		    <tr> 
@@ -392,6 +399,12 @@
 	   "sold" m²
 	  </div>
 	  <div id="qmAusschnitt" style="position:absolute; width:200px; height:115px; z-index:7; left: 172px; top: 512px; visibility: inherit;">
+		<div id="lupe_selected_contract" style="position:absolute; z-index:10; visibility: inherit;">
+		 <img id="lupe_selected_contract_img" src="../bilder/spacer.gif" width="1" height="1"/>
+		</div>
+		<div id="lupe_own_contract" style="position:absolute; z-index:10; visibility: inherit;">
+		 <img id="lupe_own_contract_img" src="../bilder/spacer.gif" width="1" height="1"/>
+		</div>
 		<table width="1800" height="1800" border="0" cellpadding="0" cellspacing="0">
 		  <tr>
 			<td><img name="qmlupe11" width="450" height="450" id="qmlupe11"/></td>

Modified: branches/xml-class-rework/projects/bos/payment-website/infosystem/javascript.js
===================================================================
--- branches/xml-class-rework/projects/bos/payment-website/infosystem/javascript.js	2006-10-14 13:23:45 UTC (rev 1994)
+++ branches/xml-class-rework/projects/bos/payment-website/infosystem/javascript.js	2006-10-15 08:58:32 UTC (rev 1995)
@@ -1,11 +1,14 @@
 // JavaScript Document -*- Java -*-
 
+// Originally written by Matthias, Systemtakt neue Medien GbR
+// This program needs a lot of refactoring.
+
 // XXX bei klick auf übersichtskarte bleiben die links der poi-thumbnails aktiv
 // XXX beim schliessen des opener-fensters funktioniert "m2 kaufen" nicht mehr
 
 // Debugger anzeigen?
 
-var show_debugger = false;
+var show_debugger = true;
 
 // var http_pfad = "http:// createrainforest.org:8080";
 var http_pfad = "";
@@ -77,7 +80,7 @@
     }
 }
 
-function schreibe_debugger(text) {
+function dbg(text) {
     // Schriebt einen Text in die Debugger-Ebene
     debugger_text = debugger_text + text;
     document.getElementById("debugger").innerHTML = debugger_text;
@@ -132,7 +135,7 @@
 	close();
     }
     
-    schreibe_debugger("<br/> init() <br/>");
+    dbg("<br/> init() <br/>");
     // initialisierung startet die Ladefuntkionen
     // parst den URL-String und trennt logout, sponsorid und passwort
     // Debugger anzeigen oder ausblenden
@@ -153,7 +156,7 @@
 
     timer = 0;
 
-    schreibe_debugger("<br/> -> lade POI");
+    dbg("<br/> -> lade POI");
     poicomplete = false;
     window.frames['data'].window.location.replace(http_pfad + "/poi-javascript");
     poi_warten(); // starten der Wartenfunktion
@@ -179,7 +182,7 @@
     // poicomplet ist dei letzte Variable im Script daher wenn sie gesetzt ist ist das Ende erreicht
     if (poicomplete) {
 	// wenn der Datensatz komplett geladen ist wird der timer auf Null gesetzt und je nachdem ob sich eingeloggt wurde oder nicht die loginueberpruefung oder die Punkterzeugung gestartet
-	schreibe_debugger("<br/> -> <b>POI geladen! login: " + login + "</b>");
+	dbg("<br/> -> <b>POI geladen! login: " + login + "</b>");
 	document.getElementById("Info3Text").innerHTML = '<b>' + msg('Anzahl Sponsoren') + '</b><br />'
 	 + anzahlSponsoren
 	 + '<br /><br /><b>' + msg('Anzahl verkaufte m²') + '</b><br />'
@@ -189,14 +192,16 @@
 	}
 	UebersichtNavi();
 	qm_zusammenfassen();
+	icon_versatz(); 
+	poi_faehnchen_erzeugen();
     } else {
 	// wenn der Datensatz noch nicht komplett geladen ist wird der timer eroeht und die Funktion nochmal gestartet
 	timer++; 
 	if (timer < 100) {
-	    schreibe_debugger("."); 
+	    dbg("."); 
 	    setTimeout("poi_warten()", 100);
 	} else {
-	    schreibe_debugger("<br/> -> <b>POI konnten nicht geladen werden</b>");
+	    dbg("<br/> -> <b>POI konnten nicht geladen werden</b>");
 	    alert(msg('Fehler beim Laden der POI-Informationen, bitte probieren Sie es später noch einmal'));
 	}
     }
@@ -229,7 +234,7 @@
     loginstatus = undefined;
     window.frames['data'].window.location.replace(url);
 
-    schreibe_debugger("<br/> -> lade Login-Status - url ist " + url + '<br/>');
+    dbg("<br/> -> lade Login-Status - url ist " + url + '<br/>');
 
     login_warten(); // Wartefunktion starten
 
@@ -246,23 +251,23 @@
     // wenn loginstatus gesetzt ist ist das Ende erreicht
 
     if (loginstatus) { 
-	schreibe_debugger("<br/> -> <b>Login-Status geladen: " + loginstatus + "</b>");
+	dbg("<br/> -> <b>Login-Status geladen: " + loginstatus + "</b>");
 	// wenn loginstatus gesetzt ist wir timer auf Null gesetzt
 	// wenn lohinstatus = "login-failed" ist wird eine Fehlermeldung eingeblendet
 	if (loginstatus == "not-logged-in") {
-	    schreibe_debugger("<br/> -> <b>nicht eingeloggt!</b>");
+	    dbg("<br/> -> <b>nicht eingeloggt!</b>");
 	}
 
 	if (loginstatus == "login-failed") {
 	    document.getElementById("Loginfehler").style.visibility = 'visible';
-	    schreibe_debugger("<br/> -> <b>Login fehlgeschlagen!</b>");
+	    dbg("<br/> -> <b>Login fehlgeschlagen!</b>");
 	}
 	// wenn lohinstatus = "logged-in" ist wird das Anmeldefeld ausgelendet, das Logoutfeld eingeblendet und die Sponsorid angezeigt
 	// danach werden die Punkte erzuegt und die Quadratmeter geladen
 	if (loginstatus == "logged-in") {
 	    document.getElementById("Anmelden").style.visibility = "hidden";
 	    document.getElementById("SponsorInfo").style.visibility = "visible";
-	    schreibe_debugger("<br/> -> <b>Login erfolgreich!</b>");
+	    dbg("<br/> -> <b>Login erfolgreich!</b>");
 	} else {
 	    document.getElementById("Anmelden").style.visibility = "visible";
 	    document.getElementById("SponsorInfo").style.visibility = "hidden";
@@ -273,10 +278,10 @@
 	// wenn der Datensatz noch nicht komplett geladen ist wird der timer eroeht und die Funktion nochmal gestartet	
 	timer++; 
 	if (timer < 100) {
-	    schreibe_debugger("."); 
+	    dbg("."); 
 	    setTimeout("login_warten()", 100);
 	} else {
-	    schreibe_debugger("<br/> -> <b>Loginstatus konnten nicht geladen werden</b>");
+	    dbg("<br/> -> <b>Loginstatus konnten nicht geladen werden</b>");
 	}
     }
     return true;
@@ -285,7 +290,7 @@
 function ausloggen() {
     // Seesion loeschen -> ausloggen
     window.frames['data'].window.location.replace(http_pfad + "/logout");
-    schreibe_debugger("<br/> -> ausloggen");
+    dbg("<br/> -> ausloggen");
     qm_laden();
     return true;
 }
@@ -296,12 +301,11 @@
     timer = 0;
 
     profil_variable = 'profil';
-    qm_variable = 'qm';
 
     m2complete = false;
     window.frames['data'].window.location.replace(http_pfad + "/m2-javascript/");
 
-    schreibe_debugger("<br/> -> lade Quadratmeter ");
+    dbg("<br/> -> lade Quadratmeter ");
     qm_warten(); // Wartefunktion starten
     return true;
 }
@@ -310,29 +314,26 @@
     // Wartefunktion, da das Laden etwas traege ist wartet dieses Script bis derf Datensatz komplatt geladen ist
     // m2complete ist die letzte Variable im Script daher wenn sie gesetzt ist ist das Ende erreicht
     if (m2complete) {
-	// wenn m2complete gelden ist wird qm_erzeugen() gestartet und der timer auf Null gesetzt
-	schreibe_debugger("<br/> -> <b>Quadratmeter geladen!</b>");		
+	dbg("<br/> -> <b>Quadratmeter geladen!</b>");		
 	poi_laden();
     } else {
 	// wenn der Datensatz noch nicht komplett geladen ist wird der timer eroeht und die Funktion nochmal gestartet
 	timer++; 
 	if (timer < 100) {
-	    schreibe_debugger("."); 
+	    dbg("."); 
 	    setTimeout("qm_warten()", 100);
 	} else {
-	    schreibe_debugger("<br/> -> <b>qm konnten nicht geladen werden</b>");
+	    dbg("<br/> -> <b>qm konnten nicht geladen werden</b>");
 	}
     }
     return true;
 }
 
 var profil_variable;
-var qm_variable;
 
-function qm_fertig(_profil, _qms) {
+function qm_fertig(_profil) {
     if (_profil) {
 	eval(profil_variable + " = _profil;");
-	eval(qm_variable + " = _qms;");
     }
     m2complete = true;
 }
@@ -344,19 +345,16 @@
     // der Datensatz wird vorher auf Nullwerte gesetzt damit fals keine Daten in der URL enthalten sind der Quadratmeter als unverkauft angezeigt wird
     m2complete = false;
     timer=0;
-    n_profil = [];
-    n_profil['name'] = msg("noch nicht verkauft");
-    n_profil['country'] = "";
-    n_profil['anzahl'] = 0;
-    n_profil['datum'] = "";
-    n_profil['nachricht'] = "";
+    n_profil = {
+	name: msg("noch nicht verkauft")
+    };
 
     profil_variable = 'n_profil';
 
     m2complete = false;
     window.frames['data'].window.location.replace(http_pfad + "/m2-javascript/" + fremd_x + "/" + fremd_y);
     n_qm_warten(); // Wartefunktion starten
-    schreibe_debugger("<br/> -> lade Nachbar-Quadratmeter (" + fremd_x + "/" + fremd_y + ")");		
+    dbg("<br/> -> lade Nachbar-Quadratmeter (" + fremd_x + "/" + fremd_y + ")");		
     return true;
 }
 
@@ -364,9 +362,9 @@
     // Wartefunktion, da das Laden etwas traege ist wartet dieses Script bis derf Datensatz komplatt geladen ist
     // m2complete ist die letzte Variable im Script daher wenn sie gesetzt ist ist das Ende erreicht
     if (m2complete) {
-	// timer wird auf Nullgesetzt und n_qm_erzeugen wird gestartet
+	// timer wird auf Nullgesetzt und display_selected_contract wird gestartet
 	timer = 0;
-	schreibe_debugger("<br/> -> <b>Nachbar-Quadratmeter geladen!</b>");		
+	dbg("<br/> -> <b>Nachbar-Quadratmeter geladen!</b>");		
 	// text fuer das Nachbarprofil wird zusammengesetzt
 	if (n_profil['name'] == msg("noch nicht verkauft")) {
 	    var text = '<table width="155" border="0" cellspacing="0" cellpadding="0"><tr><td colspan="2" class="PoiNavigation">'
@@ -385,7 +383,7 @@
 		+ '<tr> <td width="60" class="PoiNavigation">' + msg('gesponsort') + ':</td><td class="PoiNavigation">'
 		+ n_profil['anzahl']
 		+ ' m²</td></tr><tr> <td width="60" class="PoiNavigation">'
-		// + msg('seit') + ':</td><td class="PoiNavigation">' + 'XXX FIXME!' // n_qm[1]['datum']
+		+ msg('seit') + ':</td><td class="PoiNavigation">' + n_profil.contracts[0].date
 		+ '</td></tr><tr> <td colspan="2" class="PoiNavigation"><img src="/infosystem/bilder/spacer.gif" width="1" height="20"/></td></tr>'
 		+ '<tr> <td colspan="2" class="PoiNavigation">'
 		+ n_profil['nachricht']
@@ -393,46 +391,93 @@
 	}
 	// Inhalt der Ueberschrift und des Infotextes werden gesetzt
 	document.getElementById("qmLaden").style.visibility = "hidden";
-	if (true) {		// XXX FIXME!
+	if (n_profil.contracts) {
 	    document.getElementById("Ueberschrift").innerHTML = msg("Verkaufte m²");
 	} else {
 	    document.getElementById("Ueberschrift").innerHTML = msg("zu verkaufen!");
 	}
 	document.getElementById("qmInfoText").innerHTML = text;
-	n_qm_erzeugen();
+	display_selected_contract();
     } else {
 	// wenn der Datensatz noch nicht komplett geladen ist wird der timer eroeht und die Funktion nochmal gestartet	
 	timer++; 
 	if (timer < 100) {
 	    setTimeout("n_qm_warten()", 100);
 	} else {
-	    document.getElementById("qmLaden").style.visibility = "hidden"; schreibe_debugger("<br/> -> <b>Nachbar-Quadratmeter konnten nicht geladen werden</b>");
+	    document.getElementById("qmLaden").style.visibility = "hidden"; dbg("<br/> -> <b>Nachbar-Quadratmeter konnten nicht geladen werden</b>");
 	}
     }
     return true;
 }
 
-function n_qm_erzeugen() {
-    // Erzeugen der Nachbarquadratmeter
-    var selected_contract_img = document.getElementById('selected_contract_img');
+function load_contract_image(contract, image, factor, color) 
+{
+    var container = image.parentNode;
+
+    if (!color) {
+	color = 'ffff00';
+    }
+
+    container.style.visibility = 'hidden';
+    image.onload = function () {
+	this.parentNode.style.visibility = 'inherit';
+    }
+    image.src = '/contract-image/' + contract.id + '/' + color;
+    image.width = contract.width * factor;
+    image.height = contract.height * factor;
+
+    // falls der Vertrag aus dem angezeigten Bereich herausragt, wird das bild entsprechend geclipped.
+    // XXX fixme das ist noch nicht "ganz" fertig hier *hüstel*
+    if ((contract.left + contract.width - x_anf) > 360) {
+	container.style.clip
+	    = 'rect(0px '
+	    + (contract.width - (contract.left + contract.width - x_anf - 360)) * factor + 'px '
+	    + (contract.height - (contract.top + contract.height - y_anf - 360)) * factor + 'px '
+	    + '0px)';
+    } else {
+	container.style.clip = 'rect(auto auto auto auto)';
+    }
+
+    container.style.left = (contract.left - x_anf) * factor + 'px';
+    container.style.top = (contract.top - y_anf) * factor + 'px';
+
+}
+
+function display_selected_contract()
+{
+    // Anzeigen der ausgewählten Nachbarquadratmeter
+
     if (n_profil.contracts) {
 	var contract = n_profil.contracts[0];
 
-	selected_contract_img.src = '/contract-image/' + contract.id;
-	selected_contract_img.width = contract.width;
-	selected_contract_img.height = contract.height;
-
-	document.getElementById('selected_contract').style.left = (contract.left - x_anf) + 'px';
-	document.getElementById('selected_contract').style.top = (contract.top - y_anf) + 'px';
+	load_contract_image(contract,
+			    document.getElementById('selected_contract_img'),
+			    1);
+	load_contract_image(contract,
+			    document.getElementById('lupe_selected_contract_img'),
+			    5);
     } else {
-	selected_contract_img.src = '../bilder/spacer.gif';
+	document.getElementById('selected_contract_img').src = '../bilder/spacer.gif';
+	document.getElementById('lupe_selected_contract_img').src = '../bilder/spacer.gif';
     }
 }
 
+function display_own_sqm()
+{
+    var contract = profil.contracts[0];
+    var img = document.getElementById('own_contract_img');
+    var enlarged_image = document.getElementById('lupe_own_contract_img');
+
+    load_contract_image(contract, img, 1, "ff0000");
+    load_contract_image(contract, enlarged_image, 5, "ff0000");
+}
+
 function qm_zusammenfassen() {
     // zusammenfassen mehererer Quadratmeterfähnchen zu einem Fähnchen.
-    // es wird geprüft, ob sich auf der Detailkarte des qm noch mehr qm azeigen lassen dadurch wird die Darstellung der Fähnchen vereinfacht
+    // es wird geprüft, ob sich auf der Detailkarte des qm noch mehr qm anzeigen lassen dadurch wird die Darstellung der Fähnchen vereinfacht
 
+    return;
+    
     var i=1;
     while (qm[i]) {
 	var qmV = qm[i];
@@ -471,7 +516,6 @@
 	}
 	i++;
     }
-    icon_versatz(); 
     return true;
 }
 
@@ -532,20 +576,14 @@
 	index++;
 	i++;
     }
-    var i=1;
-    while (qm[i]) {
-	if (qm[i]['status'] == "mitte") {
-	    var qmV = qm[i];
-	    var uebV = uebersicht_icons[index];
-	    uebersicht_icons[index] = new Array;
-	    uebersicht_icons[index]['x'] = qmV['x'];
-	    uebersicht_icons[index]['y'] = qmV['y'];
-	    uebersicht_icons[index]['icon'] = "qm";			
-	    uebersicht_icons[index]['name'] = msg("meine m²");
-	    uebersicht_icons[index]['id'] = i;
-	}
-	index++;		
-	i++;
+    if (profil.contracts) {
+	var contract = profil.contracts[0];
+	uebersicht_icons[index++] = {
+	    x: contract.left,
+	    y: contract.top,
+	    icon: 'qm',
+	    name: msg("meine m²")
+	};
     }
 
     var i=1;
@@ -556,7 +594,7 @@
 	    var vergleichV_x = uebersicht_icons[j]['x'] + 240;			
 	    var vergleichV_y = uebersicht_icons[j]['y'] + 240;
 	    versatz = kollisonsabfrage(uebV_x + 240, uebV_y + 240, vergleichV_x, vergleichV_y);
-	    // if (versatz[0]) {schreibe_debugger("<br/> -> POI[" + i + "] Richtungsaenderungvorschlag: " + versatz[0]);}
+	    // if (versatz[0]) {dbg("<br/> -> POI[" + i + "] Richtungsaenderungvorschlag: " + versatz[0]);}
 	    var test = new Array;
 	    test[0] = versatz[0];
 	    var versatz_index = versatz[0] + 1;
@@ -567,7 +605,7 @@
 		versatz_index--;
 		if (versatz_index < 1) {versatz_index = 4;}
 		k++;
-		// schreibe_debugger("<br/> -> Richtungsaenderungstest bei " + versatz_index + " Fehler: " + richtungsfehler);
+		// dbg("<br/> -> Richtungsaenderungstest bei " + versatz_index + " Fehler: " + richtungsfehler);
 
 		if (versatz_index == 1) {
 		    richtungsfehler = false;
@@ -578,7 +616,7 @@
 			    test = kollisonsabfrage(((uebV_x + 240) + versatz[versatz_index]), (uebV_y + 240) , testV_x, testV_y);
 			    if (test[0] != 0) {
 				richtungsfehler = true; 
-				// schreibe_debugger("<br/> -> Kollision mit " + l);
+				// dbg("<br/> -> Kollision mit " + l);
 			    }
 			}
 		    }
@@ -593,7 +631,7 @@
 			    test = kollisonsabfrage((uebV_x + 240), ((uebV_y + 240) + versatz[versatz_index]), testV_x, testV_y);
 			    if (test[0] != 0) {
 				richtungsfehler = true;
-				// schreibe_debugger("<br/> -> Kollision mit " + l);
+				// dbg("<br/> -> Kollision mit " + l);
 			    }
 			}
 		    }
@@ -608,7 +646,7 @@
 			    test = kollisonsabfrage(((uebV_x + 240) + versatz[versatz_index]), (uebV_y + 240) , testV_x, testV_y);
 			    if (test[0] != 0) {
 				richtungsfehler = true;
-				// schreibe_debugger("<br/> -> Kollision mit " + l);
+				// dbg("<br/> -> Kollision mit " + l);
 			    }
 			}
 		    }
@@ -623,7 +661,7 @@
 			    test = kollisonsabfrage((uebV_x + 240), ((uebV_y + 240) + versatz[versatz_index]), testV_x, testV_y);
 			    if (test[0] != 0) {
 				richtungsfehler = true;
-				// schreibe_debugger("<br/> -> Kollision mit " + l);
+				// dbg("<br/> -> Kollision mit " + l);
 			    }
 			}
 		    }
@@ -636,7 +674,7 @@
 		if (versatz_index == 2) {uebersicht_icons[i]['y'] = uebersicht_icons[i]['y'] + versatz[versatz_index];}
 		if (versatz_index == 3) {uebersicht_icons[i]['x'] = uebersicht_icons[i]['x'] + versatz[versatz_index];}				
 		if (versatz_index == 4) {uebersicht_icons[i]['y'] = uebersicht_icons[i]['y'] + versatz[versatz_index];}
-		// schreibe_debugger("<br/> -> versetze POI[" + i + "] durch POI[" + j + "] nach " + versatz_index + " um " + versatz[versatz_index] + "<br/>");
+		// dbg("<br/> -> versetze POI[" + i + "] durch POI[" + j + "] nach " + versatz_index + " um " + versatz[versatz_index] + "<br/>");
 		uebV_x = uebersicht_icons[i]['x'];			
 		uebV_y = uebersicht_icons[i]['y'];
 	    }
@@ -644,11 +682,9 @@
 	}
 	i++;
     }
-
-    pkt_erzeugen();
 }
 
-function pkt_erzeugen() {
+function poi_faehnchen_erzeugen() {
     // Erzeugen der Faehnchen fuer die POI, der array wird durchlaufen und die entsprechenden Informationen in Ebenen dargestellt
     var i = 1;
     while (uebersicht_icons[i]) {
@@ -660,8 +696,10 @@
 	var x = parseInt(Math.round(uebersicht_icons[i]['x'] / 30) + 170 - 8);
 	var y = parseInt(Math.round(uebersicht_icons[i]['y'] / 30) + 101 - 8);
 
-			
-	if (y > 360 + 99 - 13) (y = 360 + 99 -13);
+	// "aha!"
+	if (y > 360 + 99 - 13) {
+	    y = 360 + 99 - 13;
+	}
 
 	// definieren der Styles
 	neueebene.style.position="absolute";
@@ -674,24 +712,24 @@
 			
 	neueebene.align = "left";
 	var faehnchentext = msg(uebersicht_icons[i]['name']);
-	var index = uebersicht_icons[i]['id'];
 	if (uebersicht_icons[i]['icon'] == "sale") {
+	    var index = uebersicht_icons[i]['id'];
 	    neueebene.innerHTML = '<a href="#" onClick="qmDetail_anzeigen(' + poi[index]['x'] + ', ' + poi[index]['y'] + ', 0);" class="FaehnchenLink" onMouseOver="faehnchen_einblenden(' + (x + 17) + ', ' + y + ', "' + faehnchentext + '")" onMouseOut="faehnchen_ausblenden();"><img src="/images/' + uebersicht_icons[i]['icon'] + '.gif" border="0"/></a>';
 	} else if (uebersicht_icons[i]['icon'] == "qm") {
-	    neueebene.innerHTML = '<a href="#" onClick="qmDetail_anzeigen(' + qm[index]['x'] + ', ' + qm[index]['y'] + ',' + index + ');" onMouseOver="faehnchen_einblenden(' + (x + 17) + ', ' + y + ', "' + faehnchentext + '")" onMouseOut="faehnchen_ausblenden();"><img src="/images/qm.gif" border="0"/></a>';
+	    neueebene.innerHTML = '<a href="#" onClick="qmDetail_anzeigen(' + profil.contracts[0].left + ', ' + profil.contracts[0].top + ', 0);" onMouseOver="faehnchen_einblenden(' + (x + 17) + ', ' + y + ', "' + faehnchentext + '")" onMouseOut="faehnchen_ausblenden();"><img src="/images/qm.gif" border="0"/></a>';
 	} else {
 	    neueebene.innerHTML = '<a href="#" onClick="PoiDetail_anzeigen(' + uebersicht_icons[i]['id'] + ');" class="FaehnchenLink" onMouseOver="faehnchen_einblenden(' + (x + 17) + ', ' + y + ', "' + faehnchentext + '")" onMouseOut="faehnchen_ausblenden();"><img src="/images/' + uebersicht_icons[i]['icon'] + '.gif" border="0" /></a>';
 	}				
 	i++;
     }
-    schreibe_debugger("<br/> -> <b>" + (i-1) + " Faehnchen erzeugt</b>");		
+    dbg("<br/> -> <b>" + (i-1) + " Faehnchen erzeugt</b>");		
     return true;
 
 }
 function poi_pos_setzen(objekt, i) {
     // qm setzen	
 
-    schreibe_debugger("<br> -> Position gestezt");
+    dbg("<br> -> Position gestezt");
     var x_obj = parseInt(Math.floor(objekt['x'] - x_anf));
     var y_obj = parseInt(Math.floor(objekt['y'] - y_anf));
 
@@ -710,7 +748,7 @@
 
 function qm_pos_setzen(objekt, i) {
     // qm setzen	
-    schreibe_debugger("<br> -> Position gestezt");
+    dbg("<br> -> Position gestezt");
     var x_obj = parseInt(Math.floor(objekt['x'] - x_anf));
     var y_obj = parseInt(Math.floor(objekt['y'] - y_anf));
 
@@ -778,6 +816,10 @@
     // Ebenen entsprechen ein- oder ausblenden
     hide_poi_panorama();
     hide_poi_luftbild();
+
+    n_profil = {};
+    display_selected_contract();
+
     show_page("uebersicht");
     document.getElementById("qmDetail").style.visibility = "hidden";
     document.getElementById("PoiDetail").style.visibility = "hidden";
@@ -785,7 +827,7 @@
     document.getElementById("UebersichtPosition").style.visibility = "hidden";
     document.getElementById("Ueberschrift").innerHTML = start_ueberschrift;
     document.getElementById("Untertitel").innerHTML = "";	
-    schreibe_debugger("<br/> -> <b>Uebersicht anzeigen</b>");		
+    dbg("<br/> -> <b>Uebersicht anzeigen</b>");		
     return true;
 }
 
@@ -896,7 +938,7 @@
     x_anf = Math.max(0, Math.round((the_poi['x'] - 180) / 90) * 90);
     y_anf = Math.min(10440, Math.round((the_poi['y'] - 180) / 90) * 90);
 
-    schreibe_debugger("<br/> -> Kacheln laden");
+    dbg("<br/> -> Kacheln laden");
     // Kacheln von Server holen und dem entsprechenden Bild zuordnen	
     for (var x = 0; x < 4; x++) {
 	for (var y = 0; y < 4; y++) {
@@ -964,7 +1006,7 @@
     document.getElementById("Uebersicht").style.visibility = "hidden";
     document.getElementById("PoiDetail").style.visibility = "visible";	
     document.getElementById("UebersichtPosition").style.visibility = "visible";
-    schreibe_debugger("<br/> -> <b>POI-Detailansicht anzeigen</b>");
+    dbg("<br/> -> <b>POI-Detailansicht anzeigen</b>");
     return true;
 }
 
@@ -986,7 +1028,7 @@
     document.getElementById("PoiInfoText").innerHTML =  poi[aktuelles_objekt]['imagetext'][bild - 1];		
     document.getElementById("Ueberschrift").innerHTML = poi[aktuelles_objekt]['imageueberschrift'][bild - 1];
     document.getElementById("Untertitel").innerHTML = poi[aktuelles_objekt]['imageuntertitel'][bild - 1];
-    schreibe_debugger("<br/> -> <b>POI-Foto-Detailansicht anzeigen</b>");
+    dbg("<br/> -> <b>POI-Foto-Detailansicht anzeigen</b>");
     return true;
 }
 
@@ -1016,17 +1058,19 @@
 
     for (var x = 0; x < 4; x++) {
 	for (var y = 0; y < 4; y++) {
-	    var img = eval("document.qmimg" + (x + 1) + "" + (y + 1));
-	    img.src = http_pfad + "/overview/" + (x_anf + (x * 90 )) + "/" + (y_anf + (y * 90 )) + "/" + active_layer_names().join("/");
+	    
+	    var img = document["qmimg" + (x + 1) + "" + (y + 1)];
+	    img.src = http_pfad + "/overview/" + (x_anf + (x * 90)) + "/" + (y_anf + (y * 90)) + "/" + active_layer_names().join("/");
 
-	    var img = eval("document.qmlupe" + (x + 1) + "" + (y + 1));
-	    img.src = http_pfad + "/overview/" + (x_anf + (x * 90 )) + "/" + (y_anf + (y * 90 )) + "/" + active_layer_names().join("/");
+	    var img = document["qmlupe" + (x + 1) + "" + (y + 1)];
+	    img.src = http_pfad + "/overview/" + (x_anf + (x * 90)) + "/" + (y_anf + (y * 90)) + "/" + active_layer_names().join("/");
 
 	}
     }
 }
 	
-function qmDetail_anzeigen(x_koord, y_koord, objekt) {
+function qmDetail_anzeigen(x_koord, y_koord, objekt)
+{
     // Funktion zum Anzeigen der "meine qm" Karte
     // Funktion zur Anzeige der POIs im Detail
     aktuelles_objekt = objekt;
@@ -1035,20 +1079,21 @@
     // alte Kacheln loeschen
     for (var x = 0; x < 4; x++) {
 	for (var y = 0; y < 4; y++) {
-	    var img = eval("document.img" + (x + 1) + "" + (y + 1));
+	    var img = document["img" + (x + 1) + "" + (y + 1)];
 	    img.src = "/infosystem/bilder/spacer.gif";
 
-	    var img = eval("document.qmlupe" + (x + 1) + "" + (y + 1));
+	    var img = document["qmlupe" + (x + 1) + "" + (y + 1)];
 	    img.src = "/infosystem/bilder/spacer.gif";
 	}
     }
 	
-    // Koordinaten auf einen geraden Wert innerhalb des Rasters rechen (es sind nur Vielfache von 90 gueltig),
-    // Startwert der Kacheln ermitteln
+    // Koordinaten auf einen geraden Wert innerhalb des Rasters
+    // umrechnen (es sind nur Vielfache von 90 gueltig), Startwert der
+    // Kacheln ermitteln
     x_anf = Math.max(0, Math.round((x_koord - 180) / 90) * 90);
     y_anf = Math.min(10440, Math.round((y_koord - 180) / 90) * 90);
 	
-    schreibe_debugger("<br/> -> Kacheln laden (" + x_anf + " / " + y_anf + ")");		
+    dbg("<br/> -> Kacheln laden (" + x_anf + " / " + y_anf + ")");		
     // Kacheln von Server holen und dem entsprechenden Bild zuordnen
 
     load_sqm_tiles(x_anf, y_anf);
@@ -1058,14 +1103,14 @@
 	var loeschen = eval("document.getElementById('qm" + i + "')");
 	document.getElementById("qmAusschnitt").removeChild(loeschen);
     }
-    schreibe_debugger("<br/> -> " + erzeugte_zeilen + " zeilen geloescht");
+    dbg("<br/> -> " + erzeugte_zeilen + " zeilen geloescht");
 
     // qm loeschen
     for (var i  = 1; i <= erzeugte_positionen; i++) {
 	var loeschen = eval("document.getElementById('pos" + i + "')");
 	document.getElementById("qmDetailKarte").removeChild(loeschen);
     }
-    schreibe_debugger("<br/> -> " + erzeugte_positionen + " Positionen geloescht");
+    dbg("<br/> -> " + erzeugte_positionen + " Positionen geloescht");
 
     x_obj = parseInt(Math.floor(x_koord - x_anf));
     y_obj = parseInt(Math.floor(y_koord - y_anf));
@@ -1087,8 +1132,8 @@
 			
 	    i++;
 	}	
-	schreibe_debugger("<br/> -> " + erzeugte_positionen + " Quadratmeterpositionen");
-	schreibe_debugger("<br/> -> " + erzeugte_zeilen + " zeilen fuer Quadratmeter eingezeichnet");
+	dbg("<br/> -> " + erzeugte_positionen + " Quadratmeterpositionen");
+	dbg("<br/> -> " + erzeugte_zeilen + " zeilen fuer Quadratmeter eingezeichnet");
 	
     }
     // setzen des Positionskaestchens auf der kleinen Übersichtskarte	
@@ -1111,7 +1156,7 @@
 	    + '<tr> <td width="60" class="PoiNavigation">' + msg('Land') + ':</td><td class="PoiNavigation">' + profil['country'] + '</td></tr>'
 	    + '<tr> <td colspan="2" class="PoiNavigation"><img src="/infosystem/bilder/spacer.gif" width="1" height="10"/></td></tr>'
 	    + '<tr> <td width="60" class="PoiNavigation">' + msg('gesponsort') + ':</td><td class="PoiNavigation">' + profil['anzahl'] + ' m²</td></tr>'
-	    + '<tr> <td width="60" class="PoiNavigation">' + msg('seit') + ':</td><td class="PoiNavigation">' + qm[aktuelles_objekt]['datum'] + '</td></tr>'
+	    + '<tr> <td width="60" class="PoiNavigation">' + msg('seit') + ':</td><td class="PoiNavigation">' + qm[aktuelles_objekt]['date'] + '</td></tr>'
 	    + '<tr> <td colspan="2" class="PoiNavigation"><img src="/infosystem/bilder/spacer.gif" width="1" height="20"/></td></tr>'
 	    + '<tr> <td colspan="2" class="PoiNavigation">' + profil['nachricht'] + '</td></tr>'
 	    + '</table>';
@@ -1151,7 +1196,11 @@
     element.onmousedown = maus_gedrueckt;
     element.onmouseup = maus_losgelassen;
 
-    schreibe_debugger("<br/> -> <b>qm-Detailansicht anzeigen</b>");
+    if (profil.contracts) {
+	display_own_sqm();
+    }
+
+    dbg("<br/> -> <b>qm-Detailansicht anzeigen</b>");
     return true;
 }
 

Modified: branches/xml-class-rework/projects/bos/worldpay-test/contract-image-handler.lisp
===================================================================
--- branches/xml-class-rework/projects/bos/worldpay-test/contract-image-handler.lisp	2006-10-14 13:23:45 UTC (rev 1994)
+++ branches/xml-class-rework/projects/bos/worldpay-test/contract-image-handler.lisp	2006-10-15 08:58:32 UTC (rev 1995)
@@ -12,19 +12,19 @@
 rectangular image will have the size of the contracts' bounding box.
 All square meters will have yellow color, the background will be transparent."
   (destructuring-bind (left top width height) (contract-bounding-box contract)
-    (cl-gd:with-image* (width height)
-      (setf (cl-gd:transparent-color) (cl-gd:allocate-color 0 0 0))
-      ;; We manipulate pixels in a temporary array which is copied to the GD image as
-      ;; a whole for performance reasons.  The FFI is way too slow to manipulate individual pixels.
-      (let ((work-array (make-array (list width height) :element-type 'fixnum :initial-element 0))
-	    (yellow (cl-gd:allocate-color 255 255 0)))
-	(flet ((set-pixel (x y)
-		 (decf x left)
-		 (decf y top)
-		 (setf (aref work-array x y) yellow)))
-	  (dolist (m2 (contract-m2s contract))
-	    (set-pixel (m2-x m2) (m2-y m2))))
-	(cl-gd:do-rows (y)
-	  (cl-gd:do-pixels-in-row (x)
-	    (setf (cl-gd:raw-pixel) (aref work-array x y)))))
-      (emit-image-to-browser req cl-gd:*default-image* :png))))
+      (cl-gd:with-image* (width height)
+	(setf (cl-gd:transparent-color) (cl-gd:allocate-color 0 0 0))
+	;; We manipulate pixels in a temporary array which is copied to the GD image as
+	;; a whole for performance reasons.  The FFI is way too slow to manipulate individual pixels.
+	(let ((work-array (make-array (list width height) :element-type 'fixnum :initial-element 0))
+	      (color (parse-color (or (second (decoded-handler-path handler req)) "ffff00"))))
+	  (flet ((set-pixel (x y)
+		   (decf x left)
+		   (decf y top)
+		   (setf (aref work-array x y) color)))
+	    (dolist (m2 (contract-m2s contract))
+	      (set-pixel (m2-x m2) (m2-y m2))))
+	  (cl-gd:do-rows (y)
+	    (cl-gd:do-pixels-in-row (x)
+	      (setf (cl-gd:raw-pixel) (aref work-array x y)))))
+	(emit-image-to-browser req cl-gd:*default-image* :png :cache-sticky t))))
\ No newline at end of file

Modified: branches/xml-class-rework/projects/bos/worldpay-test/reports-xml-handler.lisp
===================================================================
--- branches/xml-class-rework/projects/bos/worldpay-test/reports-xml-handler.lisp	2006-10-14 13:23:45 UTC (rev 1994)
+++ branches/xml-class-rework/projects/bos/worldpay-test/reports-xml-handler.lisp	2006-10-15 08:58:32 UTC (rev 1995)
@@ -20,8 +20,8 @@
 
 (defmethod handle ((handler reports-xml-handler) req)
   (with-xml-response req
-    (destructuring-bind (name *year* &rest arguments) (decoded-handler-path handler req)
-      (setf *year* (parse-integer *year*))
+    (destructuring-bind (name &optional *year* &rest arguments) (decoded-handler-path handler req)
+      (setf *year* (and *year* (parse-integer *year*)))
       (let ((*contracts-to-process* (sort (remove-if (lambda (contract)
 						       (or (not (contract-paidp contract))
 							   (and *year*
@@ -37,6 +37,7 @@
 (defreport all-contracts ()
   (dolist (contract *contracts-to-process*)
     (with-element "contract"
+      (attribute "universal-time" (contract-date contract))
       (attribute "date-time" (format-date-time (contract-date contract) :xml-style t))
       (attribute "country" (sponsor-country (contract-sponsor contract)))
       (attribute "sqm-count" (length (contract-m2s contract))))))




More information about the Bknr-cvs mailing list