Sha256: 559516e9288fa383665ee28589bc14e1cb6f04ce9351b7f946383f9435fc3ea9
Contents?: true
Size: 1.66 KB
Versions: 5
Compression:
Stored size: 1.66 KB
Contents
#= require ./relative_time #= require ./page_observer {parseDate, strftime, getI18nValue, config} = LocalTime class LocalTime.Controller SELECTOR = "time[data-local]:not([data-localized])" constructor: -> @pageObserver = new LocalTime.PageObserver SELECTOR, @processElements start: -> unless @started @processElements() @startTimer() @pageObserver.start() @started = true startTimer: -> if interval = config.timerInterval @timer ?= setInterval(@processElements, interval) processElements: (elements = document.querySelectorAll(SELECTOR)) => @processElement(element) for element in elements elements.length processElement: (element) -> datetime = element.getAttribute("datetime") format = element.getAttribute("data-format") local = element.getAttribute("data-local") time = parseDate(datetime) return if isNaN time unless element.hasAttribute("title") title = strftime(time, getI18nValue("datetime.formats.default")) element.setAttribute("title", title) element.textContent = switch local when "time" markAsLocalized(element) strftime(time, format) when "date" markAsLocalized(element) relative(time).toDateString() when "time-ago" relative(time).toString() when "time-or-date" relative(time).toTimeOrDateString() when "weekday" relative(time).toWeekdayString() when "weekday-or-date" relative(time).toWeekdayString() or relative(time).toDateString() markAsLocalized = (element) -> element.setAttribute("data-localized", "") relative = (time) -> new LocalTime.RelativeTime time
Version data entries
5 entries across 5 versions & 1 rubygems