1111use Icinga \Module \Notifications \Forms \ScheduleForm ;
1212use Icinga \Module \Notifications \Model \Schedule ;
1313use Icinga \Module \Notifications \Widget \RecipientSuggestions ;
14- use Icinga \Module \Notifications \Util \ScheduleDateTimeFactory ;
14+ use Icinga \Module \Notifications \Util \ScheduleTimezoneStorage ;
1515use Icinga \Module \Notifications \Web \Control \TimezonePicker ;
1616use Icinga \Module \Notifications \Widget \Detail \ScheduleDetail ;
1717use Icinga \Module \Notifications \Widget \TimezoneWarning ;
@@ -37,6 +37,8 @@ public function indexAction(): void
3737 $ this ->httpNotFound (t ('Schedule not found ' ));
3838 }
3939
40+ ScheduleTimezoneStorage::setScheduleTimezone ($ schedule ->timezone );
41+
4042 $ this ->addTitleTab (sprintf (t ('Schedule: %s ' ), $ schedule ->name ));
4143
4244 $ this ->controls ->addHtml (
@@ -54,15 +56,7 @@ public function indexAction(): void
5456 ->setAction (Url::fromRequest ()->getAbsoluteUrl ())
5557 ->populate (['mode ' => $ this ->params ->get ('mode ' )])
5658 ->on (Form::ON_SUCCESS , function (ScheduleDetail \Controls $ controls ) use ($ id ) {
57- $ redirectUrl = Links::schedule ($ id )->with (['mode ' => $ controls ->getMode ()]);
58- $ requestUrl = Url::fromRequest ();
59- $ defaultTimezoneParam = TimezonePicker::DEFAULT_TIMEZONE_PARAM ;
60- if ($ requestUrl ->hasParam ($ defaultTimezoneParam )) {
61- $ redirectUrl ->addParams (
62- [$ defaultTimezoneParam => $ requestUrl ->getParam ($ defaultTimezoneParam )]
63- );
64- }
65- $ this ->redirectNow ($ redirectUrl );
59+ $ this ->redirectNow (Links::schedule ($ id )->with (['mode ' => $ controls ->getMode ()]));
6660 })
6761 ->handleRequest ($ this ->getServerRequest ());
6862
@@ -122,10 +116,9 @@ public function addAction(): void
122116 public function addRotationAction (): void
123117 {
124118 $ scheduleId = (int ) $ this ->params ->getRequired ('schedule ' );
125- $ displayTimezone = $ this ->params ->get ('display_timezone ' );
126- $ this ->setTitle ($ this ->translate ('Add Rotation ' ));
127-
128119 $ scheduleTimezone = $ this ->getScheduleTimezone ($ scheduleId );
120+ $ displayTimezone = $ this ->params ->get ('display_timezone ' ) ?? $ scheduleTimezone ;
121+ $ this ->setTitle ($ this ->translate ('Add Rotation ' ));
129122
130123 if ($ displayTimezone !== $ scheduleTimezone ) {
131124 $ this ->addContent (new TimezoneWarning ($ scheduleTimezone ));
@@ -161,11 +154,10 @@ public function addRotationAction(): void
161154 public function editRotationAction (): void
162155 {
163156 $ id = (int ) $ this ->params ->getRequired ('id ' );
164- $ displayTimezone = $ this ->params ->get ('display_timezone ' );
165157 $ scheduleId = (int ) $ this ->params ->getRequired ('schedule ' );
166- $ this ->setTitle ($ this ->translate ('Edit Rotation ' ));
167-
168158 $ scheduleTimezone = $ this ->getScheduleTimezone ($ scheduleId );
159+ $ displayTimezone = $ this ->params ->get ('display_timezone ' ) ?? $ scheduleTimezone ;
160+ $ this ->setTitle ($ this ->translate ('Edit Rotation ' ));
169161
170162 if ($ displayTimezone !== $ scheduleTimezone ) {
171163 $ this ->addContent (new TimezoneWarning ($ scheduleTimezone ));
@@ -266,7 +258,7 @@ protected function createTimezonePicker(string $defaultTimezone): TimezonePicker
266258 $ defaultTimezoneParam = TimezonePicker::DEFAULT_TIMEZONE_PARAM ;
267259 $ timezoneParam = $ this ->params ->shift ($ defaultTimezoneParam );
268260
269- ScheduleDateTimeFactory ::setDisplayTimezone ($ timezoneParam ?? $ defaultTimezone );
261+ ScheduleTimezoneStorage ::setDisplayTimezone ($ timezoneParam ?? $ defaultTimezone );
270262
271263 return (new TimezonePicker ())
272264 ->populate ([$ defaultTimezoneParam => $ timezoneParam ?? $ defaultTimezone ])
0 commit comments