Path: blob/master/webroot/rsrc/js/application/countdown/timer.js
12242 views
/**1* @provides javelin-behavior-countdown-timer2* @requires javelin-behavior3* javelin-dom4*/56JX.behavior('countdown-timer', function(config) {7try {8var container = JX.$(config.container);9} catch (ignored) {10return;11}1213function setComponent(which, content) {14var component = JX.DOM.find(container, '*', 'phabricator-timer-' + which);15JX.DOM.setContent(component, content);16}1718function calculateTimeLeft() {19var days = 0;20var hours = 0;21var minutes = 0;22var seconds = 0;23var partial = 0;2425var current_timestamp = +new Date();2627var delta = (config.timestamp * 1000) - current_timestamp;2829if (delta > 0) {30days = Math.floor(delta / 86400000);31delta -= days * 86400000;3233hours = Math.floor(delta / 3600000);34delta -= hours * 3600000;3536minutes = Math.floor(delta / 60000);37delta -= minutes * 60000;3839seconds = Math.floor(delta / 1000);40delta -= seconds * 1000;4142partial = Math.floor(delta / 100) || '0';4344setTimeout(calculateTimeLeft, 100);45}4647setComponent('days', days);48setComponent('hours', hours);49setComponent('minutes', minutes);50setComponent('seconds', [seconds, JX.$N('small', {}, ['.', partial])]);51}5253calculateTimeLeft();54});555657