FIX: introduces onSelectAny (regroup onSelect and onSelectNone) (#7594)

This commit is contained in:
Joffrey JAFFEUX 2019-05-24 13:11:33 +02:00 committed by GitHub
parent f4a471f0eb
commit 049561ac49
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 42 additions and 1 deletions

View File

@ -223,6 +223,10 @@ export default Ember.Controller.extend(bufferedProperty("model"), {
},
actions: {
topicCategoryChanged(selection) {
this.set("buffered.category_id", selection.value);
},
deletePending(pending) {
return ajax(`/review/${pending.id}`, { type: "DELETE" })
.then(() => {

View File

@ -25,7 +25,7 @@
{{category-chooser
class="small"
value=(unbound buffered.category_id)
onSelect=(action (mut buffered.category_id))}}
onSelectAny=(action "topicCategoryChanged")}}
{{/if}}
{{#if canEditTags}}

View File

@ -223,6 +223,7 @@ export default SelectKitComponent.extend({
);
this._boundaryActionHandler("onSelect", computedContentItem.value);
this._boundaryActionHandler("onSelectAny", computedContentItem);
return;
}
@ -239,6 +240,7 @@ export default SelectKitComponent.extend({
this
);
this._boundaryActionHandler("onSelectNone");
this._boundaryActionHandler("onSelectAny", computedContentItem);
this.clearSelection();
return;
}
@ -291,6 +293,7 @@ export default SelectKitComponent.extend({
);
this._boundaryActionHandler("onSelect", computedContentItem.value);
this._boundaryActionHandler("onSelectAny", computedContentItem);
this.autoHighlight();
});

View File

@ -924,3 +924,37 @@ componentTest("noopRow", {
assert.equal(this.get("value"), "green");
}
});
componentTest("onSelectAny", {
template: `<div class='test-external-action'></div>{{single-select none="none" content=content onSelectAny=(action externalAction)}}`,
beforeEach() {
this.set("externalAction", actual => {
find(".test-external-action").text(actual.value);
});
this.set("content", ["blue"]);
},
async test(assert) {
await this.get("subject").expand();
await this.get("subject").selectRowByValue("blue");
assert.equal(
find(".test-external-action")
.text()
.trim(),
"blue"
);
await this.get("subject").expand();
await this.get("subject").selectNoneRow();
assert.equal(
find(".test-external-action")
.text()
.trim(),
"__none__"
);
}
});