config: drop configLocation and getroomnode options

They never worked on mobile and pose an impediment for makinf config.js more
future proof. Specially if we want to move to a non-executable form of
configuration.
This commit is contained in:
Saúl Ibarra Corretgé 2019-10-09 14:35:09 +02:00 committed by Saúl Ibarra Corretgé
parent 1010f53a84
commit 1feff9709c
4 changed files with 4 additions and 117 deletions

View File

@ -1,16 +1,6 @@
/* eslint-disable no-unused-vars, no-var */ /* eslint-disable no-unused-vars, no-var */
var config = { var config = {
// Configuration
//
// Alternative location for the configuration.
// configLocation: './config.json',
// Custom function which given the URL path should return a room name.
// getroomnode: function (path) { return 'someprefixpossiblybasedonpath'; },
// Connection // Connection
// //

View File

@ -8,8 +8,6 @@ import INTERFACE_CONFIG_WHITELIST from './interfaceConfigWhitelist';
import parseURLParams from './parseURLParams'; import parseURLParams from './parseURLParams';
import logger from './logger'; import logger from './logger';
declare var $: Object;
// XXX The functions getRoomName and parseURLParams are split out of // XXX The functions getRoomName and parseURLParams are split out of
// functions.js because they are bundled in both app.bundle and // functions.js because they are bundled in both app.bundle and
// do_external_connect, webpack 1 does not support tree shaking, and we don't // do_external_connect, webpack 1 does not support tree shaking, and we don't
@ -40,69 +38,6 @@ export function createFakeConfig(baseURL: string) {
}; };
} }
/**
* Promise wrapper on obtain config method. When HttpConfigFetch will be moved
* to React app it's better to use load config instead.
*
* @param {string} location - URL of the domain from which the config is to be
* obtained.
* @param {string} room - Room name.
* @private
* @returns {Promise<void>}
*/
export function obtainConfig(location: string, room: string): Promise<void> {
return new Promise((resolve, reject) =>
_obtainConfig(location, room, (success, error) => {
success ? resolve() : reject(error);
})
);
}
/**
* Sends HTTP POST request to specified {@code endpoint}. In request the name
* of the room is included in JSON format:
* {
* "rooomName": "someroom12345"
* }.
*
* @param {string} endpoint - The name of HTTP endpoint to which to send
* the HTTP POST request.
* @param {string} roomName - The name of the conference room for which config
* is requested.
* @param {Function} complete - The callback to invoke upon success or failure.
* @returns {void}
*/
function _obtainConfig(endpoint: string, roomName: string, complete: Function) {
logger.info(`Send config request to ${endpoint} for room: ${roomName}`);
$.ajax(
endpoint,
{
contentType: 'application/json',
data: JSON.stringify({ roomName }),
dataType: 'json',
method: 'POST',
error(jqXHR, textStatus, errorThrown) {
logger.error('Get config error: ', jqXHR, errorThrown);
complete(false, `Get config response status: ${textStatus}`);
},
success(data) {
const { config, interfaceConfig, loggingConfig } = window;
try {
overrideConfigJSON(
config, interfaceConfig, loggingConfig,
data);
complete(true);
} catch (e) {
logger.error('Parse config error: ', e);
complete(false, e);
}
}
}
);
}
/* eslint-disable max-params, no-shadow */ /* eslint-disable max-params, no-shadow */
/** /**

View File

@ -1,29 +1,17 @@
/* @flow */ // @flow
import { getBackendSafeRoomName } from '../util'; import { getBackendSafeRoomName } from '../util';
declare var config: Object;
/** /**
* Builds and returns the room name. * Builds and returns the room name.
* *
* @returns {string} * @returns {string}
*/ */
export default function getRoomName(): ?string { export default function getRoomName(): ?string {
const { getroomnode } = config;
const path = window.location.pathname; const path = window.location.pathname;
let roomName;
// Determine the room node from the URL. // The last non-directory component of the path (name) is the room.
if (getroomnode && typeof getroomnode === 'function') { const roomName = path.substring(path.lastIndexOf('/') + 1) || undefined;
roomName = getroomnode.call(config, path);
} else {
// Fall back to the default strategy of making assumptions about how the
// URL maps to the room (name). It currently assumes a deployment in
// which the last non-directory component of the path (name) is the
// room.
roomName = path.substring(path.lastIndexOf('/') + 1) || undefined;
}
return getBackendSafeRoomName(roomName); return getBackendSafeRoomName(roomName);
} }

View File

@ -5,7 +5,6 @@ import React from 'react';
import VideoLayout from '../../../../../modules/UI/videolayout/VideoLayout'; import VideoLayout from '../../../../../modules/UI/videolayout/VideoLayout';
import { obtainConfig } from '../../../base/config';
import { connect, disconnect } from '../../../base/connection'; import { connect, disconnect } from '../../../base/connection';
import { translate } from '../../../base/i18n'; import { translate } from '../../../base/i18n';
import { connect as reactReduxConnect } from '../../../base/redux'; import { connect as reactReduxConnect } from '../../../base/redux';
@ -23,7 +22,6 @@ import {
} from '../../../toolbox'; } from '../../../toolbox';
import { maybeShowSuboptimalExperienceNotification } from '../../functions'; import { maybeShowSuboptimalExperienceNotification } from '../../functions';
import logger from '../../logger';
import Labels from './Labels'; import Labels from './Labels';
import { default as Notice } from './Notice'; import { default as Notice } from './Notice';
@ -123,31 +121,7 @@ class Conference extends AbstractConference<Props, *> {
*/ */
componentDidMount() { componentDidMount() {
document.title = interfaceConfig.APP_NAME; document.title = interfaceConfig.APP_NAME;
this._start();
const { configLocation } = config;
if (configLocation) {
obtainConfig(configLocation, this.props._room)
.then(() => {
const now = window.performance.now();
APP.connectionTimes['configuration.fetched'] = now;
logger.log('(TIME) configuration fetched:\t', now);
this._start();
})
.catch(err => {
logger.log(err);
// Show obtain config error.
APP.UI.messageHandler.showError({
descriptionKey: 'dialog.connectError',
titleKey: 'connection.CONNFAIL'
});
});
} else {
this._start();
}
} }
/** /**