id = $data['id']; } public function processRequest() { $request = $this->getRequest(); $user = $request->getUser(); $timer = id(new PhabricatorTimer())->load($this->id); if (!$timer) { return new Aphront404Response(); } require_celerity_resource('phabricator-countdown-css'); $chrome_visible = $request->getBool('chrome', true); $chrome_new = $chrome_visible ? false : null; $chrome_link = phutil_tag( 'a', array( 'href' => $request->getRequestURI()->alter('chrome', $chrome_new), 'class' => 'phabricator-timer-chrome-link', ), $chrome_visible ? pht('Disable Chrome') : pht('Enable Chrome')); $container = celerity_generate_unique_node_id(); $content = hsprintf( '

%s · %s

%s%s%s%s
Days Hours Minutes Seconds
%s
', $container, $timer->getTitle(), phabricator_datetime($timer->getDatePoint(), $user), javelin_tag('td', array('sigil' => 'phabricator-timer-days'), ''), javelin_tag('td', array('sigil' => 'phabricator-timer-hours'), ''), javelin_tag('td', array('sigil' => 'phabricator-timer-minutes'), ''), javelin_tag('td', array('sigil' => 'phabricator-timer-seconds'), ''), $chrome_link); Javelin::initBehavior('countdown-timer', array( 'timestamp' => $timer->getDatepoint(), 'container' => $container, )); $panel = $content; return $this->buildStandardPageResponse( $panel, array( 'title' => 'Countdown: '.$timer->getTitle(), 'chrome' => $chrome_visible )); } }