|
|
@@ -466,68 +466,79 @@ public partial class DataEntryList : UserControl, ICorePanel, IDockPanel
|
|
|
|
|
|
private void _uploadMenu_OnOpened(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
+ _uploadMenu.Items.Clear();
|
|
|
+
|
|
|
+ _uploadMenu.AddItem("Load from File", null, _addItem_OnClick);
|
|
|
if (Clipboard.ContainsText())
|
|
|
{
|
|
|
- _pasteItem.Header = "Paste Text from Clipboard";
|
|
|
- _pasteItem.Visibility = Visibility.Visible;
|
|
|
+ _uploadMenu.AddItem("Paste Text from Clipboard", null, _pasteItem_OnClick);
|
|
|
}
|
|
|
else if (Clipboard.ContainsImage())
|
|
|
{
|
|
|
- _pasteItem.Header = "Paste Image from Clipboard";
|
|
|
- _pasteItem.Visibility = Visibility.Visible;
|
|
|
+ _uploadMenu.AddItem("Paste Image from Clipboard", null, _pasteItem_OnClick);
|
|
|
}
|
|
|
else if (Clipboard.ContainsFileDropList())
|
|
|
{
|
|
|
int count = CheckAllowableFiles();
|
|
|
if (count > 0)
|
|
|
{
|
|
|
- _pasteItem.Header = $@"Paste {count} File{(count > 1 ? "s" : "")} from Clipboard";
|
|
|
- _pasteItem.Visibility = Visibility.Visible;
|
|
|
+ _uploadMenu.AddItem($@"Paste {count} File{(count > 1 ? "s" : "")} from Clipboard", null, _pasteItem_OnClick);
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
- _pasteItem.Visibility = Visibility.Collapsed;
|
|
|
-
|
|
|
- _archive.Visibility = _dataEntryGrid.SelectedRows.Any() && Security.CanEdit<DataEntryDocument>()
|
|
|
- ? Visibility.Visible
|
|
|
- : Visibility.Collapsed;
|
|
|
-
|
|
|
- _archiveseparator.Visibility = _archive.Visibility;
|
|
|
-
|
|
|
- _tags ??= DataEntryGrid.GetVisibleTagList();
|
|
|
- _changeTag.Items.Clear();
|
|
|
-
|
|
|
- foreach (var tag in _tags)
|
|
|
- _changeTag.Items.Add(new MenuItem()
|
|
|
+ _uploadMenu.AddSeparatorIfNeeded();
|
|
|
+ if(_dataEntryGrid.SelectedRows.Length > 0)
|
|
|
+ {
|
|
|
+ if (Security.CanEdit<DataEntryDocument>())
|
|
|
{
|
|
|
- Header = tag.Name,
|
|
|
- Command = new Command((_) => ChangeTag(tag)) { }
|
|
|
- });
|
|
|
- _changeTag.Items.Add(new Separator());
|
|
|
- _changeTag.Items.Add(new MenuItem()
|
|
|
+ if (Security.IsAllowed<CanSetupDataEntryTags>())
|
|
|
+ {
|
|
|
+ _tags ??= DataEntryGrid.GetVisibleTagList();
|
|
|
+ if(_tags.Count > 0)
|
|
|
+ {
|
|
|
+ var changeTag = _uploadMenu.AddItem("Set Tag", null, null);
|
|
|
+ foreach(var tag in _tags)
|
|
|
+ {
|
|
|
+ changeTag.AddItem(tag.Name, null, tag, ChangeTag);
|
|
|
+ }
|
|
|
+ changeTag.AddSeparatorIfNeeded();
|
|
|
+ changeTag.AddItem<DataEntryTag?>("Clear Tags", null, null, ChangeTag);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ _uploadMenu.AddItem("Set Note", null, _dataEntryGrid.SelectedRows, _changeNote_Click);
|
|
|
+ _uploadMenu.AddSeparator();
|
|
|
+ _uploadMenu.AddItem("Archive", null, _remove_OnClick);
|
|
|
+ _uploadMenu.AddItem("Edit", null, _dataEntryGrid.SelectedRows, EditItem_Click);
|
|
|
+ }
|
|
|
+ if (Security.CanDelete<DataEntryDocument>())
|
|
|
+ {
|
|
|
+ _uploadMenu.AddItem("Delete", null, _dataEntryGrid.SelectedRows, DeleteItem_Click);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ _uploadMenu.RemoveUnnecessarySeparators();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void DeleteItem_Click(CoreRow[] obj)
|
|
|
+ {
|
|
|
+ _dataEntryGrid.DeleteItems(obj);
|
|
|
+ _dataEntryGrid.Refresh(false, true);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void EditItem_Click(CoreRow[] rows)
|
|
|
+ {
|
|
|
+ var items = _dataEntryGrid.LoadItems(rows);
|
|
|
+ if (_dataEntryGrid.EditItems(items))
|
|
|
{
|
|
|
- Header= "Clear Tags",
|
|
|
- Command = new Command((_) => ChangeTag(new DataEntryTag()))
|
|
|
- });
|
|
|
-
|
|
|
- _changeTag.Visibility = _dataEntryGrid.SelectedRows.Any() && _tags.Any() && (Security.CanEdit<DataEntryDocument>() || Security.IsAllowed<CanSetupDataEntryTags>())
|
|
|
- ? Visibility.Visible
|
|
|
- : Visibility.Collapsed;
|
|
|
- _changeNote.Visibility = _dataEntryGrid.SelectedRows.Any() && Security.CanEdit<DataEntryDocument>()
|
|
|
- ? Visibility.Visible
|
|
|
- : Visibility.Collapsed;
|
|
|
-
|
|
|
- _changetagseparator.Visibility = _archive.Visibility;
|
|
|
-
|
|
|
+ _dataEntryGrid.Refresh(false, true);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- private void ChangeTag(object obj)
|
|
|
+ private void ChangeTag(DataEntryTag? obj)
|
|
|
{
|
|
|
- if (obj is DataEntryTag tag)
|
|
|
- _dataEntryGrid.DoChangeTags(tag.ID);
|
|
|
+ _dataEntryGrid.DoChangeTags(obj?.ID ?? Guid.Empty);
|
|
|
}
|
|
|
|
|
|
- private void _addItem_OnClick(object sender, RoutedEventArgs e)
|
|
|
+ private void _addItem_OnClick()
|
|
|
{
|
|
|
var ofd = new OpenFileDialog()
|
|
|
{
|
|
|
@@ -545,7 +556,7 @@ public partial class DataEntryList : UserControl, ICorePanel, IDockPanel
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void _pasteItem_OnClick(object sender, RoutedEventArgs e)
|
|
|
+ private void _pasteItem_OnClick()
|
|
|
{
|
|
|
if (Clipboard.ContainsText())
|
|
|
{
|
|
|
@@ -611,7 +622,7 @@ public partial class DataEntryList : UserControl, ICorePanel, IDockPanel
|
|
|
_historyGrid.Refresh(false,true);
|
|
|
}
|
|
|
|
|
|
- private void _remove_OnClick(object sender, RoutedEventArgs e)
|
|
|
+ private void _remove_OnClick()
|
|
|
{
|
|
|
_dataEntryGrid.DoRemove();
|
|
|
}
|
|
|
@@ -621,9 +632,9 @@ public partial class DataEntryList : UserControl, ICorePanel, IDockPanel
|
|
|
_historyGrid.DoReopen();
|
|
|
}
|
|
|
|
|
|
- private void _changeNote_Click(object sender, RoutedEventArgs e)
|
|
|
+ private void _changeNote_Click(CoreRow[] rows)
|
|
|
{
|
|
|
- var notes = _dataEntryGrid.SelectedRows.ToObjects<DataEntryDocument>().Select(x => x.Note).Distinct().ToArray();
|
|
|
+ var notes = rows.ToObjects<DataEntryDocument>().Select(x => x.Note).Distinct().ToArray();
|
|
|
|
|
|
var note = notes.Length == 1 ? notes[0] : "";
|
|
|
|