mirror of
https://github.com/discourse/discourse.git
synced 2025-06-06 01:34:39 +08:00
UX: Display site settings shortcut for poll
and discourse-nginx-performance-report
.
https://meta.discourse.org/t/improving-admin-plugins/84585/29?u=tgxworld
This commit is contained in:
@ -8,12 +8,15 @@ export default Ember.Route.extend({
|
|||||||
const controller = this.controllerFor('adminSiteSettings');
|
const controller = this.controllerFor('adminSiteSettings');
|
||||||
this.transitionTo('adminSiteSettingsCategory', 'plugins').then(() => {
|
this.transitionTo('adminSiteSettingsCategory', 'plugins').then(() => {
|
||||||
if (plugin) {
|
if (plugin) {
|
||||||
|
const siteSettingFilter = plugin.get('enabled_setting_filter');
|
||||||
const match = /^(.*)_enabled/.exec(plugin.get('enabled_setting'));
|
const match = /^(.*)_enabled/.exec(plugin.get('enabled_setting'));
|
||||||
if (match[1]) {
|
const filter = siteSettingFilter || match[1];
|
||||||
|
|
||||||
|
if (filter) {
|
||||||
// filterContent() is normally on a debounce from typing.
|
// filterContent() is normally on a debounce from typing.
|
||||||
// Because we don't want the default of "All Results", we tell it
|
// Because we don't want the default of "All Results", we tell it
|
||||||
// to skip the next debounce.
|
// to skip the next debounce.
|
||||||
controller.set('filter', match[1]);
|
controller.set('filter', filter);
|
||||||
controller.set('_skipBounce', true);
|
controller.set('_skipBounce', true);
|
||||||
controller.filterContentNow('plugins');
|
controller.filterContentNow('plugins');
|
||||||
}
|
}
|
||||||
@ -22,4 +25,3 @@ export default Ember.Route.extend({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -6,7 +6,8 @@ class AdminPluginSerializer < ApplicationSerializer
|
|||||||
:admin_route,
|
:admin_route,
|
||||||
:enabled,
|
:enabled,
|
||||||
:enabled_setting,
|
:enabled_setting,
|
||||||
:is_official
|
:is_official,
|
||||||
|
:enabled_setting_filter
|
||||||
|
|
||||||
def id
|
def id
|
||||||
object.metadata.name
|
object.metadata.name
|
||||||
@ -28,12 +29,20 @@ class AdminPluginSerializer < ApplicationSerializer
|
|||||||
object.enabled?
|
object.enabled?
|
||||||
end
|
end
|
||||||
|
|
||||||
def enabled_setting
|
def include_enabled_setting?
|
||||||
object.enabled_site_setting
|
object.enabled_site_setting
|
||||||
end
|
end
|
||||||
|
|
||||||
def include_enabled_setting?
|
def enabled_setting
|
||||||
enabled_setting.present?
|
true
|
||||||
|
end
|
||||||
|
|
||||||
|
def include_enabled_setting_filter?
|
||||||
|
object.enabled_site_setting_filter.present?
|
||||||
|
end
|
||||||
|
|
||||||
|
def enabled_setting_filter
|
||||||
|
object.enabled_site_setting_filter
|
||||||
end
|
end
|
||||||
|
|
||||||
def include_url?
|
def include_url?
|
||||||
|
@ -493,6 +493,14 @@ JS
|
|||||||
PluginGem.load(path, name, version, opts)
|
PluginGem.load(path, name, version, opts)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def enabled_site_setting_filter(filter = nil)
|
||||||
|
if filter
|
||||||
|
@enabled_setting_filter = filter
|
||||||
|
else
|
||||||
|
@enabled_setting_filter
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def enabled_site_setting(setting = nil)
|
def enabled_site_setting(setting = nil)
|
||||||
if setting
|
if setting
|
||||||
@enabled_site_setting = setting
|
@enabled_site_setting = setting
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
# version: 0.1
|
# version: 0.1
|
||||||
# url: https://github.com/discourse/discourse/tree/master/plugins/discourse-nginx-performance-report
|
# url: https://github.com/discourse/discourse/tree/master/plugins/discourse-nginx-performance-report
|
||||||
|
|
||||||
|
enabled_site_setting :daily_performance_report
|
||||||
|
enabled_site_setting_filter "daily_performance_report"
|
||||||
|
|
||||||
after_initialize do
|
after_initialize do
|
||||||
load File.expand_path("../app/jobs/scheduled/daily_performance_report.rb", __FILE__)
|
load File.expand_path("../app/jobs/scheduled/daily_performance_report.rb", __FILE__)
|
||||||
end
|
end
|
||||||
|
@ -9,6 +9,8 @@ register_asset "stylesheets/common/poll-ui-builder.scss"
|
|||||||
register_asset "stylesheets/desktop/poll.scss", :desktop
|
register_asset "stylesheets/desktop/poll.scss", :desktop
|
||||||
register_asset "stylesheets/mobile/poll.scss", :mobile
|
register_asset "stylesheets/mobile/poll.scss", :mobile
|
||||||
|
|
||||||
|
enabled_site_setting :poll_enabled
|
||||||
|
|
||||||
PLUGIN_NAME ||= "discourse_poll".freeze
|
PLUGIN_NAME ||= "discourse_poll".freeze
|
||||||
DATA_PREFIX ||= "data-poll-".freeze
|
DATA_PREFIX ||= "data-poll-".freeze
|
||||||
|
|
||||||
|
@ -381,4 +381,19 @@ describe Plugin::Instance do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#enabled_site_setting_filter' do
|
||||||
|
describe 'when filter is blank' do
|
||||||
|
it 'should return the right value' do
|
||||||
|
expect(Plugin::Instance.new.enabled_site_setting_filter).to eq(nil)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should set the right value' do
|
||||||
|
instance = Plugin::Instance.new
|
||||||
|
instance.enabled_site_setting_filter('test')
|
||||||
|
|
||||||
|
expect(instance.enabled_site_setting_filter).to eq('test')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user