diff --git a/app/assets/javascripts/discourse/templates/groups/index.hbs b/app/assets/javascripts/discourse/templates/groups/index.hbs index 9805db78c5..a8b3c98d2f 100644 --- a/app/assets/javascripts/discourse/templates/groups/index.hbs +++ b/app/assets/javascripts/discourse/templates/groups/index.hbs @@ -16,7 +16,7 @@ content=types clearable=true allowAutoSelectFirst=false - placeholder="groups.index.filter" + noneLabel="groups.index.filter" class="groups-header-filters-type"}} diff --git a/app/assets/javascripts/select-kit/components/combo-box.js.es6 b/app/assets/javascripts/select-kit/components/combo-box.js.es6 index 4f22916d50..4e6e42a02b 100644 --- a/app/assets/javascripts/select-kit/components/combo-box.js.es6 +++ b/app/assets/javascripts/select-kit/components/combo-box.js.es6 @@ -24,11 +24,8 @@ export default SingleSelectComponent.extend({ @on("didReceiveAttrs") _setComboBoxOptions() { - const placeholder = this.get('placeholder'); - this.get("headerComponentOptions").setProperties({ - clearable: this.get("clearable"), - placeholder: placeholder ? I18n.t(placeholder) : "", + clearable: this.get("clearable") }); } }); diff --git a/app/assets/javascripts/select-kit/components/combo-box/combo-box-header.js.es6 b/app/assets/javascripts/select-kit/components/combo-box/combo-box-header.js.es6 index 3777d6caa9..3835dc01cb 100644 --- a/app/assets/javascripts/select-kit/components/combo-box/combo-box-header.js.es6 +++ b/app/assets/javascripts/select-kit/components/combo-box/combo-box-header.js.es6 @@ -7,6 +7,5 @@ export default SelectKitHeaderComponent.extend({ clearable: Ember.computed.alias("options.clearable"), caretUpIcon: Ember.computed.alias("options.caretUpIcon"), caretDownIcon: Ember.computed.alias("options.caretDownIcon"), - shouldDisplayClearableButton: Ember.computed.and("clearable", "computedContent.hasSelection"), - placeholder: Ember.computed.alias("options.placeholder"), + shouldDisplayClearableButton: Ember.computed.and("clearable", "computedContent.hasSelection") }); diff --git a/app/assets/javascripts/select-kit/components/select-kit.js.es6 b/app/assets/javascripts/select-kit/components/select-kit.js.es6 index 9054fa50fc..eab8ccb731 100644 --- a/app/assets/javascripts/select-kit/components/select-kit.js.es6 +++ b/app/assets/javascripts/select-kit/components/select-kit.js.es6 @@ -262,7 +262,8 @@ export default Ember.Component.extend(UtilsMixin, PluginApiMixin, DomHelpersMixi @computed("none") noneRowComputedContent(none) { - if (isNone(none)) { return null; } + if (isNone(none)) return null; + let noneRowComputedContent; switch (typeof none) { diff --git a/app/assets/javascripts/select-kit/components/select-kit/select-kit-header.js.es6 b/app/assets/javascripts/select-kit/components/select-kit/select-kit-header.js.es6 index 75e3eab0b1..d719c1ca66 100644 --- a/app/assets/javascripts/select-kit/components/select-kit/select-kit-header.js.es6 +++ b/app/assets/javascripts/select-kit/components/select-kit/select-kit-header.js.es6 @@ -4,7 +4,7 @@ const { isEmpty, makeArray } = Ember; export default Ember.Component.extend({ layoutName: "select-kit/templates/components/select-kit/select-kit-header", classNames: ["select-kit-header"], - classNameBindings: ["isFocused"], + classNameBindings: ["isFocused", "isNone"], attributeBindings: [ "tabindex", "ariaLabel:aria-label", @@ -14,6 +14,8 @@ export default Ember.Component.extend({ "name:data-name", ], + isNone: Ember.computed.none("computedContent.value"), + ariaHasPopup: true, ariaLabel: Ember.computed.or("computedContent.ariaLabel", "title"), diff --git a/app/assets/javascripts/select-kit/components/single-select.js.es6 b/app/assets/javascripts/select-kit/components/single-select.js.es6 index ca6878d813..204ff3349c 100644 --- a/app/assets/javascripts/select-kit/components/single-select.js.es6 +++ b/app/assets/javascripts/select-kit/components/single-select.js.es6 @@ -84,12 +84,18 @@ export default SelectKitComponent.extend({ }, computeHeaderContent() { - return { + let content = { title: this.get("title"), icons: makeArray(this.getWithDefault("headerIcon", [])), value: this.get("selection.value"), name: this.get("selection.name") || this.get("noneRowComputedContent.name") }; + + if (!this.get("hasSelection") && this.get("noneLabel")) { + content.title = content.name = I18n.t(this.get("noneLabel")); + } + + return content; }, @computed("computedAsyncContent.[]", "computedValue") diff --git a/app/assets/javascripts/select-kit/templates/components/combo-box/combo-box-header.hbs b/app/assets/javascripts/select-kit/templates/components/combo-box/combo-box-header.hbs index 7a4f405595..c3a7aa14fb 100644 --- a/app/assets/javascripts/select-kit/templates/components/combo-box/combo-box-header.hbs +++ b/app/assets/javascripts/select-kit/templates/components/combo-box/combo-box-header.hbs @@ -1,14 +1,8 @@ {{#each icons as |icon|}} {{d-icon icon}} {{/each}} -{{#if label}} - - {{{label}}} - -{{else}} - - {{placeholder}} - -{{/if}} + + {{{label}}} + {{#if shouldDisplayClearableButton}}