@ -35,7 +35,12 @@ if(referrerForm==null || referrerForm.equals(""))
@@ -35,7 +35,12 @@ if(referrerForm==null || referrerForm.equals(""))
String params = request.getParameter("params");
String callurl="../../servlet/SuperXmlMaske?tid="+tid+"&getJSON_"+fname+"=xxxxxx-xxxxxx@";
String callurl="../../servlet/SuperXmlMaske?tid="+tid;
if(previousValue==null || previousValue.equals(""))
callurl+="&getJSON_"+fname+"=xxxxxx-xxxxxx@";
else
callurl+="&getJSON_COMPLETE"+fname+"=xxxxxx-xxxxxx@";
callurl+=params;
%>
@ -81,16 +86,6 @@ var previousValuesArray=ndMaskDialogPreviousValueToArray(previousValue);
@@ -81,16 +86,6 @@ var previousValuesArray=ndMaskDialogPreviousValueToArray(previousValue);
var previousValuesCount=0;
if(previousValuesArray)
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
var treeNodes=new Array();
@ -110,7 +105,7 @@ var xhttp = new XMLHttpRequest();
@@ -110,7 +105,7 @@ var xhttp = new XMLHttpRequest();
xhttp.open("GET", url, true);
xhttp.send();
}
//202604 Label aktualisiert: Sicht in Sicht ändern
function renderSichtauswahl(content)
{
var targetDiv=document.getElementById("sichtauswahlDiv");
@ -118,7 +113,7 @@ var zs="";
@@ -118,7 +113,7 @@ var zs="";
//zs+="TTT"+JSON.stringify(content.sichten.selected);
if(content && content.sichten.selected && content.sichten.selected.name )
{
zs += "<div class='field is-grouped is-grouped-multiline'><div class='input-container'><label class='label'>Sicht ändern </label>";
zs += "<div class='field is-grouped is-grouped-multiline'><div class='input-container'><label class='label'>Sicht</label>";
//zs += "Ausgewählte Sicht: </span></div>";
//zs+=" <div class='field-body'><div class='field is-active'>";
zs+= buildSichtauswahlSelect(content);
@ -140,12 +135,12 @@ else
@@ -140,12 +135,12 @@ else
zs+="Keine Sichtauswahl möglich";
}
//Suche: 202605 is-small entfernt aus class=input und class=button, style für button ergänzt
//Suche:
zs += "<div class='input-container'>";
zs += "<label class='label'>Suche</label>";
zs+="<div class='field has-addons'><div class='control'>";
zs+= "<input id='sichtSuche' class='input is-active' type='text' placeholder='' onBlur='ndSichtEintraegeSuchen(this.value);return false;'/>";
zs+="</div><div class='control'><button class='button is-rounded' onClick='ndSichtEintraegeSuchen(document.getElementById(\'sichtSuche\'));return false;'>";
zs+= "<input id='sichtSuche' class='input is-small is- active' type='text' placeholder='Suche ' onBlur='ndSichtEintraegeSuchen(this.value);return false;'/>";
zs+="</div><div class='control'><button class='button is-small is- rounded' onClick='ndSichtEintraegeSuchen(document.getElementById(\'sichtSuche\'));return false;'>";
zs+="<span class='icon' aria-hidden='true' alt='Suche' title='Suche'><img src='../../images/search_blue.svg'/></span></button>";
zs+="</div></div></div>";
@ -207,7 +202,8 @@ for(var j=0;j < content.nodes.length;j++)
@@ -207,7 +202,8 @@ for(var j=0;j < content.nodes.length;j++)
{
var node=content.nodes[j];
zs +=renderNode(node,null,//parent
true,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl);
true,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl,0 //ebene
);
}
}
@ -216,14 +212,15 @@ targetDiv.innerHTML=zs;
@@ -216,14 +212,15 @@ targetDiv.innerHTML=zs;
checkIndeterminates();
}
function renderNode(node,parentId,isRoot,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl)
function renderNode(node,parentId,isRoot,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl,ebene)
{
ebene++;
var zs="";
if(searchstring=="" || node.title.indexOf(searchstring)>-1)
{
if(node.objectId !="")
{
console.log("RenderNode"+node.objectId);
var checkedString="";
for(var i=0;i < previousValuesCount;i++)
{
@ -231,6 +228,7 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
@@ -231,6 +228,7 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
checkedString="checked ";
}
var fldName="inp"+node.objectId;
var fldId="inp"+node.objectId;
var fldType="checkbox";
@ -246,7 +244,7 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
@@ -246,7 +244,7 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
else
{
zs += "<li class='sichtentreeLI'>";
zs += "<li class='sichtentreeLI' id='liElem"+node.objectId+"' >";
if(isRoot)
{
zs+="<span style='margin-left:1.5rem'></span>";
@ -255,10 +253,12 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
@@ -255,10 +253,12 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
{
if(node.isFolder=="true")
{
zs+="<span class='sichtentreeCaret' id='sichtentreeCaret_"+node.objectId+"'";
zs+="onClick=\"getChildNodes('"+node.objectId.trim()+"',this)\">";
zs+="</span> ";
//if(previousValuesCount==0 && !isRoot)
// hideChildNodes(node.objectId.trim(),"sichtentreeCaret_"+node.objectId);
}
else
zs+="<span style='margin-left:15px'></span>";
@ -277,9 +277,12 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
@@ -277,9 +277,12 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
{
for(var i=0;i < node.children.length;i++)
{
zs+="<ul style='margin-left:10px'>";
zs+="<ul style='margin-left:10px' id='childOf"+node.objectId+i+"' ";
if(ebene>1)
zs+="class='sichtentreeChildUL sichtentreeNested'";
zs+=">";
zs += renderNode(node.children[i],node.objectId,//parent
false,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl);
false,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl,ebene );
zs +="</ul>";
}
@ -340,17 +343,33 @@ if(node.apnr==targetNodeId)
@@ -340,17 +343,33 @@ if(node.apnr==targetNodeId)
}
return parent;
}
/*function hideChildNodes(nodeId,spanElem)
{
var childUlId="childOf"+nodeId;
document.getElementById(childUlId).classList.toggle("sichtentreeNested");
}*/
function getChildNodes(nodeId,spanElem)
{
//spanElem.parentElement.querySelector(".sichtentreeNested").classList.toggle("sichtentreeActive");
var childUlId="childOf"+nodeId;
var childUlIdPrefix ="childOf"+nodeId;
spanElem.classList.toggle("sichtentreeCaret-down");
var ulChildren = document.getElementById("liElem"+nodeId).getElementsByTagName('ul');
if(ulChildren.length>0)
{
for(var i=0;i<ulChildren.length;i++)
{
var childElem=ulChildren[i];
var childUlId=childUlIdPrefix+i;
if(document.getElementById(childUlId))
{
//Kind existiert bereits, wird nur unsichtbar:
document.getElementById(childUlId).classList.toggle("sichtentreeNested");
}
} //ende Schleife childUlIds
}
else
{
//Kind existiert noch nicht:
@ -375,7 +394,7 @@ var xhttp = new XMLHttpRequest();
@@ -375,7 +394,7 @@ var xhttp = new XMLHttpRequest();
{
var node=childrenJSON[j];
childrenHTML +=renderNode(node,nodeId,//parent
false,"",previousValuesCount,previousValuesArray,zeilenanzahl);
false,"",previousValuesCount,previousValuesArray,zeilenanzahl,0 );
}
}
childUL.innerHTML=childrenHTML;
@ -391,13 +410,28 @@ var xhttp = new XMLHttpRequest();
@@ -391,13 +410,28 @@ var xhttp = new XMLHttpRequest();
function checkIndeterminates()
{
if(indeterminateValuesCount>0)
{
for(var i=0;i < indeterminateValuesCount;i++)
if(previousValuesCount>0)
{
for(var j=0;j < document.forms["selection"].elements.length;j++)
{
if(indeterminateValuesArray[i]==document.forms["selection"].elements[j].value)
var inpElem=document.forms["selection"].elements[j];
var inputType = inpElem.type;
var inputName = inpElem.name;
if((inputType=="checkbox" || inputType=="radio")
//&& (!inpElem.name=="metaCheckbox" //&&
//(!inpElem.indeterminate || inpElem.indeterminate==false)
)
{
//check if children are selected:
var parentElem=inpElem.parentElement;
var inpChildren = parentElem.getElementsByTagName('input');
if(inpChildren && inpChildren.length>0)
{
for(var i=0;i<inpChildren.length;i++)
{
var childInpElem=inpChildren[i];
if(inputName!=childInpElem.name && childInpElem.checked)
{
document.forms["selection"].elements[j].indeterminate=true;
}
@ -406,6 +440,8 @@ if(indeterminateValuesCount>0)
@@ -406,6 +440,8 @@ if(indeterminateValuesCount>0)
}
}
}
}
}
function ndSichtEintraegeSuchen(was) {
var callurl = '/superx/servlet/SuperXmlMaske';
callurl += '?tid=' + maskentid + '&getJSON_' + fname +
@ -423,7 +459,7 @@ function ndSichtEintraegeSuchen(was) {
@@ -423,7 +459,7 @@ function ndSichtEintraegeSuchen(was) {
{
var node=searchResultJSON[j];
searchResultHTML += renderNode(node,null,//parent
true,"",previousValuesCount,previousValuesArray,zeilenanzahl);
true,"",previousValuesCount,previousValuesArray,zeilenanzahl,0 );
}
}
document.getElementById("sichtDiv").innerHTML=searchResultHTML+"</ul>";
@ -435,6 +471,8 @@ function ndSichtEintraegeSuchen(was) {
@@ -435,6 +471,8 @@ function ndSichtEintraegeSuchen(was) {
}
</script>
<style type="text/css">
input.regularCheckbox
@ -459,7 +497,7 @@ input.parentCheckbox::before
@@ -459,7 +497,7 @@ input.parentCheckbox::before
<nav class="navbar-dialogue is-fixed-top" role="navigation" aria-label="navigation">
<div class="navbar-brand">
<div class="navbar-item">
<p class="title-dialogue is-4" ><%=fname %></p>
<p class="title is-4">Auswahl <%=fname %></p>
</div>
</div>
@ -468,7 +506,7 @@ input.parentCheckbox::before
@@ -468,7 +506,7 @@ input.parentCheckbox::before
<div class="buttons">
<p class="submit_button">
<button class="button" type="submit">
<a onclick="ndMaskSichtDialogUebernehmen(document.forms['selection'],referrerForm)">Übernehmen</a>
<a onclick="ndMaskSichtDialogUebernehmen(document.forms['selection'],referrerForm)" style="color: white; ">Übernehmen</a>
</button>
</p>
</div>
@ -478,57 +516,55 @@ input.parentCheckbox::before
@@ -478,57 +516,55 @@ input.parentCheckbox::before
<div class="buttons">
<p class="reset_button">
<button class="button">
<a onclick="ndMaskDialogLeeren(document.forms['selection'],referrerForm)">Leeren</a>
<a onclick="ndMaskDialogLeeren(document.forms['selection'],referrerForm)" style="color: white;" >Leeren</a>
</button>
</p>
</div>
</div>
<div class="navbar-item is-hoverable">
<div class="buttons">
<p class="close_button">
<button class="button">
<span class="icon is-small">
<a onclick="window.close();">
<img src="../../images/close.svg" title="Schließen" aria-label="Schließen" /></a>
<span class="button is-grey" onclick="window.close()">
X
</span>
</button>
</p>
</div>
</div>
</span>
</div>
</nav>
<!--<div class="container"> doppelte scrollbalken verhindern-->
<form name="selection" onsubmit="return false;" style="margin:0px">
<form name="selection" onsubmit="return false;" style="margin:1 0px">
<div class="input-container sticky-filter"> <!--202606 sticky-filter ergänzt-- >
<div class="input-container" >
<div class="field is-grouped is-grouped-multiline">
<div class="input-container">
<div id="sichtauswahlDiv">
</div>
</div>
</div>
</div>
<% if(zeilenanzahl!=null && !zeilenanzahl.equals("1"))
{
%>
<div class="input-container"><!--202606 neu-->
<div class="buttons">
<input type="checkbox" name="metaCheckox" value="" style="margin-left:1.5rem ;" onclick="ndMaskDialogToggleAllCheckboxes(document.forms['selection'],this)" />  alle markieren
<input type="checkbox" name="metaCheckox" value="" style="margin-left:20px ;" onclick="ndMaskDialogToggleAllCheckboxes(document.forms['selection'],this)" />  alle markieren
</div>
</div><!--202606 neu-->
<hr />
<%
}
%>
<div id="sichtDiv" class="comboDiv">keine Auswahl möglich
</div>
</form>
<!--</div> container-->
</div> <!--Ende nd_navi-top-->
</div>
</body>
</html>