|
|
@@ -106,11 +106,11 @@ namespace PRSDesktop
|
|
|
|
|
|
if (!EventSuppressor.IsSet(Suppress.Settings))
|
|
|
{
|
|
|
- Properties.SettingsVisible = SettingsVisible;
|
|
|
+ // Properties.SettingsVisible = SettingsVisible;
|
|
|
Properties.Date = SelectedDate;
|
|
|
// Properties.StartHour = (int)Bookings.DaysViewSettings.StartHour;
|
|
|
// Properties.EndHour = (int)Bookings.DaysViewSettings.EndHour;
|
|
|
- Properties.CalendarView = CalendarView;
|
|
|
+ // Properties.CalendarView = CalendarView;
|
|
|
Properties.EmployeeSelector = EmployeeSettings;
|
|
|
Properties.EmployeeSelection = EmployeeSelection;
|
|
|
Properties.TimeInterval = TimeInterval;
|
|
|
@@ -146,32 +146,28 @@ namespace PRSDesktop
|
|
|
nameof(SettingsVisible),
|
|
|
typeof(CalendarSettingsVisibility),
|
|
|
typeof(Calendar),
|
|
|
- new UIPropertyMetadata(CalendarSettingsVisibility.Disabled)
|
|
|
+ new UIPropertyMetadata(CalendarSettingsVisibility.Disabled, SettingsVisible_Changed)
|
|
|
);
|
|
|
-
|
|
|
- public CalendarSettingsVisibility SettingsVisible
|
|
|
+
|
|
|
+ private static void SettingsVisible_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
|
|
{
|
|
|
- get => (CalendarSettingsVisibility)GetValue(SettingsVisibleProperty);
|
|
|
- set => SetSettingsVisibility(value);
|
|
|
+ if (d is not Calendar calendar) return;
|
|
|
+ var value = (CalendarSettingsVisibility)e.NewValue;
|
|
|
+
|
|
|
+ calendar.Properties.SettingsVisible = value;
|
|
|
+
|
|
|
+ calendar._splitPanel.View = value == CalendarSettingsVisibility.Visible
|
|
|
+ ? DynamicSplitPanelView.Combined
|
|
|
+ : DynamicSplitPanelView.Master;
|
|
|
+ calendar._splitPanel.AllowableViews = value == CalendarSettingsVisibility.Disabled
|
|
|
+ ? DynamicSplitPanelView.Master
|
|
|
+ : DynamicSplitPanelView.Master | DynamicSplitPanelView.Combined;
|
|
|
}
|
|
|
-
|
|
|
- private void SetSettingsVisibility(CalendarSettingsVisibility value)
|
|
|
+
|
|
|
+ public CalendarSettingsVisibility SettingsVisible
|
|
|
{
|
|
|
- DoSetValue(
|
|
|
- SettingsVisibleProperty,
|
|
|
- value,
|
|
|
- () => { },
|
|
|
- () =>
|
|
|
- {
|
|
|
- _splitPanel.View = value == CalendarSettingsVisibility.Visible
|
|
|
- ? DynamicSplitPanelView.Combined
|
|
|
- : DynamicSplitPanelView.Master;
|
|
|
- _splitPanel.AllowableViews = value == CalendarSettingsVisibility.Disabled
|
|
|
- ? DynamicSplitPanelView.Master
|
|
|
- : DynamicSplitPanelView.Master | DynamicSplitPanelView.Combined;
|
|
|
- // ResizeColumns(this.ActualWidth);
|
|
|
- }
|
|
|
- );
|
|
|
+ get => (CalendarSettingsVisibility)GetValue(SettingsVisibleProperty);
|
|
|
+ set => SetValue(SettingsVisibleProperty, value);
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
@@ -191,39 +187,13 @@ namespace PRSDesktop
|
|
|
get => (CalendarViewType)GetValue(CalendarViewProperty);
|
|
|
set => SetValue(CalendarViewProperty, value);
|
|
|
}
|
|
|
-
|
|
|
- private void SetCalendarView(CalendarViewType value)
|
|
|
- {
|
|
|
- // DoSetValue(
|
|
|
- // CalendarViewProperty,
|
|
|
- // value,
|
|
|
- // () =>
|
|
|
- // {
|
|
|
- // Bookings.ViewType = value switch
|
|
|
- // {
|
|
|
- // CalendarViewType.Day => SchedulerViewType.Day,
|
|
|
- // CalendarViewType.WorkWeek => SchedulerViewType.WorkWeek,
|
|
|
- // CalendarViewType.Week => SchedulerViewType.Week,
|
|
|
- // _ => SchedulerViewType.Day
|
|
|
- // };
|
|
|
- // ResizeColumns(this.ActualWidth);
|
|
|
- // }
|
|
|
- // );
|
|
|
- }
|
|
|
|
|
|
private static void CalendarView_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
|
|
{
|
|
|
if (d is not Calendar calendar) return;
|
|
|
- calendar.CalendarViewSelector.SelectedIndex = (int)calendar.CalendarView;
|
|
|
calendar.Properties.CalendarView = calendar.CalendarView;
|
|
|
- }
|
|
|
-
|
|
|
- private void CalendarViewSelector_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
|
- {
|
|
|
- if (EventSuppressor.IsSet(Suppress.Events))
|
|
|
- return;
|
|
|
- using (new EventSuppressor(Suppress.Selector))
|
|
|
- SetCalendarView((CalendarViewType)CalendarViewSelector.SelectedIndex);
|
|
|
+
|
|
|
+ // TODO: Update Calendar columns based on this.
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
@@ -715,6 +685,15 @@ namespace PRSDesktop
|
|
|
SetValue(EndHourProperty, 24);
|
|
|
// SfSkinManager.SetTheme(Bookings, new Theme() { ThemeName = "Office2019White", ScrollBarMode = ScrollBarMode.Compact });
|
|
|
}
|
|
|
+
|
|
|
+ CalendarViewSelector.ItemsSource = new List<KeyValuePair<CalendarViewType, string>>
|
|
|
+ {
|
|
|
+ new(CalendarViewType.Day, "Day"),
|
|
|
+ new(CalendarViewType.WorkWeek, "Work Week"),
|
|
|
+ new(CalendarViewType.Week, "Week"),
|
|
|
+ };
|
|
|
+ CalendarViewSelector.DisplayMemberPath = "Value";
|
|
|
+ CalendarViewSelector.SelectedValuePath = "Key";
|
|
|
}
|
|
|
|
|
|
public virtual void Setup()
|
|
|
@@ -723,15 +702,14 @@ namespace PRSDesktop
|
|
|
{
|
|
|
|
|
|
Properties = LoadSettings?.Invoke(this) ?? new CalendarSettings();
|
|
|
- SetCalendarView(Properties.CalendarView);
|
|
|
- SetSettingsVisibility(Properties.SettingsVisible);
|
|
|
+ SettingsVisible = Properties.SettingsVisible;
|
|
|
SetSelectedDate(Properties.AlwaysStartOnToday ? DateTime.Today : Properties.Date);
|
|
|
SetStartHour(Properties.StartHour);
|
|
|
SetEndHour(Properties.EndHour);
|
|
|
SetTimeInterval(Properties.TimeInterval);
|
|
|
SetAssignmentType(Properties.AssignmentType);
|
|
|
SetBackgroundType(Properties.BackgroundType);
|
|
|
- SetCalendarView(Properties.CalendarView);
|
|
|
+ CalendarView = Properties.CalendarView;
|
|
|
SetZoom(Properties.Zoom);
|
|
|
EmployeeSelector.Setup();
|
|
|
SetEmployeeSettings(Properties.EmployeeSelector);
|
|
|
@@ -1632,9 +1610,9 @@ namespace PRSDesktop
|
|
|
if (EventSuppressor.IsSet(Suppress.Events))
|
|
|
return;
|
|
|
if (e.View == DynamicSplitPanelView.Combined && SettingsVisible != CalendarSettingsVisibility.Visible)
|
|
|
- SetSettingsVisibility(CalendarSettingsVisibility.Visible);
|
|
|
+ SettingsVisible = CalendarSettingsVisibility.Visible;
|
|
|
else if (e.View == DynamicSplitPanelView.Master && SettingsVisible == CalendarSettingsVisibility.Visible)
|
|
|
- SetSettingsVisibility(CalendarSettingsVisibility.Hidden);
|
|
|
+ SettingsVisible = CalendarSettingsVisibility.Hidden;
|
|
|
}
|
|
|
|
|
|
private void Bookings_OnQueryAppointments(object? sender, QueryAppointmentsEventArgs e)
|