From f75010b5b543e812a3e89b29a97ae9794c04d999 Mon Sep 17 00:00:00 2001 From: Daniel Quathamer Date: Wed, 18 Jan 2023 09:20:37 +0100 Subject: [PATCH] =?UTF-8?q?Refactoring=20chartProperties=20f=C3=BCr=20D3?= =?UTF-8?q?=20#6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sx_stylesheets_einfuegen.sql | 18 +- superx/xml/30190_html_chart_sankey.xsl | 124 +++ superx/xml/30220_html_chart_sankey.xsl | 124 +++ superx/xml/js/viz/sankey_v3.js | 53 +- superx/xml/js/viz/viz_functions.js | 64 +- superx/xml/viz_html_chart.xsl | 993 +----------------- 6 files changed, 359 insertions(+), 1017 deletions(-) create mode 100644 superx/xml/30190_html_chart_sankey.xsl create mode 100644 superx/xml/30220_html_chart_sankey.xsl diff --git a/src-modules/module/viz/schluesseltabellen/sx_stylesheets_einfuegen.sql b/src-modules/module/viz/schluesseltabellen/sx_stylesheets_einfuegen.sql index f5b3753..0cb2248 100755 --- a/src-modules/module/viz/schluesseltabellen/sx_stylesheets_einfuegen.sql +++ b/src-modules/module/viz/schluesseltabellen/sx_stylesheets_einfuegen.sql @@ -5,7 +5,8 @@ <#assign masken = [ {"mask":"16000", "filename":"tabelle_html_datenblatt.xsl", "ord":"1"}, {"mask":"16000", "filename":"viz_html_chart.xsl", "ord":"100"}, -{"mask":"30220", "filename":"viz_html_chart_sankey.xsl", "ord":"120"} +{"mask":"30220", "filename":"viz_html_chart_sankey.xsl", "ord":"120"}, +{"mask":"30220", "filename":"30220_html_chart_sankey.xsl", "ord":"130"} ] /> <#assign stylesheet = [ @@ -16,9 +17,10 @@ "contenttype":"text/html", "is_generic":"1" }, -{"filename":"viz_html_chart_sankey.xsl", "caption":"Übergangsdiagramm (Sankey-Diagramm)", "description":"Kreuztabelle Studienanfänger MA und vorheriger BA", "relation":"table", "contenttype":"text/html","is_generic":"0"} -] /> +{"filename":"viz_html_chart_sankey.xsl", "caption":"Übergangsdiagramm (Sankey-Diagramm)", "description":"Kreuztabelle Studienanfänger MA und vorheriger BA", "relation":"table", "contenttype":"text/html","is_generic":"0"}, +{"filename":"30220_html_chart_sankey.xsl", "caption":"Übergangsdiagramm-Viewer(Sankey-Diagramm)", "description":"Kreuztabelle Studienanfänger MA und vorheriger BA", "relation":"table", "contenttype":"text/html","is_generic":"0"} +] /> <#assign stylesheet_field = [ {"filename":"viz_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"abschluss_vorher_abschluss"}, {"filename":"viz_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"abschluss_vorher_abschlussart"}, @@ -26,7 +28,15 @@ {"filename":"viz_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"einschr_nachher_abschlussart"}, {"filename":"viz_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"einschr_nachher_abschluss"}, {"filename":"viz_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"einschr_nachher_abschlusstyp"}, -{"filename":"viz_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"summe"} +{"filename":"viz_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"summe"}, +{"filename":"30220_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"abschluss_vorher_abschluss"}, +{"filename":"30220_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"abschluss_vorher_abschlussart"}, +{"filename":"30220_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"abschluss_vorher_abschlusstyp"}, +{"filename":"30220_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"einschr_nachher_abschlussart"}, +{"filename":"30220_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"einschr_nachher_abschluss"}, +{"filename":"30220_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"einschr_nachher_abschlusstyp"}, +{"filename":"30220_html_chart_sankey.xsl", "tablename":"erfolg_ba_ma_uebergang", "fieldname":"summe"} + ] /> --Hier eventuell notwendige delete's auf die Tabellen sx_mask_style, sx_stylesheets oder stylesheet_field einfügen. diff --git a/superx/xml/30190_html_chart_sankey.xsl b/superx/xml/30190_html_chart_sankey.xsl new file mode 100644 index 0000000..5c7ab26 --- /dev/null +++ b/superx/xml/30190_html_chart_sankey.xsl @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

 Laden...

+ + + + + + +
+ +page-wrap + + + + + +
+ + wrapper + + + + customfooter +
+
+ + + + +
+ + + + + + + +

+
+

+ + + + + + + + +
+
+
+
+ +
+ + + + +
+
+
+
+
+
+
+
diff --git a/superx/xml/30220_html_chart_sankey.xsl b/superx/xml/30220_html_chart_sankey.xsl new file mode 100644 index 0000000..d1142c2 --- /dev/null +++ b/superx/xml/30220_html_chart_sankey.xsl @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

 Laden...

+ + + + + + +
+ +page-wrap + + + + + +
+ + wrapper + + + + customfooter +
+
+ + + + +
+ + + + + + + +

+
+

+ + + + + + + + +
+
+
+
+ +
+ + + + +
+
+
+
+
+
+
+
diff --git a/superx/xml/js/viz/sankey_v3.js b/superx/xml/js/viz/sankey_v3.js index 146d8a6..16f6401 100644 --- a/superx/xml/js/viz/sankey_v3.js +++ b/superx/xml/js/viz/sankey_v3.js @@ -1,66 +1,19 @@ -/* -myNodes[0] = { "node": 0, "name": "Africa" }; -myNodes[1] = { "node": 1, "name": "America" }; -myNodes[2] = { "node": 2, "name": "Europe" }; - - -myLinks[0] = { "source": 0, "target": 2, "value":1 }; -myLinks[1] = { "source": 1, "target": 2, "value":20 }; - - -let my_object1 = {}; -my_object1.name = "Africa"; -my_object1.node = 0; -myNodes.push(my_object1); -//let my_object2 = {}; -my_object1.name = "America"; -my_object1.node = 1; -myNodes.push(new Objectmy_object1); -let my_object3 = {}; -my_object3.name = "Europe"; -my_object3.node = 2; -myNodes.push(my_object3); - -let my_Linkobject1 = {}; -my_Linkobject1.source = 0; -my_Linkobject1.target = 2; -my_Linkobject1.value = 1; -myLinks.push(my_Linkobject1); -let my_Linkobject2 = {}; -my_Linkobject2.source = 1; -my_Linkobject2.target = 2; -my_Linkobject2.value = 20; -myLinks.push(my_Linkobject2); -*/ -/*var newNode = new myNode("0","Africa"); -myNodes.push(myNode); -var newNode = new myNode("1","America"); -myNodes.push(myNode); -var newNode = new myNode("2","Europe"); -myNodes.push(myNode); - -var newLink = new myLink("0","2",1); -myLinks.push(newLink); -var newLink = new myLink("1","2",2); -myLinks.push(newLink); -*/ - function makeSankey(targetDiv,data,metaData,chartElem) { var measureCaption = getMeasureCaption(chartElem,metaData); //"Studierende"; var captionEmptyTarget="Kein Master (eigene HS)"; var margin = {top: 10, right: 10, bottom: 10, left: 10}, - width = 700 - margin.left - margin.right, - height = 300 - margin.top - margin.bottom; + width = 1200 - margin.left - margin.right, + height = 800 - margin.top - margin.bottom; var formatNumber = d3.format(",.0f"), // zero decimal places format = function(d) { return measureCaption+": "+formatNumber(d); }, color = d3.scale.category20(); // append the svg canvas to the page - var clearCanvas=document.getElementById("chartDiv"); + var clearCanvas=document.getElementById(targetDiv); while (clearCanvas.firstChild) { clearCanvas.removeChild(clearCanvas.firstChild); } diff --git a/superx/xml/js/viz/viz_functions.js b/superx/xml/js/viz/viz_functions.js index 068f662..fa59de6 100644 --- a/superx/xml/js/viz/viz_functions.js +++ b/superx/xml/js/viz/viz_functions.js @@ -305,6 +305,37 @@ this.getValueResultset = function () { } } +/* Render Model:*/ +function renderChartSVGFromModel(currentChartModel,targetDiv) { + var mySVG=""; + switch (currentChartModel.renderer) { + case "plot": + mySVG=getChartSVGWithPlot(currentChartModel); + break; + case "d3js": + mySVG=getChartSVGWithD3(currentChartModel); + break; + case "d3jsv3": + renderChartSVGWithD3V3(currentChartModel,targetDiv); + break; + default: + alert("No renderer"); + break; + } + return true; + } +function renderChartSVGWithD3V3 (currentChartModel,targetDiv) + { + console.log("using D3JS_v3"); + var svgD3=new Object; + for(var k=0;k< currentChartModel.chartElements.length;k++) + { + svgD3=renderChartElementWithD3V3(currentChartModel.chartElements[k],targetDiv); + } + + return svgD3; + } + /*Transfer form to model: */ function updateChartModel() { @@ -413,8 +444,8 @@ function getPlotOptionsObj(chartPropertiesUsed) function renderChart(chartDiv,currentChartModel) { - if(document.getElementById("chartName").value=="") - document.getElementById("chartName").value=vizInitialName; + /*if(document.getElementById("chartName").value=="") + document.getElementById("chartName").value=vizInitialName;*/ if(currentChartModel.chartElements.length>0 && currentChartModel.chartElements[0]) { if(currentChartModel.renderer=="plot") @@ -429,8 +460,9 @@ function renderChart(chartDiv,currentChartModel) else { //d3js: - currentChartModel.targetDiv=chartDiv; - currentChartModel.renderChartSVG(); + //currentChartModel.targetDiv=chartDiv; + //currentChartModel.renderChartSVG(); + renderChartSVGFromModel(currentChartModel,chartDiv); } } else @@ -2201,9 +2233,29 @@ else alert("Angezeigte Tabelle wurde in die Zwischenablage kopiert."); */ } -function showOptionsCode() + + +function showChartModelCode() { -document.getElementById("chartOptionsFields").style.visibility="visible"; +var myCodeDiv= document.getElementById("chartModelSrcCode"); +var mySrcDiv=document.getElementById("chartModelsrc"); + if(mySrcDiv.style.display=="block") + mySrcDiv.style.display="none"; + else + mySrcDiv.style.display="block"; + +var myJson =""; + +if(myChartModel) +{ + myJson=JSON.stringify(myChartModel); + myCodeDiv.innerHTML=myJson; +} +else +{ + myCodeDiv.innerHTML="Kein Quellcode gefunden"; +} + } function copySrcCode(mydiv) diff --git a/superx/xml/viz_html_chart.xsl b/superx/xml/viz_html_chart.xsl index e344c03..0a7c811 100644 --- a/superx/xml/viz_html_chart.xsl +++ b/superx/xml/viz_html_chart.xsl @@ -36,15 +36,11 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util - - - + - - - +

 Laden...

@@ -65,16 +61,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util wrapper - - - - - - - - - customfooter @@ -85,41 +72,6 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util - - - - - - - @@ -130,6 +82,9 @@ padding-bottom:10px; + + - - - - - - - - - - - - - - - // für Druck ohne Menü -function printDiv(divName) { - var printContents = document.getElementById(divName).innerHTML; - w=window.open(); - w.document.write(printContents); - w.print(); - w.close(); -} - - var felder = new Array();]]> - - felder[]= new Object(); - felder[]["htmlname"]=''; - felder[]["name"]=''; - felder[]["cb_name"]=''; - - - " - - felder[]["value"]=" - - - - -"; - - - var stylesheetcontenttype = new Array(); - - stylesheetcontenttype[''] = ''; - - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-
-

- - - - - - -
- - -
- - - - - Nicht unterstützter Ergebnistyp - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - - - - - -
- - -
-
- - - - -Template tableSingletable in file tabelle_html.xsl - - - -

- - - - - - - - -
- - - - - - - - - - - - - -colgroup -col - - - - - -javascript:setHeaderExpanded(' -', -,,false); -   - - - - - - - - -javascript:setHeaderExpanded(' -', -,,true); -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -5 - - - - - - - - -true - - - - - - - - - - - - - - - - - - - - - - - - - -Template viz_canvas in file viz_html_barchart_horiz.xsl +

@@ -1367,6 +419,14 @@ var rs=new Array(); + + + + + + + +
@@ -1498,9 +558,6 @@ rs[].push(new dataRow_ --> - - -   @@ -2055,6 +1112,28 @@ rs[].push(new dataRow_ + +
+
+ +
+ +   +   + + + + + +
+ +
+ +
+