60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
/* global $, $iq, config, interfaceConfig, getConfigParamsFromUrl */
|
|
var configUtils = require('./Util');
|
|
var params = {};
|
|
|
|
params = getConfigParamsFromUrl();
|
|
|
|
var URLProcessor = {
|
|
setConfigParametersFromUrl: function () {
|
|
// Convert 'params' to JSON object
|
|
// We have:
|
|
// {
|
|
// "config.disableAudioLevels": false,
|
|
// "config.channelLastN": -1,
|
|
// "interfaceConfig.APP_NAME": "Jitsi Meet"
|
|
// }
|
|
// We want to have:
|
|
// {
|
|
// "config": {
|
|
// "disableAudioLevels": false,
|
|
// "channelLastN": -1
|
|
// },
|
|
// interfaceConfig: {
|
|
// APP_NAME: "Jitsi Meet"
|
|
// }
|
|
// }
|
|
var configJSON = {
|
|
config: {},
|
|
interfaceConfig: {}
|
|
};
|
|
for (var key in params) {
|
|
if (typeof key !== "string") {
|
|
console.warn("Invalid config key: ", key);
|
|
continue;
|
|
}
|
|
var confObj = null, confKey;
|
|
if (key.indexOf("config.") === 0) {
|
|
confObj = configJSON.config;
|
|
confKey = key.substr("config.".length);
|
|
|
|
// prevent passing some parameters which can inject scripts
|
|
if (confKey === 'analyticsScriptUrl'
|
|
|| confKey === 'callStatsCustomScriptUrl')
|
|
continue;
|
|
|
|
} else if (key.indexOf("interfaceConfig.") === 0) {
|
|
confObj = configJSON.interfaceConfig;
|
|
confKey = key.substr("interfaceConfig.".length);
|
|
}
|
|
|
|
if (!confObj)
|
|
continue;
|
|
|
|
confObj[confKey] = params[key];
|
|
}
|
|
configUtils.overrideConfigJSON(config, interfaceConfig, configJSON);
|
|
}
|
|
};
|
|
|
|
module.exports = URLProcessor;
|