|
|
|
@ -81,7 +81,20 @@ var previousValuesArray=ndMaskDialogPreviousValueToArray(previousValue); |
|
|
|
var previousValuesCount=0; |
|
|
|
var previousValuesCount=0; |
|
|
|
if(previousValuesArray) |
|
|
|
if(previousValuesArray) |
|
|
|
previousValuesCount=previousValuesArray.length; |
|
|
|
previousValuesCount=previousValuesArray.length; |
|
|
|
|
|
|
|
var indeterminateValues=""; |
|
|
|
|
|
|
|
if(referrerForm.elements[fname+"-IndeterminateValues"]) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
indeterminateValues=referrerForm.elements[fname+"-IndeterminateValues"].value; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
var indeterminateValuesArray=ndMaskDialogPreviousValueToArray(indeterminateValues); |
|
|
|
|
|
|
|
var indeterminateValuesCount=0; |
|
|
|
|
|
|
|
if(indeterminateValuesArray) |
|
|
|
|
|
|
|
indeterminateValuesCount=indeterminateValuesArray.length; |
|
|
|
|
|
|
|
|
|
|
|
//previousValuesCount=0; //TODO: wenn previousValue, dann klappt Aufklappen nicht immer |
|
|
|
//previousValuesCount=0; //TODO: wenn previousValue, dann klappt Aufklappen nicht immer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var treeNodes=new Array(); |
|
|
|
|
|
|
|
|
|
|
|
function initDialog(url,searchstring) |
|
|
|
function initDialog(url,searchstring) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var ret; |
|
|
|
var ret; |
|
|
|
@ -193,21 +206,24 @@ if(content && content.nodes && content.nodes.length >0) |
|
|
|
for(var j=0;j < content.nodes.length;j++) |
|
|
|
for(var j=0;j < content.nodes.length;j++) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var node=content.nodes[j]; |
|
|
|
var node=content.nodes[j]; |
|
|
|
zs +=renderNode(node,true,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl); |
|
|
|
zs +=renderNode(node,null,//parent |
|
|
|
|
|
|
|
true,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
zs +="</ul>"; |
|
|
|
zs +="</ul>"; |
|
|
|
targetDiv.innerHTML=zs; |
|
|
|
targetDiv.innerHTML=zs; |
|
|
|
|
|
|
|
checkIndeterminates(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function renderNode(node,isRoot,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl) |
|
|
|
function renderNode(node,parentId,isRoot,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var zs=""; |
|
|
|
var zs=""; |
|
|
|
if(searchstring=="" || node.title.indexOf(searchstring)>-1) |
|
|
|
if(searchstring=="" || node.title.indexOf(searchstring)>-1) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if(node.objectId !="") |
|
|
|
if(node.objectId !="") |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
console.log("RenderNode"+node.objectId); |
|
|
|
var checkedString=""; |
|
|
|
var checkedString=""; |
|
|
|
for(var i=0;i < previousValuesCount;i++) |
|
|
|
for(var i=0;i < previousValuesCount;i++) |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -215,7 +231,6 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1) |
|
|
|
checkedString="checked "; |
|
|
|
checkedString="checked "; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var fldName="inp"+node.objectId; |
|
|
|
var fldName="inp"+node.objectId; |
|
|
|
var fldId="inp"+node.objectId; |
|
|
|
var fldId="inp"+node.objectId; |
|
|
|
var fldType="checkbox"; |
|
|
|
var fldType="checkbox"; |
|
|
|
@ -224,6 +239,13 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1) |
|
|
|
fldName=fname; |
|
|
|
fldName=fname; |
|
|
|
fldType="radio"; |
|
|
|
fldType="radio"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (node.nodeattrib && node.nodeattrib == 3) |
|
|
|
|
|
|
|
{ //nicht sichtbar, kommt aber in Auswertung raus: |
|
|
|
|
|
|
|
zs +="";//<span>"+node.title+"</span>"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
zs += "<li class='sichtentreeLI'>"; |
|
|
|
zs += "<li class='sichtentreeLI'>"; |
|
|
|
if(isRoot) |
|
|
|
if(isRoot) |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -246,8 +268,9 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1) |
|
|
|
zs +="<span style='margin-left:10px' class='is-unselectable'> </span>"; |
|
|
|
zs +="<span style='margin-left:10px' class='is-unselectable'> </span>"; |
|
|
|
zs +="<span>"+node.title+"</span>\n"; |
|
|
|
zs +="<span>"+node.title+"</span>\n"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
else { |
|
|
|
else { |
|
|
|
zs+="<input type='"+fldType+"' "+checkedString+ " name='"+fldName+ "' id='"+fldId+ "' value='"+node.objectId +"' /> "; |
|
|
|
zs+="<input type='"+fldType+"' "+checkedString+ " name='"+fldName+ "' id='"+fldId+ "' value='"+node.objectId +"' onChange='uncheckParents(this)' class='regularCheckbox' /> "; |
|
|
|
zs +="<label for='"+fldId+"' id='label"+node.objectId +"'>"+node.title+"</label>\n"; |
|
|
|
zs +="<label for='"+fldId+"' id='label"+node.objectId +"'>"+node.title+"</label>\n"; |
|
|
|
} |
|
|
|
} |
|
|
|
if(node.children && node.children.length >0 ) |
|
|
|
if(node.children && node.children.length >0 ) |
|
|
|
@ -255,18 +278,68 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1) |
|
|
|
for(var i=0;i < node.children.length;i++) |
|
|
|
for(var i=0;i < node.children.length;i++) |
|
|
|
{ |
|
|
|
{ |
|
|
|
zs+="<ul style='margin-left:10px'>"; |
|
|
|
zs+="<ul style='margin-left:10px'>"; |
|
|
|
zs += renderNode(node.children[i],false,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl); |
|
|
|
zs += renderNode(node.children[i],node.objectId,//parent |
|
|
|
|
|
|
|
false,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl); |
|
|
|
zs +="</ul>"; |
|
|
|
zs +="</ul>"; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
zs+="</li>"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
zs+="</li>"; |
|
|
|
|
|
|
|
//register Node in treeNodes: |
|
|
|
|
|
|
|
var myNode=new treeNode(node.title , //name |
|
|
|
|
|
|
|
node.objectId, //apnr |
|
|
|
|
|
|
|
parentId ,//parent, |
|
|
|
|
|
|
|
0, //level, |
|
|
|
|
|
|
|
node.nodeattrib, |
|
|
|
|
|
|
|
"",//linkUrl, |
|
|
|
|
|
|
|
"",//linkTarget, |
|
|
|
|
|
|
|
"",//onClickHandler, |
|
|
|
|
|
|
|
node.isFolder); |
|
|
|
|
|
|
|
treeNodes.push(myNode); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} // wenn nodeattrib !=3 |
|
|
|
} //Ende wenn suchstring |
|
|
|
} //Ende wenn suchstring |
|
|
|
return zs; |
|
|
|
return zs; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function uncheckParents(inpElem) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if(inpElem.checked || inpElem.indeterminate) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
//parents unchecked: |
|
|
|
|
|
|
|
currentNodeId=inpElem.value; |
|
|
|
|
|
|
|
parentNodeId=getParentNode(currentNodeId); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(var j=0;j < document.forms['selection'].elements.length;j++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var el=document.forms['selection'].elements[j]; |
|
|
|
|
|
|
|
if(el.type=="checkbox" && el.value==parentNodeId) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
console.log("INPUT found:"+el.id); |
|
|
|
|
|
|
|
el.indeterminate=true; |
|
|
|
|
|
|
|
el.checked=false; |
|
|
|
|
|
|
|
uncheckParents(el); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getParentNode(targetNodeId) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var parent; |
|
|
|
|
|
|
|
for(var i=0;i < treeNodes.length;i++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var node=treeNodes[i]; |
|
|
|
|
|
|
|
if(node.apnr==targetNodeId) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
parent=node.parent; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return parent; |
|
|
|
|
|
|
|
} |
|
|
|
function getChildNodes(nodeId,spanElem) |
|
|
|
function getChildNodes(nodeId,spanElem) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//spanElem.parentElement.querySelector(".sichtentreeNested").classList.toggle("sichtentreeActive"); |
|
|
|
//spanElem.parentElement.querySelector(".sichtentreeNested").classList.toggle("sichtentreeActive"); |
|
|
|
@ -301,11 +374,13 @@ var xhttp = new XMLHttpRequest(); |
|
|
|
for(var j=0;j < childrenJSON.length;j++) |
|
|
|
for(var j=0;j < childrenJSON.length;j++) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var node=childrenJSON[j]; |
|
|
|
var node=childrenJSON[j]; |
|
|
|
childrenHTML +=renderNode(node,false,"",previousValuesCount,previousValuesArray,zeilenanzahl); |
|
|
|
childrenHTML +=renderNode(node,nodeId,//parent |
|
|
|
|
|
|
|
false,"",previousValuesCount,previousValuesArray,zeilenanzahl); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
childUL.innerHTML=childrenHTML; |
|
|
|
childUL.innerHTML=childrenHTML; |
|
|
|
//alert(JSON.stringify(childrenJSON)); |
|
|
|
//alert(JSON.stringify(childrenJSON)); |
|
|
|
|
|
|
|
checkIndeterminates(); |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
xhttp.open("GET", suburl, true); |
|
|
|
xhttp.open("GET", suburl, true); |
|
|
|
@ -314,6 +389,23 @@ var xhttp = new XMLHttpRequest(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function checkIndeterminates() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if(indeterminateValuesCount>0) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
for(var i=0;i < indeterminateValuesCount;i++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
for(var j=0;j < document.forms["selection"].elements.length;j++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if(indeterminateValuesArray[i]==document.forms["selection"].elements[j].value) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
document.forms["selection"].elements[j].indeterminate=true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
function ndSichtEintraegeSuchen(was) { |
|
|
|
function ndSichtEintraegeSuchen(was) { |
|
|
|
var callurl = '/superx/servlet/SuperXmlMaske'; |
|
|
|
var callurl = '/superx/servlet/SuperXmlMaske'; |
|
|
|
callurl += '?tid=' + maskentid + '&getJSON_' + fname + |
|
|
|
callurl += '?tid=' + maskentid + '&getJSON_' + fname + |
|
|
|
@ -330,7 +422,8 @@ function ndSichtEintraegeSuchen(was) { |
|
|
|
for(var j=0;j < searchResultJSON.length;j++) |
|
|
|
for(var j=0;j < searchResultJSON.length;j++) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var node=searchResultJSON[j]; |
|
|
|
var node=searchResultJSON[j]; |
|
|
|
searchResultHTML += renderNode(node,true,"",previousValuesCount,previousValuesArray,zeilenanzahl); |
|
|
|
searchResultHTML += renderNode(node,null,//parent |
|
|
|
|
|
|
|
true,"",previousValuesCount,previousValuesArray,zeilenanzahl); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
document.getElementById("sichtDiv").innerHTML=searchResultHTML+"</ul>"; |
|
|
|
document.getElementById("sichtDiv").innerHTML=searchResultHTML+"</ul>"; |
|
|
|
@ -343,6 +436,24 @@ function ndSichtEintraegeSuchen(was) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</script> |
|
|
|
</script> |
|
|
|
|
|
|
|
<style type="text/css"> |
|
|
|
|
|
|
|
input.regularCheckbox |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
width: 1em; |
|
|
|
|
|
|
|
height: 1em; |
|
|
|
|
|
|
|
accent-color: green; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
input.parentCheckbox |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
accent-color: gray; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
input.parentCheckbox::before |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
background-color:blue; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
</style> |
|
|
|
<body class="has-navbar-fixed-top" onload="initDialog('<%=callurl %>','')"> |
|
|
|
<body class="has-navbar-fixed-top" onload="initDialog('<%=callurl %>','')"> |
|
|
|
<div id="nd_navi_top" > <!-- 202606 entfernt style="margin-top:-55px"--> |
|
|
|
<div id="nd_navi_top" > <!-- 202606 entfernt style="margin-top:-55px"--> |
|
|
|
<nav class="navbar-dialogue is-fixed-top" role="navigation" aria-label="navigation"> |
|
|
|
<nav class="navbar-dialogue is-fixed-top" role="navigation" aria-label="navigation"> |
|
|
|
|