mirror of
https://github.com/ThisIsBenny/iOS-Widgets.git
synced 2025-04-19 15:27:40 +00:00
Merge pull request #54 from seiz/main
Update number-of-covild-19-vaccinations.js
This commit is contained in:
commit
1503c824c2
1 changed files with 60 additions and 14 deletions
|
@ -3,9 +3,14 @@
|
||||||
// icon-color: red; icon-glyph: syringe;
|
// icon-color: red; icon-glyph: syringe;
|
||||||
|
|
||||||
/**************
|
/**************
|
||||||
Version 1.0.1
|
Version 1.0.2
|
||||||
|
|
||||||
Changelog:
|
Changelog:
|
||||||
|
v1.0.2
|
||||||
|
- prevent error if user deletes Widget-"Parameter"
|
||||||
|
- optionally format numbers with more readable units and their correct abbreviation
|
||||||
|
add ",1" to the widget "Parameter" to enable.
|
||||||
|
|
||||||
v1.0.1:
|
v1.0.1:
|
||||||
- fix sorting issue
|
- fix sorting issue
|
||||||
|
|
||||||
|
@ -22,6 +27,7 @@ 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'
|
||||||
|
|
||||||
|
@ -29,10 +35,15 @@ config.widgetFamily = config.widgetFamily || 'large'
|
||||||
////////////////////////// System Settings /////////////////////
|
////////////////////////// System Settings /////////////////////
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
let widgetInputRAW = args.widgetParameter;
|
let widgetInputRAW = args.widgetParameter
|
||||||
let selectedState
|
let selectedState
|
||||||
|
|
||||||
if (widgetInputRAW !== null) {
|
if ( widgetInputRAW && widgetInputRAW.toString().indexOf(",") !== -1 ){
|
||||||
|
// multiple args
|
||||||
|
altUnits = widgetInputRAW.toString().split(",")[1] == "1" ? true : false
|
||||||
|
widgetInputRAW = widgetInputRAW.split(",")[0]
|
||||||
|
}
|
||||||
|
if (widgetInputRAW !== null && widgetInputRAW !== "" ) {
|
||||||
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) {
|
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) {
|
||||||
throw new Error('Kein gültiges Bundesland. Bitte prüfen Sie die Eingabe.')
|
throw new Error('Kein gültiges Bundesland. Bitte prüfen Sie die Eingabe.')
|
||||||
}
|
}
|
||||||
|
@ -145,12 +156,12 @@ function getDiagram(percentage) {
|
||||||
0,
|
0,
|
||||||
100 - canvTextSize / 2,
|
100 - canvTextSize / 2,
|
||||||
canvSize,
|
canvSize,
|
||||||
canvTextSize
|
canvTextSize * 1.4 // X-height "* 1.4" so e.g. commas aren't cut off
|
||||||
)
|
)
|
||||||
canvas.setTextAlignedCenter()
|
canvas.setTextAlignedCenter()
|
||||||
canvas.setTextColor(Color.dynamic(Color.black(), Color.white()))
|
canvas.setTextColor(Color.gray())
|
||||||
canvas.setFont(Font.boldSystemFont(canvTextSize))
|
canvas.setFont(Font.boldSystemFont(canvTextSize))
|
||||||
canvas.drawTextInRect(`${percentage}%`, canvTextRect)
|
canvas.drawTextInRect(`${percentage.toLocaleString(Device.language())}%`, canvTextRect)
|
||||||
|
|
||||||
return canvas.getImage()
|
return canvas.getImage()
|
||||||
}
|
}
|
||||||
|
@ -279,19 +290,37 @@ if (config.widgetFamily === 'large') {
|
||||||
imageStack1.addSpacer()
|
imageStack1.addSpacer()
|
||||||
column.addSpacer(2)
|
column.addSpacer(2)
|
||||||
|
|
||||||
const total1 = parseInt((result.states[selectedState].total / 1000).toFixed(0)).toLocaleString('de')
|
let total1 = (result.states[selectedState].total / 1000).toFixed(0)
|
||||||
|
let total1unit = "t"
|
||||||
|
if ( altUnits ){
|
||||||
|
total1unit = " Tsd."
|
||||||
|
}
|
||||||
|
// if total is a million or more, format as millions and not thousands
|
||||||
|
if ( altUnits && result.states[selectedState].total > 999999 ){
|
||||||
|
total1 = (result.states[selectedState].total / 1000000).toLocaleString(Device.language(), {maximumFractionDigits: 1})
|
||||||
|
total1unit = " Mio."
|
||||||
|
}
|
||||||
let vaccinated1
|
let vaccinated1
|
||||||
if (result.states[selectedState].vaccinated > 999) {
|
let vaccinated1unit = "t"
|
||||||
vaccinated1 = parseInt((result.states[selectedState].vaccinated / 1000).toFixed(0)).toLocaleString('de') + 't'
|
if ( altUnits && result.states[selectedState].vaccinated > 999999){
|
||||||
|
vaccinated1 = (result.states[selectedState].vaccinated / 1000000).toLocaleString(Device.language(), {maximumFractionDigits: 2})
|
||||||
|
vaccinated1unit = " Mio."
|
||||||
|
}
|
||||||
|
else if ( result.states[selectedState].vaccinated > 999 ) {
|
||||||
|
vaccinated1 = (result.states[selectedState].vaccinated / 1000).toFixed(0)
|
||||||
|
if ( altUnits ){
|
||||||
|
vaccinated1unit = " Tsd."
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
vaccinated1 = result.states[selectedState].vaccinated
|
vaccinated1 = result.states[selectedState].vaccinated
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const numbersText1Stack = column.addStack()
|
const numbersText1Stack = column.addStack()
|
||||||
numbersText1Stack.layoutHorizontally()
|
numbersText1Stack.layoutHorizontally()
|
||||||
numbersText1Stack.addSpacer()
|
numbersText1Stack.addSpacer()
|
||||||
|
|
||||||
const numbersText1 = numbersText1Stack.addText(`${vaccinated1} von ${total1}t`)
|
const numbersText1 = numbersText1Stack.addText(`${vaccinated1}${vaccinated1unit} von ${total1}${total1unit}`)
|
||||||
numbersText1.font = Font.systemFont(fontSize2)
|
numbersText1.font = Font.systemFont(fontSize2)
|
||||||
numbersText1Stack.addSpacer()
|
numbersText1Stack.addSpacer()
|
||||||
|
|
||||||
|
@ -316,14 +345,31 @@ if (config.widgetFamily === 'large') {
|
||||||
imageStack2.addImage(getDiagram(result.quote));
|
imageStack2.addImage(getDiagram(result.quote));
|
||||||
imageStack2.addSpacer()
|
imageStack2.addSpacer()
|
||||||
|
|
||||||
const total2 = parseInt((result.total / 1000).toFixed(0)).toLocaleString('de')
|
let total2 = (result.total / 1000).toFixed(0)
|
||||||
let vaccinated2 = parseInt((result.vaccinated / 1000).toFixed(0)).toLocaleString('de')
|
let total2unit = "t"
|
||||||
|
if ( altUnits ){
|
||||||
|
total2unit = " Tsd."
|
||||||
|
}
|
||||||
|
// if total is a million or more, format as millions and not thousands
|
||||||
|
if ( altUnits && result.total > 999999 ){
|
||||||
|
total2 = (result.total / 1000000).toLocaleString(Device.language(), {maximumFractionDigits: 1})
|
||||||
|
total2unit = " Mio."
|
||||||
|
}
|
||||||
|
let vaccinated2 = (result.vaccinated / 1000).toFixed(0)
|
||||||
|
let vaccinated2unit = "t"
|
||||||
|
if ( altUnits ){
|
||||||
|
vaccinated2unit = " Tsd."
|
||||||
|
}
|
||||||
|
if ( altUnits && result.vaccinated > 999999 ){
|
||||||
|
vaccinated2 = (result.vaccinated / 1000000).toLocaleString(Device.language(), {maximumFractionDigits: 2})
|
||||||
|
vaccinated2unit = " Mio."
|
||||||
|
}
|
||||||
|
|
||||||
const numbersText2Stack = column2.addStack()
|
const numbersText2Stack = column2.addStack()
|
||||||
numbersText2Stack.layoutHorizontally()
|
numbersText2Stack.layoutHorizontally()
|
||||||
numbersText2Stack.addSpacer()
|
numbersText2Stack.addSpacer()
|
||||||
|
|
||||||
const numbersText2 = numbersText2Stack.addText(`${vaccinated2}t von ${total2}t`)
|
const numbersText2 = numbersText2Stack.addText(`${vaccinated2}${vaccinated2unit} von ${total2}${total2unit}`)
|
||||||
numbersText2.font = Font.systemFont(fontSize2)
|
numbersText2.font = Font.systemFont(fontSize2)
|
||||||
numbersText2Stack.addSpacer()
|
numbersText2Stack.addSpacer()
|
||||||
|
|
||||||
|
@ -356,4 +402,4 @@ if (!config.runsInWidget) {
|
||||||
} else {
|
} else {
|
||||||
Script.setWidget(widget)
|
Script.setWidget(widget)
|
||||||
}
|
}
|
||||||
Script.complete()
|
Script.complete()
|
||||||
|
|
Loading…
Add table
Reference in a new issue