Ankündigung

Einklappen
Keine Ankündigung bisher.

mapping, iconauswahl per Template?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    mapping, iconauswahl per Template?

    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:

    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]
    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

    #2
    Also grundsätzlich kannst Du mit den Templates nichts erreichen, was auf normalem Weg schon nicht geht (die können da nur Schreibarbeit sparen, indem man sich damit wieder verwertbare Komponenten erstellt). Auch ohne Template müsstest Du für einen solchen Fall wohl einzelne Mappings für jedes Icon machen, weil der Inhalt eines Switches nur über ein Mapping manipuliert werden kann. Und da man keine Templates für Mappings machen kann, nehmen die Dir da auch keine Arbeit ab.

    Also ich sehe da nur den Weg mit einzelnen Mappings.
    Gruß
    Tobias

    Kommentar

    Lädt...
    X