From 57b89a2c7f51e6570702e1e449d0f02fb8102fbb Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Tue, 30 Dec 2014 16:29:28 -0500 Subject: [PATCH] Plugin stuff: * Allow plugins to work with only autoloaded assets. * Give a plugin outlet a class name based on its name if no view class * Give the `topic-title` outlet a default class of `clear: both` --- .../discourse/helpers/plugin-outlet.js.es6 | 4 +--- app/assets/stylesheets/common/base/topic.scss | 4 ++++ lib/plugin/instance.rb | 12 ++++++------ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/discourse/helpers/plugin-outlet.js.es6 b/app/assets/javascripts/discourse/helpers/plugin-outlet.js.es6 index c1844193b8f..6ef119f281b 100644 --- a/app/assets/javascripts/discourse/helpers/plugin-outlet.js.es6 +++ b/app/assets/javascripts/discourse/helpers/plugin-outlet.js.es6 @@ -77,7 +77,7 @@ function buildConnectorCache() { // We are going to add it back with the proper template _connectorCache[outletName].removeObject(viewClass); } else { - viewClass = Em.View; + viewClass = Em.View.extend({ classNames: [outletName + '-outlet'] }); } _connectorCache[outletName].pushObject(viewClass.extend(mixin)); }); @@ -87,7 +87,6 @@ function buildConnectorCache() { export default function(connectionName, options) { if (!_connectorCache) { buildConnectorCache(); } - var self = this; if (_connectorCache[connectionName]) { var view; var childViews = _connectorCache[connectionName]; @@ -104,7 +103,6 @@ export default function(connectionName, options) { delete options.fn; // we don't need the default template since we have a connector return Ember.Handlebars.helpers.view.call(this, view, options); } else if (options.fn) { - // If a block is passed, render its content. return Ember.Handlebars.helpers.view.call(this, Ember.View.extend({ diff --git a/app/assets/stylesheets/common/base/topic.scss b/app/assets/stylesheets/common/base/topic.scss index 0167dbef317..0bb00feee9f 100644 --- a/app/assets/stylesheets/common/base/topic.scss +++ b/app/assets/stylesheets/common/base/topic.scss @@ -8,3 +8,7 @@ a.edit-topic i { font-size: 0.8em; } } + +.topic-title-outlet { + clear: both; +} diff --git a/lib/plugin/instance.rb b/lib/plugin/instance.rb index 66e9ccb37d8..3f14429a446 100644 --- a/lib/plugin/instance.rb +++ b/lib/plugin/instance.rb @@ -174,12 +174,12 @@ class Plugin::Instance if auto_assets = generate_automatic_assets! assets.concat auto_assets.map{|a| [a]} end - unless assets.blank? - register_assets! - # TODO possibly amend this to a rails engine - Rails.configuration.assets.paths << auto_generated_path - Rails.configuration.assets.paths << File.dirname(path) + "/assets" - end + + register_assets! unless assets.blank? + + # TODO possibly amend this to a rails engine + Rails.configuration.assets.paths << auto_generated_path + Rails.configuration.assets.paths << File.dirname(path) + "/assets" public_data = File.dirname(path) + "/public" if Dir.exists?(public_data)