svghmi/gen_index_xhtml.xslt
branchsvghmi
changeset 2906 3b4a1319da09
parent 2905 3d7e3866cc51
child 2907 1695122a5e16
equal deleted inserted replaced
2905:3d7e3866cc51 2906:3b4a1319da09
   947         <xsl:text>active inactive</xsl:text>
   947         <xsl:text>active inactive</xsl:text>
   948       </xsl:with-param>
   948       </xsl:with-param>
   949       <xsl:with-param name="mandatory" select="'no'"/>
   949       <xsl:with-param name="mandatory" select="'no'"/>
   950     </xsl:call-template>
   950     </xsl:call-template>
   951   </xsl:template>
   951   </xsl:template>
       
   952   <xsl:template name="jump_widget_disability">
       
   953     <xsl:param name="hmi_element"/>
       
   954     <xsl:call-template name="defs_by_labels">
       
   955       <xsl:with-param name="hmi_element" select="$hmi_element"/>
       
   956       <xsl:with-param name="labels">
       
   957         <xsl:text>disabled</xsl:text>
       
   958       </xsl:with-param>
       
   959       <xsl:with-param name="mandatory" select="'no'"/>
       
   960     </xsl:call-template>
       
   961   </xsl:template>
   952   <xsl:template mode="widget_defs" match="widget[@type='Jump']">
   962   <xsl:template mode="widget_defs" match="widget[@type='Jump']">
   953     <xsl:param name="hmi_element"/>
   963     <xsl:param name="hmi_element"/>
   954     <xsl:variable name="opts">
   964     <xsl:variable name="activity">
   955       <xsl:call-template name="jump_widget_activity">
   965       <xsl:call-template name="jump_widget_activity">
   956         <xsl:with-param name="hmi_element" select="$hmi_element"/>
   966         <xsl:with-param name="hmi_element" select="$hmi_element"/>
   957       </xsl:call-template>
   967       </xsl:call-template>
   958     </xsl:variable>
   968     </xsl:variable>
   959     <xsl:variable name="have_opt" select="string-length($opts)&gt;0"/>
   969     <xsl:variable name="have_activity" select="string-length($activity)&gt;0"/>
   960     <xsl:value-of select="$opts"/>
   970     <xsl:value-of select="$activity"/>
       
   971     <xsl:variable name="disability">
       
   972       <xsl:call-template name="jump_widget_disability">
       
   973         <xsl:with-param name="hmi_element" select="$hmi_element"/>
       
   974       </xsl:call-template>
       
   975     </xsl:variable>
       
   976     <xsl:variable name="have_disability" select="$have_activity and string-length($disability)&gt;0"/>
       
   977     <xsl:value-of select="$disability"/>
       
   978     <xsl:if test="$have_activity">
       
   979       <xsl:text>    active: false,
       
   980 </xsl:text>
       
   981       <xsl:if test="$have_disability">
       
   982         <xsl:text>    disabled: false,
       
   983 </xsl:text>
       
   984         <xsl:text>    frequency: 2,
       
   985 </xsl:text>
       
   986         <xsl:text>    dispatch: function(value) {
       
   987 </xsl:text>
       
   988         <xsl:text>        this.disabled = !Number(value);
       
   989 </xsl:text>
       
   990         <xsl:text>        console.log("disbled",value);
       
   991 </xsl:text>
       
   992         <xsl:text>        this.update();
       
   993 </xsl:text>
       
   994         <xsl:text>    },
       
   995 </xsl:text>
       
   996       </xsl:if>
       
   997       <xsl:text>    update: function(){
       
   998 </xsl:text>
       
   999       <xsl:if test="$have_disability">
       
  1000         <xsl:text>      if(this.disabled) {
       
  1001 </xsl:text>
       
  1002         <xsl:text>        /* show disabled */ 
       
  1003 </xsl:text>
       
  1004         <xsl:text>        this.disabled_elt.setAttribute("style", this.active_elt_style);
       
  1005 </xsl:text>
       
  1006         <xsl:text>        /* hide inactive */ 
       
  1007 </xsl:text>
       
  1008         <xsl:text>        this.inactive_elt.setAttribute("style", "display:none");
       
  1009 </xsl:text>
       
  1010         <xsl:text>        /* hide active */ 
       
  1011 </xsl:text>
       
  1012         <xsl:text>        this.active_elt.setAttribute("style", "display:none");
       
  1013 </xsl:text>
       
  1014         <xsl:text>      } else {
       
  1015 </xsl:text>
       
  1016         <xsl:text>        /* hide disabled */ 
       
  1017 </xsl:text>
       
  1018         <xsl:text>        this.disabled_elt.setAttribute("style", "display:none");
       
  1019 </xsl:text>
       
  1020       </xsl:if>
       
  1021       <xsl:text>        if(this.active) {
       
  1022 </xsl:text>
       
  1023       <xsl:text>             /* show active */ 
       
  1024 </xsl:text>
       
  1025       <xsl:text>             this.active_elt.setAttribute("style", this.active_elt_style);
       
  1026 </xsl:text>
       
  1027       <xsl:text>             /* hide inactive */ 
       
  1028 </xsl:text>
       
  1029       <xsl:text>             this.inactive_elt.setAttribute("style", "display:none");
       
  1030 </xsl:text>
       
  1031       <xsl:text>        } else {
       
  1032 </xsl:text>
       
  1033       <xsl:text>             /* show inactive */ 
       
  1034 </xsl:text>
       
  1035       <xsl:text>             this.inactive_elt.setAttribute("style", this.inactive_elt_style);
       
  1036 </xsl:text>
       
  1037       <xsl:text>             /* hide active */ 
       
  1038 </xsl:text>
       
  1039       <xsl:text>             this.active_elt.setAttribute("style", "display:none");
       
  1040 </xsl:text>
       
  1041       <xsl:text>        }
       
  1042 </xsl:text>
       
  1043       <xsl:if test="$have_disability">
       
  1044         <xsl:text>      }
       
  1045 </xsl:text>
       
  1046       </xsl:if>
       
  1047       <xsl:text>    },
       
  1048 </xsl:text>
       
  1049     </xsl:if>
   961     <xsl:text>    on_click: function(evt) {
  1050     <xsl:text>    on_click: function(evt) {
   962 </xsl:text>
  1051 </xsl:text>
   963     <xsl:text>        const index = this.indexes.length &gt; 0 ? this.indexes[0] + this.offset : undefined;
  1052     <xsl:text>        const index = this.indexes.length &gt; 0 ? this.indexes[0] + this.offset : undefined;
   964 </xsl:text>
  1053 </xsl:text>
   965     <xsl:text>        const name = this.args[0];
  1054     <xsl:text>        const name = this.args[0];
   966 </xsl:text>
  1055 </xsl:text>
   967     <xsl:text>        switch_page(name, index);
  1056     <xsl:text>        switch_page(name, index);
   968 </xsl:text>
  1057 </xsl:text>
   969     <xsl:text>    },
  1058     <xsl:text>    },
   970 </xsl:text>
  1059 </xsl:text>
   971     <xsl:if test="$have_opt">
  1060     <xsl:if test="$have_activity">
   972       <xsl:text>    notify_page_change: function(page_name, index){
  1061       <xsl:text>    notify_page_change: function(page_name, index){
   973 </xsl:text>
  1062 </xsl:text>
   974       <xsl:text>        const ref_index = this.indexes.length &gt; 0 ? this.indexes[0] + this.offset : undefined;
  1063       <xsl:text>        const ref_index = this.indexes.length &gt; 0 ? this.indexes[0] + this.offset : undefined;
   975 </xsl:text>
  1064 </xsl:text>
   976       <xsl:text>        const ref_name = this.args[0];
  1065       <xsl:text>        const ref_name = this.args[0];
   977 </xsl:text>
  1066 </xsl:text>
   978       <xsl:text>        if((ref_name == undefined || ref_name == page_name) &amp;&amp; index == ref_index) {
  1067       <xsl:text>        this.active =((ref_name == undefined || ref_name == page_name) &amp;&amp; index == ref_index);
   979 </xsl:text>
  1068 </xsl:text>
   980       <xsl:text>             console.log("active", ref_name, ref_index, page_name, index);
  1069       <xsl:text>        this.update();
   981 </xsl:text>
       
   982       <xsl:text>             /* show active */ 
       
   983 </xsl:text>
       
   984       <xsl:text>             this.active_elt.setAttribute("style", this.active_elt_style);
       
   985 </xsl:text>
       
   986       <xsl:text>             /* hide inactive */ 
       
   987 </xsl:text>
       
   988       <xsl:text>             this.inactive_elt.setAttribute("style", "display:none");
       
   989 </xsl:text>
       
   990       <xsl:text>        } else {
       
   991 </xsl:text>
       
   992       <xsl:text>             console.log("inactive",ref_name, ref_index,  page_name, index);
       
   993 </xsl:text>
       
   994       <xsl:text>             /* show inactive */ 
       
   995 </xsl:text>
       
   996       <xsl:text>             this.inactive_elt.setAttribute("style", this.inactive_elt_style);
       
   997 </xsl:text>
       
   998       <xsl:text>             /* hide active */ 
       
   999 </xsl:text>
       
  1000       <xsl:text>             this.active_elt.setAttribute("style", "display:none");
       
  1001 </xsl:text>
       
  1002       <xsl:text>        }
       
  1003 </xsl:text>
  1070 </xsl:text>
  1004       <xsl:text>    },
  1071       <xsl:text>    },
  1005 </xsl:text>
  1072 </xsl:text>
  1006     </xsl:if>
  1073     </xsl:if>
  1007     <xsl:text>    init: function() {
  1074     <xsl:text>    init: function() {
  1008 </xsl:text>
  1075 </xsl:text>
  1009     <xsl:text>        this.element.setAttribute("onclick", "hmi_widgets['</xsl:text>
  1076     <xsl:text>        this.element.setAttribute("onclick", "hmi_widgets['</xsl:text>
  1010     <xsl:value-of select="$hmi_element/@id"/>
  1077     <xsl:value-of select="$hmi_element/@id"/>
  1011     <xsl:text>'].on_click(evt)");
  1078     <xsl:text>'].on_click(evt)");
  1012 </xsl:text>
  1079 </xsl:text>
  1013     <xsl:if test="$have_opt">
  1080     <xsl:if test="$have_activity">
  1014       <xsl:text>        this.active_elt_style = this.active_elt.getAttribute("style");
  1081       <xsl:text>        this.active_elt_style = this.active_elt.getAttribute("style");
  1015 </xsl:text>
  1082 </xsl:text>
  1016       <xsl:text>        this.inactive_elt_style = this.inactive_elt.getAttribute("style");
  1083       <xsl:text>        this.inactive_elt_style = this.inactive_elt.getAttribute("style");
       
  1084 </xsl:text>
       
  1085     </xsl:if>
       
  1086     <xsl:if test="$have_disability">
       
  1087       <xsl:text>        this.disabled_elt_style = this.disabled_elt.getAttribute("style");
  1017 </xsl:text>
  1088 </xsl:text>
  1018     </xsl:if>
  1089     </xsl:if>
  1019     <xsl:text>    },
  1090     <xsl:text>    },
  1020 </xsl:text>
  1091 </xsl:text>
       
  1092   </xsl:template>
       
  1093   <xsl:template mode="widget_subscribe" match="widget[@type='Jump']">
       
  1094     <xsl:param name="hmi_element"/>
       
  1095     <xsl:variable name="activity">
       
  1096       <xsl:call-template name="jump_widget_activity">
       
  1097         <xsl:with-param name="hmi_element" select="$hmi_element"/>
       
  1098       </xsl:call-template>
       
  1099     </xsl:variable>
       
  1100     <xsl:variable name="have_activity" select="string-length($activity)&gt;0"/>
       
  1101     <xsl:variable name="disability">
       
  1102       <xsl:call-template name="jump_widget_disability">
       
  1103         <xsl:with-param name="hmi_element" select="$hmi_element"/>
       
  1104       </xsl:call-template>
       
  1105     </xsl:variable>
       
  1106     <xsl:variable name="have_disability" select="$have_activity and string-length($disability)&gt;0"/>
       
  1107     <xsl:choose>
       
  1108       <xsl:when test="$have_disability">
       
  1109         <xsl:text>    sub: subscribe,
       
  1110 </xsl:text>
       
  1111         <xsl:text>    unsub: unsubscribe,
       
  1112 </xsl:text>
       
  1113         <xsl:text>    apply_cache: widget_apply_cache,
       
  1114 </xsl:text>
       
  1115       </xsl:when>
       
  1116       <xsl:otherwise>
       
  1117         <xsl:text>    sub: function(){},
       
  1118 </xsl:text>
       
  1119         <xsl:text>    unsub: function(){},
       
  1120 </xsl:text>
       
  1121         <xsl:text>    apply_cache: function(){},
       
  1122 </xsl:text>
       
  1123       </xsl:otherwise>
       
  1124     </xsl:choose>
  1021   </xsl:template>
  1125   </xsl:template>
  1022   <xsl:template mode="per_page_widget_template" match="widget[@type='Jump']">
  1126   <xsl:template mode="per_page_widget_template" match="widget[@type='Jump']">
  1023     <xsl:param name="page_desc"/>
  1127     <xsl:param name="page_desc"/>
  1024     <xsl:if test="path">
  1128     <xsl:if test="path">
  1025       <xsl:variable name="target_page_name">
  1129       <xsl:variable name="target_page_name">
  1901 </xsl:text>
  2005 </xsl:text>
  1902     <xsl:text>
  2006     <xsl:text>
  1903 </xsl:text>
  2007 </xsl:text>
  1904     <xsl:text>    jump_history.push([page_name, page_index]);
  2008     <xsl:text>    jump_history.push([page_name, page_index]);
  1905 </xsl:text>
  2009 </xsl:text>
  1906     <xsl:text>    if(jump_history.length &gt; 4)
  2010     <xsl:text>    if(jump_history.length &gt; 42)
  1907 </xsl:text>
  2011 </xsl:text>
  1908     <xsl:text>        jump_history.shift();
  2012     <xsl:text>        jump_history.shift();
  1909 </xsl:text>
  2013 </xsl:text>
  1910     <xsl:text>
  2014     <xsl:text>
  1911 </xsl:text>
  2015 </xsl:text>