Skip to content

Commit 6ccf68e

Browse files
committed
Add setting for custom Jitsi instance
Signed-off-by: Gary Kim <gary@garykim.dev>
1 parent 823260f commit 6ccf68e

File tree

3 files changed

+28
-4
lines changed

3 files changed

+28
-4
lines changed

lib/AppInfo/Application.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class Application extends App {
3535
'server_name' => 'Matrix Homeserver',
3636
'disable_custom_urls' => 'false',
3737
'disable_login_language_selector' => 'false',
38+
'jitsi_preferred_domain' => '',
3839
];
3940

4041
public function __construct(array $urlParams = []) {

lib/Controller/ConfigController.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,13 @@ public function config() {
8585
'authHeaderLogoUrl' => $this->defaults->getLogo(),
8686
],
8787
];
88+
$jitsi_domain = $this->config->getAppValue(Application::APP_ID, 'jitsi_preferred_domain', Application::AvailableSettings['jitsi_preferred_domain']);
89+
if ($jitsi_domain !== "") {
90+
$config['jitsi'] = [
91+
'preferredDomain' => $jitsi_domain,
92+
];
93+
}
94+
8895
return new JSONResponse($config);
8996
}
9097
}

src/components/AdminSettings.vue

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@
2323
<template>
2424
<div>
2525
<SettingsSection
26-
:title="t('riotchat', 'Riot.im configuration')"
26+
:title="t('riotchat', 'Riot.im common configuration')"
2727
:description="t('riotchat', 'Configure Riot chat here')"
2828
>
2929
<label
3030
ref="base_url"
3131
for="base_url"
32-
>{{ t('riotchat', 'Default server url') }}</label>
32+
>{{ t('riotchat', 'Default server url:') }}</label>
3333
<input
3434
id="base_url"
3535
v-model="base_url"
@@ -40,7 +40,7 @@
4040
<label
4141
ref="server_name"
4242
for="server_name"
43-
>{{ t('riotchat', 'Default server name') }}</label>
43+
>{{ t('riotchat', 'Default server name:') }}</label>
4444
<input
4545
id="default_server_name"
4646
v-model="server_name"
@@ -72,6 +72,21 @@
7272
for="disable_login_language_selector"
7373
>{{ t('riotchat', 'Disable login language selector') }}</label>
7474
</SettingsSection>
75+
<SettingsSection
76+
:title="t('riotchat', 'Jitsi settings')"
77+
:description="t('riotchat', 'Configure the Jitsi instance that Riot.im will connect to')"
78+
>
79+
<label
80+
ref="jitsi_preferred_domain"
81+
for="jitsi_preferred_domain"
82+
>{{ t('riotchat', 'Custom Jitsi instance (leave blank to use default Riot.im Jitsi server):') }}</label>
83+
<input
84+
id="jitsi_preferred_domain"
85+
v-model="jitsi_preferred_domain"
86+
type="text"
87+
@change="updateSetting('jitsi_preferred_domain')"
88+
>
89+
</SettingsSection>
7590
</div>
7691
</template>
7792

@@ -93,12 +108,13 @@ export default {
93108
"server_name": loadState('riotchat', 'server_name'),
94109
"disable_custom_urls": loadState('riotchat', 'disable_custom_urls') === 'true',
95110
"disable_login_language_selector": loadState('riotchat', 'disable_login_language_selector') === 'true',
111+
"jitsi_preferred_domain": loadState('riotchat', 'jitsi_preferrred_domain'),
96112
};
97113
},
98114
methods: {
99115
updateSetting (setting) {
100116
const value = this[setting].toString();
101-
const settingName = this.$refs[setting].innerText;
117+
const settingName = this.$refs[setting].innerText.split("(")[0].split(":")[0].trim();
102118
Axios.put(generateUrl(`apps/riotchat/settings/${setting}`), {
103119
value,
104120
}).then(() => {

0 commit comments

Comments
 (0)