mirror of
https://github.com/discourse/discourse.git
synced 2025-01-30 05:27:38 +08:00
Add enable_mobile_theme site setting. Uncheck it to disable the mobile theme.
This commit is contained in:
parent
2baf5fda8e
commit
0fafe124db
|
@ -32,6 +32,10 @@ Discourse.HeaderController = Discourse.Controller.extend({
|
||||||
return Discourse.Mobile.mobileView;
|
return Discourse.Mobile.mobileView;
|
||||||
}.property(),
|
}.property(),
|
||||||
|
|
||||||
|
showMobileToggle: function() {
|
||||||
|
return Discourse.SiteSettings.enable_mobile_theme;
|
||||||
|
}.property(),
|
||||||
|
|
||||||
toggleMobileView: function() {
|
toggleMobileView: function() {
|
||||||
Discourse.Mobile.toggleMobileView();
|
Discourse.Mobile.toggleMobileView();
|
||||||
}
|
}
|
||||||
|
|
|
@ -123,15 +123,17 @@
|
||||||
{{#titledLinkTo "list.latest" titleKey="filters.latest.help"}}{{i18n filters.latest.title}}{{/titledLinkTo}}
|
{{#titledLinkTo "list.latest" titleKey="filters.latest.help"}}{{i18n filters.latest.title}}{{/titledLinkTo}}
|
||||||
</li>
|
</li>
|
||||||
<li>{{faqLink}}</li>
|
<li>{{faqLink}}</li>
|
||||||
<li>
|
{{#if showMobileToggle}}
|
||||||
<a href="#" {{action toggleMobileView}}>
|
<li>
|
||||||
{{#if mobileView}}
|
<a href="#" {{action toggleMobileView}}>
|
||||||
{{i18n desktop_view}}
|
{{#if mobileView}}
|
||||||
{{else}}
|
{{i18n desktop_view}}
|
||||||
{{i18n mobile_view}}
|
{{else}}
|
||||||
{{/if}}
|
{{i18n mobile_view}}
|
||||||
</a>
|
{{/if}}
|
||||||
</li>
|
</a>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
{{#if categories}}
|
{{#if categories}}
|
||||||
|
|
|
@ -109,6 +109,7 @@ module ApplicationHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def mobile_view?
|
def mobile_view?
|
||||||
|
return false unless SiteSetting.enable_mobile_theme
|
||||||
if session[:mobile_view]
|
if session[:mobile_view]
|
||||||
session[:mobile_view] == '1'
|
session[:mobile_view] == '1'
|
||||||
else
|
else
|
||||||
|
|
|
@ -261,6 +261,8 @@ class SiteSetting < ActiveRecord::Base
|
||||||
|
|
||||||
setting(:sequential_replies_threshold, 2)
|
setting(:sequential_replies_threshold, 2)
|
||||||
|
|
||||||
|
client_setting(:enable_mobile_theme, true)
|
||||||
|
|
||||||
def self.generate_api_key!
|
def self.generate_api_key!
|
||||||
self.api_key = SecureRandom.hex(32)
|
self.api_key = SecureRandom.hex(32)
|
||||||
end
|
end
|
||||||
|
|
|
@ -696,6 +696,8 @@ en:
|
||||||
|
|
||||||
sequential_replies_threshold: "The amount of posts a user has to make in a row in a topic before being notified"
|
sequential_replies_threshold: "The amount of posts a user has to make in a row in a topic before being notified"
|
||||||
|
|
||||||
|
enable_mobile_theme: "Mobile devices use a mobile-friendly theme, with the ability to switch to the full site. Disable this if you want to use a custom stylesheet that is fully responsive."
|
||||||
|
|
||||||
notification_types:
|
notification_types:
|
||||||
mentioned: "%{display_username} mentioned you in %{link}"
|
mentioned: "%{display_username} mentioned you in %{link}"
|
||||||
liked: "%{display_username} liked your post in %{link}"
|
liked: "%{display_username} liked your post in %{link}"
|
||||||
|
|
|
@ -3,36 +3,70 @@ require 'spec_helper'
|
||||||
describe ApplicationHelper do
|
describe ApplicationHelper do
|
||||||
|
|
||||||
describe 'mobile_view?' do
|
describe 'mobile_view?' do
|
||||||
it "is true if mobile_view is '1' in the session" do
|
context "enable_mobile_theme is true" do
|
||||||
session[:mobile_view] = '1'
|
before do
|
||||||
helper.mobile_view?.should be_true
|
SiteSetting.stubs(:enable_mobile_theme).returns(true)
|
||||||
end
|
|
||||||
|
|
||||||
it "is false if mobile_view is '0' in the session" do
|
|
||||||
session[:mobile_view] = '0'
|
|
||||||
helper.mobile_view?.should be_false
|
|
||||||
end
|
|
||||||
|
|
||||||
context "mobile_view is not set" do
|
|
||||||
it "is false if user agent is not mobile" do
|
|
||||||
controller.request.stubs(:user_agent).returns('Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36')
|
|
||||||
helper.mobile_view?.should be_false
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "is true for iPhone" do
|
it "is true if mobile_view is '1' in the session" do
|
||||||
controller.request.stubs(:user_agent).returns('Mozilla/5.0 (iPhone; U; ru; CPU iPhone OS 4_2_1 like Mac OS X; ru) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148a Safari/6533.18.5')
|
session[:mobile_view] = '1'
|
||||||
helper.mobile_view?.should be_true
|
helper.mobile_view?.should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
it "is false for iPad" do
|
it "is false if mobile_view is '0' in the session" do
|
||||||
controller.request.stubs(:user_agent).returns("Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3")
|
session[:mobile_view] = '0'
|
||||||
helper.mobile_view?.should be_false
|
helper.mobile_view?.should be_false
|
||||||
end
|
end
|
||||||
|
|
||||||
it "is false for Android tablet" do
|
context "mobile_view is not set" do
|
||||||
controller.request.stubs(:user_agent).returns("Mozilla/5.0 (Linux; Android 4.1.2; Nexus 7 Build/JZ054K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19")
|
it "is false if user agent is not mobile" do
|
||||||
|
controller.request.stubs(:user_agent).returns('Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36')
|
||||||
|
helper.mobile_view?.should be_false
|
||||||
|
end
|
||||||
|
|
||||||
|
it "is true for iPhone" do
|
||||||
|
controller.request.stubs(:user_agent).returns('Mozilla/5.0 (iPhone; U; ru; CPU iPhone OS 4_2_1 like Mac OS X; ru) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148a Safari/6533.18.5')
|
||||||
|
helper.mobile_view?.should be_true
|
||||||
|
end
|
||||||
|
|
||||||
|
it "is false for iPad" do
|
||||||
|
controller.request.stubs(:user_agent).returns("Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3")
|
||||||
|
helper.mobile_view?.should be_false
|
||||||
|
end
|
||||||
|
|
||||||
|
it "is false for Android tablet" do
|
||||||
|
controller.request.stubs(:user_agent).returns("Mozilla/5.0 (Linux; Android 4.1.2; Nexus 7 Build/JZ054K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19")
|
||||||
|
helper.mobile_view?.should be_false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "enable_mobile_theme is false" do
|
||||||
|
before do
|
||||||
|
SiteSetting.stubs(:enable_mobile_theme).returns(false)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "is false if mobile_view is '1' in the session" do
|
||||||
|
session[:mobile_view] = '1'
|
||||||
helper.mobile_view?.should be_false
|
helper.mobile_view?.should be_false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "is false if mobile_view is '0' in the session" do
|
||||||
|
session[:mobile_view] = '0'
|
||||||
|
helper.mobile_view?.should be_false
|
||||||
|
end
|
||||||
|
|
||||||
|
context "mobile_view is not set" do
|
||||||
|
it "is false if user agent is not mobile" do
|
||||||
|
controller.request.stubs(:user_agent).returns('Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36')
|
||||||
|
helper.mobile_view?.should be_false
|
||||||
|
end
|
||||||
|
|
||||||
|
it "is false for iPhone" do
|
||||||
|
controller.request.stubs(:user_agent).returns('Mozilla/5.0 (iPhone; U; ru; CPU iPhone OS 4_2_1 like Mac OS X; ru) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148a Safari/6533.18.5')
|
||||||
|
helper.mobile_view?.should be_false
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user