Config UI: fix default for required choice params (#28935)
This commit is contained in:
parent
80900fd648
commit
462dbd0def
6 changed files with 11 additions and 12 deletions
|
|
@ -68,6 +68,7 @@ export type ApiData = {
|
|||
icon?: string;
|
||||
usage?: MeterTemplateUsage;
|
||||
title?: string;
|
||||
priority?: number;
|
||||
identifiers?: string[];
|
||||
[key: string]: any;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -114,7 +114,6 @@
|
|||
v-model="values.defaultMode"
|
||||
type="Choice"
|
||||
class="w-100"
|
||||
required
|
||||
:choice="[
|
||||
{ key: '', name: '---' },
|
||||
{ key: 'off', name: $t('main.mode.off') },
|
||||
|
|
@ -302,8 +301,8 @@
|
|||
type="Choice"
|
||||
size="w-100"
|
||||
class="me-2"
|
||||
:choice="priorityOptions"
|
||||
required
|
||||
:choice="priorityOptions"
|
||||
/>
|
||||
</FormRow>
|
||||
|
||||
|
|
@ -435,7 +434,6 @@
|
|||
type="Choice"
|
||||
class="me-2"
|
||||
:choice="circuitOptions"
|
||||
required
|
||||
/>
|
||||
</FormRow>
|
||||
</div>
|
||||
|
|
@ -465,7 +463,6 @@
|
|||
type="Choice"
|
||||
class="me-2"
|
||||
:choice="allVehicleOptions"
|
||||
required
|
||||
/>
|
||||
</FormRow>
|
||||
|
||||
|
|
@ -744,7 +741,6 @@ export default {
|
|||
name: string;
|
||||
}[];
|
||||
result[0]!.name = "0 (default)";
|
||||
result[0]!.key = undefined;
|
||||
result[10]!.name = "10 (highest)";
|
||||
return result;
|
||||
},
|
||||
|
|
|
|||
|
|
@ -51,9 +51,10 @@
|
|||
v-model="value"
|
||||
class="form-select"
|
||||
:class="inputClasses"
|
||||
:required="required"
|
||||
:disabled="disabled"
|
||||
>
|
||||
<option v-if="!required" value="" :disabled="disabled">---</option>
|
||||
<option v-if="!required || !modelValue" value="" :disabled="disabled">---</option>
|
||||
<template v-for="({ key, name }, idx) in selectOptions">
|
||||
<option
|
||||
v-if="key !== null && name !== null"
|
||||
|
|
@ -304,9 +305,8 @@ export default {
|
|||
},
|
||||
value: {
|
||||
get() {
|
||||
// use first option if no value is set
|
||||
if (this.selectOptions.length > 0 && !this.modelValue) {
|
||||
return this.required ? this.selectOptions[0].key : "";
|
||||
if (this.select && this.modelValue == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
if (this.scale) {
|
||||
|
|
|
|||
|
|
@ -162,6 +162,7 @@ import { getModal } from "@/configModal";
|
|||
const initialValues = {
|
||||
type: ConfigType.Template,
|
||||
icon: "car",
|
||||
priority: 0,
|
||||
deviceProduct: undefined,
|
||||
yaml: undefined,
|
||||
template: null,
|
||||
|
|
@ -206,7 +207,6 @@ export default defineComponent({
|
|||
(_, i) => ({ key: i, name: `${i}` })
|
||||
);
|
||||
result[0]!.name = "0 (default)";
|
||||
result[0]!.key = undefined;
|
||||
result[10]!.name = "10 (highest)";
|
||||
return result;
|
||||
},
|
||||
|
|
@ -258,6 +258,7 @@ export default defineComponent({
|
|||
if (values.type === ConfigType.Custom) {
|
||||
delete data.icon;
|
||||
delete data.title;
|
||||
delete data.priority;
|
||||
}
|
||||
if (Array.isArray(data.identifiers)) {
|
||||
data.identifiers = data.identifiers.map((i) => i.trim()).filter((i) => i);
|
||||
|
|
|
|||
|
|
@ -87,6 +87,7 @@ test.describe("boost", async () => {
|
|||
await lp1.getByTestId("mode").getByRole("button", { name: "Solar", exact: true }).click();
|
||||
await lp1.getByTestId("loadpoint-settings-button").last().click();
|
||||
const modal = page.getByTestId("loadpoint-settings-modal").first();
|
||||
await expectModalVisible(modal);
|
||||
await modal.getByTestId("battery-boost-limit").selectOption("0 %");
|
||||
await modal.getByLabel("Close").click();
|
||||
await expectModalHidden(modal);
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ test.describe("charging loadpoint", async () => {
|
|||
// second loadpoint: increase priority
|
||||
await page.getByTestId("loadpoint").nth(1).getByRole("button", { name: "edit" }).click();
|
||||
await expectModalVisible(lpModal);
|
||||
await expect(lpModal.getByLabel("Priority")).toHaveValue("0 (default)");
|
||||
await expect(lpModal.getByLabel("Priority")).toHaveValue("0");
|
||||
await lpModal.getByLabel("Priority").selectOption("1");
|
||||
await lpModal.getByRole("button", { name: "Save" }).click();
|
||||
await expectModalHidden(lpModal);
|
||||
|
|
@ -182,7 +182,7 @@ test.describe("charging loadpoint", async () => {
|
|||
// check priorities
|
||||
await page.getByTestId("loadpoint").nth(1).getByRole("button", { name: "edit" }).click();
|
||||
await expectModalVisible(lpModal);
|
||||
await expect(lpModal.getByLabel("Priority")).toHaveValue("0 (default)");
|
||||
await expect(lpModal.getByLabel("Priority")).toHaveValue("0");
|
||||
});
|
||||
|
||||
test("vehicle", async ({ page }) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue