ShowMessage

This commit is contained in:
2026-07-10 13:46:14 +02:00
parent 1ae8aed934
commit 432ffc3f41
11 changed files with 65 additions and 11 deletions

View File

@@ -389,7 +389,38 @@
Header="Speichern" />
</ContextMenu>
</Border.ContextMenu>
<TextBox Padding="12,8,12,8" Style="{StaticResource MessageTextBoxStyle}" />
<Grid>
<TextBox Padding="12,8,12,8">
<TextBox.Style>
<Style BasedOn="{StaticResource MessageTextBoxStyle}" TargetType="{x:Type TextBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding ShowMessage}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
<!-- Platzhalter für ausgeblendete Nachrichten (Message kommt vom Server als null) -->
<TextBlock
Padding="12,8,12,8"
FontSize="14"
FontStyle="Italic"
Foreground="#FF888888"
Text="Nachricht ausgeblendet"
TextWrapping="Wrap">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Visibility" Value="Collapsed" />
<Style.Triggers>
<DataTrigger Binding="{Binding ShowMessage}" Value="False">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Border>
</DataTemplate>

View File

@@ -51,6 +51,7 @@ namespace BeWo.ViewModel
public int Duration => DataContract.Duration ?? 0;
public string DurationSec => ((double)Duration / 1000).ToString("0.#");
public DateTime Created => DataContract.Created;
public bool ShowMessage => DataContract.ShowMessage;
protected override void InitByDataContract(AiConversationMessageDC pDataContract)
{

View File

@@ -59,7 +59,8 @@ namespace BeWo.ViewModel.ListViewModel
{
Created = DateTime.Now,
Message = "N. Dies ist eine Design Frage: Du sollst ganz viele Sachen machen. Dabei sollst du auf ganz viele Sachen achten: Zum Beispiel:\r\nSache 1\r\nSchritt 2",
Role = BS.Shared.AiConversationMessageRole.User
Role = BS.Shared.AiConversationMessageRole.User,
ShowMessage = true
};
var message_dc3 = new AiConversationMessageDC()

View File

@@ -203,7 +203,8 @@ namespace BeWo.ViewModel.View.AI
new AiConversationMessageDC()
{
Message = message,
Role = AiConversationMessageRole.User
Role = AiConversationMessageRole.User,
ShowMessage = true
}
};
@@ -238,6 +239,7 @@ namespace BeWo.ViewModel.View.AI
msg_dc.Message = MessageInput;
msg_dc.Role = BS.Shared.AiConversationMessageRole.User;
msg_dc.Created = DateTime.Now;
msg_dc.ShowMessage = true;
var msg_vm = new AiConversationMessageVM(msg_dc);
@@ -549,9 +551,10 @@ namespace BeWo.ViewModel.View.AI
var msg_dc = new AiConversationMessageDC();
msg_dc.Message = msg;
msg_dc.Message = prompt.ShowPrompt ? msg : null;
msg_dc.Role = BS.Shared.AiConversationMessageRole.User;
msg_dc.Created = DateTime.Now;
msg_dc.ShowMessage = prompt.ShowPrompt;
var msg_vm = new AiConversationMessageVM(msg_dc);
@@ -645,13 +648,14 @@ namespace BeWo.ViewModel.View.AI
custom_viewContext.Secondary = ViewContext.Secondary;
}
var msg = routine.Steps.VMList[step].PromptReference.Prompt;
var step_prompt = routine.Steps.VMList[step].PromptReference;
var msg_dc = new AiConversationMessageDC
{
Message = msg,
Message = step_prompt.ShowPrompt ? step_prompt.Prompt : null,
Role = AiConversationMessageRole.User,
Created = DateTime.Now
Created = DateTime.Now,
ShowMessage = step_prompt.ShowPrompt
};
var msg_vm = new AiConversationMessageVM(msg_dc);

View File

@@ -20,5 +20,7 @@ namespace BeWo.Data.Entities
public virtual AiConversation AiConversation { get; set; }
public virtual int? Duration { get; set; }
public virtual string ModelName { get; set; }
/// <summary>null = anzeigen (Bestandsdaten und normale Chat-Nachrichten)</summary>
public virtual bool ShowMessage { get; set; }
}
}

View File

@@ -18,6 +18,7 @@
<property name="Created"/>
<property name="Duration"/>
<property name="ModelName"/>
<property name="ShowMessage"/>
<many-to-one name="AiConversation"
column="AiConversationOid"
not-null="true"/>

View File

@@ -3,7 +3,7 @@
<PropertyGroup>
<NameOfLastUsedPublishProfile>C:\Projects\Bewo\BeWo - Main\Host\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
<UseIISExpress>true</UseIISExpress>
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<Use64BitIISExpress>
</Use64BitIISExpress>
<IISExpressSSLPort />

View File

@@ -0,0 +1,7 @@
INSERT INTO `.executedscripts`
VALUES ('Changes_2026-07-10 AiConversationMessage ShowMessage', CURDATE());
ALTER TABLE `aiconversationmessage`
ADD COLUMN `ShowMessage` TINYINT NULL DEFAULT NULL AFTER `ModelName`;
UPDATE `aiconversationmessage` SET `ShowMessage` = TRUE;

View File

@@ -18,11 +18,13 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.Oid = pEntity.Oid;
pDataContract.Version = pEntity.Version;
pDataContract.Notice = pEntity.Notice;
pDataContract.Message = pEntity.Message;
pDataContract.Role = pEntity.Role;
pDataContract.Created = pEntity.Created;
pDataContract.Duration = pEntity.Duration;
pDataContract.ModelName = pEntity.ModelName;
pDataContract.ShowMessage = pEntity.ShowMessage;
pDataContract.Message = pDataContract.ShowMessage ? pEntity.Message : null;
return pDataContract;
}

View File

@@ -205,6 +205,7 @@ namespace BeWo.Service.Plugins
clone_msg.Role = msg.Role;
clone_msg.Duration = msg.Duration;
clone_msg.ModelName = msg.ModelName;
clone_msg.ShowMessage = msg.ShowMessage;
clone_conv.Messages.Add(clone_msg);
clone_msg.AiConversation = clone_conv;
@@ -411,13 +412,14 @@ namespace BeWo.Service.Plugins
msg.AiConversation = conversation;
msg.Role = AiConversationMessageRole.System;
msg.Created = DateTime.Now;
msg.ShowMessage = true;
conversation.Messages.Add(msg);
return msg;
}
protected virtual AiConversationMessageDC[] sendNewMessage(AiConversation conv, string message, bool save = true)
protected virtual AiConversationMessageDC[] sendNewMessage(AiConversation conv, string message, bool save = true, bool show_message = true)
{
CheckPermissions(conv.ActionType);
@@ -440,6 +442,7 @@ namespace BeWo.Service.Plugins
user_msg.AiConversation = conv;
user_msg.Role = BS.Shared.AiConversationMessageRole.User;
user_msg.Created = DateTime.Now;
user_msg.ShowMessage = show_message;
conv.Messages.Add(user_msg);
@@ -514,6 +517,7 @@ namespace BeWo.Service.Plugins
assi_msg.Created = dt_before_request;
assi_msg.Duration = duration ?? 0;
assi_msg.ModelName = model;
assi_msg.ShowMessage = true;
conv.Messages.Add(assi_msg);
@@ -620,7 +624,7 @@ namespace BeWo.Service.Plugins
}
// Server Request
sendNewMessage(new_conv, prompt.Prompt, false).ToList();
sendNewMessage(new_conv, prompt.Prompt, false, prompt.ShowPrompt).ToList();
var result = new List<AiConversationMessage>
{

View File

@@ -17,5 +17,6 @@ namespace BS.Shared.DataContracts.Feature.AI
[DataMember] public DateTime Created { get; set; }
[DataMember] public string ModelName { get; set; }
[DataMember] public int? Duration { get; set; }
[DataMember] public bool ShowMessage { get; set; }
}
}