+
@@ -44,7 +51,9 @@ export default {
details: { type: Number },
detailsFmt: { type: Function },
detailsTooltip: { type: Array },
+ detailsClickable: { type: Boolean },
},
+ emits: ["details-clicked"],
data() {
return { powerTooltipInstance: null, detailsTooltipInstance: null };
},
@@ -87,6 +96,9 @@ export default {
);
},
updateDetailsTooltip() {
+ if (this.detailsClickable) {
+ return;
+ }
this.detailsTooltipInstance = this.updateTooltip(
this.detailsTooltipInstance,
this.detailsTooltip,
@@ -107,6 +119,19 @@ export default {
instance.setContent({ ".tooltip-inner": html });
return instance;
},
+ powerClicked: function ($event) {
+ if (this.powerTooltip) {
+ $event.stopPropagation();
+ }
+ },
+ detailsClicked: function ($event) {
+ if (this.detailsClickable || this.detailsTooltip) {
+ $event.stopPropagation();
+ }
+ if (this.detailsClickable) {
+ this.$emit("details-clicked");
+ }
+ },
},
};
diff --git a/assets/js/components/GlobalSettingsModal.vue b/assets/js/components/GlobalSettingsModal.vue
index 8584a5375..01d7ebf4b 100644
--- a/assets/js/components/GlobalSettingsModal.vue
+++ b/assets/js/components/GlobalSettingsModal.vue
@@ -64,23 +64,6 @@
"
/>
-
-
-
@@ -120,7 +103,6 @@ import SelectGroup from "./SelectGroup.vue";
import { getLocalePreference, setLocalePreference, LOCALES, removeLocalePreference } from "../i18n";
import { getThemePreference, setThemePreference, THEMES } from "../theme";
import { getUnits, setUnits, UNITS } from "../units";
-import { getGridDetails, setGridDetails, GRID_DETAILS } from "../gridDetails";
import { getHiddenFeatures, setHiddenFeatures } from "../featureflags";
export default {
@@ -128,8 +110,6 @@ export default {
components: { TelemetrySettings, FormRow, SelectGroup, SponsorTokenExpires },
props: {
sponsor: String,
- hasPrice: Boolean,
- hasCo2: Boolean,
sponsorTokenExpires: Number,
},
data: function () {
@@ -137,11 +117,9 @@ export default {
theme: getThemePreference(),
language: getLocalePreference() || "",
unit: getUnits(),
- gridDetails: getGridDetails(),
hiddenFeatures: getHiddenFeatures(),
THEMES,
UNITS,
- GRID_DETAILS,
};
},
computed: {
@@ -161,9 +139,6 @@ export default {
unit(value) {
setUnits(value);
},
- gridDetails(value) {
- setGridDetails(value);
- },
theme(value) {
setThemePreference(value);
},
@@ -179,10 +154,5 @@ export default {
}
},
},
- methods: {
- isDisabled(option) {
- return (option === "co2" && !this.hasCo2) || (option === "price" && !this.hasPrice);
- },
- },
};
diff --git a/assets/js/components/GridSettingsModal.vue b/assets/js/components/GridSettingsModal.vue
new file mode 100644
index 000000000..ecc1eb607
--- /dev/null
+++ b/assets/js/components/GridSettingsModal.vue
@@ -0,0 +1,340 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t("gridSettings.costLimitDescription") }}
+
+
+
+
+
+ {{ $t("gridSettings.activeHoursLabel") }}
+
+
+ {{
+ $t("gridSettings.activeHours", {
+ total: totalSlots.length,
+ charging: chargingSlots.length,
+ })
+ }}
+
+
+
+
+ {{ activeSlotName }}
+ {{ $t("gridSettings.co2Label") }}
+ {{ $t("gridSettings.priceLabel") }}
+
+
+ {{ activeSlotCost }}
+
+
+ {{ chargingCostRange }}
+
+
+ {{ totalCostRange }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/js/components/Loadpoint.vue b/assets/js/components/Loadpoint.vue
index ddceb4c80..dd837bc9d 100644
--- a/assets/js/components/Loadpoint.vue
+++ b/assets/js/components/Loadpoint.vue
@@ -32,7 +32,6 @@
@maxcurrent-updated="setMaxCurrent"
@mincurrent-updated="setMinCurrent"
@phasesconfigured-updated="setPhasesConfigured"
- @minsoc-updated="setMinSoc"
/>
@@ -199,6 +199,10 @@ export default {
pvAction: String,
guardRemaining: Number,
guardAction: String,
+ smartCostLimit: Number,
+ smartCostUnit: String,
+ tariffGrid: Number,
+ tariffCo2: Number,
},
data() {
return {
diff --git a/assets/js/components/LoadpointSettingsModal.vue b/assets/js/components/LoadpointSettingsModal.vue
index 21354e97d..bfe79bbcc 100644
--- a/assets/js/components/LoadpointSettingsModal.vue
+++ b/assets/js/components/LoadpointSettingsModal.vue
@@ -23,47 +23,6 @@