public static function eventTabs($tabname, $event)
{
if (!$event->initialized) {
return;
}
$GLOBALS['page_output']->addScriptFile('views.js');
$tabs = new Horde_Core_Ui_Tabs('event', Horde_Variables::getDefaultVariables());
$date = self::currentDate();
$tabs->preserve('datetime', $date->dateString());
$tabs->addTab(htmlspecialchars($event->getTitle()), $event->getViewUrl(), array('tabname' => 'Event', 'id' => 'tabEvent', 'onclick' => 'return ShowTab(\'Event\');'));
/* We check for read permissions, because we can always save a copy if
* we can read the event. */
if ((!$event->private || $event->creator == $GLOBALS['registry']->getAuth()) && $event->hasPermission(Horde_Perms::READ) && self::getDefaultCalendar(Horde_Perms::EDIT)) {
$tabs->addTab($event->hasPermission(Horde_Perms::EDIT) ? _("_Edit") : _("Save As New"), $event->getEditUrl(), array('tabname' => 'EditEvent', 'id' => 'tabEditEvent', 'onclick' => 'return ShowTab(\'EditEvent\');'));
}
if ($event->hasPermission(Horde_Perms::DELETE)) {
$tabs->addTab(_("De_lete"), $event->getDeleteUrl(array('confirm' => 1)), array('tabname' => 'DeleteEvent', 'id' => 'tabDeleteEvent', 'onclick' => 'return ShowTab(\'DeleteEvent\');'));
}
$tabs->addTab(_("Export"), $event->getExportUrl(), array('tabname' => 'ExportEvent', 'id' => 'tabExportEvent'));
echo $tabs->render($tabname);
}
} if (Kronolith::showAjaxView()) { Horde::url('', true)->setAnchor('event:' . $view->event->calendarType . '|' . $view->event->calendar . ':' . $view->event->id . ':' . Horde_Util::getFormData('datetime', Kronolith::currentDate()->dateString()))->redirect(); } switch ($viewName) { case 'DeleteEvent': /* Shortcut when we're deleting events and don't want confirmation. */ if (!$view->event->recurs() && !($prefs->getValue('confirm_delete') || Horde_Util::getFormData('confirm'))) { Horde::url('delete.php?' . $_SERVER['QUERY_STRING'], true)->redirect(); } break; case 'EditEvent': if ($view->event->private && $view->event->creator != $GLOBALS['registry']->getAuth()) { $url = $url = Horde_Util::getFormData('url'); if (!empty($url)) { $url = new Horde_Url($url, true); } else { $url = Horde::url($prefs->getValue('defaultview') . '.php', true); } $url->unique()->redirect(); } break; } $page_output->header(array('body_class' => $prefs->getValue('show_panel') ? 'rightPanel' : null, 'title' => $view->getTitle())); require KRONOLITH_TEMPLATES . '/javascript_defs.php'; $notification->notify(array('listeners' => 'status')); echo '<div id="page">'; Kronolith::eventTabs($viewName, $view->event); $view->html(); echo '</div>'; $page_output->footer();