fix: fix browser title, when printer is off (#1300)

This commit is contained in:
Stefan Dej 2023-03-10 18:05:00 +01:00 committed by GitHub
parent 6703721593
commit 3e49847fc3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 29 deletions

View File

@ -66,6 +66,8 @@ import TheManualProbeDialog from '@/components/dialogs/TheManualProbeDialog.vue'
import TheBedScrewsDialog from '@/components/dialogs/TheBedScrewsDialog.vue'
import TheScrewsTiltAdjustDialog from '@/components/dialogs/TheScrewsTiltAdjustDialog.vue'
Component.registerHooks(['metaInfo'])
@Component({
components: {
TheTimelapseRenderingSnackbar,
@ -81,14 +83,19 @@ import TheScrewsTiltAdjustDialog from '@/components/dialogs/TheScrewsTiltAdjustD
TheBedScrewsDialog,
TheScrewsTiltAdjustDialog,
},
metaInfo() {
const title = this.$store.getters['getTitle']
return {
titleTemplate: () => title,
}
},
})
export default class App extends Mixins(BaseMixin) {
public metaInfo(): any {
let title = this.$store.getters['getTitle']
if (this.isPrinterPowerOff) title = this.$t('App.Titles.PrinterOff')
return {
title,
titleTemplate: '%s',
}
}
get title(): string {
return this.$store.getters['getTitle']
}

View File

@ -52,6 +52,7 @@
"Complete": "Fertiggestellt - {filename}",
"Error": "FEHLER",
"Pause": "Druck pausiert",
"PrinterOff": "Drucker AUS",
"Printing": "{percent}% Drucken - {filename}",
"PrintingETA": "{percent}% Drucken - ETA: {eta} - {filename}"
},

View File

@ -52,6 +52,7 @@
"Complete": "Complete - {filename}",
"Error": "ERROR",
"Pause": "Pause Print",
"PrinterOff": "Printer OFF",
"Printing": "{percent}% Printing - {filename}",
"PrintingETA": "{percent}% Printing - ETA: {eta} - {filename}"
},

View File

@ -11,35 +11,41 @@ export const getters: GetterTree<RootState, any> = {
},
getTitle: (state, getters) => {
if (state.socket?.isConnected && state.printer) {
let printer_state = state.printer?.print_stats?.state ?? ''
if (!state.socket?.isConnected) return 'Mainsail'
if (state.server?.klippy_state !== 'ready') return i18n.t('App.Titles.Error')
if (state.printer['gcode_macro TIMELAPSE_TAKE_FRAME']?.is_paused && printer_state === 'paused')
printer_state = 'printing'
// get printer_state
let printer_state = state.printer?.print_stats?.state ?? ''
// skip pause, if timelapse is active
if (state.printer && state.printer['gcode_macro TIMELAPSE_TAKE_FRAME']?.is_paused && printer_state === 'paused')
printer_state = 'printing'
if (state.server?.klippy_state !== 'ready') return i18n.t('App.Titles.Error')
else if (printer_state === 'paused') return i18n.t('App.Titles.Pause')
else if (printer_state === 'printing') {
const eta = getters['printer/getEstimatedTimeETAFormat']
// return pause title
if (printer_state === 'paused') return i18n.t('App.Titles.Pause')
if (eta !== '--')
return i18n.t('App.Titles.PrintingETA', {
percent: (getters['printer/getPrintPercent'] * 100).toFixed(0),
filename: state.printer.print_stats?.filename,
eta,
})
else
return i18n.t('App.Titles.Printing', {
percent: (getters['printer/getPrintPercent'] * 100).toFixed(0),
filename: state.printer.print_stats?.filename,
})
} else if (state.printer?.print_stats?.state === 'complete')
return i18n.t('App.Titles.Complete', { filename: state.printer.print_stats.filename })
// return complete title
if (state.printer?.print_stats?.state === 'complete')
return i18n.t('App.Titles.Complete', { filename: state.printer.print_stats.filename })
return state.gui?.general.printername ?? state.printer?.hostname ?? 'Mainsail'
// return printing title
if (printer_state === 'printing') {
const eta = getters['printer/getEstimatedTimeETAFormat']
const percent = (getters['printer/getPrintPercent'] * 100).toFixed(0)
if (eta !== '--')
return i18n.t('App.Titles.PrintingETA', {
percent: percent,
filename: state.printer?.print_stats?.filename,
eta,
})
return i18n.t('App.Titles.Printing', {
percent: percent,
filename: state.printer?.print_stats?.filename,
})
}
return 'Mainsail'
return state.gui?.general.printername ?? state.printer?.hostname ?? 'Mainsail'
},
getDependencies: (state) => {