mirror of
https://github.com/KeyKeeperApp/KeyKeeper.git
synced 2026-05-19 14:56:34 +03:00
add "Remove from this group" context menu action
This commit is contained in:
@@ -143,6 +143,16 @@ public class UnlockedRepositoryViewModel : ViewModelBase
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void RemoveEntryFromGroup(PassStoreEntry entry)
|
||||||
|
{
|
||||||
|
if (currentDirectory.GroupType == FileFormatConstants.GROUP_TYPE_DEFAULT)
|
||||||
|
return;
|
||||||
|
|
||||||
|
passStore.DeleteEntry(currentDirectory, entry.Id);
|
||||||
|
HasUnsavedChanges = true;
|
||||||
|
OnPropertyChanged(nameof(Passwords));
|
||||||
|
}
|
||||||
|
|
||||||
public void UpdateEntry(PassStoreEntryPassword updatedEntry)
|
public void UpdateEntry(PassStoreEntryPassword updatedEntry)
|
||||||
{
|
{
|
||||||
passStore.UpdateEntry(null, updatedEntry.Id, updatedEntry);
|
passStore.UpdateEntry(null, updatedEntry.Id, updatedEntry);
|
||||||
|
|||||||
@@ -159,6 +159,7 @@
|
|||||||
<MenuItem Name="entryCtxMenuCopyPassword" Header="Copy password" Click="EntryContextMenuItem_Click"/>
|
<MenuItem Name="entryCtxMenuCopyPassword" Header="Copy password" Click="EntryContextMenuItem_Click"/>
|
||||||
<MenuItem Name="entryCtxMenuEdit" Header="Edit" Click="EntryContextMenuItem_Click"/>
|
<MenuItem Name="entryCtxMenuEdit" Header="Edit" Click="EntryContextMenuItem_Click"/>
|
||||||
<MenuItem Name="entryCtxMenuAddToGroup" Header="Add to group" />
|
<MenuItem Name="entryCtxMenuAddToGroup" Header="Add to group" />
|
||||||
|
<MenuItem Name="entryCtxMenuRemoveFromGroup" Header="Remove from this group" Click="EntryContextMenuItem_Click" />
|
||||||
<MenuItem Name="entryCtxMenuDelete" Header="Delete" Click="EntryContextMenuItem_Click"/>
|
<MenuItem Name="entryCtxMenuDelete" Header="Delete" Click="EntryContextMenuItem_Click"/>
|
||||||
</ContextMenu>
|
</ContextMenu>
|
||||||
</Border.ContextMenu>
|
</Border.ContextMenu>
|
||||||
|
|||||||
@@ -242,6 +242,16 @@ public partial class RepositoryWindow : Window
|
|||||||
.OfType<MenuItem>()
|
.OfType<MenuItem>()
|
||||||
.FirstOrDefault(m => m.Name == "entryCtxMenuAddToGroup");
|
.FirstOrDefault(m => m.Name == "entryCtxMenuAddToGroup");
|
||||||
|
|
||||||
|
var removeFromGroupItem = contextMenu.Items
|
||||||
|
.OfType<MenuItem>()
|
||||||
|
.FirstOrDefault(m => m.Name == "entryCtxMenuRemoveFromGroup");
|
||||||
|
|
||||||
|
var isNonDefaultGroup = pageVm.SelectedPasswordGroup.GroupType != FileFormatConstants.GROUP_TYPE_DEFAULT;
|
||||||
|
if (removeFromGroupItem != null)
|
||||||
|
{
|
||||||
|
removeFromGroupItem.IsVisible = isNonDefaultGroup;
|
||||||
|
}
|
||||||
|
|
||||||
if (addToGroupItem == null)
|
if (addToGroupItem == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -309,6 +319,14 @@ public partial class RepositoryWindow : Window
|
|||||||
EditEntry(vm, pageVm, ent);
|
EditEntry(vm, pageVm, ent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (s.Name == "entryCtxMenuRemoveFromGroup")
|
||||||
|
{
|
||||||
|
if (DataContext is RepositoryWindowViewModel vm && vm.CurrentPage is UnlockedRepositoryViewModel pageVm)
|
||||||
|
{
|
||||||
|
pageVm.RemoveEntryFromGroup(ent);
|
||||||
|
this.FindControlRecursive<ToastNotificationHost>("NotificationHost")?.Show("Removed from group");
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (s.Name == "entryCtxMenuDelete")
|
else if (s.Name == "entryCtxMenuDelete")
|
||||||
{
|
{
|
||||||
if (DataContext is RepositoryWindowViewModel vm && vm.CurrentPage is UnlockedRepositoryViewModel pageVm)
|
if (DataContext is RepositoryWindowViewModel vm && vm.CurrentPage is UnlockedRepositoryViewModel pageVm)
|
||||||
|
|||||||
Reference in New Issue
Block a user