DEV: Debundle plugin javascript assets and don't load if disabled (#7566)

And don't load javascript assets if plugin is disabled.

* precompile auto generated plugin js assets

* SPEC: remove spec test functions

* remove plugin js from test_helper

Co-Authored-By: Régis Hanol <regis@hanol.fr>

* DEV: using equality is slightly easier to read than inequality

Co-Authored-By: Régis Hanol <regis@hanol.fr>

* DEV: use `select` method instead of `find_all` for readability

Co-Authored-By: Régis Hanol <regis@hanol.fr>
This commit is contained in:
Vinoth Kannan
2019-07-15 20:22:54 +05:30
committed by GitHub
parent 8e133de831
commit 839916aa49
9 changed files with 59 additions and 56 deletions

View File

@ -204,6 +204,22 @@ module Discourse
plugins.find_all { |p| !p.metadata.official? }
end
def self.find_plugins(args)
plugins.select do |plugin|
next if args[:include_official] == false && plugin.metadata.official?
next if args[:include_unofficial] == false && !plugin.metadata.official?
next if args[:include_disabled] == false && !plugin.enabled?
true
end
end
def self.find_plugin_js_assets(args)
self.find_plugins(args).find_all do |plugin|
plugin.js_asset_exists?
end.map { |plugin| "plugins/#{plugin.asset_name}" }
end
def self.assets_digest
@assets_digest ||= begin
digest = Digest::MD5.hexdigest(ActionView::Base.assets_manifest.assets.values.sort.join)