ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilBookingReservationsGUI.php
Go to the documentation of this file.
1<?php
2
24{
25 protected \ILIAS\BookingManager\BookingProcess\ProcessUtilGUI $util_gui;
26 protected \ILIAS\BookingManager\Access\AccessManager $access;
28 protected \ILIAS\DI\UIServices $ui;
29 protected \ILIAS\BookingManager\InternalService $service;
30 protected array $raw_post_data;
31 protected \ILIAS\BookingManager\StandardGUIRequest $book_request;
33 protected int $context_obj_id;
34 protected ilCtrl $ctrl;
36 protected ilLanguage $lng;
38 protected ilObjUser $user;
40 protected int $ref_id;
41 protected int $book_obj_id;
42 protected int $pbooked_user;
43 protected string $reservation_id; // see BookingReservationDBRepo, obj_user_(slot)_context
44 protected int $booked_user;
45
46 public function __construct(
49 int $context_obj_id = 0
50 ) {
51 global $DIC;
52
53 $this->tpl = $DIC->ui()->mainTemplate();
54 $this->pool = $pool;
55 $this->ctrl = $DIC->ctrl();
56 $this->ref_id = $pool->getRefId();
57 $this->lng = $DIC->language();
58 $this->access = $DIC->bookingManager()->internal()->domain()->access();
59 $this->tabs_gui = $DIC->tabs();
60 $this->help = $help;
61 $this->user = $DIC->user();
62 $this->book_request = $DIC->bookingManager()
63 ->internal()
64 ->gui()
65 ->standardRequest();
66 $this->service = $DIC->bookingManager()->internal();
67 $this->ui = $DIC->ui();
68 $this->toolbar = $DIC->toolbar();
69
70 $this->book_obj_id = $this->book_request->getObjectId();
71
72 $this->context_obj_id = $context_obj_id;
73
74 // user who's reservation is being tackled (e.g. canceled)
75 $this->booked_user = $this->book_request->getBookedUser();
76 if ($this->booked_user === 0) {
77 $this->booked_user = $DIC->user()->getId();
78 }
79 // we get this from the reservation screen
80 $this->reservation_id = $this->book_request->getReservationId();
81
82 $this->ctrl->saveParameter($this, ["object_id", "bkusr"]);
83
84 if ($this->book_request->getObjectId() > 0 && ilBookingObject::lookupPoolId($this->book_request->getObjectId()) !== $this->pool->getId()) {
85 throw new ilException("Booking Object ID does not match Booking Pool.");
86 }
87
88 $this->raw_post_data = $DIC->http()->request()->getParsedBody();
89 $this->util_gui = $DIC->bookingManager()->internal()->gui()->process()->ProcessUtilGUI(
90 $this->pool,
91 $this
92 );
93 }
94
98 protected function getLogReservationIds(): array
99 {
100 $mrsv = $this->book_request->getReservationIds();
101 if (count($mrsv) > 0) {
102 return $mrsv;
103 }
104 if ($this->reservation_id > 0) {
105 return array($this->reservation_id);
106 }
107 return [];
108 }
109
110 public function executeCommand(): void
111 {
113
114 $next_class = $ctrl->getNextClass($this);
115 $cmd = $ctrl->getCmd("log");
116
117 switch ($next_class) {
118 default:
119 if (in_array($cmd, array("log", "logDetails", "changeStatusObject", "rsvConfirmCancelUser", "rsvCancelUser",
120 "applyLogFilter", "resetLogFilter", "rsvConfirmCancel", "rsvCancel", "back", "rsvConfirmDelete", "rsvDelete", "confirmResetRun", "resetRun", "displayPostInfo", "deliverPostFile", "redirectMailToBooker"))) {
121 $this->$cmd();
122 }
123 }
124 }
125
126 protected function setHelpId(string $a_id): void
127 {
128 $this->help->setHelpId($a_id);
129 }
130
134 public function log(): void
135 {
138 $table = $this->getReservationsTable();
139 $tpl->setContent($table->getHTML());
140 }
141
145 protected function getReservationsTable(
146 ?string $reservation_id = null
148 $show_all = ($this->access->canManageAllReservations($this->ref_id) || $this->pool->hasPublicLog());
149
150 $filter = null;
151 if ($this->book_obj_id > 0) {
152 $filter["object"] = $this->book_obj_id;
153 }
154 // coming from participants tab to cancel reservations.
155 if ($this->book_request->getUserId() > 0) {
156 $filter["user_id"] = $this->book_request->getUserId();
157 }
158 $context_filter = ($this->context_obj_id > 0)
159 ? [$this->context_obj_id]
160 : null;
161
163 $this,
164 'log',
165 $this->ref_id,
166 $this->pool,
167 $show_all,
168 $filter,
170 $context_filter
171 );
172 }
173
174 public function logDetails(): void
175 {
176 $tpl = $this->tpl;
177
178 $this->tabs_gui->clearTargets();
179 $this->tabs_gui->setBackTarget(
180 $this->lng->txt("back"),
181 $this->ctrl->getLinkTarget($this, "log")
182 );
183
184 $table = $this->getReservationsTable($this->reservation_id);
185 $tpl->setContent($table->getHTML());
186 }
187
191 public function changeStatusObject(): void
192 {
193 $rsv_ids = $this->book_request->getReservationIds();
194 if (count($rsv_ids) === 0) {
195 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('select_one'));
196 $this->log();
197 }
198
199 if ($this->access->canManageAllReservations($this->ref_id)) {
201 $rsv_ids,
202 $this->book_request->getStatus()
203 );
204 }
205
206 $this->tpl->setOnScreenMessage('success', $this->lng->txt('settings_saved'), true);
207 $this->ctrl->redirect($this, 'log');
208 }
209
210 public function applyLogFilter(): void
211 {
212 $table = $this->getReservationsTable();
213 $table->resetOffset();
214 $table->writeFilterToSession();
215 $this->log();
216 }
217
218 public function resetLogFilter(): void
219 {
220 $table = $this->getReservationsTable();
221 $table->resetOffset();
222 $table->resetFilter();
223 $this->log();
224 }
225
226 //
227 // Cancelation reservations
228 //
229
239 public function rsvConfirmCancelUser(): void
240 {
241 $ilCtrl = $this->ctrl;
243 $tpl = $this->tpl;
244 $id = $this->book_obj_id;
245 if (!$id) {
246 return;
247 }
248
249 $this->setHelpId("cancel_booking");
250
251 $conf = new ilConfirmationGUI();
252 $conf->setFormAction($ilCtrl->getFormAction($this));
253 $conf->setHeaderText($lng->txt('book_confirm_cancel'));
254
255 $type = new ilBookingObject($id);
256 $conf->addItem('object_id', $id, $type->getTitle());
257 $conf->setConfirm($lng->txt('book_set_cancel'), 'rsvCancelUser');
258 $conf->setCancel($lng->txt('cancel'), 'back');
259
260 $tpl->setContent($conf->getHTML());
261 }
262
266 public function rsvCancelUser(): void
267 {
269
270 $id = $this->book_obj_id;
271 $user_id = $this->booked_user;
272
273 if (!$id || !$user_id) {
274 return;
275 }
276
278 $id = current($ids);
279 $obj = new ilBookingReservation($id);
280 if ($obj->getUserId() !== $user_id) {
281 $this->tpl->setOnScreenMessage('failure', $lng->txt('permission_denied'), true);
282 $this->back();
283 }
284
286 $obj->update();
287
288 $this->tpl->setOnScreenMessage('success', $lng->txt('settings_saved'), true);
289 $this->back();
290 }
291
295 protected function back(): void
296 {
297 $this->ctrl->redirect($this, "log");
298 }
299
303 public function rsvConfirmCancel(): void
304 {
305 $ilCtrl = $this->ctrl;
307 $tpl = $this->tpl;
308 $ilUser = $this->user;
309
310 $ids = $this->getLogReservationIds();
311 if (count($ids) === 0) {
312 $this->back();
313 }
314 $max = array();
315 foreach ($ids as $idx => $id) {
316 if (!is_numeric($id)) {
317 [$obj_id, $user_id, $from, $to] = explode("_", $id);
318
319 $valid_ids = array();
320 foreach (ilBookingObject::getList($this->pool->getId()) as $item) {
321 $valid_ids[$item["booking_object_id"]] = $item["title"];
322 }
323 if (array_key_exists($obj_id, $valid_ids) && $from > time() && ($this->access->canManageAllReservations($this->ref_id) || (int) $user_id === $ilUser->getId())) {
324 $rsv_ids = ilBookingReservation::getCancelDetails($obj_id, $user_id, $from, $to);
325 if (!count($rsv_ids)) {
326 unset($ids[$idx]);
327 }
328 if (count($rsv_ids) > 1) {
329 $max[$id] = count($rsv_ids);
330 $ids[$idx] = $rsv_ids;
331 } else {
332 // only 1 in group? treat as normal reservation
333 $ids[$idx] = array_shift($rsv_ids);
334 }
335 } else {
336 unset($ids[$idx]);
337 }
338 }
339 }
340
341 if (!is_array($ids) || !count($ids)) {
342 $this->ctrl->redirect($this, 'log');
343 }
344
345 // show form instead
346 if (count($max) && max($max) > 1) {
347 $this->rsvConfirmCancelAggregation($ids);
348 return;
349 }
350
351 $this->tabs_gui->clearTargets();
352 $this->tabs_gui->setBackTarget(
353 $lng->txt("back"),
354 $ilCtrl->getLinkTargetByClass("ilBookingReservationsGUI", "")
355 );
356
357 $this->setHelpId("cancel_booking");
358
359 $conf = new ilConfirmationGUI();
360 $conf->setFormAction($ilCtrl->getFormAction($this, 'rsvCancel'));
361 $conf->setHeaderText($lng->txt('book_confirm_cancel'));
362 $conf->setConfirm($lng->txt('book_set_cancel'), 'rsvCancel');
363 $conf->setCancel($lng->txt('cancel'), 'back');
364
365 foreach ($ids as $id) {
366 $rsv = new ilBookingReservation($id);
367 $obj = new ilBookingObject($rsv->getObjectId());
368
369 $details = $obj->getTitle();
370 if ($this->pool->getScheduleType() !== ilObjBookingPool::TYPE_NO_SCHEDULE) {
371 $details .= ", " . ilDatePresentation::formatPeriod(
372 new ilDateTime($rsv->getFrom(), IL_CAL_UNIX),
373 new ilDateTime($rsv->getTo() + 1, IL_CAL_UNIX)
374 );
375 }
376
377 $conf->addItem('rsv_id[]', $id, $details);
378 }
379
380 $tpl->setContent($conf->getHTML());
381 }
382
383
388 public function rsvConfirmCancelAggregation(?array $a_ids = null): void
389 {
390 $tpl = $this->tpl;
391 $ilCtrl = $this->ctrl;
393
394 $this->tabs_gui->clearTargets();
395 $this->tabs_gui->setBackTarget(
396 $lng->txt("back"),
397 $ilCtrl->getLinkTarget($this, "log")
398 );
399
400 $this->setHelpId("cancel_booking");
401
402 // #13511
403 $this->tpl->setOnScreenMessage('question', $lng->txt("book_confirm_cancel"));
404
405 $form = $this->rsvConfirmCancelAggregationForm($a_ids);
406
407 $tpl->setContent($form->getHTML());
408 }
409
414 array $a_ids
416 $form = new ilPropertyFormGUI();
417 $form->setFormAction($this->ctrl->getFormAction($this, "rsvCancel"));
418 $form->setTitle($this->lng->txt("book_confirm_cancel_aggregation"));
419
421
422 foreach ($a_ids as $idx => $ids) {
423 $first = $ids;
424 if (is_array($ids)) {
425 $first = array_shift($first);
426 }
427
428 $rsv = new ilBookingReservation($first);
429 $obj = new ilBookingObject($rsv->getObjectId());
430
431 $caption = $obj->getTitle() . ", " . ilDatePresentation::formatPeriod(
432 new ilDateTime($rsv->getFrom(), IL_CAL_UNIX),
433 new ilDateTime($rsv->getTo() + 1, IL_CAL_UNIX)
434 );
435
436 // #17869
437 if (is_array($ids)) {
438 $caption .= " (" . count($ids) . ")";
439 }
440
441 $item = new ilNumberInputGUI($caption, "rsv_id_" . $idx);
442 $item->setRequired(true);
443 $item->setMinValue(0);
444 $item->setSize(4);
445 $form->addItem($item);
446
447 if (is_array($ids)) {
448 $item->setMaxValue(count($ids));
449
450 foreach ($ids as $id) {
451 $hidden = new ilHiddenInputGUI("rsv_aggr[" . $idx . "][]");
452 $hidden->setValue($id);
453 $form->addItem($hidden);
454 }
455 } else {
456 $item->setMaxValue(1);
457
458 $hidden = new ilHiddenInputGUI("rsv_aggr[" . $idx . "]");
459 $hidden->setValue($ids);
460 $form->addItem($hidden);
461 }
462
463 if ($this->book_request->getCancelNr($idx)) {
464 $item->setValue($this->book_request->getCancelNr($idx));
465 }
466 }
467
468 $form->addCommandButton("rsvCancel", $this->lng->txt("confirm"));
469 $form->addCommandButton("log", $this->lng->txt("cancel"));
470
471 return $form;
472 }
473
477 public function rsvCancel(): void
478 {
479 $ilUser = $this->user;
480 $tpl = $this->tpl;
482 $ilCtrl = $this->ctrl;
483
484 // simple version of reservation id
485 $ids = $this->book_request->getReservationIds();
486
487 $rsv_aggr = $this->raw_post_data["rsv_aggr"] ?? null;
488 // aggregated version: determine reservation ids
489 if (!is_null($rsv_aggr)) {
490 $form = $this->rsvConfirmCancelAggregationForm($rsv_aggr);
491 if (!$form->checkInput()) {
492 $this->tabs_gui->clearTargets();
493 $this->tabs_gui->setBackTarget(
494 $lng->txt("back"),
495 $ilCtrl->getLinkTarget($this, "log")
496 );
497
498 $tpl->setContent($form->getHTML());
499 return;
500 }
501
502 $ids = array();
503 foreach ($rsv_aggr as $idx => $aggr_ids) {
504 $max = $this->book_request->getCancelNr($idx);
505 if ($max) {
506 if (!is_array($aggr_ids)) {
507 $ids[] = $aggr_ids;
508 } else {
509 $aggr_ids = array_slice($aggr_ids, 0, $max);
510 $ids = array_merge($ids, $aggr_ids);
511 }
512 }
513 }
514 }
515
516 // for all reservation ids -> set reservation status to cancelled (and remove calendar entry)
517 if ($ids) {
518 foreach ($ids as $id) {
520
521 // either write permission or own booking
522 if (!$this->access->canManageReservationForUser($this->ref_id, $res->getUserId())) {
523 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('permission_denied'), true);
524 $this->ctrl->redirect($this, 'log');
525 }
526
528 $res->update();
529
530 if ($this->pool->getScheduleType() !== ilObjBookingPool::TYPE_NO_SCHEDULE) {
531 // remove user calendar entry (#11086)
532 $cal_entry_id = $res->getCalendarEntry();
533 if ($cal_entry_id) {
534 $entry = new ilCalendarEntry($cal_entry_id);
535 $entry->delete();
536 }
537 }
538 }
539 }
540
541 $this->tpl->setOnScreenMessage('success', $this->lng->txt('settings_saved'));
542 $this->log();
543 }
544
545 public function rsvConfirmDelete(): void
546 {
547 global $DIC;
548 if (!$this->access->canManageAllReservations($this->ref_id)) {
549 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('permission_denied'), true);
550 $this->ctrl->redirect($this, 'log');
551 }
552
553 $ids = $this->getLogReservationIds();
554 if (count($ids) === 0) {
555 $this->back();
556 }
557
558 $this->tabs_gui->clearTargets();
559 $this->tabs_gui->setBackTarget(
560 $this->lng->txt("back"),
561 $this->ctrl->getLinkTarget($this, "log")
562 );
563
564 $conf = new ilConfirmationGUI();
565 $conf->setFormAction($this->ctrl->getFormAction($this, 'rsvDelete'));
566 $conf->setHeaderText($this->lng->txt('book_confirm_delete'));
567 $conf->setConfirm($this->lng->txt('book_set_delete'), 'rsvDelete');
568 $conf->setCancel($this->lng->txt('cancel'), 'log');
569
570 if ($this->pool->getScheduleType() === ilObjBookingPool::TYPE_FIX_SCHEDULE) {
571 foreach ($ids as $idx => $id) {
572 [$obj_id, $user_id, $from, $to] = explode("_", $id);
573 $rsv_ids = ilBookingReservation::getCancelDetails($obj_id, $user_id, $from, $to);
574 $rsv_id = $rsv_ids[0];
575
576 $rsv = new ilBookingReservation($rsv_id);
577 $obj = new ilBookingObject($rsv->getObjectId());
578
579 $details = sprintf($this->lng->txt('X_reservations_of'), count($rsv_ids)) . ' ' . $obj->getTitle();
580 $details .= ", " . ilDatePresentation::formatPeriod(
581 new ilDateTime($rsv->getFrom(), IL_CAL_UNIX),
582 new ilDateTime($rsv->getTo() + 1, IL_CAL_UNIX)
583 );
584 $conf->addItem('mrsv[]', $id, $details);
585 }
586 } else {
587 foreach ($ids as $idx => $rsv_id) {
588 $rsv = new ilBookingReservation($rsv_id);
589 $obj = new ilBookingObject($rsv->getObjectId());
590 $details = sprintf($this->lng->txt('X_reservations_of'), 1) . ' ' . $obj->getTitle();
591 $conf->addItem('mrsv[]', $rsv_id, $details);
592 }
593 }
594 $this->tpl->setContent($conf->getHTML());
595 }
596
597 public function rsvDelete(): void
598 {
599 global $DIC;
600 $get = $DIC->http()->request()->getParsedBody()['mrsv'];
601 if ($get) {
602 foreach ($get as $id) {
603 if ($this->pool->getScheduleType() == ilObjBookingPool::TYPE_FIX_SCHEDULE) {
604 list($obj_id, $user_id, $from, $to) = explode("_", $id);
605 $rsv_ids = ilBookingReservation::getCancelDetails($obj_id, $user_id, $from, $to);
606 } else {
607 $rsv_ids = [$id];
608 }
609
610 foreach ($rsv_ids as $rsv_id) {
611 $res = new ilBookingReservation($rsv_id);
612 $obj = new ilBookingObject($res->getObjectId());
613 if (!$this->access->canManageAllReservations($this->ref_id) || $obj->getPoolId() !== $this->pool->getId()) {
614 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('permission_denied'), true);
615 $this->ctrl->redirect($this, 'log');
616 }
617 if ($this->pool->getScheduleType() !== ilObjBookingPool::TYPE_NO_SCHEDULE) {
618 $cal_entry_id = $res->getCalendarEntry();
619 if ($cal_entry_id) {
620 $entry = new ilCalendarEntry($cal_entry_id);
621 $entry->delete();
622 }
623 }
624 $res->delete();
625 }
626 }
627 }
628 $this->tpl->setOnScreenMessage('success', $this->lng->txt('reservation_deleted'), true);
629 $this->ctrl->redirect($this, 'log');
630 }
631
632 protected function showRerunPreferenceAssignment(): void
633 {
634 if (!$this->access->canManageAllReservations($this->ref_id)) {
635 return;
636 }
637 if ($this->pool->getScheduleType() === ilObjBookingPool::TYPE_NO_SCHEDULE_PREFERENCES) {
638 $pref_manager = $this->service->domain()->preferences($this->pool);
639 if ($pref_manager->hasRun()) {
640 $this->toolbar->addComponent($this->ui->factory()->button()->standard(
641 $this->lng->txt("book_rerun_assignments"),
642 $this->ctrl->getLinkTarget($this, "confirmResetRun")
643 ));
644 }
645 }
646 }
647
648 protected function confirmResetRun()
649 {
650 if (!$this->access->canManageAllReservations($this->ref_id)) {
651 return;
652 }
653 $this->tabs_gui->activateTab("log");
654 $mess = $this->ui->factory()->messageBox()->confirmation($this->lng->txt("book_rerun_confirmation"))->withButtons(
655 [
656 $this->ui->factory()->button()->standard(
657 $this->lng->txt("book_rerun_assignments"),
658 $this->ctrl->getLinkTarget($this, "resetRun")
659 ),
660 $this->ui->factory()->button()->standard(
661 $this->lng->txt("cancel"),
662 $this->ctrl->getLinkTarget($this, "log")
663 )
664 ]
665 );
666 $this->tpl->setContent(
667 $this->ui->renderer()->render($mess)
668 );
669 }
670
671 protected function resetRun()
672 {
673 if (!$this->access->canManageAllReservations($this->ref_id)) {
674 return;
675 }
676 if ($this->pool->getScheduleType() === ilObjBookingPool::TYPE_NO_SCHEDULE_PREFERENCES
677 && $this->access->canManageAllReservations($this->pool->getRefId())) {
678 $pref_manager = $this->service->domain()->preferences($this->pool);
679 $repo = $this->service->repo()->preferences();
680 $pref_manager->resetRun();
681 $pref_manager->storeBookings(
682 $repo->getPreferences($this->pool->getId())
683 );
684 }
685 $this->ctrl->redirect($this, "log");
686 }
687
688 public function displayPostInfo(): void
689 {
690 $this->ctrl->saveParameter($this, "object_id");
691 $this->util_gui->displayPostInfo(
692 $this->book_obj_id,
693 0,
694 "deliverPostFile"
695 );
696 }
697
698 public function deliverPostFile(): void
699 {
700 $this->util_gui->deliverPostFile(
701 $this->book_obj_id,
702 $this->user->getId()
703 );
704 }
705
706 public function redirectMailToBooker(): void
707 {
708 if (!$this->access->canManageAllReservations($this->ref_id)) {
709 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('permission_denied'), true);
710 $this->ctrl->redirect($this, 'log');
711 }
712
713 $ids = $this->getLogReservationIds();
714 if (count($ids) === 0) {
715 $this->back();
716 }
717
718 $users = [];
719 if ($this->pool->getScheduleType() === ilObjBookingPool::TYPE_FIX_SCHEDULE) {
720 foreach ($ids as $idx => $id) {
721 [$obj_id, $user_id, $from, $to] = explode("_", $id);
722 $rsv_ids = ilBookingReservation::getCancelDetails($obj_id, $user_id, $from, $to);
723 $rsv_id = $rsv_ids[0];
724 $rsv = new ilBookingReservation($rsv_id);
725 $users[$rsv->getUserId()] = ilObjUser::_lookupLogin($rsv->getUserId());
726 }
727 } else {
728 foreach ($ids as $idx => $rsv_id) {
729 $rsv = new ilBookingReservation($rsv_id);
730 $users[$rsv->getUserId()] = ilObjUser::_lookupLogin($rsv->getUserId());
731 }
732 }
733 $logins = implode(",", $users);
734 // #16530 - see ilObjCourseGUI::createMailSignature
735 $sig = chr(13) . chr(10) . chr(13) . chr(10) . chr(13) . chr(10);
736 $sig .= $this->lng->txt('book_mail_permanent_link') . ": ";
737 $sig .= chr(13) . chr(10);
738 $sig .= ilLink::_getLink($this->book_request->getRefId());
739 $sig = rawurlencode(base64_encode($sig));
740
743 $this,
744 "log",
745 array(),
746 array(
747 'type' => 'new',
748 'rcp_to' => $logins,
750 )
751 ));
752 }
753
754}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
const IL_CAL_UNIX
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getList(int $a_pool_id, ?string $a_title=null)
Get list of booking objects.
static lookupPoolId(int $object_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getObjectReservationForUser(int $a_object_id, int $a_user_id)
static getCancelDetails(int $a_obj_id, int $a_user_id, int $a_from, int $a_to)
Get reservation ids from aggregated id for cancellation.
static changeStatus(array $a_ids, int $a_status)
Batch update reservation status.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
rsvCancel()
(C2.b) Cancel reservations (coming from C2 or C2.a)
rsvConfirmCancelAggregationForm(array $a_ids)
Form being used in (C2.a)
rsvConfirmCancelAggregation(?array $a_ids=null)
(C2.a) Cancel aggregated booking from reservations screen (with and without schedule) called in (C2)
ILIAS BookingManager InternalService $service
ILIAS BookingManager StandardGUIRequest $book_request
rsvConfirmCancelUser()
(C1) Confirmation screen for canceling booking without schedule from booking objects screen or from p...
ILIAS BookingManager Access AccessManager $access
getLogReservationIds()
Reservations IDs as currently provided from.
changeStatusObject()
Change status of given reservations.
getReservationsTable(?string $reservation_id=null)
Get reservationsTable.
rsvConfirmCancel()
(C2) Confirmation screen for canceling booking from reservations screen (with and without schedule)
__construct(ilObjBookingPool $pool, ilBookingHelpAdapter $help, int $context_obj_id=0)
ILIAS BookingManager BookingProcess ProcessUtilGUI $util_gui
Model for a calendar entry.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilCtrl provides processing control methods.
getNextClass($a_gui_class=null)
@inheritDoc
getCmd(?string $fallback_command=null)
@inheritDoc
static setUseRelativeDates(bool $a_status)
set use relative dates
static formatPeriod(ilDateTime $start, ilDateTime $end, bool $a_skip_starting_day=false, ?ilObjUser $user=null)
Format a period of two dates Shows: 14.
@classDescription Date and time handling
Base class for ILIAS Exception handling.
setFormAction(string $a_formaction)
This class represents a hidden form property in a property form.
language handling
final const string SIGNATURE_KEY
static getRedirectTarget( $gui, string $cmd, array $gui_params=[], array $mail_params=[], array $context_params=[])
static setRecipients(array $recipients, string $type='to')
This class represents a number property in a property form.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
User class.
static _lookupLogin(int $a_user_id)
This class represents a property form user interface.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static redirect(string $a_script)
setContent(string $a_html)
Sets content for standard template.
$res
Definition: ltiservices.php:69
global $lng
Definition: privfeed.php:31
global $DIC
Definition: shib_login.php:26