Ich habe in meiner Visu ein bisschen mit Templates gearbeitet. Eigentlich ganz hübsch, aber so ganz verstanden habe ich das nicht. Hier ein Minimalbeispiel:
Im Browser sieht das so aus:
Screenshot_20210427_125112.png
Das sind mir irgendwie zu viele Icons. Eigentlich hätte ich gerne das unten in der Page als "icon" gesetzte Icon innerhalb des Switches dargestellt, und das darf dann auch gerne orange werden, wenn das entsprechende Licht eingeschaltet ist. Dann könnte ich mir das komplette label schenken und jeder Schalter würde nur ein einziges colspan belegen.
Aber das Icon, das innerhalb des switch dargestellt wird, kommt an dieser Stelle aus dem Mapping, und das steht außerhalb der Template. Kann ich dem Mapping an dieser Stelle Parameter mitgeben, das Mapping selbst als Template darstellen oder die Information des Mappings selbst innerhalb meiner Template hinschreiben? Ich möchte ungerne für jedes verwendete Icon ein eigenes Mapping definieren müssen.
Grüße
Marc
Code:
[FONT=monospace][COLOR=#000000]<?xml version="1.0" encoding="UTF-8"?> [/COLOR] <pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" design="metal" lib_version="8" xsi:noNamespaceSchemaLocation="../visu_config.xsd"> <meta> <mappings> <mapping name="OnOff_Licht"> <entry value="0"> <icon name="light_light" flavour="white"/> </entry> <entry value="1"> <icon name="light_light" flavour="sodium" color="orange"/> </entry> </mapping> </mappings> <plugins> <plugin name="diagram"/> <plugin name="colorchooser"/> <plugin name="strftime"/> <plugin name="rsslog"/> </plugins> <templates> <template name="switchLicht"> <switch mapping="OnOff_Licht" bind_click_to_widget="false"> <layout colspan="2"/> <label><icon name="{{icon}}"/>{{name}}</label> <address transform="DPT:1.001" mode="read">{{AddrStatus}}</address> <address transform="DPT:1.001" mode="write">{{AddrSwitch}}</address> </switch> </template> </templates> </meta> <page name="Sem" visible="false"> <template name="switchLicht"> <value name="icon">light_ceiling_light</value> <value name="name"/> <value name="AddrStatus">2/1/50</value> <value name="AddrSwitch">2/1/51</value> </template> <template name="switchLicht"> <value name="name"/> <value name="icon">light_office</value> <value name="AddrStatus">2/1/20</value> <value name="AddrSwitch">2/1/21</value> </template> <template name="switchLicht"> <value name="name"/> <value name="icon">scene_workshop</value> <value name="AddrStatus">2/1/40</value> <value name="AddrSwitch">2/1/41</value> </template> <template name="switchLicht"> <value name="name"/> <value name="icon">light_showcase</value> <value name="AddrStatus">2/1/30</value> <value name="AddrSwitch">2/1/31</value> </template> </page> </pages>[/FONT]
Screenshot_20210427_125112.png
Das sind mir irgendwie zu viele Icons. Eigentlich hätte ich gerne das unten in der Page als "icon" gesetzte Icon innerhalb des Switches dargestellt, und das darf dann auch gerne orange werden, wenn das entsprechende Licht eingeschaltet ist. Dann könnte ich mir das komplette label schenken und jeder Schalter würde nur ein einziges colspan belegen.
Aber das Icon, das innerhalb des switch dargestellt wird, kommt an dieser Stelle aus dem Mapping, und das steht außerhalb der Template. Kann ich dem Mapping an dieser Stelle Parameter mitgeben, das Mapping selbst als Template darstellen oder die Information des Mappings selbst innerhalb meiner Template hinschreiben? Ich möchte ungerne für jedes verwendete Icon ein eigenes Mapping definieren müssen.
Grüße
Marc
Kommentar