From f8f16110354f492102a3cf1efbf0a4d733932c2a Mon Sep 17 00:00:00 2001 From: Sam <sam.saffron@gmail.com> Date: Thu, 11 Dec 2014 11:50:43 +1100 Subject: [PATCH] compatibility fixes --- .../discourse/helpers/cold-age-class.js.es6 | 4 ++-- .../discourse/helpers/register-unbound.js.es6 | 4 +--- .../discourse/lib/ember_compat_handlebars.js | 12 ++++++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/discourse/helpers/cold-age-class.js.es6 b/app/assets/javascripts/discourse/helpers/cold-age-class.js.es6 index 1727448e6..7f5dbfd15 100644 --- a/app/assets/javascripts/discourse/helpers/cold-age-class.js.es6 +++ b/app/assets/javascripts/discourse/helpers/cold-age-class.js.es6 @@ -7,7 +7,7 @@ export function daysSinceEpoch(dt) { Converts a date to a coldmap class **/ function coldAgeClass(property, options) { - var dt = Em.Handlebars.get(this, property, options); + var dt = Discourse.EmberCompatHandlebars.get(this, property, options); var className = (options && options.hash && options.hash.class !== undefined) ? options.hash.class : 'age'; if (!dt) { return className; } @@ -15,7 +15,7 @@ function coldAgeClass(property, options) { var startDate = (options && options.hash && options.hash.startDate) || new Date(); if (typeof startDate === "string") { - startDate = Em.Handlebars.get(this, startDate, options); + startDate = Discourse.EmberCompatHandlebars.get(this, startDate, options); } // Show heat on age diff --git a/app/assets/javascripts/discourse/helpers/register-unbound.js.es6 b/app/assets/javascripts/discourse/helpers/register-unbound.js.es6 index 5e356f892..729c86376 100644 --- a/app/assets/javascripts/discourse/helpers/register-unbound.js.es6 +++ b/app/assets/javascripts/discourse/helpers/register-unbound.js.es6 @@ -1,9 +1,7 @@ function registerUnbound(name, fn) { Handlebars.registerHelper(name, function(property, options) { - if (options.types[0] === "ID") { - property = options.data.view.getStream(property).value(); - } + property = Discourse.EmberCompatHandlebars.get(this, property, options); var params = {}, hash = options.hash; diff --git a/app/assets/javascripts/discourse/lib/ember_compat_handlebars.js b/app/assets/javascripts/discourse/lib/ember_compat_handlebars.js index 458db7cc5..0fc916e85 100644 --- a/app/assets/javascripts/discourse/lib/ember_compat_handlebars.js +++ b/app/assets/javascripts/discourse/lib/ember_compat_handlebars.js @@ -96,6 +96,18 @@ return template; }; + RawHandlebars.get = function(_this, property, options){ + var val; + + if (options.types && options.data.view && options.types[0] === "ID") { + val = options.data.view.getStream(property).value(); + } else { + val = Em.get(_this, property); + } + + return val; + }; + Discourse.EmberCompatHandlebars = RawHandlebars; })();