diff --git a/src-modules/module/viz/conf/viz.xml b/src-modules/module/viz/conf/viz.xml index f60a8c1..11158dd 100644 --- a/src-modules/module/viz/conf/viz.xml +++ b/src-modules/module/viz/conf/viz.xml @@ -63,6 +63,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[VIZ]" /> + @@ -163,11 +164,14 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[VIZ]" /> 1=ja, 0=nein - Mit "|" getrennt + wird nur bei SELECT-Feldern genutzt, mit "|" getrennt 1=ja, 0=nein Wird als Tooltip angezeigt + + Wir nur bei Schiebereglern genutzt + Wir nur bei Schiebereglern genutzt @@ -209,6 +213,54 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[VIZ]" /> + + Schlüsseltabelle für Renderer von Visualisierungseigenschaften + + + + + + + + + +superx +superx +viz_property_renderer +tid +1 +viz_property_renderer_pk + + + + + +
+ + Schlüsseltabelle für Renderer von Gruppen von Visualisierungseigenschaften + + + + + + + + + +superx +superx +viz_property_group_renderer +tid +1 +viz_property_group_renderer_pk + + + + + +
@@ -264,6 +316,24 @@ parent="Masken verwalten">Abfragen zur Administration von Visualisierungen + + + + + + + + + + + + + + @@ -381,7 +451,7 @@ mode="full"> path="/edit/viz/viz_property_list.jsp" followUp="" caption="Diagrammeigenschaften verwalten" - orderBy="name" + orderBy="caption" gotoHt="" helpfile="" maxRows="*" @@ -393,7 +463,8 @@ mode="full"> - + +
+ + - + + + + + + + +
+ + +
+In diesem Formular können Sie Gruppen von Diagrammeigenschaften verwalten. + + + + + + + + + + + + + + + +
+In diesem Formular können Sie Diagramm-Renderer verwalten. + + + + + + + + diff --git a/src-modules/module/viz/schluesseltabellen/sx_repository.unl b/src-modules/module/viz/schluesseltabellen/sx_repository.unl index e406bb3..7782bca 100644 --- a/src-modules/module/viz/schluesseltabellen/sx_repository.unl +++ b/src-modules/module/viz/schluesseltabellen/sx_repository.unl @@ -1,22 +1,56 @@ 1^CUSTOMXMLADD^ \ -SELECT tid,\ - caption,\ - prop_uniquename,\ - prop_default,\ - prop_unit\ - \ -FROM viz_property \ -where is_generic=1\ +\ +SELECT \ +P.tid,\ +P.caption,\ +P.prop_uniquename,\ +P.prop_default,\ +P.prop_unit,\ +P.is_generic,\ +P.static_values,\ +P.is_mandatory,\ +P.explanation,\ +P.sortnr,\ +P.range_from,\ +P.range_to,\ +T.caption as input_type_caption,\ +T.uniquename as input_type_uniquename,\ +G.caption as group_caption,\ +G.sortnr as group_sortnr,\ +G.uniquename as group_uniquename,\ +R.uniquename as renderer_uniquename,\ +GR.variable_name as group_variable_name,\ +PR.variable_name \ +\ +FROM viz_property_input_type T, viz_property P left outer join viz_property_group G\ +on (P.property_group_id=G.tid)\ +left outer join viz_property_group_renderer GR on (GR.property_group_id=G.tid)\ +left outer join viz_property_renderer PR on (P.tid=PR.property_id)\ +left outer join viz_renderer R on (R.tid=PR.renderer_id)\ +where T.tid=P.input_type_id\ +and P.is_generic=1\ +order by G.sortnr,G.uniquename,P.sortnr,P.caption\ ;\ \ \ -<#if commonChartProperties?is_sequence><#foreach cp in commonChartProperties>\ +<\if commonChartProperties?is_sequence><\foreach cp in commonChartProperties>\ \ -\ -\ +\ +\ ^Chart-Eigenschaften^Hier werden Chart-Eigenschaften gefiltert^^VIZ_PROPERTIES^^^320^1^0^0^^1^01.01.1900^31.12.3000^ diff --git a/src-modules/module/viz/schluesseltabellen/viz_property.unl b/src-modules/module/viz/schluesseltabellen/viz_property.unl index 2d365c3..4c9ddef 100644 --- a/src-modules/module/viz/schluesseltabellen/viz_property.unl +++ b/src-modules/module/viz/schluesseltabellen/viz_property.unl @@ -1,10 +1,30 @@ -1^Höhe^height^500^px^1^^0^1^1^^ -3^Werte-Label Breite^valueLabelWidth^20^px^1^^0^1^4^^ -8^Füllfarbe^fill^blue^ ^1^ ^0^1^3^^ -9^Grid-Label Höhe^gridLabelHeight^18^ ^1^ ^0^1^4^^ -10^Grid Offset^gridChartOffset^3^ ^1^ ^0^1^4^^ -2^Breite^chartWidth^600^px^1^^0^1^1^^ -7^Schriftfamilie^fontFamily^sans-serif^ ^1^sans-serif|serif|monospace^0^2^4^^ -6^Schriftgröße^fontSize^10^pt^1^^0^1^4^Text- und Diagrammelemente^ -4^Hintergrundfarbe^background-color^#ffffeb^ ^1^^0^1^4^^ -5^Vordergrundfarbe^color^#3333ff^ ^1^^0^1^4^Text- und Diagrammelemente^ +1^Diagramm-Höhe^height^500^px^1^^0^1^10^(Wird nur ausgewertet wenn es keine Y-Achse gibt)^^^^ +2^Diagramm-Breite^chartWidth^600^px^1^^0^1^10^Äußere Breite des Diagramms inkl. Ränder^^100^2000^ +3^Werte-Label-Breite^valueLabelWidth^20^px^1^^0^1^10^^^^^ +4^Hintergrundfarbe^backgroundColor^#ffffeb^ ^1^ ^0^1^11^^^^^ +5^Vordergrundfarbe^color^#3333ff^ ^1^ ^0^1^11^Text- und Diagrammelemente^^^^ +6^Schriftgröße^fontSize^10^pt^1^^0^1^11^Text- und Diagrammelemente^^^^ +7^Schriftfamilie^fontFamily^sans-serif^ ^1^sans-serif|serif|monospace^0^2^11^^^^^ +8^Flächenfarbe^fill^blue^ ^1^ ^0^1^12^^^^^ +9^Grid-Label-Höhe^gridLabelHeight^18^ ^1^ ^0^1^10^^^^^ +10^Grid-Offset^gridChartOffset^3^ ^1^ ^0^1^10^^^^^ +11^tickRotate^tickRotate^-45^ ^0^ ^0^1^5^^^^^ +12^ticks^Einheit X-Achse^5^ ^0^ ^0^1^5^^^^^ +13^tickSize^Abstand X-Achse und Beschriftung^10^ ^0^ ^0^1^5^^^^^ +14^labelOffset^Abstand X-Achse Beschriftung^10^ ^0^ ^0^1^5^^^^^ +15^Ausrichtung X-Achse Beschriftung^labelAnchor^center^ ^0^left|center|right^0^2^5^^^^^ +16^Außenrand links^^^^1^^0^1^10^^^^^ +17^Außenrand rechts^^^^1^^0^1^10^^^^^ +18^Außenrand oben^^^^1^^0^1^10^^^^^ +19^Außenrand unten^^^^1^^0^1^10^^^^^ +20^Innenrand oben^^^^1^^0^1^10^^^^^ +21^Innenrand unten^^^^1^^0^1^10^^^^^ +22^Innenrand links^^^^1^^0^1^10^^^^^ +23^Innenrand rechts^^^^1^^0^1^10^^^^^ +24^Farbschema^scale.scheme^ ^ ^1^blues|greens^0^2^12^^^^^ +25^Farbtyp^^^^1^^0^1^12^^^^^ +43^Farbsättigung^^^^1^^0^1^12^^^^^ +44^Strichfarbe^stroke^ ^ ^1^ ^0^1^12^^^^^ +45^Strichdicke^strokeWidth^ ^ ^1^ ^0^1^12^^^^^ +47^Werte X-Achse^Plot.groupX^ ^ ^1^Anzahl|Summe|Proportion|Minimum|Maximum|Durchschnitt|Varianz|Erster|Letzter^0^2^14^^^^^ +55^Werte Y-Achse^Plot.groupY^ ^ ^1^Anzahl|Summe|Proportion|Minimum|Maximum|Durchschnitt|Varianz|Erster|Letzter^0^2^14^^^^^ diff --git a/src-modules/module/viz/schluesseltabellen/viz_property_group.unl b/src-modules/module/viz/schluesseltabellen/viz_property_group.unl index ff45112..02009e3 100644 --- a/src-modules/module/viz/schluesseltabellen/viz_property_group.unl +++ b/src-modules/module/viz/schluesseltabellen/viz_property_group.unl @@ -1,4 +1,6 @@ -1^SIZE^Grafikgröße^ -2^MARGIN^Abstände^ -3^COLOR^Farben^ -4^STYLES^Elementformatierung^ +5^X^X-Achse^50^ +6^Y^Y-Achse^40^ +10^LAYOUT^Diagramm-Layout^10^ +11^STYLE^Diagramm-Style^20^ +12^ELEMENTS^Diagramm-Elemente^30^ +14^DATACATEGORY^Wertekategorien^60^ diff --git a/src-modules/module/viz/schluesseltabellen/viz_property_group_renderer.unl b/src-modules/module/viz/schluesseltabellen/viz_property_group_renderer.unl new file mode 100644 index 0000000..a49dd19 --- /dev/null +++ b/src-modules/module/viz/schluesseltabellen/viz_property_group_renderer.unl @@ -0,0 +1,2 @@ +1^2^11^style^ +2^2^10^ ^ diff --git a/src-modules/module/viz/schluesseltabellen/viz_property_input_type.unl b/src-modules/module/viz/schluesseltabellen/viz_property_input_type.unl index 80bab93..a4256fd 100644 --- a/src-modules/module/viz/schluesseltabellen/viz_property_input_type.unl +++ b/src-modules/module/viz/schluesseltabellen/viz_property_input_type.unl @@ -1,4 +1,5 @@ 1^TEXT^Texteingabe^ 2^SELECT^Select-Liste^ 3^COLOR^Farbauswahl^ -4^LEVER^Schieberegler^ +4^RANGE^Schieberegler^ +5^TEXTAREA^Großes Textfeld^ diff --git a/src-modules/module/viz/schluesseltabellen/viz_property_renderer.unl b/src-modules/module/viz/schluesseltabellen/viz_property_renderer.unl new file mode 100644 index 0000000..0d699ec --- /dev/null +++ b/src-modules/module/viz/schluesseltabellen/viz_property_renderer.unl @@ -0,0 +1,6 @@ +1^2^2^width^ +2^2^4^background^ +3^2^5^color^ +4^2^7^fontFamily^ +5^2^6^fontSize^ +6^2^1^height^ diff --git a/src-modules/module/viz/schluesseltabellen/viz_property_unload.x b/src-modules/module/viz/schluesseltabellen/viz_property_unload.x new file mode 100755 index 0000000..6c44481 --- /dev/null +++ b/src-modules/module/viz/schluesseltabellen/viz_property_unload.x @@ -0,0 +1,6 @@ +DOQUERY "select * from viz_property order by 1,2" false ^ viz_property.unl +DOQUERY "select * from viz_property_input_type order by 1,2" false ^ viz_property_input_type.unl +DOQUERY "select * from viz_property_group order by 1,2" false ^ viz_property_group.unl +DOQUERY "select * from viz_renderer order by 1,2" false ^ viz_renderer.unl +DOQUERY "select * from viz_property_renderer order by 1,2" false ^ viz_property_renderer.unl +DOQUERY "select * from viz_property_group_renderer order by 1,2" false ^ viz_property_group_renderer.unl diff --git a/src-modules/module/viz/schluesseltabellen/viz_property_upload.x b/src-modules/module/viz/schluesseltabellen/viz_property_upload.x new file mode 100755 index 0000000..fc3e680 --- /dev/null +++ b/src-modules/module/viz/schluesseltabellen/viz_property_upload.x @@ -0,0 +1,6 @@ +sx_auto_upload_table.x viz_property +sx_auto_upload_table.x viz_property_input_type +sx_auto_upload_table.x viz_property_group +sx_auto_upload_table.x viz_renderer +sx_auto_upload_table.x viz_property_renderer +sx_auto_upload_table.x viz_property_group_renderer diff --git a/src-modules/module/viz/schluesseltabellen/viz_renderer.unl b/src-modules/module/viz/schluesseltabellen/viz_renderer.unl index a0c6f46..a3c85be 100644 --- a/src-modules/module/viz/schluesseltabellen/viz_renderer.unl +++ b/src-modules/module/viz/schluesseltabellen/viz_renderer.unl @@ -1,2 +1,2 @@ 1^d3js^D3JS^ -2^plot^Observalbe Plot^ +2^plot^Observable Plot^ diff --git a/superx/style/sx_viz_muster.css b/superx/style/sx_viz_muster.css index 391e73f..383133c 100644 --- a/superx/style/sx_viz_muster.css +++ b/superx/style/sx_viz_muster.css @@ -34,6 +34,12 @@ margin-left: 1.0em; margin-top: 0.4em; } +.select { /*für SELECT Elemente*/ + font-family: sans-serif; + font-weight: normal; + width:75px; +} + .control-new { /*für einheitliche Controlbreite*/ width: 17.0em; } diff --git a/superx/xml/js/viz/viz_functions.js b/superx/xml/js/viz/viz_functions.js index 4bb2a61..0c4c540 100644 --- a/superx/xml/js/viz/viz_functions.js +++ b/superx/xml/js/viz/viz_functions.js @@ -160,7 +160,7 @@ function prepareChartProperties(chartType) return false; break; } -renderForm("chartPropertiesForm",chartProperties); +renderForm("chartPropertiesForm",chartProperties,commonChartProperties); renderFormDetails("chartPropertiesFormDetails",commonChartProperties); return true; @@ -366,39 +366,45 @@ function fillSelectionResult(selectionRsMetaData) } -function renderForm(formDiv,myChartProperties) +function renderForm(formDiv,myChartProperties,myCommonChartProperties) { //first empty form: var myForm=document.getElementById(formDiv); while (myForm.firstChild) { myForm.removeChild(myForm.firstChild); } - /* - const tabElem = document.createElement("table"); + const columnsDiv = document.createElement("div"); + columnsDiv.classList.add("columns"); + const columnDiv = document.createElement("div"); + columnDiv.classList.add("column"); + columnDiv.classList.add("is-narrow"); + const columnDivBox = document.createElement("div"); + columnDivBox.classList.add("box"); + columnDivBox.style="width: 500px"; + for(var k=0;k < myChartProperties.length;k++) + { + columnDivBox.appendChild(renderDimensionField(myChartProperties[k])); + } + columnDiv.appendChild(columnDivBox); + columnsDiv.appendChild(columnDiv); + //title + const columnDivTitle = document.createElement("div"); + columnDivTitle.classList.add("column"); + columnDivTitle.classList.add("is-narrow"); + const columnDivBoxTitle = document.createElement("div"); + columnDivBoxTitle.classList.add("box"); + columnDivBoxTitle.style="width: 500px"; + for(var k=0;k < myCommonChartProperties.length;k++) { - const rowElem = document.createElement("tr"); - const tdCap = document.createElement("td"); - const textnode = document.createTextNode(myChartProperties[k].caption); - tdCap.appendChild(textnode); - const tdSelElem = document.createElement("td"); - const selElem = document.createElement("select"); - selElem.name=myChartProperties[k].name; - selElem.id=myChartProperties[k].name; - fillSelectOptions(selElem,myChartProperties[k].getValueResultset(),myChartProperties[k].isMandatory); - tdSelElem.appendChild(selElem); - - rowElem.appendChild(tdCap); - rowElem.appendChild(tdSelElem); - //here values, and then: - tabElem.appendChild( rowElem); + if(myCommonChartProperties[k].name=="chartCaption") + columnDivBoxTitle.appendChild(renderChartPropertyField(myCommonChartProperties[k])); } - myForm.appendChild(tabElem); - */ - for(var k=0;k < myChartProperties.length;k++) - { - myForm.appendChild(renderDimensionField(myChartProperties[k])); - } + + columnDivTitle.appendChild(columnDivBoxTitle); + columnsDiv.appendChild(columnDivTitle); + myForm.appendChild(columnsDiv); + } function renderDimensionField(dimensionProperty) @@ -495,7 +501,7 @@ var previousGroup=""; for(var k=0;k < myCommonChartProperties.length;k++) { var groupUniquename=myCommonChartProperties[k].groupUniquename; - if(groupUniquename != previousGroup) + if(groupUniquename!="" && groupUniquename != previousGroup) { var newcommonChartPropertyGroup = new commonChartPropertyGroup(myCommonChartProperties[k].groupCaption,groupUniquename); commonChartPropertyGroups.push(newcommonChartPropertyGroup); @@ -553,39 +559,100 @@ function renderChartPropertyField(commonChartProperty) inputParaElem.classList.add("control-new"); const inputElem = document.createElement("div"); inputElem.classList.add("is-small"); - inputElem.classList.add("is-fullwidth"); - if(commonChartProperty.inputType=="TEXT") - { - //Einfaches Texteingabefeld: - const inpElem = document.createElement("input"); - inpElem.type="TEXT"; - inpElem.size=5; - inpElem.title=commonChartProperty.explanation; - inpElem.name=commonChartProperty.name; - inpElem.id=commonChartProperty.name; - inpElem.value=commonChartProperty.defaultValue; - inpElem.onchange= function () { - createChart('chartDiv'); - }; - inputElem.appendChild(inpElem); - inputParaElem.appendChild(inputElem); + //inputElem.classList.add("is-fullwidth"); + switch (commonChartProperty.inputType) { + case "SELECT": + //select input: + inputElem.classList.add("select"); + inputElem.classList.add("is-small"); + const selElem = document.createElement("select"); + selElem.name=commonChartProperty.name; + selElem.id=commonChartProperty.name; + selElem.title=commonChartProperty.explanation; + //selElem.style="width:50px"; + if(commonChartProperty.rendererUniquename=="") + { + selElem.disabled="disabled"; + selElem.readonly="readonly"; + } + + selElem.onchange= function () { + createChart('chartDiv'); + }; + fillSelectOptions(selElem,commonChartProperty.getValueResultset(),commonChartProperty.isMandatory); + inputElem.appendChild(selElem); + inputParaElem.appendChild(inputElem); + + break; + case "TEXTAREA": + //großes Texteingabefeld: + const textAreaElem = document.createElement("textarea"); + textAreaElem.cols="20"; + textAreaElem.rows=3; + if(commonChartProperty.rendererUniquename=="") + { + textAreaElem.disabled="disabled"; + textAreaElem.readonly="readonly"; + } + textAreaElem.title=commonChartProperty.explanation; + textAreaElem.name=commonChartProperty.name; + textAreaElem.id=commonChartProperty.name; + textAreaElem.value=commonChartProperty.defaultValue; + textAreaElem.onchange= function () { + createChart('chartDiv'); + }; + inputElem.appendChild(textAreaElem); + inputParaElem.appendChild(inputElem); + + break; + case "RANGE": + + //Einfaches Texteingabefeld: + const rangeElem = document.createElement("input"); + rangeElem.type="RANGE"; + rangeElem.min=commonChartProperty.range_from; + rangeElem.max=commonChartProperty.range_to; + rangeElem.step=50; + if(commonChartProperty.rendererUniquename=="") + { + rangeElem.disabled="disabled"; + rangeElem.readonly="readonly"; + } + rangeElem.title=commonChartProperty.explanation; + rangeElem.name=commonChartProperty.name; + rangeElem.id=commonChartProperty.name; + rangeElem.value=commonChartProperty.defaultValue; + rangeElem.onchange= function () { + createChart('chartDiv'); + }; + inputElem.appendChild(rangeElem); + inputParaElem.appendChild(inputElem); + break; + default: + //Einfaches Texteingabefeld: + const inpElem = document.createElement("input"); + inpElem.type="TEXT"; + inpElem.size=5; + if(commonChartProperty.rendererUniquename=="") + { + inpElem.disabled="disabled"; + inpElem.readonly="readonly"; + } + inpElem.title=commonChartProperty.explanation; + inpElem.name=commonChartProperty.name; + inpElem.id=commonChartProperty.name; + inpElem.value=commonChartProperty.defaultValue; + inpElem.onchange= function () { + createChart('chartDiv'); + }; + inputElem.appendChild(inpElem); + inputParaElem.appendChild(inputElem); + + break; } - else - { - //select input: - inputElem.classList.add("select"); - const selElem = document.createElement("select"); - selElem.name=commonChartProperty.name; - selElem.id=commonChartProperty.name; - selElem.title=commonChartProperty.explanation; - selElem.onchange= function () { - createChart('chartDiv'); - }; - fillSelectOptions(selElem,commonChartProperty.getValueResultset(),commonChartProperty.isMandatory); - inputElem.appendChild(selElem); - inputParaElem.appendChild(inputElem); - } + + inputFieldElem.appendChild(inputParaElem); fieldElem.appendChild(inputFieldElem); return fieldElem; @@ -672,6 +739,10 @@ const tabElem = document.createElement("table"); tabElem.border="1"; tabElem.width="100%"; const rowElem = document.createElement("tr"); +const thCap = document.createElement("th"); +const textnode = document.createTextNode("Zeilennr."); +thCap.appendChild(textnode); +rowElem.appendChild(thCap); for(var col=0;col < metadata.length;col++) { if(metadata[col].nr) @@ -689,6 +760,10 @@ for(row=1;row ," "," + +"," + +"," "," @@ -188,16 +211,36 @@ var newCommonChartProperty = new commonChartProperty(" "," +"," + +"," + +"," + "); commonChartProperties.push(newCommonChartProperty); -var newCommonChartProperty = new commonChartProperty("chartCaption","Titel des Diagramms", false,"TEXT", ""," -","wird unter dem Diagramm angezeigt","Diagrammkopf","TITLE"); +var newCommonChartProperty = new commonChartProperty("chartCaption", +"Titel des Diagramms", +false, +"TEXTAREA", +"", +"", +"", +" +", +"wird unter dem Diagramm angezeigt", +"Diagrammkopf", +"", +"plot", +"", +""); commonChartProperties.push(newCommonChartProperty); +