diff -r 8d9757191f05 -r d9eb50c015d1 svghmi/gen_index_xhtml.xslt
--- a/svghmi/gen_index_xhtml.xslt Thu Mar 12 13:16:18 2020 +0100
+++ b/svghmi/gen_index_xhtml.xslt Fri Mar 13 10:36:13 2020 +0100
@@ -198,6 +198,11 @@
+
+
+
+
+
@@ -399,11 +404,20 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -453,23 +467,21 @@
indexes: [
-
-
-
+
Widget
id="
" : No match for path "
-
+
" in HMI tree
-
+
,
@@ -551,7 +563,8 @@
-
+
+
"
@@ -571,11 +584,40 @@
],
- widgets: [
-
-
+
+
+
+ Page id="
+
+ " : No match for path "
+
+ " in HMI tree
+
+
+ page_index:
+
+ ,
+
+
+ relative_widgets: [
+
+
hmi_widgets["
-
+
+ "]
+
+ ,
+
+
+
+
+ ],
+
+ absolute_widgets: [
+
+
+ hmi_widgets["
+
"]
,
@@ -1138,7 +1180,7 @@
- function switch_page(page_name) {
+ function switch_page(page_name, root_index) {
if(current_subscribed_page != current_visible_page){
@@ -1164,6 +1206,16 @@
+ function* chain(a,b){
+
+ yield* a;
+
+ yield* b;
+
+ };
+
+
+
function switch_subscribed_page(page_name) {
let old_desc = page_desc[current_subscribed_page];
@@ -1184,7 +1236,7 @@
if(old_desc){
- for(let widget of old_desc.widgets){
+ for(let widget of chain(old_desc.absolute_widgets,old_desc.relative_widgets)){
/* remove subsribers */
@@ -1198,7 +1250,7 @@
}
- for(let widget of new_desc.widgets){
+ for(let widget of chain(new_desc.absolute_widgets,new_desc.relative_widgets)){
/* add widget's subsribers */
@@ -1276,7 +1328,7 @@
- for(let widget of new_desc.widgets){
+ for(let widget of chain(new_desc.absolute_widgets,new_desc.relative_widgets)){
for(let index of widget.indexes){
@@ -1621,7 +1673,7 @@
on_click: function(evt) {
- switch_page(this.args[0]);
+ switch_page(this.args[0], this.indexes[0]);
},