'use strict'; define( [ 'handlebars', 'moment', 'Shared/FormatHelpers', 'Shared/UiSettingsModel' ], function (Handlebars, moment, FormatHelpers, UiSettings) { Handlebars.registerHelper('ShortDate', function (input) { if (!input) { return ''; } var date = moment(input); var result = '' + date.format(UiSettings.get('shortDateFormat')) + ''; return new Handlebars.SafeString(result); }); Handlebars.registerHelper('RelativeDate', function (input) { if (!input) { return ''; } var date = moment(input); var result = '{1}'; var tooltip = date.format(UiSettings.longDateTime()); var text; if (UiSettings.get('showRelativeDates')) { text = FormatHelpers.relativeDate(input); } else { text = date.format(UiSettings.get('shortDateFormat')); } result = result.format(tooltip, text); return new Handlebars.SafeString(result); }); Handlebars.registerHelper('Day', function (input) { if (!input) { return ''; } return moment(input).format('DD'); }); Handlebars.registerHelper('Month', function (input) { if (!input) { return ''; } return moment(input).format('MMM'); }); Handlebars.registerHelper('StartTime', function (input) { if (!input) { return ''; } return moment(input).format(UiSettings.time(false, false)); }); Handlebars.registerHelper('LTS', function (input) { if (!input) { return ''; } return moment(input).format(UiSettings.time(true, true)); }); Handlebars.registerHelper('if_today', function(context, options) { var date = moment(context).startOf('day'); var today = moment().startOf('day'); if (date.isSame(today)) { return options.fn(this); } return options.inverse(this); }); Handlebars.registerHelper('unless_today', function(context, options) { var date = moment(context).startOf('day'); var today = moment().startOf('day'); if (date.isSame(today)) { return options.inverse(this); } return options.fn(this); }); });