diff options
| -rw-r--r-- | index.html | 20 | ||||
| -rw-r--r-- | jitsi_url_generator.js | 19 |
2 files changed, 34 insertions, 5 deletions
@@ -10,10 +10,13 @@ <script src="jquery-3.6.0.min.js"></script> <script src="bootstrap.bundle.min.js"></script> <script src="spectrum.min.js"></script> + <script src="get_query_string_vars.js"></script> <script src="roomname_generator.js"></script> <script src="jitsi_url_generator.js"></script> <script> + const QUERY_STRING = getQueryStringVars(); const DEFAULT_DOMAIN = "conf.toni.immo"; + const DEFAULT_PEER_NAME = QUERY_STRING["peer"] || ""; const DEFAULT_BACKGROUND = "#0b72b5"; const DEFAULT_ROOM_NAME = simpleRoomName(); @@ -21,7 +24,7 @@ const generator = makeUrlGenerator(function (url) { $('#url').attr('href', url).text(url); - }, DEFAULT_DOMAIN, DEFAULT_ROOM_NAME); + }, DEFAULT_DOMAIN, DEFAULT_PEER_NAME, DEFAULT_ROOM_NAME); // Handle changes to Jitsi Hostname $('#jitsiDomain') @@ -30,6 +33,15 @@ generator.updateDomain(this.value); }); + // Handle changes to peer name + $('#peerName') + .val(DEFAULT_PEER_NAME) + .on("input", function () { + let value = this.value.replace(/[^0-9a-z_.\-]/gi, ''); // sanitize + this.value = value; + generator.updatePeerName(value); + }); + // Handle changes to room name $('#roomName') .val(DEFAULT_ROOM_NAME) @@ -265,6 +277,12 @@ </div> </div> <div class="mb-3 row"> + <label for="peerName" class="col-sm-4 col-form-label">Peer Name (optional)</label> + <div class="col-sm-8"> + <input type="text" class="form-control" id="peerName"> + </div> + </div> + <div class="mb-3 row"> <label for="roomName" class="col-sm-4 col-form-label">Room Name</label> <div class="col-sm-8"> diff --git a/jitsi_url_generator.js b/jitsi_url_generator.js index 9f7af08..535187f 100644 --- a/jitsi_url_generator.js +++ b/jitsi_url_generator.js @@ -1,6 +1,7 @@ -function JitsiUrlGenerator(callback, domain, roomName, paramGroups) { +function JitsiUrlGenerator(callback, domain, peerName, roomName, paramGroups) { this.callback = callback; this.domain = domain || ""; + this.peerName = peerName || ""; this.roomName = roomName || ""; this.paramGroups = paramGroups || {}; } @@ -17,7 +18,11 @@ JitsiUrlGenerator.prototype.trigger = function () { params = params.concat(flattenParamGroup(group)); } - let url = "https://" + this.domain + "/" + this.roomName; + let url = "https://" + this.domain; + if (this.peerName.length > 0) { + url += "/" + this.peerName; + } + url += "/" + this.roomName; if (params.length > 0) { url += '#' + params.join("&"); } @@ -32,6 +37,12 @@ JitsiUrlGenerator.prototype.updateRoomName = function (roomName) { return this; }; +JitsiUrlGenerator.prototype.updatePeerName = function (peerName) { + this.peerName = peerName; + this.trigger(); + return this; +}; + JitsiUrlGenerator.prototype.updateDomain = function (domain) { this.domain = domain; this.trigger(); @@ -44,8 +55,8 @@ JitsiUrlGenerator.prototype.updateParamGroup = function (group, params) { return this; }; -function makeUrlGenerator(callback, domain, roomName, paramGroup) { - let urlGen = new JitsiUrlGenerator(callback, domain, roomName, paramGroup); +function makeUrlGenerator(callback, domain, roomName, peerName, paramGroup) { + let urlGen = new JitsiUrlGenerator(callback, domain, roomName, peerName, paramGroup); urlGen.trigger(); return urlGen; } |
