function __construct($event)
 {
     parent::__construct($event);
     $this->oid = $event['oid'];
     if (!empty($event['start_ts'])) {
         $start_ts = $event['start_ts'];
         $this->start_year = date('Y', $start_ts);
         $this->start_month = date('n', $start_ts);
         $this->start_day = date('j', $start_ts);
         $this->start_hour = date('H', $start_ts);
         $this->start_minute = date('i', $start_ts);
     }
     if (!empty($event['start_date'])) {
         if (preg_match('/^(\\d{4})(\\d{2})(\\d{2})$/', $event['start_date'], $start_matches) < 1) {
             soft_error(__('DB returned an invalid date.') . "({$event['start_date']})");
         }
         $this->start_year = $start_matches[1];
         $this->start_month = $start_matches[2];
         $this->start_day = $start_matches[3];
     }
     if (!empty($event['end_ts'])) {
         $end_ts = $event['end_ts'];
         $this->end_year = date('Y', $end_ts);
         $this->end_month = date('n', $end_ts);
         $this->end_day = date('j', $end_ts);
         $this->end_hour = date('H', $end_ts);
         $this->end_minute = date('i', $end_ts);
     }
     if (!empty($event['end_date'])) {
         if (preg_match('/^(\\d{4})(\\d{2})(\\d{2})$/', $event['end_date'], $end_matches) < 1) {
             soft_error(__('DB returned an invalid date.') . "({$event['start_date']})");
         }
         $this->end_year = $end_matches[1];
         $this->end_month = $end_matches[2];
         $this->end_day = $end_matches[3];
     }
     $this->time_type = $event['time_type'];
     if (!empty($event['end_ts'])) {
         $this->duration = $event['end_ts'] - $event['start_ts'];
     }
 }
Example #2
0
function display_event_by_eid($eid)
{
    global $phpcdb, $year, $month, $day;
    $event = new PhpcEvent($phpcdb->get_event_by_eid($eid));
    if (!$event->can_read()) {
        return tag('p', __("You do not have permission to read this event."));
    }
    $event_header = tag('div', attributes('class="phpc-event-header"'), tag('div', __('by') . ' ', tag('cite', $event->get_author())));
    $event_header->add(tag('div', __('Created at: '), $event->get_ctime_string()));
    if (!empty($event->mtime)) {
        $event_header->add(tag('div', __('Last modified at: '), $event->get_mtime_string()));
    }
    $category = $event->get_category();
    if (!empty($category)) {
        $event_header->add(tag('div', __('Category') . ': ' . $category));
    }
    // Add modify/delete links if this user has access to this event.
    if ($event->can_modify()) {
        $event_header->add(tag('div', attrs('class="phpc-bar ui-widget-content"'), create_event_link(__('Modify'), 'event_form', $eid), "\n", create_event_link(__('Add Occurrence'), 'occur_form', $eid), "\n", create_event_link(__('Delete'), 'event_delete', $eid)));
    }
    $desc_tag = tag('div', attributes('class="phpc-desc"'), tag('h3', __("Description")), tag('p', $event->get_desc()));
    $occurrences_tag = tag('ul');
    $occurrences = $phpcdb->get_occurrences_by_eid($eid);
    $set_date = false;
    foreach ($occurrences as $occurrence) {
        if (!$set_date) {
            $year = $occurrence->get_start_year();
            $month = $occurrence->get_start_month();
            $day = $occurrence->get_start_day();
        }
        $oid = $occurrence->get_oid();
        $occ_tag = tag('li', attrs('class="ui-widget-content"'), create_occurrence_link($occurrence->get_date_string() . ' ' . __('at') . ' ' . $occurrence->get_time_span_string(), 'display_event', $oid));
        if ($event->can_modify()) {
            $occ_tag->add(" ", create_occurrence_link(__('Edit'), 'occur_form', $oid), " ", create_occurrence_link(__('Remove'), 'occurrence_delete', $oid));
        }
        $occurrences_tag->add($occ_tag);
    }
    return tag('div', attributes('class="phpc-main phpc-event"'), tag('h2', $event->get_subject()), $event_header, $desc_tag, tag('div', attributes('class="phpc-occ"'), tag('h3', __('Occurrences')), $occurrences_tag));
}
Example #3
0
function display_event()
{
    global $vars, $phpcdb, $phpc_year, $phpc_month, $phpc_day, $phpc_cal;
    if (!empty($vars['content']) && $vars['content'] == 'json') {
        return display_event_json();
    }
    if (isset($vars['oid'])) {
        $entry = $phpcdb->get_event_by_oid($vars['oid']);
        if (!$entry) {
            return tag('p', __('There is no event for that OID.'));
        }
        $event = new PhpcEvent($entry);
    } elseif (isset($vars['eid'])) {
        $entry = $phpcdb->get_event_by_eid($vars['eid']);
        if (!$entry) {
            return tag('p', __('There is no event with that EID.'));
        }
        $event = new PhpcEvent($entry);
    }
    if (!isset($event)) {
        soft_error(__("Invalid arguments."));
    }
    if (!$event->can_read()) {
        return tag('p', __("You do not have permission to read this event."));
    }
    $event_header = tag('div', attributes('class="phpc-event-header"'), tag('div', __('created by') . ' ', tag('cite', $event->get_author()), ' ' . __('on') . ' ' . $event->get_ctime_string()));
    if (!empty($event->mtime)) {
        $event_header->add(tag('div', __('Last modified on '), $event->get_mtime_string()));
    }
    $category = $event->get_category();
    if (!empty($category)) {
        $event_header->add(tag('div', __('Category') . ': ' . $category));
    }
    // Add modify/delete links if this user has access to this event.
    $event_menu = '';
    if ($event->can_modify()) {
        $event_menu = tag('div', attrs('class="phpc-bar ui-widget-content"'), create_event_link(__('Modify'), 'event_form', $event->get_eid()), "\n", create_event_link(__('Delete'), 'event_delete', $event->get_eid(), attrs('class="phpc-confirm"')));
    }
    $desc_tag = tag('div', attributes('class="phpc-desc"'), tag('h3', __("Description")), tag('p', $event->get_desc()));
    $occurrences_tag = tag('ul');
    $occurrences = $phpcdb->get_occurrences_by_eid($event->get_eid());
    $set_date = false;
    foreach ($occurrences as $occurrence) {
        if (!$set_date) {
            $phpc_year = $occurrence->get_start_year();
            $phpc_month = $occurrence->get_start_month();
            $phpc_day = $occurrence->get_start_day();
        }
        $oid = $occurrence->get_oid();
        $occ_tag = tag('li', attrs('class="ui-widget-content"'), $occurrence->get_date_string() . ' ' . __('at') . ' ' . $occurrence->get_time_span_string());
        if ($event->can_modify()) {
            $occ_tag->add(" ", create_occurrence_link(__('Edit'), 'occur_form', $oid), " ", create_occurrence_link(__('Remove'), 'occurrence_delete', $oid, attrs('class="phpc-confirm-occ"')));
        }
        $occurrences_tag->add($occ_tag);
    }
    // Add occurrence link if this user has access to this event.
    $occurrences_menu = '';
    if ($event->can_modify()) {
        $occurrences_menu = tag('div', attrs('class="phpc-bar ui-widget-content"'), create_event_link(__('Add Occurrence'), 'occur_form', $event->get_eid()));
    }
    foreach ($event->get_fields() as $field) {
        $def = $phpc_cal->get_field($field['fid']);
        $event_header->add(tag('div', $def['name'] . ": " . $field['value']));
    }
    $dialog = tag('div', attrs('id="phpc-dialog"', 'title="' . __("Confirmation required") . '"'), __("Permanently delete this event?"));
    $dialog2 = tag('div', attrs('id="phpc-dialog-occ"', 'title="' . __("Confirmation required") . '"'), __("Permanently delete this occurrence?"));
    return tag('div', attributes('class="phpc-main phpc-event"'), $dialog, $dialog2, $event_menu, tag('h2', $event->get_subject()), $event_header, $desc_tag, tag('div', attrs('class="phpc-occ"'), tag('h3', __('Occurrences')), $occurrences_menu, $occurrences_tag));
}
function event_delete()
{
    global $vars, $phpcdb, $phpc_script;
    $html = tag('div', attributes('class="phpc-container"'));
    if (empty($vars["eid"])) {
        $message = __('No event selected.');
        $html->add(tag('div', $message));
        return $html;
    }
    if (is_array($vars["eid"])) {
        $eids = $vars["eid"];
    } else {
        $eids = array($vars["eid"]);
    }
    if (empty($vars["confirm"])) {
        $list = tag('ul');
        foreach ($eids as $eid) {
            $event = new PhpcEvent($phpcdb->get_event_by_eid($eid));
            $list->add(tag('li', "{$eid}: " . $event->get_subject()));
        }
        $html->add(tag('div', __('Confirm you want to delete:')));
        $html->add($list);
        $html->add(" [ ", create_action_link(__('Confirm'), "event_delete", array("eid" => $eids, "confirm" => "1")), " ] ");
        $html->add(" [ ", create_action_link(__('Deny'), "display_month"), " ] ");
        return $html;
    }
    $removed_events = array();
    $unremoved_events = array();
    $permission_denied = array();
    foreach ($eids as $eid) {
        $event = new PhpcEvent($phpcdb->get_event_by_eid($eid));
        if (!$event->can_modify()) {
            $permission_denied[] = $eid;
        } else {
            if ($phpcdb->delete_event($eid)) {
                $removed_events[] = $eid;
            } else {
                $unremoved_events[] = $eid;
            }
        }
    }
    if (sizeof($removed_events) > 0) {
        if (sizeof($removed_events) == 1) {
            $text = __("Removed event");
        } else {
            $text = __("Removed events");
        }
        $text .= ': ' . implode(', ', $removed_events);
        $html->add(tag('div', $text));
    }
    if (sizeof($unremoved_events) > 0) {
        if (sizeof($unremoved_events) == 1) {
            $text = __("Could not remove event");
        } else {
            $text = __("Could not remove events");
        }
        $text .= ': ' . implode(', ', $unremoved_events);
        $html->add(tag('div', $text));
    }
    if (sizeof($permission_denied) > 0) {
        if (sizeof($permission_denied) == 1) {
            $text = __("You do not have permission to remove event");
        } else {
            $text = __("You do not have permission to remove events");
        }
        $text .= ': ' . implode(', ', $permission_denied);
        $html->add(tag('div', $text));
    }
    return message_redirect($html, $phpc_script);
}
Example #5
0
function event_delete()
{
    global $vars, $phpcdb, $phpc_script;
    $html = tag('div', attributes('class="phpc-container"'));
    if (empty($vars["eid"])) {
        $message = __('No event selected.');
        $html->add(tag('div', $message));
        return $html;
    }
    if (is_array($vars["eid"])) {
        $eids = $vars["eid"];
    } else {
        $eids = array($vars["eid"]);
    }
    $removed_events = array();
    $unremoved_events = array();
    $permission_denied = array();
    foreach ($eids as $eid) {
        $entry = $phpcdb->get_event_by_eid($eid);
        if (!$entry) {
            continue;
        }
        $event = new PhpcEvent($entry);
        if (!$event->can_modify()) {
            $permission_denied[] = $eid;
        } else {
            if ($phpcdb->delete_event($eid)) {
                $removed_events[] = $eid;
            } else {
                $unremoved_events[] = $eid;
            }
        }
    }
    if (sizeof($removed_events) > 0) {
        if (sizeof($removed_events) == 1) {
            $text = __("Removed event");
        } else {
            $text = __("Removed events");
        }
        $text .= ': ' . implode(', ', $removed_events);
        $html->add(tag('div', $text));
    }
    if (sizeof($unremoved_events) > 0) {
        if (sizeof($unremoved_events) == 1) {
            $text = __("Could not remove event");
        } else {
            $text = __("Could not remove events");
        }
        $text .= ': ' . implode(', ', $unremoved_events);
        $html->add(tag('div', $text));
    }
    if (sizeof($permission_denied) > 0) {
        if (sizeof($permission_denied) == 1) {
            $text = __("You do not have permission to remove event");
        } else {
            $text = __("You do not have permission to remove events");
        }
        $text .= ': ' . implode(', ', $permission_denied);
        $html->add(tag('div', $text));
    }
    return message_redirect($html, $phpc_script);
}