322 <xsl:template name="scripts"> |
322 <xsl:template name="scripts"> |
323 <xsl:text>//(function(){ |
323 <xsl:text>//(function(){ |
324 </xsl:text> |
324 </xsl:text> |
325 <xsl:text> |
325 <xsl:text> |
326 </xsl:text> |
326 </xsl:text> |
|
327 <xsl:text>id = idstr => document.getElementById(idstr); |
|
328 </xsl:text> |
|
329 <xsl:text> |
|
330 </xsl:text> |
327 <xsl:text>var hmi_hash = [</xsl:text> |
331 <xsl:text>var hmi_hash = [</xsl:text> |
328 <xsl:value-of select="$hmitree/@hash"/> |
332 <xsl:value-of select="$hmitree/@hash"/> |
329 <xsl:text>]; |
333 <xsl:text>]; |
330 </xsl:text> |
334 </xsl:text> |
331 <xsl:text>var hmi_widgets = { |
335 <xsl:text>var hmi_widgets = { |
422 </xsl:for-each> |
426 </xsl:for-each> |
423 <xsl:text>] |
427 <xsl:text>] |
424 </xsl:text> |
428 </xsl:text> |
425 <xsl:text> |
429 <xsl:text> |
426 </xsl:text> |
430 </xsl:text> |
|
431 <xsl:text>var detachable_elements = { |
|
432 </xsl:text> |
|
433 <xsl:for-each select="$detachable_elements"> |
|
434 <xsl:text> "</xsl:text> |
|
435 <xsl:value-of select="@id"/> |
|
436 <xsl:text>" : {element: id("</xsl:text> |
|
437 <xsl:value-of select="@id"/> |
|
438 <xsl:text>"), parent:id("</xsl:text> |
|
439 <xsl:value-of select="../@id"/> |
|
440 <xsl:text>")}</xsl:text> |
|
441 <xsl:if test="position()!=last()"> |
|
442 <xsl:text>,</xsl:text> |
|
443 </xsl:if> |
|
444 <xsl:text> |
|
445 </xsl:text> |
|
446 </xsl:for-each> |
|
447 <xsl:text>} |
|
448 </xsl:text> |
|
449 <xsl:text> |
|
450 </xsl:text> |
427 <xsl:text>var page_desc = { |
451 <xsl:text>var page_desc = { |
428 </xsl:text> |
452 </xsl:text> |
429 <xsl:for-each select="$hmi_pages"> |
453 <xsl:for-each select="$hmi_pages"> |
430 <xsl:variable name="desc" select="func:parselabel(@inkscape:label)/widget"/> |
454 <xsl:variable name="desc" select="func:parselabel(@inkscape:label)/widget"/> |
431 <xsl:variable name="page" select="."/> |
455 <xsl:variable name="page" select="."/> |
432 <xsl:variable name="p" select="$geometry[@Id = $page/@id]"/> |
456 <xsl:variable name="p" select="$geometry[@Id = $page/@id]"/> |
433 <xsl:variable name="page_all_elements" select="func:all_related_elements($page)"/> |
457 <xsl:variable name="page_all_elements" select="func:all_related_elements($page)"/> |
434 <xsl:variable name="all_page_ids" select="$page_all_elements[@id = $hmi_elements/@id and @id != $page/@id]/@id"/> |
458 <xsl:variable name="all_page_ids" select="$page_all_elements[@id = $hmi_elements/@id and @id != $page/@id]/@id"/> |
435 <xsl:variable name="shorter_list" select="func:sumarized_elements($page_all_elements)"/> |
459 <xsl:variable name="required_detachables" select="func:sumarized_elements($page_all_elements)"/> |
436 <xsl:text> "</xsl:text> |
460 <xsl:text> "</xsl:text> |
437 <xsl:value-of select="$desc/arg[1]/@value"/> |
461 <xsl:value-of select="$desc/arg[1]/@value"/> |
438 <xsl:text>": { |
462 <xsl:text>": { |
439 </xsl:text> |
463 </xsl:text> |
440 <xsl:text> widget: hmi_widgets["</xsl:text> |
464 <xsl:text> widget: hmi_widgets["</xsl:text> |
463 <xsl:text> |
487 <xsl:text> |
464 </xsl:text> |
488 </xsl:text> |
465 </xsl:for-each> |
489 </xsl:for-each> |
466 <xsl:text> ], |
490 <xsl:text> ], |
467 </xsl:text> |
491 </xsl:text> |
468 <xsl:text> required_elements: [ |
492 <xsl:text> required_detachables: [ |
469 </xsl:text> |
493 </xsl:text> |
470 <xsl:for-each select="$shorter_list"> |
494 <xsl:for-each select="$required_detachables"> |
471 <xsl:text> "</xsl:text> |
495 <xsl:text> detachable_elements["</xsl:text> |
472 <xsl:value-of select="@id"/> |
496 <xsl:value-of select="@id"/> |
473 <xsl:text>", |
497 <xsl:text>"]</xsl:text> |
|
498 <xsl:if test="position()!=last()"> |
|
499 <xsl:text>,</xsl:text> |
|
500 </xsl:if> |
|
501 <xsl:text> |
474 </xsl:text> |
502 </xsl:text> |
475 </xsl:for-each> |
503 </xsl:for-each> |
476 <xsl:text> ] |
504 <xsl:text> ] |
477 </xsl:text> |
505 </xsl:text> |
478 <xsl:text> }</xsl:text> |
506 <xsl:text> }</xsl:text> |
488 </xsl:text> |
516 </xsl:text> |
489 <xsl:text>var default_page = "</xsl:text> |
517 <xsl:text>var default_page = "</xsl:text> |
490 <xsl:value-of select="$default_page"/> |
518 <xsl:value-of select="$default_page"/> |
491 <xsl:text>"; |
519 <xsl:text>"; |
492 </xsl:text> |
520 </xsl:text> |
493 <xsl:text>var svg_root = document.getElementById("</xsl:text> |
521 <xsl:text>var svg_root = id("</xsl:text> |
494 <xsl:value-of select="$svg_root_id"/> |
522 <xsl:value-of select="$svg_root_id"/> |
495 <xsl:text>"); |
523 <xsl:text>"); |
496 </xsl:text> |
524 </xsl:text> |
497 <xsl:text>// svghmi.js |
525 <xsl:text>// svghmi.js |
498 </xsl:text> |
526 </xsl:text> |
930 </xsl:text> |
958 </xsl:text> |
931 <xsl:text>var current_page; |
959 <xsl:text>var current_page; |
932 </xsl:text> |
960 </xsl:text> |
933 <xsl:text> |
961 <xsl:text> |
934 </xsl:text> |
962 </xsl:text> |
935 <xsl:text>// function prepare_svg() { |
|
936 </xsl:text> |
|
937 <xsl:text>// /* set everybody hidden initially for better performance */ |
|
938 </xsl:text> |
|
939 <xsl:text>// for(let [elt,elt_parent] in detachable_elements){ |
|
940 </xsl:text> |
|
941 <xsl:text>// elt_parent.removeChild(elt) |
|
942 </xsl:text> |
|
943 <xsl:text>// } |
|
944 </xsl:text> |
|
945 <xsl:text>// }; |
|
946 </xsl:text> |
|
947 <xsl:text> |
|
948 </xsl:text> |
|
949 <xsl:text>function prepare_svg() { |
963 <xsl:text>function prepare_svg() { |
950 </xsl:text> |
964 </xsl:text> |
951 <xsl:text> /* set everybody hidden initially for better performance */ |
965 <xsl:text> /* set everybody hidden initially for better performance */ |
952 </xsl:text> |
966 </xsl:text> |
953 <xsl:text> for(let widget_id in hmi_widgets){ |
967 <xsl:text> for(let widget in hmi_widgets){ |
954 </xsl:text> |
|
955 <xsl:text> let widget = hmi_widgets[widget_id]; |
|
956 </xsl:text> |
968 </xsl:text> |
957 <xsl:text> if(widget.element != undefined) |
969 <xsl:text> if(widget.element != undefined) |
958 </xsl:text> |
970 </xsl:text> |
959 <xsl:text> widget.element.style.display = "none"; |
971 <xsl:text> widget.element.style.display = "none"; |
960 </xsl:text> |
972 </xsl:text> |
961 <xsl:text> } |
973 <xsl:text> } |
|
974 </xsl:text> |
|
975 <xsl:text> /*for(let name in page_desc){ |
|
976 </xsl:text> |
|
977 <xsl:text> if(name != new_desc){ |
|
978 </xsl:text> |
|
979 <xsl:text> page_desc[name].widget.element.style.display = "none"; |
|
980 </xsl:text> |
|
981 <xsl:text> } |
|
982 </xsl:text> |
|
983 <xsl:text> }*/ |
962 </xsl:text> |
984 </xsl:text> |
963 <xsl:text>}; |
985 <xsl:text>}; |
964 </xsl:text> |
986 </xsl:text> |
965 <xsl:text> |
987 <xsl:text> |
966 </xsl:text> |
988 </xsl:text> |
1258 </xsl:text> |
1280 </xsl:text> |
1259 <xsl:variable name="edit_elt_id" select="$hmi_element/*[@inkscape:label='edit'][1]/@id"/> |
1281 <xsl:variable name="edit_elt_id" select="$hmi_element/*[@inkscape:label='edit'][1]/@id"/> |
1260 <xsl:text>init: function() { |
1282 <xsl:text>init: function() { |
1261 </xsl:text> |
1283 </xsl:text> |
1262 <xsl:if test="$edit_elt_id"> |
1284 <xsl:if test="$edit_elt_id"> |
1263 <xsl:text> document.getElementById("</xsl:text> |
1285 <xsl:text> id("</xsl:text> |
1264 <xsl:value-of select="$edit_elt_id"/> |
1286 <xsl:value-of select="$edit_elt_id"/> |
1265 <xsl:text>").addEventListener( |
1287 <xsl:text>").addEventListener( |
1266 </xsl:text> |
1288 </xsl:text> |
1267 <xsl:text> "click", |
1289 <xsl:text> "click", |
1268 </xsl:text> |
1290 </xsl:text> |
1269 <xsl:text> evt => alert('XXX TODO : Edit value')); |
1291 <xsl:text> evt => alert('XXX TODO : Edit value')); |
1270 </xsl:text> |
1292 </xsl:text> |
1271 </xsl:if> |
1293 </xsl:if> |
1272 <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]"> |
1294 <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]"> |
1273 <xsl:text> document.getElementById("</xsl:text> |
1295 <xsl:text> id("</xsl:text> |
1274 <xsl:value-of select="@id"/> |
1296 <xsl:value-of select="@id"/> |
1275 <xsl:text>").addEventListener( |
1297 <xsl:text>").addEventListener( |
1276 </xsl:text> |
1298 </xsl:text> |
1277 <xsl:text> "click", |
1299 <xsl:text> "click", |
1278 </xsl:text> |
1300 </xsl:text> |
1324 <xsl:variable name="regex" select="'^("[^"].*"|\-?[0-9]+)(#.*)?$'"/> |
1346 <xsl:variable name="regex" select="'^("[^"].*"|\-?[0-9]+)(#.*)?$'"/> |
1325 <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,$regex)]"> |
1347 <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,$regex)]"> |
1326 <xsl:variable name="literal" select="regexp:match(@inkscape:label,$regex)[2]"/> |
1348 <xsl:variable name="literal" select="regexp:match(@inkscape:label,$regex)[2]"/> |
1327 <xsl:text> { |
1349 <xsl:text> { |
1328 </xsl:text> |
1350 </xsl:text> |
1329 <xsl:text> elt:document.getElementById("</xsl:text> |
1351 <xsl:text> elt:id("</xsl:text> |
1330 <xsl:value-of select="@id"/> |
1352 <xsl:value-of select="@id"/> |
1331 <xsl:text>"), |
1353 <xsl:text>"), |
1332 </xsl:text> |
1354 </xsl:text> |
1333 <xsl:text> style:"</xsl:text> |
1355 <xsl:text> style:"</xsl:text> |
1334 <xsl:value-of select="@style"/> |
1356 <xsl:value-of select="@style"/> |