Visualisierungsmodul für SuperX http://www.superx-projekt.de/doku/viz_modul/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1070 lines
37 KiB

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sx="http://memtext.de">
<xsl:variable name="quote"><xsl:text>"</xsl:text></xsl:variable>
<xsl:template name="head_superx_viz">
<xsl:param name="css" />
<xsl:param name="title" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</meta><!-- <link rel="stylesheet" type="text/css" href="../xml/his1/css.._menue_html.css" /> -->
<link rel="stylesheet" type="text/css" href="../style/superx.css"/>
<link rel="stylesheet" type="text/css" href="../xml/menue_html.css"/>
<link rel="stylesheet" type="text/css" href="../xml/superxml_html.css"/>
<link rel="stylesheet" type="text/css" href="../xml/maske_html.css" />
<link rel="stylesheet" type="text/css" href="../xml/tabelle_html.css" />
<link rel="stylesheet" type="text/css" href="../xml/superx_standalone.css"/>
<link rel="stylesheet" type="text/css" href="../xml/css/fontello-codes.css" />
<link rel="stylesheet" type="text/css" href="../xml/css/start_portlet.css" />
<link rel="stylesheet" type="text/css" href="../style/bulma.css" />
<link rel="stylesheet" type="text/css" href="../style/bulma-tooltip.min.css" />
<link rel="stylesheet" type="text/css" href="../style/sx_viz_muster.css" />
</head>
</xsl:template>
<xsl:template name="head_hisinone_viz">
<xsl:param name="css" />
<xsl:param name="title" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</meta>
<link rel="stylesheet" type="text/css"
href="../xml/his1/css/superx_menue_html.css" />
<link rel="stylesheet" type="text/css" href="../xml/maske_html.css" />
<!--<LINK REL="stylesheet" type="text/css" href="../style/superx.css"
></LINK> <LINK REL="stylesheet" type="text/css" href="../xml/superxml_html.css"
></LINK> -->
<xsl:choose>
<xsl:when test="$title != ''">
<xsl:choose>
<xsl:when test="starts-with($title,'Mask') ">
<link rel="stylesheet" type="text/css" href="../xml/maske_html.css" />
</xsl:when>
<xsl:otherwise>
<!-- Styles für HIS1 sind in xml/his1/css/superx_menue_html.css definiert
<LINK REL="stylesheet" type="text/css" href="../xml/tabelle_html.css" ></LINK> -->
</xsl:otherwise>
</xsl:choose>
<title>
<xsl:value-of select="$title" />
</title>
</xsl:when>
<xsl:otherwise>
<title>
<xsl:text>HISinOne-BI</xsl:text>
</title>
</xsl:otherwise>
</xsl:choose>
<link rel="stylesheet" type="text/css" href="../xml/his1/css/HISinOne.css" />
<!--<script src="../xml/js/jquery/jquery.mobile-1.4.2.min.js"></script>
<link rel="stylesheet" href="../xml/js/jquery/jquery.mobile.structure-1.4.2.dw.css" />
<link rel="stylesheet" href="../xml/js/jquery/jqm-demos.dw.css" /> -->
<link rel="stylesheet" type="text/css" href="../xml/css/fontello-codes.css" />
<link rel="stylesheet" type="text/css" href="../xml/css/start_portlet.css" />
<link rel="stylesheet" type="text/css" href="../style/bulma.css" />
<link rel="stylesheet" type="text/css" href="../style/bulma-tooltip.min.css" />
<link rel="stylesheet" type="text/css" href="../style/sx_viz_muster.css" />
<xsl:if test="$css != ''">
<link rel="stylesheet" type="text/css" href="$css" />
</xsl:if>
</head>
</xsl:template>
<xsl:template name="tableJavascript_viz">
<script language="Javascript" type="text/javascript" src="../xml/js/jquery-2.1.1.min.js" />
<script language="JavaScript" type="text/javascript" src="../xml/js/memtext/sx_functions.js"></script>
<xsl:call-template name="importVizJavascriptLibs" />
<script><xsl:text><![CDATA[
//document.body.append(Plot.plot(options));
function commonChartProperty(name,
caption,
isMandatory,
inputType,
staticValues,
range_from,
range_to,
defaultValue,
propUnit,
explanation,
groupCaption,
groupUniquename,
rendererUniquename,
groupVariableName,
variableName,
propValueType,
isGeneric
)
{
this.name=name;
this.caption=caption;
this.staticValues=staticValues;
this.range_from=range_from;
this.range_to=range_from;
this.isMandatory=isMandatory;
this.inputType=inputType;
this.defaultValue=defaultValue;
this.propUnit=propUnit;
this.explanation=explanation;
this.groupCaption=groupCaption;
this.groupUniquename=groupUniquename;
this.rendererUniquename=rendererUniquename;
this.groupVariableName=groupVariableName;
this.variableName=variableName;
this.propValueType=propValueType;
this.isGeneric=isGeneric;
this.getValueResultset = function () {
var valueOptions=[];
var optionCounter=0;
var staticValueArray = staticValues.split(/\|/);
for(var j=0;j < staticValueArray.length;j++)
{
var isDefault=false;
if(staticValueArray[j])
{
if(staticValueArray[j]==this.defaultValue)
isDefault=true;
var o=new selectionPropertyValue(optionCounter,staticValueArray[j],staticValueArray[j],isDefault);
valueOptions[optionCounter]=o;
optionCounter++;
}
}
return valueOptions;
}
}
function commonChartPropertyGroup(caption,groupUniquename,groupVariableName)
{
this.caption=caption;
this.groupUniquename=groupUniquename;
this.groupVariableName=groupVariableName;
}
var commonChartProperties=[];
]]></xsl:text>
<xsl:for-each select="/ergebnisse/ergebnis[@ordnr='0']/ergebniselement/chartProperties/commonChartProperty">
<xsl:text>
var newCommonChartProperty = new commonChartProperty("</xsl:text>
<xsl:value-of select="@prop_uniquename" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@caption" />
<xsl:text>",</xsl:text><xsl:choose>
<xsl:when test="@is_mandatory=1"><xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
<xsl:text>,"</xsl:text>
<xsl:value-of select="@input_type_uniquename" />
<xsl:text>"
,"</xsl:text>
<xsl:value-of select="@static_values" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@prop_range_from" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@prop_range_to" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@prop_default" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@prop_unit" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@explanation" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@group_caption" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@group_uniquename" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@renderer_uniquename" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@group_variable_name" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@variable_name" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@propValueType" />
<xsl:text>",</xsl:text>
<xsl:value-of select="@isGeneric" />
<xsl:text>);
commonChartProperties.push(newCommonChartProperty);
</xsl:text>
</xsl:for-each>
<!--<xsl:text>
var newCommonChartProperty = new commonChartProperty("caption",
"Titel des Diagramms",
false,
"TEXTAREA",
"",
"",
"",
"</xsl:text>
<xsl:value-of select="/ergebnisse/ergebnis[@ordnr='0']/maskenname" /><xsl:text>",
"wird unter dem Diagramm angezeigt",
"Diagrammkopf",
"",
"plot",
"layout",
"caption",
"string");
commonChartProperties.push(newCommonChartProperty);
</xsl:text>-->
<xsl:text>
function vizRenderer(uniquename,caption)
{
this.caption=caption;
this.uniquename=uniquename;
}
var vizRenderers=[];
</xsl:text>
<xsl:for-each select="/ergebnisse/ergebnis[@ordnr='0']/ergebniselement/vizRenderers/vizRenderer">
<xsl:text>
var newVizRenderer = new vizRenderer("</xsl:text>
<xsl:value-of select="@uniquename" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@caption" />
<xsl:text>");
vizRenderers.push(newVizRenderer);
</xsl:text>
</xsl:for-each>
<xsl:text>
function vizType(uniquename,caption,rendererUniquename,orientation)
{
this.caption=caption;
this.uniquename=uniquename;
this.rendererUniquename=rendererUniquename,
this.orientation=orientation;
}
var vizTypes=[];
</xsl:text>
<xsl:for-each select="/ergebnisse/ergebnis[@ordnr='0']/ergebniselement/vizTypes/vizType">
<xsl:text>
var newVizType = new vizType("</xsl:text>
<xsl:value-of select="@uniquename" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@caption" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@renderer_uniquename" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@orientation" />
<xsl:text>");
vizTypes.push(newVizType);
</xsl:text>
</xsl:for-each>
<xsl:text>
function vizTypeProperty(propUniquename,caption,typeUniquename,groupUniquename,isMandatory,propertyType,explanation)
{
this.propUniquename=propUniquename;
this.caption=caption;
this.groupUniquename=groupUniquename;
this.typeUniquename=typeUniquename;
this.isMandatory=isMandatory;
this.propertyType=propertyType;
this.explanation=explanation;
}
var vizTypeProperties=[];
</xsl:text>
<xsl:for-each select="/ergebnisse/ergebnis[@ordnr='0']/ergebniselement/viz_type_properties/viz_type_property">
<xsl:text>
var newVizTypeProperty = new vizTypeProperty("</xsl:text>
<xsl:value-of select="@uniquename" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@caption" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@viz_type_uniquename" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@viz_property_group_uniquename" />
<xsl:text>",</xsl:text>
<xsl:choose>
<xsl:when test="@is_mandatory='1'">
<xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text>,"</xsl:text>
<xsl:value-of select="@propValueType" />
<xsl:text>","");
vizTypeProperties.push(newVizTypeProperty);
</xsl:text>
</xsl:for-each>
</script>
<script language="Javascript" type="text/javascript" src="../xml/js/viz/viz_functions.js" />
<style type="text/css">
.node rect {
cursor: move;
fill-opacity: .9;
shape-rendering: crispEdges;
}
.node text {
pointer-events: none;
text-shadow: 0 1px 0 #fff;
}
.link {
fill: none;
stroke: #000;
stroke-opacity: .2;
}
.link:hover {
stroke-opacity: .5;
}
</style>
</xsl:template>
<xsl:template name="buildVizMetadata">
<xsl:variable name="vizInitialName">
<xsl:choose>
<xsl:when test="/ergebnisse/@isMakro='true'">
<xsl:value-of select="/ergebnisse/makro/name"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="/ergebnisse/ergebnis/maskenname" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!--<xsl:call-template name="navigationsmenue" />-->
<script language="Javascript">
<xsl:text>
var vizInitialName='</xsl:text><xsl:value-of select="$vizInitialName"/><xsl:text>';
function dataRowMetaData(tableId,nr,colname,colcaption,coltype,colfunction)
{
this.tableId=tableId;
this.nr=nr;
this.colname=colname;
this.colcaption=colcaption;
this.coltype=coltype;
this.colfunction=colfunction;
}
function tableMetaData(nr,value,name,isDefault)
{
this.value=value;
this.nr=nr;
this.name=name
this.isDefault=isDefault;
}
var rsTableMetaData=new Array();
var rsColumnMetaData=new Array();
var rs=new Array();
</xsl:text>
</script>
<xsl:for-each select="/ergebnisse/ergebnis/ergebniselement">
<xsl:call-template name="buildVizData" >
<xsl:with-param name="tableId" select="@ordnr" />
</xsl:call-template>
</xsl:for-each>
</xsl:template>
<xsl:template name="buildVizData">
<xsl:param name="tableId" />
<script language="Javascript">
<xsl:text>
rsTableMetaData.push(new tableMetaData(
</xsl:text>
<xsl:value-of select="position()"/>
<xsl:text>,'</xsl:text>
<xsl:value-of select="$tableId"/>
<xsl:text>','</xsl:text>
<xsl:value-of select="concat('Tab. ',$tableId+1)"/>
<xsl:text>',
</xsl:text>
<xsl:choose>
<xsl:when test="position()=1">
<xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text>
));
rs[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>]=new Array();
var myChartModel=new chartModel(1,"","",rsTableMetaData);
function dataRow_</xsl:text><xsl:value-of select="$tableId"/><xsl:text>(rownr</xsl:text>
<xsl:for-each select="sqlerg/complete_headers/header">
<xsl:text>,</xsl:text>
<xsl:call-template name="getColumnNameJS">
<xsl:with-param name="columnNameFromDB" select="f_name"/>
</xsl:call-template>
</xsl:for-each>
<xsl:text>
)
{
this.rownr=rownr;
</xsl:text>
<xsl:for-each select="sqlerg/complete_headers/header">
<xsl:text>this.</xsl:text><xsl:call-template name="getColumnNameJS">
<xsl:with-param name="columnNameFromDB" select="f_name"/>
</xsl:call-template><xsl:text>=</xsl:text>
<xsl:call-template name="getColumnNameJS">
<xsl:with-param name="columnNameFromDB" select="f_name"/>
</xsl:call-template><xsl:text>;
</xsl:text>
</xsl:for-each><xsl:text>
}
rsColumnMetaData[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>]=new Array();
rsColumnMetaData[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>].push(new dataRowMetaData('</xsl:text>
<xsl:value-of select="$tableId"/><xsl:text>',</xsl:text>
<xsl:value-of select="0"/>
<xsl:text>,'rownr','Zeilennr.',0,4));
</xsl:text>
<xsl:for-each select="sqlerg/complete_headers/header">
<xsl:variable name="rownr">
<xsl:value-of select="position()"/>
</xsl:variable>
<xsl:text>
rsColumnMetaData[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>].push(new dataRowMetaData('</xsl:text>
<xsl:value-of select="$tableId"/><xsl:text>',</xsl:text>
<xsl:value-of select="$rownr"/>
<xsl:text>,'</xsl:text>
<xsl:call-template name="getColumnNameJS">
<xsl:with-param name="columnNameFromDB" select="f_name"/>
</xsl:call-template>
<xsl:text>','</xsl:text>
<xsl:call-template name="remove_linebreaksAndQuot">
<xsl:with-param name="volltext" select="wert" />
</xsl:call-template>
<xsl:text>',0,null));</xsl:text> <!--coltype noch unbekannt, colfunction unnötig-->
</xsl:for-each>
<xsl:for-each select="sqlerg/row">
<xsl:variable name="rownr">
<xsl:value-of select="position()"/>
</xsl:variable>
<xsl:if test="$rownr=1">
<!-- first metadata -->
<xsl:for-each select="col">
<xsl:variable name="colnr">
<xsl:value-of select="position()"/>
</xsl:variable>
<xsl:text>
rsColumnMetaData[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>][</xsl:text><xsl:value-of select="number($colnr)"/><xsl:text>].coltype=</xsl:text><xsl:value-of select="@typ"/>
<xsl:text>;
</xsl:text>
</xsl:for-each>
</xsl:if>
<!--now resultset-->
<xsl:text>
//rs[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>]= new Array();
rs[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>].push(new dataRow_</xsl:text><xsl:value-of select="$tableId"/><xsl:text>(</xsl:text><xsl:value-of select="$rownr"/>
<xsl:for-each select="col">
<xsl:text>,</xsl:text>
<xsl:choose>
<xsl:when test="@typ='1'"><xsl:text>'</xsl:text>
<xsl:call-template name="remove_linebreaksAndQuot">
<xsl:with-param name="volltext" select="wert" />
</xsl:call-template>
<xsl:text>'</xsl:text></xsl:when>
<!--todo:Typ Datum -->
<xsl:when test="string-length(wert)=0"><xsl:text>null</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="wert"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:text>));
</xsl:text>
</xsl:for-each>
</script>
</xsl:template>
<xsl:template name="getColumnNameJS">
<xsl:param name="columnNameFromDB" />
<xsl:choose>
<xsl:when test="contains($columnNameFromDB,'?')">
<xsl:value-of select="concat('column_',@id+1)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$columnNameFromDB"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- start Javascript-->
<xsl:template name="importVizJavascriptLibs">
<script language="Javascript" type="text/javascript" src="../xml/js/viz/d3.min.js" />
<script language="Javascript" type="text/javascript" src="../xml/js/viz/plot.js" />
<script language="Javascript" type="module" src="../xml/js/viz/d3-sankey.js" />
<xsl:for-each select="/ergebnisse/ergebnis/ergebniselement/vizTypes/vizType[@srcpath !='/superx/xml/js/viz/d3.min.js'
and @srcpath != '/superx/xml/js/viz/plot.js'
and @srcpath != '/superx/xml/js/viz/d3-sankey.js'
and @srcpath != ''
and (@renderer_uniquename='plot' or @renderer_uniquename='d3js') ]">
<script language="Javascript" type="text/javascript" src="{@srcpath}" />
</xsl:for-each>
</xsl:template>
<xsl:template name="modalCards" >
<xsl:for-each select="/ergebnisse">
<xsl:for-each select="ergebnis/ergebniselement">
<xsl:variable name="chart_id"><xsl:value-of select="../felder/feld[@varname='Grafik']/value" /></xsl:variable>
<xsl:variable name="ergebniselement_ordnr"><xsl:value-of select="@ordnr" /></xsl:variable>
<xsl:if test="$chart_id != ''">
<div class="modal modal-fx-3dSlit" id="{concat('modalCard',$ergebniselement_ordnr)}">
<div class="modal-background"></div>
<div class="modal-content is-huge is-image">
<!-- content -->
<div class="modal-content">
<div class="box" style="text-align:right">
<a href="{concat('javascript:closeModalImage(',$ergebniselement_ordnr,');')}">
<span class="button is-black is-outlined"> X </span>
</a>
</div>
<div class="box">
<div id="{concat('modalCardImage',$ergebniselement_ordnr)}">
Picture placeholder
</div>
</div>
</div>
</div>
</div>
<div class="modal modal-fx-3dSlit" id="{concat('modalCardDetail',$ergebniselement_ordnr)}">
<div class="modal-background"></div>
<div class="modal-content is-tiny">
<div class="box" style="text-align:right">
<h4><xsl:value-of select="viz_charts/viz_chart[@tid=$chart_id]/@caption"/></h4>
<a href="{concat('javascript:closeModalCardDetail(',$ergebniselement_ordnr,');')}">
<span class="button is-black is-outlined"> X </span>
</a>
</div>
<!-- content -->
<div class="card">
<div class="card-image">
<div id="{concat('modalCardDetailImage',$ergebniselement_ordnr)}">
Picture placeholder
</div>
</div>
<div class="card-content">
<div class="media">
<div class="media-content">
<p><xsl:value-of select="viz_charts/viz_chart[@tid=$chart_id]/@description"/></p>
<p class="legende">
<xsl:for-each select="../felder/feld">
<xsl:if test="(value !='' or sicht/@isFirstInGroup='false' or @isstandtoday='false') and @varname != 'sort' and @varname != 'maxoffset' and value_caption != ''">
<span class="feldname">
<xsl:choose>
<xsl:when test="string-length(caption_short) &gt; 0 and caption_short != 'null'" >
<![CDATA[]]><xsl:value-of select="caption_short" /><![CDATA[]]>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@varname" />
</xsl:otherwise>
</xsl:choose></span>:&#160;
<xsl:if test="string-length(value_caption) &lt; 50">
<span class="feldwert"><xsl:value-of select="value_caption" /><![CDATA[]]></span>
</xsl:if>
<xsl:if test="string-length(value_caption) &gt; 49">
<span class="feldwert"><![CDATA[]]><xsl:value-of select="substring(value_caption,0,50)" /><![CDATA[]]>...</span>
</xsl:if>
<xsl:if test="sicht!=''">
<span><![CDATA[ (]]><xsl:value-of select="sicht" />
<xsl:if test="@stand!=''"><xsl:text> - Stand:</xsl:text><xsl:value-of select="@stand"/></xsl:if>
<xsl:text><![CDATA[)]]> </xsl:text></span>
</xsl:if>
;
</xsl:if>
</xsl:for-each>
User: <xsl:value-of select="/ergebnisse/user"/>&#160;
Stand: <xsl:value-of select="../stand" /></p>
<xsl:if test="../hinweis != ''">
<xsl:call-template name="newline_to_br">
<xsl:with-param name="string" select="../hinweis" />
</xsl:call-template>
</xsl:if>
</div>
<p align="right"><a href="{concat('javascript:closeModalCardDetail(',$ergebniselement_ordnr,');')}">
<span class="button is-black is-outlined"> X </span>
</a></p>
</div>
</div>
</div>
</div>
</div>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
<xsl:template name="modalCards_neu" >
<xsl:for-each select="/ergebnisse">
<xsl:for-each select="ergebnis/ergebniselement">
<xsl:variable name="chart_id"><xsl:value-of select="../felder/feld[@varname='Grafik']/value" /></xsl:variable>
<xsl:variable name="ergebniselement_ordnr"><xsl:value-of select="@ordnr" /></xsl:variable>
<xsl:if test="$chart_id != ''">
<div class="modal" id="{concat('modalCard',$ergebniselement_ordnr)}">
<div class="modal-background"></div>
<div class="modal-card">
<header class="modal-card-head">
<div class="box" style="text-align:right">
<a href="{concat('javascript:closeModalImage(',$ergebniselement_ordnr,');')}">
<span class="button is-black is-outlined"> X </span>
</a>
</div>
</header>
<section class="modal-card-body">
<div id="{concat('modalCardImage',$ergebniselement_ordnr)}">
Picture placeholder
</div>
</section>
<footer class="modal-card-foot"></footer>
</div>
</div>
<div class="modal" id="{concat('modalCardDetail',$ergebniselement_ordnr)}">
<div class="modal-background"></div>
<div class="modal-card">
<header class="modal-card-head">
<div class="box" style="text-align:right">
<h4><xsl:value-of select="viz_charts/viz_chart[@tid=$chart_id]/@caption"/></h4>
<a href="{concat('javascript:closeModalCardDetail(',$ergebniselement_ordnr,');')}">
<span class="button is-black is-outlined"> X </span>
</a>
</div></header>
<section class="modal-card-body">
<!-- content -->
<div id="{concat('modalCardDetailImage',$ergebniselement_ordnr)}">
Picture placeholder
</div>
</section>
<footer class="modal-card-foot">
<p><xsl:value-of select="viz_charts/viz_chart[@tid=$chart_id]/@description"/></p>
<p class="legende">
<xsl:for-each select="../felder/feld">
<xsl:if test="(value !='' or sicht/@isFirstInGroup='false' or @isstandtoday='false') and @varname != 'sort' and @varname != 'maxoffset' and value_caption != ''">
<span class="feldname">
<xsl:choose>
<xsl:when test="string-length(caption_short) &gt; 0 and caption_short != 'null'" >
<![CDATA[]]><xsl:value-of select="caption_short" /><![CDATA[]]>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@varname" />
</xsl:otherwise>
</xsl:choose></span>:&#160;
<xsl:if test="string-length(value_caption) &lt; 50">
<span class="feldwert"><xsl:value-of select="value_caption" /><![CDATA[]]></span>
</xsl:if>
<xsl:if test="string-length(value_caption) &gt; 49">
<span class="feldwert"><![CDATA[]]><xsl:value-of select="substring(value_caption,0,50)" /><![CDATA[]]>...</span>
</xsl:if>
<xsl:if test="sicht!=''">
<span><![CDATA[ (]]><xsl:value-of select="sicht" />
<xsl:if test="@stand!=''"><xsl:text> - Stand:</xsl:text><xsl:value-of select="@stand"/></xsl:if>
<xsl:text><![CDATA[)]]> </xsl:text></span>
</xsl:if>
;
</xsl:if>
</xsl:for-each>
User: <xsl:value-of select="/ergebnisse/user"/>&#160;
Stand: <xsl:value-of select="../stand" /></p>
<xsl:if test="../hinweis != ''">
<xsl:call-template name="newline_to_br">
<xsl:with-param name="string" select="../hinweis" />
</xsl:call-template>
</xsl:if>
<p align="right"><a href="{concat('javascript:closeModalCardDetail(',$ergebniselement_ordnr,');')}">
<span class="button is-black is-outlined"> X </span>
</a></p>
</footer>
</div>
</div>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
<xsl:template name="viewer_kachel">
<xsl:param name="caption" />
<xsl:param name="ergebniselement_ordnr" />
<div class="card is-shady">
<div class="card-image">
<div id="{concat('chartDiv',$ergebniselement_ordnr)}">
Platzhalter
</div>
</div>
<p>
<a onClick="{concat('javascript:openModalImage(',$ergebniselement_ordnr,');')}">
<span class="button is-success is-small modal-button">Vergrößern ...</span></a>
<a onClick="{concat('javascript:openModalCardDetail(',$ergebniselement_ordnr,');')}">
<span class="button is-link is-inverted is-small modal-button">Mehr Infos ...</span></a>
</p>
</div>
</xsl:template>
<!-- Templates für Maskenfelder in Tabellen: -->
<xsl:template name="renderTableDialogs" >
<div class="card var(--bulma-card-background-color)" style="margin-top:5em;">
<form name="Weiterverarbeitung" method="post" target="_self" charset="UTF-8" action="SuperXmlTabelle">
<div class="card-content">
<input name="navi" type="hidden" value="{/ergebnisse/@showNavigation}" />
<input type="hidden" name="tid">
<xsl:choose>
<xsl:when test="/ergebnisse/@isMakro='true'">
<xsl:attribute name="value"><xsl:value-of select="/ergebnisse/makro/@id" /></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="value"><xsl:value-of select="/ergebnisse/ergebnis/maskenname/@id" /></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</input>
<input type="hidden" name="UserID"><xsl:attribute name="value"><xsl:value-of select="/ergebnisse/userID" /></xsl:attribute></input>
<input type="hidden" name="reuseresult" value="true"/> <!-- gecachte Ergebnis benutzen-->
<input type="hidden" name="maxoffset" value=""/> <!--im Normalfall wird Servleteinstellung genutzt - nur Druckversion übergibt Wert-->
<input type="hidden" name="offset">
<xsl:attribute name="value"><xsl:value-of select="/ergebnisse/ergebnis/ergebniselement/sqlerg/@offset" /></xsl:attribute>
</input>
<input type="hidden" name="stylesheet" value="" />
<input type="hidden" name="contenttype" value="" />
<!-- MB 5/2011 fuer Export nur sichtbarer Tabellenzeilen nach Excel/PDF -->
<input type="hidden" name="irowno" value="" />
<!-- Start Schleife alle Maskenfelder-->
<xsl:for-each select="/ergebnisse/ergebnis[@ordnr='0']/completefields/feld">
<xsl:variable name="feldname"><xsl:value-of select="@varname" /></xsl:variable>
<xsl:variable name="feldnameEscaped"><xsl:call-template name="create_varname"><xsl:with-param name="string"><xsl:value-of select="@varname"/></xsl:with-param></xsl:call-template></xsl:variable>
<xsl:variable name="feldart">
<xsl:call-template name="getFeldArt">
<xsl:with-param name="feldname" select="$feldname"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="feldHidden">
<xsl:call-template name="getFeldHidden">
<xsl:with-param name="feldname" select="$feldname"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="feldZeilenanzahl">
<xsl:call-template name="getFeldZeilenanzahl">
<xsl:with-param name="feldname" select="$feldname"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="$feldname='##line##'">
<!-- do nothing-->
</xsl:when>
<xsl:when test="$feldHidden='true' or $feldname='tablestylesheet'">
<!--verstecktesFeld-->
<xsl:text disable-output-escaping="yes"><![CDATA[<input type="hidden" name="]]></xsl:text><xsl:value-of disable-output-escaping="no" select="@varname"/><xsl:text>" value="</xsl:text>
<xsl:value-of disable-output-escaping="no" select="value"/><xsl:text>"</xsl:text>
<xsl:text disable-output-escaping="yes"><![CDATA[</input>
]]></xsl:text>
</xsl:when>
<xsl:when test="$feldart='1' or $feldart='12'">
<xsl:call-template name="tabellenFeldComboOderSicht">
<xsl:with-param name="maskeninfo_id" select="/ergebnisse/ergebnis[@ordnr='0']/maskenname/@id"/>
<xsl:with-param name="Feldname" select="$feldname"/>
<xsl:with-param name="FeldnameEscaped" select="$feldnameEscaped"/>
<xsl:with-param name="feldZeilenanzahl" select="$feldZeilenanzahl"/>
<xsl:with-param name="feldart" select="$feldart"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise><xsl:value-of select="concat('Feld ',$feldname,' ist nicht geeignet für Tabellenaufrufe')"/>
<br />
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<div class="field">
<button class="button is-primary is-outlined" type="submit" onclick="document.forms['Weiterverarbeitung'].elements['reuseresult'].value='false';document.forms['Weiterverarbeitung'].elements['stylesheet'].value='tabelle_html_viz.xsl';return true;">
Neu laden...
</button>
<!--<input type="submit" class="sx_buttondiv_submit" value="Neu laden..." onclick="document.forms['Weiterverarbeitung'].elements['reuseresult'].value='false';document.forms['Weiterverarbeitung'].elements['stylesheet'].value='tabelle_html_viz.xsl';return true;" />-->
</div>
</div>
</form>
</div>
</xsl:template>
<xsl:template name="tabelleSicht">
<div dojoType="dialog" id="sichtdlg" bgColor="darkgray" bgOpacity="0.7" toggle="fade" toggleDuration="100"
closeNode="ok" style="z-index:1012;display:none">
<form name="treedlgform" onsubmit="return false;">
<center>
<table align="center" cellpadding="0">
<tr><td colspan="2" class="header" id="sichtElementName" align="center">Auswahl</td></tr>
<tr>
<td id="sicht" class="sichtstand" align="center"><b>Sicht:</b> ausgewählte Sicht</td><td id="sichtbutton" class="sichtstand"><input class="submit_pencil" id="Sichtauswahl" type="button" value="Sichtauswahl" onclick="sichtauswahl.show()"></input></td>
</tr>
<tr><td id="stand" class="sichtstand" align="center"><b>Stand:</b> 1.1.2007</td><td id="standbutton" class="sichtstand"><input class="submit_pencil" id="Standauswahl" type="button" value="ändern" onclick="dojo.widget.byId('Standeingabedlg').show();"></input></td>
</tr>
</table>
</center>
<div
dojoType="TreeSelectorV3"
widgetId="treeSelector"
allowedMulti="false"
id="treeSelector" eventNames="select:nodeSelected">
<xsl:text> </xsl:text>
</div>
<div dojoType="TreeEmphasizeOnSelect" selector="treeSelector"></div>
<div dojoType="memtext:TreeLoadingControllerSx" id="treeLoadingController" widgetId="treeLoadingController">
<xsl:attribute name="RPCUrl">/superx/servlet/SuperXmlMaske?tid=<xsl:value-of select="/ergebnisse/ergebnis[@ordnr='0']/maskenname/@id"/></xsl:attribute>
</div>
<div style="height:325px;overflow:scroll"><!-- IE needs non-dojo div vor scrolling-->
<div dojoType="memtext:MemTree" widgetId="selTree" id="selTree" listeners="treeLoadingController;treeSelector">
<div dojoType="TreeNodeV3" title="keine Auswahl möglich" ></div>
</div>
</div>
<br/>
<center>
<label id="sichthintmulti">Sie können einen oder mehrere Einträge auswählen (<a href="javascript:alert('Halten Sie beim Anklicken Strg gedrückt, um mehrere Einträge auszuwählen.');">Hinweis</a>)</label>
<p align="center">
<input type="button" class="submit"
onclick="document.getElementById('suchok').style.display='';document.getElementById('suchselect').style.display='none';document.getElementById('suchuebernehmen').style.display='none';dojo.widget.byId('suchdlg').show();"
value="Suchen"></input>&#160;
</p>
<p align="center">
<input type="button" id="abbrechen" class="submit" onclick="sichtdlg.hide();zeigeCombosIE6();" value="Abbrechen"></input>&#160;
<input type="button" id="ok" class="submit" onclick="maskeSichtauswahlUebernehmen();" value="OK"></input>&#160;&#160;&#160;&#160;&#160;
<input type="button" id="leeren" class="submit" onclick="dojo.widget.byId('treeSelector').deselectAll();maskeSichtauswahlUebernehmen();sichtdlg.hide();" value="Leeren"></input>
</p>
</center>
</form>
</div>
<div dojoType="dialog" id="sichtauswahl" bgColor="darkgray" bgOpacity="0.7" toggle="fade" toggleDuration="100" closeNode="ok"
style="z-index:1014;display:none">
<h3 align="center">Sicht auswählen</h3>
<form name="sichtauswahlform">
<p align="center">
<select name="sichtselect">
<option value="-999">keine Auswahl möglich</option>
</select>
</p>
<p align="center">
<input type="button" class="clsButtonStyle" id="abbrechen2" onclick="sichtauswahl.hide()" value="Abbrechen">&#160;</input>
<input type="button" id="ok2" class="clsButtonStyle" onclick="maskeSichtAendern()" value="OK"></input>
</p>
</form>
</div>
<!-- end sicht -->
<!-- start suchdlg -->
<div dojoType="dialog" id="suchdlg" bgColor="darkgray" bgOpacity="0.7" toggle="fade" toggleDuration="100" style="z-index:1015;display:none">
<h3 align="center">Suche</h3>
<form name="suchform" onsubmit="return false;"> <!-- theoretisch könnte man form sogar weglassen, weil gar nicht gepostet werden soll -->
<p align="center">
<input type="text" id="suchtext" onkeypress="enterClicksButton('suchok',event)"></input>
</p>
<p align="center">
<select id="suchselect" size="10">
</select>
</p>
<p align="center">
<input type="button" class="clsButtonStyle" id="abbrechen" onclick="dojo.widget.byId('suchdlg').hide();" value="Abbrechen">&#160;</input>
<input type="button" id="suchok" class="clsButtonStyle" onclick="sichtEintraegeSuchen(document.getElementById('suchtext').value);" value="OK"></input>
<input type="button" id="suchuebernehmen" class="clsButtonStyle" onclick="dojo.widget.byId('suchdlg').hide();combodlg.hide();sichtdlg.hide();suchauswahlUebernehmen();" value="Übernehmen"></input>
</p>
</form>
</div>
<!-- end suchdlg -->
</xsl:template>
<xsl:template name="tabellenFeldComboOderSicht">
<xsl:param name="maskeninfo_id" />
<xsl:param name="Feldname" />
<xsl:param name="FeldnameEscaped" />
<xsl:param name="feldZeilenanzahl" select="1"/>
<xsl:param name="feldart" select="1"/>
<xsl:variable name="jsCall"><xsl:text>vizTabelleComboOderSichtLaden(</xsl:text>
<xsl:value-of select="$maskeninfo_id" />
<xsl:text>,'</xsl:text>
<xsl:value-of select="$Feldname"/>
<xsl:text>','</xsl:text>
<xsl:value-of select="$Feldname"/>
<xsl:text>','</xsl:text>
<xsl:value-of select="$FeldnameEscaped"/>
<xsl:text>',</xsl:text>
<xsl:value-of select="$feldZeilenanzahl"/>
<xsl:text>,'</xsl:text>
<xsl:value-of select="$feldart"/>
<xsl:text>');</xsl:text>
</xsl:variable>
<div class="field is-grouped">
<div class="label-container">
<p class="button-label">
<a class="button is-link is-outlined is-small is-fullwidth">
<xsl:attribute name="onClick">
<xsl:value-of select="$jsCall"/>
</xsl:attribute>
<xsl:value-of select="$Feldname"/></a>
</p>
</div>
<span class="separator">&#160;</span>
<span class="separator">&#160;</span>
<div class="field-body">
<p class="control-new ">
<input class="schluesselfeld" type="text" size="15" style="display:none" id="{$FeldnameEscaped}" name="{$Feldname}" tabindex="511">
<xsl:attribute name="value"><xsl:value-of select="/*/*/felder/feld [@varname = $Feldname]/value"/></xsl:attribute>
</input>
<input class="input is-small is-fullwidth" type="label" readonly="true" name="{concat('label_',$FeldnameEscaped)}" id="{concat('label_',$FeldnameEscaped)}">
<xsl:attribute name="onclick"><xsl:value-of select="$jsCall"/>
</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="/*/*/felder/feld [@varname = $Feldname]/value_caption"/></xsl:attribute>
</input>
<xsl:if test="$feldart='12'">
<input type="hidden">
<xsl:attribute name="value">
<xsl:choose>
<xsl:when test="../../felder/feld[@varname=$Feldname]/@stand !=''">
<xsl:value-of select="../../felder/feld[@varname=$Feldname]/@stand"/>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="value"><xsl:value-of select="'01.01.2024'"/>
</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="name">
<xsl:value-of select="concat($Feldname,'-Stand')"/>
</xsl:attribute>
</input>
<input type="hidden">
<xsl:attribute name="name">
<xsl:value-of select="concat($Feldname,'-Sicht')"/>
</xsl:attribute>
<xsl:attribute name="value">
<xsl:value-of select="../../felder/feld[@varname=$Feldname]/sicht/@name_intern"/>
</xsl:attribute>
</input>
</xsl:if>
</p>
<span class="separator">&#160;</span>
<span class="separator">&#160;</span>
<span class="separator">&#160;</span>
<span class="separator">&#160;</span>
<!--<span class="info" onclick="window.open('https://super-ics.de/superx/doku/kern_modul/admin/f_Patcheinspielen.htm','_blank','directories=no,location=no,menubar=no,scrollbars=yes,resizable=yes,toolbar=no,width=800,height=660'); ">
<figure class="image is-24x24">
<img src="../images/information_grey_liberation.svg" />
</figure>
</span>-->
</div>
</div>
</xsl:template>
<xsl:template name="getFeldArt">
<xsl:param name="feldname" />
<xsl:value-of select="/ergebnisse/ergebnis[@ordnr='0']/completefields/feld[@varname=$feldname]/@art"/>
</xsl:template>
<xsl:template name="getFeldHidden">
<xsl:param name="feldname" />
<xsl:value-of select="/ergebnisse/ergebnis[@ordnr='0']/completefields/feld[@varname=$feldname]/@hidden"/>
</xsl:template>
<xsl:template name="getFeldZeilenanzahl">
<xsl:param name="feldname" />
<xsl:value-of select="/ergebnisse/ergebnis[@ordnr='0']/completefields/feld[@varname=$feldname]/@zeilenanzahl"/>
</xsl:template>
<xsl:template name="tableMaskenfelderJS">
<script language="Javascript"><xsl:text><![CDATA[
var felder = new Array();
]]></xsl:text>
<xsl:for-each select="/ergebnisse/ergebnis[@ordnr='0']/completefields/feld">
<xsl:text>felder[</xsl:text><xsl:value-of select="position()" /><xsl:text>]= new Object();
felder[</xsl:text><xsl:value-of select="position()" /><xsl:text>]["htmlname"]='</xsl:text><xsl:value-of select="@varname"/><xsl:text>';
felder[</xsl:text><xsl:value-of select="position()" /><xsl:text>]["name"]='</xsl:text><xsl:call-template name="create_varname"><xsl:with-param name="string"><xsl:value-of select="@varname"/></xsl:with-param></xsl:call-template><xsl:text>';
</xsl:text>
</xsl:for-each>
</script>
</xsl:template>
<xsl:template name="getChartModel">
<xsl:param name="chart_id" />
<xsl:param name="useMiniatureIfAvailable" select="'true'"/>
<xsl:variable name="chartModel">
<xsl:choose>
<xsl:when test="$useMiniatureIfAvailable='true' and viz_charts/viz_chart[@tid=$chart_id]/@chartmodel_miniature !=''">
<xsl:value-of select="viz_charts/viz_chart[@tid=$chart_id]/@chartmodel_miniature"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="viz_charts/viz_chart[@tid=$chart_id]/@chartmodel"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="translate($chartModel,'§',$quote)"/>
</xsl:template>
</xsl:stylesheet>