Skip to content

Commit

Permalink
feat(Permissions): Adding, duplicating, editing and deleting permissi…
Browse files Browse the repository at this point in the history
…ons when control node is offline

- It adds info panel when control node is offline.
- It modifies UI texts when control node is offline.
- It updates storybook updating permissions model and allowing permission state changes.

NOTE: Only UI, no backend. There are 2 expected integration point: `community.isControlNodeOffline` property and permissions model item `permissionState` role.

Closes #11769
  • Loading branch information
noeliaSD committed Aug 8, 2023
1 parent a1e1e31 commit c1f06b9
Show file tree
Hide file tree
Showing 10 changed files with 140 additions and 7 deletions.
32 changes: 32 additions & 0 deletions storybook/pages/CommunityPermissionsSettingsPanelEditor.qml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import StatusQ.Core.Utils 0.1

import AppLayouts.Communities.controls 1.0

import Models 1.0

Flickable {
id: root

Expand Down Expand Up @@ -49,6 +51,36 @@ Flickable {
spacing: 20
anchors.fill: parent

Label {
Layout.leftMargin: 5

text: "Permission State:"
}
ColumnLayout {
Layout.leftMargin: 5

RadioButton {
text: "Active state"
checked: true
onCheckedChanged: if(checked) PermissionsModel.changePermissionState(root.model, model.index, PermissionTypes.State.Active)
}

RadioButton {
text: "Creating state"
onCheckedChanged: if(checked) PermissionsModel.changePermissionState(root.model, model.index, PermissionTypes.State.Creating)
}

RadioButton {
text: "Editing state"
onCheckedChanged: if(checked) PermissionsModel.changePermissionState(root.model, model.index, PermissionTypes.State.Editing)
}

RadioButton {
text: "Deleting state"
onCheckedChanged: if(checked) PermissionsModel.changePermissionState(root.model, model.index, PermissionTypes.State.Deleting)
}
}

Repeater {
model: holdingsListModel

Expand Down
7 changes: 7 additions & 0 deletions storybook/pages/EditPermissionViewPage.qml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ SplitView {

anchors.fill: parent

isControlNodeOffline: isControlNodeOfflineCheckBox.checked
isEditState: isEditStateCheckBox.checked
isPrivate: isPrivateCheckBox.checked
permissionDuplicated: isPermissionDuplicatedCheckBox.checked
Expand Down Expand Up @@ -67,6 +68,12 @@ SplitView {
text: "Is owner"
}

CheckBox {
id: isControlNodeOfflineCheckBox

text: "Is control node offline?"
}

CheckBox {
id: isEditStateCheckBox

Expand Down
12 changes: 8 additions & 4 deletions storybook/pages/PermissionsSettingsPanelPage.qml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ SplitView {
anchors.fill: parent
anchors.topMargin: 50

isControlNodeOffline: isControlNodeOfflineCheckBox.checked
permissionsModel: permissionsStoreMock.permissionsModel
assetsModel: AssetsModel {}
collectiblesModel: CollectiblesModel {}
Expand Down Expand Up @@ -112,16 +113,19 @@ SplitView {

logsView.logText: logs.logText

ColumnLayout {
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
RowLayout {

CheckBox {
id: isOwnerCheckBox

text: "Is owner"
}

CheckBox {
id: isControlNodeOfflineCheckBox

text: "Is control node offline?"
}
}
}
}
Expand Down
41 changes: 41 additions & 0 deletions storybook/src/Models/PermissionsModel.qml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,15 @@ QtObject {
holdingsListModel: root.createHoldingsModel1(),
channelsListModel: root.createChannelsModel1(),
permissionType: PermissionTypes.Type.Admin,
permissionState: PermissionTypes.State.Active,
isPrivate: true,
tokenCriteriaMet: false
},
{
holdingsListModel: root.createHoldingsModel2(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: true
}
Expand All @@ -31,6 +33,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel4(),
channelsListModel: root.createChannelsModel1(),
permissionType: PermissionTypes.Type.Admin,
permissionState: PermissionTypes.State.Active,
isPrivate: true
}
]
Expand All @@ -40,24 +43,28 @@ QtObject {
holdingsListModel: root.createHoldingsModel4(),
channelsListModel: root.createChannelsModel1(),
permissionType: PermissionTypes.Type.Admin,
permissionState: PermissionTypes.State.Active,
isPrivate: true
},
{
holdingsListModel: root.createHoldingsModel3(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false
},
{
holdingsListModel: root.createHoldingsModel2(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false
},
{
holdingsListModel: root.createHoldingsModel1(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false
}
]
Expand All @@ -67,12 +74,14 @@ QtObject {
holdingsListModel: root.createHoldingsModel1(),
channelsListModel: root.createChannelsModel1(),
permissionType: PermissionTypes.Type.Admin,
permissionState: PermissionTypes.State.Active,
isPrivate: true
},
{
holdingsListModel: root.createHoldingsModel2(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false
}
]
Expand All @@ -82,12 +91,14 @@ QtObject {
holdingsListModel: root.createHoldingsModel5(),
channelsListModel: root.createChannelsModel1(),
permissionType: PermissionTypes.Type.Admin,
permissionState: PermissionTypes.State.Active,
isPrivate: true
},
{
holdingsListModel: root.createHoldingsModel4(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false
}
]
Expand All @@ -97,18 +108,21 @@ QtObject {
holdingsListModel: root.createHoldingsModel1(),
channelsListModel: root.createChannelsModel1(),
permissionType: PermissionTypes.Type.Admin,
permissionState: PermissionTypes.State.Active,
isPrivate: true
},
{
holdingsListModel: root.createHoldingsModel1b(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false
},
{
holdingsListModel: root.createHoldingsModel2(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false
}
]
Expand All @@ -118,24 +132,28 @@ QtObject {
holdingsListModel: root.createHoldingsModel1(),
channelsListModel: root.createChannelsModel1(),
permissionType: PermissionTypes.Type.Admin,
permissionState: PermissionTypes.State.Active,
isPrivate: true
},
{
holdingsListModel: root.createHoldingsModel2(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false
},
{
holdingsListModel: root.createHoldingsModel3(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false
},
{
holdingsListModel: root.createHoldingsModel5(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false
}
]
Expand All @@ -146,6 +164,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel2b(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Admin,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: true
},
Expand All @@ -154,6 +173,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel3(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Admin,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: false
},
Expand All @@ -162,6 +182,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel2(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: true
},
Expand All @@ -170,6 +191,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel3(),
channelsListModel: root.createChannelsModel2(),
permissionType: PermissionTypes.Type.Member,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: false
}
Expand All @@ -181,6 +203,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel1b(),
channelsListModel: root.createChannelsModel1(),
permissionType: PermissionTypes.Type.Read,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: true
},
Expand All @@ -189,6 +212,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel1(),
channelsListModel: root.createChannelsModel1(),
permissionType: PermissionTypes.Type.Read,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: false
},
Expand All @@ -197,6 +221,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel3(),
channelsListModel: root.createChannelsModel1(),
permissionType: PermissionTypes.Type.Read,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: false
},
Expand All @@ -205,6 +230,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel2(),
channelsListModel: root.createChannelsModel3(),
permissionType: PermissionTypes.Type.Read,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: true
},
Expand All @@ -213,6 +239,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel5(),
channelsListModel: root.createChannelsModel3(),
permissionType: PermissionTypes.Type.Read,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: false
},
Expand All @@ -221,6 +248,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel3(),
channelsListModel: root.createChannelsModel1(),
permissionType: PermissionTypes.Type.ViewAndPost,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: false
},
Expand All @@ -229,6 +257,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel2b(),
channelsListModel: root.createChannelsModel1(),
permissionType: PermissionTypes.Type.ViewAndPost,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: true
},
Expand All @@ -237,6 +266,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel3(),
channelsListModel: root.createChannelsModel3(),
permissionType: PermissionTypes.Type.ViewAndPost,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: false
},
Expand All @@ -245,6 +275,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel5(),
channelsListModel: root.createChannelsModel3(),
permissionType: PermissionTypes.Type.ViewAndPost,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: false
},
Expand All @@ -253,6 +284,7 @@ QtObject {
holdingsListModel: root.createHoldingsModel1(),
channelsListModel: root.createChannelsModel3(),
permissionType: PermissionTypes.Type.ViewAndPost,
permissionState: PermissionTypes.State.Active,
isPrivate: false,
tokenCriteriaMet: false
}
Expand Down Expand Up @@ -526,4 +558,13 @@ QtObject {
}
]
}

function changePermissionState(model, index, permissionState) {
model.get(index).permissionState = permissionState
}

function changeAllPermissionStates(model, permissionState) {
for(let i = 0; i < model.count; i++)
changePermissionState(model, i, permissionState)
}
}
Loading

0 comments on commit c1f06b9

Please sign in to comment.