equal
deleted
inserted
replaced
258 result "/.."; |
258 result "/.."; |
259 } |
259 } |
260 } |
260 } |
261 } |
261 } |
262 |
262 |
263 const "detachable_elements", "func:detachable_elements($hmi_pages)"; |
263 // Avoid nested detachables |
264 |
264 const "_detachable_elements", "func:detachable_elements($hmi_pages)"; |
265 |
265 const "detachable_elements", "$_detachable_elements[not(ancestor::*/@id = $_detachable_elements/@id)]"; |
266 |
266 |
267 //////////////// HMI Tree Index |
267 //////////////// HMI Tree Index |
268 |
268 |
269 template "*", mode="index" { |
269 template "*", mode="index" { |
270 param "index", "0"; |
270 param "index", "0"; |
589 |
589 |
590 const "page_all_elements", "func:all_related_elements($page)"; |
590 const "page_all_elements", "func:all_related_elements($page)"; |
591 |
591 |
592 const "all_page_ids","$page_all_elements[@id = $hmi_elements/@id and @id != $page/@id]/@id"; |
592 const "all_page_ids","$page_all_elements[@id = $hmi_elements/@id and @id != $page/@id]/@id"; |
593 |
593 |
594 const "required_detachables", "func:sumarized_elements($page_all_elements)"; |
594 // Take closest ancestor in detachable_elements |
|
595 // since nested detachable elements are filtered out |
|
596 const "required_detachables", |
|
597 """func:sumarized_elements($page_all_elements)/ |
|
598 ancestor-or-self::*[@id = $detachable_elements/@id]"""; |
595 |
599 |
596 | "«$desc/arg[1]/@value»": { |
600 | "«$desc/arg[1]/@value»": { |
597 | widget: hmi_widgets["«@id»"], |
601 | widget: hmi_widgets["«@id»"], |
598 | bbox: [«$p/@x», «$p/@y», «$p/@w», «$p/@h»], |
602 | bbox: [«$p/@x», «$p/@y», «$p/@w», «$p/@h»], |
599 | widgets: [ |
603 | widgets: [ |