chore(CommunityNewPermissionView): Simplify dirty values handling, extend Storybook page
This commit is contained in:
parent
411c2a0aab
commit
9a0c682ca4
|
@ -1,5 +1,6 @@
|
|||
import QtQuick 2.14
|
||||
import QtQuick.Controls 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
|
||||
import AppLayouts.Chat.views.communities 1.0
|
||||
import AppLayouts.Chat.stores 1.0
|
||||
|
@ -16,7 +17,16 @@ SplitView {
|
|||
Pane {
|
||||
id: root
|
||||
|
||||
SplitView.fillWidth: true
|
||||
SplitView.fillHeight: true
|
||||
|
||||
CommunityNewPermissionView {
|
||||
id: communityNewPermissionView
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
isEditState: isEditStateCheckBox.checked
|
||||
isPrivate: isPrivateCheckBox.checked
|
||||
|
||||
store: CommunitiesStore {
|
||||
readonly property var assetsModel: AssetsModel {}
|
||||
|
@ -32,6 +42,10 @@ SplitView {
|
|||
|
||||
readonly property bool isOwner: isOwnerCheckBox.checked
|
||||
|
||||
function createPermission(holdings, permissions, isPrivate, channels) {
|
||||
logs.logEvent("CommunitiesStore::creatPermission")
|
||||
}
|
||||
|
||||
function editPermission(index, holdings, permissions, channels, isPrivate) {
|
||||
logs.logEvent("CommunitiesStore::editPermission - index: " + index)
|
||||
}
|
||||
|
@ -66,14 +80,58 @@ SplitView {
|
|||
id: logsAndControlsPanel
|
||||
|
||||
SplitView.minimumHeight: 100
|
||||
SplitView.preferredHeight: 150
|
||||
SplitView.preferredHeight: 160
|
||||
|
||||
logsView.logText: logs.logText
|
||||
|
||||
CheckBox {
|
||||
id: isOwnerCheckBox
|
||||
|
||||
text: "Is owner"
|
||||
ColumnLayout {
|
||||
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
CheckBox {
|
||||
id: isOwnerCheckBox
|
||||
|
||||
text: "Is owner"
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
id: isEditStateCheckBox
|
||||
|
||||
text: "Is edit state"
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
id: isPrivateCheckBox
|
||||
|
||||
text: "Is private"
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Button {
|
||||
text: "Save changes"
|
||||
|
||||
onClicked: communityNewPermissionView.saveChanges()
|
||||
}
|
||||
|
||||
Button {
|
||||
text: "Reset changes"
|
||||
|
||||
onClicked: communityNewPermissionView.resetChanges()
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: "Is dirty: " + communityNewPermissionView.dirty
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,6 +38,10 @@ StatusScrollView {
|
|||
if (d.checkIfInDirty())
|
||||
return true
|
||||
|
||||
// Is private
|
||||
if (root.isPrivate !== d.dirtyValues.isPrivate)
|
||||
return true
|
||||
|
||||
// Permissions:
|
||||
let dirtyPermissionObj = false
|
||||
if(root.permissionObject && d.dirtyValues.permissionObject.key !== null) {
|
||||
|
@ -48,8 +52,7 @@ StatusScrollView {
|
|||
dirtyPermissionObj = d.dirtyValues.permissionObject.key !== null
|
||||
}
|
||||
|
||||
|
||||
return dirtyPermissionObj || d.dirtyValues.isPrivateDirty
|
||||
return dirtyPermissionObj
|
||||
}
|
||||
|
||||
function saveChanges() {
|
||||
|
@ -71,7 +74,7 @@ StatusScrollView {
|
|||
// roles: itemId, text, emoji, color
|
||||
property var channelsModel: ListModel {}
|
||||
|
||||
property bool isPrivate
|
||||
property bool isPrivate: false
|
||||
|
||||
signal permissionCreated()
|
||||
|
||||
|
@ -90,15 +93,9 @@ StatusScrollView {
|
|||
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)
|
||||
}
|
||||
}
|
||||
d.dirtyValues.isPrivate =
|
||||
(permissionType === PermissionTypes.Type.Admin) ||
|
||||
(permissionType === PermissionTypes.Type.Moderator)
|
||||
}
|
||||
|
||||
onIsCommunityPermissionChanged: {
|
||||
|
@ -125,7 +122,8 @@ StatusScrollView {
|
|||
property string text: ""
|
||||
property string imageSource: ""
|
||||
}
|
||||
property bool isPrivateDirty: false
|
||||
|
||||
property bool isPrivate: false
|
||||
|
||||
function getIndexOfKey(key) {
|
||||
const count = holdingsModel.count
|
||||
|
@ -173,12 +171,11 @@ StatusScrollView {
|
|||
}
|
||||
|
||||
function saveChanges() {
|
||||
|
||||
root.store.editPermission(root.permissionIndex,
|
||||
d.dirtyValues.holdingsModel,
|
||||
d.dirtyValues.permissionObject,
|
||||
d.dirtyValues.channelsModel,
|
||||
d.dirtyValues.isPrivateDirty ? !root.isPrivate : root.isPrivate)
|
||||
d.dirtyValues.isPrivate)
|
||||
}
|
||||
|
||||
function loadInitValues() {
|
||||
|
@ -239,7 +236,7 @@ StatusScrollView {
|
|||
}
|
||||
|
||||
// Is private permission
|
||||
d.dirtyValues.isPrivateDirty = false
|
||||
d.dirtyValues.isPrivate = root.isPrivate
|
||||
}
|
||||
|
||||
function checkIfHoldingsDirty() {
|
||||
|
@ -693,8 +690,8 @@ StatusScrollView {
|
|||
}
|
||||
StatusSwitch {
|
||||
enabled: d.permissionType !== PermissionTypes.Type.Admin
|
||||
checked: d.dirtyValues.isPrivateDirty ? !root.isPrivate : root.isPrivate
|
||||
onToggled: d.dirtyValues.isPrivateDirty = (root.isPrivate !== checked)
|
||||
checked: d.dirtyValues.isPrivate
|
||||
onToggled: d.dirtyValues.isPrivate = checked
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -722,7 +719,7 @@ StatusScrollView {
|
|||
onClicked: {
|
||||
root.store.createPermission(d.dirtyValues.holdingsModel,
|
||||
d.dirtyValues.permissionObject,
|
||||
d.dirtyValues.isPrivateDirty ? !root.isPrivate : root.isPrivate,
|
||||
d.dirtyValues.isPrivate,
|
||||
d.dirtyValues.channelsModel)
|
||||
root.permissionCreated()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue