[1-9]\d*)(?:/(?P\d+)/)?' => 'PhabricatorCalendarEventViewController', '/calendar/' => array( '(?:query/(?P[^/]+)/(?:(?P\d+)/'. '(?P\d+)/)?(?:(?P\d+)/)?)?' => 'PhabricatorCalendarEventListController', 'event/' => array( $this->getEditRoutePattern('edit/') => 'PhabricatorCalendarEventEditController', 'drag/(?P[1-9]\d*)/' => 'PhabricatorCalendarEventDragController', 'cancel/(?P[1-9]\d*)/' => 'PhabricatorCalendarEventCancelController', '(?Pjoin|decline|accept)/(?P[1-9]\d*)/' => 'PhabricatorCalendarEventJoinController', 'export/(?P[1-9]\d*)/(?P[^/]*)' => 'PhabricatorCalendarEventExportController', 'availability/(?P[1-9]\d*)/(?P[^/]+)/' => 'PhabricatorCalendarEventAvailabilityController', ), 'export/' => array( $this->getQueryRoutePattern() => 'PhabricatorCalendarExportListController', $this->getEditRoutePattern('edit/') => 'PhabricatorCalendarExportEditController', '(?P[1-9]\d*)/' => 'PhabricatorCalendarExportViewController', 'ics/(?P[^/]+)/(?P[^/]*)' => 'PhabricatorCalendarExportICSController', 'disable/(?P[1-9]\d*)/' => 'PhabricatorCalendarExportDisableController', ), 'import/' => array( $this->getQueryRoutePattern() => 'PhabricatorCalendarImportListController', $this->getEditRoutePattern('edit/') => 'PhabricatorCalendarImportEditController', '(?P[1-9]\d*)/' => 'PhabricatorCalendarImportViewController', 'disable/(?P[1-9]\d*)/' => 'PhabricatorCalendarImportDisableController', 'delete/(?P[1-9]\d*)/' => 'PhabricatorCalendarImportDeleteController', 'reload/(?P[1-9]\d*)/' => 'PhabricatorCalendarImportReloadController', 'drop/' => 'PhabricatorCalendarImportDropController', 'log/' => array( $this->getQueryRoutePattern() => 'PhabricatorCalendarImportLogListController', ), ), ), ); } public function getHelpDocumentationArticles(PhabricatorUser $viewer) { return array( array( 'name' => pht('Calendar User Guide'), 'href' => PhabricatorEnv::getDoclink('Calendar User Guide'), ), array( 'name' => pht('Importing Events'), 'href' => PhabricatorEnv::getDoclink( 'Calendar User Guide: Importing Events'), ), array( 'name' => pht('Exporting Events'), 'href' => PhabricatorEnv::getDoclink( 'Calendar User Guide: Exporting Events'), ), ); } public function getMailCommandObjects() { return array( 'event' => array( 'name' => pht('Email Commands: Events'), 'header' => pht('Interacting with Calendar Events'), 'object' => new PhabricatorCalendarEvent(), 'summary' => pht( 'This page documents the commands you can use to interact with '. 'events in Calendar. These commands work when creating new tasks '. 'via email and when replying to existing tasks.'), ), ); } protected function getCustomCapabilities() { return array( PhabricatorCalendarEventDefaultViewCapability::CAPABILITY => array( 'caption' => pht('Default view policy for newly created events.'), 'template' => PhabricatorCalendarEventPHIDType::TYPECONST, 'capability' => PhabricatorPolicyCapability::CAN_VIEW, ), PhabricatorCalendarEventDefaultEditCapability::CAPABILITY => array( 'caption' => pht('Default edit policy for newly created events.'), 'template' => PhabricatorCalendarEventPHIDType::TYPECONST, 'capability' => PhabricatorPolicyCapability::CAN_EDIT, ), ); } }