diff --git a/app/controllers/metadata_controller.rb b/app/controllers/metadata_controller.rb index c508df57146..e7d16a58af9 100644 --- a/app/controllers/metadata_controller.rb +++ b/app/controllers/metadata_controller.rb @@ -51,13 +51,13 @@ class MetadataController < ApplicationController manifest[:short_name] = SiteSetting.short_title if SiteSetting.short_title.present? - if SiteSetting.native_app_install_banner + if current_user && current_user.trust_level >= 1 && SiteSetting.native_app_install_banner_android manifest = manifest.merge( prefer_related_applications: true, related_applications: [ { platform: "play", - id: "com.discourse" + id: SiteSetting.android_app_id } ] ) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 69d1979c0d3..a5410864aba 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -325,6 +325,10 @@ module ApplicationHelper request.env[ApplicationController::NO_CUSTOM] end + def include_ios_native_app_banner? + current_user && current_user.trust_level >= 1 && SiteSetting.native_app_install_banner_ios + end + def allow_plugins? !request.env[ApplicationController::NO_PLUGINS] end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index e12c4931e6e..092d29116b2 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -46,8 +46,8 @@ <%= render_google_universal_analytics_code %> - <%- if SiteSetting.native_app_install_banner? %> - + <%- if include_ios_native_app_banner? %> + <%- end %> <%= render partial: "common/discourse_stylesheet" %> diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index bf274cca176..24e0147cee5 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -1892,7 +1892,9 @@ en: topic_page_title_includes_category: "Topic page title includes the category name." - native_app_install_banner: "Asks recurring visitors to install Discourse native app." + native_app_install_banner_ios: "Displays DiscourseHub app banner on iOS devices to regular users (trust level 1 and up)." + + native_app_install_banner_android: "Displays DiscourseHub app banner on Android devices to regular users (trust level 1 and up)." share_anonymized_statistics: "Share anonymized usage statistics." diff --git a/config/site_settings.yml b/config/site_settings.yml index 3c45ced5c78..86ae8b3c31d 100644 --- a/config/site_settings.yml +++ b/config/site_settings.yml @@ -1826,7 +1826,17 @@ uncategorized: default: true client: true - native_app_install_banner: false + native_app_install_banner_ios: false + + native_app_install_banner_android: false + + ios_app_id: + default: "1173672076" + hidden: true + + android_app_id: + default: "com.discourse" + hidden: true pwa_display_browser_regex: default: "iPad|iPhone" @@ -1913,7 +1923,7 @@ user_preferences: - normal - larger - largest - + default_title_count_mode: type: enum default: notifications diff --git a/db/migrate/20190417135049_migrate_native_app_banner_site_setting.rb b/db/migrate/20190417135049_migrate_native_app_banner_site_setting.rb new file mode 100644 index 00000000000..57423a7be97 --- /dev/null +++ b/db/migrate/20190417135049_migrate_native_app_banner_site_setting.rb @@ -0,0 +1,20 @@ +class MigrateNativeAppBannerSiteSetting < ActiveRecord::Migration[5.2] + def up + execute "INSERT INTO site_settings(name, data_type, value, created_at, updated_at) + SELECT 'native_app_install_banner_android', 5, value, now(), now() + FROM site_settings + WHERE name = 'native_app_install_banner'" + + execute "UPDATE site_settings + SET name = 'native_app_install_banner_ios' + WHERE name = 'native_app_install_banner'" + end + + def down + execute "UPDATE site_settings + SET name = 'native_app_install_banner' + WHERE name = 'native_app_install_banner_ios'" + + execute "DELETE FROM site_settings WHERE name = 'native_app_install_banner_android'" + end +end