summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormartin f. krafft <madduck@madduck.net>2023-09-27 21:35:37 +0200
committermartin f. krafft <madduck@madduck.net>2023-09-27 21:35:37 +0200
commit138a4259c84cd0c78d4575f5df5a54ffcd866a60 (patch)
tree7f2d167ed1e7247df69d2e1a1ddbc62a67565514
parentd2736d815c79f803c56c1d736458f0655fa62c11 (diff)
Add peer name
-rw-r--r--index.html20
-rw-r--r--jitsi_url_generator.js19
2 files changed, 34 insertions, 5 deletions
diff --git a/index.html b/index.html
index 7febae9..ac58d05 100644
--- a/index.html
+++ b/index.html
@@ -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;
}