From 667eef02cea8d5072f51d3a0df084831c741062a Mon Sep 17 00:00:00 2001 From: Keb Helion <60008426+KebHelion@users.noreply.github.com> Date: Thu, 13 Feb 2020 23:59:31 -0500 Subject: [PATCH] Add files via upload --- more/app-more.js | 35 ++++++++++++---------- more/more.html | 78 +++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 87 insertions(+), 26 deletions(-) diff --git a/more/app-more.js b/more/app-more.js index 24239c7..a3bb7b5 100644 --- a/more/app-more.js +++ b/more/app-more.js @@ -17,7 +17,7 @@ var APP_ICON_INACTIVE = ROOT + "appicon_i.png"; var APP_ICON_ACTIVE = ROOT + "appicon_a.png"; var Appstatus = false; - var currentlyRunningScripts; + var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); var button = tablet.addButton({ @@ -35,8 +35,7 @@ tablet.screenChanged.disconnect(onMoreAppScreenChanged); }else{ //print("turn on"); - currentlyRunningScripts = ScriptDiscoveryService.getRunning(); - //print(JSON.stringify(currentlyRunningScripts)); + tablet.gotoWebScreen(APP_URL + "?version=" + Math.floor(Math.random()*50000)); @@ -44,7 +43,7 @@ tablet.screenChanged.connect(onMoreAppScreenChanged); Script.setTimeout(function() { - tablet.emitScriptEvent(currentlyRunningScripts); + sendRunningScriptList(); }, 2000); @@ -61,27 +60,33 @@ } button.clicked.connect(clicked); + + function sendRunningScriptList(){ + var currentlyRunningScripts = ScriptDiscoveryService.getRunning(); + tablet.emitScriptEvent(currentlyRunningScripts); + } + function onMoreAppWebEventReceived(eventz){ - + if(typeof eventz === "string"){ eventzget = JSON.parse(eventz); - if(eventzget.type === "MORE_INSTALL"){ - /* - var myVec = { - x: parseFloat(eventzget.x), - y: parseFloat(eventzget.y), - z: parseFloat(eventzget.z) - }; - */ + if(eventzget.action === "installScript"){ + ScriptDiscoveryService.loadOneScript(eventzget.script); + sendRunningScriptList(); } - if(eventzget.type === "MORE_UNINSTALL"){ - + if(eventzget.action === "uninstallScript"){ + ScriptDiscoveryService.stopScript(eventzget.script, false); + sendRunningScriptList(); } + if(eventzget.action === "requestRunningScriptData"){ + sendRunningScriptList(); + } + } } diff --git a/more/more.html b/more/more.html index f5b0d04..ca9c12d 100644 --- a/more/more.html +++ b/more/more.html @@ -46,15 +46,72 @@ var rootPath = currentPath.replace("more/more.html", "applications/"); //Running scripts - var currentlyRunningScripts; + + var buttonList = []; + + function requestRunningScriptData() { + var readyEvent = { + "action": "requestRunningScriptData" + }; + EventBridge.emitWebEvent(JSON.stringify(readyEvent)); + } + + var currentlyRunningScripts = {}; EventBridge.scriptEventReceived.connect(function(message){ currentlyRunningScripts = message; + //update the buttons + buttonList.forEach(function(item){ + var btn = ""; + if(CheckRunning(item.url) != false){ + //Means already running + btn = ""; + }else{ + //Means not already installed + btn = ""; + } + + document.getElementById(item.id).innerHTML = btn; + + }); + }); - function CheckRunning(scriptName){ + function install(script, btnId){ + //Action + var readyEvent = { + "action": "installScript", + "script": script + }; - return false; + EventBridge.emitWebEvent(JSON.stringify(readyEvent)); + + //then change btn appearence + //var btn = ""; + //document.getElementById(btnId).innerHTML = btn; + + } + + function uninstall(script, btnId){ + //Action + var readyEvent = { + "action": "uninstallScript", + "script": script + }; + + EventBridge.emitWebEvent(JSON.stringify(readyEvent)); + //then change btn appearence + //var btn = ""; + //document.getElementById(btnId).innerHTML = btn; + + } + + function CheckRunning(scriptUrl){ + if(currentlyRunningScripts.some(currentlyRunningScripts => currentlyRunningScripts.path === scriptUrl)){ + return true; + } else{ + return false; + } } @@ -231,19 +288,18 @@ document.searchbar.searchtextbox.value = search; + + + function DisplayApp(item) { pageContent = pageContent + ""; pageContent = pageContent + ""; var btn = ""; var absoluteJsFile = rootPath + item.jsfile; - if(CheckRunning(absoluteJsFile) != false){ - //Means already running - btn = ""; - }else{ - //Means not already installed - btn = ""; - } + var btn = ""; + var btndata = {"url": absoluteJsFile,"id": window.btoa(item.name)}; + buttonList.push(btndata); pageContent = pageContent + ""; pageContent = pageContent + "

" + item.caption + "
" + item.name + "
" + item.description + "
" + btn + "


"; @@ -305,7 +361,7 @@ document.getElementById("pager_top").innerHTML = pagerHtml; document.getElementById("data").innerHTML = pageContent; document.getElementById("pager_footer").innerHTML = pagerHtml; - + requestRunningScriptData();