feature: dynamic temperature-sensor icons + header minimize from temperature panel

Signed-off-by: meteyou <meteyou@gmail.com>
This commit is contained in:
meteyou 2020-11-21 18:20:58 +01:00
parent f26aff2085
commit 8f363ec1c1
2 changed files with 21 additions and 17 deletions

View File

@ -14,21 +14,12 @@
<template> <template>
<v-card> <v-card>
<v-list-item> <v-toolbar flat dense>
<v-list-item-avatar color="grey"><v-icon dark>mdi-thermometer</v-icon></v-list-item-avatar> <v-toolbar-title>
<v-list-item-content> <span class="subheading"><v-icon left>mdi-thermometer-lines</v-icon>Temperatures</span>
<v-list-item-title class="headline">Temperatures</v-list-item-title> </v-toolbar-title>
<v-list-item-subtitle> </v-toolbar>
{{ heaters.length }} heaters <v-card-text class="px-0 py-2 content">
<span v-if="this['printer/getTemperatureFans'].length === 1">, {{ this['printer/getTemperatureFans'].length }} fan</span>
<span v-if="this['printer/getTemperatureFans'].length > 1">, {{ this['printer/getTemperatureFans'].length }} fans</span>
<span v-if="this['printer/getTemperatureSensors'].length === 1">, {{ this['printer/getTemperatureSensors'].length }} sensor</span>
<span v-if="this['printer/getTemperatureSensors'].length > 1">, {{ this['printer/getTemperatureSensors'].length }} sensors</span>
</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
<v-divider class="my-2"></v-divider>
<v-card-text class="px-0 pt-0 pb-2 content">
<v-row align="center"> <v-row align="center">
<v-col class="py-0 font-weight-bold" style="padding-left: 68px;">Name</v-col> <v-col class="py-0 font-weight-bold" style="padding-left: 68px;">Name</v-col>
<v-col class="py-0 text-center font-weight-bold">Status</v-col> <v-col class="py-0 text-center font-weight-bold">Status</v-col>
@ -66,7 +57,9 @@
<div v-for="(sensor,index) in this['printer/getTemperatureSensors']" v-bind:key="index+999"> <div v-for="(sensor,index) in this['printer/getTemperatureSensors']" v-bind:key="index+999">
<v-divider class="my-2"></v-divider> <v-divider class="my-2"></v-divider>
<v-row align="center"> <v-row align="center">
<v-col class="flex-grow-0 py-0 pl-8 pr-0 colHeaterIcons"><v-icon color="grey darken-2">mdi-thermometer</v-icon></v-col> <v-col class="flex-grow-0 py-0 pl-8 pr-0 colHeaterIcons">
<v-icon color="grey darken-2" :title="'min: '+sensor.min_temp+'° / max: '+sensor.max_temp+'°'">{{ sensor.icon }}</v-icon>
</v-col>
<v-col class="py-0 font-weight-bold">{{ sensor.name }}</v-col> <v-col class="py-0 font-weight-bold">{{ sensor.name }}</v-col>
<v-col class="py-0"><span>&nbsp;</span></v-col> <v-col class="py-0"><span>&nbsp;</span></v-col>
<v-col class="py-0 text-center"> <v-col class="py-0 text-center">

View File

@ -105,16 +105,27 @@ export default {
return fans.sort(caseInsensitiveNameSort) return fans.sort(caseInsensitiveNameSort)
}, },
getTemperatureSensors: state => { getTemperatureSensors: (state) => {
let sensors = [] let sensors = []
for (let [key, value] of Object.entries(state)) { for (let [key, value] of Object.entries(state)) {
let nameSplit = key.split(" ") let nameSplit = key.split(" ")
if (nameSplit[0] === "temperature_sensor") { if (nameSplit[0] === "temperature_sensor") {
let icon = "mdi-thermometer"
let min_temp = (state.configfile.config[key] && state.configfile.config[key].min_temp) ? parseInt(state.configfile.config[key].min_temp) : 0
let max_temp = (state.configfile.config[key] && state.configfile.config[key].max_temp) ? parseInt(state.configfile.config[key].max_temp) : 210
let split = (max_temp - min_temp) / 3
if (value.temperature <= min_temp + split) icon = "mdi-thermometer-low"
if (value.temperature >= max_temp - split) icon = "mdi-thermometer-high"
sensors.push({ sensors.push({
name: nameSplit[1], name: nameSplit[1],
temperature: value.temperature, temperature: value.temperature,
icon: icon,
min_temp: min_temp,
max_temp: max_temp,
measured_min_temp: value.measured_min_temp, measured_min_temp: value.measured_min_temp,
measured_max_temp: value.measured_max_temp, measured_max_temp: value.measured_max_temp,
}) })