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">
-
+
+
+
+
+
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>\
\
-#foreach>\
-#if>\
+\foreach>\
+\if>\
^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);
+