Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 67 additions & 43 deletions src/components/ConversationSettings/ConversationSettingsDialog.vue
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,16 @@
:name="t('spreed', 'Conversation settings')"
:open="showSettings"
showNavigation
legacy
noVersion
@update:open="handleHideSettings">
<NcAppSettingsSection
id="basic-info"
:name="t('spreed', 'Basic Info')">
<BasicInfo
:conversation="conversation"
:canFullModerate="canFullModerate" />
<div class="app-settings-subsection">
<BasicInfo
:conversation="conversation"
:canFullModerate="canFullModerate" />
</div>
</NcAppSettingsSection>

<template v-if="!isBreakoutRoom">
Expand All @@ -33,99 +34,117 @@
<NcAppSettingsSection
id="conversation-settings"
:name="selfIsOwnerOrModerator ? t('spreed', 'Moderation') : t('spreed', 'Setup overview')">
<ListableSettings v-if="!isNoteToSelf && !isGuest && !isOneToOne" :token="token" :canModerate="canFullModerate" />
<MentionsSettings v-if="!isNoteToSelf && !isOneToOne" :token="token" :canModerate="canFullModerate" />
<LinkShareSettings v-if="!isNoteToSelf" :token="token" :canModerate="canFullModerate" />
<RecordingConsentSettings v-if="!isNoteToSelf && !isOneToOneFormer && recordingConsentAvailable" :token="token" :canModerate="selfIsOwnerOrModerator" />
<ExpirationSettings v-if="!isOneToOneFormer && hasMessageExpirationFeature" :token="token" :canModerate="selfIsOwnerOrModerator" />
<BanSettings v-if="supportBanV1 && canFullModerate" :token="token" />
<div class="app-settings-subsection">
<ListableSettings v-if="!isNoteToSelf && !isGuest && !isOneToOne" :token="token" :canModerate="canFullModerate" />
<MentionsSettings v-if="!isNoteToSelf && !isOneToOne" :token="token" :canModerate="canFullModerate" />
<LinkShareSettings v-if="!isNoteToSelf" :token="token" :canModerate="canFullModerate" />
<RecordingConsentSettings v-if="!isNoteToSelf && !isOneToOneFormer && recordingConsentAvailable" :token="token" :canModerate="selfIsOwnerOrModerator" />
<ExpirationSettings v-if="!isOneToOneFormer && hasMessageExpirationFeature" :token="token" :canModerate="selfIsOwnerOrModerator" />
<BanSettings v-if="supportBanV1 && canFullModerate" :token="token" />
</div>
</NcAppSettingsSection>

<!-- Meeting: lobby and sip -->
<NcAppSettingsSection
v-if="canFullModerate && !isNoteToSelf"
id="meeting"
:name="meetingHeader">
<LobbySettings :token="token" />
<SipSettings v-if="canUserEnableSIP" />
<div class="app-settings-subsection">
<LobbySettings :token="token" />
<SipSettings v-if="canUserEnableSIP" />
</div>
</NcAppSettingsSection>

<!-- Conversation permissions -->
<NcAppSettingsSection
v-if="canFullModerate && !isNoteToSelf"
id="permissions"
:name="t('spreed', 'Permissions')">
<ConversationPermissionsSettings :token="token" />
<div class="app-settings-subsection">
<ConversationPermissionsSettings :token="token" />
</div>
</NcAppSettingsSection>

<!-- Live transcription -->
<NcAppSettingsSection
v-if="canConfigureLiveTranscription"
id="live-transcription"
:name="t('spreed', 'Live transcription')">
<LiveTranscriptionSettings :token="token" />
<div class="app-settings-subsection">
<LiveTranscriptionSettings :token="token" />
</div>
</NcAppSettingsSection>
<NcAppSettingsSection
v-else-if="hintLiveTranscription"
id="live-transcription"
:name="t('spreed', 'Live transcription')">
<NcCheckboxRadioSwitch
:description="t('spreed', 'Live transcriptions app is not installed')"
type="switch"
disabled>
{{ t('spreed', 'Enable live transcription') }}
</NcCheckboxRadioSwitch>
<div class="app-settings-subsection">
<NcCheckboxRadioSwitch
:description="t('spreed', 'Live transcriptions app is not installed')"
type="switch"
disabled>
{{ t('spreed', 'Enable live transcription') }}
</NcCheckboxRadioSwitch>
</div>
</NcAppSettingsSection>

<!-- Breakout rooms -->
<NcAppSettingsSection
v-if="canConfigureBreakoutRooms"
id="breakout-rooms"
:name="t('spreed', 'Breakout Rooms')">
<BreakoutRoomsSettings :token="token" />
<div class="app-settings-subsection">
<BreakoutRoomsSettings :token="token" />
</div>
</NcAppSettingsSection>

<!-- Matterbridge settings -->
<NcAppSettingsSection
v-if="canFullModerate && matterbridgeEnabled"
id="matterbridge"
:name="t('spreed', 'Matterbridge')">
<MatterbridgeSettings />
<div class="app-settings-subsection">
<MatterbridgeSettings />
</div>
</NcAppSettingsSection>

<!-- Bots settings -->
<NcAppSettingsSection
v-if="selfIsOwnerOrModerator && supportBotsV1"
id="bots"
:name="t('spreed', 'Bots')">
<BotsSettings :token="token" />
<div class="app-settings-subsection">
<BotsSettings :token="token" />
</div>
</NcAppSettingsSection>

<!-- Destructive actions -->
<NcAppSettingsSection
v-if="canLeaveConversation || canDeleteConversation || showPreserveConversationSetting"
id="dangerzone"
:name="t('spreed', 'Danger zone')">
<PreserveConversationSettings v-if="showPreserveConversationSetting" :token="token" />
<LockingSettings v-if="canFullModerate && !isNoteToSelf" :token="token" />
<template v-if="supportsArchive">
<h4 class="app-settings-section__subtitle">
{{ t('spreed', 'Archive conversation') }}
</h4>
<p class="app-settings-section__hint">
{{ t('spreed', 'Archived conversations are hidden from the conversation list by default. However, they will still appear when you search for the conversation name or access a list of archived conversations.') }}
</p>
<NcCheckboxRadioSwitch
type="switch"
:modelValue="isArchived"
@update:modelValue="toggleArchiveConversation">
{{ t('spreed', 'Archive conversation') }}
</NcCheckboxRadioSwitch>
</template>
<DangerZone
:conversation="conversation"
:canLeaveConversation="canLeaveConversation"
:canDeleteConversation="canDeleteConversation" />
<div class="app-settings-subsection">
<PreserveConversationSettings v-if="showPreserveConversationSetting" :token="token" />
<LockingSettings v-if="canFullModerate && !isNoteToSelf" :token="token" />
<template v-if="supportsArchive">
<h4 class="app-settings-section__subtitle">
{{ t('spreed', 'Archive conversation') }}
</h4>
<p class="app-settings-section__hint">
{{ t('spreed', 'Archived conversations are hidden from the conversation list by default. However, they will still appear when you search for the conversation name or access a list of archived conversations.') }}
</p>
<NcCheckboxRadioSwitch
type="switch"
:modelValue="isArchived"
@update:modelValue="toggleArchiveConversation">
{{ t('spreed', 'Archive conversation') }}
</NcCheckboxRadioSwitch>
</template>
<DangerZone
:conversation="conversation"
:canLeaveConversation="canLeaveConversation"
:canDeleteConversation="canDeleteConversation" />
</div>
</NcAppSettingsSection>
</template>
</NcAppSettingsDialog>
Expand Down Expand Up @@ -377,6 +396,11 @@ export default {
margin: calc(var(--default-grid-baseline) * 4) 0 var(--default-grid-baseline) 0;
}

// TODO remove wrapper when migrated to NcFormGroup / modern settings
:deep(.app-settings-subsection) {
padding-inline-start: var(--app-settings-section-text-offset);
}

:deep(.app-settings-subsection:not(:first-child)) {
margin-top: 25px;
}
Expand Down
Loading