don't show pin, remove or ban when user is mod or owner
This commit is contained in:
		| @@ -330,12 +330,14 @@ namespace MareSynchronos.UI | |||||||
|  |  | ||||||
|                 if (UiShared.IconTextButton(FontAwesomeIcon.Copy, "Copy ID")) |                 if (UiShared.IconTextButton(FontAwesomeIcon.Copy, "Copy ID")) | ||||||
|                 { |                 { | ||||||
|  |                     ImGui.CloseCurrentPopup(); | ||||||
|                     ImGui.SetClipboardText(string.IsNullOrEmpty(entry.Alias) ? entry.GID : entry.Alias); |                     ImGui.SetClipboardText(string.IsNullOrEmpty(entry.Alias) ? entry.GID : entry.Alias); | ||||||
|                 } |                 } | ||||||
|                 UiShared.AttachToolTip("Copy Syncshell ID to Clipboard"); |                 UiShared.AttachToolTip("Copy Syncshell ID to Clipboard"); | ||||||
|  |  | ||||||
|                 if (UiShared.IconTextButton(FontAwesomeIcon.StickyNote, "Copy Notes")) |                 if (UiShared.IconTextButton(FontAwesomeIcon.StickyNote, "Copy Notes")) | ||||||
|                 { |                 { | ||||||
|  |                     ImGui.CloseCurrentPopup(); | ||||||
|                     ImGui.SetClipboardText(_uiShared.GetNotes(entry.GID)); |                     ImGui.SetClipboardText(_uiShared.GetNotes(entry.GID)); | ||||||
|                 } |                 } | ||||||
|                 UiShared.AttachToolTip("Copies all your notes for all users in this Syncshell to the clipboard." + Environment.NewLine + "They can be imported via Settings -> Privacy -> Import Notes from Clipboard"); |                 UiShared.AttachToolTip("Copies all your notes for all users in this Syncshell to the clipboard." + Environment.NewLine + "They can be imported via Settings -> Privacy -> Import Notes from Clipboard"); | ||||||
| @@ -348,12 +350,14 @@ namespace MareSynchronos.UI | |||||||
|                     { |                     { | ||||||
|                         if (UiShared.IconTextButton(lockedIcon, invitesEnabled ? "Lock Syncshell" : "Unlock Syncshell")) |                         if (UiShared.IconTextButton(lockedIcon, invitesEnabled ? "Lock Syncshell" : "Unlock Syncshell")) | ||||||
|                         { |                         { | ||||||
|  |                             ImGui.CloseCurrentPopup(); | ||||||
|                             _ = _apiController.SendGroupChangeInviteState(entry.GID, !entry.InvitesEnabled ?? true); |                             _ = _apiController.SendGroupChangeInviteState(entry.GID, !entry.InvitesEnabled ?? true); | ||||||
|                         } |                         } | ||||||
|                         UiShared.AttachToolTip("Change Syncshell joining permissions" + Environment.NewLine + "Syncshell is currently " + (invitesEnabled ? "open" : "closed") + " for people to join"); |                         UiShared.AttachToolTip("Change Syncshell joining permissions" + Environment.NewLine + "Syncshell is currently " + (invitesEnabled ? "open" : "closed") + " for people to join"); | ||||||
|  |  | ||||||
|                         if (UiShared.IconTextButton(FontAwesomeIcon.Passport, "Change Password")) |                         if (UiShared.IconTextButton(FontAwesomeIcon.Passport, "Change Password")) | ||||||
|                         { |                         { | ||||||
|  |                             ImGui.CloseCurrentPopup(); | ||||||
|                             ImGui.OpenPopup("Change Syncshell Password"); |                             ImGui.OpenPopup("Change Syncshell Password"); | ||||||
|                             _isPasswordValid = true; |                             _isPasswordValid = true; | ||||||
|                             _showModalChangePassword = true; |                             _showModalChangePassword = true; | ||||||
| @@ -386,6 +390,7 @@ namespace MareSynchronos.UI | |||||||
|                     { |                     { | ||||||
|                         if (UiShared.CtrlPressed()) |                         if (UiShared.CtrlPressed()) | ||||||
|                         { |                         { | ||||||
|  |                             ImGui.CloseCurrentPopup(); | ||||||
|                             _ = _apiController.SendClearGroup(entry.GID); |                             _ = _apiController.SendClearGroup(entry.GID); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
| @@ -394,6 +399,7 @@ namespace MareSynchronos.UI | |||||||
|  |  | ||||||
|                     if (UiShared.IconTextButton(FontAwesomeIcon.Ban, "Manage Banlist")) |                     if (UiShared.IconTextButton(FontAwesomeIcon.Ban, "Manage Banlist")) | ||||||
|                     { |                     { | ||||||
|  |                         ImGui.CloseCurrentPopup(); | ||||||
|                         _showModalBanList = true; |                         _showModalBanList = true; | ||||||
|                         _bannedUsers = new(); |                         _bannedUsers = new(); | ||||||
|                         ImGui.OpenPopup("Manage Banlist for " + entry.GID); |                         ImGui.OpenPopup("Manage Banlist for " + entry.GID); | ||||||
| @@ -447,6 +453,7 @@ namespace MareSynchronos.UI | |||||||
|                         { |                         { | ||||||
|                             if (UiShared.CtrlPressed() && UiShared.ShiftPressed()) |                             if (UiShared.CtrlPressed() && UiShared.ShiftPressed()) | ||||||
|                             { |                             { | ||||||
|  |                                 ImGui.CloseCurrentPopup(); | ||||||
|                                 _ = _apiController.SendDeleteGroup(entry.GID); |                                 _ = _apiController.SendDeleteGroup(entry.GID); | ||||||
|                             } |                             } | ||||||
|                         } |                         } | ||||||
| @@ -466,6 +473,8 @@ namespace MareSynchronos.UI | |||||||
|             var textSize = ImGui.CalcTextSize(entryUID); |             var textSize = ImGui.CalcTextSize(entryUID); | ||||||
|             var originalY = ImGui.GetCursorPosY(); |             var originalY = ImGui.GetCursorPosY(); | ||||||
|             var buttonSizes = plusButtonSize.Y; |             var buttonSizes = plusButtonSize.Y; | ||||||
|  |             var userIsMod = string.Equals(entry.UserUID, ownerUid, StringComparison.Ordinal); | ||||||
|  |             var userIsOwner = string.Equals(entry.UserAlias, ownerUid, StringComparison.Ordinal); | ||||||
|  |  | ||||||
|             var textPos = originalY + plusButtonSize.Y / 2 - textSize.Y / 2; |             var textPos = originalY + plusButtonSize.Y / 2 - textSize.Y / 2; | ||||||
|             ImGui.SetCursorPosY(textPos); |             ImGui.SetCursorPosY(textPos); | ||||||
| @@ -589,7 +598,7 @@ namespace MareSynchronos.UI | |||||||
|                 UiShared.AttachToolTip("Pair with " + entryUID + " individually"); |                 UiShared.AttachToolTip("Pair with " + entryUID + " individually"); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             if (isOwner || isModerator) |             if (isOwner || (isModerator && !userIsMod && !userIsOwner)) | ||||||
|             { |             { | ||||||
|                 ImGui.SetCursorPosY(originalY); |                 ImGui.SetCursorPosY(originalY); | ||||||
|                 var subtractedWidth = plusButtonShown ? (plusButtonSize.X) : 0; |                 var subtractedWidth = plusButtonShown ? (plusButtonSize.X) : 0; | ||||||
| @@ -603,20 +612,21 @@ namespace MareSynchronos.UI | |||||||
|  |  | ||||||
|             if (ImGui.BeginPopup("Popup")) |             if (ImGui.BeginPopup("Popup")) | ||||||
|             { |             { | ||||||
|                 if (UiShared.IconTextButton(FontAwesomeIcon.Thumbtack, "Pin user")) |  | ||||||
|                 { |  | ||||||
|                     _ = _apiController.SendChangeUserPinned(entry.GroupGID, entry.UserUID, !entry.IsPinned ?? false); |  | ||||||
|                 } |  | ||||||
|                 UiShared.AttachToolTip("Pin this user to the Syncshell. Pinned users will not be deleted in case of a manually initiated Syncshell clean"); |  | ||||||
|  |  | ||||||
|                 var userIsMod = string.Equals(entry.UserUID, ownerUid, StringComparison.Ordinal); |  | ||||||
|                 var userIsOwner = string.Equals(entry.UserAlias, ownerUid, StringComparison.Ordinal); |  | ||||||
|                 if ((!entry.IsModerator ?? false) && !(userIsMod || userIsOwner)) |                 if ((!entry.IsModerator ?? false) && !(userIsMod || userIsOwner)) | ||||||
|                 { |                 { | ||||||
|  |                     var pinText = (entry?.IsPinned ?? false) ? "Unpin user" : "Pin user"; | ||||||
|  |                     if (UiShared.IconTextButton(FontAwesomeIcon.Thumbtack, pinText)) | ||||||
|  |                     { | ||||||
|  |                         ImGui.CloseCurrentPopup(); | ||||||
|  |                         _ = _apiController.SendChangeUserPinned(entry.GroupGID, entry.UserUID, !entry.IsPinned ?? false); | ||||||
|  |                     } | ||||||
|  |                     UiShared.AttachToolTip("Pin this user to the Syncshell. Pinned users will not be deleted in case of a manually initiated Syncshell clean"); | ||||||
|  |  | ||||||
|                     if (UiShared.IconTextButton(FontAwesomeIcon.Trash, "Remove user")) |                     if (UiShared.IconTextButton(FontAwesomeIcon.Trash, "Remove user")) | ||||||
|                     { |                     { | ||||||
|                         if (UiShared.CtrlPressed()) |                         if (UiShared.CtrlPressed()) | ||||||
|                         { |                         { | ||||||
|  |                             ImGui.CloseCurrentPopup(); | ||||||
|                             _ = _apiController.SendRemoveUserFromGroup(entry.GroupGID, entry.UserUID); |                             _ = _apiController.SendRemoveUserFromGroup(entry.GroupGID, entry.UserUID); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
| @@ -625,6 +635,7 @@ namespace MareSynchronos.UI | |||||||
|                     if (UiShared.IconTextButton(FontAwesomeIcon.UserSlash, "Ban User")) |                     if (UiShared.IconTextButton(FontAwesomeIcon.UserSlash, "Ban User")) | ||||||
|                     { |                     { | ||||||
|                         _showModalBanUser = true; |                         _showModalBanUser = true; | ||||||
|  |                         ImGui.CloseCurrentPopup(); | ||||||
|                         ImGui.OpenPopup("Ban User"); |                         ImGui.OpenPopup("Ban User"); | ||||||
|                     } |                     } | ||||||
|                     UiShared.AttachToolTip("Ban user from this Syncshell"); |                     UiShared.AttachToolTip("Ban user from this Syncshell"); | ||||||
| @@ -636,6 +647,7 @@ namespace MareSynchronos.UI | |||||||
|                         ImGui.InputTextWithHint("##banreason", "Ban Reason", ref _banReason, 255); |                         ImGui.InputTextWithHint("##banreason", "Ban Reason", ref _banReason, 255); | ||||||
|                         if (ImGui.Button("Ban User")) |                         if (ImGui.Button("Ban User")) | ||||||
|                         { |                         { | ||||||
|  |                             ImGui.CloseCurrentPopup(); | ||||||
|                             var reason = _banReason; |                             var reason = _banReason; | ||||||
|                             _ = _apiController.BanUserFromGroup(entry.GroupGID, entry.UserUID, reason); |                             _ = _apiController.BanUserFromGroup(entry.GroupGID, entry.UserUID, reason); | ||||||
|                             _banReason = string.Empty; |                             _banReason = string.Empty; | ||||||
| @@ -652,6 +664,7 @@ namespace MareSynchronos.UI | |||||||
|                     { |                     { | ||||||
|                         if (UiShared.CtrlPressed()) |                         if (UiShared.CtrlPressed()) | ||||||
|                         { |                         { | ||||||
|  |                             ImGui.CloseCurrentPopup(); | ||||||
|                             _ = _apiController.SetModeratorForGroup(entry.GroupGID, entry.UserUID, !entry.IsModerator ?? false); |                             _ = _apiController.SetModeratorForGroup(entry.GroupGID, entry.UserUID, !entry.IsModerator ?? false); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
| @@ -661,6 +674,7 @@ namespace MareSynchronos.UI | |||||||
|                     { |                     { | ||||||
|                         if (UiShared.CtrlPressed() && UiShared.ShiftPressed()) |                         if (UiShared.CtrlPressed() && UiShared.ShiftPressed()) | ||||||
|                         { |                         { | ||||||
|  |                             ImGui.CloseCurrentPopup(); | ||||||
|                             _ = _apiController.ChangeOwnerOfGroup(entry.GroupGID, entry.UserUID); |                             _ = _apiController.ChangeOwnerOfGroup(entry.GroupGID, entry.UserUID); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Stanley Dimant
					Stanley Dimant