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))))))