feature: show klipper & moonraker branch on hover

feature: disable update buttons during a print

Signed-off-by: Stefan Dej <meteyou@gmail.com>
This commit is contained in:
Stefan Dej 2021-01-12 23:44:30 +01:00
parent 747722ec2c
commit 2b08e34ba7
2 changed files with 45 additions and 3 deletions

View File

@ -16,7 +16,12 @@
<v-container py-0 px-0> <v-container py-0 px-0>
<v-row v-if="'version' in klipper" class="py-2"> <v-row v-if="'version' in klipper" class="py-2">
<v-col class="pl-6 text-no-wrap"> <v-col class="pl-6 text-no-wrap">
<strong>Klipper</strong><br /> <v-tooltip top>
<template v-slot:activator="{ on, attrs }">
<strong v-bind="attrs" v-on="on">Klipper</strong>
</template>
<span>{{ klipperBranch }}</span>
</v-tooltip><br />
<span v-if="'remote_version' in klipper && klipper.version !== klipper.remote_version">{{ klipper.version+' &gt; '+klipper.remote_version }}</span> <span v-if="'remote_version' in klipper && klipper.version !== klipper.remote_version">{{ klipper.version+' &gt; '+klipper.remote_version }}</span>
<span v-if="!('remote_version' in klipper && klipper.version !== klipper.remote_version)">{{ klipper.version }}</span> <span v-if="!('remote_version' in klipper && klipper.version !== klipper.remote_version)">{{ klipper.version }}</span>
</v-col> </v-col>
@ -36,7 +41,12 @@
<v-divider class="my-0" ></v-divider> <v-divider class="my-0" ></v-divider>
<v-row class="py-2"> <v-row class="py-2">
<v-col class="pl-6 text-no-wrap"> <v-col class="pl-6 text-no-wrap">
<strong>Moonraker</strong><br /> <v-tooltip top>
<template v-slot:activator="{ on, attrs }">
<strong v-bind="attrs" v-on="on">Moonraker</strong>
</template>
<span>{{ moonrakerBranch }}</span>
</v-tooltip><br />
<span v-if="'remote_version' in moonraker && moonraker.version !== moonraker.remote_version">{{ moonraker.version+' &gt; '+moonraker.remote_version }}</span> <span v-if="'remote_version' in moonraker && moonraker.version !== moonraker.remote_version">{{ moonraker.version+' &gt; '+moonraker.remote_version }}</span>
<span v-if="!('remote_version' in moonraker && moonraker.version !== moonraker.remote_version)">{{ moonraker.version }}</span> <span v-if="!('remote_version' in moonraker && moonraker.version !== moonraker.remote_version)">{{ moonraker.version }}</span>
</v-col> </v-col>
@ -93,7 +103,7 @@
label label
outlined outlined
:color="system.package_count ? 'primary' : 'green'" :color="system.package_count ? 'primary' : 'green'"
:disabled="!(system.package_count)" :disabled="!(system.package_count) || printer_state === 'printing'"
@click="updateSystem" @click="updateSystem"
class="minwidth-0 mt-3 px-2 text-uppercase" class="minwidth-0 mt-3 px-2 text-uppercase"
><v-icon small class="mr-1">mdi-{{ system.package_count ? 'progress-upload' : 'check' }}</v-icon>{{ system.package_count ? 'upgrade' : 'up-to-date' }}</v-chip> ><v-icon small class="mr-1">mdi-{{ system.package_count ? 'progress-upload' : 'check' }}</v-icon>{{ system.package_count ? 'upgrade' : 'up-to-date' }}</v-chip>
@ -125,6 +135,7 @@
system: state => state.server.updateManager.system, system: state => state.server.updateManager.system,
loadings: state => state.socket.loadings, loadings: state => state.socket.loadings,
remoteMode: state => state.socket.remoteMode, remoteMode: state => state.socket.remoteMode,
printer_state: state => state.printer.print_stats.state,
}), }),
mainsail:{ mainsail:{
get() { get() {
@ -133,6 +144,16 @@
return false return false
} }
},
klipperBranch: {
get() {
return this.$store.getters["server/updateManager/getKlipperBranch"]
}
},
moonrakerBranch: {
get() {
return this.$store.getters["server/updateManager/getMoonrakerBranch"]
}
} }
}, },
methods: { methods: {
@ -189,6 +210,8 @@
return 'ERROR' return 'ERROR'
}, },
is_disabled(object) { is_disabled(object) {
if (this.printer_state === "printing") return true
if (typeof object === 'object' && object !== false) { if (typeof object === 'object' && object !== false) {
if ('current_hash' in object && 'remote_hash' in object && object.current_hash !== object.remote_hash) return false if ('current_hash' in object && 'remote_hash' in object && object.current_hash !== object.remote_hash) return false

View File

@ -1,3 +1,22 @@
export default { export default {
getKlipperBranch(state) {
if (
'klipper' in state &&
'branch' in state.klipper &&
'remote_alias' in state.klipper
) return state.klipper.remote_alias+"/"+state.klipper.branch
return "UNKNOWN"
},
getMoonrakerBranch(state) {
if (
'moonraker' in state &&
'branch' in state.moonraker &&
'remote_alias' in state.moonraker
) return state.moonraker.remote_alias+"/"+state.moonraker.branch
return "UNKNOWN"
}
} }