91 lines
3 KiB
JavaScript
91 lines
3 KiB
JavaScript
"use strict";
|
|
|
|
//
|
|
// teamControl.js
|
|
//
|
|
// Created by David Back on 3/8/18.
|
|
// Copyright 2018 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
/* globals Script, Tablet */
|
|
/* eslint indent: ["error", 4, { "outerIIFEBody": 0 }] */
|
|
|
|
(function() { // BEGIN LOCAL_SCOPE
|
|
|
|
var TEAM_CONTROL_APP_BASE = "TeamControlApp.html";
|
|
var TEAM_CONTROL_APP_URL = Script.resolvePath(TEAM_CONTROL_APP_BASE);
|
|
var TEAM_CONTROL_LABEL = "TEAMS";
|
|
var TEAM_CONTROL_APP_SORT_ORDER = 12;
|
|
var TEAM_CONTROL_CHANNEL = "TEAM_CONTROL_CHANNEL";
|
|
|
|
var GREEN_TEAM_MARKETPLACE_ID = "1170a3f7-bb36-4aeb-a5a1-0c0c4a5ed0ed";
|
|
var BLUE_TEAM_MARKETPLACE_ID = "c1d3a80a-3ae3-4eab-8549-57401d82b247";
|
|
var RED_TEAM_MARKETPLACE_ID = "7241253f-1957-47a0-9856-2b16bd252075";
|
|
var YELLOW_TEAM_MARKETPLACE_ID = "ffffffff-ffff-ffff-ffff-ffffffffffff";
|
|
var NO_TEAM_MARKETPLACE_ID = "ffffffff-ffff-ffff-ffff-ffffffffffff";
|
|
|
|
var onTeamControlScreen = false;
|
|
var button;
|
|
var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
|
|
|
|
button = tablet.addButton({
|
|
text: TEAM_CONTROL_LABEL,
|
|
sortOrder: TEAM_CONTROL_APP_SORT_ORDER
|
|
});
|
|
|
|
function onClicked() {
|
|
if (onTeamControlScreen) {
|
|
tablet.gotoHomeScreen();
|
|
} else {
|
|
onTeamControlScreen = true;
|
|
tablet.gotoWebScreen(TEAM_CONTROL_APP_URL);
|
|
}
|
|
}
|
|
|
|
function onScreenChanged(type, url) {
|
|
onTeamControlScreen = type === "Web" && (url.indexOf(TEAM_CONTROL_APP_BASE) === url.length - TEAM_CONTROL_APP_BASE.length);
|
|
button.editProperties({ isActive: onTeamControlScreen });
|
|
}
|
|
|
|
// Handle the events we're receiving from the web UI
|
|
function onWebEventReceived(event) {
|
|
// Converts the event to a JavasScript Object
|
|
if (typeof event === "string") {
|
|
event = JSON.parse(event);
|
|
}
|
|
if (event.type === "teamClick") {
|
|
var teamName = event.data;
|
|
var marketplaceID = undefined;
|
|
if (teamName === "Green Team") {
|
|
marketplaceID = GREEN_TEAM_MARKETPLACE_ID;
|
|
} else if (teamName === "Blue Team") {
|
|
marketplaceID = BLUE_TEAM_MARKETPLACE_ID;
|
|
} else if (teamName === "Red Team") {
|
|
marketplaceID = RED_TEAM_MARKETPLACE_ID;
|
|
} else if (teamName === "Yellow Team") {
|
|
marketplaceID = YELLOW_TEAM_MARKETPLACE_ID;
|
|
} else if (teamName === "No Team") {
|
|
marketplaceID = NO_TEAM_MARKETPLACE_ID;
|
|
}
|
|
Messages.sendMessage(TEAM_CONTROL_CHANNEL, JSON.stringify({marketplaceID: marketplaceID}));
|
|
}
|
|
}
|
|
|
|
button.clicked.connect(onClicked);
|
|
tablet.screenChanged.connect(onScreenChanged);
|
|
tablet.webEventReceived.connect(onWebEventReceived);
|
|
|
|
Script.scriptEnding.connect(function () {
|
|
if (onTeamControlScreen) {
|
|
tablet.gotoHomeScreen();
|
|
}
|
|
button.clicked.disconnect(onClicked);
|
|
tablet.screenChanged.disconnect(onScreenChanged);
|
|
if (tablet) {
|
|
tablet.removeButton(button);
|
|
}
|
|
});
|
|
|
|
}()); // END LOCAL_SCOPE
|