1<?php
2// This is the HTML representing the Event Detail modal on the Events page
3
4$eid = isset($_REQUEST['eid']) ? $_REQUEST['eid'] : '';
5$eids = isset($_REQUEST['eids']) ? $_REQUEST['eids'] : '';
6
7$result = '';
8$inputs = '';
9$disabled = 'disabled="disabled"';
10$null = '';
11
12if ( !canEdit('Events') ) return;
13
14if ( $eid ){ // Single Event Mode
15  $eid = validInt($eid);
16  $title = translate('Event').' '.$eid.PHP_EOL;
17  $inputs .= '<input type="hidden" name="markEids[]" value="' .$eid. '"/>';
18  $newEvent = dbFetchOne('SELECT E.* FROM Events AS E WHERE E.Id = ?', NULL, array($eid));
19
20} elseif ( $eids ) { // Multi Event Mode
21
22  $title = translate('Events');
23  $sql = 'SELECT E.* FROM Events AS E WHERE ';
24  $sqlWhere = array();
25  $sqlValues = array();
26  foreach ( $eids as $eid ) {
27    $eid = validInt($eid);
28    $inputs .= '<input type="hidden" name="markEids[]" value="' .$eid. '"/>';
29    $sqlWhere[] = 'E.Id = ?';
30    $sqlValues[] = $eid;
31  }
32  unset($eid);
33  $sql .= join(' OR ', $sqlWhere);
34  foreach( dbFetchAll( $sql, NULL, $sqlValues ) as $row ) {
35    if ( !isset($newEvent) ) {
36      $newEvent = $row;
37    } else {
38      if ( $newEvent['Cause'] && $newEvent['Cause'] != $row['Cause'] )
39        $newEvent['Cause'] = '';
40      if ( $newEvent['Notes'] && $newEvent['Notes'] != $row['Notes'] )
41        $newEvent['Notes'] = '';
42    }
43  }
44
45} else { // Event Mode not specified - should we really proceed if neither eid nor eids is set?
46  $title = translate('Events');
47}
48
49?>
50<div class="modal fade" id="eventDetailModal" data-backdrop="static" data-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
51  <div class="modal-dialog">
52    <div class="modal-content">
53      <div class="modal-header">
54        <h5 class="modal-title"><?php echo $title ?></h5>
55        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
56          <span aria-hidden="true">&times;</span>
57        </button>
58      </div>
59      <div class="modal-body">
60        <form name="contentForm" id="eventDetailForm" method="post" action="?view=eventdetail&action=eventdetail">
61          <?php
62          // We have to manually insert the csrf key into the form when using a modal generated via ajax call
63          echo getCSRFinputHTML();
64          echo $inputs;
65          ?>
66          <input type="hidden" name="action" value="eventdetail"/>
67          <input type="hidden" name="view" value="eventdetail"/>
68          <table class="table-sm">
69            <tbody>
70              <tr>
71                <th scope="row"><?php echo translate('Cause') ?></th>
72                <td><input type="text" name="newEvent[Cause]" value="<?php echo validHtmlStr($newEvent['Cause']) ?>" size="32"/></td>
73              </tr>
74              <tr>
75                <th scope="row" class="align-middle"><?php echo translate('Notes') ?></th>
76                <td><textarea name="newEvent[Notes]" rows="6" cols="33"><?php echo validHtmlStr($newEvent['Notes']) ?></textarea></td>
77              </tr>
78            </tbody>
79          </table>
80      </div>
81      <div class="modal-footer">
82        <button type="submit" name="action" id="eventDetailSaveBtn" class="btn btn-primary" value="save" <?php echo !canEdit('Events') ? $disabled : $null .'>'. translate('Save') ?></button>
83        <button type="button" class="btn btn-secondary" data-dismiss="modal"><?php echo translate('Cancel') ?></button>
84      </div>
85      </form>
86    </div>
87  </div>
88</div>
89
90