81 lines
2.8 KiB
JavaScript
81 lines
2.8 KiB
JavaScript
const logger = require("jitsi-meet-logger").getLogger(__filename);
|
|
|
|
import { reload, replace } from '../util/helpers';
|
|
|
|
/**
|
|
* The modules stores information about the URL used to start the conference and
|
|
* provides utility methods for dealing with conference URL and reloads.
|
|
*/
|
|
export default class ConferenceUrl {
|
|
/**
|
|
* Initializes the module.
|
|
*
|
|
* @param location an object which stores provides the info about conference
|
|
* URL(would be 'window.location' for the Web app). The params below are
|
|
* described based on the following example URL:
|
|
*
|
|
* https://example.com:8888/SomeConference1245?opt=1#somehash
|
|
*
|
|
* @param location.href full URL with all parameters, would be the whole URL
|
|
* from the example string above.
|
|
*
|
|
* @param location.host the host part of the URL, 'example.com' from
|
|
* the sample URL above.
|
|
*
|
|
* @param location.pathname the path part of the URL, would be
|
|
* '/SomeConference1245' from the example above.
|
|
*
|
|
* @param location.protocol the protocol part of the URL, would be 'https:'
|
|
* from the sample URL.
|
|
*/
|
|
constructor(location) {
|
|
/**
|
|
* Stores the original conference room URL with all parameters.
|
|
* Example:
|
|
* https://example.com:8888/SomeConference1245?jwt=a5sbc2#blablahash
|
|
* @type {string}
|
|
*/
|
|
this.originalURL = location.href;
|
|
/**
|
|
* A simplified version of the conference URL stripped out of
|
|
* the parameters which should be used for sending invites.
|
|
* Example:
|
|
* https://example.com:8888/SomeConference1245
|
|
* @type {string}
|
|
*/
|
|
this.inviteURL
|
|
= location.protocol + "//" + location.host + location.pathname;
|
|
logger.info("Stored original conference URL: " + this.originalURL);
|
|
logger.info("Conference URL for invites: " + this.inviteURL);
|
|
}
|
|
/**
|
|
* Obtains the conference invite URL.
|
|
* @return {string} the URL pointing o the conference which is mean to be
|
|
* used to invite new participants.
|
|
*/
|
|
getInviteUrl() {
|
|
return this.inviteURL;
|
|
}
|
|
/**
|
|
* Obtains full conference URL with all original parameters.
|
|
* @return {string} the original URL used to open the current conference.
|
|
*/
|
|
getOriginalUrl() {
|
|
return this.originalURL;
|
|
}
|
|
/**
|
|
* Reloads the conference using original URL with all of the parameters.
|
|
*/
|
|
reload() {
|
|
logger.info(`Reloading the conference using URL: ${this.originalURL}`);
|
|
|
|
// Check if we are in an iframe and reload with the reload() utility
|
|
// because replace() is not working on an iframe.
|
|
if(window.self !== window.top) {
|
|
reload();
|
|
} else {
|
|
replace(this.originalURL);
|
|
}
|
|
}
|
|
}
|