[Mapbender-commits] r2955 - in branches/nimix_dev/http: html
javascripts
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Wed Sep 17 08:36:20 EDT 2008
Author: nimix
Date: 2008-09-17 08:36:20 -0400 (Wed, 17 Sep 2008)
New Revision: 2955
Modified:
branches/nimix_dev/http/html/mod_treefolder2.php
branches/nimix_dev/http/javascripts/jsTree.js
Log:
cathegorie folders for wms
Modified: branches/nimix_dev/http/html/mod_treefolder2.php
===================================================================
--- branches/nimix_dev/http/html/mod_treefolder2.php 2008-09-17 12:34:59 UTC (rev 2954)
+++ branches/nimix_dev/http/html/mod_treefolder2.php 2008-09-17 12:36:20 UTC (rev 2955)
@@ -75,12 +75,76 @@
var errors = 0;
var state=Array();
var treeState = "";
-var arrNodes =
-[
- ['root_id', ['Layer','javascript:_foo()']
+<?php
+//load structure
+$sql = "SELECT * FROM gui_treegde WHERE fkey_gui_id = $1 ORDER BY lft;";
+$v = array($_SESSION["mb_user_gui"]);
+$t = array("s");
+$nr = array();
+$str = array();
+$categories = array();
+$path = array();
+$rights = array();
+$cnt = 0;
+$res = db_prep_query($sql, $v, $t);
+//build javascript data array for jsTree
+while($row = db_fetch_array($res)){
+ //push javascript array elements to a single array with lefts and rights
+ $left = "['folder_".$row['id']."', ['".$row['my_layer_title']."', 'javascript:_foo()'],[";
+ $right = "]],";
+ array_push($nr, $row['lft']);
+ array_push($str, $left);
+ array_push($nr, $row['rgt']);
+ array_push($str, $right);
+
+ //finish all nodes that have no further childs
+ while(count($rights) > 0 && $rights[count($rights)-1]<$row['lft']){
+ array_pop($rights);
+ array_pop($path);
+ }
- ]
-];
+ //set path for each wms that is referenced in this leaf
+ array_push($rights, $row['rgt']);
+ array_push($path, "folder_".$row['id']);
+ if($row['wms_id']!=""){
+ foreach(explode(",",$row['wms_id']) as $wms){
+ array_push($categories, "'wms_".$wms."':\"root_id|".implode("|", $path)."\"");
+ }
+ }
+ $cnt++;
+}
+//if we have a configured structure output it
+if($cnt>0){
+ array_multisort($nr, $str);
+ echo "var arrNodesStr = \"[['root_id', ['Layer','javascript:_foo()'],[".implode("",$str)."]]];\";\n";
+ echo "var categories = {".implode(",", $categories)."};\n";
+}
+else{
+//if there is no structure take default
+?>
+var arrNodesStr = "[['root_id', ['Layer','javascript:_foo()']]];";
+var categories = {};
+<?php
+}
+?>
+/*var arrNodesStr = "[['root_id', ['Layer','javascript:_foo()'], [['test1',['Einfach so','javascript:_foo()']],['test2',['Schönes Wetter','javascript:_foo()']],['test3',['Sonstiges','javascript:_foo()']]]]];"
+
+var categories = {"wms_407":arrNodes[0][0]+"|test1","wms_911":arrNodes[0][0]+"|test2", "wms_914":arrNodes[0][0]+"|test2"};
+var arrNodes = [
+ String: node id,
+ [
+ String: title,
+ String: href,
+ String: target,
+ String: image,
+ String: tooltip,
+ Folder definition: node context menu,
+ String: controls
+ ],
+ Folder definition: sub folder
+]
+*/
+var arrNodes = eval(arrNodesStr);
function _foo(){}
// some defaults
@@ -130,6 +194,15 @@
//parent.eventMapRequestFailed.register(function(t){imgerror(t)});
+var treeStructure = [{"left":4,"right":5,"name":"Heute",layerId:123,wmsId:123},{"left":7,"right":8,"name":"2005"},{"left":9,"right":10,"name":"2006"},{"left":11,"right":12,"name":"2007"},{"left":6,"right":13,"name":"Archiv"},{"left":3,"right":14,"name":"News"},{"left":15,"right":16,"name":"Impressum"},{"left":2,"right":17,"name":"Startseite"},{"left":1,"right":18,"name":"(root)"}]
+function treeSort(a,b)
+{
+ return a.left-b.left;
+}
+console.log(treeStructure);
+treeStructure.sort(treeSort);
+console.log(treeStructure);
+
parent.eventAfterLoadWMS.register(reloadTree);
parent.eventInit.register(loadTree);
if(showstatus=='true'||alerterror=='true'){
@@ -155,21 +228,21 @@
var scale = parseInt(parent.mb_getScale(mod_treeGDE_map));
if(scale < parseInt(parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].gui_layer_minscale) && parseInt(parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].gui_layer_minscale) != 0){
if(selectedLayer==0)
- setNodeColor(arrNodes[0][0]+"|"+parent.mb_mapObj[selectedMap].wms[selectedWMS].wms_id, '#999999');
+ setNodeColor(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[selectedMap].wms[selectedWMS].wms_id, '#999999');
else
- setNodeColor(arrNodes[0][0]+"|"+parent.mb_mapObj[selectedMap].wms[selectedWMS].wms_id+"|"+parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].layer_id, '#999999');
+ setNodeColor(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[selectedMap].wms[selectedWMS].wms_id+"|"+parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].layer_id, '#999999');
}
else if(scale > parseInt(parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].gui_layer_maxscale) && parseInt(parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].gui_layer_maxscale) != 0){
if(selectedLayer==0)
- setNodeColor(arrNodes[0][0]+"|"+parent.mb_mapObj[selectedMap].wms[selectedWMS].wms_id, '#999999');
+ setNodeColor(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[selectedMap].wms[selectedWMS].wms_id, '#999999');
else
- setNodeColor(arrNodes[0][0]+"|"+parent.mb_mapObj[selectedMap].wms[selectedWMS].wms_id+"|"+parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].layer_id, '#999999');
+ setNodeColor(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[selectedMap].wms[selectedWMS].wms_id+"|"+parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].layer_id, '#999999');
}
else{
if(selectedLayer==0)
- setNodeColor(arrNodes[0][0]+"|"+parent.mb_mapObj[selectedMap].wms[selectedWMS].wms_id, '');
+ setNodeColor(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[selectedMap].wms[selectedWMS].wms_id, '');
else
- setNodeColor(arrNodes[0][0]+"|"+parent.mb_mapObj[selectedMap].wms[selectedWMS].wms_id+"|"+parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].layer_id, '');
+ setNodeColor(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[selectedMap].wms[selectedWMS].wms_id+"|"+parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].layer_id, '');
}
selectedMap=i;
@@ -186,21 +259,21 @@
for(var iii=1; iii<parent.mb_mapObj[i].wms[ii].objLayer.length; iii++){
if(scale < parseInt(parent.mb_mapObj[i].wms[ii].objLayer[iii].gui_layer_minscale) && parseInt(parent.mb_mapObj[i].wms[ii].objLayer[iii].gui_layer_minscale) != 0){
if(iii==0)
- setNodeColor(arrNodes[0][0]+"|"+parent.mb_mapObj[i].wms[ii].wms_id, '#999999');
+ setNodeColor(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[i].wms[ii].wms_id, '#999999');
else
- setNodeColor(arrNodes[0][0]+"|"+parent.mb_mapObj[i].wms[ii].wms_id+"|"+parent.mb_mapObj[i].wms[ii].objLayer[iii].layer_id, '#999999');
+ setNodeColor(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[i].wms[ii].wms_id+"|"+parent.mb_mapObj[i].wms[ii].objLayer[iii].layer_id, '#999999');
}
else if(scale > parseInt(parent.mb_mapObj[i].wms[ii].objLayer[iii].gui_layer_maxscale) && parseInt(parent.mb_mapObj[i].wms[ii].objLayer[iii].gui_layer_maxscale) != 0){
if(iii==0)
- setNodeColor(arrNodes[0][0]+"|"+parent.mb_mapObj[i].wms[ii].wms_id, '#999999');
+ setNodeColor(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[i].wms[ii].wms_id, '#999999');
else
- setNodeColor(arrNodes[0][0]+"|"+parent.mb_mapObj[i].wms[ii].wms_id+"|"+parent.mb_mapObj[i].wms[ii].objLayer[iii].layer_id, '#999999');
+ setNodeColor(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[i].wms[ii].wms_id+"|"+parent.mb_mapObj[i].wms[ii].objLayer[iii].layer_id, '#999999');
}
else{
if(iii==0)
- setNodeColor(arrNodes[0][0]+"|"+parent.mb_mapObj[i].wms[ii].wms_id, '');
+ setNodeColor(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[i].wms[ii].wms_id, '');
else
- setNodeColor(arrNodes[0][0]+"|"+parent.mb_mapObj[i].wms[ii].wms_id+"|"+parent.mb_mapObj[i].wms[ii].objLayer[iii].layer_id, '');
+ setNodeColor(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[i].wms[ii].wms_id+"|"+parent.mb_mapObj[i].wms[ii].objLayer[iii].layer_id, '');
}
}
}
@@ -217,7 +290,7 @@
for(var ii=0; ii<parent.mb_mapObj[i].wms.length; ii++){
for(var iii=1; iii<parent.mb_mapObj[i].wms[ii].objLayer.length; iii++){
if(!parent.mb_mapObj[i].wms[ii].objLayer[iii].has_childs){
- path = arrNodes[0][0]+"|"+parent.mb_mapObj[i].wms[ii].wms_id+"|"+parent.mb_mapObj[i].wms[ii].objLayer[iii].layer_id;
+ path = arrNodes[0][0]+"|wms_"+parent.mb_mapObj[i].wms[ii].wms_id+"|"+parent.mb_mapObj[i].wms[ii].objLayer[iii].layer_id;
checkNode(path, 0, parent.mb_mapObj[i].wms[ii].objLayer[iii].gui_layer_visible=='1', false);
if(ficheckbox == 'true')
checkNode(path, 1, parent.mb_mapObj[i].wms[ii].objLayer[iii].gui_layer_querylayer=='1', false);
@@ -252,7 +325,7 @@
selectedWMS=-1;
selectedLayer=-1;
init=false;
- arrNodes = [['root_id', ['Layer','javascript:_foo()']]];
+ arrNodes = eval(arrNodesStr)
initArray();
if(showstatus=='true'||alerterror=='true')
init_mapcheck();
@@ -279,7 +352,7 @@
state[wms]=-1;
errors++;
if(showstatus=='true')
- setNodeImage(arrNodes[0][0]+"|"+parent.mb_mapObj[map].wms[wms].wms_id, "error_folder.png");
+ setNodeImage(arrNodes[0][0]+"|wms_"+parent.mb_mapObj[map].wms[wms].wms_id, "error_folder.png");
}
function checkComplete(wms, map, img, first){
@@ -324,7 +397,7 @@
for(var wms=0;wms<parent.mb_mapObj[ind].wms.length;wms++){
var wmsimgid="map_"+wms;
if(parent.frames[mod_treeGDE_map].document.getElementById(wmsimgid)){
- checkComplete(wms, wmsimgid, arrNodes[0][0]+'|'+parent.mb_mapObj[ind].wms[wms].wms_id, true);
+ checkComplete(wms, wmsimgid, arrNodes[0][0]+'|wms_'+parent.mb_mapObj[ind].wms[wms].wms_id, true);
}
}
}
@@ -404,7 +477,7 @@
if(l!=0)
selectNode(String(lid));
else
- selectNode(String(parent.mb_mapObj[j].wms[k].wms_id));
+ selectNode("wms_"+String(parent.mb_mapObj[j].wms[k].wms_id));
}
}
}
@@ -436,7 +509,7 @@
if(l!=0)
selectNode(String(lid));
else
- selectNode(String(parent.mb_mapObj[j].wms[k].wms_id));
+ selectNode("wms_"+String(parent.mb_mapObj[j].wms[k].wms_id));
}
}
}
@@ -487,13 +560,15 @@
function handleSelectedWMS(path){
if(lock_update)return;
+ console.log(path);
var t = path.split("|");
+ var wms_id = t[t.length-1].substr(4);
var reset_lock=!lock_check;
var ind = parent.getMapObjIndexByName(mod_treeGDE_map);
- var layername = parent.mb_mapObj[ind].wms[parent.getWMSIndexById(mod_treeGDE_map,t[t.length-1])].objLayer[0].layer_name;
+ var layername = parent.mb_mapObj[ind].wms[parent.getWMSIndexById(mod_treeGDE_map,wms_id)].objLayer[0].layer_name;
var bChk = IsChecked(path, 0);
- handleSelectedLayer(mod_treeGDE_map,t[t.length-1],layername,"visible",bChk?"1":"0");
- handleSelectedLayer(mod_treeGDE_map,t[t.length-1],layername,"querylayer",bChk?"1":"0");
+ handleSelectedLayer(mod_treeGDE_map,wms_id,layername,"visible",bChk?"1":"0");
+ handleSelectedLayer(mod_treeGDE_map,wms_id,layername,"querylayer",bChk?"1":"0");
lock_check=true;
checkChildren(path, 0, bChk);
if(ficheckbox)checkChildren(path, 1, bChk);
@@ -501,24 +576,29 @@
setTimeout('setNodeImage("'+path+'", "error_folder.png");', 100);
if(reset_lock)
{
- parent.mb_restateLayers(mod_treeGDE_map,t[t.length-1]);
- parent.setSingleMapRequest(mod_treeGDE_map,t[t.length-1]);
+ parent.mb_restateLayers(mod_treeGDE_map,wms_id);
+ parent.setSingleMapRequest(mod_treeGDE_map,wms_id);
lock_check=false;
}
}
function handleSelection(path, box){
if(lock_update)return;
+ console.log(path);
var reset_lock=!lock_check;
lock_check=true;
var bChk = IsChecked(path, box);
// enableCheckbox(path, 0, true);
checkChildren(path, box, bChk);
if(reset_lock){
+ //find wms id from path
var t = path.split("|");
- parent.mb_restateLayers(mod_treeGDE_map,t[1]);
+ for(var i=1;t[i].indexOf("wms_")!=0;i++){}
+ var wms_id = t[i].substr(4);
+ //set maprequest
+ parent.mb_restateLayers(mod_treeGDE_map,wms_id);
if(box==0)
- parent.setSingleMapRequest(mod_treeGDE_map,t[1]);
+ parent.setSingleMapRequest(mod_treeGDE_map,wms_id);
lock_check=false;
}
}
@@ -554,8 +634,13 @@
controls=null;
if(switchwms=='true')controls='<INPUT type="checkbox" title="' + msgObj.tooltipHandleWms + '" checked onclick="handleSelectedWMS(\''+arrNodes[0][0]+'|'+parent.mb_mapObj[i].wms[ii].wms_id+'\');" />';
if(wmsbuttons == 'true'&&metadatalink == 'true')controls+='<a href="'+'javascript:openwindow(\''+ defaultMetadataUrl + '&id='+temp.layer_uid+'\');'+'"><img src="'+imagedir+'/info.png" /></a>';
- addNode(arrNodes[0][0],[parent.mb_mapObj[i].wms[ii].wms_id,[temp.layer_title,((metadatalink=='true'&&wmsbuttons != 'true')?('javascript:openwindow(\"'+ defaultMetadataUrl + '&id='+temp.layer_uid+'\");'):"javascript:select("+i+","+ii+","+iii+");"),,,temp.layer_title,eval(c_menu),controls,[i,ii,iii]]],false,false,reverse=="true");
- parentObj = arrNodes[0][0]+"|"+parent.mb_mapObj[i].wms[ii].wms_id;
+ parentNode = arrNodes[0][0];
+ if(eval("categories.wms_"+parent.mb_mapObj[i].wms[ii].wms_id) !== undefined)
+ parentNode = eval("categories.wms_"+parent.mb_mapObj[i].wms[ii].wms_id);
+ else
+ eval("categories['wms_"+parent.mb_mapObj[i].wms[ii].wms_id+"'] = parentNode");
+ addNode(parentNode,["wms_"+parent.mb_mapObj[i].wms[ii].wms_id,[temp.layer_title,((metadatalink=='true'&&wmsbuttons != 'true')?('javascript:openwindow(\"'+ defaultMetadataUrl + '&id='+temp.layer_uid+'\");'):"javascript:select("+i+","+ii+","+iii+");"),,,temp.layer_title,eval(c_menu),controls,[i,ii,iii]]],false,false,reverse=="true");
+ parentObj = parentNode+"|wms_"+parent.mb_mapObj[i].wms[ii].wms_id;
}
if(parent.mb_mapObj[i].wms[ii].objLayer[iii].layer_parent && (handlesublayer=="true"||parent.mb_mapObj[i].wms[ii].objLayer[iii].layer_parent=="0")){
var parentLayer = "";
Modified: branches/nimix_dev/http/javascripts/jsTree.js
===================================================================
--- branches/nimix_dev/http/javascripts/jsTree.js 2008-09-17 12:34:59 UTC (rev 2954)
+++ branches/nimix_dev/http/javascripts/jsTree.js 2008-09-17 12:36:20 UTC (rev 2955)
@@ -306,45 +306,23 @@
var parts = path.split(jst_delimiter[0])
var arrData = null;
- for(var p = 0; p < parts.length; p++){
- arrData = eval(ps);
- for(var d = 0; d < arrData.length; d++){
- if(parts[p] == arrData[d][0]){
- if(p == parts.length - 1){
- eval(ps)[d][1][3]=Img;
- var nd = getDomNode(path);
- if(nd){
- var cb = nd.childNodes[1].childNodes[0];
- if(cb && cb.nodeName=="IMG"){
- if(Img)
- cb.src=jst_image_folder+"/"+Img;
- else if(eval(ps)[d][2]){
- if(childExists(nd)){
- var s = nd.nextSibling.style
- if(s.display == ""){
- cb.src = jst_image_folder + "/expanded_folder.png";
- }else{
- cb.src = jst_image_folder + "/closed_folder.png";
- }
- }else{
- cb.src = jst_image_folder + "/expanded_folder.png";
- }
- }
- else
- rebuildNode(path, true);
- }
- else
- rebuildNode(path, true);
- }
- return true
+ var nd = getDomNode(path);
+ if(nd){
+ var cb = nd.childNodes[1].childNodes[0];
+ if(cb && cb.nodeName=="IMG"){
+ if(Img)
+ cb.src=jst_image_folder+"/"+Img;
+ else if(childExists(nd)){
+ var s = nd.nextSibling.style
+ if(s.display == ""){
+ cb.src = jst_image_folder + "/expanded_folder.png";
}else{
- ps = ps + "[" + d + "][2]"
+ cb.src = jst_image_folder + "/closed_folder.png";
}
- break;
}
}
}
- return false
+ return true
}
function selectNode(path){
@@ -433,7 +411,6 @@
if(cb && cb.nodeName=="INPUT"){
cb.checked = bChk;
if(cb.onclick&&triggerOnclick)cb.onclick();
-//TODO DataNode anpassen
return true;
}
}
@@ -448,7 +425,6 @@
var cb = nd.childNodes[1].childNodes[ctrlNr];
if(cb && cb.nodeName=="INPUT"){
cb.disabled = !pEnabled;
-//TODO DataNode anpassen
return true;
}
}
@@ -526,7 +502,7 @@
n=n.childNodes[1].firstChild;
if(!n)return false;
return n.nodeName == "TABLE";
- }
+}
function getPath(strData){
if(strData.indexOf("[") > 0){
@@ -586,16 +562,12 @@
if(s.display == ""){
s.display = "none"
ctlImg.src = img1 + "closed.png"
- if(eval(strData.substr(0, strData.length-3)+"[1][3]"))
- fldImg.src = jst_image_folder + "/" + eval(strData.substr(0, strData.length-3)+"[1][3]");
- else
+ if(String(fldImg.src).indexOf("expanded")!=-1)
fldImg.src = jst_image_folder + "/closed_folder.png";
}else{
s.display = ""
ctlImg.src = img1 + "expanded.png"
- if(eval(strData.substr(0, strData.length-3)+"[1][3]"))
- fldImg.src = jst_image_folder + "/" + eval(strData.substr(0, strData.length-3)+"[1][3]");
- else
+ if(String(fldImg.src).indexOf("closed")!=-1)
fldImg.src = jst_image_folder + "/expanded_folder.png";
}
return
More information about the Mapbender_commits
mailing list