183 lines
8.7 KiB
PHP
183 lines
8.7 KiB
PHP
<?php
|
|
global $prefs, $registry;
|
|
|
|
$kronolith_webroot = $registry->get('webroot');
|
|
$horde_webroot = $registry->get('webroot', 'horde');
|
|
$has_tasks = Kronolith::hasApiPermission('tasks');
|
|
|
|
/* Variables used in core javascript files. */
|
|
$code['conf'] = array(
|
|
'images' => array(
|
|
'attendees' => (string)Horde_Themes::img('attendees-fff.png'),
|
|
'alarm' => (string)Horde_Themes::img('alarm-fff.png'),
|
|
'recur' => (string)Horde_Themes::img('recur-fff.png'),
|
|
'exception' => (string)Horde_Themes::img('exception-fff.png'),
|
|
),
|
|
'user' => $GLOBALS['registry']->convertUsername($GLOBALS['registry']->getAuth(), false),
|
|
'prefs_url' => strval($registry->getServiceLink('prefs', 'kronolith')->setRaw(true)),
|
|
'name' => $registry->get('name'),
|
|
'has_tasks' => $has_tasks,
|
|
'default_calendar' => 'internal|' . Kronolith::getDefaultCalendar(Horde_Perms::EDIT),
|
|
'week_start' => (int)$prefs->getValue('week_start_monday'),
|
|
'max_events' => (int)$prefs->getValue('max_events'),
|
|
'date_format' => str_replace(array('%e', '%d', '%a', '%A', '%m', '%h', '%b', '%B', '%y', '%Y'),
|
|
array('d', 'dd', 'ddd', 'dddd', 'MM', 'MMM', 'MMM', 'MMMM', 'yy', 'yyyy'),
|
|
Horde_Nls::getLangInfo(D_FMT)),
|
|
'time_format' => $prefs->getValue('twentyFour') ? 'HH:mm' : 'hh:mm tt',
|
|
'status' => array('tentative' => Kronolith::STATUS_TENTATIVE,
|
|
'confirmed' => Kronolith::STATUS_CONFIRMED,
|
|
'cancelled' => Kronolith::STATUS_CANCELLED,
|
|
'free' => Kronolith::STATUS_FREE),
|
|
'recur' => array(Horde_Date_Recurrence::RECUR_NONE => 'None',
|
|
Horde_Date_Recurrence::RECUR_DAILY => 'Daily',
|
|
Horde_Date_Recurrence::RECUR_WEEKLY => 'Weekly',
|
|
Horde_Date_Recurrence::RECUR_MONTHLY_DATE => 'Monthly',
|
|
Horde_Date_Recurrence::RECUR_MONTHLY_WEEKDAY => 'Monthly',
|
|
Horde_Date_Recurrence::RECUR_YEARLY_DATE => 'Yearly',
|
|
Horde_Date_Recurrence::RECUR_YEARLY_DAY => 'Yearly',
|
|
Horde_Date_Recurrence::RECUR_YEARLY_WEEKDAY => 'Yearly'),
|
|
'perms' => array('all' => Horde_Perms::ALL,
|
|
'show' => Horde_Perms::SHOW,
|
|
'read' => Horde_Perms::READ,
|
|
'edit' => Horde_Perms::EDIT,
|
|
'delete' => Horde_Perms::DELETE,
|
|
'delegate' => Kronolith::PERMS_DELEGATE)
|
|
);
|
|
if ($has_tasks) {
|
|
$code['conf']['tasks'] = $registry->tasks->ajaxDefaults();
|
|
}
|
|
// Calendars
|
|
foreach (array(true, false) as $my) {
|
|
foreach ($GLOBALS['calendar_manager']->get(Kronolith::ALL_CALENDARS) as $id => $calendar) {
|
|
$owner = $GLOBALS['registry']->getAuth() &&
|
|
$calendar->owner() == $GLOBALS['registry']->getAuth();
|
|
if (($my && $owner) || (!$my && !$owner)) {
|
|
$code['conf']['calendars']['internal'][$id] = array(
|
|
'name' => ($owner || !$calendar->owner() ? '' : '[' . $GLOBALS['registry']->convertUsername($calendar->owner(), false) . '] ')
|
|
. $calendar->name(),
|
|
'desc' => $calendar->description(),
|
|
'owner' => $owner,
|
|
'fg' => $calendar->foreground(),
|
|
'bg' => $calendar->background(),
|
|
'show' => in_array($id, $GLOBALS['calendar_manager']->get(Kronolith::DISPLAY_CALENDARS)),
|
|
'edit' => $calendar->hasPermission(Horde_Perms::EDIT),
|
|
'feed' => (string)Kronolith::feedUrl($id),
|
|
'embed' => Kronolith::embedCode($id));
|
|
if ($owner) {
|
|
$code['conf']['calendars']['internal'][$id]['perms'] = Kronolith::permissionToJson($calendar->share()->getPermission());
|
|
}
|
|
}
|
|
}
|
|
|
|
// Tasklists
|
|
if (!$has_tasks) {
|
|
continue;
|
|
}
|
|
foreach ($registry->tasks->listTasklists($my, Horde_Perms::SHOW) as $id => $tasklist) {
|
|
$owner = $GLOBALS['registry']->getAuth() &&
|
|
$tasklist->get('owner') == $GLOBALS['registry']->getAuth();
|
|
if (($my && $owner) || (!$my && !$owner)) {
|
|
$code['conf']['calendars']['tasklists']['tasks/' . $id] = array(
|
|
'name' => Kronolith::getLabel($tasklist),
|
|
'desc' => $tasklist->get('desc'),
|
|
'owner' => $owner,
|
|
'fg' => Kronolith::foregroundColor($tasklist),
|
|
'bg' => Kronolith::backgroundColor($tasklist),
|
|
'show' => in_array('tasks/' . $id, $GLOBALS['calendar_manager']->get(Kronolith::DISPLAY_EXTERNAL_CALENDARS)),
|
|
'edit' => $tasklist->hasPermission($GLOBALS['registry']->getAuth(), Horde_Perms::EDIT));
|
|
if ($owner) {
|
|
$code['conf']['calendars']['tasklists']['tasks/' . $id]['perms'] = Kronolith::permissionToJson($tasklist->getPermission());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Timeobjects
|
|
foreach ($GLOBALS['calendar_manager']->get(Kronolith::ALL_EXTERNAL_CALENDARS) as $id => $calendar) {
|
|
if ($calendar->api() == 'tasks') {
|
|
continue;
|
|
}
|
|
if (!$calendar->display()) {
|
|
continue;
|
|
}
|
|
$code['conf']['calendars']['external'][$id] = array(
|
|
'name' => $calendar->name(),
|
|
'fg' => $calendar->foreground(),
|
|
'bg' => $calendar->background(),
|
|
'api' => $registry->get('name', $registry->hasInterface($calendar->api())),
|
|
'show' => in_array($id, $GLOBALS['calendar_manager']->get(Kronolith::DISPLAY_EXTERNAL_CALENDARS)));
|
|
}
|
|
|
|
// Remote calendars
|
|
foreach ($GLOBALS['calendar_manager']->get(Kronolith::ALL_REMOTE_CALENDARS) as $url => $calendar) {
|
|
$code['conf']['calendars']['remote'][$url] = array_merge(
|
|
array('name' => $calendar->name(),
|
|
'desc' => $calendar->description(),
|
|
'owner' => true,
|
|
'fg' => $calendar->foreground(),
|
|
'bg' => $calendar->background(),
|
|
'show' => in_array($url, $GLOBALS['calendar_manager']->get(Kronolith::DISPLAY_REMOTE_CALENDARS))),
|
|
$calendar->credentials());
|
|
}
|
|
|
|
// Holidays
|
|
foreach ($GLOBALS['calendar_manager']->get(Kronolith::ALL_HOLIDAYS) as $id => $calendar) {
|
|
$code['conf']['calendars']['holiday'][$id] = array(
|
|
'name' => $calendar->name(),
|
|
'fg' => $calendar->foreground(),
|
|
'bg' => $calendar->background(),
|
|
'show' => in_array($id, $GLOBALS['calendar_manager']->get(Kronolith::DISPLAY_HOLIDAYS)));
|
|
}
|
|
|
|
/* Gettext strings used in core javascript files. */
|
|
$code['text'] = array(
|
|
'ajax_error' => _("Error when communicating with the server."),
|
|
'allday' => _("All day"),
|
|
'noevents' => _("No events to display"),
|
|
'yesterday' => _("Yesterday"),
|
|
'today' => _("Today"),
|
|
'tomorrow' => _("Tomorrow")
|
|
);
|
|
|
|
/* Map day masks to localized day names for recursion */
|
|
$masks = array(
|
|
Horde_Date::MASK_SUNDAY => Horde_Nls::getLangInfo(DAY_1),
|
|
Horde_Date::MASK_MONDAY => Horde_Nls::getLangInfo(DAY_2),
|
|
Horde_Date::MASK_TUESDAY => Horde_Nls::getLangInfo(DAY_3),
|
|
Horde_Date::MASK_WEDNESDAY => Horde_Nls::getLangInfo(DAY_4),
|
|
Horde_Date::MASK_THURSDAY => Horde_Nls::getLangInfo(DAY_5),
|
|
Horde_Date::MASK_FRIDAY => Horde_Nls::getLangInfo(DAY_6),
|
|
Horde_Date::MASK_SATURDAY => Horde_Nls::getLangInfo(DAY_7));
|
|
foreach ($masks as $i => $text) {
|
|
$code['text']['weekday'][$i] = $text;
|
|
}
|
|
|
|
$code['text']['recur']['desc'] = array(
|
|
Horde_Date_Recurrence::RECUR_DAILY => array(
|
|
_("Recurs daily"),
|
|
sprintf(_("Recurs every %s days"), "#{interval}")),
|
|
Horde_Date_Recurrence::RECUR_WEEKLY => array(
|
|
sprintf(_("Recurs weekly on every %s"), "#{weekday}"),
|
|
sprintf(_("Recurs every %s weeks on %s"), "#{interval}", "#{weekday}")),
|
|
Horde_Date_Recurrence::RECUR_MONTHLY_DATE => array(
|
|
sprintf(_("Recurs on the %s of every month"), "#{date}"),
|
|
sprintf(_("Recurs every %s months on the %s"), "#{interval}", "#{date}")),
|
|
Horde_Date_Recurrence::RECUR_MONTHLY_WEEKDAY => array(
|
|
_("Recurs every month on the same weekday"),
|
|
sprintf(_("Recurs every %s months on the same weekday"), "#{interval}")),
|
|
Horde_Date_Recurrence::RECUR_YEARLY_DATE => array(
|
|
sprintf(_("Recurs once a year, on %s"), '#{date}'),
|
|
sprintf(_("Recurs every %s years on %s"), '#{interval}', '#{date}')),
|
|
Horde_Date_Recurrence::RECUR_YEARLY_DAY => array(
|
|
_("Recurs once a year, on the same day"),
|
|
sprintf(_("Recurs every %s years on the same day"), '#{interval}')),
|
|
Horde_Date_Recurrence::RECUR_YEARLY_WEEKDAY => array(
|
|
_("Recurs every year on the same weekday"),
|
|
sprintf(_("Recurs every %s years on the same weekday"), "#{interval}")),
|
|
);
|
|
$code['text']['recur']['exception'] = _("Exception");
|
|
|
|
echo $GLOBALS['page_output']->addInlineJsVars(array(
|
|
'var Kronolith' => $code
|
|
), array('top' => true));
|