REFACTOR: Don't use `Discourse.Capabilities`, instead use injection.

Also fix broken test. /cc @Sam
This commit is contained in:
Robin Ward 2014-08-06 18:28:02 -04:00
parent c709ea8f9e
commit 8279752d3c
3 changed files with 5 additions and 6 deletions

View File

@ -10,11 +10,11 @@ export default Ember.ArrayController.extend(Discourse.HasCurrentUser, {
badgesUrl: Discourse.getURL('/badges'),
showKeyboardShortcuts: function(){
return !Discourse.Mobile.mobileView && !Discourse.Capabilities.touch;
return !Discourse.Mobile.mobileView && !this.capabilities.touch;
}.property(),
showMobileToggle: function(){
return Discourse.Mobile.mobileView || (Discourse.SiteSettings.enable_mobile_theme && Discourse.Capabilities.touch);
return Discourse.Mobile.mobileView || (Discourse.SiteSettings.enable_mobile_theme && this.capabilities.touch);
}.property(),
mobileViewLinkTextKey: function() {

View File

@ -1,8 +1,7 @@
/*global Modernizr:true*/
/**
Initializes the `Discourse.Capabilities` singleton by sniffing out the browser
capabilities.
Initializes an object that lets us know about our capabilities.
**/
export default {
name: "sniff-capabilities",
@ -28,7 +27,6 @@ export default {
// Inject it
application.register('capabilities:main', caps, { instantiate: false });
application.inject('view', 'capabilities', 'capabilities:main');
Discourse.Capabilities = caps;
application.inject('controller', 'capabilities', 'capabilities:main');
}
};

View File

@ -50,6 +50,7 @@ test("showMoblieToggle returns true when mobile theme is enabled in site setting
Discourse.SiteSettings.enable_mobile_theme = true;
Discourse.Mobile.isMobileDevice = true;
var controller = this.subject();
controller.capabilities = { touch: true };
equal(controller.get("showMobileToggle"), true);
});