diff --git a/app/assets/javascripts/admin/controllers/admin-site-settings-category.js.es6 b/app/assets/javascripts/admin/controllers/admin-site-settings-category.js.es6 index df0738bed1..c2d96201bd 100644 --- a/app/assets/javascripts/admin/controllers/admin-site-settings-category.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-site-settings-category.js.es6 @@ -1,16 +1,16 @@ +import computed from "ember-addons/ember-computed-decorators"; + export default Ember.Controller.extend({ categoryNameKey: null, adminSiteSettings: Ember.inject.controller(), - filteredContent: function() { - if (!this.get('categoryNameKey')) { return []; } - - const category = (this.get('adminSiteSettings.model') || []).findBy('nameKey', this.get('categoryNameKey')); - if (category) { - return category.siteSettings; - } else { - return []; - } - }.property('adminSiteSettings.model', 'categoryNameKey') + @computed("adminSiteSettings.model", "categoryNameKey") + category(categories, nameKey) { + return (categories || []).findBy("nameKey", nameKey); + }, + @computed("category") + filteredContent(category) { + return category ? category.siteSettings : []; + } }); diff --git a/app/assets/javascripts/admin/controllers/admin-site-settings.js.es6 b/app/assets/javascripts/admin/controllers/admin-site-settings.js.es6 index 6edbe9e01f..6469efa6cc 100644 --- a/app/assets/javascripts/admin/controllers/admin-site-settings.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-site-settings.js.es6 @@ -3,7 +3,6 @@ import debounce from 'discourse/lib/debounce'; export default Ember.Controller.extend({ filter: null, onlyOverridden: false, - filtered: Ember.computed.notEmpty('filter'), filterContentNow(category) { // If we have no content, don't bother filtering anything @@ -14,9 +13,9 @@ export default Ember.Controller.extend({ filter = this.get('filter').toLowerCase(); } - if ((filter === undefined || filter.length < 1) && !this.get('onlyOverridden')) { + if ((!filter || 0 === filter.length) && !this.get('onlyOverridden')) { this.set('model', this.get('allSiteSettings')); - this.transitionToRoute("adminSiteSettings"); + this.transitionToRoute('adminSiteSettings'); return; } @@ -28,11 +27,11 @@ export default Ember.Controller.extend({ const siteSettings = settingsCategory.siteSettings.filter(item => { if (this.get('onlyOverridden') && !item.get('overridden')) return false; if (filter) { - if (item.get('setting').toLowerCase().indexOf(filter) > -1) return true; - if (item.get('setting').toLowerCase().replace(/_/g, ' ').indexOf(filter) > -1) return true; - if (item.get('description').toLowerCase().indexOf(filter) > -1) return true; - if ((item.get('value') || '').toLowerCase().indexOf(filter) > -1) return true; - return false; + const setting = item.get('setting').toLowerCase(); + return setting.includes(filter) || + setting.replace(/_/g, ' ').includes(filter) || + item.get('description').toLowerCase().includes(filter) || + (item.get('value') || '').toLowerCase().includes(filter); } else { return true; } @@ -49,15 +48,16 @@ export default Ember.Controller.extend({ }); all.siteSettings.pushObjects(matches.slice(0, 30)); - all.count = matches.length; + all.hasMore = matches.length > 30; + all.count = all.hasMore ? '30+' : matches.length; this.set('model', matchesGroupedByCategory); - this.transitionToRoute("adminSiteSettingsCategory", category || "all_results"); + this.transitionToRoute('adminSiteSettingsCategory', category || 'all_results'); }, filterContent: debounce(function() { - if (this.get("_skipBounce")) { - this.set("_skipBounce", false); + if (this.get('_skipBounce')) { + this.set('_skipBounce', false); } else { this.filterContentNow(); } diff --git a/app/assets/javascripts/admin/templates/site-settings-category.hbs b/app/assets/javascripts/admin/templates/site-settings-category.hbs index 1af19ed7b6..5f61241932 100644 --- a/app/assets/javascripts/admin/templates/site-settings-category.hbs +++ b/app/assets/javascripts/admin/templates/site-settings-category.hbs @@ -3,6 +3,9 @@ {{#each filteredContent as |setting|}} {{site-setting setting=setting}} {{/each}} + {{#if category.hasMore}} +
{{i18n 'admin.site_settings.more_than_30_results'}}
+ {{/if}} {{/d-section}} {{else}}