From 14dc22f288b721b6f96e3379cf3fa212d9420bc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Thu, 29 Jan 2015 20:15:17 +0100 Subject: [PATCH] FIX: use CDN for user card/profile background and user avatars --- app/assets/javascripts/discourse.js | 6 ++++++ .../discourse/dialects/quote_dialect.js | 1 + app/assets/javascripts/discourse/lib/utilities.js | 2 +- app/assets/javascripts/discourse/models/user.js | 14 +++++--------- .../javascripts/discourse/views/user-card.js.es6 | 3 ++- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/assets/javascripts/discourse.js b/app/assets/javascripts/discourse.js index 27b12c53abb..feb375d90c0 100644 --- a/app/assets/javascripts/discourse.js +++ b/app/assets/javascripts/discourse.js @@ -24,6 +24,12 @@ window.Discourse = Ember.Application.createWithMixins(Discourse.Ajax, { return u + url; }, + getURLWithCDN: function(url) { + url = this.getURL(url); + if (Discourse.CDN) { url = Discourse.CDN + url; } + return url; + }, + Resolver: DiscourseResolver, _titleChanged: function() { diff --git a/app/assets/javascripts/discourse/dialects/quote_dialect.js b/app/assets/javascripts/discourse/dialects/quote_dialect.js index b0b8f5bbb85..3c50598cfcb 100644 --- a/app/assets/javascripts/discourse/dialects/quote_dialect.js +++ b/app/assets/javascripts/discourse/dialects/quote_dialect.js @@ -1,4 +1,5 @@ var esc = Handlebars.Utils.escapeExpression; + Discourse.BBCode.register('quote', {noWrap: true, singlePara: true}, function(contents, bbParams, options) { var params = {'class': 'quote'}, username = null; diff --git a/app/assets/javascripts/discourse/lib/utilities.js b/app/assets/javascripts/discourse/lib/utilities.js index 243910e019b..4d32b9c9436 100644 --- a/app/assets/javascripts/discourse/lib/utilities.js +++ b/app/assets/javascripts/discourse/lib/utilities.js @@ -51,7 +51,7 @@ Discourse.Utilities = { var classes = "avatar" + (options.extraClasses ? " " + options.extraClasses : ""); var title = (options.title) ? " title='" + Handlebars.Utils.escapeExpression(options.title || "") + "'" : ""; - return ""; + return ""; }, tinyAvatar: function(avatarTemplate, options) { diff --git a/app/assets/javascripts/discourse/models/user.js b/app/assets/javascripts/discourse/models/user.js index 7a5bd5c37c5..fde76922559 100644 --- a/app/assets/javascripts/discourse/models/user.js +++ b/app/assets/javascripts/discourse/models/user.js @@ -72,10 +72,9 @@ Discourse.User = Discourse.Model.extend({ @type {String} **/ profileBackground: function() { - var background = this.get('profile_background'); - if(Em.isEmpty(background) || !Discourse.SiteSettings.allow_profile_backgrounds) { return; } - - return 'background-image: url(' + background + ')'; + var url = this.get('profile_background'); + if (Em.isEmpty(url) || !Discourse.SiteSettings.allow_profile_backgrounds) { return; } + return 'background-image: url(' + Discourse.getURLWithCDN(url) + ')'; }.property('profile_background'), /** @@ -442,6 +441,7 @@ Discourse.User.reopenClass(Discourse.Singleton, { avatarTemplate: function(username, uploadedAvatarId) { var url; + if (uploadedAvatarId) { url = "/user_avatar/" + Discourse.BaseUrl + @@ -456,11 +456,7 @@ Discourse.User.reopenClass(Discourse.Singleton, { Discourse.LetterAvatarVersion + ".png"; } - url = Discourse.getURL(url); - if (Discourse.CDN) { - url = Discourse.CDN + url; - } - return url; + return Discourse.getURLWithCDN(url); }, /** diff --git a/app/assets/javascripts/discourse/views/user-card.js.es6 b/app/assets/javascripts/discourse/views/user-card.js.es6 index 12394202978..66e62b88d58 100644 --- a/app/assets/javascripts/discourse/views/user-card.js.es6 +++ b/app/assets/javascripts/discourse/views/user-card.js.es6 @@ -11,6 +11,7 @@ export default Discourse.View.extend(CleansUp, { addBackground: function() { var url = this.get('controller.user.card_background'); + if (!this.get('allowBackgrounds')) { return; } var $this = this.$(); @@ -19,7 +20,7 @@ export default Discourse.View.extend(CleansUp, { if (Ember.isEmpty(url)) { $this.css('background-image', '').addClass('no-bg'); } else { - $this.css('background-image', "url(" + url + ")").removeClass('no-bg'); + $this.css('background-image', "url(" + Discourse.getURLWithCDN(url) + ")").removeClass('no-bg'); } }.observes('controller.user.card_background'),