summaryrefslogtreecommitdiff
path: root/includes/controller/event_config_controller.php
blob: 4f07fe4cbe70f24869bd417e566a400899ab94ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php

function event_config_title() {
  return _("Event config");
}

function event_config_edit_controller() {
  global $privileges;
  
  if (! in_array('admin_event_config', $privileges)) {
    redirect('?');
  }
  
  $event_name = null;
  $event_welcome_msg = null;
  $buildup_start_date = null;
  $event_start_date = null;
  $event_end_date = null;
  $teardown_end_date = null;
  
  $event_config = EventConfig();
  if ($event_config != null) {
    $event_name = $event_config['event_name'];
    $buildup_start_date = $event_config['buildup_start_date'];
    $event_start_date = $event_config['event_start_date'];
    $event_end_date = $event_config['event_end_date'];
    $teardown_end_date = $event_config['teardown_end_date'];
    $event_welcome_msg = $event_config['event_welcome_msg'];
  }
  
  if (isset($_REQUEST['submit'])) {
    $valid = true;
    
    if (isset($_REQUEST['event_name'])) {
      $event_name = strip_request_item('event_name');
    }
    if ($event_name == '') {
      $event_name = null;
    }
    
    if (isset($_REQUEST['event_welcome_msg'])) {
      $event_welcome_msg = strip_request_item_nl('event_welcome_msg');
    }
    if ($event_welcome_msg == '') {
      $event_welcome_msg = null;
    }
    
    $result = check_request_date('buildup_start_date', _("Please enter buildup start date."), true);
    $buildup_start_date = $result->getValue();
    $valid &= $result->isValid();
    
    $result = check_request_date('event_start_date', _("Please enter event start date."), true);
    $event_start_date = $result->getValue();
    $valid &= $result->isValid();
    
    $result = check_request_date('event_end_date', _("Please enter event end date."), true);
    $event_end_date = $result->getValue();
    $valid &= $result->isValid();
    
    $result = check_request_date('teardown_end_date', _("Please enter teardown end date."), true);
    $teardown_end_date = $result->getValue();
    $valid &= $result->isValid();
    
    if ($buildup_start_date != null && $event_start_date != null && $buildup_start_date > $event_start_date) {
      $valid = false;
      error(_("The buildup start date has to be before the event start date."));
    }
    
    if ($event_start_date != null && $event_end_date != null && $event_start_date > $event_end_date) {
      $valid = false;
      error(_("The event start date has to be before the event end date."));
    }
    
    if ($event_end_date != null && $teardown_end_date != null && $event_end_date > $teardown_end_date) {
      $valid = false;
      error(_("The event end date has to be before the teardown end date."));
    }
    
    if ($buildup_start_date != null && $teardown_end_date != null && $buildup_start_date > $teardown_end_date) {
      $valid = false;
      error(_("The buildup start date has to be before the teardown end date."));
    }
    
    if ($valid) {
      $result = EventConfig_update($event_name, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date, $event_welcome_msg);
      
      if ($result === false) {
        engelsystem_error("Unable to update event config.");
      }
      
      engelsystem_log("Changed event config: $event_name, $event_welcome_msg, " . date("Y-m-d", $buildup_start_date) . ", " . date("Y-m-d", $event_start_date) . ", " . date("Y-m-d", $event_end_date) . ", " . date("Y-m-d", $teardown_end_date));
      success(_("Settings saved."));
      redirect(page_link_to('admin_event_config'));
    }
  }
  
  return [
      event_config_title(),
      EventConfig_edit_view($event_name, $event_welcome_msg, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date) 
  ];
}

?>