feat(communities): integrate token permissions pending state
closes: #11852
This commit is contained in:
parent
5b3b673eca
commit
720f6884b8
|
@ -812,7 +812,8 @@ proc updateTokenPermissionModel*(self: Module, permissions: Table[string, CheckP
|
|||
updatedTokenCriteriaItems,
|
||||
tokenPermissionItem.getChatList().getItems(),
|
||||
tokenPermissionItem.isPrivate,
|
||||
permissionSatisfied
|
||||
permissionSatisfied,
|
||||
tokenPermissionItem.state
|
||||
)
|
||||
self.view.tokenPermissionsModel().updateItem(id, updatedTokenPermissionItem)
|
||||
|
||||
|
|
|
@ -592,7 +592,8 @@ proc applyPermissionResponse*(self: Module, communityId: string, permissions: Ta
|
|||
updatedTokenCriteriaItems,
|
||||
tokenPermissionItem.getChatList().getItems(),
|
||||
tokenPermissionItem.isPrivate,
|
||||
permissionSatisfied
|
||||
permissionSatisfied,
|
||||
tokenPermissionItem.state
|
||||
)
|
||||
self.view.spectatedCommunityPermissionModel.updateItem(id, updatedTokenPermissionItem)
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ type
|
|||
chatList*: TokenPermissionChatListModel
|
||||
isPrivate*: bool
|
||||
tokenCriteriaMet*: bool
|
||||
state*: TokenPermissionState
|
||||
|
||||
proc `$`*(self: TokenPermissionItem): string =
|
||||
result = fmt"""TokenPermissionItem(
|
||||
|
@ -27,7 +28,8 @@ proc initTokenPermissionItem*(
|
|||
tokenCriteria: seq[TokenCriteriaItem],
|
||||
chatList: seq[TokenPermissionChatListItem],
|
||||
isPrivate: bool,
|
||||
tokenCriteriaMet: bool
|
||||
tokenCriteriaMet: bool,
|
||||
state: TokenPermissionState
|
||||
): TokenPermissionItem =
|
||||
result.id = id
|
||||
result.`type` = `type`
|
||||
|
@ -35,6 +37,7 @@ proc initTokenPermissionItem*(
|
|||
result.chatList = newTokenPermissionChatListModel()
|
||||
result.isPrivate = isPrivate
|
||||
result.tokenCriteriaMet = tokenCriteriaMet
|
||||
result.state = state
|
||||
|
||||
for tcItem in tokenCriteria:
|
||||
result.tokenCriteria.addItem(tcItem)
|
||||
|
@ -63,6 +66,9 @@ proc getIsPrivate*(self: TokenPermissionItem): bool =
|
|||
proc getTokenCriteriaMet*(self: TokenPermissionItem): bool =
|
||||
return self.tokenCriteriaMet
|
||||
|
||||
proc getState*(self: TokenPermissionItem): int =
|
||||
return self.state.int
|
||||
|
||||
proc buildTokenPermissionItem*(tokenPermission: CommunityTokenPermissionDto, chats: seq[ChatDto]): TokenPermissionItem =
|
||||
var tokenCriteriaItems: seq[TokenCriteriaItem] = @[]
|
||||
|
||||
|
@ -90,7 +96,8 @@ proc buildTokenPermissionItem*(tokenPermission: CommunityTokenPermissionDto, cha
|
|||
tokenCriteriaItems,
|
||||
tokenPermissionChatListItems,
|
||||
tokenPermission.isPrivate,
|
||||
false # allTokenCriteriaMet will be updated by a call to checkPermissionsToJoin
|
||||
false, # allTokenCriteriaMet will be updated by a call to checkPermissionsToJoin
|
||||
tokenPermission.state
|
||||
)
|
||||
|
||||
return tokenPermissionItem
|
||||
|
|
|
@ -13,6 +13,7 @@ type
|
|||
ChatList
|
||||
IsPrivate
|
||||
TokenCriteriaMet
|
||||
State
|
||||
|
||||
QtObject:
|
||||
type TokenPermissionsModel* = ref object of QAbstractListModel
|
||||
|
@ -38,6 +39,7 @@ QtObject:
|
|||
ModelRole.ChatList.int:"channelsListModel",
|
||||
ModelRole.IsPrivate.int:"isPrivate",
|
||||
ModelRole.TokenCriteriaMet.int:"tokenCriteriaMet",
|
||||
ModelRole.State.int:"permissionState",
|
||||
}.toTable
|
||||
|
||||
proc countChanged(self: TokenPermissionsModel) {.signal.}
|
||||
|
@ -95,6 +97,8 @@ QtObject:
|
|||
result = newQVariant(item.getIsPrivate())
|
||||
of ModelRole.TokenCriteriaMet:
|
||||
result = newQVariant(item.getTokenCriteriaMet())
|
||||
of ModelRole.State:
|
||||
result = newQVariant(item.getState())
|
||||
|
||||
proc addItem*(self: TokenPermissionsModel, item: TokenPermissionItem) =
|
||||
let parentModelIndex = newQModelIndex()
|
||||
|
@ -143,6 +147,7 @@ QtObject:
|
|||
self.items[idx].chatList.setItems(item.chatList.getItems())
|
||||
self.items[idx].isPrivate = item.isPrivate
|
||||
self.items[idx].tokenCriteriaMet = item.tokenCriteriaMet
|
||||
self.items[idx].state = item.state
|
||||
|
||||
let index = self.createIndex(idx, 0, nil)
|
||||
defer: index.delete
|
||||
|
@ -151,5 +156,6 @@ QtObject:
|
|||
ModelRole.TokenCriteria.int,
|
||||
ModelRole.ChatList.int,
|
||||
ModelRole.IsPrivate.int,
|
||||
ModelRole.TokenCriteriaMet.int
|
||||
ModelRole.TokenCriteriaMet.int,
|
||||
ModelRole.State.int
|
||||
])
|
||||
|
|
|
@ -58,7 +58,13 @@ type TokenPermissionType* {.pure.}= enum
|
|||
ViewAndPost = 4,
|
||||
BecomeTokenMaster = 5,
|
||||
BecomeTokenOwner = 6
|
||||
|
||||
|
||||
type TokenPermissionState* {.pure.}= enum
|
||||
Approved = 0,
|
||||
AdditionPending = 1,
|
||||
UpdatePending = 2,
|
||||
RemovalPending = 3,
|
||||
|
||||
type TokenType* {.pure.}= enum
|
||||
Unknown = 0,
|
||||
ERC20 = 1,
|
||||
|
@ -81,6 +87,7 @@ type CommunityTokenPermissionDto* = object
|
|||
tokenCriteria*: seq[TokenCriteriaDto]
|
||||
chatIds*: seq[string]
|
||||
isPrivate*: bool
|
||||
state*: TokenPermissionState
|
||||
|
||||
type CommunityTokensMetadataDto* = object
|
||||
addresses*: Table[int, string]
|
||||
|
@ -280,9 +287,14 @@ proc toCommunityTokenPermissionDto*(jsonObj: JsonNode): CommunityTokenPermission
|
|||
discard jsonObj.getProp("is_private", result.isPrivate)
|
||||
var tokenPermissionTypeInt: int
|
||||
discard jsonObj.getProp("type", tokenPermissionTypeInt)
|
||||
if (tokenPermissionTypeInt >= ord(low(TokenPermissionType)) or tokenPermissionTypeInt <= ord(high(TokenPermissionType))):
|
||||
if (tokenPermissionTypeInt >= ord(low(TokenPermissionType)) and tokenPermissionTypeInt <= ord(high(TokenPermissionType))):
|
||||
result.`type` = TokenPermissionType(tokenPermissionTypeInt)
|
||||
|
||||
var tokenPermissionStateInt: int
|
||||
discard jsonObj.getProp("state", tokenPermissionStateInt)
|
||||
if (tokenPermissionStateInt >= ord(low(TokenPermissionState)) and tokenPermissionStateInt <= ord(high(TokenPermissionState))):
|
||||
result.state = TokenPermissionState(tokenPermissionStateInt)
|
||||
|
||||
var tokenCriteriaObj: JsonNode
|
||||
if(jsonObj.getProp("token_criteria", tokenCriteriaObj)):
|
||||
for tokenCriteria in tokenCriteriaObj:
|
||||
|
|
|
@ -203,6 +203,7 @@ const SIGNAL_COMMUNITY_INFO_ALREADY_REQUESTED* = "communityInfoAlreadyRequested"
|
|||
|
||||
const TOKEN_PERMISSIONS_ADDED = "tokenPermissionsAdded"
|
||||
const TOKEN_PERMISSIONS_MODIFIED = "tokenPermissionsModified"
|
||||
const TOKEN_PERMISSIONS_REMOVED = "tokenPermissionsRemoved"
|
||||
|
||||
const SIGNAL_CHECK_PERMISSIONS_TO_JOIN_RESPONSE* = "checkPermissionsToJoinResponse"
|
||||
const SIGNAL_CHECK_PERMISSIONS_TO_JOIN_FAILED* = "checkPermissionsToJoinFailed"
|
||||
|
@ -617,7 +618,8 @@ QtObject:
|
|||
if tokenPermission.tokenCriteria.len != prevTokenPermission.tokenCriteria.len or
|
||||
tokenPermission.isPrivate != prevTokenPermission.isPrivate or
|
||||
tokenPermission.chatIds.len != prevTokenPermission.chatIds.len or
|
||||
tokenPermission.`type` != prevTokenPermission.`type`:
|
||||
tokenPermission.`type` != prevTokenPermission.`type` or
|
||||
tokenPermission.state != prevTokenPermission.state:
|
||||
|
||||
permissionUpdated = true
|
||||
|
||||
|
@ -1930,28 +1932,23 @@ QtObject:
|
|||
proc createOrEditCommunityTokenPermission*(self: Service, communityId: string, tokenPermission: CommunityTokenPermissionDto) =
|
||||
try:
|
||||
let editing = tokenPermission.id != ""
|
||||
|
||||
var response: RpcResponse[JsonNode]
|
||||
|
||||
if editing:
|
||||
response = status_go.editCommunityTokenPermission(communityId, tokenPermission.id, int(tokenPermission.`type`), Json.encode(tokenPermission.tokenCriteria), tokenPermission.chatIDs, tokenPermission.isPrivate)
|
||||
else:
|
||||
response = status_go.createCommunityTokenPermission(communityId, int(tokenPermission.`type`), Json.encode(tokenPermission.tokenCriteria), tokenPermission.chatIDs, tokenPermission.isPrivate)
|
||||
|
||||
if response.result != nil and response.result.kind != JNull:
|
||||
var changesField = TOKEN_PERMISSIONS_ADDED
|
||||
if editing:
|
||||
changesField = TOKEN_PERMISSIONS_MODIFIED
|
||||
|
||||
for permissionId, permission in response.result["communityChanges"].getElems()[0][changesField].pairs():
|
||||
for permissionId, permission in response.result["communityChanges"].getElems()[0][TOKEN_PERMISSIONS_ADDED].pairs():
|
||||
let p = permission.toCommunityTokenPermissionDto()
|
||||
self.communities[communityId].tokenPermissions[permissionId] = p
|
||||
self.events.emit(SIGNAL_COMMUNITY_TOKEN_PERMISSION_CREATED, CommunityTokenPermissionArgs(communityId: communityId, tokenPermission: p))
|
||||
|
||||
var signal = SIGNAL_COMMUNITY_TOKEN_PERMISSION_CREATED
|
||||
if editing:
|
||||
signal = SIGNAL_COMMUNITY_TOKEN_PERMISSION_UPDATED
|
||||
for permissionId, permission in response.result["communityChanges"].getElems()[0][TOKEN_PERMISSIONS_MODIFIED].pairs():
|
||||
let p = permission.toCommunityTokenPermissionDto()
|
||||
self.communities[communityId].tokenPermissions[permissionId] = p
|
||||
self.events.emit(SIGNAL_COMMUNITY_TOKEN_PERMISSION_UPDATED, CommunityTokenPermissionArgs(communityId: communityId, tokenPermission: p))
|
||||
|
||||
self.events.emit(signal, CommunityTokenPermissionArgs(communityId: communityId, tokenPermission: p))
|
||||
return
|
||||
|
||||
var signal = SIGNAL_COMMUNITY_TOKEN_PERMISSION_CREATION_FAILED
|
||||
|
@ -1966,12 +1963,18 @@ QtObject:
|
|||
try:
|
||||
let response = status_go.deleteCommunityTokenPermission(communityId, permissionId)
|
||||
if response.result != nil and response.result.kind != JNull:
|
||||
for permissionId in response.result["communityChanges"].getElems()[0]["tokenPermissionsRemoved"].getElems():
|
||||
if self.communities[communityId].tokenPermissions.hasKey(permissionId.getStr()):
|
||||
self.communities[communityId].tokenPermissions.del(permissionId.getStr())
|
||||
self.events.emit(SIGNAL_COMMUNITY_TOKEN_PERMISSION_DELETED,
|
||||
CommunityTokenPermissionRemovedArgs(communityId: communityId, permissionId: permissionId.getStr))
|
||||
for permissionId, permission in response.result["communityChanges"].getElems()[0][TOKEN_PERMISSIONS_REMOVED].pairs():
|
||||
if self.communities[communityId].tokenPermissions.hasKey(permissionId):
|
||||
self.communities[communityId].tokenPermissions.del(permissionId)
|
||||
self.events.emit(SIGNAL_COMMUNITY_TOKEN_PERMISSION_DELETED, CommunityTokenPermissionRemovedArgs(communityId: communityId, permissionId: permissionId))
|
||||
|
||||
for permissionId, permission in response.result["communityChanges"].getElems()[0][TOKEN_PERMISSIONS_MODIFIED].pairs():
|
||||
let p = permission.toCommunityTokenPermissionDto()
|
||||
self.communities[communityId].tokenPermissions[permissionId] = p
|
||||
self.events.emit(SIGNAL_COMMUNITY_TOKEN_PERMISSION_UPDATED, CommunityTokenPermissionArgs(communityId: communityId, tokenPermission: p))
|
||||
|
||||
return
|
||||
|
||||
var tokenPermission = CommunityTokenPermissionDto()
|
||||
tokenPermission.id = permissionId
|
||||
self.events.emit(SIGNAL_COMMUNITY_TOKEN_PERMISSION_DELETION_FAILED,
|
||||
|
|
|
@ -62,22 +62,22 @@ Flickable {
|
|||
RadioButton {
|
||||
text: "Active state"
|
||||
checked: true
|
||||
onCheckedChanged: if(checked) PermissionsModel.changePermissionState(root.model, model.index, PermissionTypes.State.Active)
|
||||
onCheckedChanged: if(checked) PermissionsModel.changePermissionState(root.model, model.index, PermissionTypes.State.Approved)
|
||||
}
|
||||
|
||||
RadioButton {
|
||||
text: "Creating state"
|
||||
onCheckedChanged: if(checked) PermissionsModel.changePermissionState(root.model, model.index, PermissionTypes.State.Creating)
|
||||
onCheckedChanged: if(checked) PermissionsModel.changePermissionState(root.model, model.index, PermissionTypes.State.AdditionPending)
|
||||
}
|
||||
|
||||
RadioButton {
|
||||
text: "Editing state"
|
||||
onCheckedChanged: if(checked) PermissionsModel.changePermissionState(root.model, model.index, PermissionTypes.State.Editing)
|
||||
onCheckedChanged: if(checked) PermissionsModel.changePermissionState(root.model, model.index, PermissionTypes.State.UpdatePending)
|
||||
}
|
||||
|
||||
RadioButton {
|
||||
text: "Deleting state"
|
||||
onCheckedChanged: if(checked) PermissionsModel.changePermissionState(root.model, model.index, PermissionTypes.State.Deleting)
|
||||
onCheckedChanged: if(checked) PermissionsModel.changePermissionState(root.model, model.index, PermissionTypes.State.RemovalPending)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel1(),
|
||||
channelsListModel: root.createChannelsModel1(),
|
||||
permissionType: PermissionTypes.Type.Admin,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: true,
|
||||
tokenCriteriaMet: false
|
||||
},
|
||||
|
@ -22,7 +22,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel2(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: true
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel4(),
|
||||
channelsListModel: root.createChannelsModel1(),
|
||||
permissionType: PermissionTypes.Type.Admin,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: true
|
||||
}
|
||||
]
|
||||
|
@ -60,28 +60,28 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel4(),
|
||||
channelsListModel: root.createChannelsModel1(),
|
||||
permissionType: PermissionTypes.Type.Admin,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: true
|
||||
},
|
||||
{
|
||||
holdingsListModel: root.createHoldingsModel3(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false
|
||||
},
|
||||
{
|
||||
holdingsListModel: root.createHoldingsModel2(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false
|
||||
},
|
||||
{
|
||||
holdingsListModel: root.createHoldingsModel1(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false
|
||||
}
|
||||
]
|
||||
|
@ -91,14 +91,14 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel1(),
|
||||
channelsListModel: root.createChannelsModel1(),
|
||||
permissionType: PermissionTypes.Type.Admin,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: true
|
||||
},
|
||||
{
|
||||
holdingsListModel: root.createHoldingsModel2(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false
|
||||
}
|
||||
]
|
||||
|
@ -108,14 +108,14 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel5(),
|
||||
channelsListModel: root.createChannelsModel1(),
|
||||
permissionType: PermissionTypes.Type.Admin,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: true
|
||||
},
|
||||
{
|
||||
holdingsListModel: root.createHoldingsModel4(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false
|
||||
}
|
||||
]
|
||||
|
@ -125,21 +125,21 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel1(),
|
||||
channelsListModel: root.createChannelsModel1(),
|
||||
permissionType: PermissionTypes.Type.Admin,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: true
|
||||
},
|
||||
{
|
||||
holdingsListModel: root.createHoldingsModel1b(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false
|
||||
},
|
||||
{
|
||||
holdingsListModel: root.createHoldingsModel2(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false
|
||||
}
|
||||
]
|
||||
|
@ -149,28 +149,28 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel1(),
|
||||
channelsListModel: root.createChannelsModel1(),
|
||||
permissionType: PermissionTypes.Type.Admin,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: true
|
||||
},
|
||||
{
|
||||
holdingsListModel: root.createHoldingsModel2(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false
|
||||
},
|
||||
{
|
||||
holdingsListModel: root.createHoldingsModel3(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false
|
||||
},
|
||||
{
|
||||
holdingsListModel: root.createHoldingsModel5(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false
|
||||
}
|
||||
]
|
||||
|
@ -181,7 +181,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel2b(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Admin,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: true
|
||||
},
|
||||
|
@ -190,7 +190,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel3(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Admin,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: false
|
||||
},
|
||||
|
@ -199,7 +199,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel2(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: true
|
||||
},
|
||||
|
@ -208,7 +208,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel3(),
|
||||
channelsListModel: root.createChannelsModel2(),
|
||||
permissionType: PermissionTypes.Type.Member,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: false
|
||||
}
|
||||
|
@ -255,7 +255,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel1b(),
|
||||
channelsListModel: root.createChannelsModel1(),
|
||||
permissionType: PermissionTypes.Type.Read,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: true
|
||||
},
|
||||
|
@ -264,7 +264,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel1(),
|
||||
channelsListModel: root.createChannelsModel1(),
|
||||
permissionType: PermissionTypes.Type.Read,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: false
|
||||
},
|
||||
|
@ -273,7 +273,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel3(),
|
||||
channelsListModel: root.createChannelsModel1(),
|
||||
permissionType: PermissionTypes.Type.Read,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: false
|
||||
},
|
||||
|
@ -282,7 +282,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel2(),
|
||||
channelsListModel: root.createChannelsModel3(),
|
||||
permissionType: PermissionTypes.Type.Read,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: true
|
||||
},
|
||||
|
@ -291,7 +291,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel5(),
|
||||
channelsListModel: root.createChannelsModel3(),
|
||||
permissionType: PermissionTypes.Type.Read,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: false
|
||||
},
|
||||
|
@ -300,7 +300,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel3(),
|
||||
channelsListModel: root.createChannelsModel1(),
|
||||
permissionType: PermissionTypes.Type.ViewAndPost,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: false
|
||||
},
|
||||
|
@ -309,7 +309,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel2b(),
|
||||
channelsListModel: root.createChannelsModel1(),
|
||||
permissionType: PermissionTypes.Type.ViewAndPost,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: true
|
||||
},
|
||||
|
@ -318,7 +318,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel3(),
|
||||
channelsListModel: root.createChannelsModel3(),
|
||||
permissionType: PermissionTypes.Type.ViewAndPost,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: false
|
||||
},
|
||||
|
@ -327,7 +327,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel5(),
|
||||
channelsListModel: root.createChannelsModel3(),
|
||||
permissionType: PermissionTypes.Type.ViewAndPost,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: false
|
||||
},
|
||||
|
@ -336,7 +336,7 @@ QtObject {
|
|||
holdingsListModel: root.createHoldingsModel1(),
|
||||
channelsListModel: root.createChannelsModel3(),
|
||||
permissionType: PermissionTypes.Type.ViewAndPost,
|
||||
permissionState: PermissionTypes.State.Active,
|
||||
permissionState: PermissionTypes.State.Approved,
|
||||
isPrivate: false,
|
||||
tokenCriteriaMet: false
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ Control{
|
|||
property var channelsListModel
|
||||
|
||||
property int permissionType: PermissionTypes.Type.None
|
||||
property int permissionState: PermissionTypes.State.Active
|
||||
property int permissionState: PermissionTypes.State.Approved
|
||||
property bool isPrivate: false
|
||||
property bool showButtons: true
|
||||
|
||||
|
@ -34,20 +34,20 @@ Control{
|
|||
readonly property int buttonDiameter: 36
|
||||
readonly property int buttonTextSpacing: 6
|
||||
readonly property int headerIconleftMargin: 20
|
||||
readonly property bool isActiveState: root.permissionState === PermissionTypes.State.Active
|
||||
readonly property bool isDeletingState: root.permissionState === PermissionTypes.State.Deleting
|
||||
readonly property bool isActiveState: root.permissionState === PermissionTypes.State.Approved
|
||||
readonly property bool isDeletingState: root.permissionState === PermissionTypes.State.RemovalPending
|
||||
|
||||
function getStateText(state) {
|
||||
if(state === PermissionTypes.State.Active)
|
||||
if(state === PermissionTypes.State.Approved)
|
||||
return qsTr("Active")
|
||||
|
||||
if(state === PermissionTypes.State.Creating)
|
||||
if(state === PermissionTypes.State.AdditionPending)
|
||||
return qsTr("Pending, will become active once owner node comes online")
|
||||
|
||||
if(state === PermissionTypes.State.Deleting)
|
||||
if(state === PermissionTypes.State.RemovalPending)
|
||||
return qsTr("Deletion pending, will be deleted once owner node comes online")
|
||||
|
||||
if(state === PermissionTypes.State.Editing)
|
||||
if(state === PermissionTypes.State.UpdatePending)
|
||||
return qsTr("Pending updates will be applied when owner node comes online")
|
||||
}
|
||||
}
|
||||
|
@ -261,6 +261,9 @@ Control{
|
|||
Layout.preferredWidth: Layout.preferredHeight
|
||||
type: StatusRoundButton.Type.Primary
|
||||
onClicked: root.editClicked()
|
||||
|
||||
// FIXME: implement undo operation first
|
||||
enabled: d.isActiveState
|
||||
}
|
||||
StatusBaseText {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
|
@ -297,10 +300,13 @@ Control{
|
|||
Layout.preferredWidth: Layout.preferredHeight
|
||||
type: StatusRoundButton.Type.Quaternary
|
||||
onClicked: root.removeClicked()
|
||||
|
||||
// FIXME: implement undo operation first
|
||||
enabled: d.isActiveState
|
||||
}
|
||||
StatusBaseText {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
text: d.isDeletingState ? qsTr("Undo delete") : qsTr("Delete")
|
||||
text: /*d.isDeletingState*/false ? qsTr("Undo delete") : qsTr("Delete")
|
||||
color: Theme.palette.dangerColor1
|
||||
font.pixelSize: d.buttonTextPixelSize
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ QtObject {
|
|||
}
|
||||
|
||||
enum State {
|
||||
Active, Creating, Deleting, Editing
|
||||
Approved, AdditionPending, UpdatePending, RemovalPending
|
||||
}
|
||||
|
||||
function getName(type) {
|
||||
|
|
Loading…
Reference in New Issue