Browse Source

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

RELEASE_kern5.3
Daniel Quathamer 5 days ago
parent
commit
302ad7d83e
  1. 13
      src/de/superx/common/Field.java
  2. 10
      src/de/superx/common/SelectableItemNode.java
  3. 20
      src/de/superx/servlet/SuperXmlMaske.java
  4. 2
      superx/WEB-INF/conf/edustore/db/install/conf/builddatum.txt
  5. 225
      superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_doc/kern_load.txt
  6. 31210
      superx/WEB-INF/conf/edustore/db/install/conf/kern.html
  7. 2
      superx/WEB-INF/conf/edustore/db/install/conf/kern.rtf
  8. 65
      superx/WEB-INF/conf/edustore/db/install/prozeduren/proc_get_dbform_right_pg.sql
  9. BIN
      superx/WEB-INF/lib/superx5.2.jar
  10. 202
      superx/edit/kern/maske_sicht_laden.jsp
  11. 14
      superx/edit/kern/show_html_content.jsp
  12. 4
      superx/xml/js/memtext/nd_functions.js
  13. 132
      superx/xml/js/memtext/sx_functions.js

13
src/de/superx/common/Field.java

@ -2153,7 +2153,7 @@ public class Field extends NamedIdObject implements TemplateHashModel, @@ -2153,7 +2153,7 @@ public class Field extends NamedIdObject implements TemplateHashModel,
return false;
}
public StringBuffer getJSON(String param) throws SQLException,
public StringBuffer getJSON(String param,boolean completeTree) throws SQLException,
DBServletException, KeyParentEqualException,
CloneNotSupportedException, SichtException, TemplateException,
IOException {
@ -2174,7 +2174,7 @@ public class Field extends NamedIdObject implements TemplateHashModel, @@ -2174,7 +2174,7 @@ public class Field extends NamedIdObject implements TemplateHashModel,
if (param.startsWith("search:"))
addSearchJSON(param, result);
else
addRegularJSON(param, result);
addRegularJSON(param, result, completeTree);
result.append(")");
return result;
@ -2200,16 +2200,19 @@ public class Field extends NamedIdObject implements TemplateHashModel, @@ -2200,16 +2200,19 @@ public class Field extends NamedIdObject implements TemplateHashModel,
isFirstItem = false;
result.append(node
.toJSON(this.getDefaultValue().getId(), false));
.toJSON(this.getDefaultValue().getId(), "AllKids"));
}
}
result.append("]");
}
private void addRegularJSON(String param, StringBuffer result) {
private void addRegularJSON(String param, StringBuffer result, boolean completeTree) {
if (!this.getSelectableItemsTree().containsItemWithId(param))
throw new IllegalArgumentException("Im Feld " + getName() + " ("
+ getId() + ") gibt es kein Element " + param);
String kidsInclusion="onlyDirectKids";
if(completeTree)
kidsInclusion="AllKids";
SelectableItemNode startnode = getSelectableItemsTree().getById(param);
boolean isSingleRoot = startnode.getChildCount() < 2;
@ -2250,7 +2253,7 @@ public class Field extends NamedIdObject implements TemplateHashModel, @@ -2250,7 +2253,7 @@ public class Field extends NamedIdObject implements TemplateHashModel,
isFirstItem = false;
result.append(node.toJSON(this.getDefaultValue().getId(),
isSingleRoot));
kidsInclusion));
}
result.append("]");

10
src/de/superx/common/SelectableItemNode.java

@ -375,9 +375,11 @@ public class SelectableItemNode extends HideableNode @@ -375,9 +375,11 @@ public class SelectableItemNode extends HideableNode
return result;
}
public StringBuffer toJSON(Object defaultId, boolean isIncludingKids) {
public StringBuffer toJSON(Object defaultId, String kidsInclusion) {
SelectableItem item = (SelectableItem) this.getUserObject();
boolean isIncludingKids=false;
if(kidsInclusion.equals("onlyDirectKids") || kidsInclusion.equals("AllKids"))
isIncludingKids=true;
StringBuffer result = new StringBuffer("{objectId:\"" + StringUtils.jsonAdapt(item.getId().toString(), true)
+ "\",title:\"" + StringUtils.jsonAdapt(getName(), true) + "\"");
if (EqualsUtil.areEqual(getKey(), defaultId))
@ -390,6 +392,8 @@ public class SelectableItemNode extends HideableNode @@ -390,6 +392,8 @@ public class SelectableItemNode extends HideableNode
result.append(",nodeattrib:" + item.getNodeAttrib() + "");
// (this.isLeaf()?"false":"true")+"\
if (isIncludingKids) {
/*if(kidsInclusion.equals("onlyDirectKids"))
kidsInclusion="";*/
result.append(",children:[");
boolean isFirst = true;
for (Enumeration en = this.children(); en.hasMoreElements();) {
@ -400,7 +404,7 @@ public class SelectableItemNode extends HideableNode @@ -400,7 +404,7 @@ public class SelectableItemNode extends HideableNode
result.append(",");
else
isFirst = false;
result.append(kid.toJSON(defaultId, false));
result.append(kid.toJSON(defaultId, kidsInclusion));
}
result.append("]");
}

20
src/de/superx/servlet/SuperXmlMaske.java

@ -186,7 +186,7 @@ public class SuperXmlMaske extends AbstractSuperXServlet { @@ -186,7 +186,7 @@ public class SuperXmlMaske extends AbstractSuperXServlet {
InvalidKeyException, SichtException, IOException, ServletException, NoMainEntryException, InvalidDataTypeException {
if (user == null) throw new IllegalStateException("Kein user in der Session gefunden - bitte Browser neu starten!");
userid = request.getSession().getAttribute("UserID").toString();
boolean completeTree=false;
String tidString = getTid(request);
StringBuffer json = new StringBuffer("");
MaskenContainer mc = MaskenContainer.getFromRequest(request);
@ -194,10 +194,20 @@ public class SuperXmlMaske extends AbstractSuperXServlet { @@ -194,10 +194,20 @@ public class SuperXmlMaske extends AbstractSuperXServlet {
if (maske == null) throw new IllegalStateException("Es wurde versucht, per AJAX Feld-XML nachzuladen, ohne, dass die Maske geladen wurde");
try {
for (Enumeration en = request.getParameterNames(); en.hasMoreElements();) {
String aName = (String) en.nextElement();
for (Enumeration<String> en = request.getParameterNames(); en.hasMoreElements();) {
String aName = en.nextElement();
String fieldName="";
if (aName.startsWith("getJSON_")) {
Field f = maske.getField(aName.substring(8));
fieldName=aName.substring(8);
if (aName.startsWith("getJSON_COMPLETE"))
{
completeTree=true;
fieldName=aName.substring(16);
}
Field f = maske.getField(fieldName);
String param = ServletHelper.getParameter(request, aName);
if (((f.getArt() != 12 && !f.isOldOrganigrammArt())) && f.isDynamic() && param != null && param.equals("xxxxxx-xxxxxx@")) {
@ -217,7 +227,7 @@ public class SuperXmlMaske extends AbstractSuperXServlet { @@ -217,7 +227,7 @@ public class SuperXmlMaske extends AbstractSuperXServlet {
}
// verarbeitet auch search:
json.append(f.getJSON(param));
json.append(f.getJSON(param,completeTree));
}

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

@ -1 +1 @@ @@ -1 +1 @@
27.01.2026
08.11.2026

225
superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_doc/kern_load.txt

@ -0,0 +1,225 @@ @@ -0,0 +1,225 @@
=Schnittstellen kern=
{| class="prettytable" border="1"
|-
|SuperX-Version
|2
|-
|Modulversion
|5.3
|-
|Sachgebiet
|Administration id 0
|-
|Systeminfo
|Administration id 9
|-
|Thema
|Administration
|-
|Themenbaum-Ast
|Abfragen
|}
==Ladeschritt 1: kern_cifx_neu==
LAdetabelle für zentrale Stammdaten (derzeit Kostenstellen/Orgunits) durch HLR gefüllt
Typ: Datentabelle,
Themenbereich: Administration
{| class="prettytable" border="1"
|-
! Feldname
! Feldtyp
! Größe
! Default
! Not Null
! Beschreibung
! Kommentar
! Fremdschlüssel
|-
|key
|SMALLINT
|2
|
|true
|
|
|
|-
|hs
|INTEGER
|4
|
|true
|
|
|
|-
|apnr
|VARCHAR
|255
|
|false
|
|
|
|-
|kurz
|CHAR
|10
|
|false
|
|
|
|-
|druck
|VARCHAR
|200
|
|false
|
|
|
|-
|lang_1
|CHAR
|255
|
|false
|
|
|
|-
|astat
|CHAR
|50
|
|false
|
|
|
|-
|parent
|VARCHAR
|255
|
|false
|
|
|
|-
|uniquename
|VARCHAR
|255
|
|false
|
|
|
|-
|bund_apnr
|CHAR
|10
|
|false
|
|
|
|-
|d_akt_von
|DATE
|4
|
|false
|
|
|
|-
|d_akt_bis
|DATE
|4
|
|false
|
|
|
|-
|sourcesystem_id
|VARCHAR
|255
|
|false
|
|
|
|-
|hiskey_id
|VARCHAR
|255
|
|false
|
|
|
|-
|struktur_c
|CHAR
|50
|
|false
|
|
|
|-
|lid
|VARCHAR
|255
|
|false
|Langlebige ID
|
|
|-
|parent_lid
|VARCHAR
|255
|
|false
|Übergeordnete langlebige ID
|
|
|-
|sortorder
|INTEGER
|255
|
|false
|Sortiernummer
|
|
|}

31210
superx/WEB-INF/conf/edustore/db/install/conf/kern.html

File diff suppressed because one or more lines are too long

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

File diff suppressed because one or more lines are too long

65
superx/WEB-INF/conf/edustore/db/install/prozeduren/proc_get_dbform_right_pg.sql

@ -14,55 +14,28 @@ if p_isadmin=1 @@ -14,55 +14,28 @@ if p_isadmin=1
p_recht:=1;
else
--Bedingung 2:
-- kein Admin: Besteht Recht über Gruppe zu Sachgebiet "Bearbeitung*" oder "Administration*" ?
if 0 < (SELECT count(*) from user_group_bez U,group_sachgeb_bez B, sachgebiete S
where S.tid=B.sachgebiete_id
and U.groupinfo_id=B.groupinfo_id
and U.userinfo_id=p_userid
and (S.name like ''Bearbeitung%'' or S.name like ''Administration%'')
)
-- kein Admin: Besteht Recht über Gruppe zu Sachgebiet "Administration*" ?
if exists (SELECT sg.* from sachgebiete sg
JOIN sachgeb_dbform_bez sdb ON sg.tid = sdb.sachgebiete_id
JOIN db_forms df ON df.tid = dbform_id
JOIN user_sachgeb_bez usb ON sg.tid = usb.sachgebiete_id
WHERE trim(df.name) = trim(p_form) AND usb.userinfo_id =p_userid
and (sg.name like ''Bearbeitung%'' or sg.name like ''Administration%'')
union SELECT sg.*
FROM sachgebiete sg
JOIN sachgeb_dbform_bez sdb ON sg.tid = sdb.sachgebiete_id
JOIN db_forms df ON df.tid = dbform_id
JOIN group_sachgeb_bez gsb ON sg.tid = gsb.sachgebiete_id
JOIN user_group_bez ugb on ugb.groupinfo_id=gsb.groupinfo_id
WHERE trim(df.name) = trim(p_form)
AND ugb.userinfo_id =p_userid
and (sg.name like ''Bearbeitung%'' or sg.name like ''Administration%'')
)
then
p_recht:=1;
else
--Bedingung 3:
--Besteht Recht über User zu zu Sachgebiet "Bearbeitung*" oder "Administration*" ?
if 0 < (SELECT count(*) from user_sachgeb_bez B, sachgebiete S
where S.tid=B.sachgebiete_id
and B.userinfo_id=p_userid
and (S.name like ''Bearbeitung%'' or S.name like ''Administration%'')
)
then
p_recht:=1;
else
--Bedingung 4:
--kein Admin, keine Bearbeiter: Besteht Leserecht über Gruppe zu Sachgebiet des DBFORMS?
if 0 < (SELECT count(*) from sachgeb_dbform_bez B, db_Forms D,user_group_bez U,group_sachgeb_bez G
where D.tid=B.dbform_id
and trim(D.name) = trim(p_form)
and B.sachgebiete_id=G.sachgebiete_id
and U.groupinfo_id=G.groupinfo_id
and U.userinfo_id=p_userid)
then
p_recht:=2;
else
--Bedingung 5:
--Besteht Recht über User zu zu Sachgebiet des DBFORMS ?
if 0 < (SELECT count(*) from sachgeb_dbform_bez B, db_Forms D,user_sachgeb_bez U
where D.tid=B.dbform_id
and trim(D.name) = trim(p_form)
and B.sachgebiete_id=U.sachgebiete_id
and U.userinfo_id=p_userid)
then
p_recht:=2;
end if; --Ende Bedingung 5
end if; --Ende Bedingung 4
end if; --Ende Bedingung 3
end if; --Ende Bedingung 2
end if; --Ende Bedingung 1
end if;
end if;
return p_recht;

BIN
superx/WEB-INF/lib/superx5.2.jar

Binary file not shown.

202
superx/edit/kern/maske_sicht_laden.jsp

@ -31,11 +31,16 @@ String previousValue = request.getParameter("previousValue"); @@ -31,11 +31,16 @@ String previousValue = request.getParameter("previousValue");
String zeilenanzahl = request.getParameter("zeilenanzahl");
String referrerForm = request.getParameter("referrerForm");
if(referrerForm==null || referrerForm.equals(""))
referrerForm="0";
referrerForm="maske";
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;
%>
@ -44,8 +49,7 @@ callurl+=params; @@ -44,8 +49,7 @@ callurl+=params;
<title>Auswahl <%=fname %></title>
</head>
<style>
</style>
<script type="text/javascript" language="javascript">
var sichtContentJSON;
@ -83,6 +87,9 @@ var previousValuesCount=0; @@ -83,6 +87,9 @@ var previousValuesCount=0;
if(previousValuesArray)
previousValuesCount=previousValuesArray.length;
//previousValuesCount=0; //TODO: wenn previousValue, dann klappt Aufklappen nicht immer
var treeNodes=new Array();
function initDialog(url,searchstring)
{
var ret;
@ -194,16 +201,21 @@ if(content && content.nodes && content.nodes.length >0) @@ -194,16 +201,21 @@ 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,0 //ebene
);
}
}
zs +="</ul>";
targetDiv.innerHTML=zs;
checkIndeterminates();
}
function renderNode(node,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)
{
@ -225,19 +237,28 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1) @@ -225,19 +237,28 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1)
fldName=fname;
fldType="radio";
}
zs += "<li class='sichtentreeLI'>";
if (node.nodeattrib && node.nodeattrib == 3)
{ //nicht sichtbar, kommt aber in Auswertung raus:
zs +="";//<span>"+node.title+"</span>";
}
else
{
zs += "<li class='sichtentreeLI' id='liElem"+node.objectId+"'>";
if(isRoot)
{
zs+="<span style='margin-left:0px'></span>";
zs+="<span style='margin-left:0.1rem'></span>";
}
else
{
if(node.isFolder=="true")
{
zs+="<span class='sichtentreeCaret' id='sichtentreeCaret_"+node.objectId+"'";
zs+="onClick=\"getChildNodes('"+node.objectId.trim()+"',this)\">";
zs+="</span>&nbsp;";
//if(previousValuesCount==0 && !isRoot)
// hideChildNodes(node.objectId.trim(),"sichtentreeCaret_"+node.objectId);
}
else
zs+="<span style='margin-left:15px'></span>";
@ -247,38 +268,108 @@ if(searchstring=="" || node.title.indexOf(searchstring)>-1) @@ -247,38 +268,108 @@ 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 )
{
for(var i=0;i < node.children.length;i++)
{
zs+="<ul style='margin-left:10px' id='childOf"+node.objectId+"'>";
zs += renderNode(node.children[i],false,searchstring,previousValuesCount,previousValuesArray,zeilenanzahl);
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,ebene);
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 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:
@ -302,11 +393,13 @@ var xhttp = new XMLHttpRequest(); @@ -302,11 +393,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,0);
}
}
childUL.innerHTML=childrenHTML;
//alert(JSON.stringify(childrenJSON));
checkIndeterminates();
}
};
xhttp.open("GET", suburl, true);
@ -315,6 +408,40 @@ var xhttp = new XMLHttpRequest(); @@ -315,6 +408,40 @@ var xhttp = new XMLHttpRequest();
}
function checkIndeterminates()
{
if(previousValuesCount>0)
{
for(var j=0;j < document.forms["selection"].elements.length;j++)
{
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;
}
}
}
}
}
}
}
function ndSichtEintraegeSuchen(was) {
var callurl = '/superx/servlet/SuperXmlMaske';
callurl += '?tid=' + maskentid + '&getJSON_' + fname +
@ -331,7 +458,8 @@ function ndSichtEintraegeSuchen(was) { @@ -331,7 +458,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,0);
}
}
document.getElementById("sichtDiv").innerHTML=searchResultHTML+"</ul>";
@ -346,11 +474,28 @@ function ndSichtEintraegeSuchen(was) { @@ -346,11 +474,28 @@ function ndSichtEintraegeSuchen(was) {
</script>
<body class="has-navbar-fixed-top" onload="initDialog('<%=callurl %>','')">
<div id="nd_navi_top">
<nav class="navbar is-fixed-top" role="navigation" ><!--aria-label="main navigation"-->
<div class="navbar-brand">
<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 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">
<div class="navbar-brand">
<div class="navbar-item">
<p class="title is-4">Auswahl <%=fname %></p>
</div>
@ -378,23 +523,16 @@ function ndSichtEintraegeSuchen(was) { @@ -378,23 +523,16 @@ function ndSichtEintraegeSuchen(was) {
</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:10px">
<div class="input-container">
<div class="field is-grouped is-grouped-multiline">
@ -406,12 +544,12 @@ function ndSichtEintraegeSuchen(was) { @@ -406,12 +544,12 @@ function ndSichtEintraegeSuchen(was) {
</div>
</div>
<% if(zeilenanzahl!=null && !zeilenanzahl.equals("1"))
<% if(zeilenanzahl!=null && !zeilenanzahl.equals("1") &&1==0)
{
%>
<div class="buttons">
<input type="checkbox" name="metaCheckox" value="" style="margin-left:1.5rem;" onclick="ndMaskDialogToggleAllCheckboxes(document.forms['selection'],this)" />&#160; alle markieren
<input type="checkbox" name="metaCheckox" value="" style="margin-left:20px;" onclick="ndMaskDialogToggleAllCheckboxes(document.forms['selection'],this)" />&#160; alle markieren
</div>
<hr />
<%

14
superx/edit/kern/show_html_content.jsp

@ -37,13 +37,9 @@ if(!entryOK) @@ -37,13 +37,9 @@ if(!entryOK)
if(defaultMandantenIDParam != null && !defaultMandantenIDParam.toString().equals("")) {
LinkMandantID.append("/"+defaultMandantenIDParam.toString());
}
//Impressum wird immer angezeigt, alles andere nur nach Login:
if (
IdOutput.equals("IMPRINT") ||
IdOutput.equals("PRIVACY") ||
( request.getSession()!=null&&request.getSession().getAttribute("sessiontype")!=null&&
request.getSession().getAttribute("sessiontype").equals("superx"))
) {
if (request.getSession()!=null&&request.getSession().getAttribute("sessiontype")!=null&&
request.getSession().getAttribute("sessiontype").equals("superx")) {
Object mandantobject=request.getSession().getAttribute("MandantenID");
Object userid=request.getSession().getAttribute("UserID");
@ -71,7 +67,7 @@ conmm = DbFormsConfigRegistry.instance().lookup().getConnection(mandantenid); @@ -71,7 +67,7 @@ conmm = DbFormsConfigRegistry.instance().lookup().getConnection(mandantenid);
PreparedStatement st_output;
ResultSet rs_output;
st_output=conmm.prepareStatement("select trim(content) from sx_repository where id=? and today() between gueltig_seit and gueltig_bis and aktiv=1");
st_output=conmm.prepareStatement("select trim(content) from sx_repository where id=? and id in ('PRIVACY','IMPRINT') and today() between gueltig_seit and gueltig_bis and aktiv=1");
st_output.setString(1,IdOutput);
rs_output = st_output.executeQuery();
String sb_output="";
@ -88,7 +84,7 @@ if(sb_output==null || sb_output.equals("")) @@ -88,7 +84,7 @@ if(sb_output==null || sb_output.equals(""))
//Titel holen:
PreparedStatement st_titel;
ResultSet rs_titel;
st_titel=conmm.prepareStatement("select trim(caption) from sx_repository where id=? and today() between gueltig_seit and gueltig_bis and aktiv=1");
st_titel=conmm.prepareStatement("select trim(caption) from sx_repository where id=? and id in ('PRIVACY','IMPRINT') and today() between gueltig_seit and gueltig_bis and aktiv=1");
st_titel.setString(1,IdOutput);
rs_titel = st_titel.executeQuery();
String sb_titel="";

4
superx/xml/js/memtext/nd_functions.js

@ -11,7 +11,7 @@ function ndMaskeComboLaden(fname,zeilenanzahl, caption) { @@ -11,7 +11,7 @@ function ndMaskeComboLaden(fname,zeilenanzahl, caption) {
'hidden') continue;
//todo bei startsWith select_ label_ auch überspringen
if (e.value != '' && e.value.indexOf("(")==-1) //leere Felder müssen auch übergeben werden MB!!
if (e.value != '' && e.value.indexOf("(")==-1 && e.value.length < 100 && e.value.indexOf(",")==-1) //leere Felder müssen auch übergeben werden MB!!
// 1/2016 MB dies geht nicht weil ISO kodiert
//params+="&"+felder[i]["cb_name"]+"="+encodeURIComponent(e.value);
params += "&" + getEncoded(felder[i]["htmlname"]) + "=" + getEncoded(e.value);
@ -45,7 +45,7 @@ function ndMaskeSichtLaden(fname,zeilenanzahl, caption) { @@ -45,7 +45,7 @@ function ndMaskeSichtLaden(fname,zeilenanzahl, caption) {
'hidden') continue;
//todo bei startsWith select_ label_ auch überspringen
if (e.value != '' && e.value.indexOf("(")==-1) //leere Felder müssen auch übergeben werden MB!!
if (e.value != '' && e.value.indexOf("(")==-1 && e.value.length < 100 && e.value.indexOf(",")==-1) //leere Felder müssen auch übergeben werden MB!!
// 1/2016 MB dies geht nicht weil ISO kodiert
//params+="&"+felder[i]["cb_name"]+"="+encodeURIComponent(e.value);
params += "&" + getEncoded(felder[i]["htmlname"]) + "=" + getEncoded(e.value);

132
superx/xml/js/memtext/sx_functions.js

@ -1990,3 +1990,135 @@ function validiereNeueMaskennr(frm,platform) @@ -1990,3 +1990,135 @@ function validiereNeueMaskennr(frm,platform)
return true;
}
}
/* Funktionen für Javascript Baum, z.B. GANG Studiengang-Menü: */
function srcUrl(url,targetElem)
{
this.url=url;
this.targetElem=targetElem;
}
function treeNode(name,apnr,parent,level,nodeattrib,linkUrl,linkTarget,onClickHandler,isFolder)
{
this.name=name;
this.apnr=apnr;
this.parent=parent;
this.level=level;
this.nodeattrib=nodeattrib;
this.linkUrl=linkUrl;
this.linkTarget=linkTarget;
this.onClickHandler=onClickHandler;
this.isFolder=isFolder;
}
function renderTree(treeNodes,targetDiv)
{
var zs="";
var zeilenanzahl=treeNodes.length-1;
//first establish isFolder:
for (var i=0;i <=zeilenanzahl;i++)
{
if(treeNodeHasChildren(treeNodes,treeNodes[i].apnr))
treeNodes[i].isFolder=true;
}
zs +="<ul id='treeUL'>";
for (var i=0;i <=zeilenanzahl;i++)
{
var myNode=treeNodes[i];
if(myNode.level==1) //ebene 1
{
zs+=renderTreeNode(treeNodes,myNode);
}
}
zs+="</ul>";
document.getElementById(targetDiv).innerHTML=zs;
}
function renderTreeChildNodes(treeNodes,nodeId,spanElem)
{
var childrenHTML="";
var childUlId="childOf"+nodeId;
spanElem.classList.toggle("treeCaret-down");
if(document.getElementById(childUlId))
{
//Kind existiert bereits, wird nur unsichtbar:
document.getElementById(childUlId).classList.toggle("treeNested");
}
else
{
//Kind existiert noch nicht:
const childUL=document.createElement("ul");
childUL.id=childUlId;
childUL.classList.add("treeChildUL");
spanElem.parentElement.appendChild(childUL);
var url="";//../../servlet/SuperXmlMaske?tid="+maskentid+"&getJSON_"+fname+"="+nodeId; //xxxxxx-xxxxxx@";
var suburl=url //+"&"+fname+"="+nodeId;
var ret;
var children=getTreeChildNodes(treeNodes,nodeId);
if(children && children.length >0)
{
for(var j=0;j < children.length;j++)
{
var node=children[j];
childrenHTML +=renderTreeNode(treeNodes,node);
}
}
childUL.innerHTML=childrenHTML;
}
}
function getTreeChildNodes(treeNodes,nodeId)
{
var children=new Array();
for(i=0;i<treeNodes.length;i++)
{
var myNode=treeNodes[i];
if(myNode.parent==nodeId)
{
children.push(myNode);
}
}
return children;
}
function renderTreeNode(treeNodes,myNode)
{
var ret="<li class=\"treeLink\">";
//hat Element kinder?
if(myNode.isFolder)
{
ret+="<span class=\"treeCaret\" id=\"treeCaret_\""+myNode.apnr+"\" onClick=\"renderTreeChildNodes(treeNodes,'"+myNode.apnr+"',this)\"></span>";
}
if(myNode.onClickHandler !="" && !myNode.isFolder)
{
ret+="<a onclick='"+myNode.onClickHandler+"("+myNode.apnr+")' style='cursor:pointer'>";
}
else if(myNode.linkUrl!="")
{
ret+="<a href='"+myNode.linkUrl+"' target='"+myNode.linkTarget+"'>";
}
ret+= myNode.name;
if(myNode.linkUrl!="")
{
ret+="</a>";
}
ret+="</li>";
return ret;
}
function treeNodeHasChildren(treeNodes,nodeId)
{
var hasChildren=false;
for(i=0;i<treeNodes.length;i++)
{
var myNode=treeNodes[i];
if(myNode.parent==nodeId)
hasChildren=true;
}
return hasChildren;
}

Loading…
Cancel
Save