FIX: brings back castInteger as a safer migration path for sk2 (#8966)

This commit is contained in:
Joffrey JAFFEUX
2020-02-14 10:00:40 +01:00
committed by GitHub
parent 09edde8ef7
commit 7d94de6439
4 changed files with 21 additions and 7 deletions

View File

@ -3,7 +3,10 @@
content=setting.validValues
value=value
onChange=(action (mut value))
allowAny=setting.allowsNone
options=(hash
castInteger=true
allowAny=setting.allowsNone
)
}}
{{preview}}

View File

@ -80,7 +80,10 @@ export default SelectKitComponent.extend({
},
selectedContent: computed("value.[]", "content.[]", function() {
const value = Ember.makeArray(this.value);
const value = Ember.makeArray(this.value).map(v =>
this.selectKit.options.castInteger && this._isNumeric(v) ? Number(v) : v
);
if (value.length) {
let content = [];

View File

@ -268,7 +268,8 @@ export default Component.extend(
limitMatches: null,
placement: "bottom-start",
filterComponent: "select-kit/select-kit-filter",
selectedNameComponent: "selected-name"
selectedNameComponent: "selected-name",
castInteger: false
},
autoFilterable: computed("content.[]", "selectKit.filter", function() {
@ -961,7 +962,8 @@ export default Component.extend(
maximum: "options.maximum",
minimum: "options.minimum",
i18nPostfix: "options.i18nPostfix",
i18nPrefix: "options.i18nPrefix"
i18nPrefix: "options.i18nPrefix",
castInteger: "options.castInteger"
};
Object.keys(migrations).forEach(from => {

View File

@ -16,17 +16,23 @@ export default SelectKitComponent.extend({
if (!isEmpty(this.value)) {
let content;
const value =
this.selectKit.options.castInteger && this._isNumeric(this.value)
? Number(this.value)
: this.value;
if (this.selectKit.valueProperty) {
content = (this.content || []).findBy(
this.selectKit.valueProperty,
this.value
value
);
return this.selectKit.modifySelection(
content || this.defaultItem(this.value, this.value)
content || this.defaultItem(value, value)
);
} else {
return this.selectKit.modifySelection(
(this.content || []).filter(c => c === this.value)
(this.content || []).filter(c => c === value)
);
}
} else {