chore: Sligthly improve chat permissions page design
This commit is contained in:
parent
9e737276b6
commit
020b6768eb
2 changed files with 58 additions and 20 deletions
|
|
@ -673,7 +673,7 @@
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"placeholders": {}
|
"placeholders": {}
|
||||||
},
|
},
|
||||||
"defaultPermissionLevel": "Default permission level",
|
"defaultPermissionLevel": "Default permission level for new users",
|
||||||
"@defaultPermissionLevel": {
|
"@defaultPermissionLevel": {
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"placeholders": {}
|
"placeholders": {}
|
||||||
|
|
@ -2711,5 +2711,33 @@
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"space": {}
|
"space": {}
|
||||||
},
|
},
|
||||||
"markAsUnread": "Mark as unread"
|
"markAsUnread": "Mark as unread",
|
||||||
|
"userLevel": "{level} - User",
|
||||||
|
"@userLevel": {
|
||||||
|
"type": "text",
|
||||||
|
"placeholders": {
|
||||||
|
"level": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"moderatorLevel": "{level} - Moderator",
|
||||||
|
"@moderatorLevel": {
|
||||||
|
"type": "text",
|
||||||
|
"placeholders": {
|
||||||
|
"level": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"adminLevel": "{level} - Admin",
|
||||||
|
"@adminLevel": {
|
||||||
|
"type": "text",
|
||||||
|
"placeholders": {
|
||||||
|
"level": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"changeGeneralChatSettings": "Change general chat settings",
|
||||||
|
"inviteOtherUsers": "Invite other users to this chat",
|
||||||
|
"changeTheChatPermissions": "Change the chat permissions",
|
||||||
|
"changeTheVisibilityOfChatHistory": "Change the visibility of the chat history",
|
||||||
|
"changeTheCanonicalRoomAlias": "Change the main public chat address",
|
||||||
|
"sendRoomNotifications": "Send a @room notifications",
|
||||||
|
"changeTheDescriptionOfTheGroup": "Change the description of the chat"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ class PermissionsListTile extends StatelessWidget {
|
||||||
case 'events_default':
|
case 'events_default':
|
||||||
return L10n.of(context)!.sendMessages;
|
return L10n.of(context)!.sendMessages;
|
||||||
case 'state_default':
|
case 'state_default':
|
||||||
return L10n.of(context)!.configureChat;
|
return L10n.of(context)!.changeGeneralChatSettings;
|
||||||
case 'ban':
|
case 'ban':
|
||||||
return L10n.of(context)!.banFromChat;
|
return L10n.of(context)!.banFromChat;
|
||||||
case 'kick':
|
case 'kick':
|
||||||
|
|
@ -37,23 +37,25 @@ class PermissionsListTile extends StatelessWidget {
|
||||||
case 'redact':
|
case 'redact':
|
||||||
return L10n.of(context)!.deleteMessage;
|
return L10n.of(context)!.deleteMessage;
|
||||||
case 'invite':
|
case 'invite':
|
||||||
return L10n.of(context)!.inviteContact;
|
return L10n.of(context)!.inviteOtherUsers;
|
||||||
}
|
}
|
||||||
} else if (category == 'notifications') {
|
} else if (category == 'notifications') {
|
||||||
switch (permissionKey) {
|
switch (permissionKey) {
|
||||||
case 'rooms':
|
case 'rooms':
|
||||||
return L10n.of(context)!.notifications;
|
return L10n.of(context)!.sendRoomNotifications;
|
||||||
}
|
}
|
||||||
} else if (category == 'events') {
|
} else if (category == 'events') {
|
||||||
switch (permissionKey) {
|
switch (permissionKey) {
|
||||||
case EventTypes.RoomName:
|
case EventTypes.RoomName:
|
||||||
return L10n.of(context)!.changeTheNameOfTheGroup;
|
return L10n.of(context)!.changeTheNameOfTheGroup;
|
||||||
|
case EventTypes.RoomTopic:
|
||||||
|
return L10n.of(context)!.changeTheDescriptionOfTheGroup;
|
||||||
case EventTypes.RoomPowerLevels:
|
case EventTypes.RoomPowerLevels:
|
||||||
return L10n.of(context)!.chatPermissions;
|
return L10n.of(context)!.changeTheChatPermissions;
|
||||||
case EventTypes.HistoryVisibility:
|
case EventTypes.HistoryVisibility:
|
||||||
return L10n.of(context)!.visibilityOfTheChatHistory;
|
return L10n.of(context)!.changeTheVisibilityOfChatHistory;
|
||||||
case EventTypes.RoomCanonicalAlias:
|
case EventTypes.RoomCanonicalAlias:
|
||||||
return L10n.of(context)!.setInvitationLink;
|
return L10n.of(context)!.changeTheCanonicalRoomAlias;
|
||||||
case EventTypes.RoomAvatar:
|
case EventTypes.RoomAvatar:
|
||||||
return L10n.of(context)!.editRoomAvatar;
|
return L10n.of(context)!.editRoomAvatar;
|
||||||
case EventTypes.RoomTombstone:
|
case EventTypes.RoomTombstone:
|
||||||
|
|
@ -69,32 +71,40 @@ class PermissionsListTile extends StatelessWidget {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final color = permission >= 100
|
||||||
|
? Colors.orangeAccent
|
||||||
|
: permission >= 50
|
||||||
|
? Colors.blueAccent
|
||||||
|
: Colors.greenAccent;
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text(getLocalizedPowerLevelString(context)),
|
title: Text(
|
||||||
subtitle: Text(
|
getLocalizedPowerLevelString(context),
|
||||||
L10n.of(context)!.minimumPowerLevel(permission.toString()),
|
style: Theme.of(context).textTheme.titleSmall,
|
||||||
),
|
),
|
||||||
trailing: Material(
|
trailing: Material(
|
||||||
borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2),
|
color: color.withAlpha(64),
|
||||||
color: Theme.of(context).colorScheme.onInverseSurface,
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2),
|
||||||
|
side: BorderSide(color: color),
|
||||||
|
),
|
||||||
child: DropdownButton<int>(
|
child: DropdownButton<int>(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 8.0),
|
padding: const EdgeInsets.symmetric(horizontal: 8.0),
|
||||||
borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2),
|
borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2),
|
||||||
underline: const SizedBox.shrink(),
|
underline: const SizedBox.shrink(),
|
||||||
onChanged: canEdit ? onChanged : null,
|
onChanged: canEdit ? onChanged : null,
|
||||||
value: {0, 50, 100}.contains(permission) ? permission : null,
|
value: permission,
|
||||||
items: [
|
items: [
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
value: 0,
|
value: permission < 50 ? permission : 0,
|
||||||
child: Text(L10n.of(context)!.user),
|
child: Text(L10n.of(context)!.userLevel(permission)),
|
||||||
),
|
),
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
value: 50,
|
value: permission < 100 && permission >= 50 ? permission : 50,
|
||||||
child: Text(L10n.of(context)!.moderator),
|
child: Text(L10n.of(context)!.moderatorLevel(permission)),
|
||||||
),
|
),
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
value: 100,
|
value: permission >= 100 ? permission : 100,
|
||||||
child: Text(L10n.of(context)!.admin),
|
child: Text(L10n.of(context)!.adminLevel(permission)),
|
||||||
),
|
),
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
value: null,
|
value: null,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue