134 lines
No EOL
3.9 KiB
JavaScript
134 lines
No EOL
3.9 KiB
JavaScript
|
|
(function () {
|
|
|
|
/* in userData root object
|
|
|
|
feedback: {
|
|
eventName: "LoadTest_11_17_2018",
|
|
url: <optional>
|
|
},
|
|
signup: {
|
|
linkURL: "eventbrite.com",
|
|
url: <optional>
|
|
},
|
|
apps: []
|
|
|
|
*/
|
|
|
|
var FEEDBACK_CURRENT_EVENTNAME = "io.highfidelity.feedbackApp.currentEventName";
|
|
|
|
var SIGNUP_APP_SETTING = 'io.highfidelity.signup.app.url';
|
|
|
|
var appList = [];
|
|
var userData;
|
|
|
|
var feedback = {
|
|
/*
|
|
feedback: {
|
|
eventName: "LoadTest_11_17_2018"
|
|
}
|
|
*/
|
|
isSetup: false,
|
|
defaultURL: "http://hifi-content.s3-us-west-1.amazonaws.com/Experiences/LoadTest/AppLoader/Apps/Feedback/feedback_loader.js",
|
|
url: "",
|
|
setup: function () {
|
|
this.isSetup = true;
|
|
|
|
Settings.setValue(FEEDBACK_CURRENT_EVENTNAME, userData.feedback.eventName);
|
|
|
|
this.url = userData.feedback.url ? userData.feedback.url : this.defaultURL;
|
|
var url = this.url;
|
|
Script.setTimeout(function () {
|
|
ScriptDiscoveryService.loadScript(url);
|
|
}, 500);
|
|
},
|
|
unload: function () {
|
|
this.isSetup = false;
|
|
ScriptDiscoveryService.stopScript(this.url);
|
|
}
|
|
}
|
|
|
|
var signup = {
|
|
/*
|
|
signup: {
|
|
linkURL: "eventbrite.com"
|
|
}
|
|
*/
|
|
isSetup: false,
|
|
defaultURL: "http://hifi-content.s3-us-west-1.amazonaws.com/Experiences/LoadTest/AppLoader/Apps/Signup/SignupApp_loader.js",
|
|
url: "",
|
|
setup: function () {
|
|
this.isSetup = true;
|
|
|
|
if (userData.signup.linkURL) {
|
|
Settings.setValue(SIGNUP_APP_SETTING, userData.signup.linkURL);
|
|
}
|
|
|
|
this.url = userData.signup.url ? userData.signup.url : this.defaultURL;
|
|
var url = this.url;
|
|
Script.setTimeout(function () {
|
|
ScriptDiscoveryService.loadScript(url);
|
|
|
|
}, 500);
|
|
|
|
},
|
|
unload: function () {
|
|
this.isSetup = false;
|
|
ScriptDiscoveryService.stopScript(this.url);
|
|
}
|
|
}
|
|
|
|
var AppsToLoad = function () {}
|
|
|
|
AppsToLoad.prototype = {
|
|
preload: function (id) {
|
|
var properties = Entities.getEntityProperties(id, ["userData"]);
|
|
|
|
try {
|
|
userData = JSON.parse(properties.userData);
|
|
} catch (e) {
|
|
console.error("Error parsing userData: ", e);
|
|
}
|
|
|
|
if (userData) {
|
|
if (userData.feedback) {
|
|
feedback.setup();
|
|
}
|
|
if (userData.signup) {
|
|
signup.setup();
|
|
}
|
|
if (userData.apps) {
|
|
|
|
if (Array.isArray(userData.apps)) {
|
|
appList = userData.apps;
|
|
var scriptList = ScriptDiscoveryService.getRunning();
|
|
|
|
appList.forEach(function (url) {
|
|
if (scriptList.indexOf(url) === -1) {
|
|
ScriptDiscoveryService.loadScript(url);
|
|
}
|
|
});
|
|
} else {
|
|
console.error("AppsToLoad: userData.apps is not an array!");
|
|
}
|
|
}
|
|
}
|
|
|
|
},
|
|
unload: function () {
|
|
if (feedback.isSetup) {
|
|
feedback.unload();
|
|
}
|
|
if (signup.isSetup) {
|
|
signup.unload();
|
|
}
|
|
if (appList.length) {
|
|
appList.forEach(function (url) {
|
|
ScriptDiscoveryService.stopScript(url);
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|
|
return new AppsToLoad ();
|
|
}) |