From b003c2b4f3181cd6ff13623117bbdba7caaad847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Tue, 27 Jan 2015 23:44:47 +0100 Subject: [PATCH] let's try category class again --- .../mixins/add-category-class.js.es6 | 39 +++++++++---------- .../integration/topic-discovery-test.js.es6 | 3 +- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/app/assets/javascripts/discourse/mixins/add-category-class.js.es6 b/app/assets/javascripts/discourse/mixins/add-category-class.js.es6 index 35621ae5b..209b105f3 100644 --- a/app/assets/javascripts/discourse/mixins/add-category-class.js.es6 +++ b/app/assets/javascripts/discourse/mixins/add-category-class.js.es6 @@ -2,25 +2,22 @@ // add it to the body as the view is entered / left / model is changed. // This is used for keeping the `body` style in sync for the background image. export default { - // Sam: Something about this code is messing with the "docked" class on body - // it looks good, but something weird is going on. - // - // _enterView: function() { this.get('categorySlug'); }.on('init'), - // - // _removeClasses: function() { - // $('body').removeClass(function(idx, css) { - // return (css.match(/\bcategory-[^\b]+/g) || []).join(' '); - // }); - // }, - // - // _categoryChanged: function() { - // var categorySlug = this.get('categorySlug'); - // this._removeClasses(); - // - // if (categorySlug) { - // $('body').addClass('category-' + categorySlug); - // } - // }.observes('categorySlug'), - // - // _leaveView: function() { this._removeClasses(); }.on('willDestroyElement') + _enterView: function() { this.get('categorySlug'); }.on('init'), + + _removeClasses: function() { + $('body').removeClass(function(idx, css) { + return (css.match(/\bcategory-\S+/g) || []).join(' '); + }); + }, + + _categoryChanged: function() { + var categorySlug = this.get('categorySlug'); + this._removeClasses(); + + if (categorySlug) { + $('body').addClass('category-' + categorySlug); + } + }.observes('categorySlug'), + + _leaveView: function() { this._removeClasses(); }.on('willDestroyElement') }; diff --git a/test/javascripts/integration/topic-discovery-test.js.es6 b/test/javascripts/integration/topic-discovery-test.js.es6 index 33425a7ac..ea4dbac42 100644 --- a/test/javascripts/integration/topic-discovery-test.js.es6 +++ b/test/javascripts/integration/topic-discovery-test.js.es6 @@ -11,8 +11,7 @@ test("Visit Discovery Pages", function() { andThen(function() { ok(exists(".topic-list"), "The list of topics was rendered"); ok(exists('.topic-list .topic-list-item'), "has topics"); - // TODO enable test once fixed - // ok($('body.category-bug').length, "has a custom css class for the category id on the body"); + ok($('body.category-bug').length, "has a custom css class for the category id on the body"); }); visit("/categories");