Compare commits

...

2 Commits

  1. 15
      src-modules/module/viz/conf/viz.xml
  2. 10
      src-modules/module/viz/masken/44510_felderinfo.unl
  3. 1
      src-modules/module/viz/masken/44510_masken_felder_bez.unl
  4. 2
      src-modules/module/viz/masken/44510_maskeninfo.unl
  5. 2
      src-modules/module/viz/schluesseltabellen/studierende_datenblatt_dashboard.sql
  6. 88
      src-modules/module/viz/schluesseltabellen/viz_chart.unl
  7. 4
      src-modules/module/viz/schluesseltabellen/viz_properties_echarts_fuellen.sql
  8. 130
      src-modules/module/viz/schluesseltabellen/viz_property.unl
  9. 1
      src-modules/module/viz/schluesseltabellen/viz_property_input_type.unl
  10. 38
      superx/style/sx_viz_muster.css
  11. 18
      superx/xml/js/viz/viz_assistent.js
  12. 69
      superx/xml/viz_components.xsl
  13. 1
      superx/xml/viz_html_chart_viewer_mask.xsl
  14. 2
      superx/xml/viz_html_chart_viewer_mask_and_table.xsl

15
src-modules/module/viz/conf/viz.xml

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!--<!DOCTYPE module SYSTEM "../../../conf/superx-module.dtd"> --> <!--<!DOCTYPE module SYSTEM "../../../conf/superx-module.dtd"> -->
<module name="viz" version="0.3" sachgebiet_id="320" <module name="viz" version="0.4b" sachgebiet_id="320"
sachgebiet="Visualisierungen" systeminfo_id="320" sachgebiet="Visualisierungen" systeminfo_id="320"
system="Visualisierungen" thema="Visualisierungen" thema_parent="Abfragen"> system="Visualisierungen" thema="Visualisierungen" thema_parent="Abfragen">
<database name="superx" system="superx"> <database name="superx" system="superx">
@ -228,6 +228,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[VIZ]" />
<column name="range_from" type="INTEGER" size="255" default="" notnull="" description="Minimalwert" ><comment>Wir nur bei Schiebereglern genutzt</comment></column> <column name="range_from" type="INTEGER" size="255" default="" notnull="" description="Minimalwert" ><comment>Wir nur bei Schiebereglern genutzt</comment></column>
<column name="range_to" type="INTEGER" size="255" default="" notnull="" description="Maximalwert" ><comment>Wir nur bei Schiebereglern genutzt</comment></column> <column name="range_to" type="INTEGER" size="255" default="" notnull="" description="Maximalwert" ><comment>Wir nur bei Schiebereglern genutzt</comment></column>
<column name="prop_value_type" type="VARCHAR" size="255" default="string" notnull="false" description="Datentyp" ><comment>string,integer,float,boolean</comment></column> <column name="prop_value_type" type="VARCHAR" size="255" default="string" notnull="false" description="Datentyp" ><comment>string,integer,float,boolean</comment></column>
<column name="dynamic_value_obj" type="VARCHAR" size="255" default="" notnull="false" description="Dynamischer Wertebereich" ><comment>JS-Object mit Schlüssel und Name (uniquename,caption)</comment></column>
@ -756,6 +757,12 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the
<path>$VIZ_PFAD/masken</path> <path>$VIZ_PFAD/masken</path>
</src> </src>
</maske> </maske>
<maske tid="44510" name="Studierende nach Jahr" thema="">
<description> </description>
<src>
<path>$VIZ_PFAD/masken</path>
</src>
</maske>
<maske tid="44540" name="Studierende nach Semester und Studiengang" thema=""> <maske tid="44540" name="Studierende nach Semester und Studiengang" thema="">
<description> </description> <description> </description>
<src> <src>
@ -1550,14 +1557,14 @@ mode="full">
<customfield name="colorscheme_active" nullFieldValue="" visibleSize="5" /> <customfield name="colorscheme_active" nullFieldValue="" visibleSize="5" />
<customfield name="is_custom" nullFieldValue="" visibleSize="30" /> <customfield name="is_custom" nullFieldValue="" visibleSize="30" />
<customfield name="Elemente" type="subform" multipart="false" autoUpdate="false" <customfield name="Elemente" type="subform" multipart="false" autoUpdate="false"
maxRows="*" table="viz_colorscheme_element" parentField="tid" childField="viz_colorscheme_id" maxRows="*" table="viz_colorscheme_element" parentField="tid" childField="colorscheme_id"
orderBy="sortnr" allowNew="true" orderBy="sortnr" allowNew="true"
mode="full"> mode="full">
<field-selection complete="false" /> <field-selection complete="false" />
<customfield name="tid" nullFieldValue="" /> <customfield name="tid" nullFieldValue="" />
<customfield name="viz_colorscheme_id" type="hidden" overrideValue="tid" /> <customfield name="colorscheme_id" type="hidden" overrideValue="tid" />
<customfield name="colorcode" nullFieldValue="" visibleSize="30" /> <customfield name="colorcode" nullFieldValue="" visibleSize="30" />
<customfield name="target_uniquename" visibleSize="10" nullFieldValue="" /> <!--TODO: <customfield name="target_uniquename" visibleSize="10" nullFieldValue="" />-->
<customfield name="sortnr" visibleSize="10" nullFieldValue="" /> <customfield name="sortnr" visibleSize="10" nullFieldValue="" />
</customfield> </customfield>
</form> </form>

10
src-modules/module/viz/masken/44510_felderinfo.unl

@ -1,8 +1,11 @@
44510^Spaltenlayout^3000^350^-1^140^180^1^char^30^1^1^<<SQL>>SELECT uniquename,\ 44510^Spaltenlayout^3000^350^-1^140^180^1^char^30^1^1^<<SQL>>SELECT uniquename,\
caption\ caption\
FROM rpta_column_layout \ FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='sos_stud_astat'\ where 1=1\
and resultset_id in (select R.tid from rpta_resultset R where R.uniquename in ('sos_stud_astat',\
'sos_stud_astat_dashboard')\
and R.systeminfo_id=7)\ and R.systeminfo_id=7)\
and uniquename like '%jahr%'\
order by sortnr, caption\ order by sortnr, caption\
;^^<<SQL>>SELECT uniquename,\ ;^^<<SQL>>SELECT uniquename,\
caption\ caption\
@ -17,9 +20,9 @@ where sem_beginn >= today()-(182*${K_VIZ_ZEITR_SEM_ANZ} )\
and sem_beginn <=today()\ and sem_beginn <=today()\
order by tid DESC;^ ^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^ order by tid DESC;^ ^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
44512^Fächer^30^0^0^130^200^6^char^1000^0^12^<<SQL>> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^ 44512^Fächer^30^0^0^130^200^6^char^1000^0^12^<<SQL>> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^
44513^Abschluss^40^0^0^100^200^3^char^1500^0^1^<<SQL>> select apnr, druck from cifx where key=35 order by 2;^ ^ ^ 44513^Abschluss^8^0^0^100^200^3^char^1500^0^12^<<SQL>> select tid,name,sortnr from sichten where art='SOS-Abschluss-Sicht' order by 3,2;^ ^ ^
44514^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^13^^ ^1^ 44514^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^13^^ ^1^
44515^Grafik^4000^300^-1^170^150^1^char^30^0^1^<<SQL>> select uniquename, caption from viz_chart where maskeninfo_id=44510 order by 2;^^<<SQL>> select uniquename, caption from viz_chart where maskeninfo_id=44510 order by 2 limit 1;^ 44515^Grafik^4000^300^-1^170^150^1^char^30^0^1^<<SQL>> select uniquename, caption from viz_chart where maskeninfo_id=44510 order by 2;^^ ^
44516^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^apnr, eintrag^ ^ 44516^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^apnr, eintrag^ ^
44517^Bis Semester^20^350^-1^140^80^1^integer^30^0^1^<<SQL>> --freemarker template \ 44517^Bis Semester^20^350^-1^140^80^1^integer^30^0^1^<<SQL>> --freemarker template \
select tid, eintrag from semester \ select tid, eintrag from semester \
@ -33,5 +36,6 @@ order by tid DESC;^ ^<<SQL>> select tid,eintrag from semester where today() betw
44520^tablestylesheet^150^0^0^100^100^1^char^255^1^1^<<SQL>> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=44510 order by ord^ ^<<SQL>> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=44510 order by ord limit 1^ 44520^tablestylesheet^150^0^0^100^100^1^char^255^1^1^<<SQL>> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=44510 order by ord^ ^<<SQL>> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=44510 order by ord limit 1^
44521^Stichtag^23^330^-1^130^100^1^sql^30^1^1^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende';^ ^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende' and appl_key='0';^ 44521^Stichtag^23^330^-1^130^100^1^sql^30^1^1^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende';^ ^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende' and appl_key='0';^
44522^Hörerstatus^200^330^-1^140^150^1^sql^30^0^1^<<SQL>> select apnr, eintrag from hoererstatus order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from hoererstatus where eintrag='alle';^ 44522^Hörerstatus^200^330^-1^140^150^1^sql^30^0^1^<<SQL>> select apnr, eintrag from hoererstatus order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from hoererstatus where eintrag='alle';^
44523^Grafiktitel^1010^0^0^100^100^1^char^255^0^0^ ^{InputCheck:disabled}^ ^
44528^Köpfe oder Fälle ?^0^0^0^140^150^1^sql^70^0^1^<<SQL>> select apnr, eintrag from koepfe_oder_faelle order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Fälle';^ 44528^Köpfe oder Fälle ?^0^0^0^140^150^1^sql^70^0^1^<<SQL>> select apnr, eintrag from koepfe_oder_faelle order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Fälle';^
44532^Geschlecht^110^0^0^140^80^1^integer^30^0^1^<<SQL>> SELECT apnr,druck FROM cif where key = 9003 and apnr between 1 and 4 order by 1;^ ^ ^ 44532^Geschlecht^110^0^0^140^80^1^integer^30^0^1^<<SQL>> SELECT apnr,druck FROM cif where key = 9003 and apnr between 1 and 4 order by 1;^ ^ ^

1
src-modules/module/viz/masken/44510_masken_felder_bez.unl

@ -11,5 +11,6 @@
44510^44520^ 44510^44520^
44510^44521^ 44510^44521^
44510^44522^ 44510^44522^
44510^44523^
44510^44528^ 44510^44528^
44510^44532^ 44510^44532^

2
src-modules/module/viz/masken/44510_maskeninfo.unl

@ -1 +1 @@
44510^Studienanfänger_innen nach Jahr^<sximport>select select_stmt from maskeninfo where tid=48000</sximport>^<sximport>select xil_proplist from maskeninfo where tid=48000</sximport>^Studienfach^Anzahl bzw. Anteil^Ausgabe der Studierenden nach Geschlecht in verschiedenen Visualisierungen (z.B. Tortendiagramm)^<sximport>select cleanup_stmt from maskeninfo where tid=48000</sximport>^^2^850^540^^1^<<SQL>>SELECT description FROM rpta_column_layout where tid=<<Spaltenlayout>>;^ 44510^Studierende nach Jahr^<sximport>select select_stmt from maskeninfo where tid=48000</sximport>^<sximport>select xil_proplist from maskeninfo where tid=48000</sximport>^Studienfach^Anzahl bzw. Anteil^Ausgabe der Studierenden nach Geschlecht in verschiedenen Visualisierungen (z.B. Tortendiagramm)^<sximport>select cleanup_stmt from maskeninfo where tid=48000</sximport>^^2^850^540^^1^<<SQL>>SELECT description FROM rpta_column_layout where tid=<<Spaltenlayout>>;^

2
src-modules/module/viz/schluesseltabellen/studierende_datenblatt_dashboard.sql

@ -118,7 +118,7 @@ select '(''tid_stg'',''sem_rueck_beur_ein'',''stichtag'',''geschlecht'', ''hzbar
from xdummy; from xdummy;
</sqlvar> </sqlvar>
<sqlvar name="added_table_fields"> <sqlvar name="added_table_fields">
select '(''fb'', ''abschluss_grp'', ''abschluss_grp_str'', ''fb_str'',''abschluss_astat_bund'')' select '(''fb'', ''abschluss_grp'', ''abschluss_grp_str'', ''fb_str'',''abschluss_astat_bund'',''regel'')'
from xdummy; from xdummy;
</sqlvar> </sqlvar>

88
src-modules/module/viz/schluesseltabellen/viz_chart.unl

File diff suppressed because one or more lines are too long

4
src-modules/module/viz/schluesseltabellen/viz_properties_echarts_fuellen.sql

@ -717,9 +717,9 @@
"prop_default":"", "prop_default":"",
"prop_unit":"", "prop_unit":"",
"is_generic":"1", "is_generic":"1",
"static_values":"D3_Tableau10|D3_category10|D3_Accent|D3_Dark2|D3_observable10|D3_Paired|D3_Pastel1|D3_Pastel2|D3_Set1|D3_Set2|D3_Set3|unique|dichotom|abgrp|fak|quadroColor|blandLocalized|colorGrades", "static_values":"",
"is_mandatory":"0", "is_mandatory":"0",
"input_type_uniquename":"SELECT", "input_type_uniquename":"COLORPALETTE",
"property_group_uniquename":"", "property_group_uniquename":"",
"sortnr":"410", "sortnr":"410",
"range_from":"", "range_from":"",

130
src-modules/module/viz/schluesseltabellen/viz_property.unl

@ -1,70 +1,60 @@
1^Grafik-Höhe^height^450^ ^1^ ^0^4^10^Diagrammhöhe (exkl. Skalenbeschriftung). Wird nur ausgewertet wenn es keine Y-Achse gibt!^101^^^integer^ 214^Wertelabel offset (vertikal)^offset_y_valueLabel^ ^ ^1^ ^0^1^^Wertelabel wird vertikal leicht verschoben, z.B. 40 bedeutet 40 Pixel nach unten^4100^^^STRING^^
2^Grafik-Breite^width^650^ ^1^ ^0^4^10^Diagrammsbreite (exkl.Skalenbeschriftung)^102^100^2000^integer^ 215^Wertelabel offset (horizontal)^offset_x_valueLabel^ ^ ^1^ ^0^1^^Wertelabel wird horizontal leicht verschoben, z.B. 30 bedeutet 30 Pixel nach rechts^4000^^^STRING^^
3^Werte-Label-Breite^valueLabelWidth^^^0^^0^1^18^^^^^integer^ 173^Rand oben in %^margin.top^16^%^1^ ^0^1^^Oberer Rand in %^1900^^^integer^^
4^Hintergrundfarbe^backgroundColor^#ffffff^ ^0^#ffffeb^0^3^11^Hintergrundfarbe der Grafik^201^^^string^ 172^Rand rechts in %^margin.right^0^%^1^ ^0^1^^Rechter Rand in %^1800^^^integer^^
5^Schriftfarbe^color^ ^ ^0^black^0^3^11^Farbe von Text- und Diagrammelementen^202^^^string^ 171^Rand links in %^margin.left^20^%^1^ ^0^1^^Linker Rand in %^1700^^^integer^^
6^Schriftgröße^fontSize^^px^0^ ^0^4^11^Schriftgröße der Skalenbeschriftung^204^^^integer^ 213^Gestapelte Balken^barStacked^false^ ^0^true|false^0^2^^ ^5100^^^STRING^^
7^Schriftfamilie^fontFamily^^ ^0^serif|sans-serif|monospace|system_ui^0^2^11^Schriftfamlilie der Skalenbeschriftung^203^^^string^ 199^Abgerundete Ecken^cornerRadiusRounded^true^ ^0^true|false^0^2^^Abgerundete Ecken der Tortenstücke^4800^^^STRING^^
8^Flächenfarbe^fill_static^ ^ ^0^ ^0^3^11^Nur für Grafikelemente Flächen und Balken. Füllfarbe.^1300^^^string^ 187^Y-Achse Beschriftung^yAxisLabelNode^ ^ ^0^ ^0^7^^Y-Achse-Beschriftung^3000^^^NODE^^
11^X: Schriftneigung^tickRotate_x^^ ^0^ ^0^1^18^Neigungswinkel der Achsenwerte^604^^^integer^ 185^Y-Achse^yAxisNode^ ^ ^0^ ^0^7^^Y-Achse-Element^2800^^^NODE^^
12^X: Skalierung^ticks_x^^ ^0^ ^0^1^18^Feinheit der Wertegliederung^605^^^integer^ 181^X-Achse Beschriftung^xAxisLabelNode^ ^ ^0^ ^0^7^^X-Achse-Beschriftung^2400^^^NODE^^
13^X: Schriftgröße^tickSize_x^^ ^0^ ^0^1^18^Größe der Achsenwerte^603^^^integer^ 178^X-Achse^xAxisNode^ ^ ^0^ ^0^7^^X-Achse-Element^2100^^^NODE^^
15^X: Label-Ausrichtung^labelAnchor_x^^ ^0^left|center|right^0^2^18^Label-Position^601^^^string^ 170^Ränder^marginNode^ ^ ^1^ ^0^7^^ ^1600^^^NODE^^
16^Außenrand links^marginLeft^100^^0^ ^0^4^10^Abstand zwischen Grafik und linkem Hintergrundrand^103^^^integer^ 206^Legende^legendNode^ ^ ^1^ ^0^7^^Legenden-Element^1100^^^NODE^^
17^Außenrand rechts^marginRight^ ^^0^ ^0^4^10^Abstand zwischen Grafik und rechtem Hintergrundrand^104^^^integer^ 174^X-Achse^x^ ^ ^0^ ^1^2^5^X-Achse^200^^^string^^
18^Außenrand oben^marginTop^ ^^0^ ^0^4^10^Abstand zwischen Grafik und oberem Hintergrundrand^105^^^integer^ 166^Titel^titleNode^ ^ ^1^ ^0^7^^Titel-Element^700^^^NODE^^
19^Außenrand unten^marginBottom^ ^^0^ ^0^4^10^Abstand zwischen Grafik und unterem Hintergrundrand^106^^^integer^ 161^Innerer Radius^innerRadius^0^ ^0^ ^0^1^10^Innerer Radius bei Tortendiagrammen (Faktor in %). Bei 0 wird kein innerer Radius genutzt, ein Wert größer 0 macht das Tortendiagramm zum Donut.^700^0^100^string^^
20^Innenrand oben^insetTop^ ^^0^ ^0^4^10^Abstand zwischen Grafik und Achsenbeschriftung oben^107^^^integer^ 165^Leerzeilen-Maskierung^null_value_mask^ ^ ^0^ ^0^1^10^Text, der ersetzt wird, wenn eine Dimension leer ist, z.B. *Andere Hochschule* bei BA-MA-Übergang^1100^^^string^^
21^Innenrand unten^insetBottom^ ^^0^ ^0^4^10^Abstand zwischen Grafik und Achsenbeschriftung unten^108^^^integer^ 156^Diagrammelement^seriesNode^ ^ ^1^ ^0^7^^Layout der Diagrammelemente^600^^^NODE^^
22^Innenrand links^insetLeft^ ^^0^ ^0^4^10^Abstand zwischen Grafik und Achsenbeschriftung links^109^^^integer^ 159^Dimension 2^dimension2^ ^ ^0^ ^0^2^5^Dimension 2^400^^^string^^
23^Innenrand rechts^insetRight^ ^^0^ ^0^4^10^Abstand zwischen Grafik und Achsenbeschriftung rechts^110^^^integer^ 191^Y: Distanz Beschriftung^distance_y^0^ ^0^ ^0^1^^Y-Achse Abstand Beschriftung zum Item^3400^^^integer^^
24^Farbschema^scheme^ ^ ^0^blues|greens|greys|oranges|purples|reds|paired|set1|pastel1|pastel2|tableau10|category10|accent|dark2|custom1^0^2^22^Nur für Grafikelemente Balken, Linien, Torten: Farbtonschema für Serien.^303^^^string^ 190^Y: Beschriftung Breite^width_y^50^px^0^ ^0^1^^Y-Achse Breite Beschriftung^3300^^^integer^^
25^Farbtyp^type^^ ^0^einfarbig|mehrfarbig|zyklisch^0^2^20^Ein-/Mehrfarbigkeit von Diagrammelementen^302^^^string^ 189^Y: Abstand Beschriftung^padding_y^5^ ^0^ ^0^1^^Y-Achse Abstand Beschriftung zur Achsenlinie^3200^^^integer^^
43^Deckungsgrad Farbe^fillOpacity^ ^ ^0^ ^0^1^11^Deckungsrad (opacity) zwischen 0 und 1^1800^0^1^string^ 179^X-Achse Name^xAxisName^ ^ ^0^ ^0^1^^X-Achse-Name^2200^^^STRING^^
45^Strichlinie Breite^strokeWidth^ ^px^0^ ^0^1^11^Strichbreite in Pixel^2100^^^integer^ 177^Rand unten in %^margin.bottom^20^%^1^ ^0^1^^Unterer Rand in %^2000^^^integer^^
56^Fortlaufende Skala^continous scales^^ ^0^identity|linear|log|pow|sqrt|symlog^0^2^15^Art der Skalen-Gliederung^401^^^string^ 160^Dimension 3^dimension3^ ^ ^0^ ^0^2^5^Dimension 3^500^^^string^^
57^Kategorie-Skala^categorical scales^^ ^0^point|band^0^2^15^Art der Skalen-Gliederung^402^^^string^ 167^Untertitel-Text^subtitle^ ^ ^1^ ^0^1^^Text^800^^^STRING^^
58^Datums-Skala^date scales^^ ^0^time|utc^0^2^15^Art der Skalen-Gliederung^403^^^string^ 162^Beschriftung Radius^labelRadiusFactor^80^ ^0^ ^0^1^10^Beschriftungs-Radius Faktor bei Tortendiagrammen (Faktor in %). Bei 0 wird kein innerer Radius genutzt, ein Wert größer 0 macht das Tortendiagramm zum Donut.^800^0^100^string^^
60^Farbschema-Typ^schemetype^^ ^0^linear|sqrt|pow|log|symlog|sequential|cyclical|quantile^0^2^20^Art der Farbverteilung in Diagrammelementen^304^^^string^ 216^Farbpalette Ziel^seriesColorBy^series^ ^0^series|data^0^2^^Farbpalette gilt für die Serie oder zur Untrscheidung der Daten^4500^^^STRING^^
61^Grafik-Elementtyp^marks^ ^ ^0^Plot.line|Plot.dot|Plot.areaX|Plot.areaY.|Plot.barX|Plot.barY|Plot.rectX|Plot.rectY|Plot.ruleX|Plot.ruleY|Plot.tickX|Plot.tickY|Plot.arrow|Plot.cell|Plot.text|Plot.link|Plot.image^0^2^12^Ausrichtung und Form der grafischen Elemente^301^^^string^ 163^Kanten-Radius^cornerRadius^10^px^0^ ^0^1^10^Ecken-Radius bei Tortendiagrammen (in Pixel). Bei 0 wird keine gerundete Kante genutzt, ein Wert größer 0 macht das Tortendiagramm zum Donut.^900^0^50^string^^
63^X: Label-Abstand^labelOffset_x^^^0^ ^0^1^18^Label-Abstand von Achse^602^^^integer^ 197^Farbpalette (vordef.)^schemeArray^ ^ ^1^D3_Tableau10|D3_category10|D3_Accent|D3_Dark2|D3_observable10|D3_Paired|D3_Pastel1|D3_Pastel2|D3_Set1|D3_Set2|D3_Set3|unique|dichotom|abgrp|fak|quadroColor|blandLocalized|colorGrades^0^2^^Farbpalette^4400^^^STRING^^
68^Maß: Chart-Abstand^gridChartOffset^^ ^0^ ^0^1^18^ ^607^^^string^ 196^Ausrichtung Wertelabel (vertikal)^position_valueLabel^top^ ^1^top|center|bottom^0^2^^ ^3900^^^STRING^^
69^Maß: Label-Höhe^gridLabelHeight^^^0^ ^0^1^18^ ^608^^^integer^ 194^Label anzeigen^valueLabelShow^true^ ^1^true|false^0^2^^ ^3700^^^STRING^^
70^X-Achse^x^ ^ ^0^ ^0^1^5^X-Achsendefinition^100^^^string^ 192^Ausrichtung Y-Label (vertikal)^position_y^center^ ^1^top|center|bottom^0^2^^ ^3500^^^STRING^^
72^Y-Achse^y^ ^ ^0^ ^0^1^5^Y-Achsendefinition^200^^^string^ 180^X-Achse Name Position^xAxisNameLocation^end^ ^0^start|center|end^0^2^^Position der X-Achsenbezeichnung^2300^^^STRING^^
73^Maß 1^measure1^ ^ ^0^ ^0^2^5^Maß^300^^^string^ 211^Legende scrollbar^legend.scroll^false^ ^1^true|false^0^2^^ ^1500^^^STRING^^
76^Serien-Dimension^stroke^ ^ ^0^ ^0^1^5^Serien-Dimension zusätzlich zu Achsen^300^^^string^ 212^Legenden-Ausrichtung (horizontal)^legend.left^left^ ^1^left|center|right^0^2^^ ^1400^^^STRING^^
78^Legende^legend^ ^ ^0^true|false^0^2^22^ ^303^^^boolean^ 208^Legenden-Ausrichtung (vertikal)^legend.top^bottom^ ^1^top|middle|bottom^0^2^^ ^1300^^^STRING^^
79^Beschriftung^text^ ^ ^0^ ^0^1^5^Nur für Grafikelement Wertelabel^400^^^string^ 207^Legende anzeigen^legendShow^true^ ^1^true|false^0^2^^ ^1200^^^STRING^^
80^Serienfarbe^fill^ ^ ^0^ ^0^1^22^Nur für Grafikelemente Balken und Linien: Merkmal der Serien-Dimension^305^^^string^ 169^Titel-Ausrichtung (vertikal)^title.top^top^ ^1^top|center|bottom^0^2^^ ^1000^^^STRING^^
81^Y: Label-Abstand^labelOffset_y^^^0^ ^0^1^21^Label-Abstand von Achse^602^^^integer^ 205^X: Skala^scale_x^linear^ ^1^linear|identity|point|band|time^0^2^18^ ^1000^^^string^^
82^Y: Label-Ausrichtung^labelAnchor_y^^ ^0^left|center|right^0^2^21^Label-Position^601^^^string^ 168^Titel-Ausrichtung (horiz.)^title.left^left^ ^1^left|center|right^0^2^^ ^900^^^STRING^^
83^Y: Schriftgröße^tickSize_y^^ ^0^ ^0^1^21^Größe der Achsenwerte^603^^^integer^ 193^Wertelabel^valueLabelNode^ ^ ^1^ ^0^7^^Beschriftung der Diagrammelemente^3600^^^NODE^^
84^Y: Schriftneigung^tickRotate_y^^ ^0^ ^0^1^21^Neigungswinkel der Achsenwerte^604^^^integer^ 203^Strichfarbe^stroke_static^ ^ ^0^ ^0^3^11^Strichfarbe (einfach)^800^^^string^^
85^Y: Skalierung^ticks_y^^ ^0^ ^0^1^21^Feinheit der Wertegliederung^605^^^integer^ 204^Flächenfarbe^fill_static^ ^ ^0^ ^0^3^11^Nur für Grafikelemente Flächen und Balken. Füllfarbe.^900^^^string^^
86^X: Label^label_x^^ ^0^ ^0^1^18^Label X-Achse^602^^^string^ 201^Spaltenselektion bei Serien^series_selection_column^ ^ ^0^ ^0^1^^Optionale Auswahl der Spalten einer Tabelle. Sie können mit Operator größer, kleiner, oder komma-getrennten Listen der Spaltennummern arbeiten.^5000^^^STRING^^
87^Y: Label^label_y^^ ^0^ ^0^1^21^Label Y-Achse^602^^^string^ 200^Zeilenselektion bei Serien^series_selection_line^ ^ ^0^ ^0^1^^Optionale Auswahl der Zeilen einer Tabelle. Sie können mit Operator größer, kleiner, oder komma-getrennten Listen der Zeilennummern arbeiten.^4900^^^STRING^^
88^Punktdicke^r^^ ^0^ ^0^1^5^Punktdicke von Diagrammelementen (relevant für Plot.dot, Plot.tickX/Y)^308^^^string^ 198^Äußerer Radius in %^outerRadius^80^%^0^ ^0^1^^Äußerer Radius bei Tortendiagrammen (Faktor in %). Parameter definiert den Anteil des Kreises am ganzen Rechteck^4700^^^INTEGER^^
91^Quell-Dimension^viz_source^^ ^0^ ^0^1^5^ ^608^^^string^ 195^Wertelabel: Distanz Beschriftung^distance_valueLabel^10^ ^1^ ^0^1^^Wertelabel Abstand Beschriftung zum Item. Wird nur ausgewertet wenn Ausrichtung Wertelabel (vertikal)=top gesetzt wird.^3800^^^integer^^
92^Ziel-Dimension 1^viz_target1^^ ^0^ ^0^1^5^ ^608^^^string^ 188^Y: Schriftneigung^tickRotate_y^ ^ ^0^ ^0^1^^Y-Achse-Beschriftung Schriftneigung^3100^-90^90^integer^^
93^X: Linie^line_x^true^ ^0^true|false^0^2^18^Linie X-Achse^602^^^boolean^ 186^Y-Achse Name^yAxisName^ ^ ^0^ ^0^1^^Y-Achse-Name^2900^^^STRING^^
94^Y: Linie^line_y^true^ ^0^true|false^0^2^21^Linie Y-Achse^602^^^boolean^ 184^X: Abstand Beschriftung^padding_x^5^ ^0^ ^0^1^^X-Achse Abstand Beschriftung zur Achsenlinie^2700^^^integer^^
95^Dimension 1^dimension1^ ^ ^0^ ^0^2^5^Dimension 1^100^^^string^ 183^X: Beschriftung Breite^width_x^100^px^0^ ^0^1^^X-Achse Breite Beschriftung^2600^^^integer^^
96^Dimension 2^dimension2^ ^ ^0^ ^0^2^5^Dimension 2^200^^^string^ 182^X: Schriftneigung^tickRotate_x^30^ ^0^ ^0^1^^X-Achse-Beschriftung Schriftneigung^2500^-90^90^integer^^
97^Leerzeilen-Maskierung^null_value_mask^ ^ ^0^ ^0^1^10^Text, der ersetzt wird, wenn eine Dimension leer ist, z.B. *Andere Hochschule* bei BA-MA-Übergang^700^^^string^ 164^Label-Deckungsgrad^labelOpacity^70^ ^0^ ^0^1^10^Deckungsgrad Faktor bei Beschriftungen (Faktor in %). Bei 100 ist maximale Deckung erreicht^1000^0^100^string^^
98^Y-Wertebereich^domain^ ^ ^0^ ^0^1^21^Bittte Wertebereich mit [] eingeben, z.B. [0,100] für 0-100^1000^^^js^ 175^Y-Achse^y^ ^ ^0^ ^1^2^5^Y-Achse^300^^^string^^
99^X: Skala^scale_x^band^ ^0^linear|identity|point|band|time^0^2^18^ ^1000^^^string^ 176^Serien-Dimension^stroke^ ^ ^0^ ^1^2^5^Serien-Dimension^600^^^string^^
100^Strichlinie Abstand-Intervalle^strokeDasharray^ ^ ^0^ ^0^1^11^Abstand von Bindestrichen (Komma-separierte Pixel), z.B. [10,5] für 10 und dann 5 Pixel Abstand^2000^^^string^ 202^Einzelfarbe^singleColor^ ^ ^0^ ^0^3^11^Linien- oder Balkenfarbe (einfach). Wird mit höherer Priorität ausgewertet als die Palette^4300^^^string^^
101^Offset (horizontal)^dx^ ^px^0^ ^0^1^10^Horizontales Offset des Grafikelements in Pixel^1600^^^integer^ 155^Dimensionen^dimensionsNode^ ^ ^0^ ^0^7^^Dimensionen^100^^^NODE^^
102^Offset (vertikal)^dy^ ^px^0^ ^0^1^10^Vertikales Offset des Grafikelements in Pixel^1700^^^integer^ 157^Dimension 1^dimension1^ ^ ^0^ ^1^2^5^Dimension 1^200^^^string^^
103^Textuelle Beschreibung des Grafikelements^ariaDescription^ ^ ^0^ ^0^1^11^für barrierearme Grafiken^1100^^^string^ 158^Maß 1^measure1^ ^ ^0^ ^1^2^6^Maß 1^300^^^string^^
104^CSS-Klasse^className^ ^ ^0^ ^0^1^11^Klassenname des Grafikelements für CSS-basierte Layouts^1400^^^string^
105^CSS-Filter für Bilder^imageFilter^ ^ ^0^ ^0^1^11^z.B. blur(5px)^1500^^^string^
106^Deckungsgrad Objekt^opacity^ ^ ^0^ ^0^1^11^Deckungsrad (opacity) des Grafikelements zwischen 0 und 1^1900^0^1^string^
107^Tooltip einschalten^tip^ ^ ^0^true|false^0^2^10^Sollen implizite Tooltips angezeigt werden (true,false)^2200^^^boolean^
108^Strichfarbe^stroke_static^ ^ ^0^ ^0^3^11^Strichfarbe (einfach)^1200^^^string^
109^Zusätzl. Sortierung^sortchannel^ ^ ^0^ ^0^1^5^Standardmäßig wird nach den Achsendimensionen alphabetisch aufsteigend sortiert. Wenn Sie nach einem anderen Merkmal sortieren wollen, geben Sie dies hier an (z.B. die Zeilennummer, um die Sortierung der Datentabelle zu nutzen). Nützlich z.B. um Semesternamen zu sortieren.^500^^^string^
110^Innerer Radius^innerRadius^0^ ^0^ ^0^1^10^Innerer Radius bei Tortendiagrammen (Faktor in %). Bei 0 wird kein innerer Radius genutzt, ein Wert größer 0 macht das Tortendiagramm zum Donut.^400^0^100^string^
111^Beschriftung Radius^labelRadiusFactor^80^ ^0^ ^0^1^10^Beschrftungs-Radius Faktor bei Tortendiagrammen (Faktor in %). Bei 0 wird kein innerer Radius genutzt, ein Wert größer 0 macht das Tortendiagramm zum Donut.^500^0^100^string^
112^Kanten-Radius^cornerRadius^10^px^0^ ^0^1^10^Ecken-Radius bei Tortendiagrammen (in Pixel). Bei 0 wird keine gerundete Kante genutzt, ein Wert größer 0 macht das Tortendiagramm zum Donut.^600^0^50^string^
113^Label-Deckungsgrad^labelOpacity^70^ ^0^ ^0^1^10^Deckungsgrad Faktor bei Beschriftungen (Faktor in %). Bei 100 ist maximale Deckung erreicht^700^0^100^string^

1
src-modules/module/viz/schluesseltabellen/viz_property_input_type.unl

@ -5,3 +5,4 @@
5^TEXTAREA^Großes Textfeld^ 5^TEXTAREA^Großes Textfeld^
6^CHECKBOX^Ankreuzfeld^ 6^CHECKBOX^Ankreuzfeld^
7^NODE^Knotenelement^ 7^NODE^Knotenelement^
8^COLORPALETTE^Farbpalette^

38
superx/style/sx_viz_muster.css

@ -85,7 +85,8 @@ html, body {
background: #e0e0e0; } background: #e0e0e0; }
.dashboard-tabs li.is-active { /*20251007 eingefügt*/ .dashboard-tabs li.is-active { /*20251007 eingefügt*/
background: #ebf1f3; } background: #ebf1f3;
color: midnightblue; }
.input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder { .input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder {
font-size: 0.8rem; font-size: 0.8rem;
@ -158,6 +159,7 @@ html, body {
text-align: center; text-align: center;
font-size:1.2em; font-size:1.2em;
font-weight:bolder; font-weight:bolder;
color: midnightblue;
background: #ebf1f3; } background: #ebf1f3; }
.navbar {background-color: white;} /*20250221 eingefügt*/ .navbar {background-color: white;} /*20250221 eingefügt*/
@ -428,4 +430,38 @@ html, body {
vertical-align:center; vertical-align:center;
} }
.fixed-right-buttons {
position: fixed;
right: 0.1%; /* Abstand vom rechten Bildschirmrand */
top: 50%; /* Zentriert den Button-Block vertikal;*/
transform: translateY(-50%); /* Zentrierung anpassen */
display: flex;
flex-direction: column; /* Buttons vertikal anordnen */
gap: 10px; /* Abstand zwischen den Buttons */
z-index: 600;
padding: 0.7% 0% 0.7% 0%;
}
.inside-buttons { /*20250530 BF ergänzt: wenn sidebar offen*/
display: block;
position: fixed;
top: 50%;
z-index: 700;
left: calc(100% - 545px - 40px);/* Viewport-Breite minus Sidebar-Breite minus Abstand */
transform: none; /* keine vertikale Zentrierung */
}
.sidebar { /*20250523 BF ergänzt*/
position: fixed;
top: 120px; /*Abstand zur oberen Leiste*/
padding-top:2em;
padding-left:0.5em;
padding-right: 0.7em;
right: 0em;
bottom: 0;
width: 545px; /*Breite nach Bedarf */
background: white;
box-shadow: -2px 0 5px rgba(0,0,0,0.1);
overflow-y: auto;
z-index: 700; /*für Anzeige über Content*/
}

18
superx/xml/js/viz/viz_assistent.js

@ -1039,12 +1039,30 @@ function renderTreeInput(chartProperty,inputId, previousValue)
zs+=" onChange=\"changeColorWithColorPicker(this,'"+inputId+"');treeInputOnchange('chartDiv',myChartModel);\">"; zs+=" onChange=\"changeColorWithColorPicker(this,'"+inputId+"');treeInputOnchange('chartDiv',myChartModel);\">";
zs+="</input></span>"; zs+="</input></span>";
break; break;
case "COLORPALETTE":
zs="&nbsp;<span class=\"field\"><select " +styleAttr+" id=\""+inputId+"\" name=\""+inputId+"\"";
zs+=" value=\""+previousValue +"\" onChange=\"treeInputOnchange('chartDiv',myChartModel);\" >";
var opts=convertvizColorSchemesToInputValues(); //vizColorSchemes.map(vizColorScheme => vizColorScheme.uniquename);
zs+=getTreeInputSelectOptions(opts,previousValue,chartProperty.isMandatory) ;
zs+="</select></span>";
break;
default: default:
zs="Unbekannter Feldtyp"; zs="Unbekannter Feldtyp";
break; break;
} }
return zs; return zs;
} }
function convertvizColorSchemesToInputValues()
{
var vals=[];
for(var i=0;i<vizColorSchemes.length;i++){
var o=new selectionPropertyValue(i,vizColorSchemes[i].caption,vizColorSchemes[i].uniquename,false)
vals.push(o);
}
return vals;
}
function changeColorWithColorPicker(colorpickerInput,targetInputid) function changeColorWithColorPicker(colorpickerInput,targetInputid)
{ {
document.getElementById(targetInputid).value=colorpickerInput.value; document.getElementById(targetInputid).value=colorpickerInput.value;

69
superx/xml/viz_components.xsl

@ -1406,7 +1406,7 @@ Platzhalter
<div class="vizLabel-container"> <div class="vizLabel-container">
<label class="label is-small trennung"> <label class="label is-small trennung">
<span class="button" style="background: #a6a6a6ff; border: thin solid rgba(0, 76, 147, 240); color: white; font-weight:bold;font-size:1.5em;" onclick="document.forms[0].elements['reuseresult'].value='false';document.getElementById('progressbar').style.display='block';document.forms['Weiterverarbeitung'].submit();return true;"> <span class="button" style="background: #a6a6a6ff; border: thin solid rgba(0, 76, 147, 240); color: white;" onclick="document.forms[0].elements['reuseresult'].value='false';document.getElementById('progressbar').style.display='block';document.forms['Weiterverarbeitung'].submit();return true;">
Neu laden... Neu laden...
</span> </span>
</label> </label>
@ -1537,7 +1537,7 @@ Platzhalter
<div class="field is-grouped"> <div class="field is-grouped">
<div class="vizLabel-container" lang="de"> <div class="vizLabel-container" lang="de">
<label class="label is-small trennung"> <label class="label is-small trennung">
<span class="button is-link is-link is-outlined is-hovered" style="font-weight:bold;font-size:1.5em"> <span class="button is-link is-link is-outlined is-hovered">
<!--<a class="button is-link is-outlined is-small is-fullwidth">--> <!--<a class="button is-link is-outlined is-small is-fullwidth">-->
<xsl:attribute name="onClick"> <xsl:attribute name="onClick">
<xsl:value-of select="$jsCall"/> <xsl:value-of select="$jsCall"/>
@ -1554,7 +1554,7 @@ Platzhalter
<xsl:attribute name="value"><xsl:value-of select="/*/*/felder/feld [@varname = $Feldname]/value"/></xsl:attribute> <xsl:attribute name="value"><xsl:value-of select="/*/*/felder/feld [@varname = $Feldname]/value"/></xsl:attribute>
</input> </input>
<div class="control is-expanded"> <div class="control is-expanded">
<input class="input is-small is-link is-fullwidth" style="font-size:1.1rem;font-weight:normal" type="label" readonly="true" name="{concat('label_',$FeldnameEscaped)}" id="{concat('label_',$FeldnameEscaped)}"> <input class="input is-small is-link 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 name="onclick"><xsl:value-of select="$jsCall"/>
</xsl:attribute> </xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="/*/*/felder/feld [@varname = $Feldname]/value_caption"/></xsl:attribute> <xsl:attribute name="value"><xsl:value-of select="/*/*/felder/feld [@varname = $Feldname]/value_caption"/></xsl:attribute>
@ -1592,12 +1592,24 @@ Platzhalter
</xsl:if> </xsl:if>
</xsl:if> </xsl:if>
</div> </div>
<div class="control"> <xsl:if test="/*/*/felder/feld [@varname = $Feldname]/caption_long != ''">
<button class="button is-small is-rounded is-link has-tooltip-bottom" style="font-size:1.1rem;font-weight:normal;" onclick="return false;" tabindex="1353" data-tooltip="Muss noch ergänzt werden."> <div class="control"> <!--220424BFeingefügt-->
<span class="icon" aria-hidden="true"> <button class="button is-small is-rounded has-tooltip-bottom" onClick="return false;"> <!--220424BFgeändert-->
<img src="../images/information_white_liberation.svg" alt="Info" title="Info" /></span> <xsl:attribute name="data-tooltip">
</button> <xsl:call-template name="br_to_newline">
</div><!--Ende control --> <xsl:with-param name="string"><![CDATA[]]><xsl:value-of select="/*/*/felder/feld [@varname = $Feldname]/caption_long"/><![CDATA[]]></xsl:with-param>
<xsl:with-param name="search">&lt;br&gt;</xsl:with-param>
</xsl:call-template>
</xsl:attribute>
<span class="icon" aria-hidden="true">
<img src="../images/information_grey_liberation.svg" alt="Info" title="Info" />
</span>
</button> <!--220424BFeingefügt-->
</div>
<!--220424BFdeaktiviert-->
</xsl:if>
<!--Ende tooltip -->
</div> </div>
@ -2040,46 +2052,7 @@ td.integer {
</style> </style>
<xsl:choose> <xsl:choose>
<xsl:when test="$collapsible='true'"> <xsl:when test="$collapsible='true'">
<style>
.fixed-right-buttons {
position: fixed;
right: 0.1%; /* Abstand vom rechten Bildschirmrand */
top: 50%; /* Zentriert den Button-Block vertikal;*/
transform: translateY(-50%); /* Zentrierung anpassen */
display: flex;
flex-direction: column; /* Buttons vertikal anordnen */
gap: 10px; /* Abstand zwischen den Buttons */
z-index: 600;
padding: 0.7% 0% 0.7% 0%;
}
.inside-buttons { /*20250530 BF ergänzt: wenn sidebar offen*/
display: block;
position: fixed;
top: 50%;
z-index: 700;
left: calc(100vw - 545px - 40px);/* Viewport-Breite minus Sidebar-Breite minus Abstand */
transform: none; /* keine vertikale Zentrierung */
}
.sidebar { /*20250523 BF ergänzt*/
position: fixed;
top: 120px; /*Abstand zur oberen Leiste*/
padding-top:2em;
padding-left:0.5em;
padding-right: 0.7em;
right: 0em;
bottom: 0;
width: 545px; /*Breite nach Bedarf */
background: white;
box-shadow: -2px 0 5px rgba(0,0,0,0.1);
overflow-y: auto;
z-index: 700; /*für Anzeige über Content*/
}
</style>
<script> <script>
function toggleSideBarDiv(mySidebarDivId) function toggleSideBarDiv(mySidebarDivId)
{ {

1
superx/xml/viz_html_chart_viewer_mask.xsl

@ -43,6 +43,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util
<link rel="stylesheet" href="../style/sx_tabelle.css" /> <link rel="stylesheet" href="../style/sx_tabelle.css" />
<!--<link rel="stylesheet" href="../style/superx.css" />--> <!--<link rel="stylesheet" href="../style/superx.css" />-->
<link rel="stylesheet" type="text/css" href="../style/sx_viz_muster.css" />
</head> </head>
<xsl:call-template name="nd_htmlscript" /> <xsl:call-template name="nd_htmlscript" />

2
superx/xml/viz_html_chart_viewer_mask_and_table.xsl

@ -42,12 +42,14 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util
</xsl:call-template> </xsl:call-template>
<link rel="stylesheet" href="../style/sx_tabelle.css" /> <link rel="stylesheet" href="../style/sx_tabelle.css" />
<link rel="stylesheet" type="text/css" href="../style/sx_viz_muster.css" />
<!--<link rel="stylesheet" href="../style/superx.css" />--> <!--<link rel="stylesheet" href="../style/superx.css" />-->
</head> </head>
<xsl:call-template name="nd_htmlscript" /> <xsl:call-template name="nd_htmlscript" />
<xsl:call-template name="nd_tableJavascript" /> <xsl:call-template name="nd_tableJavascript" />
<xsl:call-template name="nd_tableCSS" /> <xsl:call-template name="nd_tableCSS" />
<xsl:call-template name="vizTableCSS" />
<xsl:call-template name="importVizViewer"></xsl:call-template> <xsl:call-template name="importVizViewer"></xsl:call-template>
<body class="has-navbar-fixed-top" onload="document.getElementById('progressbar').style.display='none';initPage();"> <body class="has-navbar-fixed-top" onload="document.getElementById('progressbar').style.display='none';initPage();">

Loading…
Cancel
Save