Copy Prompt

This commit is contained in:
2026-01-05 10:58:12 +01:00
parent c4523eb667
commit 474fecb878

View File

@@ -3,6 +3,7 @@ using BeWo.Services;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.Feature.AI;
using BS.Shared.Extensions.CustomInterfaces;
using DevExpress.Mvvm;
@@ -27,6 +28,7 @@ namespace BeWo.ViewModel.View.Administration
public AiPromptbausteinFolderListVM Folders { get; set; }
public AiPromptbausteinPromptVM SelectedPrompt { get; set; }
public AiPromptbausteinFolderVM CopiedFolder { get; set; }
public AiPromptbausteinPromptVM CopiedPrompt { get; set; }
public DelegateCommand OpenAddFolderDialogCommand { get; private set; }
public DelegateCommand OpenEditFolderDialogCommand { get; private set; }
@@ -48,6 +50,7 @@ namespace BeWo.ViewModel.View.Administration
set => SetProperty(ref _SelectedFolder, value, nameof(SelectedFolder));
}
public AiPromptbausteinComplexTreeViewModel() : this(null, AiActionType.ServiceRecordConversation)
{
if (BeWoApp.IsInDesignMode)
@@ -56,7 +59,6 @@ namespace BeWo.ViewModel.View.Administration
return;
}
}
public AiPromptbausteinComplexTreeViewModel(IBeWoWindowService windowService, AiActionType aiActionType)
{
WindowService = windowService;
@@ -77,6 +79,7 @@ namespace BeWo.ViewModel.View.Administration
IsEditingMode = true;
}
public override bool IsDirty
{
get
@@ -84,8 +87,10 @@ namespace BeWo.ViewModel.View.Administration
return false;
}
}
public bool HasCopiedFolder => CopiedFolder is object;
public bool HasCopiedPrompt => CopiedPrompt is object;
public CompactEmployeeDC CurrentEmployee => BeWoApp.CompactLoggedOnEmployee;
public void UpdateFolderCommands()
{
@@ -94,8 +99,7 @@ namespace BeWo.ViewModel.View.Administration
CopyFolderCommand.RaiseCanExecuteChanged();
PasteFolderCommand.RaiseCanExecuteChanged();
DeleteFolderCommand.RaiseCanExecuteChanged();
}
}
public void UpdatePromptCommands()
{
OpenAddPromptDialogCommand.RaiseCanExecuteChanged();
@@ -109,7 +113,6 @@ namespace BeWo.ViewModel.View.Administration
{
}
internal void ReloadVMList()
{
var folders_dc = PredefinedAiPromptbausteinFolders.CreateSubTree(AiActionType);
@@ -128,7 +131,7 @@ namespace BeWo.ViewModel.View.Administration
var sel_folder = SelectedFolder;
var new_vm = sel_folder.SubFolders.CreateNewVM();
new_vm.Creator = BeWoApp.CompactLoggedOnEmployee;
new_vm.Creator = CurrentEmployee;
new_vm.Parent = sel_folder;
new_vm.CanAdd = true;
new_vm.CanEdit = true;
@@ -209,7 +212,7 @@ namespace BeWo.ViewModel.View.Administration
var sel_folder = SelectedFolder;
var new_vm = sel_folder.SubPrompts.CreateNewVM();
new_vm.Creator = BeWoApp.CompactLoggedOnEmployee;
new_vm.Creator = CurrentEmployee;
new_vm.ParentFolderOid = sel_folder.DataContract.Oid;
new_vm.ShowPrompt = true;
new_vm.ShowPromptByTenant = true;
@@ -243,11 +246,19 @@ namespace BeWo.ViewModel.View.Administration
}
void CopyPrompt()
{
CopiedPrompt = SelectedPrompt;
}
void PastePrompt()
{
var copied_dc = CopiedPrompt.CommitToDataContract();
copied_dc.Creator = CurrentEmployee;
copied_dc.CanEdit = true;
copied_dc.IsPublic = false;
copied_dc.Oid = null;
copied_dc.Version = 0;
var copied_vm = new AiPromptbausteinPromptVM(copied_dc);
SelectedFolder.SubPrompts.VMList.Add(copied_vm);
}
void OpenDeletePromptDialog()
{
@@ -264,7 +275,7 @@ namespace BeWo.ViewModel.View.Administration
}
bool canOpenAddPromptDialog()
{
return SelectedFolder.CanAdd;
return SelectedFolder?.CanAdd ?? false;
}
bool canOpenEditPromptDialog()
{
@@ -272,11 +283,11 @@ namespace BeWo.ViewModel.View.Administration
}
bool canCopyPrompt()
{
return false;
return SelectedPrompt is object;
}
bool canPastePrompt()
{
return false;
return canOpenAddPromptDialog() && HasCopiedPrompt;
}
bool canOpenDeletePromptDialog()
{