mirror of
https://github.com/nextcloud/server.git
synced 2026-06-09 00:32:29 -04:00
factorization in weather widget
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
This commit is contained in:
parent
3f7ab0ca83
commit
416e4a35bc
3 changed files with 43 additions and 43 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -25,7 +25,7 @@
|
|||
<Actions
|
||||
class="weather-status-menu-item__subheader"
|
||||
:default-icon="weatherIcon"
|
||||
:menu-title="visibleMessage">
|
||||
:menu-title="currentWeatherMessage">
|
||||
<ActionText v-if="gotWeather"
|
||||
:icon="futureWeatherIcon">
|
||||
{{ forecastMessage }}
|
||||
|
|
@ -233,66 +233,42 @@ export default {
|
|||
return t('weather_status', 'More weather for {adr}', { adr: this.address })
|
||||
},
|
||||
temperature() {
|
||||
return this.forecasts.length > 0 ? this.forecasts[0].data.instant.details.air_temperature : ''
|
||||
return this.getTemperature(this.forecasts, 0)
|
||||
},
|
||||
futureTemperature() {
|
||||
return this.getTemperature(this.forecasts, this.offset)
|
||||
},
|
||||
weatherCode() {
|
||||
console.debug('weatherCode', this.forecasts[0].data.next_1_hours.summary.symbol_code)
|
||||
return this.forecasts.length > 0 ? this.forecasts[0].data.next_1_hours.summary.symbol_code : ''
|
||||
return this.getWeatherCode(this.forecasts, 0)
|
||||
},
|
||||
futureWeatherCode() {
|
||||
return this.getWeatherCode(this.forecasts, this.offset)
|
||||
},
|
||||
weatherIcon() {
|
||||
if (this.loading) {
|
||||
return 'icon-loading-small'
|
||||
} else {
|
||||
return this.weatherCode && this.weatherCode in weatherOptions
|
||||
? weatherOptions[this.weatherCode].icon
|
||||
: 'icon-fair-day'
|
||||
}
|
||||
return this.getWeatherIcon(this.weatherCode, this.loading)
|
||||
},
|
||||
futureWeatherIcon() {
|
||||
return this.getWeatherIcon(this.futureWeatherCode, this.loading)
|
||||
},
|
||||
/**
|
||||
* The message displayed in the top right corner
|
||||
*
|
||||
* @returns {String}
|
||||
*/
|
||||
visibleMessage() {
|
||||
currentWeatherMessage() {
|
||||
if (this.loading) {
|
||||
return t('weather_status', 'Loading weather')
|
||||
} else if (this.errorMessage) {
|
||||
return this.errorMessage
|
||||
} else {
|
||||
return this.weatherCode && this.weatherCode in weatherOptions
|
||||
? weatherOptions[this.weatherCode].text(
|
||||
this.getLocalizedTemperature(this.temperature),
|
||||
this.temperatureUnit
|
||||
)
|
||||
: t('weather_status', 'Set location for weather')
|
||||
}
|
||||
},
|
||||
futureTemperature() {
|
||||
return this.forecasts.length > (this.offset - 1) ? this.forecasts[this.offset].data.instant.details.air_temperature : ''
|
||||
},
|
||||
futureWeatherCode() {
|
||||
return this.forecasts.length > (this.offset - 1) ? this.forecasts[this.offset].data.next_1_hours.summary.symbol_code : ''
|
||||
},
|
||||
futureWeatherIcon() {
|
||||
if (this.loading) {
|
||||
return 'icon-loading-small'
|
||||
} else {
|
||||
return this.futureWeatherCode && this.futureWeatherCode in weatherOptions
|
||||
? weatherOptions[this.futureWeatherCode].icon
|
||||
: 'icon-fair-day'
|
||||
return this.getWeatherMessage(this.weatherCode, this.temperature)
|
||||
}
|
||||
},
|
||||
forecastMessage() {
|
||||
if (this.loading) {
|
||||
return t('weather_status', 'Loading weather')
|
||||
} else {
|
||||
return this.futureWeatherCode && this.futureWeatherCode in weatherOptions
|
||||
? weatherOptions[this.futureWeatherCode].text(
|
||||
this.getLocalizedTemperature(this.futureTemperature),
|
||||
this.temperatureUnit,
|
||||
true
|
||||
)
|
||||
: t('weather_status', 'Set location for weather')
|
||||
return this.getWeatherMessage(this.futureWeatherCode, this.futureTemperature, true)
|
||||
}
|
||||
},
|
||||
weatherLinkTarget() {
|
||||
|
|
@ -517,6 +493,30 @@ export default {
|
|||
formatTime(time) {
|
||||
return moment(time).format('LT')
|
||||
},
|
||||
getTemperature(forecasts, offset = 0) {
|
||||
return forecasts.length > offset ? forecasts[offset].data.instant.details.air_temperature : ''
|
||||
},
|
||||
getWeatherCode(forecasts, offset = 0) {
|
||||
return forecasts.length > offset ? forecasts[offset].data.next_1_hours.summary.symbol_code : ''
|
||||
},
|
||||
getWeatherIcon(weatherCode, loading) {
|
||||
if (loading) {
|
||||
return 'icon-loading-small'
|
||||
} else {
|
||||
return weatherCode && weatherCode in weatherOptions
|
||||
? weatherOptions[weatherCode].icon
|
||||
: 'icon-fair-day'
|
||||
}
|
||||
},
|
||||
getWeatherMessage(weatherCode, temperature, later = false) {
|
||||
return weatherCode && weatherCode in weatherOptions
|
||||
? weatherOptions[weatherCode].text(
|
||||
this.getLocalizedTemperature(temperature),
|
||||
this.temperatureUnit,
|
||||
later
|
||||
)
|
||||
: t('weather_status', 'Set location for weather')
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in a new issue