[Mapbender-commits] r2936 - in branches/nimix_dev/http: img include javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Mon Sep 15 08:25:49 EDT 2008


Author: nimix
Date: 2008-09-15 08:25:49 -0400 (Mon, 15 Sep 2008)
New Revision: 2936

Added:
   branches/nimix_dev/http/img/balloon_ll.gif
   branches/nimix_dev/http/img/balloon_lr.gif
   branches/nimix_dev/http/img/balloon_ul.gif
   branches/nimix_dev/http/img/balloon_ur.gif
Modified:
   branches/nimix_dev/http/include/dyn_js.php
   branches/nimix_dev/http/javascripts/popup.js
   branches/nimix_dev/http/javascripts/tooltip_wms.php
Log:


Added: branches/nimix_dev/http/img/balloon_ll.gif
===================================================================
(Binary files differ)


Property changes on: branches/nimix_dev/http/img/balloon_ll.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/nimix_dev/http/img/balloon_lr.gif
===================================================================
(Binary files differ)


Property changes on: branches/nimix_dev/http/img/balloon_lr.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/nimix_dev/http/img/balloon_ul.gif
===================================================================
(Binary files differ)


Property changes on: branches/nimix_dev/http/img/balloon_ul.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/nimix_dev/http/img/balloon_ur.gif
===================================================================
(Binary files differ)


Property changes on: branches/nimix_dev/http/img/balloon_ur.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: branches/nimix_dev/http/include/dyn_js.php
===================================================================
--- branches/nimix_dev/http/include/dyn_js.php	2008-09-15 10:59:35 UTC (rev 2935)
+++ branches/nimix_dev/http/include/dyn_js.php	2008-09-15 12:25:49 UTC (rev 2936)
@@ -45,7 +45,7 @@
 			echo $row["var_name"]." = ".stripslashes($row["var_value"]).";\n";
 		}
 		else {
-			echo $row["var_name"]." = '".stripslashes($row["var_value"])."';\n";
+			echo $row["var_name"]." = '".str_replace(array('"',"'", "\r", "\n", "\0"), array('\"','\\\'','\r', '\n', '\0'), stripslashes($row["var_value"]))."';\n";
 		}
 	}
 }

Modified: branches/nimix_dev/http/javascripts/popup.js
===================================================================
--- branches/nimix_dev/http/javascripts/popup.js	2008-09-15 10:59:35 UTC (rev 2935)
+++ branches/nimix_dev/http/javascripts/popup.js	2008-09-15 12:25:49 UTC (rev 2936)
@@ -194,8 +194,41 @@
 	this.options.html=htmll;
 	$("#"+this.id+" .Content").html('<div class="scrollDiv">'+htmll+'</div>');
 }
+/**
+ * behaves like document.open(); (clear popup)
+ */
+mb_popup.prototype.open = function(){
+	oDoc = this.getDocument();
+	if(oDoc!=null){
+		return oDoc.open();
+	}
+	this.setHtml("");
+}
 
 /**
+ * behaves like document.write(); (appends content to the popup)
+ * 
+ * @param {String} text or html to write into the document
+ */
+mb_popup.prototype.write = function(str){
+	oDoc = this.getDocument();
+	if(oDoc!=null){
+		return oDoc.write(str);
+	}
+	this.setHtml(this.options.html+str);
+}
+
+/**
+ * behaves like document.close(); (finish loading state if popup is an iframe)
+ */
+mb_popup.prototype.close = function(){
+	oDoc = this.getDocument();
+	if(oDoc!=null){
+		return oDoc.close();
+	}
+}
+
+/**
  * sets the url of the content
  *
  * @param {String} url new url of the popup  

Modified: branches/nimix_dev/http/javascripts/tooltip_wms.php
===================================================================
--- branches/nimix_dev/http/javascripts/tooltip_wms.php	2008-09-15 10:59:35 UTC (rev 2935)
+++ branches/nimix_dev/http/javascripts/tooltip_wms.php	2008-09-15 12:25:49 UTC (rev 2936)
@@ -45,6 +45,8 @@
 	var tooltip_timeDelay = 1000;
 if(typeof(tooltip_styles)==='undefined')
 	var tooltip_styles = "";
+if(typeof(tooltip_styles_detail)==='undefined')
+	var tooltip_styles_detail = "";
 try{
 	var no_result_text = eval(tooltip_noResultArray);
 }catch(e){
@@ -54,7 +56,9 @@
 var tooltipWin=null;
 var point;
 var tooltipWfsRequestCount = 0;
+var tooltipWmsRequestCount = 0;
 var numberOfFinishedWfsRequests = 0;
+var numberOfFinishedWmsRequests = 0;
 var TooltipMsg = {'title':"<?php echo _mb("Informations");?>"};
 
 //buttonWfs_toDigitize_on ="0";
@@ -64,13 +68,6 @@
 		mod_tooltip_run();
 		mb_getMousePos(event,tooltipTarget);
 	}).mouseout(function(){mouseMoves=0;});
-
-	var styleObj = new StyleTag();
-	styleObj.addClass("dlist_even", tooltip_wfsStyleEven);
-	styleObj.addClass("glist_even", tooltip_wfsStyleEven);
-	styleObj.addClass("dlist_uneven", tooltip_wfsStyleUneven);
-	styleObj.addClass("glist_uneven", tooltip_wfsStyleUneven);
-	alert(tooltip_wfsStyleUneven);
 }
 
 eventInit.register(mod_tooltipInit);
@@ -88,6 +85,8 @@
 	
 	//FeatureInfo requests
 	urls = mb_mapObj[ind].getFeatureInfoRequests(point);
+	tooltipWmsRequestCount = urls.length;
+	numberOfFinishedWmsRequests	= 0;	
 	for(var j=0;j < urls.length;j++){
 		mb_ajax_post("../extensions/ext_featureInfoTunnel.php?url="+escape(urls[j]), null, 
 			checkFeatureInfoResults);
@@ -96,6 +95,7 @@
 	//WFS requests
 	requests = getWfsRequests(tooltipTarget, point_geom, true);
 	tooltipWfsRequestCount = requests.length;
+	numberOfFinishedWfsRequests = 0;
 	resultGeomArray = new GeometryArray();
 	for(var j=0;j< requests.length;j++){
 		mb_ajax_post("../" + wfsResultModulePath + wfsResultModuleFilename,requests[j],function(js_code,status){
@@ -111,6 +111,8 @@
 }
 
 function checkFeatureInfoResults(js_code,status){
+	numberOfFinishedWmsRequests++;
+
 	//check if there are results
 	if(js_code == "")
 		return;
@@ -132,15 +134,25 @@
 		resultGeomArray.union(g);
 	}
 	if (numberOfFinishedWfsRequests == tooltipWfsRequestCount) {
-		numberOfFinishedWfsRequests = 0;
 		if(resultGeomArray.count()>0){
 			//generate and output result
-			var html = createWfsResultHtml(resultGeomArray);
+			if(resultGeomArray.count()>1)
+				var html = createSimpleWfsResultHtml(resultGeomArray);
+			else
+				var html = createDetailedWfsResultHtml(resultGeomArray);
 			displayResultDoc(html);
 		}
 	}
 }
 
+function isFirstResult(){
+	return (numberOfFinishedWfsRequests+numberOfFinishedWmsRequests) == 1;
+}
+
+function isLastResult(){
+	return (numberOfFinishedWfsRequests == tooltipWfsRequestCount && numberOfFinishedWmsRequests == tooltipWmsRequestCount);
+}
+
 function displayResultDoc(html){
 	//test if we have a fixed destination and create popup otherwise
 	if(tooltip_destinationFrame=="")
@@ -152,31 +164,35 @@
 	    if (oDoc.document) {
 	        oDoc = oDoc.document;
 		}
-  			oDoc.open();
+		if(isFirstResult())
+	  		oDoc.open();
 		oDoc.write(html);
-		oDoc.close();
+		if(isLastResult())
+			oDoc.close();
 	});	
 }
 
 function showBalloonFrame(html){
-	//claculate Position
-	x=clickX+parseInt(document.getElementById(tooltipTarget).style.left);
-	y=clickY+parseInt(document.getElementById(tooltipTarget).style.top);
+	if(isFirstResult()){
+		//claculate Position
+		x=clickX+parseInt(document.getElementById(tooltipTarget).style.left);
+		y=clickY+parseInt(document.getElementById(tooltipTarget).style.top);
+		
+		//hide old Popup
+		if(tooltipWin&&tooltipWin.isVisible())
+			tooltipWin.destroy();
 	
-	//hide old Popup
-	if(tooltipWin&&tooltipWin.isVisible())
-		tooltipWin.destroy();
-
-	//create Popup and append document
-	tooltipWin = new mb_popup({html:'<iframe id="tooltipWin" name="tooltipWin" src="about:blank"/>',title:TooltipMsg.title,width:270,height:200,balloon:true,left:x,top:y});
-	$("#"+tooltipWin.id+" iframe").each(function(){
-	    var oDoc = this.contentWindow || this.contentDocument;
-	    if (oDoc.document) {
-	        oDoc = oDoc.document;
-		}
-		oDoc.write(html);
-	});
+		//create Popup and append document
+		tooltipWin = new mb_popup({html:'<iframe id="tooltipWin" name="tooltipWin" src="about:blank"/>',title:TooltipMsg.title,width:270,height:200,balloon:true,left:x,top:y});
+		//open document
+		tooltipWin.open();
+	}
+	tooltipWin.write(html);
 	
+	if(isLastResult()){
+		tooltipWin.close();
+	}
+		
 	//finally display popup
 	tooltipWin.show();
 }
@@ -236,58 +252,71 @@
 	return requests;
 }
 
-function createWfsResultHtml(_geomArray){
+function createSimpleWfsResultHtml(_geomArray){
 	var geometryIndex = 0;
 	wfsConf = get_complete_wfs_conf();
 	var html = '<html><head><style type="text/css">';
 	html += tooltip_styles;
 	html += "</style></head><body><table>\n";
-	if(_geomArray.count()>1){
-		for (var i = 0 ; i < _geomArray.count(); i ++) {
-			if (_geomArray.get(i).get(-1).isComplete()) {
-				html += "\t<tr class='glist_"+(i%2?"uneven":"even")+"'>\n\t\t<td \n";
-//				html += "\t\t\t onmouseover='mb_wfs_perform(\"over\",_geomArray.get("+i+"));' ";
-//				html += " onmouseout='mb_wfs_perform(\"out\",_geomArray.get("+i+"))' ";
-//				html += " onclick='mb_wfs_perform(\"click\",_geomArray.get("+i+"));' ";
-				var geomName = getWfsListEntry(_geomArray.get(i)); 
-				html += ">" + geomName +"</td>";
-				html += "\t\t</tr>\n"; 
-			}
+
+	for (var i = 0 ; i < _geomArray.count(); i ++) {
+		if (_geomArray.get(i).get(-1).isComplete()) {
+			html += "\t<tr class='list_"+(i%2?"uneven":"even")+"'>\n\t\t<td \n";
+//			html += "\t\t\t onmouseover='mb_wfs_perform(\"over\",_geomArray.get("+i+"));' ";
+//			html += " onmouseout='mb_wfs_perform(\"out\",_geomArray.get("+i+"))' ";
+//			html += " onclick='mb_wfs_perform(\"click\",_geomArray.get("+i+"));' ";
+			var geomName = getWfsListEntry(_geomArray.get(i)); 
+			html += ">" + geomName +"</td>";
+			html += "\t\t</tr>\n"; 
 		}
 	}
-	else{
-		var wfsConfIndex = _geomArray.get(geometryIndex).wfs_conf;
-		var currentWfsConf = wfsConf[wfsConfIndex];
-		for (var i = 0 ; i <currentWfsConf.element.length; i ++) {
-		    if(currentWfsConf.element[i].f_show_detail==1){
-		    	if( _geomArray.get(geometryIndex).e.getElementValueByName(currentWfsConf.element[i].element_name)!=false){
-					html +="<tr class='dlist_"+(i%2?"uneven":"even")+"'><td>\n"; 
-					html += currentWfsConf.element[i].f_label;
-					html +="</td>\n"; 
-					html += "<td>\n";
-					var elementVal = _geomArray.get(geometryIndex).e.getElementValueByName(currentWfsConf.element[i].element_name); 
-					if(currentWfsConf.element[i].f_form_element_html.indexOf("href")!=-1){
-						var setUrl = currentWfsConf.element[i].f_form_element_html.replace(/href\s*=\s*['|"]\s*['|"]/, "href='"+elementVal+"' target='_blank'");
-						if(setUrl.match(/><\/a>/)){
-							var newLink	=	setUrl.replace(/><\/a>/, ">"+elementVal+"</a>");
-						}
-						else{
-							var newLink = setUrl;
-						}
-						html +=  newLink;
+
+	html += "</table></body>\n";
+	return html;
+}
+
+function createDetailedWfsResultHtml(_geomArray){
+	var geometryIndex = 0;
+	var cnt = 0;
+	wfsConf = get_complete_wfs_conf();
+	var html = '<html><head><style type="text/css">';
+	html += tooltip_styles_detail;
+	html += "</style></head><body><table>\n";	
+		
+	var wfsConfIndex = _geomArray.get(geometryIndex).wfs_conf;
+	var currentWfsConf = wfsConf[wfsConfIndex];
+	for (var i = 0 ; i <currentWfsConf.element.length; i ++) {
+	    if(currentWfsConf.element[i].f_show_detail==1){
+	    	if( _geomArray.get(geometryIndex).e.getElementValueByName(currentWfsConf.element[i].element_name)!=false){
+				html +="<tr class='list_"+(cnt%2?"uneven":"even")+"'><td>\n"; 
+				html += currentWfsConf.element[i].f_label;
+				html +="</td>\n"; 
+				html += "<td>\n";
+				var elementVal = _geomArray.get(geometryIndex).e.getElementValueByName(currentWfsConf.element[i].element_name); 
+				if(currentWfsConf.element[i].f_form_element_html.indexOf("href")!=-1){
+					var setUrl = currentWfsConf.element[i].f_form_element_html.replace(/href\s*=\s*['|"]\s*['|"]/, "href='"+elementVal+"' target='_blank'");
+					if(setUrl.match(/><\/a>/)){
+						var newLink	=	setUrl.replace(/><\/a>/, ">"+elementVal+"</a>");
 					}
 					else{
-						html += elementVal;
+						var newLink = setUrl;
 					}
-					html += "</td></tr>\n";		
+					html +=  newLink;
 				}
+				else{
+					html += elementVal;
+				}
+				html += "</td></tr>\n";
+				cnt++;
 			}
 		}
 	}
+	
 	html += "</table></body>\n";
 	return html;
 }
 
+
 function getWfsListEntry (geom) {
 	wfsConfId = geom.wfs_conf;
 	wfsConf = window.frames["wfs_conf"].get_wfs_conf();



More information about the Mapbender_commits mailing list