feat(CommunityPermissions): UI support to show the % of members fulfilling permission
Closes: #9044
This commit is contained in:
parent
7f67c885c8
commit
769a41ea9c
|
@ -0,0 +1,61 @@
|
|||
import QtQuick 2.14
|
||||
import QtQuick.Controls 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
|
||||
import utils 1.0
|
||||
|
||||
Control {
|
||||
property int qualifyingAddresses: 1
|
||||
property int knownAddresses: 1
|
||||
property int unknownAddresses: 1
|
||||
|
||||
verticalPadding: 16
|
||||
horizontalPadding: 18
|
||||
|
||||
background: Rectangle {
|
||||
border.color: Style.current.border
|
||||
radius: Style.current.radius
|
||||
color: Style.current.transparent
|
||||
}
|
||||
|
||||
contentItem: RowLayout {
|
||||
spacing: 4
|
||||
|
||||
StatusIcon {
|
||||
Layout.preferredWidth: 22
|
||||
Layout.preferredHeight: 22
|
||||
|
||||
Layout.alignment: Qt.AlignTop
|
||||
|
||||
color: Theme.palette.baseColor1
|
||||
icon: "communities"
|
||||
}
|
||||
|
||||
StatusBaseText {
|
||||
Layout.fillWidth: true
|
||||
|
||||
wrapMode: Text.Wrap
|
||||
|
||||
font.pixelSize: Style.current.primaryTextFontSize
|
||||
lineHeight: 22
|
||||
lineHeightMode: Text.FixedHeight
|
||||
|
||||
Binding on color {
|
||||
when: qualifyingAddresses === 0
|
||||
value: Theme.palette.dangerColor1
|
||||
}
|
||||
|
||||
readonly property real ratio: 100 * qualifyingAddresses / knownAddresses
|
||||
readonly property string ratioAligned: Number(ratio.toFixed(1))
|
||||
|
||||
readonly property string part1: qsTr("%L1% of the %Ln community member(s) with known addresses will qualify for this permission.",
|
||||
"", knownAddresses).arg(ratioAligned)
|
||||
readonly property string part2: qsTr("The addresses of %Ln community member(s) are unknown.", "", unknownAddresses)
|
||||
|
||||
text: `${part1} ${part2}`
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,3 +1,4 @@
|
|||
CommunityPermissionsSettingsPanel 1.0 CommunityPermissionsSettingsPanel.qml
|
||||
CommunityProfilePopupInviteFriendsPanel 1.0 CommunityProfilePopupInviteFriendsPanel.qml
|
||||
CommunityProfilePopupInviteMessagePanel 1.0 CommunityProfilePopupInviteMessagePanel.qml
|
||||
CommunityPermissionsSettingsPanel 1.0 CommunityPermissionsSettingsPanel.qml
|
||||
PermissionQualificationPanel 1.0 PermissionQualificationPanel.qml
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import QtQuick 2.14
|
||||
import QtQuick.Controls 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
|
||||
import StatusQ.Core 0.1
|
||||
|
@ -13,6 +14,7 @@ import shared.panels 1.0
|
|||
|
||||
import SortFilterProxyModel 0.2
|
||||
|
||||
import AppLayouts.Chat.panels.communities 1.0
|
||||
|
||||
import "../../../Chat/controls/community"
|
||||
|
||||
|
@ -515,6 +517,18 @@ StatusScrollView {
|
|||
onToggled: d.dirtyValues.isPrivateDirty = (root.isPrivate !== checked)
|
||||
}
|
||||
}
|
||||
|
||||
PermissionQualificationPanel {
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 24
|
||||
|
||||
visible: d.dirtyValues.holdingsModel.count > 0
|
||||
|
||||
qualifyingAddresses: 200234
|
||||
knownAddresses: 663026
|
||||
unknownAddresses: 396720
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
visible: !root.isEditState
|
||||
Layout.topMargin: 24
|
||||
|
|
Loading…
Reference in New Issue