(function(){ var APP_NAME = "KICK"; var APP_URL = Script.resolvePath("app.html?" + Date.now()); var APP_ICON; var prevID = 0; var listName = "contextOverlayHighlightList"; var listType = "entity"; var entityIDToExport = ""; var tablet = Tablet.getTablet('com.highfidelity.interface.tablet.system'); function handleMousePress(entityID) { if(!Entities.getEntityProperties(entityID, 'clientOnly').clientOnly){ return; } print("Clicked: " + entityID); if (prevID !== entityID) { Selection.addToSelectedItemsList(listName, listType, entityID); prevID = entityID; } tablet.emitScriptEvent({ entityID: entityID, owner: Entities.getEntityProperties(entityID, 'lastEditedBy').lastEditedBy }); } function handleMouseLeave(entityID) { if (prevID !== 0) { Selection.removeFromSelectedItemsList("contextOverlayHighlightList", listType, prevID); prevID = 0; } } var button = tablet.addButton({ text: APP_NAME }); function maybeExited() { print("Exited app page"); Entities.clickReleaseOnEntity.disconnect(handleMousePress); Entities.hoverLeaveEntity.disconnect(handleMouseLeave); tablet.screenChanged.disconnect(maybeExited); } function clicked(){ tablet.gotoWebScreen(APP_URL); Entities.clickReleaseOnEntity.connect(handleMousePress); Entities.hoverLeaveEntity.connect(handleMouseLeave); Script.setTimeout(function(){ tablet.screenChanged.connect(maybeExited); }, 2000); } button.clicked.connect(clicked); function onWebEventReceived(event){ if (typeof(event) === "string") { event = JSON.parse(event); } if (event.type === "submit") { var session = event.sessionID; if (Users.canKick){ Users.kick(session); } } } tablet.webEventReceived.connect(onWebEventReceived); function cleanup(){ tablet.removeButton(button); } Script.scriptEnding.connect(cleanup); }());