From 3c5df8259003107bc181214d505a27091d2fcd2c Mon Sep 17 00:00:00 2001 From: Mark VanLandingham Date: Wed, 13 Nov 2019 11:13:47 -0600 Subject: [PATCH] DEV: Remove Discourse.Site in favor of import (#8344) * DEV: Remove Discourse.Site in favor of importing Site * Ran prettier --- app/assets/javascripts/admin/models/web-hook.js.es6 | 5 +++-- .../discourse/components/suggested-topics.js.es6 | 4 ++-- .../javascripts/discourse/controllers/tags-show.js.es6 | 3 ++- .../javascripts/discourse/helpers/category-link.js.es6 | 4 ++-- app/assets/javascripts/discourse/lib/ajax.js.es6 | 3 ++- .../javascripts/discourse/lib/autocomplete.js.es6 | 10 ++++++---- .../discourse/lib/desktop-notifications.js.es6 | 3 ++- .../javascripts/discourse/lib/plugin-connectors.js.es6 | 4 +++- app/assets/javascripts/discourse/mapping-router.js.es6 | 3 ++- .../javascripts/discourse/models/composer.js.es6 | 3 ++- .../javascripts/discourse/models/login-method.js.es6 | 3 ++- .../javascripts/discourse/models/nav-item.js.es6 | 8 ++++---- app/assets/javascripts/discourse/models/post.js.es6 | 3 ++- .../discourse/models/topic-tracking-state.js.es6 | 3 ++- app/assets/javascripts/discourse/models/topic.js.es6 | 7 ++++--- app/assets/javascripts/discourse/models/user.js.es6 | 3 ++- .../pre-initializers/dynamic-route-builders.js.es6 | 3 ++- .../javascripts/discourse/routes/app-route-map.js.es6 | 8 +++++--- .../discourse/routes/build-topic-route.js.es6 | 3 ++- .../select-kit/components/category-drop.js.es6 | 7 +++---- 20 files changed, 54 insertions(+), 36 deletions(-) diff --git a/app/assets/javascripts/admin/models/web-hook.js.es6 b/app/assets/javascripts/admin/models/web-hook.js.es6 index df3ac54918b..74fd93a5f3c 100644 --- a/app/assets/javascripts/admin/models/web-hook.js.es6 +++ b/app/assets/javascripts/admin/models/web-hook.js.es6 @@ -6,6 +6,7 @@ import { default as discourseComputed, observes } from "discourse-common/utils/decorators"; +import Site from "discourse/models/site"; export default RestModel.extend({ content_type: 1, // json @@ -36,7 +37,7 @@ export default RestModel.extend({ const groupIds = this.group_ids; this.set( "groupsFilterInName", - Discourse.Site.currentProp("groups").reduce((groupNames, g) => { + Site.currentProp("groups").reduce((groupNames, g) => { if (groupIds.includes(g.id)) { groupNames.push(g.name); } @@ -87,7 +88,7 @@ export default RestModel.extend({ group_ids: isEmpty(groupNames) || isEmpty(groupNames[0]) ? [null] - : Discourse.Site.currentProp("groups").reduce((groupIds, g) => { + : Site.currentProp("groups").reduce((groupIds, g) => { if (groupNames.includes(g.name)) { groupIds.push(g.id); } diff --git a/app/assets/javascripts/discourse/components/suggested-topics.js.es6 b/app/assets/javascripts/discourse/components/suggested-topics.js.es6 index 8351aa984ba..c8ea62e827b 100644 --- a/app/assets/javascripts/discourse/components/suggested-topics.js.es6 +++ b/app/assets/javascripts/discourse/components/suggested-topics.js.es6 @@ -3,6 +3,7 @@ import { get } from "@ember/object"; import Component from "@ember/component"; import { categoryBadgeHTML } from "discourse/helpers/category-link"; import { iconHTML } from "discourse-common/lib/icon-library"; +import Site from "discourse/models/site"; export default Component.extend({ elementId: "suggested-topics", @@ -36,8 +37,7 @@ export default Component.extend({ if ( category && - get(category, "id") === - Discourse.Site.currentProp("uncategorized_category_id") + get(category, "id") === Site.currentProp("uncategorized_category_id") ) { category = null; } diff --git a/app/assets/javascripts/discourse/controllers/tags-show.js.es6 b/app/assets/javascripts/discourse/controllers/tags-show.js.es6 index 5cc5b145230..5168a360657 100644 --- a/app/assets/javascripts/discourse/controllers/tags-show.js.es6 +++ b/app/assets/javascripts/discourse/controllers/tags-show.js.es6 @@ -11,13 +11,14 @@ import { customNavItemHref } from "discourse/models/nav-item"; import Category from "discourse/models/category"; +import Site from "discourse/models/site"; if (customNavItemHref) { customNavItemHref(function(navItem) { if (navItem.get("tagId")) { const name = navItem.get("name"); - if (!Discourse.Site.currentProp("filters").includes(name)) { + if (!Site.currentProp("filters").includes(name)) { return null; } diff --git a/app/assets/javascripts/discourse/helpers/category-link.js.es6 b/app/assets/javascripts/discourse/helpers/category-link.js.es6 index 0efb208defc..4e11a911b21 100644 --- a/app/assets/javascripts/discourse/helpers/category-link.js.es6 +++ b/app/assets/javascripts/discourse/helpers/category-link.js.es6 @@ -3,6 +3,7 @@ import { registerUnbound } from "discourse-common/lib/helpers"; import { isRTL } from "discourse/lib/text-direction"; import { iconHTML } from "discourse-common/lib/icon-library"; import Category from "discourse/models/category"; +import Site from "discourse/models/site"; let escapeExpression = Handlebars.Utils.escapeExpression; let _renderer = defaultCategoryLinkRenderer; @@ -32,8 +33,7 @@ export function categoryBadgeHTML(category, opts) { if ( !category || (!opts.allowUncategorized && - get(category, "id") === - Discourse.Site.currentProp("uncategorized_category_id") && + get(category, "id") === Site.currentProp("uncategorized_category_id") && Discourse.SiteSettings.suppress_uncategorized_badge) ) return ""; diff --git a/app/assets/javascripts/discourse/lib/ajax.js.es6 b/app/assets/javascripts/discourse/lib/ajax.js.es6 index 7b7d9fda98a..0f995e8f115 100644 --- a/app/assets/javascripts/discourse/lib/ajax.js.es6 +++ b/app/assets/javascripts/discourse/lib/ajax.js.es6 @@ -3,6 +3,7 @@ import pageVisible from "discourse/lib/page-visible"; import logout from "discourse/lib/logout"; import Session from "discourse/models/session"; import { Promise } from "rsvp"; +import Site from "discourse/models/site"; let _trackView = false; let _transientHeader = null; @@ -100,7 +101,7 @@ export function ajax() { handleLogoff(xhr); run(() => { - Discourse.Site.currentProp( + Site.currentProp( "isReadOnly", !!xhr.getResponseHeader("Discourse-Readonly") ); diff --git a/app/assets/javascripts/discourse/lib/autocomplete.js.es6 b/app/assets/javascripts/discourse/lib/autocomplete.js.es6 index 0bcb3331c89..9ab8dbae3bb 100644 --- a/app/assets/javascripts/discourse/lib/autocomplete.js.es6 +++ b/app/assets/javascripts/discourse/lib/autocomplete.js.es6 @@ -1,14 +1,16 @@ import { cancel } from "@ember/runloop"; import { later } from "@ember/runloop"; +import { iconHTML } from "discourse-common/lib/icon-library"; +import { setCaretPosition, caretPosition } from "discourse/lib/utilities"; +import Site from "discourse/models/site"; + /** This is a jQuery plugin to support autocompleting values in our text fields. @module $.fn.autocomplete **/ -import { iconHTML } from "discourse-common/lib/icon-library"; -export const CANCELLED_STATUS = "__CANCELLED"; -import { setCaretPosition, caretPosition } from "discourse/lib/utilities"; +export const CANCELLED_STATUS = "__CANCELLED"; const allowedLettersRegex = /[\s\t\[\{\(\/]/; const keys = { @@ -319,7 +321,7 @@ export default function(options) { vOffset = BELOW; } - if (Discourse.Site.currentProp("mobileView")) { + if (Site.currentProp("mobileView")) { if (me.height() / 2 >= pos.top) { vOffset = BELOW; } diff --git a/app/assets/javascripts/discourse/lib/desktop-notifications.js.es6 b/app/assets/javascripts/discourse/lib/desktop-notifications.js.es6 index ba40f8246fc..84336f9a66c 100644 --- a/app/assets/javascripts/discourse/lib/desktop-notifications.js.es6 +++ b/app/assets/javascripts/discourse/lib/desktop-notifications.js.es6 @@ -3,6 +3,7 @@ import DiscourseURL from "discourse/lib/url"; import KeyValueStore from "discourse/lib/key-value-store"; import { formatUsername } from "discourse/lib/utilities"; import { Promise } from "rsvp"; +import Site from "discourse/models/site"; let primaryTab = false; let liveEnabled = false; @@ -213,7 +214,7 @@ function requestPermission() { function i18nKey(notification_type) { return ( "notifications.popup." + - Discourse.Site.current().get("notificationLookup")[notification_type] + Site.current().get("notificationLookup")[notification_type] ); } diff --git a/app/assets/javascripts/discourse/lib/plugin-connectors.js.es6 b/app/assets/javascripts/discourse/lib/plugin-connectors.js.es6 index b58d19825a8..6dbc62f2d52 100644 --- a/app/assets/javascripts/discourse/lib/plugin-connectors.js.es6 +++ b/app/assets/javascripts/discourse/lib/plugin-connectors.js.es6 @@ -1,3 +1,5 @@ +import Site from "discourse/models/site"; + let _connectorCache; let _rawConnectorCache; let _extraConnectorClasses = {}; @@ -22,7 +24,7 @@ const DefaultConnectorClass = { }; function findOutlets(collection, callback) { - const disabledPlugins = Discourse.Site.currentProp("disabled_plugins") || []; + const disabledPlugins = Site.currentProp("disabled_plugins") || []; Object.keys(collection).forEach(function(res) { if (res.indexOf("/connectors/") !== -1) { diff --git a/app/assets/javascripts/discourse/mapping-router.js.es6 b/app/assets/javascripts/discourse/mapping-router.js.es6 index f115ddf2397..c50eb9112c5 100644 --- a/app/assets/javascripts/discourse/mapping-router.js.es6 +++ b/app/assets/javascripts/discourse/mapping-router.js.es6 @@ -1,6 +1,7 @@ import { defaultHomepage } from "discourse/lib/utilities"; import { rewritePath } from "discourse/lib/url"; import ENV from "discourse-common/config/environment"; +import Site from "discourse/models/site"; const rootURL = Discourse.BaseUri; @@ -33,7 +34,7 @@ class RouteNode { this.children = []; this.childrenByName = {}; this.paths = {}; - this.site = Discourse.Site.current(); + this.site = Site.current(); if (!opts.path) { opts.path = name; diff --git a/app/assets/javascripts/discourse/models/composer.js.es6 b/app/assets/javascripts/discourse/models/composer.js.es6 index afa1bf732c5..45e5a4b9961 100644 --- a/app/assets/javascripts/discourse/models/composer.js.es6 +++ b/app/assets/javascripts/discourse/models/composer.js.es6 @@ -19,6 +19,7 @@ import { propertyNotEqual } from "discourse/lib/computed"; import { throttle } from "@ember/runloop"; import { Promise } from "rsvp"; import { set } from "@ember/object"; +import Site from "discourse/models/site"; // The actions the composer can take export const CREATE_TOPIC = "createTopic", @@ -1146,7 +1147,7 @@ Composer.reopenClass({ create(args) { args = args || {}; args.user = args.user || Discourse.User.current(); - args.site = args.site || Discourse.Site.current(); + args.site = args.site || Site.current(); args.siteSettings = args.siteSettings || Discourse.SiteSettings; return this._super(args); }, diff --git a/app/assets/javascripts/discourse/models/login-method.js.es6 b/app/assets/javascripts/discourse/models/login-method.js.es6 index 040e175e74c..84b4cf4a523 100644 --- a/app/assets/javascripts/discourse/models/login-method.js.es6 +++ b/app/assets/javascripts/discourse/models/login-method.js.es6 @@ -3,6 +3,7 @@ import EmberObject from "@ember/object"; import { updateCsrfToken } from "discourse/lib/ajax"; import { Promise } from "rsvp"; import Session from "discourse/models/session"; +import Site from "discourse/models/site"; const LoginMethod = EmberObject.extend({ @discourseComputed @@ -70,7 +71,7 @@ export function findAll() { methods = []; - Discourse.Site.currentProp("auth_providers").forEach(provider => + Site.currentProp("auth_providers").forEach(provider => methods.pushObject(LoginMethod.create(provider)) ); diff --git a/app/assets/javascripts/discourse/models/nav-item.js.es6 b/app/assets/javascripts/discourse/models/nav-item.js.es6 index d76df548327..26024a926ca 100644 --- a/app/assets/javascripts/discourse/models/nav-item.js.es6 +++ b/app/assets/javascripts/discourse/models/nav-item.js.es6 @@ -3,6 +3,7 @@ import { emojiUnescape } from "discourse/lib/text"; import Category from "discourse/models/category"; import EmberObject from "@ember/object"; import deprecated from "discourse-common/lib/deprecated"; +import Site from "discourse/models/site"; const NavItem = EmberObject.extend({ @discourseComputed("name") @@ -18,7 +19,7 @@ const NavItem = EmberObject.extend({ if ( name === "latest" && - (!Discourse.Site.currentProp("mobileView") || this.tagId !== undefined) + (!Site.currentProp("mobileView") || this.tagId !== undefined) ) { count = 0; } @@ -106,13 +107,12 @@ NavItem.reopenClass({ if ( anonymous && - !Discourse.Site.currentProp("anonymous_top_menu_items").includes(testName) + !Site.currentProp("anonymous_top_menu_items").includes(testName) ) return null; if (!Category.list() && testName === "categories") return null; - if (!Discourse.Site.currentProp("top_menu_items").includes(testName)) - return null; + if (!Site.currentProp("top_menu_items").includes(testName)) return null; var args = { name: text, hasIcon: text === "unread" }; if (opts.category) { diff --git a/app/assets/javascripts/discourse/models/post.js.es6 b/app/assets/javascripts/discourse/models/post.js.es6 index eebd4f67ecd..87f07dc4106 100644 --- a/app/assets/javascripts/discourse/models/post.js.es6 +++ b/app/assets/javascripts/discourse/models/post.js.es6 @@ -14,6 +14,7 @@ import { cookAsync } from "discourse/lib/text"; import { userPath } from "discourse/lib/url"; import Composer from "discourse/models/composer"; import { Promise } from "rsvp"; +import Site from "discourse/models/site"; const Post = RestModel.extend({ // TODO: Remove this once one instantiate all `Discourse.Post` models via the store. @@ -355,7 +356,7 @@ Post.reopenClass({ // this area should be optimized, it is creating way too many objects per post json.actions_summary = json.actions_summary.map(a => { - a.actionType = Discourse.Site.current().postActionTypeById(a.id); + a.actionType = Site.current().postActionTypeById(a.id); a.count = a.count || 0; const actionSummary = ActionSummary.create(a); lookup[a.actionType.name_key] = actionSummary; diff --git a/app/assets/javascripts/discourse/models/topic-tracking-state.js.es6 b/app/assets/javascripts/discourse/models/topic-tracking-state.js.es6 index 7db08a8fbee..a282db56e11 100644 --- a/app/assets/javascripts/discourse/models/topic-tracking-state.js.es6 +++ b/app/assets/javascripts/discourse/models/topic-tracking-state.js.es6 @@ -9,6 +9,7 @@ import { defaultHomepage } from "discourse/lib/utilities"; import PreloadStore from "preload-store"; import Category from "discourse/models/category"; import EmberObject from "@ember/object"; +import Site from "discourse/models/site"; function isNew(topic) { return ( @@ -145,7 +146,7 @@ const TopicTrackingState = EmberObject.extend({ } if (filter === defaultHomepage()) { - const suppressed_from_latest_category_ids = Discourse.Site.currentProp( + const suppressed_from_latest_category_ids = Site.currentProp( "suppressed_from_latest_category_ids" ); if ( diff --git a/app/assets/javascripts/discourse/models/topic.js.es6 b/app/assets/javascripts/discourse/models/topic.js.es6 index 39e6464bfa5..6a4f78e5216 100644 --- a/app/assets/javascripts/discourse/models/topic.js.es6 +++ b/app/assets/javascripts/discourse/models/topic.js.es6 @@ -21,6 +21,7 @@ import { import Category from "discourse/models/category"; import Session from "discourse/models/session"; import { Promise } from "rsvp"; +import Site from "discourse/models/site"; export function loadTopicView(topic, args) { const data = _.merge({}, args); @@ -102,7 +103,7 @@ const Topic = RestModel.extend({ fancyTitle(title) { let fancyTitle = censor( emojiUnescape(title || ""), - Discourse.Site.currentProp("censored_regexp") + Site.currentProp("censored_regexp") ); if (Discourse.SiteSettings.support_mixed_text_direction) { @@ -338,7 +339,7 @@ const Topic = RestModel.extend({ @discourseComputed("archetype") archetypeObject(archetype) { - return Discourse.Site.currentProp("archetypes").findBy("id", archetype); + return Site.currentProp("archetypes").findBy("id", archetype); }, isPrivateMessage: equal("archetype", "private_message"), @@ -641,7 +642,7 @@ Topic.reopenClass({ const lookup = EmberObject.create(); result.actions_summary = result.actions_summary.map(a => { a.post = result; - a.actionType = Discourse.Site.current().postActionTypeById(a.id); + a.actionType = Site.current().postActionTypeById(a.id); const actionSummary = ActionSummary.create(a); lookup.set(a.actionType.get("name_key"), actionSummary); return actionSummary; diff --git a/app/assets/javascripts/discourse/models/user.js.es6 b/app/assets/javascripts/discourse/models/user.js.es6 index 2906dee77fa..c15edc74933 100644 --- a/app/assets/javascripts/discourse/models/user.js.es6 +++ b/app/assets/javascripts/discourse/models/user.js.es6 @@ -26,6 +26,7 @@ import Category from "discourse/models/category"; import { Promise } from "rsvp"; import { getProperties } from "@ember/object"; import deprecated from "discourse-common/lib/deprecated"; +import Site from "discourse/models/site"; export const SECOND_FACTOR_METHODS = { TOTP: 1, @@ -200,7 +201,7 @@ const User = RestModel.extend({ @discourseComputed("trust_level") trustLevel(trustLevel) { - return Discourse.Site.currentProp("trustLevels").findBy( + return Site.currentProp("trustLevels").findBy( "id", parseInt(trustLevel, 10) ); diff --git a/app/assets/javascripts/discourse/pre-initializers/dynamic-route-builders.js.es6 b/app/assets/javascripts/discourse/pre-initializers/dynamic-route-builders.js.es6 index 55f4fee1d98..aeca79b177a 100644 --- a/app/assets/javascripts/discourse/pre-initializers/dynamic-route-builders.js.es6 +++ b/app/assets/javascripts/discourse/pre-initializers/dynamic-route-builders.js.es6 @@ -2,6 +2,7 @@ import buildCategoryRoute from "discourse/routes/build-category-route"; import buildTopicRoute from "discourse/routes/build-topic-route"; import DiscoverySortableController from "discourse/controllers/discovery-sortable"; import TagsShowRoute from "discourse/routes/tags-show"; +import Site from "discourse/models/site"; export default { after: "inject-discourse-objects", @@ -19,7 +20,7 @@ export default { no_subcategories: true }); - const site = Discourse.Site.current(); + const site = Site.current(); site.get("filters").forEach(filter => { const filterCapitalized = filter.capitalize(); app[ diff --git a/app/assets/javascripts/discourse/routes/app-route-map.js.es6 b/app/assets/javascripts/discourse/routes/app-route-map.js.es6 index ba43395d9ef..36c3e3a6e55 100644 --- a/app/assets/javascripts/discourse/routes/app-route-map.js.es6 +++ b/app/assets/javascripts/discourse/routes/app-route-map.js.es6 @@ -1,3 +1,5 @@ +import Site from "discourse/models/site"; + export default function() { // Error page this.route("exception", { path: "/exception" }); @@ -27,7 +29,7 @@ export default function() { this.route("topCategory", { path: "/c/:parentSlug/:slug/l/top" }); // top by periods - Discourse.Site.currentProp("periods").forEach(period => { + Site.currentProp("periods").forEach(period => { const top = "top" + period.capitalize(); this.route(top, { path: "/top/" + period }); this.route(top + "ParentCategory", { path: "/c/:slug/l/top/" + period }); @@ -40,7 +42,7 @@ export default function() { }); // filters - Discourse.Site.currentProp("filters").forEach(filter => { + Site.currentProp("filters").forEach(filter => { this.route(filter, { path: "/" + filter }); this.route(filter + "ParentCategory", { path: "/c/:slug/l/" + filter }); this.route(filter + "CategoryNone", { @@ -204,7 +206,7 @@ export default function() { path: "/c/:parent_category/:category/:tag_id" }); - Discourse.Site.currentProp("filters").forEach(filter => { + Site.currentProp("filters").forEach(filter => { this.route("show" + filter.capitalize(), { path: "/:tag_id/l/" + filter }); diff --git a/app/assets/javascripts/discourse/routes/build-topic-route.js.es6 b/app/assets/javascripts/discourse/routes/build-topic-route.js.es6 index d99b1901203..a3a3d96323a 100644 --- a/app/assets/javascripts/discourse/routes/build-topic-route.js.es6 +++ b/app/assets/javascripts/discourse/routes/build-topic-route.js.es6 @@ -3,6 +3,7 @@ import { queryParams } from "discourse/controllers/discovery-sortable"; import { defaultHomepage } from "discourse/lib/utilities"; import Session from "discourse/models/session"; import { Promise } from "rsvp"; +import Site from "discourse/models/site"; // A helper to build a topic route for a filter function filterQueryParams(params, defaultParams) { @@ -66,7 +67,7 @@ function findTopicList(store, tracking, filter, filterParams, extras) { } Session.currentProp("topicList", list); if (list.topic_list && list.topic_list.top_tags) { - Discourse.Site.currentProp("top_tags", list.topic_list.top_tags); + Site.currentProp("top_tags", list.topic_list.top_tags); } return list; }); diff --git a/app/assets/javascripts/select-kit/components/category-drop.js.es6 b/app/assets/javascripts/select-kit/components/category-drop.js.es6 index 2e7294854ba..5374ed04e32 100644 --- a/app/assets/javascripts/select-kit/components/category-drop.js.es6 +++ b/app/assets/javascripts/select-kit/components/category-drop.js.es6 @@ -4,6 +4,8 @@ import DiscourseURL from "discourse/lib/url"; import { default as discourseComputed } from "discourse-common/utils/decorators"; import Category from "discourse/models/category"; import { categoryBadgeHTML } from "discourse/helpers/category-link"; +import Site from "discourse/models/site"; + const { isEmpty } = Ember; export default ComboBoxComponent.extend({ @@ -168,10 +170,7 @@ export default ComboBoxComponent.extend({ if (!this.siteSettings.allow_uncategorized_topics) { results = results.filter(result => { - return ( - result.id !== - Discourse.Site.currentProp("uncategorized_category_id") - ); + return result.id !== Site.currentProp("uncategorized_category_id"); }); }