From 68f5b8295f1b0c8259eac616bb706fcd167abcd0 Mon Sep 17 00:00:00 2001 From: UspAN Date: Mon, 19 Apr 2021 11:44:25 +0000 Subject: [PATCH 1/4] Added possibility to force asking guest displayname. If "Ask guest for a displayname" settings in Talk global settings is on, guest can not enter to conversation until input some display name. Signed-off-by: Uspenskiy Anatoliy --- lib/Settings/Admin/AdminSettings.php | 1 + lib/TInitialState.php | 5 + .../AdminSettings/GeneralSettings.vue | 23 ++++ src/components/SetGuestUsername.vue | 105 +++++++++++++----- src/store/guestNameStore.js | 6 + 5 files changed, 110 insertions(+), 30 deletions(-) diff --git a/lib/Settings/Admin/AdminSettings.php b/lib/Settings/Admin/AdminSettings.php index 396d5ca3cfe..02a0ad76fa9 100644 --- a/lib/Settings/Admin/AdminSettings.php +++ b/lib/Settings/Admin/AdminSettings.php @@ -105,6 +105,7 @@ public function getForm(): TemplateResponse { } protected function initGeneralSettings(): void { + $this->initialState->provideInitialState('ask_guest_username', (int) $this->serverConfig->getAppValue('spreed', 'ask_guest_username', '0')); $this->initialState->provideInitialState('default_group_notification', (int) $this->serverConfig->getAppValue('spreed', 'default_group_notification', Participant::NOTIFY_MENTION)); $this->initialState->provideInitialState('conversations_files', (int) $this->serverConfig->getAppValue('spreed', 'conversations_files', '1')); $this->initialState->provideInitialState('conversations_files_public_shares', (int) $this->serverConfig->getAppValue('spreed', 'conversations_files_public_shares', '1')); diff --git a/lib/TInitialState.php b/lib/TInitialState.php index 4ad6750ee01..fc7f959e1e3 100644 --- a/lib/TInitialState.php +++ b/lib/TInitialState.php @@ -177,5 +177,10 @@ protected function publishInitialStateForGuest(): void { 'play_sounds', false ); + + $this->initialState->provideInitialState( + 'ask_guest_username', + (int) $this->serverConfig->getAppValue('spreed', 'ask_guest_username', '0') + ); } } diff --git a/src/components/AdminSettings/GeneralSettings.vue b/src/components/AdminSettings/GeneralSettings.vue index 088176fdfa0..0453b8e2880 100644 --- a/src/components/AdminSettings/GeneralSettings.vue +++ b/src/components/AdminSettings/GeneralSettings.vue @@ -24,6 +24,17 @@

{{ t('spreed', 'General settings') }}

+

+ + +

+

{{ t('spreed', 'Default notification settings') }}

@@ -83,9 +94,11 @@ export default { data() { return { loading: true, + loadingAskGuestUsername: false, loadingConversationsFiles: false, loadingDefaultGroupNotification: false, + askGuestUsername: false, defaultGroupNotificationOptions, defaultGroupNotification: defaultGroupNotificationOptions[1], @@ -96,6 +109,7 @@ export default { mounted() { this.loading = true + this.askGuestUsername = parseInt(loadState('spreed', 'ask_guest_username')) === 1 this.conversationsFiles = parseInt(loadState('spreed', 'conversations_files')) === 1 this.defaultGroupNotification = defaultGroupNotificationOptions[parseInt(loadState('spreed', 'default_group_notification')) - 1] this.conversationsFilesPublicShares = parseInt(loadState('spreed', 'conversations_files_public_shares')) === 1 @@ -103,6 +117,15 @@ export default { }, methods: { + saveAskGuestUsername() { + this.loadingAskGuestUsername = true + + OCP.AppConfig.setValue('spreed', 'ask_guest_username', this.askGuestUsername ? '1' : '0', { + success: function() { + this.loadingAskGuestUsername = false + }.bind(this), + }) + }, saveDefaultGroupNotification() { this.loadingDefaultGroupNotification = true diff --git a/src/components/SetGuestUsername.vue b/src/components/SetGuestUsername.vue index ae41f3fbb71..bdf2becdb41 100644 --- a/src/components/SetGuestUsername.vue +++ b/src/components/SetGuestUsername.vue @@ -21,48 +21,79 @@