diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj
index 58256611f..6ff40da44 100644
--- a/BeWo/BeWo.csproj
+++ b/BeWo/BeWo.csproj
@@ -94,6 +94,15 @@
+
+
+
+ AnimatedBeWoWindow.xaml
+
+
+ Designer
+ MSBuild:Compile
+
False
..\Lib\Blacklight.Wpf.Controls.dll
@@ -324,6 +333,10 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
@@ -332,6 +345,14 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
@@ -3467,7 +3488,9 @@
+
+
diff --git a/BeWo/BeWoApp.xaml b/BeWo/BeWoApp.xaml
index e26b672d2..469b9f71c 100644
--- a/BeWo/BeWoApp.xaml
+++ b/BeWo/BeWoApp.xaml
@@ -82,6 +82,7 @@
+
@@ -605,8 +606,12 @@
Grid.RowSpan="1"
Grid.Column="0"
Grid.ColumnSpan="2"
- Padding="5,5,5,5">
+ Padding="5,5,5,5"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch">
-
-
-
+
+
+
+
@@ -17,27 +27,63 @@
-
+
-
-
+
+
- WICHTIG! Bitte tragen Sie keine echten Daten bei Ihren Tests ein, da es sich um einen öffentlichen Testzugang handelt, auf den jeder Zugriff hat!
-
+
+ WICHTIG! Bitte tragen Sie keine echten Daten bei Ihren Tests ein, da es sich um einen öffentlichen Testzugang handelt, auf den jeder Zugriff hat!
+
+
-
-
+
+
-
-
-
+
+
+
diff --git a/BeWo/Converter/NewlineConverter.cs b/BeWo/Converter/NewlineConverter.cs
new file mode 100644
index 000000000..03f0e7b65
--- /dev/null
+++ b/BeWo/Converter/NewlineConverter.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+
+namespace BeWo.Converter
+{
+ public class NewlineConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return value?.ToString()?
+ .Replace("\\r\\n", "\r\n")
+ .Replace("\\n", "\r\n")
+ .Replace("\\r", "\r\n");
+ }
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/BeWo/EnterTenantDialog.xaml b/BeWo/EnterTenantDialog.xaml
index acc081ec9..5d01dc0cf 100644
--- a/BeWo/EnterTenantDialog.xaml
+++ b/BeWo/EnterTenantDialog.xaml
@@ -1,10 +1,18 @@
-
-
-
-
+
+
+
+
@@ -17,7 +25,13 @@
-
+
@@ -25,24 +39,70 @@
-
-
-
-
+
+
+
+
- Bitte geben Sie Ihre 10-stellige Kundennummer ein:
-
-
-
- Demo Zugang nutzen
+
+ Bitte geben Sie Ihre 10-stellige Kundennummer ein:
+
+
+
+
+
+ Demo Zugang nutzen
+
-
-
+
+
-
-
-
+
+
+
diff --git a/BeWo/OpenOrSaveDialog.xaml b/BeWo/OpenOrSaveDialog.xaml
index c93d6ba5f..08dff80d5 100644
--- a/BeWo/OpenOrSaveDialog.xaml
+++ b/BeWo/OpenOrSaveDialog.xaml
@@ -1,13 +1,20 @@
-
+
-
+
@@ -18,10 +25,35 @@
-
-
-
-
+
+
+
+
diff --git a/BeWo/ProxyLoginView.xaml b/BeWo/ProxyLoginView.xaml
index 9109f28ea..bbf040f33 100644
--- a/BeWo/ProxyLoginView.xaml
+++ b/BeWo/ProxyLoginView.xaml
@@ -1,20 +1,75 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BeWo/PwVergessenView.xaml b/BeWo/PwVergessenView.xaml
index 01bf134de..39533b4c9 100644
--- a/BeWo/PwVergessenView.xaml
+++ b/BeWo/PwVergessenView.xaml
@@ -1,31 +1,71 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BeWo/Scheduling/View/AppointmentEditView.xaml b/BeWo/Scheduling/View/AppointmentEditView.xaml
index 0768bec29..7068f4570 100644
--- a/BeWo/Scheduling/View/AppointmentEditView.xaml
+++ b/BeWo/Scheduling/View/AppointmentEditView.xaml
@@ -1,20 +1,24 @@
-
+
@@ -33,16 +37,29 @@
-
+
-
-
-
+
+
+
-
-
+
+
@@ -52,33 +69,59 @@
-
-
-
+
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
@@ -88,11 +131,11 @@
-
+
-
-
-
+
+
+
@@ -111,47 +154,98 @@
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
@@ -161,11 +255,11 @@
-
+
-
-
-
+
+
+
@@ -184,47 +278,94 @@
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
@@ -234,11 +375,11 @@
-
+
-
-
-
+
+
+
@@ -250,7 +391,8 @@
-
+
+
@@ -258,269 +400,836 @@
-
+
+
-
+
+
-
+
+
-
+
+
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
@@ -65,35 +99,73 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml b/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml
index 761b69629..c25d1a58c 100644
--- a/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml
+++ b/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml
@@ -1,14 +1,23 @@
-
-
+
+
diff --git a/BeWo/SchulbegleitenderDienst/VertretenderKlientSearchView.xaml b/BeWo/SchulbegleitenderDienst/VertretenderKlientSearchView.xaml
index da8dfb2be..378d9592f 100644
--- a/BeWo/SchulbegleitenderDienst/VertretenderKlientSearchView.xaml
+++ b/BeWo/SchulbegleitenderDienst/VertretenderKlientSearchView.xaml
@@ -1,298 +1,536 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/BeWo/SchulbegleitenderDienst/VertretungsSearchView.xaml b/BeWo/SchulbegleitenderDienst/VertretungsSearchView.xaml
index b6054938f..88ee8a2e1 100644
--- a/BeWo/SchulbegleitenderDienst/VertretungsSearchView.xaml
+++ b/BeWo/SchulbegleitenderDienst/VertretungsSearchView.xaml
@@ -1,163 +1,420 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BeWo/ServiceProxy/ServiceFacade.cs b/BeWo/ServiceProxy/ServiceFacade.cs
index c702a8118..4b769f0d8 100644
--- a/BeWo/ServiceProxy/ServiceFacade.cs
+++ b/BeWo/ServiceProxy/ServiceFacade.cs
@@ -992,11 +992,8 @@ namespace BeWo.ServiceProxy
lClient.Endpoint.Behaviors.Add(new MultitenancyEndpointBehavior());
lClient.Endpoint.Address = EndpointAddresses[typeof(TInterface)];
-
-
}
-
return lClient;
}
@@ -1010,7 +1007,10 @@ namespace BeWo.ServiceProxy
Monitor.Enter(_Lock);
if ((++_RunningAsyncs) == 1 && BeWoApp.MainControl != null)
{
- BeWoApp.MainControl.StartWaiting();
+ if (BeWoApp.CurrentAnimatedBeWoWindow is null)
+ BeWoApp.MainControl.StartWaiting();
+ else
+ BeWoApp.CurrentAnimatedBeWoWindow.StartWaiting();
}
Monitor.Exit(_Lock);
@@ -1021,6 +1021,7 @@ namespace BeWo.ServiceProxy
Monitor.Enter(_Lock);
if ((--_RunningAsyncs) == 0 && BeWoApp.MainControl != null)
{
+ BeWoApp.CurrentAnimatedBeWoWindow?.EndWaiting();
BeWoApp.MainControl.EndWaiting();
}
diff --git a/BeWo/Styles/ControlStyles/GroupBoxStyles.xaml b/BeWo/Styles/ControlStyles/GroupBoxStyles.xaml
index d7fab705d..aa7a79aac 100644
--- a/BeWo/Styles/ControlStyles/GroupBoxStyles.xaml
+++ b/BeWo/Styles/ControlStyles/GroupBoxStyles.xaml
@@ -57,8 +57,8 @@
-
-
+
+
diff --git a/BeWo/Styles/ControlStyles/WindowStyles.xaml b/BeWo/Styles/ControlStyles/WindowStyles.xaml
new file mode 100644
index 000000000..4a334d976
--- /dev/null
+++ b/BeWo/Styles/ControlStyles/WindowStyles.xaml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/BeWo/Styles/DataTemplates/WindowTemplates.xaml b/BeWo/Styles/DataTemplates/WindowTemplates.xaml
new file mode 100644
index 000000000..42f1cd18c
--- /dev/null
+++ b/BeWo/Styles/DataTemplates/WindowTemplates.xaml
@@ -0,0 +1,3 @@
+
+
\ No newline at end of file
diff --git a/BeWo/Styles/Features/AIChatStyles.xaml b/BeWo/Styles/Features/AIChatStyles.xaml
new file mode 100644
index 000000000..edc7c8b98
--- /dev/null
+++ b/BeWo/Styles/Features/AIChatStyles.xaml
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/BeWo/Styles/ModernOrangeBlack.xaml b/BeWo/Styles/ModernOrangeBlack.xaml
index 72279e02c..94aeabb63 100644
--- a/BeWo/Styles/ModernOrangeBlack.xaml
+++ b/BeWo/Styles/ModernOrangeBlack.xaml
@@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
- xmlns:uc="clr-namespace:BeWo.View.Controls">
+ xmlns:uc="clr-namespace:BeWo.View.Controls" xmlns:templateselectors="clr-namespace:BeWo.View.TemplateSelectors">
@@ -23,6 +23,9 @@
+
+
+
@@ -40,4 +43,6 @@
+
+
\ No newline at end of file
diff --git a/BeWo/UploadDialog.xaml b/BeWo/UploadDialog.xaml
index c658c3f3a..9de326f63 100644
--- a/BeWo/UploadDialog.xaml
+++ b/BeWo/UploadDialog.xaml
@@ -1,13 +1,20 @@
-
+
-
+
@@ -18,9 +25,29 @@
-
-
-
+
+
+
diff --git a/BeWo/View/BeWoWindow.xaml.cs b/BeWo/View/BeWoWindow.xaml.cs
index 4d0518dc9..96ddaaa02 100644
--- a/BeWo/View/BeWoWindow.xaml.cs
+++ b/BeWo/View/BeWoWindow.xaml.cs
@@ -35,6 +35,7 @@ namespace BeWo.View
InitializeComponent();
rootGroupBox.Content = fe;
+
CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => Close()));
}
diff --git a/BeWo/View/BeWoWindowBuilder.cs b/BeWo/View/BeWoWindowBuilder.cs
index c9ba3016c..e0af90abe 100644
--- a/BeWo/View/BeWoWindowBuilder.cs
+++ b/BeWo/View/BeWoWindowBuilder.cs
@@ -1,4 +1,6 @@
using BeWo.View.Controls;
+using BeWo.View.Detail;
+using BeWo.View.Windows;
using BeWo.ViewModel;
using BS.Shared.Extensions;
using System;
@@ -13,7 +15,24 @@ namespace BeWo.View
{
public static class BeWoWindowBuilder
{
- public static BeWoWindow GetTextViewer(string title, string text, bool fixed_size = false, double height = 600, double width = 600)
+ public static Window GetAiConversationZeiterfassungWindow(List> context, double height = 600, double width = 1200)
+ {
+ var title = "Zeiterfassung KI Chat";
+ var control = new AiConversationChatView();
+
+ control.ViewModel.UIContext = (int)(UIContext.ServiceRecord);
+ control.ViewModel.ContextBeWoObjects = context;
+
+ var window = GetAnimatedBeWoWindow(title, control, 400, height, 1000, 400, width, 1600);
+
+ //var window = GetGenericBeWoWindow(title, 400, height, 1000, 600, width, 1600);
+
+ //window.GroupBoxContent = control;
+
+ return window;
+ }
+
+ public static BeWoWindow GetTextViewer(string title, string text, bool fixed_size = false, double height = 600, double width = 600)
{
if (fixed_size)
return GetTextViewer(title, text, height, height, height, width, width, width);
@@ -48,19 +67,26 @@ namespace BeWo.View
return beWoWindow;
}
- public static BeWoWindow GetBeWoWindow(String title, Control control, double height = 600, double width = 1200)
- {
- var beWoWindow = GetGenericBeWoWindow(title, 100, height, 1000, 100, width, 1600);
- beWoWindow.GroupBoxContent = control;
+ public static BeWoWindow GetBeWoWindow(String title, Control control, double height = 600, double width = 1200)
+ {
+ var beWoWindow = GetGenericBeWoWindow(title, 100, height, 1000, 100, width, 1600);
- return beWoWindow;
- }
+ beWoWindow.GroupBoxContent = control;
- private static BeWoWindow GetGenericBeWoWindow(string title, double min_height, double height, double max_height, double min_width, double width, double max_width)
+ return beWoWindow;
+ }
+
+ private static BeWoWindow GetGenericBeWoWindow(string title, double min_height, double height, double max_height, double min_width, double width, double max_width)
{
var beWoWindow = new BeWoWindow();
- beWoWindow.Height = height;
+ if (min_height > height || height > max_height)
+ throw new InvalidOperationException($"Window Height: {min_height} < {height} < {max_height}");
+
+ if (min_width > width || width > max_width)
+ throw new InvalidOperationException($"Window Width: {min_width} < {width} < {max_width}");
+
+ beWoWindow.Height = height;
beWoWindow.MinHeight = min_height;
beWoWindow.MaxHeight = max_height;
beWoWindow.Width = width;
@@ -75,7 +101,33 @@ namespace BeWo.View
return beWoWindow;
}
- public static void ShowErrorMessageBox(string text)
+ private static AnimatedBeWoWindow GetAnimatedBeWoWindow(string title, Control control, double min_height, double height, double max_height, double min_width, double width, double max_width)
+ {
+ var beWoWindow = new AnimatedBeWoWindow();
+
+ if (min_height > height || height > max_height)
+ throw new InvalidOperationException($"Window Height: {min_height} < {height} < {max_height}");
+
+ if (min_width > width || width > max_width)
+ throw new InvalidOperationException($"Window Width: {min_width} < {width} < {max_width}");
+
+ beWoWindow.Height = height;
+ beWoWindow.MinHeight = min_height;
+ beWoWindow.MaxHeight = max_height;
+ beWoWindow.Width = width;
+ beWoWindow.MinWidth = min_width;
+ beWoWindow.MaxHeight = max_width;
+
+ beWoWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;
+ beWoWindow.Owner = BeWoApp.CurrentBeWo.MainWindow;
+ beWoWindow.Title = title + " Fenster";
+ beWoWindow.rootGroupBox.Header = title;
+ beWoWindow.GroupBoxContent = control;
+
+ return beWoWindow;
+ }
+
+ public static void ShowErrorMessageBox(string text)
{
MessageBox.Show(text, "Fehler", MessageBoxButton.OK, MessageBoxImage.Asterisk);
}
diff --git a/BeWo/View/Controls/PopupNonTopmost.cs b/BeWo/View/Controls/PopupNonTopmost.cs
index a66e46b97..3b4f6d814 100644
--- a/BeWo/View/Controls/PopupNonTopmost.cs
+++ b/BeWo/View/Controls/PopupNonTopmost.cs
@@ -6,7 +6,7 @@ using System.Windows.Interop;
namespace BeWo.View.Controls
{
- public class PopupNonTopmost : Popup
+ public class PopupNonTopmost : System.Windows.Controls.Primitives.Popup
{
public static DependencyProperty TopmostProperty = Window.TopmostProperty.AddOwner(typeof (PopupNonTopmost), new FrameworkPropertyMetadata(false, OnTopmostChanged));
diff --git a/BeWo/View/Detail/AiConversationChatView.xaml b/BeWo/View/Detail/AiConversationChatView.xaml
index 6dfe5207b..05229292a 100644
--- a/BeWo/View/Detail/AiConversationChatView.xaml
+++ b/BeWo/View/Detail/AiConversationChatView.xaml
@@ -6,6 +6,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxa="http://schemas.devexpress.com/winfx/2008/xaml/accordion"
+ xmlns:dxwui="http://schemas.devexpress.com/winfx/2008/xaml/windowsui"
xmlns:listviewmodel="clr-namespace:BeWo.ViewModel.ListViewModel"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
@@ -39,7 +40,7 @@
Grid.Row="0"
Margin="0"
Orientation="Horizontal">
-