mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-30 17:30:59 +01:00
f736ca047a
Summary: You can now embed countdowns in Remarkup! Not sure what it's useful for, but there you have it. Also I may have made a hash of the markup code; I don't really know what I'm doing. Test Plan: Make a new countdown, put `{C###}` in a Differential comment. Reviewers: epriestley Reviewed By: epriestley CC: aran, Korvin Maniphest Tasks: T1053 Differential Revision: https://secure.phabricator.com/D3290
48 lines
1.1 KiB
JavaScript
48 lines
1.1 KiB
JavaScript
/**
|
|
* @provides javelin-behavior-countdown-timer
|
|
* @requires javelin-behavior
|
|
* javelin-dom
|
|
* javelin-util
|
|
*/
|
|
|
|
JX.behavior('countdown-timer', function(config) {
|
|
|
|
var container = JX.$(config.container);
|
|
calculateTimeLeft();
|
|
|
|
function setComponent(which, content) {
|
|
var component = JX.DOM.find(container, '*', 'phabricator-timer-' + which);
|
|
JX.DOM.setContent(component, content);
|
|
}
|
|
|
|
function calculateTimeLeft() {
|
|
var days = 0;
|
|
var hours = 0;
|
|
var minutes = 0;
|
|
var seconds = 0;
|
|
|
|
var current_timestamp = Math.round(new Date() / 1000);
|
|
var delta = config.timestamp - current_timestamp;
|
|
|
|
if (delta > 0) {
|
|
days = Math.floor(delta/86400);
|
|
delta -= days * 86400;
|
|
|
|
hours = Math.floor(delta/3600);
|
|
delta -= hours * 3600;
|
|
|
|
minutes = Math.floor(delta / 60);
|
|
delta -= minutes * 60;
|
|
|
|
seconds = delta;
|
|
|
|
setTimeout(calculateTimeLeft, 1000);
|
|
}
|
|
|
|
setComponent('days', days);
|
|
setComponent('hours', hours);
|
|
setComponent('minutes', minutes);
|
|
setComponent('seconds', seconds);
|
|
}
|
|
});
|
|
|