svghmi/gen_index_xhtml.xslt
changeset 3656 efbc86949467
parent 3651 e3a29c5b74c4
child 3657 e0d6f5f0dcc2
child 3663 31aaec736e4d
equal deleted inserted replaced
3655:e42a09c1d3f3 3656:efbc86949467
   635 </xsl:text>
   635 </xsl:text>
   636     <xsl:text>var default_page = "</xsl:text>
   636     <xsl:text>var default_page = "</xsl:text>
   637     <xsl:value-of select="$default_page"/>
   637     <xsl:value-of select="$default_page"/>
   638     <xsl:text>";
   638     <xsl:text>";
   639 </xsl:text>
   639 </xsl:text>
       
   640     <xsl:variable name="screensaverpage" select="$hmi_pages_descs[arg[1]/@value = 'ScreenSaver']"/>
       
   641     <xsl:variable name="delay">
       
   642       <xsl:choose>
       
   643         <xsl:when test="$screensaverpage">
       
   644           <xsl:variable name="delaystr" select="$screensaverpage/arg[2]/@value"/>
       
   645           <xsl:if test="not(regexp:test($delaystr,'^[0-9]+$'))">
       
   646             <xsl:message terminate="yes">
       
   647               <xsl:text>ScreenSaver page has missing or malformed delay argument.</xsl:text>
       
   648             </xsl:message>
       
   649           </xsl:if>
       
   650           <xsl:value-of select="$delaystr"/>
       
   651         </xsl:when>
       
   652         <xsl:otherwise>
       
   653           <xsl:text>null</xsl:text>
       
   654         </xsl:otherwise>
       
   655       </xsl:choose>
       
   656     </xsl:variable>
       
   657     <xsl:text>var screensaver_delay = </xsl:text>
       
   658     <xsl:value-of select="$delay"/>
       
   659     <xsl:text>;
       
   660 </xsl:text>
   640     <xsl:text>
   661     <xsl:text>
   641 </xsl:text>
   662 </xsl:text>
   642   </xsl:template>
   663   </xsl:template>
   643   <xsl:variable name="keypads_descs" select="$parsed_widgets/widget[@type = 'Keypad']"/>
   664   <xsl:variable name="keypads_descs" select="$parsed_widgets/widget[@type = 'Keypad']"/>
   644   <xsl:variable name="keypads" select="$hmi_elements[@id = $keypads_descs/@id]"/>
   665   <xsl:variable name="keypads" select="$hmi_elements[@id = $keypads_descs/@id]"/>
  2905 </xsl:text>
  2926 </xsl:text>
  2906     <xsl:text>    on_click(evt) {
  2927     <xsl:text>    on_click(evt) {
  2907 </xsl:text>
  2928 </xsl:text>
  2908     <xsl:text>        if(jump_history.length &gt; 1){
  2929     <xsl:text>        if(jump_history.length &gt; 1){
  2909 </xsl:text>
  2930 </xsl:text>
  2910     <xsl:text>           jump_history.pop();
  2931     <xsl:text>           let page_name, index;
  2911 </xsl:text>
  2932 </xsl:text>
  2912     <xsl:text>           let [page_name, index] = jump_history.pop();
  2933     <xsl:text>           do {
       
  2934 </xsl:text>
       
  2935     <xsl:text>               jump_history.pop(); // forget current page
       
  2936 </xsl:text>
       
  2937     <xsl:text>               if(jump_history.length == 0) return;
       
  2938 </xsl:text>
       
  2939     <xsl:text>               [page_name, index] = jump_history[jump_history.length-1];
       
  2940 </xsl:text>
       
  2941     <xsl:text>           } while(page_name == "ScreenSaver") // never go back to ScreenSaver
  2913 </xsl:text>
  2942 </xsl:text>
  2914     <xsl:text>           switch_page(page_name, index);
  2943     <xsl:text>           switch_page(page_name, index);
  2915 </xsl:text>
  2944 </xsl:text>
  2916     <xsl:text>        }
  2945     <xsl:text>        }
  2917 </xsl:text>
  2946 </xsl:text>
  2918     <xsl:text>    }
  2947     <xsl:text>    }
  2919 </xsl:text>
  2948 </xsl:text>
  2920     <xsl:text>    init() {
  2949     <xsl:text>    init() {
  2921 </xsl:text>
  2950 </xsl:text>
  2922     <xsl:text>        this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)");
  2951     <xsl:text>        this.element.onclick = this.on_click.bind(this);
  2923 </xsl:text>
  2952 </xsl:text>
  2924     <xsl:text>    }
  2953     <xsl:text>    }
  2925 </xsl:text>
  2954 </xsl:text>
  2926     <xsl:text>}
  2955     <xsl:text>}
  2927 </xsl:text>
  2956 </xsl:text>
 12097 </xsl:text>
 12126 </xsl:text>
 12098           <xsl:text>});
 12127           <xsl:text>});
 12099 </xsl:text>
 12128 </xsl:text>
 12100           <xsl:text>
 12129           <xsl:text>
 12101 </xsl:text>
 12130 </xsl:text>
       
 12131           <xsl:text>var screensaver_timer = null;
       
 12132 </xsl:text>
       
 12133           <xsl:text>function reset_screensaver_timer() {
       
 12134 </xsl:text>
       
 12135           <xsl:text>    if(screensaver_timer){
       
 12136 </xsl:text>
       
 12137           <xsl:text>        window.clearTimeout(screensaver_timer);
       
 12138 </xsl:text>
       
 12139           <xsl:text>    }
       
 12140 </xsl:text>
       
 12141           <xsl:text>    screensaver_timer = window.setTimeout(() =&gt; {
       
 12142 </xsl:text>
       
 12143           <xsl:text>        switch_page("ScreenSaver");
       
 12144 </xsl:text>
       
 12145           <xsl:text>        screensaver_timer = null;
       
 12146 </xsl:text>
       
 12147           <xsl:text>    }, screensaver_delay*1000);
       
 12148 </xsl:text>
       
 12149           <xsl:text>}
       
 12150 </xsl:text>
       
 12151           <xsl:text>if(screensaver_delay)
       
 12152 </xsl:text>
       
 12153           <xsl:text>    document.body.addEventListener('pointerdown', reset_screensaver_timer);
       
 12154 </xsl:text>
       
 12155           <xsl:text>
       
 12156 </xsl:text>
 12102           <xsl:text>function detach_detachables() {
 12157           <xsl:text>function detach_detachables() {
 12103 </xsl:text>
 12158 </xsl:text>
 12104           <xsl:text>
 12159           <xsl:text>
 12105 </xsl:text>
 12160 </xsl:text>
 12106           <xsl:text>    for(let eltid in detachable_elements){
 12161           <xsl:text>    for(let eltid in detachable_elements){
 12235 </xsl:text>
 12290 </xsl:text>
 12236           <xsl:text>
 12291           <xsl:text>
 12237 </xsl:text>
 12292 </xsl:text>
 12238           <xsl:text>    requestHMIAnimation();
 12293           <xsl:text>    requestHMIAnimation();
 12239 </xsl:text>
 12294 </xsl:text>
 12240           <xsl:text>    jump_history.push([page_name, page_index]);
 12295           <xsl:text>    let [last_page_name, last_page_index] = jump_history[jump_history.length-1];
 12241 </xsl:text>
 12296 </xsl:text>
 12242           <xsl:text>    if(jump_history.length &gt; 42)
 12297           <xsl:text>    if(last_page_name != page_name || last_page_index != page_index){
 12243 </xsl:text>
 12298 </xsl:text>
 12244           <xsl:text>        jump_history.shift();
 12299           <xsl:text>        jump_history.push([page_name, page_index]);
       
 12300 </xsl:text>
       
 12301           <xsl:text>        if(jump_history.length &gt; 42)
       
 12302 </xsl:text>
       
 12303           <xsl:text>            jump_history.shift();
       
 12304 </xsl:text>
       
 12305           <xsl:text>    }
 12245 </xsl:text>
 12306 </xsl:text>
 12246           <xsl:text>
 12307           <xsl:text>
 12247 </xsl:text>
 12308 </xsl:text>
 12248           <xsl:text>    apply_hmi_value(current_page_var_index, page_index == undefined
 12309           <xsl:text>    apply_hmi_value(current_page_var_index, page_index == undefined
 12249 </xsl:text>
 12310 </xsl:text>
 12408           <xsl:text>
 12469           <xsl:text>
 12409 </xsl:text>
 12470 </xsl:text>
 12410           <xsl:text>// show main page
 12471           <xsl:text>// show main page
 12411 </xsl:text>
 12472 </xsl:text>
 12412           <xsl:text>switch_page(default_page);
 12473           <xsl:text>switch_page(default_page);
       
 12474 </xsl:text>
       
 12475           <xsl:text>
       
 12476 </xsl:text>
       
 12477           <xsl:text>// initialize screensaver
       
 12478 </xsl:text>
       
 12479           <xsl:text>reset_screensaver_timer();
 12413 </xsl:text>
 12480 </xsl:text>
 12414           <xsl:text>
 12481           <xsl:text>
 12415 </xsl:text>
 12482 </xsl:text>
 12416           <xsl:text>var reconnect_delay = 0;
 12483           <xsl:text>var reconnect_delay = 0;
 12417 </xsl:text>
 12484 </xsl:text>