Browse Source

Sichten Button soll Pfad anzeigen, wenn in tiefer Verschachtelung etwas ausgewählt wurde #18

master
Daniel Quathamer 1 week ago
parent
commit
ff1ce451d4
  1. 10
      superx/WEB-INF/conf/edustore/db/bin/SQL_ENV.sam
  2. 2
      superx/WEB-INF/conf/edustore/db/install/conf/builddatum.txt
  3. 2
      superx/WEB-INF/conf/edustore/db/install/conf/kern.rtf
  4. 2
      superx/WEB-INF/conf/edustore/db/install/version_hash
  5. 2
      superx/WEB-INF/conf/version.properties
  6. 129
      superx/edit/kern/maske_sicht_laden.jsp
  7. 21
      superx/xml/js/memtext/nd_functions.js
  8. 6
      superx/xml/nd_templates.xsl

10
superx/WEB-INF/conf/edustore/db/bin/SQL_ENV.sam

@ -16,8 +16,8 @@ @@ -16,8 +16,8 @@
# JAVA_HOME fehlte
umask 066
#In SuperX-FUll-Release:
SUPERX_DIR=/home/superx
WEBAPP=$SUPERX_DIR/webserver/tomcat/webapps/superx
SUPERX_DIR=/var/lib/tomcat10/webapps/superx/WEB-INF/conf/edustore
WEBAPP=/var/lib/tomcat10/webapps/superx
#In SuperX-Webapp-Release:
#SUPERX_DIR=/home/superx/webserver/tomcat/webapps/superx/WEB-INF/conf/edustore
#WEBAPP=$SUPERX_DIR/../../..
@ -70,8 +70,8 @@ SX_CLIENT=psql; export SX_CLIENT @@ -70,8 +70,8 @@ SX_CLIENT=psql; export SX_CLIENT
#sytsemweit definiert sein muss. LANG ist bereits beim Entpacken
#den Kernmoduls massgeblich.
#LANG=de_DE@euro
#LANG=de_DE.utf8
#export LANG
LANG=de_DE.utf8
export LANG
case $SX_CLIENT in
@ -87,6 +87,8 @@ psql) @@ -87,6 +87,8 @@ psql)
#Sonst versucht er eine Socket Connection
PGHOST=localhost
export PGHOST
PGUSER=superx
export PGUSER
#Prüfen ob der PATH erweitert werden muss
#Standard-Installationsverz. von Postgres ist
PGPATH=/usr/local/pgsql

2
superx/WEB-INF/conf/edustore/db/install/conf/builddatum.txt

@ -1 +1 @@ @@ -1 +1 @@
26.10.2026
01.11.2026

2
superx/WEB-INF/conf/edustore/db/install/conf/kern.rtf

File diff suppressed because one or more lines are too long

2
superx/WEB-INF/conf/edustore/db/install/version_hash

@ -1 +1 @@ @@ -1 +1 @@
5fd4ce93944f413f6a41dba9cf2f17a19196dc1182030bd5ddaeb758aa16206ef2a599c6f192b133bcde7713042749b3a5e343d01d4108229bfc148fb7f78990
773b6e023072220f72db41673420720e3f2aa815433dcc87c032473d182b0b4c3dedf989cd7c66dc22623138515223c9fe31a716e8bea151facaa4006570ed94

2
superx/WEB-INF/conf/version.properties

@ -1,2 +1,2 @@ @@ -1,2 +1,2 @@
git.branch=HEAD
git.commit.hash=eb163ec837e1a674401a5e5354484d5b644c5f8f
git.commit.hash=aefd4a5c2cf50e0ff91a3b4cecf1b3df09cc4b5d

129
superx/edit/kern/maske_sicht_laden.jsp

@ -81,7 +81,20 @@ var previousValuesArray=ndMaskDialogPreviousValueToArray(previousValue); @@ -81,7 +81,20 @@ 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();
function initDialog(url,searchstring)
{
var ret;
@ -193,21 +206,24 @@ if(content && content.nodes && content.nodes.length >0) @@ -193,21 +206,24 @@ if(content && content.nodes && content.nodes.length >0)
for(var j=0;j < content.nodes.length;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>";
targetDiv.innerHTML=zs;
checkIndeterminates();
}
function renderNode(node,isRoot,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl)
function renderNode(node,parentId,isRoot,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl)
{
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++)
{
@ -215,7 +231,6 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1) @@ -215,7 +231,6 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
checkedString="checked ";
}
var fldName="inp"+node.objectId;
var fldId="inp"+node.objectId;
var fldType="checkbox";
@ -224,6 +239,13 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1) @@ -224,6 +239,13 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
fldName=fname;
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'>";
if(isRoot)
{
@ -246,8 +268,9 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1) @@ -246,8 +268,9 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
zs +="<span style='margin-left:10px' class='is-unselectable'>&nbsp;</span>";
zs +="<span>"+node.title+"</span>\n";
}
else {
zs+="<input type='"+fldType+"' "+checkedString+ " name='"+fldName+ "' id='"+fldId+ "' value='"+node.objectId +"' />&nbsp;";
zs+="<input type='"+fldType+"' "+checkedString+ " name='"+fldName+ "' id='"+fldId+ "' value='"+node.objectId +"' onChange='uncheckParents(this)' class='regularCheckbox' />&nbsp;";
zs +="<label for='"+fldId+"' id='label"+node.objectId +"'>"+node.title+"</label>\n";
}
if(node.children && node.children.length >0 )
@ -255,18 +278,68 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1) @@ -255,18 +278,68 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
for(var i=0;i < node.children.length;i++)
{
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+="</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
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)
{
//spanElem.parentElement.querySelector(".sichtentreeNested").classList.toggle("sichtentreeActive");
@ -301,11 +374,13 @@ var xhttp = new XMLHttpRequest(); @@ -301,11 +374,13 @@ var xhttp = new XMLHttpRequest();
for(var j=0;j < childrenJSON.length;j++)
{
var node=childrenJSON[j];
childrenHTML +=renderNode(node,false,"",previousValuesCount,previousValuesArray,zeilenanzahl);
childrenHTML +=renderNode(node,nodeId,//parent
false,"",previousValuesCount,previousValuesArray,zeilenanzahl);
}
}
childUL.innerHTML=childrenHTML;
//alert(JSON.stringify(childrenJSON));
checkIndeterminates();
}
};
xhttp.open("GET", suburl, true);
@ -314,6 +389,23 @@ var xhttp = new XMLHttpRequest(); @@ -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) {
var callurl = '/superx/servlet/SuperXmlMaske';
callurl += '?tid=' + maskentid + '&getJSON_' + fname +
@ -330,7 +422,8 @@ function ndSichtEintraegeSuchen(was) { @@ -330,7 +422,8 @@ function ndSichtEintraegeSuchen(was) {
for(var j=0;j < searchResultJSON.length;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>";
@ -343,6 +436,24 @@ function ndSichtEintraegeSuchen(was) { @@ -343,6 +436,24 @@ function ndSichtEintraegeSuchen(was) {
</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 %>','')">
<div id="nd_navi_top" > <!-- 202606 entfernt style="margin-top:-55px"-->
<nav class="navbar-dialogue is-fixed-top" role="navigation" aria-label="navigation">

21
superx/xml/js/memtext/nd_functions.js

@ -194,6 +194,7 @@ function ndMaskSichtDialogUebernehmen(dialogFrm, referrerFrm) @@ -194,6 +194,7 @@ function ndMaskSichtDialogUebernehmen(dialogFrm, referrerFrm)
if(dialogFrm.elements["Standdatum"])
referrerFrm.elements[fname+"-Stand"].value= dateUSToDateGerman(dialogFrm.elements["Standdatum"].value);
ndMaskDialogUebernehmen(dialogFrm,referrerFrm);
}
function ndMaskDialogUebernehmen(dialogFrm, referrerFrm)
@ -202,6 +203,7 @@ function ndMaskDialogUebernehmen(dialogFrm, referrerFrm) @@ -202,6 +203,7 @@ function ndMaskDialogUebernehmen(dialogFrm, referrerFrm)
var isFirst = true;
var val = "";
var label = "";
var indeterminate="";
for(var j=0;j < dialogFrm.elements.length;j++)
{
@ -216,6 +218,16 @@ var label = ""; @@ -216,6 +218,16 @@ var label = "";
val +=dialogFrm.elements[j].value;
//console.log("FF"+dialogFrm.elements[j].value);
label+= document.getElementById("label"+dialogFrm.elements[j].value).innerHTML;
}
if((inputType=="checkbox" || inputType=="radio") && dialogFrm.elements[j].indeterminate)
{
indeterminate+=dialogFrm.elements[j].value+",";
console.log("indeterminate: "+dialogFrm.elements[j].value);
}
else
{
console.log("nicht indeterminate: "+dialogFrm.elements[j].value);
}
}
console.log("selected:"+val);
@ -228,7 +240,10 @@ var label = ""; @@ -228,7 +240,10 @@ var label = "";
{
referrerFrm.elements[labelField].value =removeHtmlEntities(label);
}
if(referrerFrm.elements[fname+"-IndeterminateValues"] && indeterminate !="")
{
referrerFrm.elements[fname+"-IndeterminateValues"].value=indeterminate;
}
} else {
referrerFrm.elements[fname].value = '';
if(referrerFrm.elements[labelField])
@ -236,6 +251,10 @@ var label = ""; @@ -236,6 +251,10 @@ var label = "";
referrerFrm.elements[labelField].value =
"nichts gewaehlt";
}
if(referrerFrm.elements[fname+"-IndeterminateValues"])
{
referrerFrm.elements[fname+"-IndeterminateValues"].value="";
}
}
window.close();
return false;

6
superx/xml/nd_templates.xsl

@ -2229,6 +2229,11 @@ Seite 1 von 1 @@ -2229,6 +2229,11 @@ Seite 1 von 1
</xsl:attribute>
</input>
<input type="hidden">
<xsl:attribute name="name">
<xsl:value-of select="concat(name,'-IndeterminateValues')"/>
</xsl:attribute>
</input>
<!--<xsl:if test="string-length(sichten/sicht [ @selected='true' ]/@stand) &gt; 1 ">-->
<div id="{concat(name,'-Stand','-div')}" style="display:none">
Stand:&#160;<input type="text" size="10" class="sichtText">
@ -2271,6 +2276,7 @@ Seite 1 von 1 @@ -2271,6 +2276,7 @@ Seite 1 von 1
<xsl:value-of select="."/></option>
</xsl:for-each>
</select>
</div>
</xsl:if>
</xsl:template>

Loading…
Cancel
Save