chore(CommunityPermissions): Adjust behavior of 'Hide permission' switch depending on selected permission

Closes: #9050
This commit is contained in:
Michał Cieślak 2023-01-20 12:22:04 +01:00 committed by Michał
parent 5c3b9881c5
commit 63a0f51305
4 changed files with 143 additions and 106 deletions

View File

@ -4,8 +4,15 @@ import QtQuick.Controls 2.14
import AppLayouts.Chat.views.communities 1.0 import AppLayouts.Chat.views.communities 1.0
import AppLayouts.Chat.stores 1.0 import AppLayouts.Chat.stores 1.0
import Storybook 1.0
import Models 1.0 import Models 1.0
SplitView {
orientation: Qt.Vertical
SplitView.fillWidth: true
Logs { id: logs }
Pane { Pane {
id: root id: root
@ -23,6 +30,8 @@ Pane {
} }
readonly property bool isOwner: isOwnerCheckBox.checked
function editPermission(index, holdings, permissions, channels, isPrivate) { function editPermission(index, holdings, permissions, channels, isPrivate) {
logs.logEvent("CommunitiesStore::editPermission - index: " + index) logs.logEvent("CommunitiesStore::editPermission - index: " + index)
} }
@ -52,3 +61,19 @@ Pane {
} }
} }
} }
LogsAndControlsPanel {
id: logsAndControlsPanel
SplitView.minimumHeight: 100
SplitView.preferredHeight: 150
logsView.logText: logs.logText
CheckBox {
id: isOwnerCheckBox
text: "Is owner"
}
}
}

View File

@ -8,13 +8,13 @@ import StatusQ.Core.Theme 0.1
import Storybook 1.0 import Storybook 1.0
import Models 1.0 import Models 1.0
SplitView {
Logs { id: logs }
SplitView { SplitView {
orientation: Qt.Vertical orientation: Qt.Vertical
SplitView.fillWidth: true SplitView.fillWidth: true
Logs { id: logs }
Rectangle { Rectangle {
SplitView.fillWidth: true SplitView.fillWidth: true
SplitView.fillHeight: true SplitView.fillHeight: true
@ -90,4 +90,3 @@ SplitView {
} }
} }
} }
}

View File

@ -15,7 +15,7 @@ StatusDropdown {
property int mode: PermissionsDropdown.Mode.Add property int mode: PermissionsDropdown.Mode.Add
property int initialPermissionType: PermissionTypes.Type.None property int initialPermissionType: PermissionTypes.Type.None
property bool disableAdminPermission: false property bool enableAdminPermission: true
enum Mode { enum Mode {
Add, Update Add, Update
@ -95,7 +95,7 @@ StatusDropdown {
checked: d.initialPermissionType === permissionType checked: d.initialPermissionType === permissionType
buttonGroup: group buttonGroup: group
enabled: !root.disableAdminPermission enabled: root.enableAdminPermission
Layout.fillWidth: true Layout.fillWidth: true
} }
@ -160,7 +160,7 @@ StatusDropdown {
readonly property string description: readonly property string description:
qsTr("Members who meet the requirements will be allowed to read the selected channels") qsTr("Members who meet the requirements will be allowed to read the selected channels")
title: qsTr("Read") title: qsTr("View only")
asset.name: "show" asset.name: "show"
checked: d.initialPermissionType === permissionType checked: d.initialPermissionType === permissionType
buttonGroup: group buttonGroup: group

View File

@ -81,6 +81,18 @@ StatusScrollView {
permissionType === PermissionTypes.Type.Admin || permissionType === PermissionTypes.Type.Admin ||
permissionType === PermissionTypes.Type.Member permissionType === PermissionTypes.Type.Member
onPermissionTypeChanged: {
if (permissionType === PermissionTypes.Type.Admin) {
d.dirtyValues.isPrivateDirty = (root.isPrivate === false)
} else {
if (permissionType === PermissionTypes.Type.Moderator) {
d.dirtyValues.isPrivateDirty = (root.isPrivate === false)
} else {
d.dirtyValues.isPrivateDirty = (root.isPrivate === true)
}
}
}
onIsCommunityPermissionChanged: { onIsCommunityPermissionChanged: {
if (isCommunityPermission) { if (isCommunityPermission) {
inModelChannels.clear() inModelChannels.clear()
@ -431,7 +443,7 @@ StatusScrollView {
id: permissionsDropdown id: permissionsDropdown
initialPermissionType: d.permissionType initialPermissionType: d.permissionType
disableAdminPermission: !root.store.isOwner enableAdminPermission: root.store.isOwner
onDone: { onDone: {
if (d.permissionType === permissionType) { if (d.permissionType === permissionType) {
@ -594,14 +606,14 @@ StatusScrollView {
ColumnLayout { ColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
StatusBaseText { StatusBaseText {
text: qsTr("Private") text: qsTr("Hide permission")
color: Theme.palette.directColor1 color: Theme.palette.directColor1
font.pixelSize: 15 font.pixelSize: 15
} }
StatusBaseText { StatusBaseText {
Layout.fillWidth: true Layout.fillWidth: true
Layout.fillHeight: true Layout.fillHeight: true
text: qsTr("Make this permission private to hide it from members who dont meet its requirements") text: qsTr("Make this permission hidden from members who dont meet its requirements")
color: Theme.palette.baseColor1 color: Theme.palette.baseColor1
font.pixelSize: 15 font.pixelSize: 15
lineHeight: 1.2 lineHeight: 1.2
@ -611,6 +623,7 @@ StatusScrollView {
} }
} }
StatusSwitch { StatusSwitch {
enabled: d.permissionType !== PermissionTypes.Type.Admin
checked: d.dirtyValues.isPrivateDirty ? !root.isPrivate : root.isPrivate checked: d.dirtyValues.isPrivateDirty ? !root.isPrivate : root.isPrivate
onToggled: d.dirtyValues.isPrivateDirty = (root.isPrivate !== checked) onToggled: d.dirtyValues.isPrivateDirty = (root.isPrivate !== checked)
} }