<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://twentyonewiki.info/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-Countdown.js</id>
	<title>MediaWiki:Gadget-Countdown.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://twentyonewiki.info/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-Countdown.js"/>
	<link rel="alternate" type="text/html" href="https://twentyonewiki.info/index.php?title=MediaWiki:Gadget-Countdown.js&amp;action=history"/>
	<updated>2026-04-19T11:32:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://twentyonewiki.info/index.php?title=MediaWiki:Gadget-Countdown.js&amp;diff=2153&amp;oldid=prev</id>
		<title>Buburka Rinderbuy: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://twentyonewiki.info/index.php?title=MediaWiki:Gadget-Countdown.js&amp;diff=2153&amp;oldid=prev"/>
		<updated>2024-01-29T07:20:39Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:20, 29 January 2024&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key twenizlx_mw1497-mw20_:diff::1.12:old-2152:rev-2153 --&gt;
&lt;/table&gt;</summary>
		<author><name>Buburka Rinderbuy</name></author>
	</entry>
	<entry>
		<id>https://twentyonewiki.info/index.php?title=MediaWiki:Gadget-Countdown.js&amp;diff=2152&amp;oldid=prev</id>
		<title>MediaWiki:Gadget-Countdown.js&gt;がか: Created page with &quot;// https://dev.fandom.com/wiki/MediaWiki:Countdown/code.js  ;(function (module, mw, $) {   'use strict'    var countdowns = []    var NO_LEADING_ZEROS = 1,     SHORT_FORMAT =...&quot;</title>
		<link rel="alternate" type="text/html" href="https://twentyonewiki.info/index.php?title=MediaWiki:Gadget-Countdown.js&amp;diff=2152&amp;oldid=prev"/>
		<updated>2021-05-01T08:42:50Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;// https://dev.fandom.com/wiki/MediaWiki:Countdown/code.js  ;(function (module, mw, $) {   &amp;#039;use strict&amp;#039;    var countdowns = []    var NO_LEADING_ZEROS = 1,     SHORT_FORMAT =...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// https://dev.fandom.com/wiki/MediaWiki:Countdown/code.js&lt;br /&gt;
&lt;br /&gt;
;(function (module, mw, $) {&lt;br /&gt;
  'use strict'&lt;br /&gt;
&lt;br /&gt;
  var countdowns = []&lt;br /&gt;
&lt;br /&gt;
  var NO_LEADING_ZEROS = 1,&lt;br /&gt;
    SHORT_FORMAT = 2,&lt;br /&gt;
    NO_ZEROS = 4&lt;br /&gt;
&lt;br /&gt;
  function output(i, diff) {&lt;br /&gt;
    var delta,&lt;br /&gt;
      result,&lt;br /&gt;
      parts = []&lt;br /&gt;
    delta = diff % 60&lt;br /&gt;
    result = ' ' + (delta === 1 ? 'second' : 'seconds')&lt;br /&gt;
    if (countdowns[i].opts &amp;amp; SHORT_FORMAT) result = result.charAt(1)&lt;br /&gt;
    parts.unshift(delta + result)&lt;br /&gt;
    diff = Math.floor(diff / 60)&lt;br /&gt;
    delta = diff % 60&lt;br /&gt;
    result = ' ' + (delta === 1 ? 'minute' : 'minutes')&lt;br /&gt;
    if (countdowns[i].opts &amp;amp; SHORT_FORMAT) result = result.charAt(1)&lt;br /&gt;
    parts.unshift(delta + result)&lt;br /&gt;
    diff = Math.floor(diff / 60)&lt;br /&gt;
    delta = diff % 24&lt;br /&gt;
    result = ' ' + (delta === 1 ? 'hour' : 'hours')&lt;br /&gt;
    if (countdowns[i].opts &amp;amp; SHORT_FORMAT) result = result.charAt(1)&lt;br /&gt;
    parts.unshift(delta + result)&lt;br /&gt;
    diff = Math.floor(diff / 24)&lt;br /&gt;
    result = ' ' + (diff === 1 ? 'day' : 'days')&lt;br /&gt;
    if (countdowns[i].opts &amp;amp; SHORT_FORMAT) result = result.charAt(1)&lt;br /&gt;
    parts.unshift(diff + result)&lt;br /&gt;
    result = parts.pop()&lt;br /&gt;
    if (countdowns[i].opts &amp;amp; NO_LEADING_ZEROS) {&lt;br /&gt;
      while (parts.length &amp;amp;&amp;amp; parts[0][0] === '0') {&lt;br /&gt;
        parts.shift()&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if (countdowns[i].opts &amp;amp; NO_ZEROS) {&lt;br /&gt;
      parts = parts.filter(function (part) {&lt;br /&gt;
        return part[0] !== '0'&lt;br /&gt;
      })&lt;br /&gt;
    }&lt;br /&gt;
    if (parts.length) {&lt;br /&gt;
      if (countdowns[i].opts &amp;amp; SHORT_FORMAT) {&lt;br /&gt;
        result = parts.join(' ') + ' ' + result&lt;br /&gt;
      } else {&lt;br /&gt;
        result = parts.join(', ') + ' and ' + result&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    countdowns[i].node.text(result)&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function end(i) {&lt;br /&gt;
    var c = countdowns[i].node.parent()&lt;br /&gt;
    var toggle&lt;br /&gt;
    switch (c.attr('data-end')) {&lt;br /&gt;
      case 'remove':&lt;br /&gt;
        c.remove()&lt;br /&gt;
        return true&lt;br /&gt;
      case 'stop':&lt;br /&gt;
        output(i, 0)&lt;br /&gt;
        return true&lt;br /&gt;
      case 'toggle':&lt;br /&gt;
        toggle = c.attr('data-toggle')&lt;br /&gt;
        if (toggle &amp;amp;&amp;amp; toggle == 'next') {&lt;br /&gt;
          c.next().css('display', 'inline')&lt;br /&gt;
          c.css('display', 'none')&lt;br /&gt;
          return true&lt;br /&gt;
        }&lt;br /&gt;
        if (toggle &amp;amp;&amp;amp; $(toggle).length) {&lt;br /&gt;
          $(toggle).css('display', 'inline')&lt;br /&gt;
          c.css('display', 'none')&lt;br /&gt;
          return true&lt;br /&gt;
        }&lt;br /&gt;
        break&lt;br /&gt;
      case 'callback':&lt;br /&gt;
        callback = c.attr('data-callback')&lt;br /&gt;
        if (callback &amp;amp;&amp;amp; $.isFunction(module[callback])) {&lt;br /&gt;
          output(i, 0)&lt;br /&gt;
          module[callback].call(c)&lt;br /&gt;
          return true&lt;br /&gt;
        }&lt;br /&gt;
        break&lt;br /&gt;
    }&lt;br /&gt;
    countdowns[i].countup = true&lt;br /&gt;
    output(i, 0)&lt;br /&gt;
    return false&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function update() {&lt;br /&gt;
    var now = Date.now()&lt;br /&gt;
    var countdownsToRemove = []&lt;br /&gt;
    $.each(countdowns.slice(0), function (i, countdown) {&lt;br /&gt;
      var diff = Math.floor((countdown.date - now) / 1000)&lt;br /&gt;
      if (diff &amp;lt;= 0 &amp;amp;&amp;amp; !countdown.countup) {&lt;br /&gt;
        if (end(i)) countdownsToRemove.push(i)&lt;br /&gt;
      } else {&lt;br /&gt;
        output(i, Math.abs(diff))&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
    var x&lt;br /&gt;
    while ((x = countdownsToRemove.pop()) !== undefined) {&lt;br /&gt;
      countdowns.splice(x, 1)&lt;br /&gt;
    }&lt;br /&gt;
    if (countdowns.length) {&lt;br /&gt;
      window.setTimeout(function () {&lt;br /&gt;
        update()&lt;br /&gt;
      }, 1000)&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function getOptions(node) {&lt;br /&gt;
    var text = node.parent().attr('data-options'),&lt;br /&gt;
      opts = 0&lt;br /&gt;
    if (text) {&lt;br /&gt;
      if (/no-leading-zeros/.test(text)) {&lt;br /&gt;
        opts |= NO_LEADING_ZEROS&lt;br /&gt;
      }&lt;br /&gt;
      if (/short-format/.test(text)) {&lt;br /&gt;
        opts |= SHORT_FORMAT&lt;br /&gt;
      }&lt;br /&gt;
      if (/no-zeros/.test(text)) {&lt;br /&gt;
        opts |= NO_ZEROS&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    return opts&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function init() {&lt;br /&gt;
    var countdown = $('.countdown:not(.handled)')&lt;br /&gt;
    if (!countdown.length) return&lt;br /&gt;
    $('.nocountdown').css('display', 'none')&lt;br /&gt;
    countdown&lt;br /&gt;
      .css('display', 'inline')&lt;br /&gt;
      .find('.countdowndate')&lt;br /&gt;
      .each(function () {&lt;br /&gt;
        var $this = $(this),&lt;br /&gt;
          date = new Date($this.text()).valueOf()&lt;br /&gt;
        if (isNaN(date)) {&lt;br /&gt;
          $this.text('BAD DATE')&lt;br /&gt;
          return&lt;br /&gt;
        }&lt;br /&gt;
        countdowns.push({&lt;br /&gt;
          node: $this,&lt;br /&gt;
          opts: getOptions($this),&lt;br /&gt;
          date: date,&lt;br /&gt;
        })&lt;br /&gt;
      })&lt;br /&gt;
    countdown.addClass('handled')&lt;br /&gt;
    if (countdowns.length) {&lt;br /&gt;
      update()&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  mw.hook('wikipage.content').add(init)&lt;br /&gt;
})((window.countdownTimer = window.countdownTimer || {}), mediaWiki, jQuery)&lt;/div&gt;</summary>
		<author><name>MediaWiki:Gadget-Countdown.js&gt;がか</name></author>
	</entry>
</feed>