svghmi/widget_back.ysl2
author Edouard Tisserant
Fri, 04 Nov 2022 10:51:45 +0100
changeset 3653 d5ff60e906b0
parent 3241 fe945f1f48b7
child 3654 6b7f15089703
permissions -rw-r--r--
SVGHMI: add ScreenSaver feature. Automatically jumps to a page named "ScreenSaver" after timeout defined in page arguments.
// widget_back.ysl2

widget_desc("Back") {
    longdesc
    ||
    Back widget brings focus back to previous page in history when clicked.
    ||

    shortdesc > Jump to previous page
}

// TODO: use es6
widget_class("Back")
    ||
        on_click(evt) {
            if(jump_history.length > 1){
               let page_name, index;
               do {
                   jump_history.pop(); // forget current page
                   if(jump_history.length == 0) return;
                   [page_name, index] = jump_history[jump_history.length-1];
               } while(page_name == "ScreenSaver") // never go back to ScreenSaver
               switch_page(page_name, index);
            }
        }
        init() {
            this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)");
        }
    ||