Some adjustments after Pull-Request

This commit is contained in:
Benny 2021-01-03 11:48:26 +01:00
parent 115eedd902
commit fc0d408966

View file

@ -27,7 +27,6 @@ const cacheMinutes = 6 * 60
////////////////////////// Dev Settings //////////////////////// ////////////////////////// Dev Settings ////////////////////////
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
let altUnits = false
const debug = true const debug = true
config.widgetFamily = config.widgetFamily || 'large' config.widgetFamily = config.widgetFamily || 'large'
@ -36,20 +35,24 @@ config.widgetFamily = config.widgetFamily || 'large'
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
let widgetInputRAW = args.widgetParameter let widgetInputRAW = args.widgetParameter
let selectedState let widgetInput, selectedState, altUnits
if ( widgetInputRAW && widgetInputRAW.toString().indexOf(",") !== -1 ){ if (widgetInputRAW !== null && widgetInputRAW !== "") {
// multiple args widgetInput = widgetInputRAW.toString().split(",")
altUnits = widgetInputRAW.toString().split(",")[1] == "1" ? true : false if(widgetInput.length === 1 && widgetInput[0].trim() === '1') {
widgetInputRAW = widgetInputRAW.split(",")[0] altUnits = true
} selectedState = undefined
if (widgetInputRAW !== null && widgetInputRAW !== "" ) { } else {
if (/^Baden-Württemberg|Bayern|Berlin|Brandenburg|Bremen|Hamburg|Hessen|Mecklenburg-Vorpommern|Niedersachsen|Nordrhein-Westfalen|Rheinland-Pfalz|Saarland|Sachsen|Sachsen-Anhalt|Schleswig-Holstein|Thüringen$/.test(widgetInputRAW.toString().trim()) === false) { selectedState = widgetInput[0].trim()
throw new Error('Kein gültiges Bundesland. Bitte prüfen Sie die Eingabe.') altUnits = widgetInput[1] ? true : false
}
if (/^(Baden-Württemberg|Bayern|Berlin|Brandenburg|Bremen|Hamburg|Hessen|Mecklenburg-Vorpommern|Niedersachsen|Nordrhein-Westfalen|Rheinland-Pfalz|Saarland|Sachsen|Sachsen-Anhalt|Schleswig-Holstein|Thüringen)$/.test(selectedState) === false && selectedState !== '' && selectedState !== undefined) {
throw new Error('Kein gültiges Bundesland. Bitte prüfen Sie die Eingabe.')
} }
selectedState = widgetInputRAW.toString()
} }
const maximumFractionDigits = altUnits ? 1 : 0
const fontSize = 9 const fontSize = 9
const fontSize2 = 12 const fontSize2 = 12
const spacing = 5 const spacing = 5
@ -290,37 +293,50 @@ if (config.widgetFamily === 'large') {
imageStack1.addSpacer() imageStack1.addSpacer()
column.addSpacer(2) column.addSpacer(2)
let total1 = (result.states[selectedState].total / 1000).toFixed(0) // Total Numbers
let total1unit = "t" let total1 = result.states[selectedState].total / 1000
if ( altUnits ){ let total1unit = altUnits ? " Tsd." : "t"
total1unit = " Tsd."
}
// if total is a million or more, format as millions and not thousands // if total is a million or more, format as millions and not thousands
if ( altUnits && result.states[selectedState].total > 999999 ){ if ( altUnits && result.states[selectedState].total > 999999 ){
total1 = (result.states[selectedState].total / 1000000).toLocaleString(Device.language(), {maximumFractionDigits: 1}) total1 = result.states[selectedState].total / 1000000
total1unit = " Mio." total1unit = " Mio."
} }
///////////////////////////////////////////////////////////////////
// vaccinated nunbers
let vaccinated1 let vaccinated1
let vaccinated1unit = "t" let vaccinated1unit = altUnits ? " Tsd." : "t"
if ( altUnits && result.states[selectedState].vaccinated > 999999){ if ( altUnits && result.states[selectedState].vaccinated > 999999){
vaccinated1 = (result.states[selectedState].vaccinated / 1000000).toLocaleString(Device.language(), {maximumFractionDigits: 2}) vaccinated1 = result.states[selectedState].vaccinated / 1000000
vaccinated1unit = " Mio." vaccinated1unit = " Mio."
} }
else if ( result.states[selectedState].vaccinated > 999 ) { else if ( result.states[selectedState].vaccinated > 999 ) {
vaccinated1 = (result.states[selectedState].vaccinated / 1000).toFixed(0) vaccinated1 = result.states[selectedState].vaccinated / 1000
if ( altUnits ){
vaccinated1unit = " Tsd."
}
} else { } else {
vaccinated1 = result.states[selectedState].vaccinated vaccinated1 = result.states[selectedState].vaccinated
vaccinated1unit = ''
} }
///////////////////////////////////////////////////////////////////
if (maximumFractionDigits === 0) {
total1 = parseInt(total1)
vaccinated1 = parseInt(vaccinated1)
}
const numbersText1Stack = column.addStack() const numbersText1Stack = column.addStack()
numbersText1Stack.layoutHorizontally() numbersText1Stack.layoutHorizontally()
numbersText1Stack.addSpacer() numbersText1Stack.addSpacer()
const numbersText1 = numbersText1Stack.addText(`${vaccinated1}${vaccinated1unit} von ${total1}${total1unit}`)
const textString1 = `${
parseFloat(vaccinated1)
.toLocaleString(Device.language(), {maximumFractionDigits: maximumFractionDigits})
}${vaccinated1unit} von ${
parseFloat(total1)
.toLocaleString(Device.language(), {maximumFractionDigits: maximumFractionDigits})
}${total1unit}`
const numbersText1 = numbersText1Stack.addText(textString1)
numbersText1.font = Font.systemFont(fontSize2) numbersText1.font = Font.systemFont(fontSize2)
numbersText1Stack.addSpacer() numbersText1Stack.addSpacer()
@ -345,31 +361,44 @@ if (config.widgetFamily === 'large') {
imageStack2.addImage(getDiagram(result.quote)); imageStack2.addImage(getDiagram(result.quote));
imageStack2.addSpacer() imageStack2.addSpacer()
// Total numbers
let total2 = (result.total / 1000).toFixed(0) let total2 = (result.total / 1000).toFixed(0)
let total2unit = "t" let total2unit = altUnits ? " Tsd." : "t"
if ( altUnits ){
total2unit = " Tsd."
}
// if total is a million or more, format as millions and not thousands // if total is a million or more, format as millions and not thousands
if ( altUnits && result.total > 999999 ){ if ( altUnits && result.total > 999999 ){
total2 = (result.total / 1000000).toLocaleString(Device.language(), {maximumFractionDigits: 1}) total2 = result.total / 1000000
total2unit = " Mio." total2unit = " Mio."
} }
let vaccinated2 = (result.vaccinated / 1000).toFixed(0) ///////////////////////////////////////////////////////////////////
let vaccinated2unit = "t"
if ( altUnits ){ // vaccinated numbers
vaccinated2unit = " Tsd." let vaccinated2 = result.vaccinated / 1000
} let vaccinated2unit = altUnits ? " Tsd." : "t"
if ( altUnits && result.vaccinated > 999999 ){ if ( altUnits && result.vaccinated > 999999 ){
vaccinated2 = (result.vaccinated / 1000000).toLocaleString(Device.language(), {maximumFractionDigits: 2}) vaccinated2 = result.vaccinated / 1000000
vaccinated2unit = " Mio." vaccinated2unit = " Mio."
} }
///////////////////////////////////////////////////////////////////
if (maximumFractionDigits === 0) {
total2 = parseInt(total2)
vaccinated2 = parseInt(vaccinated2)
}
const numbersText2Stack = column2.addStack() const numbersText2Stack = column2.addStack()
numbersText2Stack.layoutHorizontally() numbersText2Stack.layoutHorizontally()
numbersText2Stack.addSpacer() numbersText2Stack.addSpacer()
const numbersText2 = numbersText2Stack.addText(`${vaccinated2}${vaccinated2unit} von ${total2}${total2unit}`)
const textString2 = `${
parseFloat(vaccinated2)
.toLocaleString(Device.language(), {maximumFractionDigits: maximumFractionDigits})
}${vaccinated2unit} von ${
parseFloat(total2)
.toLocaleString(Device.language(), {maximumFractionDigits: maximumFractionDigits})
}${total2unit}`
const numbersText2 = numbersText2Stack.addText(textString2)
numbersText2.font = Font.systemFont(fontSize2) numbersText2.font = Font.systemFont(fontSize2)
numbersText2Stack.addSpacer() numbersText2Stack.addSpacer()