diff --git a/app/index.html b/app/index.html
index c46f71f..ae47f65 100644
--- a/app/index.html
+++ b/app/index.html
@@ -40,10 +40,6 @@
Port |
|
-
- Token |
- |
-
Username |
|
@@ -52,6 +48,23 @@
Password |
|
+
+ Tokens |
+
+
+ |
+
+
+ |
+
+
+
+ |
+
+
+ |
+ |
+
Channel |
|
diff --git a/app/index.js b/app/index.js
index 754e661..15737e9 100644
--- a/app/index.js
+++ b/app/index.js
@@ -52,7 +52,9 @@ function ConnectDialog () {
var self = this
self.address = ko.observable('')
self.port = ko.observable('')
- self.token = ko.observable('')
+ self.tokenToAdd = ko.observable('')
+ self.selectedTokens = ko.observableArray([])
+ self.tokens = ko.observableArray([])
self.username = ko.observable('')
self.password = ko.observable('')
self.channelName = ko.observable('')
@@ -62,7 +64,19 @@ function ConnectDialog () {
self.hide = self.visible.bind(self.visible, false)
self.connect = function () {
self.hide()
- ui.connect(self.username(), self.address(), self.port(), self.token(), self.password(), self.channelName())
+ ui.connect(self.username(), self.address(), self.port(), self.tokens(), self.password(), self.channelName())
+ }
+
+ self.addToken = function() {
+ if ((self.tokenToAdd() != "") && (self.tokens.indexOf(self.tokenToAdd()) < 0)) {
+ self.tokens.push(self.tokenToAdd())
+ }
+ self.tokenToAdd("")
+ }
+
+ self.removeSelectedTokens = function() {
+ this.tokens.removeAll(this.selectedTokens())
+ this.selectedTokens([])
}
}
@@ -332,7 +346,7 @@ class GlobalBindings {
return '[' + new Date().toLocaleTimeString('en-US') + ']'
}
- this.connect = (username, host, port, token, password, channelName = "") => {
+ this.connect = (username, host, port, tokens = [], password, channelName = "") => {
this.resetClient()
this.remoteHost(host)
@@ -347,7 +361,8 @@ class GlobalBindings {
// TODO: token
this.connector.connect(`wss://${host}:${port}`, {
username: username,
- password: password
+ password: password,
+ tokens: tokens
}).done(client => {
log('Connected!')
@@ -361,7 +376,10 @@ class GlobalBindings {
// Make sure we stay open if we're running as Matrix widget
window.matrixWidget.setAlwaysOnScreen(true)
- // Register all channels, recursively
+ // Register all channels, recursively
+ if(channelName.indexOf("/") != 0) {
+ channelName = "/"+channelName;
+ }
const registerChannel = (channel, channelPath) => {
this._newChannel(channel)
if(channelPath === channelName) {
@@ -895,7 +913,11 @@ window.onload = function () {
useJoinDialog = false
}
if (queryParams.token) {
- ui.connectDialog.token(queryParams.token)
+ var tokens = queryParams.token
+ if (!Array.isArray(tokens)) {
+ tokens = [tokens]
+ }
+ ui.connectDialog.tokens(tokens)
}
if (queryParams.username) {
ui.connectDialog.username(queryParams.username)
diff --git a/themes/MetroMumbleLight/main.scss b/themes/MetroMumbleLight/main.scss
index 0f5e0c1..411f944 100644
--- a/themes/MetroMumbleLight/main.scss
+++ b/themes/MetroMumbleLight/main.scss
@@ -444,7 +444,7 @@ form {
top: calc(50% - 10px);
left: calc(50% - 100px);
}
-.connect-dialog input[type=text] {
+.connect-dialog input[type=text], select {
font-size: 15px;
border: 1px $dialog-input-border-color solid;
border-radius: 3px;