|
677 | 677 | const maxResults = 12; |
678 | 678 | if (s) { |
679 | 679 | const regexps = s.split(/\s/).filter(s => !!s).map(s => new RegExp(escapeRegExp(s), 'i')); |
680 | | - const results = []; |
| 680 | + const sceneResults = []; |
681 | 681 | for (let i = 0; i < scenesJson.length; i++) { |
682 | 682 | const site = scenesJson[i]; |
683 | 683 | if (regexps.some(regexp => regexp.test(site.label) || regexp.test(site.url))) { |
684 | | - results.push(site); |
685 | | - if (results.length >= maxResults) { |
| 684 | + sceneResults.push(site); |
| 685 | + if (sceneResults.length >= maxResults) { |
686 | 686 | break; |
687 | 687 | } |
688 | 688 | } |
689 | 689 | } |
690 | | - return results; |
| 690 | + console.log("scenes.json --- sceneResults = " + sceneResults); |
| 691 | + return sceneResults; |
691 | 692 | } else { |
| 693 | + console.log("scenes.json --- maxResults = " + maxResults); |
692 | 694 | return scenesJson.slice(0, maxResults); |
693 | 695 | } |
694 | 696 | }; |
|
3301 | 3303 | } |
3302 | 3304 | }; |
3303 | 3305 |
|
3304 | | - console.log(" ------ selectedTab = " + selectedTab); |
3305 | 3306 | if (selectedTab === 1) { |
3306 | 3307 | var searchResults = searchSitesJson(searchString); |
3307 | 3308 | } else if (selectedTab === 2) { |
3308 | | - var searchResults = searchScenesJson(searchString); |
| 3309 | + var sceneResults = searchScenesJson(searchString); |
3309 | 3310 | } |
3310 | 3311 |
|
3311 | 3312 | uiIframe.contentWindow.postMessage({ |
|
3314 | 3315 | htmlString: interfaceHtml, |
3315 | 3316 | templateData: { |
3316 | 3317 | searchResults, |
| 3318 | + sceneResults, |
3317 | 3319 | tab1: selectedTab === 1, |
3318 | 3320 | tab2: selectedTab === 2, |
3319 | 3321 | tab3: selectedTab === 3, |
|
3659 | 3661 | mesh.click = async (intersectionSpec, controllerIndex) => { |
3660 | 3662 | keyboardFocus = null; |
3661 | 3663 |
|
3662 | | - const {id, href, name} = intersectionSpec; |
| 3664 | + const {id, href, name, url} = intersectionSpec; |
3663 | 3665 | if (id === 'url-input') { |
3664 | 3666 | const {x, y} = intersectionSpec; |
3665 | 3667 |
|
|
3721 | 3723 | _setChannel(2); |
3722 | 3724 | } else if (id === 'channel-global') { |
3723 | 3725 | _setChannel(3); |
| 3726 | + } else if (id === 'action-open-scene') { |
| 3727 | + const dom = new DOMParser().parseFromString(url, 'text/html'); |
| 3728 | + if (dom.body.childNodes.length === 1 && dom.body.childNodes[0].nodeName === 'XR-SITE') { |
| 3729 | + root.innerHTML = dom.body.childNodes[0].innerHTML; |
| 3730 | + } else { |
| 3731 | + console.log('paste fail'); |
| 3732 | + } |
3724 | 3733 | } else if (href) { |
3725 | 3734 | const xrIframe = document.createElement('xr-iframe'); |
3726 | 3735 | xrIframe.src = href; |
|
0 commit comments