| ... | @@ -20,6 +20,7 @@ | ... | @@ -20,6 +20,7 @@ |
| 20 | var domTdTarget = document.getElementById("tdTarget"); | 20 | var domTdTarget = document.getElementById("tdTarget"); |
| 21 | var domTdZigVer = document.getElementById("tdZigVer"); | 21 | var domTdZigVer = document.getElementById("tdZigVer"); |
| 22 | var domHdrName = document.getElementById("hdrName"); | 22 | var domHdrName = document.getElementById("hdrName"); |
| | 23 | var domHelpModal = document.getElementById("helpDialog"); |
| 23 | | 24 | |
| 24 | var searchTimer = null; | 25 | var searchTimer = null; |
| 25 | var escapeHtmlReplacements = { "&": "&amp;", '"': "&quot;", "<": "&lt;", ">": "&gt;" }; | 26 | var escapeHtmlReplacements = { "&": "&amp;", '"': "&quot;", "<": "&lt;", ">": "&gt;" }; |
| ... | @@ -362,13 +363,13 @@ | ... | @@ -362,13 +363,13 @@ |
| 362 | curNavSearch = ""; | 363 | curNavSearch = ""; |
| 363 | | 364 | |
| 364 | if (location.hash[0] === '#' && location.hash.length > 1) { | 365 | if (location.hash[0] === '#' && location.hash.length > 1) { |
| 365 | var nonSearchAndSearchParts = location.hash.substring(1).split("?"); | 366 | var query = location.hash.substring(1); |
| 366 | var nonSearchPart; | 367 | var qpos = query.indexOf("?"); |
| 367 | if (nonSearchAndSearchParts.length === 1) { | 368 | if (qpos === -1) { |
| 368 | nonSearchPart = nonSearchAndSearchParts[0]; | 369 | nonSearchPart = query; |
| 369 | } else { | 370 | } else { |
| 370 | nonSearchPart = nonSearchAndSearchParts[0]; | 371 | nonSearchPart = query.substring(0, qpos); |
| 371 | curNavSearch = decodeURIComponent(nonSearchAndSearchParts[1]); | 372 | curNavSearch = decodeURIComponent(query.substring(qpos + 1)); |
| 372 | } | 373 | } |
| 373 | | 374 | |
| 374 | var parts = nonSearchPart.split(";"); | 375 | var parts = nonSearchPart.split(";"); |
| ... | @@ -449,15 +450,34 @@ | ... | @@ -449,15 +450,34 @@ |
| 449 | | 450 | |
| 450 | function onWindowKeyDown(ev) { | 451 | function onWindowKeyDown(ev) { |
| 451 | switch (ev.which) { | 452 | switch (ev.which) { |
| | 453 | case 27: |
| | 454 | if (!domHelpModal.classList.contains("hidden")) { |
| | 455 | domHelpModal.classList.add("hidden"); |
| | 456 | ev.preventDefault(); |
| | 457 | ev.stopPropagation(); |
| | 458 | } |
| | 459 | break; |
| 452 | case 83: | 460 | case 83: |
| 453 | domSearch.focus(); | 461 | domSearch.focus(); |
| 454 | ev.preventDefault(); | 462 | ev.preventDefault(); |
| 455 | ev.stopPropagation(); | 463 | ev.stopPropagation(); |
| 456 | startAsyncSearch(); | 464 | startAsyncSearch(); |
| 457 | break; | 465 | break; |
| | 466 | case 191: |
| | 467 | ev.preventDefault(); |
| | 468 | ev.stopPropagation(); |
| | 469 | showHelpModal(); |
| | 470 | break; |
| 458 | } | 471 | } |
| 459 | } | 472 | } |
| 460 | | 473 | |
| | 474 | function showHelpModal() { |
| | 475 | domHelpModal.classList.remove("hidden"); |
| | 476 | domHelpModal.style.left = (window.innerWidth / 2 - domHelpModal.clientWidth / 2) + "px"; |
| | 477 | domHelpModal.style.top = (window.innerHeight / 2 - domHelpModal.clientHeight / 2) + "px"; |
| | 478 | domHelpModal.focus(); |
| | 479 | } |
| | 480 | |
| 461 | function clearAsyncSearch() { | 481 | function clearAsyncSearch() { |
| 462 | if (searchTimer != null) clearTimeout(searchTimer); | 482 | if (searchTimer != null) clearTimeout(searchTimer); |
| 463 | } | 483 | } |