mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 09:26:54 -06:00
FEATURE: Per-plugin settings buttons, "Enabled" column
Also, added enabled_site_setting to the Poll plugin so it shows up properly.
This commit is contained in:
parent
0e74c46d74
commit
af042ffe5e
@ -5,8 +5,7 @@ export default Ember.ArrayController.extend(Presence, {
|
||||
onlyOverridden: false,
|
||||
filtered: Ember.computed.notEmpty('filter'),
|
||||
|
||||
filterContent: Discourse.debounce(function() {
|
||||
|
||||
filterContentNow: function(category) {
|
||||
// If we have no content, don't bother filtering anything
|
||||
if (!this.present('allSiteSettings')) return;
|
||||
|
||||
@ -48,7 +47,15 @@ export default Ember.ArrayController.extend(Presence, {
|
||||
});
|
||||
|
||||
this.set('model', matchesGroupedByCategory);
|
||||
this.transitionToRoute("adminSiteSettingsCategory", "all_results");
|
||||
return this.transitionToRoute("adminSiteSettingsCategory", category || "all_results");
|
||||
},
|
||||
|
||||
filterContent: Discourse.debounce(function() {
|
||||
if (this.get("_skipBounce")) {
|
||||
this.set("_skipBounce", false);
|
||||
} else {
|
||||
this.filterContentNow();
|
||||
}
|
||||
}, 250).observes('filter', 'onlyOverridden'),
|
||||
|
||||
actions: {
|
||||
|
@ -4,8 +4,21 @@ export default Ember.Route.extend({
|
||||
},
|
||||
|
||||
actions: {
|
||||
showSettings() {
|
||||
this.transitionTo('adminSiteSettingsCategory', 'plugins');
|
||||
showSettings(plugin) {
|
||||
const controller = this.controllerFor('adminSiteSettings');
|
||||
this.transitionTo('adminSiteSettingsCategory', 'plugins').then(function() {
|
||||
if (plugin) {
|
||||
const match = /^(.*)_enabled/.exec(plugin.get('enabled_setting'));
|
||||
if (match[1]) {
|
||||
// filterContent() is normally on a debounce from typing.
|
||||
// Because we don't want the default of "All Results", we tell it
|
||||
// to skip the next debounce.
|
||||
controller.set('filter', match[1]);
|
||||
controller.set('_skipBounce', true);
|
||||
controller.filterContentNow('plugins');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -9,11 +9,13 @@
|
||||
|
||||
<br/>
|
||||
|
||||
<table>
|
||||
<table class="admin-plugins">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{i18n "admin.plugins.name"}}</th>
|
||||
<th>{{i18n "admin.plugins.version"}}</th>
|
||||
<th>{{i18n "admin.plugins.enabled"}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -27,6 +29,25 @@
|
||||
{{/if}}
|
||||
</td>
|
||||
<td>{{plugin.version}}</td>
|
||||
<td class="col-enabled">
|
||||
{{#if plugin.enabled_setting}}
|
||||
{{#if plugin.enabled}}
|
||||
{{i18n "admin.plugins.is_enabled"}}
|
||||
{{else}}
|
||||
{{i18n "admin.plugins.not_enabled"}}
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{i18n "admin.plugins.cant_disable"}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td>
|
||||
{{#if plugin.enabled_setting}}
|
||||
<button {{action "showSettings" plugin}} class="btn">
|
||||
{{fa-icon "gear"}}
|
||||
{{i18n "admin.plugins.change_settings_short"}}
|
||||
</button>
|
||||
{{/if}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
|
@ -1240,6 +1240,10 @@ table.api-keys {
|
||||
}
|
||||
}
|
||||
|
||||
.admin-plugins .col-enabled {
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
// Backups
|
||||
// --------------------------------------------------
|
||||
|
||||
|
@ -3,7 +3,9 @@ class AdminPluginSerializer < ApplicationSerializer
|
||||
:name,
|
||||
:version,
|
||||
:url,
|
||||
:admin_route
|
||||
:admin_route,
|
||||
:enabled,
|
||||
:enabled_setting
|
||||
|
||||
def id
|
||||
object.metadata.name
|
||||
@ -21,6 +23,18 @@ class AdminPluginSerializer < ApplicationSerializer
|
||||
object.metadata.url
|
||||
end
|
||||
|
||||
def enabled
|
||||
object.enabled?
|
||||
end
|
||||
|
||||
def enabled_setting
|
||||
object.enabled_site_setting
|
||||
end
|
||||
|
||||
def include_enabled_setting?
|
||||
enabled_setting.present?
|
||||
end
|
||||
|
||||
def include_url?
|
||||
url.present?
|
||||
end
|
||||
|
@ -1825,7 +1825,12 @@ en:
|
||||
name: "Name"
|
||||
none_installed: "You don't have any plugins installed."
|
||||
version: "Version"
|
||||
enabled: "Enabled?"
|
||||
is_enabled: "Y"
|
||||
not_enabled: "N"
|
||||
cant_disable: "-"
|
||||
change_settings: "Change Settings"
|
||||
change_settings_short: "Settings"
|
||||
howto: "How do I install plugins?"
|
||||
|
||||
backups:
|
||||
|
@ -299,8 +299,12 @@ class Plugin::Instance
|
||||
end
|
||||
end
|
||||
|
||||
def enabled_site_setting(setting)
|
||||
def enabled_site_setting(setting=nil)
|
||||
if setting
|
||||
@enabled_site_setting = setting
|
||||
else
|
||||
@enabled_site_setting
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
@ -4,6 +4,8 @@
|
||||
# authors: Vikhyat Korrapati (vikhyat), Régis Hanol (zogstrip)
|
||||
# url: https://github.com/discourse/discourse/tree/master/plugins/poll
|
||||
|
||||
enabled_site_setting :poll_enabled
|
||||
|
||||
register_asset "stylesheets/common/poll.scss"
|
||||
register_asset "stylesheets/desktop/poll.scss", :desktop
|
||||
register_asset "stylesheets/mobile/poll.scss", :mobile
|
||||
|
Loading…
Reference in New Issue
Block a user