From c1d4ca4031531297cfe153cc1a87177d266cde8f Mon Sep 17 00:00:00 2001 From: Robin Ward <robin.ward@gmail.com> Date: Wed, 6 Jul 2016 12:27:12 -0400 Subject: [PATCH] FIX: Raw templates in customizations were broken --- app/models/site_customization.rb | 14 +++++++++----- spec/models/site_customization_spec.rb | 4 ++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/models/site_customization.rb b/app/models/site_customization.rb index b85ef907e..57bc6319d 100644 --- a/app/models/site_customization.rb +++ b/app/models/site_customization.rb @@ -44,14 +44,18 @@ PLUGIN_API_JS name = node["name"] || node["data-template-name"] || "broken" precompiled = if name =~ /\.raw$/ - "RawHandlebars.template(#{Barber::Precompiler.compile(node.inner_html)})" + "require('discourse/lib/raw-handlebars').template(#{Barber::Precompiler.compile(node.inner_html)})" else "Ember.HTMLBars.template(#{Barber::Ember::Precompiler.compile(node.inner_html)})" end - compiled = <<SCRIPT - Ember.TEMPLATES[#{name.inspect}] = #{precompiled}; -SCRIPT - node.replace("<script>#{compiled}</script>") + + node.replace <<COMPILED + <script> + (function() { + Ember.TEMPLATES[#{name.inspect}] = #{precompiled}; + })(); + </script> +COMPILED end doc.css('script[type="text/discourse-plugin"]').each do |node| diff --git a/spec/models/site_customization_spec.rb b/spec/models/site_customization_spec.rb index 2495e1ebc..e762c78d5 100644 --- a/spec/models/site_customization_spec.rb +++ b/spec/models/site_customization_spec.rb @@ -109,8 +109,8 @@ HTML c = SiteCustomization.create!(user_id: -1, name: "test", head_tag: with_template, body_tag: with_template) expect(c.head_tag_baked).to match(/HTMLBars/) expect(c.body_tag_baked).to match(/HTMLBars/) - expect(c.body_tag_baked).to match(/RawHandlebars/) - expect(c.head_tag_baked).to match(/RawHandlebars/) + expect(c.body_tag_baked).to match(/raw-handlebars/) + expect(c.head_tag_baked).to match(/raw-handlebars/) end it 'should create body_tag_baked on demand if needed' do