From ef017eee61d00809f18dd81fcdeb4d3eeb6505c2 Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Tue, 23 Apr 2024 12:01:50 +0200 Subject: [PATCH] Make lock time editable only for port authority and show it in the overview grid --- src/BreCalClient/EditTimesControl.xaml.cs | 48 +++++++++++------------ src/BreCalClient/ShipcallControl.xaml | 9 +++-- src/BreCalClient/ShipcallControl.xaml.cs | 12 +++++- 3 files changed, 40 insertions(+), 29 deletions(-) diff --git a/src/BreCalClient/EditTimesControl.xaml.cs b/src/BreCalClient/EditTimesControl.xaml.cs index 5d4ee10..bc679ab 100644 --- a/src/BreCalClient/EditTimesControl.xaml.cs +++ b/src/BreCalClient/EditTimesControl.xaml.cs @@ -124,6 +124,8 @@ namespace BreCalClient { Extensions.ParticipantType pType = (Extensions.ParticipantType) this.Times.ParticipantType; + // setting visibility + if (pType != Extensions.ParticipantType.MOORING) { this.labelATA.Visibility = Visibility.Hidden; @@ -145,40 +147,32 @@ namespace BreCalClient } } + // setting en/dis-abled + if (this.Times.ParticipantId != App.Participant.Id) { this.buttonFixedOrder.IsEnabled = false; return; // if this is not "my" entry, there is no editing! - } - - if(pType == Extensions.ParticipantType.MOORING) - { - this.datePickerATA.IsEnabled = true; - this.datePickerATD.IsEnabled = true; } + this.datePickerETABerth.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival); + this.datePickerETABerth_End.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival); + this.datePickerETDBerth.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Departure || ShipcallModel.Shipcall?.Type == ShipcallType.Shifting); + this.datePickerETDBerth_End.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Departure || ShipcallModel.Shipcall?.Type == ShipcallType.Shifting); + this.textBoxRemarks.IsEnabled = true; switch (pType) { case Extensions.ParticipantType.MOORING: - case Extensions.ParticipantType.PORT_ADMINISTRATION: - case Extensions.ParticipantType.TUG: - this.datePickerETABerth.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival); - this.datePickerETABerth_End.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival); - this.datePickerETDBerth.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Departure || ShipcallModel.Shipcall?.Type == ShipcallType.Shifting); - this.datePickerETDBerth_End.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Departure || ShipcallModel.Shipcall?.Type == ShipcallType.Shifting); - this.datePickerLockTime.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival || ShipcallModel.Shipcall?.Type == ShipcallType.Shifting); - this.datePickerZoneEntry.IsEnabled = false; - this.textBoxRemarks.IsEnabled = true; + this.datePickerATA.IsEnabled = true; + this.datePickerATD.IsEnabled = true; break; - case Extensions.ParticipantType.PILOT: - this.datePickerETABerth.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival); - this.datePickerETABerth_End.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival); - this.datePickerETDBerth.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Departure || ShipcallModel.Shipcall?.Type == ShipcallType.Shifting); - this.datePickerETDBerth_End.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Departure || ShipcallModel.Shipcall?.Type == ShipcallType.Shifting); - this.datePickerLockTime.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival || ShipcallModel.Shipcall?.Type == ShipcallType.Shifting); - this.datePickerZoneEntry.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival); - this.textBoxRemarks.IsEnabled = true; + case Extensions.ParticipantType.PORT_ADMINISTRATION: + this.datePickerLockTime.IsEnabled = true; + break; + case Extensions.ParticipantType.TUG: + case Extensions.ParticipantType.PILOT: + this.datePickerZoneEntry.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival); break; } @@ -204,8 +198,12 @@ namespace BreCalClient private void CheckOKButton() { - this.buttonOK.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival) ? - this.datePickerETABerth.Value.HasValue : this.datePickerETDBerth.Value.HasValue; + Extensions.ParticipantType pType = (Extensions.ParticipantType)this.Times.ParticipantType; + if (pType != Extensions.ParticipantType.PORT_ADMINISTRATION) + this.buttonOK.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival) ? + this.datePickerETABerth.Value.HasValue : this.datePickerETDBerth.Value.HasValue; + else + this.buttonOK.IsEnabled = true; } #endregion diff --git a/src/BreCalClient/ShipcallControl.xaml b/src/BreCalClient/ShipcallControl.xaml index e189db6..b9faa9f 100644 --- a/src/BreCalClient/ShipcallControl.xaml +++ b/src/BreCalClient/ShipcallControl.xaml @@ -168,13 +168,16 @@ +