diff --git a/server/server.go b/server/server.go index b67c354f..311a9ec3 100644 --- a/server/server.go +++ b/server/server.go @@ -37,11 +37,9 @@ import ( - HIGH Rate limiting: Sensitive endpoints (account/login/change-password/...) - HIGH Docs - HIGH CLI +- MEDIUM: Test for expiring messages after reservation removal - MEDIUM: Test new token endpoints & never-expiring token - MEDIUM: Make sure account endpoints make sense for admins -- MEDIUM: Reservation (UI): Show "This topic is reserved" error message when trying to reserve a reserved topic (Thorben) -- MEDIUM: Reservation (UI): Ask for confirmation when removing reservation (deadcade) -- MEDIUM: Reservation table delete button: dialog "keep or delete messages?" - LOW: UI: Flickering upgrade banner when logging in */ diff --git a/web/src/components/Navigation.js b/web/src/components/Navigation.js index e188d4ca..57ba6c39 100644 --- a/web/src/components/Navigation.js +++ b/web/src/components/Navigation.js @@ -276,43 +276,45 @@ const SubscriptionItem = (props) => { }; return ( - <ListItemButton onClick={handleClick} selected={props.selected} aria-label={ariaLabel} aria-live="polite"> - <ListItemIcon>{icon}</ListItemIcon> - <ListItemText primary={displayName} primaryTypographyProps={{ style: { overflow: "hidden", textOverflow: "ellipsis" } }}/> - {subscription.reservation?.everyone && - <ListItemIcon edge="end" sx={{ minWidth: "26px" }}> - {subscription.reservation?.everyone === Permission.READ_WRITE && - <Tooltip title={t("prefs_reservations_table_everyone_read_write")}><PermissionReadWrite size="small"/></Tooltip> - } - {subscription.reservation?.everyone === Permission.READ_ONLY && - <Tooltip title={t("prefs_reservations_table_everyone_read_only")}><PermissionRead size="small"/></Tooltip> - } - {subscription.reservation?.everyone === Permission.WRITE_ONLY && - <Tooltip title={t("prefs_reservations_table_everyone_write_only")}><PermissionWrite size="small"/></Tooltip> - } - {subscription.reservation?.everyone === Permission.DENY_ALL && - <Tooltip title={t("prefs_reservations_table_everyone_deny_all")}><PermissionDenyAll size="small"/></Tooltip> - } + <> + <ListItemButton onClick={handleClick} selected={props.selected} aria-label={ariaLabel} aria-live="polite"> + <ListItemIcon>{icon}</ListItemIcon> + <ListItemText primary={displayName} primaryTypographyProps={{ style: { overflow: "hidden", textOverflow: "ellipsis" } }}/> + {subscription.reservation?.everyone && + <ListItemIcon edge="end" sx={{ minWidth: "26px" }}> + {subscription.reservation?.everyone === Permission.READ_WRITE && + <Tooltip title={t("prefs_reservations_table_everyone_read_write")}><PermissionReadWrite size="small"/></Tooltip> + } + {subscription.reservation?.everyone === Permission.READ_ONLY && + <Tooltip title={t("prefs_reservations_table_everyone_read_only")}><PermissionRead size="small"/></Tooltip> + } + {subscription.reservation?.everyone === Permission.WRITE_ONLY && + <Tooltip title={t("prefs_reservations_table_everyone_write_only")}><PermissionWrite size="small"/></Tooltip> + } + {subscription.reservation?.everyone === Permission.DENY_ALL && + <Tooltip title={t("prefs_reservations_table_everyone_deny_all")}><PermissionDenyAll size="small"/></Tooltip> + } + </ListItemIcon> + } + {subscription.mutedUntil > 0 && + <ListItemIcon edge="end" sx={{ minWidth: "26px" }} aria-label={t("nav_button_muted")}> + <Tooltip title={t("nav_button_muted")}><NotificationsOffOutlined /></Tooltip> + </ListItemIcon> + } + <ListItemIcon edge="end" sx={{minWidth: "26px"}}> + <IconButton size="small" onMouseDown={(e) => e.stopPropagation()} onClick={(e) => setMenuAnchorEl(e.currentTarget)}> + <MoreVert fontSize="small"/> + </IconButton> </ListItemIcon> - } - {subscription.mutedUntil > 0 && - <ListItemIcon edge="end" sx={{ minWidth: "26px" }} aria-label={t("nav_button_muted")}> - <Tooltip title={t("nav_button_muted")}><NotificationsOffOutlined /></Tooltip> - </ListItemIcon> - } - <ListItemIcon edge="end" sx={{minWidth: "26px"}}> - <IconButton size="small" onMouseDown={(e) => e.stopPropagation()} onClick={(e) => setMenuAnchorEl(e.currentTarget)}> - <MoreVert fontSize="small"/> - </IconButton> - <Portal> - <SubscriptionPopup - subscription={subscription} - anchor={menuAnchorEl} - onClose={() => setMenuAnchorEl(null)} - /> - </Portal> - </ListItemIcon> - </ListItemButton> + </ListItemButton> + <Portal> + <SubscriptionPopup + subscription={subscription} + anchor={menuAnchorEl} + onClose={() => setMenuAnchorEl(null)} + /> + </Portal> + </> ); };